This commit is contained in:
2026-02-08 15:53:00 +01:00
parent 4c201c4085
commit 1a5742fc4f
3 changed files with 38 additions and 10 deletions

View File

@@ -68,6 +68,9 @@ public sealed class Generator(List<NodeDefinition> nodes)
case NodeStatementVariableDeclaration statement:
EmitStatementVariableDeclaration(statement);
break;
case NodeStatementAssignment statement:
EmitStatementAssignment(statement);
break;
default:
throw new ArgumentOutOfRangeException(nameof(node), node, null);
}
@@ -87,7 +90,7 @@ public sealed class Generator(List<NodeDefinition> nodes)
private void EmitStatementFuncCall(NodeStatementFuncCall node)
{
var name = EmitExpression(node.Func);
var name = EmitExpression(node.Target);
var parameterValues = node.Parameters.Select(EmitExpression).ToList();
writer.WriteLine($"{name}({string.Join(", ", parameterValues)});");
}
@@ -104,6 +107,13 @@ public sealed class Generator(List<NodeDefinition> nodes)
writer.WriteLine($"{CType(statement.Type)} {statement.Name.Ident} = {value};");
}
private void EmitStatementAssignment(NodeStatementAssignment statement)
{
var target = EmitExpression(statement.Target);
var value = EmitExpression(statement.Value);
writer.WriteLine($"{target} = {value};");
}
private string EmitExpression(NodeExpression node)
{
return node switch