Commit graph

3225 commits

Author SHA1 Message Date
Paul Beckingham
05063904a6 LR0: Converted ::expandNonTerminals to use new data structure 2015-12-27 11:19:36 -05:00
Paul Beckingham
ad5f1e4fd7 LR0: Added ::dump method to display intermediate parsing table 2015-12-27 11:18:47 -05:00
Paul Beckingham
26e0a472ac LR0: Created data strcuture to represent intermediate parsing table 2015-12-27 11:17:39 -05:00
Paul Beckingham
a3260246bf Grammar: Annotated data structure 2015-12-27 11:16:48 -05:00
Paul Beckingham
474ed85811 LR0: ::expandNonTerminals now writes expansion state in debug mode 2015-12-27 10:34:59 -05:00
Paul Beckingham
08457be4a0 LR0: Expansion of non-terminals also needs a reference to the augmented grammar 2015-12-27 10:08:47 -05:00
Paul Beckingham
b56e8fb226 LR0: Items are properly initialized for the first step 2015-12-27 09:59:33 -05:00
Paul Beckingham
90fbdaa08b LR0: ::expandNonTerminals now accepts a set of items and states 2015-12-27 09:58:40 -05:00
Paul Beckingham
d3353aba24 Tests: Added augmented grammar tests 2015-12-27 09:50:37 -05:00
Paul Beckingham
d347303e6e LR0: Stubbed expanѕion of non-terminals 2015-12-26 23:08:17 -05:00
Paul Beckingham
53d8500000 Debug: Diagnostic output cleanup 2015-12-26 22:31:11 -05:00
Paul Beckingham
b80964dac5 gr: Diagnostic output now controlled by '-d' and '--debug' options 2015-12-26 14:43:58 -05:00
Paul Beckingham
ec69d5fa4c LR0: Diagnostics now controlled by ::debug
- Added ::parse stub
2015-12-26 14:41:10 -05:00
Paul Beckingham
0ff2ebb37f Grammar: No need to notify on validation pass
- The lack of exceptions is all we need.
2015-12-26 14:38:45 -05:00
Paul Beckingham
63df5ba992 Grammar: Diagnostics now controlled by ::debug 2015-12-26 14:37:43 -05:00
Paul Beckingham
3829415d19 gr: Added '-d' and '--debug' command line option 2015-12-26 14:15:58 -05:00
Paul Beckingham
2d594c33dc Grammar: Added debug mode 2015-12-26 14:13:43 -05:00
Paul Beckingham
980dda147f LR0: Added debug mode 2015-12-26 14:12:11 -05:00
Paul Beckingham
ee7fd61991 LR0: Formatted debug output for terseness, given expected output volume 2015-12-26 14:08:44 -05:00
Paul Beckingham
0a9e1f7299 Grammar: MAde ::dump output more compact, because this is going to get large 2015-12-26 14:08:13 -05:00
Paul Beckingham
e3199833f7 LR0: Obtains and displays the augmented grammar 2015-12-26 13:36:09 -05:00
Paul Beckingham
49ca83ad10 Grammar: Updated ::items to ::augmented, returning the full augmented grammar 2015-12-26 13:35:15 -05:00
Paul Beckingham
5719191467 Grammar: Added ::items, for seeding the LR0 parse table 2015-12-26 12:29:39 -05:00
Paul Beckingham
c73464b39f Grammar: Converted from std::set to std::vector to preserve ordering 2015-12-25 22:54:25 -05:00
Paul Beckingham
9b126699e7 Grammar: Removed obsolete method 2015-12-25 22:54:03 -05:00
Paul Beckingham
9b599597f1 Grammar: Corrected left-recursion check 2015-12-25 22:49:37 -05:00
Paul Beckingham
a164a72156 Lexer: Added operator support 2015-12-25 16:44:21 -05:00
Paul Beckingham
476551c563 Lexer: Added path support 2015-12-24 00:26:34 -05:00
Paul Beckingham
703ec44ad0 Lexer: Aded URL support 2015-12-24 00:18:23 -05:00
Paul Beckingham
78653a16cf timew: Renamed grammar files, added rule.grammar 2015-12-23 11:50:50 -05:00
Paul Beckingham
925e8ec14b Tests: Added LR0 test framework 2015-12-23 09:23:57 -05:00
Paul Beckingham
dcc1a3c451 Tests: Added rules test framework 2015-12-23 09:23:11 -05:00
Paul Beckingham
3c2c159af8 Rules: Added stubbed objects 2015-12-23 09:21:44 -05:00
Paul Beckingham
0ad9012b5c LR0: ::createParseTables now accesses Grammar metedata 2015-12-23 00:23:00 -05:00
Paul Beckingham
6a6709d2c8 Tests: Added Grammar metadata tests 2015-12-23 00:22:17 -05:00
Paul Beckingham
c62c6448d2 Grammar: Converted from std::vector to std::set for metadata 2015-12-23 00:21:30 -05:00
Paul Beckingham
ed138fc819 gr: Removed unused code 2015-12-22 23:43:57 -05:00
Paul Beckingham
23fb1aedd5 Grammar: Renamed ::dump vars for accuracy 2015-12-22 23:40:43 -05:00
Paul Beckingham
0cd1d48290 Grammar: Added ::terminals 2015-12-22 23:40:22 -05:00
Paul Beckingham
35d246aa32 Grammar: Added ::rules 2015-12-22 23:39:50 -05:00
Paul Beckingham
459bf183dc Grammar: Added ::start 2015-12-22 23:39:13 -05:00
Paul Beckingham
791e870eda gr: Instantiates a parser 2015-12-22 23:31:32 -05:00
Paul Beckingham
9569b5dcc3 timew: Instantiates a parser 2015-12-22 23:31:09 -05:00
Paul Beckingham
bc22348822 LR0: Added ::createParseTables, ::dump 2015-12-22 23:26:06 -05:00
Paul Beckingham
fa375615cd Grammar: Added regex support 2015-12-22 15:28:00 -05:00
Paul Beckingham
ee667cb68c Lexer: Added pattern support 2015-12-22 15:26:57 -05:00
Paul Beckingham
fbc47dc1e4 gr: Added utility to check grammar 2015-12-22 12:26:06 -05:00
Paul Beckingham
75ca4a3b71 Tests: Refactoring
- Added functions to reduce code size.
- Added test to check for bad file, bad grammar.
2015-12-22 10:07:07 -05:00
Paul Beckingham
18186de479 Tests: Added test for trivial but non-empty grammar 2015-12-22 09:48:53 -05:00
Paul Beckingham
59e2b7911b Tests: Added test for empty grammar string 2015-12-22 09:46:14 -05:00