From b8ebd27841ae47e667c141b3dcebac2ad737da16 Mon Sep 17 00:00:00 2001 From: triton Date: Mon, 21 Jan 2013 17:18:26 +0000 Subject: [PATCH] Added namespace walk support. --- src/Bridge/ASTVisitor.cs | 23 ++++++++++++++++++++++ src/Bridge/Declaration.cs | 1 + src/Bridge/Namespace.cs | 3 +-- src/Generator/Generators/CLI/CLIHelpers.cs | 10 ++++++++++ src/Generator/Generators/CLI/CLIMarshal.cs | 11 +++++++++++ 5 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/Bridge/ASTVisitor.cs b/src/Bridge/ASTVisitor.cs index 70ba03ef..15ccc924 100644 --- a/src/Bridge/ASTVisitor.cs +++ b/src/Bridge/ASTVisitor.cs @@ -153,6 +153,29 @@ namespace Cxxi return true; } + public bool VisitNamespace(Namespace @namespace) + { + foreach (var decl in @namespace.Classes) + decl.Visit(this); + + foreach (var decl in @namespace.Functions) + decl.Visit(this); + + foreach (var decl in @namespace.Enums) + decl.Visit(this); + + foreach (var decl in @namespace.Templates) + decl.Visit(this); + + foreach (var decl in @namespace.Typedefs) + decl.Visit(this); + + foreach (var decl in @namespace.Namespaces) + decl.Visit(this); + + return true; + } + #endregion } } \ No newline at end of file diff --git a/src/Bridge/Declaration.cs b/src/Bridge/Declaration.cs index 83dfb928..a78b52d0 100644 --- a/src/Bridge/Declaration.cs +++ b/src/Bridge/Declaration.cs @@ -131,5 +131,6 @@ namespace Cxxi T VisitClassTemplateDecl(ClassTemplate template); T VisitFunctionTemplateDecl(FunctionTemplate template); T VisitMacroDefinition(MacroDefinition macro); + T VisitNamespace(Namespace @namespace); } } \ No newline at end of file diff --git a/src/Bridge/Namespace.cs b/src/Bridge/Namespace.cs index 53ec632d..a1241342 100644 --- a/src/Bridge/Namespace.cs +++ b/src/Bridge/Namespace.cs @@ -206,8 +206,7 @@ namespace Cxxi public override T Visit(IDeclVisitor visitor) { - return default(T); - //visitor.VisitNamespace(this); + return visitor.VisitNamespace(this); } } } \ No newline at end of file diff --git a/src/Generator/Generators/CLI/CLIHelpers.cs b/src/Generator/Generators/CLI/CLIHelpers.cs index 3501ae63..32b924c9 100644 --- a/src/Generator/Generators/CLI/CLIHelpers.cs +++ b/src/Generator/Generators/CLI/CLIHelpers.cs @@ -242,6 +242,11 @@ namespace Cxxi.Generators.CLI { throw new NotImplementedException(); } + + public string VisitNamespace(Namespace @namespace) + { + throw new NotImplementedException(); + } } public class CLIForwardRefeferencePrinter : IDeclVisitor @@ -353,6 +358,11 @@ namespace Cxxi.Generators.CLI { throw new NotImplementedException(); } + + public bool VisitNamespace(Namespace @namespace) + { + throw new NotImplementedException(); + } } #endregion diff --git a/src/Generator/Generators/CLI/CLIMarshal.cs b/src/Generator/Generators/CLI/CLIMarshal.cs index df3aae95..d9a35be3 100644 --- a/src/Generator/Generators/CLI/CLIMarshal.cs +++ b/src/Generator/Generators/CLI/CLIMarshal.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics; using System.Globalization; using System.Text; using Cxxi.Types; @@ -196,6 +197,11 @@ namespace Cxxi.Generators.CLI throw new NotImplementedException(); } + public bool VisitNamespace(Namespace @namespace) + { + throw new NotImplementedException(); + } + public bool VisitDelegate(Delegate @delegate) { throw new NotImplementedException(); @@ -431,6 +437,11 @@ namespace Cxxi.Generators.CLI throw new NotImplementedException(); } + public bool VisitNamespace(Namespace @namespace) + { + throw new NotImplementedException(); + } + public bool VisitDelegate(Delegate @delegate) { throw new NotImplementedException();