123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package muesli
- import "fmt"
- /* Run time values */
- type Value interface {
- String() string
- }
- type IntValue int64
- type FloatValue float64
- type StringValue string
- type BoolValue bool
- const (
- TrueValue = BoolValue(true)
- FalseValue = BoolValue(false)
- )
- var NilValue = Value(nil)
- type WordValue string
- type TypeValue string
- type ErrorValue struct {
- error
- }
- type EmptyValue struct {
- }
- type ListValue struct {
- List []Value
- }
- func (val IntValue) String() string {
- return fmt.Sprintf("%d", int64(val))
- }
- func (val FloatValue) String() string {
- return fmt.Sprintf("%f", float64(val))
- }
- func (val BoolValue) String() string {
- if bool(val) {
- return "true"
- } else {
- return "false"
- }
- }
- func (val StringValue) String() string {
- return string(val)
- }
- func (val WordValue) String() string {
- return string(val)
- }
- func (val TypeValue) String() string {
- return string(val)
- }
- func (val ErrorValue) String() string {
- return fmt.Sprintf("%s", val.Error())
- }
- func (val EmptyValue) String() string {
- return "<empty>"
- }
- func (val ListValue) String() string {
- res := "["
- sep := ""
- for _, elt := range val.List {
- res = res + sep + elt.String()
- sep = ", "
- }
- res += "]"
- return res
- }
|