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