//===-- 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(n) #define LAST_STMT(n) #endif #ifndef FIRST_EXPR #define FIRST_EXPR(n) #define LAST_EXPR(n) #endif // Normal Statements. FIRST_STMT(1) STMT( 1, NullStmt , Stmt) STMT( 2, CompoundStmt , Stmt) STMT( 3, CaseStmt , SwitchCase) STMT( 4, DefaultStmt , SwitchCase) STMT( 5, LabelStmt , Stmt) STMT( 6, IfStmt , Stmt) STMT( 7, SwitchStmt , Stmt) STMT( 8, WhileStmt , Stmt) STMT( 9, DoStmt , Stmt) STMT(10, ForStmt , Stmt) STMT(11, GotoStmt , Stmt) STMT(12, IndirectGotoStmt, Stmt) STMT(13, ContinueStmt , Stmt) STMT(14, BreakStmt , Stmt) STMT(15, ReturnStmt , Stmt) STMT(16, DeclStmt , Stmt) STMT(17, SwitchCase , Stmt) // GNU Stmt Extensions STMT(18, AsmStmt , Stmt) // Obj-C statements STMT(19, ObjCAtTryStmt , Stmt) STMT(20, ObjCAtCatchStmt , Stmt) STMT(21, ObjCAtFinallyStmt , Stmt) STMT(22, ObjCAtThrowStmt , Stmt) STMT(23, ObjCAtSynchronizedStmt , Stmt) // Obj-C2 statements STMT(24, ObjCForCollectionStmt, Stmt) LAST_STMT(23) FIRST_EXPR(31) // Expressions. STMT(31, Expr , Stmt) STMT(32, PreDefinedExpr , Expr) STMT(33, DeclRefExpr , Expr) STMT(34, IntegerLiteral , Expr) STMT(35, FloatingLiteral , Expr) STMT(36, ImaginaryLiteral , Expr) STMT(37, StringLiteral , Expr) STMT(38, CharacterLiteral , Expr) STMT(39, ParenExpr , Expr) STMT(40, UnaryOperator , Expr) STMT(41, SizeOfAlignOfTypeExpr , Expr) STMT(42, ArraySubscriptExpr , Expr) STMT(43, CallExpr , Expr) STMT(44, MemberExpr , Expr) STMT(45, CastExpr , Expr) STMT(46, BinaryOperator , Expr) STMT(47, CompoundAssignOperator, BinaryOperator) STMT(48, ConditionalOperator , Expr) STMT(49, ImplicitCastExpr , Expr) STMT(50, CompoundLiteralExpr , Expr) STMT(51, ExtVectorElementExpr , Expr) STMT(52, InitListExpr , Expr) STMT(53, VAArgExpr , Expr) // GNU Extensions. STMT(55, AddrLabelExpr , Expr) STMT(56, StmtExpr , Expr) STMT(57, TypesCompatibleExpr , Expr) STMT(58, ChooseExpr , Expr) // C++ Expressions. STMT(60, CXXCastExpr , Expr) STMT(61, CXXBoolLiteralExpr , Expr) STMT(62, CXXThrowExpr , Expr) STMT(63, CXXDefaultArgExpr , Expr) // Obj-C Expressions. STMT(70, ObjCStringLiteral , Expr) STMT(71, ObjCEncodeExpr , Expr) STMT(72, ObjCMessageExpr , Expr) STMT(73, ObjCSelectorExpr , Expr) STMT(74, ObjCProtocolExpr , Expr) STMT(75, ObjCIvarRefExpr , Expr) // Clang Extensions. STMT(76, OverloadExpr , Expr) LAST_EXPR(76) #undef STMT #undef FIRST_STMT #undef LAST_STMT #undef FIRST_EXPR #undef LAST_EXPR