Commit graph

140 commits

Author SHA1 Message Date
Paul Beckingham
58c62eed5b LR0: Documented closure algorithm 2015-12-29 09:25:38 -05:00
Paul Beckingham
f27d66b8c7 LR0: Cleaned up ::initialize 2015-12-29 09:24:56 -05:00
Paul Beckingham
2e54201edd LR0: Documented item sets algorithm 2015-12-29 09:24:04 -05:00
Paul Beckingham
f86e7749a4 LR0: Added LR0::States::dump 2015-12-29 09:22:22 -05:00
Paul Beckingham
aec497e4c8 LR0: Added framework around ::getClosure method (unimplemented) 2015-12-28 11:34:28 -05:00
Paul Beckingham
b1c85adfe4 LR0: Changed ::expandNonTerminals to ::getClosure, to match algorithm 2015-12-28 11:28:13 -05:00
Paul Beckingham
82cfd73b1e LR0: Removed ::dump for states, there is a better way 2015-12-28 11:26:40 -05:00
Paul Beckingham
7205cfe1f1 LR0: Renamed ::createParseTables to ::initialize 2015-12-28 09:20:55 -05:00
Paul Beckingham
ec9b63b438 Tests: Added tests for special case 'A --> є' 2015-12-27 14:50:53 -05:00
Paul Beckingham
1b81996674 LR0: Special handling for 'A --> є' 2015-12-27 14:50:10 -05:00
Paul Beckingham
6dea79721a Tests: Added LR0::Item tests 2015-12-27 12:18:44 -05:00
Paul Beckingham
ef087a7b35 LR0: Implemented Item::dump 2015-12-27 12:18:02 -05:00
Paul Beckingham
66504d5dfc LR0: Made Item a public class, for testing 2015-12-27 12:02:00 -05:00
Paul Beckingham
6b4448ec8a LR0: Implemented the LR0::Item object 2015-12-27 11:57:19 -05:00
Paul Beckingham
44ddd462ac LR0: Added a 'state' to iterate 2015-12-27 11:47:46 -05:00
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