]> granicus.if.org Git - clang/blob - include/clang/AST/StmtNodes.def
add parsing, ast building and pretty printing support for C++ throw expressions.
[clang] / include / clang / AST / StmtNodes.def
1 //===-- StmtNodes.def - Metadata about Stmt AST nodes -----------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 //  This file defines the AST Node info database.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef FIRST_STMT
15 #define FIRST_STMT(n)
16 #define LAST_STMT(n)
17 #endif
18
19 #ifndef FIRST_EXPR
20 #define FIRST_EXPR(n)
21 #define LAST_EXPR(n)
22 #endif
23
24 // Normal Statements.
25 FIRST_STMT(1)
26 STMT( 1, NullStmt        , Stmt)
27 STMT( 2, CompoundStmt    , Stmt)
28 STMT( 3, CaseStmt        , SwitchCase)
29 STMT( 4, DefaultStmt     , SwitchCase)
30 STMT( 5, LabelStmt       , Stmt)
31 STMT( 6, IfStmt          , Stmt)
32 STMT( 7, SwitchStmt      , Stmt)
33 STMT( 8, WhileStmt       , Stmt)
34 STMT( 9, DoStmt          , Stmt)
35 STMT(10, ForStmt         , Stmt)
36 STMT(11, GotoStmt        , Stmt)
37 STMT(12, IndirectGotoStmt, Stmt)
38 STMT(13, ContinueStmt    , Stmt)
39 STMT(14, BreakStmt       , Stmt)
40 STMT(15, ReturnStmt      , Stmt)
41 STMT(16, DeclStmt        , Stmt)
42 STMT(17, SwitchCase      , Stmt)
43
44 // GNU Stmt Extensions
45 STMT(18, AsmStmt         , Stmt)
46
47 // Obj-C statements
48 STMT(19, ObjCAtTryStmt        , Stmt)
49 STMT(20, ObjCAtCatchStmt      , Stmt)
50 STMT(21, ObjCAtFinallyStmt    , Stmt)
51 STMT(22, ObjCAtThrowStmt      , Stmt)
52 STMT(23, ObjCAtSynchronizedStmt , Stmt)
53 // Obj-C2 statements
54 STMT(24, ObjCForCollectionStmt, Stmt)
55
56 LAST_STMT(23)
57
58 FIRST_EXPR(31)
59 // Expressions.
60 STMT(31, Expr                  , Stmt)
61 STMT(32, PreDefinedExpr        , Expr)
62 STMT(33, DeclRefExpr           , Expr)
63 STMT(34, IntegerLiteral        , Expr)
64 STMT(35, FloatingLiteral       , Expr)
65 STMT(36, ImaginaryLiteral      , Expr)
66 STMT(37, StringLiteral         , Expr)
67 STMT(38, CharacterLiteral      , Expr)
68 STMT(39, ParenExpr             , Expr)
69 STMT(40, UnaryOperator         , Expr)
70 STMT(41, SizeOfAlignOfTypeExpr , Expr)
71 STMT(42, ArraySubscriptExpr    , Expr)
72 STMT(43, CallExpr              , Expr)
73 STMT(44, MemberExpr            , Expr)
74 STMT(45, CastExpr              , Expr)
75 STMT(46, BinaryOperator        , Expr)
76 STMT(47, CompoundAssignOperator, BinaryOperator)
77 STMT(48, ConditionalOperator   , Expr)
78 STMT(49, ImplicitCastExpr      , Expr)
79 STMT(50, CompoundLiteralExpr   , Expr)
80 STMT(51, OCUVectorElementExpr  , Expr)
81 STMT(52, InitListExpr          , Expr)
82 STMT(53, VAArgExpr             , Expr)
83
84 // GNU Extensions.
85 STMT(55, AddrLabelExpr        , Expr)
86 STMT(56, StmtExpr             , Expr)
87 STMT(57, TypesCompatibleExpr  , Expr)
88 STMT(58, ChooseExpr           , Expr)
89
90 // C++ Expressions.
91 STMT(60, CXXCastExpr          , Expr)
92 STMT(61, CXXBoolLiteralExpr   , Expr)
93 STMT(62, CXXThrowExpr         , Expr)
94
95 // Obj-C Expressions.
96 STMT(70, ObjCStringLiteral    , Expr)
97 STMT(71, ObjCEncodeExpr       , Expr)
98 STMT(72, ObjCMessageExpr      , Expr)
99 STMT(73, ObjCSelectorExpr     , Expr)
100 STMT(74, ObjCProtocolExpr     , Expr)
101 STMT(75, ObjCIvarRefExpr      , Expr)
102
103 // Clang Extensions.
104 STMT(76, OverloadExpr         , Expr)
105
106 LAST_EXPR(76)
107
108 #undef STMT
109 #undef FIRST_STMT
110 #undef LAST_STMT
111 #undef FIRST_EXPR
112 #undef LAST_EXPR