correctly parse pkgs
This commit is contained in:
parent
70b6a1dcd7
commit
4547c0747d
|
@ -858,7 +858,7 @@
|
||||||
(expect parser :pkg) (advance parser)
|
(expect parser :pkg) (advance parser)
|
||||||
(def name (-> parser pkg-name (get :data)))
|
(def name (-> parser pkg-name (get :data)))
|
||||||
(expect parser :lbrace) (advance parser)
|
(expect parser :lbrace) (advance parser)
|
||||||
(accept-many parser ;terminators)
|
(while (separates? parser) (advance parser))
|
||||||
(def data @[])
|
(def data @[])
|
||||||
(while (not (check parser :rbrace))
|
(while (not (check parser :rbrace))
|
||||||
(when (check parser :eof)
|
(when (check parser :eof)
|
||||||
|
@ -877,7 +877,7 @@
|
||||||
(def kw-ast {:type :keyword :data key :token origin})
|
(def kw-ast {:type :keyword :data key :token origin})
|
||||||
(array/push data {:type :pair :data [key value] :token origin}))
|
(array/push data {:type :pair :data [key value] :token origin}))
|
||||||
(panic parser "expected pkg term"))
|
(panic parser "expected pkg term"))
|
||||||
(terminator parser))
|
(separators parser))
|
||||||
(advance parser)
|
(advance parser)
|
||||||
@{:type :pkg :data data :token origin :name name})
|
@{:type :pkg :data data :token origin :name name})
|
||||||
([err] err)))
|
([err] err)))
|
||||||
|
@ -1113,15 +1113,15 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# (do
|
(do
|
||||||
(comment
|
# (comment
|
||||||
(def source `
|
(def source `
|
||||||
Foo :bar :Baz
|
pkg Foo {foo, bar, :baz 42}
|
||||||
`)
|
`)
|
||||||
(def scanned (s/scan source))
|
(def scanned (s/scan source))
|
||||||
(print "\n***NEW PARSE***\n")
|
(print "\n***NEW PARSE***\n")
|
||||||
(def a-parser (new-parser scanned))
|
(def a-parser (new-parser scanned))
|
||||||
(def parsed (expr a-parser))
|
(def parsed (toplevel a-parser))
|
||||||
|
|
||||||
# (print (pp-ast parsed))
|
# (print (pp-ast parsed))
|
||||||
# (pp scanned)
|
# (pp scanned)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user