rename node -> syntax
This commit is contained in:
@@ -64,7 +64,7 @@ public static class QBEGenerator
|
||||
_writer.NewLine();
|
||||
}
|
||||
|
||||
foreach (var funcDef in _syntaxTree.TopLevelNodes.OfType<BoundLocalFuncNode>())
|
||||
foreach (var funcDef in _syntaxTree.Definitions.OfType<BoundLocalFuncNode>())
|
||||
{
|
||||
EmitFuncDefinition(funcDef, LocalFuncName(funcDef), funcDef.Parameters, funcDef.ReturnType, funcDef.Body, funcDef.Exported);
|
||||
_writer.NewLine();
|
||||
@@ -766,15 +766,15 @@ public static class QBEGenerator
|
||||
return new Val(outputName, binaryExpression.Type, ValKind.Direct);
|
||||
}
|
||||
|
||||
private static string EmitBinaryInstructionFor(BinaryExpressionOperator op, NubType type, string left, string right)
|
||||
private static string EmitBinaryInstructionFor(BoundBinaryOperator op, NubType type, string left, string right)
|
||||
{
|
||||
if (op is
|
||||
BinaryExpressionOperator.Equal or
|
||||
BinaryExpressionOperator.NotEqual or
|
||||
BinaryExpressionOperator.GreaterThan or
|
||||
BinaryExpressionOperator.GreaterThanOrEqual or
|
||||
BinaryExpressionOperator.LessThan or
|
||||
BinaryExpressionOperator.LessThanOrEqual)
|
||||
BoundBinaryOperator.Equal or
|
||||
BoundBinaryOperator.NotEqual or
|
||||
BoundBinaryOperator.GreaterThan or
|
||||
BoundBinaryOperator.GreaterThanOrEqual or
|
||||
BoundBinaryOperator.LessThan or
|
||||
BoundBinaryOperator.LessThanOrEqual)
|
||||
{
|
||||
char suffix;
|
||||
|
||||
@@ -815,12 +815,12 @@ public static class QBEGenerator
|
||||
throw new NotSupportedException($"Unsupported type '{simpleType}' for binary operator '{op}'");
|
||||
}
|
||||
|
||||
if (op is BinaryExpressionOperator.Equal)
|
||||
if (op is BoundBinaryOperator.Equal)
|
||||
{
|
||||
return "ceq" + suffix;
|
||||
}
|
||||
|
||||
if (op is BinaryExpressionOperator.NotEqual)
|
||||
if (op is BoundBinaryOperator.NotEqual)
|
||||
{
|
||||
return "cne" + suffix;
|
||||
}
|
||||
@@ -842,20 +842,20 @@ public static class QBEGenerator
|
||||
|
||||
return op switch
|
||||
{
|
||||
BinaryExpressionOperator.GreaterThan => 'c' + sign + "gt" + suffix,
|
||||
BinaryExpressionOperator.GreaterThanOrEqual => 'c' + sign + "ge" + suffix,
|
||||
BinaryExpressionOperator.LessThan => 'c' + sign + "lt" + suffix,
|
||||
BinaryExpressionOperator.LessThanOrEqual => 'c' + sign + "le" + suffix,
|
||||
BoundBinaryOperator.GreaterThan => 'c' + sign + "gt" + suffix,
|
||||
BoundBinaryOperator.GreaterThanOrEqual => 'c' + sign + "ge" + suffix,
|
||||
BoundBinaryOperator.LessThan => 'c' + sign + "lt" + suffix,
|
||||
BoundBinaryOperator.LessThanOrEqual => 'c' + sign + "le" + suffix,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(op), op, null)
|
||||
};
|
||||
}
|
||||
|
||||
return op switch
|
||||
{
|
||||
BinaryExpressionOperator.Plus => "add",
|
||||
BinaryExpressionOperator.Minus => "sub",
|
||||
BinaryExpressionOperator.Multiply => "mul",
|
||||
BinaryExpressionOperator.Divide => "div",
|
||||
BoundBinaryOperator.Plus => "add",
|
||||
BoundBinaryOperator.Minus => "sub",
|
||||
BoundBinaryOperator.Multiply => "mul",
|
||||
BoundBinaryOperator.Divide => "div",
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(op))
|
||||
};
|
||||
}
|
||||
@@ -994,7 +994,7 @@ public static class QBEGenerator
|
||||
|
||||
switch (unaryExpression.Operator)
|
||||
{
|
||||
case UnaryExpressionOperator.Negate:
|
||||
case BoundUnaryOperator.Negate:
|
||||
{
|
||||
switch (unaryExpression.Operand.Type)
|
||||
{
|
||||
@@ -1014,7 +1014,7 @@ public static class QBEGenerator
|
||||
|
||||
break;
|
||||
}
|
||||
case UnaryExpressionOperator.Invert:
|
||||
case BoundUnaryOperator.Invert:
|
||||
{
|
||||
switch (unaryExpression.Operand.Type)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user