Max Brunsfeld
deaa7e2755
Fix missing return warning on gcc
2014-06-04 13:39:12 -07:00
Max Brunsfeld
9a4889176e
Move lr_parser implementation into a separate .c file
2014-06-04 13:34:37 -07:00
Max Brunsfeld
63cde3967c
Add unit test for stack
...
- Also, fix bug where trees pushed onto the stack were not retained
2014-06-03 13:19:49 -07:00
Max Brunsfeld
baec9f2c9a
Move computation of tree size/offset into tree constructor
2014-06-02 13:32:36 -07:00
Max Brunsfeld
2988cc5aa2
Show offending lookahead chars when pretty-printing trees w/ errors
2014-05-26 21:50:01 -07:00
Max Brunsfeld
963768eb8a
Remove unnecessary parser helper functions
2014-05-09 15:03:29 -07:00
Max Brunsfeld
ccc1b41f2a
Make separate header files for stack and lexer
2014-05-09 13:32:12 -07:00
Max Brunsfeld
e4be585c43
Handle ubiquitous tokens at the beginning of programs
...
As a final step before returning the finished parse tree, check if
there are still multiple nodes on the stack. If so, make the inner
nodes children of the top node.
2014-05-09 12:46:36 -07:00
Max Brunsfeld
3f374c6547
Tidy up
2014-05-08 13:27:48 -07:00
Max Brunsfeld
4700e33746
Introduce 'ubiquitous_tokens' concept, for parsing comments and such
2014-05-06 12:54:04 -07:00
Max Brunsfeld
d957021982
Removed unused constant in stack.c
2014-03-26 20:50:55 -07:00
Max Brunsfeld
09e28e7859
Collapse nodes with only one child and no additional text content
2014-03-26 00:10:59 -07:00
Max Brunsfeld
316adc7788
Represent tree symbols as unsigned integers
2014-03-25 23:47:25 -07:00
Max Brunsfeld
25861b7f03
Remove reduction-specific collapse flags in favor of globally hidden symbols
2014-03-25 09:05:55 -07:00
Max Brunsfeld
671f1a1ddc
Start work on javascript grammar
2014-03-24 09:14:29 -07:00
Max Brunsfeld
3a7c4bb5b1
Store AST nodes' non-hidden children
2014-03-24 01:03:32 -07:00
Max Brunsfeld
95188d84b6
Make tree struct private
2014-03-24 00:34:13 -07:00
Max Brunsfeld
5869c1ea18
Clean up stack breakdown function
2014-03-21 13:02:25 -07:00
Max Brunsfeld
bdbe69258a
Fix bug in stack breakdown procedure
2014-03-21 12:46:23 -07:00
Max Brunsfeld
cbc66b359e
Cleanup
2014-03-19 23:10:28 -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
fbb9b24d7b
Refactor ts_tree_children
2014-03-18 12:47:26 -07:00
Max Brunsfeld
8e7f59db1c
Allow room in parse table for error and EOF entries
2014-03-18 08:04:17 -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
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
42e9a264f3
In parser, read chunked input correctly
2014-03-10 13:25:31 -07:00
Max Brunsfeld
39aa0ccc91
Add script to trim whitespace
2014-03-09 19:49:35 -07:00
Max Brunsfeld
9c6c47e02f
Make parser input reads indicate the # of bytes read
2014-03-08 16:51:08 -08:00
Max Brunsfeld
1fd381ae7a
Don't use c++ for runtime
...
Don't really need it, and it makes compilation slightly more
complicated
2014-03-08 16:30:44 -08:00
Max Brunsfeld
af64d3fffa
Build with all warnings enabled
...
Fix resulting warnings
2014-03-04 18:28:28 -08:00
Max Brunsfeld
0f4b6332cb
Refactor document to allow other input data structures
2014-03-01 22:43:25 -08:00
Max Brunsfeld
72a0c0e09c
Keep track of AST node sizes and positions
2014-03-01 15:44:25 -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
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
1b56832cb7
Use c++ in runtime src file
...
It makes string manipulation easier
2014-02-19 18:58:28 -08:00
Max Brunsfeld
7c57c521af
Add missing header includes
...
For some reason, xcode tolerated these missing includes.
Travis CI doesn't.
2014-02-19 09:25:06 -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
8b1aeee0e3
Remove unused ‘unexpected token’ handling
2014-02-06 09:06:52 -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
432e97e063
Improve parser runtime specs
2014-01-23 13:00:08 -08:00