1 /*
2 ** node.h - nodes of abstract syntax tree
3 **
4 ** See Copyright Notice in mruby.h
5 */
6 
7 #ifndef MRUBY_COMPILER_NODE_H
8 #define MRUBY_COMPILER_NODE_H
9 
10 enum node_type {
11   NODE_METHOD,
12   NODE_SCOPE,
13   NODE_BLOCK,
14   NODE_IF,
15   NODE_CASE,
16   NODE_WHEN,
17   NODE_WHILE,
18   NODE_UNTIL,
19   NODE_ITER,
20   NODE_FOR,
21   NODE_BREAK,
22   NODE_NEXT,
23   NODE_REDO,
24   NODE_RETRY,
25   NODE_BEGIN,
26   NODE_RESCUE,
27   NODE_ENSURE,
28   NODE_AND,
29   NODE_OR,
30   NODE_NOT,
31   NODE_MASGN,
32   NODE_ASGN,
33   NODE_CDECL,
34   NODE_CVASGN,
35   NODE_CVDECL,
36   NODE_OP_ASGN,
37   NODE_CALL,
38   NODE_SCALL,
39   NODE_FCALL,
40   NODE_SUPER,
41   NODE_ZSUPER,
42   NODE_ARRAY,
43   NODE_ZARRAY,
44   NODE_HASH,
45   NODE_KW_HASH,
46   NODE_RETURN,
47   NODE_YIELD,
48   NODE_LVAR,
49   NODE_DVAR,
50   NODE_GVAR,
51   NODE_IVAR,
52   NODE_CONST,
53   NODE_CVAR,
54   NODE_NTH_REF,
55   NODE_BACK_REF,
56   NODE_MATCH,
57   NODE_INT,
58   NODE_FLOAT,
59   NODE_NEGATE,
60   NODE_LAMBDA,
61   NODE_SYM,
62   NODE_STR,
63   NODE_DSTR,
64   NODE_XSTR,
65   NODE_DXSTR,
66   NODE_REGX,
67   NODE_DREGX,
68   NODE_DREGX_ONCE,
69   NODE_ARG,
70   NODE_ARGS_TAIL,
71   NODE_KW_ARG,
72   NODE_KW_REST_ARGS,
73   NODE_SPLAT,
74   NODE_TO_ARY,
75   NODE_SVALUE,
76   NODE_BLOCK_ARG,
77   NODE_DEF,
78   NODE_SDEF,
79   NODE_ALIAS,
80   NODE_UNDEF,
81   NODE_CLASS,
82   NODE_MODULE,
83   NODE_SCLASS,
84   NODE_COLON2,
85   NODE_COLON3,
86   NODE_DOT2,
87   NODE_DOT3,
88   NODE_SELF,
89   NODE_NIL,
90   NODE_TRUE,
91   NODE_FALSE,
92   NODE_DEFINED,
93   NODE_POSTEXE,
94   NODE_DSYM,
95   NODE_HEREDOC,
96   NODE_LITERAL_DELIM,
97   NODE_WORDS,
98   NODE_SYMBOLS,
99   NODE_LAST
100 };
101 
102 #endif  /* MRUBY_COMPILER_NODE_H */
103