-
Notifications
You must be signed in to change notification settings - Fork 505
/
builder.hh
159 lines (152 loc) · 12.9 KB
/
builder.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#ifndef RUBY_PARSER_BUILDER_HH
#define RUBY_PARSER_BUILDER_HH
#include <vector>
#include <memory>
#include <type_traits>
#include "node.hh"
#include "token.hh"
#include "driver.hh"
namespace ruby_parser {
struct builder {
ForeignPtr(*accessible)(SelfPtr builder, ForeignPtr node);
ForeignPtr(*alias)(SelfPtr builder, const token* alias, ForeignPtr to, ForeignPtr from);
ForeignPtr(*arg)(SelfPtr builder, const token* name);
ForeignPtr(*args)(SelfPtr builder, const token* begin, const node_list* args, const token* end, bool check_args);
ForeignPtr(*array)(SelfPtr builder, const token* begin, const node_list* elements, const token* end);
ForeignPtr(*array_pattern)(SelfPtr builder, const token* begin, const node_list* elements, const token* end);
ForeignPtr(*assign)(SelfPtr builder, ForeignPtr lhs, const token* eql, ForeignPtr rhs);
ForeignPtr(*assignable)(SelfPtr builder, ForeignPtr node);
ForeignPtr(*associate)(SelfPtr builder, const token* begin, const node_list* pairs, const token* end);
ForeignPtr(*attrAsgn)(SelfPtr builder, ForeignPtr receiver, const token* dot, const token* selector, bool masgn);
ForeignPtr(*backRef)(SelfPtr builder, const token* tok);
ForeignPtr(*begin)(SelfPtr builder, const token* begin, ForeignPtr body, const token* end);
ForeignPtr(*beginBody)(SelfPtr builder, ForeignPtr body, const node_list* rescueBodies, const token* elseTok, ForeignPtr else_, const token* ensure_tok, ForeignPtr ensure);
ForeignPtr(*beginKeyword)(SelfPtr builder, const token* begin, ForeignPtr body, const token* end);
ForeignPtr(*binaryOp)(SelfPtr builder, ForeignPtr receiver, const token* oper, ForeignPtr arg);
ForeignPtr(*block)(SelfPtr builder, ForeignPtr methodCall, const token* begin, ForeignPtr args, ForeignPtr body, const token* end);
ForeignPtr(*blockPass)(SelfPtr builder, const token* amper, ForeignPtr arg);
ForeignPtr(*blockarg)(SelfPtr builder, const token* amper, const token* name);
ForeignPtr(*callLambda)(SelfPtr builder, const token* lambda);
ForeignPtr(*call_method)(SelfPtr builder, ForeignPtr receiver, const token* dot, const token* selector, const token* lparen, const node_list* args, const token* rparen);
ForeignPtr(*case_)(SelfPtr builder, const token* case_, ForeignPtr expr, const node_list* whenBodies, const token* elseTok, ForeignPtr elseBody, const token* end);
ForeignPtr(*case_match)(SelfPtr builder, const token* case_, ForeignPtr expr, const node_list* inBodies, const token* elseTok, ForeignPtr elseBody, const token* end);
ForeignPtr(*character)(SelfPtr builder, const token* char_);
ForeignPtr(*complex)(SelfPtr builder, const token* tok);
ForeignPtr(*compstmt)(SelfPtr builder, const node_list* node);
ForeignPtr(*condition)(SelfPtr builder, const token* cond_tok, ForeignPtr cond, const token* then, ForeignPtr ifTrue, const token* else_, ForeignPtr ifFalse, const token* end);
ForeignPtr(*conditionMod)(SelfPtr builder, ForeignPtr ifTrue, ForeignPtr ifFalse, ForeignPtr cond);
ForeignPtr(*const_)(SelfPtr builder, const token* name);
ForeignPtr(*const_pattern)(SelfPtr builder, ForeignPtr const_, const token* begin, ForeignPtr pattern, const token* end);
ForeignPtr(*constFetch)(SelfPtr builder, ForeignPtr scope, const token* colon, const token* name);
ForeignPtr(*constGlobal)(SelfPtr builder, const token* colon, const token* name);
ForeignPtr(*constOpAssignable)(SelfPtr builder, ForeignPtr node);
ForeignPtr(*cvar)(SelfPtr builder, const token* tok);
ForeignPtr(*dedentString)(SelfPtr builder, ForeignPtr node, size_t dedentLevel);
ForeignPtr(*def_class)(SelfPtr builder, const token* class_, ForeignPtr name, const token* lt_, ForeignPtr superclass, ForeignPtr body, const token* end_);
ForeignPtr(*defEndlessMethod)(SelfPtr builder, const token* def, const token* name, ForeignPtr args, const token* equal, ForeignPtr body);
ForeignPtr(*defEndlessSingleton)(SelfPtr builder, ForeignPtr defHead, ForeignPtr args, const token* equal, ForeignPtr body);
ForeignPtr(*defMethod)(SelfPtr builder, const token* def, const token* name, ForeignPtr args, ForeignPtr body, const token* end);
ForeignPtr(*defModule)(SelfPtr builder, const token* module, ForeignPtr name, ForeignPtr body, const token* end_);
ForeignPtr(*def_sclass)(SelfPtr builder, const token* class_, const token* lshft_, ForeignPtr expr, ForeignPtr body, const token* end_);
ForeignPtr(*defsHead)(SelfPtr builder, const token* def, ForeignPtr definee, const token* dot, const token* name);
ForeignPtr(*defSingleton)(SelfPtr builder, ForeignPtr defHead, ForeignPtr args, ForeignPtr body, const token* end);
ForeignPtr(*encodingLiteral)(SelfPtr builder, const token* tok);
ForeignPtr(*false_)(SelfPtr builder, const token* tok);
ForeignPtr(*find_pattern)(SelfPtr builder, const token* lbrack_t, const node_list* elements, const token* rbrack_t);
ForeignPtr(*fileLiteral)(SelfPtr builder, const token* tok);
ForeignPtr(*float_)(SelfPtr builder, const token* tok);
ForeignPtr(*floatComplex)(SelfPtr builder, const token* tok);
ForeignPtr(*for_)(SelfPtr builder, const token* for_, ForeignPtr iterator, const token* in_, ForeignPtr iteratee, const token* do_, ForeignPtr body, const token* end);
ForeignPtr(*forward_arg)(SelfPtr builder, const token* begin, const token* dots, const token* end);
ForeignPtr(*forwarded_args)(SelfPtr builder, const token* dots);
ForeignPtr(*gvar)(SelfPtr builder, const token* tok);
ForeignPtr(*hash_pattern)(SelfPtr builder, const token* begin, const node_list* kwargs, const token* end);
ForeignPtr(*ident)(SelfPtr builder, const token* tok);
ForeignPtr(*if_guard)(SelfPtr builder, const token* tok, ForeignPtr ifBody);
ForeignPtr(*in_pattern)(SelfPtr builders, const token* tok, ForeignPtr pattern, ForeignPtr guard, const token* thenToken, ForeignPtr body);
ForeignPtr(*index)(SelfPtr builder, ForeignPtr receiver, const token* lbrack, const node_list* indexes, const token* rbrack);
ForeignPtr(*indexAsgn)(SelfPtr builder, ForeignPtr receiver, const token* lbrack, const node_list* indexes, const token* rbrack);
ForeignPtr(*integer)(SelfPtr builder, const token* tok);
ForeignPtr(*ivar)(SelfPtr builder, const token* tok);
ForeignPtr(*keywordBreak)(SelfPtr builder, const token* keyword, const token* lparen, const node_list* args, const token* rparen);
ForeignPtr(*keywordDefined)(SelfPtr builder, const token* keyword, ForeignPtr arg);
ForeignPtr(*keywordNext)(SelfPtr builder, const token* keyword, const token* lparen, const node_list* args, const token* rparen);
ForeignPtr(*keywordRedo)(SelfPtr builder, const token* keyword);
ForeignPtr(*keywordRetry)(SelfPtr builder, const token* keyword);
ForeignPtr(*keywordReturn)(SelfPtr builder, const token* keyword, const token* lparen, const node_list* args, const token* rparen);
ForeignPtr(*keywordSuper)(SelfPtr builder, const token* keyword, const token* lparen, const node_list* args, const token* rparen);
ForeignPtr(*keywordYield)(SelfPtr builder, const token* keyword, const token* lparen, const node_list* args, const token* rparen);
ForeignPtr(*keywordZsuper)(SelfPtr builder, const token* keyword);
ForeignPtr(*kwarg)(SelfPtr builder, const token* name);
ForeignPtr(*kwoptarg)(SelfPtr builder, const token* name, ForeignPtr value);
ForeignPtr(*kwnilarg)(SelfPtr builder, const token* dstar, const token* nil);
ForeignPtr(*kwrestarg)(SelfPtr builder, const token* dstar, const token* name);
ForeignPtr(*kwsplat)(SelfPtr builder, const token* dstar, ForeignPtr arg);
ForeignPtr(*line_literal)(SelfPtr builder, const token* tok);
ForeignPtr(*logicalAnd)(SelfPtr builder, ForeignPtr lhs, const token* op, ForeignPtr rhs);
ForeignPtr(*logicalOr)(SelfPtr builder, ForeignPtr lhs, const token* op, ForeignPtr rhs);
ForeignPtr(*loopUntil)(SelfPtr builder, const token* keyword, ForeignPtr cond, const token* do_, ForeignPtr body, const token* end);
ForeignPtr(*loopUntil_mod)(SelfPtr builder, ForeignPtr body, ForeignPtr cond);
ForeignPtr(*loop_while)(SelfPtr builder, const token* keyword, ForeignPtr cond, const token* do_, ForeignPtr body, const token* end);
ForeignPtr(*loop_while_mod)(SelfPtr builder, ForeignPtr body, ForeignPtr cond);
ForeignPtr(*match_alt)(SelfPtr builder, ForeignPtr left, const token* pipe, ForeignPtr right);
ForeignPtr(*match_as)(SelfPtr builder, ForeignPtr value, const token* assoc, ForeignPtr as);
ForeignPtr(*match_label)(SelfPtr builder, ForeignPtr label);
ForeignPtr(*match_pattern)(SelfPtr builder, ForeignPtr lhs, const token* tok, ForeignPtr rhs);
ForeignPtr(*match_pattern_p)(SelfPtr builder, ForeignPtr lhs, const token* tok, ForeignPtr rhs);
ForeignPtr(*match_nil_pattern)(SelfPtr builder, const token* dstar, const token* nil);
ForeignPtr(*match_op)(SelfPtr builder, ForeignPtr receiver, const token* oper, ForeignPtr arg);
ForeignPtr(*match_pair)(SelfPtr builder, ForeignPtr label, ForeignPtr value);
ForeignPtr(*match_rest)(SelfPtr builder, const token* star, const token* name);
ForeignPtr(*match_var)(SelfPtr builder, const token* name);
ForeignPtr(*match_with_trailing_comma)(SelfPtr builder, ForeignPtr match);
ForeignPtr(*multi_assign)(SelfPtr builder, ForeignPtr mlhs, ForeignPtr rhs);
ForeignPtr(*multi_lhs)(SelfPtr builder, const token* begin, const node_list* items, const token* end);
ForeignPtr(*multi_lhs1)(SelfPtr builder, const token* begin, ForeignPtr item, const token* end);
ForeignPtr(*nil)(SelfPtr builder, const token* tok);
ForeignPtr(*not_op)(SelfPtr builder, const token* not_, const token* begin, ForeignPtr receiver, const token* end);
ForeignPtr(*nth_ref)(SelfPtr builder, const token* tok);
ForeignPtr(*numparams)(SelfPtr builder, const node_list* declaringNodes);
ForeignPtr(*numblock)(SelfPtr builder, ForeignPtr methodCall, const token* begin, ForeignPtr args, ForeignPtr body, const token* end);
ForeignPtr(*op_assign)(SelfPtr builder, ForeignPtr lhs, const token* op, ForeignPtr rhs);
ForeignPtr(*optarg)(SelfPtr builder, const token* name, const token* eql, ForeignPtr value);
ForeignPtr(*p_ident)(SelfPtr builder, const token* tok);
ForeignPtr(*pair)(SelfPtr builder, ForeignPtr key, const token* assoc, ForeignPtr value);
ForeignPtr(*pair_keyword)(SelfPtr builder, const token* key, ForeignPtr value);
ForeignPtr(*pair_quoted)(SelfPtr builder, const token* begin, const node_list* parts, const token* end, ForeignPtr value);
ForeignPtr(*pin)(SelfPtr builder, const token* tok, ForeignPtr var);
ForeignPtr(*postexe)(SelfPtr builder, const token* begin, ForeignPtr node, const token* rbrace);
ForeignPtr(*preexe)(SelfPtr builder, const token* begin, ForeignPtr node, const token* rbrace);
ForeignPtr(*procarg0)(SelfPtr builder, ForeignPtr arg);
ForeignPtr(*range_exclusive)(SelfPtr builder, ForeignPtr lhs, const token* oper, ForeignPtr rhs);
ForeignPtr(*range_inclusive)(SelfPtr builder, ForeignPtr lhs, const token* oper, ForeignPtr rhs);
ForeignPtr(*rational)(SelfPtr builder, const token* tok);
ForeignPtr(*rational_complex)(SelfPtr builder, const token* tok);
ForeignPtr(*regexp_compose)(SelfPtr builder, const token* begin, const node_list* parts, const token* end, ForeignPtr options);
ForeignPtr(*regexp_options)(SelfPtr builder, const token* regopt);
ForeignPtr(*rescue_body)(SelfPtr builder, const token* rescue, ForeignPtr excList, const token* assoc, ForeignPtr excVar, const token* then, ForeignPtr body);
ForeignPtr(*restarg)(SelfPtr builder, const token* star, const token* name);
ForeignPtr(*self_)(SelfPtr builder, const token* tok);
ForeignPtr(*shadowarg)(SelfPtr builder, const token* name);
ForeignPtr(*splat)(SelfPtr builder, const token* star, ForeignPtr arg);
ForeignPtr(*splat_mlhs)(SelfPtr builder, const token* star, ForeignPtr arg);
ForeignPtr(*string)(SelfPtr builder, const token* string_);
ForeignPtr(*string_compose)(SelfPtr builder, const token* begin, const node_list* parts, const token* end);
ForeignPtr(*string_internal)(SelfPtr builder, const token* string_);
ForeignPtr(*symbol)(SelfPtr builder, const token* symbol);
ForeignPtr(*symbol_compose)(SelfPtr builder, const token* begin, const node_list* parts, const token* end);
ForeignPtr(*symbol_internal)(SelfPtr builder, const token* symbol);
ForeignPtr(*symbols_compose)(SelfPtr builder, const token* begin, const node_list* parts, const token* end);
ForeignPtr(*ternary)(SelfPtr builder, ForeignPtr cond, const token* question, ForeignPtr ifTrue, const token* colon, ForeignPtr ifFalse);
ForeignPtr(*true_)(SelfPtr builder, const token* tok);
ForeignPtr(*unary_op)(SelfPtr builder, const token* oper, ForeignPtr receiver);
ForeignPtr(*undefMethod)(SelfPtr builder, const token* undef, const node_list* name_list);
ForeignPtr(*unless_guard)(SelfPtr builder, const token* unlessGuard, ForeignPtr unlessBody);
ForeignPtr(*when)(SelfPtr builder, const token* when, const node_list* patterns, const token* then, ForeignPtr body);
ForeignPtr(*word)(SelfPtr builder, const node_list* parts);
ForeignPtr(*words_compose)(SelfPtr builder, const token* begin, const node_list* parts, const token* end);
ForeignPtr(*xstring_compose)(SelfPtr builder, const token* begin, const node_list* parts, const token* end);
};
static_assert(std::is_pod<builder>::value, "`builder` must be a POD type");
}
#endif