Add using literal loading

Signed-off-by: Marcel Müller <neikos@neikos.email>
This commit is contained in:
Marcel Müller 2026-03-12 11:31:08 +01:00
parent 8c02dbd672
commit 05c095ccfe
7 changed files with 162 additions and 1 deletions

View file

@ -0,0 +1,27 @@
---
source: tests/file_tests.rs
expression: parsed
info:
input: "{{ if true }}\n Hello World!\n{{ end }}"
context: {}
input_file: tests/cases/literals.nomo
---
ParsedTemplate {
tokens: [
[LeftDelim]"{{" (0..2),
[Whitespace]" " (2..3),
[ConditionalIf]"if" (3..5),
[Whitespace]" " (5..6),
[Literal(Bool(true))]"true" (6..10),
[Whitespace]" " (10..11),
[RightDelim]"}}" (11..13),
[Whitespace]"\n " (13..18),
[Content]"Hello World!" (18..30),
[Whitespace]"\n" (30..31),
[LeftDelim]"{{" (31..33),
[Whitespace]" " (33..34),
[End]"end" (34..37),
[Whitespace]" " (37..38),
[RightDelim]"}}" (38..40),
],
}

View file

@ -0,0 +1,44 @@
---
source: tests/file_tests.rs
expression: ast
info:
input: "{{ if true }}\n Hello World!\n{{ end }}"
context: {}
input_file: tests/cases/literals.nomo
---
TemplateAst {
root: [
ConditionalChain {
chain: [
Block {
prev_whitespace_content: None,
expression: IfConditional {
expression: Literal {
source: [Literal(Bool(true))]"true" (6..10),
value: Bool {
value: true,
},
},
},
post_whitespace_content: Some(
[Whitespace]"\n " (13..18),
),
},
ConditionalContent {
content: [
StaticContent(
[Content]"Hello World!" (18..30),
),
],
},
Block {
prev_whitespace_content: Some(
[Whitespace]"\n" (30..31),
),
expression: EndBlock,
post_whitespace_content: None,
},
],
},
],
}

View file

@ -0,0 +1,55 @@
---
source: tests/file_tests.rs
expression: emit
info:
input: "{{ if true }}\n Hello World!\n{{ end }}"
context: {}
input_file: tests/cases/literals.nomo
---
VMInstructions {
labels: {
LabelSlot {
index: 0,
}: 7,
LabelSlot {
index: 2,
}: 7,
},
instructions: [
LoadLiteralToSlot {
source: [Literal(Bool(true))]"true" (6..10),
value: Bool {
value: true,
},
slot: VariableSlot {
index: 1,
},
},
JumpIfNotTrue {
emit_slot: VariableSlot {
index: 1,
},
jump: LabelSlot {
index: 2,
},
},
AppendContent {
content: "\n " (13..18),
},
AppendContent {
content: "Hello World!" (18..30),
},
AppendContent {
content: "\n" (30..31),
},
Jump {
jump: LabelSlot {
index: 0,
},
},
AppendContent {
content: "\n " (13..18),
},
NoOp,
],
}

View file

@ -0,0 +1,9 @@
---
source: tests/file_tests.rs
expression: output
info:
input: "{{ if true }}\n Hello World!\n{{ end }}"
context: {}
input_file: tests/cases/literals.nomo
---
"\n Hello World!\n"

View file

@ -0,0 +1,6 @@
{
}
---
{{ if true }}
Hello World!
{{ end }}