Commit graph

6541 commits

Author SHA1 Message Date
Max Brunsfeld fd0d77ef8b Separate auxiliary rules from user-specified rules 2014-01-28 13:27:30 -08:00
Max Brunsfeld 19e5b2a563 Make token extraction work for repeat rules 2014-01-28 12:52:29 -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 0877d01194 Add stream operator for parse states 2014-01-26 16:38:41 -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 5eb5b61c14 Don’t pass rule names to code generator separately from parse tables 2014-01-25 20:45:00 -08:00
Max Brunsfeld b85b15db42 Refactor extract tokens function 2014-01-24 23:41:43 -08:00
Max Brunsfeld 67fa81d079 Convert repeat rules into pairs of recursive rules 2014-01-24 18:27:29 -08:00
Max Brunsfeld cbcf28f9d4 Update todo 2014-01-24 00:00:31 -08:00
Max Brunsfeld 8208aae060 Fix transitions for sequences whose left side can be blank 2014-01-23 23:56:37 -08:00
Max Brunsfeld 5776846227 Make compile take a name argument
Start work on JSON fixture grammar
2014-01-23 13:48:07 -08:00
Max Brunsfeld bb42543f1b Fix broken compiler test 2014-01-23 13:10:37 -08:00
Max Brunsfeld 432e97e063 Improve parser runtime specs 2014-01-23 13:00:08 -08:00
Max Brunsfeld 8a317f6918 Manage lookahead symbol correctly after a reduction 2014-01-22 23:04:29 -08:00
Max Brunsfeld e174b89133 Treat end of input like a normal token 2014-01-22 23:04:11 -08:00
Max Brunsfeld 3c42de1718 Fix errors in item set transition computation 2014-01-21 23:45:02 -08:00
Max Brunsfeld be5e406c96 Do less work when loading build_tables spec 2014-01-21 23:35:04 -08:00
Max Brunsfeld 1c747f20a2 Print expected symbol names in parse errors 2014-01-21 23:35:04 -08:00
Max Brunsfeld 42f6481910 Move stream operators for container types to separate header file 2014-01-21 23:35:04 -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 29f73afbc5 Compute FIRST sets correctly 2014-01-13 12:57:48 -08:00
Max Brunsfeld 4cacdcba70 Fix parser position in parse error messages 2014-01-13 12:57:12 -08:00
Max Brunsfeld a21c42ca85 Rename close_item_set -> item_set_closure 2014-01-12 09:13:53 -08:00
Max Brunsfeld 9231fa6095 Consolidate boilerplate in C headers 2014-01-11 18:16:52 -08:00
Max Brunsfeld 3f4cde7488 Move parser functions to the header
- this way they can be inlined by the compiler if need be
2014-01-11 18:15:55 -08:00
Max Brunsfeld 7a3092b765 Refactor parser error messages
- move message generation to TSParseError,
  so that Parser doesn’t need to import <string>, and can
  be compiled as plain C.
2014-01-11 17:59:45 -08:00
Max Brunsfeld f342067293 Clean up specs 2014-01-11 17:08:32 -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
Max Brunsfeld 023a0c4f70 Fix a spec 2014-01-11 13:41:31 -08:00
Max Brunsfeld 2894ad7447 Improve parser error messages 2014-01-09 13:31:30 -08:00
Max Brunsfeld 55809f702d Add parser error messages 2014-01-08 18:35:16 -08:00
Max Brunsfeld 614e497ac4 Start building AST in parser 2014-01-07 21:50:32 -08:00
Max Brunsfeld 5813816179 Start work on implementing parser runtime 2014-01-05 15:43:00 -08:00
Max Brunsfeld 0985fa3008 Collapse rules that contain only a single token 2014-01-05 01:19:32 -08:00
Max Brunsfeld 04d18b56ed Cleanup 2014-01-04 15:30:05 -08:00
Max Brunsfeld 29c81167c0 Remove subclasses of Symbol for terminals and non-terminals 2014-01-04 15:01:06 -08:00
Max Brunsfeld ed80d9cf52 Don’t allow duplicate rules when extracting tokens from grammars 2014-01-04 13:38:03 -08:00
Max Brunsfeld 2afd8843dc Generate parse tables and code using pre-processed grammars 2014-01-03 22:42:05 -08:00
Max Brunsfeld 2621f06315 Rename ParseTableBuilder -> TableBuilder 2014-01-03 12:45:47 -08:00
Max Brunsfeld 44745b5179 Start work on pre-processing grammars 2014-01-03 01:02:24 -08:00
Max Brunsfeld 9441a21558 Rename project files 2014-01-02 13:09:15 -08:00
Max Brunsfeld f5a9fb67a4 Add copy method to rules 2014-01-02 13:04:41 -08:00
Max Brunsfeld 257b8d7b68 Update rule hash implementation 2013-12-30 23:52:38 -08:00
Max Brunsfeld 3116b457fe Update some stringification methods 2013-12-30 23:12:19 -08:00
Max Brunsfeld c6699a4c30 Make assertion stringizer methods for std containers work for any value types 2013-12-30 19:30:48 -08:00
Max Brunsfeld 30315a78d2 Put rule transitions in LR namespace 2013-12-28 23:26:20 -08:00