Max Brunsfeld
5e4bdcbaf8
Simplify handling of precedence & associativity in productions
2015-10-05 16:56:11 -07:00
Max Brunsfeld
6d748a6714
Store parse actions' precedences as ranges, not sets
2015-10-05 16:05:19 -07:00
Max Brunsfeld
ef2acf9496
Make ParseItemSet & LexItemSet classes
2015-10-05 15:13:43 -07:00
Max Brunsfeld
f01972c64e
Reorganize ParseItemSet and LexItemSet
2015-10-05 15:09:06 -07:00
Max Brunsfeld
39a0934088
Remove now-unused symbol rule-transition functions
2015-10-04 22:20:34 -07:00
Max Brunsfeld
c4ef228397
Share common lookahead sets between parse item sets
2015-10-04 21:33:54 -07:00
Max Brunsfeld
a0bf3d0bd8
Compute closures of item sets lazily
2015-10-04 00:21:29 -07:00
Max Brunsfeld
ebc52f109d
Merge branch 'flatten-rules-into-productions'
...
This branch had diverged considerably, so merging it required changing a lot
of code.
Conflicts:
project.gyp
spec/compiler/build_tables/action_takes_precedence_spec.cc
spec/compiler/build_tables/build_conflict_spec.cc
spec/compiler/build_tables/build_parse_table_spec.cc
spec/compiler/build_tables/first_symbols_spec.cc
spec/compiler/build_tables/item_set_closure_spec.cc
spec/compiler/build_tables/item_set_transitions_spec.cc
spec/compiler/build_tables/rule_can_be_blank_spec.cc
spec/compiler/helpers/containers.h
spec/compiler/prepare_grammar/expand_repeats_spec.cc
spec/compiler/prepare_grammar/extract_tokens_spec.cc
src/compiler/build_tables/action_takes_precedence.h
src/compiler/build_tables/build_parse_table.cc
src/compiler/build_tables/first_symbols.cc
src/compiler/build_tables/first_symbols.h
src/compiler/build_tables/item_set_closure.cc
src/compiler/build_tables/item_set_transitions.cc
src/compiler/build_tables/parse_item.cc
src/compiler/build_tables/parse_item.h
src/compiler/build_tables/rule_can_be_blank.cc
src/compiler/build_tables/rule_can_be_blank.h
src/compiler/prepare_grammar/expand_repeats.cc
src/compiler/prepare_grammar/extract_tokens.cc
src/compiler/prepare_grammar/extract_tokens.h
src/compiler/prepare_grammar/prepare_grammar.cc
src/compiler/rules/built_in_symbols.cc
src/compiler/rules/built_in_symbols.h
src/compiler/syntax_grammar.cc
src/compiler/syntax_grammar.h
2015-10-02 23:46:39 -07:00
Max Brunsfeld
dda3939adf
Fix typo in javascript corpus
2015-09-22 22:39:41 -07:00
Max Brunsfeld
90862dd18f
Add some edit sequences to corpus tests
2015-09-22 21:19:19 -07:00
Max Brunsfeld
d032114d7a
js grammar - recover from errors on semicolons but not line-breaks
2015-09-22 21:12:28 -07:00
Max Brunsfeld
32536665f9
Remove weak build_parse_table spec
...
This is best covered by integration tests
2015-09-22 20:03:00 -07:00
Max Brunsfeld
aba8af9e5b
Cleanup debug logging in parser
2015-09-22 19:35:13 -07:00
Max Brunsfeld
b7b082d9b1
extract helper fn for testing edit sequences against the corpus
2015-09-20 13:38:46 -07:00
Max Brunsfeld
010a606b76
Add undo method to SpyInput
2015-09-19 14:46:14 -07:00
Max Brunsfeld
511e52ab55
Clean up SpyInput test helper
2015-09-19 13:29:30 -07:00
Max Brunsfeld
cdadee4610
Clean up language specs file
2015-09-18 23:42:20 -07:00
Max Brunsfeld
f37f73f92f
Add ability to edit multiple times between parses
2015-09-18 23:20:06 -07:00
Max Brunsfeld
6254f45c1b
Rename ParseStack -> Stack
2015-09-18 22:02:06 -07:00
Max Brunsfeld
b3d883e128
Store edits in trees, not by splitting stack
...
This allows for multiple edits per parse, though it is not exposed through
the API yet
2015-09-18 22:02:06 -07:00
Max Brunsfeld
0467d190fe
Add ts_tree_edit function
2015-09-18 22:02:06 -07:00
Max Brunsfeld
66ad271c82
Add Document parse_count() method, for tracking if trees are still valid
2015-09-10 14:23:42 -07:00
Max Brunsfeld
e6f3239bef
Move stream operator definitions to spec helpers
...
This is one less thing for users to worry about when compiling and linking
the library itself
2015-09-10 10:12:11 -07:00
Max Brunsfeld
a2d817f0f0
Remove unnecessary include from runtime spec-helper
2015-09-09 12:59:27 -07:00
Max Brunsfeld
67241e3052
Don't use std::set in public compiler header
...
Just use vectors
2015-09-08 23:43:45 -07:00
Max Brunsfeld
252fa7b631
Add Document getter methods for input, language
2015-09-08 23:33:43 -07:00
Max Brunsfeld
ebd60213d9
Drop release functions from callback structs
...
The caller can just as easily take care of the cleanup explicitly
2015-09-08 23:24:33 -07:00
Max Brunsfeld
7ee5eaa16a
Rename node accessor methods
...
Instead of child() vs concrete_child(), next_sibling() vs next_concrete_sibling(), etc,
the default is switched: child() refers to the concrete syntax tree, and named_child()
refers to the AST. Because the AST is abstract through exclusion of some nodes, the
names are clearer if the qualifier goes on the AST operations
2015-09-08 23:16:24 -07:00
Max Brunsfeld
245daffbc4
Add {next,prev}_concrete_sibling Node methods
2015-09-08 21:43:37 -07:00
Max Brunsfeld
c3f3f19ea8
Add concrete_child and concrete_child_count Node methods
2015-09-08 09:53:26 -07:00
Max Brunsfeld
557c8c7f28
Remove unnecessary test helpers
2015-09-06 17:07:04 -07:00
Max Brunsfeld
f9316933ad
Refactor logic for marking '_'-prefixed rules as hidden
2015-09-06 16:53:13 -07:00
Max Brunsfeld
9591c88f39
In runtime, distinguish between anonymous and hidden nodes
2015-09-06 00:12:37 -07:00
Max Brunsfeld
5982b77c97
In compiler, distinguish between anonymous tokens and hidden rules
2015-09-05 22:28:55 -07:00
Max Brunsfeld
4b270c8604
Use 2-space indent in example grammars
2015-09-03 18:01:30 -07:00
Max Brunsfeld
bd77ab1ac9
Move public rule functions out of rule namespace
...
This way, there's only one public namespace: tree_sitter
2015-09-03 17:49:20 -07:00
Max Brunsfeld
eb8ef59869
Move corpus files to fixtures/corpus directory
2015-09-02 17:04:04 -07:00
Max Brunsfeld
53926c467e
Don't automatically hide singleton nodes
2015-09-02 16:36:29 -07:00
Max Brunsfeld
acf9280eda
Make expression and statement rules hidden in javascript grammar
2015-09-02 13:05:54 -07:00
Max Brunsfeld
97bb7a26cf
Fix precedence calculations when building parse table
...
* Recurse into choice rules
* Compute reduction precedence differently than shift precedence
2015-09-02 13:05:54 -07:00
Max Brunsfeld
14d7ebb7da
Leave newlines in javascript test programs
2015-08-23 10:42:06 -07:00
Max Brunsfeld
21258e6a9e
Remove 'document' wrapper node
2015-08-22 10:48:34 -07:00
Max Brunsfeld
d910a2d0e7
Rename node position to offset
2015-08-16 10:51:34 -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
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
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