Exemple #1
0
 internal AssignmentExpressionNode(Token identifier, Token equal, ExpressionNode expression)
 {
     Identifier = identifier ?? throw new ArgumentNullException(nameof(identifier));
     Equal      = equal ?? throw new ArgumentNullException(nameof(equal));
     Expression = expression ?? throw new ArgumentNullException(nameof(expression));
 }
Exemple #2
0
 internal ParenthesizedExpressionNode(Token openParenthesis, ExpressionNode expression)
 {
     MainToken  = openParenthesis;
     Expression = expression ?? throw new ArgumentNullException(nameof(expression));
 }
Exemple #3
0
 internal UnaryExpressionNode(Token op, ExpressionNode operand)
 {
     Operator = op ?? throw new ArgumentNullException(nameof(op));
     Operand  = operand ?? throw new ArgumentNullException(nameof(operand));
 }
Exemple #4
0
 internal BinaryExpressionNode(ExpressionNode lhs, Token op, ExpressionNode rhs)
 {
     Left     = lhs ?? throw new ArgumentNullException(nameof(lhs));
     Operator = op ?? throw new ArgumentNullException(nameof(op));
     Right    = rhs ?? throw new ArgumentNullException(nameof(rhs));
 }
Exemple #5
0
 internal InvokeExpressionNode(Token functionName, Token openParenthesis, IEnumerable <ExpressionNode> arguments, Token closeParenthesis)
 {
     FunctionName     = functionName ?? throw new ArgumentNullException(nameof(functionName));
     OpenParenthesis  = openParenthesis ?? throw new ArgumentNullException(nameof(openParenthesis));
     Arguments        = arguments ?? new ExpressionNode[0];
     CloseParenthesis = closeParenthesis ?? throw new ArgumentNullException(nameof(closeParenthesis));
 }
Exemple #6
0
 internal NameExpressionNode(Token identifier) =>
Exemple #7
0
 public static LiteralExpressionNode MakeStringLiteral(Token literal) => new LiteralExpressionNode(literal, literal.Value, BuiltinTypes.String);
Exemple #8
0
 public static LiteralExpressionNode MakeDoubleLiteral(Token literal) => new LiteralExpressionNode(literal, literal.Value, BuiltinTypes.Double);
Exemple #9
0
 public static LiteralExpressionNode MakeIntLiteral(Token literal) => new LiteralExpressionNode(literal, literal.Value, BuiltinTypes.Int);
Exemple #10
0
 public static LiteralExpressionNode MakeBoolLiteral(Token literal, bool value) => new LiteralExpressionNode(literal, value, BuiltinTypes.Bool);
Exemple #11
0
 private LiteralExpressionNode(Token literal, object value, TypeSymbol type)
 {
     Literal = literal ?? throw new ArgumentNullException(nameof(literal));
     Value   = value ?? throw new ArgumentNullException(nameof(value));
     Type    = type ?? throw new ArgumentNullException(nameof(type));
 }