This commit is contained in:
nub31
2025-05-11 18:08:03 +02:00
parent 340f1e3448
commit 98669aabcc
2 changed files with 12 additions and 8 deletions

View File

@@ -4,4 +4,8 @@ global func main() {
if 3 / 3 == 1 { if 3 / 3 == 1 {
puts("uwu"); puts("uwu");
} }
while 1 == 1 {
puts("loop");
}
} }

View File

@@ -176,9 +176,9 @@ public class Generator
private void GenerateIf(IfNode ifStatement) private void GenerateIf(IfNode ifStatement)
{ {
var trueLabel = GenName("if_true"); var trueLabel = GenName("true");
var endLabel = GenName("if_end"); var falseLabel = GenName("false");
var falseLabel = GenName("if_false"); var endLabel = GenName("endif");
var result = GenerateExpression(ifStatement.Condition); var result = GenerateExpression(ifStatement.Condition);
_builder.AppendLine($" jnz {result}, @{trueLabel}, @{falseLabel}"); _builder.AppendLine($" jnz {result}, @{trueLabel}, @{falseLabel}");
@@ -233,9 +233,9 @@ public class Generator
private void GenerateWhile(WhileNode whileStatement) private void GenerateWhile(WhileNode whileStatement)
{ {
var conditionLabel = GenName("loop_condition"); var conditionLabel = GenName("condition");
var iterationLabel = GenName("loop_iteration"); var iterationLabel = GenName("iteration");
var endLabel = GenName("loop_end"); var endLabel = GenName("endloop");
_breakLabels.Push(endLabel); _breakLabels.Push(endLabel);
_continueLabels.Push(conditionLabel); _continueLabels.Push(conditionLabel);
@@ -613,11 +613,11 @@ public class Generator
return $"%{output}"; return $"%{output}";
} }
private string GenName(string prefix = "var") private string GenName(string prefix = "v")
{ {
var index = _prefixIndexes.GetValueOrDefault(prefix, 0); var index = _prefixIndexes.GetValueOrDefault(prefix, 0);
_prefixIndexes[prefix] = index + 1; _prefixIndexes[prefix] = index + 1;
return $"{prefix}_{index}"; return $"{prefix}{index}";
} }
private class Variable private class Variable