Max Brunsfeld
820b6f4020
Fix infinite loops during table generation for left-recursive rules
...
Add function calls for arbitrary expressions and dot property access to javascript grammar
2014-03-26 22:43:08 -07:00
Max Brunsfeld
3f770ff3c3
Remove unused consumed_symbols vector from parse items
2014-03-26 21:04:11 -07:00
Max Brunsfeld
d957021982
Removed unused constant in stack.c
2014-03-26 20:50:55 -07:00
Max Brunsfeld
05e16a8c46
Remove ordering of parse and lex items
...
Using an unordered_map and unordered_set to store these
speeds up grammar compilation significantly. The ordering
method on items was using the rules' .to_string method to
compute the order, which was not a meaningful comparison,
and was probably slow.
2014-03-26 13:13:22 -07:00
Max Brunsfeld
4454925b5a
Clean up parser macros more
2014-03-26 13:03:12 -07:00
Max Brunsfeld
6a0e2c08e6
Add more features to javascript grammar
2014-03-26 08:23:13 -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
059f7ff9d5
Add else blocks to javascript grammar
2014-03-25 23:40:53 -07:00
Max Brunsfeld
f601322956
Clean up macros in parser.h
2014-03-25 19:51:34 -07:00
Max Brunsfeld
80b19cbb83
Construct entire parse table statically
...
This removes the need for the 'init_parse_table' function,
which was not really thread safe
2014-03-25 19:34:17 -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
2df56f01c8
Remove public hidden symbol function
...
Now, you can't a particular occurrence of a symbol
in a grammar. You can only hide a symbol globally
(right now, by beginning its name with an underscore).
2014-03-25 08:16:26 -07:00
Max Brunsfeld
3f0203d928
Clean up character set spec
2014-03-24 22:07:25 -07:00
Max Brunsfeld
d7eca30e58
Fix travis-ci compile error in token extractor
2014-03-24 22:07:25 -07:00
Max Brunsfeld
42214ba0eb
Add if statements to javascript grammar
2014-03-24 19:18:20 -07:00
Max Brunsfeld
aac0786449
Resolve token conflicts by tokens' order in grammar
2014-03-24 19:18:06 -07:00
Max Brunsfeld
2a5dd3434f
Fix bug in character set intersection calculation
2014-03-24 19:17:25 -07:00
Max Brunsfeld
9cb92a0a96
Remove code related to old error recovery function
2014-03-24 13:17:38 -07:00
Max Brunsfeld
48baf056b4
Store grammars' rules in vectors, not maps
...
This way, we can keep of the order in which the rules
were given, for resolving reduce/reduce conflicts.
2014-03-24 13:17:38 -07:00
Max Brunsfeld
671f1a1ddc
Start work on javascript grammar
2014-03-24 09:14:29 -07:00
Max Brunsfeld
fd226a6bfe
Clean up test that compiles example grammars
2014-03-24 07:26:06 -07:00
Max Brunsfeld
06cd18b483
Put example grammars in tree_sitter::examples ns
2014-03-24 07:19:31 -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
50a90e456b
Handle * quantifier in regex patterns
2014-03-22 20:08:11 -07:00
Max Brunsfeld
57ed6da225
Make explicit char * -> string conversion in test helper
...
The version of clang on travis-ci seems to not allow this
conversion to be made implicitly
2014-03-22 19:27:07 -07:00
Max Brunsfeld
13009e52a5
Clean
2014-03-22 15:59:21 -07:00
Max Brunsfeld
0d3fe99ef9
Fix regex in language test table reader
2014-03-22 15:56:02 -07:00
Max Brunsfeld
c40411b4d1
Handle unexpected tokens properly
...
Also, add null and boolean values to json grammar
2014-03-22 15:46:58 -07:00
Karen Wang and Max Brunsfeld
f248ece3aa
Use table-driven tests for specific parsers
2014-03-22 15:19: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
a3a7546450
In SpyReader, store entire strings read, not individual chunks
...
Makes assertions easier to write. We don't need to assert
that the strings were read chunk by chunk.
2014-03-18 13:23:00 -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
464a0e8dad
Clean up parser header further
2014-03-15 15:15:59 -07:00
Max Brunsfeld
da992b77ff
Rename 'parse_config' export -> 'parser'
2014-03-15 14:48:28 -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
maxbrunsfeld
a733d31634
Fix spec wording in follow sets spec
2014-03-12 13:06:02 -07:00
Max Brunsfeld
dbaacee497
Fix integer type warnings in json parser spec
2014-03-12 08:18:20 -07:00
Max Brunsfeld
ff0c8a98b8
Consolidate reading of input chunks in parser
2014-03-11 12:43:13 -07:00
Max Brunsfeld
42e9a264f3
In parser, read chunked input correctly
2014-03-10 13:25:31 -07:00
Max Brunsfeld
3aaa08b948
Fix some egregiously long lines
2014-03-09 23:58:25 -07:00