Max Brunsfeld
87df0a24eb
Add debuggging output when starting to parse
2014-10-14 10:31:18 -07:00
Max Brunsfeld
1ef744a76b
Reorganize code in parser.c
2014-10-14 09:32:11 -07:00
Max Brunsfeld
ef2084d3c8
Tweak parse debugging
2014-10-13 21:20:08 -07:00
Max Brunsfeld
c594208ab8
Allow callbacks to be specified for debug output
2014-10-13 01:02:18 -07:00
Max Brunsfeld
71cc7a2dc2
Tidy up remaining files in build_tables namespace
2014-10-13 01:02:18 -07:00
Max Brunsfeld
9fd2821389
Fix TODO comment in build_lex_table
2014-10-12 13:53:31 -07:00
Max Brunsfeld
6415690738
Tidy up get_metadata function
2014-10-12 13:04:11 -07:00
Max Brunsfeld
b23caf366f
Tidy up first_symbols function
2014-10-12 13:02:39 -07:00
Max Brunsfeld
faecdcbb2f
Tidy up build_tables function
2014-10-12 12:57:46 -07:00
Max Brunsfeld
8379d9387c
Tidy up build_parse_table function
2014-10-12 12:56:04 -07:00
Max Brunsfeld
1fb52eacab
Tidy up build_lex_table function
2014-10-12 12:44:16 -07:00
Max Brunsfeld
0daada6921
Tidy up c-code generator
2014-10-12 12:33:45 -07:00
Max Brunsfeld
5b624d37f6
Use consistent iteration in c code generator
2014-10-12 11:57:52 -07:00
Max Brunsfeld
aae6f6de14
Remove whitespace between template closing tags
2014-10-12 11:51:12 -07:00
Max Brunsfeld
fb38140317
Discard portion of right subtree that is within the edited region
2014-10-12 11:51:12 -07:00
Max Brunsfeld
f460b921e2
Fix off-by-one error in storing reusable right-subtree
2014-10-10 12:10:23 -07:00
Max Brunsfeld
3bcb221379
Include non-terminal lookahead symbols for reduction actions
...
This is necessary for re-using the right subtree after an edit
2014-10-10 12:06:16 -07:00
Max Brunsfeld
4dcc712a8c
Start work on re-using right side of parse tree
2014-10-09 19:58:15 -07:00
Max Brunsfeld
80b8a0a9fb
Rename stack_right_position -> stack_total_tree_size
...
I want to re-use the stack data structure for storing the
re-usable nodes from the previous parse tree during an edit.
In this case, the stack won't conceptually start at position
zero, so the name 'right_position' doesn't make sense.
2014-10-08 17:37:21 -07:00
Max Brunsfeld
26f9e22193
Clean up parser code
2014-10-08 16:51:04 -07:00
Max Brunsfeld
af7f57a80e
Fix sizing of error nodes after edits
2014-10-05 16:56:50 -07:00
Max Brunsfeld
6d37877e49
Tweak debugging output
2014-10-05 16:56:29 -07:00
Max Brunsfeld
e5ea4efb0b
Use stdbool.h
2014-10-03 16:06:08 -07:00
Max Brunsfeld
808b003f1a
Read unicode characters correctly in Lexer advance
2014-10-03 15:44:49 -07:00
Max Brunsfeld
78c5fe8e02
clang-format
2014-10-03 15:44:21 -07:00
Max Brunsfeld
5dd8778996
Clean up Parser handle_error function
2014-09-29 10:33:56 -07:00
Max Brunsfeld
10a3251fbe
Remove index parameter from STACK_FROM_TOP macro
2014-09-29 10:16:24 -07:00
Max Brunsfeld
070dc76050
Generate correct C literals for non-ascii characters
2014-09-28 18:40:15 -07:00
Max Brunsfeld
cb5ecbd491
Handle string and regex rules w/ non-ascii chars
2014-09-28 18:21:22 -07:00
Max Brunsfeld
e0185f84fc
Print non-ascii characters as numbers in CharacterRange::to_string
2014-09-28 18:19:42 -07:00
Max Brunsfeld
26ac5788b6
Don't use struct literal syntax for TSLength
2014-09-26 16:31:36 -07:00
Max Brunsfeld
c1565c1aae
Track AST nodes' sizes in characters as well as bytes
...
The `pos` and `size` functions for Nodes now return TSLength structs,
which contain lengths in both characters and bytes. This is important
for knowing the number of unicode characters in a Node.
2014-09-26 16:15:07 -07:00
Max Brunsfeld
141cbcfa02
Read unicode characters using utf8proc
2014-09-13 00:24:10 -07:00
Max Brunsfeld
e23f11b7c4
Allow lexical debug mode to be enabled on documents
...
- `ts_document_set_debug(doc, 1)` implies parse debug mode
- `ts_document_set_debug(doc, > 1)` implies parse and lex debug mode
2014-09-11 13:12:06 -07:00
Max Brunsfeld
68d6e242ee
Fix parsing of wildcard patterns at the ends of documents
...
- Remove special EOF handling from lexer
- Explicitly exclude the EOF character from all-inclusive character sets.
2014-09-11 13:10:23 -07:00
Max Brunsfeld
209992c832
Remove trailing whitespace
2014-09-10 13:19:45 -07:00
Max Brunsfeld
9a93f6bdef
Clean up prepare_grammar function
2014-09-10 13:02:31 -07:00
Max Brunsfeld
cd8a683229
Improve error messages for invalid ubiquitous tokens
2014-09-10 13:02:16 -07:00
Max Brunsfeld
2e7ffb4d14
Tweak auto-format settings
...
Prefer lines that exceed 80 characters by a small margin to
line breaks in argument lists
2014-09-09 13:15:40 -07:00
Max Brunsfeld
8f109504a8
Clean up extract_tokens function
2014-09-09 12:57:29 -07:00
Max Brunsfeld
9ee0665fad
Remove unused code in extract_tokens.cc
2014-09-09 12:34:15 -07:00
Max Brunsfeld
e181426f6f
Use make_tuple rather than init list syntax for gcc
2014-09-07 22:58:45 -07:00
Max Brunsfeld
1ff7cedf40
Unify ubiquitous tokens and lexical separators in API
2014-09-07 22:16:45 -07:00
Max Brunsfeld
a46f9d950c
Handle '\s' correctly in regexps
2014-09-07 16:05:43 -07:00
Max Brunsfeld
2a9f51790f
Move is_token function to its own file
2014-09-07 13:49:44 -07:00
Max Brunsfeld
ed11ef557a
Fix expansion of repeat rules into recursive rules
...
Previously, the way repeat rules were expanded, the auxiliary
rule always needed to be reduced, even if the repeating content
was empty. This caused problems in parse states where some items
contained the repeat rule and some did not. To make those cases
work, the repeat rule had to explicitly be marked as optional.
With this change, that is no longer necessary.
2014-09-07 09:39:14 -07:00
Max Brunsfeld
43ecac2a1d
Expose debug flag on document
2014-09-06 17:56:00 -07:00
Max Brunsfeld
c0a3f8d39c
Remove some macros from public parser header
2014-09-05 23:47:38 -07:00
Max Brunsfeld
d3204d3526
Include '_' in '\w' regex character class
2014-09-05 18:41:12 -07:00
Max Brunsfeld
8512af712e
Add debug log when re-lexing during error handling
2014-09-05 18:38:17 -07:00