5 #line 145 "parsetree.w" 7 #line 602 "parsetree.w" 9 #line 1612 "parsetree.w" 11 #line 1915 "parsetree.w" 13 #line 41 "parsetree.w" 21 #line 137 "parsetree.w" 23 #line 152 "parsetree.w" 25 #line 159 "parsetree.w" 38 #line 617 "parsetree.w" 45 #line 818 "parsetree.w" 47 #line 1296 "parsetree.w" 63 id_pat():name(),kind(0x0),sublist(){}
65 :name(x.name),kind(x.kind)
66 ,sublist((kind&0x2)==0?nullptr:x.sublist)
68 id_pat(id_type
n):name(n),kind(0x1),sublist(){}
70 id_pat(patlist&&l):name(),kind(0x2),sublist(std::move(l)){}
72 id_pat(id_type
n,
unsigned char k,patlist&&l)
73 :name(n),kind(k),sublist(std::move(l)){}
77 #ifdef incompletecpp11 91 #line 1428 "parsetree.w" 93 #line 1632 "parsetree.w" 95 #line 1742 "parsetree.w" 97 #line 1907 "parsetree.w" 101 #line 2092 "parsetree.w" 104 #line 2225 "parsetree.w" 106 #line 2293 "parsetree.w" 108 #line 2362 "parsetree.w" 110 #line 2456 "parsetree.w" 112 #line 2637 "parsetree.w" 114 #line 117 "parsetree.w" 119 #line 378 "parsetree.w" 121 #line 501 "parsetree.w" 125 #line 638 "parsetree.w" 127 #line 841 "parsetree.w" 129 #line 1004 "parsetree.w" 131 #line 1464 "parsetree.w" 133 #line 1652 "parsetree.w" 135 #line 1769 "parsetree.w" 137 #line 1840 "parsetree.w" 139 #line 1967 "parsetree.w" 141 #line 2121 "parsetree.w" 143 #line 2242 "parsetree.w" 145 #line 2311 "parsetree.w" 147 #line 2390 "parsetree.w" 149 #line 2485 "parsetree.w" 151 #line 2663 "parsetree.w" 153 #line 120 "parsetree.w" 159 #line 367 "parsetree.w" 162 #ifdef incompletecpp11 163 const char*str_denotation_variant;
167 #line 509 "parsetree.w" 171 #line 629 "parsetree.w" 173 #line 847 "parsetree.w" 175 #line 1008 "parsetree.w" 177 #line 1470 "parsetree.w" 179 #line 1656 "parsetree.w" 181 #line 1775 "parsetree.w" 183 #line 1973 "parsetree.w" 187 #line 2126 "parsetree.w" 190 #line 2246 "parsetree.w" 192 #line 2315 "parsetree.w" 194 #line 2394 "parsetree.w" 196 #line 2489 "parsetree.w" 198 #line 2667 "parsetree.w" 200 #line 124 "parsetree.w" 203 #line 243 "parsetree.w" 206 expr&operator=(
const expr&x)=
delete;
208 #line 284 "parsetree.w" 209 void set_from(
expr&other);
211 void operator=(
expr&&other);
213 #line 391 "parsetree.w" 222 #ifdef incompletecpp11
223 ,str_denotation_variant(std::strcpy(new char[s.
size()+1],s.c_str()))
225 ,str_denotation_variant(std::move(s))
228 #line 517 "parsetree.w" 245 #line 649 "parsetree.w" 249 ,sublist(nodes.release())
254 ,sublist(nodes.release())
259 ,sublist(nodes.release())
263 #line 856 "parsetree.w" 266 ,call_variant(std::move(fx))
271 ,call_variant(std::move(fx))
274 #line 1012 "parsetree.w" 281 #line 1474 "parsetree.w" 287 #line 1660 "parsetree.w" 290 ,lambda_variant(std::move(fun))
293 #line 1781 "parsetree.w" 296 ,if_variant(std::move(conditional))
299 #line 1979 "parsetree.w" 302 ,while_variant(std::move(loop))
307 ,for_variant(std::move(loop))
312 ,cfor_variant(std::move(loop))
315 #line 2132 "parsetree.w" 318 ,subscription_variant(std::move(s))
323 ,subscription_variant(std::move(s))
328 ,slice_variant(std::move(s))
331 #line 2250 "parsetree.w" 334 ,cast_variant(std::move(c))
337 #line 2319 "parsetree.w" 340 ,op_cast_variant(std::move(c))
343 #line 2398 "parsetree.w" 346 ,assign_variant(std::move(a))
349 #line 2493 "parsetree.w" 352 ,comp_assign_variant(std::move(ca))
355 #line 2671 "parsetree.w" 358 ,sequence_variant(std::move(s))
361 #line 127 "parsetree.w" 365 #line 830 "parsetree.w" 370 :fun(std::move(fun)),arg(std::move(arg)){}
372 #line 1161 "parsetree.w" 375 :left_subtree(std::move(l)),op_exp(std::move(o)),prio(prio){}
376 #ifdef incompletecpp11 384 #line 1442 "parsetree.w" 386 #ifdef incompletecpp11 390 :
pattern(std::move(x.pattern)),val(std::move(x.val)){}
392 :
pattern(std::move(
p)),val(std::move(
v)){}
402 :pattern(std::move(pattern)),val(std::move(val)),body(std::move(body)){}
404 #line 1640 "parsetree.w" 409 :pattern(std::move(pattern))
410 ,parameter_type(std::move(type))
411 ,body(std::move(body))
414 #line 1755 "parsetree.w" 419 :condition(std::move(condition))
420 ,branches(std::move(then_branch))
421 {branches.
next.reset(
new 424 #line 1845 "parsetree.w" 426 :condition(std::move(condition))
427 ,branches(std::move(branches))
429 #line 1764 "parsetree.w" 432 #line 1932 "parsetree.w" 438 :body(std::move(body))
448 ,in_part(std::move(in_part))
449 ,body(std::move(body))
459 ,count(std::move(count))
460 ,bound(std::move(bound))
461 ,body(std::move(body))
464 #line 2100 "parsetree.w" 469 :array(std::move(array))
470 ,index(std::move(index))
471 ,reversed(reversed){}
477 :array(std::move(array))
478 ,lower(std::move(lower))
479 ,upper(std::move(upper))
483 #line 2230 "parsetree.w" 488 :type(std::move(type))
489 ,exp(std::move(exp)){}
492 #line 2299 "parsetree.w" 498 ,type(std::move(type)){}
501 #line 2369 "parsetree.w" 507 ,rhs(std::move(rhs)){}
510 ,rhs(std::move(rhs)){}
511 #ifdef incompletecpp11 515 ,rhs(std::move(x.
rhs))
519 #line 2462 "parsetree.w" 525 ,index(std::move(index))
529 #ifdef incompletecpp11 533 ,index(std::move(x.
index))
534 ,rhs(std::move(x.
rhs))
539 #line 2646 "parsetree.w" 544 :first(std::move(first))
545 ,last(std::move(last)){}
548 #line 48 "parsetree.w" struct op_cast_node * op_cast
Definition: parse_types.h:107
Definition: parse_types.h:415
Definition: parse_types.h:398
id_pat pattern
Definition: parse_types.h:406
Definition: parse_types.h:120
expr(lambda &&fun, const YYLTYPE &loc)
Definition: parse_types.h:288
struct let_expr_node * let
Definition: parse_types.h:92
bool reversed
Definition: parse_types.h:521
char * loc
Definition: common.c:89
source_location()
Definition: parse_types.h:31
expr(expr_list &&nodes, list_display_tag, const YYLTYPE &loc)
Definition: parse_types.h:252
Definition: parse_types.h:142
expr val
Definition: parse_types.h:399
sequence sequence_variant
Definition: parse_types.h:199
expr val
Definition: parse_types.h:385
unsigned long size
Definition: testprint.cpp:46
struct expr * expr_p
Definition: parse_types.h:155
Definition: parse_types.h:520
expr(const YYLTYPE &loc, break_tag t)
Definition: parse_types.h:239
for_node(id_pat &&id, expr &&in_part, expr &&body, unsigned flags)
Definition: parse_types.h:446
lambda lambda_variant
Definition: parse_types.h:180
Definition: parse_types.h:405
Definition: parse_types.h:51
unsigned int start_line
Definition: parse_types.h:27
unsigned depth
Definition: parse_types.h:231
id_pat(const raw_id_pat &x)
Definition: parse_types.h:64
Hash_table::id_type id_type
Definition: parse_types.h:22
std::string str_denotation_variant
Definition: parse_types.h:165
while_node(expr &&body, unsigned flags)
Definition: parse_types.h:437
BitSet< 2 > flags
Definition: parse_types.h:444
cast cast_variant
Definition: parse_types.h:191
sequence_node(expr &&first, expr &&last)
Definition: parse_types.h:543
struct application_node * app
Definition: parse_types.h:46
id_pat(patlist &&l)
Definition: parse_types.h:70
uA p
Definition: lists.cpp:26
lambda_node(id_pat &&pattern, type_expr &&type, expr &&body)
Definition: parse_types.h:408
expr fun
Definition: parse_types.h:367
Definition: parse_types.h:140
Definition: parse_types.h:152
id_pat(id_type n)
Definition: parse_types.h:68
type_expr type
Definition: parse_types.h:485
expr(expr_list &&nodes, tuple_display_tag, const YYLTYPE &loc)
Definition: parse_types.h:247
assignment_node(id_type lhs, expr &&rhs)
Definition: parse_types.h:505
Definition: parse_types.h:442
expr(expr_p exp, const YYLTYPE &loc, return_tag t)
Definition: parse_types.h:241
Definition: parse_types.h:126
assignment assign_variant
Definition: parse_types.h:195
struct assignment_node * assignment
Definition: parse_types.h:109
Definition: parse_types.h:136
const id_pat & pattern
Definition: axis.cpp:21
sub subscription_variant
Definition: parse_types.h:188
struct for_node * f_loop
Definition: parse_types.h:99
expr(const YYLTYPE &loc, dollar_tag)
Definition: parse_types.h:237
Definition: parse_types.h:140
unsigned char kind
Definition: parse_types.h:59
std::unique_ptr< expr > expr_ptr
Definition: parse_types.h:364
Definition: parse_types.h:123
Definition: parse_types.h:142
id_pat()
Definition: parse_types.h:63
containers::simple_list< struct id_pat > patlist
Definition: parse_types.h:48
Definition: parse_types.h:232
expr(app &&fx, const YYLTYPE &loc)
Definition: parse_types.h:264
Definition: parse_types.h:120
raw_id_pat release()
Definition: parse_types.h:88
Definition: parse_types.h:465
void swap(simple_list< T, Alloc > &x, simple_list< T, Alloc > &y)
Definition: sl_list.h:674
expr index
Definition: parse_types.h:521
Definition: parse_types.h:123
w_loop while_variant
Definition: parse_types.h:184
let_expr_node(id_pat &&pattern, expr &&val, expr &&body)
Definition: parse_types.h:401
conditional_node(expr &&condition, containers::sl_node< expr > &&branches)
Definition: parse_types.h:425
unsigned short first_col
Definition: parse_types.h:28
op_cast_node(id_type oper, type_expr &&type)
Definition: parse_types.h:496
id_pat lhs
Definition: parse_types.h:503
Definition: parse_types.h:152
c_loop cfor_variant
Definition: parse_types.h:186
expr * negation_variant
Definition: parse_types.h:176
id_type id
Definition: parse_types.h:453
op_cast op_cast_variant
Definition: parse_types.h:193
expr(expr_list &&nodes, tuple_display_tag, const source_location &loc)
Definition: parse_types.h:257
struct slice_node * slc
Definition: parse_types.h:103
expr(expr *p, const YYLTYPE &loc, negate_tag)
Definition: parse_types.h:276
unsigned short last_col
Definition: parse_types.h:28
expr last
Definition: parse_types.h:541
id_type file
Definition: parse_types.h:29
expr(app &&fx, const source_location &loc)
Definition: parse_types.h:269
struct conditional_node * cond
Definition: parse_types.h:96
Definition: parse_types.h:215
slice_node(expr &&array, expr &&lower, expr &&upper, unsigned flags)
Definition: parse_types.h:476
Definition: parse_types.h:275
bool bool_denotation_variant
Definition: parse_types.h:161
Definition: parse_types.h:26
application_node(expr &&fun, expr &&arg)
Definition: parse_types.h:369
Definition: parse_types.h:452
Definition: axis-types.h:51
Definition: parse_types.h:124
Definition: parse_types.h:152
Definition: parse_types.h:146
Definition: sl_list.h:1204
app call_variant
Definition: parse_types.h:174
source_location loc
Definition: parse_types.h:202
containers::sl_node< struct id_pat > * raw_patlist
Definition: parse_types.h:49
expr(comp_assignment &&ca, const YYLTYPE &loc)
Definition: parse_types.h:350
Definition: parser.tab.h:139
raw_patlist sublist
Definition: parse_types.h:55
Definition: parse_types.h:134
containers::weak_sl_list_iterator< expr > wel_iterator
Definition: parse_types.h:44
comp_assignment_node(id_type aggr, expr &&index, expr &&rhs, bool reversed)
Definition: parse_types.h:523
conditional_node(expr &&condition, expr &&then_branch, expr &&else_branch)
Definition: parse_types.h:418
expr()
Definition: parse_types.h:204
expr(expr_kind which, cond &&conditional, const YYLTYPE &loc)
Definition: parse_types.h:294
expr condition
Definition: parse_types.h:416
expr(id_type id, const YYLTYPE &loc, identifier_tag)
Definition: parse_types.h:235
unsigned short id_type
Definition: buffer.h:44
id_type name
Definition: parse_types.h:52
expr(sub &&s, const YYLTYPE &loc)
Definition: parse_types.h:316
expr upper
Definition: parse_types.h:474
expr_kind
Definition: parse_types.h:117
expr(sub &&s, const source_location &loc)
Definition: parse_types.h:321
Definition: parse_types.h:229
expr(std::string &&s, const YYLTYPE &loc)
Definition: parse_types.h:220
comp_assignment comp_assign_variant
Definition: parse_types.h:197
f_loop for_variant
Definition: parse_types.h:185
expr_kind kind
Definition: parse_types.h:157
containers::mirrored_simple_list< formula_node > form_stack
Definition: parse_types.h:382
id_type aggr
Definition: parse_types.h:521
patlist sublist
Definition: parse_types.h:61
expr rhs
Definition: parse_types.h:521
expr(w_loop &&loop, const YYLTYPE &loc)
Definition: parse_types.h:300
Definition: parse_types.h:233
containers::sl_node< let_pair > * raw_let_list
Definition: parse_types.h:396
id_type name
Definition: parse_types.h:58
Definition: parse_types.h:246
raw_expr_list sublist
Definition: parse_types.h:172
expr body
Definition: parse_types.h:434
Definition: parse_types.h:540
Definition: parse_types.h:493
expr(sequence &&s, unsigned which, const YYLTYPE &loc)
Definition: parse_types.h:356
Definition: parse_types.h:126
BitSet< 2 > flags
Definition: parse_types.h:435
expr(cast &&c, const YYLTYPE &loc)
Definition: parse_types.h:332
BitSet< 3 > flags
Definition: parse_types.h:454
struct subscription_node * sub
Definition: parse_types.h:102
containers::sl_node< expr > * raw_expr_list
Definition: parse_types.h:40
Definition: sl_list.h:174
type_expr type
Definition: parse_types.h:494
int int_denotation_variant
Definition: parse_types.h:160
containers::sl_node< formula_node > * raw_form_stack
Definition: parse_types.h:383
containers::simple_list< let_pair > let_list
Definition: parse_types.h:395
Definition: parse_types.h:130
Definition: parse_types.h:123
expr(c_loop &&loop, const YYLTYPE &loc)
Definition: parse_types.h:310
expr(assignment &&a, const YYLTYPE &loc)
Definition: parse_types.h:344
Definition: parse_types.h:473
Definition: parse_types.h:433
Definition: parse_types.h:246
Definition: parse_types.h:122
expr in_part
Definition: parse_types.h:443
Definition: parse_types.h:128
Definition: parse_types.h:214
Definition: parse_types.h:138
struct while_node * w_loop
Definition: parse_types.h:98
expr_p return_variant
Definition: parse_types.h:170
Definition: parse_types.h:231
Definition: parse_types.h:144
Definition: parse_types.h:484
struct cfor_node * c_loop
Definition: parse_types.h:100
id_pat(id_type n, unsigned char k, patlist &&l)
Definition: parse_types.h:72
Definition: parse_types.h:120
char * name
Definition: common.c:103
let let_variant
Definition: parse_types.h:178
unsigned long n
Definition: axis.cpp:77
struct lambda_node * lambda
Definition: parse_types.h:94
struct comp_assignment_node * comp_assignment
Definition: parse_types.h:111
cond if_variant
Definition: parse_types.h:182
assignment_node(id_pat &&lhs, expr &&rhs)
Definition: parse_types.h:508
boolean flags[UCHAR_MAX+1]
Definition: common.c:136
cast_node(type_expr &&type, expr &&exp)
Definition: parse_types.h:487
unsigned short extent
Definition: parse_types.h:28
expr(int n, const YYLTYPE &loc, int_tag)
Definition: parse_types.h:216
unsigned break_variant
Definition: parse_types.h:169
expr(let &&declaration, const YYLTYPE &loc)
Definition: parse_types.h:282
Definition: parse_types.h:148
slc slice_variant
Definition: parse_types.h:189
expr(op_cast &&c, const YYLTYPE &loc)
Definition: parse_types.h:338
link_type next
Definition: sl_list.h:91
Class definitions and function declarations for the BitSet class.
Definition: parse_types.h:502
Definition: sl_list.h:176
bool reversed
Definition: parse_types.h:466
expr(const YYLTYPE &loc, die_tag)
Definition: parse_types.h:243
Definition: parse_types.h:57
Definition: parse_types.h:385
expr rhs
Definition: parse_types.h:503
expr(slc &&s, const YYLTYPE &loc)
Definition: parse_types.h:326
containers::weak_sl_list_const_iterator< expr > wel_const_iterator
Definition: parse_types.h:43
containers::simple_list< expr > expr_list
Definition: parse_types.h:39
Definition: parse_types.h:366
Definition: parse_types.h:156
Definition: parse_types.h:140
subscription_node(expr &&array, expr &&index, bool reversed)
Definition: parse_types.h:468
Definition: parse_types.h:230
unsigned int depth
Definition: output.cpp:74
expr(bool b, const YYLTYPE &loc, bool_tag)
Definition: parse_types.h:218
struct cast_node * cast
Definition: parse_types.h:105
struct sequence_node * sequence
Definition: parse_types.h:113
Definition: parse_types.h:150
id_type identifier_variant
Definition: parse_types.h:168
expr(f_loop &&loop, const YYLTYPE &loc)
Definition: parse_types.h:305
unsigned char kind
Definition: parse_types.h:53
Vertex v
Definition: graph.cpp:116
node_type * release()
Definition: sl_list.h:428
Definition: parse_types.h:154
Definition: parse_types.h:132
bool undefined() const
Definition: parse_types.h:36