josh
2508fb311e
Update CHANGELOG.md for v5.0.0
2026-08-21 14:59:28 -04:00
josh
3879344e6e
Set up stable Rust toolchain in github workflow
2026-08-21 14:36:37 -04:00
josh
450c2f1cff
Rust: add Drop impl for p_context_t
2026-08-21 13:36:36 -04:00
josh
5afb3599f9
Rust target: derive Debug for p_position_t
2026-08-20 17:17:50 -04:00
josh
ac7ac9b9a6
Add v5.0.0 Improvements to CHANGELOG.md
2026-08-20 16:57:16 -04:00
josh
e5ad5354fd
propane.vim: improve D language detection
2026-08-20 16:55:49 -04:00
josh
6ab4340abc
Add Rust detection to propane.vim
2026-08-20 16:25:57 -04:00
josh
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
josh
3626bc2caf
Remove unused_variables allow directive from Rust template
2026-08-20 14:40:07 -04:00
josh
3122254907
Remove unused_parens allow directive from Rust template
2026-08-20 13:47:18 -04:00
josh
f1d8ad7fe9
Remove dead_code allow directive from Rust template
2026-08-20 13:34:43 -04:00
josh
075b178497
Test free_token_node in Rust
2026-08-20 12:50:27 -04:00
josh
7a8b4ad640
Remove some Rust module allow directives
2026-08-20 12:20:55 -04:00
josh
cf27fefc7b
Fail specs on any compiler warnings in addition to errors
2026-08-20 11:12:58 -04:00
josh
d466a4b024
Document tree node validity propagation in user guide
2026-08-20 00:36:43 -04:00
josh
008ed49f66
Remove match_length lexer user code block for Rust
2026-08-19 23:49:29 -04:00
josh
d596d47cef
Rename match to match_text for lexer user code blocks
2026-08-19 23:30:27 -04:00
josh
47ad55ee2c
Update user guide to reflect tree node structure changes
2026-08-19 23:04:14 -04:00
josh
e22ebc87d3
Update user guide with Rust documentation and examples
2026-08-19 21:20:19 -04:00
josh
71abdcb3ac
Align Rust template with D template
2026-08-19 13:39:34 -04:00
josh
4a4647159e
Improve rake tasks for specs
...
- clean coverage directory before running specs to avoid simplecov
slowdowns
- add valgrind task to run valgrind; normal spec does not run it
- delay combining and reporting simplecov results until end of task to
speed up task execution
2026-08-19 13:14:53 -04:00
josh
8c92d442bb
Align Rust template with D template
2026-08-19 00:35:02 -04:00
josh
f2924a267d
Align Rust template with D template
2026-08-18 22:36:15 -04:00
josh
7d42ef44c2
Align Rust template with D template
2026-08-18 21:33:13 -04:00
josh
e06cf11e9e
Align Rust template with D template
2026-08-18 20:58:39 -04:00
josh
4c5a30b13c
Align types in Rust template with D template
2026-08-18 20:42:38 -04:00
josh
8437cc3b4e
Use pretty language names in spec output
2026-08-14 23:46:01 -04:00
josh
35c40f09fe
Remove header user code block group for Rust section
2026-08-14 23:39:02 -04:00
josh
f902c835c9
Fix Rust prefixed status code values
2026-08-11 23:48:07 -04:00
josh
bceaad5b7e
Move rust_tree_types contents into template
2026-08-11 23:46:48 -04:00
josh
89f1f84857
Add Rust target
2026-08-11 22:46:04 -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
dddb1b5089
v4.8.1
2026-07-14 22:20:56 -04:00
josh
c3bccd2151
Fix tree struct type forward-declarations for C/C++
2026-07-14 22:11:39 -04:00
josh
52fb46abfa
v4.8.0
2026-07-14 20:51:06 -04:00
josh
2e02ed7391
Fix test_macros.c on MacOS
2026-07-14 20:51:00 -04:00
josh
1c74e747e1
Add p_set_input_index()
2026-07-14 20:43:59 -04:00
josh
b4d43d39f6
Add lex_fn documentation about custom lex function contract
2026-07-14 17:01:22 -04:00
josh
7ce1f8fc7f
Test reentering parser for nested inner parses
2026-07-14 11:41:52 -04:00
josh
0aaa44faf4
Add a test for a macro implementation using custom lex function
2026-07-13 22:21:02 -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
fb4288d5b9
Test p_parse_inner with tree generation mode active
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
75c2a4cbdf
Install valgrind for Linux github runners
2026-07-08 22:09:53 -04:00
josh
2c8ce0a359
Skip valgrind tests on MacOS github runners
2026-07-08 20:01:29 -04:00
josh
64383cb0f4
v4.7.0
2026-07-08 19:41:39 -04:00
josh
256b7f9277
Update CHANGELOG for v4.7.0
2026-07-08 19:08:53 -04:00
josh
98390429a8
Allow parser user code blocks in tree mode
2026-07-07 17:54:01 -04:00
josh
b04c0ad205
Do not highlight rule components as propane keywords
2026-07-05 20:52:59 -04:00
josh
453be990b6
v4.6.0
2026-07-02 22:13:54 -04:00
josh
3c619acd29
Update CHANGELOG for v4.6.0
2026-07-02 21:34:30 -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
cb914e8bb0
v4.5.0
2026-06-29 23:49:01 -04:00
josh
ece95dd7e0
Fix propane.vim keyword detection
2026-06-29 23:48:43 -04:00
josh
232af68081
Attempt to autodetect target language (D/C++) in extra/vim/syntax/propane.vim
2026-06-29 23:02:57 -04:00
josh
23834bef82
Update keyword list in extra/vim/syntax/propane.vim
2026-06-29 23:02:05 -04:00
josh
7b698d7b31
Add noline grammar statement to skip emitting #line directives
2026-06-29 22:41:07 -04:00
josh
45843da0df
Fix #line reset directives
2026-06-29 22:21:45 -04:00
josh
f27a8688f7
Add CHANGELOG for v4.4.0
2026-06-29 22:15:01 -04:00
josh
c459507612
v4.4.0
2026-06-22 23:46:32 -04:00
josh
feacbc907d
Update gems
2026-06-22 23:46:06 -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
b641c64425
v4.3.0
2026-05-22 18:16:29 -07:00
josh
5245302f49
Update CHANGELOG for v4.3.0
2026-05-22 18:11:58 -07:00
josh
7a140623ff
Use #line for user code blocks to report input grammar position for errors
2026-05-21 16:24:25 -07:00
josh
42035c3a55
Update gems
2026-05-06 08:40:37 -04:00
josh
d97f0f8f49
v4.2.0
2026-04-10 18:57:49 -04:00
josh
98e2beb425
Update CHANGELOG for v4.2.0
2026-04-10 18:57:01 -04:00
josh
30565545ee
Update gems
2026-04-10 18:52:41 -04:00
josh
cd75077959
Update copyright years
2026-04-10 16:36:55 -04:00
josh
51b09a5799
Support custom lex function
2026-04-10 16:36:16 -04:00
josh
e992e6344a
Update CHANGELOG for v4.1.0
2026-02-28 22:40:55 -05:00
josh
a05a55ceb8
v4.1.0
2026-02-28 22:38:40 -05:00
josh
e9ecf33f58
Run valgrind on D targets in addition to C and C++
2026-02-28 21:50:13 -05:00
josh
dd687d0299
Add p_context_delete() and p_tree_delete() for D targets
2026-02-28 21:12:35 -05:00
josh
d440d0442d
Expand token_user_fields unit test
2026-02-22 09:38:42 -05:00
josh
f9b4563f94
v4.0.0
2026-02-21 22:43:47 -05:00
josh
334990840e
Update README and CHANGELOG for v4.0.0
2026-02-21 22:19:54 -05:00
josh
f584389a29
Reorganize Propane Grammar File user guide section
2026-02-21 22:06:09 -05:00
josh
de3fb0d120
Combine free_token_user_fields and free_token_node statements
2026-02-21 21:37:23 -05:00
josh
d4ad67c23d
Allow user to specify custom token node fields
2026-02-21 21:06:40 -05:00
josh
ff61dd05d9
Rename p_free_tree() to p_tree_delete()
2026-02-17 19:24:50 -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
f4bc719aed
Allow drop patterns to execute lexer user code blocks
2026-02-13 20:45:08 -05:00
josh
43c0f50874
Fix UPGRADING.md link in CHANGELOG.md
2026-02-11 00:34:32 -05:00
josh
243ee0f19f
v3.0.0
2026-02-11 00:21:55 -05:00
josh
8d2efcc19b
Update gems
2026-02-11 00:21:37 -05:00
josh
9c787f0e89
Update CHANGELOG.md and UPGRADING.md for v3.0.0
2026-02-09 22:08:20 -05:00
josh
ef6a0f9552
Update README and CHANGELOG overview features list
2026-02-09 22:00:39 -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
cb426b4be1
Add free_token_node grammar statement
2026-02-08 20:33:00 -05:00
josh
addf27d837
Turn on valgrind for C, C++ target specs
2026-02-08 19:24:11 -05:00