25 Commits

Author SHA1 Message Date
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
Guillem L. Jara 8b29b26050 chore: add rustfmt.toml
Pretty sure nobody was working on anything atm, sorry otherwise...
2026-05-24 02:46:09 +02:00
yor1xd e1cf3bf00c lexer: implement \x and \u numeric escape sequences 2026-05-23 16:04:23 +02:00
Guillem L. Jara 4b6a76e0a7 chore(lexer): update tests 2026-05-19 16:47:39 +02:00
Guillem L. Jara ee3bb38bed lexer: do not fold semicolons 2026-05-19 16:14:41 +02:00
Guillem L. Jara f015b732c0 lexer: correctly lex extension directive 2026-05-14 09:19:53 +02:00
Guillem L. Jara e18f0f0995 lexer: move arena to be behind NonNull<T> 2026-05-14 09:17:02 +02:00
Guillem L. Jara 624f410af0 lexer: accept regexes on ternary branches 2026-05-14 08:58:53 +02:00
Guillem L. Jara ba9c443369 parser, lexer: indirect call support
Required a small refactoring.
2026-05-12 22:38:57 +02:00
Guillem L. Jara 1b165d2749 parser, lexer: typed regexes support 2026-05-12 17:39:11 +02:00
Guillem L. Jara 60466bc28a chore(lexer): add test 2026-05-10 18:46:35 +02:00
Guillem L. Jara 84b83de4bf lexer: resolve small regex ambiguity 2026-05-10 18:46:34 +02:00
Guillem L. Jara 9d5b76a8af lexer: add new tests 2026-05-08 09:55:00 +02:00
Guillem L. Jara 65ada71119 lexer: fixes & match gawk 5.4.0 2026-05-08 09:23:27 +02:00
Guillem L. Jara 432afad97b fix: correctly handle ternary newlines
We might be better off handling this in the parser, though.
2026-05-07 17:10:51 +02:00
Guillem L. Jara b24337910b lexer: POSIX and GNU compatibility modes
Also improves ignored newlines on specific tokens.
2026-05-07 16:51:05 +02:00
Guillem L. Jara c22de2681e lexer: arena integration for slices 2026-05-07 14:31:38 +02:00
Guillem L. Jara e6440123ee Revert "parser, lexer: solve function call ambiguity"
This reverts commit 5213c1e6fb.
2026-05-04 18:46:24 +02:00
Guillem L. Jara 5213c1e6fb parser, lexer: solve function call ambiguity
I really wanted not to do it this way, but it causes an ambiguity with `getline foo(x)` and GNU seems to have bailed on this too.
2026-05-04 18:45:12 +02:00
Sylvestre Ledru d4539f90f6 fix: unblock workspace clippy warnings 2026-04-30 19:20:23 +02:00
Sylvestre Ledru a0fe7bc9b0 add license headers 2026-04-30 18:42:16 +02:00
Guillem L. Jara 8d2d4b4f0d feat(parser): Rework S-expr printing 2026-04-30 03:31:08 +02:00
Guillem L. Jara f4634eab3c feat(lexer): start tracking spans internally
Integrates nicely with the current error handling; mirrors Logos' API.
2026-04-30 01:27:50 +02:00
Guillem L. Jara 8384183a4d fix(parser): Rework function call parsing 2026-04-30 01:06:04 +02:00
Guillem L. Jara 1609ff1b1c Initial commit 2026-04-29 22:16:25 +02:00