Commit graph

669 commits

Author SHA1 Message Date
Max Brunsfeld
86bd6eaa75 Use make_tuple, not initializer list syntax
gcc requires it. clang doesn't.
2015-03-16 22:00:07 -07:00
Max Brunsfeld
c59c98251b Fix misplaced include and using directive 2015-03-16 18:33:11 -07:00
Max Brunsfeld
044c1edd51 Remove vim config files 2015-03-16 12:42:34 -07:00
Max Brunsfeld
7872ddd21b Improve reduce/reduce conflict error message 2015-03-16 11:59:45 -07:00
Max Brunsfeld
9a198562e0 Treat parse conflicts as errors in grammar compilation
For now, only reduce/reduce conflicts w/ no tie-breaking precedence
are treated as errors. The rest are dropped, because shift/reduce
conflicts are currently very common because we don't have a way
of specifying associativity along w/ precedence.
2015-03-15 20:31:41 -07:00
Max Brunsfeld
8bd11e1b58 Fix parser debug messages in spec 2015-03-07 16:40:39 -08:00
Max Brunsfeld
b0a89efb35 Tweak parse debugging output 2015-03-07 16:35:11 -08:00
Max Brunsfeld
3458fa6e50 Fix non-deterministic order in conflict description 2015-03-07 11:02:21 -08:00
Max Brunsfeld
2d436cf141 Identify fragile reductions at compile time 2015-02-21 15:11:03 -08:00
Max Brunsfeld
a92067702d Use a more exact test for reusability of error nodes
Based on the concept of node fragility from wagner's incremental
parsing paper
2015-02-21 10:39:58 -08:00
Max Brunsfeld
75da0a5774 Add language specs for removal of characters 2015-02-21 01:28:33 -08:00
Max Brunsfeld
ccb0d0d043 Store parse items' list of consumed symbols
Not just the consumed symbol count.
2015-02-20 22:53:27 -08:00
Max Brunsfeld
7a71d91fb6 Add configure flag for excluding libprofiler 2015-02-16 22:09:30 -08:00
Max Brunsfeld
074a7884aa Fix uninitialized variable error 2015-02-16 22:09:30 -08:00
Max Brunsfeld
22a4c5213d Remove -O0 compile flag in tests 2015-02-15 21:23:17 -08:00
Max Brunsfeld
d51d0aa5d5 Add linker flag and test script for google-perftools 2015-02-15 21:23:17 -08:00
Max Brunsfeld
109b5616d3 Remove unused arg to action_takes_precedence 2015-01-17 14:14:49 -08:00
Max Brunsfeld
160fca6579 Refactor avoidance of redundant repeat rules 2015-01-14 21:11:19 -08:00
Max Brunsfeld
a0d9da9d5c Rename static 'Build' methods to 'build' 2015-01-14 21:11:05 -08:00
Max Brunsfeld
34d96909d1 Move {Syntax,Lexical}Grammar into separate files 2015-01-14 21:10:41 -08:00
Max Brunsfeld
0d267e41aa Replace LexConflictManager class with action_takes_precedence function 2015-01-11 19:50:58 -08:00
Max Brunsfeld
5dc08ccce9 Include names of in-progress rules in shift/reduce conflicts 2014-11-05 18:39:50 -08:00
Max Brunsfeld
ec31249fe6 Add commas in expected message in document debugging spec 2014-11-01 17:03:32 -07:00
Max Brunsfeld
bee756b414 Regenerate fixture parsers with better token names 2014-11-01 17:00:49 -07:00
Max Brunsfeld
fc83322832 Handle more special characters in c symbol names 2014-10-31 18:37:56 -07:00
Max Brunsfeld
4fc960e4ec Give extracted string/regex tokens more descriptive names 2014-10-31 08:56:58 -07:00
Max Brunsfeld
290cbefe6d Add commas between parameters in debug statements
This way, the debug lines can be parsed more unambiguously
2014-10-29 18:16:34 -07:00
Max Brunsfeld
3bc4971fd5 Don't reuse any nodes that contain an error as a child node 2014-10-23 12:50:37 -07:00
Max Brunsfeld
647c3e2010 Add tests for editing all language examples
This drove out several fixes to the incremental parsing algorithm.
There are a few examples which still don't work and which have
been explicitly excluded, for now.
2014-10-22 20:10:08 -07:00
Max Brunsfeld
4d652aac45 Use stdbool in tree.h 2014-10-22 20:10:08 -07:00
Max Brunsfeld
de9a48d11f Tweak debugging in parser and lexer 2014-10-22 20:10:08 -07:00
Max Brunsfeld
d8099826f9 Workaround duplicate symbol problem in golang grammar
Currently, a grammar can't have a string rule and a keyword rule with
the same string.
2014-10-21 13:03:50 -07:00
Max Brunsfeld
8a03bd8978 Comment out some parts of JS grammar to speed up tests 2014-10-21 09:01:56 -07:00
Max Brunsfeld
eaeb51a96f Don't open parser C file until code is generated 2014-10-21 08:49:42 -07:00
Max Brunsfeld
91cf35b72c Rework javascript fixture grammar 2014-10-21 08:49:16 -07:00
Max Brunsfeld
8134b64d00 Remove repetition from language spec descriptions 2014-10-19 12:36:43 -07:00
Max Brunsfeld
38ad248a53 Inline variable in parser_set_debugger 2014-10-18 18:36:39 -07:00
Max Brunsfeld
afd34e8875 Update todo 2014-10-17 23:52:53 -07:00
Max Brunsfeld
c26cee5d18 Remove debugger in parser spec 2014-10-17 23:47:20 -07:00
Max Brunsfeld
0962b21dd3 Fix parse errors with tree-reuse
- Don't reuse error nodes
- When re-using nodes, update lexer's token_end_position
2014-10-17 23:20:36 -07:00
Max Brunsfeld
ae0a7fc97d Add logging debugger for debugging failing tests 2014-10-17 23:05:08 -07:00
Max Brunsfeld
41a067fef9 Fix build warnings in document spec 2014-10-17 21:27:49 -07:00
Max Brunsfeld
8cf800ef5d Unify debugging API for parsing and lexing 2014-10-17 17:52:54 -07:00
Max Brunsfeld
7498725d7f Move lexer debugging logic out of public header 2014-10-17 16:20:01 -07:00
Max Brunsfeld
5c600942df Inline some helper functions for lexer 2014-10-17 15:22:01 -07:00
Max Brunsfeld
ad9aee30e0 Fix travis build
Don't use C99 struct literal syntax in debugger header,
because it's included by the tests, which are c++
2014-10-16 12:36:08 -07:00
Max Brunsfeld
22ee68e1a9 Make node for each var assignment in JS grammar 2014-10-15 15:04:57 -07:00
Max Brunsfeld
d3137c6ac6 Organize parser spec 2014-10-14 23:23:12 -07:00
Max Brunsfeld
d33b074c30 Don't call input::seek_fn unnecessarily 2014-10-14 22:56:42 -07:00
Max Brunsfeld
b5d022a70c Fix missing field warnings for debugger structs 2014-10-14 22:50:24 -07:00