mutant-melbourne 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +25 -0
- data/README.md +69 -0
- data/Rakefile +14 -0
- data/ext/melbourne/.gitignore +3 -0
- data/ext/melbourne/bstring-license.txt +29 -0
- data/ext/melbourne/bstrlib.c +2687 -0
- data/ext/melbourne/bstrlib.h +267 -0
- data/ext/melbourne/encoding_compat.cpp +188 -0
- data/ext/melbourne/encoding_compat.hpp +57 -0
- data/ext/melbourne/extconf.rb +87 -0
- data/ext/melbourne/grammar18.cpp +11280 -0
- data/ext/melbourne/grammar18.hpp +13 -0
- data/ext/melbourne/grammar18.y +6088 -0
- data/ext/melbourne/grammar19.cpp +12420 -0
- data/ext/melbourne/grammar19.hpp +11 -0
- data/ext/melbourne/grammar19.y +7113 -0
- data/ext/melbourne/lex.c.blt +152 -0
- data/ext/melbourne/lex.c.tab +136 -0
- data/ext/melbourne/local_state.hpp +43 -0
- data/ext/melbourne/melbourne.cpp +88 -0
- data/ext/melbourne/melbourne.hpp +19 -0
- data/ext/melbourne/node18.hpp +262 -0
- data/ext/melbourne/node19.hpp +271 -0
- data/ext/melbourne/node_types.rb +304 -0
- data/ext/melbourne/node_types18.cpp +255 -0
- data/ext/melbourne/node_types18.hpp +129 -0
- data/ext/melbourne/node_types19.cpp +249 -0
- data/ext/melbourne/node_types19.hpp +126 -0
- data/ext/melbourne/parser_state18.hpp +181 -0
- data/ext/melbourne/parser_state19.hpp +251 -0
- data/ext/melbourne/quark.cpp +42 -0
- data/ext/melbourne/quark.hpp +45 -0
- data/ext/melbourne/symbols.cpp +224 -0
- data/ext/melbourne/symbols.hpp +119 -0
- data/ext/melbourne/var_table18.cpp +83 -0
- data/ext/melbourne/var_table18.hpp +33 -0
- data/ext/melbourne/var_table19.cpp +65 -0
- data/ext/melbourne/var_table19.hpp +35 -0
- data/ext/melbourne/visitor18.cpp +963 -0
- data/ext/melbourne/visitor18.hpp +12 -0
- data/ext/melbourne/visitor19.cpp +960 -0
- data/ext/melbourne/visitor19.hpp +15 -0
- data/lib/compiler/ast/constants.rb +81 -0
- data/lib/compiler/ast/control_flow.rb +290 -0
- data/lib/compiler/ast/data.rb +14 -0
- data/lib/compiler/ast/definitions.rb +749 -0
- data/lib/compiler/ast/encoding.rb +18 -0
- data/lib/compiler/ast/exceptions.rb +138 -0
- data/lib/compiler/ast/file.rb +11 -0
- data/lib/compiler/ast/grapher.rb +89 -0
- data/lib/compiler/ast/literals.rb +207 -0
- data/lib/compiler/ast/node.rb +362 -0
- data/lib/compiler/ast/operators.rb +106 -0
- data/lib/compiler/ast/self.rb +15 -0
- data/lib/compiler/ast/sends.rb +615 -0
- data/lib/compiler/ast/transforms.rb +298 -0
- data/lib/compiler/ast/values.rb +88 -0
- data/lib/compiler/ast/variables.rb +351 -0
- data/lib/compiler/ast.rb +20 -0
- data/lib/compiler/locals.rb +109 -0
- data/lib/melbourne/processor.rb +651 -0
- data/lib/melbourne/version.rb +3 -0
- data/lib/melbourne.rb +143 -0
- metadata +112 -0
@@ -0,0 +1,249 @@
|
|
1
|
+
/* This file is generated by node_types.rb. Do not edit. */
|
2
|
+
|
3
|
+
#include "node_types19.hpp"
|
4
|
+
|
5
|
+
#include <stdio.h>
|
6
|
+
|
7
|
+
namespace melbourne {
|
8
|
+
namespace grammar19 {
|
9
|
+
static const char node_types[] = {
|
10
|
+
"scope\0"
|
11
|
+
"block\0"
|
12
|
+
"if\0"
|
13
|
+
"case\0"
|
14
|
+
"when\0"
|
15
|
+
"opt_n\0"
|
16
|
+
"while\0"
|
17
|
+
"until\0"
|
18
|
+
"iter\0"
|
19
|
+
"for\0"
|
20
|
+
"break\0"
|
21
|
+
"next\0"
|
22
|
+
"redo\0"
|
23
|
+
"retry\0"
|
24
|
+
"begin\0"
|
25
|
+
"rescue\0"
|
26
|
+
"resbody\0"
|
27
|
+
"ensure\0"
|
28
|
+
"and\0"
|
29
|
+
"or\0"
|
30
|
+
"masgn\0"
|
31
|
+
"lasgn\0"
|
32
|
+
"dasgn\0"
|
33
|
+
"dasgn_curr\0"
|
34
|
+
"gasgn\0"
|
35
|
+
"iasgn\0"
|
36
|
+
"iasgn2\0"
|
37
|
+
"cdecl\0"
|
38
|
+
"cvasgn\0"
|
39
|
+
"cvdecl\0"
|
40
|
+
"op_asgn1\0"
|
41
|
+
"op_asgn2\0"
|
42
|
+
"op_asgn_and\0"
|
43
|
+
"op_asgn_or\0"
|
44
|
+
"call\0"
|
45
|
+
"fcall\0"
|
46
|
+
"vcall\0"
|
47
|
+
"super\0"
|
48
|
+
"zsuper\0"
|
49
|
+
"array\0"
|
50
|
+
"zarray\0"
|
51
|
+
"values\0"
|
52
|
+
"hash\0"
|
53
|
+
"return\0"
|
54
|
+
"yield\0"
|
55
|
+
"lvar\0"
|
56
|
+
"dvar\0"
|
57
|
+
"gvar\0"
|
58
|
+
"ivar\0"
|
59
|
+
"const\0"
|
60
|
+
"cvar\0"
|
61
|
+
"nth_ref\0"
|
62
|
+
"back_ref\0"
|
63
|
+
"match\0"
|
64
|
+
"match2\0"
|
65
|
+
"match3\0"
|
66
|
+
"lit\0"
|
67
|
+
"str\0"
|
68
|
+
"dstr\0"
|
69
|
+
"xstr\0"
|
70
|
+
"dxstr\0"
|
71
|
+
"evstr\0"
|
72
|
+
"dregx\0"
|
73
|
+
"dregx_once\0"
|
74
|
+
"args\0"
|
75
|
+
"args_aux\0"
|
76
|
+
"opt_arg\0"
|
77
|
+
"postarg\0"
|
78
|
+
"argscat\0"
|
79
|
+
"argspush\0"
|
80
|
+
"splat\0"
|
81
|
+
"to_ary\0"
|
82
|
+
"block_arg\0"
|
83
|
+
"block_pass\0"
|
84
|
+
"defn\0"
|
85
|
+
"defs\0"
|
86
|
+
"alias\0"
|
87
|
+
"valias\0"
|
88
|
+
"undef\0"
|
89
|
+
"class\0"
|
90
|
+
"module\0"
|
91
|
+
"sclass\0"
|
92
|
+
"colon2\0"
|
93
|
+
"colon3\0"
|
94
|
+
"dot2\0"
|
95
|
+
"dot3\0"
|
96
|
+
"flip2\0"
|
97
|
+
"flip3\0"
|
98
|
+
"self\0"
|
99
|
+
"nil\0"
|
100
|
+
"true\0"
|
101
|
+
"false\0"
|
102
|
+
"errinfo\0"
|
103
|
+
"defined\0"
|
104
|
+
"postexe\0"
|
105
|
+
"alloca\0"
|
106
|
+
"bmethod\0"
|
107
|
+
"memo\0"
|
108
|
+
"ifunc\0"
|
109
|
+
"dsym\0"
|
110
|
+
"attrasgn\0"
|
111
|
+
"prelude\0"
|
112
|
+
"lambda\0"
|
113
|
+
"optblock\0"
|
114
|
+
"last\0"
|
115
|
+
"file\0"
|
116
|
+
"regex\0"
|
117
|
+
"number\0"
|
118
|
+
"float\0"
|
119
|
+
"encoding\0"
|
120
|
+
"preexe\0"
|
121
|
+
};
|
122
|
+
|
123
|
+
static const unsigned short node_types_offsets[] = {
|
124
|
+
0,
|
125
|
+
6,
|
126
|
+
12,
|
127
|
+
15,
|
128
|
+
20,
|
129
|
+
25,
|
130
|
+
31,
|
131
|
+
37,
|
132
|
+
43,
|
133
|
+
48,
|
134
|
+
52,
|
135
|
+
58,
|
136
|
+
63,
|
137
|
+
68,
|
138
|
+
74,
|
139
|
+
80,
|
140
|
+
87,
|
141
|
+
95,
|
142
|
+
102,
|
143
|
+
106,
|
144
|
+
109,
|
145
|
+
115,
|
146
|
+
121,
|
147
|
+
127,
|
148
|
+
138,
|
149
|
+
144,
|
150
|
+
150,
|
151
|
+
157,
|
152
|
+
163,
|
153
|
+
170,
|
154
|
+
177,
|
155
|
+
186,
|
156
|
+
195,
|
157
|
+
207,
|
158
|
+
218,
|
159
|
+
223,
|
160
|
+
229,
|
161
|
+
235,
|
162
|
+
241,
|
163
|
+
248,
|
164
|
+
254,
|
165
|
+
261,
|
166
|
+
268,
|
167
|
+
273,
|
168
|
+
280,
|
169
|
+
286,
|
170
|
+
291,
|
171
|
+
296,
|
172
|
+
301,
|
173
|
+
306,
|
174
|
+
312,
|
175
|
+
317,
|
176
|
+
325,
|
177
|
+
334,
|
178
|
+
340,
|
179
|
+
347,
|
180
|
+
354,
|
181
|
+
358,
|
182
|
+
362,
|
183
|
+
367,
|
184
|
+
372,
|
185
|
+
378,
|
186
|
+
384,
|
187
|
+
390,
|
188
|
+
401,
|
189
|
+
406,
|
190
|
+
415,
|
191
|
+
423,
|
192
|
+
431,
|
193
|
+
439,
|
194
|
+
448,
|
195
|
+
454,
|
196
|
+
461,
|
197
|
+
471,
|
198
|
+
482,
|
199
|
+
487,
|
200
|
+
492,
|
201
|
+
498,
|
202
|
+
505,
|
203
|
+
511,
|
204
|
+
517,
|
205
|
+
524,
|
206
|
+
531,
|
207
|
+
538,
|
208
|
+
545,
|
209
|
+
550,
|
210
|
+
555,
|
211
|
+
561,
|
212
|
+
567,
|
213
|
+
572,
|
214
|
+
576,
|
215
|
+
581,
|
216
|
+
587,
|
217
|
+
595,
|
218
|
+
603,
|
219
|
+
611,
|
220
|
+
618,
|
221
|
+
626,
|
222
|
+
631,
|
223
|
+
637,
|
224
|
+
642,
|
225
|
+
651,
|
226
|
+
659,
|
227
|
+
666,
|
228
|
+
675,
|
229
|
+
680,
|
230
|
+
685,
|
231
|
+
691,
|
232
|
+
698,
|
233
|
+
704,
|
234
|
+
713,
|
235
|
+
720
|
236
|
+
};
|
237
|
+
|
238
|
+
const char *get_node_type_string(enum node_type node) {
|
239
|
+
if(node < 111) {
|
240
|
+
return node_types + node_types_offsets[node];
|
241
|
+
} else {
|
242
|
+
#define NODE_STRING_MESSAGE_LEN 20
|
243
|
+
static char msg[NODE_STRING_MESSAGE_LEN];
|
244
|
+
snprintf(msg, NODE_STRING_MESSAGE_LEN, "unknown node type: %d", node);
|
245
|
+
return msg;
|
246
|
+
}
|
247
|
+
}
|
248
|
+
}; // namespace grammar19
|
249
|
+
}; // namespace melbourne
|
@@ -0,0 +1,126 @@
|
|
1
|
+
#ifndef MEL_NODE_TYPES19_HPP
|
2
|
+
#define MEL_NODE_TYPES19_HPP
|
3
|
+
/* This file is generated by node_types.rb. Do not edit. */
|
4
|
+
|
5
|
+
namespace melbourne {
|
6
|
+
namespace grammar19 {
|
7
|
+
enum node_type {
|
8
|
+
NODE_SCOPE,
|
9
|
+
NODE_BLOCK,
|
10
|
+
NODE_IF,
|
11
|
+
NODE_CASE,
|
12
|
+
NODE_WHEN,
|
13
|
+
NODE_OPT_N,
|
14
|
+
NODE_WHILE,
|
15
|
+
NODE_UNTIL,
|
16
|
+
NODE_ITER,
|
17
|
+
NODE_FOR,
|
18
|
+
NODE_BREAK,
|
19
|
+
NODE_NEXT,
|
20
|
+
NODE_REDO,
|
21
|
+
NODE_RETRY,
|
22
|
+
NODE_BEGIN,
|
23
|
+
NODE_RESCUE,
|
24
|
+
NODE_RESBODY,
|
25
|
+
NODE_ENSURE,
|
26
|
+
NODE_AND,
|
27
|
+
NODE_OR,
|
28
|
+
NODE_MASGN,
|
29
|
+
NODE_LASGN,
|
30
|
+
NODE_DASGN,
|
31
|
+
NODE_DASGN_CURR,
|
32
|
+
NODE_GASGN,
|
33
|
+
NODE_IASGN,
|
34
|
+
NODE_IASGN2,
|
35
|
+
NODE_CDECL,
|
36
|
+
NODE_CVASGN,
|
37
|
+
NODE_CVDECL,
|
38
|
+
NODE_OP_ASGN1,
|
39
|
+
NODE_OP_ASGN2,
|
40
|
+
NODE_OP_ASGN_AND,
|
41
|
+
NODE_OP_ASGN_OR,
|
42
|
+
NODE_CALL,
|
43
|
+
NODE_FCALL,
|
44
|
+
NODE_VCALL,
|
45
|
+
NODE_SUPER,
|
46
|
+
NODE_ZSUPER,
|
47
|
+
NODE_ARRAY,
|
48
|
+
NODE_ZARRAY,
|
49
|
+
NODE_VALUES,
|
50
|
+
NODE_HASH,
|
51
|
+
NODE_RETURN,
|
52
|
+
NODE_YIELD,
|
53
|
+
NODE_LVAR,
|
54
|
+
NODE_DVAR,
|
55
|
+
NODE_GVAR,
|
56
|
+
NODE_IVAR,
|
57
|
+
NODE_CONST,
|
58
|
+
NODE_CVAR,
|
59
|
+
NODE_NTH_REF,
|
60
|
+
NODE_BACK_REF,
|
61
|
+
NODE_MATCH,
|
62
|
+
NODE_MATCH2,
|
63
|
+
NODE_MATCH3,
|
64
|
+
NODE_LIT,
|
65
|
+
NODE_STR,
|
66
|
+
NODE_DSTR,
|
67
|
+
NODE_XSTR,
|
68
|
+
NODE_DXSTR,
|
69
|
+
NODE_EVSTR,
|
70
|
+
NODE_DREGX,
|
71
|
+
NODE_DREGX_ONCE,
|
72
|
+
NODE_ARGS,
|
73
|
+
NODE_ARGS_AUX,
|
74
|
+
NODE_OPT_ARG,
|
75
|
+
NODE_POSTARG,
|
76
|
+
NODE_ARGSCAT,
|
77
|
+
NODE_ARGSPUSH,
|
78
|
+
NODE_SPLAT,
|
79
|
+
NODE_TO_ARY,
|
80
|
+
NODE_BLOCK_ARG,
|
81
|
+
NODE_BLOCK_PASS,
|
82
|
+
NODE_DEFN,
|
83
|
+
NODE_DEFS,
|
84
|
+
NODE_ALIAS,
|
85
|
+
NODE_VALIAS,
|
86
|
+
NODE_UNDEF,
|
87
|
+
NODE_CLASS,
|
88
|
+
NODE_MODULE,
|
89
|
+
NODE_SCLASS,
|
90
|
+
NODE_COLON2,
|
91
|
+
NODE_COLON3,
|
92
|
+
NODE_DOT2,
|
93
|
+
NODE_DOT3,
|
94
|
+
NODE_FLIP2,
|
95
|
+
NODE_FLIP3,
|
96
|
+
NODE_SELF,
|
97
|
+
NODE_NIL,
|
98
|
+
NODE_TRUE,
|
99
|
+
NODE_FALSE,
|
100
|
+
NODE_ERRINFO,
|
101
|
+
NODE_DEFINED,
|
102
|
+
NODE_POSTEXE,
|
103
|
+
NODE_ALLOCA,
|
104
|
+
NODE_BMETHOD,
|
105
|
+
NODE_MEMO,
|
106
|
+
NODE_IFUNC,
|
107
|
+
NODE_DSYM,
|
108
|
+
NODE_ATTRASGN,
|
109
|
+
NODE_PRELUDE,
|
110
|
+
NODE_LAMBDA,
|
111
|
+
NODE_OPTBLOCK,
|
112
|
+
NODE_LAST,
|
113
|
+
NODE_FILE,
|
114
|
+
NODE_REGEX,
|
115
|
+
NODE_NUMBER,
|
116
|
+
NODE_FLOAT,
|
117
|
+
NODE_ENCODING,
|
118
|
+
NODE_PREEXE
|
119
|
+
};
|
120
|
+
|
121
|
+
const char *get_node_type_string(enum node_type nt);
|
122
|
+
|
123
|
+
}; // namespace grammar19
|
124
|
+
}; // namespace melbourne
|
125
|
+
|
126
|
+
#endif
|
@@ -0,0 +1,181 @@
|
|
1
|
+
#ifndef MEL_PARSER_STATE18_HPP
|
2
|
+
#define MEL_PARSER_STATE18_HPP
|
3
|
+
|
4
|
+
#include "node18.hpp"
|
5
|
+
#include "node_types18.hpp"
|
6
|
+
#include "local_state.hpp"
|
7
|
+
|
8
|
+
#include <vector>
|
9
|
+
#include <list>
|
10
|
+
|
11
|
+
namespace melbourne {
|
12
|
+
namespace grammar18 {
|
13
|
+
|
14
|
+
enum lex_state_e {
|
15
|
+
EXPR_BEG, /* ignore newline, +/- is a sign. */
|
16
|
+
EXPR_END, /* newline significant, +/- is a operator. */
|
17
|
+
EXPR_ARG, /* newline significant, +/- is a operator. */
|
18
|
+
EXPR_CMDARG, /* newline significant, +/- is a operator. */
|
19
|
+
EXPR_ENDARG, /* newline significant, +/- is a operator. */
|
20
|
+
EXPR_MID, /* newline significant, +/- is a operator. */
|
21
|
+
EXPR_FNAME, /* ignore newline, no reserved words. */
|
22
|
+
EXPR_DOT, /* right after `.' or `::', no reserved words. */
|
23
|
+
EXPR_CLASS, /* immediate after `class', no here document. */
|
24
|
+
};
|
25
|
+
|
26
|
+
typedef VALUE stack_type;
|
27
|
+
|
28
|
+
struct StartPosition {
|
29
|
+
int line;
|
30
|
+
const char* kind;
|
31
|
+
|
32
|
+
StartPosition(int l, const char* k)
|
33
|
+
: line(l)
|
34
|
+
, kind(k)
|
35
|
+
{}
|
36
|
+
};
|
37
|
+
|
38
|
+
typedef struct rb_parser_state {
|
39
|
+
int end_seen;
|
40
|
+
int debug_lines;
|
41
|
+
int heredoc_end;
|
42
|
+
int command_start;
|
43
|
+
NODE *lex_strterm;
|
44
|
+
int paren_nest;
|
45
|
+
int lpar_beg;
|
46
|
+
int class_nest;
|
47
|
+
int in_single;
|
48
|
+
int in_def;
|
49
|
+
int compile_for_eval;
|
50
|
+
ID cur_mid;
|
51
|
+
char *token_buffer;
|
52
|
+
int tokidx;
|
53
|
+
int toksiz;
|
54
|
+
int emit_warnings;
|
55
|
+
/* Mirror'ing the 1.8 parser, There are 2 input methods,
|
56
|
+
from IO and directly from a string. */
|
57
|
+
|
58
|
+
/* this function reads a line from lex_io and stores it in
|
59
|
+
* line_buffer.
|
60
|
+
*/
|
61
|
+
bool (*lex_gets)(rb_parser_state*);
|
62
|
+
bstring line_buffer;
|
63
|
+
|
64
|
+
/* If this is set, we use the io method. */
|
65
|
+
FILE *lex_io;
|
66
|
+
/* Otherwise, we use this. */
|
67
|
+
bstring lex_string;
|
68
|
+
bstring lex_lastline;
|
69
|
+
bstring lex_nextline;
|
70
|
+
|
71
|
+
char *lex_pbeg;
|
72
|
+
char *lex_p;
|
73
|
+
char *lex_pend;
|
74
|
+
int lex_str_used;
|
75
|
+
|
76
|
+
enum lex_state_e lex_state;
|
77
|
+
int in_defined;
|
78
|
+
stack_type cond_stack;
|
79
|
+
stack_type cmdarg_stack;
|
80
|
+
|
81
|
+
void *lval; /* the parser's yylval */
|
82
|
+
bool eofp;
|
83
|
+
|
84
|
+
std::vector<bstring>* magic_comments;
|
85
|
+
int column;
|
86
|
+
NODE *top_node;
|
87
|
+
|
88
|
+
LocalState* variables;
|
89
|
+
|
90
|
+
int ternary_colon;
|
91
|
+
|
92
|
+
void **memory_pools;
|
93
|
+
int pool_size, current_pool;
|
94
|
+
char *memory_cur;
|
95
|
+
char *memory_last_addr;
|
96
|
+
int memory_size;
|
97
|
+
|
98
|
+
bool verbose;
|
99
|
+
|
100
|
+
bool parse_error;
|
101
|
+
VALUE processor;
|
102
|
+
|
103
|
+
char *ruby_sourcefile;
|
104
|
+
int ruby_sourceline;
|
105
|
+
|
106
|
+
// Keeps track of lines that 'end' starters are on, to enable
|
107
|
+
// better error reporting.
|
108
|
+
std::list<StartPosition>* start_lines;
|
109
|
+
|
110
|
+
// Tracks quarks
|
111
|
+
quark_map* quark_indexes;
|
112
|
+
quark_vector* quarks;
|
113
|
+
} rb_parser_state;
|
114
|
+
|
115
|
+
|
116
|
+
#define PARSER_STATE ((rb_parser_state*)parser_state)
|
117
|
+
#define PARSER_VAR(var) (PARSER_STATE->var)
|
118
|
+
|
119
|
+
#define end_seen PARSER_VAR(end_seen)
|
120
|
+
#define ruby__end__seen PARSER_VAR(ruby__end__seen)
|
121
|
+
#define ruby_debug_lines PARSER_VAR(debug_lines)
|
122
|
+
#define heredoc_end PARSER_VAR(heredoc_end)
|
123
|
+
#define command_start PARSER_VAR(command_start)
|
124
|
+
#define lex_strterm PARSER_VAR(lex_strterm)
|
125
|
+
#define paren_nest PARSER_VAR(paren_nest)
|
126
|
+
#define lpar_beg PARSER_VAR(lpar_beg)
|
127
|
+
#define class_nest PARSER_VAR(class_nest)
|
128
|
+
#define in_single PARSER_VAR(in_single)
|
129
|
+
#define in_def PARSER_VAR(in_def)
|
130
|
+
#define compile_for_eval PARSER_VAR(compile_for_eval)
|
131
|
+
#define cur_mid PARSER_VAR(cur_mid)
|
132
|
+
#define tokenbuf PARSER_VAR(token_buffer)
|
133
|
+
#define tokidx PARSER_VAR(tokidx)
|
134
|
+
#define toksiz PARSER_VAR(toksiz)
|
135
|
+
#define emit_warnings PARSER_VAR(emit_warnings)
|
136
|
+
#define lex_gets PARSER_VAR(lex_gets)
|
137
|
+
#define line_buffer PARSER_VAR(line_buffer)
|
138
|
+
#define line_count PARSER_VAR(line_count)
|
139
|
+
#define lex_io PARSER_VAR(lex_io)
|
140
|
+
#define lex_string PARSER_VAR(lex_string)
|
141
|
+
#define lex_gets_ptr PARSER_VAR(lex_gets_ptr)
|
142
|
+
#define lex_input PARSER_VAR(lex_input)
|
143
|
+
#define lex_lastline PARSER_VAR(lex_lastline)
|
144
|
+
#define lex_nextline PARSER_VAR(lex_nextline)
|
145
|
+
#define lex_pbeg PARSER_VAR(lex_pbeg)
|
146
|
+
#define lex_p PARSER_VAR(lex_p)
|
147
|
+
#define lex_pend PARSER_VAR(lex_pend)
|
148
|
+
#define lex_str_used PARSER_VAR(lex_str_used)
|
149
|
+
#define lex_state PARSER_VAR(lex_state)
|
150
|
+
#define in_defined PARSER_VAR(in_defined)
|
151
|
+
#define cond_stack PARSER_VAR(cond_stack)
|
152
|
+
#define cmdarg_stack PARSER_VAR(cmdarg_stack)
|
153
|
+
#define lval PARSER_VAR(lval)
|
154
|
+
#define eofp PARSER_VAR(eofp)
|
155
|
+
#define magic_comments PARSER_VAR(magic_comments)
|
156
|
+
#define column PARSER_VAR(column)
|
157
|
+
#define top_node PARSER_VAR(top_node)
|
158
|
+
#define variables PARSER_VAR(variables)
|
159
|
+
#define ternary_colon PARSER_VAR(ternary_colon)
|
160
|
+
#define memory_pools PARSER_VAR(memory_pools)
|
161
|
+
#define pool_size PARSER_VAR(pool_size)
|
162
|
+
#define current_pool PARSER_VAR(current_pool)
|
163
|
+
#define memory_cur PARSER_VAR(memory_cur)
|
164
|
+
#define memory_last_addr PARSER_VAR(memory_last_addr)
|
165
|
+
#define memory_size PARSER_VAR(memory_size)
|
166
|
+
#define verbose PARSER_VAR(verbose)
|
167
|
+
#define parse_error PARSER_VAR(parse_error)
|
168
|
+
#define processor PARSER_VAR(processor)
|
169
|
+
#define start_lines PARSER_VAR(start_lines)
|
170
|
+
#define ruby_sourcefile PARSER_VAR(ruby_sourcefile)
|
171
|
+
#define ruby_sourceline PARSER_VAR(ruby_sourceline)
|
172
|
+
#define quark_indexes PARSER_VAR(quark_indexes)
|
173
|
+
#define quarks PARSER_VAR(quarks)
|
174
|
+
|
175
|
+
#define node_newnode(t, a, b, c) parser_node_newnode((rb_parser_state*)parser_state, t, a, b, c)
|
176
|
+
|
177
|
+
quark id_to_quark(rb_parser_state* parser_state, QUID id);
|
178
|
+
}; // namespace grammar18
|
179
|
+
}; // namespace melbourne
|
180
|
+
|
181
|
+
#endif
|