josh
429ce88eb5
Add cast-to-bool operators for tree node handles for C++ and D
2026-09-05 17:56:18 -04:00
josh
dc95fe041d
Add node_id() to C++ and D tree node handles
2026-09-02 21:00:47 -04:00
josh
d596d47cef
Rename match to match_text for lexer user code blocks
2026-08-19 23:30:27 -04:00
josh
71abdcb3ac
Align Rust template with D template
2026-08-19 13:39:34 -04:00
josh
8c92d442bb
Align Rust template with D template
2026-08-19 00:35:02 -04:00
josh
4c5a30b13c
Align types in Rust template with D template
2026-08-18 20:42:38 -04:00
josh
5fc712c6ee
Rework tree generation mode and API
...
Store tree nodes in congruent, compact arena array.
Define handle types to refer to tree nodes rather than pointers to
structure instances.
Free tree with context.
2026-07-27 20:57:44 -04:00
josh
1c74e747e1
Add p_set_input_index()
2026-07-14 20:43:59 -04:00
josh
2ebdeaa995
Add p_input_index()
2026-07-11 22:58:26 -04:00
josh
c0016f6d58
Add p_set_position()
2026-07-11 22:46:21 -04:00
josh
2f9a29f7c5
p_parse_inner: do not consume the follow token
2026-07-11 22:46:21 -04:00
josh
946eb4eef7
Add p_parse_inner_XXX() APIs
2026-07-11 20:08:56 -04:00
josh
98390429a8
Allow parser user code blocks in tree mode
2026-07-07 17:54:01 -04:00
josh
ca9c23f96b
Add lexer user code expansions to access lexer match text positions
2026-07-02 21:27:55 -04:00
josh
1729546d69
Track rule component positions - close #41
2026-07-02 16:42:50 -04:00
josh
7942a3be97
Remove pvalue from state_info_t if AST mode is active - close #42
2026-07-02 08:14:49 -04:00
josh
c28aebddb4
Fix user guide and generated parser comments for position row and col to be 1-based
2026-07-01 23:02:47 -04:00
josh
5ac3ad1655
Add p_value_get() / p_value_get_XXX() accessors
...
Allow user code to access specific pvalue values, especially when
multiple ptypes are in use.
2026-06-22 22:12:29 -04:00
josh
51b09a5799
Support custom lex function
2026-04-10 16:36:16 -04:00
josh
dd687d0299
Add p_context_delete() and p_tree_delete() for D targets
2026-02-28 21:12:35 -05:00
josh
d4ad67c23d
Allow user to specify custom token node fields
2026-02-21 21:06:40 -05:00
josh
6fd5186159
Replace p_context_init() with p_context_new()/p_context_delete()
2026-02-17 18:40:33 -05:00
josh
9f2fe6f84b
Add token_node and token_user_fields grammar statements
2026-02-14 21:00:53 -05:00
josh
78adf86103
Allow user-defined context fields
2026-02-13 23:53:18 -05:00
josh
77ec7c9de4
Rename AST generation mode to tree generation mode
2026-02-09 21:59:00 -05:00
josh
6a87bb2d56
Add support for multiple starting rules - close #38
2026-02-09 21:21:49 -05:00
josh
92da10e483
Fix GC issue for D backend with AST enabled - close #36
2025-04-05 09:51:01 -04:00
josh
839174a635
Generate comments to annotate reduce table entries
2025-04-05 09:50:18 -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
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
87d6d29d60
Store token end position - #27
2024-07-18 12:03:44 -04:00
josh
4ae5ab79b3
Warn on shift/reduce conflicts
2024-07-13 21:35:53 -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
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
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
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
1d1590dfda
Add API to access unexpected token found - close #18
2024-03-29 15:58:56 -04:00
josh
fad7f4fb36
Allow user termination from lexer code blocks - close #15
2024-03-29 13:45:08 -04:00
josh
24af3590d1
Allow user to terminate the parser - close #13
2024-01-03 22:32:10 -05:00
josh
a032ac027c
Compilation warning for unreachable statement - close #12
2023-10-21 16:04:15 -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
c4bcb465da
Remove std.stdio import and printing of unexpected tokens
2023-07-17 21:57:31 -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