NewMiniGoValue makes a MiniGoValue value
(param interface{})
| 49 | |
| 50 | //NewMiniGoValue makes a MiniGoValue value |
| 51 | func NewMiniGoValue(param interface{}) (*MiniGoValue, error) { |
| 52 | code, ok := param.(string) |
| 53 | if !ok { |
| 54 | return nil, nil |
| 55 | } |
| 56 | if code == "" { |
| 57 | return nil, nil |
| 58 | } |
| 59 | if code[0] != '$' { |
| 60 | return nil, nil |
| 61 | } |
| 62 | minigoCode := code[1:] |
| 63 | if minigoCode[0] == '{' { |
| 64 | minigoCode = minigoCode[1:] |
| 65 | } |
| 66 | if minigoCode[len(minigoCode)-1] == '}' { |
| 67 | minigoCode = minigoCode[:len(minigoCode)-1] |
| 68 | } |
| 69 | minigo, err := CompileExpr(minigoCode) |
| 70 | if err != nil { |
| 71 | return nil, err |
| 72 | } |
| 73 | t := &MiniGoValue{ |
| 74 | minigo: minigo, |
| 75 | } |
| 76 | return t, nil |
| 77 | } |
| 78 | |
| 79 | //Constant represents donburi consntant. |
| 80 | type Constant struct { |
no test coverage detected