Commit Graph

160 Commits

Author SHA1 Message Date
Martin Atkins
bd0cbc1c81 more detailed default stringification of diagnostics 2017-05-16 07:22:56 -07:00
Martin Atkins
66c38447d3 json: fix buggy peeker.Read 2017-05-16 06:51:19 -07:00
Martin Atkins
f6bd122f4b json: parsing of keywords 2017-05-16 06:51:19 -07:00
Martin Atkins
f754328a91 json: beginnings of parser
Only supports parsing objects right now, and even then doesn't really
because objects have to contain strings and that isn't implemented yet.
2017-05-15 08:35:32 -07:00
Martin Atkins
377e20b7b8 json: AST node types 2017-05-15 08:34:35 -07:00
Martin Atkins
838a0332e6 json: token peeker
This will help our hand-written recursive-descent parser walk the tokens
with one token of lookahead.
2017-05-15 08:34:00 -07:00
Martin Atkins
0c1a99df48 Utilities for constructing diagnostics
Wrangling diagnostics is a common concern in the parsers and evaluator,
and these helper functions are intended to make that code more concise.
2017-05-15 08:33:22 -07:00
Martin Atkins
45d426b99c json: Generate EOF tokens marking the end of scanning
This helps the parser include a good position when it needs to generate
"unexpected EOF" diagnostics.
2017-05-15 07:15:53 -07:00
Martin Atkins
b5ce4360cd json: initial scanner implementation
Currently lacking correct support for unicode text segmentation into
grapheme clusters, so it miscounts "Column" in positions. This will be
addressed later.
2017-05-15 07:02:13 -07:00
Martin Atkins
b9183e85e4 Initial stubs of the public API 2017-05-13 17:44:11 -07:00