Max Brunsfeld
fd97b8a237
Dedup auxiliary repeat rules from different source rules
2015-05-02 20:42:47 -07:00
Max Brunsfeld
b4d93550b6
Remove const qualifier to appease gcc
2015-04-17 11:23:25 -07:00
Max Brunsfeld
a54d293317
Include 'goal' non-terminal names in conflict description
2015-04-16 17:43:30 -07:00
Max Brunsfeld
e8db35af6b
Avoid creating redundant auxiliary repeat rules
2015-04-16 17:42:22 -07:00
Max Brunsfeld
9ef52ce2fb
Include precedences in unresolved conflict messages
2015-03-23 22:56:17 -07:00
Max Brunsfeld
b1f8ba6202
Replace {left,right}_assoc w/ prec, with an associativity argument
2015-03-23 21:06:31 -07:00
Max Brunsfeld
a19b0e75ac
🔥 keyword and keypattern functions
...
Just make strings have higher precedence than regexps.
2015-03-22 16:00:26 -07:00
Max Brunsfeld
80ec303b10
Replace prec rule w/ left_assoc and right_assoc
...
Consider shift/reduce conflicts to be compilation errors unless
they are resolved by a specified associativity.
2015-03-16 23:12:34 -07:00
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
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
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
ccb0d0d043
Store parse items' list of consumed symbols
...
Not just the consumed symbol count.
2015-02-20 22:53:27 -08:00
Max Brunsfeld
074a7884aa
Fix uninitialized variable error
2015-02-16 22:09:30 -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
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
ef2084d3c8
Tweak parse debugging
2014-10-13 21:20:08 -07:00
Max Brunsfeld
71cc7a2dc2
Tidy up remaining files in build_tables namespace
2014-10-13 01:02:18 -07:00
Max Brunsfeld
9fd2821389
Fix TODO comment in build_lex_table
2014-10-12 13:53:31 -07:00
Max Brunsfeld
6415690738
Tidy up get_metadata function
2014-10-12 13:04:11 -07:00
Max Brunsfeld
b23caf366f
Tidy up first_symbols function
2014-10-12 13:02:39 -07:00
Max Brunsfeld
faecdcbb2f
Tidy up build_tables function
2014-10-12 12:57:46 -07:00
Max Brunsfeld
8379d9387c
Tidy up build_parse_table function
2014-10-12 12:56:04 -07:00
Max Brunsfeld
1fb52eacab
Tidy up build_lex_table function
2014-10-12 12:44:16 -07:00
Max Brunsfeld
0daada6921
Tidy up c-code generator
2014-10-12 12:33:45 -07:00
Max Brunsfeld
5b624d37f6
Use consistent iteration in c code generator
2014-10-12 11:57:52 -07:00
Max Brunsfeld
aae6f6de14
Remove whitespace between template closing tags
2014-10-12 11:51:12 -07:00
Max Brunsfeld
3bcb221379
Include non-terminal lookahead symbols for reduction actions
...
This is necessary for re-using the right subtree after an edit
2014-10-10 12:06:16 -07:00
Max Brunsfeld
78c5fe8e02
clang-format
2014-10-03 15:44:21 -07:00
Max Brunsfeld
070dc76050
Generate correct C literals for non-ascii characters
2014-09-28 18:40:15 -07:00
Max Brunsfeld
cb5ecbd491
Handle string and regex rules w/ non-ascii chars
2014-09-28 18:21:22 -07:00
Max Brunsfeld
e0185f84fc
Print non-ascii characters as numbers in CharacterRange::to_string
2014-09-28 18:19:42 -07:00
Max Brunsfeld
68d6e242ee
Fix parsing of wildcard patterns at the ends of documents
...
- Remove special EOF handling from lexer
- Explicitly exclude the EOF character from all-inclusive character sets.
2014-09-11 13:10:23 -07:00
Max Brunsfeld
209992c832
Remove trailing whitespace
2014-09-10 13:19:45 -07:00
Max Brunsfeld
9a93f6bdef
Clean up prepare_grammar function
2014-09-10 13:02:31 -07:00
Max Brunsfeld
cd8a683229
Improve error messages for invalid ubiquitous tokens
2014-09-10 13:02:16 -07:00
Max Brunsfeld
2e7ffb4d14
Tweak auto-format settings
...
Prefer lines that exceed 80 characters by a small margin to
line breaks in argument lists
2014-09-09 13:15:40 -07:00
Max Brunsfeld
8f109504a8
Clean up extract_tokens function
2014-09-09 12:57:29 -07:00
Max Brunsfeld
9ee0665fad
Remove unused code in extract_tokens.cc
2014-09-09 12:34:15 -07:00
Max Brunsfeld
e181426f6f
Use make_tuple rather than init list syntax for gcc
2014-09-07 22:58:45 -07:00
Max Brunsfeld
1ff7cedf40
Unify ubiquitous tokens and lexical separators in API
2014-09-07 22:16:45 -07:00
Max Brunsfeld
a46f9d950c
Handle '\s' correctly in regexps
2014-09-07 16:05:43 -07:00