protected BoundLoopStatement(BoundNodeKind kind, SyntaxNode syntax, BoundLabel breakLabel, BoundLabel continueLabel) : base(kind, syntax) { this.BreakLabel = breakLabel; this.ContinueLabel = continueLabel; }
public BoundWhileStatement(SyntaxNode syntax, BoundExpression condition, BoundStatement body, BoundLabel breakLabel, BoundLabel continueLabel) : base(BoundNodeKind.WhileStatement, syntax, breakLabel, continueLabel) { this.Condition = condition; this.Body = body; }
public BoundForStatement(SyntaxNode syntax, VariableSymbol variable, BoundExpression lowerBound, BoundExpression upperBound, BoundStatement body, BoundLabel breakLabel, BoundLabel continueLabel) : base(BoundNodeKind.ForStatement, syntax, breakLabel, continueLabel) { this.Variable = variable; this.LowerBound = lowerBound; this.UpperBound = upperBound; this.Body = body; }
public BoundLabelStatement(SyntaxNode syntax, BoundLabel label) : base(BoundNodeKind.LabelStatement, syntax) { this.Label = label; }
public static BoundWhileStatement While(SyntaxNode syntax, BoundExpression condition, BoundStatement body, BoundLabel breakLabel, BoundLabel continueLabel) { return(new BoundWhileStatement(syntax, condition, body, breakLabel, continueLabel)); }
public static BoundLabelStatement Label(SyntaxNode syntax, BoundLabel label) { return(new BoundLabelStatement(syntax, label)); }
public static BoundConditionalGotoStatement GotoFalse(SyntaxNode syntax, BoundLabel label, BoundExpression condition) { return(new BoundConditionalGotoStatement(syntax, label, condition, false)); }
public static BoundStatement If(SyntaxNode syntax, BoundExpression condition, BoundStatement thenStmt, BoundStatement?elseStmt, BoundLabel elseLabel, BoundLabel endLabel) { if (elseStmt == null) { return(If(syntax, condition, thenStmt, endLabel)); } return(Block(syntax, GotoFalse(syntax, elseLabel, condition), thenStmt, Goto(syntax, endLabel), Label(syntax, elseLabel), elseStmt, Label(syntax, endLabel))); }
public static BoundStatement If(SyntaxNode syntax, BoundExpression condition, BoundStatement thenStmt, BoundLabel endLabel) { return(Block(syntax, GotoFalse(syntax, endLabel, condition), thenStmt, Label(syntax, endLabel))); }