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
e7838d520a
Remove invalid assertion in ts_tree_edit
2015-09-22 21:02:25 -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
7be067a2e9
Guard for null tree in ts_document_edit
2015-09-20 13:39:18 -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
673ca411b1
Fix lint errors
2015-09-19 13:19:49 -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
296d8cc1e8
clang-format
2015-09-13 19:41:11 -07:00
Max Brunsfeld
c09947146a
Remove not-necessarily-valid assertion
2015-09-10 16:26:23 -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
2869458ce9
Update todo
2015-09-10 11:50:51 -07:00
Max Brunsfeld
736c78b095
Update readme
2015-09-10 11:43:55 -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
f5f24a708e
Remove unnecessary named TSTreeOptions struct
2015-09-09 13:00:07 -07:00
Max Brunsfeld
a2d817f0f0
Remove unnecessary include from runtime spec-helper
2015-09-09 12:59:27 -07:00
Max Brunsfeld
fe3be2aa53
Optimize Node parent() method
2015-09-09 12:43:35 -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
e386c634aa
Remove unused Grammar methods
2015-09-03 17:19:43 -07:00
Max Brunsfeld
0600f31847
🎨 Remove weird reference variables
2015-09-03 17:13:56 -07:00
Max Brunsfeld
eb8ef59869
Move corpus files to fixtures/corpus directory
2015-09-02 17:04:04 -07:00
Max Brunsfeld
bc0e290c17
Don't use delegating constructor for MetadataRange
2015-09-02 16:49:31 -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
76e2067ee0
Remove unused metadata key
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
6933d7b425
🎨 naming conventions
2015-08-16 20:05:47 -07:00