diff --git a/src/CppParser/Bindings/CLI/CppParser.cpp b/src/CppParser/Bindings/CLI/CppParser.cpp
index de67f9ed..ac4d2fa3 100644
--- a/src/CppParser/Bindings/CLI/CppParser.cpp
+++ b/src/CppParser/Bindings/CLI/CppParser.cpp
@@ -439,16 +439,6 @@ void CppSharp::Parser::CppParserOptions::Verbose::set(bool value)
((::CppSharp::CppParser::CppParserOptions*)NativePtr)->verbose = value;
}
-CppSharp::Parser::LanguageVersion CppSharp::Parser::CppParserOptions::LanguageVersion::get()
-{
- return (CppSharp::Parser::LanguageVersion)((::CppSharp::CppParser::CppParserOptions*)NativePtr)->languageVersion;
-}
-
-void CppSharp::Parser::CppParserOptions::LanguageVersion::set(CppSharp::Parser::LanguageVersion value)
-{
- ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->languageVersion = (::CppSharp::CppParser::LanguageVersion)value;
-}
-
CppSharp::Parser::ParserTargetInfo^ CppSharp::Parser::CppParserOptions::TargetInfo::get()
{
return (((::CppSharp::CppParser::CppParserOptions*)NativePtr)->targetInfo == nullptr) ? nullptr : gcnew CppSharp::Parser::ParserTargetInfo((::CppSharp::CppParser::ParserTargetInfo*)((::CppSharp::CppParser::CppParserOptions*)NativePtr)->targetInfo);
diff --git a/src/CppParser/Bindings/CLI/CppParser.h b/src/CppParser/Bindings/CLI/CppParser.h
index a9bb61d9..7d42fffa 100644
--- a/src/CppParser/Bindings/CLI/CppParser.h
+++ b/src/CppParser/Bindings/CLI/CppParser.h
@@ -13,7 +13,6 @@ namespace CppSharp
{
namespace Parser
{
- enum struct LanguageVersion;
enum struct ParserDiagnosticLevel;
enum struct ParserResultKind;
enum struct SourceLocationKind;
@@ -36,22 +35,6 @@ namespace CppSharp
{
namespace Parser
{
- public enum struct LanguageVersion
- {
- /// The C programming language.
- C = 0,
- /// The C programming language (GNU version).
- GNUC = 1,
- /// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 2,
- /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
- GNUPlusPlus98 = 3,
- /// The C++ programming language year 2011.
- CPlusPlus11 = 4,
- /// The C++ programming language year 2011 (GNU version).
- GNUPlusPlus11 = 5
- };
-
public enum struct ParserDiagnosticLevel
{
Ignored = 0,
@@ -198,12 +181,6 @@ namespace CppSharp
void set(bool);
}
- property CppSharp::Parser::LanguageVersion LanguageVersion
- {
- CppSharp::Parser::LanguageVersion get();
- void set(CppSharp::Parser::LanguageVersion);
- }
-
property CppSharp::Parser::ParserTargetInfo^ TargetInfo
{
CppSharp::Parser::ParserTargetInfo^ get();
diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
index 7b7f8adb..2ce43db4 100644
--- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
@@ -17749,22 +17749,6 @@ namespace CppSharp
{
namespace Parser
{
- public enum LanguageVersion
- {
- /// The C programming language.
- C = 0,
- /// The C programming language (GNU version).
- GNUC = 1,
- /// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 2,
- /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
- GNUPlusPlus98 = 3,
- /// The C++ programming language year 2011.
- CPlusPlus11 = 4,
- /// The C++ programming language year 2011 (GNU version).
- GNUPlusPlus11 = 5
- }
-
public enum ParserDiagnosticLevel
{
Ignored = 0,
@@ -17839,7 +17823,7 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
- [StructLayout(LayoutKind.Explicit, Size = 144)]
+ [StructLayout(LayoutKind.Explicit, Size = 140)]
public partial struct __Internal
{
[FieldOffset(0)]
@@ -17894,9 +17878,6 @@ namespace CppSharp
internal byte verbose;
[FieldOffset(136)]
- internal global::CppSharp.Parser.LanguageVersion languageVersion;
-
- [FieldOffset(140)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@@ -18393,19 +18374,6 @@ namespace CppSharp
}
}
- public global::CppSharp.Parser.LanguageVersion LanguageVersion
- {
- get
- {
- return ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion;
- }
-
- set
- {
- ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion = value;
- }
- }
-
public global::CppSharp.Parser.ParserTargetInfo TargetInfo
{
get
diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
index ca3b5d40..3169551e 100644
--- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
@@ -17749,22 +17749,6 @@ namespace CppSharp
{
namespace Parser
{
- public enum LanguageVersion
- {
- /// The C programming language.
- C = 0,
- /// The C programming language (GNU version).
- GNUC = 1,
- /// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 2,
- /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
- GNUPlusPlus98 = 3,
- /// The C++ programming language year 2011.
- CPlusPlus11 = 4,
- /// The C++ programming language year 2011 (GNU version).
- GNUPlusPlus11 = 5
- }
-
public enum ParserDiagnosticLevel
{
Ignored = 0,
@@ -17839,7 +17823,7 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
- [StructLayout(LayoutKind.Explicit, Size = 180)]
+ [StructLayout(LayoutKind.Explicit, Size = 176)]
public partial struct __Internal
{
[FieldOffset(0)]
@@ -17894,9 +17878,6 @@ namespace CppSharp
internal byte verbose;
[FieldOffset(172)]
- internal global::CppSharp.Parser.LanguageVersion languageVersion;
-
- [FieldOffset(176)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@@ -18393,19 +18374,6 @@ namespace CppSharp
}
}
- public global::CppSharp.Parser.LanguageVersion LanguageVersion
- {
- get
- {
- return ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion;
- }
-
- set
- {
- ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion = value;
- }
- }
-
public global::CppSharp.Parser.ParserTargetInfo TargetInfo
{
get
diff --git a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
index 1c7c51ba..921fd200 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
@@ -17748,22 +17748,6 @@ namespace CppSharp
{
namespace Parser
{
- public enum LanguageVersion
- {
- /// The C programming language.
- C = 0,
- /// The C programming language (GNU version).
- GNUC = 1,
- /// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 2,
- /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
- GNUPlusPlus98 = 3,
- /// The C++ programming language year 2011.
- CPlusPlus11 = 4,
- /// The C++ programming language year 2011 (GNU version).
- GNUPlusPlus11 = 5
- }
-
public enum ParserDiagnosticLevel
{
Ignored = 0,
@@ -17838,7 +17822,7 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
- [StructLayout(LayoutKind.Explicit, Size = 280)]
+ [StructLayout(LayoutKind.Explicit, Size = 272)]
public partial struct __Internal
{
[FieldOffset(0)]
@@ -17893,9 +17877,6 @@ namespace CppSharp
internal byte verbose;
[FieldOffset(264)]
- internal global::CppSharp.Parser.LanguageVersion languageVersion;
-
- [FieldOffset(272)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@@ -18392,19 +18373,6 @@ namespace CppSharp
}
}
- public global::CppSharp.Parser.LanguageVersion LanguageVersion
- {
- get
- {
- return ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion;
- }
-
- set
- {
- ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion = value;
- }
- }
-
public global::CppSharp.Parser.ParserTargetInfo TargetInfo
{
get
diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
index a693ff85..2e4cdccd 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
@@ -17748,22 +17748,6 @@ namespace CppSharp
{
namespace Parser
{
- public enum LanguageVersion
- {
- /// The C programming language.
- C = 0,
- /// The C programming language (GNU version).
- GNUC = 1,
- /// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 2,
- /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
- GNUPlusPlus98 = 3,
- /// The C++ programming language year 2011.
- CPlusPlus11 = 4,
- /// The C++ programming language year 2011 (GNU version).
- GNUPlusPlus11 = 5
- }
-
public enum ParserDiagnosticLevel
{
Ignored = 0,
@@ -17838,7 +17822,7 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
- [StructLayout(LayoutKind.Explicit, Size = 304)]
+ [StructLayout(LayoutKind.Explicit, Size = 296)]
public partial struct __Internal
{
[FieldOffset(0)]
@@ -17893,9 +17877,6 @@ namespace CppSharp
internal byte verbose;
[FieldOffset(288)]
- internal global::CppSharp.Parser.LanguageVersion languageVersion;
-
- [FieldOffset(296)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@@ -18392,19 +18373,6 @@ namespace CppSharp
}
}
- public global::CppSharp.Parser.LanguageVersion LanguageVersion
- {
- get
- {
- return ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion;
- }
-
- set
- {
- ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion = value;
- }
- }
-
public global::CppSharp.Parser.ParserTargetInfo TargetInfo
{
get
diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
index b2428315..a3b7b650 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
@@ -17748,22 +17748,6 @@ namespace CppSharp
{
namespace Parser
{
- public enum LanguageVersion
- {
- /// The C programming language.
- C = 0,
- /// The C programming language (GNU version).
- GNUC = 1,
- /// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 2,
- /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
- GNUPlusPlus98 = 3,
- /// The C++ programming language year 2011.
- CPlusPlus11 = 4,
- /// The C++ programming language year 2011 (GNU version).
- GNUPlusPlus11 = 5
- }
-
public enum ParserDiagnosticLevel
{
Ignored = 0,
@@ -17838,7 +17822,7 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
- [StructLayout(LayoutKind.Explicit, Size = 232)]
+ [StructLayout(LayoutKind.Explicit, Size = 224)]
public partial struct __Internal
{
[FieldOffset(0)]
@@ -17893,9 +17877,6 @@ namespace CppSharp
internal byte verbose;
[FieldOffset(216)]
- internal global::CppSharp.Parser.LanguageVersion languageVersion;
-
- [FieldOffset(224)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@@ -18392,19 +18373,6 @@ namespace CppSharp
}
}
- public global::CppSharp.Parser.LanguageVersion LanguageVersion
- {
- get
- {
- return ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion;
- }
-
- set
- {
- ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion = value;
- }
- }
-
public global::CppSharp.Parser.ParserTargetInfo TargetInfo
{
get
diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
index e89b934d..c2fc8d99 100644
--- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
+++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
@@ -17749,22 +17749,6 @@ namespace CppSharp
{
namespace Parser
{
- public enum LanguageVersion
- {
- /// The C programming language.
- C = 0,
- /// The C programming language (GNU version).
- GNUC = 1,
- /// The C++ programming language year 1998; supports deprecated constructs.
- CPlusPlus98 = 2,
- /// The C++ programming language year 1998; supports deprecated constructs (GNU version).
- GNUPlusPlus98 = 3,
- /// The C++ programming language year 2011.
- CPlusPlus11 = 4,
- /// The C++ programming language year 2011 (GNU version).
- GNUPlusPlus11 = 5
- }
-
public enum ParserDiagnosticLevel
{
Ignored = 0,
@@ -17839,7 +17823,7 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
- [StructLayout(LayoutKind.Explicit, Size = 304)]
+ [StructLayout(LayoutKind.Explicit, Size = 296)]
public partial struct __Internal
{
[FieldOffset(0)]
@@ -17894,9 +17878,6 @@ namespace CppSharp
internal byte verbose;
[FieldOffset(288)]
- internal global::CppSharp.Parser.LanguageVersion languageVersion;
-
- [FieldOffset(296)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@@ -18393,19 +18374,6 @@ namespace CppSharp
}
}
- public global::CppSharp.Parser.LanguageVersion LanguageVersion
- {
- get
- {
- return ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion;
- }
-
- set
- {
- ((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->languageVersion = value;
- }
- }
-
public global::CppSharp.Parser.ParserTargetInfo TargetInfo
{
get
diff --git a/src/CppParser/CppParser.cpp b/src/CppParser/CppParser.cpp
index a8ca0529..1307c500 100644
--- a/src/CppParser/CppParser.cpp
+++ b/src/CppParser/CppParser.cpp
@@ -18,7 +18,6 @@ CppParserOptions::CppParserOptions()
, noBuiltinIncludes(false)
, microsoftMode(false)
, verbose(false)
- , languageVersion(CppParser::LanguageVersion::GNUPlusPlus11)
, targetInfo(0)
{
}
diff --git a/src/CppParser/CppParser.h b/src/CppParser/CppParser.h
index 014fddc2..8c99234e 100644
--- a/src/CppParser/CppParser.h
+++ b/src/CppParser/CppParser.h
@@ -15,34 +15,6 @@ namespace CppSharp { namespace CppParser {
using namespace CppSharp::CppParser::AST;
-enum class LanguageVersion
-{
- /**
- * The C programming language.
- */
- C,
- /**
- * The C programming language (GNU version).
- */
- GNUC,
- /**
- * The C++ programming language year 1998; supports deprecated constructs.
- */
- CPlusPlus98,
- /**
- * The C++ programming language year 1998; supports deprecated constructs (GNU version).
- */
- GNUPlusPlus98,
- /**
- * The C++ programming language year 2011.
- */
- CPlusPlus11,
- /**
- * The C++ programming language year 2011 (GNU version).
- */
- GNUPlusPlus11
-};
-
struct CS_API CppParserOptions
{
CppParserOptions();
@@ -71,7 +43,6 @@ struct CS_API CppParserOptions
bool noBuiltinIncludes;
bool microsoftMode;
bool verbose;
- LanguageVersion languageVersion;
ParserTargetInfo* targetInfo;
};
diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp
index d8094d92..5f26facf 100644
--- a/src/CppParser/Parser.cpp
+++ b/src/CppParser/Parser.cpp
@@ -237,39 +237,6 @@ void Parser::SetupHeader()
std::vector args;
args.push_back("-cc1");
- switch (opts->languageVersion)
- {
- case CppParser::LanguageVersion::C:
- case CppParser::LanguageVersion::GNUC:
- args.push_back("-xc");
- break;
- default:
- args.push_back("-xc++");
- break;
- }
-
- switch (opts->languageVersion)
- {
- case CppParser::LanguageVersion::C:
- args.push_back("-std=c99");
- break;
- case CppParser::LanguageVersion::GNUC:
- args.push_back("-std=gnu99");
- break;
- case CppParser::LanguageVersion::CPlusPlus98:
- args.push_back("-std=c++98");
- break;
- case CppParser::LanguageVersion::GNUPlusPlus98:
- args.push_back("-std=gnu++98");
- break;
- case CppParser::LanguageVersion::CPlusPlus11:
- args.push_back(opts->microsoftMode ? "-std=c++14" : "-std=c++11");
- break;
- default:
- args.push_back(opts->microsoftMode ? "-std=gnu++14" : "-std=gnu++11");
- break;
- }
-
for (unsigned I = 0, E = opts->Arguments.size(); I != E; ++I)
{
const auto& Arg = opts->Arguments[I];
diff --git a/src/Parser/ParserOptions.cs b/src/Parser/ParserOptions.cs
index 04a9fa63..4ac7862d 100644
--- a/src/Parser/ParserOptions.cs
+++ b/src/Parser/ParserOptions.cs
@@ -15,6 +15,7 @@ namespace CppSharp.Parser
public bool IsItaniumLikeAbi { get { return Abi != CppAbi.Microsoft; } }
public bool IsMicrosoftAbi { get { return Abi == CppAbi.Microsoft; } }
public bool EnableRtti { get; set; }
+ public LanguageVersion LanguageVersion { get; set; } = LanguageVersion.GNUPlusPlus11;
/// Sets up the parser options to work with the given Visual Studio toolchain.
public void SetupMSVC()
@@ -81,6 +82,39 @@ namespace CppSharp.Parser
private void SetupArguments()
{
+ switch (LanguageVersion)
+ {
+ case LanguageVersion.C:
+ case LanguageVersion.GNUC:
+ AddArguments("-xc");
+ break;
+ default:
+ AddArguments("-xc++");
+ break;
+ }
+
+ switch (LanguageVersion)
+ {
+ case LanguageVersion.C:
+ AddArguments("-std=c99");
+ break;
+ case LanguageVersion.GNUC:
+ AddArguments("-std=gnu99");
+ break;
+ case LanguageVersion.CPlusPlus98:
+ AddArguments("-std=c++98");
+ break;
+ case LanguageVersion.GNUPlusPlus98:
+ AddArguments("-std=gnu++98");
+ break;
+ case LanguageVersion.CPlusPlus11:
+ AddArguments(MicrosoftMode ? "-std=c++14" : "-std=c++11");
+ break;
+ default:
+ AddArguments(MicrosoftMode ? "-std=gnu++14" : "-std=gnu++11");
+ break;
+ }
+
if (!EnableRtti)
AddArguments("-fno-rtti");
}
@@ -93,4 +127,32 @@ namespace CppSharp.Parser
SetupMSVC();
}
}
+
+ public enum LanguageVersion
+ {
+ /**
+ * The C programming language.
+ */
+ C,
+ /**
+ * The C programming language (GNU version).
+ */
+ GNUC,
+ /**
+ * The C++ programming language year 1998; supports deprecated constructs.
+ */
+ CPlusPlus98,
+ /**
+ * The C++ programming language year 1998; supports deprecated constructs (GNU version).
+ */
+ GNUPlusPlus98,
+ /**
+ * The C++ programming language year 2011.
+ */
+ CPlusPlus11,
+ /**
+ * The C++ programming language year 2011 (GNU version).
+ */
+ GNUPlusPlus11
+ };
}