josh
89bc52fd80
Update CHANGELOG for v2.2.0
2025-03-13 19:25:09 -04:00
josh
eb9d9026fc
Allow multiple lexer modes to be specified for a lexer pattern - close #35
2025-03-11 20:40:10 -04:00
josh
54bb3307cd
Document p_decode_code_point() API function - close #34
2025-03-10 12:19:42 -04:00
josh
5ebcbb2d6d
v2.1.1
2024-12-28 23:15:45 -05:00
josh
61ebbb4f19
Update CHANGELOG for v2.1.1
2024-12-28 23:13:46 -05:00
josh
1b4ca59158
Field aliases for AST node fields could alias incorrect field when multiple rule alternatives present for one rule set - close #33
2024-12-28 23:08:53 -05:00
josh
b02c9205c0
Update CHANGELOG
2024-12-28 10:01:33 -05:00
josh
7344554b5f
Version 2.1.0
2024-12-28 09:56:29 -05:00
josh
77571a3449
Update gems
2024-12-28 09:54:54 -05:00
josh
e098b7e445
Report rule name and line number for conflicting AST node field positions errors - close #32
2024-12-28 09:51:12 -05:00
josh
3ea344a520
v2.0.0
2024-09-25 16:09:27 -04:00
josh
530878a796
Update CHANGELOG for v2.0.0
2024-09-25 16:09:20 -04:00
josh
1d468b6d3c
Use 1-based row and column values for position values - close #30
2024-09-25 15:58:03 -04:00
josh
98e10d3d14
Fix named optional rules - close #29
2024-09-24 20:28:19 -04:00
josh
36c74e439e
Log conflicting rules on reduce/reduce conflict - close #31
2024-09-24 20:05:39 -04:00
josh
c24f323ff0
v1.5.1
2024-07-26 22:30:48 -04:00
josh
fec2c28693
Only calculate lookahead tokens when needed - #28
...
Lookahead tokens are only need if either:
(1) There is more than one rule that could be reduced in a given parser
state, or
(2) There are shift actions for a state and at least one rule that could
be reduced in the same state (to warn about shift/reduce conflicts).
2024-07-26 22:08:25 -04:00
josh
61339aeae9
Avoid recalculating reduce_rules - #28
2024-07-26 21:36:41 -04:00
josh
95b3dc6550
Cache ItemSet#next_symbols - #28
2024-07-25 20:33:15 -04:00
josh
74d94fef72
Do not build ItemSet follow sets - #28
2024-07-25 20:02:00 -04:00
josh
588c5e21c7
Cache ItemSet#leading_item_sets return values - #28
2024-07-25 10:42:43 -04:00
josh
5f1c306273
Update CLI usage in README
2024-07-22 21:35:32 -04:00
josh
343e8a7f9e
v1.5.0
2024-07-22 21:23:38 -04:00
josh
b3a134bf8d
Update vim syntax to highlight "?" and field alias names
2024-07-22 20:39:59 -04:00
josh
4a71dc74fb
Update CHANGELOG for v1.5.0
2024-07-22 20:26:04 -04:00
josh
a7348be95d
Add rule field aliases - #24
2024-07-22 20:16:52 -04:00
josh
9746b3f2bf
Document position tracking fields in user guide - #27
2024-07-21 14:04:51 -04:00
josh
c5b8fc28bd
Move INVALID_POSITION from header to C source - #27
2024-07-21 13:39:34 -04:00
josh
092fce61eb
Test position validity for empty matching rules - #27
2024-07-21 13:39:30 -04:00
josh
e647248e34
Track start and end position of rules in AST nodes - #27
2024-07-19 15:37:37 -04:00
josh
f4ae1b8601
Add position fields to AST nodes (not populated yet) - #27
2024-07-19 14:34:50 -04:00
josh
eae2e17f41
Test tracking token end positions when the token spans a newline - #27
2024-07-18 12:09:26 -04:00
josh
87d6d29d60
Store token end position - #27
2024-07-18 12:03:44 -04:00
josh
3aced70356
Show line numbers of rules upon conflict - close #23
2024-07-14 20:52:52 -04:00
josh
2dd89445fc
Add command line switch to output warnings to stderr - close #26
2024-07-14 15:36:07 -04:00
josh
4ae5ab79b3
Warn on shift/reduce conflicts
2024-07-13 21:35:53 -04:00
josh
69cc8fa67d
Always compute lookahead tokens for reduce rules
...
Even if they won't be needed for the generated parser, they'll be useful
to detect shift/reduce conflicts.
2024-07-13 21:01:44 -04:00
josh
7f3eb8f315
Calculate follow token set for an ItemSet
2024-07-13 20:48:28 -04:00
josh
d76e12fea1
Rename "following" to "next" - #25
...
The term "following" could potentially imply an association with the
"follow set", however it was used in a non-closed manner.
2024-07-08 10:14:09 -04:00
josh
911e9505b7
Track token position in AST Token node
2024-05-27 22:10:05 -04:00
josh
aaeb0c4db1
Remove leftover TODO from earlier restructuring
2024-05-27 20:44:42 -04:00
josh
fd89c5c6b3
Add Vim syntax highlighting files for Propane
2024-05-26 14:49:30 -04:00
josh
1468946735
v1.4.0
2024-05-11 11:46:28 -04:00
josh
2bccf3303e
Update CHANGELOG
2024-05-09 17:38:18 -04:00
josh
0d1ee74ca6
Give a better error message when a referenced ptype has not been declared
2024-05-09 17:35:27 -04:00
josh
985b180f62
Update CHANGELOG
2024-05-09 11:56:44 -04:00
josh
f3e4941ad8
Allow rule terms to be marked as optional
2024-05-09 11:56:13 -04:00
josh
494afb7307
Allow specifying the start rule name
2024-05-05 12:39:00 -04:00
josh
508dabe760
Update CHANGELOG for v1.4.0
2024-05-04 21:49:13 -04:00
josh
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
josh
d0f542cbd7
v1.3.0
2024-04-23 00:31:56 -04:00
josh
786c78b635
Update CHANGELOG for v1.3.0
2024-04-23 00:21:28 -04:00
josh
f0bd8d8663
Add documentation for AST generation mode - close #22
2024-04-23 00:15:19 -04:00
josh
c7a18ef821
Add AST node field name with no suffix when unique - #22
2024-04-22 21:50:26 -04:00
josh
cb06a56f81
Add AST generation - #22
2024-04-22 20:51:27 -04:00
josh
2b28ef622d
Add specs to fully cover cli.rb
2024-04-06 14:37:15 -04:00
josh
19c32b58dc
Fix README example grammar
2024-04-06 14:16:27 -04:00
josh
3a8dcac55f
v1.2.0
2024-04-02 21:42:33 -04:00
josh
632ab2fe6f
Update CHANGELOG for v1.2.0
2024-04-02 21:42:18 -04:00
josh
3eaf0d3d49
allow one line user code blocks - close #21
2024-04-02 17:44:15 -04:00
josh
918dc7b2bb
fix generator hang when state transition cycle is present - close #20
2024-04-02 14:27:08 -04:00
josh
5b2cbe53e6
Add backslash escape codes - close #19
2024-03-29 16:45:54 -04:00
josh
1d1590dfda
Add API to access unexpected token found - close #18
2024-03-29 15:58:56 -04:00
josh
1c91dcd298
Add token_names API - close #17
2024-03-29 15:02:01 -04:00
josh
5dfd62b756
Add D example to user guide for p_context_init() - close #16
2024-03-29 13:52:16 -04:00
josh
fad7f4fb36
Allow user termination from lexer code blocks - close #15
2024-03-29 13:45:08 -04:00
josh
d55c5e0080
Update CHANGELOG for v1.1.0
2024-01-07 17:48:47 -05:00
josh
6c847c05b1
v1.1.0
2024-01-07 17:43:06 -05:00
josh
a5800575c8
Document generated API in user guide - close #14
2024-01-05 20:47:22 -05:00
josh
24af3590d1
Allow user to terminate the parser - close #13
2024-01-03 22:32:10 -05:00
josh
92c76b74c8
Update license year
2024-01-03 20:05:46 -05:00
josh
a032ac027c
Compilation warning for unreachable statement - close #12
2023-10-21 16:04:15 -04:00
josh
af5edaa762
Bump version to 1.0.0
2023-09-25 20:02:02 -04:00
josh
81f15245f2
Update README with some user guide contents
2023-09-25 19:57:49 -04:00
josh
d8aa72d516
Add all task
2023-09-25 19:51:47 -04:00
josh
aabc8a5af5
Remove propane.sh
2023-09-25 19:51:41 -04:00
josh
705e5d8ba9
Remove need for dspec directory
2023-09-25 19:50:13 -04:00
josh
f152cd9da1
Turn on simplecov to measure code coverage
2023-09-25 19:38:55 -04:00
josh
9a9315f7f9
Include asset file contents in distributable script
2023-09-25 19:12:37 -04:00
josh
197f126109
Add Assets module to abstract accessing asset files
2023-09-25 16:16:20 -04:00
josh
db6dc0e099
Add dspec task to test distributable script
2023-09-24 18:54:19 -04:00
josh
547dbd3850
Add user guide section for parser rules
2023-09-24 18:45:01 -04:00
josh
aff0102536
Document the prefix statement
2023-09-24 16:14:59 -04:00
josh
1328a718ac
Add user guide content for lexer
2023-09-24 16:07:43 -04:00
josh
562c24ce9e
Remove grammar "class" statement
2023-09-24 13:23:44 -04:00
josh
c824ae9e5c
User guide: document specifying parser value types
2023-08-26 21:15:33 -04:00
josh
140b2d8350
User guide: document user code blocks
2023-08-24 09:40:08 -04:00
josh
3c8794058f
Add C backend - close #4
2023-08-24 09:40:01 -04:00
josh
fff9700f91
Report the unexpected token for P_UNEXPECTED_TOKEN returns - close #11
2023-07-28 15:42:18 -04:00
josh
fa7a781a5d
Update gems
2023-07-26 11:39:36 -04:00
josh
c4bcb465da
Remove std.stdio import and printing of unexpected tokens
2023-07-17 21:57:31 -04:00
josh
d39fa61af0
Remove D language reference from test names
2023-07-15 14:19:30 -04:00
josh
6333762414
Add user guide math expression example
2023-07-14 20:32:50 -04:00
josh
4942c76551
Show rule ID and rule set ID in reduce actions log section
2023-07-14 16:52:00 -04:00
josh
653b4e00f6
Add testutils module with assert_eq()
2023-07-14 15:48:44 -04:00
josh
5ce562cbc3
Allow configuring API prefix - close #9
2023-07-13 18:06:24 -04:00
josh
7d7929a358
Compact some of the table output
2023-07-12 19:51:35 -04:00
josh
424ddfe55a
Output position info for various error return codes - close #10
2023-07-12 19:22:44 -04:00
josh
ce22e3465b
Use consistent styling
...
Prefix public symbols with "p_".
User lowercase for all type aliases.
Clean up some comments.
2023-07-12 16:45:59 -04:00
josh
c7bca74d3e
Use symbol_id instead of token_id for shift table entries
2023-07-12 15:51:07 -04:00