зеркало из https://github.com/microsoft/clang-1.git
146 строки
4.1 KiB
C++
146 строки
4.1 KiB
C++
//===-- StmtNodes.def - Metadata about Stmt AST nodes -----------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines the AST Node info database.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef FIRST_STMT
|
|
#define FIRST_STMT(CLASS)
|
|
#define LAST_STMT(CLASS)
|
|
#endif
|
|
|
|
#ifndef FIRST_EXPR
|
|
#define FIRST_EXPR(CLASS)
|
|
#define LAST_EXPR(CLASS)
|
|
#endif
|
|
|
|
// Normal Statements.
|
|
STMT(NullStmt , Stmt)
|
|
FIRST_STMT(NullStmt)
|
|
STMT(CompoundStmt , Stmt)
|
|
STMT(CaseStmt , SwitchCase)
|
|
STMT(DefaultStmt , SwitchCase)
|
|
STMT(LabelStmt , Stmt)
|
|
STMT(IfStmt , Stmt)
|
|
STMT(SwitchStmt , Stmt)
|
|
STMT(WhileStmt , Stmt)
|
|
STMT(DoStmt , Stmt)
|
|
STMT(ForStmt , Stmt)
|
|
STMT(GotoStmt , Stmt)
|
|
STMT(IndirectGotoStmt, Stmt)
|
|
STMT(ContinueStmt , Stmt)
|
|
STMT(BreakStmt , Stmt)
|
|
STMT(ReturnStmt , Stmt)
|
|
STMT(DeclStmt , Stmt)
|
|
STMT(SwitchCase , Stmt)
|
|
|
|
// GNU Stmt Extensions
|
|
STMT(AsmStmt , Stmt)
|
|
|
|
// Obj-C statements
|
|
STMT(ObjCAtTryStmt , Stmt)
|
|
STMT(ObjCAtCatchStmt , Stmt)
|
|
STMT(ObjCAtFinallyStmt , Stmt)
|
|
STMT(ObjCAtThrowStmt , Stmt)
|
|
STMT(ObjCAtSynchronizedStmt , Stmt)
|
|
// Obj-C2 statements
|
|
STMT(ObjCForCollectionStmt, Stmt)
|
|
|
|
// C++ statements
|
|
STMT(CXXCatchStmt, Stmt)
|
|
STMT(CXXTryStmt , Stmt)
|
|
|
|
LAST_STMT(CXXTryStmt)
|
|
|
|
// Expressions.
|
|
STMT(Expr , Stmt)
|
|
FIRST_EXPR(Expr)
|
|
STMT(PredefinedExpr , Expr)
|
|
STMT(DeclRefExpr , Expr)
|
|
STMT(IntegerLiteral , Expr)
|
|
STMT(FloatingLiteral , Expr)
|
|
STMT(ImaginaryLiteral , Expr)
|
|
STMT(StringLiteral , Expr)
|
|
STMT(CharacterLiteral , Expr)
|
|
STMT(ParenExpr , Expr)
|
|
STMT(UnaryOperator , Expr)
|
|
STMT(SizeOfAlignOfExpr , Expr)
|
|
STMT(ArraySubscriptExpr , Expr)
|
|
STMT(CallExpr , Expr)
|
|
STMT(MemberExpr , Expr)
|
|
STMT(CastExpr , Expr)
|
|
STMT(BinaryOperator , Expr)
|
|
STMT(CompoundAssignOperator, BinaryOperator)
|
|
STMT(ConditionalOperator , Expr)
|
|
STMT(ImplicitCastExpr , CastExpr)
|
|
STMT(ExplicitCastExpr , CastExpr)
|
|
STMT(CStyleCastExpr , ExplicitCastExpr)
|
|
STMT(CompoundLiteralExpr , Expr)
|
|
STMT(ExtVectorElementExpr , Expr)
|
|
STMT(InitListExpr , Expr)
|
|
STMT(DesignatedInitExpr , Expr)
|
|
STMT(ImplicitValueInitExpr , Expr)
|
|
STMT(VAArgExpr , Expr)
|
|
|
|
// GNU Extensions.
|
|
STMT(AddrLabelExpr , Expr)
|
|
STMT(StmtExpr , Expr)
|
|
STMT(TypesCompatibleExpr , Expr)
|
|
STMT(ChooseExpr , Expr)
|
|
STMT(GNUNullExpr , Expr)
|
|
|
|
// C++ Expressions.
|
|
STMT(CXXOperatorCallExpr , CallExpr)
|
|
STMT(CXXMemberCallExpr , CallExpr)
|
|
STMT(CXXNamedCastExpr , ExplicitCastExpr)
|
|
STMT(CXXStaticCastExpr , CXXNamedCastExpr)
|
|
STMT(CXXDynamicCastExpr , CXXNamedCastExpr)
|
|
STMT(CXXReinterpretCastExpr , CXXNamedCastExpr)
|
|
STMT(CXXConstCastExpr , CXXNamedCastExpr)
|
|
STMT(CXXFunctionalCastExpr , ExplicitCastExpr)
|
|
STMT(CXXTemporaryObjectExpr , Expr)
|
|
STMT(CXXTypeidExpr , Expr)
|
|
STMT(CXXBoolLiteralExpr , Expr)
|
|
STMT(CXXThisExpr , Expr)
|
|
STMT(CXXThrowExpr , Expr)
|
|
STMT(CXXDefaultArgExpr , Expr)
|
|
STMT(CXXZeroInitValueExpr , Expr)
|
|
STMT(CXXConditionDeclExpr , DeclRefExpr)
|
|
STMT(CXXNewExpr , Expr)
|
|
STMT(CXXDeleteExpr , Expr)
|
|
STMT(UnresolvedFunctionNameExpr , Expr)
|
|
STMT(UnaryTypeTraitExpr , Expr)
|
|
STMT(QualifiedDeclRefExpr , DeclRefExpr)
|
|
|
|
// Obj-C Expressions.
|
|
STMT(ObjCStringLiteral , Expr)
|
|
STMT(ObjCEncodeExpr , Expr)
|
|
STMT(ObjCMessageExpr , Expr)
|
|
STMT(ObjCSelectorExpr , Expr)
|
|
STMT(ObjCProtocolExpr , Expr)
|
|
STMT(ObjCIvarRefExpr , Expr)
|
|
STMT(ObjCPropertyRefExpr , Expr)
|
|
STMT(ObjCKVCRefExpr , Expr)
|
|
STMT(ObjCSuperExpr , Expr)
|
|
|
|
// Clang Extensions.
|
|
STMT(OverloadExpr , Expr)
|
|
STMT(ShuffleVectorExpr , Expr)
|
|
STMT(BlockExpr , Expr)
|
|
STMT(BlockDeclRefExpr , Expr)
|
|
|
|
LAST_EXPR(BlockDeclRefExpr)
|
|
|
|
#undef STMT
|
|
#undef FIRST_STMT
|
|
#undef LAST_STMT
|
|
#undef FIRST_EXPR
|
|
#undef LAST_EXPR
|