summaryrefslogtreecommitdiff
path: root/json/json.go
diff options
context:
space:
mode:
authorAdam Scarr <adam@vektah.net>2017-08-08 20:34:21 +1000
committerAdam Scarr <adam@vektah.net>2017-08-08 20:34:21 +1000
commit035af4d873d3de0685ab281be952e346547e40fd (patch)
tree3b72976a4ecf229189ce1685aa232cad34fb6f86 /json/json.go
parent73b55459ac724bc84c43159e820b90909dc63d51 (diff)
Add NumberLit parser and complete json spec
Diffstat (limited to 'json/json.go')
-rw-r--r--json/json.go16
1 files changed, 7 insertions, 9 deletions
diff --git a/json/json.go b/json/json.go
index 4155bd2..7c84f42 100644
--- a/json/json.go
+++ b/json/json.go
@@ -21,23 +21,21 @@ var (
ret := map[string]interface{}{}
for _, prop := range n.Children[1].Children {
- ret[prop.Children[0].Token] = prop.Children[2].Result
+ ret[prop.Children[0].Result.(string)] = prop.Children[2].Result
}
return Node{Result: ret}
})
- _null = Bind("null", nil)
- _true = Bind("true", true)
- _false = Bind("false", false)
-
- _string = Map(StringLit(`"`), func(n Node) Node {
- return Node{Result: n.Token}
- })
+ _null = Bind("null", nil)
+ _true = Bind("true", true)
+ _false = Bind("false", false)
+ _string = StringLit(`"`)
+ _number = NumberLit()
)
func init() {
- value = Any(_null, _true, _false, _string, _array, _object)
+ value = Any(_null, _true, _false, _string, _number, _array, _object)
}
func Unmarshal(input string) (interface{}, error) {