/// <summary> /// Returns the string representation of the statement. /// </summary> /// <returns>Returns the string representation of the statement.</returns> /// <param name="indentation">The number of indented characters.</param> /// <exception cref="ArgumentOutOfRangeException"><paramref name="indentation"/> is negative.</exception> public override string ToString(int indentation) { if (indentation < 0) { throw new ArgumentOutOfRangeException(); } var ind = new string(' ', indentation); var sb = new StringBuilder(); sb.Append(ind).Append("if").Append(" ") .Append("(").Append(Condition.ToString()).Append(")\n"); if (TrueStatements != null) { sb.Append(ind).Append("{\n") .Append(TrueStatements.ToString(indentation + 4)).Append("\n") .Append(ind).Append("}"); } else { sb.Append(ind).Append("{ }"); } if (FalseStatements != null) { sb.Append("\n").Append(ind).Append("else\n") .Append(ind).Append("{\n") .Append(FalseStatements.ToString(indentation + 4)).Append("\n") .Append(ind).Append("}"); } return(sb.ToString()); }
public CodeConditionStatement(CodeExpression condition, CodeStatement[] trueStatements, CodeStatement[] falseStatements) { this.condition = condition; TrueStatements.AddRange(trueStatements); FalseStatements.AddRange(falseStatements); }
/// <summary> /// Creates a new object that is a copy of the current instance. /// </summary> /// <returns>A new object that is a copy of this instance.</returns> public override object Clone() { return(new ConditionStatement(Condition) { Column = Column, Id = Id, Line = Line, StartOffset = StartOffset, NodeLength = NodeLength } .WithThenBody(TrueStatements.ToArray()) .WithElseBody(FalseStatements.ToArray())); }
protected override void GenerateInner(CodeGenerator generator, CodeStatementEmitOptions emitOptions) { generator.WriteBlankLineBeforeEnteringBlock(); generator.Write(TokenType.Keyword, "if"); generator.Write(TokenType.Space, ' '); generator.Write(TokenType.Punctuation, '('); Condition.Generate(generator); generator.Write(TokenType.Punctuation, ')'); if (TrueStatements.Count == 0 && FalseStatements.Count == 0) { generator.WriteEmptyBlock(); } else { generator.WriteOpeningBrace(); generator.Indent++; generator.EnterLocalScope(); TrueStatements.ReserveLocals(generator, default(CodeStatementEmitOptions)); TrueStatements.Generate(generator, default(CodeStatementEmitOptions)); generator.ExitLocalScope(); generator.Indent--; if (FalseStatements.Count > 0) { generator.WriteMiddleClosingBrace(); generator.Write(TokenType.Keyword, "else"); generator.WriteOpeningBrace(); generator.Indent++; generator.EnterLocalScope(); FalseStatements.ReserveLocals(generator, default(CodeStatementEmitOptions)); FalseStatements.Generate(generator, default(CodeStatementEmitOptions)); generator.ExitLocalScope(); generator.Indent--; } generator.WriteClosingBrace(); } }
/// <devdoc> /// <para> /// Initializes a new instance of <see cref='System.CodeDom.CodeConditionStatement'/>. /// </para> /// </devdoc> public CodeConditionStatement(CodeExpression condition, params CodeStatement[] trueStatements) { Condition = condition; TrueStatements.AddRange(trueStatements); }
public CodeConditionStatement(ILInstruction inline, CodeExpression condition, CodeStatement[] trueStatements, CodeStatement[] falseStatements) : base(inline) { Condition = condition; TrueStatements.AddRange(trueStatements); FalseStatements.AddRange(falseStatements); }
public CodeIfStatement(CodeExpression condition, IEnumerable <CodeStatement> trueStatements, IEnumerable <CodeStatement> falseStatements) { Condition = condition; TrueStatements.AddRange(trueStatements); FalseStatements.AddRange(falseStatements); }