Commit graph

855 commits

Author SHA1 Message Date
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
Max Brunsfeld
e543661498 Fix typo: LB -> LF 2015-10-26 16:55:59 -07:00
Max Brunsfeld
bad1bff3bb Sanitize line breaks in symbol names 2015-10-26 13:36:31 -07:00
Max Brunsfeld
c885eea706 Add current position to lexer debug message 2015-10-26 12:47:54 -07:00
Max Brunsfeld
1829b34c6f Fix child count error when documents starts w/ ubiquitous tokens 2015-10-24 13:45:42 -07:00
Max Brunsfeld
1babdc43e1 Add reduce-extra actions for all symbols 2015-10-24 12:49:26 -07:00
Max Brunsfeld
44d3e4228e Show precedences and associativities in parse conflicts 2015-10-24 12:49:04 -07:00
Max Brunsfeld
500533476b Fix bugs in handling multiple simultaneous ambiguities 2015-10-22 11:42:38 -07:00
Max Brunsfeld
0955f660d0 Add ts_document_invalidate, for forcing a full re-parse 2015-10-18 13:05:40 -07:00
Max Brunsfeld
1983bcfb60 Fix conflation of finished items w/ different precedence 2015-10-18 12:51:32 -07:00
Max Brunsfeld
84fe01e145 Update README to reflect API changes 2015-10-16 00:15:25 -07:00
Max Brunsfeld
8725e96a65 Fix item-set-closure bug w/ empty productions 2015-10-15 23:59:47 -07:00
Max Brunsfeld
216ce8c80b Rename receiver parameter to 'self' 2015-10-14 22:14:08 -07:00
Max Brunsfeld
02e549202f Improve parse conflict reporting 2015-10-14 22:14:08 -07:00