Browse Source

Exposed the type of expressions

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1186/head
Dimitar Dobrev 6 years ago
parent
commit
407295019d
  1. 262
      src/AST/Stmt.cs
  2. 88
      src/CppParser/Bindings/CLI/Expr.cpp
  3. 45
      src/CppParser/Bindings/CLI/Expr.h
  4. 44
      src/CppParser/Bindings/CLI/Stmt.cpp
  5. 285
      src/CppParser/Bindings/CLI/Stmt.h
  6. 6041
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  7. 6029
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  8. 6039
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  9. 6037
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  10. 6039
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  11. 6041
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  12. 30
      src/CppParser/Bootstrap/Bootstrap.cs
  13. 95
      src/CppParser/ParseExpr.cpp
  14. 30
      src/CppParser/ParseStmt.cpp
  15. 2
      src/CppParser/Stmt.cpp
  16. 263
      src/CppParser/Stmt.h
  17. 384
      src/Parser/ASTConverter.Expr.cs
  18. 314
      src/Parser/ASTConverter.Stmt.cs

262
src/AST/Stmt.cs

@ -10,143 +10,145 @@ using System.Collections.Generic;
namespace CppSharp.AST namespace CppSharp.AST
{ {
public enum StmtClass
{
NoStmt = 0,
GCCAsmStmt = 1,
MSAsmStmt = 2,
AttributedStmt = 3,
BreakStmt = 4,
CXXCatchStmt = 5,
CXXForRangeStmt = 6,
CXXTryStmt = 7,
CapturedStmt = 8,
CompoundStmt = 9,
ContinueStmt = 10,
CoreturnStmt = 11,
CoroutineBodyStmt = 12,
DeclStmt = 13,
DoStmt = 14,
BinaryConditionalOperator = 15,
ConditionalOperator = 16,
AddrLabelExpr = 17,
ArrayInitIndexExpr = 18,
ArrayInitLoopExpr = 19,
ArraySubscriptExpr = 20,
ArrayTypeTraitExpr = 21,
AsTypeExpr = 22,
AtomicExpr = 23,
BinaryOperator = 24,
CompoundAssignOperator = 25,
BlockExpr = 26,
CXXBindTemporaryExpr = 27,
CXXBoolLiteralExpr = 28,
CXXConstructExpr = 29,
CXXTemporaryObjectExpr = 30,
CXXDefaultArgExpr = 31,
CXXDefaultInitExpr = 32,
CXXDeleteExpr = 33,
CXXDependentScopeMemberExpr = 34,
CXXFoldExpr = 35,
CXXInheritedCtorInitExpr = 36,
CXXNewExpr = 37,
CXXNoexceptExpr = 38,
CXXNullPtrLiteralExpr = 39,
CXXPseudoDestructorExpr = 40,
CXXScalarValueInitExpr = 41,
CXXStdInitializerListExpr = 42,
CXXThisExpr = 43,
CXXThrowExpr = 44,
CXXTypeidExpr = 45,
CXXUnresolvedConstructExpr = 46,
CXXUuidofExpr = 47,
CallExpr = 48,
CUDAKernelCallExpr = 49,
CXXMemberCallExpr = 50,
CXXOperatorCallExpr = 51,
UserDefinedLiteral = 52,
CStyleCastExpr = 53,
CXXFunctionalCastExpr = 54,
CXXConstCastExpr = 55,
CXXDynamicCastExpr = 56,
CXXReinterpretCastExpr = 57,
CXXStaticCastExpr = 58,
ImplicitCastExpr = 60,
CharacterLiteral = 61,
ChooseExpr = 62,
CompoundLiteralExpr = 63,
ConvertVectorExpr = 64,
CoawaitExpr = 65,
CoyieldExpr = 66,
DeclRefExpr = 67,
DependentCoawaitExpr = 68,
DependentScopeDeclRefExpr = 69,
DesignatedInitExpr = 70,
DesignatedInitUpdateExpr = 71,
ExpressionTraitExpr = 72,
ExtVectorElementExpr = 73,
FixedPointLiteral = 74,
FloatingLiteral = 75,
ConstantExpr = 76,
ExprWithCleanups = 77,
FunctionParmPackExpr = 78,
GNUNullExpr = 79,
GenericSelectionExpr = 80,
ImaginaryLiteral = 81,
ImplicitValueInitExpr = 82,
InitListExpr = 83,
IntegerLiteral = 84,
LambdaExpr = 85,
MSPropertyRefExpr = 86,
MSPropertySubscriptExpr = 87,
MaterializeTemporaryExpr = 88,
MemberExpr = 89,
NoInitExpr = 90,
OffsetOfExpr = 107,
OpaqueValueExpr = 108,
UnresolvedLookupExpr = 109,
UnresolvedMemberExpr = 110,
PackExpansionExpr = 111,
ParenExpr = 112,
ParenListExpr = 113,
PredefinedExpr = 114,
PseudoObjectExpr = 115,
ShuffleVectorExpr = 116,
SizeOfPackExpr = 117,
StmtExpr = 118,
StringLiteral = 119,
SubstNonTypeTemplateParmExpr = 120,
SubstNonTypeTemplateParmPackExpr = 121,
TypeTraitExpr = 122,
TypoExpr = 123,
UnaryExprOrTypeTraitExpr = 124,
UnaryOperator = 125,
VAArgExpr = 126,
ForStmt = 127,
GotoStmt = 128,
IfStmt = 129,
IndirectGotoStmt = 130,
LabelStmt = 131,
MSDependentExistsStmt = 132,
NullStmt = 133,
ReturnStmt = 188,
SEHExceptStmt = 189,
SEHFinallyStmt = 190,
SEHLeaveStmt = 191,
SEHTryStmt = 192,
CaseStmt = 193,
DefaultStmt = 194,
SwitchStmt = 195,
WhileStmt = 196,
}
public partial class Stmt public partial class Stmt
{ {
public enum StmtClass
{
NoStmt = 0,
GCCAsmStmt = 1,
MSAsmStmt = 2,
AttributedStmt = 3,
BreakStmt = 4,
CXXCatchStmt = 5,
CXXForRangeStmt = 6,
CXXTryStmt = 7,
CapturedStmt = 8,
CompoundStmt = 9,
ContinueStmt = 10,
CoreturnStmt = 11,
CoroutineBodyStmt = 12,
DeclStmt = 13,
DoStmt = 14,
BinaryConditionalOperator = 15,
ConditionalOperator = 16,
AddrLabelExpr = 17,
ArrayInitIndexExpr = 18,
ArrayInitLoopExpr = 19,
ArraySubscriptExpr = 20,
ArrayTypeTraitExpr = 21,
AsTypeExpr = 22,
AtomicExpr = 23,
BinaryOperator = 24,
CompoundAssignOperator = 25,
BlockExpr = 26,
CXXBindTemporaryExpr = 27,
CXXBoolLiteralExpr = 28,
CXXConstructExpr = 29,
CXXTemporaryObjectExpr = 30,
CXXDefaultArgExpr = 31,
CXXDefaultInitExpr = 32,
CXXDeleteExpr = 33,
CXXDependentScopeMemberExpr = 34,
CXXFoldExpr = 35,
CXXInheritedCtorInitExpr = 36,
CXXNewExpr = 37,
CXXNoexceptExpr = 38,
CXXNullPtrLiteralExpr = 39,
CXXPseudoDestructorExpr = 40,
CXXScalarValueInitExpr = 41,
CXXStdInitializerListExpr = 42,
CXXThisExpr = 43,
CXXThrowExpr = 44,
CXXTypeidExpr = 45,
CXXUnresolvedConstructExpr = 46,
CXXUuidofExpr = 47,
CallExpr = 48,
CUDAKernelCallExpr = 49,
CXXMemberCallExpr = 50,
CXXOperatorCallExpr = 51,
UserDefinedLiteral = 52,
CStyleCastExpr = 53,
CXXFunctionalCastExpr = 54,
CXXConstCastExpr = 55,
CXXDynamicCastExpr = 56,
CXXReinterpretCastExpr = 57,
CXXStaticCastExpr = 58,
ImplicitCastExpr = 60,
CharacterLiteral = 61,
ChooseExpr = 62,
CompoundLiteralExpr = 63,
ConvertVectorExpr = 64,
CoawaitExpr = 65,
CoyieldExpr = 66,
DeclRefExpr = 67,
DependentCoawaitExpr = 68,
DependentScopeDeclRefExpr = 69,
DesignatedInitExpr = 70,
DesignatedInitUpdateExpr = 71,
ExpressionTraitExpr = 72,
ExtVectorElementExpr = 73,
FixedPointLiteral = 74,
FloatingLiteral = 75,
ConstantExpr = 76,
ExprWithCleanups = 77,
FunctionParmPackExpr = 78,
GNUNullExpr = 79,
GenericSelectionExpr = 80,
ImaginaryLiteral = 81,
ImplicitValueInitExpr = 82,
InitListExpr = 83,
IntegerLiteral = 84,
LambdaExpr = 85,
MSPropertyRefExpr = 86,
MSPropertySubscriptExpr = 87,
MaterializeTemporaryExpr = 88,
MemberExpr = 89,
NoInitExpr = 90,
OffsetOfExpr = 107,
OpaqueValueExpr = 108,
UnresolvedLookupExpr = 109,
UnresolvedMemberExpr = 110,
PackExpansionExpr = 111,
ParenExpr = 112,
ParenListExpr = 113,
PredefinedExpr = 114,
PseudoObjectExpr = 115,
ShuffleVectorExpr = 116,
SizeOfPackExpr = 117,
StmtExpr = 118,
StringLiteral = 119,
SubstNonTypeTemplateParmExpr = 120,
SubstNonTypeTemplateParmPackExpr = 121,
TypeTraitExpr = 122,
TypoExpr = 123,
UnaryExprOrTypeTraitExpr = 124,
UnaryOperator = 125,
VAArgExpr = 126,
ForStmt = 127,
GotoStmt = 128,
IfStmt = 129,
IndirectGotoStmt = 130,
LabelStmt = 131,
MSDependentExistsStmt = 132,
NullStmt = 133,
ReturnStmt = 188,
SEHExceptStmt = 189,
SEHFinallyStmt = 190,
SEHLeaveStmt = 191,
SEHTryStmt = 192,
CaseStmt = 193,
DefaultStmt = 194,
SwitchStmt = 195,
WhileStmt = 196,
}
public Stmt() public Stmt()
{ {
} }
public Stmt.StmtClass stmtClass { get; set; }
public SourceRange SourceRange { get; set; } public SourceRange SourceRange { get; set; }
public SourceLocation BeginLoc { get; set; }
public SourceLocation EndLoc { get; set; } public SourceLocation EndLoc { get; set; }
public Stmt StripLabelLikeStatements { get; set; } public Stmt StripLabelLikeStatements { get; set; }
} }

88
src/CppParser/Bindings/CLI/Expr.cpp

@ -155,11 +155,11 @@ CppSharp::Parser::AST::Expr::Expr()
NativePtr = new ::CppSharp::CppParser::AST::Expr(); NativePtr = new ::CppSharp::CppParser::AST::Expr();
} }
CppSharp::Parser::AST::Expr::Expr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::Expr::Expr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Stmt((::CppSharp::CppParser::AST::Stmt*)nullptr) : CppSharp::Parser::AST::Stmt((::CppSharp::CppParser::AST::Stmt*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::Expr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::Expr(__arg0);
} }
@ -173,9 +173,9 @@ CppSharp::Parser::AST::Expr::Expr(CppSharp::Parser::AST::Expr^ _0)
NativePtr = new ::CppSharp::CppParser::AST::Expr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::Expr(__arg0);
} }
CppSharp::Parser::AST::Expr::operator CppSharp::Parser::AST::Expr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::Expr::operator CppSharp::Parser::AST::Expr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::Expr) __arg0; auto __ret = (::CppSharp::CppParser::AST::Expr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::Expr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::Expr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)____ret);
@ -344,11 +344,11 @@ CppSharp::Parser::AST::FullExpr::FullExpr()
NativePtr = new ::CppSharp::CppParser::AST::FullExpr(); NativePtr = new ::CppSharp::CppParser::AST::FullExpr();
} }
CppSharp::Parser::AST::FullExpr::FullExpr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::FullExpr::FullExpr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr) : CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::FullExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::FullExpr(__arg0);
} }
@ -362,9 +362,9 @@ CppSharp::Parser::AST::FullExpr::FullExpr(CppSharp::Parser::AST::FullExpr^ _0)
NativePtr = new ::CppSharp::CppParser::AST::FullExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::FullExpr(__arg0);
} }
CppSharp::Parser::AST::FullExpr::operator CppSharp::Parser::AST::FullExpr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::FullExpr::operator CppSharp::Parser::AST::FullExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::FullExpr) __arg0; auto __ret = (::CppSharp::CppParser::AST::FullExpr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::FullExpr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::FullExpr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::FullExpr((::CppSharp::CppParser::AST::FullExpr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::FullExpr((::CppSharp::CppParser::AST::FullExpr*)____ret);
@ -1634,11 +1634,11 @@ CppSharp::Parser::AST::CallExpr::CallExpr()
NativePtr = new ::CppSharp::CppParser::AST::CallExpr(); NativePtr = new ::CppSharp::CppParser::AST::CallExpr();
} }
CppSharp::Parser::AST::CallExpr::CallExpr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CallExpr::CallExpr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr) : CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::CallExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CallExpr(__arg0);
} }
@ -1672,9 +1672,9 @@ CppSharp::Parser::AST::CallExpr::CallExpr(CppSharp::Parser::AST::CallExpr^ _0)
NativePtr = new ::CppSharp::CppParser::AST::CallExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CallExpr(__arg0);
} }
CppSharp::Parser::AST::CallExpr::operator CppSharp::Parser::AST::CallExpr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CallExpr::operator CppSharp::Parser::AST::CallExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::CallExpr) __arg0; auto __ret = (::CppSharp::CppParser::AST::CallExpr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::CallExpr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::CallExpr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CallExpr((::CppSharp::CppParser::AST::CallExpr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CallExpr((::CppSharp::CppParser::AST::CallExpr*)____ret);
@ -2045,11 +2045,11 @@ CppSharp::Parser::AST::CastExpr::CastExpr()
NativePtr = new ::CppSharp::CppParser::AST::CastExpr(); NativePtr = new ::CppSharp::CppParser::AST::CastExpr();
} }
CppSharp::Parser::AST::CastExpr::CastExpr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CastExpr::CastExpr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr) : CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::CastExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CastExpr(__arg0);
} }
@ -2063,9 +2063,9 @@ CppSharp::Parser::AST::CastExpr::CastExpr(CppSharp::Parser::AST::CastExpr^ _0)
NativePtr = new ::CppSharp::CppParser::AST::CastExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CastExpr(__arg0);
} }
CppSharp::Parser::AST::CastExpr::operator CppSharp::Parser::AST::CastExpr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CastExpr::operator CppSharp::Parser::AST::CastExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::CastExpr) __arg0; auto __ret = (::CppSharp::CppParser::AST::CastExpr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::CastExpr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::CastExpr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CastExpr((::CppSharp::CppParser::AST::CastExpr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CastExpr((::CppSharp::CppParser::AST::CastExpr*)____ret);
@ -2204,11 +2204,11 @@ CppSharp::Parser::AST::ExplicitCastExpr::ExplicitCastExpr()
NativePtr = new ::CppSharp::CppParser::AST::ExplicitCastExpr(); NativePtr = new ::CppSharp::CppParser::AST::ExplicitCastExpr();
} }
CppSharp::Parser::AST::ExplicitCastExpr::ExplicitCastExpr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::ExplicitCastExpr::ExplicitCastExpr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::CastExpr((::CppSharp::CppParser::AST::CastExpr*)nullptr) : CppSharp::Parser::AST::CastExpr((::CppSharp::CppParser::AST::CastExpr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::ExplicitCastExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::ExplicitCastExpr(__arg0);
} }
@ -2222,9 +2222,9 @@ CppSharp::Parser::AST::ExplicitCastExpr::ExplicitCastExpr(CppSharp::Parser::AST:
NativePtr = new ::CppSharp::CppParser::AST::ExplicitCastExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::ExplicitCastExpr(__arg0);
} }
CppSharp::Parser::AST::ExplicitCastExpr::operator CppSharp::Parser::AST::ExplicitCastExpr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::ExplicitCastExpr::operator CppSharp::Parser::AST::ExplicitCastExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::ExplicitCastExpr) __arg0; auto __ret = (::CppSharp::CppParser::AST::ExplicitCastExpr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::ExplicitCastExpr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::ExplicitCastExpr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ExplicitCastExpr((::CppSharp::CppParser::AST::ExplicitCastExpr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::ExplicitCastExpr((::CppSharp::CppParser::AST::ExplicitCastExpr*)____ret);
@ -2322,11 +2322,11 @@ CppSharp::Parser::AST::BinaryOperator::BinaryOperator()
NativePtr = new ::CppSharp::CppParser::AST::BinaryOperator(); NativePtr = new ::CppSharp::CppParser::AST::BinaryOperator();
} }
CppSharp::Parser::AST::BinaryOperator::BinaryOperator(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::BinaryOperator::BinaryOperator(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr) : CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::BinaryOperator(__arg0); NativePtr = new ::CppSharp::CppParser::AST::BinaryOperator(__arg0);
} }
@ -2340,9 +2340,9 @@ CppSharp::Parser::AST::BinaryOperator::BinaryOperator(CppSharp::Parser::AST::Bin
NativePtr = new ::CppSharp::CppParser::AST::BinaryOperator(__arg0); NativePtr = new ::CppSharp::CppParser::AST::BinaryOperator(__arg0);
} }
CppSharp::Parser::AST::BinaryOperator::operator CppSharp::Parser::AST::BinaryOperator^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::BinaryOperator::operator CppSharp::Parser::AST::BinaryOperator^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::BinaryOperator) __arg0; auto __ret = (::CppSharp::CppParser::AST::BinaryOperator) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::BinaryOperator(__ret); auto ____ret = new ::CppSharp::CppParser::AST::BinaryOperator(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::BinaryOperator((::CppSharp::CppParser::AST::BinaryOperator*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::BinaryOperator((::CppSharp::CppParser::AST::BinaryOperator*)____ret);
@ -2618,11 +2618,11 @@ CppSharp::Parser::AST::AbstractConditionalOperator::AbstractConditionalOperator(
NativePtr = new ::CppSharp::CppParser::AST::AbstractConditionalOperator(); NativePtr = new ::CppSharp::CppParser::AST::AbstractConditionalOperator();
} }
CppSharp::Parser::AST::AbstractConditionalOperator::AbstractConditionalOperator(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::AbstractConditionalOperator::AbstractConditionalOperator(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr) : CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::AbstractConditionalOperator(__arg0); NativePtr = new ::CppSharp::CppParser::AST::AbstractConditionalOperator(__arg0);
} }
@ -2636,9 +2636,9 @@ CppSharp::Parser::AST::AbstractConditionalOperator::AbstractConditionalOperator(
NativePtr = new ::CppSharp::CppParser::AST::AbstractConditionalOperator(__arg0); NativePtr = new ::CppSharp::CppParser::AST::AbstractConditionalOperator(__arg0);
} }
CppSharp::Parser::AST::AbstractConditionalOperator::operator CppSharp::Parser::AST::AbstractConditionalOperator^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::AbstractConditionalOperator::operator CppSharp::Parser::AST::AbstractConditionalOperator^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::AbstractConditionalOperator) __arg0; auto __ret = (::CppSharp::CppParser::AST::AbstractConditionalOperator) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::AbstractConditionalOperator(__ret); auto ____ret = new ::CppSharp::CppParser::AST::AbstractConditionalOperator(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::AbstractConditionalOperator((::CppSharp::CppParser::AST::AbstractConditionalOperator*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::AbstractConditionalOperator((::CppSharp::CppParser::AST::AbstractConditionalOperator*)____ret);
@ -4851,11 +4851,11 @@ CppSharp::Parser::AST::CXXNamedCastExpr::CXXNamedCastExpr()
NativePtr = new ::CppSharp::CppParser::AST::CXXNamedCastExpr(); NativePtr = new ::CppSharp::CppParser::AST::CXXNamedCastExpr();
} }
CppSharp::Parser::AST::CXXNamedCastExpr::CXXNamedCastExpr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CXXNamedCastExpr::CXXNamedCastExpr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::ExplicitCastExpr((::CppSharp::CppParser::AST::ExplicitCastExpr*)nullptr) : CppSharp::Parser::AST::ExplicitCastExpr((::CppSharp::CppParser::AST::ExplicitCastExpr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::CXXNamedCastExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CXXNamedCastExpr(__arg0);
} }
@ -4869,9 +4869,9 @@ CppSharp::Parser::AST::CXXNamedCastExpr::CXXNamedCastExpr(CppSharp::Parser::AST:
NativePtr = new ::CppSharp::CppParser::AST::CXXNamedCastExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CXXNamedCastExpr(__arg0);
} }
CppSharp::Parser::AST::CXXNamedCastExpr::operator CppSharp::Parser::AST::CXXNamedCastExpr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CXXNamedCastExpr::operator CppSharp::Parser::AST::CXXNamedCastExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::CXXNamedCastExpr) __arg0; auto __ret = (::CppSharp::CppParser::AST::CXXNamedCastExpr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::CXXNamedCastExpr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::CXXNamedCastExpr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CXXNamedCastExpr((::CppSharp::CppParser::AST::CXXNamedCastExpr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CXXNamedCastExpr((::CppSharp::CppParser::AST::CXXNamedCastExpr*)____ret);
@ -5814,11 +5814,11 @@ CppSharp::Parser::AST::CXXConstructExpr::CXXConstructExpr()
NativePtr = new ::CppSharp::CppParser::AST::CXXConstructExpr(); NativePtr = new ::CppSharp::CppParser::AST::CXXConstructExpr();
} }
CppSharp::Parser::AST::CXXConstructExpr::CXXConstructExpr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CXXConstructExpr::CXXConstructExpr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr) : CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::CXXConstructExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CXXConstructExpr(__arg0);
} }
@ -5852,9 +5852,9 @@ CppSharp::Parser::AST::CXXConstructExpr::CXXConstructExpr(CppSharp::Parser::AST:
NativePtr = new ::CppSharp::CppParser::AST::CXXConstructExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CXXConstructExpr(__arg0);
} }
CppSharp::Parser::AST::CXXConstructExpr::operator CppSharp::Parser::AST::CXXConstructExpr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CXXConstructExpr::operator CppSharp::Parser::AST::CXXConstructExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::CXXConstructExpr) __arg0; auto __ret = (::CppSharp::CppParser::AST::CXXConstructExpr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::CXXConstructExpr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::CXXConstructExpr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CXXConstructExpr((::CppSharp::CppParser::AST::CXXConstructExpr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CXXConstructExpr((::CppSharp::CppParser::AST::CXXConstructExpr*)____ret);
@ -7014,11 +7014,11 @@ CppSharp::Parser::AST::OverloadExpr::OverloadExpr()
NativePtr = new ::CppSharp::CppParser::AST::OverloadExpr(); NativePtr = new ::CppSharp::CppParser::AST::OverloadExpr();
} }
CppSharp::Parser::AST::OverloadExpr::OverloadExpr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::OverloadExpr::OverloadExpr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr) : CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::OverloadExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::OverloadExpr(__arg0);
} }
@ -7032,9 +7032,9 @@ CppSharp::Parser::AST::OverloadExpr::OverloadExpr(CppSharp::Parser::AST::Overloa
NativePtr = new ::CppSharp::CppParser::AST::OverloadExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::OverloadExpr(__arg0);
} }
CppSharp::Parser::AST::OverloadExpr::operator CppSharp::Parser::AST::OverloadExpr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::OverloadExpr::operator CppSharp::Parser::AST::OverloadExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::OverloadExpr) __arg0; auto __ret = (::CppSharp::CppParser::AST::OverloadExpr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::OverloadExpr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::OverloadExpr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::OverloadExpr((::CppSharp::CppParser::AST::OverloadExpr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::OverloadExpr((::CppSharp::CppParser::AST::OverloadExpr*)____ret);
@ -8359,11 +8359,11 @@ CppSharp::Parser::AST::CoroutineSuspendExpr::CoroutineSuspendExpr()
NativePtr = new ::CppSharp::CppParser::AST::CoroutineSuspendExpr(); NativePtr = new ::CppSharp::CppParser::AST::CoroutineSuspendExpr();
} }
CppSharp::Parser::AST::CoroutineSuspendExpr::CoroutineSuspendExpr(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CoroutineSuspendExpr::CoroutineSuspendExpr(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr) : CppSharp::Parser::AST::Expr((::CppSharp::CppParser::AST::Expr*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::CoroutineSuspendExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CoroutineSuspendExpr(__arg0);
} }
@ -8377,9 +8377,9 @@ CppSharp::Parser::AST::CoroutineSuspendExpr::CoroutineSuspendExpr(CppSharp::Pars
NativePtr = new ::CppSharp::CppParser::AST::CoroutineSuspendExpr(__arg0); NativePtr = new ::CppSharp::CppParser::AST::CoroutineSuspendExpr(__arg0);
} }
CppSharp::Parser::AST::CoroutineSuspendExpr::operator CppSharp::Parser::AST::CoroutineSuspendExpr^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::CoroutineSuspendExpr::operator CppSharp::Parser::AST::CoroutineSuspendExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::CoroutineSuspendExpr) __arg0; auto __ret = (::CppSharp::CppParser::AST::CoroutineSuspendExpr) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::CoroutineSuspendExpr(__ret); auto ____ret = new ::CppSharp::CppParser::AST::CoroutineSuspendExpr(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CoroutineSuspendExpr((::CppSharp::CppParser::AST::CoroutineSuspendExpr*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::CoroutineSuspendExpr((::CppSharp::CppParser::AST::CoroutineSuspendExpr*)____ret);

45
src/CppParser/Bindings/CLI/Expr.h

@ -22,7 +22,6 @@ namespace CppSharp
enum struct CastKind; enum struct CastKind;
enum struct ObjCBridgeCastKind; enum struct ObjCBridgeCastKind;
enum struct OverloadedOperatorKind; enum struct OverloadedOperatorKind;
enum struct StmtClass;
enum struct UnaryExprOrTypeTrait; enum struct UnaryExprOrTypeTrait;
enum struct UnaryOperatorKind; enum struct UnaryOperatorKind;
ref class AbstractConditionalOperator; ref class AbstractConditionalOperator;
@ -503,7 +502,7 @@ namespace CppSharp
static Expr^ __CreateInstance(::System::IntPtr native); static Expr^ __CreateInstance(::System::IntPtr native);
Expr(); Expr();
Expr(CppSharp::Parser::AST::StmtClass klass); Expr(CppSharp::Parser::AST::Stmt::StmtClass klass);
Expr(CppSharp::Parser::AST::Expr^ _0); Expr(CppSharp::Parser::AST::Expr^ _0);
@ -593,7 +592,7 @@ namespace CppSharp
void set(bool); void set(bool);
} }
static operator CppSharp::Parser::AST::Expr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::Expr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class FullExpr : CppSharp::Parser::AST::Expr public ref class FullExpr : CppSharp::Parser::AST::Expr
@ -604,7 +603,7 @@ namespace CppSharp
static FullExpr^ __CreateInstance(::System::IntPtr native); static FullExpr^ __CreateInstance(::System::IntPtr native);
FullExpr(); FullExpr();
FullExpr(CppSharp::Parser::AST::StmtClass klass); FullExpr(CppSharp::Parser::AST::Stmt::StmtClass klass);
FullExpr(CppSharp::Parser::AST::FullExpr^ _0); FullExpr(CppSharp::Parser::AST::FullExpr^ _0);
@ -616,7 +615,7 @@ namespace CppSharp
void set(CppSharp::Parser::AST::Expr^); void set(CppSharp::Parser::AST::Expr^);
} }
static operator CppSharp::Parser::AST::FullExpr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::FullExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class ConstantExpr : CppSharp::Parser::AST::FullExpr public ref class ConstantExpr : CppSharp::Parser::AST::FullExpr
@ -1284,7 +1283,7 @@ namespace CppSharp
static CallExpr^ __CreateInstance(::System::IntPtr native); static CallExpr^ __CreateInstance(::System::IntPtr native);
CallExpr(); CallExpr();
CallExpr(CppSharp::Parser::AST::StmtClass klass); CallExpr(CppSharp::Parser::AST::Stmt::StmtClass klass);
CallExpr(CppSharp::Parser::AST::CallExpr^ _0); CallExpr(CppSharp::Parser::AST::CallExpr^ _0);
@ -1355,7 +1354,7 @@ namespace CppSharp
void Cleararguments(); void Cleararguments();
static operator CppSharp::Parser::AST::CallExpr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::CallExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class MemberExpr : CppSharp::Parser::AST::Expr public ref class MemberExpr : CppSharp::Parser::AST::Expr
@ -1488,7 +1487,7 @@ namespace CppSharp
static CastExpr^ __CreateInstance(::System::IntPtr native); static CastExpr^ __CreateInstance(::System::IntPtr native);
CastExpr(); CastExpr();
CastExpr(CppSharp::Parser::AST::StmtClass klass); CastExpr(CppSharp::Parser::AST::Stmt::StmtClass klass);
CastExpr(CppSharp::Parser::AST::CastExpr^ _0); CastExpr(CppSharp::Parser::AST::CastExpr^ _0);
@ -1536,7 +1535,7 @@ namespace CppSharp
void set(unsigned int); void set(unsigned int);
} }
static operator CppSharp::Parser::AST::CastExpr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::CastExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class ImplicitCastExpr : CppSharp::Parser::AST::CastExpr public ref class ImplicitCastExpr : CppSharp::Parser::AST::CastExpr
@ -1571,7 +1570,7 @@ namespace CppSharp
static ExplicitCastExpr^ __CreateInstance(::System::IntPtr native); static ExplicitCastExpr^ __CreateInstance(::System::IntPtr native);
ExplicitCastExpr(); ExplicitCastExpr();
ExplicitCastExpr(CppSharp::Parser::AST::StmtClass klass); ExplicitCastExpr(CppSharp::Parser::AST::Stmt::StmtClass klass);
ExplicitCastExpr(CppSharp::Parser::AST::ExplicitCastExpr^ _0); ExplicitCastExpr(CppSharp::Parser::AST::ExplicitCastExpr^ _0);
@ -1583,7 +1582,7 @@ namespace CppSharp
void set(CppSharp::Parser::AST::QualifiedType^); void set(CppSharp::Parser::AST::QualifiedType^);
} }
static operator CppSharp::Parser::AST::ExplicitCastExpr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::ExplicitCastExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class CStyleCastExpr : CppSharp::Parser::AST::ExplicitCastExpr public ref class CStyleCastExpr : CppSharp::Parser::AST::ExplicitCastExpr
@ -1619,7 +1618,7 @@ namespace CppSharp
static BinaryOperator^ __CreateInstance(::System::IntPtr native); static BinaryOperator^ __CreateInstance(::System::IntPtr native);
BinaryOperator(); BinaryOperator();
BinaryOperator(CppSharp::Parser::AST::StmtClass klass); BinaryOperator(CppSharp::Parser::AST::Stmt::StmtClass klass);
BinaryOperator(CppSharp::Parser::AST::BinaryOperator^ _0); BinaryOperator(CppSharp::Parser::AST::BinaryOperator^ _0);
@ -1739,7 +1738,7 @@ namespace CppSharp
void set(bool); void set(bool);
} }
static operator CppSharp::Parser::AST::BinaryOperator^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::BinaryOperator^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class CompoundAssignOperator : CppSharp::Parser::AST::BinaryOperator public ref class CompoundAssignOperator : CppSharp::Parser::AST::BinaryOperator
@ -1775,7 +1774,7 @@ namespace CppSharp
static AbstractConditionalOperator^ __CreateInstance(::System::IntPtr native); static AbstractConditionalOperator^ __CreateInstance(::System::IntPtr native);
AbstractConditionalOperator(); AbstractConditionalOperator();
AbstractConditionalOperator(CppSharp::Parser::AST::StmtClass klass); AbstractConditionalOperator(CppSharp::Parser::AST::Stmt::StmtClass klass);
AbstractConditionalOperator(CppSharp::Parser::AST::AbstractConditionalOperator^ _0); AbstractConditionalOperator(CppSharp::Parser::AST::AbstractConditionalOperator^ _0);
@ -1811,7 +1810,7 @@ namespace CppSharp
void set(CppSharp::Parser::SourceLocation); void set(CppSharp::Parser::SourceLocation);
} }
static operator CppSharp::Parser::AST::AbstractConditionalOperator^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::AbstractConditionalOperator^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class ConditionalOperator : CppSharp::Parser::AST::AbstractConditionalOperator public ref class ConditionalOperator : CppSharp::Parser::AST::AbstractConditionalOperator
@ -2946,7 +2945,7 @@ namespace CppSharp
static CXXNamedCastExpr^ __CreateInstance(::System::IntPtr native); static CXXNamedCastExpr^ __CreateInstance(::System::IntPtr native);
CXXNamedCastExpr(); CXXNamedCastExpr();
CXXNamedCastExpr(CppSharp::Parser::AST::StmtClass klass); CXXNamedCastExpr(CppSharp::Parser::AST::Stmt::StmtClass klass);
CXXNamedCastExpr(CppSharp::Parser::AST::CXXNamedCastExpr^ _0); CXXNamedCastExpr(CppSharp::Parser::AST::CXXNamedCastExpr^ _0);
@ -2976,7 +2975,7 @@ namespace CppSharp
void set(CppSharp::Parser::SourceRange^); void set(CppSharp::Parser::SourceRange^);
} }
static operator CppSharp::Parser::AST::CXXNamedCastExpr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::CXXNamedCastExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class CXXStaticCastExpr : CppSharp::Parser::AST::CXXNamedCastExpr public ref class CXXStaticCastExpr : CppSharp::Parser::AST::CXXNamedCastExpr
@ -3412,7 +3411,7 @@ namespace CppSharp
static CXXConstructExpr^ __CreateInstance(::System::IntPtr native); static CXXConstructExpr^ __CreateInstance(::System::IntPtr native);
CXXConstructExpr(); CXXConstructExpr();
CXXConstructExpr(CppSharp::Parser::AST::StmtClass klass); CXXConstructExpr(CppSharp::Parser::AST::Stmt::StmtClass klass);
CXXConstructExpr(CppSharp::Parser::AST::CXXConstructExpr^ _0); CXXConstructExpr(CppSharp::Parser::AST::CXXConstructExpr^ _0);
@ -3483,7 +3482,7 @@ namespace CppSharp
void Cleararguments(); void Cleararguments();
static operator CppSharp::Parser::AST::CXXConstructExpr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::CXXConstructExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class CXXInheritedCtorInitExpr : CppSharp::Parser::AST::Expr public ref class CXXInheritedCtorInitExpr : CppSharp::Parser::AST::Expr
@ -4007,7 +4006,7 @@ namespace CppSharp
static OverloadExpr^ __CreateInstance(::System::IntPtr native); static OverloadExpr^ __CreateInstance(::System::IntPtr native);
OverloadExpr(); OverloadExpr();
OverloadExpr(CppSharp::Parser::AST::StmtClass klass); OverloadExpr(CppSharp::Parser::AST::Stmt::StmtClass klass);
OverloadExpr(CppSharp::Parser::AST::OverloadExpr^ _0); OverloadExpr(CppSharp::Parser::AST::OverloadExpr^ _0);
@ -4061,7 +4060,7 @@ namespace CppSharp
void set(unsigned int); void set(unsigned int);
} }
static operator CppSharp::Parser::AST::OverloadExpr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::OverloadExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class UnresolvedLookupExpr : CppSharp::Parser::AST::OverloadExpr public ref class UnresolvedLookupExpr : CppSharp::Parser::AST::OverloadExpr
@ -4687,7 +4686,7 @@ namespace CppSharp
static CoroutineSuspendExpr^ __CreateInstance(::System::IntPtr native); static CoroutineSuspendExpr^ __CreateInstance(::System::IntPtr native);
CoroutineSuspendExpr(); CoroutineSuspendExpr();
CoroutineSuspendExpr(CppSharp::Parser::AST::StmtClass klass); CoroutineSuspendExpr(CppSharp::Parser::AST::Stmt::StmtClass klass);
CoroutineSuspendExpr(CppSharp::Parser::AST::CoroutineSuspendExpr^ _0); CoroutineSuspendExpr(CppSharp::Parser::AST::CoroutineSuspendExpr^ _0);
@ -4729,7 +4728,7 @@ namespace CppSharp
void set(CppSharp::Parser::AST::Expr^); void set(CppSharp::Parser::AST::Expr^);
} }
static operator CppSharp::Parser::AST::CoroutineSuspendExpr^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::CoroutineSuspendExpr^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class CoawaitExpr : CppSharp::Parser::AST::CoroutineSuspendExpr public ref class CoawaitExpr : CppSharp::Parser::AST::CoroutineSuspendExpr

44
src/CppParser/Bindings/CLI/Stmt.cpp

@ -35,10 +35,10 @@ CppSharp::Parser::AST::Stmt::Stmt()
NativePtr = new ::CppSharp::CppParser::AST::Stmt(); NativePtr = new ::CppSharp::CppParser::AST::Stmt();
} }
CppSharp::Parser::AST::Stmt::Stmt(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::Stmt::Stmt(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::Stmt(__arg0); NativePtr = new ::CppSharp::CppParser::AST::Stmt(__arg0);
} }
@ -51,9 +51,9 @@ CppSharp::Parser::AST::Stmt::Stmt(CppSharp::Parser::AST::Stmt^ _0)
NativePtr = new ::CppSharp::CppParser::AST::Stmt(__arg0); NativePtr = new ::CppSharp::CppParser::AST::Stmt(__arg0);
} }
CppSharp::Parser::AST::Stmt::operator CppSharp::Parser::AST::Stmt^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::Stmt::operator CppSharp::Parser::AST::Stmt^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::Stmt) __arg0; auto __ret = (::CppSharp::CppParser::AST::Stmt) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::Stmt(__ret); auto ____ret = new ::CppSharp::CppParser::AST::Stmt(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Stmt((::CppSharp::CppParser::AST::Stmt*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::Stmt((::CppSharp::CppParser::AST::Stmt*)____ret);
@ -69,14 +69,14 @@ void CppSharp::Parser::AST::Stmt::__Instance::set(System::IntPtr object)
NativePtr = (::CppSharp::CppParser::AST::Stmt*)object.ToPointer(); NativePtr = (::CppSharp::CppParser::AST::Stmt*)object.ToPointer();
} }
CppSharp::Parser::AST::StmtClass CppSharp::Parser::AST::Stmt::StmtClass::get() CppSharp::Parser::AST::Stmt::StmtClass CppSharp::Parser::AST::Stmt::stmtClass::get()
{ {
return (CppSharp::Parser::AST::StmtClass)((::CppSharp::CppParser::AST::Stmt*)NativePtr)->stmtClass; return (CppSharp::Parser::AST::Stmt::StmtClass)((::CppSharp::CppParser::AST::Stmt*)NativePtr)->stmtClass;
} }
void CppSharp::Parser::AST::Stmt::StmtClass::set(CppSharp::Parser::AST::StmtClass value) void CppSharp::Parser::AST::Stmt::stmtClass::set(CppSharp::Parser::AST::Stmt::StmtClass value)
{ {
((::CppSharp::CppParser::AST::Stmt*)NativePtr)->stmtClass = (::CppSharp::CppParser::AST::StmtClass)value; ((::CppSharp::CppParser::AST::Stmt*)NativePtr)->stmtClass = (::CppSharp::CppParser::AST::Stmt::StmtClass)value;
} }
CppSharp::Parser::SourceRange^ CppSharp::Parser::AST::Stmt::SourceRange::get() CppSharp::Parser::SourceRange^ CppSharp::Parser::AST::Stmt::SourceRange::get()
@ -89,6 +89,18 @@ void CppSharp::Parser::AST::Stmt::SourceRange::set(CppSharp::Parser::SourceRange
((::CppSharp::CppParser::AST::Stmt*)NativePtr)->sourceRange = *(::CppSharp::CppParser::SourceRange*)value->NativePtr; ((::CppSharp::CppParser::AST::Stmt*)NativePtr)->sourceRange = *(::CppSharp::CppParser::SourceRange*)value->NativePtr;
} }
CppSharp::Parser::SourceLocation CppSharp::Parser::AST::Stmt::BeginLoc::get()
{
return CppSharp::Parser::SourceLocation((::CppSharp::CppParser::SourceLocation*)&((::CppSharp::CppParser::AST::Stmt*)NativePtr)->beginLoc);
}
void CppSharp::Parser::AST::Stmt::BeginLoc::set(CppSharp::Parser::SourceLocation value)
{
auto _marshal0 = ::CppSharp::CppParser::SourceLocation();
_marshal0.ID = value.ID;
((::CppSharp::CppParser::AST::Stmt*)NativePtr)->beginLoc = _marshal0;
}
CppSharp::Parser::SourceLocation CppSharp::Parser::AST::Stmt::EndLoc::get() CppSharp::Parser::SourceLocation CppSharp::Parser::AST::Stmt::EndLoc::get()
{ {
return CppSharp::Parser::SourceLocation((::CppSharp::CppParser::SourceLocation*)&((::CppSharp::CppParser::AST::Stmt*)NativePtr)->endLoc); return CppSharp::Parser::SourceLocation((::CppSharp::CppParser::SourceLocation*)&((::CppSharp::CppParser::AST::Stmt*)NativePtr)->endLoc);
@ -439,11 +451,11 @@ CppSharp::Parser::AST::SwitchCase::SwitchCase()
NativePtr = new ::CppSharp::CppParser::AST::SwitchCase(); NativePtr = new ::CppSharp::CppParser::AST::SwitchCase();
} }
CppSharp::Parser::AST::SwitchCase::SwitchCase(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::SwitchCase::SwitchCase(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Stmt((::CppSharp::CppParser::AST::Stmt*)nullptr) : CppSharp::Parser::AST::Stmt((::CppSharp::CppParser::AST::Stmt*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::SwitchCase(__arg0); NativePtr = new ::CppSharp::CppParser::AST::SwitchCase(__arg0);
} }
@ -457,9 +469,9 @@ CppSharp::Parser::AST::SwitchCase::SwitchCase(CppSharp::Parser::AST::SwitchCase^
NativePtr = new ::CppSharp::CppParser::AST::SwitchCase(__arg0); NativePtr = new ::CppSharp::CppParser::AST::SwitchCase(__arg0);
} }
CppSharp::Parser::AST::SwitchCase::operator CppSharp::Parser::AST::SwitchCase^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::SwitchCase::operator CppSharp::Parser::AST::SwitchCase^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::SwitchCase) __arg0; auto __ret = (::CppSharp::CppParser::AST::SwitchCase) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::SwitchCase(__ret); auto ____ret = new ::CppSharp::CppParser::AST::SwitchCase(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::SwitchCase((::CppSharp::CppParser::AST::SwitchCase*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::SwitchCase((::CppSharp::CppParser::AST::SwitchCase*)____ret);
@ -1585,11 +1597,11 @@ CppSharp::Parser::AST::AsmStmt::AsmStmt()
NativePtr = new ::CppSharp::CppParser::AST::AsmStmt(); NativePtr = new ::CppSharp::CppParser::AST::AsmStmt();
} }
CppSharp::Parser::AST::AsmStmt::AsmStmt(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::AsmStmt::AsmStmt(CppSharp::Parser::AST::Stmt::StmtClass klass)
: CppSharp::Parser::AST::Stmt((::CppSharp::CppParser::AST::Stmt*)nullptr) : CppSharp::Parser::AST::Stmt((::CppSharp::CppParser::AST::Stmt*)nullptr)
{ {
__ownsNativeInstance = true; __ownsNativeInstance = true;
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
NativePtr = new ::CppSharp::CppParser::AST::AsmStmt(__arg0); NativePtr = new ::CppSharp::CppParser::AST::AsmStmt(__arg0);
} }
@ -1643,9 +1655,9 @@ CppSharp::Parser::AST::AsmStmt::AsmStmt(CppSharp::Parser::AST::AsmStmt^ _0)
NativePtr = new ::CppSharp::CppParser::AST::AsmStmt(__arg0); NativePtr = new ::CppSharp::CppParser::AST::AsmStmt(__arg0);
} }
CppSharp::Parser::AST::AsmStmt::operator CppSharp::Parser::AST::AsmStmt^(CppSharp::Parser::AST::StmtClass klass) CppSharp::Parser::AST::AsmStmt::operator CppSharp::Parser::AST::AsmStmt^(CppSharp::Parser::AST::Stmt::StmtClass klass)
{ {
auto __arg0 = (::CppSharp::CppParser::AST::StmtClass)klass; auto __arg0 = (::CppSharp::CppParser::AST::Stmt::StmtClass)klass;
auto __ret = (::CppSharp::CppParser::AST::AsmStmt) __arg0; auto __ret = (::CppSharp::CppParser::AST::AsmStmt) __arg0;
auto ____ret = new ::CppSharp::CppParser::AST::AsmStmt(__ret); auto ____ret = new ::CppSharp::CppParser::AST::AsmStmt(__ret);
return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::AsmStmt((::CppSharp::CppParser::AST::AsmStmt*)____ret); return (____ret == nullptr) ? nullptr : gcnew CppSharp::Parser::AST::AsmStmt((::CppSharp::CppParser::AST::AsmStmt*)____ret);

285
src/CppParser/Bindings/CLI/Stmt.h

@ -17,7 +17,6 @@ namespace CppSharp
ref class SourceRange; ref class SourceRange;
namespace AST namespace AST
{ {
enum struct StmtClass;
ref class AsmStmt; ref class AsmStmt;
ref class AttributedStmt; ref class AttributedStmt;
ref class BreakStmt; ref class BreakStmt;
@ -64,140 +63,140 @@ namespace CppSharp
{ {
namespace AST namespace AST
{ {
public enum struct StmtClass
{
NoStmt = 0,
GCCAsmStmt = 1,
MSAsmStmt = 2,
AttributedStmt = 3,
BreakStmt = 4,
CXXCatchStmt = 5,
CXXForRangeStmt = 6,
CXXTryStmt = 7,
CapturedStmt = 8,
CompoundStmt = 9,
ContinueStmt = 10,
CoreturnStmt = 11,
CoroutineBodyStmt = 12,
DeclStmt = 13,
DoStmt = 14,
BinaryConditionalOperator = 15,
ConditionalOperator = 16,
AddrLabelExpr = 17,
ArrayInitIndexExpr = 18,
ArrayInitLoopExpr = 19,
ArraySubscriptExpr = 20,
ArrayTypeTraitExpr = 21,
AsTypeExpr = 22,
AtomicExpr = 23,
BinaryOperator = 24,
CompoundAssignOperator = 25,
BlockExpr = 26,
CXXBindTemporaryExpr = 27,
CXXBoolLiteralExpr = 28,
CXXConstructExpr = 29,
CXXTemporaryObjectExpr = 30,
CXXDefaultArgExpr = 31,
CXXDefaultInitExpr = 32,
CXXDeleteExpr = 33,
CXXDependentScopeMemberExpr = 34,
CXXFoldExpr = 35,
CXXInheritedCtorInitExpr = 36,
CXXNewExpr = 37,
CXXNoexceptExpr = 38,
CXXNullPtrLiteralExpr = 39,
CXXPseudoDestructorExpr = 40,
CXXScalarValueInitExpr = 41,
CXXStdInitializerListExpr = 42,
CXXThisExpr = 43,
CXXThrowExpr = 44,
CXXTypeidExpr = 45,
CXXUnresolvedConstructExpr = 46,
CXXUuidofExpr = 47,
CallExpr = 48,
CUDAKernelCallExpr = 49,
CXXMemberCallExpr = 50,
CXXOperatorCallExpr = 51,
UserDefinedLiteral = 52,
CStyleCastExpr = 53,
CXXFunctionalCastExpr = 54,
CXXConstCastExpr = 55,
CXXDynamicCastExpr = 56,
CXXReinterpretCastExpr = 57,
CXXStaticCastExpr = 58,
ImplicitCastExpr = 60,
CharacterLiteral = 61,
ChooseExpr = 62,
CompoundLiteralExpr = 63,
ConvertVectorExpr = 64,
CoawaitExpr = 65,
CoyieldExpr = 66,
DeclRefExpr = 67,
DependentCoawaitExpr = 68,
DependentScopeDeclRefExpr = 69,
DesignatedInitExpr = 70,
DesignatedInitUpdateExpr = 71,
ExpressionTraitExpr = 72,
ExtVectorElementExpr = 73,
FixedPointLiteral = 74,
FloatingLiteral = 75,
ConstantExpr = 76,
ExprWithCleanups = 77,
FunctionParmPackExpr = 78,
GNUNullExpr = 79,
GenericSelectionExpr = 80,
ImaginaryLiteral = 81,
ImplicitValueInitExpr = 82,
InitListExpr = 83,
IntegerLiteral = 84,
LambdaExpr = 85,
MSPropertyRefExpr = 86,
MSPropertySubscriptExpr = 87,
MaterializeTemporaryExpr = 88,
MemberExpr = 89,
NoInitExpr = 90,
OffsetOfExpr = 107,
OpaqueValueExpr = 108,
UnresolvedLookupExpr = 109,
UnresolvedMemberExpr = 110,
PackExpansionExpr = 111,
ParenExpr = 112,
ParenListExpr = 113,
PredefinedExpr = 114,
PseudoObjectExpr = 115,
ShuffleVectorExpr = 116,
SizeOfPackExpr = 117,
StmtExpr = 118,
StringLiteral = 119,
SubstNonTypeTemplateParmExpr = 120,
SubstNonTypeTemplateParmPackExpr = 121,
TypeTraitExpr = 122,
TypoExpr = 123,
UnaryExprOrTypeTraitExpr = 124,
UnaryOperator = 125,
VAArgExpr = 126,
ForStmt = 127,
GotoStmt = 128,
IfStmt = 129,
IndirectGotoStmt = 130,
LabelStmt = 131,
MSDependentExistsStmt = 132,
NullStmt = 133,
ReturnStmt = 188,
SEHExceptStmt = 189,
SEHFinallyStmt = 190,
SEHLeaveStmt = 191,
SEHTryStmt = 192,
CaseStmt = 193,
DefaultStmt = 194,
SwitchStmt = 195,
WhileStmt = 196
};
public ref class Stmt : ICppInstance public ref class Stmt : ICppInstance
{ {
public: public:
enum struct StmtClass
{
NoStmt = 0,
GCCAsmStmt = 1,
MSAsmStmt = 2,
AttributedStmt = 3,
BreakStmt = 4,
CXXCatchStmt = 5,
CXXForRangeStmt = 6,
CXXTryStmt = 7,
CapturedStmt = 8,
CompoundStmt = 9,
ContinueStmt = 10,
CoreturnStmt = 11,
CoroutineBodyStmt = 12,
DeclStmt = 13,
DoStmt = 14,
BinaryConditionalOperator = 15,
ConditionalOperator = 16,
AddrLabelExpr = 17,
ArrayInitIndexExpr = 18,
ArrayInitLoopExpr = 19,
ArraySubscriptExpr = 20,
ArrayTypeTraitExpr = 21,
AsTypeExpr = 22,
AtomicExpr = 23,
BinaryOperator = 24,
CompoundAssignOperator = 25,
BlockExpr = 26,
CXXBindTemporaryExpr = 27,
CXXBoolLiteralExpr = 28,
CXXConstructExpr = 29,
CXXTemporaryObjectExpr = 30,
CXXDefaultArgExpr = 31,
CXXDefaultInitExpr = 32,
CXXDeleteExpr = 33,
CXXDependentScopeMemberExpr = 34,
CXXFoldExpr = 35,
CXXInheritedCtorInitExpr = 36,
CXXNewExpr = 37,
CXXNoexceptExpr = 38,
CXXNullPtrLiteralExpr = 39,
CXXPseudoDestructorExpr = 40,
CXXScalarValueInitExpr = 41,
CXXStdInitializerListExpr = 42,
CXXThisExpr = 43,
CXXThrowExpr = 44,
CXXTypeidExpr = 45,
CXXUnresolvedConstructExpr = 46,
CXXUuidofExpr = 47,
CallExpr = 48,
CUDAKernelCallExpr = 49,
CXXMemberCallExpr = 50,
CXXOperatorCallExpr = 51,
UserDefinedLiteral = 52,
CStyleCastExpr = 53,
CXXFunctionalCastExpr = 54,
CXXConstCastExpr = 55,
CXXDynamicCastExpr = 56,
CXXReinterpretCastExpr = 57,
CXXStaticCastExpr = 58,
ImplicitCastExpr = 60,
CharacterLiteral = 61,
ChooseExpr = 62,
CompoundLiteralExpr = 63,
ConvertVectorExpr = 64,
CoawaitExpr = 65,
CoyieldExpr = 66,
DeclRefExpr = 67,
DependentCoawaitExpr = 68,
DependentScopeDeclRefExpr = 69,
DesignatedInitExpr = 70,
DesignatedInitUpdateExpr = 71,
ExpressionTraitExpr = 72,
ExtVectorElementExpr = 73,
FixedPointLiteral = 74,
FloatingLiteral = 75,
ConstantExpr = 76,
ExprWithCleanups = 77,
FunctionParmPackExpr = 78,
GNUNullExpr = 79,
GenericSelectionExpr = 80,
ImaginaryLiteral = 81,
ImplicitValueInitExpr = 82,
InitListExpr = 83,
IntegerLiteral = 84,
LambdaExpr = 85,
MSPropertyRefExpr = 86,
MSPropertySubscriptExpr = 87,
MaterializeTemporaryExpr = 88,
MemberExpr = 89,
NoInitExpr = 90,
OffsetOfExpr = 107,
OpaqueValueExpr = 108,
UnresolvedLookupExpr = 109,
UnresolvedMemberExpr = 110,
PackExpansionExpr = 111,
ParenExpr = 112,
ParenListExpr = 113,
PredefinedExpr = 114,
PseudoObjectExpr = 115,
ShuffleVectorExpr = 116,
SizeOfPackExpr = 117,
StmtExpr = 118,
StringLiteral = 119,
SubstNonTypeTemplateParmExpr = 120,
SubstNonTypeTemplateParmPackExpr = 121,
TypeTraitExpr = 122,
TypoExpr = 123,
UnaryExprOrTypeTraitExpr = 124,
UnaryOperator = 125,
VAArgExpr = 126,
ForStmt = 127,
GotoStmt = 128,
IfStmt = 129,
IndirectGotoStmt = 130,
LabelStmt = 131,
MSDependentExistsStmt = 132,
NullStmt = 133,
ReturnStmt = 188,
SEHExceptStmt = 189,
SEHFinallyStmt = 190,
SEHLeaveStmt = 191,
SEHTryStmt = 192,
CaseStmt = 193,
DefaultStmt = 194,
SwitchStmt = 195,
WhileStmt = 196
};
property ::CppSharp::CppParser::AST::Stmt* NativePtr; property ::CppSharp::CppParser::AST::Stmt* NativePtr;
property System::IntPtr __Instance property System::IntPtr __Instance
{ {
@ -209,16 +208,16 @@ namespace CppSharp
static Stmt^ __CreateInstance(::System::IntPtr native); static Stmt^ __CreateInstance(::System::IntPtr native);
Stmt(); Stmt();
Stmt(CppSharp::Parser::AST::StmtClass klass); Stmt(CppSharp::Parser::AST::Stmt::StmtClass klass);
Stmt(CppSharp::Parser::AST::Stmt^ _0); Stmt(CppSharp::Parser::AST::Stmt^ _0);
~Stmt(); ~Stmt();
property CppSharp::Parser::AST::StmtClass StmtClass property CppSharp::Parser::AST::Stmt::StmtClass stmtClass
{ {
CppSharp::Parser::AST::StmtClass get(); CppSharp::Parser::AST::Stmt::StmtClass get();
void set(CppSharp::Parser::AST::StmtClass); void set(CppSharp::Parser::AST::Stmt::StmtClass);
} }
property CppSharp::Parser::SourceRange^ SourceRange property CppSharp::Parser::SourceRange^ SourceRange
@ -227,6 +226,12 @@ namespace CppSharp
void set(CppSharp::Parser::SourceRange^); void set(CppSharp::Parser::SourceRange^);
} }
property CppSharp::Parser::SourceLocation BeginLoc
{
CppSharp::Parser::SourceLocation get();
void set(CppSharp::Parser::SourceLocation);
}
property CppSharp::Parser::SourceLocation EndLoc property CppSharp::Parser::SourceLocation EndLoc
{ {
CppSharp::Parser::SourceLocation get(); CppSharp::Parser::SourceLocation get();
@ -239,7 +244,7 @@ namespace CppSharp
void set(CppSharp::Parser::AST::Stmt^); void set(CppSharp::Parser::AST::Stmt^);
} }
static operator CppSharp::Parser::AST::Stmt^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::Stmt^(CppSharp::Parser::AST::Stmt::StmtClass klass);
protected: protected:
bool __ownsNativeInstance; bool __ownsNativeInstance;
@ -386,7 +391,7 @@ namespace CppSharp
static SwitchCase^ __CreateInstance(::System::IntPtr native); static SwitchCase^ __CreateInstance(::System::IntPtr native);
SwitchCase(); SwitchCase();
SwitchCase(CppSharp::Parser::AST::StmtClass klass); SwitchCase(CppSharp::Parser::AST::Stmt::StmtClass klass);
SwitchCase(CppSharp::Parser::AST::SwitchCase^ _0); SwitchCase(CppSharp::Parser::AST::SwitchCase^ _0);
@ -410,7 +415,7 @@ namespace CppSharp
void set(CppSharp::Parser::AST::Stmt^); void set(CppSharp::Parser::AST::Stmt^);
} }
static operator CppSharp::Parser::AST::SwitchCase^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::SwitchCase^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class CaseStmt : CppSharp::Parser::AST::SwitchCase public ref class CaseStmt : CppSharp::Parser::AST::SwitchCase
@ -951,7 +956,7 @@ namespace CppSharp
static AsmStmt^ __CreateInstance(::System::IntPtr native); static AsmStmt^ __CreateInstance(::System::IntPtr native);
AsmStmt(); AsmStmt();
AsmStmt(CppSharp::Parser::AST::StmtClass klass); AsmStmt(CppSharp::Parser::AST::Stmt::StmtClass klass);
AsmStmt(CppSharp::Parser::AST::AsmStmt^ _0); AsmStmt(CppSharp::Parser::AST::AsmStmt^ _0);
@ -1033,7 +1038,7 @@ namespace CppSharp
void Clearoutputs(); void Clearoutputs();
static operator CppSharp::Parser::AST::AsmStmt^(CppSharp::Parser::AST::StmtClass klass); static operator CppSharp::Parser::AST::AsmStmt^(CppSharp::Parser::AST::Stmt::StmtClass klass);
}; };
public ref class GCCAsmStmt : CppSharp::Parser::AST::AsmStmt public ref class GCCAsmStmt : CppSharp::Parser::AST::AsmStmt

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

30
src/CppParser/Bootstrap/Bootstrap.cs

@ -155,15 +155,13 @@ namespace CppSharp
var stmtClass = stmtUnit.FindNamespace("clang").FindClass("Stmt"); var stmtClass = stmtUnit.FindNamespace("clang").FindClass("Stmt");
var stmtClassEnum = stmtClass.FindEnum("StmtClass"); var stmtClassEnum = stmtClass.FindEnum("StmtClass");
stmtClass.Declarations.Remove(stmtClassEnum);
CleanupEnumItems(stmtClassEnum); CleanupEnumItems(stmtClassEnum);
var stmtSubclassVisitor = new SubclassVisitor(stmtClass); var stmtSubclassVisitor = new SubclassVisitor(stmtClass);
stmtUnit.Visit(stmtSubclassVisitor); stmtUnit.Visit(stmtSubclassVisitor);
stmtCxxUnit.Visit(stmtSubclassVisitor); stmtCxxUnit.Visit(stmtSubclassVisitor);
var decls = new Declaration[] { stmtClassEnum } var decls = stmtSubclassVisitor.Classes;
.Union(stmtSubclassVisitor.Classes);
// Write the native declarations headers // Write the native declarations headers
var declsCodeGen = new StmtDeclarationsCodeGenerator(ctx, decls); var declsCodeGen = new StmtDeclarationsCodeGenerator(ctx, decls);
@ -628,7 +626,7 @@ namespace CppSharp
WriteLineIndent("return default(TRet);"); WriteLineIndent("return default(TRet);");
NewLine(); NewLine();
WriteLine($"switch({ParamName}.StmtClass)"); WriteLine($"switch({ParamName}.stmtClass)");
WriteOpenBraceAndIndent(); WriteOpenBraceAndIndent();
var enumItems = StmtClassEnum != null ? var enumItems = StmtClassEnum != null ?
@ -648,7 +646,7 @@ namespace CppSharp
{ {
foreach (var className in classes) foreach (var className in classes)
{ {
WriteLine($"case StmtClass.{className}:"); WriteLine($"case Stmt.StmtClass.{className}:");
WriteOpenBraceAndIndent(); WriteOpenBraceAndIndent();
WriteLine($"var _{ParamName} = {className}.__CreateInstance({ParamName}.__Instance);"); WriteLine($"var _{ParamName} = {className}.__CreateInstance({ParamName}.__Instance);");
@ -664,9 +662,9 @@ namespace CppSharp
UnindentAndWriteCloseBrace(); UnindentAndWriteCloseBrace();
} }
WriteLine($"default:"); WriteLine("default:");
WriteLineIndent($"throw new System.NotImplementedException(" + WriteLineIndent("throw new System.NotImplementedException(" +
$"{ParamName}.StmtClass.ToString());"); $"{ParamName}.stmtClass.ToString());");
} }
private void GenerateConverter() private void GenerateConverter()
@ -872,9 +870,6 @@ namespace CppSharp
if (IsInheritedClass(@class)) if (IsInheritedClass(@class))
WriteLine($"{@class.Name}(StmtClass klass);"); WriteLine($"{@class.Name}(StmtClass klass);");
if (@class.Name == "Stmt")
WriteLine("StmtClass stmtClass;");
foreach (var method in @class.Methods) foreach (var method in @class.Methods)
{ {
if (SkipMethod(method)) if (SkipMethod(method))
@ -989,7 +984,7 @@ namespace CppSharp
{ {
foreach (var property in @class.Properties) foreach (var property in @class.Properties)
{ {
if (SkipProperty(property)) if (SkipProperty(property) || property.Name == "stmtClass")
continue; continue;
var typeName = GetDeclTypeName(property); var typeName = GetDeclTypeName(property);
@ -1383,16 +1378,12 @@ namespace CppSharp
return true; return true;
} }
if (property.Name == "beginLoc" || property.Name == "endLoc" && if ((property.Name == "beginLoc" || property.Name == "endLoc") &&
@class.Name != "Stmt") @class.Name != "Stmt")
return true; return true;
switch (property.Name) if (property.Name == "stmtClassName")
{ return true;
case "stmtClass":
case "stmtClassName":
return true;
}
var typeName = property.Type.Visit(CppTypePrinter).Type; var typeName = property.Type.Visit(CppTypePrinter).Type;
@ -1653,6 +1644,7 @@ namespace CppSharp
case "literalOperatorKind": case "literalOperatorKind":
case "initializationStyle": case "initializationStyle":
case "capturedStmt": case "capturedStmt":
case "stmtClass":
hasConflict = true; hasConflict = true;
break; break;
} }

95
src/CppParser/ParseExpr.cpp

@ -26,6 +26,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ConstantExpr*>(llvm::cast<clang::ConstantExpr>(Expr)); auto S = const_cast<clang::ConstantExpr*>(llvm::cast<clang::ConstantExpr>(Expr));
auto _S = new AST::ConstantExpr(); auto _S = new AST::ConstantExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -48,6 +49,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::OpaqueValueExpr*>(llvm::cast<clang::OpaqueValueExpr>(Expr)); auto S = const_cast<clang::OpaqueValueExpr*>(llvm::cast<clang::OpaqueValueExpr>(Expr));
auto _S = new AST::OpaqueValueExpr(); auto _S = new AST::OpaqueValueExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -71,6 +73,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::DeclRefExpr*>(llvm::cast<clang::DeclRefExpr>(Expr)); auto S = const_cast<clang::DeclRefExpr*>(llvm::cast<clang::DeclRefExpr>(Expr));
auto _S = new AST::DeclRefExpr(); auto _S = new AST::DeclRefExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -100,6 +103,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::IntegerLiteral*>(llvm::cast<clang::IntegerLiteral>(Expr)); auto S = const_cast<clang::IntegerLiteral*>(llvm::cast<clang::IntegerLiteral>(Expr));
auto _S = new AST::IntegerLiteral(); auto _S = new AST::IntegerLiteral();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -122,6 +126,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::FixedPointLiteral*>(llvm::cast<clang::FixedPointLiteral>(Expr)); auto S = const_cast<clang::FixedPointLiteral*>(llvm::cast<clang::FixedPointLiteral>(Expr));
auto _S = new AST::FixedPointLiteral(); auto _S = new AST::FixedPointLiteral();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -144,6 +149,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CharacterLiteral*>(llvm::cast<clang::CharacterLiteral>(Expr)); auto S = const_cast<clang::CharacterLiteral*>(llvm::cast<clang::CharacterLiteral>(Expr));
auto _S = new AST::CharacterLiteral(); auto _S = new AST::CharacterLiteral();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -167,6 +173,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::FloatingLiteral*>(llvm::cast<clang::FloatingLiteral>(Expr)); auto S = const_cast<clang::FloatingLiteral*>(llvm::cast<clang::FloatingLiteral>(Expr));
auto _S = new AST::FloatingLiteral(); auto _S = new AST::FloatingLiteral();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -190,6 +197,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ImaginaryLiteral*>(llvm::cast<clang::ImaginaryLiteral>(Expr)); auto S = const_cast<clang::ImaginaryLiteral*>(llvm::cast<clang::ImaginaryLiteral>(Expr));
auto _S = new AST::ImaginaryLiteral(); auto _S = new AST::ImaginaryLiteral();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -212,6 +220,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::StringLiteral*>(llvm::cast<clang::StringLiteral>(Expr)); auto S = const_cast<clang::StringLiteral*>(llvm::cast<clang::StringLiteral>(Expr));
auto _S = new AST::StringLiteral(); auto _S = new AST::StringLiteral();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -248,6 +257,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::PredefinedExpr*>(llvm::cast<clang::PredefinedExpr>(Expr)); auto S = const_cast<clang::PredefinedExpr*>(llvm::cast<clang::PredefinedExpr>(Expr));
auto _S = new AST::PredefinedExpr(); auto _S = new AST::PredefinedExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -270,6 +280,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ParenExpr*>(llvm::cast<clang::ParenExpr>(Expr)); auto S = const_cast<clang::ParenExpr*>(llvm::cast<clang::ParenExpr>(Expr));
auto _S = new AST::ParenExpr(); auto _S = new AST::ParenExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -292,6 +303,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::UnaryOperator*>(llvm::cast<clang::UnaryOperator>(Expr)); auto S = const_cast<clang::UnaryOperator*>(llvm::cast<clang::UnaryOperator>(Expr));
auto _S = new AST::UnaryOperator(); auto _S = new AST::UnaryOperator();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -322,6 +334,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::OffsetOfExpr*>(llvm::cast<clang::OffsetOfExpr>(Expr)); auto S = const_cast<clang::OffsetOfExpr*>(llvm::cast<clang::OffsetOfExpr>(Expr));
auto _S = new AST::OffsetOfExpr(); auto _S = new AST::OffsetOfExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -345,6 +358,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::UnaryExprOrTypeTraitExpr*>(llvm::cast<clang::UnaryExprOrTypeTraitExpr>(Expr)); auto S = const_cast<clang::UnaryExprOrTypeTraitExpr*>(llvm::cast<clang::UnaryExprOrTypeTraitExpr>(Expr));
auto _S = new AST::UnaryExprOrTypeTraitExpr(); auto _S = new AST::UnaryExprOrTypeTraitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -372,6 +386,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ArraySubscriptExpr*>(llvm::cast<clang::ArraySubscriptExpr>(Expr)); auto S = const_cast<clang::ArraySubscriptExpr*>(llvm::cast<clang::ArraySubscriptExpr>(Expr));
auto _S = new AST::ArraySubscriptExpr(); auto _S = new AST::ArraySubscriptExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -397,6 +412,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CallExpr*>(llvm::cast<clang::CallExpr>(Expr)); auto S = const_cast<clang::CallExpr*>(llvm::cast<clang::CallExpr>(Expr));
auto _S = new AST::CallExpr(); auto _S = new AST::CallExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -430,6 +446,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::MemberExpr*>(llvm::cast<clang::MemberExpr>(Expr)); auto S = const_cast<clang::MemberExpr*>(llvm::cast<clang::MemberExpr>(Expr));
auto _S = new AST::MemberExpr(); auto _S = new AST::MemberExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -459,6 +476,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CompoundLiteralExpr*>(llvm::cast<clang::CompoundLiteralExpr>(Expr)); auto S = const_cast<clang::CompoundLiteralExpr*>(llvm::cast<clang::CompoundLiteralExpr>(Expr));
auto _S = new AST::CompoundLiteralExpr(); auto _S = new AST::CompoundLiteralExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -482,6 +500,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ImplicitCastExpr*>(llvm::cast<clang::ImplicitCastExpr>(Expr)); auto S = const_cast<clang::ImplicitCastExpr*>(llvm::cast<clang::ImplicitCastExpr>(Expr));
auto _S = new AST::ImplicitCastExpr(); auto _S = new AST::ImplicitCastExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -511,6 +530,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CStyleCastExpr*>(llvm::cast<clang::CStyleCastExpr>(Expr)); auto S = const_cast<clang::CStyleCastExpr*>(llvm::cast<clang::CStyleCastExpr>(Expr));
auto _S = new AST::CStyleCastExpr(); auto _S = new AST::CStyleCastExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -540,6 +560,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::BinaryOperator*>(llvm::cast<clang::BinaryOperator>(Expr)); auto S = const_cast<clang::BinaryOperator*>(llvm::cast<clang::BinaryOperator>(Expr));
auto _S = new AST::BinaryOperator(); auto _S = new AST::BinaryOperator();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -579,6 +600,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CompoundAssignOperator*>(llvm::cast<clang::CompoundAssignOperator>(Expr)); auto S = const_cast<clang::CompoundAssignOperator*>(llvm::cast<clang::CompoundAssignOperator>(Expr));
auto _S = new AST::CompoundAssignOperator(); auto _S = new AST::CompoundAssignOperator();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -620,6 +642,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ConditionalOperator*>(llvm::cast<clang::ConditionalOperator>(Expr)); auto S = const_cast<clang::ConditionalOperator*>(llvm::cast<clang::ConditionalOperator>(Expr));
auto _S = new AST::ConditionalOperator(); auto _S = new AST::ConditionalOperator();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -649,6 +672,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::BinaryConditionalOperator*>(llvm::cast<clang::BinaryConditionalOperator>(Expr)); auto S = const_cast<clang::BinaryConditionalOperator*>(llvm::cast<clang::BinaryConditionalOperator>(Expr));
auto _S = new AST::BinaryConditionalOperator(); auto _S = new AST::BinaryConditionalOperator();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -678,6 +702,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::AddrLabelExpr*>(llvm::cast<clang::AddrLabelExpr>(Expr)); auto S = const_cast<clang::AddrLabelExpr*>(llvm::cast<clang::AddrLabelExpr>(Expr));
auto _S = new AST::AddrLabelExpr(); auto _S = new AST::AddrLabelExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -699,6 +724,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::StmtExpr*>(llvm::cast<clang::StmtExpr>(Expr)); auto S = const_cast<clang::StmtExpr*>(llvm::cast<clang::StmtExpr>(Expr));
auto _S = new AST::StmtExpr(); auto _S = new AST::StmtExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -721,6 +747,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ShuffleVectorExpr*>(llvm::cast<clang::ShuffleVectorExpr>(Expr)); auto S = const_cast<clang::ShuffleVectorExpr*>(llvm::cast<clang::ShuffleVectorExpr>(Expr));
auto _S = new AST::ShuffleVectorExpr(); auto _S = new AST::ShuffleVectorExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -743,6 +770,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ConvertVectorExpr*>(llvm::cast<clang::ConvertVectorExpr>(Expr)); auto S = const_cast<clang::ConvertVectorExpr*>(llvm::cast<clang::ConvertVectorExpr>(Expr));
auto _S = new AST::ConvertVectorExpr(); auto _S = new AST::ConvertVectorExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -765,6 +793,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ChooseExpr*>(llvm::cast<clang::ChooseExpr>(Expr)); auto S = const_cast<clang::ChooseExpr*>(llvm::cast<clang::ChooseExpr>(Expr));
auto _S = new AST::ChooseExpr(); auto _S = new AST::ChooseExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -792,6 +821,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::GNUNullExpr*>(llvm::cast<clang::GNUNullExpr>(Expr)); auto S = const_cast<clang::GNUNullExpr*>(llvm::cast<clang::GNUNullExpr>(Expr));
auto _S = new AST::GNUNullExpr(); auto _S = new AST::GNUNullExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -813,6 +843,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::VAArgExpr*>(llvm::cast<clang::VAArgExpr>(Expr)); auto S = const_cast<clang::VAArgExpr*>(llvm::cast<clang::VAArgExpr>(Expr));
auto _S = new AST::VAArgExpr(); auto _S = new AST::VAArgExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -836,6 +867,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::InitListExpr*>(llvm::cast<clang::InitListExpr>(Expr)); auto S = const_cast<clang::InitListExpr*>(llvm::cast<clang::InitListExpr>(Expr));
auto _S = new AST::InitListExpr(); auto _S = new AST::InitListExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -869,6 +901,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::DesignatedInitExpr*>(llvm::cast<clang::DesignatedInitExpr>(Expr)); auto S = const_cast<clang::DesignatedInitExpr*>(llvm::cast<clang::DesignatedInitExpr>(Expr));
auto _S = new AST::DesignatedInitExpr(); auto _S = new AST::DesignatedInitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -894,6 +927,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::NoInitExpr*>(llvm::cast<clang::NoInitExpr>(Expr)); auto S = const_cast<clang::NoInitExpr*>(llvm::cast<clang::NoInitExpr>(Expr));
auto _S = new AST::NoInitExpr(); auto _S = new AST::NoInitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -915,6 +949,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::DesignatedInitUpdateExpr*>(llvm::cast<clang::DesignatedInitUpdateExpr>(Expr)); auto S = const_cast<clang::DesignatedInitUpdateExpr*>(llvm::cast<clang::DesignatedInitUpdateExpr>(Expr));
auto _S = new AST::DesignatedInitUpdateExpr(); auto _S = new AST::DesignatedInitUpdateExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -938,6 +973,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ArrayInitLoopExpr*>(llvm::cast<clang::ArrayInitLoopExpr>(Expr)); auto S = const_cast<clang::ArrayInitLoopExpr*>(llvm::cast<clang::ArrayInitLoopExpr>(Expr));
auto _S = new AST::ArrayInitLoopExpr(); auto _S = new AST::ArrayInitLoopExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -961,6 +997,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ArrayInitIndexExpr*>(llvm::cast<clang::ArrayInitIndexExpr>(Expr)); auto S = const_cast<clang::ArrayInitIndexExpr*>(llvm::cast<clang::ArrayInitIndexExpr>(Expr));
auto _S = new AST::ArrayInitIndexExpr(); auto _S = new AST::ArrayInitIndexExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -982,6 +1019,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ImplicitValueInitExpr*>(llvm::cast<clang::ImplicitValueInitExpr>(Expr)); auto S = const_cast<clang::ImplicitValueInitExpr*>(llvm::cast<clang::ImplicitValueInitExpr>(Expr));
auto _S = new AST::ImplicitValueInitExpr(); auto _S = new AST::ImplicitValueInitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1003,6 +1041,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ParenListExpr*>(llvm::cast<clang::ParenListExpr>(Expr)); auto S = const_cast<clang::ParenListExpr*>(llvm::cast<clang::ParenListExpr>(Expr));
auto _S = new AST::ParenListExpr(); auto _S = new AST::ParenListExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1025,6 +1064,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::GenericSelectionExpr*>(llvm::cast<clang::GenericSelectionExpr>(Expr)); auto S = const_cast<clang::GenericSelectionExpr*>(llvm::cast<clang::GenericSelectionExpr>(Expr));
auto _S = new AST::GenericSelectionExpr(); auto _S = new AST::GenericSelectionExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1051,6 +1091,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ExtVectorElementExpr*>(llvm::cast<clang::ExtVectorElementExpr>(Expr)); auto S = const_cast<clang::ExtVectorElementExpr*>(llvm::cast<clang::ExtVectorElementExpr>(Expr));
auto _S = new AST::ExtVectorElementExpr(); auto _S = new AST::ExtVectorElementExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1076,6 +1117,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::BlockExpr*>(llvm::cast<clang::BlockExpr>(Expr)); auto S = const_cast<clang::BlockExpr*>(llvm::cast<clang::BlockExpr>(Expr));
auto _S = new AST::BlockExpr(); auto _S = new AST::BlockExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1098,6 +1140,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::AsTypeExpr*>(llvm::cast<clang::AsTypeExpr>(Expr)); auto S = const_cast<clang::AsTypeExpr*>(llvm::cast<clang::AsTypeExpr>(Expr));
auto _S = new AST::AsTypeExpr(); auto _S = new AST::AsTypeExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1120,6 +1163,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::PseudoObjectExpr*>(llvm::cast<clang::PseudoObjectExpr>(Expr)); auto S = const_cast<clang::PseudoObjectExpr*>(llvm::cast<clang::PseudoObjectExpr>(Expr));
auto _S = new AST::PseudoObjectExpr(); auto _S = new AST::PseudoObjectExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1145,6 +1189,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::AtomicExpr*>(llvm::cast<clang::AtomicExpr>(Expr)); auto S = const_cast<clang::AtomicExpr*>(llvm::cast<clang::AtomicExpr>(Expr));
auto _S = new AST::AtomicExpr(); auto _S = new AST::AtomicExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1179,6 +1224,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::TypoExpr*>(llvm::cast<clang::TypoExpr>(Expr)); auto S = const_cast<clang::TypoExpr*>(llvm::cast<clang::TypoExpr>(Expr));
auto _S = new AST::TypoExpr(); auto _S = new AST::TypoExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1200,6 +1246,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXOperatorCallExpr*>(llvm::cast<clang::CXXOperatorCallExpr>(Expr)); auto S = const_cast<clang::CXXOperatorCallExpr*>(llvm::cast<clang::CXXOperatorCallExpr>(Expr));
auto _S = new AST::CXXOperatorCallExpr(); auto _S = new AST::CXXOperatorCallExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1237,6 +1284,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXMemberCallExpr*>(llvm::cast<clang::CXXMemberCallExpr>(Expr)); auto S = const_cast<clang::CXXMemberCallExpr*>(llvm::cast<clang::CXXMemberCallExpr>(Expr));
auto _S = new AST::CXXMemberCallExpr(); auto _S = new AST::CXXMemberCallExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1272,6 +1320,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CUDAKernelCallExpr*>(llvm::cast<clang::CUDAKernelCallExpr>(Expr)); auto S = const_cast<clang::CUDAKernelCallExpr*>(llvm::cast<clang::CUDAKernelCallExpr>(Expr));
auto _S = new AST::CUDAKernelCallExpr(); auto _S = new AST::CUDAKernelCallExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1306,6 +1355,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXStaticCastExpr*>(llvm::cast<clang::CXXStaticCastExpr>(Expr)); auto S = const_cast<clang::CXXStaticCastExpr*>(llvm::cast<clang::CXXStaticCastExpr>(Expr));
auto _S = new AST::CXXStaticCastExpr(); auto _S = new AST::CXXStaticCastExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1336,6 +1386,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXDynamicCastExpr*>(llvm::cast<clang::CXXDynamicCastExpr>(Expr)); auto S = const_cast<clang::CXXDynamicCastExpr*>(llvm::cast<clang::CXXDynamicCastExpr>(Expr));
auto _S = new AST::CXXDynamicCastExpr(); auto _S = new AST::CXXDynamicCastExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1367,6 +1418,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXReinterpretCastExpr*>(llvm::cast<clang::CXXReinterpretCastExpr>(Expr)); auto S = const_cast<clang::CXXReinterpretCastExpr*>(llvm::cast<clang::CXXReinterpretCastExpr>(Expr));
auto _S = new AST::CXXReinterpretCastExpr(); auto _S = new AST::CXXReinterpretCastExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1397,6 +1449,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXConstCastExpr*>(llvm::cast<clang::CXXConstCastExpr>(Expr)); auto S = const_cast<clang::CXXConstCastExpr*>(llvm::cast<clang::CXXConstCastExpr>(Expr));
auto _S = new AST::CXXConstCastExpr(); auto _S = new AST::CXXConstCastExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1427,6 +1480,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::UserDefinedLiteral*>(llvm::cast<clang::UserDefinedLiteral>(Expr)); auto S = const_cast<clang::UserDefinedLiteral*>(llvm::cast<clang::UserDefinedLiteral>(Expr));
auto _S = new AST::UserDefinedLiteral(); auto _S = new AST::UserDefinedLiteral();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1462,6 +1516,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXBoolLiteralExpr*>(llvm::cast<clang::CXXBoolLiteralExpr>(Expr)); auto S = const_cast<clang::CXXBoolLiteralExpr*>(llvm::cast<clang::CXXBoolLiteralExpr>(Expr));
auto _S = new AST::CXXBoolLiteralExpr(); auto _S = new AST::CXXBoolLiteralExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1484,6 +1539,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXNullPtrLiteralExpr*>(llvm::cast<clang::CXXNullPtrLiteralExpr>(Expr)); auto S = const_cast<clang::CXXNullPtrLiteralExpr*>(llvm::cast<clang::CXXNullPtrLiteralExpr>(Expr));
auto _S = new AST::CXXNullPtrLiteralExpr(); auto _S = new AST::CXXNullPtrLiteralExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1505,6 +1561,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXStdInitializerListExpr*>(llvm::cast<clang::CXXStdInitializerListExpr>(Expr)); auto S = const_cast<clang::CXXStdInitializerListExpr*>(llvm::cast<clang::CXXStdInitializerListExpr>(Expr));
auto _S = new AST::CXXStdInitializerListExpr(); auto _S = new AST::CXXStdInitializerListExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1527,6 +1584,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXTypeidExpr*>(llvm::cast<clang::CXXTypeidExpr>(Expr)); auto S = const_cast<clang::CXXTypeidExpr*>(llvm::cast<clang::CXXTypeidExpr>(Expr));
auto _S = new AST::CXXTypeidExpr(); auto _S = new AST::CXXTypeidExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1551,6 +1609,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::MSPropertyRefExpr*>(llvm::cast<clang::MSPropertyRefExpr>(Expr)); auto S = const_cast<clang::MSPropertyRefExpr*>(llvm::cast<clang::MSPropertyRefExpr>(Expr));
auto _S = new AST::MSPropertyRefExpr(); auto _S = new AST::MSPropertyRefExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1575,6 +1634,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::MSPropertySubscriptExpr*>(llvm::cast<clang::MSPropertySubscriptExpr>(Expr)); auto S = const_cast<clang::MSPropertySubscriptExpr*>(llvm::cast<clang::MSPropertySubscriptExpr>(Expr));
auto _S = new AST::MSPropertySubscriptExpr(); auto _S = new AST::MSPropertySubscriptExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1598,6 +1658,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXUuidofExpr*>(llvm::cast<clang::CXXUuidofExpr>(Expr)); auto S = const_cast<clang::CXXUuidofExpr*>(llvm::cast<clang::CXXUuidofExpr>(Expr));
auto _S = new AST::CXXUuidofExpr(); auto _S = new AST::CXXUuidofExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1622,6 +1683,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXThisExpr*>(llvm::cast<clang::CXXThisExpr>(Expr)); auto S = const_cast<clang::CXXThisExpr*>(llvm::cast<clang::CXXThisExpr>(Expr));
auto _S = new AST::CXXThisExpr(); auto _S = new AST::CXXThisExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1644,6 +1706,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXThrowExpr*>(llvm::cast<clang::CXXThrowExpr>(Expr)); auto S = const_cast<clang::CXXThrowExpr*>(llvm::cast<clang::CXXThrowExpr>(Expr));
auto _S = new AST::CXXThrowExpr(); auto _S = new AST::CXXThrowExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1667,6 +1730,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXDefaultArgExpr*>(llvm::cast<clang::CXXDefaultArgExpr>(Expr)); auto S = const_cast<clang::CXXDefaultArgExpr*>(llvm::cast<clang::CXXDefaultArgExpr>(Expr));
auto _S = new AST::CXXDefaultArgExpr(); auto _S = new AST::CXXDefaultArgExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1689,6 +1753,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXDefaultInitExpr*>(llvm::cast<clang::CXXDefaultInitExpr>(Expr)); auto S = const_cast<clang::CXXDefaultInitExpr*>(llvm::cast<clang::CXXDefaultInitExpr>(Expr));
auto _S = new AST::CXXDefaultInitExpr(); auto _S = new AST::CXXDefaultInitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1712,6 +1777,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXBindTemporaryExpr*>(llvm::cast<clang::CXXBindTemporaryExpr>(Expr)); auto S = const_cast<clang::CXXBindTemporaryExpr*>(llvm::cast<clang::CXXBindTemporaryExpr>(Expr));
auto _S = new AST::CXXBindTemporaryExpr(); auto _S = new AST::CXXBindTemporaryExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1734,6 +1800,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXConstructExpr*>(llvm::cast<clang::CXXConstructExpr>(Expr)); auto S = const_cast<clang::CXXConstructExpr*>(llvm::cast<clang::CXXConstructExpr>(Expr));
auto _S = new AST::CXXConstructExpr(); auto _S = new AST::CXXConstructExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1766,6 +1833,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXInheritedCtorInitExpr*>(llvm::cast<clang::CXXInheritedCtorInitExpr>(Expr)); auto S = const_cast<clang::CXXInheritedCtorInitExpr*>(llvm::cast<clang::CXXInheritedCtorInitExpr>(Expr));
auto _S = new AST::CXXInheritedCtorInitExpr(); auto _S = new AST::CXXInheritedCtorInitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1789,6 +1857,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXFunctionalCastExpr*>(llvm::cast<clang::CXXFunctionalCastExpr>(Expr)); auto S = const_cast<clang::CXXFunctionalCastExpr*>(llvm::cast<clang::CXXFunctionalCastExpr>(Expr));
auto _S = new AST::CXXFunctionalCastExpr(); auto _S = new AST::CXXFunctionalCastExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1819,6 +1888,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXTemporaryObjectExpr*>(llvm::cast<clang::CXXTemporaryObjectExpr>(Expr)); auto S = const_cast<clang::CXXTemporaryObjectExpr*>(llvm::cast<clang::CXXTemporaryObjectExpr>(Expr));
auto _S = new AST::CXXTemporaryObjectExpr(); auto _S = new AST::CXXTemporaryObjectExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1851,6 +1921,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::LambdaExpr*>(llvm::cast<clang::LambdaExpr>(Expr)); auto S = const_cast<clang::LambdaExpr*>(llvm::cast<clang::LambdaExpr>(Expr));
auto _S = new AST::LambdaExpr(); auto _S = new AST::LambdaExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1884,6 +1955,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXScalarValueInitExpr*>(llvm::cast<clang::CXXScalarValueInitExpr>(Expr)); auto S = const_cast<clang::CXXScalarValueInitExpr*>(llvm::cast<clang::CXXScalarValueInitExpr>(Expr));
auto _S = new AST::CXXScalarValueInitExpr(); auto _S = new AST::CXXScalarValueInitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1905,6 +1977,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXNewExpr*>(llvm::cast<clang::CXXNewExpr>(Expr)); auto S = const_cast<clang::CXXNewExpr*>(llvm::cast<clang::CXXNewExpr>(Expr));
auto _S = new AST::CXXNewExpr(); auto _S = new AST::CXXNewExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1943,6 +2016,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXDeleteExpr*>(llvm::cast<clang::CXXDeleteExpr>(Expr)); auto S = const_cast<clang::CXXDeleteExpr*>(llvm::cast<clang::CXXDeleteExpr>(Expr));
auto _S = new AST::CXXDeleteExpr(); auto _S = new AST::CXXDeleteExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1970,6 +2044,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXPseudoDestructorExpr*>(llvm::cast<clang::CXXPseudoDestructorExpr>(Expr)); auto S = const_cast<clang::CXXPseudoDestructorExpr*>(llvm::cast<clang::CXXPseudoDestructorExpr>(Expr));
auto _S = new AST::CXXPseudoDestructorExpr(); auto _S = new AST::CXXPseudoDestructorExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -1995,6 +2070,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::TypeTraitExpr*>(llvm::cast<clang::TypeTraitExpr>(Expr)); auto S = const_cast<clang::TypeTraitExpr*>(llvm::cast<clang::TypeTraitExpr>(Expr));
auto _S = new AST::TypeTraitExpr(); auto _S = new AST::TypeTraitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2018,6 +2094,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ArrayTypeTraitExpr*>(llvm::cast<clang::ArrayTypeTraitExpr>(Expr)); auto S = const_cast<clang::ArrayTypeTraitExpr*>(llvm::cast<clang::ArrayTypeTraitExpr>(Expr));
auto _S = new AST::ArrayTypeTraitExpr(); auto _S = new AST::ArrayTypeTraitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2042,6 +2119,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ExpressionTraitExpr*>(llvm::cast<clang::ExpressionTraitExpr>(Expr)); auto S = const_cast<clang::ExpressionTraitExpr*>(llvm::cast<clang::ExpressionTraitExpr>(Expr));
auto _S = new AST::ExpressionTraitExpr(); auto _S = new AST::ExpressionTraitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2065,6 +2143,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::UnresolvedLookupExpr*>(llvm::cast<clang::UnresolvedLookupExpr>(Expr)); auto S = const_cast<clang::UnresolvedLookupExpr*>(llvm::cast<clang::UnresolvedLookupExpr>(Expr));
auto _S = new AST::UnresolvedLookupExpr(); auto _S = new AST::UnresolvedLookupExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2092,6 +2171,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::DependentScopeDeclRefExpr*>(llvm::cast<clang::DependentScopeDeclRefExpr>(Expr)); auto S = const_cast<clang::DependentScopeDeclRefExpr*>(llvm::cast<clang::DependentScopeDeclRefExpr>(Expr));
auto _S = new AST::DependentScopeDeclRefExpr(); auto _S = new AST::DependentScopeDeclRefExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2116,6 +2196,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::ExprWithCleanups*>(llvm::cast<clang::ExprWithCleanups>(Expr)); auto S = const_cast<clang::ExprWithCleanups*>(llvm::cast<clang::ExprWithCleanups>(Expr));
auto _S = new AST::ExprWithCleanups(); auto _S = new AST::ExprWithCleanups();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2140,6 +2221,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXUnresolvedConstructExpr*>(llvm::cast<clang::CXXUnresolvedConstructExpr>(Expr)); auto S = const_cast<clang::CXXUnresolvedConstructExpr*>(llvm::cast<clang::CXXUnresolvedConstructExpr>(Expr));
auto _S = new AST::CXXUnresolvedConstructExpr(); auto _S = new AST::CXXUnresolvedConstructExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2169,6 +2251,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXDependentScopeMemberExpr*>(llvm::cast<clang::CXXDependentScopeMemberExpr>(Expr)); auto S = const_cast<clang::CXXDependentScopeMemberExpr*>(llvm::cast<clang::CXXDependentScopeMemberExpr>(Expr));
auto _S = new AST::CXXDependentScopeMemberExpr(); auto _S = new AST::CXXDependentScopeMemberExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2198,6 +2281,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::UnresolvedMemberExpr*>(llvm::cast<clang::UnresolvedMemberExpr>(Expr)); auto S = const_cast<clang::UnresolvedMemberExpr*>(llvm::cast<clang::UnresolvedMemberExpr>(Expr));
auto _S = new AST::UnresolvedMemberExpr(); auto _S = new AST::UnresolvedMemberExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2228,6 +2312,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXNoexceptExpr*>(llvm::cast<clang::CXXNoexceptExpr>(Expr)); auto S = const_cast<clang::CXXNoexceptExpr*>(llvm::cast<clang::CXXNoexceptExpr>(Expr));
auto _S = new AST::CXXNoexceptExpr(); auto _S = new AST::CXXNoexceptExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2251,6 +2336,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::PackExpansionExpr*>(llvm::cast<clang::PackExpansionExpr>(Expr)); auto S = const_cast<clang::PackExpansionExpr*>(llvm::cast<clang::PackExpansionExpr>(Expr));
auto _S = new AST::PackExpansionExpr(); auto _S = new AST::PackExpansionExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2273,6 +2359,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::SizeOfPackExpr*>(llvm::cast<clang::SizeOfPackExpr>(Expr)); auto S = const_cast<clang::SizeOfPackExpr*>(llvm::cast<clang::SizeOfPackExpr>(Expr));
auto _S = new AST::SizeOfPackExpr(); auto _S = new AST::SizeOfPackExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2297,6 +2384,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::SubstNonTypeTemplateParmExpr*>(llvm::cast<clang::SubstNonTypeTemplateParmExpr>(Expr)); auto S = const_cast<clang::SubstNonTypeTemplateParmExpr*>(llvm::cast<clang::SubstNonTypeTemplateParmExpr>(Expr));
auto _S = new AST::SubstNonTypeTemplateParmExpr(); auto _S = new AST::SubstNonTypeTemplateParmExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2319,6 +2407,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::SubstNonTypeTemplateParmPackExpr*>(llvm::cast<clang::SubstNonTypeTemplateParmPackExpr>(Expr)); auto S = const_cast<clang::SubstNonTypeTemplateParmPackExpr*>(llvm::cast<clang::SubstNonTypeTemplateParmPackExpr>(Expr));
auto _S = new AST::SubstNonTypeTemplateParmPackExpr(); auto _S = new AST::SubstNonTypeTemplateParmPackExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2341,6 +2430,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::FunctionParmPackExpr*>(llvm::cast<clang::FunctionParmPackExpr>(Expr)); auto S = const_cast<clang::FunctionParmPackExpr*>(llvm::cast<clang::FunctionParmPackExpr>(Expr));
auto _S = new AST::FunctionParmPackExpr(); auto _S = new AST::FunctionParmPackExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2363,6 +2453,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::MaterializeTemporaryExpr*>(llvm::cast<clang::MaterializeTemporaryExpr>(Expr)); auto S = const_cast<clang::MaterializeTemporaryExpr*>(llvm::cast<clang::MaterializeTemporaryExpr>(Expr));
auto _S = new AST::MaterializeTemporaryExpr(); auto _S = new AST::MaterializeTemporaryExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2388,6 +2479,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CXXFoldExpr*>(llvm::cast<clang::CXXFoldExpr>(Expr)); auto S = const_cast<clang::CXXFoldExpr*>(llvm::cast<clang::CXXFoldExpr>(Expr));
auto _S = new AST::CXXFoldExpr(); auto _S = new AST::CXXFoldExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2416,6 +2508,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CoawaitExpr*>(llvm::cast<clang::CoawaitExpr>(Expr)); auto S = const_cast<clang::CoawaitExpr*>(llvm::cast<clang::CoawaitExpr>(Expr));
auto _S = new AST::CoawaitExpr(); auto _S = new AST::CoawaitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2444,6 +2537,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::DependentCoawaitExpr*>(llvm::cast<clang::DependentCoawaitExpr>(Expr)); auto S = const_cast<clang::DependentCoawaitExpr*>(llvm::cast<clang::DependentCoawaitExpr>(Expr));
auto _S = new AST::DependentCoawaitExpr(); auto _S = new AST::DependentCoawaitExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();
@ -2467,6 +2561,7 @@ AST::Expr* Parser::WalkExpression(const clang::Expr* Expr)
{ {
auto S = const_cast<clang::CoyieldExpr*>(llvm::cast<clang::CoyieldExpr>(Expr)); auto S = const_cast<clang::CoyieldExpr*>(llvm::cast<clang::CoyieldExpr>(Expr));
auto _S = new AST::CoyieldExpr(); auto _S = new AST::CoyieldExpr();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->type = GetQualifiedType(S->getType()); _S->type = GetQualifiedType(S->getType());
_S->valueDependent = S->isValueDependent(); _S->valueDependent = S->isValueDependent();

30
src/CppParser/ParseStmt.cpp

@ -26,6 +26,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::DeclStmt*>(llvm::cast<clang::DeclStmt>(Stmt)); auto S = const_cast<clang::DeclStmt*>(llvm::cast<clang::DeclStmt>(Stmt));
auto _S = new AST::DeclStmt(); auto _S = new AST::DeclStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->isSingleDecl = S->isSingleDecl(); _S->isSingleDecl = S->isSingleDecl();
if (S->isSingleDecl()) if (S->isSingleDecl())
@ -42,6 +43,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::NullStmt*>(llvm::cast<clang::NullStmt>(Stmt)); auto S = const_cast<clang::NullStmt*>(llvm::cast<clang::NullStmt>(Stmt));
auto _S = new AST::NullStmt(); auto _S = new AST::NullStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->hasLeadingEmptyMacro = S->hasLeadingEmptyMacro(); _S->hasLeadingEmptyMacro = S->hasLeadingEmptyMacro();
_Stmt = _S; _Stmt = _S;
@ -51,6 +53,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::CompoundStmt*>(llvm::cast<clang::CompoundStmt>(Stmt)); auto S = const_cast<clang::CompoundStmt*>(llvm::cast<clang::CompoundStmt>(Stmt));
auto _S = new AST::CompoundStmt(); auto _S = new AST::CompoundStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->body_empty = S->body_empty(); _S->body_empty = S->body_empty();
_S->size = S->size(); _S->size = S->size();
@ -68,6 +71,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::CaseStmt*>(llvm::cast<clang::CaseStmt>(Stmt)); auto S = const_cast<clang::CaseStmt*>(llvm::cast<clang::CaseStmt>(Stmt));
auto _S = new AST::CaseStmt(); auto _S = new AST::CaseStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt())); _S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt()));
_S->lHS = static_cast<AST::Expr*>(WalkExpression(S->getLHS())); _S->lHS = static_cast<AST::Expr*>(WalkExpression(S->getLHS()));
@ -81,6 +85,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::DefaultStmt*>(llvm::cast<clang::DefaultStmt>(Stmt)); auto S = const_cast<clang::DefaultStmt*>(llvm::cast<clang::DefaultStmt>(Stmt));
auto _S = new AST::DefaultStmt(); auto _S = new AST::DefaultStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt())); _S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt()));
_S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt())); _S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt()));
@ -91,6 +96,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::LabelStmt*>(llvm::cast<clang::LabelStmt>(Stmt)); auto S = const_cast<clang::LabelStmt*>(llvm::cast<clang::LabelStmt>(Stmt));
auto _S = new AST::LabelStmt(); auto _S = new AST::LabelStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt())); _S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt()));
_S->name = S->getName(); _S->name = S->getName();
@ -101,6 +107,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::AttributedStmt*>(llvm::cast<clang::AttributedStmt>(Stmt)); auto S = const_cast<clang::AttributedStmt*>(llvm::cast<clang::AttributedStmt>(Stmt));
auto _S = new AST::AttributedStmt(); auto _S = new AST::AttributedStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt())); _S->subStmt = static_cast<AST::Stmt*>(WalkStatement(S->getSubStmt()));
_Stmt = _S; _Stmt = _S;
@ -110,6 +117,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::IfStmt*>(llvm::cast<clang::IfStmt>(Stmt)); auto S = const_cast<clang::IfStmt*>(llvm::cast<clang::IfStmt>(Stmt));
auto _S = new AST::IfStmt(); auto _S = new AST::IfStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); _S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond()));
_S->then = static_cast<AST::Stmt*>(WalkStatement(S->getThen())); _S->then = static_cast<AST::Stmt*>(WalkStatement(S->getThen()));
@ -128,6 +136,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::SwitchStmt*>(llvm::cast<clang::SwitchStmt>(Stmt)); auto S = const_cast<clang::SwitchStmt*>(llvm::cast<clang::SwitchStmt>(Stmt));
auto _S = new AST::SwitchStmt(); auto _S = new AST::SwitchStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); _S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond()));
_S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody())); _S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody()));
@ -143,6 +152,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::WhileStmt*>(llvm::cast<clang::WhileStmt>(Stmt)); auto S = const_cast<clang::WhileStmt*>(llvm::cast<clang::WhileStmt>(Stmt));
auto _S = new AST::WhileStmt(); auto _S = new AST::WhileStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); _S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond()));
_S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody())); _S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody()));
@ -155,6 +165,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::DoStmt*>(llvm::cast<clang::DoStmt>(Stmt)); auto S = const_cast<clang::DoStmt*>(llvm::cast<clang::DoStmt>(Stmt));
auto _S = new AST::DoStmt(); auto _S = new AST::DoStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); _S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond()));
_S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody())); _S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody()));
@ -165,6 +176,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::ForStmt*>(llvm::cast<clang::ForStmt>(Stmt)); auto S = const_cast<clang::ForStmt*>(llvm::cast<clang::ForStmt>(Stmt));
auto _S = new AST::ForStmt(); auto _S = new AST::ForStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->init = static_cast<AST::Stmt*>(WalkStatement(S->getInit())); _S->init = static_cast<AST::Stmt*>(WalkStatement(S->getInit()));
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); _S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond()));
@ -178,6 +190,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::GotoStmt*>(llvm::cast<clang::GotoStmt>(Stmt)); auto S = const_cast<clang::GotoStmt*>(llvm::cast<clang::GotoStmt>(Stmt));
auto _S = new AST::GotoStmt(); auto _S = new AST::GotoStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_Stmt = _S; _Stmt = _S;
break; break;
@ -186,6 +199,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::IndirectGotoStmt*>(llvm::cast<clang::IndirectGotoStmt>(Stmt)); auto S = const_cast<clang::IndirectGotoStmt*>(llvm::cast<clang::IndirectGotoStmt>(Stmt));
auto _S = new AST::IndirectGotoStmt(); auto _S = new AST::IndirectGotoStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->target = static_cast<AST::Expr*>(WalkExpression(S->getTarget())); _S->target = static_cast<AST::Expr*>(WalkExpression(S->getTarget()));
_Stmt = _S; _Stmt = _S;
@ -195,6 +209,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::ContinueStmt*>(llvm::cast<clang::ContinueStmt>(Stmt)); auto S = const_cast<clang::ContinueStmt*>(llvm::cast<clang::ContinueStmt>(Stmt));
auto _S = new AST::ContinueStmt(); auto _S = new AST::ContinueStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_Stmt = _S; _Stmt = _S;
break; break;
@ -203,6 +218,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::BreakStmt*>(llvm::cast<clang::BreakStmt>(Stmt)); auto S = const_cast<clang::BreakStmt*>(llvm::cast<clang::BreakStmt>(Stmt));
auto _S = new AST::BreakStmt(); auto _S = new AST::BreakStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_Stmt = _S; _Stmt = _S;
break; break;
@ -211,6 +227,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::ReturnStmt*>(llvm::cast<clang::ReturnStmt>(Stmt)); auto S = const_cast<clang::ReturnStmt*>(llvm::cast<clang::ReturnStmt>(Stmt));
auto _S = new AST::ReturnStmt(); auto _S = new AST::ReturnStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->retValue = static_cast<AST::Expr*>(WalkExpression(S->getRetValue())); _S->retValue = static_cast<AST::Expr*>(WalkExpression(S->getRetValue()));
_Stmt = _S; _Stmt = _S;
@ -220,6 +237,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::GCCAsmStmt*>(llvm::cast<clang::GCCAsmStmt>(Stmt)); auto S = const_cast<clang::GCCAsmStmt*>(llvm::cast<clang::GCCAsmStmt>(Stmt));
auto _S = new AST::GCCAsmStmt(); auto _S = new AST::GCCAsmStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->simple = S->isSimple(); _S->simple = S->isSimple();
_S->_volatile = S->isVolatile(); _S->_volatile = S->isVolatile();
@ -244,6 +262,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::MSAsmStmt*>(llvm::cast<clang::MSAsmStmt>(Stmt)); auto S = const_cast<clang::MSAsmStmt*>(llvm::cast<clang::MSAsmStmt>(Stmt));
auto _S = new AST::MSAsmStmt(); auto _S = new AST::MSAsmStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->simple = S->isSimple(); _S->simple = S->isSimple();
_S->_volatile = S->isVolatile(); _S->_volatile = S->isVolatile();
@ -271,6 +290,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::SEHExceptStmt*>(llvm::cast<clang::SEHExceptStmt>(Stmt)); auto S = const_cast<clang::SEHExceptStmt*>(llvm::cast<clang::SEHExceptStmt>(Stmt));
auto _S = new AST::SEHExceptStmt(); auto _S = new AST::SEHExceptStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->filterExpr = static_cast<AST::Expr*>(WalkExpression(S->getFilterExpr())); _S->filterExpr = static_cast<AST::Expr*>(WalkExpression(S->getFilterExpr()));
_S->block = static_cast<AST::CompoundStmt*>(WalkStatement(S->getBlock())); _S->block = static_cast<AST::CompoundStmt*>(WalkStatement(S->getBlock()));
@ -281,6 +301,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::SEHFinallyStmt*>(llvm::cast<clang::SEHFinallyStmt>(Stmt)); auto S = const_cast<clang::SEHFinallyStmt*>(llvm::cast<clang::SEHFinallyStmt>(Stmt));
auto _S = new AST::SEHFinallyStmt(); auto _S = new AST::SEHFinallyStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->block = static_cast<AST::CompoundStmt*>(WalkStatement(S->getBlock())); _S->block = static_cast<AST::CompoundStmt*>(WalkStatement(S->getBlock()));
_Stmt = _S; _Stmt = _S;
@ -290,6 +311,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::SEHTryStmt*>(llvm::cast<clang::SEHTryStmt>(Stmt)); auto S = const_cast<clang::SEHTryStmt*>(llvm::cast<clang::SEHTryStmt>(Stmt));
auto _S = new AST::SEHTryStmt(); auto _S = new AST::SEHTryStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->isCXXTry = S->getIsCXXTry(); _S->isCXXTry = S->getIsCXXTry();
_S->tryBlock = static_cast<AST::CompoundStmt*>(WalkStatement(S->getTryBlock())); _S->tryBlock = static_cast<AST::CompoundStmt*>(WalkStatement(S->getTryBlock()));
@ -303,6 +325,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::SEHLeaveStmt*>(llvm::cast<clang::SEHLeaveStmt>(Stmt)); auto S = const_cast<clang::SEHLeaveStmt*>(llvm::cast<clang::SEHLeaveStmt>(Stmt));
auto _S = new AST::SEHLeaveStmt(); auto _S = new AST::SEHLeaveStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_Stmt = _S; _Stmt = _S;
break; break;
@ -311,6 +334,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::CapturedStmt*>(llvm::cast<clang::CapturedStmt>(Stmt)); auto S = const_cast<clang::CapturedStmt*>(llvm::cast<clang::CapturedStmt>(Stmt));
auto _S = new AST::CapturedStmt(); auto _S = new AST::CapturedStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->capturedStmt = static_cast<AST::Stmt*>(WalkStatement(S->getCapturedStmt())); _S->capturedStmt = static_cast<AST::Stmt*>(WalkStatement(S->getCapturedStmt()));
_S->capture_size = S->capture_size(); _S->capture_size = S->capture_size();
@ -326,6 +350,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::CXXCatchStmt*>(llvm::cast<clang::CXXCatchStmt>(Stmt)); auto S = const_cast<clang::CXXCatchStmt*>(llvm::cast<clang::CXXCatchStmt>(Stmt));
auto _S = new AST::CXXCatchStmt(); auto _S = new AST::CXXCatchStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->caughtType = GetQualifiedType(S->getCaughtType()); _S->caughtType = GetQualifiedType(S->getCaughtType());
_S->handlerBlock = static_cast<AST::Stmt*>(WalkStatement(S->getHandlerBlock())); _S->handlerBlock = static_cast<AST::Stmt*>(WalkStatement(S->getHandlerBlock()));
@ -336,6 +361,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::CXXTryStmt*>(llvm::cast<clang::CXXTryStmt>(Stmt)); auto S = const_cast<clang::CXXTryStmt*>(llvm::cast<clang::CXXTryStmt>(Stmt));
auto _S = new AST::CXXTryStmt(); auto _S = new AST::CXXTryStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->tryBlock = static_cast<AST::CompoundStmt*>(WalkStatement(S->getTryBlock())); _S->tryBlock = static_cast<AST::CompoundStmt*>(WalkStatement(S->getTryBlock()));
_S->numHandlers = S->getNumHandlers(); _S->numHandlers = S->getNumHandlers();
@ -346,6 +372,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::CXXForRangeStmt*>(llvm::cast<clang::CXXForRangeStmt>(Stmt)); auto S = const_cast<clang::CXXForRangeStmt*>(llvm::cast<clang::CXXForRangeStmt>(Stmt));
auto _S = new AST::CXXForRangeStmt(); auto _S = new AST::CXXForRangeStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->init = static_cast<AST::Stmt*>(WalkStatement(S->getInit())); _S->init = static_cast<AST::Stmt*>(WalkStatement(S->getInit()));
_S->rangeInit = static_cast<AST::Expr*>(WalkExpression(S->getRangeInit())); _S->rangeInit = static_cast<AST::Expr*>(WalkExpression(S->getRangeInit()));
@ -363,6 +390,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::MSDependentExistsStmt*>(llvm::cast<clang::MSDependentExistsStmt>(Stmt)); auto S = const_cast<clang::MSDependentExistsStmt*>(llvm::cast<clang::MSDependentExistsStmt>(Stmt));
auto _S = new AST::MSDependentExistsStmt(); auto _S = new AST::MSDependentExistsStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->isIfExists = S->isIfExists(); _S->isIfExists = S->isIfExists();
_S->isIfNotExists = S->isIfNotExists(); _S->isIfNotExists = S->isIfNotExists();
@ -374,6 +402,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::CoroutineBodyStmt*>(llvm::cast<clang::CoroutineBodyStmt>(Stmt)); auto S = const_cast<clang::CoroutineBodyStmt*>(llvm::cast<clang::CoroutineBodyStmt>(Stmt));
auto _S = new AST::CoroutineBodyStmt(); auto _S = new AST::CoroutineBodyStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->hasDependentPromiseType = S->hasDependentPromiseType(); _S->hasDependentPromiseType = S->hasDependentPromiseType();
_S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody())); _S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody()));
@ -395,6 +424,7 @@ AST::Stmt* Parser::WalkStatement(const clang::Stmt* Stmt)
{ {
auto S = const_cast<clang::CoreturnStmt*>(llvm::cast<clang::CoreturnStmt>(Stmt)); auto S = const_cast<clang::CoreturnStmt*>(llvm::cast<clang::CoreturnStmt>(Stmt));
auto _S = new AST::CoreturnStmt(); auto _S = new AST::CoreturnStmt();
_S->stmtClass = (Stmt::StmtClass) S->getStmtClass();
_S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements())); _S->stripLabelLikeStatements = static_cast<AST::Stmt*>(WalkStatement(S->stripLabelLikeStatements()));
_S->isImplicit = S->isImplicit(); _S->isImplicit = S->isImplicit();
_S->operand = static_cast<AST::Expr*>(WalkExpression(S->getOperand())); _S->operand = static_cast<AST::Expr*>(WalkExpression(S->getOperand()));

2
src/CppParser/Stmt.cpp

@ -14,6 +14,7 @@ namespace CppSharp { namespace CppParser { namespace AST {
Stmt::Stmt() Stmt::Stmt()
: stmtClass(StmtClass::NoStmt) : stmtClass(StmtClass::NoStmt)
, sourceRange(SourceRange()) , sourceRange(SourceRange())
, beginLoc(SourceLocation())
, endLoc(SourceLocation()) , endLoc(SourceLocation())
, stripLabelLikeStatements(nullptr) , stripLabelLikeStatements(nullptr)
{ {
@ -22,6 +23,7 @@ Stmt::Stmt()
Stmt::Stmt(StmtClass klass) Stmt::Stmt(StmtClass klass)
: stmtClass(klass) : stmtClass(klass)
, sourceRange(SourceRange()) , sourceRange(SourceRange())
, beginLoc(SourceLocation())
, endLoc(SourceLocation()) , endLoc(SourceLocation())
, stripLabelLikeStatements(nullptr) , stripLabelLikeStatements(nullptr)
{ {

263
src/CppParser/Stmt.h

@ -15,144 +15,145 @@ namespace CppSharp { namespace CppParser { namespace AST {
class Expr; class Expr;
class Declaration; class Declaration;
enum class StmtClass
{
NoStmt = 0,
GCCAsmStmt = 1,
MSAsmStmt = 2,
AttributedStmt = 3,
BreakStmt = 4,
CXXCatchStmt = 5,
CXXForRangeStmt = 6,
CXXTryStmt = 7,
CapturedStmt = 8,
CompoundStmt = 9,
ContinueStmt = 10,
CoreturnStmt = 11,
CoroutineBodyStmt = 12,
DeclStmt = 13,
DoStmt = 14,
BinaryConditionalOperator = 15,
ConditionalOperator = 16,
AddrLabelExpr = 17,
ArrayInitIndexExpr = 18,
ArrayInitLoopExpr = 19,
ArraySubscriptExpr = 20,
ArrayTypeTraitExpr = 21,
AsTypeExpr = 22,
AtomicExpr = 23,
BinaryOperator = 24,
CompoundAssignOperator = 25,
BlockExpr = 26,
CXXBindTemporaryExpr = 27,
CXXBoolLiteralExpr = 28,
CXXConstructExpr = 29,
CXXTemporaryObjectExpr = 30,
CXXDefaultArgExpr = 31,
CXXDefaultInitExpr = 32,
CXXDeleteExpr = 33,
CXXDependentScopeMemberExpr = 34,
CXXFoldExpr = 35,
CXXInheritedCtorInitExpr = 36,
CXXNewExpr = 37,
CXXNoexceptExpr = 38,
CXXNullPtrLiteralExpr = 39,
CXXPseudoDestructorExpr = 40,
CXXScalarValueInitExpr = 41,
CXXStdInitializerListExpr = 42,
CXXThisExpr = 43,
CXXThrowExpr = 44,
CXXTypeidExpr = 45,
CXXUnresolvedConstructExpr = 46,
CXXUuidofExpr = 47,
CallExpr = 48,
CUDAKernelCallExpr = 49,
CXXMemberCallExpr = 50,
CXXOperatorCallExpr = 51,
UserDefinedLiteral = 52,
CStyleCastExpr = 53,
CXXFunctionalCastExpr = 54,
CXXConstCastExpr = 55,
CXXDynamicCastExpr = 56,
CXXReinterpretCastExpr = 57,
CXXStaticCastExpr = 58,
ImplicitCastExpr = 60,
CharacterLiteral = 61,
ChooseExpr = 62,
CompoundLiteralExpr = 63,
ConvertVectorExpr = 64,
CoawaitExpr = 65,
CoyieldExpr = 66,
DeclRefExpr = 67,
DependentCoawaitExpr = 68,
DependentScopeDeclRefExpr = 69,
DesignatedInitExpr = 70,
DesignatedInitUpdateExpr = 71,
ExpressionTraitExpr = 72,
ExtVectorElementExpr = 73,
FixedPointLiteral = 74,
FloatingLiteral = 75,
ConstantExpr = 76,
ExprWithCleanups = 77,
FunctionParmPackExpr = 78,
GNUNullExpr = 79,
GenericSelectionExpr = 80,
ImaginaryLiteral = 81,
ImplicitValueInitExpr = 82,
InitListExpr = 83,
IntegerLiteral = 84,
LambdaExpr = 85,
MSPropertyRefExpr = 86,
MSPropertySubscriptExpr = 87,
MaterializeTemporaryExpr = 88,
MemberExpr = 89,
NoInitExpr = 90,
OffsetOfExpr = 107,
OpaqueValueExpr = 108,
UnresolvedLookupExpr = 109,
UnresolvedMemberExpr = 110,
PackExpansionExpr = 111,
ParenExpr = 112,
ParenListExpr = 113,
PredefinedExpr = 114,
PseudoObjectExpr = 115,
ShuffleVectorExpr = 116,
SizeOfPackExpr = 117,
StmtExpr = 118,
StringLiteral = 119,
SubstNonTypeTemplateParmExpr = 120,
SubstNonTypeTemplateParmPackExpr = 121,
TypeTraitExpr = 122,
TypoExpr = 123,
UnaryExprOrTypeTraitExpr = 124,
UnaryOperator = 125,
VAArgExpr = 126,
ForStmt = 127,
GotoStmt = 128,
IfStmt = 129,
IndirectGotoStmt = 130,
LabelStmt = 131,
MSDependentExistsStmt = 132,
NullStmt = 133,
ReturnStmt = 188,
SEHExceptStmt = 189,
SEHFinallyStmt = 190,
SEHLeaveStmt = 191,
SEHTryStmt = 192,
CaseStmt = 193,
DefaultStmt = 194,
SwitchStmt = 195,
WhileStmt = 196,
};
class CS_API Stmt class CS_API Stmt
{ {
public: public:
enum class StmtClass
{
NoStmt = 0,
GCCAsmStmt = 1,
MSAsmStmt = 2,
AttributedStmt = 3,
BreakStmt = 4,
CXXCatchStmt = 5,
CXXForRangeStmt = 6,
CXXTryStmt = 7,
CapturedStmt = 8,
CompoundStmt = 9,
ContinueStmt = 10,
CoreturnStmt = 11,
CoroutineBodyStmt = 12,
DeclStmt = 13,
DoStmt = 14,
BinaryConditionalOperator = 15,
ConditionalOperator = 16,
AddrLabelExpr = 17,
ArrayInitIndexExpr = 18,
ArrayInitLoopExpr = 19,
ArraySubscriptExpr = 20,
ArrayTypeTraitExpr = 21,
AsTypeExpr = 22,
AtomicExpr = 23,
BinaryOperator = 24,
CompoundAssignOperator = 25,
BlockExpr = 26,
CXXBindTemporaryExpr = 27,
CXXBoolLiteralExpr = 28,
CXXConstructExpr = 29,
CXXTemporaryObjectExpr = 30,
CXXDefaultArgExpr = 31,
CXXDefaultInitExpr = 32,
CXXDeleteExpr = 33,
CXXDependentScopeMemberExpr = 34,
CXXFoldExpr = 35,
CXXInheritedCtorInitExpr = 36,
CXXNewExpr = 37,
CXXNoexceptExpr = 38,
CXXNullPtrLiteralExpr = 39,
CXXPseudoDestructorExpr = 40,
CXXScalarValueInitExpr = 41,
CXXStdInitializerListExpr = 42,
CXXThisExpr = 43,
CXXThrowExpr = 44,
CXXTypeidExpr = 45,
CXXUnresolvedConstructExpr = 46,
CXXUuidofExpr = 47,
CallExpr = 48,
CUDAKernelCallExpr = 49,
CXXMemberCallExpr = 50,
CXXOperatorCallExpr = 51,
UserDefinedLiteral = 52,
CStyleCastExpr = 53,
CXXFunctionalCastExpr = 54,
CXXConstCastExpr = 55,
CXXDynamicCastExpr = 56,
CXXReinterpretCastExpr = 57,
CXXStaticCastExpr = 58,
ImplicitCastExpr = 60,
CharacterLiteral = 61,
ChooseExpr = 62,
CompoundLiteralExpr = 63,
ConvertVectorExpr = 64,
CoawaitExpr = 65,
CoyieldExpr = 66,
DeclRefExpr = 67,
DependentCoawaitExpr = 68,
DependentScopeDeclRefExpr = 69,
DesignatedInitExpr = 70,
DesignatedInitUpdateExpr = 71,
ExpressionTraitExpr = 72,
ExtVectorElementExpr = 73,
FixedPointLiteral = 74,
FloatingLiteral = 75,
ConstantExpr = 76,
ExprWithCleanups = 77,
FunctionParmPackExpr = 78,
GNUNullExpr = 79,
GenericSelectionExpr = 80,
ImaginaryLiteral = 81,
ImplicitValueInitExpr = 82,
InitListExpr = 83,
IntegerLiteral = 84,
LambdaExpr = 85,
MSPropertyRefExpr = 86,
MSPropertySubscriptExpr = 87,
MaterializeTemporaryExpr = 88,
MemberExpr = 89,
NoInitExpr = 90,
OffsetOfExpr = 107,
OpaqueValueExpr = 108,
UnresolvedLookupExpr = 109,
UnresolvedMemberExpr = 110,
PackExpansionExpr = 111,
ParenExpr = 112,
ParenListExpr = 113,
PredefinedExpr = 114,
PseudoObjectExpr = 115,
ShuffleVectorExpr = 116,
SizeOfPackExpr = 117,
StmtExpr = 118,
StringLiteral = 119,
SubstNonTypeTemplateParmExpr = 120,
SubstNonTypeTemplateParmPackExpr = 121,
TypeTraitExpr = 122,
TypoExpr = 123,
UnaryExprOrTypeTraitExpr = 124,
UnaryOperator = 125,
VAArgExpr = 126,
ForStmt = 127,
GotoStmt = 128,
IfStmt = 129,
IndirectGotoStmt = 130,
LabelStmt = 131,
MSDependentExistsStmt = 132,
NullStmt = 133,
ReturnStmt = 188,
SEHExceptStmt = 189,
SEHFinallyStmt = 190,
SEHLeaveStmt = 191,
SEHTryStmt = 192,
CaseStmt = 193,
DefaultStmt = 194,
SwitchStmt = 195,
WhileStmt = 196,
};
Stmt(); Stmt();
Stmt(StmtClass klass); Stmt(StmtClass klass);
StmtClass stmtClass; StmtClass stmtClass;
SourceRange sourceRange; SourceRange sourceRange;
SourceLocation beginLoc;
SourceLocation endLoc; SourceLocation endLoc;
Stmt* stripLabelLikeStatements; Stmt* stripLabelLikeStatements;
}; };

384
src/Parser/ASTConverter.Expr.cs

File diff suppressed because it is too large Load Diff

314
src/Parser/ASTConverter.Stmt.cs

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save