Commit graph

1221 commits

Author SHA1 Message Date
Max Brunsfeld
de9b9db7c5 Remove accidentally-committed reference stack files 2016-08-29 13:07:46 -07:00
Max Brunsfeld
f209c24cf6 Trim trailing newlines from corpus texts 2016-08-29 13:00:28 -07:00
Max Brunsfeld
04de7cc208 Make script/test -S flag work when there are assertion failures 2016-08-29 12:37:58 -07:00
Max Brunsfeld
e7ed92f1df Replace ts_parser -> parser 2016-08-29 12:08:58 -07:00
Max Brunsfeld
607366a422 Add test script flag for piping stderr to dot to make an svg 2016-08-29 11:51:47 -07:00
Max Brunsfeld
e947d7e2ad Adjust test assertions for subtly different recoveries 2016-08-29 11:23:52 -07:00
Max Brunsfeld
1b8843dd41 Perform all possible reductions recursively upon detecting an error 2016-08-29 11:23:35 -07:00
Max Brunsfeld
a3c943d88e Fix failure to find repairs when extra tokens precede the detection point 2016-08-29 11:23:35 -07:00
Max Brunsfeld
dcf3beb393 Abandon parse versions with > 1 error more than the best version 2016-08-29 09:31:52 -07:00
Max Brunsfeld
4182de2975 Include each symbol's numeric value in generated code
Sometimes these are useful for debugging
2016-08-26 17:40:22 -07:00
Max Brunsfeld
fbad21be15 Merge branch 'master' into forward-move-error-recovery 2016-08-24 22:23:52 -07:00
Max Brunsfeld
7feff9643c Add .clang_complete file for Atom 2016-08-16 12:05:11 -07:00
Max Brunsfeld
4e6e996a76 Simplify skipping of reduced subtrees after errors 2016-08-15 17:37:00 -07:00
Max Brunsfeld
c067b30ce8 Fix handling of errors while in error state 2016-08-06 21:25:35 -07:00
Max Brunsfeld
b561000b2a When there's no error on the stack, keep only the best version 2016-08-06 21:24:20 -07:00
Max Brunsfeld
c984876e3a Remove stack versions that are worse than the finished tree 2016-08-06 21:22:44 -07:00
Max Brunsfeld
4feceabd58 Merge pull request #32 from tree-sitter/parse-table-compression
Parse table compression
2016-07-31 21:45:46 -07:00
Max Brunsfeld
f8c2e9d908 Include tree's original parse state in debug graphs 2016-07-31 21:35:53 -07:00
Max Brunsfeld
87ca3cb099 Reuse nodes based on state matching, not sentential form validity
I think that state matching is the only correct strategy for incremental
node reuse that is compatible with the new error recovery algorithm. It's
also simpler than the sentential-form algorithm. With the compressed parse
tables, state matching shouldn't be too conservative of a test.
2016-07-31 21:31:19 -07:00
Max Brunsfeld
0ee1994078 Don't have both shift and shift-extra actions in recovery states 2016-07-17 13:35:58 -07:00
Max Brunsfeld
1faa7c60f9 Log stack after pruning halted versions 2016-07-17 10:44:08 -07:00
Max Brunsfeld
1c66d90203 Mark repeat symbols as anonymous 2016-07-17 10:44:08 -07:00
Max Brunsfeld
fa8993460e Don't reuse unexpected tokens for now 2016-07-17 07:25:13 -07:00
Max Brunsfeld
285f2272fd Move random string helpers into a separate file 2016-07-17 06:22:05 -07:00
Max Brunsfeld
9c37c06ec7 Remove unnecessary parser debugger accessors 2016-07-04 12:20:23 -07:00
Max Brunsfeld
c3a242740b Allow lookahead to be broken down further after performing reductions 2016-07-04 12:20:23 -07:00
Max Brunsfeld
0e2bbbd7ee Compress parse table by allowing reductions w/ unexpected lookaheads 2016-07-04 12:20:23 -07:00
Max Brunsfeld
d554fab5b5 Remove unused tree state constant 2016-06-27 14:39:12 -07:00
Max Brunsfeld
8c26d99353 Store error recovery actions in the normal parse table 2016-06-27 14:07:47 -07:00
Max Brunsfeld
08e47001f1 Silence mismatched delete warning in spec helper 2016-06-27 13:38:49 -07:00
Max Brunsfeld
bf245f016c Check for better stack versions before skipping a node after reducing it 2016-06-26 22:51:48 -07:00
Max Brunsfeld
9538b5b879 Don't count extra trees toward stack versions' error costs 2016-06-26 22:46:40 -07:00
Max Brunsfeld
877fe1f682 Fix incorrect exta entry in symbol metadata table 2016-06-26 22:14:31 -07:00
Max Brunsfeld
6fd3edceae Fix logic for inserting leading & trailing extras into root node on acceptance 2016-06-26 11:57:42 -07:00
Max Brunsfeld
9972709e43 Allow error recovery to skip non-terminal nodes after error detection 2016-06-24 10:28:05 -07:00
Max Brunsfeld
76c6e47d49 Fix assignment of parser split condition 2016-06-23 13:41:38 -07:00
Max Brunsfeld
df09f37a6c Tweak parse log messages 2016-06-23 11:42:43 -07:00
Max Brunsfeld
09b019c530 Fix test for invalid blank input 2016-06-23 09:24:26 -07:00
Max Brunsfeld
c6e9b32d3f Print all the same parse log messages for both debugging methods 2016-06-22 22:36:11 -07:00
Max Brunsfeld
58b1d88950 Clean up breakdown_top_of_stack function 2016-06-22 22:32:38 -07:00
Max Brunsfeld
f425fbad18 Break down reused node on stack whenever lookahead can't be reused 2016-06-22 22:03:27 -07:00
Max Brunsfeld
16ca038556 Don't accept input with errors on the stack 2016-06-22 21:05:05 -07:00
Max Brunsfeld
b40c0326dc Include parse tree rendering at end of debug output 2016-06-22 21:04:35 -07:00
Max Brunsfeld
57f669dfda clang-format 2016-06-22 14:11:08 -07:00
Max Brunsfeld
3ceb3a1eb2 Clean up main parse loop 2016-06-22 14:10:54 -07:00
Max Brunsfeld
e7ccebc153 Avoid duplicate counting of trees when repairing errors 2016-06-21 22:58:06 -07:00
Max Brunsfeld
43ae8235fd Remove the error action; a lack of actions implies an error. 2016-06-21 22:53:48 -07:00
Max Brunsfeld
6a7a5cfc3f Remove nesting in parse action struct 2016-06-21 21:36:33 -07:00
Max Brunsfeld
634ee29d10 Clean up main consume_lookahead loop 2016-06-21 21:27:33 -07:00
Max Brunsfeld
38c144b4a3 Refine logic for deciding when tokens need to be re-lexed
* While generating the lex table, note which tokens can match the
  same string. A token needs to be relexed when it has possible
  homonyms in the current state.
* Also note which tokens can match substrings of each other tokens.
  A token needs to be relexed when there are viable tokens that
  could match longer strings in the current state and the next
  token has been edited.
* Remove the logic for marking tokens as fragile on creation.
* Store the reusability/non-reusability of symbols off of individual
  actions and onto the entire entry for the state & symbol.
2016-06-21 07:28:04 -07:00