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_NVAR,
55   NODE_NTH_REF,
56   NODE_BACK_REF,
57   NODE_MATCH,
58   NODE_INT,
59   NODE_FLOAT,
60   NODE_NEGATE,
61   NODE_LAMBDA,
62   NODE_SYM,
63   NODE_STR,
64   NODE_DSTR,
65   NODE_XSTR,
66   NODE_DXSTR,
67   NODE_REGX,
68   NODE_DREGX,
69   NODE_DREGX_ONCE,
70   NODE_ARG,
71   NODE_ARGS_TAIL,
72   NODE_KW_ARG,
73   NODE_KW_REST_ARGS,
74   NODE_SPLAT,
75   NODE_TO_ARY,
76   NODE_SVALUE,
77   NODE_BLOCK_ARG,
78   NODE_DEF,
79   NODE_SDEF,
80   NODE_ALIAS,
81   NODE_UNDEF,
82   NODE_CLASS,
83   NODE_MODULE,
84   NODE_SCLASS,
85   NODE_COLON2,
86   NODE_COLON3,
87   NODE_DOT2,
88   NODE_DOT3,
89   NODE_SELF,
90   NODE_NIL,
91   NODE_TRUE,
92   NODE_FALSE,
93   NODE_DEFINED,
94   NODE_POSTEXE,
95   NODE_DSYM,
96   NODE_HEREDOC,
97   NODE_LITERAL_DELIM,
98   NODE_WORDS,
99   NODE_SYMBOLS,
100   NODE_LAST
101 };
102 
103 #endif  /* MRUBY_COMPILER_NODE_H */
104