cuelang.org/go@v0.13.0/cue/testdata/cycle/issue990.txtar (about) 1 -- in.cue -- 2 // A simple discriminated element 3 #AC: { 4 k: "simple" 5 d: #C 6 } 7 8 // A recursive discriminated element 9 #AS: { 10 k: "complex" 11 d: #S 12 } 13 14 #R: { 15 a: #AC | #AS 16 } 17 18 // The structure of the recursive element 19 #S: { 20 n: string 21 r: [string]: #R 22 } 23 24 // The structure of the simple element 25 #C: { 26 n: string 27 } 28 29 #sub: { 30 $p=#p: #AS 31 dict: [string]: _ 32 33 for rn, rd in $p.d.r if rd.a.k == "complex" { 34 let subs = #sub & {#p: rd.a} 35 for sn, sd in subs.dict { 36 dict: "\(rn)_\(sn)": sd 37 } 38 } 39 for rn, rd in $p.d.r if rd.a.k == "simple" { 40 dict: "\(rn)": rd 41 } 42 } 43 44 // Data 45 _test: { 46 c1: #AC 47 c1: d: { 48 n: "c1" 49 } 50 51 52 s3: #AS 53 s3: d: { 54 n: "s3" 55 r: r1: a:c1 56 } 57 58 s2: #AS 59 s2: d: { 60 n: "s2" 61 r: { 62 r1: a: c1 63 r2: a: s3 64 } 65 } 66 67 s1: #AS 68 s1: d: { 69 n: "s1" 70 r: { 71 r1: a: c1 72 r2: a: s2 73 } 74 } 75 } 76 77 // Test 78 79 out: #sub & {#p: _test.s1} 80 -- diff/todo/p3 -- 81 Reordering 82 -- out/evalalpha/stats -- 83 Leaks: 937 84 Freed: 0 85 Reused: 0 86 Allocs: 937 87 Retain: 0 88 89 Unifications: 389 90 Conjuncts: 1464 91 Disjuncts: 110 92 93 CloseIDElems: 15467 94 NumCloseIDs: 407 95 -- out/evalalpha -- 96 (struct){ 97 #AC: (#struct){ 98 k: (string){ "simple" } 99 d: ~(#C) 100 } 101 #AS: (#struct){ 102 k: (string){ "complex" } 103 d: ~(#S) 104 } 105 #R: (#struct){ 106 a: (#struct){ |((#struct){ 107 k: (string){ "simple" } 108 d: ~(#C) 109 }, (#struct){ 110 k: (string){ "complex" } 111 d: ~(#S) 112 }) } 113 } 114 #S: (#struct){ 115 n: (string){ string } 116 r: (#struct){ 117 } 118 } 119 #C: (#struct){ 120 n: (string){ string } 121 } 122 #sub: (#struct){ 123 #p: ~(#AS) 124 dict: (#struct){ 125 } 126 let subs#1multi = (〈3;#sub〉 & { 127 #p: 〈2;rd〉.a 128 }) 129 } 130 _test: (struct){ 131 c1: (#struct){ 132 d: (#struct){ 133 n: (string){ "c1" } 134 } 135 k: (string){ "simple" } 136 } 137 s3: (#struct){ 138 d: (#struct){ 139 n: (string){ "s3" } 140 r: (#struct){ 141 r1: (#struct){ 142 a: (#struct){ 143 d: (#struct){ 144 n: (string){ "c1" } 145 } 146 k: (string){ "simple" } 147 } 148 } 149 } 150 } 151 k: (string){ "complex" } 152 } 153 s2: (#struct){ 154 d: (#struct){ 155 n: (string){ "s2" } 156 r: (#struct){ 157 r1: (#struct){ 158 a: (#struct){ 159 d: (#struct){ 160 n: (string){ "c1" } 161 } 162 k: (string){ "simple" } 163 } 164 } 165 r2: (#struct){ 166 a: (#struct){ 167 d: (#struct){ 168 n: (string){ "s3" } 169 r: (#struct){ 170 r1: (#struct){ 171 a: (#struct){ 172 d: (#struct){ 173 n: (string){ "c1" } 174 } 175 k: (string){ "simple" } 176 } 177 } 178 } 179 } 180 k: (string){ "complex" } 181 } 182 } 183 } 184 } 185 k: (string){ "complex" } 186 } 187 s1: (#struct){ 188 d: (#struct){ 189 n: (string){ "s1" } 190 r: (#struct){ 191 r1: (#struct){ 192 a: (#struct){ 193 d: (#struct){ 194 n: (string){ "c1" } 195 } 196 k: (string){ "simple" } 197 } 198 } 199 r2: (#struct){ 200 a: (#struct){ 201 d: (#struct){ 202 n: (string){ "s2" } 203 r: (#struct){ 204 r1: (#struct){ 205 a: (#struct){ 206 d: (#struct){ 207 n: (string){ "c1" } 208 } 209 k: (string){ "simple" } 210 } 211 } 212 r2: (#struct){ 213 a: (#struct){ 214 d: (#struct){ 215 n: (string){ "s3" } 216 r: (#struct){ 217 r1: (#struct){ 218 a: (#struct){ 219 d: (#struct){ 220 n: (string){ "c1" } 221 } 222 k: (string){ "simple" } 223 } 224 } 225 } 226 } 227 k: (string){ "complex" } 228 } 229 } 230 } 231 } 232 k: (string){ "complex" } 233 } 234 } 235 } 236 } 237 k: (string){ "complex" } 238 } 239 } 240 out: (#struct){ 241 #p: (#struct){ 242 d: (#struct){ 243 n: (string){ "s1" } 244 r: (#struct){ 245 r1: (#struct){ 246 a: (#struct){ 247 d: (#struct){ 248 n: (string){ "c1" } 249 } 250 k: (string){ "simple" } 251 } 252 } 253 r2: (#struct){ 254 a: (#struct){ 255 d: (#struct){ 256 n: (string){ "s2" } 257 r: (#struct){ 258 r1: (#struct){ 259 a: (#struct){ 260 d: (#struct){ 261 n: (string){ "c1" } 262 } 263 k: (string){ "simple" } 264 } 265 } 266 r2: (#struct){ 267 a: (#struct){ 268 d: (#struct){ 269 n: (string){ "s3" } 270 r: (#struct){ 271 r1: (#struct){ 272 a: (#struct){ 273 d: (#struct){ 274 n: (string){ "c1" } 275 } 276 k: (string){ "simple" } 277 } 278 } 279 } 280 } 281 k: (string){ "complex" } 282 } 283 } 284 } 285 } 286 k: (string){ "complex" } 287 } 288 } 289 } 290 } 291 k: (string){ "complex" } 292 } 293 dict: (#struct){ 294 r1: (#struct){ 295 a: (#struct){ 296 d: (#struct){ 297 n: (string){ "c1" } 298 } 299 k: (string){ "simple" } 300 } 301 } 302 r2_r1: (#struct){ 303 a: (#struct){ 304 d: (#struct){ 305 n: (string){ "c1" } 306 } 307 k: (string){ "simple" } 308 } 309 } 310 r2_r2_r1: (#struct){ 311 a: (#struct){ 312 d: (#struct){ 313 n: (string){ "c1" } 314 } 315 k: (string){ "simple" } 316 } 317 } 318 } 319 let subs#1multi = (〈3;#sub〉 & { 320 #p: 〈2;rd〉.a 321 }) 322 } 323 } 324 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 325 diff old new 326 --- old 327 +++ new 328 @@ -1,9 +1,12 @@ 329 -Leaks: 6 330 -Freed: 3232 331 -Reused: 3213 332 -Allocs: 25 333 -Retain: 26 334 - 335 -Unifications: 2588 336 -Conjuncts: 12056 337 -Disjuncts: 3258 338 +Leaks: 937 339 +Freed: 0 340 +Reused: 0 341 +Allocs: 937 342 +Retain: 0 343 + 344 +Unifications: 389 345 +Conjuncts: 1464 346 +Disjuncts: 110 347 + 348 +CloseIDElems: 15467 349 +NumCloseIDs: 407 350 -- diff/-out/evalalpha<==>+out/eval -- 351 diff old new 352 --- old 353 +++ new 354 @@ -1,31 +1,19 @@ 355 (struct){ 356 #AC: (#struct){ 357 k: (string){ "simple" } 358 - d: (#struct){ 359 - n: (string){ string } 360 - } 361 + d: ~(#C) 362 } 363 #AS: (#struct){ 364 k: (string){ "complex" } 365 - d: (#struct){ 366 - n: (string){ string } 367 - r: (#struct){ 368 - } 369 - } 370 + d: ~(#S) 371 } 372 #R: (#struct){ 373 a: (#struct){ |((#struct){ 374 k: (string){ "simple" } 375 - d: (#struct){ 376 - n: (string){ string } 377 - } 378 + d: ~(#C) 379 }, (#struct){ 380 k: (string){ "complex" } 381 - d: (#struct){ 382 - n: (string){ string } 383 - r: (#struct){ 384 - } 385 - } 386 + d: ~(#S) 387 }) } 388 } 389 #S: (#struct){ 390 @@ -37,14 +25,7 @@ 391 n: (string){ string } 392 } 393 #sub: (#struct){ 394 - #p: (#struct){ 395 - k: (string){ "complex" } 396 - d: (#struct){ 397 - n: (string){ string } 398 - r: (#struct){ 399 - } 400 - } 401 - } 402 + #p: ~(#AS) 403 dict: (#struct){ 404 } 405 let subs#1multi = (〈3;#sub〉 & { 406 @@ -53,190 +34,190 @@ 407 } 408 _test: (struct){ 409 c1: (#struct){ 410 - k: (string){ "simple" } 411 d: (#struct){ 412 n: (string){ "c1" } 413 } 414 + k: (string){ "simple" } 415 } 416 s3: (#struct){ 417 - k: (string){ "complex" } 418 d: (#struct){ 419 n: (string){ "s3" } 420 r: (#struct){ 421 r1: (#struct){ 422 a: (#struct){ 423 - k: (string){ "simple" } 424 - d: (#struct){ 425 - n: (string){ "c1" } 426 - } 427 - } 428 - } 429 - } 430 - } 431 + d: (#struct){ 432 + n: (string){ "c1" } 433 + } 434 + k: (string){ "simple" } 435 + } 436 + } 437 + } 438 + } 439 + k: (string){ "complex" } 440 } 441 s2: (#struct){ 442 - k: (string){ "complex" } 443 d: (#struct){ 444 n: (string){ "s2" } 445 r: (#struct){ 446 r1: (#struct){ 447 a: (#struct){ 448 - k: (string){ "simple" } 449 - d: (#struct){ 450 - n: (string){ "c1" } 451 - } 452 - } 453 - } 454 - r2: (#struct){ 455 - a: (#struct){ 456 - k: (string){ "complex" } 457 + d: (#struct){ 458 + n: (string){ "c1" } 459 + } 460 + k: (string){ "simple" } 461 + } 462 + } 463 + r2: (#struct){ 464 + a: (#struct){ 465 d: (#struct){ 466 n: (string){ "s3" } 467 r: (#struct){ 468 r1: (#struct){ 469 a: (#struct){ 470 - k: (string){ "simple" } 471 - d: (#struct){ 472 - n: (string){ "c1" } 473 - } 474 - } 475 - } 476 - } 477 - } 478 - } 479 - } 480 - } 481 - } 482 + d: (#struct){ 483 + n: (string){ "c1" } 484 + } 485 + k: (string){ "simple" } 486 + } 487 + } 488 + } 489 + } 490 + k: (string){ "complex" } 491 + } 492 + } 493 + } 494 + } 495 + k: (string){ "complex" } 496 } 497 s1: (#struct){ 498 - k: (string){ "complex" } 499 - d: (#struct){ 500 - n: (string){ "s1" } 501 - r: (#struct){ 502 - r1: (#struct){ 503 - a: (#struct){ 504 - k: (string){ "simple" } 505 - d: (#struct){ 506 - n: (string){ "c1" } 507 - } 508 - } 509 - } 510 - r2: (#struct){ 511 - a: (#struct){ 512 - k: (string){ "complex" } 513 - d: (#struct){ 514 - n: (string){ "s2" } 515 - r: (#struct){ 516 - r1: (#struct){ 517 - a: (#struct){ 518 - k: (string){ "simple" } 519 - d: (#struct){ 520 - n: (string){ "c1" } 521 - } 522 - } 523 - } 524 - r2: (#struct){ 525 - a: (#struct){ 526 - k: (string){ "complex" } 527 - d: (#struct){ 528 - n: (string){ "s3" } 529 - r: (#struct){ 530 - r1: (#struct){ 531 - a: (#struct){ 532 - k: (string){ "simple" } 533 - d: (#struct){ 534 - n: (string){ "c1" } 535 - } 536 - } 537 - } 538 - } 539 - } 540 - } 541 - } 542 - } 543 - } 544 - } 545 - } 546 - } 547 - } 548 + d: (#struct){ 549 + n: (string){ "s1" } 550 + r: (#struct){ 551 + r1: (#struct){ 552 + a: (#struct){ 553 + d: (#struct){ 554 + n: (string){ "c1" } 555 + } 556 + k: (string){ "simple" } 557 + } 558 + } 559 + r2: (#struct){ 560 + a: (#struct){ 561 + d: (#struct){ 562 + n: (string){ "s2" } 563 + r: (#struct){ 564 + r1: (#struct){ 565 + a: (#struct){ 566 + d: (#struct){ 567 + n: (string){ "c1" } 568 + } 569 + k: (string){ "simple" } 570 + } 571 + } 572 + r2: (#struct){ 573 + a: (#struct){ 574 + d: (#struct){ 575 + n: (string){ "s3" } 576 + r: (#struct){ 577 + r1: (#struct){ 578 + a: (#struct){ 579 + d: (#struct){ 580 + n: (string){ "c1" } 581 + } 582 + k: (string){ "simple" } 583 + } 584 + } 585 + } 586 + } 587 + k: (string){ "complex" } 588 + } 589 + } 590 + } 591 + } 592 + k: (string){ "complex" } 593 + } 594 + } 595 + } 596 + } 597 + k: (string){ "complex" } 598 } 599 } 600 out: (#struct){ 601 #p: (#struct){ 602 - k: (string){ "complex" } 603 - d: (#struct){ 604 - n: (string){ "s1" } 605 - r: (#struct){ 606 - r1: (#struct){ 607 - a: (#struct){ 608 - k: (string){ "simple" } 609 - d: (#struct){ 610 - n: (string){ "c1" } 611 - } 612 - } 613 - } 614 - r2: (#struct){ 615 - a: (#struct){ 616 - k: (string){ "complex" } 617 - d: (#struct){ 618 - n: (string){ "s2" } 619 - r: (#struct){ 620 - r1: (#struct){ 621 - a: (#struct){ 622 - k: (string){ "simple" } 623 - d: (#struct){ 624 - n: (string){ "c1" } 625 - } 626 - } 627 - } 628 - r2: (#struct){ 629 - a: (#struct){ 630 - k: (string){ "complex" } 631 - d: (#struct){ 632 - n: (string){ "s3" } 633 - r: (#struct){ 634 - r1: (#struct){ 635 - a: (#struct){ 636 - k: (string){ "simple" } 637 - d: (#struct){ 638 - n: (string){ "c1" } 639 - } 640 - } 641 - } 642 - } 643 - } 644 - } 645 - } 646 - } 647 - } 648 - } 649 - } 650 - } 651 - } 652 + d: (#struct){ 653 + n: (string){ "s1" } 654 + r: (#struct){ 655 + r1: (#struct){ 656 + a: (#struct){ 657 + d: (#struct){ 658 + n: (string){ "c1" } 659 + } 660 + k: (string){ "simple" } 661 + } 662 + } 663 + r2: (#struct){ 664 + a: (#struct){ 665 + d: (#struct){ 666 + n: (string){ "s2" } 667 + r: (#struct){ 668 + r1: (#struct){ 669 + a: (#struct){ 670 + d: (#struct){ 671 + n: (string){ "c1" } 672 + } 673 + k: (string){ "simple" } 674 + } 675 + } 676 + r2: (#struct){ 677 + a: (#struct){ 678 + d: (#struct){ 679 + n: (string){ "s3" } 680 + r: (#struct){ 681 + r1: (#struct){ 682 + a: (#struct){ 683 + d: (#struct){ 684 + n: (string){ "c1" } 685 + } 686 + k: (string){ "simple" } 687 + } 688 + } 689 + } 690 + } 691 + k: (string){ "complex" } 692 + } 693 + } 694 + } 695 + } 696 + k: (string){ "complex" } 697 + } 698 + } 699 + } 700 + } 701 + k: (string){ "complex" } 702 } 703 dict: (#struct){ 704 r1: (#struct){ 705 a: (#struct){ 706 - k: (string){ "simple" } 707 - d: (#struct){ 708 - n: (string){ "c1" } 709 - } 710 + d: (#struct){ 711 + n: (string){ "c1" } 712 + } 713 + k: (string){ "simple" } 714 } 715 } 716 r2_r1: (#struct){ 717 a: (#struct){ 718 - k: (string){ "simple" } 719 - d: (#struct){ 720 - n: (string){ "c1" } 721 - } 722 + d: (#struct){ 723 + n: (string){ "c1" } 724 + } 725 + k: (string){ "simple" } 726 } 727 } 728 r2_r2_r1: (#struct){ 729 a: (#struct){ 730 - k: (string){ "simple" } 731 - d: (#struct){ 732 - n: (string){ "c1" } 733 - } 734 + d: (#struct){ 735 + n: (string){ "c1" } 736 + } 737 + k: (string){ "simple" } 738 } 739 } 740 } 741 -- out/eval/stats -- 742 Leaks: 6 743 Freed: 3232 744 Reused: 3213 745 Allocs: 25 746 Retain: 26 747 748 Unifications: 2588 749 Conjuncts: 12056 750 Disjuncts: 3258 751 -- out/eval -- 752 (struct){ 753 #AC: (#struct){ 754 k: (string){ "simple" } 755 d: (#struct){ 756 n: (string){ string } 757 } 758 } 759 #AS: (#struct){ 760 k: (string){ "complex" } 761 d: (#struct){ 762 n: (string){ string } 763 r: (#struct){ 764 } 765 } 766 } 767 #R: (#struct){ 768 a: (#struct){ |((#struct){ 769 k: (string){ "simple" } 770 d: (#struct){ 771 n: (string){ string } 772 } 773 }, (#struct){ 774 k: (string){ "complex" } 775 d: (#struct){ 776 n: (string){ string } 777 r: (#struct){ 778 } 779 } 780 }) } 781 } 782 #S: (#struct){ 783 n: (string){ string } 784 r: (#struct){ 785 } 786 } 787 #C: (#struct){ 788 n: (string){ string } 789 } 790 #sub: (#struct){ 791 #p: (#struct){ 792 k: (string){ "complex" } 793 d: (#struct){ 794 n: (string){ string } 795 r: (#struct){ 796 } 797 } 798 } 799 dict: (#struct){ 800 } 801 let subs#1multi = (〈3;#sub〉 & { 802 #p: 〈2;rd〉.a 803 }) 804 } 805 _test: (struct){ 806 c1: (#struct){ 807 k: (string){ "simple" } 808 d: (#struct){ 809 n: (string){ "c1" } 810 } 811 } 812 s3: (#struct){ 813 k: (string){ "complex" } 814 d: (#struct){ 815 n: (string){ "s3" } 816 r: (#struct){ 817 r1: (#struct){ 818 a: (#struct){ 819 k: (string){ "simple" } 820 d: (#struct){ 821 n: (string){ "c1" } 822 } 823 } 824 } 825 } 826 } 827 } 828 s2: (#struct){ 829 k: (string){ "complex" } 830 d: (#struct){ 831 n: (string){ "s2" } 832 r: (#struct){ 833 r1: (#struct){ 834 a: (#struct){ 835 k: (string){ "simple" } 836 d: (#struct){ 837 n: (string){ "c1" } 838 } 839 } 840 } 841 r2: (#struct){ 842 a: (#struct){ 843 k: (string){ "complex" } 844 d: (#struct){ 845 n: (string){ "s3" } 846 r: (#struct){ 847 r1: (#struct){ 848 a: (#struct){ 849 k: (string){ "simple" } 850 d: (#struct){ 851 n: (string){ "c1" } 852 } 853 } 854 } 855 } 856 } 857 } 858 } 859 } 860 } 861 } 862 s1: (#struct){ 863 k: (string){ "complex" } 864 d: (#struct){ 865 n: (string){ "s1" } 866 r: (#struct){ 867 r1: (#struct){ 868 a: (#struct){ 869 k: (string){ "simple" } 870 d: (#struct){ 871 n: (string){ "c1" } 872 } 873 } 874 } 875 r2: (#struct){ 876 a: (#struct){ 877 k: (string){ "complex" } 878 d: (#struct){ 879 n: (string){ "s2" } 880 r: (#struct){ 881 r1: (#struct){ 882 a: (#struct){ 883 k: (string){ "simple" } 884 d: (#struct){ 885 n: (string){ "c1" } 886 } 887 } 888 } 889 r2: (#struct){ 890 a: (#struct){ 891 k: (string){ "complex" } 892 d: (#struct){ 893 n: (string){ "s3" } 894 r: (#struct){ 895 r1: (#struct){ 896 a: (#struct){ 897 k: (string){ "simple" } 898 d: (#struct){ 899 n: (string){ "c1" } 900 } 901 } 902 } 903 } 904 } 905 } 906 } 907 } 908 } 909 } 910 } 911 } 912 } 913 } 914 } 915 out: (#struct){ 916 #p: (#struct){ 917 k: (string){ "complex" } 918 d: (#struct){ 919 n: (string){ "s1" } 920 r: (#struct){ 921 r1: (#struct){ 922 a: (#struct){ 923 k: (string){ "simple" } 924 d: (#struct){ 925 n: (string){ "c1" } 926 } 927 } 928 } 929 r2: (#struct){ 930 a: (#struct){ 931 k: (string){ "complex" } 932 d: (#struct){ 933 n: (string){ "s2" } 934 r: (#struct){ 935 r1: (#struct){ 936 a: (#struct){ 937 k: (string){ "simple" } 938 d: (#struct){ 939 n: (string){ "c1" } 940 } 941 } 942 } 943 r2: (#struct){ 944 a: (#struct){ 945 k: (string){ "complex" } 946 d: (#struct){ 947 n: (string){ "s3" } 948 r: (#struct){ 949 r1: (#struct){ 950 a: (#struct){ 951 k: (string){ "simple" } 952 d: (#struct){ 953 n: (string){ "c1" } 954 } 955 } 956 } 957 } 958 } 959 } 960 } 961 } 962 } 963 } 964 } 965 } 966 } 967 } 968 dict: (#struct){ 969 r1: (#struct){ 970 a: (#struct){ 971 k: (string){ "simple" } 972 d: (#struct){ 973 n: (string){ "c1" } 974 } 975 } 976 } 977 r2_r1: (#struct){ 978 a: (#struct){ 979 k: (string){ "simple" } 980 d: (#struct){ 981 n: (string){ "c1" } 982 } 983 } 984 } 985 r2_r2_r1: (#struct){ 986 a: (#struct){ 987 k: (string){ "simple" } 988 d: (#struct){ 989 n: (string){ "c1" } 990 } 991 } 992 } 993 } 994 let subs#1multi = (〈3;#sub〉 & { 995 #p: 〈2;rd〉.a 996 }) 997 } 998 } 999 -- out/compile -- 1000 --- in.cue 1001 { 1002 #AC: { 1003 k: "simple" 1004 d: 〈1;#C〉 1005 } 1006 #AS: { 1007 k: "complex" 1008 d: 〈1;#S〉 1009 } 1010 #R: { 1011 a: (〈1;#AC〉|〈1;#AS〉) 1012 } 1013 #S: { 1014 n: string 1015 r: { 1016 [string]: 〈2;#R〉 1017 } 1018 } 1019 #C: { 1020 n: string 1021 } 1022 #sub: { 1023 #p: 〈1;#AS〉 1024 dict: { 1025 [string]: _ 1026 } 1027 for rn, rd in 〈0;#p〉.d.r if (〈0;rd〉.a.k == "complex") { 1028 let subs#1multi = (〈3;#sub〉 & { 1029 #p: 〈2;rd〉.a 1030 }) 1031 for sn, sd in 〈0;let subs#1〉.dict { 1032 dict: { 1033 "\(〈4;rn〉)_\(〈2;sn〉)": 〈2;sd〉 1034 } 1035 } 1036 } 1037 for rn, rd in 〈0;#p〉.d.r if (〈0;rd〉.a.k == "simple") { 1038 dict: { 1039 "\(〈2;rn〉)": 〈2;rd〉 1040 } 1041 } 1042 } 1043 _test: { 1044 c1: 〈1;#AC〉 1045 c1: { 1046 d: { 1047 n: "c1" 1048 } 1049 } 1050 s3: 〈1;#AS〉 1051 s3: { 1052 d: { 1053 n: "s3" 1054 r: { 1055 r1: { 1056 a: 〈4;c1〉 1057 } 1058 } 1059 } 1060 } 1061 s2: 〈1;#AS〉 1062 s2: { 1063 d: { 1064 n: "s2" 1065 r: { 1066 r1: { 1067 a: 〈4;c1〉 1068 } 1069 r2: { 1070 a: 〈4;s3〉 1071 } 1072 } 1073 } 1074 } 1075 s1: 〈1;#AS〉 1076 s1: { 1077 d: { 1078 n: "s1" 1079 r: { 1080 r1: { 1081 a: 〈4;c1〉 1082 } 1083 r2: { 1084 a: 〈4;s2〉 1085 } 1086 } 1087 } 1088 } 1089 } 1090 out: (〈0;#sub〉 & { 1091 #p: 〈1;_test〉.s1 1092 }) 1093 }