Commit graph

55 commits

Author SHA1 Message Date
70f616d60c Add tokenization of function pieces
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-13 08:38:58 +01:00
b2a97c56db Add array concatenation
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-13 07:42:29 +01:00
d41cd57847 Add asting benchmark
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-13 07:40:21 +01:00
9aeeb4eb5b Scope tests in cases
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 18:17:22 +01:00
06816567ff Use macro per-test-file
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 18:15:20 +01:00
605798674f Make usage of the $side metavariable
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 18:00:45 +01:00
722e61cc85 Add operator precedence and refactor expressions
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 17:53:11 +01:00
437584c844 Add parsing of more logical combinators
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 17:36:36 +01:00
d222573a3a Add evaluating of simple maths
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 17:29:45 +01:00
05c095ccfe Add using literal loading
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 11:31:08 +01:00
8c02dbd672 Parse and ast math expressions
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 11:25:55 +01:00
8cc8488de4 Add parsing of literal numbers
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 10:43:45 +01:00
09ae91c393 Add parsing of operations
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-12 10:04:15 +01:00
474324726a Add fuzzer for deeply nested parsing
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-11 18:39:57 +01:00
dc8281036c Add tests for for loop
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-11 18:15:14 +01:00
42e0056374 Add for loop
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-11 18:09:58 +01:00
7182024342 Introduce JumpLabels instead of manually correct jump positions
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-11 15:50:05 +01:00
e64256b65f Add ast parsing for for loops
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-11 14:00:45 +01:00
a099c74b1b Re-arrange TemplateAstExpr
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-11 10:36:40 +01:00
018ba3cd2c Add for loop parsing
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-11 10:34:17 +01:00
3f549690c1 Fix combinatorial explosion on backtracking broken if chains
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 16:21:23 +01:00
b0620a00d5 Fix issue with repeating {{ else }} blocks
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 16:02:55 +01:00
462355b6f2 Fix invalid indices when content is not long enough
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 15:20:07 +01:00
fa1582f3ad Add fuzzing
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 15:20:02 +01:00
e0e84ede1c Add a noop if no whitespace is emitted to have something to jump to
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 13:34:27 +01:00
59f92e31fe Allow trimming of whitespace
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 13:24:40 +01:00
587cfdea53 Add parsing of whitespace trimming
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 13:14:58 +01:00
6a233e978f Patch in content of previous block if it exists
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 13:08:15 +01:00
ae379df9db Also fix the jump if its the last one
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 13:04:16 +01:00
ff308649b9 Add if else if chains
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 12:51:49 +01:00
ef02e94591 Add tests for if/else if/else/if
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-09 11:40:12 +01:00
c9314a3d9b Split up if chains more
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-08 21:22:57 +01:00
383f543119 Move EndBlock to own element
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-08 20:10:33 +01:00
08b480705b Also emit TokenKind in debug
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-08 20:05:54 +01:00
13eb4ca1d0 Add else parsing
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-08 20:02:33 +01:00
b69c659583 Add simple bench
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-08 16:12:56 +01:00
8afc2d1bde Add parsing for conditionals (cont.)
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-08 15:06:29 +01:00
974086a877 Add parsing of simple conditionals
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-07 11:49:40 +01:00
ffb5c92b89 Rename snapshot file as well
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-07 11:23:14 +01:00
d2e0405033 Rename library to nomo
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-07 10:07:47 +01:00
d691fb9198 Add parsing of if/end
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 20:53:57 +01:00
10a33dc935 Allow identifiers to contain underscore
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 15:45:39 +01:00
e158450d18 Add test for multiple interpolations
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 15:40:05 +01:00
67b9c418ac Fixup the testing stuff
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 15:09:53 +01:00
d3e6410ec0 Setup a testing bench
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 13:56:39 +01:00
4470af3926 Add proper impl for templating
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 12:56:16 +01:00
1ee7611981 Use custom Arc backed input
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 12:42:11 +01:00
1ea15f0e49 Add first working pipeline of parse -> ast -> instr -> render
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 11:03:48 +01:00
f5050e369e Add ast parsing
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-06 08:25:17 +01:00
c5a2179b9e Capture whitespace around interpolations
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-05 20:34:10 +01:00