Max Brunsfeld
3cb65c9c81
Make the EOF be an auxiliary symbol
...
This way, it couldn’t conflict if a user had a rule called “__END__”
2014-02-10 18:53:01 -08:00
Max Brunsfeld
8cce11a52a
Rename Character -> CharacterSet, CharacterMatch -> CharacterRange
2014-02-03 13:05:51 -08:00
Max Brunsfeld
5ed5ae7514
In LR(1) items, only store consumed symbols as booleans
...
the booleans represent the symbols point to auxiliary tokens
or not. This is all we need to know for the purpose of building
parse tables. Any other information just leads to redundant
parse states.
2014-01-31 00:13:05 -08:00
Max Brunsfeld
7f62e752be
Allow Character rules to handle arbitrary character sets
2014-01-30 08:34:20 -08:00
Max Brunsfeld
7d297f2f9e
Remove auxiliary rules from syntax tree
2014-01-28 22:09:37 -08:00
Max Brunsfeld
ca33c3942a
In parse table, store symbols as Symbol objects, not strings
2014-01-27 13:40:10 -08:00
Max Brunsfeld
5d9dc71da1
Remove default_actions from ParseTable
2014-01-25 23:40:51 -08:00
Max Brunsfeld
3ca2e126be
Remove unnecessary public START and END constants
2014-01-25 21:34:46 -08:00
Max Brunsfeld
3c42de1718
Fix errors in item set transition computation
2014-01-21 23:45:02 -08:00
Max Brunsfeld
1bf216b796
Rename next_{terminals,non_terminals} to first_set and follow_sets
...
This is to prepare for keeping track of lookahead symbols as part
of computing follow sets
2014-01-19 01:49:56 -08:00
Max Brunsfeld
289992344e
Make separate Item classes for parsing and lexing
2014-01-18 09:47:26 -08:00
Max Brunsfeld
d015d57a53
Remove ItemSet class; just use a set
2014-01-13 18:47:57 -08:00
Max Brunsfeld
a21c42ca85
Rename close_item_set -> item_set_closure
2014-01-12 09:13:53 -08:00
Max Brunsfeld
8881214f0d
Separate table building operations from Item, ItemSet value objects
2014-01-11 16:49:57 -08:00
Max Brunsfeld
92cec5758f
Reorganize compiler directory
2014-01-11 15:14:17 -08:00