Rename token kinds & syntax nodes
This commit is contained in:
parent
8c1ddb0cf7
commit
e1a7ea36c9
@ -22,8 +22,8 @@ namespace ConsoleDemo
|
|||||||
{
|
{
|
||||||
switch (lhs.Kind)
|
switch (lhs.Kind)
|
||||||
{
|
{
|
||||||
case TokenKind.IdentifierName:
|
case TokenKind.IdentifierNameExpression:
|
||||||
var name = ((IdentifierNameSyntaxNode) lhs).Name.Text;
|
var name = ((IdentifierNameExpressionSyntaxNode) lhs).Name.Text;
|
||||||
Console.WriteLine($"Adding variable assignment for {name}");
|
Console.WriteLine($"Adding variable assignment for {name}");
|
||||||
_variableAssignments.Add(name, new Variable());
|
_variableAssignments.Add(name, new Variable());
|
||||||
break;
|
break;
|
||||||
@ -66,8 +66,8 @@ namespace ConsoleDemo
|
|||||||
{
|
{
|
||||||
switch (node.Kind)
|
switch (node.Kind)
|
||||||
{
|
{
|
||||||
case TokenKind.IdentifierName:
|
case TokenKind.IdentifierNameExpression:
|
||||||
var name = (IdentifierNameSyntaxNode) node;
|
var name = (IdentifierNameExpressionSyntaxNode) node;
|
||||||
if (_context.FindFunction(name.Name.Text))
|
if (_context.FindFunction(name.Name.Text))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@ -90,7 +90,7 @@ namespace ConsoleDemo
|
|||||||
Variable assignment;
|
Variable assignment;
|
||||||
switch (node.Kind)
|
switch (node.Kind)
|
||||||
{
|
{
|
||||||
case TokenKind.IdentifierName:
|
case TokenKind.IdentifierNameExpression:
|
||||||
assignment = _variableAssignments.Find(node.Text);
|
assignment = _variableAssignments.Find(node.Text);
|
||||||
if (assignment != null || node.Text == "end")
|
if (assignment != null || node.Text == "end")
|
||||||
{
|
{
|
||||||
@ -98,12 +98,12 @@ namespace ConsoleDemo
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case TokenKind.FunctionCall:
|
case TokenKind.FunctionCallExpression:
|
||||||
var functionCall = (FunctionCallExpressionSyntaxNode)node;
|
var functionCall = (FunctionCallExpressionSyntaxNode)node;
|
||||||
return
|
return
|
||||||
(IsDefined(functionCall.FunctionName) && IsDefined(functionCall.Nodes)) ||
|
(IsDefined(functionCall.FunctionName) && IsDefined(functionCall.Nodes)) ||
|
||||||
(IsDefinedFunctionName(functionCall.FunctionName) && IsDefined(functionCall.Nodes));
|
(IsDefinedFunctionName(functionCall.FunctionName) && IsDefined(functionCall.Nodes));
|
||||||
case TokenKind.CellArrayElementAccess:
|
case TokenKind.CellArrayElementAccessExpression:
|
||||||
var cellArrayElementAccess = (CellArrayElementAccessExpressionSyntaxNode) node;
|
var cellArrayElementAccess = (CellArrayElementAccessExpressionSyntaxNode) node;
|
||||||
return IsDefined(cellArrayElementAccess.Expression) && IsDefined(cellArrayElementAccess.Nodes);
|
return IsDefined(cellArrayElementAccess.Expression) && IsDefined(cellArrayElementAccess.Nodes);
|
||||||
case TokenKind.List:
|
case TokenKind.List:
|
||||||
@ -113,7 +113,7 @@ namespace ConsoleDemo
|
|||||||
return true;
|
return true;
|
||||||
case TokenKind.StringLiteralExpression:
|
case TokenKind.StringLiteralExpression:
|
||||||
return true;
|
return true;
|
||||||
case TokenKind.BinaryOperation:
|
case TokenKind.BinaryOperationExpression:
|
||||||
var binaryOperation = (BinaryOperationExpressionSyntaxNode) node;
|
var binaryOperation = (BinaryOperationExpressionSyntaxNode) node;
|
||||||
return IsDefined(binaryOperation.Lhs) && IsDefined(binaryOperation.Rhs);
|
return IsDefined(binaryOperation.Lhs) && IsDefined(binaryOperation.Rhs);
|
||||||
case TokenKind.UnaryPrefixOperationExpression:
|
case TokenKind.UnaryPrefixOperationExpression:
|
||||||
@ -139,7 +139,7 @@ namespace ConsoleDemo
|
|||||||
{
|
{
|
||||||
var parameterAsNode = parameter.AsNode();
|
var parameterAsNode = parameter.AsNode();
|
||||||
Console.WriteLine($"Parameter node: {parameterAsNode}");
|
Console.WriteLine($"Parameter node: {parameterAsNode}");
|
||||||
if (parameterAsNode.Kind == TokenKind.IdentifierName)
|
if (parameterAsNode.Kind == TokenKind.IdentifierNameExpression)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Adding variable assignment for {parameterAsNode.Text}");
|
Console.WriteLine($"Adding variable assignment for {parameterAsNode.Text}");
|
||||||
_variableAssignments.Add(parameterAsNode.Text, new Variable());
|
_variableAssignments.Add(parameterAsNode.Text, new Variable());
|
||||||
|
@ -274,7 +274,7 @@ namespace ProjectConsole
|
|||||||
OutputBracket(node.ClosingBrace);
|
OutputBracket(node.ClosingBrace);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void VisitIdentifierName(IdentifierNameSyntaxNode node)
|
public override void VisitIdentifierNameExpression(IdentifierNameExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
OutputIdentifier(node.Name);
|
OutputIdentifier(node.Name);
|
||||||
}
|
}
|
||||||
@ -410,7 +410,7 @@ namespace ProjectConsole
|
|||||||
OutputBracket(node.ClosingBrace);
|
OutputBracket(node.ClosingBrace);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void VisitCompoundName(CompoundNameSyntaxNode node)
|
public override void VisitCompoundNameExpression(CompoundNameExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
Visit(node.Nodes);
|
Visit(node.Nodes);
|
||||||
}
|
}
|
||||||
@ -479,14 +479,14 @@ namespace ProjectConsole
|
|||||||
OutputBracket(node.ClosingBracket);
|
OutputBracket(node.ClosingBracket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void VisitLambda(LambdaSyntaxNode node)
|
public override void VisitLambdaExpression(LambdaExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
OutputOperator(node.AtSign);
|
OutputOperator(node.AtSign);
|
||||||
Visit(node.Input);
|
Visit(node.Input);
|
||||||
Visit(node.Body);
|
Visit(node.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void VisitNamedFunctionHandle(NamedFunctionHandleSyntaxNode node)
|
public override void VisitNamedFunctionHandleExpression(NamedFunctionHandleExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
OutputOperator(node.AtSign);
|
OutputOperator(node.AtSign);
|
||||||
Visit(node.FunctionName);
|
Visit(node.FunctionName);
|
||||||
|
@ -49,8 +49,8 @@ namespace ConsoleDemo
|
|||||||
{
|
{
|
||||||
switch (lhs.Kind)
|
switch (lhs.Kind)
|
||||||
{
|
{
|
||||||
case TokenKind.IdentifierName:
|
case TokenKind.IdentifierNameExpression:
|
||||||
var name = ((IdentifierNameSyntaxNode)lhs).Name.Text;
|
var name = ((IdentifierNameExpressionSyntaxNode)lhs).Name.Text;
|
||||||
Console.WriteLine($"Adding variable assignment for {name}");
|
Console.WriteLine($"Adding variable assignment for {name}");
|
||||||
_variableAssignments.Add(name, new Variable());
|
_variableAssignments.Add(name, new Variable());
|
||||||
break;
|
break;
|
||||||
@ -100,7 +100,7 @@ namespace ConsoleDemo
|
|||||||
{
|
{
|
||||||
var parameterAsNode = parameter.AsNode();
|
var parameterAsNode = parameter.AsNode();
|
||||||
Console.WriteLine($"Parameter node: {parameterAsNode}");
|
Console.WriteLine($"Parameter node: {parameterAsNode}");
|
||||||
if (parameterAsNode.Kind == TokenKind.IdentifierName)
|
if (parameterAsNode.Kind == TokenKind.IdentifierNameExpression)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Adding variable assignment for {parameterAsNode.Text}");
|
Console.WriteLine($"Adding variable assignment for {parameterAsNode.Text}");
|
||||||
_variableAssignments.Add(parameterAsNode.Text, new Variable());
|
_variableAssignments.Add(parameterAsNode.Text, new Variable());
|
||||||
@ -131,7 +131,7 @@ namespace ConsoleDemo
|
|||||||
{
|
{
|
||||||
var parameterAsNode = parameter.AsNode();
|
var parameterAsNode = parameter.AsNode();
|
||||||
Console.WriteLine($"Parameter node: {parameterAsNode}");
|
Console.WriteLine($"Parameter node: {parameterAsNode}");
|
||||||
if (parameterAsNode.Kind == TokenKind.IdentifierName)
|
if (parameterAsNode.Kind == TokenKind.IdentifierNameExpression)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Adding variable assignment for {parameterAsNode.Text}");
|
Console.WriteLine($"Adding variable assignment for {parameterAsNode.Text}");
|
||||||
_variableAssignments.Add(parameterAsNode.Text, new Variable());
|
_variableAssignments.Add(parameterAsNode.Text, new Variable());
|
||||||
|
@ -221,7 +221,7 @@ namespace MApplication
|
|||||||
AddToken(node.ClosingBrace, _scheme.Bracket);
|
AddToken(node.ClosingBrace, _scheme.Bracket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void VisitIdentifierName(IdentifierNameSyntaxNode node)
|
public override void VisitIdentifierNameExpression(IdentifierNameExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
AddToken(node.Name, _scheme.Identifier);
|
AddToken(node.Name, _scheme.Identifier);
|
||||||
}
|
}
|
||||||
@ -357,7 +357,7 @@ namespace MApplication
|
|||||||
AddToken(node.ClosingBrace, _scheme.Bracket);
|
AddToken(node.ClosingBrace, _scheme.Bracket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void VisitCompoundName(CompoundNameSyntaxNode node)
|
public override void VisitCompoundNameExpression(CompoundNameExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
Visit(node.Nodes);
|
Visit(node.Nodes);
|
||||||
}
|
}
|
||||||
@ -426,14 +426,14 @@ namespace MApplication
|
|||||||
AddToken(node.ClosingBracket, _scheme.Bracket);
|
AddToken(node.ClosingBracket, _scheme.Bracket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void VisitLambda(LambdaSyntaxNode node)
|
public override void VisitLambdaExpression(LambdaExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
AddToken(node.AtSign, _scheme.Operator);
|
AddToken(node.AtSign, _scheme.Operator);
|
||||||
Visit(node.Input);
|
Visit(node.Input);
|
||||||
Visit(node.Body);
|
Visit(node.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void VisitNamedFunctionHandle(NamedFunctionHandleSyntaxNode node)
|
public override void VisitNamedFunctionHandleExpression(NamedFunctionHandleExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
AddToken(node.AtSign, _scheme.Operator);
|
AddToken(node.AtSign, _scheme.Operator);
|
||||||
Visit(node.FunctionName);
|
Visit(node.FunctionName);
|
||||||
|
@ -43,28 +43,28 @@ namespace Parser
|
|||||||
{
|
{
|
||||||
return statement.Kind switch
|
return statement.Kind switch
|
||||||
{
|
{
|
||||||
TokenKind.ExpressionStatement =>
|
|
||||||
EvaluateExpressionStatement((ExpressionStatementSyntaxNode)statement),
|
|
||||||
TokenKind.MethodDefinition =>
|
|
||||||
EvaluateMethodDefinition((MethodDefinitionSyntaxNode)statement),
|
|
||||||
TokenKind.AbstractMethodDeclaration =>
|
TokenKind.AbstractMethodDeclaration =>
|
||||||
EvaluateAbstractMethodDeclaration((AbstractMethodDeclarationSyntaxNode)statement),
|
EvaluateAbstractMethodDeclaration((AbstractMethodDeclarationSyntaxNode)statement),
|
||||||
TokenKind.FunctionDeclaration =>
|
|
||||||
EvaluateFunctionDeclaration((FunctionDeclarationSyntaxNode)statement),
|
|
||||||
TokenKind.SwitchStatement =>
|
|
||||||
EvaluateSwitchStatement((SwitchStatementSyntaxNode)statement),
|
|
||||||
TokenKind.WhileStatement =>
|
|
||||||
EvaluateWhileStatement((WhileStatementSyntaxNode)statement),
|
|
||||||
TokenKind.IfStatement =>
|
|
||||||
EvaluateIfStatement((IfStatementSyntaxNode)statement),
|
|
||||||
TokenKind.ForStatement =>
|
|
||||||
EvaluateForStatement((ForStatementSyntaxNode)statement),
|
|
||||||
TokenKind.TryCatchStatement =>
|
|
||||||
EvaluateTryCatchStatement((TryCatchStatementSyntaxNode)statement),
|
|
||||||
TokenKind.EmptyStatement =>
|
|
||||||
EvaluateEmptyStatement((EmptyStatementSyntaxNode)statement),
|
|
||||||
TokenKind.ClassDeclaration =>
|
TokenKind.ClassDeclaration =>
|
||||||
EvaluateClassDeclaration((ClassDeclarationSyntaxNode)statement),
|
EvaluateClassDeclaration((ClassDeclarationSyntaxNode)statement),
|
||||||
|
TokenKind.EmptyStatement =>
|
||||||
|
EvaluateEmptyStatement((EmptyStatementSyntaxNode)statement),
|
||||||
|
TokenKind.ExpressionStatement =>
|
||||||
|
EvaluateExpressionStatement((ExpressionStatementSyntaxNode)statement),
|
||||||
|
TokenKind.ForStatement =>
|
||||||
|
EvaluateForStatement((ForStatementSyntaxNode)statement),
|
||||||
|
TokenKind.FunctionDeclaration =>
|
||||||
|
EvaluateFunctionDeclaration((FunctionDeclarationSyntaxNode)statement),
|
||||||
|
TokenKind.IfStatement =>
|
||||||
|
EvaluateIfStatement((IfStatementSyntaxNode)statement),
|
||||||
|
TokenKind.ConcreteMethodDeclaration =>
|
||||||
|
EvaluateMethodDefinition((MethodDefinitionSyntaxNode)statement),
|
||||||
|
TokenKind.SwitchStatement =>
|
||||||
|
EvaluateSwitchStatement((SwitchStatementSyntaxNode)statement),
|
||||||
|
TokenKind.TryCatchStatement =>
|
||||||
|
EvaluateTryCatchStatement((TryCatchStatementSyntaxNode)statement),
|
||||||
|
TokenKind.WhileStatement =>
|
||||||
|
EvaluateWhileStatement((WhileStatementSyntaxNode)statement),
|
||||||
_ => throw new NotImplementedException($"Invalid statement kind '{statement.Kind}'."),
|
_ => throw new NotImplementedException($"Invalid statement kind '{statement.Kind}'."),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -128,52 +128,59 @@ namespace Parser
|
|||||||
{
|
{
|
||||||
return expression.Kind switch
|
return expression.Kind switch
|
||||||
{
|
{
|
||||||
TokenKind.Lambda =>
|
|
||||||
EvaluateLambda((LambdaSyntaxNode)expression),
|
|
||||||
TokenKind.AssignmentExpression =>
|
|
||||||
EvaluateAssignmentExpression((AssignmentExpressionSyntaxNode)expression),
|
|
||||||
TokenKind.EmptyExpression =>
|
|
||||||
EvaluateEmptyExpression((EmptyExpressionSyntaxNode)expression),
|
|
||||||
TokenKind.UnaryPrefixOperationExpression =>
|
|
||||||
EvaluateUnaryPrefixOperationExpression((UnaryPrefixOperationExpressionSyntaxNode)expression),
|
|
||||||
TokenKind.CompoundName =>
|
|
||||||
EvaluateCompoundName((CompoundNameSyntaxNode)expression),
|
|
||||||
TokenKind.BinaryOperation =>
|
|
||||||
EvaluateBinaryOperation((BinaryOperationExpressionSyntaxNode)expression),
|
|
||||||
TokenKind.IdentifierName =>
|
|
||||||
EvaluateIdentifierName((IdentifierNameSyntaxNode)expression),
|
|
||||||
TokenKind.NumberLiteralExpression =>
|
|
||||||
EvaluateNumberLiteralExpression((NumberLiteralSyntaxNode)expression),
|
|
||||||
TokenKind.StringLiteralExpression =>
|
|
||||||
EvaluateStringLiteralExpression((StringLiteralSyntaxNode)expression),
|
|
||||||
TokenKind.DoubleQuotedStringLiteralExpression =>
|
|
||||||
EvaluateDoubleQuotedStringLiteralExpression((DoubleQuotedStringLiteralSyntaxNode)expression),
|
|
||||||
TokenKind.UnquotedStringLiteralExpression =>
|
|
||||||
EvaluateUnquotedStringLiteralExpression((UnquotedStringLiteralSyntaxNode)expression),
|
|
||||||
TokenKind.ArrayLiteralExpression =>
|
TokenKind.ArrayLiteralExpression =>
|
||||||
EvaluateArrayLiteralExpression((ArrayLiteralExpressionSyntaxNode)expression),
|
EvaluateArrayLiteralExpression((ArrayLiteralExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.AssignmentExpression =>
|
||||||
|
EvaluateAssignmentExpression((AssignmentExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.BinaryOperationExpression =>
|
||||||
|
EvaluateBinaryOperation((BinaryOperationExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.CellArrayElementAccessExpression =>
|
||||||
|
EvaluateCellArrayElementAccess((CellArrayElementAccessExpressionSyntaxNode)expression),
|
||||||
TokenKind.CellArrayLiteralExpression =>
|
TokenKind.CellArrayLiteralExpression =>
|
||||||
EvaluateCellArrayLiteralExpression((CellArrayLiteralExpressionSyntaxNode)expression),
|
EvaluateCellArrayLiteralExpression((CellArrayLiteralExpressionSyntaxNode)expression),
|
||||||
TokenKind.ParenthesizedExpression =>
|
TokenKind.ClassInvokationExpression =>
|
||||||
EvaluateNamedFunctionHandle((NamedFunctionHandleSyntaxNode)expression),
|
EvaluateClassInvokation((BaseClassInvokationSyntaxNode)expression),
|
||||||
TokenKind.CellArrayElementAccess =>
|
TokenKind.CommandExpression =>
|
||||||
EvaluateCellArrayElementAccess((CellArrayElementAccessExpressionSyntaxNode)expression),
|
EvaluateCommand((CommandExpressionSyntaxNode)expression),
|
||||||
TokenKind.FunctionCall =>
|
TokenKind.CompoundNameExpression =>
|
||||||
|
EvaluateCompoundName((CompoundNameExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.DoubleQuotedStringLiteralExpression =>
|
||||||
|
EvaluateDoubleQuotedStringLiteralExpression((DoubleQuotedStringLiteralSyntaxNode)expression),
|
||||||
|
TokenKind.EmptyExpression =>
|
||||||
|
EvaluateEmptyExpression((EmptyExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.FunctionCallExpression =>
|
||||||
EvaluateFunctionCall((FunctionCallExpressionSyntaxNode)expression),
|
EvaluateFunctionCall((FunctionCallExpressionSyntaxNode)expression),
|
||||||
TokenKind.MemberAccess =>
|
TokenKind.IdentifierNameExpression =>
|
||||||
|
EvaluateIdentifierNameExpression((IdentifierNameExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.IndirectMemberAccessExpression =>
|
||||||
|
EvaluateIndirectMemberAccess((IndirectMemberAccessSyntaxNode)expression),
|
||||||
|
TokenKind.LambdaExpression =>
|
||||||
|
EvaluateLambdaExpression((LambdaExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.MemberAccessExpression =>
|
||||||
EvaluateMemberAccess((MemberAccessSyntaxNode)expression),
|
EvaluateMemberAccess((MemberAccessSyntaxNode)expression),
|
||||||
|
TokenKind.NamedFunctionHandleExpression =>
|
||||||
|
EvaluateNamedFunctionHandleExpression((NamedFunctionHandleExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.NumberLiteralExpression =>
|
||||||
|
EvaluateNumberLiteralExpression((NumberLiteralSyntaxNode)expression),
|
||||||
|
TokenKind.ParenthesizedExpression =>
|
||||||
|
EvaluateParenthesizedExpression((ParenthesizedExpressionSyntaxNode)expression),
|
||||||
|
TokenKind.StringLiteralExpression =>
|
||||||
|
EvaluateStringLiteralExpression((StringLiteralSyntaxNode)expression),
|
||||||
|
TokenKind.UnaryPrefixOperationExpression =>
|
||||||
|
EvaluateUnaryPrefixOperationExpression((UnaryPrefixOperationExpressionSyntaxNode)expression),
|
||||||
TokenKind.UnaryPostfixOperationExpression =>
|
TokenKind.UnaryPostfixOperationExpression =>
|
||||||
EvaluateUnaryPostfixOperationExpression((UnaryPostixOperationExpressionSyntaxNode)expression),
|
EvaluateUnaryPostfixOperationExpression((UnaryPostixOperationExpressionSyntaxNode)expression),
|
||||||
TokenKind.IndirectMemberAccess =>
|
TokenKind.UnquotedStringLiteralExpression =>
|
||||||
EvaluateIndirectMemberAccess((IndirectMemberAccessSyntaxNode)expression),
|
EvaluateUnquotedStringLiteralExpression((UnquotedStringLiteralSyntaxNode)expression),
|
||||||
TokenKind.Command =>
|
|
||||||
EvaluateCommand((CommandExpressionSyntaxNode)expression),
|
|
||||||
TokenKind.ClassInvokation =>
|
|
||||||
EvaluateClassInvokation((BaseClassInvokationSyntaxNode)expression),
|
|
||||||
_ => throw new NotImplementedException($"Invalid expression kind '{expression.Kind}'."),
|
_ => throw new NotImplementedException($"Invalid expression kind '{expression.Kind}'."),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private MObject? EvaluateParenthesizedExpression(ParenthesizedExpressionSyntaxNode expression)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
private MObject? EvaluateClassInvokation(BaseClassInvokationSyntaxNode expression)
|
private MObject? EvaluateClassInvokation(BaseClassInvokationSyntaxNode expression)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
@ -239,7 +246,7 @@ namespace Parser
|
|||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private MObject? EvaluateIdentifierName(IdentifierNameSyntaxNode expression)
|
private MObject? EvaluateIdentifierNameExpression(IdentifierNameExpressionSyntaxNode expression)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
@ -249,7 +256,7 @@ namespace Parser
|
|||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private MObject? EvaluateCompoundName(CompoundNameSyntaxNode expression)
|
private MObject? EvaluateCompoundName(CompoundNameExpressionSyntaxNode expression)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
@ -269,12 +276,12 @@ namespace Parser
|
|||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private MObject? EvaluateLambda(LambdaSyntaxNode expression)
|
private MObject? EvaluateLambdaExpression(LambdaExpressionSyntaxNode expression)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private MObject? EvaluateNamedFunctionHandle(NamedFunctionHandleSyntaxNode expression)
|
private MObject? EvaluateNamedFunctionHandleExpression(NamedFunctionHandleExpressionSyntaxNode expression)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
@ -113,7 +113,7 @@ namespace Parser.Internal
|
|||||||
}
|
}
|
||||||
|
|
||||||
firstToken = false;
|
firstToken = false;
|
||||||
outputs.Add(Factory.IdentifierNameSyntax(EatToken(TokenKind.IdentifierToken)));
|
outputs.Add(Factory.IdentifierNameExpressionSyntax(EatToken(TokenKind.IdentifierToken)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return outputs.ToList();
|
return outputs.ToList();
|
||||||
@ -141,7 +141,7 @@ namespace Parser.Internal
|
|||||||
if (PeekToken(1).Kind == TokenKind.EqualsToken)
|
if (PeekToken(1).Kind == TokenKind.EqualsToken)
|
||||||
{
|
{
|
||||||
var identifierToken = EatIdentifier();
|
var identifierToken = EatIdentifier();
|
||||||
builder.Add(Factory.IdentifierNameSyntax(identifierToken));
|
builder.Add(Factory.IdentifierNameExpressionSyntax(identifierToken));
|
||||||
assignmentSign = EatToken(TokenKind.EqualsToken);
|
assignmentSign = EatToken(TokenKind.EqualsToken);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -180,7 +180,7 @@ namespace Parser.Internal
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var identifierToken = EatToken(TokenKind.IdentifierToken);
|
var identifierToken = EatToken(TokenKind.IdentifierToken);
|
||||||
builder.Add(Factory.IdentifierNameSyntax(identifierToken));
|
builder.Add(Factory.IdentifierNameExpressionSyntax(identifierToken));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -329,7 +329,7 @@ namespace Parser.Internal
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
var id = EatToken(TokenKind.IdentifierToken);
|
var id = EatToken(TokenKind.IdentifierToken);
|
||||||
expression = Factory.IdentifierNameSyntax(id);
|
expression = Factory.IdentifierNameExpressionSyntax(id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -377,7 +377,7 @@ namespace Parser.Internal
|
|||||||
closingBracket);
|
closingBracket);
|
||||||
break;
|
break;
|
||||||
case TokenKind.DotToken: // member access
|
case TokenKind.DotToken: // member access
|
||||||
if (expression is IdentifierNameSyntaxNode
|
if (expression is IdentifierNameExpressionSyntaxNode
|
||||||
|| expression is MemberAccessSyntaxNode
|
|| expression is MemberAccessSyntaxNode
|
||||||
|| expression is FunctionCallExpressionSyntaxNode
|
|| expression is FunctionCallExpressionSyntaxNode
|
||||||
|| expression is CellArrayElementAccessExpressionSyntaxNode)
|
|| expression is CellArrayElementAccessExpressionSyntaxNode)
|
||||||
@ -414,7 +414,7 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
private CommandExpressionSyntaxNode ParseCommandExpression(ExpressionSyntaxNode expression)
|
private CommandExpressionSyntaxNode ParseCommandExpression(ExpressionSyntaxNode expression)
|
||||||
{
|
{
|
||||||
if (expression is IdentifierNameSyntaxNode idNameNode)
|
if (expression is IdentifierNameExpressionSyntaxNode idNameNode)
|
||||||
{
|
{
|
||||||
var builder = new SyntaxListBuilder<UnquotedStringLiteralSyntaxNode>();
|
var builder = new SyntaxListBuilder<UnquotedStringLiteralSyntaxNode>();
|
||||||
while (CurrentToken.Kind == TokenKind.UnquotedStringLiteralToken)
|
while (CurrentToken.Kind == TokenKind.UnquotedStringLiteralToken)
|
||||||
@ -434,7 +434,7 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
private BaseClassInvokationSyntaxNode ParseBaseClassInvokation(ExpressionSyntaxNode expression)
|
private BaseClassInvokationSyntaxNode ParseBaseClassInvokation(ExpressionSyntaxNode expression)
|
||||||
{
|
{
|
||||||
if (expression is IdentifierNameSyntaxNode methodName
|
if (expression is IdentifierNameExpressionSyntaxNode methodName
|
||||||
&& !expression.TrailingTrivia.Any())
|
&& !expression.TrailingTrivia.Any())
|
||||||
{
|
{
|
||||||
var atToken = EatToken();
|
var atToken = EatToken();
|
||||||
@ -463,7 +463,7 @@ namespace Parser.Internal
|
|||||||
{
|
{
|
||||||
if (CurrentToken.Kind == TokenKind.IdentifierToken)
|
if (CurrentToken.Kind == TokenKind.IdentifierToken)
|
||||||
{
|
{
|
||||||
return Factory.IdentifierNameSyntax(EatToken());
|
return Factory.IdentifierNameExpressionSyntax(EatToken());
|
||||||
}
|
}
|
||||||
if (CurrentToken.Kind == TokenKind.OpenParenthesisToken)
|
if (CurrentToken.Kind == TokenKind.OpenParenthesisToken)
|
||||||
{
|
{
|
||||||
@ -523,7 +523,7 @@ namespace Parser.Internal
|
|||||||
closeParen);
|
closeParen);
|
||||||
}
|
}
|
||||||
|
|
||||||
private CompoundNameSyntaxNode ParseCompoundName()
|
private CompoundNameExpressionSyntaxNode ParseCompoundName()
|
||||||
{
|
{
|
||||||
var lastToken = EatToken(TokenKind.IdentifierToken);
|
var lastToken = EatToken(TokenKind.IdentifierToken);
|
||||||
var firstName = lastToken;
|
var firstName = lastToken;
|
||||||
@ -538,16 +538,16 @@ namespace Parser.Internal
|
|||||||
builder.Add(lastToken);
|
builder.Add(lastToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Factory.CompoundNameSyntax(builder.ToList());
|
return Factory.CompoundNameExpressionSyntax(builder.ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
private FunctionHandleSyntaxNode ParseFunctionHandle()
|
private FunctionHandleExpressionSyntaxNode ParseFunctionHandle()
|
||||||
{
|
{
|
||||||
var atSign = EatToken();
|
var atSign = EatToken();
|
||||||
if (CurrentToken.Kind == TokenKind.IdentifierToken)
|
if (CurrentToken.Kind == TokenKind.IdentifierToken)
|
||||||
{
|
{
|
||||||
var compoundName = ParseCompoundName();
|
var compoundName = ParseCompoundName();
|
||||||
return Factory.NamedFunctionHandleSyntax(
|
return Factory.NamedFunctionHandleExpressionSyntax(
|
||||||
atSign,
|
atSign,
|
||||||
compoundName);
|
compoundName);
|
||||||
}
|
}
|
||||||
@ -563,7 +563,7 @@ namespace Parser.Internal
|
|||||||
{
|
{
|
||||||
throw new Exception($"Lambda expression body cannot be empty.");
|
throw new Exception($"Lambda expression body cannot be empty.");
|
||||||
}
|
}
|
||||||
return Factory.LambdaSyntax(atSign, inputs, body);
|
return Factory.LambdaExpressionSyntax(atSign, inputs, body);
|
||||||
}
|
}
|
||||||
throw new ParsingException($"Unexpected token {CurrentToken} while parsing function handle at {CurrentPosition}.");
|
throw new ParsingException($"Unexpected token {CurrentToken} while parsing function handle at {CurrentPosition}.");
|
||||||
}
|
}
|
||||||
@ -866,7 +866,7 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
private AttributeSyntaxNode ParseAttribute()
|
private AttributeSyntaxNode ParseAttribute()
|
||||||
{
|
{
|
||||||
var name = Factory.IdentifierNameSyntax(EatToken(TokenKind.IdentifierToken));
|
var name = Factory.IdentifierNameExpressionSyntax(EatToken(TokenKind.IdentifierToken));
|
||||||
var assignment = ParseAttributeAssignment();
|
var assignment = ParseAttributeAssignment();
|
||||||
return Factory.AttributeSyntax(name, assignment);
|
return Factory.AttributeSyntax(name, assignment);
|
||||||
}
|
}
|
||||||
@ -1023,7 +1023,7 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
private EnumerationItemSyntaxNode ParseEnumerationItem()
|
private EnumerationItemSyntaxNode ParseEnumerationItem()
|
||||||
{
|
{
|
||||||
var name = Factory.IdentifierNameSyntax(EatToken());
|
var name = Factory.IdentifierNameExpressionSyntax(EatToken());
|
||||||
var values = ParseEnumerationValue();
|
var values = ParseEnumerationValue();
|
||||||
var commas = ParseOptionalCommas();
|
var commas = ParseOptionalCommas();
|
||||||
return Factory.EnumerationItemSyntax(name, values, commas);
|
return Factory.EnumerationItemSyntax(name, values, commas);
|
||||||
@ -1104,7 +1104,7 @@ namespace Parser.Internal
|
|||||||
{
|
{
|
||||||
attributes = ParseAttributesList();
|
attributes = ParseAttributesList();
|
||||||
}
|
}
|
||||||
var className = Factory.IdentifierNameSyntax(EatToken(TokenKind.IdentifierToken));
|
var className = Factory.IdentifierNameExpressionSyntax(EatToken(TokenKind.IdentifierToken));
|
||||||
BaseClassListSyntaxNode? baseClassList = null;
|
BaseClassListSyntaxNode? baseClassList = null;
|
||||||
if (CurrentToken.Kind == TokenKind.LessToken)
|
if (CurrentToken.Kind == TokenKind.LessToken)
|
||||||
{
|
{
|
||||||
|
@ -93,19 +93,19 @@ namespace Parser.Internal
|
|||||||
return new UnaryPrefixOperationExpressionSyntaxNode(operation, operand);
|
return new UnaryPrefixOperationExpressionSyntaxNode(operation, operand);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompoundNameSyntaxNode CompoundNameSyntax(SyntaxList nodes)
|
public CompoundNameExpressionSyntaxNode CompoundNameExpressionSyntax(SyntaxList nodes)
|
||||||
{
|
{
|
||||||
return new CompoundNameSyntaxNode(nodes);
|
return new CompoundNameExpressionSyntaxNode(nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NamedFunctionHandleSyntaxNode NamedFunctionHandleSyntax(SyntaxToken atSign, CompoundNameSyntaxNode functionName)
|
public NamedFunctionHandleExpressionSyntaxNode NamedFunctionHandleExpressionSyntax(SyntaxToken atSign, CompoundNameExpressionSyntaxNode functionName)
|
||||||
{
|
{
|
||||||
return new NamedFunctionHandleSyntaxNode(atSign, functionName);
|
return new NamedFunctionHandleExpressionSyntaxNode(atSign, functionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LambdaSyntaxNode LambdaSyntax(SyntaxToken atSign, FunctionInputDescriptionSyntaxNode input, ExpressionSyntaxNode body)
|
public LambdaExpressionSyntaxNode LambdaExpressionSyntax(SyntaxToken atSign, FunctionInputDescriptionSyntaxNode input, ExpressionSyntaxNode body)
|
||||||
{
|
{
|
||||||
return new LambdaSyntaxNode(atSign, input, body);
|
return new LambdaExpressionSyntaxNode(atSign, input, body);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BinaryOperationExpressionSyntaxNode BinaryOperationExpressionSyntax(ExpressionSyntaxNode lhs, SyntaxToken operation, ExpressionSyntaxNode rhs)
|
public BinaryOperationExpressionSyntaxNode BinaryOperationExpressionSyntax(ExpressionSyntaxNode lhs, SyntaxToken operation, ExpressionSyntaxNode rhs)
|
||||||
@ -113,9 +113,9 @@ namespace Parser.Internal
|
|||||||
return new BinaryOperationExpressionSyntaxNode(lhs, operation, rhs);
|
return new BinaryOperationExpressionSyntaxNode(lhs, operation, rhs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IdentifierNameSyntaxNode IdentifierNameSyntax(SyntaxToken name)
|
public IdentifierNameExpressionSyntaxNode IdentifierNameExpressionSyntax(SyntaxToken name)
|
||||||
{
|
{
|
||||||
return new IdentifierNameSyntaxNode(name);
|
return new IdentifierNameExpressionSyntaxNode(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NumberLiteralSyntaxNode NumberLiteralSyntax(SyntaxToken number)
|
public NumberLiteralSyntaxNode NumberLiteralSyntax(SyntaxToken number)
|
||||||
@ -178,7 +178,7 @@ namespace Parser.Internal
|
|||||||
return new IndirectMemberAccessSyntaxNode(openingBracket, expression, closingBracket);
|
return new IndirectMemberAccessSyntaxNode(openingBracket, expression, closingBracket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommandExpressionSyntaxNode CommandExpressionSyntax(IdentifierNameSyntaxNode commandName, SyntaxList<UnquotedStringLiteralSyntaxNode> arguments)
|
public CommandExpressionSyntaxNode CommandExpressionSyntax(IdentifierNameExpressionSyntaxNode commandName, SyntaxList<UnquotedStringLiteralSyntaxNode> arguments)
|
||||||
{
|
{
|
||||||
return new CommandExpressionSyntaxNode(commandName, arguments);
|
return new CommandExpressionSyntaxNode(commandName, arguments);
|
||||||
}
|
}
|
||||||
@ -193,7 +193,7 @@ namespace Parser.Internal
|
|||||||
return new AttributeAssignmentSyntaxNode(assignmentSign, value);
|
return new AttributeAssignmentSyntaxNode(assignmentSign, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AttributeSyntaxNode AttributeSyntax(IdentifierNameSyntaxNode name, AttributeAssignmentSyntaxNode? assignment)
|
public AttributeSyntaxNode AttributeSyntax(IdentifierNameExpressionSyntaxNode name, AttributeAssignmentSyntaxNode? assignment)
|
||||||
{
|
{
|
||||||
return new AttributeSyntaxNode(name, assignment);
|
return new AttributeSyntaxNode(name, assignment);
|
||||||
}
|
}
|
||||||
@ -203,12 +203,12 @@ namespace Parser.Internal
|
|||||||
return new AttributeListSyntaxNode(openingBracket, nodes, closingBracket);
|
return new AttributeListSyntaxNode(openingBracket, nodes, closingBracket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MethodDefinitionSyntaxNode MethodDefinitionSyntax(SyntaxToken functionKeyword, FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription, SyntaxList<SyntaxToken> commas, SyntaxList body, EndKeywordSyntaxNode? endKeyword)
|
public MethodDefinitionSyntaxNode MethodDefinitionSyntax(SyntaxToken functionKeyword, FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameExpressionSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription, SyntaxList<SyntaxToken> commas, SyntaxList body, EndKeywordSyntaxNode? endKeyword)
|
||||||
{
|
{
|
||||||
return new MethodDefinitionSyntaxNode(functionKeyword, outputDescription, name, inputDescription, commas, body, endKeyword);
|
return new MethodDefinitionSyntaxNode(functionKeyword, outputDescription, name, inputDescription, commas, body, endKeyword);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractMethodDeclarationSyntaxNode AbstractMethodDeclarationSyntax(FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription)
|
public AbstractMethodDeclarationSyntaxNode AbstractMethodDeclarationSyntax(FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameExpressionSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription)
|
||||||
{
|
{
|
||||||
return new AbstractMethodDeclarationSyntaxNode(outputDescription, name, inputDescription);
|
return new AbstractMethodDeclarationSyntaxNode(outputDescription, name, inputDescription);
|
||||||
}
|
}
|
||||||
@ -228,7 +228,7 @@ namespace Parser.Internal
|
|||||||
return new BaseClassListSyntaxNode(lessSign, baseClasses);
|
return new BaseClassListSyntaxNode(lessSign, baseClasses);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ClassDeclarationSyntaxNode ClassDeclarationSyntax(SyntaxToken classdefKeyword, AttributeListSyntaxNode? attributes, IdentifierNameSyntaxNode className, BaseClassListSyntaxNode? baseClassList, SyntaxList nodes, SyntaxToken endKeyword)
|
public ClassDeclarationSyntaxNode ClassDeclarationSyntax(SyntaxToken classdefKeyword, AttributeListSyntaxNode? attributes, IdentifierNameExpressionSyntaxNode className, BaseClassListSyntaxNode? baseClassList, SyntaxList nodes, SyntaxToken endKeyword)
|
||||||
{
|
{
|
||||||
return new ClassDeclarationSyntaxNode(classdefKeyword, attributes, className, baseClassList, nodes, endKeyword);
|
return new ClassDeclarationSyntaxNode(classdefKeyword, attributes, className, baseClassList, nodes, endKeyword);
|
||||||
}
|
}
|
||||||
@ -238,7 +238,7 @@ namespace Parser.Internal
|
|||||||
return new EnumerationItemValueSyntaxNode(openingBracket, values, closingBracket);
|
return new EnumerationItemValueSyntaxNode(openingBracket, values, closingBracket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public EnumerationItemSyntaxNode EnumerationItemSyntax(IdentifierNameSyntaxNode name, EnumerationItemValueSyntaxNode? values, SyntaxList<SyntaxToken> commas)
|
public EnumerationItemSyntaxNode EnumerationItemSyntax(IdentifierNameExpressionSyntaxNode name, EnumerationItemValueSyntaxNode? values, SyntaxList<SyntaxToken> commas)
|
||||||
{
|
{
|
||||||
return new EnumerationItemSyntaxNode(name, values, commas);
|
return new EnumerationItemSyntaxNode(name, values, commas);
|
||||||
}
|
}
|
||||||
|
@ -890,17 +890,17 @@ namespace Parser.Internal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class CompoundNameSyntaxNode : ExpressionSyntaxNode
|
internal class CompoundNameExpressionSyntaxNode : ExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
internal readonly SyntaxList _nodes;
|
internal readonly SyntaxList _nodes;
|
||||||
internal CompoundNameSyntaxNode(SyntaxList nodes): base(TokenKind.CompoundName)
|
internal CompoundNameExpressionSyntaxNode(SyntaxList nodes): base(TokenKind.CompoundNameExpression)
|
||||||
{
|
{
|
||||||
Slots = 1;
|
Slots = 1;
|
||||||
this.AdjustWidth(nodes);
|
this.AdjustWidth(nodes);
|
||||||
_nodes = nodes;
|
_nodes = nodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal CompoundNameSyntaxNode(SyntaxList nodes, TokenDiagnostic[] diagnostics): base(TokenKind.CompoundName, diagnostics)
|
internal CompoundNameExpressionSyntaxNode(SyntaxList nodes, TokenDiagnostic[] diagnostics): base(TokenKind.CompoundNameExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 1;
|
Slots = 1;
|
||||||
this.AdjustWidth(nodes);
|
this.AdjustWidth(nodes);
|
||||||
@ -909,12 +909,12 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
internal override Parser.SyntaxNode CreateRed(Parser.SyntaxNode parent, int position)
|
internal override Parser.SyntaxNode CreateRed(Parser.SyntaxNode parent, int position)
|
||||||
{
|
{
|
||||||
return new Parser.CompoundNameSyntaxNode(parent, this, position);
|
return new Parser.CompoundNameExpressionSyntaxNode(parent, this, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
||||||
{
|
{
|
||||||
return new CompoundNameSyntaxNode(_nodes, diagnostics);
|
return new CompoundNameExpressionSyntaxNode(_nodes, diagnostics);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override GreenNode? GetSlot(int i)
|
public override GreenNode? GetSlot(int i)
|
||||||
@ -928,11 +928,11 @@ namespace Parser.Internal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class NamedFunctionHandleSyntaxNode : FunctionHandleSyntaxNode
|
internal class NamedFunctionHandleExpressionSyntaxNode : FunctionHandleExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
internal readonly SyntaxToken _atSign;
|
internal readonly SyntaxToken _atSign;
|
||||||
internal readonly CompoundNameSyntaxNode _functionName;
|
internal readonly CompoundNameExpressionSyntaxNode _functionName;
|
||||||
internal NamedFunctionHandleSyntaxNode(SyntaxToken atSign, CompoundNameSyntaxNode functionName): base(TokenKind.NamedFunctionHandle)
|
internal NamedFunctionHandleExpressionSyntaxNode(SyntaxToken atSign, CompoundNameExpressionSyntaxNode functionName): base(TokenKind.NamedFunctionHandleExpression)
|
||||||
{
|
{
|
||||||
Slots = 2;
|
Slots = 2;
|
||||||
this.AdjustWidth(atSign);
|
this.AdjustWidth(atSign);
|
||||||
@ -941,7 +941,7 @@ namespace Parser.Internal
|
|||||||
_functionName = functionName;
|
_functionName = functionName;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal NamedFunctionHandleSyntaxNode(SyntaxToken atSign, CompoundNameSyntaxNode functionName, TokenDiagnostic[] diagnostics): base(TokenKind.NamedFunctionHandle, diagnostics)
|
internal NamedFunctionHandleExpressionSyntaxNode(SyntaxToken atSign, CompoundNameExpressionSyntaxNode functionName, TokenDiagnostic[] diagnostics): base(TokenKind.NamedFunctionHandleExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 2;
|
Slots = 2;
|
||||||
this.AdjustWidth(atSign);
|
this.AdjustWidth(atSign);
|
||||||
@ -952,12 +952,12 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
internal override Parser.SyntaxNode CreateRed(Parser.SyntaxNode parent, int position)
|
internal override Parser.SyntaxNode CreateRed(Parser.SyntaxNode parent, int position)
|
||||||
{
|
{
|
||||||
return new Parser.NamedFunctionHandleSyntaxNode(parent, this, position);
|
return new Parser.NamedFunctionHandleExpressionSyntaxNode(parent, this, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
||||||
{
|
{
|
||||||
return new NamedFunctionHandleSyntaxNode(_atSign, _functionName, diagnostics);
|
return new NamedFunctionHandleExpressionSyntaxNode(_atSign, _functionName, diagnostics);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override GreenNode? GetSlot(int i)
|
public override GreenNode? GetSlot(int i)
|
||||||
@ -971,12 +971,12 @@ namespace Parser.Internal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class LambdaSyntaxNode : FunctionHandleSyntaxNode
|
internal class LambdaExpressionSyntaxNode : FunctionHandleExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
internal readonly SyntaxToken _atSign;
|
internal readonly SyntaxToken _atSign;
|
||||||
internal readonly FunctionInputDescriptionSyntaxNode _input;
|
internal readonly FunctionInputDescriptionSyntaxNode _input;
|
||||||
internal readonly ExpressionSyntaxNode _body;
|
internal readonly ExpressionSyntaxNode _body;
|
||||||
internal LambdaSyntaxNode(SyntaxToken atSign, FunctionInputDescriptionSyntaxNode input, ExpressionSyntaxNode body): base(TokenKind.Lambda)
|
internal LambdaExpressionSyntaxNode(SyntaxToken atSign, FunctionInputDescriptionSyntaxNode input, ExpressionSyntaxNode body): base(TokenKind.LambdaExpression)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(atSign);
|
this.AdjustWidth(atSign);
|
||||||
@ -987,7 +987,7 @@ namespace Parser.Internal
|
|||||||
_body = body;
|
_body = body;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal LambdaSyntaxNode(SyntaxToken atSign, FunctionInputDescriptionSyntaxNode input, ExpressionSyntaxNode body, TokenDiagnostic[] diagnostics): base(TokenKind.Lambda, diagnostics)
|
internal LambdaExpressionSyntaxNode(SyntaxToken atSign, FunctionInputDescriptionSyntaxNode input, ExpressionSyntaxNode body, TokenDiagnostic[] diagnostics): base(TokenKind.LambdaExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(atSign);
|
this.AdjustWidth(atSign);
|
||||||
@ -1000,12 +1000,12 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
internal override Parser.SyntaxNode CreateRed(Parser.SyntaxNode parent, int position)
|
internal override Parser.SyntaxNode CreateRed(Parser.SyntaxNode parent, int position)
|
||||||
{
|
{
|
||||||
return new Parser.LambdaSyntaxNode(parent, this, position);
|
return new Parser.LambdaExpressionSyntaxNode(parent, this, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
||||||
{
|
{
|
||||||
return new LambdaSyntaxNode(_atSign, _input, _body, diagnostics);
|
return new LambdaExpressionSyntaxNode(_atSign, _input, _body, diagnostics);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override GreenNode? GetSlot(int i)
|
public override GreenNode? GetSlot(int i)
|
||||||
@ -1024,7 +1024,7 @@ namespace Parser.Internal
|
|||||||
internal readonly ExpressionSyntaxNode _lhs;
|
internal readonly ExpressionSyntaxNode _lhs;
|
||||||
internal readonly SyntaxToken _operation;
|
internal readonly SyntaxToken _operation;
|
||||||
internal readonly ExpressionSyntaxNode _rhs;
|
internal readonly ExpressionSyntaxNode _rhs;
|
||||||
internal BinaryOperationExpressionSyntaxNode(ExpressionSyntaxNode lhs, SyntaxToken operation, ExpressionSyntaxNode rhs): base(TokenKind.BinaryOperation)
|
internal BinaryOperationExpressionSyntaxNode(ExpressionSyntaxNode lhs, SyntaxToken operation, ExpressionSyntaxNode rhs): base(TokenKind.BinaryOperationExpression)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(lhs);
|
this.AdjustWidth(lhs);
|
||||||
@ -1035,7 +1035,7 @@ namespace Parser.Internal
|
|||||||
_rhs = rhs;
|
_rhs = rhs;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal BinaryOperationExpressionSyntaxNode(ExpressionSyntaxNode lhs, SyntaxToken operation, ExpressionSyntaxNode rhs, TokenDiagnostic[] diagnostics): base(TokenKind.BinaryOperation, diagnostics)
|
internal BinaryOperationExpressionSyntaxNode(ExpressionSyntaxNode lhs, SyntaxToken operation, ExpressionSyntaxNode rhs, TokenDiagnostic[] diagnostics): base(TokenKind.BinaryOperationExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(lhs);
|
this.AdjustWidth(lhs);
|
||||||
@ -1067,17 +1067,17 @@ namespace Parser.Internal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class IdentifierNameSyntaxNode : ExpressionSyntaxNode
|
internal class IdentifierNameExpressionSyntaxNode : ExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
internal readonly SyntaxToken _name;
|
internal readonly SyntaxToken _name;
|
||||||
internal IdentifierNameSyntaxNode(SyntaxToken name): base(TokenKind.IdentifierName)
|
internal IdentifierNameExpressionSyntaxNode(SyntaxToken name): base(TokenKind.IdentifierNameExpression)
|
||||||
{
|
{
|
||||||
Slots = 1;
|
Slots = 1;
|
||||||
this.AdjustWidth(name);
|
this.AdjustWidth(name);
|
||||||
_name = name;
|
_name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal IdentifierNameSyntaxNode(SyntaxToken name, TokenDiagnostic[] diagnostics): base(TokenKind.IdentifierName, diagnostics)
|
internal IdentifierNameExpressionSyntaxNode(SyntaxToken name, TokenDiagnostic[] diagnostics): base(TokenKind.IdentifierNameExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 1;
|
Slots = 1;
|
||||||
this.AdjustWidth(name);
|
this.AdjustWidth(name);
|
||||||
@ -1086,12 +1086,12 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
internal override Parser.SyntaxNode CreateRed(Parser.SyntaxNode parent, int position)
|
internal override Parser.SyntaxNode CreateRed(Parser.SyntaxNode parent, int position)
|
||||||
{
|
{
|
||||||
return new Parser.IdentifierNameSyntaxNode(parent, this, position);
|
return new Parser.IdentifierNameExpressionSyntaxNode(parent, this, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
public override GreenNode SetDiagnostics(TokenDiagnostic[] diagnostics)
|
||||||
{
|
{
|
||||||
return new IdentifierNameSyntaxNode(_name, diagnostics);
|
return new IdentifierNameExpressionSyntaxNode(_name, diagnostics);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override GreenNode? GetSlot(int i)
|
public override GreenNode? GetSlot(int i)
|
||||||
@ -1407,7 +1407,7 @@ namespace Parser.Internal
|
|||||||
internal readonly SyntaxToken _openingBrace;
|
internal readonly SyntaxToken _openingBrace;
|
||||||
internal readonly SyntaxList _nodes;
|
internal readonly SyntaxList _nodes;
|
||||||
internal readonly SyntaxToken _closingBrace;
|
internal readonly SyntaxToken _closingBrace;
|
||||||
internal CellArrayElementAccessExpressionSyntaxNode(ExpressionSyntaxNode expression, SyntaxToken openingBrace, SyntaxList nodes, SyntaxToken closingBrace): base(TokenKind.CellArrayElementAccess)
|
internal CellArrayElementAccessExpressionSyntaxNode(ExpressionSyntaxNode expression, SyntaxToken openingBrace, SyntaxList nodes, SyntaxToken closingBrace): base(TokenKind.CellArrayElementAccessExpression)
|
||||||
{
|
{
|
||||||
Slots = 4;
|
Slots = 4;
|
||||||
this.AdjustWidth(expression);
|
this.AdjustWidth(expression);
|
||||||
@ -1420,7 +1420,7 @@ namespace Parser.Internal
|
|||||||
_closingBrace = closingBrace;
|
_closingBrace = closingBrace;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal CellArrayElementAccessExpressionSyntaxNode(ExpressionSyntaxNode expression, SyntaxToken openingBrace, SyntaxList nodes, SyntaxToken closingBrace, TokenDiagnostic[] diagnostics): base(TokenKind.CellArrayElementAccess, diagnostics)
|
internal CellArrayElementAccessExpressionSyntaxNode(ExpressionSyntaxNode expression, SyntaxToken openingBrace, SyntaxList nodes, SyntaxToken closingBrace, TokenDiagnostic[] diagnostics): base(TokenKind.CellArrayElementAccessExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 4;
|
Slots = 4;
|
||||||
this.AdjustWidth(expression);
|
this.AdjustWidth(expression);
|
||||||
@ -1460,7 +1460,7 @@ namespace Parser.Internal
|
|||||||
internal readonly SyntaxToken _openingBracket;
|
internal readonly SyntaxToken _openingBracket;
|
||||||
internal readonly SyntaxList _nodes;
|
internal readonly SyntaxList _nodes;
|
||||||
internal readonly SyntaxToken _closingBracket;
|
internal readonly SyntaxToken _closingBracket;
|
||||||
internal FunctionCallExpressionSyntaxNode(ExpressionSyntaxNode functionName, SyntaxToken openingBracket, SyntaxList nodes, SyntaxToken closingBracket): base(TokenKind.FunctionCall)
|
internal FunctionCallExpressionSyntaxNode(ExpressionSyntaxNode functionName, SyntaxToken openingBracket, SyntaxList nodes, SyntaxToken closingBracket): base(TokenKind.FunctionCallExpression)
|
||||||
{
|
{
|
||||||
Slots = 4;
|
Slots = 4;
|
||||||
this.AdjustWidth(functionName);
|
this.AdjustWidth(functionName);
|
||||||
@ -1473,7 +1473,7 @@ namespace Parser.Internal
|
|||||||
_closingBracket = closingBracket;
|
_closingBracket = closingBracket;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal FunctionCallExpressionSyntaxNode(ExpressionSyntaxNode functionName, SyntaxToken openingBracket, SyntaxList nodes, SyntaxToken closingBracket, TokenDiagnostic[] diagnostics): base(TokenKind.FunctionCall, diagnostics)
|
internal FunctionCallExpressionSyntaxNode(ExpressionSyntaxNode functionName, SyntaxToken openingBracket, SyntaxList nodes, SyntaxToken closingBracket, TokenDiagnostic[] diagnostics): base(TokenKind.FunctionCallExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 4;
|
Slots = 4;
|
||||||
this.AdjustWidth(functionName);
|
this.AdjustWidth(functionName);
|
||||||
@ -1512,7 +1512,7 @@ namespace Parser.Internal
|
|||||||
internal readonly SyntaxNode _leftOperand;
|
internal readonly SyntaxNode _leftOperand;
|
||||||
internal readonly SyntaxToken _dot;
|
internal readonly SyntaxToken _dot;
|
||||||
internal readonly SyntaxNode _rightOperand;
|
internal readonly SyntaxNode _rightOperand;
|
||||||
internal MemberAccessSyntaxNode(SyntaxNode leftOperand, SyntaxToken dot, SyntaxNode rightOperand): base(TokenKind.MemberAccess)
|
internal MemberAccessSyntaxNode(SyntaxNode leftOperand, SyntaxToken dot, SyntaxNode rightOperand): base(TokenKind.MemberAccessExpression)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(leftOperand);
|
this.AdjustWidth(leftOperand);
|
||||||
@ -1523,7 +1523,7 @@ namespace Parser.Internal
|
|||||||
_rightOperand = rightOperand;
|
_rightOperand = rightOperand;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal MemberAccessSyntaxNode(SyntaxNode leftOperand, SyntaxToken dot, SyntaxNode rightOperand, TokenDiagnostic[] diagnostics): base(TokenKind.MemberAccess, diagnostics)
|
internal MemberAccessSyntaxNode(SyntaxNode leftOperand, SyntaxToken dot, SyntaxNode rightOperand, TokenDiagnostic[] diagnostics): base(TokenKind.MemberAccessExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(leftOperand);
|
this.AdjustWidth(leftOperand);
|
||||||
@ -1603,7 +1603,7 @@ namespace Parser.Internal
|
|||||||
internal readonly SyntaxToken _openingBracket;
|
internal readonly SyntaxToken _openingBracket;
|
||||||
internal readonly ExpressionSyntaxNode _expression;
|
internal readonly ExpressionSyntaxNode _expression;
|
||||||
internal readonly SyntaxToken _closingBracket;
|
internal readonly SyntaxToken _closingBracket;
|
||||||
internal IndirectMemberAccessSyntaxNode(SyntaxToken openingBracket, ExpressionSyntaxNode expression, SyntaxToken closingBracket): base(TokenKind.IndirectMemberAccess)
|
internal IndirectMemberAccessSyntaxNode(SyntaxToken openingBracket, ExpressionSyntaxNode expression, SyntaxToken closingBracket): base(TokenKind.IndirectMemberAccessExpression)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(openingBracket);
|
this.AdjustWidth(openingBracket);
|
||||||
@ -1614,7 +1614,7 @@ namespace Parser.Internal
|
|||||||
_closingBracket = closingBracket;
|
_closingBracket = closingBracket;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal IndirectMemberAccessSyntaxNode(SyntaxToken openingBracket, ExpressionSyntaxNode expression, SyntaxToken closingBracket, TokenDiagnostic[] diagnostics): base(TokenKind.IndirectMemberAccess, diagnostics)
|
internal IndirectMemberAccessSyntaxNode(SyntaxToken openingBracket, ExpressionSyntaxNode expression, SyntaxToken closingBracket, TokenDiagnostic[] diagnostics): base(TokenKind.IndirectMemberAccessExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(openingBracket);
|
this.AdjustWidth(openingBracket);
|
||||||
@ -1648,9 +1648,9 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
internal class CommandExpressionSyntaxNode : ExpressionSyntaxNode
|
internal class CommandExpressionSyntaxNode : ExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
internal readonly IdentifierNameSyntaxNode _commandName;
|
internal readonly IdentifierNameExpressionSyntaxNode _commandName;
|
||||||
internal readonly SyntaxList<UnquotedStringLiteralSyntaxNode> _arguments;
|
internal readonly SyntaxList<UnquotedStringLiteralSyntaxNode> _arguments;
|
||||||
internal CommandExpressionSyntaxNode(IdentifierNameSyntaxNode commandName, SyntaxList<UnquotedStringLiteralSyntaxNode> arguments): base(TokenKind.Command)
|
internal CommandExpressionSyntaxNode(IdentifierNameExpressionSyntaxNode commandName, SyntaxList<UnquotedStringLiteralSyntaxNode> arguments): base(TokenKind.CommandExpression)
|
||||||
{
|
{
|
||||||
Slots = 2;
|
Slots = 2;
|
||||||
this.AdjustWidth(commandName);
|
this.AdjustWidth(commandName);
|
||||||
@ -1659,7 +1659,7 @@ namespace Parser.Internal
|
|||||||
_arguments = arguments;
|
_arguments = arguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal CommandExpressionSyntaxNode(IdentifierNameSyntaxNode commandName, SyntaxList<UnquotedStringLiteralSyntaxNode> arguments, TokenDiagnostic[] diagnostics): base(TokenKind.Command, diagnostics)
|
internal CommandExpressionSyntaxNode(IdentifierNameExpressionSyntaxNode commandName, SyntaxList<UnquotedStringLiteralSyntaxNode> arguments, TokenDiagnostic[] diagnostics): base(TokenKind.CommandExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 2;
|
Slots = 2;
|
||||||
this.AdjustWidth(commandName);
|
this.AdjustWidth(commandName);
|
||||||
@ -1694,7 +1694,7 @@ namespace Parser.Internal
|
|||||||
internal readonly ExpressionSyntaxNode _methodName;
|
internal readonly ExpressionSyntaxNode _methodName;
|
||||||
internal readonly SyntaxToken _atSign;
|
internal readonly SyntaxToken _atSign;
|
||||||
internal readonly ExpressionSyntaxNode _baseClassNameAndArguments;
|
internal readonly ExpressionSyntaxNode _baseClassNameAndArguments;
|
||||||
internal BaseClassInvokationSyntaxNode(ExpressionSyntaxNode methodName, SyntaxToken atSign, ExpressionSyntaxNode baseClassNameAndArguments): base(TokenKind.ClassInvokation)
|
internal BaseClassInvokationSyntaxNode(ExpressionSyntaxNode methodName, SyntaxToken atSign, ExpressionSyntaxNode baseClassNameAndArguments): base(TokenKind.ClassInvokationExpression)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(methodName);
|
this.AdjustWidth(methodName);
|
||||||
@ -1705,7 +1705,7 @@ namespace Parser.Internal
|
|||||||
_baseClassNameAndArguments = baseClassNameAndArguments;
|
_baseClassNameAndArguments = baseClassNameAndArguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal BaseClassInvokationSyntaxNode(ExpressionSyntaxNode methodName, SyntaxToken atSign, ExpressionSyntaxNode baseClassNameAndArguments, TokenDiagnostic[] diagnostics): base(TokenKind.ClassInvokation, diagnostics)
|
internal BaseClassInvokationSyntaxNode(ExpressionSyntaxNode methodName, SyntaxToken atSign, ExpressionSyntaxNode baseClassNameAndArguments, TokenDiagnostic[] diagnostics): base(TokenKind.ClassInvokationExpression, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(methodName);
|
this.AdjustWidth(methodName);
|
||||||
@ -1782,9 +1782,9 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
internal class AttributeSyntaxNode : SyntaxNode
|
internal class AttributeSyntaxNode : SyntaxNode
|
||||||
{
|
{
|
||||||
internal readonly IdentifierNameSyntaxNode _name;
|
internal readonly IdentifierNameExpressionSyntaxNode _name;
|
||||||
internal readonly AttributeAssignmentSyntaxNode? _assignment;
|
internal readonly AttributeAssignmentSyntaxNode? _assignment;
|
||||||
internal AttributeSyntaxNode(IdentifierNameSyntaxNode name, AttributeAssignmentSyntaxNode? assignment): base(TokenKind.Attribute)
|
internal AttributeSyntaxNode(IdentifierNameExpressionSyntaxNode name, AttributeAssignmentSyntaxNode? assignment): base(TokenKind.Attribute)
|
||||||
{
|
{
|
||||||
Slots = 2;
|
Slots = 2;
|
||||||
this.AdjustWidth(name);
|
this.AdjustWidth(name);
|
||||||
@ -1793,7 +1793,7 @@ namespace Parser.Internal
|
|||||||
_assignment = assignment;
|
_assignment = assignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal AttributeSyntaxNode(IdentifierNameSyntaxNode name, AttributeAssignmentSyntaxNode? assignment, TokenDiagnostic[] diagnostics): base(TokenKind.Attribute, diagnostics)
|
internal AttributeSyntaxNode(IdentifierNameExpressionSyntaxNode name, AttributeAssignmentSyntaxNode? assignment, TokenDiagnostic[] diagnostics): base(TokenKind.Attribute, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 2;
|
Slots = 2;
|
||||||
this.AdjustWidth(name);
|
this.AdjustWidth(name);
|
||||||
@ -1875,12 +1875,12 @@ namespace Parser.Internal
|
|||||||
{
|
{
|
||||||
internal readonly SyntaxToken _functionKeyword;
|
internal readonly SyntaxToken _functionKeyword;
|
||||||
internal readonly FunctionOutputDescriptionSyntaxNode? _outputDescription;
|
internal readonly FunctionOutputDescriptionSyntaxNode? _outputDescription;
|
||||||
internal readonly CompoundNameSyntaxNode _name;
|
internal readonly CompoundNameExpressionSyntaxNode _name;
|
||||||
internal readonly FunctionInputDescriptionSyntaxNode? _inputDescription;
|
internal readonly FunctionInputDescriptionSyntaxNode? _inputDescription;
|
||||||
internal readonly SyntaxList<SyntaxToken> _commas;
|
internal readonly SyntaxList<SyntaxToken> _commas;
|
||||||
internal readonly SyntaxList _body;
|
internal readonly SyntaxList _body;
|
||||||
internal readonly EndKeywordSyntaxNode? _endKeyword;
|
internal readonly EndKeywordSyntaxNode? _endKeyword;
|
||||||
internal MethodDefinitionSyntaxNode(SyntaxToken functionKeyword, FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription, SyntaxList<SyntaxToken> commas, SyntaxList body, EndKeywordSyntaxNode? endKeyword): base(TokenKind.MethodDefinition)
|
internal MethodDefinitionSyntaxNode(SyntaxToken functionKeyword, FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameExpressionSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription, SyntaxList<SyntaxToken> commas, SyntaxList body, EndKeywordSyntaxNode? endKeyword): base(TokenKind.ConcreteMethodDeclaration)
|
||||||
{
|
{
|
||||||
Slots = 7;
|
Slots = 7;
|
||||||
this.AdjustWidth(functionKeyword);
|
this.AdjustWidth(functionKeyword);
|
||||||
@ -1899,7 +1899,7 @@ namespace Parser.Internal
|
|||||||
_endKeyword = endKeyword;
|
_endKeyword = endKeyword;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal MethodDefinitionSyntaxNode(SyntaxToken functionKeyword, FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription, SyntaxList<SyntaxToken> commas, SyntaxList body, EndKeywordSyntaxNode? endKeyword, TokenDiagnostic[] diagnostics): base(TokenKind.MethodDefinition, diagnostics)
|
internal MethodDefinitionSyntaxNode(SyntaxToken functionKeyword, FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameExpressionSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription, SyntaxList<SyntaxToken> commas, SyntaxList body, EndKeywordSyntaxNode? endKeyword, TokenDiagnostic[] diagnostics): base(TokenKind.ConcreteMethodDeclaration, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 7;
|
Slots = 7;
|
||||||
this.AdjustWidth(functionKeyword);
|
this.AdjustWidth(functionKeyword);
|
||||||
@ -1942,9 +1942,9 @@ namespace Parser.Internal
|
|||||||
internal class AbstractMethodDeclarationSyntaxNode : MethodDeclarationSyntaxNode
|
internal class AbstractMethodDeclarationSyntaxNode : MethodDeclarationSyntaxNode
|
||||||
{
|
{
|
||||||
internal readonly FunctionOutputDescriptionSyntaxNode? _outputDescription;
|
internal readonly FunctionOutputDescriptionSyntaxNode? _outputDescription;
|
||||||
internal readonly CompoundNameSyntaxNode _name;
|
internal readonly CompoundNameExpressionSyntaxNode _name;
|
||||||
internal readonly FunctionInputDescriptionSyntaxNode? _inputDescription;
|
internal readonly FunctionInputDescriptionSyntaxNode? _inputDescription;
|
||||||
internal AbstractMethodDeclarationSyntaxNode(FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription): base(TokenKind.AbstractMethodDeclaration)
|
internal AbstractMethodDeclarationSyntaxNode(FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameExpressionSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription): base(TokenKind.AbstractMethodDeclaration)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(outputDescription);
|
this.AdjustWidth(outputDescription);
|
||||||
@ -1955,7 +1955,7 @@ namespace Parser.Internal
|
|||||||
_inputDescription = inputDescription;
|
_inputDescription = inputDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal AbstractMethodDeclarationSyntaxNode(FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription, TokenDiagnostic[] diagnostics): base(TokenKind.AbstractMethodDeclaration, diagnostics)
|
internal AbstractMethodDeclarationSyntaxNode(FunctionOutputDescriptionSyntaxNode? outputDescription, CompoundNameExpressionSyntaxNode name, FunctionInputDescriptionSyntaxNode? inputDescription, TokenDiagnostic[] diagnostics): base(TokenKind.AbstractMethodDeclaration, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(outputDescription);
|
this.AdjustWidth(outputDescription);
|
||||||
@ -2140,11 +2140,11 @@ namespace Parser.Internal
|
|||||||
{
|
{
|
||||||
internal readonly SyntaxToken _classdefKeyword;
|
internal readonly SyntaxToken _classdefKeyword;
|
||||||
internal readonly AttributeListSyntaxNode? _attributes;
|
internal readonly AttributeListSyntaxNode? _attributes;
|
||||||
internal readonly IdentifierNameSyntaxNode _className;
|
internal readonly IdentifierNameExpressionSyntaxNode _className;
|
||||||
internal readonly BaseClassListSyntaxNode? _baseClassList;
|
internal readonly BaseClassListSyntaxNode? _baseClassList;
|
||||||
internal readonly SyntaxList _nodes;
|
internal readonly SyntaxList _nodes;
|
||||||
internal readonly SyntaxToken _endKeyword;
|
internal readonly SyntaxToken _endKeyword;
|
||||||
internal ClassDeclarationSyntaxNode(SyntaxToken classdefKeyword, AttributeListSyntaxNode? attributes, IdentifierNameSyntaxNode className, BaseClassListSyntaxNode? baseClassList, SyntaxList nodes, SyntaxToken endKeyword): base(TokenKind.ClassDeclaration)
|
internal ClassDeclarationSyntaxNode(SyntaxToken classdefKeyword, AttributeListSyntaxNode? attributes, IdentifierNameExpressionSyntaxNode className, BaseClassListSyntaxNode? baseClassList, SyntaxList nodes, SyntaxToken endKeyword): base(TokenKind.ClassDeclaration)
|
||||||
{
|
{
|
||||||
Slots = 6;
|
Slots = 6;
|
||||||
this.AdjustWidth(classdefKeyword);
|
this.AdjustWidth(classdefKeyword);
|
||||||
@ -2161,7 +2161,7 @@ namespace Parser.Internal
|
|||||||
_endKeyword = endKeyword;
|
_endKeyword = endKeyword;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal ClassDeclarationSyntaxNode(SyntaxToken classdefKeyword, AttributeListSyntaxNode? attributes, IdentifierNameSyntaxNode className, BaseClassListSyntaxNode? baseClassList, SyntaxList nodes, SyntaxToken endKeyword, TokenDiagnostic[] diagnostics): base(TokenKind.ClassDeclaration, diagnostics)
|
internal ClassDeclarationSyntaxNode(SyntaxToken classdefKeyword, AttributeListSyntaxNode? attributes, IdentifierNameExpressionSyntaxNode className, BaseClassListSyntaxNode? baseClassList, SyntaxList nodes, SyntaxToken endKeyword, TokenDiagnostic[] diagnostics): base(TokenKind.ClassDeclaration, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 6;
|
Slots = 6;
|
||||||
this.AdjustWidth(classdefKeyword);
|
this.AdjustWidth(classdefKeyword);
|
||||||
@ -2249,10 +2249,10 @@ namespace Parser.Internal
|
|||||||
|
|
||||||
internal class EnumerationItemSyntaxNode : SyntaxNode
|
internal class EnumerationItemSyntaxNode : SyntaxNode
|
||||||
{
|
{
|
||||||
internal readonly IdentifierNameSyntaxNode _name;
|
internal readonly IdentifierNameExpressionSyntaxNode _name;
|
||||||
internal readonly EnumerationItemValueSyntaxNode? _values;
|
internal readonly EnumerationItemValueSyntaxNode? _values;
|
||||||
internal readonly SyntaxList<SyntaxToken> _commas;
|
internal readonly SyntaxList<SyntaxToken> _commas;
|
||||||
internal EnumerationItemSyntaxNode(IdentifierNameSyntaxNode name, EnumerationItemValueSyntaxNode? values, SyntaxList<SyntaxToken> commas): base(TokenKind.EnumerationItem)
|
internal EnumerationItemSyntaxNode(IdentifierNameExpressionSyntaxNode name, EnumerationItemValueSyntaxNode? values, SyntaxList<SyntaxToken> commas): base(TokenKind.EnumerationItem)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(name);
|
this.AdjustWidth(name);
|
||||||
@ -2263,7 +2263,7 @@ namespace Parser.Internal
|
|||||||
_commas = commas;
|
_commas = commas;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal EnumerationItemSyntaxNode(IdentifierNameSyntaxNode name, EnumerationItemValueSyntaxNode? values, SyntaxList<SyntaxToken> commas, TokenDiagnostic[] diagnostics): base(TokenKind.EnumerationItem, diagnostics)
|
internal EnumerationItemSyntaxNode(IdentifierNameExpressionSyntaxNode name, EnumerationItemValueSyntaxNode? values, SyntaxList<SyntaxToken> commas, TokenDiagnostic[] diagnostics): base(TokenKind.EnumerationItem, diagnostics)
|
||||||
{
|
{
|
||||||
Slots = 3;
|
Slots = 3;
|
||||||
this.AdjustWidth(name);
|
this.AdjustWidth(name);
|
||||||
|
@ -79,13 +79,13 @@ namespace Parser.Internal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal abstract class FunctionHandleSyntaxNode : ExpressionSyntaxNode
|
internal abstract class FunctionHandleExpressionSyntaxNode : ExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
protected FunctionHandleSyntaxNode(TokenKind kind) : base(kind)
|
protected FunctionHandleExpressionSyntaxNode(TokenKind kind) : base(kind)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected FunctionHandleSyntaxNode(TokenKind kind, TokenDiagnostic[] diagnostics) : base(kind, diagnostics)
|
protected FunctionHandleExpressionSyntaxNode(TokenKind kind, TokenDiagnostic[] diagnostics) : base(kind, diagnostics)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,24 +95,24 @@
|
|||||||
<Field Type="SyntaxToken" Name="operation" />
|
<Field Type="SyntaxToken" Name="operation" />
|
||||||
<Field Type="ExpressionSyntaxNode" Name="operand" />
|
<Field Type="ExpressionSyntaxNode" Name="operand" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="CompoundNameSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="CompoundName">
|
<Class Name="CompoundNameExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="CompoundNameExpression">
|
||||||
<Field Type="SyntaxList" Name="nodes" />
|
<Field Type="SyntaxList" Name="nodes" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="NamedFunctionHandleSyntaxNode" BaseClass="FunctionHandleSyntaxNode" Kind="NamedFunctionHandle">
|
<Class Name="NamedFunctionHandleExpressionSyntaxNode" BaseClass="FunctionHandleExpressionSyntaxNode" Kind="NamedFunctionHandleExpression">
|
||||||
<Field Type="SyntaxToken" Name="atSign" />
|
<Field Type="SyntaxToken" Name="atSign" />
|
||||||
<Field Type="CompoundNameSyntaxNode" Name="functionName" />
|
<Field Type="CompoundNameExpressionSyntaxNode" Name="functionName" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="LambdaSyntaxNode" BaseClass="FunctionHandleSyntaxNode" Kind="Lambda">
|
<Class Name="LambdaExpressionSyntaxNode" BaseClass="FunctionHandleExpressionSyntaxNode" Kind="LambdaExpression">
|
||||||
<Field Type="SyntaxToken" Name="atSign" />
|
<Field Type="SyntaxToken" Name="atSign" />
|
||||||
<Field Type="FunctionInputDescriptionSyntaxNode" Name="input" />
|
<Field Type="FunctionInputDescriptionSyntaxNode" Name="input" />
|
||||||
<Field Type="ExpressionSyntaxNode" Name="body" />
|
<Field Type="ExpressionSyntaxNode" Name="body" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="BinaryOperationExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="BinaryOperation">
|
<Class Name="BinaryOperationExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="BinaryOperationExpression">
|
||||||
<Field Type="ExpressionSyntaxNode" Name="lhs" />
|
<Field Type="ExpressionSyntaxNode" Name="lhs" />
|
||||||
<Field Type="SyntaxToken" Name="operation" />
|
<Field Type="SyntaxToken" Name="operation" />
|
||||||
<Field Type="ExpressionSyntaxNode" Name="rhs" />
|
<Field Type="ExpressionSyntaxNode" Name="rhs" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="IdentifierNameSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="IdentifierName">
|
<Class Name="IdentifierNameExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="IdentifierNameExpression">
|
||||||
<Field Type="SyntaxToken" Name="name" />
|
<Field Type="SyntaxToken" Name="name" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="NumberLiteralSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="NumberLiteralExpression">
|
<Class Name="NumberLiteralSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="NumberLiteralExpression">
|
||||||
@ -142,19 +142,19 @@
|
|||||||
<Field Type="ExpressionSyntaxNode" Name="expression" />
|
<Field Type="ExpressionSyntaxNode" Name="expression" />
|
||||||
<Field Type="SyntaxToken" Name="closingBracket" />
|
<Field Type="SyntaxToken" Name="closingBracket" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="CellArrayElementAccessExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="CellArrayElementAccess">
|
<Class Name="CellArrayElementAccessExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="CellArrayElementAccessExpression">
|
||||||
<Field Type="ExpressionSyntaxNode" Name="expression" />
|
<Field Type="ExpressionSyntaxNode" Name="expression" />
|
||||||
<Field Type="SyntaxToken" Name="openingBrace" />
|
<Field Type="SyntaxToken" Name="openingBrace" />
|
||||||
<Field Type="SyntaxList" Name="nodes" />
|
<Field Type="SyntaxList" Name="nodes" />
|
||||||
<Field Type="SyntaxToken" Name="closingBrace" />
|
<Field Type="SyntaxToken" Name="closingBrace" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="FunctionCallExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="FunctionCall">
|
<Class Name="FunctionCallExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="FunctionCallExpression">
|
||||||
<Field Type="ExpressionSyntaxNode" Name="functionName" />
|
<Field Type="ExpressionSyntaxNode" Name="functionName" />
|
||||||
<Field Type="SyntaxToken" Name="openingBracket" />
|
<Field Type="SyntaxToken" Name="openingBracket" />
|
||||||
<Field Type="SyntaxList" Name="nodes" />
|
<Field Type="SyntaxList" Name="nodes" />
|
||||||
<Field Type="SyntaxToken" Name="closingBracket" />
|
<Field Type="SyntaxToken" Name="closingBracket" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="MemberAccessSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="MemberAccess">
|
<Class Name="MemberAccessSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="MemberAccessExpression">
|
||||||
<Field Type="SyntaxNode" Name="leftOperand" />
|
<Field Type="SyntaxNode" Name="leftOperand" />
|
||||||
<Field Type="SyntaxToken" Name="dot" />
|
<Field Type="SyntaxToken" Name="dot" />
|
||||||
<Field Type="SyntaxNode" Name="rightOperand" />
|
<Field Type="SyntaxNode" Name="rightOperand" />
|
||||||
@ -163,16 +163,16 @@
|
|||||||
<Field Type="ExpressionSyntaxNode" Name="operand" />
|
<Field Type="ExpressionSyntaxNode" Name="operand" />
|
||||||
<Field Type="SyntaxToken" Name="operation" />
|
<Field Type="SyntaxToken" Name="operation" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="IndirectMemberAccessSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="IndirectMemberAccess">
|
<Class Name="IndirectMemberAccessSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="IndirectMemberAccessExpression">
|
||||||
<Field Type="SyntaxToken" Name="openingBracket" />
|
<Field Type="SyntaxToken" Name="openingBracket" />
|
||||||
<Field Type="ExpressionSyntaxNode" Name="expression" />
|
<Field Type="ExpressionSyntaxNode" Name="expression" />
|
||||||
<Field Type="SyntaxToken" Name="closingBracket" />
|
<Field Type="SyntaxToken" Name="closingBracket" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="CommandExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="Command">
|
<Class Name="CommandExpressionSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="CommandExpression">
|
||||||
<Field Type="IdentifierNameSyntaxNode" Name="commandName" />
|
<Field Type="IdentifierNameExpressionSyntaxNode" Name="commandName" />
|
||||||
<Field Type="SyntaxList<UnquotedStringLiteralSyntaxNode>" Name="arguments" />
|
<Field Type="SyntaxList<UnquotedStringLiteralSyntaxNode>" Name="arguments" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="BaseClassInvokationSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="ClassInvokation">
|
<Class Name="BaseClassInvokationSyntaxNode" BaseClass="ExpressionSyntaxNode" Kind="ClassInvokationExpression">
|
||||||
<Field Type="ExpressionSyntaxNode" Name="methodName" />
|
<Field Type="ExpressionSyntaxNode" Name="methodName" />
|
||||||
<Field Type="SyntaxToken" Name="atSign" />
|
<Field Type="SyntaxToken" Name="atSign" />
|
||||||
<Field Type="ExpressionSyntaxNode" Name="baseClassNameAndArguments" />
|
<Field Type="ExpressionSyntaxNode" Name="baseClassNameAndArguments" />
|
||||||
@ -182,7 +182,7 @@
|
|||||||
<Field Type="ExpressionSyntaxNode" Name="value" />
|
<Field Type="ExpressionSyntaxNode" Name="value" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="AttributeSyntaxNode" BaseClass="SyntaxNode" Kind="Attribute">
|
<Class Name="AttributeSyntaxNode" BaseClass="SyntaxNode" Kind="Attribute">
|
||||||
<Field Type="IdentifierNameSyntaxNode" Name="name" />
|
<Field Type="IdentifierNameExpressionSyntaxNode" Name="name" />
|
||||||
<Field Type="AttributeAssignmentSyntaxNode" Name="assignment" Nullable="true" />
|
<Field Type="AttributeAssignmentSyntaxNode" Name="assignment" Nullable="true" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="AttributeListSyntaxNode" BaseClass="SyntaxNode" Kind="AttributeList">
|
<Class Name="AttributeListSyntaxNode" BaseClass="SyntaxNode" Kind="AttributeList">
|
||||||
@ -190,10 +190,10 @@
|
|||||||
<Field Type="SyntaxList" Name="nodes" />
|
<Field Type="SyntaxList" Name="nodes" />
|
||||||
<Field Type="SyntaxToken" Name="closingBracket" />
|
<Field Type="SyntaxToken" Name="closingBracket" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="MethodDefinitionSyntaxNode" BaseClass="MethodDeclarationSyntaxNode" Kind="MethodDefinition">
|
<Class Name="MethodDefinitionSyntaxNode" BaseClass="MethodDeclarationSyntaxNode" Kind="ConcreteMethodDeclaration">
|
||||||
<Field Type="SyntaxToken" Name="functionKeyword" />
|
<Field Type="SyntaxToken" Name="functionKeyword" />
|
||||||
<Field Type="FunctionOutputDescriptionSyntaxNode" Name="outputDescription" Nullable="true" />
|
<Field Type="FunctionOutputDescriptionSyntaxNode" Name="outputDescription" Nullable="true" />
|
||||||
<Field Type="CompoundNameSyntaxNode" Name="name" />
|
<Field Type="CompoundNameExpressionSyntaxNode" Name="name" />
|
||||||
<Field Type="FunctionInputDescriptionSyntaxNode" Name="inputDescription" Nullable="true"/>
|
<Field Type="FunctionInputDescriptionSyntaxNode" Name="inputDescription" Nullable="true"/>
|
||||||
<Field Type="SyntaxList<SyntaxToken>" Name="commas" />
|
<Field Type="SyntaxList<SyntaxToken>" Name="commas" />
|
||||||
<Field Type="SyntaxList" Name="body" />
|
<Field Type="SyntaxList" Name="body" />
|
||||||
@ -201,7 +201,7 @@
|
|||||||
</Class>
|
</Class>
|
||||||
<Class Name="AbstractMethodDeclarationSyntaxNode" BaseClass="MethodDeclarationSyntaxNode" Kind="AbstractMethodDeclaration">
|
<Class Name="AbstractMethodDeclarationSyntaxNode" BaseClass="MethodDeclarationSyntaxNode" Kind="AbstractMethodDeclaration">
|
||||||
<Field Type="FunctionOutputDescriptionSyntaxNode" Name="outputDescription" Nullable="true" />
|
<Field Type="FunctionOutputDescriptionSyntaxNode" Name="outputDescription" Nullable="true" />
|
||||||
<Field Type="CompoundNameSyntaxNode" Name="name" />
|
<Field Type="CompoundNameExpressionSyntaxNode" Name="name" />
|
||||||
<Field Type="FunctionInputDescriptionSyntaxNode" Name="inputDescription" Nullable="true"/>
|
<Field Type="FunctionInputDescriptionSyntaxNode" Name="inputDescription" Nullable="true"/>
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="MethodsListSyntaxNode" BaseClass="SyntaxNode" Kind="MethodsList">
|
<Class Name="MethodsListSyntaxNode" BaseClass="SyntaxNode" Kind="MethodsList">
|
||||||
@ -223,7 +223,7 @@
|
|||||||
<Class Name="ClassDeclarationSyntaxNode" BaseClass="StatementSyntaxNode" Kind="ClassDeclaration">
|
<Class Name="ClassDeclarationSyntaxNode" BaseClass="StatementSyntaxNode" Kind="ClassDeclaration">
|
||||||
<Field Type="SyntaxToken" Name="classdefKeyword" />
|
<Field Type="SyntaxToken" Name="classdefKeyword" />
|
||||||
<Field Type="AttributeListSyntaxNode" Name="attributes" Nullable="true" />
|
<Field Type="AttributeListSyntaxNode" Name="attributes" Nullable="true" />
|
||||||
<Field Type="IdentifierNameSyntaxNode" Name="className" />
|
<Field Type="IdentifierNameExpressionSyntaxNode" Name="className" />
|
||||||
<Field Type="BaseClassListSyntaxNode" Name="baseClassList" Nullable="true" />
|
<Field Type="BaseClassListSyntaxNode" Name="baseClassList" Nullable="true" />
|
||||||
<Field Type="SyntaxList" Name="nodes" />
|
<Field Type="SyntaxList" Name="nodes" />
|
||||||
<Field Type="SyntaxToken" Name="endKeyword" />
|
<Field Type="SyntaxToken" Name="endKeyword" />
|
||||||
@ -234,7 +234,7 @@
|
|||||||
<Field Type="SyntaxToken" Name="closingBracket" />
|
<Field Type="SyntaxToken" Name="closingBracket" />
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="EnumerationItemSyntaxNode" BaseClass="SyntaxNode" Kind="EnumerationItem">
|
<Class Name="EnumerationItemSyntaxNode" BaseClass="SyntaxNode" Kind="EnumerationItem">
|
||||||
<Field Type="IdentifierNameSyntaxNode" Name="name" />
|
<Field Type="IdentifierNameExpressionSyntaxNode" Name="name" />
|
||||||
<Field Type="EnumerationItemValueSyntaxNode" Name="values" Nullable="true"/>
|
<Field Type="EnumerationItemValueSyntaxNode" Name="values" Nullable="true"/>
|
||||||
<Field Type="SyntaxList<SyntaxToken>" Name="commas" />
|
<Field Type="SyntaxList<SyntaxToken>" Name="commas" />
|
||||||
</Class>
|
</Class>
|
@ -941,10 +941,10 @@ namespace Parser
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CompoundNameSyntaxNode : ExpressionSyntaxNode
|
public class CompoundNameExpressionSyntaxNode : ExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
private SyntaxNode? _nodes;
|
private SyntaxNode? _nodes;
|
||||||
internal CompoundNameSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position): base(parent, green, position)
|
internal CompoundNameExpressionSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position): base(parent, green, position)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -969,14 +969,14 @@ namespace Parser
|
|||||||
|
|
||||||
public override void Accept(SyntaxVisitor visitor)
|
public override void Accept(SyntaxVisitor visitor)
|
||||||
{
|
{
|
||||||
visitor.VisitCompoundName(this);
|
visitor.VisitCompoundNameExpression(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class NamedFunctionHandleSyntaxNode : FunctionHandleSyntaxNode
|
public class NamedFunctionHandleExpressionSyntaxNode : FunctionHandleExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
private SyntaxNode? _functionName;
|
private SyntaxNode? _functionName;
|
||||||
internal NamedFunctionHandleSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position): base(parent, green, position)
|
internal NamedFunctionHandleExpressionSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position): base(parent, green, position)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -984,16 +984,16 @@ namespace Parser
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return new SyntaxToken(this, ((Parser.Internal.NamedFunctionHandleSyntaxNode)_green)._atSign, this.GetChildPosition(0));
|
return new SyntaxToken(this, ((Parser.Internal.NamedFunctionHandleExpressionSyntaxNode)_green)._atSign, this.GetChildPosition(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompoundNameSyntaxNode FunctionName
|
public CompoundNameExpressionSyntaxNode FunctionName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var red = this.GetRed(ref this._functionName!, 1);
|
var red = this.GetRed(ref this._functionName!, 1);
|
||||||
return red is null ? throw new System.Exception("functionName cannot be null.") : (CompoundNameSyntaxNode)red;
|
return red is null ? throw new System.Exception("functionName cannot be null.") : (CompoundNameExpressionSyntaxNode)red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1009,15 +1009,15 @@ namespace Parser
|
|||||||
|
|
||||||
public override void Accept(SyntaxVisitor visitor)
|
public override void Accept(SyntaxVisitor visitor)
|
||||||
{
|
{
|
||||||
visitor.VisitNamedFunctionHandle(this);
|
visitor.VisitNamedFunctionHandleExpression(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LambdaSyntaxNode : FunctionHandleSyntaxNode
|
public class LambdaExpressionSyntaxNode : FunctionHandleExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
private SyntaxNode? _input;
|
private SyntaxNode? _input;
|
||||||
private SyntaxNode? _body;
|
private SyntaxNode? _body;
|
||||||
internal LambdaSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position): base(parent, green, position)
|
internal LambdaExpressionSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position): base(parent, green, position)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1025,7 +1025,7 @@ namespace Parser
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return new SyntaxToken(this, ((Parser.Internal.LambdaSyntaxNode)_green)._atSign, this.GetChildPosition(0));
|
return new SyntaxToken(this, ((Parser.Internal.LambdaExpressionSyntaxNode)_green)._atSign, this.GetChildPosition(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1059,7 +1059,7 @@ namespace Parser
|
|||||||
|
|
||||||
public override void Accept(SyntaxVisitor visitor)
|
public override void Accept(SyntaxVisitor visitor)
|
||||||
{
|
{
|
||||||
visitor.VisitLambda(this);
|
visitor.VisitLambdaExpression(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1113,9 +1113,9 @@ namespace Parser
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class IdentifierNameSyntaxNode : ExpressionSyntaxNode
|
public class IdentifierNameExpressionSyntaxNode : ExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
internal IdentifierNameSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position): base(parent, green, position)
|
internal IdentifierNameExpressionSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position): base(parent, green, position)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1123,7 +1123,7 @@ namespace Parser
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return new SyntaxToken(this, ((Parser.Internal.IdentifierNameSyntaxNode)_green)._name, this.GetChildPosition(0));
|
return new SyntaxToken(this, ((Parser.Internal.IdentifierNameExpressionSyntaxNode)_green)._name, this.GetChildPosition(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1139,7 +1139,7 @@ namespace Parser
|
|||||||
|
|
||||||
public override void Accept(SyntaxVisitor visitor)
|
public override void Accept(SyntaxVisitor visitor)
|
||||||
{
|
{
|
||||||
visitor.VisitIdentifierName(this);
|
visitor.VisitIdentifierNameExpression(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1669,12 +1669,12 @@ namespace Parser
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public IdentifierNameSyntaxNode CommandName
|
public IdentifierNameExpressionSyntaxNode CommandName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var red = this.GetRed(ref this._commandName!, 0);
|
var red = this.GetRed(ref this._commandName!, 0);
|
||||||
return red is null ? throw new System.Exception("commandName cannot be null.") : (IdentifierNameSyntaxNode)red;
|
return red is null ? throw new System.Exception("commandName cannot be null.") : (IdentifierNameExpressionSyntaxNode)red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1801,12 +1801,12 @@ namespace Parser
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public IdentifierNameSyntaxNode Name
|
public IdentifierNameExpressionSyntaxNode Name
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var red = this.GetRed(ref this._name!, 0);
|
var red = this.GetRed(ref this._name!, 0);
|
||||||
return red is null ? throw new System.Exception("name cannot be null.") : (IdentifierNameSyntaxNode)red;
|
return red is null ? throw new System.Exception("name cannot be null.") : (IdentifierNameExpressionSyntaxNode)red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1912,12 +1912,12 @@ namespace Parser
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompoundNameSyntaxNode Name
|
public CompoundNameExpressionSyntaxNode Name
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var red = this.GetRed(ref this._name!, 2);
|
var red = this.GetRed(ref this._name!, 2);
|
||||||
return red is null ? throw new System.Exception("name cannot be null.") : (CompoundNameSyntaxNode)red;
|
return red is null ? throw new System.Exception("name cannot be null.") : (CompoundNameExpressionSyntaxNode)red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1991,12 +1991,12 @@ namespace Parser
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompoundNameSyntaxNode Name
|
public CompoundNameExpressionSyntaxNode Name
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var red = this.GetRed(ref this._name!, 1);
|
var red = this.GetRed(ref this._name!, 1);
|
||||||
return red is null ? throw new System.Exception("name cannot be null.") : (CompoundNameSyntaxNode)red;
|
return red is null ? throw new System.Exception("name cannot be null.") : (CompoundNameExpressionSyntaxNode)red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2216,12 +2216,12 @@ namespace Parser
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public IdentifierNameSyntaxNode ClassName
|
public IdentifierNameExpressionSyntaxNode ClassName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var red = this.GetRed(ref this._className!, 2);
|
var red = this.GetRed(ref this._className!, 2);
|
||||||
return red is null ? throw new System.Exception("className cannot be null.") : (IdentifierNameSyntaxNode)red;
|
return red is null ? throw new System.Exception("className cannot be null.") : (IdentifierNameExpressionSyntaxNode)red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2316,12 +2316,12 @@ namespace Parser
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public IdentifierNameSyntaxNode Name
|
public IdentifierNameExpressionSyntaxNode Name
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var red = this.GetRed(ref this._name!, 0);
|
var red = this.GetRed(ref this._name!, 0);
|
||||||
return red is null ? throw new System.Exception("name cannot be null.") : (IdentifierNameSyntaxNode)red;
|
return red is null ? throw new System.Exception("name cannot be null.") : (IdentifierNameExpressionSyntaxNode)red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,9 +141,9 @@ namespace Parser
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract class FunctionHandleSyntaxNode : ExpressionSyntaxNode
|
public abstract class FunctionHandleExpressionSyntaxNode : ExpressionSyntaxNode
|
||||||
{
|
{
|
||||||
internal FunctionHandleSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position) : base(parent, green, position)
|
internal FunctionHandleExpressionSyntaxNode(SyntaxNode parent, Internal.GreenNode green, int position) : base(parent, green, position)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -93,17 +93,17 @@ namespace Parser
|
|||||||
DefaultVisit(node);
|
DefaultVisit(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void VisitCompoundName(CompoundNameSyntaxNode node)
|
public virtual void VisitCompoundNameExpression(CompoundNameExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
DefaultVisit(node);
|
DefaultVisit(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void VisitNamedFunctionHandle(NamedFunctionHandleSyntaxNode node)
|
public virtual void VisitNamedFunctionHandleExpression(NamedFunctionHandleExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
DefaultVisit(node);
|
DefaultVisit(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void VisitLambda(LambdaSyntaxNode node)
|
public virtual void VisitLambdaExpression(LambdaExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
DefaultVisit(node);
|
DefaultVisit(node);
|
||||||
}
|
}
|
||||||
@ -113,7 +113,7 @@ namespace Parser
|
|||||||
DefaultVisit(node);
|
DefaultVisit(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void VisitIdentifierName(IdentifierNameSyntaxNode node)
|
public virtual void VisitIdentifierNameExpression(IdentifierNameExpressionSyntaxNode node)
|
||||||
{
|
{
|
||||||
DefaultVisit(node);
|
DefaultVisit(node);
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
// We use the same set of kinds for syntax tokens & syntax nodes.
|
// We use the same set of kinds for syntax tokens & syntax nodes.
|
||||||
public enum TokenKind
|
public enum TokenKind
|
||||||
{
|
{
|
||||||
// SYNTAX TOKENS
|
// *****************
|
||||||
|
// * SYNTAX TOKENS *
|
||||||
|
// *****************
|
||||||
|
|
||||||
None = 0,
|
None = 0,
|
||||||
BadToken = 1,
|
BadToken = 1,
|
||||||
@ -123,31 +125,54 @@
|
|||||||
UnaryNot = 59,
|
UnaryNot = 59,
|
||||||
UnaryQuestionMark = 60,
|
UnaryQuestionMark = 60,
|
||||||
|
|
||||||
// SYNTAX NODES
|
// ****************
|
||||||
|
// * SYNTAX NODES *
|
||||||
|
// ****************
|
||||||
|
|
||||||
// The whole file.
|
// The whole file.
|
||||||
File = 100,
|
File = 100,
|
||||||
|
|
||||||
// a list of syntax nodes and/or tokens.
|
// a list of syntax nodes and/or tokens.
|
||||||
List,
|
List,
|
||||||
|
|
||||||
|
|
||||||
|
// STATEMENTS
|
||||||
|
// The name ends with "Declaration" or "Statement".
|
||||||
|
|
||||||
|
// result = abstractMethod(object)
|
||||||
|
AbstractMethodDeclaration,
|
||||||
|
|
||||||
|
// classdef MyClass < BaseClass, AnotherBaseClass
|
||||||
|
// properties
|
||||||
|
// y
|
||||||
|
// end
|
||||||
|
// methods
|
||||||
|
// <...>
|
||||||
|
// end
|
||||||
|
// end
|
||||||
|
ClassDeclaration,
|
||||||
|
|
||||||
|
// function result = method(obj)
|
||||||
|
// <...>
|
||||||
|
// end
|
||||||
|
ConcreteMethodDeclaration,
|
||||||
|
|
||||||
|
//
|
||||||
|
EmptyStatement,
|
||||||
|
|
||||||
|
// a = 5;
|
||||||
|
ExpressionStatement,
|
||||||
|
|
||||||
|
// for a = 1:5
|
||||||
|
// process(a);
|
||||||
|
// end
|
||||||
|
ForStatement,
|
||||||
|
|
||||||
// [output1, output2] = function(input1, input2)
|
// [output1, output2] = function(input1, input2)
|
||||||
// <...>
|
// <...>
|
||||||
// end
|
// end
|
||||||
FunctionDeclaration,
|
FunctionDeclaration,
|
||||||
// (input1, input2)
|
|
||||||
FunctionInputDescription,
|
|
||||||
// [output1, output2] =
|
|
||||||
FunctionOutputDescription,
|
|
||||||
// switch a
|
|
||||||
// case 1
|
|
||||||
// <...>
|
|
||||||
// end
|
|
||||||
SwitchStatement,
|
|
||||||
// case 1
|
|
||||||
// doSomething();
|
|
||||||
SwitchCase,
|
|
||||||
// while a < 10
|
|
||||||
// doSomething();
|
|
||||||
// end
|
|
||||||
WhileStatement,
|
|
||||||
// if a < 5
|
// if a < 5
|
||||||
// doSomething();
|
// doSomething();
|
||||||
// elseif a > 10
|
// elseif a > 10
|
||||||
@ -156,84 +181,125 @@
|
|||||||
// GiveUp();
|
// GiveUp();
|
||||||
// end
|
// end
|
||||||
IfStatement,
|
IfStatement,
|
||||||
// elseif a > 10
|
|
||||||
// doSomethingElse();
|
// switch a
|
||||||
ElseifClause,
|
// case 1
|
||||||
// else
|
// <...>
|
||||||
// GiveUp();
|
|
||||||
ElseClause,
|
|
||||||
// for a = 1:5
|
|
||||||
// process(a);
|
|
||||||
// end
|
// end
|
||||||
ForStatement,
|
SwitchStatement,
|
||||||
// a = 1:5
|
|
||||||
AssignmentExpression,
|
|
||||||
// catch e
|
|
||||||
// dealWithIt(e);
|
|
||||||
// end
|
|
||||||
CatchClause,
|
|
||||||
// try
|
// try
|
||||||
// somethingWeird();
|
// somethingWeird();
|
||||||
// catch e
|
// catch e
|
||||||
// dealWithIt(e);
|
// dealWithIt(e);
|
||||||
// end
|
// end
|
||||||
TryCatchStatement,
|
TryCatchStatement,
|
||||||
// a = 5;
|
|
||||||
ExpressionStatement,
|
// while a < 10
|
||||||
//
|
// doSomething();
|
||||||
EmptyStatement,
|
// end
|
||||||
//
|
WhileStatement,
|
||||||
EmptyExpression,
|
|
||||||
// -13
|
|
||||||
UnaryPrefixOperationExpression,
|
// EXPRESSIONS
|
||||||
// some.complex.name
|
// The name ends with "Expression".
|
||||||
CompoundName,
|
|
||||||
// @func
|
|
||||||
NamedFunctionHandle,
|
|
||||||
// @(x) x + 1
|
|
||||||
Lambda,
|
|
||||||
// +
|
|
||||||
BinaryOperation,
|
|
||||||
// a
|
|
||||||
IdentifierName,
|
|
||||||
// 123
|
|
||||||
NumberLiteralExpression,
|
|
||||||
// 'abc'
|
|
||||||
StringLiteralExpression,
|
|
||||||
// "abc"
|
|
||||||
DoubleQuotedStringLiteralExpression,
|
|
||||||
// abc
|
|
||||||
UnquotedStringLiteralExpression,
|
|
||||||
// [1, 2; 3 4]
|
// [1, 2; 3 4]
|
||||||
ArrayLiteralExpression,
|
ArrayLiteralExpression,
|
||||||
|
|
||||||
|
// a = 1:5
|
||||||
|
AssignmentExpression,
|
||||||
|
|
||||||
|
// +
|
||||||
|
BinaryOperationExpression,
|
||||||
|
|
||||||
|
// abc{2}
|
||||||
|
CellArrayElementAccessExpression,
|
||||||
|
|
||||||
// {1, 3, 'abc'}
|
// {1, 3, 'abc'}
|
||||||
CellArrayLiteralExpression,
|
CellArrayLiteralExpression,
|
||||||
|
|
||||||
|
// method@SuperClass(object)
|
||||||
|
ClassInvokationExpression,
|
||||||
|
|
||||||
|
// cd some/+folder/
|
||||||
|
CommandExpression,
|
||||||
|
|
||||||
|
// some.complex.name
|
||||||
|
CompoundNameExpression,
|
||||||
|
|
||||||
|
// "abc"
|
||||||
|
DoubleQuotedStringLiteralExpression,
|
||||||
|
|
||||||
|
//
|
||||||
|
EmptyExpression,
|
||||||
|
|
||||||
|
// doSomething(5)
|
||||||
|
FunctionCallExpression,
|
||||||
|
|
||||||
|
// a
|
||||||
|
IdentifierNameExpression,
|
||||||
|
|
||||||
|
// struct.(field)
|
||||||
|
IndirectMemberAccessExpression,
|
||||||
|
|
||||||
|
// @(x) x + 1
|
||||||
|
LambdaExpression,
|
||||||
|
|
||||||
|
// object.member
|
||||||
|
MemberAccessExpression,
|
||||||
|
|
||||||
|
// @func
|
||||||
|
NamedFunctionHandleExpression,
|
||||||
|
|
||||||
|
// 123
|
||||||
|
NumberLiteralExpression,
|
||||||
|
|
||||||
// (1 + 2 * 3)
|
// (1 + 2 * 3)
|
||||||
ParenthesizedExpression,
|
ParenthesizedExpression,
|
||||||
// abc{2}
|
|
||||||
CellArrayElementAccess,
|
// 'abc'
|
||||||
// doSomething(5)
|
StringLiteralExpression,
|
||||||
FunctionCall,
|
|
||||||
// object.member
|
// -13
|
||||||
MemberAccess,
|
UnaryPrefixOperationExpression,
|
||||||
|
|
||||||
// [1 2 3]'
|
// [1 2 3]'
|
||||||
UnaryPostfixOperationExpression,
|
UnaryPostfixOperationExpression,
|
||||||
// struct.(field)
|
|
||||||
IndirectMemberAccess,
|
// abc
|
||||||
// cd some/+folder/
|
UnquotedStringLiteralExpression,
|
||||||
Command,
|
|
||||||
// method@SuperClass(object)
|
|
||||||
ClassInvokation,
|
// PARTS OF STATEMENTS & EXPRESSIONS
|
||||||
|
|
||||||
|
// (input1, input2)
|
||||||
|
FunctionInputDescription,
|
||||||
|
// [output1, output2] =
|
||||||
|
FunctionOutputDescription,
|
||||||
|
|
||||||
|
// case 1
|
||||||
|
// doSomething();
|
||||||
|
SwitchCase,
|
||||||
|
|
||||||
|
// elseif a > 10
|
||||||
|
// doSomethingElse();
|
||||||
|
ElseifClause,
|
||||||
|
// else
|
||||||
|
// GiveUp();
|
||||||
|
ElseClause,
|
||||||
|
// catch e
|
||||||
|
// dealWithIt(e);
|
||||||
|
// end
|
||||||
|
CatchClause,
|
||||||
|
|
||||||
// = true
|
// = true
|
||||||
AttributeAssignment,
|
AttributeAssignment,
|
||||||
// Sealed = true
|
// Sealed = true
|
||||||
Attribute,
|
Attribute,
|
||||||
// (Sealed = true)
|
// (Sealed = true)
|
||||||
AttributeList,
|
AttributeList,
|
||||||
// function result = method(obj)
|
|
||||||
// <...>
|
|
||||||
// end
|
|
||||||
MethodDefinition,
|
|
||||||
// methods
|
// methods
|
||||||
// function result = method(obj)
|
// function result = method(obj)
|
||||||
// <...>
|
// <...>
|
||||||
@ -247,15 +313,7 @@
|
|||||||
PropertiesList,
|
PropertiesList,
|
||||||
// < BaseClass, AnotherBaseClass
|
// < BaseClass, AnotherBaseClass
|
||||||
BaseClassList,
|
BaseClassList,
|
||||||
// classdef MyClass < BaseClass, AnotherBaseClass
|
|
||||||
// properties
|
|
||||||
// y
|
|
||||||
// end
|
|
||||||
// methods
|
|
||||||
// <...>
|
|
||||||
// end
|
|
||||||
// end
|
|
||||||
ClassDeclaration,
|
|
||||||
// (1)
|
// (1)
|
||||||
EnumerationItemValue,
|
EnumerationItemValue,
|
||||||
// One (1)
|
// One (1)
|
||||||
@ -265,8 +323,6 @@
|
|||||||
// Two (2)
|
// Two (2)
|
||||||
// end
|
// end
|
||||||
EnumerationList,
|
EnumerationList,
|
||||||
// result = abstractMethod(object)
|
|
||||||
AbstractMethodDeclaration,
|
|
||||||
// events
|
// events
|
||||||
// ToggleSomething
|
// ToggleSomething
|
||||||
// end
|
// end
|
||||||
|
@ -844,7 +844,8 @@ namespace SyntaxGenerator
|
|||||||
public static void Input()
|
public static void Input()
|
||||||
{
|
{
|
||||||
var serializer = new XmlSerializer(typeof(SyntaxDescription));
|
var serializer = new XmlSerializer(typeof(SyntaxDescription));
|
||||||
using var stream = new FileStream("input.xml", FileMode.Open);
|
var syntaxDefinitionFileName = Path.Combine(_outputPath, "SyntaxDefinition.xml");
|
||||||
|
using var stream = new FileStream(syntaxDefinitionFileName, FileMode.Open);
|
||||||
if (!(serializer.Deserialize(stream) is SyntaxDescription syntax))
|
if (!(serializer.Deserialize(stream) is SyntaxDescription syntax))
|
||||||
{
|
{
|
||||||
Console.WriteLine("Couldn't deserialize syntax.");
|
Console.WriteLine("Couldn't deserialize syntax.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user