Example #1
0
        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();
            }
        }