protected override void GenerateInner(CodeGenerator generator, CodeCompositeTypeDeclaration enclosingType) { generator.GenerateAttributes(ReturnTypeCustomAttributes, "return"); if (ExplicitImplementationType == null) { Modifiers.Generate(generator); } ReturnType.Generate(generator); generator.Write(TokenType.Space, ' '); if (ExplicitImplementationType != null) { ExplicitImplementationType.Generate(generator); generator.Write(TokenType.Punctuation, '.'); } generator.OutputIdentifier(TokenType.Identifier, Name); generator.OutputTypeParameters(TypeParameters); generator.Write(TokenType.Punctuation, '('); Parameters.GenerateCommaSeparated(generator); generator.Write(TokenType.Punctuation, ')'); foreach (var typeParameter in TypeParameters) { typeParameter.GenerateConstraints(generator); } if (enclosingType.IsInterface || (Modifiers & CodeMemberModifiers.ScopeMask) == CodeMemberModifiers.Abstract) { generator.WriteLine(TokenType.Punctuation, ';'); } else { if (Statements.Count > 0) { generator.WriteOpeningBrace(); generator.Indent++; generator.EnterLocalScope(); foreach (var parameter in Parameters) { generator.ReserveLocal(parameter.Name); } Statements.Generate(generator, default(CodeStatementEmitOptions)); generator.ExitLocalScope(); generator.Indent--; generator.WriteClosingBrace(); } else { generator.WriteEmptyBlock(); } } }
public void Generate(CodeGenerator generator, CodeCompositeTypeDeclaration enclosingType) { generator.EnterElement(this); StartDirectives.Generate(generator); Comments.Generate(generator); generator.GenerateAttributes(CustomAttributes); GenerateInner(generator, enclosingType); EndDirectives.Generate(generator); generator.ExitElement(); }
public void Generate(CodeGenerator generator) { generator.EnterElement(this); generator.WriteLine(TokenType.Comment, @"//--------------------------------------------------------------"); generator.WriteLine(TokenType.Comment, @"// _______ _____ __ ________ "); generator.WriteLine(TokenType.Comment, @"// | ___ \ / \ | | |___ ___| "); generator.WriteLine(TokenType.Comment, @"// | | \ | / ___ \ | | / / "); generator.WriteLine(TokenType.Comment, @"// | |___/ / / / \ \ | | / /_ "); generator.WriteLine(TokenType.Comment, @"// | | \ \ \ \___/ / | | /_ / "); generator.WriteLine(TokenType.Comment, @"// | |___/ | \ / | |____ | / "); generator.WriteLine(TokenType.Comment, @"// |_______/ \_____/ |_______| |/ "); generator.WriteLine(TokenType.Comment, @"// "); generator.WriteLine(TokenType.Comment, @"// V I S U A L S C R I P T I N G "); generator.WriteLine(TokenType.Comment, @"//--------------------------------------------------------------"); generator.WriteLine(TokenType.Comment, @"// "); generator.WriteLine(TokenType.Comment, @"// THIS FILE IS AUTO-GENERATED. "); generator.WriteLine(TokenType.Comment, @"// "); generator.WriteLine(TokenType.Comment, @"// ANY CHANGES WILL BE LOST NEXT TIME THIS SCRIPT IS GENERATED. "); generator.WriteLine(TokenType.Comment, @"// "); generator.WriteLine(TokenType.Comment, @"//--------------------------------------------------------------"); StartDirectives.Generate(generator); if (StartDirectives.Count > 0) { generator.WriteLine(); } Usings.Generate(generator); if (AssemblyCustomAttributes.Count > 0) { generator.GenerateAttributes(AssemblyCustomAttributes, "assembly"); generator.WriteLine(); } generator.PushUsingSet(Usings); Namespaces.Generate(generator); generator.PopUsingSet(); if (EndDirectives.Count > 0) { generator.WriteLine(); } EndDirectives.Generate(generator); generator.ExitElement(); }
public void Generate(CodeGenerator generator) { generator.EnterElement(this); if (CustomAttributes.Count > 0) { generator.GenerateAttributes(CustomAttributes, null, true); } Direction.Generate(generator); Type.Generate(generator); generator.Write(TokenType.Space, ' '); generator.OutputIdentifier(TokenType.Identifier, Name); generator.ExitElement(); }
public void Generate(CodeGenerator generator) { generator.EnterElement(this); StartDirectives.Generate(generator); Comments.Generate(generator); generator.GenerateAttributes(CustomAttributes); generator.OutputIdentifier(TokenType.Identifier, Name); if (Initializer != null) { generator.Write(TokenType.Space, ' '); generator.Write(TokenType.Punctuation, '='); generator.Write(TokenType.Space, ' '); Initializer.Generate(generator); } generator.WriteLine(TokenType.Punctuation, ','); EndDirectives.Generate(generator); generator.ExitElement(); }
public void GenerateDeclaration(CodeGenerator generator) { generator.GenerateAttributes(CustomAttributes, null, true); generator.Write(TokenType.GenericTypeParameter, Name); }