259 Commits

Author SHA1 Message Date
3122254907 Remove unused_parens allow directive from Rust template 2026-08-20 13:47:18 -04:00
bceaad5b7e Move rust_tree_types contents into template 2026-08-11 23:46:48 -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
dddb1b5089 v4.8.1 2026-07-14 22:20:56 -04:00
52fb46abfa v4.8.0 2026-07-14 20:51:06 -04:00
64383cb0f4 v4.7.0 2026-07-08 19:41:39 -04:00
98390429a8 Allow parser user code blocks in tree mode 2026-07-07 17:54:01 -04:00
453be990b6 v4.6.0 2026-07-02 22:13:54 -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
cb914e8bb0 v4.5.0 2026-06-29 23:49:01 -04:00
7b698d7b31 Add noline grammar statement to skip emitting #line directives 2026-06-29 22:41:07 -04:00
45843da0df Fix #line reset directives 2026-06-29 22:21:45 -04:00
c459507612 v4.4.0 2026-06-22 23:46:32 -04:00
b641c64425 v4.3.0 2026-05-22 18:16:29 -07:00
7a140623ff Use #line for user code blocks to report input grammar position for errors 2026-05-21 16:24:25 -07:00
d97f0f8f49 v4.2.0 2026-04-10 18:57:49 -04:00
51b09a5799 Support custom lex function 2026-04-10 16:36:16 -04:00
a05a55ceb8 v4.1.0 2026-02-28 22:38:40 -05:00
f9b4563f94 v4.0.0 2026-02-21 22:43:47 -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
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
243ee0f19f v3.0.0 2026-02-11 00:21:55 -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
66f95cb6d8 v2.3.0 2025-07-28 20:40:24 -04:00
7ccb4c8730 Parallelize parser table generation on Linux hosts 2025-07-28 18:43:12 -04:00
962b7125ec Build lookahead reduce actions for item sets before building reduce table 2025-07-27 17:24:35 -04:00
17f1454a4f Speedup: avoid checking the same rule set more than once for lookahead tokens 2025-07-27 14:50:18 -04:00
b371f4b404 Speedup: calculate Item#hash once 2025-07-27 13:48:52 -04:00
5486e5f138 Add \D, \S, \w, \W special character classes 2025-07-26 21:21:29 -04:00
5b243507cf Show grammar line numbers for regex errors 2025-07-25 21:27:20 -04:00
035bb2fc60 Fix matching lexer patterns containing a negated character class which includes a backslash-escaped sequence that matches more than one character 2025-07-25 16:14:35 -04:00
125c149750 Drop argument to CharacterRangeUnit constructor when possible 2025-07-22 21:53:18 -04:00
8b38ea4261 v2.2.1 2025-04-05 09:53:27 -04:00
839174a635 Generate comments to annotate reduce table entries 2025-04-05 09:50:18 -04:00
207201d589 v2.2.0 2025-03-13 19:25:30 -04:00
eb9d9026fc Allow multiple lexer modes to be specified for a lexer pattern - close #35 2025-03-11 20:40:10 -04:00
5ebcbb2d6d v2.1.1 2024-12-28 23:15:45 -05:00
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
7344554b5f Version 2.1.0 2024-12-28 09:56:29 -05:00
e098b7e445 Report rule name and line number for conflicting AST node field positions errors - close #32 2024-12-28 09:51:12 -05:00
3ea344a520 v2.0.0 2024-09-25 16:09:27 -04:00
98e10d3d14 Fix named optional rules - close #29 2024-09-24 20:28:19 -04:00