protected override void GenerateInner(CodeGenerator generator, CodeStatementEmitOptions emitOptions) { generator.WriteBlankLineBeforeEnteringBlock(); generator.EnterLocalScope(); generator.Write(TokenType.Keyword, "using"); generator.Write(TokenType.Space, ' '); generator.Write(TokenType.Punctuation, '('); InitStatement.Generate(generator, CodeStatementEmitOptions.OmitSemiColon); generator.Write(TokenType.Punctuation, ')'); if (Statements.Count > 0) { generator.WriteOpeningBrace(); generator.Indent++; generator.EnterLocalScope(); Statements.ReserveLocals(generator, default(CodeStatementEmitOptions)); Statements.Generate(generator, default(CodeStatementEmitOptions)); generator.ExitLocalScope(); generator.Indent--; generator.WriteClosingBrace(); } else { generator.WriteEmptyBlock(); } generator.ExitLocalScope(); }
/// <summary> /// Add Init statement /// </summary> /// <param name="source"></param> private void AddInitStatement(ref string source, TsElementTypes elementType, TsGeneratorOptions options, TsWriteInformation info) { switch (elementType) { //constant case TsElementTypes.Constant: { source = string.Format(TsDomConstants.TS_CONSTANT_SETVALUE_FORMAT, source, InitStatement.GetSource(options, info)); break; } case TsElementTypes.Class: case TsElementTypes.Enumerations: { source = string.Format(TsDomConstants.ASSIGN_FORMAT, source, InitStatement.GetSource(options, info)); break; } case TsElementTypes.InlineObject: { source = string.Format(TsDomConstants.TS_INLINEOBJECT_SETVALUE_FORMAT, source, InitStatement.GetSource(options, info)); break; } default: { throw new NotImplementedException(string.Format("InitStatement for Type ({0}) is not implemented", elementType.ToString())); } } }