36 Commits

Author SHA1 Message Date
a7348be95d Add rule field aliases - #24 2024-07-22 20:16:52 -04:00
f3e4941ad8 Allow rule terms to be marked as optional 2024-05-09 11:56:13 -04:00
494afb7307 Allow specifying the start rule name 2024-05-05 12:39:00 -04:00
153f9d28f8 Allow user to specify AST node prefix or suffix
Add ast_prefix and ast_suffix grammar statements.
2024-05-04 21:49:13 -04:00
cb06a56f81 Add AST generation - #22 2024-04-22 20:51:27 -04:00
3eaf0d3d49 allow one line user code blocks - close #21 2024-04-02 17:44:15 -04:00
fad7f4fb36 Allow user termination from lexer code blocks - close #15 2024-03-29 13:45:08 -04:00
562c24ce9e Remove grammar "class" statement 2023-09-24 13:23:44 -04:00
3c8794058f Add C backend - close #4 2023-08-24 09:40:01 -04:00
5ce562cbc3 Allow configuring API prefix - close #9 2023-07-13 18:06:24 -04:00
80ac6c17f0 Replace Token struct with integer type
Replace _TOKEN_COUNT with INVALID_TOKEN_ID.
2023-07-09 22:35:02 -04:00
c88338698a Store whether a state accepts, not whether it drops 2023-07-08 08:29:33 -04:00
d10e982fc8 Reserve double-underscore identifiers for internal use 2023-03-13 14:12:12 -04:00
c6ea4f83c2 Store parser values according to the rule/pattern type 2022-11-13 22:20:30 -05:00
e4a160f918 Allow defining multiple parser types and assigning parser types to tokens and rules 2022-11-13 13:35:19 -05:00
8dc27686aa Rename result_type to ptype, parser result to pvalue 2022-11-12 13:29:10 -05:00
31970522de Store parse result; add result_type grammar keyword 2022-10-12 20:56:14 -04:00
b2d11321fe Add grammar syntax to specify lexer mode for tokens and patterns 2022-10-04 22:23:39 -04:00
ced5a56424 Support global user code blocks 2022-10-03 21:24:13 -04:00
f46b5b3f4d Remove TOKEN_EOF; define EOF token and start rule in Generator 2022-10-02 10:07:44 -04:00
150be33826 Assign pattern code IDs in Generator instead of Grammar 2022-10-01 10:36:35 -04:00
e7e30c4f28 Add pattern statement 2022-09-30 21:05:18 -04:00
04367db0ac Add forward slashes around patterns and parse more robustly 2022-09-28 23:05:01 -04:00
1547528ecf Split grammar statement parsing into separate methods 2022-09-27 18:49:04 -04:00
62cb5c03f2 Refactor grammar parsing a bit 2022-09-27 15:28:39 -04:00
672098ad32 Execute user code blocks assigned to tokens 2022-09-24 17:31:40 -04:00
92ce30f354 Add tokenid keyword 2022-09-19 22:16:57 -04:00
38ae5ac7a1 Split Token class into Token/Pattern 2022-09-15 22:46:44 -04:00
b682c72b17 Add semicolon to end of all grammar statements 2022-07-23 22:09:19 -04:00
d6e5c4325d Add new start rule ending with EOF token rather than appending EOF token to all user-specified start rules 2022-06-07 22:25:31 -04:00
2837dfda6b Add Rule#id 2022-06-06 22:30:53 -04:00
df8088c3c6 Clean up rule format in grammar files 2022-06-05 16:28:35 -04:00
c42c3576a5 Remove RuleSet creation from Grammar 2022-06-05 15:16:41 -04:00
b1d5cddab4 Change Token constructor to take a Hash of all parameters 2022-06-05 14:40:41 -04:00
f37801ec9e Store tokens and drop tokens separately 2022-06-05 14:36:19 -04:00
57a3e9d9f6 Move grammar parsing into new Grammar class 2022-06-05 10:23:34 -04:00