diff --git a/src/CppParser/Bindings/CLI/CppParser.cpp b/src/CppParser/Bindings/CLI/CppParser.cpp index ca2fb915..f6d82172 100644 --- a/src/CppParser/Bindings/CLI/CppParser.cpp +++ b/src/CppParser/Bindings/CLI/CppParser.cpp @@ -254,6 +254,16 @@ void CppSharp::Parser::ParserOptions::Verbose::set(bool value) ((::CppSharp::CppParser::ParserOptions*)NativePtr)->Verbose = value; } +CppSharp::Parser::LanguageVersion CppSharp::Parser::ParserOptions::LanguageVersion::get() +{ + return (CppSharp::Parser::LanguageVersion)((::CppSharp::CppParser::ParserOptions*)NativePtr)->LanguageVersion; +} + +void CppSharp::Parser::ParserOptions::LanguageVersion::set(CppSharp::Parser::LanguageVersion value) +{ + ((::CppSharp::CppParser::ParserOptions*)NativePtr)->LanguageVersion = (::CppSharp::CppParser::LanguageVersion)value; +} + CppSharp::Parser::ParserDiagnostic::ParserDiagnostic(::CppSharp::CppParser::ParserDiagnostic* native) { NativePtr = native; diff --git a/src/CppParser/Bindings/CLI/CppParser.h b/src/CppParser/Bindings/CLI/CppParser.h index 311c0fc1..93d9e360 100644 --- a/src/CppParser/Bindings/CLI/CppParser.h +++ b/src/CppParser/Bindings/CLI/CppParser.h @@ -7,6 +7,7 @@ namespace CppSharp { namespace Parser { + enum struct LanguageVersion; enum struct ParserDiagnosticLevel; enum struct ParserResultKind; enum struct SourceLocationKind; @@ -29,6 +30,16 @@ namespace CppSharp { namespace Parser { + public enum struct LanguageVersion + { + /// The C programming language. + C = 0, + /// The C++ programming language year 1998; supports deprecated constructs. + CPlusPlus98 = 1, + /// The C++ programming language year 2011. + CPlusPlus11 = 2 + }; + public enum struct ParserDiagnosticLevel { Ignored = 0, @@ -148,6 +159,12 @@ namespace CppSharp void set(bool); } + property CppSharp::Parser::LanguageVersion LanguageVersion + { + CppSharp::Parser::LanguageVersion get(); + void set(CppSharp::Parser::LanguageVersion); + } + System::String^ getArguments(unsigned int i); void addArguments(System::String^ s); diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs index 3a68e2d5..13057930 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs @@ -217,7 +217,7 @@ namespace CppSharp public unsafe partial class Type : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 8)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -305,7 +305,7 @@ namespace CppSharp public unsafe partial class TypeQualifiers : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 3)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public bool IsConst; @@ -404,7 +404,7 @@ namespace CppSharp public unsafe partial class QualifiedType : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 8)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public global::System.IntPtr Type; @@ -493,7 +493,7 @@ namespace CppSharp public unsafe partial class TagType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 12)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -561,7 +561,7 @@ namespace CppSharp public unsafe partial class ArrayType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 24)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -675,7 +675,7 @@ namespace CppSharp public unsafe partial class FunctionType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 32)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -815,7 +815,7 @@ namespace CppSharp public unsafe partial class PointerType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 20)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -911,7 +911,7 @@ namespace CppSharp public unsafe partial class MemberPointerType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 16)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -981,7 +981,7 @@ namespace CppSharp public unsafe partial class TypedefType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 12)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -1049,7 +1049,7 @@ namespace CppSharp public unsafe partial class AttributedType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 24)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -1139,7 +1139,7 @@ namespace CppSharp public unsafe partial class DecayedType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 32)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -1249,7 +1249,7 @@ namespace CppSharp public unsafe partial class TemplateArgument : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 20)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TemplateArgument.ArgumentKind Kind; @@ -1386,7 +1386,7 @@ namespace CppSharp public unsafe partial class TemplateSpecializationType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 28)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -1526,7 +1526,7 @@ namespace CppSharp public unsafe partial class TemplateParameter : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 16)] - public struct Internal + public partial struct Internal { [FieldOffset(12)] public bool IsTypeParameter; @@ -1647,7 +1647,7 @@ namespace CppSharp public unsafe partial class TemplateParameterType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 36)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -1776,7 +1776,7 @@ namespace CppSharp public unsafe partial class TemplateParameterSubstitutionType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 16)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -1846,7 +1846,7 @@ namespace CppSharp public unsafe partial class InjectedClassNameType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 16)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -1932,7 +1932,7 @@ namespace CppSharp public unsafe partial class DependentNameType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 8)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -1982,7 +1982,7 @@ namespace CppSharp public unsafe partial class PackExpansionType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 8)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -2032,7 +2032,7 @@ namespace CppSharp public unsafe partial class BuiltinType : CppSharp.Parser.AST.Type, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 12)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.TypeKind Kind; @@ -2100,7 +2100,7 @@ namespace CppSharp public unsafe partial class VTableComponent : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 12)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.VTableComponentKind Kind; @@ -2205,7 +2205,7 @@ namespace CppSharp public unsafe partial class VTableLayout : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 12)] - public struct Internal + public partial struct Internal { [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, @@ -2311,7 +2311,7 @@ namespace CppSharp public unsafe partial class VFTableInfo : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 28)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public ulong VBTableIndex; @@ -2442,7 +2442,7 @@ namespace CppSharp public unsafe partial class ClassLayout : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 48)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.CppAbi ABI; @@ -2676,7 +2676,7 @@ namespace CppSharp public unsafe partial class Declaration : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 84)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -3015,7 +3015,7 @@ namespace CppSharp public unsafe partial class DeclarationContext : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 184)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -3442,7 +3442,7 @@ namespace CppSharp public unsafe partial class TypedefDecl : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 92)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -3541,7 +3541,7 @@ namespace CppSharp public unsafe partial class Statement : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 20)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.StatementClass Class; @@ -3655,7 +3655,7 @@ namespace CppSharp public unsafe partial class Expression : CppSharp.Parser.AST.Statement, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 20)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.StatementClass Class; @@ -3703,7 +3703,7 @@ namespace CppSharp public unsafe partial class Parameter : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 104)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -3874,7 +3874,7 @@ namespace CppSharp public unsafe partial class Function : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 148)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -4218,7 +4218,7 @@ namespace CppSharp public unsafe partial class Method : CppSharp.Parser.AST.Function, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 176)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -4542,7 +4542,7 @@ namespace CppSharp public unsafe partial class Enumeration : CppSharp.Parser.AST.DeclarationContext, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 208)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -4633,7 +4633,7 @@ namespace CppSharp public unsafe partial class Item : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 104)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -4859,7 +4859,7 @@ namespace CppSharp public unsafe partial class Variable : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 104)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -4985,7 +4985,7 @@ namespace CppSharp public unsafe partial class BaseClassSpecifier : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 12)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.AccessSpecifier Access; @@ -5090,7 +5090,7 @@ namespace CppSharp public unsafe partial class Field : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 100)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -5225,7 +5225,7 @@ namespace CppSharp public unsafe partial class AccessSpecifierDecl : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 84)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -5304,7 +5304,7 @@ namespace CppSharp public unsafe partial class Class : CppSharp.Parser.AST.DeclarationContext, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 248)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -5754,7 +5754,7 @@ namespace CppSharp public unsafe partial class Template : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 100)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -5913,7 +5913,7 @@ namespace CppSharp public unsafe partial class ClassTemplate : CppSharp.Parser.AST.Template, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 112)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -6042,7 +6042,7 @@ namespace CppSharp public unsafe partial class ClassTemplateSpecialization : CppSharp.Parser.AST.Class, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 268)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -6239,7 +6239,7 @@ namespace CppSharp public unsafe partial class ClassTemplatePartialSpecialization : CppSharp.Parser.AST.ClassTemplateSpecialization, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 268)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -6357,7 +6357,7 @@ namespace CppSharp public unsafe partial class FunctionTemplate : CppSharp.Parser.AST.Template, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 112)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -6486,7 +6486,7 @@ namespace CppSharp public unsafe partial class FunctionTemplateSpecialization : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 24)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public global::System.IntPtr Template; @@ -6646,7 +6646,7 @@ namespace CppSharp public unsafe partial class Namespace : CppSharp.Parser.AST.DeclarationContext, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 184)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -6746,7 +6746,7 @@ namespace CppSharp public unsafe partial class PreprocessedEntity : CppSharp.Parser.AST.Declaration, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 88)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -6843,7 +6843,7 @@ namespace CppSharp public unsafe partial class MacroDefinition : CppSharp.Parser.AST.PreprocessedEntity, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 100)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -6952,7 +6952,7 @@ namespace CppSharp public unsafe partial class MacroExpansion : CppSharp.Parser.AST.PreprocessedEntity, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 104)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -7079,7 +7079,7 @@ namespace CppSharp public unsafe partial class TranslationUnit : CppSharp.Parser.AST.Namespace, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 212)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.DeclarationKind Kind; @@ -7256,7 +7256,7 @@ namespace CppSharp public unsafe partial class NativeLibrary : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 24)] - public struct Internal + public partial struct Internal { [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, @@ -7388,7 +7388,7 @@ namespace CppSharp public unsafe partial class ASTContext : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 12)] - public struct Internal + public partial struct Internal { [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, @@ -7492,7 +7492,7 @@ namespace CppSharp public unsafe partial class Comment : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 4)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.CommentKind Kind; @@ -7562,7 +7562,7 @@ namespace CppSharp public unsafe partial class FullComment : CppSharp.Parser.AST.Comment, IDisposable { [StructLayout(LayoutKind.Explicit, Size = 4)] - public new struct Internal + public new partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.CommentKind Kind; @@ -7609,7 +7609,7 @@ namespace CppSharp public unsafe partial class RawComment : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 32)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.AST.RawCommentKind Kind; diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppParser.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppParser.cs index 68c1a457..b0eb974d 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppParser.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppParser.cs @@ -10,6 +10,16 @@ namespace CppSharp { namespace Parser { + public enum LanguageVersion + { + /// The C programming language. + C = 0, + /// The C++ programming language year 1998; supports deprecated constructs. + CPlusPlus98 = 1, + /// The C++ programming language year 2011. + CPlusPlus11 = 2 + } + public enum ParserDiagnosticLevel { Ignored = 0, @@ -37,8 +47,8 @@ namespace CppSharp public unsafe partial class ParserOptions : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 100)] - public struct Internal + [StructLayout(LayoutKind.Explicit, Size = 104)] + public partial struct Internal { [FieldOffset(72)] public global::System.IntPtr ASTContext; @@ -61,6 +71,9 @@ namespace CppSharp [FieldOffset(99)] public bool Verbose; + [FieldOffset(100)] + public CppSharp.Parser.LanguageVersion LanguageVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser13ParserOptionsC2Ev")] @@ -216,7 +229,7 @@ namespace CppSharp public ParserOptions() { - __Instance = Marshal.AllocHGlobal(100); + __Instance = Marshal.AllocHGlobal(104); Internal.ctor_0(__Instance); } @@ -510,12 +523,27 @@ namespace CppSharp __ptr->Verbose = value; } } + + public CppSharp.Parser.LanguageVersion LanguageVersion + { + get + { + var __ptr = (Internal*)__Instance.ToPointer(); + return __ptr->LanguageVersion; + } + + set + { + var __ptr = (Internal*)__Instance.ToPointer(); + __ptr->LanguageVersion = value; + } + } } public unsafe partial class ParserDiagnostic : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 36)] - public struct Internal + public partial struct Internal { [FieldOffset(24)] public CppSharp.Parser.ParserDiagnosticLevel Level; @@ -680,7 +708,7 @@ namespace CppSharp public unsafe partial class ParserResult : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 28)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public CppSharp.Parser.ParserResultKind Kind; @@ -840,7 +868,7 @@ namespace CppSharp public unsafe partial class ClangParser : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 1)] - public struct Internal + public partial struct Internal { [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Sources.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Sources.cs index 4f611a08..b0451379 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Sources.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Sources.cs @@ -13,7 +13,7 @@ namespace CppSharp public unsafe partial struct SourceLocation { [StructLayout(LayoutKind.Explicit, Size = 4)] - public struct Internal + public partial struct Internal { [FieldOffset(0)] public uint ID; diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Target.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Target.cs index 631187ee..9d42134e 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Target.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Target.cs @@ -28,7 +28,7 @@ namespace CppSharp public unsafe partial class ParserTargetInfo : IDisposable { [StructLayout(LayoutKind.Explicit, Size = 164)] - public struct Internal + public partial struct Internal { [FieldOffset(12)] public CppSharp.Parser.ParserIntType Char16Type; diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppParser.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppParser.cs index cf36293e..b4205ac0 100644 --- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppParser.cs +++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppParser.cs @@ -10,6 +10,16 @@ namespace CppSharp { namespace Parser { + public enum LanguageVersion + { + /// The C programming language. + C = 0, + /// The C++ programming language year 1998; supports deprecated constructs. + CPlusPlus98 = 1, + /// The C++ programming language year 2011. + CPlusPlus11 = 2 + } + public enum ParserDiagnosticLevel { Ignored = 0, @@ -37,7 +47,7 @@ namespace CppSharp public unsafe partial class ParserOptions : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 124)] + [StructLayout(LayoutKind.Explicit, Size = 128)] public partial struct Internal { [FieldOffset(84)] @@ -61,6 +71,9 @@ namespace CppSharp [FieldOffset(123)] public bool Verbose; + [FieldOffset(124)] + public CppSharp.Parser.LanguageVersion LanguageVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, EntryPoint="??0ParserOptions@CppParser@CppSharp@@QAE@XZ")] @@ -216,7 +229,7 @@ namespace CppSharp public ParserOptions() { - __Instance = Marshal.AllocHGlobal(124); + __Instance = Marshal.AllocHGlobal(128); Internal.ctor_0(__Instance); } @@ -510,6 +523,21 @@ namespace CppSharp __ptr->Verbose = value; } } + + public CppSharp.Parser.LanguageVersion LanguageVersion + { + get + { + var __ptr = (Internal*)__Instance.ToPointer(); + return __ptr->LanguageVersion; + } + + set + { + var __ptr = (Internal*)__Instance.ToPointer(); + __ptr->LanguageVersion = value; + } + } } public unsafe partial class ParserDiagnostic : IDisposable diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs index e07dc7cf..351bb78f 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs @@ -10,6 +10,16 @@ namespace CppSharp { namespace Parser { + public enum LanguageVersion + { + /// The C programming language. + C = 0, + /// The C++ programming language year 1998; supports deprecated constructs. + CPlusPlus98 = 1, + /// The C++ programming language year 2011. + CPlusPlus11 = 2 + } + public enum ParserDiagnosticLevel { Ignored = 0, @@ -37,7 +47,7 @@ namespace CppSharp public unsafe partial class ParserOptions : IDisposable { - [StructLayout(LayoutKind.Explicit, Size = 160)] + [StructLayout(LayoutKind.Explicit, Size = 168)] public partial struct Internal { [FieldOffset(128)] @@ -61,6 +71,9 @@ namespace CppSharp [FieldOffset(159)] public bool Verbose; + [FieldOffset(160)] + public CppSharp.Parser.LanguageVersion LanguageVersion; + [SuppressUnmanagedCodeSecurity] [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, EntryPoint="_ZN8CppSharp9CppParser13ParserOptionsC2Ev")] @@ -216,7 +229,7 @@ namespace CppSharp public ParserOptions() { - __Instance = Marshal.AllocHGlobal(160); + __Instance = Marshal.AllocHGlobal(168); Internal.ctor_0(__Instance); } @@ -510,6 +523,21 @@ namespace CppSharp __ptr->Verbose = value; } } + + public CppSharp.Parser.LanguageVersion LanguageVersion + { + get + { + var __ptr = (Internal*)__Instance.ToPointer(); + return __ptr->LanguageVersion; + } + + set + { + var __ptr = (Internal*)__Instance.ToPointer(); + __ptr->LanguageVersion = value; + } + } } public unsafe partial class ParserDiagnostic : IDisposable diff --git a/src/CppParser/CppParser.cpp b/src/CppParser/CppParser.cpp index 41c975c9..eb8a45af 100644 --- a/src/CppParser/CppParser.cpp +++ b/src/CppParser/CppParser.cpp @@ -18,6 +18,7 @@ ParserOptions::ParserOptions() , NoBuiltinIncludes(false) , MicrosoftMode(false) , Verbose(false) + , LanguageVersion(LanguageVersion::CPlusPlus11) { } diff --git a/src/CppParser/CppParser.h b/src/CppParser/CppParser.h index 5a006842..12197633 100644 --- a/src/CppParser/CppParser.h +++ b/src/CppParser/CppParser.h @@ -15,6 +15,22 @@ namespace CppSharp { namespace CppParser { using namespace CppSharp::CppParser::AST; +enum class LanguageVersion +{ + /** + * The C programming language. + */ + C, + /** + * The C++ programming language year 1998; supports deprecated constructs. + */ + CPlusPlus98, + /** + * The C++ programming language year 2011. + */ + CPlusPlus11 +}; + struct CS_API ParserOptions { ParserOptions(); @@ -40,6 +56,7 @@ struct CS_API ParserOptions bool NoBuiltinIncludes; bool MicrosoftMode; bool Verbose; + LanguageVersion LanguageVersion; }; enum class ParserDiagnosticLevel diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index 02339b21..85d24c11 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -103,7 +103,18 @@ void Parser::SetupHeader() // Enable C++ language mode args.push_back("-xc++"); - args.push_back("-std=gnu++11"); + switch (Opts->LanguageVersion) + { + case CppParser::LanguageVersion::C: + args.push_back("-std=c"); + break; + case CppParser::LanguageVersion::CPlusPlus98: + args.push_back("-std=gnu++98"); + break; + default: + args.push_back("-std=gnu++11"); + break; + } args.push_back("-fno-rtti"); for (unsigned I = 0, E = Opts->Arguments.size(); I != E; ++I) diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index bc9a1aac..a90cbb41 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -130,6 +130,7 @@ namespace CppSharp NoBuiltinIncludes = Options.NoBuiltinIncludes, MicrosoftMode = Options.MicrosoftMode, Verbose = Options.Verbose, + LanguageVersion = Options.LanguageVersion }; for (uint i = 0; i < Options.ArgumentsCount; ++i)