Spicy
node-tag.h
1 // Copyright (c) 2020-now by the Zeek Project. See LICENSE for details.
2 
3 #pragma once
4 
5 #include <array>
6 #include <cstdint>
7 #include <string>
8 
9 namespace hilti::node {
10 
12 using Tag = uint16_t;
13 
18 using Tags = std::array<Tag, 4>;
19 
21 extern std::string to_string(const Tags& ti);
22 
23 namespace tag {
24 
25 constexpr Tag Node = 1;
26 
27 constexpr Tag ASTRoot = 100;
28 constexpr Tag Attribute = 101;
29 constexpr Tag AttributeSet = 102;
30 constexpr Tag Ctor = 103;
31 constexpr Tag Declaration = 104;
32 constexpr Tag Expression = 105;
33 constexpr Tag Function = 106;
34 constexpr Tag QualifiedType = 107;
35 constexpr Tag Statement = 108;
36 constexpr Tag UnqualifiedType = 109;
37 
38 namespace ctor::bitfield {
39 constexpr Tag BitRange = 110;
40 }
41 
42 namespace ctor::map {
43 constexpr Tag Element = 111;
44 }
45 
46 namespace ctor::struct_ {
47 constexpr Tag Field = 112;
48 }
49 
50 namespace statement::switch_ {
51 constexpr Tag Case = 113;
52 }
53 
54 namespace statement::try_ {
55 constexpr Tag Catch = 114;
56 }
57 
58 namespace type::bitfield {
59 constexpr Tag BitRange = 115;
60 }
61 
62 namespace type::enum_ {
63 constexpr Tag Label = 116;
64 }
65 
66 namespace type::operand_list {
67 constexpr Tag Operand = 117;
68 }
69 
70 namespace type::tuple {
71 constexpr Tag Element = 118;
72 }
73 
74 namespace ctor {
75 constexpr Tag Address = 200;
76 constexpr Tag Bitfield = 201;
77 constexpr Tag Bool = 202;
78 constexpr Tag Bytes = 203;
79 constexpr Tag Coerced = 204;
80 constexpr Tag Default = 205;
81 constexpr Tag Enum = 206;
82 constexpr Tag Error = 207;
83 constexpr Tag Exception = 208;
84 constexpr Tag Interval = 209;
85 constexpr Tag Library = 210;
86 constexpr Tag List = 211;
87 constexpr Tag Map = 212;
88 constexpr Tag Network = 213;
89 constexpr Tag Null = 214;
90 constexpr Tag Optional = 215;
91 constexpr Tag Port = 216;
92 constexpr Tag Real = 217;
93 constexpr Tag RegExp = 218;
94 constexpr Tag Result = 219;
95 constexpr Tag Set = 220;
96 constexpr Tag SignedInteger = 221;
97 constexpr Tag Stream = 222;
98 constexpr Tag String = 223;
99 constexpr Tag StrongReference = 224;
100 constexpr Tag Struct = 225;
101 constexpr Tag Time = 226;
102 constexpr Tag Tuple = 227;
103 constexpr Tag Union = 228;
104 constexpr Tag UnsignedInteger = 229;
105 constexpr Tag ValueReference = 230;
106 constexpr Tag Vector = 231;
107 constexpr Tag WeakReference = 232;
108 } // namespace ctor
109 
110 namespace declaration {
111 constexpr Tag Constant = 300;
112 constexpr Tag Expression = 301;
113 constexpr Tag Field = 302;
114 constexpr Tag Function = 303;
115 constexpr Tag GlobalVariable = 304;
116 constexpr Tag ImportedModule = 305;
117 constexpr Tag LocalVariable = 306;
118 constexpr Tag Module = 307;
119 constexpr Tag Parameter = 308;
120 constexpr Tag Property = 309;
121 constexpr Tag Type = 310;
122 } // namespace declaration
123 
124 namespace expression {
125 constexpr Tag Assign = 400;
126 constexpr Tag BuiltInFunction = 401;
127 constexpr Tag Coerced = 402;
128 constexpr Tag ConditionTest = 403;
129 constexpr Tag Ctor = 404;
130 constexpr Tag Grouping = 405;
131 constexpr Tag Keyword = 406;
132 constexpr Tag ListComprehension = 407;
133 constexpr Tag LogicalAnd = 408;
134 constexpr Tag LogicalNot = 409;
135 constexpr Tag LogicalOr = 410;
136 constexpr Tag Member = 411;
137 constexpr Tag Move = 412;
138 constexpr Tag Name = 413;
139 constexpr Tag PendingCoerced = 414;
140 constexpr Tag Ternary = 415;
141 constexpr Tag TypeInfo = 416;
142 constexpr Tag TypeWrapped = 417;
143 constexpr Tag Type_ = 418;
144 constexpr Tag ResolvedOperator = 419;
145 constexpr Tag UnresolvedOperator = 420;
146 constexpr Tag Void = 421;
147 } // namespace expression
148 
149 namespace operator_ {
150 
151 namespace address {
152 constexpr Tag Equal = 600;
153 constexpr Tag Family = 601;
154 constexpr Tag Unequal = 602;
155 } // namespace address
156 
157 namespace bitfield {
158 constexpr Tag HasMember = 700;
159 constexpr Tag Member = 701;
160 } // namespace bitfield
161 
162 namespace bool_ {
163 constexpr Tag BitAnd = 800;
164 constexpr Tag BitOr = 801;
165 constexpr Tag BitXor = 802;
166 constexpr Tag Equal = 803;
167 constexpr Tag Unequal = 804;
168 } // namespace bool_
169 
170 namespace bytes {
171 constexpr Tag At = 900;
172 constexpr Tag Decode = 901;
173 constexpr Tag Equal = 902;
174 constexpr Tag Find = 903;
175 constexpr Tag Greater = 904;
176 constexpr Tag GreaterEqual = 905;
177 constexpr Tag In = 906;
178 constexpr Tag Join = 907;
179 constexpr Tag Lower = 908;
180 constexpr Tag LowerCase = 909;
181 constexpr Tag LowerEqual = 910;
182 constexpr Tag Match = 911;
183 constexpr Tag Size = 912;
184 constexpr Tag Split = 913;
185 constexpr Tag Split1 = 914;
186 constexpr Tag StartsWith = 915;
187 constexpr Tag EndsWith = 916;
188 constexpr Tag Strip = 917;
189 constexpr Tag SubIterator = 918;
190 constexpr Tag SubIterators = 919;
191 constexpr Tag SubOffsets = 920;
192 constexpr Tag Sum = 921;
193 constexpr Tag SumAssignBytes = 922;
194 constexpr Tag SumAssignStreamView = 923;
195 constexpr Tag SumAssignUInt8 = 924;
196 constexpr Tag ToIntAscii = 925;
197 constexpr Tag ToIntBinary = 926;
198 constexpr Tag ToRealAscii = 927;
199 constexpr Tag ToTimeAscii = 928;
200 constexpr Tag ToTimeBinary = 929;
201 constexpr Tag ToUIntAscii = 930;
202 constexpr Tag ToUIntBinary = 931;
203 constexpr Tag Unequal = 932;
204 constexpr Tag UpperCase = 933;
205 
206 namespace iterator {
207 constexpr Tag Deref = 1000;
208 constexpr Tag Difference = 1001;
209 constexpr Tag Equal = 1002;
210 constexpr Tag Greater = 1003;
211 constexpr Tag GreaterEqual = 1004;
212 constexpr Tag IncrPostfix = 1005;
213 constexpr Tag IncrPrefix = 1006;
214 constexpr Tag Lower = 1007;
215 constexpr Tag LowerEqual = 1008;
216 constexpr Tag Sum = 1009;
217 constexpr Tag SumAssign = 1010;
218 constexpr Tag Unequal = 1011;
219 } // namespace iterator
220 } // namespace bytes
221 
222 namespace enum_ {
223 constexpr Tag CastToSignedInteger = 1100;
224 constexpr Tag CastToUnsignedInteger = 1101;
225 constexpr Tag CtorSigned = 1102;
226 constexpr Tag CtorUnsigned = 1103;
227 constexpr Tag Equal = 1104;
228 constexpr Tag HasLabel = 1105;
229 constexpr Tag Unequal = 1106;
230 } // namespace enum_
231 
232 namespace error {
233 constexpr Tag Ctor = 1200;
234 constexpr Tag Description = 1201;
235 constexpr Tag Equal = 2702;
236 constexpr Tag Unequal = 2703;
237 } // namespace error
238 
239 namespace exception {
240 constexpr Tag Ctor = 1300;
241 constexpr Tag Description = 1301;
242 } // namespace exception
243 
244 namespace function {
245 constexpr Tag Call = 1400;
246 }
247 
248 namespace generic {
249 constexpr Tag Begin = 1500;
250 constexpr Tag CastedCoercion = 1501;
251 constexpr Tag End = 1502;
252 constexpr Tag New = 1503;
253 constexpr Tag Pack = 1504;
254 constexpr Tag Unpack = 1505;
255 } // namespace generic
256 
257 namespace interval {
258 constexpr Tag CtorRealSecs = 1600;
259 constexpr Tag CtorSignedIntegerNs = 1601;
260 constexpr Tag CtorSignedIntegerSecs = 1602;
261 constexpr Tag CtorUnsignedIntegerNs = 1603;
262 constexpr Tag CtorUnsignedIntegerSecs = 1604;
263 constexpr Tag Difference = 1605;
264 constexpr Tag Equal = 1606;
265 constexpr Tag Greater = 1607;
266 constexpr Tag GreaterEqual = 1608;
267 constexpr Tag Lower = 1609;
268 constexpr Tag LowerEqual = 1610;
269 constexpr Tag MultipleReal = 1611;
270 constexpr Tag MultipleUnsignedInteger = 1612;
271 constexpr Tag Nanoseconds = 1613;
272 constexpr Tag Seconds = 1614;
273 constexpr Tag Sum = 1615;
274 constexpr Tag Unequal = 1616;
275 } // namespace interval
276 
277 namespace list {
278 constexpr Tag Equal = 1700;
279 constexpr Tag Size = 1701;
280 constexpr Tag Unequal = 1702;
281 
282 namespace iterator {
283 constexpr Tag Deref = 1800;
284 constexpr Tag Equal = 1801;
285 constexpr Tag IncrPostfix = 1802;
286 constexpr Tag IncrPrefix = 1803;
287 constexpr Tag Unequal = 1804;
288 } // namespace iterator
289 } // namespace list
290 
291 namespace map {
292 constexpr Tag Clear = 1900;
293 constexpr Tag Delete = 1901;
294 constexpr Tag Equal = 1902;
295 constexpr Tag Get = 1903;
296 constexpr Tag In = 1904;
297 constexpr Tag IndexAssign = 1905;
298 constexpr Tag IndexConst = 1906;
299 constexpr Tag IndexNonConst = 1907;
300 constexpr Tag Size = 1908;
301 constexpr Tag Unequal = 1909;
302 constexpr Tag GetOptional = 1910;
303 
304 namespace iterator {
305 constexpr Tag Deref = 2000;
306 constexpr Tag Equal = 2001;
307 constexpr Tag IncrPostfix = 2002;
308 constexpr Tag IncrPrefix = 2003;
309 constexpr Tag Unequal = 2004;
310 } // namespace iterator
311 } // namespace map
312 
313 namespace network {
314 constexpr Tag Equal = 2100;
315 constexpr Tag Family = 2101;
316 constexpr Tag In = 2102;
317 constexpr Tag Length = 2103;
318 constexpr Tag Prefix = 2104;
319 constexpr Tag Unequal = 2105;
320 } // namespace network
321 
322 namespace optional {
323 constexpr Tag Deref = 2200;
324 }
325 
326 namespace port {
327 constexpr Tag Ctor = 2300;
328 constexpr Tag Equal = 2301;
329 constexpr Tag Protocol = 2302;
330 constexpr Tag Unequal = 2303;
331 } // namespace port
332 
333 namespace real {
334 constexpr Tag CastToInterval = 2400;
335 constexpr Tag CastToSignedInteger = 2401;
336 constexpr Tag CastToTime = 2402;
337 constexpr Tag CastToUnsignedInteger = 2403;
338 constexpr Tag Difference = 2404;
339 constexpr Tag DifferenceAssign = 2405;
340 constexpr Tag Division = 2406;
341 constexpr Tag DivisionAssign = 2407;
342 constexpr Tag Equal = 2408;
343 constexpr Tag Greater = 2409;
344 constexpr Tag GreaterEqual = 2410;
345 constexpr Tag Lower = 2411;
346 constexpr Tag LowerEqual = 2412;
347 constexpr Tag Modulo = 2413;
348 constexpr Tag Multiple = 2414;
349 constexpr Tag MultipleAssign = 2415;
350 constexpr Tag Power = 2416;
351 constexpr Tag SignNeg = 2417;
352 constexpr Tag Sum = 2418;
353 constexpr Tag SumAssign = 2419;
354 constexpr Tag Unequal = 2420;
355 } // namespace real
356 
357 namespace regexp {
358 constexpr Tag Find = 2500;
359 constexpr Tag Match = 2501;
360 constexpr Tag MatchGroups = 2502;
361 constexpr Tag TokenMatcher = 2503;
362 } // namespace regexp
363 
364 namespace regexp_match_state {
365 constexpr Tag AdvanceBytes = 2600;
366 constexpr Tag AdvanceView = 2601;
367 } // namespace regexp_match_state
368 
369 namespace result {
370 constexpr Tag Deref = 2700;
371 constexpr Tag Error = 2701;
372 } // namespace result
373 
374 namespace set {
375 constexpr Tag Add = 2800;
376 constexpr Tag Clear = 2801;
377 constexpr Tag Delete = 2802;
378 constexpr Tag Equal = 2803;
379 constexpr Tag In = 2804;
380 constexpr Tag Size = 2805;
381 constexpr Tag Unequal = 2806;
382 
383 namespace iterator {
384 constexpr Tag Deref = 2900;
385 constexpr Tag Equal = 2901;
386 constexpr Tag IncrPostfix = 2902;
387 constexpr Tag IncrPrefix = 2903;
388 constexpr Tag Unequal = 2904;
389 } // namespace iterator
390 } // namespace set
391 
392 namespace signed_integer {
393 constexpr Tag CastToBool = 3000;
394 constexpr Tag CastToEnum = 3001;
395 constexpr Tag CastToInterval = 3002;
396 constexpr Tag CastToReal = 3003;
397 constexpr Tag CastToSigned = 3004;
398 constexpr Tag CastToUnsigned = 3005;
399 constexpr Tag CtorSigned16 = 3006;
400 constexpr Tag CtorSigned32 = 3007;
401 constexpr Tag CtorSigned64 = 3008;
402 constexpr Tag CtorSigned8 = 3009;
403 constexpr Tag CtorUnsigned16 = 3010;
404 constexpr Tag CtorUnsigned32 = 3011;
405 constexpr Tag CtorUnsigned64 = 3012;
406 constexpr Tag CtorUnsigned8 = 3013;
407 constexpr Tag DecrPostfix = 3014;
408 constexpr Tag DecrPrefix = 3015;
409 constexpr Tag Difference = 3016;
410 constexpr Tag DifferenceAssign = 3017;
411 constexpr Tag Division = 3018;
412 constexpr Tag DivisionAssign = 3019;
413 constexpr Tag Equal = 3020;
414 constexpr Tag Greater = 3021;
415 constexpr Tag GreaterEqual = 3022;
416 constexpr Tag IncrPostfix = 3023;
417 constexpr Tag IncrPrefix = 3024;
418 constexpr Tag Lower = 3025;
419 constexpr Tag LowerEqual = 3026;
420 constexpr Tag Modulo = 3027;
421 constexpr Tag Multiple = 3028;
422 constexpr Tag MultipleAssign = 3029;
423 constexpr Tag Power = 3030;
424 constexpr Tag SignNeg = 3031;
425 constexpr Tag Sum = 3032;
426 constexpr Tag SumAssign = 3033;
427 constexpr Tag Unequal = 3034;
428 } // namespace signed_integer
429 
430 namespace stream {
431 constexpr Tag At = 3100;
432 constexpr Tag Ctor = 3101;
433 constexpr Tag Freeze = 3102;
434 constexpr Tag IsFrozen = 3103;
435 constexpr Tag Size = 3104;
436 constexpr Tag Statistics = 3105;
437 constexpr Tag SumAssignBytes = 3106;
438 constexpr Tag SumAssignView = 3107;
439 constexpr Tag Trim = 3108;
440 constexpr Tag Unequal = 3109;
441 constexpr Tag Unfreeze = 3110;
442 
443 namespace iterator {
444 constexpr Tag Deref = 3200;
445 constexpr Tag Difference = 3201;
446 constexpr Tag Equal = 3202;
447 constexpr Tag Greater = 3203;
448 constexpr Tag GreaterEqual = 3204;
449 constexpr Tag IncrPostfix = 3205;
450 constexpr Tag IncrPrefix = 3206;
451 constexpr Tag IsFrozen = 3207;
452 constexpr Tag Lower = 3208;
453 constexpr Tag LowerEqual = 3209;
454 constexpr Tag Offset = 3210;
455 constexpr Tag Sum = 3211;
456 constexpr Tag SumAssign = 3212;
457 constexpr Tag Unequal = 3213;
458 } // namespace iterator
459 
460 namespace view {
461 constexpr Tag AdvanceBy = 3300;
462 constexpr Tag AdvanceTo = 3301;
463 constexpr Tag AdvanceToNextData = 3302;
464 constexpr Tag At = 3303;
465 constexpr Tag EqualBytes = 3304;
466 constexpr Tag EqualView = 3305;
467 constexpr Tag Find = 3306;
468 constexpr Tag InBytes = 3307;
469 constexpr Tag InView = 3308;
470 constexpr Tag Limit = 3309;
471 constexpr Tag Offset = 3310;
472 constexpr Tag Size = 3311;
473 constexpr Tag StartsWith = 3312;
474 constexpr Tag SubIterator = 3313;
475 constexpr Tag SubIterators = 3314;
476 constexpr Tag SubOffsets = 3315;
477 constexpr Tag UnequalBytes = 3316;
478 constexpr Tag UnequalView = 3317;
479 } // namespace view
480 
481 } // namespace stream
482 
483 namespace string {
484 constexpr Tag Encode = 3400;
485 constexpr Tag Equal = 3401;
486 constexpr Tag Modulo = 3402;
487 constexpr Tag Size = 3403;
488 constexpr Tag Sum = 3404;
489 constexpr Tag SumAssign = 3405;
490 constexpr Tag Unequal = 3406;
491 constexpr Tag Split = 3407;
492 constexpr Tag Split1 = 3408;
493 constexpr Tag StartsWith = 3409;
494 constexpr Tag EndsWith = 3410;
495 constexpr Tag LowerCase = 3411;
496 constexpr Tag UpperCase = 3412;
497 } // namespace string
498 
499 namespace strong_reference {
500 constexpr Tag Deref = 3500;
501 constexpr Tag Equal = 3501;
502 constexpr Tag Unequal = 3502;
503 } // namespace strong_reference
504 
505 namespace struct_ {
506 constexpr Tag HasMember = 3600;
507 constexpr Tag MemberCall = 3601;
508 constexpr Tag MemberConst = 3602;
509 constexpr Tag MemberNonConst = 3603;
510 constexpr Tag TryMember = 3604;
511 constexpr Tag Unset = 3605;
512 } // namespace struct_
513 
514 namespace time {
515 constexpr Tag CtorRealSecs = 3700;
516 constexpr Tag CtorSignedIntegerNs = 3701;
517 constexpr Tag CtorSignedIntegerSecs = 3702;
518 constexpr Tag CtorUnsignedIntegerNs = 3703;
519 constexpr Tag CtorUnsignedIntegerSecs = 3704;
520 constexpr Tag DifferenceInterval = 3705;
521 constexpr Tag DifferenceTime = 3706;
522 constexpr Tag Equal = 3707;
523 constexpr Tag Greater = 3708;
524 constexpr Tag GreaterEqual = 3709;
525 constexpr Tag Lower = 3710;
526 constexpr Tag LowerEqual = 3711;
527 constexpr Tag Nanoseconds = 3712;
528 constexpr Tag Seconds = 3713;
529 constexpr Tag SumInterval = 3714;
530 constexpr Tag Unequal = 3715;
531 } // namespace time
532 
533 namespace tuple {
534 constexpr Tag CustomAssign = 3800;
535 constexpr Tag Equal = 3801;
536 constexpr Tag Index = 3802;
537 constexpr Tag Member = 3803;
538 constexpr Tag Unequal = 3804;
539 } // namespace tuple
540 
541 namespace union_ {
542 constexpr Tag Equal = 3900;
543 constexpr Tag HasMember = 3901;
544 constexpr Tag MemberConst = 3902;
545 constexpr Tag MemberNonConst = 3903;
546 constexpr Tag Unequal = 3904;
547 } // namespace union_
548 
549 namespace unsigned_integer {
550 constexpr Tag BitAnd = 4000;
551 constexpr Tag BitOr = 4001;
552 constexpr Tag BitXor = 4002;
553 constexpr Tag CastToBool = 4003;
554 constexpr Tag CastToEnum = 4004;
555 constexpr Tag CastToInterval = 4005;
556 constexpr Tag CastToReal = 4006;
557 constexpr Tag CastToSigned = 4007;
558 constexpr Tag CastToTime = 4008;
559 constexpr Tag CastToUnsigned = 4009;
560 constexpr Tag CtorSigned16 = 4010;
561 constexpr Tag CtorSigned32 = 4011;
562 constexpr Tag CtorSigned64 = 4012;
563 constexpr Tag CtorSigned8 = 4013;
564 constexpr Tag CtorUnsigned16 = 4014;
565 constexpr Tag CtorUnsigned32 = 4015;
566 constexpr Tag CtorUnsigned64 = 4016;
567 constexpr Tag CtorUnsigned8 = 4017;
568 constexpr Tag DecrPostfix = 4018;
569 constexpr Tag DecrPrefix = 4019;
570 constexpr Tag Difference = 4020;
571 constexpr Tag DifferenceAssign = 4021;
572 constexpr Tag Division = 4022;
573 constexpr Tag DivisionAssign = 4023;
574 constexpr Tag Equal = 4024;
575 constexpr Tag Greater = 4025;
576 constexpr Tag GreaterEqual = 4026;
577 constexpr Tag IncrPostfix = 4027;
578 constexpr Tag IncrPrefix = 4028;
579 constexpr Tag Lower = 4029;
580 constexpr Tag LowerEqual = 4030;
581 constexpr Tag Modulo = 4031;
582 constexpr Tag Multiple = 4032;
583 constexpr Tag MultipleAssign = 4033;
584 constexpr Tag Negate = 4034;
585 constexpr Tag Power = 4035;
586 constexpr Tag ShiftLeft = 4036;
587 constexpr Tag ShiftRight = 4037;
588 constexpr Tag SignNeg = 4038;
589 constexpr Tag Sum = 4039;
590 constexpr Tag SumAssign = 4040;
591 constexpr Tag Unequal = 4041;
592 } // namespace unsigned_integer
593 
594 namespace value_reference {
595 constexpr Tag Deref = 4100;
596 constexpr Tag Equal = 4101;
597 constexpr Tag Unequal = 4102;
598 } // namespace value_reference
599 
600 namespace vector {
601 constexpr Tag Assign = 4200;
602 constexpr Tag At = 4201;
603 constexpr Tag Back = 4202;
604 constexpr Tag Equal = 4203;
605 constexpr Tag Front = 4204;
606 constexpr Tag IndexConst = 4205;
607 constexpr Tag IndexNonConst = 4206;
608 constexpr Tag PopBack = 4207;
609 constexpr Tag PushBack = 4208;
610 constexpr Tag Reserve = 4209;
611 constexpr Tag Resize = 4210;
612 constexpr Tag Size = 4211;
613 constexpr Tag SubEnd = 4212;
614 constexpr Tag SubRange = 4213;
615 constexpr Tag Sum = 4214;
616 constexpr Tag SumAssign = 4215;
617 constexpr Tag Unequal = 4216;
618 
619 namespace iterator {
620 constexpr Tag Deref = 4300;
621 constexpr Tag Equal = 4301;
622 constexpr Tag IncrPostfix = 4302;
623 constexpr Tag IncrPrefix = 4303;
624 constexpr Tag Unequal = 4304;
625 } // namespace iterator
626 } // namespace vector
627 
628 namespace weak_reference {
629 constexpr Tag Deref = 4400;
630 constexpr Tag Equal = 4401;
631 constexpr Tag Unequal = 4402;
632 } // namespace weak_reference
633 
634 } // namespace operator_
635 
636 namespace statement {
637 constexpr Tag Assert = 4500;
638 constexpr Tag Block = 4501;
639 constexpr Tag Break = 4502;
640 constexpr Tag Comment = 4503;
641 constexpr Tag Continue = 4504;
642 constexpr Tag Declaration = 4505;
643 constexpr Tag Expression = 4506;
644 constexpr Tag For = 4507;
645 constexpr Tag If = 4508;
646 constexpr Tag Return = 4509;
647 constexpr Tag SetLocation = 4510;
648 constexpr Tag Switch = 4511;
649 constexpr Tag Throw = 4512;
650 constexpr Tag Try = 4513;
651 constexpr Tag While = 4514;
652 constexpr Tag Yield = 4515;
653 } // namespace statement
654 
655 namespace type {
656 constexpr Tag Address = 4600;
657 constexpr Tag Any = 4601;
658 constexpr Tag Auto = 4602;
659 constexpr Tag Bitfield = 4603;
660 constexpr Tag Bool = 4604;
661 constexpr Tag Bytes = 4605;
662 constexpr Tag DocOnly = 4606;
663 constexpr Tag Enum = 4607;
664 constexpr Tag Error = 4608;
665 constexpr Tag Exception = 4609;
666 constexpr Tag Function = 4610;
667 constexpr Tag Interval = 4611;
668 constexpr Tag Library = 4612;
669 constexpr Tag List = 4613;
670 constexpr Tag Map = 4614;
671 constexpr Tag Member = 4615;
672 constexpr Tag Name = 4616;
673 constexpr Tag Network = 4617;
674 constexpr Tag Null = 4618;
675 constexpr Tag OperandList = 4619;
676 constexpr Tag Optional = 4620;
677 constexpr Tag Port = 4621;
678 constexpr Tag Real = 4622;
679 constexpr Tag RegExp = 4623;
680 constexpr Tag Result = 4624;
681 constexpr Tag Set = 4625;
682 constexpr Tag SignedInteger = 4626;
683 constexpr Tag Stream = 4627;
684 constexpr Tag String = 4628;
685 constexpr Tag StrongReference = 4629;
686 constexpr Tag Struct = 4630;
687 constexpr Tag Time = 4631;
688 constexpr Tag Tuple = 4632;
689 constexpr Tag Type_ = 4633;
690 constexpr Tag Union = 4634;
691 constexpr Tag Unknown = 4635;
692 constexpr Tag UnsignedInteger = 4636;
693 constexpr Tag ValueReference = 4637;
694 constexpr Tag Vector = 4638;
695 constexpr Tag Void = 4639;
696 constexpr Tag WeakReference = 4640;
697 
698 namespace bytes {
699 constexpr Tag Iterator = 4700;
700 }
701 namespace list {
702 constexpr Tag Iterator = 4800;
703 }
704 namespace map {
705 constexpr Tag Iterator = 4900;
706 }
707 namespace set {
708 constexpr Tag Iterator = 5000;
709 }
710 namespace stream {
711 constexpr Tag Iterator = 5100;
712 }
713 namespace stream {
714 constexpr Tag View = 5200;
715 }
716 namespace vector {
717 constexpr Tag Iterator = 5300;
718 }
719 } // namespace type
720 
721 } // namespace tag
722 
723 } // namespace hilti::node
std::tuple< std::optional< Ts >... > Tuple
Definition: tuple.h:24