Commit graph

76 commits

Author SHA1 Message Date
79a037b749 Flesh out syntax part of documentation
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-16 10:04:33 +01:00
560d37f633 Move ParseFailure to errors
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-16 09:46:25 +01:00
058e6be516 Move AstFailure to error module
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-16 09:44:38 +01:00
4c8938e4ff Add documentation
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-16 09:41:16 +01:00
ea75da491d Prepare pre-pre-release
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 14:42:15 +01:00
ffd9baf90f Add deep access
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 14:31:46 +01:00
4f770c1f24 Abstract infix macro
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 13:48:51 +01:00
a590839b21 Add parsing of dot operator
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 13:39:08 +01:00
145d305c94 Add parsing of '.' (dot)
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 13:36:34 +01:00
9940881e46 Add conditional value emitting
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 12:46:00 +01:00
662e574588 Add undefined value
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 12:35:45 +01:00
9b87e7089f Parse conditional access
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 12:34:35 +01:00
beac224f5b Add lexing of '?'
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 12:11:30 +01:00
5354d4ac7b Write some words into the README
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 12:07:40 +01:00
7355a42401 Add description and license
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 11:46:30 +01:00
d72f888849 Rename emit to compiler
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 11:45:32 +01:00
705c6a8818 Rename ast to parser
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 11:33:40 +01:00
f87f4a0262 Rename parser to lexer
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 11:31:40 +01:00
10bcd77040 Add function calling
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-15 11:27:25 +01:00
52a63a7066 Add emitting of function calls
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-14 10:52:29 +01:00
cb55c00739 Add function asting
Signed-off-by: Marcel Müller <neikos@neikos.email>
2026-03-13 09:08:06 +01:00
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