Browse Source

Added explicit GNU versions to the language options of the parser.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/696/head
Dimitar Dobrev 9 years ago
parent
commit
0a5c73dc48
  1. 10
      src/CppParser/Bindings/CLI/CppParser.h
  2. 10
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  3. 10
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  4. 10
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  5. 10
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  6. 8
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
  7. 10
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  8. 10
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  9. 2
      src/CppParser/CppParser.cpp
  10. 14
      src/CppParser/CppParser.h
  11. 13
      src/CppParser/Parser.cpp

10
src/CppParser/Bindings/CLI/CppParser.h

@ -34,10 +34,16 @@ namespace CppSharp
{ {
/// <summary> The C programming language. </summary> /// <summary> The C programming language. </summary>
C = 0, C = 0,
/// <summary> The C programming language (GNU version). </summary>
GNUC = 1,
/// <summary> The C++ programming language year 1998; supports deprecated constructs. </summary> /// <summary> The C++ programming language year 1998; supports deprecated constructs. </summary>
CPlusPlus98 = 1, CPlusPlus98 = 2,
/// <summary> The C++ programming language year 1998; supports deprecated constructs (GNU version). </summary>
GNUPlusPlus98 = 3,
/// <summary> The C++ programming language year 2011. </summary> /// <summary> The C++ programming language year 2011. </summary>
CPlusPlus11 = 2 CPlusPlus11 = 4,
/// <summary> The C++ programming language year 2011 (GNU version). </summary>
GNUPlusPlus11 = 5
}; };
public enum struct ParserDiagnosticLevel public enum struct ParserDiagnosticLevel

10
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -16814,10 +16814,16 @@ namespace CppSharp
{ {
/// <summary>The C programming language.</summary> /// <summary>The C programming language.</summary>
C = 0, C = 0,
/// <summary>The C programming language (GNU version).</summary>
GNUC = 1,
/// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary> /// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary>
CPlusPlus98 = 1, CPlusPlus98 = 2,
/// <summary>The C++ programming language year 1998; supports deprecated constructs (GNU version).</summary>
GNUPlusPlus98 = 3,
/// <summary>The C++ programming language year 2011.</summary> /// <summary>The C++ programming language year 2011.</summary>
CPlusPlus11 = 2 CPlusPlus11 = 4,
/// <summary>The C++ programming language year 2011 (GNU version).</summary>
GNUPlusPlus11 = 5
} }
public enum ParserDiagnosticLevel public enum ParserDiagnosticLevel

10
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs

@ -16814,10 +16814,16 @@ namespace CppSharp
{ {
/// <summary>The C programming language.</summary> /// <summary>The C programming language.</summary>
C = 0, C = 0,
/// <summary>The C programming language (GNU version).</summary>
GNUC = 1,
/// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary> /// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary>
CPlusPlus98 = 1, CPlusPlus98 = 2,
/// <summary>The C++ programming language year 1998; supports deprecated constructs (GNU version).</summary>
GNUPlusPlus98 = 3,
/// <summary>The C++ programming language year 2011.</summary> /// <summary>The C++ programming language year 2011.</summary>
CPlusPlus11 = 2 CPlusPlus11 = 4,
/// <summary>The C++ programming language year 2011 (GNU version).</summary>
GNUPlusPlus11 = 5
} }
public enum ParserDiagnosticLevel public enum ParserDiagnosticLevel

10
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -16813,10 +16813,16 @@ namespace CppSharp
{ {
/// <summary>The C programming language.</summary> /// <summary>The C programming language.</summary>
C = 0, C = 0,
/// <summary>The C programming language (GNU version).</summary>
GNUC = 1,
/// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary> /// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary>
CPlusPlus98 = 1, CPlusPlus98 = 2,
/// <summary>The C++ programming language year 1998; supports deprecated constructs (GNU version).</summary>
GNUPlusPlus98 = 3,
/// <summary>The C++ programming language year 2011.</summary> /// <summary>The C++ programming language year 2011.</summary>
CPlusPlus11 = 2 CPlusPlus11 = 4,
/// <summary>The C++ programming language year 2011 (GNU version).</summary>
GNUPlusPlus11 = 5
} }
public enum ParserDiagnosticLevel public enum ParserDiagnosticLevel

10
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs

@ -16813,10 +16813,16 @@ namespace CppSharp
{ {
/// <summary>The C programming language.</summary> /// <summary>The C programming language.</summary>
C = 0, C = 0,
/// <summary>The C programming language (GNU version).</summary>
GNUC = 1,
/// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary> /// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary>
CPlusPlus98 = 1, CPlusPlus98 = 2,
/// <summary>The C++ programming language year 1998; supports deprecated constructs (GNU version).</summary>
GNUPlusPlus98 = 3,
/// <summary>The C++ programming language year 2011.</summary> /// <summary>The C++ programming language year 2011.</summary>
CPlusPlus11 = 2 CPlusPlus11 = 4,
/// <summary>The C++ programming language year 2011 (GNU version).</summary>
GNUPlusPlus11 = 5
} }
public enum ParserDiagnosticLevel public enum ParserDiagnosticLevel

8
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs

@ -1096,6 +1096,10 @@ namespace std
namespace __cxx11 namespace __cxx11
{ {
} }
namespace __cxx11
{
}
} }
public unsafe partial class __mbstate_t public unsafe partial class __mbstate_t
@ -3478,6 +3482,10 @@ namespace std
namespace __cxx11 namespace __cxx11
{ {
} }
namespace __cxx11
{
}
} }
namespace std namespace std

10
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs

@ -16813,10 +16813,16 @@ namespace CppSharp
{ {
/// <summary>The C programming language.</summary> /// <summary>The C programming language.</summary>
C = 0, C = 0,
/// <summary>The C programming language (GNU version).</summary>
GNUC = 1,
/// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary> /// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary>
CPlusPlus98 = 1, CPlusPlus98 = 2,
/// <summary>The C++ programming language year 1998; supports deprecated constructs (GNU version).</summary>
GNUPlusPlus98 = 3,
/// <summary>The C++ programming language year 2011.</summary> /// <summary>The C++ programming language year 2011.</summary>
CPlusPlus11 = 2 CPlusPlus11 = 4,
/// <summary>The C++ programming language year 2011 (GNU version).</summary>
GNUPlusPlus11 = 5
} }
public enum ParserDiagnosticLevel public enum ParserDiagnosticLevel

10
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs

@ -16814,10 +16814,16 @@ namespace CppSharp
{ {
/// <summary>The C programming language.</summary> /// <summary>The C programming language.</summary>
C = 0, C = 0,
/// <summary>The C programming language (GNU version).</summary>
GNUC = 1,
/// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary> /// <summary>The C++ programming language year 1998; supports deprecated constructs.</summary>
CPlusPlus98 = 1, CPlusPlus98 = 2,
/// <summary>The C++ programming language year 1998; supports deprecated constructs (GNU version).</summary>
GNUPlusPlus98 = 3,
/// <summary>The C++ programming language year 2011.</summary> /// <summary>The C++ programming language year 2011.</summary>
CPlusPlus11 = 2 CPlusPlus11 = 4,
/// <summary>The C++ programming language year 2011 (GNU version).</summary>
GNUPlusPlus11 = 5
} }
public enum ParserDiagnosticLevel public enum ParserDiagnosticLevel

2
src/CppParser/CppParser.cpp

@ -18,7 +18,7 @@ CppParserOptions::CppParserOptions()
, NoBuiltinIncludes(false) , NoBuiltinIncludes(false)
, MicrosoftMode(false) , MicrosoftMode(false)
, Verbose(false) , Verbose(false)
, LanguageVersion(CppParser::LanguageVersion::CPlusPlus11) , LanguageVersion(CppParser::LanguageVersion::GNUPlusPlus11)
, TargetInfo(0) , TargetInfo(0)
{ {
} }

14
src/CppParser/CppParser.h

@ -22,13 +22,25 @@ enum class LanguageVersion
*/ */
C, C,
/** /**
* The C programming language (GNU version).
*/
GNUC,
/**
* The C++ programming language year 1998; supports deprecated constructs. * The C++ programming language year 1998; supports deprecated constructs.
*/ */
CPlusPlus98, CPlusPlus98,
/** /**
* The C++ programming language year 1998; supports deprecated constructs (GNU version).
*/
GNUPlusPlus98,
/**
* The C++ programming language year 2011. * The C++ programming language year 2011.
*/ */
CPlusPlus11 CPlusPlus11,
/**
* The C++ programming language year 2011 (GNU version).
*/
GNUPlusPlus11
}; };
struct CS_API CppParserOptions struct CS_API CppParserOptions

13
src/CppParser/Parser.cpp

@ -250,10 +250,10 @@ void Parser::SetupHeader()
switch (Opts->LanguageVersion) switch (Opts->LanguageVersion)
{ {
case CppParser::LanguageVersion::C: case CppParser::LanguageVersion::C:
case CppParser::LanguageVersion::GNUC:
args.push_back("-xc"); args.push_back("-xc");
break; break;
case CppParser::LanguageVersion::CPlusPlus98: default:
case CppParser::LanguageVersion::CPlusPlus11:
args.push_back("-xc++"); args.push_back("-xc++");
break; break;
} }
@ -261,11 +261,20 @@ void Parser::SetupHeader()
switch (Opts->LanguageVersion) switch (Opts->LanguageVersion)
{ {
case CppParser::LanguageVersion::C: case CppParser::LanguageVersion::C:
args.push_back("-std=c99");
break;
case CppParser::LanguageVersion::GNUC:
args.push_back("-std=gnu99"); args.push_back("-std=gnu99");
break; break;
case CppParser::LanguageVersion::CPlusPlus98: case CppParser::LanguageVersion::CPlusPlus98:
args.push_back("-std=c++98");
break;
case CppParser::LanguageVersion::GNUPlusPlus98:
args.push_back("-std=gnu++98"); args.push_back("-std=gnu++98");
break; break;
case CppParser::LanguageVersion::CPlusPlus11:
args.push_back(Opts->MicrosoftMode ? "-std=c++14" : "-std=c++11");
break;
default: default:
args.push_back(Opts->MicrosoftMode ? "-std=gnu++14" : "-std=gnu++11"); args.push_back(Opts->MicrosoftMode ? "-std=gnu++14" : "-std=gnu++11");
break; break;

Loading…
Cancel
Save