68 Commits

Author SHA1 Message Date
dc95fe041d Add node_id() to C++ and D tree node handles 2026-09-02 21:00:47 -04:00
450c2f1cff Rust: add Drop impl for p_context_t 2026-08-21 13:36:36 -04:00
7fd1505710 Add comments around user code blocks to generated Rust module
This takes the place of #line directives
2026-08-20 15:52:18 -04:00
d466a4b024 Document tree node validity propagation in user guide 2026-08-20 00:36:43 -04:00
008ed49f66 Remove match_length lexer user code block for Rust 2026-08-19 23:49:29 -04:00
d596d47cef Rename match to match_text for lexer user code blocks 2026-08-19 23:30:27 -04:00
47ad55ee2c Update user guide to reflect tree node structure changes 2026-08-19 23:04:14 -04:00
e22ebc87d3 Update user guide with Rust documentation and examples 2026-08-19 21:20:19 -04:00
89f1f84857 Add Rust target 2026-08-11 22:46:04 -04:00
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
1c74e747e1 Add p_set_input_index() 2026-07-14 20:43:59 -04:00
b4d43d39f6 Add lex_fn documentation about custom lex function contract 2026-07-14 17:01:22 -04:00
2ebdeaa995 Add p_input_index() 2026-07-11 22:58:26 -04:00
c0016f6d58 Add p_set_position() 2026-07-11 22:46:21 -04:00
2f9a29f7c5 p_parse_inner: do not consume the follow token 2026-07-11 22:46:21 -04:00
946eb4eef7 Add p_parse_inner_XXX() APIs 2026-07-11 20:08:56 -04:00
98390429a8 Allow parser user code blocks in tree mode 2026-07-07 17:54:01 -04:00
ca9c23f96b Add lexer user code expansions to access lexer match text positions 2026-07-02 21:27:55 -04:00
1729546d69 Track rule component positions - close #41 2026-07-02 16:42:50 -04:00
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
7b698d7b31 Add noline grammar statement to skip emitting #line directives 2026-06-29 22:41:07 -04:00
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
51b09a5799 Support custom lex function 2026-04-10 16:36:16 -04:00
dd687d0299 Add p_context_delete() and p_tree_delete() for D targets 2026-02-28 21:12:35 -05:00
f584389a29 Reorganize Propane Grammar File user guide section 2026-02-21 22:06:09 -05:00
de3fb0d120 Combine free_token_user_fields and free_token_node statements 2026-02-21 21:37:23 -05:00
d4ad67c23d Allow user to specify custom token node fields 2026-02-21 21:06:40 -05:00
ff61dd05d9 Rename p_free_tree() to p_tree_delete() 2026-02-17 19:24:50 -05:00
6fd5186159 Replace p_context_init() with p_context_new()/p_context_delete() 2026-02-17 18:40:33 -05:00
9f2fe6f84b Add token_node and token_user_fields grammar statements 2026-02-14 21:00:53 -05:00
78adf86103 Allow user-defined context fields 2026-02-13 23:53:18 -05:00
f4bc719aed Allow drop patterns to execute lexer user code blocks 2026-02-13 20:45:08 -05:00
ef6a0f9552 Update README and CHANGELOG overview features list 2026-02-09 22:00:39 -05:00
77ec7c9de4 Rename AST generation mode to tree generation mode 2026-02-09 21:59:00 -05:00
6a87bb2d56 Add support for multiple starting rules - close #38 2026-02-09 21:21:49 -05:00
cb426b4be1 Add free_token_node grammar statement 2026-02-08 20:33:00 -05:00
072af73b1e Support C++ output language 2026-02-07 18:59:01 -05:00
8a393f554a Document p_lex and p_token_info_t in user guide - fix #37 2026-01-15 20:22:54 -05:00
69aa3097c3 Update user guide for shorthand character classes 2025-07-26 21:34:22 -04:00
25d6e3bc34 Fix user guide regular expression example 2025-07-25 16:24:05 -04:00
5b94b03b04 Fix user guide double backslashes in examples 2025-07-22 21:17:18 -04:00
eb9d9026fc Allow multiple lexer modes to be specified for a lexer pattern - close #35 2025-03-11 20:40:10 -04:00
54bb3307cd Document p_decode_code_point() API function - close #34 2025-03-10 12:19:42 -04:00
1d468b6d3c Use 1-based row and column values for position values - close #30 2024-09-25 15:58:03 -04:00
98e10d3d14 Fix named optional rules - close #29 2024-09-24 20:28:19 -04:00
a7348be95d Add rule field aliases - #24 2024-07-22 20:16:52 -04:00
9746b3f2bf Document position tracking fields in user guide - #27 2024-07-21 14:04:51 -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