Commit graph

57 commits

Author SHA1 Message Date
Max Brunsfeld
0d3fe99ef9 Fix regex in language test table reader 2014-03-22 15:56:02 -07:00
Max Brunsfeld
c40411b4d1 Handle unexpected tokens properly
Also, add null and boolean values to json grammar
2014-03-22 15:46:58 -07:00
Karen Wang and Max Brunsfeld
f248ece3aa Use table-driven tests for specific parsers 2014-03-22 15:19:13 -07:00
Max Brunsfeld
bdbe69258a Fix bug in stack breakdown procedure 2014-03-21 12:46:23 -07:00
Max Brunsfeld
fbe8b0a905 Fix incremental parsing
Stop collapsing hidden symbols upon reducing them.
Sadly, this messes up the ability to re-use parse
trees. Instead, for now, hide these nodes when
stringifying parse trees
2014-03-19 19:27:31 -07:00
Max Brunsfeld
7e94a4f1b2 Start work on reading input incrementally 2014-03-18 13:23:21 -07:00
Max Brunsfeld
a3a7546450 In SpyReader, store entire strings read, not individual chunks
Makes assertions easier to write. We don't need to assert
that the strings were read chunk by chunk.
2014-03-18 13:23:00 -07:00
Max Brunsfeld
fbb9b24d7b Refactor ts_tree_children 2014-03-18 12:47:26 -07:00
Max Brunsfeld
67b33a615b Refactor generated parsers to used explicit table
This is slightly slower than encoding the parse table in
flow control, but allows the parser to inspect the parse
table more flexibly. This is needed for incremental parsing.
2014-03-17 18:43:17 -07:00
Max Brunsfeld
0d6435e24a Pass edit information into parser function 2014-03-15 16:55:35 -07:00
Max Brunsfeld
464a0e8dad Clean up parser header further 2014-03-15 15:15:59 -07:00
Max Brunsfeld
da992b77ff Rename 'parse_config' export -> 'parser' 2014-03-15 14:48:28 -07:00
Max Brunsfeld
0dc3a95d0c Refactor parser header
Make separate lexer, stack and parser structs.
2014-03-15 14:43:50 -07:00
Max Brunsfeld
05a5f9c124 Add function for notifying documents of edits 2014-03-12 13:39:12 -07:00
Max Brunsfeld
dbaacee497 Fix integer type warnings in json parser spec 2014-03-12 08:18:20 -07:00
Max Brunsfeld
ff0c8a98b8 Consolidate reading of input chunks in parser 2014-03-11 12:43:13 -07:00
Max Brunsfeld
42e9a264f3 In parser, read chunked input correctly 2014-03-10 13:25:31 -07:00
Max Brunsfeld
a411e43484 Rename source files: .cpp -> .cc 2014-03-09 22:13:08 -07:00
Max Brunsfeld
ac46bdcec6 Fix some whitespace 2014-03-09 20:21:19 -07:00
Max Brunsfeld
39aa0ccc91 Add script to trim whitespace 2014-03-09 19:49:35 -07:00
Max Brunsfeld
142671c177 Separate spec helpers files for compiler and runtime specs 2014-03-08 15:26:27 -08:00
Max Brunsfeld
72a0c0e09c Keep track of AST node sizes and positions 2014-03-01 15:44:25 -08:00
Max Brunsfeld
5045d5cccc Clean up tree spec 2014-03-01 15:09:41 -08:00
Max Brunsfeld
ded54a3a1a Fix some memory management bugs with trees 2014-03-01 00:25:05 -08:00
Max Brunsfeld
21c0f51b84 Rename ts_document_{set_text,set_input_string}
Because next I'll add a more general 'set_input' method
2014-02-27 13:30:11 -08:00
Max Brunsfeld
c43ec90dad Fix missing auxiliary tokens in lex error state 2014-02-27 00:38:08 -08:00
Max Brunsfeld
8b7ed13c8b Add more error recovery tests for JSON 2014-02-26 22:58:45 -08:00
Max Brunsfeld
8deeff392b Fix memory leak in tree 2014-02-26 19:54:22 -08:00
Max Brunsfeld
63718d5bad Add basic support for error recovery 2014-02-26 19:03:43 -08:00
Max Brunsfeld
df223d566e Fix bug in parser error handling 2014-02-25 18:33:24 -08:00
Max Brunsfeld
e58a6d8ba7 Start work on error recovery
- In runtime, make parse errors part of the parse tree
- Add error state to lexers in which they can accept any token
2014-02-24 18:42:54 -08:00
Max Brunsfeld
ceee7eefd0 Don't store text on documents 2014-02-20 18:38:31 -08:00
Max Brunsfeld
6ed6aa05cc Update runtime code naming
Also, add macros so that code generator doesn't
need to know about any runtime variables names
or types
2014-02-20 13:30:43 -08:00
Max Brunsfeld
49ad910474 Skip whitespace by default in lexer 2014-02-19 12:48:38 -08:00
Max Brunsfeld
2c56612650 Get makefile working 2014-02-18 09:07:00 -08:00
Max Brunsfeld
dbbb446082 Reorganize runtime header files 2014-02-15 17:00:33 -08:00
Max Brunsfeld
5c1a0982df Change repeat to mean zero-or-more 2014-02-15 15:43:32 -08:00
Max Brunsfeld
7490a7ac94 Change repeat to mean zero-or-more in lexical rules
Still need to make it work this way in syntactic rules
2014-02-12 18:35:29 -08:00
Max Brunsfeld
ab431c24dc Update json spec 2014-02-10 21:04:19 -08:00
Max Brunsfeld
8baa1396fd Properly merge transitions on overlapping character sets! 2014-02-10 13:20:43 -08:00
Max Brunsfeld
0d3a941848 Add support for character ranges in regex patterns 2014-01-30 18:54:39 -08:00
Max Brunsfeld
60e2d00b4d Parse simple character sets in pattern rules 2014-01-30 13:04:31 -08:00
Max Brunsfeld
7d297f2f9e Remove auxiliary rules from syntax tree 2014-01-28 22:09:37 -08:00
Max Brunsfeld
fd0d77ef8b Separate auxiliary rules from user-specified rules 2014-01-28 13:27:30 -08:00
Max Brunsfeld
ca33c3942a In parse table, store symbols as Symbol objects, not strings 2014-01-27 13:40:10 -08:00
Max Brunsfeld
b85b15db42 Refactor extract tokens function 2014-01-24 23:41:43 -08:00
Max Brunsfeld
67fa81d079 Convert repeat rules into pairs of recursive rules 2014-01-24 18:27:29 -08:00
Max Brunsfeld
8208aae060 Fix transitions for sequences whose left side can be blank 2014-01-23 23:56:37 -08:00
Max Brunsfeld
5776846227 Make compile take a name argument
Start work on JSON fixture grammar
2014-01-23 13:48:07 -08:00
Max Brunsfeld
432e97e063 Improve parser runtime specs 2014-01-23 13:00:08 -08:00