1 module graphql.ast; 2 3 import graphql.tokenmodule; 4 5 import graphql.visitor; 6 7 @safe: 8 9 class Node {} 10 11 enum DocumentEnum { 12 Defi, 13 } 14 15 class Document : Node { 16 DocumentEnum ruleSelection; 17 Definitions defs; 18 19 this(DocumentEnum ruleSelection, Definitions defs) { 20 this.ruleSelection = ruleSelection; 21 this.defs = defs; 22 } 23 24 void visit(Visitor vis) { 25 vis.accept(this); 26 } 27 28 void visit(Visitor vis) const { 29 vis.accept(this); 30 } 31 32 void visit(ConstVisitor vis) { 33 vis.accept(this); 34 } 35 36 void visit(ConstVisitor vis) const { 37 vis.accept(this); 38 } 39 } 40 41 enum DefinitionsEnum { 42 Def, 43 Defs, 44 } 45 46 class Definitions : Node { 47 DefinitionsEnum ruleSelection; 48 Definition def; 49 Definitions follow; 50 51 this(DefinitionsEnum ruleSelection, Definition def) { 52 this.ruleSelection = ruleSelection; 53 this.def = def; 54 } 55 56 this(DefinitionsEnum ruleSelection, Definition def, Definitions follow) { 57 this.ruleSelection = ruleSelection; 58 this.def = def; 59 this.follow = follow; 60 } 61 62 void visit(Visitor vis) { 63 vis.accept(this); 64 } 65 66 void visit(Visitor vis) const { 67 vis.accept(this); 68 } 69 70 void visit(ConstVisitor vis) { 71 vis.accept(this); 72 } 73 74 void visit(ConstVisitor vis) const { 75 vis.accept(this); 76 } 77 } 78 79 enum DefinitionEnum { 80 O, 81 F, 82 T, 83 } 84 85 class Definition : Node { 86 DefinitionEnum ruleSelection; 87 FragmentDefinition frag; 88 TypeSystemDefinition type; 89 OperationDefinition op; 90 91 this(DefinitionEnum ruleSelection, OperationDefinition op) { 92 this.ruleSelection = ruleSelection; 93 this.op = op; 94 } 95 96 this(DefinitionEnum ruleSelection, FragmentDefinition frag) { 97 this.ruleSelection = ruleSelection; 98 this.frag = frag; 99 } 100 101 this(DefinitionEnum ruleSelection, TypeSystemDefinition type) { 102 this.ruleSelection = ruleSelection; 103 this.type = type; 104 } 105 106 void visit(Visitor vis) { 107 vis.accept(this); 108 } 109 110 void visit(Visitor vis) const { 111 vis.accept(this); 112 } 113 114 void visit(ConstVisitor vis) { 115 vis.accept(this); 116 } 117 118 void visit(ConstVisitor vis) const { 119 vis.accept(this); 120 } 121 } 122 123 enum OperationDefinitionEnum { 124 SelSet, 125 OT_N_VD, 126 OT_N_V, 127 OT_N_D, 128 OT_N, 129 OT_VD, 130 OT_V, 131 OT_D, 132 OT, 133 } 134 135 class OperationDefinition : Node { 136 OperationDefinitionEnum ruleSelection; 137 VariableDefinitions vd; 138 OperationType ot; 139 Directives d; 140 SelectionSet ss; 141 Token name; 142 143 this(OperationDefinitionEnum ruleSelection, SelectionSet ss) { 144 this.ruleSelection = ruleSelection; 145 this.ss = ss; 146 } 147 148 this(OperationDefinitionEnum ruleSelection, OperationType ot, Token name, VariableDefinitions vd, Directives d, SelectionSet ss) { 149 this.ruleSelection = ruleSelection; 150 this.ot = ot; 151 this.name = name; 152 this.vd = vd; 153 this.d = d; 154 this.ss = ss; 155 } 156 157 this(OperationDefinitionEnum ruleSelection, OperationType ot, Token name, VariableDefinitions vd, SelectionSet ss) { 158 this.ruleSelection = ruleSelection; 159 this.ot = ot; 160 this.name = name; 161 this.vd = vd; 162 this.ss = ss; 163 } 164 165 this(OperationDefinitionEnum ruleSelection, OperationType ot, Token name, Directives d, SelectionSet ss) { 166 this.ruleSelection = ruleSelection; 167 this.ot = ot; 168 this.name = name; 169 this.d = d; 170 this.ss = ss; 171 } 172 173 this(OperationDefinitionEnum ruleSelection, OperationType ot, Token name, SelectionSet ss) { 174 this.ruleSelection = ruleSelection; 175 this.ot = ot; 176 this.name = name; 177 this.ss = ss; 178 } 179 180 this(OperationDefinitionEnum ruleSelection, OperationType ot, VariableDefinitions vd, Directives d, SelectionSet ss) { 181 this.ruleSelection = ruleSelection; 182 this.ot = ot; 183 this.vd = vd; 184 this.d = d; 185 this.ss = ss; 186 } 187 188 this(OperationDefinitionEnum ruleSelection, OperationType ot, VariableDefinitions vd, SelectionSet ss) { 189 this.ruleSelection = ruleSelection; 190 this.ot = ot; 191 this.vd = vd; 192 this.ss = ss; 193 } 194 195 this(OperationDefinitionEnum ruleSelection, OperationType ot, Directives d, SelectionSet ss) { 196 this.ruleSelection = ruleSelection; 197 this.ot = ot; 198 this.d = d; 199 this.ss = ss; 200 } 201 202 this(OperationDefinitionEnum ruleSelection, OperationType ot, SelectionSet ss) { 203 this.ruleSelection = ruleSelection; 204 this.ot = ot; 205 this.ss = ss; 206 } 207 208 void visit(Visitor vis) { 209 vis.accept(this); 210 } 211 212 void visit(Visitor vis) const { 213 vis.accept(this); 214 } 215 216 void visit(ConstVisitor vis) { 217 vis.accept(this); 218 } 219 220 void visit(ConstVisitor vis) const { 221 vis.accept(this); 222 } 223 } 224 225 enum SelectionSetEnum { 226 SS, 227 } 228 229 class SelectionSet : Node { 230 SelectionSetEnum ruleSelection; 231 Selections sel; 232 233 this(SelectionSetEnum ruleSelection, Selections sel) { 234 this.ruleSelection = ruleSelection; 235 this.sel = sel; 236 } 237 238 void visit(Visitor vis) { 239 vis.accept(this); 240 } 241 242 void visit(Visitor vis) const { 243 vis.accept(this); 244 } 245 246 void visit(ConstVisitor vis) { 247 vis.accept(this); 248 } 249 250 void visit(ConstVisitor vis) const { 251 vis.accept(this); 252 } 253 } 254 255 enum OperationTypeEnum { 256 Query, 257 Mutation, 258 Sub, 259 } 260 261 class OperationType : Node { 262 OperationTypeEnum ruleSelection; 263 Token tok; 264 265 this(OperationTypeEnum ruleSelection, Token tok) { 266 this.ruleSelection = ruleSelection; 267 this.tok = tok; 268 } 269 270 void visit(Visitor vis) { 271 vis.accept(this); 272 } 273 274 void visit(Visitor vis) const { 275 vis.accept(this); 276 } 277 278 void visit(ConstVisitor vis) { 279 vis.accept(this); 280 } 281 282 void visit(ConstVisitor vis) const { 283 vis.accept(this); 284 } 285 } 286 287 enum SelectionsEnum { 288 Sel, 289 Sels, 290 Selsc, 291 } 292 293 class Selections : Node { 294 SelectionsEnum ruleSelection; 295 Selection sel; 296 Selections follow; 297 298 this(SelectionsEnum ruleSelection, Selection sel) { 299 this.ruleSelection = ruleSelection; 300 this.sel = sel; 301 } 302 303 this(SelectionsEnum ruleSelection, Selection sel, Selections follow) { 304 this.ruleSelection = ruleSelection; 305 this.sel = sel; 306 this.follow = follow; 307 } 308 309 void visit(Visitor vis) { 310 vis.accept(this); 311 } 312 313 void visit(Visitor vis) const { 314 vis.accept(this); 315 } 316 317 void visit(ConstVisitor vis) { 318 vis.accept(this); 319 } 320 321 void visit(ConstVisitor vis) const { 322 vis.accept(this); 323 } 324 } 325 326 enum SelectionEnum { 327 Field, 328 Spread, 329 IFrag, 330 } 331 332 class Selection : Node { 333 SelectionEnum ruleSelection; 334 FragmentSpread frag; 335 Field field; 336 InlineFragment ifrag; 337 338 this(SelectionEnum ruleSelection, Field field) { 339 this.ruleSelection = ruleSelection; 340 this.field = field; 341 } 342 343 this(SelectionEnum ruleSelection, FragmentSpread frag) { 344 this.ruleSelection = ruleSelection; 345 this.frag = frag; 346 } 347 348 this(SelectionEnum ruleSelection, InlineFragment ifrag) { 349 this.ruleSelection = ruleSelection; 350 this.ifrag = ifrag; 351 } 352 353 void visit(Visitor vis) { 354 vis.accept(this); 355 } 356 357 void visit(Visitor vis) const { 358 vis.accept(this); 359 } 360 361 void visit(ConstVisitor vis) { 362 vis.accept(this); 363 } 364 365 void visit(ConstVisitor vis) const { 366 vis.accept(this); 367 } 368 } 369 370 enum FragmentSpreadEnum { 371 FD, 372 F, 373 } 374 375 class FragmentSpread : Node { 376 FragmentSpreadEnum ruleSelection; 377 Directives dirs; 378 Token name; 379 380 this(FragmentSpreadEnum ruleSelection, Token name, Directives dirs) { 381 this.ruleSelection = ruleSelection; 382 this.name = name; 383 this.dirs = dirs; 384 } 385 386 this(FragmentSpreadEnum ruleSelection, Token name) { 387 this.ruleSelection = ruleSelection; 388 this.name = name; 389 } 390 391 void visit(Visitor vis) { 392 vis.accept(this); 393 } 394 395 void visit(Visitor vis) const { 396 vis.accept(this); 397 } 398 399 void visit(ConstVisitor vis) { 400 vis.accept(this); 401 } 402 403 void visit(ConstVisitor vis) const { 404 vis.accept(this); 405 } 406 } 407 408 enum InlineFragmentEnum { 409 TDS, 410 TS, 411 DS, 412 S, 413 } 414 415 class InlineFragment : Node { 416 InlineFragmentEnum ruleSelection; 417 Token tc; 418 Directives dirs; 419 SelectionSet ss; 420 421 this(InlineFragmentEnum ruleSelection, Token tc, Directives dirs, SelectionSet ss) { 422 this.ruleSelection = ruleSelection; 423 this.tc = tc; 424 this.dirs = dirs; 425 this.ss = ss; 426 } 427 428 this(InlineFragmentEnum ruleSelection, Token tc, SelectionSet ss) { 429 this.ruleSelection = ruleSelection; 430 this.tc = tc; 431 this.ss = ss; 432 } 433 434 this(InlineFragmentEnum ruleSelection, Directives dirs, SelectionSet ss) { 435 this.ruleSelection = ruleSelection; 436 this.dirs = dirs; 437 this.ss = ss; 438 } 439 440 this(InlineFragmentEnum ruleSelection, SelectionSet ss) { 441 this.ruleSelection = ruleSelection; 442 this.ss = ss; 443 } 444 445 void visit(Visitor vis) { 446 vis.accept(this); 447 } 448 449 void visit(Visitor vis) const { 450 vis.accept(this); 451 } 452 453 void visit(ConstVisitor vis) { 454 vis.accept(this); 455 } 456 457 void visit(ConstVisitor vis) const { 458 vis.accept(this); 459 } 460 } 461 462 enum FieldEnum { 463 FADS, 464 FAS, 465 FAD, 466 FDS, 467 FS, 468 FD, 469 FA, 470 F, 471 } 472 473 class Field : Node { 474 FieldEnum ruleSelection; 475 SelectionSet ss; 476 Arguments args; 477 Directives dirs; 478 FieldName name; 479 480 this(FieldEnum ruleSelection, FieldName name, Arguments args, Directives dirs, SelectionSet ss) { 481 this.ruleSelection = ruleSelection; 482 this.name = name; 483 this.args = args; 484 this.dirs = dirs; 485 this.ss = ss; 486 } 487 488 this(FieldEnum ruleSelection, FieldName name, Arguments args, SelectionSet ss) { 489 this.ruleSelection = ruleSelection; 490 this.name = name; 491 this.args = args; 492 this.ss = ss; 493 } 494 495 this(FieldEnum ruleSelection, FieldName name, Arguments args, Directives dirs) { 496 this.ruleSelection = ruleSelection; 497 this.name = name; 498 this.args = args; 499 this.dirs = dirs; 500 } 501 502 this(FieldEnum ruleSelection, FieldName name, Directives dirs, SelectionSet ss) { 503 this.ruleSelection = ruleSelection; 504 this.name = name; 505 this.dirs = dirs; 506 this.ss = ss; 507 } 508 509 this(FieldEnum ruleSelection, FieldName name, SelectionSet ss) { 510 this.ruleSelection = ruleSelection; 511 this.name = name; 512 this.ss = ss; 513 } 514 515 this(FieldEnum ruleSelection, FieldName name, Directives dirs) { 516 this.ruleSelection = ruleSelection; 517 this.name = name; 518 this.dirs = dirs; 519 } 520 521 this(FieldEnum ruleSelection, FieldName name, Arguments args) { 522 this.ruleSelection = ruleSelection; 523 this.name = name; 524 this.args = args; 525 } 526 527 this(FieldEnum ruleSelection, FieldName name) { 528 this.ruleSelection = ruleSelection; 529 this.name = name; 530 } 531 532 void visit(Visitor vis) { 533 vis.accept(this); 534 } 535 536 void visit(Visitor vis) const { 537 vis.accept(this); 538 } 539 540 void visit(ConstVisitor vis) { 541 vis.accept(this); 542 } 543 544 void visit(ConstVisitor vis) const { 545 vis.accept(this); 546 } 547 } 548 549 enum FieldNameEnum { 550 A, 551 N, 552 } 553 554 class FieldName : Node { 555 FieldNameEnum ruleSelection; 556 Token aka; 557 Token name; 558 559 this(FieldNameEnum ruleSelection, Token name, Token aka) { 560 this.ruleSelection = ruleSelection; 561 this.name = name; 562 this.aka = aka; 563 } 564 565 this(FieldNameEnum ruleSelection, Token name) { 566 this.ruleSelection = ruleSelection; 567 this.name = name; 568 } 569 570 void visit(Visitor vis) { 571 vis.accept(this); 572 } 573 574 void visit(Visitor vis) const { 575 vis.accept(this); 576 } 577 578 void visit(ConstVisitor vis) { 579 vis.accept(this); 580 } 581 582 void visit(ConstVisitor vis) const { 583 vis.accept(this); 584 } 585 } 586 587 enum ArgumentsEnum { 588 List, 589 Empty, 590 } 591 592 class Arguments : Node { 593 ArgumentsEnum ruleSelection; 594 ArgumentList arg; 595 596 this(ArgumentsEnum ruleSelection, ArgumentList arg) { 597 this.ruleSelection = ruleSelection; 598 this.arg = arg; 599 } 600 601 this(ArgumentsEnum ruleSelection) { 602 this.ruleSelection = ruleSelection; 603 } 604 605 void visit(Visitor vis) { 606 vis.accept(this); 607 } 608 609 void visit(Visitor vis) const { 610 vis.accept(this); 611 } 612 613 void visit(ConstVisitor vis) { 614 vis.accept(this); 615 } 616 617 void visit(ConstVisitor vis) const { 618 vis.accept(this); 619 } 620 } 621 622 enum ArgumentListEnum { 623 A, 624 ACS, 625 AS, 626 } 627 628 class ArgumentList : Node { 629 ArgumentListEnum ruleSelection; 630 Argument arg; 631 ArgumentList follow; 632 633 this(ArgumentListEnum ruleSelection, Argument arg) { 634 this.ruleSelection = ruleSelection; 635 this.arg = arg; 636 } 637 638 this(ArgumentListEnum ruleSelection, Argument arg, ArgumentList follow) { 639 this.ruleSelection = ruleSelection; 640 this.arg = arg; 641 this.follow = follow; 642 } 643 644 void visit(Visitor vis) { 645 vis.accept(this); 646 } 647 648 void visit(Visitor vis) const { 649 vis.accept(this); 650 } 651 652 void visit(ConstVisitor vis) { 653 vis.accept(this); 654 } 655 656 void visit(ConstVisitor vis) const { 657 vis.accept(this); 658 } 659 } 660 661 enum ArgumentEnum { 662 Name, 663 } 664 665 class Argument : Node { 666 ArgumentEnum ruleSelection; 667 ValueOrVariable vv; 668 Token name; 669 670 this(ArgumentEnum ruleSelection, Token name, ValueOrVariable vv) { 671 this.ruleSelection = ruleSelection; 672 this.name = name; 673 this.vv = vv; 674 } 675 676 void visit(Visitor vis) { 677 vis.accept(this); 678 } 679 680 void visit(Visitor vis) const { 681 vis.accept(this); 682 } 683 684 void visit(ConstVisitor vis) { 685 vis.accept(this); 686 } 687 688 void visit(ConstVisitor vis) const { 689 vis.accept(this); 690 } 691 } 692 693 enum FragmentDefinitionEnum { 694 FTDS, 695 FTS, 696 } 697 698 class FragmentDefinition : Node { 699 FragmentDefinitionEnum ruleSelection; 700 SelectionSet ss; 701 Token tc; 702 Directives dirs; 703 Token name; 704 705 this(FragmentDefinitionEnum ruleSelection, Token name, Token tc, Directives dirs, SelectionSet ss) { 706 this.ruleSelection = ruleSelection; 707 this.name = name; 708 this.tc = tc; 709 this.dirs = dirs; 710 this.ss = ss; 711 } 712 713 this(FragmentDefinitionEnum ruleSelection, Token name, Token tc, SelectionSet ss) { 714 this.ruleSelection = ruleSelection; 715 this.name = name; 716 this.tc = tc; 717 this.ss = ss; 718 } 719 720 void visit(Visitor vis) { 721 vis.accept(this); 722 } 723 724 void visit(Visitor vis) const { 725 vis.accept(this); 726 } 727 728 void visit(ConstVisitor vis) { 729 vis.accept(this); 730 } 731 732 void visit(ConstVisitor vis) const { 733 vis.accept(this); 734 } 735 } 736 737 enum DirectivesEnum { 738 Dir, 739 Dirs, 740 } 741 742 class Directives : Node { 743 DirectivesEnum ruleSelection; 744 Directive dir; 745 Directives follow; 746 747 this(DirectivesEnum ruleSelection, Directive dir) { 748 this.ruleSelection = ruleSelection; 749 this.dir = dir; 750 } 751 752 this(DirectivesEnum ruleSelection, Directive dir, Directives follow) { 753 this.ruleSelection = ruleSelection; 754 this.dir = dir; 755 this.follow = follow; 756 } 757 758 void visit(Visitor vis) { 759 vis.accept(this); 760 } 761 762 void visit(Visitor vis) const { 763 vis.accept(this); 764 } 765 766 void visit(ConstVisitor vis) { 767 vis.accept(this); 768 } 769 770 void visit(ConstVisitor vis) const { 771 vis.accept(this); 772 } 773 } 774 775 enum DirectiveEnum { 776 NArg, 777 N, 778 } 779 780 class Directive : Node { 781 DirectiveEnum ruleSelection; 782 Arguments arg; 783 Token name; 784 785 this(DirectiveEnum ruleSelection, Token name, Arguments arg) { 786 this.ruleSelection = ruleSelection; 787 this.name = name; 788 this.arg = arg; 789 } 790 791 this(DirectiveEnum ruleSelection, Token name) { 792 this.ruleSelection = ruleSelection; 793 this.name = name; 794 } 795 796 void visit(Visitor vis) { 797 vis.accept(this); 798 } 799 800 void visit(Visitor vis) const { 801 vis.accept(this); 802 } 803 804 void visit(ConstVisitor vis) { 805 vis.accept(this); 806 } 807 808 void visit(ConstVisitor vis) const { 809 vis.accept(this); 810 } 811 } 812 813 enum VariableDefinitionsEnum { 814 Empty, 815 Vars, 816 } 817 818 class VariableDefinitions : Node { 819 VariableDefinitionsEnum ruleSelection; 820 VariableDefinitionList vars; 821 822 this(VariableDefinitionsEnum ruleSelection) { 823 this.ruleSelection = ruleSelection; 824 } 825 826 this(VariableDefinitionsEnum ruleSelection, VariableDefinitionList vars) { 827 this.ruleSelection = ruleSelection; 828 this.vars = vars; 829 } 830 831 void visit(Visitor vis) { 832 vis.accept(this); 833 } 834 835 void visit(Visitor vis) const { 836 vis.accept(this); 837 } 838 839 void visit(ConstVisitor vis) { 840 vis.accept(this); 841 } 842 843 void visit(ConstVisitor vis) const { 844 vis.accept(this); 845 } 846 } 847 848 enum VariableDefinitionListEnum { 849 V, 850 VCF, 851 VF, 852 } 853 854 class VariableDefinitionList : Node { 855 VariableDefinitionListEnum ruleSelection; 856 VariableDefinitionList follow; 857 VariableDefinition var; 858 859 this(VariableDefinitionListEnum ruleSelection, VariableDefinition var) { 860 this.ruleSelection = ruleSelection; 861 this.var = var; 862 } 863 864 this(VariableDefinitionListEnum ruleSelection, VariableDefinition var, VariableDefinitionList follow) { 865 this.ruleSelection = ruleSelection; 866 this.var = var; 867 this.follow = follow; 868 } 869 870 void visit(Visitor vis) { 871 vis.accept(this); 872 } 873 874 void visit(Visitor vis) const { 875 vis.accept(this); 876 } 877 878 void visit(ConstVisitor vis) { 879 vis.accept(this); 880 } 881 882 void visit(ConstVisitor vis) const { 883 vis.accept(this); 884 } 885 } 886 887 enum VariableDefinitionEnum { 888 VarD, 889 Var, 890 } 891 892 class VariableDefinition : Node { 893 VariableDefinitionEnum ruleSelection; 894 Type type; 895 DefaultValue dvalue; 896 Variable var; 897 898 this(VariableDefinitionEnum ruleSelection, Variable var, Type type, DefaultValue dvalue) { 899 this.ruleSelection = ruleSelection; 900 this.var = var; 901 this.type = type; 902 this.dvalue = dvalue; 903 } 904 905 this(VariableDefinitionEnum ruleSelection, Variable var, Type type) { 906 this.ruleSelection = ruleSelection; 907 this.var = var; 908 this.type = type; 909 } 910 911 void visit(Visitor vis) { 912 vis.accept(this); 913 } 914 915 void visit(Visitor vis) const { 916 vis.accept(this); 917 } 918 919 void visit(ConstVisitor vis) { 920 vis.accept(this); 921 } 922 923 void visit(ConstVisitor vis) const { 924 vis.accept(this); 925 } 926 } 927 928 enum VariableEnum { 929 Var, 930 } 931 932 class Variable : Node { 933 VariableEnum ruleSelection; 934 Token name; 935 936 this(VariableEnum ruleSelection, Token name) { 937 this.ruleSelection = ruleSelection; 938 this.name = name; 939 } 940 941 void visit(Visitor vis) { 942 vis.accept(this); 943 } 944 945 void visit(Visitor vis) const { 946 vis.accept(this); 947 } 948 949 void visit(ConstVisitor vis) { 950 vis.accept(this); 951 } 952 953 void visit(ConstVisitor vis) const { 954 vis.accept(this); 955 } 956 } 957 958 enum DefaultValueEnum { 959 DV, 960 } 961 962 class DefaultValue : Node { 963 DefaultValueEnum ruleSelection; 964 Value value; 965 966 this(DefaultValueEnum ruleSelection, Value value) { 967 this.ruleSelection = ruleSelection; 968 this.value = value; 969 } 970 971 void visit(Visitor vis) { 972 vis.accept(this); 973 } 974 975 void visit(Visitor vis) const { 976 vis.accept(this); 977 } 978 979 void visit(ConstVisitor vis) { 980 vis.accept(this); 981 } 982 983 void visit(ConstVisitor vis) const { 984 vis.accept(this); 985 } 986 } 987 988 enum ValueOrVariableEnum { 989 Val, 990 Var, 991 } 992 993 class ValueOrVariable : Node { 994 ValueOrVariableEnum ruleSelection; 995 Value val; 996 Variable var; 997 998 this(ValueOrVariableEnum ruleSelection, Value val) { 999 this.ruleSelection = ruleSelection; 1000 this.val = val; 1001 } 1002 1003 this(ValueOrVariableEnum ruleSelection, Variable var) { 1004 this.ruleSelection = ruleSelection; 1005 this.var = var; 1006 } 1007 1008 void visit(Visitor vis) { 1009 vis.accept(this); 1010 } 1011 1012 void visit(Visitor vis) const { 1013 vis.accept(this); 1014 } 1015 1016 void visit(ConstVisitor vis) { 1017 vis.accept(this); 1018 } 1019 1020 void visit(ConstVisitor vis) const { 1021 vis.accept(this); 1022 } 1023 } 1024 1025 enum ValueEnum { 1026 STR, 1027 INT, 1028 FLOAT, 1029 T, 1030 F, 1031 ARR, 1032 O, 1033 E, 1034 } 1035 1036 class Value : Node { 1037 ValueEnum ruleSelection; 1038 Token tok; 1039 Array arr; 1040 ObjectType obj; 1041 1042 this(ValueEnum ruleSelection, Token tok) { 1043 this.ruleSelection = ruleSelection; 1044 this.tok = tok; 1045 } 1046 1047 this(ValueEnum ruleSelection, Array arr) { 1048 this.ruleSelection = ruleSelection; 1049 this.arr = arr; 1050 } 1051 1052 this(ValueEnum ruleSelection, ObjectType obj) { 1053 this.ruleSelection = ruleSelection; 1054 this.obj = obj; 1055 } 1056 1057 void visit(Visitor vis) { 1058 vis.accept(this); 1059 } 1060 1061 void visit(Visitor vis) const { 1062 vis.accept(this); 1063 } 1064 1065 void visit(ConstVisitor vis) { 1066 vis.accept(this); 1067 } 1068 1069 void visit(ConstVisitor vis) const { 1070 vis.accept(this); 1071 } 1072 } 1073 1074 enum TypeEnum { 1075 TN, 1076 LN, 1077 T, 1078 L, 1079 } 1080 1081 class Type : Node { 1082 TypeEnum ruleSelection; 1083 ListType list; 1084 Token tname; 1085 1086 this(TypeEnum ruleSelection, Token tname) { 1087 this.ruleSelection = ruleSelection; 1088 this.tname = tname; 1089 } 1090 1091 this(TypeEnum ruleSelection, ListType list) { 1092 this.ruleSelection = ruleSelection; 1093 this.list = list; 1094 } 1095 1096 void visit(Visitor vis) { 1097 vis.accept(this); 1098 } 1099 1100 void visit(Visitor vis) const { 1101 vis.accept(this); 1102 } 1103 1104 void visit(ConstVisitor vis) { 1105 vis.accept(this); 1106 } 1107 1108 void visit(ConstVisitor vis) const { 1109 vis.accept(this); 1110 } 1111 } 1112 1113 enum ListTypeEnum { 1114 T, 1115 } 1116 1117 class ListType : Node { 1118 ListTypeEnum ruleSelection; 1119 Type type; 1120 1121 this(ListTypeEnum ruleSelection, Type type) { 1122 this.ruleSelection = ruleSelection; 1123 this.type = type; 1124 } 1125 1126 void visit(Visitor vis) { 1127 vis.accept(this); 1128 } 1129 1130 void visit(Visitor vis) const { 1131 vis.accept(this); 1132 } 1133 1134 void visit(ConstVisitor vis) { 1135 vis.accept(this); 1136 } 1137 1138 void visit(ConstVisitor vis) const { 1139 vis.accept(this); 1140 } 1141 } 1142 1143 enum ValuesEnum { 1144 Val, 1145 Vals, 1146 } 1147 1148 class Values : Node { 1149 ValuesEnum ruleSelection; 1150 Value val; 1151 Values follow; 1152 1153 this(ValuesEnum ruleSelection, Value val) { 1154 this.ruleSelection = ruleSelection; 1155 this.val = val; 1156 } 1157 1158 this(ValuesEnum ruleSelection, Value val, Values follow) { 1159 this.ruleSelection = ruleSelection; 1160 this.val = val; 1161 this.follow = follow; 1162 } 1163 1164 void visit(Visitor vis) { 1165 vis.accept(this); 1166 } 1167 1168 void visit(Visitor vis) const { 1169 vis.accept(this); 1170 } 1171 1172 void visit(ConstVisitor vis) { 1173 vis.accept(this); 1174 } 1175 1176 void visit(ConstVisitor vis) const { 1177 vis.accept(this); 1178 } 1179 } 1180 1181 enum ArrayEnum { 1182 Empty, 1183 Value, 1184 } 1185 1186 class Array : Node { 1187 ArrayEnum ruleSelection; 1188 Values vals; 1189 1190 this(ArrayEnum ruleSelection) { 1191 this.ruleSelection = ruleSelection; 1192 } 1193 1194 this(ArrayEnum ruleSelection, Values vals) { 1195 this.ruleSelection = ruleSelection; 1196 this.vals = vals; 1197 } 1198 1199 void visit(Visitor vis) { 1200 vis.accept(this); 1201 } 1202 1203 void visit(Visitor vis) const { 1204 vis.accept(this); 1205 } 1206 1207 void visit(ConstVisitor vis) { 1208 vis.accept(this); 1209 } 1210 1211 void visit(ConstVisitor vis) const { 1212 vis.accept(this); 1213 } 1214 } 1215 1216 enum ObjectValuesEnum { 1217 V, 1218 Vsc, 1219 Vs, 1220 } 1221 1222 class ObjectValues : Node { 1223 ObjectValuesEnum ruleSelection; 1224 Value val; 1225 ObjectValues follow; 1226 Token name; 1227 1228 this(ObjectValuesEnum ruleSelection, Token name, Value val) { 1229 this.ruleSelection = ruleSelection; 1230 this.name = name; 1231 this.val = val; 1232 } 1233 1234 this(ObjectValuesEnum ruleSelection, Token name, Value val, ObjectValues follow) { 1235 this.ruleSelection = ruleSelection; 1236 this.name = name; 1237 this.val = val; 1238 this.follow = follow; 1239 } 1240 1241 void visit(Visitor vis) { 1242 vis.accept(this); 1243 } 1244 1245 void visit(Visitor vis) const { 1246 vis.accept(this); 1247 } 1248 1249 void visit(ConstVisitor vis) { 1250 vis.accept(this); 1251 } 1252 1253 void visit(ConstVisitor vis) const { 1254 vis.accept(this); 1255 } 1256 } 1257 1258 enum ObjectTypeEnum { 1259 Var, 1260 } 1261 1262 class ObjectType : Node { 1263 ObjectTypeEnum ruleSelection; 1264 ObjectValues vals; 1265 1266 this(ObjectTypeEnum ruleSelection, ObjectValues vals) { 1267 this.ruleSelection = ruleSelection; 1268 this.vals = vals; 1269 } 1270 1271 void visit(Visitor vis) { 1272 vis.accept(this); 1273 } 1274 1275 void visit(Visitor vis) const { 1276 vis.accept(this); 1277 } 1278 1279 void visit(ConstVisitor vis) { 1280 vis.accept(this); 1281 } 1282 1283 void visit(ConstVisitor vis) const { 1284 vis.accept(this); 1285 } 1286 } 1287 1288 enum TypeSystemDefinitionEnum { 1289 S, 1290 T, 1291 TE, 1292 D, 1293 } 1294 1295 class TypeSystemDefinition : Node { 1296 TypeSystemDefinitionEnum ruleSelection; 1297 DirectiveDefinition dd; 1298 TypeExtensionDefinition ted; 1299 SchemaDefinition sch; 1300 TypeDefinition td; 1301 1302 this(TypeSystemDefinitionEnum ruleSelection, SchemaDefinition sch) { 1303 this.ruleSelection = ruleSelection; 1304 this.sch = sch; 1305 } 1306 1307 this(TypeSystemDefinitionEnum ruleSelection, TypeDefinition td) { 1308 this.ruleSelection = ruleSelection; 1309 this.td = td; 1310 } 1311 1312 this(TypeSystemDefinitionEnum ruleSelection, TypeExtensionDefinition ted) { 1313 this.ruleSelection = ruleSelection; 1314 this.ted = ted; 1315 } 1316 1317 this(TypeSystemDefinitionEnum ruleSelection, DirectiveDefinition dd) { 1318 this.ruleSelection = ruleSelection; 1319 this.dd = dd; 1320 } 1321 1322 void visit(Visitor vis) { 1323 vis.accept(this); 1324 } 1325 1326 void visit(Visitor vis) const { 1327 vis.accept(this); 1328 } 1329 1330 void visit(ConstVisitor vis) { 1331 vis.accept(this); 1332 } 1333 1334 void visit(ConstVisitor vis) const { 1335 vis.accept(this); 1336 } 1337 } 1338 1339 enum TypeDefinitionEnum { 1340 S, 1341 O, 1342 I, 1343 U, 1344 E, 1345 IO, 1346 } 1347 1348 class TypeDefinition : Node { 1349 TypeDefinitionEnum ruleSelection; 1350 ObjectTypeDefinition otd; 1351 ScalarTypeDefinition std; 1352 UnionTypeDefinition utd; 1353 InterfaceTypeDefinition itd; 1354 EnumTypeDefinition etd; 1355 InputObjectTypeDefinition iod; 1356 1357 this(TypeDefinitionEnum ruleSelection, ScalarTypeDefinition std) { 1358 this.ruleSelection = ruleSelection; 1359 this.std = std; 1360 } 1361 1362 this(TypeDefinitionEnum ruleSelection, ObjectTypeDefinition otd) { 1363 this.ruleSelection = ruleSelection; 1364 this.otd = otd; 1365 } 1366 1367 this(TypeDefinitionEnum ruleSelection, InterfaceTypeDefinition itd) { 1368 this.ruleSelection = ruleSelection; 1369 this.itd = itd; 1370 } 1371 1372 this(TypeDefinitionEnum ruleSelection, UnionTypeDefinition utd) { 1373 this.ruleSelection = ruleSelection; 1374 this.utd = utd; 1375 } 1376 1377 this(TypeDefinitionEnum ruleSelection, EnumTypeDefinition etd) { 1378 this.ruleSelection = ruleSelection; 1379 this.etd = etd; 1380 } 1381 1382 this(TypeDefinitionEnum ruleSelection, InputObjectTypeDefinition iod) { 1383 this.ruleSelection = ruleSelection; 1384 this.iod = iod; 1385 } 1386 1387 void visit(Visitor vis) { 1388 vis.accept(this); 1389 } 1390 1391 void visit(Visitor vis) const { 1392 vis.accept(this); 1393 } 1394 1395 void visit(ConstVisitor vis) { 1396 vis.accept(this); 1397 } 1398 1399 void visit(ConstVisitor vis) const { 1400 vis.accept(this); 1401 } 1402 } 1403 1404 enum SchemaDefinitionEnum { 1405 DO, 1406 O, 1407 } 1408 1409 class SchemaDefinition : Node { 1410 SchemaDefinitionEnum ruleSelection; 1411 Directives dir; 1412 OperationTypeDefinitions otds; 1413 1414 this(SchemaDefinitionEnum ruleSelection, Directives dir, OperationTypeDefinitions otds) { 1415 this.ruleSelection = ruleSelection; 1416 this.dir = dir; 1417 this.otds = otds; 1418 } 1419 1420 this(SchemaDefinitionEnum ruleSelection, OperationTypeDefinitions otds) { 1421 this.ruleSelection = ruleSelection; 1422 this.otds = otds; 1423 } 1424 1425 void visit(Visitor vis) { 1426 vis.accept(this); 1427 } 1428 1429 void visit(Visitor vis) const { 1430 vis.accept(this); 1431 } 1432 1433 void visit(ConstVisitor vis) { 1434 vis.accept(this); 1435 } 1436 1437 void visit(ConstVisitor vis) const { 1438 vis.accept(this); 1439 } 1440 } 1441 1442 enum OperationTypeDefinitionsEnum { 1443 O, 1444 OCS, 1445 OS, 1446 } 1447 1448 class OperationTypeDefinitions : Node { 1449 OperationTypeDefinitionsEnum ruleSelection; 1450 OperationTypeDefinition otd; 1451 OperationTypeDefinitions follow; 1452 1453 this(OperationTypeDefinitionsEnum ruleSelection, OperationTypeDefinition otd) { 1454 this.ruleSelection = ruleSelection; 1455 this.otd = otd; 1456 } 1457 1458 this(OperationTypeDefinitionsEnum ruleSelection, OperationTypeDefinition otd, OperationTypeDefinitions follow) { 1459 this.ruleSelection = ruleSelection; 1460 this.otd = otd; 1461 this.follow = follow; 1462 } 1463 1464 void visit(Visitor vis) { 1465 vis.accept(this); 1466 } 1467 1468 void visit(Visitor vis) const { 1469 vis.accept(this); 1470 } 1471 1472 void visit(ConstVisitor vis) { 1473 vis.accept(this); 1474 } 1475 1476 void visit(ConstVisitor vis) const { 1477 vis.accept(this); 1478 } 1479 } 1480 1481 enum OperationTypeDefinitionEnum { 1482 O, 1483 } 1484 1485 class OperationTypeDefinition : Node { 1486 OperationTypeDefinitionEnum ruleSelection; 1487 OperationType ot; 1488 Token nt; 1489 1490 this(OperationTypeDefinitionEnum ruleSelection, OperationType ot, Token nt) { 1491 this.ruleSelection = ruleSelection; 1492 this.ot = ot; 1493 this.nt = nt; 1494 } 1495 1496 void visit(Visitor vis) { 1497 vis.accept(this); 1498 } 1499 1500 void visit(Visitor vis) const { 1501 vis.accept(this); 1502 } 1503 1504 void visit(ConstVisitor vis) { 1505 vis.accept(this); 1506 } 1507 1508 void visit(ConstVisitor vis) const { 1509 vis.accept(this); 1510 } 1511 } 1512 1513 enum ScalarTypeDefinitionEnum { 1514 D, 1515 S, 1516 } 1517 1518 class ScalarTypeDefinition : Node { 1519 ScalarTypeDefinitionEnum ruleSelection; 1520 Directives dir; 1521 Token name; 1522 1523 this(ScalarTypeDefinitionEnum ruleSelection, Token name, Directives dir) { 1524 this.ruleSelection = ruleSelection; 1525 this.name = name; 1526 this.dir = dir; 1527 } 1528 1529 this(ScalarTypeDefinitionEnum ruleSelection, Token name) { 1530 this.ruleSelection = ruleSelection; 1531 this.name = name; 1532 } 1533 1534 void visit(Visitor vis) { 1535 vis.accept(this); 1536 } 1537 1538 void visit(Visitor vis) const { 1539 vis.accept(this); 1540 } 1541 1542 void visit(ConstVisitor vis) { 1543 vis.accept(this); 1544 } 1545 1546 void visit(ConstVisitor vis) const { 1547 vis.accept(this); 1548 } 1549 } 1550 1551 enum ObjectTypeDefinitionEnum { 1552 ID, 1553 I, 1554 D, 1555 F, 1556 } 1557 1558 class ObjectTypeDefinition : Node { 1559 ObjectTypeDefinitionEnum ruleSelection; 1560 Directives dir; 1561 ImplementsInterfaces ii; 1562 FieldDefinitions fds; 1563 Token name; 1564 1565 this(ObjectTypeDefinitionEnum ruleSelection, Token name, ImplementsInterfaces ii, Directives dir, FieldDefinitions fds) { 1566 this.ruleSelection = ruleSelection; 1567 this.name = name; 1568 this.ii = ii; 1569 this.dir = dir; 1570 this.fds = fds; 1571 } 1572 1573 this(ObjectTypeDefinitionEnum ruleSelection, Token name, ImplementsInterfaces ii, FieldDefinitions fds) { 1574 this.ruleSelection = ruleSelection; 1575 this.name = name; 1576 this.ii = ii; 1577 this.fds = fds; 1578 } 1579 1580 this(ObjectTypeDefinitionEnum ruleSelection, Token name, Directives dir, FieldDefinitions fds) { 1581 this.ruleSelection = ruleSelection; 1582 this.name = name; 1583 this.dir = dir; 1584 this.fds = fds; 1585 } 1586 1587 this(ObjectTypeDefinitionEnum ruleSelection, Token name, FieldDefinitions fds) { 1588 this.ruleSelection = ruleSelection; 1589 this.name = name; 1590 this.fds = fds; 1591 } 1592 1593 void visit(Visitor vis) { 1594 vis.accept(this); 1595 } 1596 1597 void visit(Visitor vis) const { 1598 vis.accept(this); 1599 } 1600 1601 void visit(ConstVisitor vis) { 1602 vis.accept(this); 1603 } 1604 1605 void visit(ConstVisitor vis) const { 1606 vis.accept(this); 1607 } 1608 } 1609 1610 enum FieldDefinitionsEnum { 1611 F, 1612 FC, 1613 FNC, 1614 } 1615 1616 class FieldDefinitions : Node { 1617 FieldDefinitionsEnum ruleSelection; 1618 FieldDefinitions follow; 1619 FieldDefinition fd; 1620 1621 this(FieldDefinitionsEnum ruleSelection, FieldDefinition fd) { 1622 this.ruleSelection = ruleSelection; 1623 this.fd = fd; 1624 } 1625 1626 this(FieldDefinitionsEnum ruleSelection, FieldDefinition fd, FieldDefinitions follow) { 1627 this.ruleSelection = ruleSelection; 1628 this.fd = fd; 1629 this.follow = follow; 1630 } 1631 1632 void visit(Visitor vis) { 1633 vis.accept(this); 1634 } 1635 1636 void visit(Visitor vis) const { 1637 vis.accept(this); 1638 } 1639 1640 void visit(ConstVisitor vis) { 1641 vis.accept(this); 1642 } 1643 1644 void visit(ConstVisitor vis) const { 1645 vis.accept(this); 1646 } 1647 } 1648 1649 enum FieldDefinitionEnum { 1650 AD, 1651 A, 1652 D, 1653 T, 1654 } 1655 1656 class FieldDefinition : Node { 1657 FieldDefinitionEnum ruleSelection; 1658 ArgumentsDefinition arg; 1659 Type typ; 1660 Directives dir; 1661 Token name; 1662 1663 this(FieldDefinitionEnum ruleSelection, Token name, ArgumentsDefinition arg, Type typ, Directives dir) { 1664 this.ruleSelection = ruleSelection; 1665 this.name = name; 1666 this.arg = arg; 1667 this.typ = typ; 1668 this.dir = dir; 1669 } 1670 1671 this(FieldDefinitionEnum ruleSelection, Token name, ArgumentsDefinition arg, Type typ) { 1672 this.ruleSelection = ruleSelection; 1673 this.name = name; 1674 this.arg = arg; 1675 this.typ = typ; 1676 } 1677 1678 this(FieldDefinitionEnum ruleSelection, Token name, Type typ, Directives dir) { 1679 this.ruleSelection = ruleSelection; 1680 this.name = name; 1681 this.typ = typ; 1682 this.dir = dir; 1683 } 1684 1685 this(FieldDefinitionEnum ruleSelection, Token name, Type typ) { 1686 this.ruleSelection = ruleSelection; 1687 this.name = name; 1688 this.typ = typ; 1689 } 1690 1691 void visit(Visitor vis) { 1692 vis.accept(this); 1693 } 1694 1695 void visit(Visitor vis) const { 1696 vis.accept(this); 1697 } 1698 1699 void visit(ConstVisitor vis) { 1700 vis.accept(this); 1701 } 1702 1703 void visit(ConstVisitor vis) const { 1704 vis.accept(this); 1705 } 1706 } 1707 1708 enum ImplementsInterfacesEnum { 1709 N, 1710 } 1711 1712 class ImplementsInterfaces : Node { 1713 ImplementsInterfacesEnum ruleSelection; 1714 NamedTypes nts; 1715 1716 this(ImplementsInterfacesEnum ruleSelection, NamedTypes nts) { 1717 this.ruleSelection = ruleSelection; 1718 this.nts = nts; 1719 } 1720 1721 void visit(Visitor vis) { 1722 vis.accept(this); 1723 } 1724 1725 void visit(Visitor vis) const { 1726 vis.accept(this); 1727 } 1728 1729 void visit(ConstVisitor vis) { 1730 vis.accept(this); 1731 } 1732 1733 void visit(ConstVisitor vis) const { 1734 vis.accept(this); 1735 } 1736 } 1737 1738 enum NamedTypesEnum { 1739 N, 1740 NCS, 1741 NS, 1742 } 1743 1744 class NamedTypes : Node { 1745 NamedTypesEnum ruleSelection; 1746 NamedTypes follow; 1747 Token name; 1748 1749 this(NamedTypesEnum ruleSelection, Token name) { 1750 this.ruleSelection = ruleSelection; 1751 this.name = name; 1752 } 1753 1754 this(NamedTypesEnum ruleSelection, Token name, NamedTypes follow) { 1755 this.ruleSelection = ruleSelection; 1756 this.name = name; 1757 this.follow = follow; 1758 } 1759 1760 void visit(Visitor vis) { 1761 vis.accept(this); 1762 } 1763 1764 void visit(Visitor vis) const { 1765 vis.accept(this); 1766 } 1767 1768 void visit(ConstVisitor vis) { 1769 vis.accept(this); 1770 } 1771 1772 void visit(ConstVisitor vis) const { 1773 vis.accept(this); 1774 } 1775 } 1776 1777 enum ArgumentsDefinitionEnum { 1778 A, 1779 } 1780 1781 class ArgumentsDefinition : Node { 1782 ArgumentsDefinitionEnum ruleSelection; 1783 1784 this(ArgumentsDefinitionEnum ruleSelection) { 1785 this.ruleSelection = ruleSelection; 1786 } 1787 1788 void visit(Visitor vis) { 1789 vis.accept(this); 1790 } 1791 1792 void visit(Visitor vis) const { 1793 vis.accept(this); 1794 } 1795 1796 void visit(ConstVisitor vis) { 1797 vis.accept(this); 1798 } 1799 1800 void visit(ConstVisitor vis) const { 1801 vis.accept(this); 1802 } 1803 } 1804 1805 enum InputValueDefinitionsEnum { 1806 I, 1807 ICF, 1808 IF, 1809 } 1810 1811 class InputValueDefinitions : Node { 1812 InputValueDefinitionsEnum ruleSelection; 1813 InputValueDefinitions follow; 1814 InputValueDefinition iv; 1815 1816 this(InputValueDefinitionsEnum ruleSelection, InputValueDefinition iv) { 1817 this.ruleSelection = ruleSelection; 1818 this.iv = iv; 1819 } 1820 1821 this(InputValueDefinitionsEnum ruleSelection, InputValueDefinition iv, InputValueDefinitions follow) { 1822 this.ruleSelection = ruleSelection; 1823 this.iv = iv; 1824 this.follow = follow; 1825 } 1826 1827 void visit(Visitor vis) { 1828 vis.accept(this); 1829 } 1830 1831 void visit(Visitor vis) const { 1832 vis.accept(this); 1833 } 1834 1835 void visit(ConstVisitor vis) { 1836 vis.accept(this); 1837 } 1838 1839 void visit(ConstVisitor vis) const { 1840 vis.accept(this); 1841 } 1842 } 1843 1844 enum InputValueDefinitionEnum { 1845 TVD, 1846 TD, 1847 TV, 1848 T, 1849 } 1850 1851 class InputValueDefinition : Node { 1852 InputValueDefinitionEnum ruleSelection; 1853 Type type; 1854 DefaultValue df; 1855 Directives dirs; 1856 Token name; 1857 1858 this(InputValueDefinitionEnum ruleSelection, Token name, Type type, DefaultValue df, Directives dirs) { 1859 this.ruleSelection = ruleSelection; 1860 this.name = name; 1861 this.type = type; 1862 this.df = df; 1863 this.dirs = dirs; 1864 } 1865 1866 this(InputValueDefinitionEnum ruleSelection, Token name, Type type, Directives dirs) { 1867 this.ruleSelection = ruleSelection; 1868 this.name = name; 1869 this.type = type; 1870 this.dirs = dirs; 1871 } 1872 1873 this(InputValueDefinitionEnum ruleSelection, Token name, Type type, DefaultValue df) { 1874 this.ruleSelection = ruleSelection; 1875 this.name = name; 1876 this.type = type; 1877 this.df = df; 1878 } 1879 1880 this(InputValueDefinitionEnum ruleSelection, Token name, Type type) { 1881 this.ruleSelection = ruleSelection; 1882 this.name = name; 1883 this.type = type; 1884 } 1885 1886 void visit(Visitor vis) { 1887 vis.accept(this); 1888 } 1889 1890 void visit(Visitor vis) const { 1891 vis.accept(this); 1892 } 1893 1894 void visit(ConstVisitor vis) { 1895 vis.accept(this); 1896 } 1897 1898 void visit(ConstVisitor vis) const { 1899 vis.accept(this); 1900 } 1901 } 1902 1903 enum InterfaceTypeDefinitionEnum { 1904 NDF, 1905 NF, 1906 } 1907 1908 class InterfaceTypeDefinition : Node { 1909 InterfaceTypeDefinitionEnum ruleSelection; 1910 FieldDefinitions fds; 1911 Directives dirs; 1912 Token name; 1913 1914 this(InterfaceTypeDefinitionEnum ruleSelection, Token name, Directives dirs, FieldDefinitions fds) { 1915 this.ruleSelection = ruleSelection; 1916 this.name = name; 1917 this.dirs = dirs; 1918 this.fds = fds; 1919 } 1920 1921 this(InterfaceTypeDefinitionEnum ruleSelection, Token name, FieldDefinitions fds) { 1922 this.ruleSelection = ruleSelection; 1923 this.name = name; 1924 this.fds = fds; 1925 } 1926 1927 void visit(Visitor vis) { 1928 vis.accept(this); 1929 } 1930 1931 void visit(Visitor vis) const { 1932 vis.accept(this); 1933 } 1934 1935 void visit(ConstVisitor vis) { 1936 vis.accept(this); 1937 } 1938 1939 void visit(ConstVisitor vis) const { 1940 vis.accept(this); 1941 } 1942 } 1943 1944 enum UnionTypeDefinitionEnum { 1945 NDU, 1946 NU, 1947 } 1948 1949 class UnionTypeDefinition : Node { 1950 UnionTypeDefinitionEnum ruleSelection; 1951 UnionMembers um; 1952 Directives dirs; 1953 Token name; 1954 1955 this(UnionTypeDefinitionEnum ruleSelection, Token name, Directives dirs, UnionMembers um) { 1956 this.ruleSelection = ruleSelection; 1957 this.name = name; 1958 this.dirs = dirs; 1959 this.um = um; 1960 } 1961 1962 this(UnionTypeDefinitionEnum ruleSelection, Token name, UnionMembers um) { 1963 this.ruleSelection = ruleSelection; 1964 this.name = name; 1965 this.um = um; 1966 } 1967 1968 void visit(Visitor vis) { 1969 vis.accept(this); 1970 } 1971 1972 void visit(Visitor vis) const { 1973 vis.accept(this); 1974 } 1975 1976 void visit(ConstVisitor vis) { 1977 vis.accept(this); 1978 } 1979 1980 void visit(ConstVisitor vis) const { 1981 vis.accept(this); 1982 } 1983 } 1984 1985 enum UnionMembersEnum { 1986 S, 1987 SPF, 1988 SF, 1989 } 1990 1991 class UnionMembers : Node { 1992 UnionMembersEnum ruleSelection; 1993 UnionMembers follow; 1994 Token name; 1995 1996 this(UnionMembersEnum ruleSelection, Token name) { 1997 this.ruleSelection = ruleSelection; 1998 this.name = name; 1999 } 2000 2001 this(UnionMembersEnum ruleSelection, Token name, UnionMembers follow) { 2002 this.ruleSelection = ruleSelection; 2003 this.name = name; 2004 this.follow = follow; 2005 } 2006 2007 void visit(Visitor vis) { 2008 vis.accept(this); 2009 } 2010 2011 void visit(Visitor vis) const { 2012 vis.accept(this); 2013 } 2014 2015 void visit(ConstVisitor vis) { 2016 vis.accept(this); 2017 } 2018 2019 void visit(ConstVisitor vis) const { 2020 vis.accept(this); 2021 } 2022 } 2023 2024 enum EnumTypeDefinitionEnum { 2025 NDE, 2026 NE, 2027 } 2028 2029 class EnumTypeDefinition : Node { 2030 EnumTypeDefinitionEnum ruleSelection; 2031 EnumValueDefinitions evds; 2032 Directives dir; 2033 Token name; 2034 2035 this(EnumTypeDefinitionEnum ruleSelection, Token name, Directives dir, EnumValueDefinitions evds) { 2036 this.ruleSelection = ruleSelection; 2037 this.name = name; 2038 this.dir = dir; 2039 this.evds = evds; 2040 } 2041 2042 this(EnumTypeDefinitionEnum ruleSelection, Token name, EnumValueDefinitions evds) { 2043 this.ruleSelection = ruleSelection; 2044 this.name = name; 2045 this.evds = evds; 2046 } 2047 2048 void visit(Visitor vis) { 2049 vis.accept(this); 2050 } 2051 2052 void visit(Visitor vis) const { 2053 vis.accept(this); 2054 } 2055 2056 void visit(ConstVisitor vis) { 2057 vis.accept(this); 2058 } 2059 2060 void visit(ConstVisitor vis) const { 2061 vis.accept(this); 2062 } 2063 } 2064 2065 enum EnumValueDefinitionsEnum { 2066 D, 2067 DCE, 2068 DE, 2069 } 2070 2071 class EnumValueDefinitions : Node { 2072 EnumValueDefinitionsEnum ruleSelection; 2073 EnumValueDefinition evd; 2074 EnumValueDefinitions follow; 2075 2076 this(EnumValueDefinitionsEnum ruleSelection, EnumValueDefinition evd) { 2077 this.ruleSelection = ruleSelection; 2078 this.evd = evd; 2079 } 2080 2081 this(EnumValueDefinitionsEnum ruleSelection, EnumValueDefinition evd, EnumValueDefinitions follow) { 2082 this.ruleSelection = ruleSelection; 2083 this.evd = evd; 2084 this.follow = follow; 2085 } 2086 2087 void visit(Visitor vis) { 2088 vis.accept(this); 2089 } 2090 2091 void visit(Visitor vis) const { 2092 vis.accept(this); 2093 } 2094 2095 void visit(ConstVisitor vis) { 2096 vis.accept(this); 2097 } 2098 2099 void visit(ConstVisitor vis) const { 2100 vis.accept(this); 2101 } 2102 } 2103 2104 enum EnumValueDefinitionEnum { 2105 ED, 2106 E, 2107 } 2108 2109 class EnumValueDefinition : Node { 2110 EnumValueDefinitionEnum ruleSelection; 2111 Directives dirs; 2112 Token name; 2113 2114 this(EnumValueDefinitionEnum ruleSelection, Token name, Directives dirs) { 2115 this.ruleSelection = ruleSelection; 2116 this.name = name; 2117 this.dirs = dirs; 2118 } 2119 2120 this(EnumValueDefinitionEnum ruleSelection, Token name) { 2121 this.ruleSelection = ruleSelection; 2122 this.name = name; 2123 } 2124 2125 void visit(Visitor vis) { 2126 vis.accept(this); 2127 } 2128 2129 void visit(Visitor vis) const { 2130 vis.accept(this); 2131 } 2132 2133 void visit(ConstVisitor vis) { 2134 vis.accept(this); 2135 } 2136 2137 void visit(ConstVisitor vis) const { 2138 vis.accept(this); 2139 } 2140 } 2141 2142 enum InputTypeDefinitionEnum { 2143 NDE, 2144 NE, 2145 } 2146 2147 class InputTypeDefinition : Node { 2148 InputTypeDefinitionEnum ruleSelection; 2149 InputValueDefinitions ivds; 2150 Directives dir; 2151 Token name; 2152 2153 this(InputTypeDefinitionEnum ruleSelection, Token name, Directives dir, InputValueDefinitions ivds) { 2154 this.ruleSelection = ruleSelection; 2155 this.name = name; 2156 this.dir = dir; 2157 this.ivds = ivds; 2158 } 2159 2160 this(InputTypeDefinitionEnum ruleSelection, Token name, InputValueDefinitions ivds) { 2161 this.ruleSelection = ruleSelection; 2162 this.name = name; 2163 this.ivds = ivds; 2164 } 2165 2166 void visit(Visitor vis) { 2167 vis.accept(this); 2168 } 2169 2170 void visit(Visitor vis) const { 2171 vis.accept(this); 2172 } 2173 2174 void visit(ConstVisitor vis) { 2175 vis.accept(this); 2176 } 2177 2178 void visit(ConstVisitor vis) const { 2179 vis.accept(this); 2180 } 2181 } 2182 2183 enum TypeExtensionDefinitionEnum { 2184 O, 2185 } 2186 2187 class TypeExtensionDefinition : Node { 2188 TypeExtensionDefinitionEnum ruleSelection; 2189 ObjectTypeDefinition otd; 2190 2191 this(TypeExtensionDefinitionEnum ruleSelection, ObjectTypeDefinition otd) { 2192 this.ruleSelection = ruleSelection; 2193 this.otd = otd; 2194 } 2195 2196 void visit(Visitor vis) { 2197 vis.accept(this); 2198 } 2199 2200 void visit(Visitor vis) const { 2201 vis.accept(this); 2202 } 2203 2204 void visit(ConstVisitor vis) { 2205 vis.accept(this); 2206 } 2207 2208 void visit(ConstVisitor vis) const { 2209 vis.accept(this); 2210 } 2211 } 2212 2213 enum DirectiveDefinitionEnum { 2214 AD, 2215 D, 2216 } 2217 2218 class DirectiveDefinition : Node { 2219 DirectiveDefinitionEnum ruleSelection; 2220 DirectiveLocations dl; 2221 ArgumentsDefinition ad; 2222 Token name; 2223 2224 this(DirectiveDefinitionEnum ruleSelection, Token name, ArgumentsDefinition ad, DirectiveLocations dl) { 2225 this.ruleSelection = ruleSelection; 2226 this.name = name; 2227 this.ad = ad; 2228 this.dl = dl; 2229 } 2230 2231 this(DirectiveDefinitionEnum ruleSelection, Token name, DirectiveLocations dl) { 2232 this.ruleSelection = ruleSelection; 2233 this.name = name; 2234 this.dl = dl; 2235 } 2236 2237 void visit(Visitor vis) { 2238 vis.accept(this); 2239 } 2240 2241 void visit(Visitor vis) const { 2242 vis.accept(this); 2243 } 2244 2245 void visit(ConstVisitor vis) { 2246 vis.accept(this); 2247 } 2248 2249 void visit(ConstVisitor vis) const { 2250 vis.accept(this); 2251 } 2252 } 2253 2254 enum DirectiveLocationsEnum { 2255 N, 2256 NPF, 2257 NF, 2258 } 2259 2260 class DirectiveLocations : Node { 2261 DirectiveLocationsEnum ruleSelection; 2262 DirectiveLocations follow; 2263 Token name; 2264 2265 this(DirectiveLocationsEnum ruleSelection, Token name) { 2266 this.ruleSelection = ruleSelection; 2267 this.name = name; 2268 } 2269 2270 this(DirectiveLocationsEnum ruleSelection, Token name, DirectiveLocations follow) { 2271 this.ruleSelection = ruleSelection; 2272 this.name = name; 2273 this.follow = follow; 2274 } 2275 2276 void visit(Visitor vis) { 2277 vis.accept(this); 2278 } 2279 2280 void visit(Visitor vis) const { 2281 vis.accept(this); 2282 } 2283 2284 void visit(ConstVisitor vis) { 2285 vis.accept(this); 2286 } 2287 2288 void visit(ConstVisitor vis) const { 2289 vis.accept(this); 2290 } 2291 } 2292 2293 enum InputObjectTypeDefinitionEnum { 2294 NDI, 2295 NI, 2296 } 2297 2298 class InputObjectTypeDefinition : Node { 2299 InputObjectTypeDefinitionEnum ruleSelection; 2300 Directives dirs; 2301 Token name; 2302 2303 this(InputObjectTypeDefinitionEnum ruleSelection, Token name, Directives dirs) { 2304 this.ruleSelection = ruleSelection; 2305 this.name = name; 2306 this.dirs = dirs; 2307 } 2308 2309 this(InputObjectTypeDefinitionEnum ruleSelection, Token name) { 2310 this.ruleSelection = ruleSelection; 2311 this.name = name; 2312 } 2313 2314 void visit(Visitor vis) { 2315 vis.accept(this); 2316 } 2317 2318 void visit(Visitor vis) const { 2319 vis.accept(this); 2320 } 2321 2322 void visit(ConstVisitor vis) { 2323 vis.accept(this); 2324 } 2325 2326 void visit(ConstVisitor vis) const { 2327 vis.accept(this); 2328 } 2329 } 2330