144 Commits
Author SHA1 Message Date
Daniel Hofstetter 8e729a984a clippy: fix elidable_lifetime_names lint
https://rust-lang.github.io/rust-clippy/master/index.html#elidable_lifetime_names
2026-07-09 19:38:57 +02:00
Daniel Hofstetter 2457370038 clippy: fix use_self lint
https://rust-lang.github.io/rust-clippy/master/index.html#use_self
2026-07-09 19:38:57 +02:00
Guillem L. Jara 3c2e619656 feat: start integrating CLI 2026-07-08 11:24:34 +02:00
Guillem L. Jara b1de02386e chore(parser): simplify workspace 2026-07-08 10:38:27 +02:00
yushuoqi 56449a17ad parser: add proptest round-trip fuzzing for AST pretty-printing
Add a proptest-based alternative to libFuzzer for aarch64-friendly
round-trip testing: generate random programs, materialize them into
ASTs, pretty-print via Display, re-parse, and compare s-expr
signatures.

Includes a hand-written AST generator, smoke tests, and proptest
regression seeds.

Closes #41
2026-07-08 10:19:55 +02:00
Guillem L. Jara 4f591cc210 chore(parser): DRY clean-up 2026-07-08 08:19:04 +02:00
Guillem L. Jara 656cf70140 fix(parser): fix random commas in output 2026-07-08 08:19:03 +02:00
Guillem L. Jara cb35cd31bb fix(parser): flatten nested if stmnts in pretty-printing 2026-07-08 08:19:03 +02:00
Guillem L. Jara d23a7de610 chore(parser): add assignment tests 2026-07-08 08:19:03 +02:00
Guillem L. Jara 678e4f3313 fix(parser): do not accept parenthesized lvalues 2026-07-08 08:19:02 +02:00
Guillem L. Jara 33e75f40df chore(parser): remove v branch of macro 2026-07-07 21:12:17 +02:00
yushuoqi 60c5698995 parser: track @namespace context in AST pretty-printing
Identifiers are fully qualified at parse time, but Display was emitting
awk:: prefixes and dropping @namespace directives. Pretty-print now tracks
the active namespace, omits redundant qualifiers, restores @namespace for
non-awk scopes, and fixes Delete debug formatting to use Debug for indices.

Closed: #39
2026-07-06 19:37:35 +02:00
Guillem L. Jara af6853de74 fix(parser): lowercase commands in Display 2026-07-06 19:32:04 +02:00
Guillem L. Jara e8f7d4257f chore(parser): remove boilerplate with derive_more 2026-07-06 19:16:44 +02:00
Guillem L. Jara b800a9d7dd fix(parser): properly pretty-print, respect namespaces
The encoding shenanigans were fun while they lasted :'(. Rest in peace my little spaghetto.
2026-07-06 19:16:44 +02:00
Guillem L. Jara 5a8d1dc9f4 chore(parser): add inc/dec division test 2026-07-06 07:56:54 +02:00
Guillem L. Jara beca5f1700 fix(lexer): properly delimit inc/dec on ERE 2026-07-06 07:56:23 +02:00
Guillem L. Jara ad8402eca7 chore(parser): add tests for empty and delimited bodies 2026-07-03 21:01:15 +02:00
Guillem L. Jara 8a5fe828fb fix(parser): accept empty-bodied statements; enforce delimiter 2026-07-03 20:52:18 +02:00
Guillem L. Jara 78128ac806 chore(parser): use thiserror sugar for lexing errors 2026-07-03 20:30:49 +02:00
Guillem L. Jara e94f337acc chore(parser): cover parse_body edge case on tests 2026-07-03 20:22:45 +02:00
Guillem L. Jara a3017e5388 fix(parser): handle edge case on parse_body; clean-up 2026-07-03 20:22:12 +02:00
yushuoqi 4e659781cb parser: enforce statement end after commands
Reject bare `{` after commands instead of treating it as nested brace depth.

Fixes #36
2026-07-03 17:22:01 +02:00
Guillem L. Jara 60489914e5 chore(parser): improve relaxed assignment tests 2026-06-29 18:47:12 +02:00
Guillem L. Jara bee4e5c65b parser: enforce min assignment BP override. 2026-06-29 18:40:57 +02:00