{
GenerateCompileUnitStart (compileUnit);
- GenerateGlobalNamespace (compileUnit);
+ GenerateGlobalNamespace (compileUnit);
if (compileUnit.AssemblyCustomAttributes.Count > 0) {
OutputAttributes (compileUnit.AssemblyCustomAttributes,
Output.WriteLine ("");
}
- GenerateLocalNamespaces (compileUnit);
+ GenerateLocalNamespaces (compileUnit);
GenerateCompileUnitEnd (compileUnit);
}
- private void GenerateGlobalNamespace (CodeCompileUnit compileUnit) {
- CodeNamespace globalNamespace = null;
+ private void GenerateGlobalNamespace (CodeCompileUnit compileUnit) {
+ CodeNamespace globalNamespace = null;
- foreach (CodeNamespace codeNamespace in compileUnit.Namespaces)
- if (string.IsNullOrEmpty (codeNamespace.Name))
- globalNamespace = codeNamespace;
-
- if (globalNamespace != null)
- GenerateNamespace (globalNamespace);
- }
+ foreach (CodeNamespace codeNamespace in compileUnit.Namespaces)
+ if (string.IsNullOrEmpty (codeNamespace.Name))
+ globalNamespace = codeNamespace;
+
+ if (globalNamespace != null)
+ GenerateNamespace (globalNamespace);
+ }
- private void GenerateLocalNamespaces (CodeCompileUnit compileUnit) {
- foreach (CodeNamespace codeNamespace in compileUnit.Namespaces)
- if (!string.IsNullOrEmpty (codeNamespace.Name))
- GenerateNamespace (codeNamespace);
- }
+ private void GenerateLocalNamespaces (CodeCompileUnit compileUnit) {
+ foreach (CodeNamespace codeNamespace in compileUnit.Namespaces)
+ if (!string.IsNullOrEmpty (codeNamespace.Name))
+ GenerateNamespace (codeNamespace);
+ }
protected override void GenerateDefaultValueExpression (CodeDefaultValueExpression e)
{
}
static bool is_identifier_start_character (char c)
- {
- return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '@' || Char.IsLetter (c);
- }
-
- static bool is_identifier_part_character (char c)
- {
- return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || (c >= '0' && c <= '9') || Char.IsLetter (c);
- }
+ {
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '@' || Char.IsLetter (c);
+ }
+
+ static bool is_identifier_part_character (char c)
+ {
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || (c >= '0' && c <= '9') || Char.IsLetter (c);
+ }
protected override bool IsValidIdentifier (string identifier)
{
return false;
if (!is_identifier_start_character (identifier [0]))
- return false;
-
- for (int i = 1; i < identifier.Length; i ++)
- if (! is_identifier_part_character (identifier [i]))
- return false;
-
- return true;
+ return false;
+
+ for (int i = 1; i < identifier.Length; i ++)
+ if (! is_identifier_part_character (identifier [i]))
+ return false;
+
+ return true;
}
protected override bool Supports (GeneratorSupport supports)
// CodeGenerator.GenerateFromCompileUnit Tests
//
// Authors:
-// Ilker Cetinkaya (code@ilker.de)
+// Ilker Cetinkaya (mail@ilker.de)
//
// This is a specific test for an issue on GenerateFromCompileUnit.
// Up until 2012 (version 2.10.n) the method emits attribute first
namespace MonoTests.System.CodeDom.Compiler
{
- [TestFixture]
- public class CodeGeneratorGenerateFromCompileUnitTest {
- [Test]
- public void When_Having_AssemblyAttribute_And_Using_Namespace_It_Should_Generate_Namespace_First_And_Attribute_Afterwards () {
- ICodeGenerator generator = new SampleCodeGenerator ();
- var compileUnit = ACompileUnitWithAttributeAndNamespace ();
- var writer = new StringWriter ();
- var options = new CodeGeneratorOptions ();
+ [TestFixture]
+ public class CodeGeneratorGenerateFromCompileUnitTest {
+ [Test]
+ public void When_Having_AssemblyAttribute_And_Using_Namespace_It_Should_Generate_Namespace_First_And_Attribute_Afterwards () {
+ ICodeGenerator generator = new SampleCodeGenerator ();
+ var compileUnit = ACompileUnitWithAttributeAndNamespace ();
+ var writer = new StringWriter ();
+ var options = new CodeGeneratorOptions ();
- generator.GenerateCodeFromCompileUnit (compileUnit, writer, options);
+ generator.GenerateCodeFromCompileUnit (compileUnit, writer, options);
- string result = writer.ToString ();
-
- int importPosition = result.IndexOf (IMPORT);
- int attributePosition = result.IndexOf (ATTRIBUTE);
+ string result = writer.ToString ();
+
+ int importPosition = result.IndexOf (IMPORT);
+ int attributePosition = result.IndexOf (ATTRIBUTE);
- Assert.Greater (attributePosition, importPosition, "Actual order: " + result);
- }
+ Assert.Greater (attributePosition, importPosition, "Actual order: " + result);
+ }
- private const string ATTRIBUTE = "ATTRIBUTE";
- private const string IMPORT = "IMPORT";
+ private const string ATTRIBUTE = "ATTRIBUTE";
+ private const string IMPORT = "IMPORT";
- private CodeCompileUnit ACompileUnitWithAttributeAndNamespace () {
- var compileUnit = new CodeCompileUnit ();
- var importNs = new CodeNamespace ();
+ private CodeCompileUnit ACompileUnitWithAttributeAndNamespace () {
+ var compileUnit = new CodeCompileUnit ();
+ var importNs = new CodeNamespace ();
- importNs.Imports.Add(new CodeNamespaceImport (IMPORT));
+ importNs.Imports.Add (new CodeNamespaceImport (IMPORT));
- compileUnit.AssemblyCustomAttributes.Add (new CodeAttributeDeclaration (ATTRIBUTE));
- compileUnit.Namespaces.Add (importNs);
+ compileUnit.AssemblyCustomAttributes.Add (new CodeAttributeDeclaration (ATTRIBUTE));
+ compileUnit.Namespaces.Add (importNs);
- return compileUnit;
- }
+ return compileUnit;
+ }
- private class SampleCodeGenerator : CodeGenerator {
- /* test overrides */
- protected override void GenerateAttributeDeclarationsStart (CodeAttributeDeclarationCollection attributes) { Output.Write ("ATTRIBUTE"); }
- protected override void GenerateAttributeDeclarationsEnd (CodeAttributeDeclarationCollection attributes) {}
- protected override void GenerateNamespaceImport (CodeNamespaceImport i) { Output.Write ("IMPORT"); }
- /* must overrides */
- protected override string NullToken { get { return string.Empty; } }
- protected override void GenerateArgumentReferenceExpression (CodeArgumentReferenceExpression e) {}
- protected override void GenerateArrayCreateExpression (CodeArrayCreateExpression e) {}
- protected override void GenerateArrayIndexerExpression (CodeArrayIndexerExpression e) {}
- protected override void GenerateAssignStatement (CodeAssignStatement s) {}
- protected override void GenerateAttachEventStatement (CodeAttachEventStatement s) {}
- protected override void GenerateBaseReferenceExpression (CodeBaseReferenceExpression e) {}
- protected override void GenerateCastExpression (CodeCastExpression e) {}
- protected override void GenerateComment (CodeComment comment) {}
- protected override void GenerateConditionStatement (CodeConditionStatement s) {}
- protected override void GenerateConstructor (CodeConstructor x, CodeTypeDeclaration d) {}
- protected override void GenerateDelegateCreateExpression (CodeDelegateCreateExpression e) {}
- protected override void GenerateDelegateInvokeExpression (CodeDelegateInvokeExpression e) {}
- protected override void GenerateEntryPointMethod (CodeEntryPointMethod m, CodeTypeDeclaration d) {}
- protected override void GenerateEvent (CodeMemberEvent ev, CodeTypeDeclaration d) {}
- protected override void GenerateEventReferenceExpression (CodeEventReferenceExpression e) {}
- protected override void GenerateExpressionStatement (CodeExpressionStatement statement) {}
- protected override void GenerateField (CodeMemberField f) {}
- protected override void GenerateFieldReferenceExpression (CodeFieldReferenceExpression e) {}
- protected override void GenerateGotoStatement (CodeGotoStatement statement) {}
- protected override void GenerateIndexerExpression (CodeIndexerExpression e) {}
- protected override void GenerateIterationStatement (CodeIterationStatement s) {}
- protected override void GenerateLabeledStatement (CodeLabeledStatement statement) {}
- protected override void GenerateLinePragmaStart (CodeLinePragma p) {}
- protected override void GenerateLinePragmaEnd (CodeLinePragma p) {}
- protected override void GenerateMethod (CodeMemberMethod m, CodeTypeDeclaration d) {}
- protected override void GenerateMethodInvokeExpression (CodeMethodInvokeExpression e) {}
- protected override void GenerateMethodReferenceExpression (CodeMethodReferenceExpression e) {}
- protected override void GenerateMethodReturnStatement (CodeMethodReturnStatement e) {}
- protected override void GenerateNamespaceStart (CodeNamespace ns) {}
- protected override void GenerateNamespaceEnd (CodeNamespace ns) {}
- protected override void GenerateObjectCreateExpression (CodeObjectCreateExpression e) {}
- protected override void GenerateProperty (CodeMemberProperty p, CodeTypeDeclaration d) {}
- protected override void GeneratePropertyReferenceExpression (CodePropertyReferenceExpression e) {}
- protected override void GeneratePropertySetValueReferenceExpression (CodePropertySetValueReferenceExpression e) {}
- protected override void GenerateRemoveEventStatement (CodeRemoveEventStatement statement) {}
- protected override void GenerateSnippetExpression (CodeSnippetExpression e) {}
- protected override void GenerateSnippetMember (CodeSnippetTypeMember m) {}
- protected override void GenerateThisReferenceExpression (CodeThisReferenceExpression e) {}
- protected override void GenerateThrowExceptionStatement (CodeThrowExceptionStatement s) {}
- protected override void GenerateTryCatchFinallyStatement (CodeTryCatchFinallyStatement s) {}
- protected override void GenerateTypeEnd (CodeTypeDeclaration declaration) {}
- protected override void GenerateTypeConstructor (CodeTypeConstructor constructor) {}
- protected override void GenerateTypeStart (CodeTypeDeclaration declaration) {}
- protected override void GenerateVariableDeclarationStatement (CodeVariableDeclarationStatement e) {}
- protected override void GenerateVariableReferenceExpression (CodeVariableReferenceExpression e) {}
- protected override void OutputType (CodeTypeReference t) {}
- protected override string QuoteSnippetString (string value) { return string.Empty; }
- protected override string CreateEscapedIdentifier (string value) { return string.Empty; }
- protected override string CreateValidIdentifier (string value) { return string.Empty; }
- protected override string GetTypeOutput (CodeTypeReference type) { return string.Empty; }
- protected override bool IsValidIdentifier (string value) { return false; }
- protected override bool Supports (GeneratorSupport supports) { return false; }
- }
- }
+ private class SampleCodeGenerator : CodeGenerator {
+ /* test overrides */
+ protected override void GenerateAttributeDeclarationsStart (CodeAttributeDeclarationCollection attributes) { Output.Write ("ATTRIBUTE"); }
+ protected override void GenerateAttributeDeclarationsEnd (CodeAttributeDeclarationCollection attributes) {}
+ protected override void GenerateNamespaceImport (CodeNamespaceImport i) { Output.Write ("IMPORT"); }
+ /* must overrides */
+ protected override string NullToken { get { return string.Empty; } }
+ protected override void GenerateArgumentReferenceExpression (CodeArgumentReferenceExpression e) {}
+ protected override void GenerateArrayCreateExpression (CodeArrayCreateExpression e) {}
+ protected override void GenerateArrayIndexerExpression (CodeArrayIndexerExpression e) {}
+ protected override void GenerateAssignStatement (CodeAssignStatement s) {}
+ protected override void GenerateAttachEventStatement (CodeAttachEventStatement s) {}
+ protected override void GenerateBaseReferenceExpression (CodeBaseReferenceExpression e) {}
+ protected override void GenerateCastExpression (CodeCastExpression e) {}
+ protected override void GenerateComment (CodeComment comment) {}
+ protected override void GenerateConditionStatement (CodeConditionStatement s) {}
+ protected override void GenerateConstructor (CodeConstructor x, CodeTypeDeclaration d) {}
+ protected override void GenerateDelegateCreateExpression (CodeDelegateCreateExpression e) {}
+ protected override void GenerateDelegateInvokeExpression (CodeDelegateInvokeExpression e) {}
+ protected override void GenerateEntryPointMethod (CodeEntryPointMethod m, CodeTypeDeclaration d) {}
+ protected override void GenerateEvent (CodeMemberEvent ev, CodeTypeDeclaration d) {}
+ protected override void GenerateEventReferenceExpression (CodeEventReferenceExpression e) {}
+ protected override void GenerateExpressionStatement (CodeExpressionStatement statement) {}
+ protected override void GenerateField (CodeMemberField f) {}
+ protected override void GenerateFieldReferenceExpression (CodeFieldReferenceExpression e) {}
+ protected override void GenerateGotoStatement (CodeGotoStatement statement) {}
+ protected override void GenerateIndexerExpression (CodeIndexerExpression e) {}
+ protected override void GenerateIterationStatement (CodeIterationStatement s) {}
+ protected override void GenerateLabeledStatement (CodeLabeledStatement statement) {}
+ protected override void GenerateLinePragmaStart (CodeLinePragma p) {}
+ protected override void GenerateLinePragmaEnd (CodeLinePragma p) {}
+ protected override void GenerateMethod (CodeMemberMethod m, CodeTypeDeclaration d) {}
+ protected override void GenerateMethodInvokeExpression (CodeMethodInvokeExpression e) {}
+ protected override void GenerateMethodReferenceExpression (CodeMethodReferenceExpression e) {}
+ protected override void GenerateMethodReturnStatement (CodeMethodReturnStatement e) {}
+ protected override void GenerateNamespaceStart (CodeNamespace ns) {}
+ protected override void GenerateNamespaceEnd (CodeNamespace ns) {}
+ protected override void GenerateObjectCreateExpression (CodeObjectCreateExpression e) {}
+ protected override void GenerateProperty (CodeMemberProperty p, CodeTypeDeclaration d) {}
+ protected override void GeneratePropertyReferenceExpression (CodePropertyReferenceExpression e) {}
+ protected override void GeneratePropertySetValueReferenceExpression (CodePropertySetValueReferenceExpression e) {}
+ protected override void GenerateRemoveEventStatement (CodeRemoveEventStatement statement) {}
+ protected override void GenerateSnippetExpression (CodeSnippetExpression e) {}
+ protected override void GenerateSnippetMember (CodeSnippetTypeMember m) {}
+ protected override void GenerateThisReferenceExpression (CodeThisReferenceExpression e) {}
+ protected override void GenerateThrowExceptionStatement (CodeThrowExceptionStatement s) {}
+ protected override void GenerateTryCatchFinallyStatement (CodeTryCatchFinallyStatement s) {}
+ protected override void GenerateTypeEnd (CodeTypeDeclaration declaration) {}
+ protected override void GenerateTypeConstructor (CodeTypeConstructor constructor) {}
+ protected override void GenerateTypeStart (CodeTypeDeclaration declaration) {}
+ protected override void GenerateVariableDeclarationStatement (CodeVariableDeclarationStatement e) {}
+ protected override void GenerateVariableReferenceExpression (CodeVariableReferenceExpression e) {}
+ protected override void OutputType (CodeTypeReference t) {}
+ protected override string QuoteSnippetString (string value) { return string.Empty; }
+ protected override string CreateEscapedIdentifier (string value) { return string.Empty; }
+ protected override string CreateValidIdentifier (string value) { return string.Empty; }
+ protected override string GetTypeOutput (CodeTypeReference type) { return string.Empty; }
+ protected override bool IsValidIdentifier (string value) { return false; }
+ protected override bool Supports (GeneratorSupport supports) { return false; }
+ }
+ }
}