public IfElseStatementNode(ExpressionNode condition, StatementNode ifTrue, StatementNode ifFalse, SourceSpan span)
     : base(span)
 {
     this.condition = condition;
     this.ifTrue = ifTrue;
     this.ifFalse = ifFalse;
 }
 public AssignExpressionNode(AssignOperations operation, WritableNode left, ExpressionNode value, SourceSpan sourceSpan)
     : base(sourceSpan)
 {
     this.operation = operation;
     this.left = left;
     this.value = value;
 }
 public BinaryExpressionNode(BinaryOperations op, ExpressionNode left, ExpressionNode right, SourceSpan sourceSpan)
     : base(sourceSpan)
 {
     this.op = op;
     this.left = left;
     this.right = right;
 }
 public VariableDeclarationNode(string name, ExpressionNode initialization, SourceSpan sourceSpan)
     : base(sourceSpan)
 {
     // TODO: Complete member initialization
     this.name = name;
     this.initialization = initialization;
 }
 public FunctionCallExpressionNode(ExpressionNode function, ArgumentNode[] arguments,
     SourceSpan sourceSpan)
     : base(sourceSpan)
 {
     this.function = function;
     // sort so unnamed arguments comes first.
     this.arguments = arguments.Where(a => a.Name == null).Concat(arguments.Where(a => a.Name != null)).ToArray();
 }
 public ForStatementNode(LexicalScope scope, StatementNode initializer, ExpressionNode condition,
     ExpressionNode incrementer, StatementNode body, SourceSpan span)
     : base(span)
 {
     this.scope = scope;
     this.initializer = initializer;
     this.condition = condition;
     this.incrementer = incrementer;
     this.body = body;
 }
        public FlowControlStatementNode(FlowControlOperations operation, ExpressionNode operand, SourceSpan sourceSpan)
            : base(sourceSpan)
        {
            switch (operation)
            {
                case FlowControlOperations.Return:
                    break;

                case FlowControlOperations.Break:
                case FlowControlOperations.Continue:
                    Assert.IsTrue(() => operand == null);
                    break;

                default:
                    throw Assert.Unreachable;
            }

            this.operation = operation;
            this.operand = operand;
        }
 public ExpressionStatementNode(ExpressionNode expression, SourceSpan sourceSpan)
     : base(sourceSpan)
 {
     this.expression = expression;
 }
Exemple #9
0
 public ParameterNode(string name, ExpressionNode defaultValue, SourceSpan sourceSpan)
     : base(sourceSpan)
 {
     this.name = name;
     this.defaultValue = defaultValue;
 }
 public UnaryExpressionNode(UnaryOperations operation, ExpressionNode value, SourceSpan sourceSpan)
     : base(sourceSpan)
 {
     this.operation = operation;
     this.value = value;
 }
 public IfElseStatementNode(ExpressionNode condition, StatementNode ifTrue, SourceSpan span)
     : this(condition, ifTrue, null, span)
 { }
Exemple #12
0
 public ArgumentNode(ExpressionNode value, string name, SourceSpan sourceSpan)
     : base(sourceSpan)
 {
     this.name = name;
     this.value = value;
 }