mirror of https://github.com/mono/CppSharp.git
c-sharpdotnetmonobindingsbridgecclangcpluspluscppsharpglueinteropparserparsingpinvokeswigsyntax-treevisitorsxamarinxamarin-bindings
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2406 lines
126 KiB
2406 lines
126 KiB
// ---------------------------------------------------------------------------- |
|
// <auto-generated> |
|
// This is autogenerated code by CppSharp. |
|
// Do not edit this file or all your changes will be lost after re-generation. |
|
// </auto-generated> |
|
// ---------------------------------------------------------------------------- |
|
|
|
|
|
#include "AST.h" |
|
#include "Parser.h" |
|
#include <clang/AST/Expr.h> |
|
#include <clang/AST/ExprCXX.h> |
|
|
|
namespace CppSharp::CppParser { |
|
using namespace AST; |
|
|
|
AST::Expr* Parser::WalkExpression(const clang::Expr* Expr) |
|
{ |
|
if (Expr == nullptr) |
|
return nullptr; |
|
|
|
AST::Expr* _Expr= 0; |
|
|
|
switch (Expr->getStmtClass()) |
|
{ |
|
case clang::Stmt::ConstantExprClass: |
|
{ |
|
auto S = const_cast<clang::ConstantExpr*>(llvm::cast<clang::ConstantExpr>(Expr)); |
|
auto _S = new AST::ConstantExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::OpaqueValueExprClass: |
|
{ |
|
auto S = const_cast<clang::OpaqueValueExpr*>(llvm::cast<clang::OpaqueValueExpr>(Expr)); |
|
auto _S = new AST::OpaqueValueExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->isUnique = S->isUnique(); |
|
_S->sourceExpr = static_cast<AST::Expr*>(WalkExpression(S->getSourceExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::DeclRefExprClass: |
|
{ |
|
auto S = const_cast<clang::DeclRefExpr*>(llvm::cast<clang::DeclRefExpr>(Expr)); |
|
auto _S = new AST::DeclRefExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->hadMultipleCandidates = S->hadMultipleCandidates(); |
|
_S->hasQualifier = S->hasQualifier(); |
|
_S->foundDecl = static_cast<AST::Declaration*>(WalkDeclaration(S->getFoundDecl())); |
|
_S->hasTemplateKWAndArgsInfo = S->hasTemplateKWAndArgsInfo(); |
|
_S->hasTemplateKeyword = S->hasTemplateKeyword(); |
|
_S->hasExplicitTemplateArgs = S->hasExplicitTemplateArgs(); |
|
_S->numTemplateArgs = S->getNumTemplateArgs(); |
|
_S->refersToEnclosingVariableOrCapture = S->refersToEnclosingVariableOrCapture(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::IntegerLiteralClass: |
|
{ |
|
auto S = const_cast<clang::IntegerLiteral*>(llvm::cast<clang::IntegerLiteral>(Expr)); |
|
auto _S = new AST::IntegerLiteral(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->value = S->getValue().getLimitedValue(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::FixedPointLiteralClass: |
|
{ |
|
auto S = const_cast<clang::FixedPointLiteral*>(llvm::cast<clang::FixedPointLiteral>(Expr)); |
|
auto _S = new AST::FixedPointLiteral(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->value = S->getValue().getLimitedValue(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CharacterLiteralClass: |
|
{ |
|
auto S = const_cast<clang::CharacterLiteral*>(llvm::cast<clang::CharacterLiteral>(Expr)); |
|
auto _S = new AST::CharacterLiteral(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->kind = (CharacterLiteral::CharacterKind) S->getKind(); |
|
_S->value = S->getValue(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::FloatingLiteralClass: |
|
{ |
|
auto S = const_cast<clang::FloatingLiteral*>(llvm::cast<clang::FloatingLiteral>(Expr)); |
|
auto _S = new AST::FloatingLiteral(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->exact = S->isExact(); |
|
_S->valueAsApproximateDouble = S->getValueAsApproximateDouble(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ImaginaryLiteralClass: |
|
{ |
|
auto S = const_cast<clang::ImaginaryLiteral*>(llvm::cast<clang::ImaginaryLiteral>(Expr)); |
|
auto _S = new AST::ImaginaryLiteral(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::StringLiteralClass: |
|
{ |
|
auto S = const_cast<clang::StringLiteral*>(llvm::cast<clang::StringLiteral>(Expr)); |
|
auto _S = new AST::StringLiteral(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->string = S->getString().str(); |
|
_S->bytes = S->getBytes().str(); |
|
_S->byteLength = S->getByteLength(); |
|
_S->length = S->getLength(); |
|
_S->charByteWidth = S->getCharByteWidth(); |
|
_S->kind = (StringLiteral::StringKind) S->getKind(); |
|
_S->isAscii = S->isOrdinary(); |
|
_S->isWide = S->isWide(); |
|
_S->isUTF8 = S->isUTF8(); |
|
_S->isUTF16 = S->isUTF16(); |
|
_S->isUTF32 = S->isUTF32(); |
|
_S->isPascal = S->isPascal(); |
|
_S->containsNonAscii = S->containsNonAscii(); |
|
_S->containsNonAsciiOrNull = S->containsNonAsciiOrNull(); |
|
_S->numConcatenated = S->getNumConcatenated(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::PredefinedExprClass: |
|
{ |
|
auto S = const_cast<clang::PredefinedExpr*>(llvm::cast<clang::PredefinedExpr>(Expr)); |
|
auto _S = new AST::PredefinedExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->identKind = (PredefinedExpr::IdentKind) S->getIdentKind(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ParenExprClass: |
|
{ |
|
auto S = const_cast<clang::ParenExpr*>(llvm::cast<clang::ParenExpr>(Expr)); |
|
auto _S = new AST::ParenExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::UnaryOperatorClass: |
|
{ |
|
auto S = const_cast<clang::UnaryOperator*>(llvm::cast<clang::UnaryOperator>(Expr)); |
|
auto _S = new AST::UnaryOperator(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->opcode = (UnaryOperatorKind) S->getOpcode(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->canOverflow = S->canOverflow(); |
|
_S->isPrefix = S->isPrefix(); |
|
_S->isPostfix = S->isPostfix(); |
|
_S->isIncrementOp = S->isIncrementOp(); |
|
_S->isDecrementOp = S->isDecrementOp(); |
|
_S->isIncrementDecrementOp = S->isIncrementDecrementOp(); |
|
_S->isArithmeticOp = S->isArithmeticOp(); |
|
_S->isFPContractableWithinStatement = S->isFPContractableWithinStatement(c->getLangOpts()); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::OffsetOfExprClass: |
|
{ |
|
auto S = const_cast<clang::OffsetOfExpr*>(llvm::cast<clang::OffsetOfExpr>(Expr)); |
|
auto _S = new AST::OffsetOfExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->numComponents = S->getNumComponents(); |
|
_S->numExpressions = S->getNumExpressions(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::UnaryExprOrTypeTraitExprClass: |
|
{ |
|
auto S = const_cast<clang::UnaryExprOrTypeTraitExpr*>(llvm::cast<clang::UnaryExprOrTypeTraitExpr>(Expr)); |
|
auto _S = new AST::UnaryExprOrTypeTraitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->kind = (UnaryExprOrTypeTrait) S->getKind(); |
|
_S->isArgumentType = S->isArgumentType(); |
|
if (S->isArgumentType()) |
|
_S->argumentType = GetQualifiedType(S->getArgumentType()); |
|
_S->argumentExpr = static_cast<AST::Expr*>(WalkExpression(S->getArgumentExpr())); |
|
_S->typeOfArgument = GetQualifiedType(S->getTypeOfArgument()); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ArraySubscriptExprClass: |
|
{ |
|
auto S = const_cast<clang::ArraySubscriptExpr*>(llvm::cast<clang::ArraySubscriptExpr>(Expr)); |
|
auto _S = new AST::ArraySubscriptExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->lHS = static_cast<AST::Expr*>(WalkExpression(S->getLHS())); |
|
_S->rHS = static_cast<AST::Expr*>(WalkExpression(S->getRHS())); |
|
_S->base = static_cast<AST::Expr*>(WalkExpression(S->getBase())); |
|
_S->idx = static_cast<AST::Expr*>(WalkExpression(S->getIdx())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CallExprClass: |
|
{ |
|
auto S = const_cast<clang::CallExpr*>(llvm::cast<clang::CallExpr>(Expr)); |
|
auto _S = new AST::CallExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->callee = static_cast<AST::Expr*>(WalkExpression(S->getCallee())); |
|
_S->calleeDecl = static_cast<AST::Declaration*>(WalkDeclaration(S->getCalleeDecl())); |
|
_S->directCallee = static_cast<AST::Function*>(WalkDeclaration(S->getDirectCallee())); |
|
_S->numArgs = S->getNumArgs(); |
|
_S->numCommas = 0; // Removed from Clang |
|
_S->builtinCallee = S->getBuiltinCallee(); |
|
_S->isCallToStdMove = S->isCallToStdMove(); |
|
for (auto _E : S->arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addarguments(_ES); |
|
} |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::MemberExprClass: |
|
{ |
|
auto S = const_cast<clang::MemberExpr*>(llvm::cast<clang::MemberExpr>(Expr)); |
|
auto _S = new AST::MemberExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->base = static_cast<AST::Expr*>(WalkExpression(S->getBase())); |
|
_S->arrow = S->isArrow(); |
|
_S->hadMultipleCandidates = S->hadMultipleCandidates(); |
|
_S->hasQualifier = S->hasQualifier(); |
|
_S->hasTemplateKeyword = S->hasTemplateKeyword(); |
|
_S->hasExplicitTemplateArgs = S->hasExplicitTemplateArgs(); |
|
_S->numTemplateArgs = S->getNumTemplateArgs(); |
|
_S->isImplicitAccess = S->isImplicitAccess(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CompoundLiteralExprClass: |
|
{ |
|
auto S = const_cast<clang::CompoundLiteralExpr*>(llvm::cast<clang::CompoundLiteralExpr>(Expr)); |
|
auto _S = new AST::CompoundLiteralExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->initializer = static_cast<AST::Expr*>(WalkExpression(S->getInitializer())); |
|
_S->fileScope = S->isFileScope(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ImplicitCastExprClass: |
|
{ |
|
auto S = const_cast<clang::ImplicitCastExpr*>(llvm::cast<clang::ImplicitCastExpr>(Expr)); |
|
auto _S = new AST::ImplicitCastExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->castKind = (CastKind) S->getCastKind(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->castKindName = S->getCastKindName(); |
|
_S->subExprAsWritten = static_cast<AST::Expr*>(WalkExpression(S->getSubExprAsWritten())); |
|
_S->conversionFunction = static_cast<AST::Declaration*>(WalkDeclaration(S->getConversionFunction())); |
|
_S->path_empty = S->path_empty(); |
|
_S->path_size = S->path_size(); |
|
_S->isPartOfExplicitCast = S->isPartOfExplicitCast(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CStyleCastExprClass: |
|
{ |
|
auto S = const_cast<clang::CStyleCastExpr*>(llvm::cast<clang::CStyleCastExpr>(Expr)); |
|
auto _S = new AST::CStyleCastExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->castKind = (CastKind) S->getCastKind(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->castKindName = S->getCastKindName(); |
|
_S->subExprAsWritten = static_cast<AST::Expr*>(WalkExpression(S->getSubExprAsWritten())); |
|
_S->conversionFunction = static_cast<AST::Declaration*>(WalkDeclaration(S->getConversionFunction())); |
|
_S->path_empty = S->path_empty(); |
|
_S->path_size = S->path_size(); |
|
_S->typeAsWritten = GetQualifiedType(S->getTypeAsWritten()); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::BinaryOperatorClass: |
|
{ |
|
auto S = const_cast<clang::BinaryOperator*>(llvm::cast<clang::BinaryOperator>(Expr)); |
|
auto _S = new AST::BinaryOperator(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->opcode = (BinaryOperatorKind) S->getOpcode(); |
|
_S->lHS = static_cast<AST::Expr*>(WalkExpression(S->getLHS())); |
|
_S->rHS = static_cast<AST::Expr*>(WalkExpression(S->getRHS())); |
|
_S->opcodeStr = S->getOpcodeStr().str(); |
|
_S->isPtrMemOp = S->isPtrMemOp(); |
|
_S->isMultiplicativeOp = S->isMultiplicativeOp(); |
|
_S->isAdditiveOp = S->isAdditiveOp(); |
|
_S->isShiftOp = S->isShiftOp(); |
|
_S->isBitwiseOp = S->isBitwiseOp(); |
|
_S->isRelationalOp = S->isRelationalOp(); |
|
_S->isEqualityOp = S->isEqualityOp(); |
|
_S->isComparisonOp = S->isComparisonOp(); |
|
_S->isLogicalOp = S->isLogicalOp(); |
|
_S->isAssignmentOp = S->isAssignmentOp(); |
|
_S->isCompoundAssignmentOp = S->isCompoundAssignmentOp(); |
|
_S->isShiftAssignOp = S->isShiftAssignOp(); |
|
_S->isFPContractableWithinStatement = S->isFPContractableWithinStatement(c->getLangOpts()); |
|
_S->isFEnvAccessOn = S->isFEnvAccessOn(c->getLangOpts()); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CompoundAssignOperatorClass: |
|
{ |
|
auto S = const_cast<clang::CompoundAssignOperator*>(llvm::cast<clang::CompoundAssignOperator>(Expr)); |
|
auto _S = new AST::CompoundAssignOperator(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->opcode = (BinaryOperatorKind) S->getOpcode(); |
|
_S->lHS = static_cast<AST::Expr*>(WalkExpression(S->getLHS())); |
|
_S->rHS = static_cast<AST::Expr*>(WalkExpression(S->getRHS())); |
|
_S->opcodeStr = S->getOpcodeStr().str(); |
|
_S->isPtrMemOp = S->isPtrMemOp(); |
|
_S->isMultiplicativeOp = S->isMultiplicativeOp(); |
|
_S->isAdditiveOp = S->isAdditiveOp(); |
|
_S->isShiftOp = S->isShiftOp(); |
|
_S->isBitwiseOp = S->isBitwiseOp(); |
|
_S->isRelationalOp = S->isRelationalOp(); |
|
_S->isEqualityOp = S->isEqualityOp(); |
|
_S->isComparisonOp = S->isComparisonOp(); |
|
_S->isLogicalOp = S->isLogicalOp(); |
|
_S->isAssignmentOp = S->isAssignmentOp(); |
|
_S->isCompoundAssignmentOp = S->isCompoundAssignmentOp(); |
|
_S->isShiftAssignOp = S->isShiftAssignOp(); |
|
_S->isFPContractableWithinStatement = S->isFPContractableWithinStatement(c->getLangOpts()); |
|
_S->isFEnvAccessOn = S->isFEnvAccessOn(c->getLangOpts()); |
|
_S->computationLHSType = GetQualifiedType(S->getComputationLHSType()); |
|
_S->computationResultType = GetQualifiedType(S->getComputationResultType()); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ConditionalOperatorClass: |
|
{ |
|
auto S = const_cast<clang::ConditionalOperator*>(llvm::cast<clang::ConditionalOperator>(Expr)); |
|
auto _S = new AST::ConditionalOperator(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); |
|
_S->trueExpr = static_cast<AST::Expr*>(WalkExpression(S->getTrueExpr())); |
|
_S->falseExpr = static_cast<AST::Expr*>(WalkExpression(S->getFalseExpr())); |
|
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); |
|
_S->trueExpr = static_cast<AST::Expr*>(WalkExpression(S->getTrueExpr())); |
|
_S->falseExpr = static_cast<AST::Expr*>(WalkExpression(S->getFalseExpr())); |
|
_S->lHS = static_cast<AST::Expr*>(WalkExpression(S->getLHS())); |
|
_S->rHS = static_cast<AST::Expr*>(WalkExpression(S->getRHS())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::BinaryConditionalOperatorClass: |
|
{ |
|
auto S = const_cast<clang::BinaryConditionalOperator*>(llvm::cast<clang::BinaryConditionalOperator>(Expr)); |
|
auto _S = new AST::BinaryConditionalOperator(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); |
|
_S->trueExpr = static_cast<AST::Expr*>(WalkExpression(S->getTrueExpr())); |
|
_S->falseExpr = static_cast<AST::Expr*>(WalkExpression(S->getFalseExpr())); |
|
_S->common = static_cast<AST::Expr*>(WalkExpression(S->getCommon())); |
|
_S->opaqueValue = static_cast<AST::OpaqueValueExpr*>(WalkExpression(S->getOpaqueValue())); |
|
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); |
|
_S->trueExpr = static_cast<AST::Expr*>(WalkExpression(S->getTrueExpr())); |
|
_S->falseExpr = static_cast<AST::Expr*>(WalkExpression(S->getFalseExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::AddrLabelExprClass: |
|
{ |
|
auto S = const_cast<clang::AddrLabelExpr*>(llvm::cast<clang::AddrLabelExpr>(Expr)); |
|
auto _S = new AST::AddrLabelExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::StmtExprClass: |
|
{ |
|
auto S = const_cast<clang::StmtExpr*>(llvm::cast<clang::StmtExpr>(Expr)); |
|
auto _S = new AST::StmtExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subStmt = static_cast<AST::CompoundStmt*>(WalkStatement(S->getSubStmt())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ShuffleVectorExprClass: |
|
{ |
|
auto S = const_cast<clang::ShuffleVectorExpr*>(llvm::cast<clang::ShuffleVectorExpr>(Expr)); |
|
auto _S = new AST::ShuffleVectorExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->numSubExprs = S->getNumSubExprs(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ConvertVectorExprClass: |
|
{ |
|
auto S = const_cast<clang::ConvertVectorExpr*>(llvm::cast<clang::ConvertVectorExpr>(Expr)); |
|
auto _S = new AST::ConvertVectorExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->srcExpr = static_cast<AST::Expr*>(WalkExpression(S->getSrcExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ChooseExprClass: |
|
{ |
|
auto S = const_cast<clang::ChooseExpr*>(llvm::cast<clang::ChooseExpr>(Expr)); |
|
auto _S = new AST::ChooseExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->isConditionTrue = S->isConditionTrue(); |
|
_S->cond = static_cast<AST::Expr*>(WalkExpression(S->getCond())); |
|
_S->lHS = static_cast<AST::Expr*>(WalkExpression(S->getLHS())); |
|
_S->rHS = static_cast<AST::Expr*>(WalkExpression(S->getRHS())); |
|
_S->isConditionDependent = S->isConditionDependent(); |
|
_S->chosenSubExpr = static_cast<AST::Expr*>(WalkExpression(S->getChosenSubExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::GNUNullExprClass: |
|
{ |
|
auto S = const_cast<clang::GNUNullExpr*>(llvm::cast<clang::GNUNullExpr>(Expr)); |
|
auto _S = new AST::GNUNullExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::VAArgExprClass: |
|
{ |
|
auto S = const_cast<clang::VAArgExpr*>(llvm::cast<clang::VAArgExpr>(Expr)); |
|
auto _S = new AST::VAArgExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->isMicrosoftABI = S->isMicrosoftABI(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::InitListExprClass: |
|
{ |
|
auto S = const_cast<clang::InitListExpr*>(llvm::cast<clang::InitListExpr>(Expr)); |
|
auto _S = new AST::InitListExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->arrayFiller = static_cast<AST::Expr*>(WalkExpression(S->getArrayFiller())); |
|
if (S->isSyntacticForm()) |
|
_S->syntacticForm = static_cast<AST::InitListExpr*>(WalkExpression(S->getSyntacticForm())); |
|
_S->numInits = S->getNumInits(); |
|
_S->hasArrayFiller = S->hasArrayFiller(); |
|
_S->isExplicit = S->isExplicit(); |
|
_S->isStringLiteralInit = S->isStringLiteralInit(); |
|
_S->isTransparent = S->isTransparent(); |
|
_S->isSemanticForm = S->isSemanticForm(); |
|
if (S->isSemanticForm()) |
|
_S->semanticForm = static_cast<AST::InitListExpr*>(WalkExpression(S->getSemanticForm())); |
|
_S->isSyntacticForm = S->isSyntacticForm(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::DesignatedInitExprClass: |
|
{ |
|
auto S = const_cast<clang::DesignatedInitExpr*>(llvm::cast<clang::DesignatedInitExpr>(Expr)); |
|
auto _S = new AST::DesignatedInitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->init = static_cast<AST::Expr*>(WalkExpression(S->getInit())); |
|
_S->size = S->size(); |
|
_S->usesGNUSyntax = S->usesGNUSyntax(); |
|
_S->numSubExprs = S->getNumSubExprs(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::NoInitExprClass: |
|
{ |
|
auto S = const_cast<clang::NoInitExpr*>(llvm::cast<clang::NoInitExpr>(Expr)); |
|
auto _S = new AST::NoInitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::DesignatedInitUpdateExprClass: |
|
{ |
|
auto S = const_cast<clang::DesignatedInitUpdateExpr*>(llvm::cast<clang::DesignatedInitUpdateExpr>(Expr)); |
|
auto _S = new AST::DesignatedInitUpdateExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->base = static_cast<AST::Expr*>(WalkExpression(S->getBase())); |
|
_S->updater = static_cast<AST::InitListExpr*>(WalkExpression(S->getUpdater())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ArrayInitLoopExprClass: |
|
{ |
|
auto S = const_cast<clang::ArrayInitLoopExpr*>(llvm::cast<clang::ArrayInitLoopExpr>(Expr)); |
|
auto _S = new AST::ArrayInitLoopExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->commonExpr = static_cast<AST::OpaqueValueExpr*>(WalkExpression(S->getCommonExpr())); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ArrayInitIndexExprClass: |
|
{ |
|
auto S = const_cast<clang::ArrayInitIndexExpr*>(llvm::cast<clang::ArrayInitIndexExpr>(Expr)); |
|
auto _S = new AST::ArrayInitIndexExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ImplicitValueInitExprClass: |
|
{ |
|
auto S = const_cast<clang::ImplicitValueInitExpr*>(llvm::cast<clang::ImplicitValueInitExpr>(Expr)); |
|
auto _S = new AST::ImplicitValueInitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ParenListExprClass: |
|
{ |
|
auto S = const_cast<clang::ParenListExpr*>(llvm::cast<clang::ParenListExpr>(Expr)); |
|
auto _S = new AST::ParenListExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->numExprs = S->getNumExprs(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::GenericSelectionExprClass: |
|
{ |
|
auto S = const_cast<clang::GenericSelectionExpr*>(llvm::cast<clang::GenericSelectionExpr>(Expr)); |
|
auto _S = new AST::GenericSelectionExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->numAssocs = S->getNumAssocs(); |
|
_S->controllingExpr = static_cast<AST::Expr*>(WalkExpression(S->getControllingExpr())); |
|
_S->isResultDependent = S->isResultDependent(); |
|
_S->resultIndex = S->getResultIndex(); |
|
_S->resultExpr = static_cast<AST::Expr*>(WalkExpression(S->getResultExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ExtVectorElementExprClass: |
|
{ |
|
auto S = const_cast<clang::ExtVectorElementExpr*>(llvm::cast<clang::ExtVectorElementExpr>(Expr)); |
|
auto _S = new AST::ExtVectorElementExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->base = static_cast<AST::Expr*>(WalkExpression(S->getBase())); |
|
_S->numElements = S->getNumElements(); |
|
_S->containsDuplicateElements = S->containsDuplicateElements(); |
|
_S->isArrow = S->isArrow(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::BlockExprClass: |
|
{ |
|
auto S = const_cast<clang::BlockExpr*>(llvm::cast<clang::BlockExpr>(Expr)); |
|
auto _S = new AST::BlockExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->body = static_cast<AST::Stmt*>(WalkStatement(S->getBody())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::AsTypeExprClass: |
|
{ |
|
auto S = const_cast<clang::AsTypeExpr*>(llvm::cast<clang::AsTypeExpr>(Expr)); |
|
auto _S = new AST::AsTypeExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->srcExpr = static_cast<AST::Expr*>(WalkExpression(S->getSrcExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::PseudoObjectExprClass: |
|
{ |
|
auto S = const_cast<clang::PseudoObjectExpr*>(llvm::cast<clang::PseudoObjectExpr>(Expr)); |
|
auto _S = new AST::PseudoObjectExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->syntacticForm = static_cast<AST::Expr*>(WalkExpression(S->getSyntacticForm())); |
|
_S->resultExprIndex = S->getResultExprIndex(); |
|
_S->resultExpr = static_cast<AST::Expr*>(WalkExpression(S->getResultExpr())); |
|
_S->numSemanticExprs = S->getNumSemanticExprs(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::AtomicExprClass: |
|
{ |
|
auto S = const_cast<clang::AtomicExpr*>(llvm::cast<clang::AtomicExpr>(Expr)); |
|
auto _S = new AST::AtomicExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->ptr = static_cast<AST::Expr*>(WalkExpression(S->getPtr())); |
|
_S->order = static_cast<AST::Expr*>(WalkExpression(S->getOrder())); |
|
_S->scope = static_cast<AST::Expr*>(WalkExpression(S->getScope())); |
|
_S->val1 = static_cast<AST::Expr*>(WalkExpression(S->getVal1())); |
|
_S->orderFail = static_cast<AST::Expr*>(WalkExpression(S->getOrderFail())); |
|
_S->val2 = static_cast<AST::Expr*>(WalkExpression(S->getVal2())); |
|
_S->weak = static_cast<AST::Expr*>(WalkExpression(S->getWeak())); |
|
_S->valueType = GetQualifiedType(S->getValueType()); |
|
_S->op = (AtomicExpr::AtomicOp) S->getOp(); |
|
_S->numSubExprs = S->getNumSubExprs(); |
|
_S->isVolatile = S->isVolatile(); |
|
_S->isCmpXChg = S->isCmpXChg(); |
|
_S->isOpenCL = S->isOpenCL(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::TypoExprClass: |
|
{ |
|
auto S = const_cast<clang::TypoExpr*>(llvm::cast<clang::TypoExpr>(Expr)); |
|
auto _S = new AST::TypoExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXOperatorCallExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXOperatorCallExpr*>(llvm::cast<clang::CXXOperatorCallExpr>(Expr)); |
|
auto _S = new AST::CXXOperatorCallExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->callee = static_cast<AST::Expr*>(WalkExpression(S->getCallee())); |
|
_S->calleeDecl = static_cast<AST::Declaration*>(WalkDeclaration(S->getCalleeDecl())); |
|
_S->directCallee = static_cast<AST::Function*>(WalkDeclaration(S->getDirectCallee())); |
|
_S->numArgs = S->getNumArgs(); |
|
_S->numCommas = 0; // Removed from Clang |
|
_S->builtinCallee = S->getBuiltinCallee(); |
|
_S->isCallToStdMove = S->isCallToStdMove(); |
|
for (auto _E : S->arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addarguments(_ES); |
|
} |
|
_S->_operator = (OverloadedOperatorKind) S->getOperator(); |
|
_S->isAssignmentOp = S->isAssignmentOp(); |
|
_S->isInfixBinaryOp = S->isInfixBinaryOp(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXMemberCallExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXMemberCallExpr*>(llvm::cast<clang::CXXMemberCallExpr>(Expr)); |
|
auto _S = new AST::CXXMemberCallExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->callee = static_cast<AST::Expr*>(WalkExpression(S->getCallee())); |
|
_S->calleeDecl = static_cast<AST::Declaration*>(WalkDeclaration(S->getCalleeDecl())); |
|
_S->directCallee = static_cast<AST::Function*>(WalkDeclaration(S->getDirectCallee())); |
|
_S->numArgs = S->getNumArgs(); |
|
_S->numCommas = 0; // Removed from Clang |
|
_S->builtinCallee = S->getBuiltinCallee(); |
|
_S->isCallToStdMove = S->isCallToStdMove(); |
|
for (auto _E : S->arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addarguments(_ES); |
|
} |
|
_S->implicitObjectArgument = static_cast<AST::Expr*>(WalkExpression(S->getImplicitObjectArgument())); |
|
_S->methodDecl = static_cast<AST::Method*>(WalkDeclaration(S->getMethodDecl())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CUDAKernelCallExprClass: |
|
{ |
|
auto S = const_cast<clang::CUDAKernelCallExpr*>(llvm::cast<clang::CUDAKernelCallExpr>(Expr)); |
|
auto _S = new AST::CUDAKernelCallExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->callee = static_cast<AST::Expr*>(WalkExpression(S->getCallee())); |
|
_S->calleeDecl = static_cast<AST::Declaration*>(WalkDeclaration(S->getCalleeDecl())); |
|
_S->directCallee = static_cast<AST::Function*>(WalkDeclaration(S->getDirectCallee())); |
|
_S->numArgs = S->getNumArgs(); |
|
_S->numCommas = 0; // Removed from Clang |
|
_S->builtinCallee = S->getBuiltinCallee(); |
|
_S->isCallToStdMove = S->isCallToStdMove(); |
|
for (auto _E : S->arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addarguments(_ES); |
|
} |
|
_S->config = static_cast<AST::CallExpr*>(WalkExpression(S->getConfig())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXStaticCastExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXStaticCastExpr*>(llvm::cast<clang::CXXStaticCastExpr>(Expr)); |
|
auto _S = new AST::CXXStaticCastExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->castKind = (CastKind) S->getCastKind(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->castKindName = S->getCastKindName(); |
|
_S->subExprAsWritten = static_cast<AST::Expr*>(WalkExpression(S->getSubExprAsWritten())); |
|
_S->conversionFunction = static_cast<AST::Declaration*>(WalkDeclaration(S->getConversionFunction())); |
|
_S->path_empty = S->path_empty(); |
|
_S->path_size = S->path_size(); |
|
_S->typeAsWritten = GetQualifiedType(S->getTypeAsWritten()); |
|
_S->castName = S->getCastName(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXDynamicCastExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXDynamicCastExpr*>(llvm::cast<clang::CXXDynamicCastExpr>(Expr)); |
|
auto _S = new AST::CXXDynamicCastExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->castKind = (CastKind) S->getCastKind(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->castKindName = S->getCastKindName(); |
|
_S->subExprAsWritten = static_cast<AST::Expr*>(WalkExpression(S->getSubExprAsWritten())); |
|
_S->conversionFunction = static_cast<AST::Declaration*>(WalkDeclaration(S->getConversionFunction())); |
|
_S->path_empty = S->path_empty(); |
|
_S->path_size = S->path_size(); |
|
_S->typeAsWritten = GetQualifiedType(S->getTypeAsWritten()); |
|
_S->castName = S->getCastName(); |
|
_S->isAlwaysNull = S->isAlwaysNull(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXReinterpretCastExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXReinterpretCastExpr*>(llvm::cast<clang::CXXReinterpretCastExpr>(Expr)); |
|
auto _S = new AST::CXXReinterpretCastExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->castKind = (CastKind) S->getCastKind(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->castKindName = S->getCastKindName(); |
|
_S->subExprAsWritten = static_cast<AST::Expr*>(WalkExpression(S->getSubExprAsWritten())); |
|
_S->conversionFunction = static_cast<AST::Declaration*>(WalkDeclaration(S->getConversionFunction())); |
|
_S->path_empty = S->path_empty(); |
|
_S->path_size = S->path_size(); |
|
_S->typeAsWritten = GetQualifiedType(S->getTypeAsWritten()); |
|
_S->castName = S->getCastName(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXConstCastExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXConstCastExpr*>(llvm::cast<clang::CXXConstCastExpr>(Expr)); |
|
auto _S = new AST::CXXConstCastExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->castKind = (CastKind) S->getCastKind(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->castKindName = S->getCastKindName(); |
|
_S->subExprAsWritten = static_cast<AST::Expr*>(WalkExpression(S->getSubExprAsWritten())); |
|
_S->conversionFunction = static_cast<AST::Declaration*>(WalkDeclaration(S->getConversionFunction())); |
|
_S->path_empty = S->path_empty(); |
|
_S->path_size = S->path_size(); |
|
_S->typeAsWritten = GetQualifiedType(S->getTypeAsWritten()); |
|
_S->castName = S->getCastName(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::UserDefinedLiteralClass: |
|
{ |
|
auto S = const_cast<clang::UserDefinedLiteral*>(llvm::cast<clang::UserDefinedLiteral>(Expr)); |
|
auto _S = new AST::UserDefinedLiteral(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->callee = static_cast<AST::Expr*>(WalkExpression(S->getCallee())); |
|
_S->calleeDecl = static_cast<AST::Declaration*>(WalkDeclaration(S->getCalleeDecl())); |
|
_S->directCallee = static_cast<AST::Function*>(WalkDeclaration(S->getDirectCallee())); |
|
_S->numArgs = S->getNumArgs(); |
|
_S->numCommas = 0; // Removed from Clang |
|
_S->builtinCallee = S->getBuiltinCallee(); |
|
_S->isCallToStdMove = S->isCallToStdMove(); |
|
for (auto _E : S->arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addarguments(_ES); |
|
} |
|
_S->literalOperatorKind = (UserDefinedLiteral::LiteralOperatorKind) S->getLiteralOperatorKind(); |
|
_S->cookedLiteral = static_cast<AST::Expr*>(WalkExpression(S->getCookedLiteral())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXBoolLiteralExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXBoolLiteralExpr*>(llvm::cast<clang::CXXBoolLiteralExpr>(Expr)); |
|
auto _S = new AST::CXXBoolLiteralExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->value = S->getValue(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXNullPtrLiteralExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXNullPtrLiteralExpr*>(llvm::cast<clang::CXXNullPtrLiteralExpr>(Expr)); |
|
auto _S = new AST::CXXNullPtrLiteralExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXStdInitializerListExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXStdInitializerListExpr*>(llvm::cast<clang::CXXStdInitializerListExpr>(Expr)); |
|
auto _S = new AST::CXXStdInitializerListExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXTypeidExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXTypeidExpr*>(llvm::cast<clang::CXXTypeidExpr>(Expr)); |
|
auto _S = new AST::CXXTypeidExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->exprOperand = static_cast<AST::Expr*>(WalkExpression(S->getExprOperand())); |
|
_S->isPotentiallyEvaluated = S->isPotentiallyEvaluated(); |
|
_S->isTypeOperand = S->isTypeOperand(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::MSPropertyRefExprClass: |
|
{ |
|
auto S = const_cast<clang::MSPropertyRefExpr*>(llvm::cast<clang::MSPropertyRefExpr>(Expr)); |
|
auto _S = new AST::MSPropertyRefExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->isImplicitAccess = S->isImplicitAccess(); |
|
_S->baseExpr = static_cast<AST::Expr*>(WalkExpression(S->getBaseExpr())); |
|
_S->isArrow = S->isArrow(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::MSPropertySubscriptExprClass: |
|
{ |
|
auto S = const_cast<clang::MSPropertySubscriptExpr*>(llvm::cast<clang::MSPropertySubscriptExpr>(Expr)); |
|
auto _S = new AST::MSPropertySubscriptExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->base = static_cast<AST::Expr*>(WalkExpression(S->getBase())); |
|
_S->idx = static_cast<AST::Expr*>(WalkExpression(S->getIdx())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXUuidofExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXUuidofExpr*>(llvm::cast<clang::CXXUuidofExpr>(Expr)); |
|
auto _S = new AST::CXXUuidofExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->exprOperand = static_cast<AST::Expr*>(WalkExpression(S->getExprOperand())); |
|
_S->uuidStr = S->getGuidDecl()->getNameAsString(); |
|
_S->isTypeOperand = S->isTypeOperand(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXThisExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXThisExpr*>(llvm::cast<clang::CXXThisExpr>(Expr)); |
|
auto _S = new AST::CXXThisExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->implicit = S->isImplicit(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXThrowExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXThrowExpr*>(llvm::cast<clang::CXXThrowExpr>(Expr)); |
|
auto _S = new AST::CXXThrowExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->isThrownVariableInScope = S->isThrownVariableInScope(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXDefaultArgExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXDefaultArgExpr*>(llvm::cast<clang::CXXDefaultArgExpr>(Expr)); |
|
auto _S = new AST::CXXDefaultArgExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->expr = static_cast<AST::Expr*>(WalkExpression(S->getExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXDefaultInitExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXDefaultInitExpr*>(llvm::cast<clang::CXXDefaultInitExpr>(Expr)); |
|
auto _S = new AST::CXXDefaultInitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->field = static_cast<AST::Field*>(WalkDeclaration(S->getField())); |
|
_S->expr = static_cast<AST::Expr*>(WalkExpression(S->getExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXBindTemporaryExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXBindTemporaryExpr*>(llvm::cast<clang::CXXBindTemporaryExpr>(Expr)); |
|
auto _S = new AST::CXXBindTemporaryExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXConstructExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXConstructExpr*>(llvm::cast<clang::CXXConstructExpr>(Expr)); |
|
auto _S = new AST::CXXConstructExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->elidable = S->isElidable(); |
|
_S->hadMultipleCandidates = S->hadMultipleCandidates(); |
|
_S->listInitialization = S->isListInitialization(); |
|
_S->stdInitListInitialization = S->isStdInitListInitialization(); |
|
_S->requiresZeroInitialization = S->requiresZeroInitialization(); |
|
_S->numArgs = S->getNumArgs(); |
|
for (auto _E : S->arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addarguments(_ES); |
|
} |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXInheritedCtorInitExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXInheritedCtorInitExpr*>(llvm::cast<clang::CXXInheritedCtorInitExpr>(Expr)); |
|
auto _S = new AST::CXXInheritedCtorInitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->constructsVBase = S->constructsVBase(); |
|
_S->inheritedFromVBase = S->inheritedFromVBase(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXFunctionalCastExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXFunctionalCastExpr*>(llvm::cast<clang::CXXFunctionalCastExpr>(Expr)); |
|
auto _S = new AST::CXXFunctionalCastExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->castKind = (CastKind) S->getCastKind(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->castKindName = S->getCastKindName(); |
|
_S->subExprAsWritten = static_cast<AST::Expr*>(WalkExpression(S->getSubExprAsWritten())); |
|
_S->conversionFunction = static_cast<AST::Declaration*>(WalkDeclaration(S->getConversionFunction())); |
|
_S->path_empty = S->path_empty(); |
|
_S->path_size = S->path_size(); |
|
_S->typeAsWritten = GetQualifiedType(S->getTypeAsWritten()); |
|
_S->isListInitialization = S->isListInitialization(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXTemporaryObjectExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXTemporaryObjectExpr*>(llvm::cast<clang::CXXTemporaryObjectExpr>(Expr)); |
|
auto _S = new AST::CXXTemporaryObjectExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->elidable = S->isElidable(); |
|
_S->hadMultipleCandidates = S->hadMultipleCandidates(); |
|
_S->listInitialization = S->isListInitialization(); |
|
_S->stdInitListInitialization = S->isStdInitListInitialization(); |
|
_S->requiresZeroInitialization = S->requiresZeroInitialization(); |
|
_S->numArgs = S->getNumArgs(); |
|
for (auto _E : S->arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addarguments(_ES); |
|
} |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::LambdaExprClass: |
|
{ |
|
auto S = const_cast<clang::LambdaExpr*>(llvm::cast<clang::LambdaExpr>(Expr)); |
|
auto _S = new AST::LambdaExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->capture_size = S->capture_size(); |
|
_S->callOperator = static_cast<AST::Method*>(WalkDeclaration(S->getCallOperator())); |
|
_S->isGenericLambda = S->isGenericLambda(); |
|
_S->body = static_cast<AST::CompoundStmt*>(WalkStatement(S->getBody())); |
|
_S->isMutable = S->isMutable(); |
|
_S->hasExplicitParameters = S->hasExplicitParameters(); |
|
_S->hasExplicitResultType = S->hasExplicitResultType(); |
|
for (auto _E : S->capture_inits()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addcapture_inits(_ES); |
|
} |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXScalarValueInitExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXScalarValueInitExpr*>(llvm::cast<clang::CXXScalarValueInitExpr>(Expr)); |
|
auto _S = new AST::CXXScalarValueInitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXNewExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXNewExpr*>(llvm::cast<clang::CXXNewExpr>(Expr)); |
|
auto _S = new AST::CXXNewExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->operatorNew = static_cast<AST::Function*>(WalkDeclaration(S->getOperatorNew())); |
|
_S->operatorDelete = static_cast<AST::Function*>(WalkDeclaration(S->getOperatorDelete())); |
|
_S->allocatedType = GetQualifiedType(S->getAllocatedType()); |
|
_S->isArray = S->isArray(); |
|
_S->arraySize = static_cast<AST::Expr*>(WalkExpression(S->getArraySize().value())); |
|
_S->numPlacementArgs = S->getNumPlacementArgs(); |
|
_S->isParenTypeId = S->isParenTypeId(); |
|
_S->isGlobalNew = S->isGlobalNew(); |
|
_S->hasInitializer = S->hasInitializer(); |
|
_S->initializationStyle = (CXXNewExpr::InitializationStyle) S->getInitializationStyle(); |
|
_S->initializer = static_cast<AST::Expr*>(WalkExpression(S->getInitializer())); |
|
_S->constructExpr = static_cast<AST::CXXConstructExpr*>(WalkExpression(S->getConstructExpr())); |
|
for (auto _E : S->placement_arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addplacement_arguments(_ES); |
|
} |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXDeleteExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXDeleteExpr*>(llvm::cast<clang::CXXDeleteExpr>(Expr)); |
|
auto _S = new AST::CXXDeleteExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->isGlobalDelete = S->isGlobalDelete(); |
|
_S->isArrayForm = S->isArrayForm(); |
|
_S->isArrayFormAsWritten = S->isArrayFormAsWritten(); |
|
_S->operatorDelete = static_cast<AST::Function*>(WalkDeclaration(S->getOperatorDelete())); |
|
_S->argument = static_cast<AST::Expr*>(WalkExpression(S->getArgument())); |
|
_S->destroyedType = GetQualifiedType(S->getDestroyedType()); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXPseudoDestructorExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXPseudoDestructorExpr*>(llvm::cast<clang::CXXPseudoDestructorExpr>(Expr)); |
|
auto _S = new AST::CXXPseudoDestructorExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->base = static_cast<AST::Expr*>(WalkExpression(S->getBase())); |
|
_S->hasQualifier = S->hasQualifier(); |
|
_S->isArrow = S->isArrow(); |
|
_S->destroyedType = GetQualifiedType(S->getDestroyedType()); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::TypeTraitExprClass: |
|
{ |
|
auto S = const_cast<clang::TypeTraitExpr*>(llvm::cast<clang::TypeTraitExpr>(Expr)); |
|
auto _S = new AST::TypeTraitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->value = S->getValue(); |
|
_S->numArgs = S->getNumArgs(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ArrayTypeTraitExprClass: |
|
{ |
|
auto S = const_cast<clang::ArrayTypeTraitExpr*>(llvm::cast<clang::ArrayTypeTraitExpr>(Expr)); |
|
auto _S = new AST::ArrayTypeTraitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->queriedType = GetQualifiedType(S->getQueriedType()); |
|
_S->value = S->getValue(); |
|
_S->dimensionExpression = static_cast<AST::Expr*>(WalkExpression(S->getDimensionExpression())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ExpressionTraitExprClass: |
|
{ |
|
auto S = const_cast<clang::ExpressionTraitExpr*>(llvm::cast<clang::ExpressionTraitExpr>(Expr)); |
|
auto _S = new AST::ExpressionTraitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->queriedExpression = static_cast<AST::Expr*>(WalkExpression(S->getQueriedExpression())); |
|
_S->value = S->getValue(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::UnresolvedLookupExprClass: |
|
{ |
|
auto S = const_cast<clang::UnresolvedLookupExpr*>(llvm::cast<clang::UnresolvedLookupExpr>(Expr)); |
|
auto _S = new AST::UnresolvedLookupExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->numDecls = S->getNumDecls(); |
|
_S->hasTemplateKeyword = S->hasTemplateKeyword(); |
|
_S->hasExplicitTemplateArgs = S->hasExplicitTemplateArgs(); |
|
_S->numTemplateArgs = S->getNumTemplateArgs(); |
|
_S->requiresADL = S->requiresADL(); |
|
_S->isOverloaded = S->isOverloaded(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::DependentScopeDeclRefExprClass: |
|
{ |
|
auto S = const_cast<clang::DependentScopeDeclRefExpr*>(llvm::cast<clang::DependentScopeDeclRefExpr>(Expr)); |
|
auto _S = new AST::DependentScopeDeclRefExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->hasTemplateKeyword = S->hasTemplateKeyword(); |
|
_S->hasExplicitTemplateArgs = S->hasExplicitTemplateArgs(); |
|
_S->numTemplateArgs = S->getNumTemplateArgs(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::ExprWithCleanupsClass: |
|
{ |
|
auto S = const_cast<clang::ExprWithCleanups*>(llvm::cast<clang::ExprWithCleanups>(Expr)); |
|
auto _S = new AST::ExprWithCleanups(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->subExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->numObjects = S->getNumObjects(); |
|
_S->cleanupsHaveSideEffects = S->cleanupsHaveSideEffects(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXUnresolvedConstructExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXUnresolvedConstructExpr*>(llvm::cast<clang::CXXUnresolvedConstructExpr>(Expr)); |
|
auto _S = new AST::CXXUnresolvedConstructExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->typeAsWritten = GetQualifiedType(S->getTypeAsWritten()); |
|
_S->isListInitialization = S->isListInitialization(); |
|
_S->arg_size = S->getNumArgs(); |
|
for (auto _E : S->arguments()) |
|
{ |
|
auto _ES = WalkExpression(_E); |
|
_S->addarguments(_ES); |
|
} |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXDependentScopeMemberExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXDependentScopeMemberExpr*>(llvm::cast<clang::CXXDependentScopeMemberExpr>(Expr)); |
|
auto _S = new AST::CXXDependentScopeMemberExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->isImplicitAccess = S->isImplicitAccess(); |
|
_S->base = static_cast<AST::Expr*>(WalkExpression(S->getBase())); |
|
_S->baseType = GetQualifiedType(S->getBaseType()); |
|
_S->isArrow = S->isArrow(); |
|
_S->firstQualifierFoundInScope = static_cast<AST::Declaration*>(WalkDeclaration(S->getFirstQualifierFoundInScope())); |
|
_S->hasTemplateKeyword = S->hasTemplateKeyword(); |
|
_S->hasExplicitTemplateArgs = S->hasExplicitTemplateArgs(); |
|
_S->numTemplateArgs = S->getNumTemplateArgs(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::UnresolvedMemberExprClass: |
|
{ |
|
auto S = const_cast<clang::UnresolvedMemberExpr*>(llvm::cast<clang::UnresolvedMemberExpr>(Expr)); |
|
auto _S = new AST::UnresolvedMemberExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->numDecls = S->getNumDecls(); |
|
_S->hasTemplateKeyword = S->hasTemplateKeyword(); |
|
_S->hasExplicitTemplateArgs = S->hasExplicitTemplateArgs(); |
|
_S->numTemplateArgs = S->getNumTemplateArgs(); |
|
_S->isImplicitAccess = S->isImplicitAccess(); |
|
_S->base = static_cast<AST::Expr*>(WalkExpression(S->getBase())); |
|
_S->baseType = GetQualifiedType(S->getBaseType()); |
|
_S->hasUnresolvedUsing = S->hasUnresolvedUsing(); |
|
_S->isArrow = S->isArrow(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXNoexceptExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXNoexceptExpr*>(llvm::cast<clang::CXXNoexceptExpr>(Expr)); |
|
auto _S = new AST::CXXNoexceptExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->operand = static_cast<AST::Expr*>(WalkExpression(S->getOperand())); |
|
_S->value = S->getValue(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::PackExpansionExprClass: |
|
{ |
|
auto S = const_cast<clang::PackExpansionExpr*>(llvm::cast<clang::PackExpansionExpr>(Expr)); |
|
auto _S = new AST::PackExpansionExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->pattern = static_cast<AST::Expr*>(WalkExpression(S->getPattern())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::SizeOfPackExprClass: |
|
{ |
|
auto S = const_cast<clang::SizeOfPackExpr*>(llvm::cast<clang::SizeOfPackExpr>(Expr)); |
|
auto _S = new AST::SizeOfPackExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->pack = static_cast<AST::Declaration*>(WalkDeclaration(S->getPack())); |
|
_S->packLength = S->getPackLength(); |
|
_S->isPartiallySubstituted = S->isPartiallySubstituted(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::SubstNonTypeTemplateParmExprClass: |
|
{ |
|
auto S = const_cast<clang::SubstNonTypeTemplateParmExpr*>(llvm::cast<clang::SubstNonTypeTemplateParmExpr>(Expr)); |
|
auto _S = new AST::SubstNonTypeTemplateParmExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->replacement = static_cast<AST::Expr*>(WalkExpression(S->getReplacement())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::SubstNonTypeTemplateParmPackExprClass: |
|
{ |
|
auto S = const_cast<clang::SubstNonTypeTemplateParmPackExpr*>(llvm::cast<clang::SubstNonTypeTemplateParmPackExpr>(Expr)); |
|
auto _S = new AST::SubstNonTypeTemplateParmPackExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->argumentPack = WalkTemplateArgument(S->getArgumentPack()); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::FunctionParmPackExprClass: |
|
{ |
|
auto S = const_cast<clang::FunctionParmPackExpr*>(llvm::cast<clang::FunctionParmPackExpr>(Expr)); |
|
auto _S = new AST::FunctionParmPackExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->numExpansions = S->getNumExpansions(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::MaterializeTemporaryExprClass: |
|
{ |
|
auto S = const_cast<clang::MaterializeTemporaryExpr*>(llvm::cast<clang::MaterializeTemporaryExpr>(Expr)); |
|
auto _S = new AST::MaterializeTemporaryExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->temporary = static_cast<AST::Stmt*>(WalkStatement(S->getSubExpr())); |
|
_S->TemporaryExpr = static_cast<AST::Expr*>(WalkExpression(S->getSubExpr())); |
|
_S->manglingNumber = S->getManglingNumber(); |
|
_S->isBoundToLvalueReference = S->isBoundToLvalueReference(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CXXFoldExprClass: |
|
{ |
|
auto S = const_cast<clang::CXXFoldExpr*>(llvm::cast<clang::CXXFoldExpr>(Expr)); |
|
auto _S = new AST::CXXFoldExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->lHS = static_cast<AST::Expr*>(WalkExpression(S->getLHS())); |
|
_S->rHS = static_cast<AST::Expr*>(WalkExpression(S->getRHS())); |
|
_S->isRightFold = S->isRightFold(); |
|
_S->isLeftFold = S->isLeftFold(); |
|
_S->pattern = static_cast<AST::Expr*>(WalkExpression(S->getPattern())); |
|
_S->init = static_cast<AST::Expr*>(WalkExpression(S->getInit())); |
|
_S->_operator = (BinaryOperatorKind) S->getOperator(); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CoawaitExprClass: |
|
{ |
|
auto S = const_cast<clang::CoawaitExpr*>(llvm::cast<clang::CoawaitExpr>(Expr)); |
|
auto _S = new AST::CoawaitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->commonExpr = static_cast<AST::Expr*>(WalkExpression(S->getCommonExpr())); |
|
_S->opaqueValue = static_cast<AST::OpaqueValueExpr*>(WalkExpression(S->getOpaqueValue())); |
|
_S->readyExpr = static_cast<AST::Expr*>(WalkExpression(S->getReadyExpr())); |
|
_S->suspendExpr = static_cast<AST::Expr*>(WalkExpression(S->getSuspendExpr())); |
|
_S->resumeExpr = static_cast<AST::Expr*>(WalkExpression(S->getResumeExpr())); |
|
_S->isImplicit = S->isImplicit(); |
|
_S->operand = static_cast<AST::Expr*>(WalkExpression(S->getOperand())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::DependentCoawaitExprClass: |
|
{ |
|
auto S = const_cast<clang::DependentCoawaitExpr*>(llvm::cast<clang::DependentCoawaitExpr>(Expr)); |
|
auto _S = new AST::DependentCoawaitExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->operand = static_cast<AST::Expr*>(WalkExpression(S->getOperand())); |
|
_S->operatorCoawaitLookup = static_cast<AST::UnresolvedLookupExpr*>(WalkExpression(S->getOperatorCoawaitLookup())); |
|
_Expr = _S; |
|
break; |
|
} |
|
case clang::Stmt::CoyieldExprClass: |
|
{ |
|
auto S = const_cast<clang::CoyieldExpr*>(llvm::cast<clang::CoyieldExpr>(Expr)); |
|
auto _S = new AST::CoyieldExpr(); |
|
_S->type = GetQualifiedType(S->getType()); |
|
_S->valueDependent = S->isValueDependent(); |
|
_S->typeDependent = S->isTypeDependent(); |
|
_S->instantiationDependent = S->isInstantiationDependent(); |
|
_S->containsUnexpandedParameterPack = S->containsUnexpandedParameterPack(); |
|
_S->isLValue = S->isLValue(); |
|
_S->isRValue = S->isPRValue(); |
|
_S->isXValue = S->isXValue(); |
|
_S->isGLValue = S->isGLValue(); |
|
_S->isOrdinaryOrBitFieldObject = S->isOrdinaryOrBitFieldObject(); |
|
_S->sourceBitField = static_cast<AST::Field*>(WalkDeclaration(S->getSourceBitField())); |
|
_S->referencedDeclOfCallee = static_cast<AST::Declaration*>(WalkDeclaration(S->getReferencedDeclOfCallee())); |
|
_S->hasPlaceholderType = S->hasPlaceholderType(); |
|
_S->commonExpr = static_cast<AST::Expr*>(WalkExpression(S->getCommonExpr())); |
|
_S->opaqueValue = static_cast<AST::OpaqueValueExpr*>(WalkExpression(S->getOpaqueValue())); |
|
_S->readyExpr = static_cast<AST::Expr*>(WalkExpression(S->getReadyExpr())); |
|
_S->suspendExpr = static_cast<AST::Expr*>(WalkExpression(S->getSuspendExpr())); |
|
_S->resumeExpr = static_cast<AST::Expr*>(WalkExpression(S->getResumeExpr())); |
|
_S->operand = static_cast<AST::Expr*>(WalkExpression(S->getOperand())); |
|
_Expr = _S; |
|
break; |
|
} |
|
default: |
|
printf("Unhandled statement kind: %s\n", Expr->getStmtClassName()); |
|
} |
|
|
|
return _Expr; |
|
} |
|
|
|
}
|
|
|