...
This commit is contained in:
@@ -74,6 +74,9 @@ public sealed class Generator(List<NodeDefinition> nodes)
|
||||
case NodeStatementIf statement:
|
||||
EmitStatementIf(statement);
|
||||
break;
|
||||
case NodeStatementWhile statement:
|
||||
EmitStatementWhile(statement);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(node), node, null);
|
||||
}
|
||||
@@ -147,6 +150,18 @@ public sealed class Generator(List<NodeDefinition> nodes)
|
||||
}
|
||||
}
|
||||
|
||||
private void EmitStatementWhile(NodeStatementWhile statement)
|
||||
{
|
||||
var condition = EmitExpression(statement.Condition);
|
||||
writer.WriteLine($"while ({condition})");
|
||||
writer.WriteLine("{");
|
||||
using (writer.Indent())
|
||||
{
|
||||
EmitStatement(statement.Block);
|
||||
}
|
||||
writer.WriteLine("}");
|
||||
}
|
||||
|
||||
private string EmitExpression(NodeExpression node)
|
||||
{
|
||||
return node switch
|
||||
|
||||
Reference in New Issue
Block a user