public virtual object Visit(CompilationUnit compilationUnit, object data)
 {
     if (compilationUnit == null) {
         return data;
     }
     return compilationUnit.AcceptChildren(this, data);
 }
 public override object Visit(CompilationUnit compilationUnit, object data)
 {
     CodeNamespace globalNamespace = new CodeNamespace("Global");
     namespaces.Add(globalNamespace);
     namespaceDeclarations.Push(globalNamespace);
     compilationUnit.AcceptChildren(this, data);
     codeCompileUnit.Namespaces.Add(globalNamespace);
     return globalNamespace;
 }
 public object Visit(CompilationUnit compilationUnit, object data)
 {
     DebugOutput(compilationUnit);
     compilationUnit.AcceptChildren(this, data);
     return null;
 }