Browse Source

Whitespace fixes.

pull/499/head
triton 10 years ago
parent
commit
17d4342433
  1. 112
      src/CppParser/Bootstrap/Bootstrap.cs

112
src/CppParser/Bootstrap/Bootstrap.cs

@ -1,14 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using CppSharp;
using CppSharp.AST; using CppSharp.AST;
using CppSharp.Generators;
using CppSharp.Passes;
using CppSharp.Types;
using CppAbi = CppSharp.Parser.AST.CppAbi;
namespace CppSharp namespace CppSharp
{ {
@ -38,26 +31,27 @@ namespace CppSharp
public void Setup(Driver driver) public void Setup(Driver driver)
{ {
var options = driver.Options; var options = driver.Options;
options.LibraryName = "CppSharp"; options.LibraryName = "CppSharp";
options.DryRun = true; options.DryRun = true;
options.Headers.AddRange(new string[] options.Headers.AddRange(new string[]
{ {
"clang/AST/Expr.h", "clang/AST/Expr.h",
}); });
options.SetupXcode();
options.MicrosoftMode = false;
options.TargetTriple = "i686-apple-darwin12.4.0";
options.addDefines ("__STDC_LIMIT_MACROS"); options.SetupXcode();
options.addDefines ("__STDC_CONSTANT_MACROS"); options.MicrosoftMode = false;
options.TargetTriple = "i686-apple-darwin12.4.0";
var llvmPath = Path.Combine (GetSourceDirectory ("deps"), "llvm"); options.addDefines ("__STDC_LIMIT_MACROS");
var clangPath = Path.Combine(llvmPath, "tools", "clang"); options.addDefines ("__STDC_CONSTANT_MACROS");
options.addIncludeDirs(Path.Combine(llvmPath, "include")); var llvmPath = Path.Combine (GetSourceDirectory ("deps"), "llvm");
options.addIncludeDirs(Path.Combine(llvmPath, "build", "include")); var clangPath = Path.Combine(llvmPath, "tools", "clang");
options.addIncludeDirs (Path.Combine (llvmPath, "build", "tools", "clang", "include"));
options.addIncludeDirs(Path.Combine(clangPath, "include")); options.addIncludeDirs(Path.Combine(llvmPath, "include"));
options.addIncludeDirs(Path.Combine(llvmPath, "build", "include"));
options.addIncludeDirs (Path.Combine (llvmPath, "build", "tools", "clang", "include"));
options.addIncludeDirs(Path.Combine(clangPath, "include"));
} }
public void SetupPasses(Driver driver) public void SetupPasses(Driver driver)
@ -68,13 +62,13 @@ namespace CppSharp
{ {
ctx.RenameNamespace("CppSharp::CppParser", "Parser"); ctx.RenameNamespace("CppSharp::CppParser", "Parser");
var exprClass = ctx.FindCompleteClass ("clang::Expr"); var exprClass = ctx.FindCompleteClass ("clang::Expr");
var exprUnit = ctx.TranslationUnits [0]; var exprUnit = ctx.TranslationUnits [0];
var subclassVisitor = new SubclassVisitor (exprClass); var subclassVisitor = new SubclassVisitor (exprClass);
exprUnit.Visit (subclassVisitor); exprUnit.Visit (subclassVisitor);
var subclasses = subclassVisitor.Classes; var subclasses = subclassVisitor.Classes;
} }
public void Postprocess(Driver driver, ASTContext ctx) public void Postprocess(Driver driver, ASTContext ctx)
@ -84,39 +78,39 @@ namespace CppSharp
public static void Main(string[] args) public static void Main(string[] args)
{ {
Console.WriteLine("Generating parser bootstrap code..."); Console.WriteLine("Generating parser bootstrap code...");
ConsoleDriver.Run(new Bootstrap()); ConsoleDriver.Run(new Bootstrap());
Console.WriteLine(); Console.WriteLine();
} }
} }
class SubclassVisitor : AstVisitor class SubclassVisitor : AstVisitor
{ {
public HashSet<Class> Classes; public HashSet<Class> Classes;
Class expressionClass; Class expressionClass;
public SubclassVisitor (Class expression) public SubclassVisitor (Class expression)
{ {
expressionClass = expression; expressionClass = expression;
Classes = new HashSet<Class> (); Classes = new HashSet<Class> ();
} }
static bool IsDerivedFrom(Class subclass, Class superclass) static bool IsDerivedFrom(Class subclass, Class superclass)
{ {
if (subclass == null) if (subclass == null)
return false; return false;
if (subclass == superclass) if (subclass == superclass)
return true; return true;
return IsDerivedFrom (subclass.BaseClass, superclass); return IsDerivedFrom (subclass.BaseClass, superclass);
} }
public override bool VisitClassDecl (Class @class) public override bool VisitClassDecl (Class @class)
{ {
if (!@class.IsIncomplete && IsDerivedFrom (@class, expressionClass)) if (!@class.IsIncomplete && IsDerivedFrom (@class, expressionClass))
Classes.Add (@class); Classes.Add (@class);
return base.VisitClassDecl (@class); return base.VisitClassDecl (@class);
} }
} }
} }

Loading…
Cancel
Save