Max Brunsfeld
8d1b9501ab
Fix integer comparison warnings
2015-11-20 11:47:39 -08:00
Max Brunsfeld
16692be210
Merge pull request #8 from maxbrunsfeld/glr-with-differing-lex-states
...
Handle ambiguities where each interpretation expects different lexical tokens
2015-11-20 00:18:08 -08:00
Max Brunsfeld
ee66f1e774
Make vector.h compile when included by C++, w/o clang extensions
2015-11-20 00:11:17 -08:00
Max Brunsfeld
c88e9044d5
Make stack popping more robust
2015-11-20 00:04:21 -08:00
Max Brunsfeld
64874449e4
Allow different parse stack heads to lex differently
2015-11-19 20:55:18 -08:00
Max Brunsfeld
484721b0c2
Assign tree parent pointers after parse is complete
2015-11-15 12:21:16 -08:00
Max Brunsfeld
ab34cfecd9
Replace TreeVector with a more generic Vector struct
2015-11-15 09:55:36 -08:00
Max Brunsfeld
0824d3e1f3
Only use first parse stack path during error recovery
2015-11-14 12:37:21 -08:00
Max Brunsfeld
a8817d38b2
Add link to other Wagner & Graham paper to README
2015-11-11 19:49:17 -08:00
Max Brunsfeld
46e99d3e42
Retrieve the shift action correctly when reducing and recovering
2015-11-11 17:53:45 -08:00
Max Brunsfeld
483577f00d
Fix error when merging nodes at the base of the parse stack
2015-11-11 17:31:40 -08:00
Max Brunsfeld
40a90b551a
Allow error recovery to look all the way to the bottom of the stack
...
Previously, there was a bug where the first node on the stack
would never be popped
2015-11-11 16:59:41 -08:00
Max Brunsfeld
1a5d5b3156
Make ambiguities resolve deterministically
...
In the future, they should resolve according to some kind of dynamic
precedence annotations provided in the grammars. For now, this at least makes
them fully deterministic, so that tests won't fail due to ambiguities resolving
differently after undone edits.
2015-11-11 16:54:03 -08:00
Max Brunsfeld
c7db4ec9f3
Don't count generated parsers in github language stats
2015-11-10 16:56:53 -08:00
Max Brunsfeld
d6f87fbb6b
Merge pull request #7 from maxbrunsfeld/more-string-escaping
...
Escape backslashes and quotes in symbol name strings
2015-11-09 09:36:53 -08:00
Max Brunsfeld
e11515fb74
Escape backslashes and quotes in symbol name strings
2015-11-09 09:33:24 -08:00
Max Brunsfeld
84f939ab4d
Merge pull request #6 from maxbrunsfeld/mb-fix-token-precedence-bug
...
Fix handling of changing precedence within lexical rules.
2015-11-08 13:50:24 -08:00
Max Brunsfeld
d5ce268074
Fix handling of changing precedence within lexical rules.
...
A precedence annotation wrapping a sequence of characters now only affects how
tightly those characters bind to *each other*, not how tightly they bind to the
preceding character.
This bug surfaced because a generated lexer was failing to recognize a '\n' character
as a token, instead treating it as ubiquitous whitespace. It made this error
because, even though anonymous ubiquitous tokens have the lowest precedence, the
character immediately *after* the '\n' was part of a normal token, which had
*normal* precedence (0). Advancing into that following token was incorrectly
prioritized above accepting the line-break token.
2015-11-08 13:36:15 -08:00
Max Brunsfeld
30b6530fd1
Account for parse stack merges when shifting
...
Previously, when the parse stack was split into 3 or more heads, it was
possible for head 3 to be accidentally skipped if head 2 merged with head 1.
2015-11-05 21:21:18 -08:00
Max Brunsfeld
a0eca388e8
Make fixture C grammar a subset of tree-sitter-c
2015-11-05 21:19:22 -08:00
Max Brunsfeld
4ab4fd7346
Merge pull request #4 from maxbrunsfeld/mb-precedence-handling-within-tokens
...
Make precedence more useful within tokens
2015-11-01 21:50:53 -08:00
Max Brunsfeld
7415c623aa
clang-format
2015-11-01 21:21:07 -08:00
Max Brunsfeld
5073af0d03
Extract helper method for precedence in lex_item_transitions
2015-11-01 21:20:59 -08:00
Max Brunsfeld
d7cb48aae7
Fix handling of precedence for repeat rules
2015-11-01 21:00:44 -08:00
Max Brunsfeld
d6ee28abd0
Make precedence more useful within tokens
...
Choose accept-token actions over advance actions if their rule has a higher precedence.
2015-11-01 12:48:27 -08:00
Max Brunsfeld
998ae533da
Make completion_status() a method on LexItem
2015-10-30 16:48:37 -07:00
Max Brunsfeld
c8be143f65
🔥 get_metadata function
2015-10-30 16:22:25 -07:00
Max Brunsfeld
73b3280fbb
Include precedence calculation in LexItemSet::transitions
2015-10-30 16:07:29 -07:00
Max Brunsfeld
e9be0ff24e
Make completion_status() a method on ParseItem
2015-10-30 14:07:33 -07:00
Max Brunsfeld
4850384b78
Include precedence calculation in ParseItemSet::transitions
2015-10-30 13:54:11 -07:00
Max Brunsfeld
433f060a5b
Fix stream overloads for inspecting PrecedenceRange and ParseItem
2015-10-30 10:45:46 -07:00
Max Brunsfeld
58b5a10607
Fix ParseItemSet::transitions spec description
2015-10-29 12:19:44 -07:00
Max Brunsfeld
a26d7849ce
Merge pull request #2 from robrix/get-symbol-names-from-documents
...
Get symbol names from documents
2015-10-29 10:51:13 -07:00
Rob Rix
f86789126d
Include the correct file.
2015-10-29 13:26:12 -04:00
Rob Rix
007f519028
Name the parameter.
2015-10-29 12:47:04 -04:00
Rob Rix
d5f6581531
Add the runtime file to the project.
2015-10-29 12:46:51 -04:00
Rob Rix
04f3bf0b32
Implement ts_language_symbol_count.
2015-10-29 12:45:28 -04:00
Rob Rix
3da510d53b
Add a prototype for the symbol count.
2015-10-29 12:44:28 -04:00
Rob Rix
ecf79564f0
Implement symbol name retrieval on TSLanguage.
2015-10-29 12:42:52 -04:00
Rob Rix
a176baa26f
Pass a language, rather than a document.
2015-10-29 12:41:21 -04:00
Rob Rix
09162d1981
Export the symbol over ts_language_….
2015-10-29 12:40:01 -04:00
Max Brunsfeld
a8ead10d6f
In lex error state, don't look for tokens that would match *any* line
2015-10-28 17:45:17 -07:00
Rob Rix
8143224098
Implement ts_document_symbol_name.
2015-10-28 17:13:31 -04:00
Rob Rix
63f1a618b4
Add a prototype for getting the name for a symbol from a document.
2015-10-28 17:12:43 -04:00
Max Brunsfeld
dba0726eef
clang format
2015-10-28 12:10:58 -07:00
Max Brunsfeld
f5d861a019
Fix bug where ts_stack_pop results were backwards for some stack configurations
2015-10-28 12:10:45 -07:00
Max Brunsfeld
36eae5d5e9
Add option to tree_string to include anonymous tokens
2015-10-28 12:09:28 -07:00
Max Brunsfeld
9b68ee62c8
Allow building specs w/ Release configuration
...
Fixes a build error that would happen when running 'make' with no arguments.
/cc @robrix
2015-10-27 09:58:27 -07:00
Max Brunsfeld
b61b27f22f
Handle inline ubiquitous that are used elsewhere in the grammar
2015-10-26 17:19:37 -07:00
Max Brunsfeld
b7e0cb1fc6
Revert 'Add reduce-extra actions for all symbols'
...
It only makes sense to add reduce-extra actions for those symbols that
have actions in the state the will be reduced to
2015-10-26 17:19:04 -07:00