9 namespace hilti::node {
18 using Tags = std::array<Tag, 4>;
21 extern std::string to_string(
const Tags& ti);
25 constexpr Tag Node = 1;
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;
38 namespace ctor::bitfield {
39 constexpr Tag BitRange = 110;
43 constexpr Tag Element = 111;
46 namespace ctor::struct_ {
47 constexpr Tag Field = 112;
50 namespace statement::switch_ {
51 constexpr Tag Case = 113;
54 namespace statement::try_ {
55 constexpr Tag Catch = 114;
58 namespace type::bitfield {
59 constexpr Tag BitRange = 115;
62 namespace type::enum_ {
63 constexpr Tag Label = 116;
66 namespace type::operand_list {
67 constexpr Tag Operand = 117;
70 namespace type::tuple {
71 constexpr Tag Element = 118;
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;
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;
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;
149 namespace operator_ {
152 constexpr Tag Equal = 600;
153 constexpr Tag Family = 601;
154 constexpr Tag Unequal = 602;
158 constexpr Tag HasMember = 700;
159 constexpr Tag Member = 701;
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;
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;
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;
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;
233 constexpr Tag Ctor = 1200;
234 constexpr Tag Description = 1201;
235 constexpr Tag Equal = 2702;
236 constexpr Tag Unequal = 2703;
239 namespace exception {
240 constexpr Tag Ctor = 1300;
241 constexpr Tag Description = 1301;
245 constexpr Tag Call = 1400;
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;
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;
278 constexpr Tag Equal = 1700;
279 constexpr Tag Size = 1701;
280 constexpr Tag Unequal = 1702;
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;
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;
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;
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;
323 constexpr Tag Deref = 2200;
327 constexpr Tag Ctor = 2300;
328 constexpr Tag Equal = 2301;
329 constexpr Tag Protocol = 2302;
330 constexpr Tag Unequal = 2303;
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;
358 constexpr Tag Find = 2500;
359 constexpr Tag Match = 2501;
360 constexpr Tag MatchGroups = 2502;
361 constexpr Tag TokenMatcher = 2503;
364 namespace regexp_match_state {
365 constexpr Tag AdvanceBytes = 2600;
366 constexpr Tag AdvanceView = 2601;
370 constexpr Tag Deref = 2700;
371 constexpr Tag Error = 2701;
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;
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;
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;
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;
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;
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;
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;
499 namespace strong_reference {
500 constexpr Tag Deref = 3500;
501 constexpr Tag Equal = 3501;
502 constexpr Tag Unequal = 3502;
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;
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;
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;
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;
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;
594 namespace value_reference {
595 constexpr Tag Deref = 4100;
596 constexpr Tag Equal = 4101;
597 constexpr Tag Unequal = 4102;
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;
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;
628 namespace weak_reference {
629 constexpr Tag Deref = 4400;
630 constexpr Tag Equal = 4401;
631 constexpr Tag Unequal = 4402;
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;
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;
699 constexpr Tag Iterator = 4700;
702 constexpr Tag Iterator = 4800;
705 constexpr Tag Iterator = 4900;
708 constexpr Tag Iterator = 5000;
711 constexpr Tag Iterator = 5100;
714 constexpr Tag View = 5200;
717 constexpr Tag Iterator = 5300;
std::tuple< std::optional< Ts >... > Tuple
Definition: tuple.h:24