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)