private static object Evaluate(ArmExpressionAst node)
 {
     return(node switch
     {
         ArmInvocationExpressionAst n =>
         ArmExpressionEvaluator.Evaluate(n),
         ArmNumericLiteralExpressionAst n =>
         ArmExpressionEvaluator.Evaluate(n),
         ArmStringLiteralExpressionAst n =>
         ArmExpressionEvaluator.Evaluate(n),
         _ =>
         throw new NotImplementedException()
     });
Пример #2
0
 public ArmSubexpressionAst(ArmExpressionAst subexpression)
 {
     this.Subexpression = subexpression ?? throw new ArgumentNullException(nameof(subexpression));
 }
Пример #3
0
 /// <summary>
 /// invocation    = expression argument_list
 /// argument_list = "(" [ argument *( "," argument ) ] ")"
 /// argument      = expression
 /// </summary>
 /// <param name="expression"></param>
 /// <param name="argumentList"></param>
 public ArmElementAccessExpressionAst(ArmExpressionAst expression, ArmBracketedArgumentListAst argumentList)
 {
     this.Expression   = expression ?? throw new ArgumentNullException(nameof(expression));
     this.ArgumentList = argumentList ?? throw new ArgumentNullException(nameof(argumentList));
 }
Пример #4
0
 /// <summary>
 /// member_access = expression operator member_name
 /// operator      = "."
 /// member_name   = identifier
 /// </summary>
 /// <param name="expression"></param>
 /// <param name="name"></param>
 public ArmMemberAccessExpressionAst(ArmExpressionAst expression, SyntaxToken operatorToken, IdentifierToken name)
 {
     this.Expression    = expression ?? throw new ArgumentNullException(nameof(expression));
     this.OperatorToken = operatorToken ?? throw new ArgumentNullException(nameof(operatorToken));
     this.Name          = name ?? throw new ArgumentNullException(nameof(name));
 }
 /// <summary>
 /// invocation    = expression argument_list
 /// argument_list = "(" [ argument *( "," argument ) ] ")"
 /// argument      = expression
 /// </summary>
 /// <param name="expression"></param>
 /// <param name="argumentList"></param>
 public ArmInvocationExpressionAst(ArmExpressionAst expression, ArmArgumentListAst argumentList)
 {
     this.Expression   = expression ?? throw new ArgumentNullException(nameof(expression));
     this.ArgumentList = argumentList ?? throw new ArgumentNullException(nameof(argumentList));
 }