@malloydata/malloy 0.0.15 → 0.0.16-dev221214152428

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3248,7 +3248,7 @@ class MalloyParser extends Parser_1.Parser {
3248
3248
  this.enterRule(_localctx, 140, MalloyParser.RULE_indexElement);
3249
3249
  let _la;
3250
3250
  try {
3251
- this.state = 701;
3251
+ this.state = 702;
3252
3252
  this._errHandler.sync(this);
3253
3253
  switch (this._input.LA(1)) {
3254
3254
  case MalloyParser.IDENTIFIER:
@@ -3277,6 +3277,13 @@ class MalloyParser extends Parser_1.Parser {
3277
3277
  this.match(MalloyParser.STAR);
3278
3278
  }
3279
3279
  break;
3280
+ case MalloyParser.STARSTAR:
3281
+ this.enterOuterAlt(_localctx, 3);
3282
+ {
3283
+ this.state = 701;
3284
+ this.match(MalloyParser.STARSTAR);
3285
+ }
3286
+ break;
3280
3287
  default:
3281
3288
  throw new NoViableAltException_1.NoViableAltException(this);
3282
3289
  }
@@ -3304,28 +3311,28 @@ class MalloyParser extends Parser_1.Parser {
3304
3311
  try {
3305
3312
  this.enterOuterAlt(_localctx, 1);
3306
3313
  {
3307
- this.state = 703;
3314
+ this.state = 704;
3308
3315
  this.indexElement();
3309
- this.state = 710;
3316
+ this.state = 711;
3310
3317
  this._errHandler.sync(this);
3311
3318
  _la = this._input.LA(1);
3312
- while (((((_la - 100)) & ~0x1F) === 0 && ((1 << (_la - 100)) & ((1 << (MalloyParser.COMMA - 100)) | (1 << (MalloyParser.STAR - 100)) | (1 << (MalloyParser.IDENTIFIER - 100)) | (1 << (MalloyParser.OBJECT_NAME_LITERAL - 100)))) !== 0)) {
3319
+ while (((((_la - 100)) & ~0x1F) === 0 && ((1 << (_la - 100)) & ((1 << (MalloyParser.COMMA - 100)) | (1 << (MalloyParser.STAR - 100)) | (1 << (MalloyParser.STARSTAR - 100)) | (1 << (MalloyParser.IDENTIFIER - 100)) | (1 << (MalloyParser.OBJECT_NAME_LITERAL - 100)))) !== 0)) {
3313
3320
  {
3314
3321
  {
3315
- this.state = 705;
3322
+ this.state = 706;
3316
3323
  this._errHandler.sync(this);
3317
3324
  _la = this._input.LA(1);
3318
3325
  if (_la === MalloyParser.COMMA) {
3319
3326
  {
3320
- this.state = 704;
3327
+ this.state = 705;
3321
3328
  this.match(MalloyParser.COMMA);
3322
3329
  }
3323
3330
  }
3324
- this.state = 707;
3331
+ this.state = 708;
3325
3332
  this.indexElement();
3326
3333
  }
3327
3334
  }
3328
- this.state = 712;
3335
+ this.state = 713;
3329
3336
  this._errHandler.sync(this);
3330
3337
  _la = this._input.LA(1);
3331
3338
  }
@@ -3354,18 +3361,18 @@ class MalloyParser extends Parser_1.Parser {
3354
3361
  try {
3355
3362
  this.enterOuterAlt(_localctx, 1);
3356
3363
  {
3357
- this.state = 713;
3358
- this.match(MalloyParser.INDEX);
3359
3364
  this.state = 714;
3365
+ this.match(MalloyParser.INDEX);
3366
+ this.state = 715;
3360
3367
  this.indexFields();
3361
- this.state = 717;
3368
+ this.state = 718;
3362
3369
  this._errHandler.sync(this);
3363
3370
  _la = this._input.LA(1);
3364
3371
  if (_la === MalloyParser.BY) {
3365
3372
  {
3366
- this.state = 715;
3367
- this.match(MalloyParser.BY);
3368
3373
  this.state = 716;
3374
+ this.match(MalloyParser.BY);
3375
+ this.state = 717;
3369
3376
  this.fieldName();
3370
3377
  }
3371
3378
  }
@@ -3393,9 +3400,9 @@ class MalloyParser extends Parser_1.Parser {
3393
3400
  try {
3394
3401
  this.enterOuterAlt(_localctx, 1);
3395
3402
  {
3396
- this.state = 719;
3397
- this.match(MalloyParser.SAMPLE);
3398
3403
  this.state = 720;
3404
+ this.match(MalloyParser.SAMPLE);
3405
+ this.state = 721;
3399
3406
  this.sampleSpec();
3400
3407
  }
3401
3408
  }
@@ -3422,7 +3429,7 @@ class MalloyParser extends Parser_1.Parser {
3422
3429
  try {
3423
3430
  this.enterOuterAlt(_localctx, 1);
3424
3431
  {
3425
- this.state = 722;
3432
+ this.state = 723;
3426
3433
  _la = this._input.LA(1);
3427
3434
  if (!(_la === MalloyParser.FALSE || _la === MalloyParser.TRUE || _la === MalloyParser.PERCENT_LITERAL || _la === MalloyParser.INTEGER_LITERAL)) {
3428
3435
  this._errHandler.recoverInline(this);
@@ -3459,7 +3466,7 @@ class MalloyParser extends Parser_1.Parser {
3459
3466
  try {
3460
3467
  this.enterOuterAlt(_localctx, 1);
3461
3468
  {
3462
- this.state = 724;
3469
+ this.state = 725;
3463
3470
  _la = this._input.LA(1);
3464
3471
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & ((1 << (MalloyParser.AVG - 34)) | (1 << (MalloyParser.COUNT - 34)) | (1 << (MalloyParser.MAX - 34)) | (1 << (MalloyParser.MIN - 34)))) !== 0) || _la === MalloyParser.SUM)) {
3465
3472
  this._errHandler.recoverInline(this);
@@ -3496,7 +3503,7 @@ class MalloyParser extends Parser_1.Parser {
3496
3503
  try {
3497
3504
  this.enterOuterAlt(_localctx, 1);
3498
3505
  {
3499
- this.state = 726;
3506
+ this.state = 727;
3500
3507
  _la = this._input.LA(1);
3501
3508
  if (!(((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & ((1 << (MalloyParser.BOOLEAN - 35)) | (1 << (MalloyParser.DATE - 35)) | (1 << (MalloyParser.NUMBER - 35)))) !== 0) || _la === MalloyParser.STRING || _la === MalloyParser.TIMESTAMP)) {
3502
3509
  this._errHandler.recoverInline(this);
@@ -3533,7 +3540,7 @@ class MalloyParser extends Parser_1.Parser {
3533
3540
  try {
3534
3541
  this.enterOuterAlt(_localctx, 1);
3535
3542
  {
3536
- this.state = 728;
3543
+ this.state = 729;
3537
3544
  _la = this._input.LA(1);
3538
3545
  if (!(((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (MalloyParser.LT - 102)) | (1 << (MalloyParser.GT - 102)) | (1 << (MalloyParser.EQ - 102)) | (1 << (MalloyParser.NE - 102)) | (1 << (MalloyParser.LTE - 102)) | (1 << (MalloyParser.GTE - 102)) | (1 << (MalloyParser.NOT_MATCH - 102)) | (1 << (MalloyParser.MATCH - 102)))) !== 0))) {
3539
3546
  this._errHandler.recoverInline(this);
@@ -3568,14 +3575,14 @@ class MalloyParser extends Parser_1.Parser {
3568
3575
  this.enterRule(_localctx, 156, MalloyParser.RULE_literal);
3569
3576
  let _la;
3570
3577
  try {
3571
- this.state = 737;
3578
+ this.state = 738;
3572
3579
  this._errHandler.sync(this);
3573
3580
  switch (this._input.LA(1)) {
3574
3581
  case MalloyParser.STRING_LITERAL:
3575
3582
  _localctx = new ExprStringContext(_localctx);
3576
3583
  this.enterOuterAlt(_localctx, 1);
3577
3584
  {
3578
- this.state = 730;
3585
+ this.state = 731;
3579
3586
  this.match(MalloyParser.STRING_LITERAL);
3580
3587
  }
3581
3588
  break;
@@ -3584,7 +3591,7 @@ class MalloyParser extends Parser_1.Parser {
3584
3591
  _localctx = new ExprNumberContext(_localctx);
3585
3592
  this.enterOuterAlt(_localctx, 2);
3586
3593
  {
3587
- this.state = 731;
3594
+ this.state = 732;
3588
3595
  _la = this._input.LA(1);
3589
3596
  if (!(_la === MalloyParser.INTEGER_LITERAL || _la === MalloyParser.NUMERIC_LITERAL)) {
3590
3597
  this._errHandler.recoverInline(this);
@@ -3607,7 +3614,7 @@ class MalloyParser extends Parser_1.Parser {
3607
3614
  _localctx = new ExprTimeContext(_localctx);
3608
3615
  this.enterOuterAlt(_localctx, 3);
3609
3616
  {
3610
- this.state = 732;
3617
+ this.state = 733;
3611
3618
  this.dateLiteral();
3612
3619
  }
3613
3620
  break;
@@ -3615,7 +3622,7 @@ class MalloyParser extends Parser_1.Parser {
3615
3622
  _localctx = new ExprNULLContext(_localctx);
3616
3623
  this.enterOuterAlt(_localctx, 4);
3617
3624
  {
3618
- this.state = 733;
3625
+ this.state = 734;
3619
3626
  this.match(MalloyParser.NULL);
3620
3627
  }
3621
3628
  break;
@@ -3624,7 +3631,7 @@ class MalloyParser extends Parser_1.Parser {
3624
3631
  _localctx = new ExprBoolContext(_localctx);
3625
3632
  this.enterOuterAlt(_localctx, 5);
3626
3633
  {
3627
- this.state = 734;
3634
+ this.state = 735;
3628
3635
  _la = this._input.LA(1);
3629
3636
  if (!(_la === MalloyParser.FALSE || _la === MalloyParser.TRUE)) {
3630
3637
  this._errHandler.recoverInline(this);
@@ -3642,7 +3649,7 @@ class MalloyParser extends Parser_1.Parser {
3642
3649
  _localctx = new ExprRegexContext(_localctx);
3643
3650
  this.enterOuterAlt(_localctx, 6);
3644
3651
  {
3645
- this.state = 735;
3652
+ this.state = 736;
3646
3653
  this.match(MalloyParser.HACKY_REGEX);
3647
3654
  }
3648
3655
  break;
@@ -3650,7 +3657,7 @@ class MalloyParser extends Parser_1.Parser {
3650
3657
  _localctx = new ExprNowContext(_localctx);
3651
3658
  this.enterOuterAlt(_localctx, 7);
3652
3659
  {
3653
- this.state = 736;
3660
+ this.state = 737;
3654
3661
  this.match(MalloyParser.NOW);
3655
3662
  }
3656
3663
  break;
@@ -3678,14 +3685,14 @@ class MalloyParser extends Parser_1.Parser {
3678
3685
  let _localctx = new DateLiteralContext(this._ctx, this.state);
3679
3686
  this.enterRule(_localctx, 158, MalloyParser.RULE_dateLiteral);
3680
3687
  try {
3681
- this.state = 745;
3688
+ this.state = 746;
3682
3689
  this._errHandler.sync(this);
3683
3690
  switch (this._input.LA(1)) {
3684
3691
  case MalloyParser.LITERAL_TIMESTAMP:
3685
3692
  _localctx = new LiteralTimestampContext(_localctx);
3686
3693
  this.enterOuterAlt(_localctx, 1);
3687
3694
  {
3688
- this.state = 739;
3695
+ this.state = 740;
3689
3696
  this.match(MalloyParser.LITERAL_TIMESTAMP);
3690
3697
  }
3691
3698
  break;
@@ -3693,7 +3700,7 @@ class MalloyParser extends Parser_1.Parser {
3693
3700
  _localctx = new LiteralDayContext(_localctx);
3694
3701
  this.enterOuterAlt(_localctx, 2);
3695
3702
  {
3696
- this.state = 740;
3703
+ this.state = 741;
3697
3704
  this.match(MalloyParser.LITERAL_DAY);
3698
3705
  }
3699
3706
  break;
@@ -3701,7 +3708,7 @@ class MalloyParser extends Parser_1.Parser {
3701
3708
  _localctx = new LiteralWeekContext(_localctx);
3702
3709
  this.enterOuterAlt(_localctx, 3);
3703
3710
  {
3704
- this.state = 741;
3711
+ this.state = 742;
3705
3712
  this.match(MalloyParser.LITERAL_WEEK);
3706
3713
  }
3707
3714
  break;
@@ -3709,7 +3716,7 @@ class MalloyParser extends Parser_1.Parser {
3709
3716
  _localctx = new LiteralMonthContext(_localctx);
3710
3717
  this.enterOuterAlt(_localctx, 4);
3711
3718
  {
3712
- this.state = 742;
3719
+ this.state = 743;
3713
3720
  this.match(MalloyParser.LITERAL_MONTH);
3714
3721
  }
3715
3722
  break;
@@ -3717,7 +3724,7 @@ class MalloyParser extends Parser_1.Parser {
3717
3724
  _localctx = new LiteralQuarterContext(_localctx);
3718
3725
  this.enterOuterAlt(_localctx, 5);
3719
3726
  {
3720
- this.state = 743;
3727
+ this.state = 744;
3721
3728
  this.match(MalloyParser.LITERAL_QUARTER);
3722
3729
  }
3723
3730
  break;
@@ -3725,7 +3732,7 @@ class MalloyParser extends Parser_1.Parser {
3725
3732
  _localctx = new LiteralYearContext(_localctx);
3726
3733
  this.enterOuterAlt(_localctx, 6);
3727
3734
  {
3728
- this.state = 744;
3735
+ this.state = 745;
3729
3736
  this.match(MalloyParser.LITERAL_YEAR);
3730
3737
  }
3731
3738
  break;
@@ -3755,7 +3762,7 @@ class MalloyParser extends Parser_1.Parser {
3755
3762
  try {
3756
3763
  this.enterOuterAlt(_localctx, 1);
3757
3764
  {
3758
- this.state = 747;
3765
+ this.state = 748;
3759
3766
  this.match(MalloyParser.STRING_LITERAL);
3760
3767
  }
3761
3768
  }
@@ -3782,7 +3789,7 @@ class MalloyParser extends Parser_1.Parser {
3782
3789
  try {
3783
3790
  this.enterOuterAlt(_localctx, 1);
3784
3791
  {
3785
- this.state = 749;
3792
+ this.state = 750;
3786
3793
  _la = this._input.LA(1);
3787
3794
  if (!(_la === MalloyParser.IDENTIFIER || _la === MalloyParser.OBJECT_NAME_LITERAL)) {
3788
3795
  this._errHandler.recoverInline(this);
@@ -3819,7 +3826,7 @@ class MalloyParser extends Parser_1.Parser {
3819
3826
  try {
3820
3827
  this.enterOuterAlt(_localctx, 1);
3821
3828
  {
3822
- this.state = 751;
3829
+ this.state = 752;
3823
3830
  _la = this._input.LA(1);
3824
3831
  if (!(((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & ((1 << (MalloyParser.DAY - 42)) | (1 << (MalloyParser.HOUR - 42)) | (1 << (MalloyParser.MINUTE - 42)) | (1 << (MalloyParser.MONTH - 42)) | (1 << (MalloyParser.QUARTER - 42)) | (1 << (MalloyParser.SECOND - 42)))) !== 0) || _la === MalloyParser.WEEK || _la === MalloyParser.YEAR)) {
3825
3832
  this._errHandler.recoverInline(this);
@@ -3856,7 +3863,7 @@ class MalloyParser extends Parser_1.Parser {
3856
3863
  try {
3857
3864
  this.enterOuterAlt(_localctx, 1);
3858
3865
  {
3859
- this.state = 753;
3866
+ this.state = 754;
3860
3867
  _la = this._input.LA(1);
3861
3868
  if (!(_la === MalloyParser.ALL || _la === MalloyParser.EXCLUDE)) {
3862
3869
  this._errHandler.recoverInline(this);
@@ -3901,7 +3908,7 @@ class MalloyParser extends Parser_1.Parser {
3901
3908
  let _alt;
3902
3909
  this.enterOuterAlt(_localctx, 1);
3903
3910
  {
3904
- this.state = 815;
3911
+ this.state = 816;
3905
3912
  this._errHandler.sync(this);
3906
3913
  switch (this.interpreter.adaptivePredict(this._input, 89, this._ctx)) {
3907
3914
  case 1:
@@ -3909,7 +3916,7 @@ class MalloyParser extends Parser_1.Parser {
3909
3916
  _localctx = new ExprFieldPathContext(_localctx);
3910
3917
  this._ctx = _localctx;
3911
3918
  _prevctx = _localctx;
3912
- this.state = 756;
3919
+ this.state = 757;
3913
3920
  this.fieldPath();
3914
3921
  }
3915
3922
  break;
@@ -3918,7 +3925,7 @@ class MalloyParser extends Parser_1.Parser {
3918
3925
  _localctx = new ExprLiteralContext(_localctx);
3919
3926
  this._ctx = _localctx;
3920
3927
  _prevctx = _localctx;
3921
- this.state = 757;
3928
+ this.state = 758;
3922
3929
  this.literal();
3923
3930
  }
3924
3931
  break;
@@ -3927,9 +3934,9 @@ class MalloyParser extends Parser_1.Parser {
3927
3934
  _localctx = new ExprMinusContext(_localctx);
3928
3935
  this._ctx = _localctx;
3929
3936
  _prevctx = _localctx;
3930
- this.state = 758;
3931
- this.match(MalloyParser.MINUS);
3932
3937
  this.state = 759;
3938
+ this.match(MalloyParser.MINUS);
3939
+ this.state = 760;
3933
3940
  this.fieldExpr(20);
3934
3941
  }
3935
3942
  break;
@@ -3938,9 +3945,9 @@ class MalloyParser extends Parser_1.Parser {
3938
3945
  _localctx = new ExprNotContext(_localctx);
3939
3946
  this._ctx = _localctx;
3940
3947
  _prevctx = _localctx;
3941
- this.state = 760;
3942
- this.match(MalloyParser.NOT);
3943
3948
  this.state = 761;
3949
+ this.match(MalloyParser.NOT);
3950
+ this.state = 762;
3944
3951
  this.fieldExpr(9);
3945
3952
  }
3946
3953
  break;
@@ -3949,17 +3956,17 @@ class MalloyParser extends Parser_1.Parser {
3949
3956
  _localctx = new ExprCastContext(_localctx);
3950
3957
  this._ctx = _localctx;
3951
3958
  _prevctx = _localctx;
3952
- this.state = 762;
3953
- this.match(MalloyParser.CAST);
3954
3959
  this.state = 763;
3955
- this.match(MalloyParser.OPAREN);
3960
+ this.match(MalloyParser.CAST);
3956
3961
  this.state = 764;
3957
- this.fieldExpr(0);
3962
+ this.match(MalloyParser.OPAREN);
3958
3963
  this.state = 765;
3959
- this.match(MalloyParser.AS);
3964
+ this.fieldExpr(0);
3960
3965
  this.state = 766;
3961
- this.malloyType();
3966
+ this.match(MalloyParser.AS);
3962
3967
  this.state = 767;
3968
+ this.malloyType();
3969
+ this.state = 768;
3963
3970
  this.match(MalloyParser.CPAREN);
3964
3971
  }
3965
3972
  break;
@@ -3968,15 +3975,15 @@ class MalloyParser extends Parser_1.Parser {
3968
3975
  _localctx = new ExprCountDisinctContext(_localctx);
3969
3976
  this._ctx = _localctx;
3970
3977
  _prevctx = _localctx;
3971
- this.state = 769;
3972
- this.match(MalloyParser.COUNT);
3973
3978
  this.state = 770;
3974
- this.match(MalloyParser.OPAREN);
3979
+ this.match(MalloyParser.COUNT);
3975
3980
  this.state = 771;
3976
- this.match(MalloyParser.DISTINCT);
3981
+ this.match(MalloyParser.OPAREN);
3977
3982
  this.state = 772;
3978
- this.fieldExpr(0);
3983
+ this.match(MalloyParser.DISTINCT);
3979
3984
  this.state = 773;
3985
+ this.fieldExpr(0);
3986
+ this.state = 774;
3980
3987
  this.match(MalloyParser.CPAREN);
3981
3988
  }
3982
3989
  break;
@@ -3985,22 +3992,22 @@ class MalloyParser extends Parser_1.Parser {
3985
3992
  _localctx = new ExprAggregateContext(_localctx);
3986
3993
  this._ctx = _localctx;
3987
3994
  _prevctx = _localctx;
3988
- this.state = 778;
3995
+ this.state = 779;
3989
3996
  this._errHandler.sync(this);
3990
3997
  _la = this._input.LA(1);
3991
3998
  if (_la === MalloyParser.IDENTIFIER || _la === MalloyParser.OBJECT_NAME_LITERAL) {
3992
3999
  {
3993
- this.state = 775;
3994
- this.fieldPath();
3995
4000
  this.state = 776;
4001
+ this.fieldPath();
4002
+ this.state = 777;
3996
4003
  this.match(MalloyParser.DOT);
3997
4004
  }
3998
4005
  }
3999
- this.state = 780;
4000
- this.aggregate();
4001
4006
  this.state = 781;
4007
+ this.aggregate();
4008
+ this.state = 782;
4002
4009
  this.match(MalloyParser.OPAREN);
4003
- this.state = 784;
4010
+ this.state = 785;
4004
4011
  this._errHandler.sync(this);
4005
4012
  switch (this._input.LA(1)) {
4006
4013
  case MalloyParser.ALL:
@@ -4040,13 +4047,13 @@ class MalloyParser extends Parser_1.Parser {
4040
4047
  case MalloyParser.NUMERIC_LITERAL:
4041
4048
  case MalloyParser.OBJECT_NAME_LITERAL:
4042
4049
  {
4043
- this.state = 782;
4050
+ this.state = 783;
4044
4051
  this.fieldExpr(0);
4045
4052
  }
4046
4053
  break;
4047
4054
  case MalloyParser.STAR:
4048
4055
  {
4049
- this.state = 783;
4056
+ this.state = 784;
4050
4057
  this.match(MalloyParser.STAR);
4051
4058
  }
4052
4059
  break;
@@ -4055,7 +4062,7 @@ class MalloyParser extends Parser_1.Parser {
4055
4062
  default:
4056
4063
  break;
4057
4064
  }
4058
- this.state = 786;
4065
+ this.state = 787;
4059
4066
  this.match(MalloyParser.CPAREN);
4060
4067
  }
4061
4068
  break;
@@ -4064,11 +4071,11 @@ class MalloyParser extends Parser_1.Parser {
4064
4071
  _localctx = new ExprExprContext(_localctx);
4065
4072
  this._ctx = _localctx;
4066
4073
  _prevctx = _localctx;
4067
- this.state = 788;
4068
- this.match(MalloyParser.OPAREN);
4069
4074
  this.state = 789;
4070
- this.partialAllowedFieldExpr();
4075
+ this.match(MalloyParser.OPAREN);
4071
4076
  this.state = 790;
4077
+ this.partialAllowedFieldExpr();
4078
+ this.state = 791;
4072
4079
  this.match(MalloyParser.CPAREN);
4073
4080
  }
4074
4081
  break;
@@ -4077,13 +4084,13 @@ class MalloyParser extends Parser_1.Parser {
4077
4084
  _localctx = new ExprFuncContext(_localctx);
4078
4085
  this._ctx = _localctx;
4079
4086
  _prevctx = _localctx;
4080
- this.state = 794;
4087
+ this.state = 795;
4081
4088
  this._errHandler.sync(this);
4082
4089
  switch (this._input.LA(1)) {
4083
4090
  case MalloyParser.IDENTIFIER:
4084
4091
  case MalloyParser.OBJECT_NAME_LITERAL:
4085
4092
  {
4086
- this.state = 792;
4093
+ this.state = 793;
4087
4094
  this.id();
4088
4095
  }
4089
4096
  break;
@@ -4096,27 +4103,27 @@ class MalloyParser extends Parser_1.Parser {
4096
4103
  case MalloyParser.WEEK:
4097
4104
  case MalloyParser.YEAR:
4098
4105
  {
4099
- this.state = 793;
4106
+ this.state = 794;
4100
4107
  this.timeframe();
4101
4108
  }
4102
4109
  break;
4103
4110
  default:
4104
4111
  throw new NoViableAltException_1.NoViableAltException(this);
4105
4112
  }
4106
- this.state = 796;
4113
+ this.state = 797;
4107
4114
  this.match(MalloyParser.OPAREN);
4108
4115
  {
4109
- this.state = 798;
4116
+ this.state = 799;
4110
4117
  this._errHandler.sync(this);
4111
4118
  _la = this._input.LA(1);
4112
4119
  if (((((_la - 30)) & ~0x1F) === 0 && ((1 << (_la - 30)) & ((1 << (MalloyParser.ALL - 30)) | (1 << (MalloyParser.AVG - 30)) | (1 << (MalloyParser.CAST - 30)) | (1 << (MalloyParser.COUNT - 30)) | (1 << (MalloyParser.DAY - 30)) | (1 << (MalloyParser.EXCLUDE - 30)) | (1 << (MalloyParser.FALSE - 30)) | (1 << (MalloyParser.HOUR - 30)) | (1 << (MalloyParser.MAX - 30)) | (1 << (MalloyParser.MIN - 30)) | (1 << (MalloyParser.MINUTE - 30)) | (1 << (MalloyParser.MONTH - 30)))) !== 0) || ((((_la - 62)) & ~0x1F) === 0 && ((1 << (_la - 62)) & ((1 << (MalloyParser.NOT - 62)) | (1 << (MalloyParser.NOW - 62)) | (1 << (MalloyParser.NULL - 62)) | (1 << (MalloyParser.PICK - 62)) | (1 << (MalloyParser.QUARTER - 62)) | (1 << (MalloyParser.SECOND - 62)) | (1 << (MalloyParser.SUM - 62)) | (1 << (MalloyParser.TRUE - 62)) | (1 << (MalloyParser.WEEK - 62)) | (1 << (MalloyParser.YEAR - 62)) | (1 << (MalloyParser.HACKY_REGEX - 62)) | (1 << (MalloyParser.STRING_LITERAL - 62)) | (1 << (MalloyParser.OPAREN - 62)))) !== 0) || ((((_la - 109)) & ~0x1F) === 0 && ((1 << (_la - 109)) & ((1 << (MalloyParser.MINUS - 109)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 109)) | (1 << (MalloyParser.LITERAL_DAY - 109)) | (1 << (MalloyParser.LITERAL_QUARTER - 109)) | (1 << (MalloyParser.LITERAL_MONTH - 109)) | (1 << (MalloyParser.LITERAL_WEEK - 109)) | (1 << (MalloyParser.LITERAL_YEAR - 109)) | (1 << (MalloyParser.IDENTIFIER - 109)) | (1 << (MalloyParser.INTEGER_LITERAL - 109)) | (1 << (MalloyParser.NUMERIC_LITERAL - 109)) | (1 << (MalloyParser.OBJECT_NAME_LITERAL - 109)))) !== 0)) {
4113
4120
  {
4114
- this.state = 797;
4121
+ this.state = 798;
4115
4122
  this.argumentList();
4116
4123
  }
4117
4124
  }
4118
4125
  }
4119
- this.state = 800;
4126
+ this.state = 801;
4120
4127
  this.match(MalloyParser.CPAREN);
4121
4128
  }
4122
4129
  break;
@@ -4125,7 +4132,7 @@ class MalloyParser extends Parser_1.Parser {
4125
4132
  _localctx = new ExprPickContext(_localctx);
4126
4133
  this._ctx = _localctx;
4127
4134
  _prevctx = _localctx;
4128
- this.state = 802;
4135
+ this.state = 803;
4129
4136
  this.pickStatement();
4130
4137
  }
4131
4138
  break;
@@ -4134,35 +4141,35 @@ class MalloyParser extends Parser_1.Parser {
4134
4141
  _localctx = new ExprUngroupContext(_localctx);
4135
4142
  this._ctx = _localctx;
4136
4143
  _prevctx = _localctx;
4137
- this.state = 803;
4138
- this.ungroup();
4139
4144
  this.state = 804;
4140
- this.match(MalloyParser.OPAREN);
4145
+ this.ungroup();
4141
4146
  this.state = 805;
4147
+ this.match(MalloyParser.OPAREN);
4148
+ this.state = 806;
4142
4149
  this.fieldExpr(0);
4143
- this.state = 810;
4150
+ this.state = 811;
4144
4151
  this._errHandler.sync(this);
4145
4152
  _la = this._input.LA(1);
4146
4153
  while (_la === MalloyParser.COMMA) {
4147
4154
  {
4148
4155
  {
4149
- this.state = 806;
4150
- this.match(MalloyParser.COMMA);
4151
4156
  this.state = 807;
4157
+ this.match(MalloyParser.COMMA);
4158
+ this.state = 808;
4152
4159
  this.fieldName();
4153
4160
  }
4154
4161
  }
4155
- this.state = 812;
4162
+ this.state = 813;
4156
4163
  this._errHandler.sync(this);
4157
4164
  _la = this._input.LA(1);
4158
4165
  }
4159
- this.state = 813;
4166
+ this.state = 814;
4160
4167
  this.match(MalloyParser.CPAREN);
4161
4168
  }
4162
4169
  break;
4163
4170
  }
4164
4171
  this._ctx._stop = this._input.tryLT(-1);
4165
- this.state = 859;
4172
+ this.state = 860;
4166
4173
  this._errHandler.sync(this);
4167
4174
  _alt = this.interpreter.adaptivePredict(this._input, 91, this._ctx);
4168
4175
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
@@ -4172,18 +4179,18 @@ class MalloyParser extends Parser_1.Parser {
4172
4179
  }
4173
4180
  _prevctx = _localctx;
4174
4181
  {
4175
- this.state = 857;
4182
+ this.state = 858;
4176
4183
  this._errHandler.sync(this);
4177
4184
  switch (this.interpreter.adaptivePredict(this._input, 90, this._ctx)) {
4178
4185
  case 1:
4179
4186
  {
4180
4187
  _localctx = new ExprMulDivContext(new FieldExprContext(_parentctx, _parentState));
4181
4188
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4182
- this.state = 817;
4189
+ this.state = 818;
4183
4190
  if (!(this.precpred(this._ctx, 16))) {
4184
4191
  throw this.createFailedPredicateException("this.precpred(this._ctx, 16)");
4185
4192
  }
4186
- this.state = 818;
4193
+ this.state = 819;
4187
4194
  _la = this._input.LA(1);
4188
4195
  if (!(((((_la - 110)) & ~0x1F) === 0 && ((1 << (_la - 110)) & ((1 << (MalloyParser.STAR - 110)) | (1 << (MalloyParser.SLASH - 110)) | (1 << (MalloyParser.PERCENT - 110)))) !== 0))) {
4189
4196
  this._errHandler.recoverInline(this);
@@ -4195,7 +4202,7 @@ class MalloyParser extends Parser_1.Parser {
4195
4202
  this._errHandler.reportMatch(this);
4196
4203
  this.consume();
4197
4204
  }
4198
- this.state = 819;
4205
+ this.state = 820;
4199
4206
  this.fieldExpr(17);
4200
4207
  }
4201
4208
  break;
@@ -4203,11 +4210,11 @@ class MalloyParser extends Parser_1.Parser {
4203
4210
  {
4204
4211
  _localctx = new ExprAddSubContext(new FieldExprContext(_parentctx, _parentState));
4205
4212
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4206
- this.state = 820;
4213
+ this.state = 821;
4207
4214
  if (!(this.precpred(this._ctx, 15))) {
4208
4215
  throw this.createFailedPredicateException("this.precpred(this._ctx, 15)");
4209
4216
  }
4210
- this.state = 821;
4217
+ this.state = 822;
4211
4218
  _la = this._input.LA(1);
4212
4219
  if (!(_la === MalloyParser.PLUS || _la === MalloyParser.MINUS)) {
4213
4220
  this._errHandler.recoverInline(this);
@@ -4219,7 +4226,7 @@ class MalloyParser extends Parser_1.Parser {
4219
4226
  this._errHandler.reportMatch(this);
4220
4227
  this.consume();
4221
4228
  }
4222
- this.state = 822;
4229
+ this.state = 823;
4223
4230
  this.fieldExpr(16);
4224
4231
  }
4225
4232
  break;
@@ -4227,13 +4234,13 @@ class MalloyParser extends Parser_1.Parser {
4227
4234
  {
4228
4235
  _localctx = new ExprRangeContext(new FieldExprContext(_parentctx, _parentState));
4229
4236
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4230
- this.state = 823;
4237
+ this.state = 824;
4231
4238
  if (!(this.precpred(this._ctx, 14))) {
4232
4239
  throw this.createFailedPredicateException("this.precpred(this._ctx, 14)");
4233
4240
  }
4234
- this.state = 824;
4235
- this.match(MalloyParser.TO);
4236
4241
  this.state = 825;
4242
+ this.match(MalloyParser.TO);
4243
+ this.state = 826;
4237
4244
  this.fieldExpr(15);
4238
4245
  }
4239
4246
  break;
@@ -4241,13 +4248,13 @@ class MalloyParser extends Parser_1.Parser {
4241
4248
  {
4242
4249
  _localctx = new ExprCompareContext(new FieldExprContext(_parentctx, _parentState));
4243
4250
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4244
- this.state = 826;
4251
+ this.state = 827;
4245
4252
  if (!(this.precpred(this._ctx, 11))) {
4246
4253
  throw this.createFailedPredicateException("this.precpred(this._ctx, 11)");
4247
4254
  }
4248
- this.state = 827;
4249
- this.compareOp();
4250
4255
  this.state = 828;
4256
+ this.compareOp();
4257
+ this.state = 829;
4251
4258
  this.fieldExpr(12);
4252
4259
  }
4253
4260
  break;
@@ -4255,11 +4262,11 @@ class MalloyParser extends Parser_1.Parser {
4255
4262
  {
4256
4263
  _localctx = new ExprLogicalContext(new FieldExprContext(_parentctx, _parentState));
4257
4264
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4258
- this.state = 830;
4265
+ this.state = 831;
4259
4266
  if (!(this.precpred(this._ctx, 8))) {
4260
4267
  throw this.createFailedPredicateException("this.precpred(this._ctx, 8)");
4261
4268
  }
4262
- this.state = 831;
4269
+ this.state = 832;
4263
4270
  _la = this._input.LA(1);
4264
4271
  if (!(_la === MalloyParser.AND || _la === MalloyParser.OR)) {
4265
4272
  this._errHandler.recoverInline(this);
@@ -4271,7 +4278,7 @@ class MalloyParser extends Parser_1.Parser {
4271
4278
  this._errHandler.reportMatch(this);
4272
4279
  this.consume();
4273
4280
  }
4274
- this.state = 832;
4281
+ this.state = 833;
4275
4282
  this.fieldExpr(9);
4276
4283
  }
4277
4284
  break;
@@ -4279,15 +4286,15 @@ class MalloyParser extends Parser_1.Parser {
4279
4286
  {
4280
4287
  _localctx = new ExprFilterContext(new FieldExprContext(_parentctx, _parentState));
4281
4288
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4282
- this.state = 833;
4289
+ this.state = 834;
4283
4290
  if (!(this.precpred(this._ctx, 22))) {
4284
4291
  throw this.createFailedPredicateException("this.precpred(this._ctx, 22)");
4285
4292
  }
4286
- this.state = 834;
4287
- this.match(MalloyParser.OCURLY);
4288
4293
  this.state = 835;
4289
- this.filteredBy();
4294
+ this.match(MalloyParser.OCURLY);
4290
4295
  this.state = 836;
4296
+ this.filteredBy();
4297
+ this.state = 837;
4291
4298
  this.match(MalloyParser.CCURLY);
4292
4299
  }
4293
4300
  break;
@@ -4295,11 +4302,11 @@ class MalloyParser extends Parser_1.Parser {
4295
4302
  {
4296
4303
  _localctx = new ExprDurationContext(new FieldExprContext(_parentctx, _parentState));
4297
4304
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4298
- this.state = 838;
4305
+ this.state = 839;
4299
4306
  if (!(this.precpred(this._ctx, 19))) {
4300
4307
  throw this.createFailedPredicateException("this.precpred(this._ctx, 19)");
4301
4308
  }
4302
- this.state = 839;
4309
+ this.state = 840;
4303
4310
  this.timeframe();
4304
4311
  }
4305
4312
  break;
@@ -4307,13 +4314,13 @@ class MalloyParser extends Parser_1.Parser {
4307
4314
  {
4308
4315
  _localctx = new ExprTimeTruncContext(new FieldExprContext(_parentctx, _parentState));
4309
4316
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4310
- this.state = 840;
4317
+ this.state = 841;
4311
4318
  if (!(this.precpred(this._ctx, 18))) {
4312
4319
  throw this.createFailedPredicateException("this.precpred(this._ctx, 18)");
4313
4320
  }
4314
- this.state = 841;
4315
- this.match(MalloyParser.DOT);
4316
4321
  this.state = 842;
4322
+ this.match(MalloyParser.DOT);
4323
+ this.state = 843;
4317
4324
  this.timeframe();
4318
4325
  }
4319
4326
  break;
@@ -4321,13 +4328,13 @@ class MalloyParser extends Parser_1.Parser {
4321
4328
  {
4322
4329
  _localctx = new ExprSafeCastContext(new FieldExprContext(_parentctx, _parentState));
4323
4330
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4324
- this.state = 843;
4331
+ this.state = 844;
4325
4332
  if (!(this.precpred(this._ctx, 17))) {
4326
4333
  throw this.createFailedPredicateException("this.precpred(this._ctx, 17)");
4327
4334
  }
4328
- this.state = 844;
4329
- this.match(MalloyParser.DOUBLECOLON);
4330
4335
  this.state = 845;
4336
+ this.match(MalloyParser.DOUBLECOLON);
4337
+ this.state = 846;
4331
4338
  this.malloyType();
4332
4339
  }
4333
4340
  break;
@@ -4336,15 +4343,15 @@ class MalloyParser extends Parser_1.Parser {
4336
4343
  _localctx = new ExprForRangeContext(new FieldExprContext(_parentctx, _parentState));
4337
4344
  _localctx._startAt = _prevctx;
4338
4345
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4339
- this.state = 846;
4346
+ this.state = 847;
4340
4347
  if (!(this.precpred(this._ctx, 13))) {
4341
4348
  throw this.createFailedPredicateException("this.precpred(this._ctx, 13)");
4342
4349
  }
4343
- this.state = 847;
4344
- this.match(MalloyParser.FOR);
4345
4350
  this.state = 848;
4346
- _localctx._duration = this.fieldExpr(0);
4351
+ this.match(MalloyParser.FOR);
4347
4352
  this.state = 849;
4353
+ _localctx._duration = this.fieldExpr(0);
4354
+ this.state = 850;
4348
4355
  this.timeframe();
4349
4356
  }
4350
4357
  break;
@@ -4352,11 +4359,11 @@ class MalloyParser extends Parser_1.Parser {
4352
4359
  {
4353
4360
  _localctx = new ExprLogicalTreeContext(new FieldExprContext(_parentctx, _parentState));
4354
4361
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4355
- this.state = 851;
4362
+ this.state = 852;
4356
4363
  if (!(this.precpred(this._ctx, 12))) {
4357
4364
  throw this.createFailedPredicateException("this.precpred(this._ctx, 12)");
4358
4365
  }
4359
- this.state = 852;
4366
+ this.state = 853;
4360
4367
  _la = this._input.LA(1);
4361
4368
  if (!(_la === MalloyParser.AMPER || _la === MalloyParser.BAR)) {
4362
4369
  this._errHandler.recoverInline(this);
@@ -4368,7 +4375,7 @@ class MalloyParser extends Parser_1.Parser {
4368
4375
  this._errHandler.reportMatch(this);
4369
4376
  this.consume();
4370
4377
  }
4371
- this.state = 853;
4378
+ this.state = 854;
4372
4379
  this.partialAllowedFieldExpr();
4373
4380
  }
4374
4381
  break;
@@ -4376,11 +4383,11 @@ class MalloyParser extends Parser_1.Parser {
4376
4383
  {
4377
4384
  _localctx = new ExprApplyContext(new FieldExprContext(_parentctx, _parentState));
4378
4385
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
4379
- this.state = 854;
4386
+ this.state = 855;
4380
4387
  if (!(this.precpred(this._ctx, 10))) {
4381
4388
  throw this.createFailedPredicateException("this.precpred(this._ctx, 10)");
4382
4389
  }
4383
- this.state = 855;
4390
+ this.state = 856;
4384
4391
  _la = this._input.LA(1);
4385
4392
  if (!(_la === MalloyParser.QMARK || _la === MalloyParser.COLON)) {
4386
4393
  this._errHandler.recoverInline(this);
@@ -4392,14 +4399,14 @@ class MalloyParser extends Parser_1.Parser {
4392
4399
  this._errHandler.reportMatch(this);
4393
4400
  this.consume();
4394
4401
  }
4395
- this.state = 856;
4402
+ this.state = 857;
4396
4403
  this.partialAllowedFieldExpr();
4397
4404
  }
4398
4405
  break;
4399
4406
  }
4400
4407
  }
4401
4408
  }
4402
- this.state = 861;
4409
+ this.state = 862;
4403
4410
  this._errHandler.sync(this);
4404
4411
  _alt = this.interpreter.adaptivePredict(this._input, 91, this._ctx);
4405
4412
  }
@@ -4428,16 +4435,16 @@ class MalloyParser extends Parser_1.Parser {
4428
4435
  try {
4429
4436
  this.enterOuterAlt(_localctx, 1);
4430
4437
  {
4431
- this.state = 863;
4438
+ this.state = 864;
4432
4439
  this._errHandler.sync(this);
4433
4440
  _la = this._input.LA(1);
4434
4441
  if (((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (MalloyParser.LT - 102)) | (1 << (MalloyParser.GT - 102)) | (1 << (MalloyParser.EQ - 102)) | (1 << (MalloyParser.NE - 102)) | (1 << (MalloyParser.LTE - 102)) | (1 << (MalloyParser.GTE - 102)) | (1 << (MalloyParser.NOT_MATCH - 102)) | (1 << (MalloyParser.MATCH - 102)))) !== 0)) {
4435
4442
  {
4436
- this.state = 862;
4443
+ this.state = 863;
4437
4444
  this.compareOp();
4438
4445
  }
4439
4446
  }
4440
- this.state = 865;
4447
+ this.state = 866;
4441
4448
  this.fieldExpr(0);
4442
4449
  }
4443
4450
  }
@@ -4464,7 +4471,7 @@ class MalloyParser extends Parser_1.Parser {
4464
4471
  let _alt;
4465
4472
  this.enterOuterAlt(_localctx, 1);
4466
4473
  {
4467
- this.state = 868;
4474
+ this.state = 869;
4468
4475
  this._errHandler.sync(this);
4469
4476
  _alt = 1;
4470
4477
  do {
@@ -4472,7 +4479,7 @@ class MalloyParser extends Parser_1.Parser {
4472
4479
  case 1:
4473
4480
  {
4474
4481
  {
4475
- this.state = 867;
4482
+ this.state = 868;
4476
4483
  this.pick();
4477
4484
  }
4478
4485
  }
@@ -4480,18 +4487,18 @@ class MalloyParser extends Parser_1.Parser {
4480
4487
  default:
4481
4488
  throw new NoViableAltException_1.NoViableAltException(this);
4482
4489
  }
4483
- this.state = 870;
4490
+ this.state = 871;
4484
4491
  this._errHandler.sync(this);
4485
4492
  _alt = this.interpreter.adaptivePredict(this._input, 93, this._ctx);
4486
4493
  } while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER);
4487
- this.state = 874;
4494
+ this.state = 875;
4488
4495
  this._errHandler.sync(this);
4489
4496
  switch (this.interpreter.adaptivePredict(this._input, 94, this._ctx)) {
4490
4497
  case 1:
4491
4498
  {
4492
- this.state = 872;
4493
- this.match(MalloyParser.ELSE);
4494
4499
  this.state = 873;
4500
+ this.match(MalloyParser.ELSE);
4501
+ this.state = 874;
4495
4502
  _localctx._pickElse = this.fieldExpr(0);
4496
4503
  }
4497
4504
  break;
@@ -4521,20 +4528,20 @@ class MalloyParser extends Parser_1.Parser {
4521
4528
  try {
4522
4529
  this.enterOuterAlt(_localctx, 1);
4523
4530
  {
4524
- this.state = 876;
4531
+ this.state = 877;
4525
4532
  this.match(MalloyParser.PICK);
4526
- this.state = 878;
4533
+ this.state = 879;
4527
4534
  this._errHandler.sync(this);
4528
4535
  _la = this._input.LA(1);
4529
4536
  if (((((_la - 30)) & ~0x1F) === 0 && ((1 << (_la - 30)) & ((1 << (MalloyParser.ALL - 30)) | (1 << (MalloyParser.AVG - 30)) | (1 << (MalloyParser.CAST - 30)) | (1 << (MalloyParser.COUNT - 30)) | (1 << (MalloyParser.DAY - 30)) | (1 << (MalloyParser.EXCLUDE - 30)) | (1 << (MalloyParser.FALSE - 30)) | (1 << (MalloyParser.HOUR - 30)) | (1 << (MalloyParser.MAX - 30)) | (1 << (MalloyParser.MIN - 30)) | (1 << (MalloyParser.MINUTE - 30)) | (1 << (MalloyParser.MONTH - 30)))) !== 0) || ((((_la - 62)) & ~0x1F) === 0 && ((1 << (_la - 62)) & ((1 << (MalloyParser.NOT - 62)) | (1 << (MalloyParser.NOW - 62)) | (1 << (MalloyParser.NULL - 62)) | (1 << (MalloyParser.PICK - 62)) | (1 << (MalloyParser.QUARTER - 62)) | (1 << (MalloyParser.SECOND - 62)) | (1 << (MalloyParser.SUM - 62)) | (1 << (MalloyParser.TRUE - 62)) | (1 << (MalloyParser.WEEK - 62)) | (1 << (MalloyParser.YEAR - 62)) | (1 << (MalloyParser.HACKY_REGEX - 62)) | (1 << (MalloyParser.STRING_LITERAL - 62)) | (1 << (MalloyParser.OPAREN - 62)))) !== 0) || ((((_la - 109)) & ~0x1F) === 0 && ((1 << (_la - 109)) & ((1 << (MalloyParser.MINUS - 109)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 109)) | (1 << (MalloyParser.LITERAL_DAY - 109)) | (1 << (MalloyParser.LITERAL_QUARTER - 109)) | (1 << (MalloyParser.LITERAL_MONTH - 109)) | (1 << (MalloyParser.LITERAL_WEEK - 109)) | (1 << (MalloyParser.LITERAL_YEAR - 109)) | (1 << (MalloyParser.IDENTIFIER - 109)) | (1 << (MalloyParser.INTEGER_LITERAL - 109)) | (1 << (MalloyParser.NUMERIC_LITERAL - 109)) | (1 << (MalloyParser.OBJECT_NAME_LITERAL - 109)))) !== 0)) {
4530
4537
  {
4531
- this.state = 877;
4538
+ this.state = 878;
4532
4539
  _localctx._pickValue = this.fieldExpr(0);
4533
4540
  }
4534
4541
  }
4535
- this.state = 880;
4536
- this.match(MalloyParser.WHEN);
4537
4542
  this.state = 881;
4543
+ this.match(MalloyParser.WHEN);
4544
+ this.state = 882;
4538
4545
  _localctx._pickWhen = this.partialAllowedFieldExpr();
4539
4546
  }
4540
4547
  }
@@ -4562,32 +4569,32 @@ class MalloyParser extends Parser_1.Parser {
4562
4569
  let _alt;
4563
4570
  this.enterOuterAlt(_localctx, 1);
4564
4571
  {
4565
- this.state = 883;
4572
+ this.state = 884;
4566
4573
  this.fieldExpr(0);
4567
- this.state = 888;
4574
+ this.state = 889;
4568
4575
  this._errHandler.sync(this);
4569
4576
  _alt = this.interpreter.adaptivePredict(this._input, 96, this._ctx);
4570
4577
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
4571
4578
  if (_alt === 1) {
4572
4579
  {
4573
4580
  {
4574
- this.state = 884;
4575
- this.match(MalloyParser.COMMA);
4576
4581
  this.state = 885;
4582
+ this.match(MalloyParser.COMMA);
4583
+ this.state = 886;
4577
4584
  this.fieldExpr(0);
4578
4585
  }
4579
4586
  }
4580
4587
  }
4581
- this.state = 890;
4588
+ this.state = 891;
4582
4589
  this._errHandler.sync(this);
4583
4590
  _alt = this.interpreter.adaptivePredict(this._input, 96, this._ctx);
4584
4591
  }
4585
- this.state = 892;
4592
+ this.state = 893;
4586
4593
  this._errHandler.sync(this);
4587
4594
  _la = this._input.LA(1);
4588
4595
  if (_la === MalloyParser.COMMA) {
4589
4596
  {
4590
- this.state = 891;
4597
+ this.state = 892;
4591
4598
  this.match(MalloyParser.COMMA);
4592
4599
  }
4593
4600
  }
@@ -4616,28 +4623,28 @@ class MalloyParser extends Parser_1.Parser {
4616
4623
  try {
4617
4624
  this.enterOuterAlt(_localctx, 1);
4618
4625
  {
4619
- this.state = 894;
4626
+ this.state = 895;
4620
4627
  this.fieldName();
4621
- this.state = 901;
4628
+ this.state = 902;
4622
4629
  this._errHandler.sync(this);
4623
4630
  _la = this._input.LA(1);
4624
4631
  while (((((_la - 100)) & ~0x1F) === 0 && ((1 << (_la - 100)) & ((1 << (MalloyParser.COMMA - 100)) | (1 << (MalloyParser.IDENTIFIER - 100)) | (1 << (MalloyParser.OBJECT_NAME_LITERAL - 100)))) !== 0)) {
4625
4632
  {
4626
4633
  {
4627
- this.state = 896;
4634
+ this.state = 897;
4628
4635
  this._errHandler.sync(this);
4629
4636
  _la = this._input.LA(1);
4630
4637
  if (_la === MalloyParser.COMMA) {
4631
4638
  {
4632
- this.state = 895;
4639
+ this.state = 896;
4633
4640
  this.match(MalloyParser.COMMA);
4634
4641
  }
4635
4642
  }
4636
- this.state = 898;
4643
+ this.state = 899;
4637
4644
  this.fieldName();
4638
4645
  }
4639
4646
  }
4640
- this.state = 903;
4647
+ this.state = 904;
4641
4648
  this._errHandler.sync(this);
4642
4649
  _la = this._input.LA(1);
4643
4650
  }
@@ -4667,39 +4674,39 @@ class MalloyParser extends Parser_1.Parser {
4667
4674
  let _alt;
4668
4675
  this.enterOuterAlt(_localctx, 1);
4669
4676
  {
4670
- this.state = 904;
4677
+ this.state = 905;
4671
4678
  this.collectionMember();
4672
- this.state = 911;
4679
+ this.state = 912;
4673
4680
  this._errHandler.sync(this);
4674
4681
  _alt = this.interpreter.adaptivePredict(this._input, 101, this._ctx);
4675
4682
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
4676
4683
  if (_alt === 1) {
4677
4684
  {
4678
4685
  {
4679
- this.state = 906;
4686
+ this.state = 907;
4680
4687
  this._errHandler.sync(this);
4681
4688
  _la = this._input.LA(1);
4682
4689
  if (_la === MalloyParser.COMMA) {
4683
4690
  {
4684
- this.state = 905;
4691
+ this.state = 906;
4685
4692
  this.match(MalloyParser.COMMA);
4686
4693
  }
4687
4694
  }
4688
- this.state = 908;
4695
+ this.state = 909;
4689
4696
  this.collectionMember();
4690
4697
  }
4691
4698
  }
4692
4699
  }
4693
- this.state = 913;
4700
+ this.state = 914;
4694
4701
  this._errHandler.sync(this);
4695
4702
  _alt = this.interpreter.adaptivePredict(this._input, 101, this._ctx);
4696
4703
  }
4697
- this.state = 915;
4704
+ this.state = 916;
4698
4705
  this._errHandler.sync(this);
4699
4706
  _la = this._input.LA(1);
4700
4707
  if (_la === MalloyParser.COMMA) {
4701
4708
  {
4702
- this.state = 914;
4709
+ this.state = 915;
4703
4710
  this.match(MalloyParser.COMMA);
4704
4711
  }
4705
4712
  }
@@ -4726,14 +4733,14 @@ class MalloyParser extends Parser_1.Parser {
4726
4733
  this.enterRule(_localctx, 182, MalloyParser.RULE_collectionMember);
4727
4734
  let _la;
4728
4735
  try {
4729
- this.state = 925;
4736
+ this.state = 926;
4730
4737
  this._errHandler.sync(this);
4731
4738
  switch (this.interpreter.adaptivePredict(this._input, 104, this._ctx)) {
4732
4739
  case 1:
4733
4740
  _localctx = new NameMemberContext(_localctx);
4734
4741
  this.enterOuterAlt(_localctx, 1);
4735
4742
  {
4736
- this.state = 917;
4743
+ this.state = 918;
4737
4744
  this.fieldPath();
4738
4745
  }
4739
4746
  break;
@@ -4741,18 +4748,18 @@ class MalloyParser extends Parser_1.Parser {
4741
4748
  _localctx = new WildMemberContext(_localctx);
4742
4749
  this.enterOuterAlt(_localctx, 2);
4743
4750
  {
4744
- this.state = 921;
4751
+ this.state = 922;
4745
4752
  this._errHandler.sync(this);
4746
4753
  _la = this._input.LA(1);
4747
4754
  if (_la === MalloyParser.IDENTIFIER || _la === MalloyParser.OBJECT_NAME_LITERAL) {
4748
4755
  {
4749
- this.state = 918;
4750
- this.fieldPath();
4751
4756
  this.state = 919;
4757
+ this.fieldPath();
4758
+ this.state = 920;
4752
4759
  this.match(MalloyParser.DOT);
4753
4760
  }
4754
4761
  }
4755
- this.state = 923;
4762
+ this.state = 924;
4756
4763
  _la = this._input.LA(1);
4757
4764
  if (!(_la === MalloyParser.STAR || _la === MalloyParser.STARSTAR)) {
4758
4765
  this._errHandler.recoverInline(this);
@@ -4770,7 +4777,7 @@ class MalloyParser extends Parser_1.Parser {
4770
4777
  _localctx = new NewMemberContext(_localctx);
4771
4778
  this.enterOuterAlt(_localctx, 3);
4772
4779
  {
4773
- this.state = 924;
4780
+ this.state = 925;
4774
4781
  this.fieldDef();
4775
4782
  }
4776
4783
  break;
@@ -4799,23 +4806,23 @@ class MalloyParser extends Parser_1.Parser {
4799
4806
  let _alt;
4800
4807
  this.enterOuterAlt(_localctx, 1);
4801
4808
  {
4802
- this.state = 927;
4809
+ this.state = 928;
4803
4810
  this.fieldName();
4804
- this.state = 932;
4811
+ this.state = 933;
4805
4812
  this._errHandler.sync(this);
4806
4813
  _alt = this.interpreter.adaptivePredict(this._input, 105, this._ctx);
4807
4814
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
4808
4815
  if (_alt === 1) {
4809
4816
  {
4810
4817
  {
4811
- this.state = 928;
4812
- this.match(MalloyParser.DOT);
4813
4818
  this.state = 929;
4819
+ this.match(MalloyParser.DOT);
4820
+ this.state = 930;
4814
4821
  this.fieldName();
4815
4822
  }
4816
4823
  }
4817
4824
  }
4818
- this.state = 934;
4825
+ this.state = 935;
4819
4826
  this._errHandler.sync(this);
4820
4827
  _alt = this.interpreter.adaptivePredict(this._input, 105, this._ctx);
4821
4828
  }
@@ -4843,7 +4850,7 @@ class MalloyParser extends Parser_1.Parser {
4843
4850
  try {
4844
4851
  this.enterOuterAlt(_localctx, 1);
4845
4852
  {
4846
- this.state = 935;
4853
+ this.state = 936;
4847
4854
  this.id();
4848
4855
  }
4849
4856
  }
@@ -4869,7 +4876,7 @@ class MalloyParser extends Parser_1.Parser {
4869
4876
  try {
4870
4877
  this.enterOuterAlt(_localctx, 1);
4871
4878
  {
4872
- this.state = 937;
4879
+ this.state = 938;
4873
4880
  this.id();
4874
4881
  }
4875
4882
  }
@@ -4895,9 +4902,9 @@ class MalloyParser extends Parser_1.Parser {
4895
4902
  try {
4896
4903
  this.enterOuterAlt(_localctx, 1);
4897
4904
  {
4898
- this.state = 939;
4899
- this.fieldExpr(0);
4900
4905
  this.state = 940;
4906
+ this.fieldExpr(0);
4907
+ this.state = 941;
4901
4908
  this.match(MalloyParser.EOF);
4902
4909
  }
4903
4910
  }
@@ -4923,7 +4930,7 @@ class MalloyParser extends Parser_1.Parser {
4923
4930
  try {
4924
4931
  this.enterOuterAlt(_localctx, 1);
4925
4932
  {
4926
- this.state = 942;
4933
+ this.state = 943;
4927
4934
  this.jsonValue();
4928
4935
  }
4929
4936
  }
@@ -4947,62 +4954,62 @@ class MalloyParser extends Parser_1.Parser {
4947
4954
  let _localctx = new JsonValueContext(this._ctx, this.state);
4948
4955
  this.enterRule(_localctx, 194, MalloyParser.RULE_jsonValue);
4949
4956
  try {
4950
- this.state = 952;
4957
+ this.state = 953;
4951
4958
  this._errHandler.sync(this);
4952
4959
  switch (this._input.LA(1)) {
4953
4960
  case MalloyParser.JSON_STRING:
4954
4961
  this.enterOuterAlt(_localctx, 1);
4955
4962
  {
4956
- this.state = 944;
4963
+ this.state = 945;
4957
4964
  this.match(MalloyParser.JSON_STRING);
4958
4965
  }
4959
4966
  break;
4960
4967
  case MalloyParser.INTEGER_LITERAL:
4961
4968
  this.enterOuterAlt(_localctx, 2);
4962
4969
  {
4963
- this.state = 945;
4970
+ this.state = 946;
4964
4971
  this.match(MalloyParser.INTEGER_LITERAL);
4965
4972
  }
4966
4973
  break;
4967
4974
  case MalloyParser.NUMERIC_LITERAL:
4968
4975
  this.enterOuterAlt(_localctx, 3);
4969
4976
  {
4970
- this.state = 946;
4977
+ this.state = 947;
4971
4978
  this.match(MalloyParser.NUMERIC_LITERAL);
4972
4979
  }
4973
4980
  break;
4974
4981
  case MalloyParser.OCURLY:
4975
4982
  this.enterOuterAlt(_localctx, 4);
4976
4983
  {
4977
- this.state = 947;
4984
+ this.state = 948;
4978
4985
  this.jsonObject();
4979
4986
  }
4980
4987
  break;
4981
4988
  case MalloyParser.OBRACK:
4982
4989
  this.enterOuterAlt(_localctx, 5);
4983
4990
  {
4984
- this.state = 948;
4991
+ this.state = 949;
4985
4992
  this.jsonArray();
4986
4993
  }
4987
4994
  break;
4988
4995
  case MalloyParser.TRUE:
4989
4996
  this.enterOuterAlt(_localctx, 6);
4990
4997
  {
4991
- this.state = 949;
4998
+ this.state = 950;
4992
4999
  this.match(MalloyParser.TRUE);
4993
5000
  }
4994
5001
  break;
4995
5002
  case MalloyParser.FALSE:
4996
5003
  this.enterOuterAlt(_localctx, 7);
4997
5004
  {
4998
- this.state = 950;
5005
+ this.state = 951;
4999
5006
  this.match(MalloyParser.FALSE);
5000
5007
  }
5001
5008
  break;
5002
5009
  case MalloyParser.NULL:
5003
5010
  this.enterOuterAlt(_localctx, 8);
5004
5011
  {
5005
- this.state = 951;
5012
+ this.state = 952;
5006
5013
  this.match(MalloyParser.NULL);
5007
5014
  }
5008
5015
  break;
@@ -5031,42 +5038,42 @@ class MalloyParser extends Parser_1.Parser {
5031
5038
  this.enterRule(_localctx, 196, MalloyParser.RULE_jsonObject);
5032
5039
  let _la;
5033
5040
  try {
5034
- this.state = 967;
5041
+ this.state = 968;
5035
5042
  this._errHandler.sync(this);
5036
5043
  switch (this.interpreter.adaptivePredict(this._input, 108, this._ctx)) {
5037
5044
  case 1:
5038
5045
  this.enterOuterAlt(_localctx, 1);
5039
5046
  {
5040
- this.state = 954;
5041
- this.match(MalloyParser.OCURLY);
5042
5047
  this.state = 955;
5048
+ this.match(MalloyParser.OCURLY);
5049
+ this.state = 956;
5043
5050
  this.jsonProperty();
5044
- this.state = 960;
5051
+ this.state = 961;
5045
5052
  this._errHandler.sync(this);
5046
5053
  _la = this._input.LA(1);
5047
5054
  while (_la === MalloyParser.COMMA) {
5048
5055
  {
5049
5056
  {
5050
- this.state = 956;
5051
- this.match(MalloyParser.COMMA);
5052
5057
  this.state = 957;
5058
+ this.match(MalloyParser.COMMA);
5059
+ this.state = 958;
5053
5060
  this.jsonProperty();
5054
5061
  }
5055
5062
  }
5056
- this.state = 962;
5063
+ this.state = 963;
5057
5064
  this._errHandler.sync(this);
5058
5065
  _la = this._input.LA(1);
5059
5066
  }
5060
- this.state = 963;
5067
+ this.state = 964;
5061
5068
  this.match(MalloyParser.CCURLY);
5062
5069
  }
5063
5070
  break;
5064
5071
  case 2:
5065
5072
  this.enterOuterAlt(_localctx, 2);
5066
5073
  {
5067
- this.state = 965;
5068
- this.match(MalloyParser.OCURLY);
5069
5074
  this.state = 966;
5075
+ this.match(MalloyParser.OCURLY);
5076
+ this.state = 967;
5070
5077
  this.match(MalloyParser.CCURLY);
5071
5078
  }
5072
5079
  break;
@@ -5094,11 +5101,11 @@ class MalloyParser extends Parser_1.Parser {
5094
5101
  try {
5095
5102
  this.enterOuterAlt(_localctx, 1);
5096
5103
  {
5097
- this.state = 969;
5098
- this.match(MalloyParser.JSON_STRING);
5099
5104
  this.state = 970;
5100
- this.match(MalloyParser.COLON);
5105
+ this.match(MalloyParser.JSON_STRING);
5101
5106
  this.state = 971;
5107
+ this.match(MalloyParser.COLON);
5108
+ this.state = 972;
5102
5109
  this.jsonValue();
5103
5110
  }
5104
5111
  }
@@ -5123,42 +5130,42 @@ class MalloyParser extends Parser_1.Parser {
5123
5130
  this.enterRule(_localctx, 200, MalloyParser.RULE_jsonArray);
5124
5131
  let _la;
5125
5132
  try {
5126
- this.state = 986;
5133
+ this.state = 987;
5127
5134
  this._errHandler.sync(this);
5128
5135
  switch (this.interpreter.adaptivePredict(this._input, 110, this._ctx)) {
5129
5136
  case 1:
5130
5137
  this.enterOuterAlt(_localctx, 1);
5131
5138
  {
5132
- this.state = 973;
5133
- this.match(MalloyParser.OBRACK);
5134
5139
  this.state = 974;
5140
+ this.match(MalloyParser.OBRACK);
5141
+ this.state = 975;
5135
5142
  this.jsonValue();
5136
- this.state = 979;
5143
+ this.state = 980;
5137
5144
  this._errHandler.sync(this);
5138
5145
  _la = this._input.LA(1);
5139
5146
  while (_la === MalloyParser.COMMA) {
5140
5147
  {
5141
5148
  {
5142
- this.state = 975;
5143
- this.match(MalloyParser.COMMA);
5144
5149
  this.state = 976;
5150
+ this.match(MalloyParser.COMMA);
5151
+ this.state = 977;
5145
5152
  this.jsonValue();
5146
5153
  }
5147
5154
  }
5148
- this.state = 981;
5155
+ this.state = 982;
5149
5156
  this._errHandler.sync(this);
5150
5157
  _la = this._input.LA(1);
5151
5158
  }
5152
- this.state = 982;
5159
+ this.state = 983;
5153
5160
  this.match(MalloyParser.CBRACK);
5154
5161
  }
5155
5162
  break;
5156
5163
  case 2:
5157
5164
  this.enterOuterAlt(_localctx, 2);
5158
5165
  {
5159
- this.state = 984;
5160
- this.match(MalloyParser.OBRACK);
5161
5166
  this.state = 985;
5167
+ this.match(MalloyParser.OBRACK);
5168
+ this.state = 986;
5162
5169
  this.match(MalloyParser.CBRACK);
5163
5170
  }
5164
5171
  break;
@@ -5186,7 +5193,7 @@ class MalloyParser extends Parser_1.Parser {
5186
5193
  try {
5187
5194
  this.enterOuterAlt(_localctx, 1);
5188
5195
  {
5189
- this.state = 988;
5196
+ this.state = 989;
5190
5197
  this.id();
5191
5198
  }
5192
5199
  }
@@ -5212,7 +5219,7 @@ class MalloyParser extends Parser_1.Parser {
5212
5219
  try {
5213
5220
  this.enterOuterAlt(_localctx, 1);
5214
5221
  {
5215
- this.state = 990;
5222
+ this.state = 991;
5216
5223
  this.id();
5217
5224
  }
5218
5225
  }
@@ -5238,7 +5245,7 @@ class MalloyParser extends Parser_1.Parser {
5238
5245
  try {
5239
5246
  this.enterOuterAlt(_localctx, 1);
5240
5247
  {
5241
- this.state = 992;
5248
+ this.state = 993;
5242
5249
  this.match(MalloyParser.JSON_STRING);
5243
5250
  }
5244
5251
  }
@@ -5610,7 +5617,7 @@ MalloyParser._SYMBOLIC_NAMES = [
5610
5617
  ];
5611
5618
  MalloyParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(MalloyParser._LITERAL_NAMES, MalloyParser._SYMBOLIC_NAMES, []);
5612
5619
  MalloyParser._serializedATNSegments = 2;
5613
- MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x8B\u03E5\x04" +
5620
+ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x8B\u03E6\x04" +
5614
5621
  "\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
5615
5622
  "\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r" +
5616
5623
  "\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12" +
@@ -5672,29 +5679,29 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
5672
5679
  "C\u029A\nC\x03C\x07C\u029D\nC\fC\x0EC\u02A0\vC\x03C\x05C\u02A3\nC\x03" +
5673
5680
  "D\x03D\x05D\u02A7\nD\x03D\x05D\u02AA\nD\x03E\x03E\x03E\x03F\x03F\x03F" +
5674
5681
  "\x03F\x05F\u02B3\nF\x03G\x03G\x03G\x05G\u02B8\nG\x03H\x03H\x03H\x05H\u02BD" +
5675
- "\nH\x03H\x05H\u02C0\nH\x03I\x03I\x05I\u02C4\nI\x03I\x07I\u02C7\nI\fI\x0E" +
5676
- "I\u02CA\vI\x03J\x03J\x03J\x03J\x05J\u02D0\nJ\x03K\x03K\x03K\x03L\x03L" +
5677
- "\x03M\x03M\x03N\x03N\x03O\x03O\x03P\x03P\x03P\x03P\x03P\x03P\x03P\x05" +
5678
- "P\u02E4\nP\x03Q\x03Q\x03Q\x03Q\x03Q\x03Q\x05Q\u02EC\nQ\x03R\x03R\x03S" +
5679
- "\x03S\x03T\x03T\x03U\x03U\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03" +
5682
+ "\nH\x03H\x03H\x05H\u02C1\nH\x03I\x03I\x05I\u02C5\nI\x03I\x07I\u02C8\n" +
5683
+ "I\fI\x0EI\u02CB\vI\x03J\x03J\x03J\x03J\x05J\u02D1\nJ\x03K\x03K\x03K\x03" +
5684
+ "L\x03L\x03M\x03M\x03N\x03N\x03O\x03O\x03P\x03P\x03P\x03P\x03P\x03P\x03" +
5685
+ "P\x05P\u02E5\nP\x03Q\x03Q\x03Q\x03Q\x03Q\x03Q\x05Q\u02ED\nQ\x03R\x03R" +
5686
+ "\x03S\x03S\x03T\x03T\x03U\x03U\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03" +
5680
5687
  "V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03" +
5681
- "V\x05V\u030D\nV\x03V\x03V\x03V\x03V\x05V\u0313\nV\x03V\x03V\x03V\x03V" +
5682
- "\x03V\x03V\x03V\x03V\x05V\u031D\nV\x03V\x03V\x05V\u0321\nV\x03V\x03V\x03" +
5683
- "V\x03V\x03V\x03V\x03V\x03V\x07V\u032B\nV\fV\x0EV\u032E\vV\x03V\x03V\x05" +
5684
- "V\u0332\nV\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03" +
5688
+ "V\x03V\x05V\u030E\nV\x03V\x03V\x03V\x03V\x05V\u0314\nV\x03V\x03V\x03V" +
5689
+ "\x03V\x03V\x03V\x03V\x03V\x05V\u031E\nV\x03V\x03V\x05V\u0322\nV\x03V\x03" +
5690
+ "V\x03V\x03V\x03V\x03V\x03V\x03V\x07V\u032C\nV\fV\x0EV\u032F\vV\x03V\x03" +
5691
+ "V\x05V\u0333\nV\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03" +
5685
5692
  "V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03" +
5686
5693
  "V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03" +
5687
- "V\x07V\u035C\nV\fV\x0EV\u035F\vV\x03W\x05W\u0362\nW\x03W\x03W\x03X\x06" +
5688
- "X\u0367\nX\rX\x0EX\u0368\x03X\x03X\x05X\u036D\nX\x03Y\x03Y\x05Y\u0371" +
5689
- "\nY\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x07Z\u0379\nZ\fZ\x0EZ\u037C\vZ\x03Z" +
5690
- "\x05Z\u037F\nZ\x03[\x03[\x05[\u0383\n[\x03[\x07[\u0386\n[\f[\x0E[\u0389" +
5691
- "\v[\x03\\\x03\\\x05\\\u038D\n\\\x03\\\x07\\\u0390\n\\\f\\\x0E\\\u0393" +
5692
- "\v\\\x03\\\x05\\\u0396\n\\\x03]\x03]\x03]\x03]\x05]\u039C\n]\x03]\x03" +
5693
- "]\x05]\u03A0\n]\x03^\x03^\x03^\x07^\u03A5\n^\f^\x0E^\u03A8\v^\x03_\x03" +
5694
+ "V\x03V\x07V\u035D\nV\fV\x0EV\u0360\vV\x03W\x05W\u0363\nW\x03W\x03W\x03" +
5695
+ "X\x06X\u0368\nX\rX\x0EX\u0369\x03X\x03X\x05X\u036E\nX\x03Y\x03Y\x05Y\u0372" +
5696
+ "\nY\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x07Z\u037A\nZ\fZ\x0EZ\u037D\vZ\x03Z" +
5697
+ "\x05Z\u0380\nZ\x03[\x03[\x05[\u0384\n[\x03[\x07[\u0387\n[\f[\x0E[\u038A" +
5698
+ "\v[\x03\\\x03\\\x05\\\u038E\n\\\x03\\\x07\\\u0391\n\\\f\\\x0E\\\u0394" +
5699
+ "\v\\\x03\\\x05\\\u0397\n\\\x03]\x03]\x03]\x03]\x05]\u039D\n]\x03]\x03" +
5700
+ "]\x05]\u03A1\n]\x03^\x03^\x03^\x07^\u03A6\n^\f^\x0E^\u03A9\v^\x03_\x03" +
5694
5701
  "_\x03`\x03`\x03a\x03a\x03a\x03b\x03b\x03c\x03c\x03c\x03c\x03c\x03c\x03" +
5695
- "c\x03c\x05c\u03BB\nc\x03d\x03d\x03d\x03d\x07d\u03C1\nd\fd\x0Ed\u03C4\v" +
5696
- "d\x03d\x03d\x03d\x03d\x05d\u03CA\nd\x03e\x03e\x03e\x03e\x03f\x03f\x03" +
5697
- "f\x03f\x07f\u03D4\nf\ff\x0Ef\u03D7\vf\x03f\x03f\x03f\x03f\x05f\u03DD\n" +
5702
+ "c\x03c\x05c\u03BC\nc\x03d\x03d\x03d\x03d\x07d\u03C2\nd\fd\x0Ed\u03C5\v" +
5703
+ "d\x03d\x03d\x03d\x03d\x05d\u03CB\nd\x03e\x03e\x03e\x03e\x03f\x03f\x03" +
5704
+ "f\x03f\x07f\u03D5\nf\ff\x0Ef\u03D8\vf\x03f\x03f\x03f\x03f\x05f\u03DE\n" +
5698
5705
  "f\x03g\x03g\x03h\x03h\x03i\x03i\x03i\x02\x02\x03\xAAj\x02\x02\x04\x02" +
5699
5706
  "\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12\x02\x14\x02\x16\x02\x18" +
5700
5707
  "\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&\x02(\x02*\x02,\x02.\x02" +
@@ -5709,7 +5716,7 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
5709
5716
  "\t\t\x04\x02##--\x05\x0222QQ\x7F\x80\x06\x02$$**<=KK\x07\x02%%++CCJJO" +
5710
5717
  "O\x04\x02hmuv\x03\x02\x80\x81\x04\x0222QQ\x04\x02~~\x82\x82\b\x02,,77" +
5711
5718
  ">?HISSVV\x04\x02 11\x05\x02pprrww\x03\x02no\x04\x02!!EE\x04\x02[[ss\x04" +
5712
- "\x02GGee\x03\x02pq\x02\u0426\x02\xD6\x03\x02\x02\x02\x04\xDF\x03\x02\x02" +
5719
+ "\x02GGee\x03\x02pq\x02\u0428\x02\xD6\x03\x02\x02\x02\x04\xDF\x03\x02\x02" +
5713
5720
  "\x02\x06\xE1\x03\x02\x02\x02\b\xE4\x03\x02\x02\x02\n\xEA\x03\x02\x02\x02" +
5714
5721
  "\f\xEC\x03\x02\x02\x02\x0E\xEE\x03\x02\x02\x02\x10\xF6\x03\x02\x02\x02" +
5715
5722
  "\x12\u0102\x03\x02\x02\x02\x14\u0104\x03\x02\x02\x02\x16\u010D\x03\x02" +
@@ -5733,19 +5740,19 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
5733
5740
  "\x03\x02\x02\x02~\u028E\x03\x02\x02\x02\x80\u0291\x03\x02\x02\x02\x82" +
5734
5741
  "\u0294\x03\x02\x02\x02\x84\u0297\x03\x02\x02\x02\x86\u02A6\x03\x02\x02" +
5735
5742
  "\x02\x88\u02AB\x03\x02\x02\x02\x8A\u02B2\x03\x02\x02\x02\x8C\u02B4\x03" +
5736
- "\x02\x02\x02\x8E\u02BF\x03\x02\x02\x02\x90\u02C1\x03\x02\x02\x02\x92\u02CB" +
5737
- "\x03\x02\x02\x02\x94\u02D1\x03\x02\x02\x02\x96\u02D4\x03\x02\x02\x02\x98" +
5738
- "\u02D6\x03\x02\x02\x02\x9A\u02D8\x03\x02\x02\x02\x9C\u02DA\x03\x02\x02" +
5739
- "\x02\x9E\u02E3\x03\x02\x02\x02\xA0\u02EB\x03\x02\x02\x02\xA2\u02ED\x03" +
5740
- "\x02\x02\x02\xA4\u02EF\x03\x02\x02\x02\xA6\u02F1\x03\x02\x02\x02\xA8\u02F3" +
5741
- "\x03\x02\x02\x02\xAA\u0331\x03\x02\x02\x02\xAC\u0361\x03\x02\x02\x02\xAE" +
5742
- "\u0366\x03\x02\x02\x02\xB0\u036E\x03\x02\x02\x02\xB2\u0375\x03\x02\x02" +
5743
- "\x02\xB4\u0380\x03\x02\x02\x02\xB6\u038A\x03\x02\x02\x02\xB8\u039F\x03" +
5744
- "\x02\x02\x02\xBA\u03A1\x03\x02\x02\x02\xBC\u03A9\x03\x02\x02\x02\xBE\u03AB" +
5745
- "\x03\x02\x02\x02\xC0\u03AD\x03\x02\x02\x02\xC2\u03B0\x03\x02\x02\x02\xC4" +
5746
- "\u03BA\x03\x02\x02\x02\xC6\u03C9\x03\x02\x02\x02\xC8\u03CB\x03\x02\x02" +
5747
- "\x02\xCA\u03DC\x03\x02\x02\x02\xCC\u03DE\x03\x02\x02\x02\xCE\u03E0\x03" +
5748
- "\x02\x02\x02\xD0\u03E2\x03\x02\x02\x02\xD2\xD5\x05\x04\x03\x02\xD3\xD5" +
5743
+ "\x02\x02\x02\x8E\u02C0\x03\x02\x02\x02\x90\u02C2\x03\x02\x02\x02\x92\u02CC" +
5744
+ "\x03\x02\x02\x02\x94\u02D2\x03\x02\x02\x02\x96\u02D5\x03\x02\x02\x02\x98" +
5745
+ "\u02D7\x03\x02\x02\x02\x9A\u02D9\x03\x02\x02\x02\x9C\u02DB\x03\x02\x02" +
5746
+ "\x02\x9E\u02E4\x03\x02\x02\x02\xA0\u02EC\x03\x02\x02\x02\xA2\u02EE\x03" +
5747
+ "\x02\x02\x02\xA4\u02F0\x03\x02\x02\x02\xA6\u02F2\x03\x02\x02\x02\xA8\u02F4" +
5748
+ "\x03\x02\x02\x02\xAA\u0332\x03\x02\x02\x02\xAC\u0362\x03\x02\x02\x02\xAE" +
5749
+ "\u0367\x03\x02\x02\x02\xB0\u036F\x03\x02\x02\x02\xB2\u0376\x03\x02\x02" +
5750
+ "\x02\xB4\u0381\x03\x02\x02\x02\xB6\u038B\x03\x02\x02\x02\xB8\u03A0\x03" +
5751
+ "\x02\x02\x02\xBA\u03A2\x03\x02\x02\x02\xBC\u03AA\x03\x02\x02\x02\xBE\u03AC" +
5752
+ "\x03\x02\x02\x02\xC0\u03AE\x03\x02\x02\x02\xC2\u03B1\x03\x02\x02\x02\xC4" +
5753
+ "\u03BB\x03\x02\x02\x02\xC6\u03CA\x03\x02\x02\x02\xC8\u03CC\x03\x02\x02" +
5754
+ "\x02\xCA\u03DD\x03\x02\x02\x02\xCC\u03DF\x03\x02\x02\x02\xCE\u03E1\x03" +
5755
+ "\x02\x02\x02\xD0\u03E3\x03\x02\x02\x02\xD2\xD5\x05\x04\x03\x02\xD3\xD5" +
5749
5756
  "\x07t\x02\x02\xD4\xD2\x03\x02\x02\x02\xD4\xD3\x03\x02\x02\x02\xD5\xD8" +
5750
5757
  "\x03\x02\x02\x02\xD6\xD4\x03\x02\x02\x02\xD6\xD7\x03\x02\x02\x02\xD7\xD9" +
5751
5758
  "\x03\x02\x02\x02\xD8\xD6\x03\x02\x02\x02\xD9\xDA\x07\x02\x02\x03\xDA\x03" +
@@ -5859,13 +5866,12 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
5859
5866
  "\x03\x02\x02\x02\u01D2\u01D3\x03\x02\x02\x02\u01D3\u01D4\x03\x02\x02\x02" +
5860
5867
  "\u01D4\u01D6\x05R*\x02\u01D5\u01D2\x03\x02\x02\x02\u01D6\u01D9\x03\x02" +
5861
5868
  "\x02\x02\u01D7\u01D5\x03\x02\x02\x02\u01D7\u01D8\x03\x02\x02\x02\u01D8" +
5862
- "\u01DB\x03\x02\x02\x02\u01D9\u01D7\x03\x02\x02\x02\u01DA\u01DC\x07f\x02" +
5863
- "\x02\u01DB";
5864
- MalloyParser._serializedATNSegment1 = "\u01DA\x03\x02\x02\x02\u01DB\u01DC\x03\x02\x02\x02\u01DCK\x03\x02\x02" +
5865
- "\x02\u01DD\u01DE\x05N(\x02\u01DE\u01DF\x079\x02\x02\u01DF\u01E0\x05\xAA" +
5866
- "V\x02\u01E0M\x03\x02\x02\x02\u01E1\u01E2\x05\xA4S\x02\u01E2O\x03\x02\x02" +
5867
- "\x02\u01E3\u01E4\x05\xA4S\x02\u01E4Q\x03\x02\x02\x02\u01E5\u01E6\x05L" +
5868
- "\'\x02\u01E6S\x03\x02\x02\x02\u01E7\u01E8\x07\x07\x02\x02\u01E8\u01EF" +
5869
+ "\u01DB\x03\x02\x02\x02\u01D9\u01D7\x03\x02\x02\x02\u01DA\u01DC\x07f\x02";
5870
+ MalloyParser._serializedATNSegment1 = "\x02\u01DB\u01DA\x03\x02\x02\x02\u01DB\u01DC\x03\x02\x02\x02\u01DCK\x03" +
5871
+ "\x02\x02\x02\u01DD\u01DE\x05N(\x02\u01DE\u01DF\x079\x02\x02\u01DF\u01E0" +
5872
+ "\x05\xAAV\x02\u01E0M\x03\x02\x02\x02\u01E1\u01E2\x05\xA4S\x02\u01E2O\x03" +
5873
+ "\x02\x02\x02\u01E3\u01E4\x05\xA4S\x02\u01E4Q\x03\x02\x02\x02\u01E5\u01E6" +
5874
+ "\x05L\'\x02\u01E6S\x03\x02\x02\x02\u01E7\u01E8\x07\x07\x02\x02\u01E8\u01EF" +
5869
5875
  "\x05L\'\x02\u01E9\u01EB\x07f\x02\x02\u01EA\u01E9\x03\x02\x02\x02\u01EA" +
5870
5876
  "\u01EB\x03\x02\x02\x02\u01EB\u01EC\x03\x02\x02\x02\u01EC\u01EE\x05L\'" +
5871
5877
  "\x02\u01ED\u01EA\x03\x02\x02\x02\u01EE\u01F1\x03\x02\x02\x02\u01EF\u01ED" +
@@ -5962,152 +5968,152 @@ MalloyParser._serializedATNSegment1 = "\u01DA\x03\x02\x02\x02\u01DB\u01DC\x03\x0
5962
5968
  "\u02B8\x05\x8AF\x02\u02B7\u02B6\x03\x02\x02\x02\u02B7\u02B8\x03\x02\x02" +
5963
5969
  "\x02\u02B8\x8D\x03\x02\x02\x02\u02B9\u02BC\x05\xBA^\x02\u02BA\u02BB\x07" +
5964
5970
  "g\x02\x02\u02BB\u02BD\x07p\x02\x02\u02BC\u02BA\x03\x02\x02\x02\u02BC\u02BD" +
5965
- "\x03\x02\x02\x02\u02BD\u02C0\x03\x02\x02\x02\u02BE\u02C0\x07p\x02\x02" +
5966
- "\u02BF\u02B9\x03\x02\x02\x02\u02BF\u02BE\x03\x02\x02\x02\u02C0\x8F\x03" +
5967
- "\x02\x02\x02\u02C1\u02C8\x05\x8EH\x02\u02C2\u02C4\x07f\x02\x02\u02C3\u02C2" +
5968
- "\x03\x02\x02\x02\u02C3\u02C4\x03\x02\x02\x02\u02C4\u02C5\x03\x02\x02\x02" +
5969
- "\u02C5\u02C7\x05\x8EH\x02\u02C6\u02C3\x03\x02\x02\x02\u02C7\u02CA\x03" +
5970
- "\x02\x02\x02\u02C8\u02C6\x03\x02\x02\x02\u02C8\u02C9\x03\x02\x02\x02\u02C9" +
5971
- "\x91\x03\x02\x02\x02\u02CA\u02C8\x03\x02\x02\x02\u02CB\u02CC\x07\r\x02" +
5972
- "\x02\u02CC\u02CF\x05\x90I\x02\u02CD\u02CE\x07&\x02\x02\u02CE\u02D0\x05" +
5973
- "\xBE`\x02\u02CF\u02CD\x03\x02\x02\x02\u02CF\u02D0\x03\x02\x02\x02\u02D0" +
5974
- "\x93\x03\x02\x02\x02\u02D1\u02D2\x07\x19\x02\x02\u02D2\u02D3\x05\x96L" +
5975
- "\x02\u02D3\x95\x03\x02\x02\x02\u02D4\u02D5\t\x05\x02\x02\u02D5\x97\x03" +
5976
- "\x02\x02\x02\u02D6\u02D7\t\x06\x02\x02\u02D7\x99\x03\x02\x02\x02\u02D8" +
5977
- "\u02D9\t\x07\x02\x02\u02D9\x9B\x03\x02\x02\x02\u02DA\u02DB\t\b\x02\x02" +
5978
- "\u02DB\x9D\x03\x02\x02\x02\u02DC\u02E4\x07Z\x02\x02\u02DD\u02E4\t\t\x02" +
5979
- "\x02\u02DE\u02E4\x05\xA0Q\x02\u02DF\u02E4\x07B\x02\x02\u02E0\u02E4\t\n" +
5980
- "\x02\x02\u02E1\u02E4\x07Y\x02\x02\u02E2\u02E4\x07A\x02\x02\u02E3\u02DC" +
5981
- "\x03\x02\x02\x02\u02E3\u02DD\x03\x02\x02\x02\u02E3\u02DE\x03\x02\x02\x02" +
5982
- "\u02E3\u02DF\x03\x02\x02\x02\u02E3\u02E0\x03\x02\x02\x02\u02E3\u02E1\x03" +
5983
- "\x02\x02\x02\u02E3\u02E2\x03\x02\x02\x02\u02E4\x9F\x03\x02\x02\x02\u02E5" +
5984
- "\u02EC\x07x\x02\x02\u02E6\u02EC\x07y\x02\x02\u02E7\u02EC\x07|\x02\x02" +
5985
- "\u02E8\u02EC\x07{\x02\x02\u02E9\u02EC\x07z\x02\x02\u02EA\u02EC\x07}\x02" +
5986
- "\x02\u02EB\u02E5\x03\x02\x02\x02\u02EB\u02E6\x03\x02\x02\x02\u02EB\u02E7" +
5987
- "\x03\x02\x02\x02\u02EB\u02E8\x03\x02\x02\x02\u02EB\u02E9\x03\x02\x02\x02" +
5988
- "\u02EB\u02EA\x03\x02\x02\x02\u02EC\xA1\x03\x02\x02\x02\u02ED\u02EE\x07" +
5989
- "Z\x02\x02\u02EE\xA3\x03\x02\x02\x02\u02EF\u02F0\t\v\x02\x02\u02F0\xA5" +
5990
- "\x03\x02\x02\x02\u02F1\u02F2\t\f\x02\x02\u02F2\xA7\x03\x02\x02\x02\u02F3" +
5991
- "\u02F4\t\r\x02\x02\u02F4\xA9\x03\x02\x02\x02\u02F5\u02F6\bV\x01\x02\u02F6" +
5992
- "\u0332\x05\xBA^\x02\u02F7\u0332\x05\x9EP\x02\u02F8\u02F9\x07o\x02\x02" +
5993
- "\u02F9\u0332\x05\xAAV\x16\u02FA\u02FB\x07@\x02\x02\u02FB\u0332\x05\xAA" +
5994
- "V\v\u02FC\u02FD\x07(\x02\x02\u02FD\u02FE\x07^\x02\x02\u02FE\u02FF\x05" +
5995
- "\xAAV\x02\u02FF\u0300\x07\"\x02\x02\u0300\u0301\x05\x9AN\x02\u0301\u0302" +
5996
- "\x07_\x02\x02\u0302\u0332\x03\x02\x02\x02\u0303\u0304\x07*\x02\x02\u0304" +
5997
- "\u0305\x07^\x02\x02\u0305\u0306\x07.\x02\x02\u0306\u0307\x05\xAAV\x02" +
5998
- "\u0307\u0308\x07_\x02\x02\u0308\u0332\x03\x02\x02\x02\u0309\u030A\x05" +
5999
- "\xBA^\x02\u030A\u030B\x07g\x02\x02\u030B\u030D\x03\x02\x02\x02\u030C\u0309" +
6000
- "\x03\x02\x02\x02\u030C\u030D\x03\x02\x02\x02\u030D\u030E\x03\x02\x02\x02" +
6001
- "\u030E\u030F\x05\x98M\x02\u030F\u0312\x07^\x02\x02\u0310\u0313\x05\xAA" +
6002
- "V\x02\u0311\u0313\x07p\x02\x02\u0312\u0310\x03\x02\x02\x02\u0312\u0311" +
6003
- "\x03\x02\x02\x02\u0312\u0313\x03\x02\x02\x02\u0313\u0314\x03\x02\x02\x02" +
6004
- "\u0314\u0315\x07_\x02\x02\u0315\u0332\x03\x02\x02\x02\u0316\u0317\x07" +
6005
- "^\x02\x02\u0317\u0318\x05\xACW\x02\u0318\u0319\x07_\x02\x02\u0319\u0332" +
6006
- "\x03\x02\x02\x02\u031A\u031D\x05\xA4S\x02\u031B\u031D\x05\xA6T\x02\u031C" +
6007
- "\u031A\x03\x02\x02\x02\u031C\u031B\x03\x02\x02\x02\u031D\u031E\x03\x02" +
6008
- "\x02\x02\u031E\u0320\x07^\x02\x02\u031F\u0321\x05\xB2Z\x02\u0320\u031F" +
6009
- "\x03\x02\x02\x02\u0320\u0321\x03\x02\x02\x02\u0321\u0322\x03\x02\x02\x02" +
6010
- "\u0322\u0323\x07_\x02\x02\u0323\u0332\x03\x02\x02\x02\u0324\u0332\x05" +
6011
- "\xAEX\x02\u0325\u0326\x05\xA8U\x02\u0326\u0327\x07^\x02\x02\u0327\u032C" +
6012
- "\x05\xAAV\x02\u0328\u0329\x07f\x02\x02\u0329\u032B\x05\xBE`\x02\u032A" +
6013
- "\u0328\x03\x02\x02\x02\u032B\u032E\x03\x02\x02\x02\u032C\u032A\x03\x02" +
6014
- "\x02\x02\u032C\u032D\x03\x02\x02\x02\u032D\u032F\x03\x02\x02\x02\u032E" +
6015
- "\u032C\x03\x02\x02\x02\u032F\u0330\x07_\x02\x02\u0330\u0332\x03\x02\x02" +
6016
- "\x02\u0331\u02F5\x03\x02\x02\x02\u0331\u02F7\x03\x02\x02\x02\u0331\u02F8" +
6017
- "\x03\x02\x02\x02\u0331\u02FA\x03\x02\x02\x02\u0331\u02FC\x03\x02\x02\x02" +
6018
- "\u0331\u0303\x03\x02\x02\x02\u0331\u030C\x03\x02\x02\x02\u0331\u0316\x03" +
6019
- "\x02\x02\x02\u0331\u031C\x03\x02\x02\x02\u0331\u0324\x03\x02\x02\x02\u0331" +
6020
- "\u0325\x03\x02\x02\x02\u0332\u035D\x03\x02\x02\x02\u0333\u0334\f\x12\x02" +
6021
- "\x02\u0334\u0335\t\x0E\x02\x02\u0335\u035C\x05\xAAV\x13\u0336\u0337\f" +
6022
- "\x11\x02\x02\u0337\u0338\t\x0F\x02\x02\u0338\u035C\x05\xAAV\x12\u0339" +
6023
- "\u033A\f\x10\x02\x02\u033A\u033B\x07P\x02\x02\u033B\u035C\x05\xAAV\x11" +
6024
- "\u033C\u033D\f\r\x02\x02\u033D\u033E\x05\x9CO\x02\u033E\u033F\x05\xAA" +
6025
- "V\x0E\u033F\u035C\x03\x02\x02\x02\u0340\u0341\f\n\x02\x02\u0341\u0342" +
6026
- "\t\x10\x02\x02\u0342\u035C\x05\xAAV\v\u0343\u0344\f\x18\x02\x02\u0344" +
6027
- "\u0345\x07b\x02\x02\u0345\u0346\x05`1\x02\u0346\u0347\x07c\x02\x02\u0347" +
6028
- "\u035C\x03\x02\x02\x02\u0348\u0349\f\x15\x02\x02\u0349\u035C\x05\xA6T" +
6029
- "\x02\u034A\u034B\f\x14\x02\x02\u034B\u034C\x07g\x02\x02\u034C\u035C\x05" +
6030
- "\xA6T\x02\u034D\u034E\f\x13\x02\x02\u034E\u034F\x07d\x02\x02\u034F\u035C" +
6031
- "\x05\x9AN\x02\u0350\u0351\f\x0F\x02\x02\u0351\u0352\x073\x02\x02\u0352" +
6032
- "\u0353\x05\xAAV\x02\u0353\u0354\x05\xA6T\x02\u0354\u035C\x03\x02\x02\x02" +
6033
- "\u0355\u0356\f\x0E\x02\x02\u0356\u0357\t\x11\x02\x02\u0357\u035C\x05\xAC" +
6034
- "W\x02\u0358\u0359\f\f\x02\x02\u0359\u035A\t\x12\x02\x02\u035A\u035C\x05" +
6035
- "\xACW\x02\u035B\u0333\x03\x02\x02\x02\u035B\u0336\x03\x02\x02\x02\u035B" +
6036
- "\u0339\x03\x02\x02\x02\u035B\u033C\x03\x02\x02\x02\u035B\u0340\x03\x02" +
6037
- "\x02\x02\u035B\u0343\x03\x02\x02\x02\u035B\u0348\x03\x02\x02\x02\u035B" +
6038
- "\u034A\x03\x02\x02\x02\u035B\u034D\x03\x02\x02\x02\u035B\u0350\x03\x02" +
6039
- "\x02\x02\u035B\u0355\x03\x02\x02\x02\u035B\u0358\x03\x02\x02\x02\u035C" +
6040
- "\u035F\x03\x02\x02\x02\u035D\u035B\x03\x02\x02\x02\u035D\u035E\x03\x02" +
6041
- "\x02\x02\u035E\xAB\x03\x02\x02\x02\u035F\u035D\x03\x02\x02\x02\u0360\u0362" +
6042
- "\x05\x9CO\x02\u0361\u0360\x03\x02\x02\x02\u0361\u0362\x03\x02\x02\x02" +
6043
- "\u0362\u0363\x03\x02\x02\x02\u0363\u0364\x05\xAAV\x02\u0364\xAD\x03\x02" +
6044
- "\x02\x02\u0365\u0367\x05\xB0Y\x02\u0366\u0365\x03\x02\x02\x02\u0367\u0368" +
6045
- "\x03\x02\x02\x02\u0368\u0366\x03\x02\x02\x02\u0368\u0369\x03\x02\x02\x02" +
6046
- "\u0369\u036C\x03\x02\x02\x02\u036A\u036B\x07/\x02\x02\u036B\u036D\x05" +
6047
- "\xAAV\x02\u036C\u036A\x03\x02\x02\x02\u036C\u036D\x03\x02\x02\x02\u036D" +
6048
- "\xAF\x03\x02\x02\x02\u036E\u0370\x07F\x02\x02\u036F\u0371\x05\xAAV\x02" +
6049
- "\u0370\u036F\x03\x02\x02\x02\u0370\u0371\x03\x02\x02\x02\u0371\u0372\x03" +
6050
- "\x02\x02\x02\u0372\u0373\x07T\x02\x02\u0373\u0374\x05\xACW\x02\u0374\xB1" +
6051
- "\x03\x02\x02\x02\u0375\u037A\x05\xAAV\x02\u0376\u0377\x07f\x02\x02\u0377" +
6052
- "\u0379\x05\xAAV\x02\u0378\u0376\x03\x02\x02\x02\u0379\u037C\x03\x02\x02" +
6053
- "\x02\u037A\u0378\x03\x02\x02\x02\u037A\u037B\x03\x02\x02\x02\u037B\u037E" +
6054
- "\x03\x02\x02\x02\u037C\u037A\x03\x02\x02\x02\u037D\u037F\x07f\x02\x02" +
6055
- "\u037E\u037D\x03\x02\x02\x02\u037E\u037F\x03\x02\x02\x02\u037F\xB3\x03" +
6056
- "\x02\x02\x02\u0380\u0387\x05\xBE`\x02\u0381\u0383\x07f\x02\x02\u0382\u0381" +
6057
- "\x03\x02\x02\x02\u0382\u0383\x03\x02\x02\x02\u0383\u0384\x03\x02\x02\x02" +
6058
- "\u0384\u0386\x05\xBE`\x02\u0385\u0382\x03\x02\x02\x02\u0386\u0389\x03" +
6059
- "\x02\x02\x02\u0387\u0385\x03\x02\x02\x02\u0387\u0388\x03\x02\x02\x02\u0388" +
6060
- "\xB5\x03\x02\x02\x02\u0389\u0387\x03\x02\x02\x02\u038A\u0391\x05\xB8]" +
6061
- "\x02\u038B\u038D\x07f\x02\x02\u038C\u038B\x03\x02\x02\x02\u038C\u038D" +
6062
- "\x03\x02\x02\x02\u038D\u038E\x03\x02\x02\x02\u038E\u0390\x05\xB8]\x02" +
6063
- "\u038F\u038C\x03\x02\x02\x02\u0390\u0393\x03\x02\x02\x02\u0391\u038F\x03" +
6064
- "\x02\x02\x02\u0391\u0392\x03\x02\x02\x02\u0392\u0395\x03\x02\x02\x02\u0393" +
6065
- "\u0391\x03\x02\x02\x02\u0394\u0396\x07f\x02\x02\u0395\u0394\x03\x02\x02" +
6066
- "\x02\u0395\u0396\x03\x02\x02\x02\u0396\xB7\x03\x02\x02\x02\u0397\u03A0" +
6067
- "\x05\xBA^\x02\u0398\u0399\x05\xBA^\x02\u0399\u039A\x07g\x02\x02\u039A" +
6068
- "\u039C\x03\x02\x02\x02\u039B\u0398\x03\x02\x02\x02\u039B\u039C\x03\x02" +
6069
- "\x02\x02\u039C\u039D\x03\x02\x02\x02\u039D\u03A0\t\x13\x02\x02\u039E\u03A0" +
6070
- "\x05L\'\x02\u039F\u0397\x03\x02\x02\x02\u039F\u039B\x03\x02\x02\x02\u039F" +
6071
- "\u039E\x03\x02\x02\x02\u03A0\xB9\x03\x02\x02\x02\u03A1\u03A6\x05\xBE`" +
6072
- "\x02\u03A2\u03A3\x07g\x02\x02\u03A3\u03A5\x05\xBE`\x02\u03A4\u03A2\x03" +
6073
- "\x02\x02\x02\u03A5\u03A8\x03\x02\x02\x02\u03A6\u03A4\x03\x02\x02\x02\u03A6" +
6074
- "\u03A7\x03\x02\x02\x02\u03A7\xBB\x03\x02\x02\x02\u03A8\u03A6\x03\x02\x02" +
6075
- "\x02\u03A9\u03AA\x05\xA4S\x02\u03AA\xBD\x03\x02\x02\x02\u03AB\u03AC\x05" +
6076
- "\xA4S\x02\u03AC\xBF\x03\x02\x02\x02\u03AD\u03AE\x05\xAAV\x02\u03AE\u03AF" +
6077
- "\x07\x02\x02\x03\u03AF\xC1\x03\x02\x02\x02\u03B0\u03B1\x05\xC4c\x02\u03B1" +
6078
- "\xC3\x03\x02\x02\x02\u03B2\u03BB\x07\x03\x02\x02\u03B3\u03BB\x07\x80\x02" +
6079
- "\x02\u03B4\u03BB\x07\x81\x02\x02\u03B5\u03BB\x05\xC6d\x02\u03B6\u03BB" +
6080
- "\x05\xCAf\x02\u03B7\u03BB\x07Q\x02\x02\u03B8\u03BB\x072\x02\x02\u03B9" +
6081
- "\u03BB\x07B\x02\x02\u03BA\u03B2\x03\x02\x02\x02\u03BA\u03B3\x03\x02\x02" +
6082
- "\x02\u03BA\u03B4\x03\x02\x02\x02\u03BA\u03B5\x03\x02\x02\x02\u03BA\u03B6" +
6083
- "\x03\x02\x02\x02\u03BA\u03B7\x03\x02\x02\x02\u03BA\u03B8\x03\x02\x02\x02" +
6084
- "\u03BA\u03B9\x03\x02\x02\x02\u03BB\xC5\x03\x02\x02\x02\u03BC\u03BD\x07" +
6085
- "b\x02\x02\u03BD\u03C2\x05\xC8e\x02\u03BE\u03BF\x07f\x02\x02\u03BF\u03C1" +
6086
- "\x05\xC8e\x02\u03C0\u03BE\x03\x02\x02\x02\u03C1\u03C4\x03\x02\x02\x02" +
6087
- "\u03C2\u03C0\x03\x02\x02\x02\u03C2\u03C3\x03\x02\x02\x02\u03C3\u03C5\x03" +
6088
- "\x02\x02\x02\u03C4\u03C2\x03\x02\x02\x02\u03C5\u03C6\x07c\x02\x02\u03C6" +
6089
- "\u03CA\x03\x02\x02\x02\u03C7\u03C8\x07b\x02\x02\u03C8\u03CA\x07c\x02\x02" +
6090
- "\u03C9\u03BC\x03\x02\x02\x02\u03C9\u03C7\x03\x02\x02\x02\u03CA\xC7\x03" +
6091
- "\x02\x02\x02\u03CB\u03CC\x07\x03\x02\x02\u03CC\u03CD\x07e\x02\x02\u03CD" +
6092
- "\u03CE\x05\xC4c\x02\u03CE\xC9\x03\x02\x02\x02\u03CF\u03D0\x07`\x02\x02" +
6093
- "\u03D0\u03D5\x05\xC4c\x02\u03D1\u03D2\x07f\x02\x02\u03D2\u03D4\x05\xC4" +
6094
- "c\x02\u03D3\u03D1\x03\x02\x02\x02\u03D4\u03D7\x03\x02\x02\x02\u03D5\u03D3" +
6095
- "\x03\x02\x02\x02\u03D5\u03D6\x03\x02\x02\x02\u03D6\u03D8\x03\x02\x02\x02" +
6096
- "\u03D7\u03D5\x03\x02\x02\x02\u03D8\u03D9\x07a\x02\x02\u03D9\u03DD\x03" +
6097
- "\x02\x02\x02\u03DA\u03DB\x07`\x02\x02\u03DB\u03DD\x07a\x02\x02\u03DC\u03CF" +
6098
- "\x03\x02\x02\x02\u03DC\u03DA\x03\x02\x02\x02\u03DD\xCB\x03\x02\x02\x02" +
6099
- "\u03DE\u03DF\x05\xA4S\x02\u03DF\xCD\x03\x02\x02\x02\u03E0\u03E1\x05\xA4" +
6100
- "S\x02\u03E1\xCF\x03\x02\x02\x02\u03E2\u03E3\x07\x03\x02\x02\u03E3\xD1" +
6101
- "\x03\x02\x02\x02q\xD4\xD6\xDF\xEA\xF2\xFA\u0102\u0108\u0118\u011D\u0121" +
6102
- "\u0130\u0133\u0138\u013B\u0141\u0147\u014A\u014C\u015A\u015C\u0160\u016D" +
6103
- "\u0172\u0176\u017E\u0181\u018F\u0198\u019A\u019F\u01B0\u01B4\u01B9\u01BD" +
6104
- "\u01C5\u01CA\u01CE\u01D2\u01D7\u01DB\u01EA\u01EF\u01F3\u01FB\u01FF\u0204" +
6105
- "\u0208\u020D\u0215\u0219\u021B\u0221\u0226\u022D\u0231\u023B\u0240\u0244" +
6106
- "\u0259\u0260\u0265\u0269\u026F\u0276\u027B\u027F\u0283\u0286\u028C\u0299" +
6107
- "\u029E\u02A2\u02A6\u02A9\u02B2\u02B7\u02BC\u02BF\u02C3\u02C8\u02CF\u02E3" +
6108
- "\u02EB\u030C\u0312\u031C\u0320\u032C\u0331\u035B\u035D\u0361\u0368\u036C" +
6109
- "\u0370\u037A\u037E\u0382\u0387\u038C\u0391\u0395\u039B\u039F\u03A6\u03BA" +
6110
- "\u03C2\u03C9\u03D5\u03DC";
5971
+ "\x03\x02\x02\x02\u02BD\u02C1\x03\x02\x02\x02\u02BE\u02C1\x07p\x02\x02" +
5972
+ "\u02BF\u02C1\x07q\x02\x02\u02C0\u02B9\x03\x02\x02\x02\u02C0\u02BE\x03" +
5973
+ "\x02\x02\x02\u02C0\u02BF\x03\x02\x02\x02\u02C1\x8F\x03\x02\x02\x02\u02C2" +
5974
+ "\u02C9\x05\x8EH\x02\u02C3\u02C5\x07f\x02\x02\u02C4\u02C3\x03\x02\x02\x02" +
5975
+ "\u02C4\u02C5\x03\x02\x02\x02\u02C5\u02C6\x03\x02\x02\x02\u02C6\u02C8\x05" +
5976
+ "\x8EH\x02\u02C7\u02C4\x03\x02\x02\x02\u02C8\u02CB\x03\x02\x02\x02\u02C9" +
5977
+ "\u02C7\x03\x02\x02\x02\u02C9\u02CA\x03\x02\x02\x02\u02CA\x91\x03\x02\x02" +
5978
+ "\x02\u02CB\u02C9\x03\x02\x02\x02\u02CC\u02CD\x07\r\x02\x02\u02CD\u02D0" +
5979
+ "\x05\x90I\x02\u02CE\u02CF\x07&\x02\x02\u02CF\u02D1\x05\xBE`\x02\u02D0" +
5980
+ "\u02CE\x03\x02\x02\x02\u02D0\u02D1\x03\x02\x02\x02\u02D1\x93\x03\x02\x02" +
5981
+ "\x02\u02D2\u02D3\x07\x19\x02\x02\u02D3\u02D4\x05\x96L\x02\u02D4\x95\x03" +
5982
+ "\x02\x02\x02\u02D5\u02D6\t\x05\x02\x02\u02D6\x97\x03\x02\x02\x02\u02D7" +
5983
+ "\u02D8\t\x06\x02\x02\u02D8\x99\x03\x02\x02\x02\u02D9\u02DA\t\x07\x02\x02" +
5984
+ "\u02DA\x9B\x03\x02\x02\x02\u02DB\u02DC\t\b\x02\x02\u02DC\x9D\x03\x02\x02" +
5985
+ "\x02\u02DD\u02E5\x07Z\x02\x02\u02DE\u02E5\t\t\x02\x02\u02DF\u02E5\x05" +
5986
+ "\xA0Q\x02\u02E0\u02E5\x07B\x02\x02\u02E1\u02E5\t\n\x02\x02\u02E2\u02E5" +
5987
+ "\x07Y\x02\x02\u02E3\u02E5\x07A\x02\x02\u02E4\u02DD\x03\x02\x02\x02\u02E4" +
5988
+ "\u02DE\x03\x02\x02\x02\u02E4\u02DF\x03\x02\x02\x02\u02E4\u02E0\x03\x02" +
5989
+ "\x02\x02\u02E4\u02E1\x03\x02\x02\x02\u02E4\u02E2\x03\x02\x02\x02\u02E4" +
5990
+ "\u02E3\x03\x02\x02\x02\u02E5\x9F\x03\x02\x02\x02\u02E6\u02ED\x07x\x02" +
5991
+ "\x02\u02E7\u02ED\x07y\x02\x02\u02E8\u02ED\x07|\x02\x02\u02E9\u02ED\x07" +
5992
+ "{\x02\x02\u02EA\u02ED\x07z\x02\x02\u02EB\u02ED\x07}\x02\x02\u02EC\u02E6" +
5993
+ "\x03\x02\x02\x02\u02EC\u02E7\x03\x02\x02\x02\u02EC\u02E8\x03\x02\x02\x02" +
5994
+ "\u02EC\u02E9\x03\x02\x02\x02\u02EC\u02EA\x03\x02\x02\x02\u02EC\u02EB\x03" +
5995
+ "\x02\x02\x02\u02ED\xA1\x03\x02\x02\x02\u02EE\u02EF\x07Z\x02\x02\u02EF" +
5996
+ "\xA3\x03\x02\x02\x02\u02F0\u02F1\t\v\x02\x02\u02F1\xA5\x03\x02\x02\x02" +
5997
+ "\u02F2\u02F3\t\f\x02\x02\u02F3\xA7\x03\x02\x02\x02\u02F4\u02F5\t\r\x02" +
5998
+ "\x02\u02F5\xA9\x03\x02\x02\x02\u02F6\u02F7\bV\x01\x02\u02F7\u0333\x05" +
5999
+ "\xBA^\x02\u02F8\u0333\x05\x9EP\x02\u02F9\u02FA\x07o\x02\x02\u02FA\u0333" +
6000
+ "\x05\xAAV\x16\u02FB\u02FC\x07@\x02\x02\u02FC\u0333\x05\xAAV\v\u02FD\u02FE" +
6001
+ "\x07(\x02\x02\u02FE\u02FF\x07^\x02\x02\u02FF\u0300\x05\xAAV\x02\u0300" +
6002
+ "\u0301\x07\"\x02\x02\u0301\u0302\x05\x9AN\x02\u0302\u0303\x07_\x02\x02" +
6003
+ "\u0303\u0333\x03\x02\x02\x02\u0304\u0305\x07*\x02\x02\u0305\u0306\x07" +
6004
+ "^\x02\x02\u0306\u0307\x07.\x02\x02\u0307\u0308\x05\xAAV\x02\u0308\u0309" +
6005
+ "\x07_\x02\x02\u0309\u0333\x03\x02\x02\x02\u030A\u030B\x05\xBA^\x02\u030B" +
6006
+ "\u030C\x07g\x02\x02\u030C\u030E\x03\x02\x02\x02\u030D\u030A\x03\x02\x02" +
6007
+ "\x02\u030D\u030E\x03\x02\x02\x02\u030E\u030F\x03\x02\x02\x02\u030F\u0310" +
6008
+ "\x05\x98M\x02\u0310\u0313\x07^\x02\x02\u0311\u0314\x05\xAAV\x02\u0312" +
6009
+ "\u0314\x07p\x02\x02\u0313\u0311\x03\x02\x02\x02\u0313\u0312\x03\x02\x02" +
6010
+ "\x02\u0313\u0314\x03\x02\x02\x02\u0314\u0315\x03\x02\x02\x02\u0315\u0316" +
6011
+ "\x07_\x02\x02\u0316\u0333\x03\x02\x02\x02\u0317\u0318\x07^\x02\x02\u0318" +
6012
+ "\u0319\x05\xACW\x02\u0319\u031A\x07_\x02\x02\u031A\u0333\x03\x02\x02\x02" +
6013
+ "\u031B\u031E\x05\xA4S\x02\u031C\u031E\x05\xA6T\x02\u031D\u031B\x03\x02" +
6014
+ "\x02\x02\u031D\u031C\x03\x02\x02\x02\u031E\u031F\x03\x02\x02\x02\u031F" +
6015
+ "\u0321\x07^\x02\x02\u0320\u0322\x05\xB2Z\x02\u0321\u0320\x03\x02\x02\x02" +
6016
+ "\u0321\u0322\x03\x02\x02\x02\u0322\u0323\x03\x02\x02\x02\u0323\u0324\x07" +
6017
+ "_\x02\x02\u0324\u0333\x03\x02\x02\x02\u0325\u0333\x05\xAEX\x02\u0326\u0327" +
6018
+ "\x05\xA8U\x02\u0327\u0328\x07^\x02\x02\u0328\u032D\x05\xAAV\x02\u0329" +
6019
+ "\u032A\x07f\x02\x02\u032A\u032C\x05\xBE`\x02\u032B\u0329\x03\x02\x02\x02" +
6020
+ "\u032C\u032F\x03\x02\x02\x02\u032D\u032B\x03\x02\x02\x02\u032D\u032E\x03" +
6021
+ "\x02\x02\x02\u032E\u0330\x03\x02\x02\x02\u032F\u032D\x03\x02\x02\x02\u0330" +
6022
+ "\u0331\x07_\x02\x02\u0331\u0333\x03\x02\x02\x02\u0332\u02F6\x03\x02\x02" +
6023
+ "\x02\u0332\u02F8\x03\x02\x02\x02\u0332\u02F9\x03\x02\x02\x02\u0332\u02FB" +
6024
+ "\x03\x02\x02\x02\u0332\u02FD\x03\x02\x02\x02\u0332\u0304\x03\x02\x02\x02" +
6025
+ "\u0332\u030D\x03\x02\x02\x02\u0332\u0317\x03\x02\x02\x02\u0332\u031D\x03" +
6026
+ "\x02\x02\x02\u0332\u0325\x03\x02\x02\x02\u0332\u0326\x03\x02\x02\x02\u0333" +
6027
+ "\u035E\x03\x02\x02\x02\u0334\u0335\f\x12\x02\x02\u0335\u0336\t\x0E\x02" +
6028
+ "\x02\u0336\u035D\x05\xAAV\x13\u0337\u0338\f\x11\x02\x02\u0338\u0339\t" +
6029
+ "\x0F\x02\x02\u0339\u035D\x05\xAAV\x12\u033A\u033B\f\x10\x02\x02\u033B" +
6030
+ "\u033C\x07P\x02\x02\u033C\u035D\x05\xAAV\x11\u033D\u033E\f\r\x02\x02\u033E" +
6031
+ "\u033F\x05\x9CO\x02\u033F\u0340\x05\xAAV\x0E\u0340\u035D\x03\x02\x02\x02" +
6032
+ "\u0341\u0342\f\n\x02\x02\u0342\u0343\t\x10\x02\x02\u0343\u035D\x05\xAA" +
6033
+ "V\v\u0344\u0345\f\x18\x02\x02\u0345\u0346\x07b\x02\x02\u0346\u0347\x05" +
6034
+ "`1\x02\u0347\u0348\x07c\x02\x02\u0348\u035D\x03\x02\x02\x02\u0349\u034A" +
6035
+ "\f\x15\x02\x02\u034A\u035D\x05\xA6T\x02\u034B\u034C\f\x14\x02\x02\u034C" +
6036
+ "\u034D\x07g\x02\x02\u034D\u035D\x05\xA6T\x02\u034E\u034F\f\x13\x02\x02" +
6037
+ "\u034F\u0350\x07d\x02\x02\u0350\u035D\x05\x9AN\x02\u0351\u0352\f\x0F\x02" +
6038
+ "\x02\u0352\u0353\x073\x02\x02\u0353\u0354\x05\xAAV\x02\u0354\u0355\x05" +
6039
+ "\xA6T\x02\u0355\u035D\x03\x02\x02\x02\u0356\u0357\f\x0E\x02\x02\u0357" +
6040
+ "\u0358\t\x11\x02\x02\u0358\u035D\x05\xACW\x02\u0359\u035A\f\f\x02\x02" +
6041
+ "\u035A\u035B\t\x12\x02\x02\u035B\u035D\x05\xACW\x02\u035C\u0334\x03\x02" +
6042
+ "\x02\x02\u035C\u0337\x03\x02\x02\x02\u035C\u033A\x03\x02\x02\x02\u035C" +
6043
+ "\u033D\x03\x02\x02\x02\u035C\u0341\x03\x02\x02\x02\u035C\u0344\x03\x02" +
6044
+ "\x02\x02\u035C\u0349\x03\x02\x02\x02\u035C\u034B\x03\x02\x02\x02\u035C" +
6045
+ "\u034E\x03\x02\x02\x02\u035C\u0351\x03\x02\x02\x02\u035C\u0356\x03\x02" +
6046
+ "\x02\x02\u035C\u0359\x03\x02\x02\x02\u035D\u0360\x03\x02\x02\x02\u035E" +
6047
+ "\u035C\x03\x02\x02\x02\u035E\u035F\x03\x02\x02\x02\u035F\xAB\x03\x02\x02" +
6048
+ "\x02\u0360\u035E\x03\x02\x02\x02\u0361\u0363\x05\x9CO\x02\u0362\u0361" +
6049
+ "\x03\x02\x02\x02\u0362\u0363\x03\x02\x02\x02\u0363\u0364\x03\x02\x02\x02" +
6050
+ "\u0364\u0365\x05\xAAV\x02\u0365\xAD\x03\x02\x02\x02\u0366\u0368\x05\xB0" +
6051
+ "Y\x02\u0367\u0366\x03\x02\x02\x02\u0368\u0369\x03\x02\x02\x02\u0369\u0367" +
6052
+ "\x03\x02\x02\x02\u0369\u036A\x03\x02\x02\x02\u036A\u036D\x03\x02\x02\x02" +
6053
+ "\u036B\u036C\x07/\x02\x02\u036C\u036E\x05\xAAV\x02\u036D\u036B\x03\x02" +
6054
+ "\x02\x02\u036D\u036E\x03\x02\x02\x02\u036E\xAF\x03\x02\x02\x02\u036F\u0371" +
6055
+ "\x07F\x02\x02\u0370\u0372\x05\xAAV\x02\u0371\u0370\x03\x02\x02\x02\u0371" +
6056
+ "\u0372\x03\x02\x02\x02\u0372\u0373\x03\x02\x02\x02\u0373\u0374\x07T\x02" +
6057
+ "\x02\u0374\u0375\x05\xACW\x02\u0375\xB1\x03\x02\x02\x02\u0376\u037B\x05" +
6058
+ "\xAAV\x02\u0377\u0378\x07f\x02\x02\u0378\u037A\x05\xAAV\x02\u0379\u0377" +
6059
+ "\x03\x02\x02\x02\u037A\u037D\x03\x02\x02\x02\u037B\u0379\x03\x02\x02\x02" +
6060
+ "\u037B\u037C\x03\x02\x02\x02\u037C\u037F\x03\x02\x02\x02\u037D\u037B\x03" +
6061
+ "\x02\x02\x02\u037E\u0380\x07f\x02\x02\u037F\u037E\x03\x02\x02\x02\u037F" +
6062
+ "\u0380\x03\x02\x02\x02\u0380\xB3\x03\x02\x02\x02\u0381\u0388\x05\xBE`" +
6063
+ "\x02\u0382\u0384\x07f\x02\x02\u0383\u0382\x03\x02\x02\x02\u0383\u0384" +
6064
+ "\x03\x02\x02\x02\u0384\u0385\x03\x02\x02\x02\u0385\u0387\x05\xBE`\x02" +
6065
+ "\u0386\u0383\x03\x02\x02\x02\u0387\u038A\x03\x02\x02\x02\u0388\u0386\x03" +
6066
+ "\x02\x02\x02\u0388\u0389\x03\x02\x02\x02\u0389\xB5\x03\x02\x02\x02\u038A" +
6067
+ "\u0388\x03\x02\x02\x02\u038B\u0392\x05\xB8]\x02\u038C\u038E\x07f\x02\x02" +
6068
+ "\u038D\u038C\x03\x02\x02\x02\u038D\u038E\x03\x02\x02\x02\u038E\u038F\x03" +
6069
+ "\x02\x02\x02\u038F\u0391\x05\xB8]\x02\u0390\u038D\x03\x02\x02\x02\u0391" +
6070
+ "\u0394\x03\x02\x02\x02\u0392\u0390\x03\x02\x02\x02\u0392\u0393\x03\x02" +
6071
+ "\x02\x02\u0393\u0396\x03\x02\x02\x02\u0394\u0392\x03\x02\x02\x02\u0395" +
6072
+ "\u0397\x07f\x02\x02\u0396\u0395\x03\x02\x02\x02\u0396\u0397\x03\x02\x02" +
6073
+ "\x02\u0397\xB7\x03\x02\x02\x02\u0398\u03A1\x05\xBA^\x02\u0399\u039A\x05" +
6074
+ "\xBA^\x02\u039A\u039B\x07g\x02\x02\u039B\u039D\x03\x02\x02\x02\u039C\u0399" +
6075
+ "\x03\x02\x02\x02\u039C\u039D\x03\x02\x02\x02\u039D\u039E\x03\x02\x02\x02" +
6076
+ "\u039E\u03A1\t\x13\x02\x02\u039F\u03A1\x05L\'\x02\u03A0\u0398\x03\x02" +
6077
+ "\x02\x02\u03A0\u039C\x03\x02\x02\x02\u03A0\u039F\x03\x02\x02\x02\u03A1" +
6078
+ "\xB9\x03\x02\x02\x02\u03A2\u03A7\x05\xBE`\x02\u03A3\u03A4\x07g\x02\x02" +
6079
+ "\u03A4\u03A6\x05\xBE`\x02\u03A5\u03A3\x03\x02\x02\x02\u03A6\u03A9\x03" +
6080
+ "\x02\x02\x02\u03A7\u03A5\x03\x02\x02\x02\u03A7\u03A8\x03\x02\x02\x02\u03A8" +
6081
+ "\xBB\x03\x02\x02\x02\u03A9\u03A7\x03\x02\x02\x02\u03AA\u03AB\x05\xA4S" +
6082
+ "\x02\u03AB\xBD\x03\x02\x02\x02\u03AC\u03AD\x05\xA4S\x02\u03AD\xBF\x03" +
6083
+ "\x02\x02\x02\u03AE\u03AF\x05\xAAV\x02\u03AF\u03B0\x07\x02\x02\x03\u03B0" +
6084
+ "\xC1\x03\x02\x02\x02\u03B1\u03B2\x05\xC4c\x02\u03B2\xC3\x03\x02\x02\x02" +
6085
+ "\u03B3\u03BC\x07\x03\x02\x02\u03B4\u03BC\x07\x80\x02\x02\u03B5\u03BC\x07" +
6086
+ "\x81\x02\x02\u03B6\u03BC\x05\xC6d\x02\u03B7\u03BC\x05\xCAf\x02\u03B8\u03BC" +
6087
+ "\x07Q\x02\x02\u03B9\u03BC\x072\x02\x02\u03BA\u03BC\x07B\x02\x02\u03BB" +
6088
+ "\u03B3\x03\x02\x02\x02\u03BB\u03B4\x03\x02\x02\x02\u03BB\u03B5\x03\x02" +
6089
+ "\x02\x02\u03BB\u03B6\x03\x02\x02\x02\u03BB\u03B7\x03\x02\x02\x02\u03BB" +
6090
+ "\u03B8\x03\x02\x02\x02\u03BB\u03B9\x03\x02\x02\x02\u03BB\u03BA\x03\x02" +
6091
+ "\x02\x02\u03BC\xC5\x03\x02\x02\x02\u03BD\u03BE\x07b\x02\x02\u03BE\u03C3" +
6092
+ "\x05\xC8e\x02\u03BF\u03C0\x07f\x02\x02\u03C0\u03C2\x05\xC8e\x02\u03C1" +
6093
+ "\u03BF\x03\x02\x02\x02\u03C2\u03C5\x03\x02\x02\x02\u03C3\u03C1\x03\x02" +
6094
+ "\x02\x02\u03C3\u03C4\x03\x02\x02\x02\u03C4\u03C6\x03\x02\x02\x02\u03C5" +
6095
+ "\u03C3\x03\x02\x02\x02\u03C6\u03C7\x07c\x02\x02\u03C7\u03CB\x03\x02\x02" +
6096
+ "\x02\u03C8\u03C9\x07b\x02\x02\u03C9\u03CB\x07c\x02\x02\u03CA\u03BD\x03" +
6097
+ "\x02\x02\x02\u03CA\u03C8\x03\x02\x02\x02\u03CB\xC7\x03\x02\x02\x02\u03CC" +
6098
+ "\u03CD\x07\x03\x02\x02\u03CD\u03CE\x07e\x02\x02\u03CE\u03CF\x05\xC4c\x02" +
6099
+ "\u03CF\xC9\x03\x02\x02\x02\u03D0\u03D1\x07`\x02\x02\u03D1\u03D6\x05\xC4" +
6100
+ "c\x02\u03D2\u03D3\x07f\x02\x02\u03D3\u03D5\x05\xC4c\x02\u03D4\u03D2\x03" +
6101
+ "\x02\x02\x02\u03D5\u03D8\x03\x02\x02\x02\u03D6\u03D4\x03\x02\x02\x02\u03D6" +
6102
+ "\u03D7\x03\x02\x02\x02\u03D7\u03D9\x03\x02\x02\x02\u03D8\u03D6\x03\x02" +
6103
+ "\x02\x02\u03D9\u03DA\x07a\x02\x02\u03DA\u03DE\x03\x02\x02\x02\u03DB\u03DC" +
6104
+ "\x07`\x02\x02\u03DC\u03DE\x07a\x02\x02\u03DD\u03D0\x03\x02\x02\x02\u03DD" +
6105
+ "\u03DB\x03\x02\x02\x02\u03DE\xCB\x03\x02\x02\x02\u03DF\u03E0\x05\xA4S" +
6106
+ "\x02\u03E0\xCD\x03\x02\x02\x02\u03E1\u03E2\x05\xA4S\x02\u03E2\xCF\x03" +
6107
+ "\x02\x02\x02\u03E3\u03E4\x07\x03\x02\x02\u03E4\xD1\x03\x02\x02\x02q\xD4" +
6108
+ "\xD6\xDF\xEA\xF2\xFA\u0102\u0108\u0118\u011D\u0121\u0130\u0133\u0138\u013B" +
6109
+ "\u0141\u0147\u014A\u014C\u015A\u015C\u0160\u016D\u0172\u0176\u017E\u0181" +
6110
+ "\u018F\u0198\u019A\u019F\u01B0\u01B4\u01B9\u01BD\u01C5\u01CA\u01CE\u01D2" +
6111
+ "\u01D7\u01DB\u01EA\u01EF\u01F3\u01FB\u01FF\u0204\u0208\u020D\u0215\u0219" +
6112
+ "\u021B\u0221\u0226\u022D\u0231\u023B\u0240\u0244\u0259\u0260\u0265\u0269" +
6113
+ "\u026F\u0276\u027B\u027F\u0283\u0286\u028C\u0299\u029E\u02A2\u02A6\u02A9" +
6114
+ "\u02B2\u02B7\u02BC\u02C0\u02C4\u02C9\u02D0\u02E4\u02EC\u030D\u0313\u031D" +
6115
+ "\u0321\u032D\u0332\u035C\u035E\u0362\u0369\u036D\u0371\u037B\u037F\u0383" +
6116
+ "\u0388\u038D\u0392\u0396\u039C\u03A0\u03A7\u03BB\u03C3\u03CA\u03D6\u03DD";
6111
6117
  MalloyParser._serializedATN = Utils.join([
6112
6118
  MalloyParser._serializedATNSegment0,
6113
6119
  MalloyParser._serializedATNSegment1,
@@ -9445,6 +9451,7 @@ class IndexElementContext extends ParserRuleContext_1.ParserRuleContext {
9445
9451
  }
9446
9452
  DOT() { return this.tryGetToken(MalloyParser.DOT, 0); }
9447
9453
  STAR() { return this.tryGetToken(MalloyParser.STAR, 0); }
9454
+ STARSTAR() { return this.tryGetToken(MalloyParser.STARSTAR, 0); }
9448
9455
  constructor(parent, invokingState) {
9449
9456
  super(parent, invokingState);
9450
9457
  }