public LoopNode(int uniqueId, int uniqueCond, AbstractExpressionNode condition, AbstractStatementNode iteration, AbstractStatementNode statement) : base(NodeType.Loop) { UniqueId = uniqueId; Conditional = new ConditionalNode(uniqueCond, condition, statement, new BlockNode(new BreakNode(UniqueId))); Iteration = iteration; }
public FunctionNode(ObjectType returnType, FunctionIdentifierNode identifier, List <AbstractExpressionNode> arguments, AbstractStatementNode stmt) : base(NodeType.Function) { ReturnType = returnType; Identifier = identifier; Arguments = arguments; Statement = stmt; }
public ConditionalNode(int uniqueId, AbstractExpressionNode expression, AbstractStatementNode trueStatement, AbstractStatementNode falseStatement) : base(NodeType.Conditional) { UniqueId = uniqueId; Expression = expression; TrueStatement = trueStatement; FalseStatement = falseStatement; }
public LoopNode(int uniqueId, int uniqueCond, AbstractExpressionNode condition, AbstractStatementNode statement) : this(uniqueId, uniqueCond, condition, new BlockNode(), statement) { }
private static AbstractStatementNode DropReturn(AbstractStatementNode node) => new BlockNode ( node, new DropNode() );