Commit graph

725 commits

Author SHA1 Message Date
Max Brunsfeld
b853e0f2eb 🎨 node.c 2015-08-16 10:27:26 -07:00
Max Brunsfeld
a5d73ed676 Store indices on nodes to speed up traversal methods 2015-08-15 23:35:20 -07:00
Max Brunsfeld
d70a7227a1 Don't return invisible nodes from ts_node_find_for_range 2015-08-14 20:10:09 -07:00
Max Brunsfeld
507b7aef00 Remove recursion in ts_node_child 2015-08-14 16:34:12 -07:00
Max Brunsfeld
25af9a3adf Don't store visible children on trees 2015-08-14 16:11:37 -07:00
Max Brunsfeld
8a9626bfc5 Simplify storage of position on nodes 2015-08-14 14:48:29 -07:00
Max Brunsfeld
da7eb1496b Clean up node.c 2015-08-12 13:41:22 -07:00
Max Brunsfeld
11d2121324 Update todo 2015-08-12 13:33:39 -07:00
Max Brunsfeld
c18351772a Auto-format: no single-line functions 2015-07-31 16:32:24 -07:00
Max Brunsfeld
e89ec7c85e Whitespace 2015-07-31 16:29:01 -07:00
Max Brunsfeld
54e40b8146 Rework AST access API: reduce heap allocation 2015-07-31 15:47:48 -07:00
Max Brunsfeld
feb46302f3 Rename 'star' -> 'pointer' in C grammar
Now that bug is fixed that prevented tokens from working properly when
used anonymously and as named rules
2015-07-30 17:27:49 -07:00
Max Brunsfeld
93259435c8 Handle tokens that appear both anonymously and as named rules 2015-07-30 17:24:08 -07:00
Max Brunsfeld
a7729c42c9 Whitespace 2015-07-29 21:47:48 -07:00
Max Brunsfeld
f9b057f3a9 clang-format everything 2015-07-27 18:29:48 -07:00
Max Brunsfeld
766e3bab2c Use 2-space continuation indent consistently in specs 2015-07-27 18:18:58 -07:00
Max Brunsfeld
31b2db12d2 Remove custom LexicalGrammar and SyntaxGrammar constructors 2015-07-19 16:12:11 -07:00
Max Brunsfeld
5d41d23ab1 Clean up extract_tokens 2015-07-19 11:46:30 -07:00
Max Brunsfeld
b51b7f922d Update TODO 2015-07-18 11:53:26 -07:00
Max Brunsfeld
32e79700bf Rename SpyReader -> SpyInput 2015-07-16 17:32:19 -07:00
Max Brunsfeld
958ace429f Fix buffer overflow in SpyReader 2015-07-16 17:29:16 -07:00
Max Brunsfeld
0b1d70db34 Always resolve ambiguities immediately
No more ambiguity nodes.
Also, when merging parse stacks, merge their successors if needed.
2015-07-15 13:15:11 -07:00
Max Brunsfeld
8c5c695f5a Reduce nesting in parse-stack spec 2015-07-10 17:50:38 -07:00
Max Brunsfeld
6846b1316e handle_error: respect head argument 2015-07-10 15:17:54 -07:00
Max Brunsfeld
d6a6b0a19b Represent ParseItemSets as ordered maps
This way, reductions will be added in a deterministic order
when constructing the parse table.
2015-07-10 09:17:42 -07:00
Max Brunsfeld
929897a78e Fix missing include 2015-07-09 23:09:46 -07:00
Max Brunsfeld
aff8bc3266 Split parse stack when there are multiple parse actions 2015-07-09 23:09:33 -07:00
Max Brunsfeld
f26ddf5187 Fix symbol name for ambiguity nodes 2015-07-08 17:31:21 -07:00
Max Brunsfeld
aabcb10cfb Respect expected_conflicts field when building parse table 2015-06-28 16:22:31 -05:00
Max Brunsfeld
c9a482bbf3 Add expected_conflicts field to grammar 2015-06-26 16:14:08 -05:00
Max Brunsfeld
36d9c3be14 Organize parse-stack spec 2015-06-18 17:03:17 -07:00
Max Brunsfeld
442db56b92 Use graph-structured parse stack in parser
Not using the splitting feature yet.
2015-06-18 17:03:17 -07:00
Max Brunsfeld
aaaa1c8a5d Encapsulate ParseStackNodes 2015-06-18 17:03:17 -07:00
Max Brunsfeld
6330ae997b Reduce along all possible parse-stack paths 2015-06-18 17:03:17 -07:00
Max Brunsfeld
381f89f8ba Create ambiguity nodes when joining stack heads 2015-06-18 17:03:16 -07:00
Max Brunsfeld
1ca5f4ab15 Clarify variable name in spec 2015-06-18 17:03:16 -07:00
Max Brunsfeld
b9dc92c36b Add EqualsTree matcher 2015-06-18 17:03:16 -07:00
Max Brunsfeld
d793eda5b5 Remove duplicated stack head-merging logic 2015-06-18 17:03:16 -07:00
Max Brunsfeld
9e57f2b881 Start work on graph-structured stack 2015-06-18 17:03:16 -07:00
Max Brunsfeld
755894b44d Allow multiple parse actions in parse table 2015-06-18 17:03:16 -07:00
Max Brunsfeld
25f8ecd85f 🎨 parser.c 2015-06-15 18:21:44 -07:00
Max Brunsfeld
3d0890eecf Preserve tokens within errors 2015-06-15 15:26:06 -07:00
Max Brunsfeld
0c4620f3ab Build with -g, -O0 for specs 2015-06-15 15:26:06 -07:00
Max Brunsfeld
44774119bf Use all caps for built-in symbol names 2015-06-15 15:26:05 -07:00
Max Brunsfeld
d5ce3a9b5a lexer: in error mode, continue until token is found 2015-06-15 15:26:05 -07:00
Max Brunsfeld
f7e4445358 Handle goto actions after reductions in a more standard way
Rather than letting the reduced tree become the new lookahead symbol,
and re-adding it to the stack via a subsequent shift action, just
add it to the stack as part of the reduce action. This is more in
line with the way LR is described traditionally.
2015-05-27 10:53:02 -07:00
Max Brunsfeld
59fd190695 Don't store lookahead_char field for non-error nodes 2015-05-24 14:43:54 -07:00
Max Brunsfeld
fd97b8a237 Dedup auxiliary repeat rules from different source rules 2015-05-02 20:42:47 -07:00
Max Brunsfeld
6431a5ee75 Use docker infrastructure on travis-ci 2015-04-17 11:27:40 -07:00
Max Brunsfeld
b4d93550b6 Remove const qualifier to appease gcc 2015-04-17 11:23:25 -07:00