Commit Graph
145 Commits
Author SHA1 Message Date
Sylvestre Ledru d71440cdbf awk: document GNU awk compatibility testing latest-commit 2026-06-28 19:32:53 +02:00
Sylvestre Ledru 7a449f5de8 awk: add GnuTests CI workflows 2026-06-28 19:32:53 +02:00
Sylvestre Ledru 76ba867ed8 awk: add GNU awk testsuite runner and result comparison 2026-06-28 19:32:53 +02:00
Sylvestre Ledru bd2a871be0 awk: add script to fetch the GNU awk testsuite 2026-06-28 19:32:53 +02:00
Franklin-QiandSylvestre Ledru 04610f1cb2 parser: extend Pratt error spans to cover subexpressions (#50)
- Track an anchor at the start of each Pratt subexpression and report errors from that anchor through the offending token, instead of highlighting only the final token.

- Apply this to assignment/index/place errors, prefix operators, unclosed parentheses and brackets, and related Pratt paths. Keep narrow spans for non-associative operators (e.g. chained = ).

- Add unit tests that assert the highlighted source snippets for common parse failures.

Closes: #42

Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
2026-06-28 18:57:27 +02:00
Guillem L. Jaraandyor1xd 67bf583c51 interpreter: widen instructions, immediates (#47)
* interpreter: widen instructions, immediates

* lexer, parser: add tokens and nodes for built-in functions

* chore: fix CI

---------

Co-authored-by: yor1xd <gabrielhenriquenf1@gmail.com>
2026-06-28 18:21:48 +02:00
renovate[bot] 4913bc407f chore(deps): update actions/checkout action to v7 2026-06-19 08:11:59 +02:00
yushuoqi 1b96ee9d92 Add unit tests for parser and lexer
Expand test coverage for the parser and lexer using existing patterns: test_parser! macro assertions for AST s-expressions and token-slice comparisons for the lexer.

Closes: #43
2026-06-17 12:01:53 +02:00
renovate[bot] 2fc4df7f90 chore(deps): update rust crate smallvec to v1.15.2 2026-06-12 07:12:48 +02:00
renovate[bot] b6b8243b7b chore(deps): update rust crate memchr to v2.8.2 2026-06-12 07:09:08 +02:00
Photon101 0bbf52227c parser: recognize exponentiation operators 2026-06-11 17:53:47 +02:00
Guillem L. Jara ef3483215e chore(README.md): prettify 2026-06-05 15:35:45 +02:00
Guillem L. Jara 4bfce36756 chore(interpreter): code clean-up 2026-06-03 13:12:00 +02:00
Guillem L. Jara 94dc851d1e interpreter: add dest register to function calls 2026-06-02 19:12:09 +02:00
Guillem L. Jara 8a6296ca46 interpreter: high-water mark register sizing 2026-06-02 13:28:32 +02:00
Guillem L. Jara 98051c5de0 interpreter: refactor to accomodate immediates
Adds immediate values, moves array ops to the vm, adds missing ops for records, shortens registers, etc.
2026-06-02 12:20:32 +02:00
Guillem L. Jara 55b1fbd561 lexer, parser: add small integer atoms
Useful for immediate values in the interpreter; allows us to save on register loads and loads & stores in the constants table.
2026-06-02 12:20:32 +02:00
renovate[bot] c9fa413268 chore(deps): update rust crate uutests to 0.9 2026-05-31 10:23:37 +02:00
renovate[bot] f38f930f22 chore(deps): update rust crate ctor to v1.0.7 2026-05-29 07:46:15 +02:00
Guillem L. Jara b23d1e317c interpreter: print statements; calling conventions 2026-05-29 02:06:25 +02:00
yor1xd 1df4886ac5 parser: handle chained array indexing in parse_place and add tests 2026-05-29 00:57:01 +02:00
yor1xd ad6ba45c7c parser: add support for multidimensional arrays 2026-05-29 00:57:01 +02:00
Guillem L. Jara 19d1b46ca2 interpreter: unary placing operations 2026-05-27 18:16:46 +02:00
Guillem L. Jara ecc7dcced6 interpreter: binary placing operations; expand IR 2026-05-27 18:16:45 +02:00
Guillem L. Jara 4615b760d3 interpreter: Instruction fmt 2026-05-27 18:16:45 +02:00