data.go 846 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package scope
  2. import (
  3. "fw/cp"
  4. "fw/cp/object"
  5. )
  6. type Operations interface {
  7. Sum(Value, Value) Value
  8. Sub(Value, Value) Value
  9. Eq(Value, Value) Value
  10. Lss(Value, Value) Value
  11. Leq(Value, Value) Value
  12. Conv(Value, object.Type) Value
  13. Len(object.Object, Value, Value) Value
  14. }
  15. type Value interface {
  16. String() string
  17. }
  18. type Constant interface {
  19. Value
  20. }
  21. type Variable interface {
  22. Id() cp.ID
  23. Set(Value)
  24. Value
  25. }
  26. type Ref interface {
  27. Value
  28. }
  29. type Record interface {
  30. Variable
  31. Get(cp.ID) Value
  32. }
  33. //средство обновления значенияx
  34. type ValueFor func(in Value) (out Value)
  35. type ValueOf func(in Value)
  36. func Simple(v Value) ValueFor {
  37. return func(Value) Value {
  38. return v
  39. }
  40. }
  41. var ValueFrom func(v Value) Value
  42. var GoTypeFrom func(v Value) interface{}
  43. var TypeFromGo func(v interface{}) Value
  44. var Ops Operations