@malloydata/render 0.0.123-dev240205152128 → 0.0.123-dev240205203120

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.
@@ -33422,9 +33422,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
33422
33422
  Object.defineProperty(exports, "__esModule", { value: true });
33423
33423
  exports.DefExploreEditFieldContext = exports.DefExploreRenameContext = exports.DefExplorePrimaryKeyContext = exports.DefExploreWhere_stubContext = exports.DefJoin_stubContext = exports.DefDeclare_stubContext = exports.DefExploreMeasure_stubContext = exports.DefExploreDimension_stubContext = exports.ExploreStatementContext = exports.ExplorePropertiesContext = exports.SourceIDContext = exports.SourceNameDefContext = exports.SqExploreContext = exports.SourceDefinitionContext = exports.SourcePropertyListContext = exports.QueryNameContext = exports.FilterShortcutContext = exports.QueryPropertiesContext = exports.ConnectionIdContext = exports.TableMethodContext = exports.TableFunctionContext = exports.ExploreTableContext = exports.SqlSourceContext = exports.TurtleNameContext = exports.RefineOperatorContext = exports.TopLevelQueryDefContext = exports.TopLevelQueryDefsContext = exports.IgnoredModelAnnotationsContext = exports.IgnoredObjectAnnotationsContext = exports.DocAnnotationsContext = exports.ImportURLContext = exports.ImportItemContext = exports.ImportSelectContext = exports.ImportStatementContext = exports.SqlInterpolationContext = exports.SqlStringContext = exports.BlockSQLDefContext = exports.SqlBlockContext = exports.DefineSQLStatementContext = exports.RunStatementContext = exports.IsDefineContext = exports.TagsContext = exports.TopLevelAnonQueryDefContext = exports.AnonymousQueryContext = exports.Use_top_level_query_defsContext = exports.DefineQueryContext = exports.DefineSourceStatementContext = exports.MalloyStatementContext = exports.MalloyDocumentContext = exports.MalloyParser = void 0;
33424
33424
  exports.FieldPropertyLimitStatementContext = exports.AggregateOrderByStatementContext = exports.AggregateOrderBySpecContext = exports.AggregateOrderingContext = exports.FieldPropertiesContext = exports.FilterStatementContext = exports.JoinExpressionContext = exports.JoinOnContext = exports.JoinWithContext = exports.JoinDefContext = exports.MatrixOperationContext = exports.IsExploreContext = exports.JoinListContext = exports.QueryExtendStatementListContext = exports.QueryExtendStatementContext = exports.VArrowContext = exports.VSegContext = exports.VExprContext = exports.SegRefineContext = exports.SegParenContext = exports.SegOpsContext = exports.SegFieldContext = exports.SegExprContext = exports.SQSQLContext = exports.SQTableContext = exports.SQExtendedSourceContext = exports.SQArrowContext = exports.SQRefinedQueryContext = exports.SQParensContext = exports.SQIDContext = exports.SqExprContext = exports.ModEitherContext = exports.QueryExtendContext = exports.DefJoinCrossContext = exports.DefJoinManyContext = exports.DefJoinOneContext = exports.JoinStatementContext = exports.DeclareStatementContext = exports.JoinNameDefContext = exports.FieldNameDefContext = exports.FieldDefContext = exports.DefListContext = exports.ExploreRenameDefContext = exports.RenameListContext = exports.DefDimensionsContext = exports.DefMeasuresContext = exports.DefIgnoreModel_stubContext = exports.DefExploreAnnotationContext = exports.DefExploreTimezoneContext = exports.DefExploreQueryContext = void 0;
33425
- exports.LiteralTimestampContext = exports.DateLiteralContext = exports.ExprNowContext = exports.ExprRegexContext = exports.ExprBoolContext = exports.ExprNULLContext = exports.ExprTimeContext = exports.ExprNumberContext = exports.ExprStringContext = exports.LiteralContext = exports.NumericLiteralContext = exports.ShortStringContext = exports.StringContext = exports.CompareOpContext = exports.MalloyTypeContext = exports.AggregateContext = exports.SampleSpecContext = exports.QueryAnnotationContext = exports.TimezoneStatementContext = exports.SampleStatementContext = exports.IndexStatementContext = exports.IndexFieldsContext = exports.IndexElementContext = exports.TopStatementContext = exports.BySpecContext = exports.LimitStatementContext = exports.OrderBySpecContext = exports.OrderingContext = exports.OrderByStatementContext = exports.PartitionByStatementContext = exports.ProjectStatementContext = exports.CalculateStatementContext = exports.AggregateStatementContext = exports.NestDefContext = exports.NestExistingContext = exports.NestEntryContext = exports.NestedQueryListContext = exports.NestStatementContext = exports.QueryFieldEntryContext = exports.QueryFieldListContext = exports.GroupByStatementContext = exports.QueryJoinStatementContext = exports.QueryStatementContext = exports.ExploreQueryDefContext = exports.ExploreQueryNameDefContext = exports.SubQueryDefListContext = exports.HavingStatementContext = exports.WhereStatementContext = exports.FilterClauseListContext = exports.FieldPropertyStatementContext = void 0;
33426
- exports.TaggedRefContext = exports.StarQualifiedContext = exports.CollectionWildCardContext = exports.FieldCollectionContext = exports.FieldNameListContext = exports.ArgumentListContext = exports.PickContext = exports.PickStatementContext = exports.PartialAllowedFieldExprContext = exports.ExprUngroupContext = exports.ExprPickContext = exports.ExprFuncContext = exports.ExprAggFuncContext = exports.ExprExprContext = exports.ExprAggregateContext = exports.ExprPathlessAggregateContext = exports.ExprCountDisinctContext = exports.ExprCoalesceContext = exports.ExprLogicalOrContext = exports.ExprLogicalAndContext = exports.ExprNotContext = exports.ExprApplyContext = exports.ExprCompareContext = exports.ExprOrTreeContext = exports.ExprAndTreeContext = exports.ExprForRangeContext = exports.ExprRangeContext = exports.ExprAddSubContext = exports.ExprMulDivContext = exports.ExprMinusContext = exports.ExprSafeCastContext = exports.ExprCastContext = exports.ExprTimeTruncContext = exports.ExprDurationContext = exports.ExprLiteralContext = exports.ExprFieldPropsContext = exports.ExprFieldPathContext = exports.FieldExprContext = exports.MalloyOrSQLTypeContext = exports.UngroupContext = exports.TimeframeContext = exports.IdContext = exports.TableURIContext = exports.TablePathContext = exports.LiteralYearContext = exports.LiteralQuarterContext = exports.LiteralMonthContext = exports.LiteralWeekContext = exports.LiteralDayContext = exports.LiteralHourContext = void 0;
33427
- exports.ExperimentalStatementForTestingContext = exports.ConnectionNameContext = exports.NameSQLBlockContext = exports.SqlExploreNameRefContext = exports.JustExprContext = exports.FieldNameContext = exports.JoinNameContext = exports.FieldPathContext = exports.CollectionMemberContext = exports.RefExprContext = void 0;
33425
+ exports.LiteralHourContext = exports.LiteralTimestampContext = exports.DateLiteralContext = exports.ExprNowContext = exports.ExprRegexContext = exports.ExprBoolContext = exports.ExprNULLContext = exports.ExprTimeContext = exports.ExprNumberContext = exports.ExprStringContext = exports.LiteralContext = exports.NumericLiteralContext = exports.ShortStringContext = exports.StringContext = exports.CompareOpContext = exports.MalloyTypeContext = exports.AggregateContext = exports.SampleSpecContext = exports.QueryAnnotationContext = exports.TimezoneStatementContext = exports.SampleStatementContext = exports.IndexStatementContext = exports.IndexFieldsContext = exports.IndexElementContext = exports.TopStatementContext = exports.BySpecContext = exports.LimitStatementContext = exports.OrderBySpecContext = exports.OrderingContext = exports.OrderByStatementContext = exports.PartitionByStatementContext = exports.ProjectStatementContext = exports.CalculateStatementContext = exports.AggregateStatementContext = exports.NestDefContext = exports.NestEntryContext = exports.NestedQueryListContext = exports.NestStatementContext = exports.QueryFieldEntryContext = exports.QueryFieldListContext = exports.GroupByStatementContext = exports.QueryJoinStatementContext = exports.QueryStatementContext = exports.ExploreQueryDefContext = exports.ExploreQueryNameDefContext = exports.SubQueryDefListContext = exports.HavingStatementContext = exports.WhereStatementContext = exports.FilterClauseListContext = exports.FieldPropertyStatementContext = void 0;
33426
+ exports.RefExprContext = exports.TaggedRefContext = exports.StarQualifiedContext = exports.CollectionWildCardContext = exports.FieldCollectionContext = exports.FieldNameListContext = exports.ArgumentListContext = exports.PickContext = exports.PickStatementContext = exports.PartialAllowedFieldExprContext = exports.ExprUngroupContext = exports.ExprPickContext = exports.ExprFuncContext = exports.ExprAggFuncContext = exports.ExprExprContext = exports.ExprAggregateContext = exports.ExprPathlessAggregateContext = exports.ExprCountDisinctContext = exports.ExprCoalesceContext = exports.ExprLogicalOrContext = exports.ExprLogicalAndContext = exports.ExprNotContext = exports.ExprApplyContext = exports.ExprCompareContext = exports.ExprOrTreeContext = exports.ExprAndTreeContext = exports.ExprForRangeContext = exports.ExprRangeContext = exports.ExprAddSubContext = exports.ExprMulDivContext = exports.ExprMinusContext = exports.ExprSafeCastContext = exports.ExprCastContext = exports.ExprTimeTruncContext = exports.ExprDurationContext = exports.ExprLiteralContext = exports.ExprFieldPropsContext = exports.ExprFieldPathContext = exports.FieldExprContext = exports.MalloyOrSQLTypeContext = exports.UngroupContext = exports.TimeframeContext = exports.IdContext = exports.TableURIContext = exports.TablePathContext = exports.LiteralYearContext = exports.LiteralQuarterContext = exports.LiteralMonthContext = exports.LiteralWeekContext = exports.LiteralDayContext = void 0;
33427
+ exports.ExperimentalStatementForTestingContext = exports.ConnectionNameContext = exports.NameSQLBlockContext = exports.SqlExploreNameRefContext = exports.JustExprContext = exports.FieldNameContext = exports.JoinNameContext = exports.FieldPathContext = exports.CollectionMemberContext = void 0;
33428
33428
  var ATN_1 = require_ATN();
33429
33429
  var ATNDeserializer_1 = require_ATNDeserializer();
33430
33430
  var FailedPredicateException_1 = require_FailedPredicateException();
@@ -37276,46 +37276,26 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37276
37276
  nestEntry() {
37277
37277
  let _localctx = new NestEntryContext(this._ctx, this.state);
37278
37278
  this.enterRule(_localctx, 158, _MalloyParser.RULE_nestEntry);
37279
- let _la;
37280
37279
  try {
37281
- this.state = 859;
37282
- this._errHandler.sync(this);
37283
- switch (this.interpreter.adaptivePredict(this._input, 81, this._ctx)) {
37284
- case 1:
37285
- _localctx = new NestExistingContext(_localctx);
37286
- this.enterOuterAlt(_localctx, 1);
37287
- {
37288
- this.state = 848;
37289
- this.tags();
37290
- this.state = 849;
37291
- this.fieldPath();
37292
- this.state = 852;
37293
- this._errHandler.sync(this);
37294
- _la = this._input.LA(1);
37295
- if (_la === _MalloyParser.PLUS) {
37296
- {
37297
- this.state = 850;
37298
- this.match(_MalloyParser.PLUS);
37299
- this.state = 851;
37300
- this.vExpr();
37301
- }
37280
+ _localctx = new NestDefContext(_localctx);
37281
+ this.enterOuterAlt(_localctx, 1);
37282
+ {
37283
+ this.state = 848;
37284
+ this.tags();
37285
+ this.state = 852;
37286
+ this._errHandler.sync(this);
37287
+ switch (this.interpreter.adaptivePredict(this._input, 80, this._ctx)) {
37288
+ case 1:
37289
+ {
37290
+ this.state = 849;
37291
+ this.queryName();
37292
+ this.state = 850;
37293
+ this.isDefine();
37302
37294
  }
37303
- }
37304
- break;
37305
- case 2:
37306
- _localctx = new NestDefContext(_localctx);
37307
- this.enterOuterAlt(_localctx, 2);
37308
- {
37309
- this.state = 854;
37310
- this.tags();
37311
- this.state = 855;
37312
- this.queryName();
37313
- this.state = 856;
37314
- this.isDefine();
37315
- this.state = 857;
37316
- this.vExpr();
37317
- }
37318
- break;
37295
+ break;
37296
+ }
37297
+ this.state = 854;
37298
+ this.vExpr();
37319
37299
  }
37320
37300
  } catch (re2) {
37321
37301
  if (re2 instanceof RecognitionException_1.RecognitionException) {
@@ -37337,11 +37317,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37337
37317
  try {
37338
37318
  this.enterOuterAlt(_localctx, 1);
37339
37319
  {
37340
- this.state = 861;
37320
+ this.state = 856;
37341
37321
  this.tags();
37342
- this.state = 862;
37322
+ this.state = 857;
37343
37323
  this.match(_MalloyParser.AGGREGATE);
37344
- this.state = 863;
37324
+ this.state = 858;
37345
37325
  this.queryFieldList();
37346
37326
  }
37347
37327
  } catch (re2) {
@@ -37364,11 +37344,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37364
37344
  try {
37365
37345
  this.enterOuterAlt(_localctx, 1);
37366
37346
  {
37367
- this.state = 865;
37347
+ this.state = 860;
37368
37348
  this.tags();
37369
- this.state = 866;
37349
+ this.state = 861;
37370
37350
  this.match(_MalloyParser.CALCULATE);
37371
- this.state = 867;
37351
+ this.state = 862;
37372
37352
  this.queryFieldList();
37373
37353
  }
37374
37354
  } catch (re2) {
@@ -37392,9 +37372,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37392
37372
  try {
37393
37373
  this.enterOuterAlt(_localctx, 1);
37394
37374
  {
37395
- this.state = 869;
37375
+ this.state = 864;
37396
37376
  this.tags();
37397
- this.state = 870;
37377
+ this.state = 865;
37398
37378
  _la = this._input.LA(1);
37399
37379
  if (!(_la === _MalloyParser.PROJECT || _la === _MalloyParser.SELECT)) {
37400
37380
  this._errHandler.recoverInline(this);
@@ -37405,7 +37385,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37405
37385
  this._errHandler.reportMatch(this);
37406
37386
  this.consume();
37407
37387
  }
37408
- this.state = 871;
37388
+ this.state = 866;
37409
37389
  this.fieldCollection();
37410
37390
  }
37411
37391
  } catch (re2) {
@@ -37430,34 +37410,34 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37430
37410
  let _alt;
37431
37411
  this.enterOuterAlt(_localctx, 1);
37432
37412
  {
37433
- this.state = 873;
37413
+ this.state = 868;
37434
37414
  this.match(_MalloyParser.PARTITION_BY);
37435
- this.state = 874;
37415
+ this.state = 869;
37436
37416
  this.id();
37437
- this.state = 879;
37417
+ this.state = 874;
37438
37418
  this._errHandler.sync(this);
37439
- _alt = this.interpreter.adaptivePredict(this._input, 82, this._ctx);
37419
+ _alt = this.interpreter.adaptivePredict(this._input, 81, this._ctx);
37440
37420
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
37441
37421
  if (_alt === 1) {
37442
37422
  {
37443
37423
  {
37444
- this.state = 875;
37424
+ this.state = 870;
37445
37425
  this.match(_MalloyParser.COMMA);
37446
- this.state = 876;
37426
+ this.state = 871;
37447
37427
  this.id();
37448
37428
  }
37449
37429
  }
37450
37430
  }
37451
- this.state = 881;
37431
+ this.state = 876;
37452
37432
  this._errHandler.sync(this);
37453
- _alt = this.interpreter.adaptivePredict(this._input, 82, this._ctx);
37433
+ _alt = this.interpreter.adaptivePredict(this._input, 81, this._ctx);
37454
37434
  }
37455
- this.state = 883;
37435
+ this.state = 878;
37456
37436
  this._errHandler.sync(this);
37457
37437
  _la = this._input.LA(1);
37458
37438
  if (_la === _MalloyParser.COMMA) {
37459
37439
  {
37460
- this.state = 882;
37440
+ this.state = 877;
37461
37441
  this.match(_MalloyParser.COMMA);
37462
37442
  }
37463
37443
  }
@@ -37482,9 +37462,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37482
37462
  try {
37483
37463
  this.enterOuterAlt(_localctx, 1);
37484
37464
  {
37485
- this.state = 885;
37465
+ this.state = 880;
37486
37466
  this.match(_MalloyParser.ORDER_BY);
37487
- this.state = 886;
37467
+ this.state = 881;
37488
37468
  this.ordering();
37489
37469
  }
37490
37470
  } catch (re2) {
@@ -37509,39 +37489,39 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37509
37489
  let _alt;
37510
37490
  this.enterOuterAlt(_localctx, 1);
37511
37491
  {
37512
- this.state = 888;
37492
+ this.state = 883;
37513
37493
  this.orderBySpec();
37514
- this.state = 895;
37494
+ this.state = 890;
37515
37495
  this._errHandler.sync(this);
37516
- _alt = this.interpreter.adaptivePredict(this._input, 85, this._ctx);
37496
+ _alt = this.interpreter.adaptivePredict(this._input, 84, this._ctx);
37517
37497
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
37518
37498
  if (_alt === 1) {
37519
37499
  {
37520
37500
  {
37521
- this.state = 890;
37501
+ this.state = 885;
37522
37502
  this._errHandler.sync(this);
37523
37503
  _la = this._input.LA(1);
37524
37504
  if (_la === _MalloyParser.COMMA) {
37525
37505
  {
37526
- this.state = 889;
37506
+ this.state = 884;
37527
37507
  this.match(_MalloyParser.COMMA);
37528
37508
  }
37529
37509
  }
37530
- this.state = 892;
37510
+ this.state = 887;
37531
37511
  this.orderBySpec();
37532
37512
  }
37533
37513
  }
37534
37514
  }
37535
- this.state = 897;
37515
+ this.state = 892;
37536
37516
  this._errHandler.sync(this);
37537
- _alt = this.interpreter.adaptivePredict(this._input, 85, this._ctx);
37517
+ _alt = this.interpreter.adaptivePredict(this._input, 84, this._ctx);
37538
37518
  }
37539
- this.state = 899;
37519
+ this.state = 894;
37540
37520
  this._errHandler.sync(this);
37541
37521
  _la = this._input.LA(1);
37542
37522
  if (_la === _MalloyParser.COMMA) {
37543
37523
  {
37544
- this.state = 898;
37524
+ this.state = 893;
37545
37525
  this.match(_MalloyParser.COMMA);
37546
37526
  }
37547
37527
  }
@@ -37567,31 +37547,31 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37567
37547
  try {
37568
37548
  this.enterOuterAlt(_localctx, 1);
37569
37549
  {
37570
- this.state = 903;
37550
+ this.state = 898;
37571
37551
  this._errHandler.sync(this);
37572
37552
  switch (this._input.LA(1)) {
37573
37553
  case _MalloyParser.INTEGER_LITERAL:
37574
37554
  {
37575
- this.state = 901;
37555
+ this.state = 896;
37576
37556
  this.match(_MalloyParser.INTEGER_LITERAL);
37577
37557
  }
37578
37558
  break;
37579
37559
  case _MalloyParser.BQ_STRING:
37580
37560
  case _MalloyParser.IDENTIFIER:
37581
37561
  {
37582
- this.state = 902;
37562
+ this.state = 897;
37583
37563
  this.fieldName();
37584
37564
  }
37585
37565
  break;
37586
37566
  default:
37587
37567
  throw new NoViableAltException_1.NoViableAltException(this);
37588
37568
  }
37589
- this.state = 906;
37569
+ this.state = 901;
37590
37570
  this._errHandler.sync(this);
37591
37571
  _la = this._input.LA(1);
37592
37572
  if (_la === _MalloyParser.ASC || _la === _MalloyParser.DESC) {
37593
37573
  {
37594
- this.state = 905;
37574
+ this.state = 900;
37595
37575
  _la = this._input.LA(1);
37596
37576
  if (!(_la === _MalloyParser.ASC || _la === _MalloyParser.DESC)) {
37597
37577
  this._errHandler.recoverInline(this);
@@ -37625,9 +37605,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37625
37605
  try {
37626
37606
  this.enterOuterAlt(_localctx, 1);
37627
37607
  {
37628
- this.state = 908;
37608
+ this.state = 903;
37629
37609
  this.match(_MalloyParser.LIMIT);
37630
- this.state = 909;
37610
+ this.state = 904;
37631
37611
  this.match(_MalloyParser.INTEGER_LITERAL);
37632
37612
  }
37633
37613
  } catch (re2) {
@@ -37648,24 +37628,24 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37648
37628
  let _localctx = new BySpecContext(this._ctx, this.state);
37649
37629
  this.enterRule(_localctx, 176, _MalloyParser.RULE_bySpec);
37650
37630
  try {
37651
- this.state = 915;
37631
+ this.state = 910;
37652
37632
  this._errHandler.sync(this);
37653
- switch (this.interpreter.adaptivePredict(this._input, 89, this._ctx)) {
37633
+ switch (this.interpreter.adaptivePredict(this._input, 88, this._ctx)) {
37654
37634
  case 1:
37655
37635
  this.enterOuterAlt(_localctx, 1);
37656
37636
  {
37657
- this.state = 911;
37637
+ this.state = 906;
37658
37638
  this.match(_MalloyParser.BY);
37659
- this.state = 912;
37639
+ this.state = 907;
37660
37640
  this.fieldName();
37661
37641
  }
37662
37642
  break;
37663
37643
  case 2:
37664
37644
  this.enterOuterAlt(_localctx, 2);
37665
37645
  {
37666
- this.state = 913;
37646
+ this.state = 908;
37667
37647
  this.match(_MalloyParser.BY);
37668
- this.state = 914;
37648
+ this.state = 909;
37669
37649
  this.fieldExpr(0);
37670
37650
  }
37671
37651
  break;
@@ -37691,16 +37671,16 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37691
37671
  try {
37692
37672
  this.enterOuterAlt(_localctx, 1);
37693
37673
  {
37694
- this.state = 917;
37674
+ this.state = 912;
37695
37675
  this.match(_MalloyParser.TOP);
37696
- this.state = 918;
37676
+ this.state = 913;
37697
37677
  this.match(_MalloyParser.INTEGER_LITERAL);
37698
- this.state = 920;
37678
+ this.state = 915;
37699
37679
  this._errHandler.sync(this);
37700
37680
  _la = this._input.LA(1);
37701
37681
  if (_la === _MalloyParser.BY) {
37702
37682
  {
37703
- this.state = 919;
37683
+ this.state = 914;
37704
37684
  this.bySpec();
37705
37685
  }
37706
37686
  }
@@ -37724,23 +37704,23 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37724
37704
  this.enterRule(_localctx, 180, _MalloyParser.RULE_indexElement);
37725
37705
  let _la;
37726
37706
  try {
37727
- this.state = 928;
37707
+ this.state = 923;
37728
37708
  this._errHandler.sync(this);
37729
37709
  switch (this._input.LA(1)) {
37730
37710
  case _MalloyParser.BQ_STRING:
37731
37711
  case _MalloyParser.IDENTIFIER:
37732
37712
  this.enterOuterAlt(_localctx, 1);
37733
37713
  {
37734
- this.state = 922;
37714
+ this.state = 917;
37735
37715
  this.fieldPath();
37736
- this.state = 925;
37716
+ this.state = 920;
37737
37717
  this._errHandler.sync(this);
37738
37718
  _la = this._input.LA(1);
37739
37719
  if (_la === _MalloyParser.DOT) {
37740
37720
  {
37741
- this.state = 923;
37721
+ this.state = 918;
37742
37722
  this.match(_MalloyParser.DOT);
37743
- this.state = 924;
37723
+ this.state = 919;
37744
37724
  this.match(_MalloyParser.STAR);
37745
37725
  }
37746
37726
  }
@@ -37749,7 +37729,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37749
37729
  case _MalloyParser.STAR:
37750
37730
  this.enterOuterAlt(_localctx, 2);
37751
37731
  {
37752
- this.state = 927;
37732
+ this.state = 922;
37753
37733
  this.match(_MalloyParser.STAR);
37754
37734
  }
37755
37735
  break;
@@ -37778,32 +37758,32 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37778
37758
  let _alt;
37779
37759
  this.enterOuterAlt(_localctx, 1);
37780
37760
  {
37781
- this.state = 930;
37761
+ this.state = 925;
37782
37762
  this.indexElement();
37783
- this.state = 937;
37763
+ this.state = 932;
37784
37764
  this._errHandler.sync(this);
37785
- _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx);
37765
+ _alt = this.interpreter.adaptivePredict(this._input, 93, this._ctx);
37786
37766
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
37787
37767
  if (_alt === 1) {
37788
37768
  {
37789
37769
  {
37790
- this.state = 932;
37770
+ this.state = 927;
37791
37771
  this._errHandler.sync(this);
37792
37772
  _la = this._input.LA(1);
37793
37773
  if (_la === _MalloyParser.COMMA) {
37794
37774
  {
37795
- this.state = 931;
37775
+ this.state = 926;
37796
37776
  this.match(_MalloyParser.COMMA);
37797
37777
  }
37798
37778
  }
37799
- this.state = 934;
37779
+ this.state = 929;
37800
37780
  this.indexElement();
37801
37781
  }
37802
37782
  }
37803
37783
  }
37804
- this.state = 939;
37784
+ this.state = 934;
37805
37785
  this._errHandler.sync(this);
37806
- _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx);
37786
+ _alt = this.interpreter.adaptivePredict(this._input, 93, this._ctx);
37807
37787
  }
37808
37788
  }
37809
37789
  } catch (re2) {
@@ -37827,18 +37807,18 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37827
37807
  try {
37828
37808
  this.enterOuterAlt(_localctx, 1);
37829
37809
  {
37830
- this.state = 940;
37810
+ this.state = 935;
37831
37811
  this.match(_MalloyParser.INDEX);
37832
- this.state = 941;
37812
+ this.state = 936;
37833
37813
  this.indexFields();
37834
- this.state = 944;
37814
+ this.state = 939;
37835
37815
  this._errHandler.sync(this);
37836
37816
  _la = this._input.LA(1);
37837
37817
  if (_la === _MalloyParser.BY) {
37838
37818
  {
37839
- this.state = 942;
37819
+ this.state = 937;
37840
37820
  this.match(_MalloyParser.BY);
37841
- this.state = 943;
37821
+ this.state = 938;
37842
37822
  this.fieldName();
37843
37823
  }
37844
37824
  }
@@ -37863,9 +37843,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37863
37843
  try {
37864
37844
  this.enterOuterAlt(_localctx, 1);
37865
37845
  {
37866
- this.state = 946;
37846
+ this.state = 941;
37867
37847
  this.match(_MalloyParser.SAMPLE);
37868
- this.state = 947;
37848
+ this.state = 942;
37869
37849
  this.sampleSpec();
37870
37850
  }
37871
37851
  } catch (re2) {
@@ -37888,9 +37868,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37888
37868
  try {
37889
37869
  this.enterOuterAlt(_localctx, 1);
37890
37870
  {
37891
- this.state = 949;
37871
+ this.state = 944;
37892
37872
  this.match(_MalloyParser.TIMEZONE);
37893
- this.state = 950;
37873
+ this.state = 945;
37894
37874
  this.string();
37895
37875
  }
37896
37876
  } catch (re2) {
@@ -37913,7 +37893,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37913
37893
  try {
37914
37894
  this.enterOuterAlt(_localctx, 1);
37915
37895
  {
37916
- this.state = 952;
37896
+ this.state = 947;
37917
37897
  this.match(_MalloyParser.ANNOTATION);
37918
37898
  }
37919
37899
  } catch (re2) {
@@ -37937,7 +37917,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37937
37917
  try {
37938
37918
  this.enterOuterAlt(_localctx, 1);
37939
37919
  {
37940
- this.state = 954;
37920
+ this.state = 949;
37941
37921
  _la = this._input.LA(1);
37942
37922
  if (!(_la === _MalloyParser.FALSE || _la === _MalloyParser.TRUE || _la === _MalloyParser.PERCENT_LITERAL || _la === _MalloyParser.INTEGER_LITERAL)) {
37943
37923
  this._errHandler.recoverInline(this);
@@ -37970,7 +37950,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37970
37950
  try {
37971
37951
  this.enterOuterAlt(_localctx, 1);
37972
37952
  {
37973
- this.state = 956;
37953
+ this.state = 951;
37974
37954
  _la = this._input.LA(1);
37975
37955
  if (!((_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _MalloyParser.AVG - 38 | 1 << _MalloyParser.COUNT - 38 | 1 << _MalloyParser.MAX - 38 | 1 << _MalloyParser.MIN - 38)) !== 0 || _la === _MalloyParser.SUM)) {
37976
37956
  this._errHandler.recoverInline(this);
@@ -38003,7 +37983,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38003
37983
  try {
38004
37984
  this.enterOuterAlt(_localctx, 1);
38005
37985
  {
38006
- this.state = 958;
37986
+ this.state = 953;
38007
37987
  _la = this._input.LA(1);
38008
37988
  if (!(_la === _MalloyParser.BOOLEAN || _la === _MalloyParser.DATE || (_la - 73 & ~31) === 0 && (1 << _la - 73 & (1 << _MalloyParser.NUMBER - 73 | 1 << _MalloyParser.STRING - 73 | 1 << _MalloyParser.TIMESTAMP - 73)) !== 0)) {
38009
37989
  this._errHandler.recoverInline(this);
@@ -38036,7 +38016,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38036
38016
  try {
38037
38017
  this.enterOuterAlt(_localctx, 1);
38038
38018
  {
38039
- this.state = 960;
38019
+ this.state = 955;
38040
38020
  _la = this._input.LA(1);
38041
38021
  if (!((_la - 118 & ~31) === 0 && (1 << _la - 118 & (1 << _MalloyParser.LT - 118 | 1 << _MalloyParser.GT - 118 | 1 << _MalloyParser.EQ - 118 | 1 << _MalloyParser.NE - 118 | 1 << _MalloyParser.LTE - 118 | 1 << _MalloyParser.GTE - 118 | 1 << _MalloyParser.NOT_MATCH - 118 | 1 << _MalloyParser.MATCH - 118)) !== 0)) {
38042
38022
  this._errHandler.recoverInline(this);
@@ -38066,21 +38046,21 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38066
38046
  let _localctx = new StringContext(this._ctx, this.state);
38067
38047
  this.enterRule(_localctx, 200, _MalloyParser.RULE_string);
38068
38048
  try {
38069
- this.state = 964;
38049
+ this.state = 959;
38070
38050
  this._errHandler.sync(this);
38071
38051
  switch (this._input.LA(1)) {
38072
38052
  case _MalloyParser.SQ_STRING:
38073
38053
  case _MalloyParser.DQ_STRING:
38074
38054
  this.enterOuterAlt(_localctx, 1);
38075
38055
  {
38076
- this.state = 962;
38056
+ this.state = 957;
38077
38057
  this.shortString();
38078
38058
  }
38079
38059
  break;
38080
38060
  case _MalloyParser.SQL_BEGIN:
38081
38061
  this.enterOuterAlt(_localctx, 2);
38082
38062
  {
38083
- this.state = 963;
38063
+ this.state = 958;
38084
38064
  this.sqlString();
38085
38065
  }
38086
38066
  break;
@@ -38108,7 +38088,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38108
38088
  try {
38109
38089
  this.enterOuterAlt(_localctx, 1);
38110
38090
  {
38111
- this.state = 966;
38091
+ this.state = 961;
38112
38092
  _la = this._input.LA(1);
38113
38093
  if (!(_la === _MalloyParser.SQ_STRING || _la === _MalloyParser.DQ_STRING)) {
38114
38094
  this._errHandler.recoverInline(this);
@@ -38141,7 +38121,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38141
38121
  try {
38142
38122
  this.enterOuterAlt(_localctx, 1);
38143
38123
  {
38144
- this.state = 968;
38124
+ this.state = 963;
38145
38125
  _la = this._input.LA(1);
38146
38126
  if (!(_la === _MalloyParser.NUMERIC_LITERAL || _la === _MalloyParser.INTEGER_LITERAL)) {
38147
38127
  this._errHandler.recoverInline(this);
@@ -38172,7 +38152,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38172
38152
  this.enterRule(_localctx, 206, _MalloyParser.RULE_literal);
38173
38153
  let _la;
38174
38154
  try {
38175
- this.state = 977;
38155
+ this.state = 972;
38176
38156
  this._errHandler.sync(this);
38177
38157
  switch (this._input.LA(1)) {
38178
38158
  case _MalloyParser.SQ_STRING:
@@ -38181,7 +38161,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38181
38161
  _localctx = new ExprStringContext(_localctx);
38182
38162
  this.enterOuterAlt(_localctx, 1);
38183
38163
  {
38184
- this.state = 970;
38164
+ this.state = 965;
38185
38165
  this.string();
38186
38166
  }
38187
38167
  break;
@@ -38190,7 +38170,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38190
38170
  _localctx = new ExprNumberContext(_localctx);
38191
38171
  this.enterOuterAlt(_localctx, 2);
38192
38172
  {
38193
- this.state = 971;
38173
+ this.state = 966;
38194
38174
  this.numericLiteral();
38195
38175
  }
38196
38176
  break;
@@ -38204,7 +38184,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38204
38184
  _localctx = new ExprTimeContext(_localctx);
38205
38185
  this.enterOuterAlt(_localctx, 3);
38206
38186
  {
38207
- this.state = 972;
38187
+ this.state = 967;
38208
38188
  this.dateLiteral();
38209
38189
  }
38210
38190
  break;
@@ -38212,7 +38192,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38212
38192
  _localctx = new ExprNULLContext(_localctx);
38213
38193
  this.enterOuterAlt(_localctx, 4);
38214
38194
  {
38215
- this.state = 973;
38195
+ this.state = 968;
38216
38196
  this.match(_MalloyParser.NULL);
38217
38197
  }
38218
38198
  break;
@@ -38221,7 +38201,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38221
38201
  _localctx = new ExprBoolContext(_localctx);
38222
38202
  this.enterOuterAlt(_localctx, 5);
38223
38203
  {
38224
- this.state = 974;
38204
+ this.state = 969;
38225
38205
  _la = this._input.LA(1);
38226
38206
  if (!(_la === _MalloyParser.FALSE || _la === _MalloyParser.TRUE)) {
38227
38207
  this._errHandler.recoverInline(this);
@@ -38238,7 +38218,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38238
38218
  _localctx = new ExprRegexContext(_localctx);
38239
38219
  this.enterOuterAlt(_localctx, 6);
38240
38220
  {
38241
- this.state = 975;
38221
+ this.state = 970;
38242
38222
  this.match(_MalloyParser.HACKY_REGEX);
38243
38223
  }
38244
38224
  break;
@@ -38246,7 +38226,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38246
38226
  _localctx = new ExprNowContext(_localctx);
38247
38227
  this.enterOuterAlt(_localctx, 7);
38248
38228
  {
38249
- this.state = 976;
38229
+ this.state = 971;
38250
38230
  this.match(_MalloyParser.NOW);
38251
38231
  }
38252
38232
  break;
@@ -38271,14 +38251,14 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38271
38251
  let _localctx = new DateLiteralContext(this._ctx, this.state);
38272
38252
  this.enterRule(_localctx, 208, _MalloyParser.RULE_dateLiteral);
38273
38253
  try {
38274
- this.state = 986;
38254
+ this.state = 981;
38275
38255
  this._errHandler.sync(this);
38276
38256
  switch (this._input.LA(1)) {
38277
38257
  case _MalloyParser.LITERAL_TIMESTAMP:
38278
38258
  _localctx = new LiteralTimestampContext(_localctx);
38279
38259
  this.enterOuterAlt(_localctx, 1);
38280
38260
  {
38281
- this.state = 979;
38261
+ this.state = 974;
38282
38262
  this.match(_MalloyParser.LITERAL_TIMESTAMP);
38283
38263
  }
38284
38264
  break;
@@ -38286,7 +38266,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38286
38266
  _localctx = new LiteralHourContext(_localctx);
38287
38267
  this.enterOuterAlt(_localctx, 2);
38288
38268
  {
38289
- this.state = 980;
38269
+ this.state = 975;
38290
38270
  this.match(_MalloyParser.LITERAL_HOUR);
38291
38271
  }
38292
38272
  break;
@@ -38294,7 +38274,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38294
38274
  _localctx = new LiteralDayContext(_localctx);
38295
38275
  this.enterOuterAlt(_localctx, 3);
38296
38276
  {
38297
- this.state = 981;
38277
+ this.state = 976;
38298
38278
  this.match(_MalloyParser.LITERAL_DAY);
38299
38279
  }
38300
38280
  break;
@@ -38302,7 +38282,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38302
38282
  _localctx = new LiteralWeekContext(_localctx);
38303
38283
  this.enterOuterAlt(_localctx, 4);
38304
38284
  {
38305
- this.state = 982;
38285
+ this.state = 977;
38306
38286
  this.match(_MalloyParser.LITERAL_WEEK);
38307
38287
  }
38308
38288
  break;
@@ -38310,7 +38290,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38310
38290
  _localctx = new LiteralMonthContext(_localctx);
38311
38291
  this.enterOuterAlt(_localctx, 5);
38312
38292
  {
38313
- this.state = 983;
38293
+ this.state = 978;
38314
38294
  this.match(_MalloyParser.LITERAL_MONTH);
38315
38295
  }
38316
38296
  break;
@@ -38318,7 +38298,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38318
38298
  _localctx = new LiteralQuarterContext(_localctx);
38319
38299
  this.enterOuterAlt(_localctx, 6);
38320
38300
  {
38321
- this.state = 984;
38301
+ this.state = 979;
38322
38302
  this.match(_MalloyParser.LITERAL_QUARTER);
38323
38303
  }
38324
38304
  break;
@@ -38326,7 +38306,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38326
38306
  _localctx = new LiteralYearContext(_localctx);
38327
38307
  this.enterOuterAlt(_localctx, 7);
38328
38308
  {
38329
- this.state = 985;
38309
+ this.state = 980;
38330
38310
  this.match(_MalloyParser.LITERAL_YEAR);
38331
38311
  }
38332
38312
  break;
@@ -38353,7 +38333,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38353
38333
  try {
38354
38334
  this.enterOuterAlt(_localctx, 1);
38355
38335
  {
38356
- this.state = 988;
38336
+ this.state = 983;
38357
38337
  this.string();
38358
38338
  }
38359
38339
  } catch (re2) {
@@ -38376,7 +38356,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38376
38356
  try {
38377
38357
  this.enterOuterAlt(_localctx, 1);
38378
38358
  {
38379
- this.state = 990;
38359
+ this.state = 985;
38380
38360
  this.string();
38381
38361
  }
38382
38362
  } catch (re2) {
@@ -38400,7 +38380,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38400
38380
  try {
38401
38381
  this.enterOuterAlt(_localctx, 1);
38402
38382
  {
38403
- this.state = 992;
38383
+ this.state = 987;
38404
38384
  _la = this._input.LA(1);
38405
38385
  if (!(_la === _MalloyParser.BQ_STRING || _la === _MalloyParser.IDENTIFIER)) {
38406
38386
  this._errHandler.recoverInline(this);
@@ -38433,7 +38413,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38433
38413
  try {
38434
38414
  this.enterOuterAlt(_localctx, 1);
38435
38415
  {
38436
- this.state = 994;
38416
+ this.state = 989;
38437
38417
  _la = this._input.LA(1);
38438
38418
  if (!((_la - 46 & ~31) === 0 && (1 << _la - 46 & (1 << _MalloyParser.DAY - 46 | 1 << _MalloyParser.HOUR - 46 | 1 << _MalloyParser.MINUTE - 46 | 1 << _MalloyParser.MONTH - 46 | 1 << _MalloyParser.QUARTER - 46)) !== 0 || (_la - 79 & ~31) === 0 && (1 << _la - 79 & (1 << _MalloyParser.SECOND - 79 | 1 << _MalloyParser.WEEK - 79 | 1 << _MalloyParser.YEAR - 79)) !== 0)) {
38439
38419
  this._errHandler.recoverInline(this);
@@ -38466,7 +38446,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38466
38446
  try {
38467
38447
  this.enterOuterAlt(_localctx, 1);
38468
38448
  {
38469
- this.state = 996;
38449
+ this.state = 991;
38470
38450
  _la = this._input.LA(1);
38471
38451
  if (!(_la === _MalloyParser.ALL || _la === _MalloyParser.EXCLUDE)) {
38472
38452
  this._errHandler.recoverInline(this);
@@ -38496,7 +38476,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38496
38476
  let _localctx = new MalloyOrSQLTypeContext(this._ctx, this.state);
38497
38477
  this.enterRule(_localctx, 220, _MalloyParser.RULE_malloyOrSQLType);
38498
38478
  try {
38499
- this.state = 1e3;
38479
+ this.state = 995;
38500
38480
  this._errHandler.sync(this);
38501
38481
  switch (this._input.LA(1)) {
38502
38482
  case _MalloyParser.BOOLEAN:
@@ -38506,7 +38486,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38506
38486
  case _MalloyParser.TIMESTAMP:
38507
38487
  this.enterOuterAlt(_localctx, 1);
38508
38488
  {
38509
- this.state = 998;
38489
+ this.state = 993;
38510
38490
  this.malloyType();
38511
38491
  }
38512
38492
  break;
@@ -38515,7 +38495,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38515
38495
  case _MalloyParser.SQL_BEGIN:
38516
38496
  this.enterOuterAlt(_localctx, 2);
38517
38497
  {
38518
- this.state = 999;
38498
+ this.state = 994;
38519
38499
  this.string();
38520
38500
  }
38521
38501
  break;
@@ -38551,15 +38531,15 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38551
38531
  let _alt;
38552
38532
  this.enterOuterAlt(_localctx, 1);
38553
38533
  {
38554
- this.state = 1085;
38534
+ this.state = 1080;
38555
38535
  this._errHandler.sync(this);
38556
- switch (this.interpreter.adaptivePredict(this._input, 109, this._ctx)) {
38536
+ switch (this.interpreter.adaptivePredict(this._input, 108, this._ctx)) {
38557
38537
  case 1:
38558
38538
  {
38559
38539
  _localctx = new ExprFieldPathContext(_localctx);
38560
38540
  this._ctx = _localctx;
38561
38541
  _prevctx = _localctx;
38562
- this.state = 1003;
38542
+ this.state = 998;
38563
38543
  this.fieldPath();
38564
38544
  }
38565
38545
  break;
@@ -38568,7 +38548,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38568
38548
  _localctx = new ExprLiteralContext(_localctx);
38569
38549
  this._ctx = _localctx;
38570
38550
  _prevctx = _localctx;
38571
- this.state = 1004;
38551
+ this.state = 999;
38572
38552
  this.literal();
38573
38553
  }
38574
38554
  break;
@@ -38577,9 +38557,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38577
38557
  _localctx = new ExprMinusContext(_localctx);
38578
38558
  this._ctx = _localctx;
38579
38559
  _prevctx = _localctx;
38580
- this.state = 1005;
38560
+ this.state = 1e3;
38581
38561
  this.match(_MalloyParser.MINUS);
38582
- this.state = 1006;
38562
+ this.state = 1001;
38583
38563
  this.fieldExpr(22);
38584
38564
  }
38585
38565
  break;
@@ -38588,9 +38568,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38588
38568
  _localctx = new ExprNotContext(_localctx);
38589
38569
  this._ctx = _localctx;
38590
38570
  _prevctx = _localctx;
38591
- this.state = 1007;
38571
+ this.state = 1002;
38592
38572
  this.match(_MalloyParser.NOT);
38593
- this.state = 1008;
38573
+ this.state = 1003;
38594
38574
  this.fieldExpr(13);
38595
38575
  }
38596
38576
  break;
@@ -38599,17 +38579,17 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38599
38579
  _localctx = new ExprCastContext(_localctx);
38600
38580
  this._ctx = _localctx;
38601
38581
  _prevctx = _localctx;
38602
- this.state = 1009;
38582
+ this.state = 1004;
38603
38583
  this.match(_MalloyParser.CAST);
38604
- this.state = 1010;
38584
+ this.state = 1005;
38605
38585
  this.match(_MalloyParser.OPAREN);
38606
- this.state = 1011;
38586
+ this.state = 1006;
38607
38587
  this.fieldExpr(0);
38608
- this.state = 1012;
38588
+ this.state = 1007;
38609
38589
  this.match(_MalloyParser.AS);
38610
- this.state = 1013;
38590
+ this.state = 1008;
38611
38591
  this.malloyOrSQLType();
38612
- this.state = 1014;
38592
+ this.state = 1009;
38613
38593
  this.match(_MalloyParser.CPAREN);
38614
38594
  }
38615
38595
  break;
@@ -38618,15 +38598,15 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38618
38598
  _localctx = new ExprCountDisinctContext(_localctx);
38619
38599
  this._ctx = _localctx;
38620
38600
  _prevctx = _localctx;
38621
- this.state = 1016;
38601
+ this.state = 1011;
38622
38602
  this.match(_MalloyParser.COUNT);
38623
- this.state = 1017;
38603
+ this.state = 1012;
38624
38604
  this.match(_MalloyParser.OPAREN);
38625
- this.state = 1018;
38605
+ this.state = 1013;
38626
38606
  this.match(_MalloyParser.DISTINCT);
38627
- this.state = 1019;
38607
+ this.state = 1014;
38628
38608
  this.fieldExpr(0);
38629
- this.state = 1020;
38609
+ this.state = 1015;
38630
38610
  this.match(_MalloyParser.CPAREN);
38631
38611
  }
38632
38612
  break;
@@ -38635,22 +38615,22 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38635
38615
  _localctx = new ExprPathlessAggregateContext(_localctx);
38636
38616
  this._ctx = _localctx;
38637
38617
  _prevctx = _localctx;
38638
- this.state = 1024;
38618
+ this.state = 1019;
38639
38619
  this._errHandler.sync(this);
38640
38620
  _la = this._input.LA(1);
38641
38621
  if (_la === _MalloyParser.SOURCE_KW) {
38642
38622
  {
38643
- this.state = 1022;
38623
+ this.state = 1017;
38644
38624
  this.match(_MalloyParser.SOURCE_KW);
38645
- this.state = 1023;
38625
+ this.state = 1018;
38646
38626
  this.match(_MalloyParser.DOT);
38647
38627
  }
38648
38628
  }
38649
- this.state = 1026;
38629
+ this.state = 1021;
38650
38630
  this.aggregate();
38651
- this.state = 1027;
38631
+ this.state = 1022;
38652
38632
  this.match(_MalloyParser.OPAREN);
38653
- this.state = 1030;
38633
+ this.state = 1025;
38654
38634
  this._errHandler.sync(this);
38655
38635
  switch (this._input.LA(1)) {
38656
38636
  case _MalloyParser.ALL:
@@ -38694,13 +38674,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38694
38674
  case _MalloyParser.INTEGER_LITERAL:
38695
38675
  case _MalloyParser.SQL_BEGIN:
38696
38676
  {
38697
- this.state = 1028;
38677
+ this.state = 1023;
38698
38678
  this.fieldExpr(0);
38699
38679
  }
38700
38680
  break;
38701
38681
  case _MalloyParser.STAR:
38702
38682
  {
38703
- this.state = 1029;
38683
+ this.state = 1024;
38704
38684
  this.match(_MalloyParser.STAR);
38705
38685
  }
38706
38686
  break;
@@ -38709,7 +38689,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38709
38689
  default:
38710
38690
  break;
38711
38691
  }
38712
- this.state = 1032;
38692
+ this.state = 1027;
38713
38693
  this.match(_MalloyParser.CPAREN);
38714
38694
  }
38715
38695
  break;
@@ -38718,24 +38698,24 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38718
38698
  _localctx = new ExprAggregateContext(_localctx);
38719
38699
  this._ctx = _localctx;
38720
38700
  _prevctx = _localctx;
38721
- this.state = 1034;
38701
+ this.state = 1029;
38722
38702
  this.fieldPath();
38723
- this.state = 1035;
38703
+ this.state = 1030;
38724
38704
  this.match(_MalloyParser.DOT);
38725
- this.state = 1036;
38705
+ this.state = 1031;
38726
38706
  this.aggregate();
38727
- this.state = 1037;
38707
+ this.state = 1032;
38728
38708
  this.match(_MalloyParser.OPAREN);
38729
- this.state = 1039;
38709
+ this.state = 1034;
38730
38710
  this._errHandler.sync(this);
38731
38711
  _la = this._input.LA(1);
38732
38712
  if ((_la - 34 & ~31) === 0 && (1 << _la - 34 & (1 << _MalloyParser.ALL - 34 | 1 << _MalloyParser.AVG - 34 | 1 << _MalloyParser.CAST - 34 | 1 << _MalloyParser.COUNT - 34 | 1 << _MalloyParser.DAY - 34 | 1 << _MalloyParser.EXCLUDE - 34 | 1 << _MalloyParser.FALSE - 34 | 1 << _MalloyParser.HOUR - 34)) !== 0 || (_la - 66 & ~31) === 0 && (1 << _la - 66 & (1 << _MalloyParser.MAX - 66 | 1 << _MalloyParser.MIN - 66 | 1 << _MalloyParser.MINUTE - 66 | 1 << _MalloyParser.MONTH - 66 | 1 << _MalloyParser.NOT - 66 | 1 << _MalloyParser.NOW - 66 | 1 << _MalloyParser.NULL - 66 | 1 << _MalloyParser.PICK - 66 | 1 << _MalloyParser.QUARTER - 66 | 1 << _MalloyParser.SECOND - 66 | 1 << _MalloyParser.SOURCE_KW - 66 | 1 << _MalloyParser.SUM - 66 | 1 << _MalloyParser.TRUE - 66 | 1 << _MalloyParser.WEEK - 66 | 1 << _MalloyParser.YEAR - 66 | 1 << _MalloyParser.HACKY_REGEX - 66)) !== 0 || (_la - 98 & ~31) === 0 && (1 << _la - 98 & (1 << _MalloyParser.SQ_STRING - 98 | 1 << _MalloyParser.DQ_STRING - 98 | 1 << _MalloyParser.BQ_STRING - 98 | 1 << _MalloyParser.OPAREN - 98 | 1 << _MalloyParser.MINUS - 98)) !== 0 || (_la - 136 & ~31) === 0 && (1 << _la - 136 & (1 << _MalloyParser.LITERAL_TIMESTAMP - 136 | 1 << _MalloyParser.LITERAL_HOUR - 136 | 1 << _MalloyParser.LITERAL_DAY - 136 | 1 << _MalloyParser.LITERAL_QUARTER - 136 | 1 << _MalloyParser.LITERAL_MONTH - 136 | 1 << _MalloyParser.LITERAL_WEEK - 136 | 1 << _MalloyParser.LITERAL_YEAR - 136 | 1 << _MalloyParser.IDENTIFIER - 136 | 1 << _MalloyParser.NUMERIC_LITERAL - 136 | 1 << _MalloyParser.INTEGER_LITERAL - 136 | 1 << _MalloyParser.SQL_BEGIN - 136)) !== 0) {
38733
38713
  {
38734
- this.state = 1038;
38714
+ this.state = 1033;
38735
38715
  this.fieldExpr(0);
38736
38716
  }
38737
38717
  }
38738
- this.state = 1041;
38718
+ this.state = 1036;
38739
38719
  this.match(_MalloyParser.CPAREN);
38740
38720
  }
38741
38721
  break;
@@ -38744,11 +38724,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38744
38724
  _localctx = new ExprExprContext(_localctx);
38745
38725
  this._ctx = _localctx;
38746
38726
  _prevctx = _localctx;
38747
- this.state = 1043;
38727
+ this.state = 1038;
38748
38728
  this.match(_MalloyParser.OPAREN);
38749
- this.state = 1044;
38729
+ this.state = 1039;
38750
38730
  this.partialAllowedFieldExpr();
38751
- this.state = 1045;
38731
+ this.state = 1040;
38752
38732
  this.match(_MalloyParser.CPAREN);
38753
38733
  }
38754
38734
  break;
@@ -38757,26 +38737,26 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38757
38737
  _localctx = new ExprAggFuncContext(_localctx);
38758
38738
  this._ctx = _localctx;
38759
38739
  _prevctx = _localctx;
38760
- this.state = 1047;
38740
+ this.state = 1042;
38761
38741
  this.fieldPath();
38762
- this.state = 1048;
38742
+ this.state = 1043;
38763
38743
  this.match(_MalloyParser.DOT);
38764
- this.state = 1049;
38744
+ this.state = 1044;
38765
38745
  this.id();
38766
- this.state = 1050;
38746
+ this.state = 1045;
38767
38747
  this.match(_MalloyParser.OPAREN);
38768
38748
  {
38769
- this.state = 1052;
38749
+ this.state = 1047;
38770
38750
  this._errHandler.sync(this);
38771
38751
  _la = this._input.LA(1);
38772
38752
  if ((_la - 34 & ~31) === 0 && (1 << _la - 34 & (1 << _MalloyParser.ALL - 34 | 1 << _MalloyParser.AVG - 34 | 1 << _MalloyParser.CAST - 34 | 1 << _MalloyParser.COUNT - 34 | 1 << _MalloyParser.DAY - 34 | 1 << _MalloyParser.EXCLUDE - 34 | 1 << _MalloyParser.FALSE - 34 | 1 << _MalloyParser.HOUR - 34)) !== 0 || (_la - 66 & ~31) === 0 && (1 << _la - 66 & (1 << _MalloyParser.MAX - 66 | 1 << _MalloyParser.MIN - 66 | 1 << _MalloyParser.MINUTE - 66 | 1 << _MalloyParser.MONTH - 66 | 1 << _MalloyParser.NOT - 66 | 1 << _MalloyParser.NOW - 66 | 1 << _MalloyParser.NULL - 66 | 1 << _MalloyParser.PICK - 66 | 1 << _MalloyParser.QUARTER - 66 | 1 << _MalloyParser.SECOND - 66 | 1 << _MalloyParser.SOURCE_KW - 66 | 1 << _MalloyParser.SUM - 66 | 1 << _MalloyParser.TRUE - 66 | 1 << _MalloyParser.WEEK - 66 | 1 << _MalloyParser.YEAR - 66 | 1 << _MalloyParser.HACKY_REGEX - 66)) !== 0 || (_la - 98 & ~31) === 0 && (1 << _la - 98 & (1 << _MalloyParser.SQ_STRING - 98 | 1 << _MalloyParser.DQ_STRING - 98 | 1 << _MalloyParser.BQ_STRING - 98 | 1 << _MalloyParser.OPAREN - 98 | 1 << _MalloyParser.MINUS - 98)) !== 0 || (_la - 136 & ~31) === 0 && (1 << _la - 136 & (1 << _MalloyParser.LITERAL_TIMESTAMP - 136 | 1 << _MalloyParser.LITERAL_HOUR - 136 | 1 << _MalloyParser.LITERAL_DAY - 136 | 1 << _MalloyParser.LITERAL_QUARTER - 136 | 1 << _MalloyParser.LITERAL_MONTH - 136 | 1 << _MalloyParser.LITERAL_WEEK - 136 | 1 << _MalloyParser.LITERAL_YEAR - 136 | 1 << _MalloyParser.IDENTIFIER - 136 | 1 << _MalloyParser.NUMERIC_LITERAL - 136 | 1 << _MalloyParser.INTEGER_LITERAL - 136 | 1 << _MalloyParser.SQL_BEGIN - 136)) !== 0) {
38773
38753
  {
38774
- this.state = 1051;
38754
+ this.state = 1046;
38775
38755
  this.argumentList();
38776
38756
  }
38777
38757
  }
38778
38758
  }
38779
- this.state = 1054;
38759
+ this.state = 1049;
38780
38760
  this.match(_MalloyParser.CPAREN);
38781
38761
  }
38782
38762
  break;
@@ -38785,28 +38765,28 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38785
38765
  _localctx = new ExprFuncContext(_localctx);
38786
38766
  this._ctx = _localctx;
38787
38767
  _prevctx = _localctx;
38788
- this.state = 1064;
38768
+ this.state = 1059;
38789
38769
  this._errHandler.sync(this);
38790
38770
  switch (this._input.LA(1)) {
38791
38771
  case _MalloyParser.BQ_STRING:
38792
38772
  case _MalloyParser.IDENTIFIER:
38793
38773
  {
38794
38774
  {
38795
- this.state = 1056;
38775
+ this.state = 1051;
38796
38776
  this.id();
38797
- this.state = 1061;
38777
+ this.state = 1056;
38798
38778
  this._errHandler.sync(this);
38799
38779
  _la = this._input.LA(1);
38800
38780
  if (_la === _MalloyParser.EXCLAM) {
38801
38781
  {
38802
- this.state = 1057;
38782
+ this.state = 1052;
38803
38783
  this.match(_MalloyParser.EXCLAM);
38804
- this.state = 1059;
38784
+ this.state = 1054;
38805
38785
  this._errHandler.sync(this);
38806
38786
  _la = this._input.LA(1);
38807
38787
  if (_la === _MalloyParser.BOOLEAN || _la === _MalloyParser.DATE || (_la - 73 & ~31) === 0 && (1 << _la - 73 & (1 << _MalloyParser.NUMBER - 73 | 1 << _MalloyParser.STRING - 73 | 1 << _MalloyParser.TIMESTAMP - 73)) !== 0) {
38808
38788
  {
38809
- this.state = 1058;
38789
+ this.state = 1053;
38810
38790
  this.malloyType();
38811
38791
  }
38812
38792
  }
@@ -38824,27 +38804,27 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38824
38804
  case _MalloyParser.WEEK:
38825
38805
  case _MalloyParser.YEAR:
38826
38806
  {
38827
- this.state = 1063;
38807
+ this.state = 1058;
38828
38808
  this.timeframe();
38829
38809
  }
38830
38810
  break;
38831
38811
  default:
38832
38812
  throw new NoViableAltException_1.NoViableAltException(this);
38833
38813
  }
38834
- this.state = 1066;
38814
+ this.state = 1061;
38835
38815
  this.match(_MalloyParser.OPAREN);
38836
38816
  {
38837
- this.state = 1068;
38817
+ this.state = 1063;
38838
38818
  this._errHandler.sync(this);
38839
38819
  _la = this._input.LA(1);
38840
38820
  if ((_la - 34 & ~31) === 0 && (1 << _la - 34 & (1 << _MalloyParser.ALL - 34 | 1 << _MalloyParser.AVG - 34 | 1 << _MalloyParser.CAST - 34 | 1 << _MalloyParser.COUNT - 34 | 1 << _MalloyParser.DAY - 34 | 1 << _MalloyParser.EXCLUDE - 34 | 1 << _MalloyParser.FALSE - 34 | 1 << _MalloyParser.HOUR - 34)) !== 0 || (_la - 66 & ~31) === 0 && (1 << _la - 66 & (1 << _MalloyParser.MAX - 66 | 1 << _MalloyParser.MIN - 66 | 1 << _MalloyParser.MINUTE - 66 | 1 << _MalloyParser.MONTH - 66 | 1 << _MalloyParser.NOT - 66 | 1 << _MalloyParser.NOW - 66 | 1 << _MalloyParser.NULL - 66 | 1 << _MalloyParser.PICK - 66 | 1 << _MalloyParser.QUARTER - 66 | 1 << _MalloyParser.SECOND - 66 | 1 << _MalloyParser.SOURCE_KW - 66 | 1 << _MalloyParser.SUM - 66 | 1 << _MalloyParser.TRUE - 66 | 1 << _MalloyParser.WEEK - 66 | 1 << _MalloyParser.YEAR - 66 | 1 << _MalloyParser.HACKY_REGEX - 66)) !== 0 || (_la - 98 & ~31) === 0 && (1 << _la - 98 & (1 << _MalloyParser.SQ_STRING - 98 | 1 << _MalloyParser.DQ_STRING - 98 | 1 << _MalloyParser.BQ_STRING - 98 | 1 << _MalloyParser.OPAREN - 98 | 1 << _MalloyParser.MINUS - 98)) !== 0 || (_la - 136 & ~31) === 0 && (1 << _la - 136 & (1 << _MalloyParser.LITERAL_TIMESTAMP - 136 | 1 << _MalloyParser.LITERAL_HOUR - 136 | 1 << _MalloyParser.LITERAL_DAY - 136 | 1 << _MalloyParser.LITERAL_QUARTER - 136 | 1 << _MalloyParser.LITERAL_MONTH - 136 | 1 << _MalloyParser.LITERAL_WEEK - 136 | 1 << _MalloyParser.LITERAL_YEAR - 136 | 1 << _MalloyParser.IDENTIFIER - 136 | 1 << _MalloyParser.NUMERIC_LITERAL - 136 | 1 << _MalloyParser.INTEGER_LITERAL - 136 | 1 << _MalloyParser.SQL_BEGIN - 136)) !== 0) {
38841
38821
  {
38842
- this.state = 1067;
38822
+ this.state = 1062;
38843
38823
  this.argumentList();
38844
38824
  }
38845
38825
  }
38846
38826
  }
38847
- this.state = 1070;
38827
+ this.state = 1065;
38848
38828
  this.match(_MalloyParser.CPAREN);
38849
38829
  }
38850
38830
  break;
@@ -38853,7 +38833,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38853
38833
  _localctx = new ExprPickContext(_localctx);
38854
38834
  this._ctx = _localctx;
38855
38835
  _prevctx = _localctx;
38856
- this.state = 1072;
38836
+ this.state = 1067;
38857
38837
  this.pickStatement();
38858
38838
  }
38859
38839
  break;
@@ -38862,37 +38842,37 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38862
38842
  _localctx = new ExprUngroupContext(_localctx);
38863
38843
  this._ctx = _localctx;
38864
38844
  _prevctx = _localctx;
38865
- this.state = 1073;
38845
+ this.state = 1068;
38866
38846
  this.ungroup();
38867
- this.state = 1074;
38847
+ this.state = 1069;
38868
38848
  this.match(_MalloyParser.OPAREN);
38869
- this.state = 1075;
38849
+ this.state = 1070;
38870
38850
  this.fieldExpr(0);
38871
- this.state = 1080;
38851
+ this.state = 1075;
38872
38852
  this._errHandler.sync(this);
38873
38853
  _la = this._input.LA(1);
38874
38854
  while (_la === _MalloyParser.COMMA) {
38875
38855
  {
38876
38856
  {
38877
- this.state = 1076;
38857
+ this.state = 1071;
38878
38858
  this.match(_MalloyParser.COMMA);
38879
- this.state = 1077;
38859
+ this.state = 1072;
38880
38860
  this.fieldName();
38881
38861
  }
38882
38862
  }
38883
- this.state = 1082;
38863
+ this.state = 1077;
38884
38864
  this._errHandler.sync(this);
38885
38865
  _la = this._input.LA(1);
38886
38866
  }
38887
- this.state = 1083;
38867
+ this.state = 1078;
38888
38868
  this.match(_MalloyParser.CPAREN);
38889
38869
  }
38890
38870
  break;
38891
38871
  }
38892
38872
  this._ctx._stop = this._input.tryLT(-1);
38893
- this.state = 1138;
38873
+ this.state = 1133;
38894
38874
  this._errHandler.sync(this);
38895
- _alt = this.interpreter.adaptivePredict(this._input, 111, this._ctx);
38875
+ _alt = this.interpreter.adaptivePredict(this._input, 110, this._ctx);
38896
38876
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
38897
38877
  if (_alt === 1) {
38898
38878
  if (this._parseListeners != null) {
@@ -38900,18 +38880,18 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38900
38880
  }
38901
38881
  _prevctx = _localctx;
38902
38882
  {
38903
- this.state = 1136;
38883
+ this.state = 1131;
38904
38884
  this._errHandler.sync(this);
38905
- switch (this.interpreter.adaptivePredict(this._input, 110, this._ctx)) {
38885
+ switch (this.interpreter.adaptivePredict(this._input, 109, this._ctx)) {
38906
38886
  case 1:
38907
38887
  {
38908
38888
  _localctx = new ExprMulDivContext(new FieldExprContext(_parentctx, _parentState));
38909
38889
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38910
- this.state = 1087;
38890
+ this.state = 1082;
38911
38891
  if (!this.precpred(this._ctx, 21)) {
38912
38892
  throw this.createFailedPredicateException("this.precpred(this._ctx, 21)");
38913
38893
  }
38914
- this.state = 1088;
38894
+ this.state = 1083;
38915
38895
  _la = this._input.LA(1);
38916
38896
  if (!((_la - 126 & ~31) === 0 && (1 << _la - 126 & (1 << _MalloyParser.STAR - 126 | 1 << _MalloyParser.SLASH - 126 | 1 << _MalloyParser.PERCENT - 126)) !== 0)) {
38917
38897
  this._errHandler.recoverInline(this);
@@ -38922,7 +38902,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38922
38902
  this._errHandler.reportMatch(this);
38923
38903
  this.consume();
38924
38904
  }
38925
- this.state = 1089;
38905
+ this.state = 1084;
38926
38906
  this.fieldExpr(22);
38927
38907
  }
38928
38908
  break;
@@ -38930,11 +38910,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38930
38910
  {
38931
38911
  _localctx = new ExprAddSubContext(new FieldExprContext(_parentctx, _parentState));
38932
38912
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38933
- this.state = 1090;
38913
+ this.state = 1085;
38934
38914
  if (!this.precpred(this._ctx, 20)) {
38935
38915
  throw this.createFailedPredicateException("this.precpred(this._ctx, 20)");
38936
38916
  }
38937
- this.state = 1091;
38917
+ this.state = 1086;
38938
38918
  _la = this._input.LA(1);
38939
38919
  if (!(_la === _MalloyParser.PLUS || _la === _MalloyParser.MINUS)) {
38940
38920
  this._errHandler.recoverInline(this);
@@ -38945,7 +38925,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38945
38925
  this._errHandler.reportMatch(this);
38946
38926
  this.consume();
38947
38927
  }
38948
- this.state = 1092;
38928
+ this.state = 1087;
38949
38929
  this.fieldExpr(21);
38950
38930
  }
38951
38931
  break;
@@ -38953,13 +38933,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38953
38933
  {
38954
38934
  _localctx = new ExprRangeContext(new FieldExprContext(_parentctx, _parentState));
38955
38935
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38956
- this.state = 1093;
38936
+ this.state = 1088;
38957
38937
  if (!this.precpred(this._ctx, 19)) {
38958
38938
  throw this.createFailedPredicateException("this.precpred(this._ctx, 19)");
38959
38939
  }
38960
- this.state = 1094;
38940
+ this.state = 1089;
38961
38941
  this.match(_MalloyParser.TO);
38962
- this.state = 1095;
38942
+ this.state = 1090;
38963
38943
  this.fieldExpr(20);
38964
38944
  }
38965
38945
  break;
@@ -38967,13 +38947,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38967
38947
  {
38968
38948
  _localctx = new ExprCompareContext(new FieldExprContext(_parentctx, _parentState));
38969
38949
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38970
- this.state = 1096;
38950
+ this.state = 1091;
38971
38951
  if (!this.precpred(this._ctx, 15)) {
38972
38952
  throw this.createFailedPredicateException("this.precpred(this._ctx, 15)");
38973
38953
  }
38974
- this.state = 1097;
38954
+ this.state = 1092;
38975
38955
  this.compareOp();
38976
- this.state = 1098;
38956
+ this.state = 1093;
38977
38957
  this.fieldExpr(16);
38978
38958
  }
38979
38959
  break;
@@ -38981,13 +38961,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38981
38961
  {
38982
38962
  _localctx = new ExprLogicalAndContext(new FieldExprContext(_parentctx, _parentState));
38983
38963
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38984
- this.state = 1100;
38964
+ this.state = 1095;
38985
38965
  if (!this.precpred(this._ctx, 12)) {
38986
38966
  throw this.createFailedPredicateException("this.precpred(this._ctx, 12)");
38987
38967
  }
38988
- this.state = 1101;
38968
+ this.state = 1096;
38989
38969
  this.match(_MalloyParser.AND);
38990
- this.state = 1102;
38970
+ this.state = 1097;
38991
38971
  this.fieldExpr(13);
38992
38972
  }
38993
38973
  break;
@@ -38995,13 +38975,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38995
38975
  {
38996
38976
  _localctx = new ExprLogicalOrContext(new FieldExprContext(_parentctx, _parentState));
38997
38977
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38998
- this.state = 1103;
38978
+ this.state = 1098;
38999
38979
  if (!this.precpred(this._ctx, 11)) {
39000
38980
  throw this.createFailedPredicateException("this.precpred(this._ctx, 11)");
39001
38981
  }
39002
- this.state = 1104;
38982
+ this.state = 1099;
39003
38983
  this.match(_MalloyParser.OR);
39004
- this.state = 1105;
38984
+ this.state = 1100;
39005
38985
  this.fieldExpr(12);
39006
38986
  }
39007
38987
  break;
@@ -39009,13 +38989,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39009
38989
  {
39010
38990
  _localctx = new ExprCoalesceContext(new FieldExprContext(_parentctx, _parentState));
39011
38991
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39012
- this.state = 1106;
38992
+ this.state = 1101;
39013
38993
  if (!this.precpred(this._ctx, 10)) {
39014
38994
  throw this.createFailedPredicateException("this.precpred(this._ctx, 10)");
39015
38995
  }
39016
- this.state = 1107;
38996
+ this.state = 1102;
39017
38997
  this.match(_MalloyParser.DOUBLE_QMARK);
39018
- this.state = 1108;
38998
+ this.state = 1103;
39019
38999
  this.fieldExpr(11);
39020
39000
  }
39021
39001
  break;
@@ -39023,11 +39003,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39023
39003
  {
39024
39004
  _localctx = new ExprFieldPropsContext(new FieldExprContext(_parentctx, _parentState));
39025
39005
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39026
- this.state = 1109;
39006
+ this.state = 1104;
39027
39007
  if (!this.precpred(this._ctx, 28)) {
39028
39008
  throw this.createFailedPredicateException("this.precpred(this._ctx, 28)");
39029
39009
  }
39030
- this.state = 1110;
39010
+ this.state = 1105;
39031
39011
  this.fieldProperties();
39032
39012
  }
39033
39013
  break;
@@ -39035,11 +39015,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39035
39015
  {
39036
39016
  _localctx = new ExprDurationContext(new FieldExprContext(_parentctx, _parentState));
39037
39017
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39038
- this.state = 1111;
39018
+ this.state = 1106;
39039
39019
  if (!this.precpred(this._ctx, 26)) {
39040
39020
  throw this.createFailedPredicateException("this.precpred(this._ctx, 26)");
39041
39021
  }
39042
- this.state = 1112;
39022
+ this.state = 1107;
39043
39023
  this.timeframe();
39044
39024
  }
39045
39025
  break;
@@ -39047,13 +39027,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39047
39027
  {
39048
39028
  _localctx = new ExprTimeTruncContext(new FieldExprContext(_parentctx, _parentState));
39049
39029
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39050
- this.state = 1113;
39030
+ this.state = 1108;
39051
39031
  if (!this.precpred(this._ctx, 25)) {
39052
39032
  throw this.createFailedPredicateException("this.precpred(this._ctx, 25)");
39053
39033
  }
39054
- this.state = 1114;
39034
+ this.state = 1109;
39055
39035
  this.match(_MalloyParser.DOT);
39056
- this.state = 1115;
39036
+ this.state = 1110;
39057
39037
  this.timeframe();
39058
39038
  }
39059
39039
  break;
@@ -39061,13 +39041,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39061
39041
  {
39062
39042
  _localctx = new ExprCastContext(new FieldExprContext(_parentctx, _parentState));
39063
39043
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39064
- this.state = 1116;
39044
+ this.state = 1111;
39065
39045
  if (!this.precpred(this._ctx, 24)) {
39066
39046
  throw this.createFailedPredicateException("this.precpred(this._ctx, 24)");
39067
39047
  }
39068
- this.state = 1117;
39048
+ this.state = 1112;
39069
39049
  this.match(_MalloyParser.DOUBLECOLON);
39070
- this.state = 1118;
39050
+ this.state = 1113;
39071
39051
  this.malloyOrSQLType();
39072
39052
  }
39073
39053
  break;
@@ -39075,13 +39055,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39075
39055
  {
39076
39056
  _localctx = new ExprSafeCastContext(new FieldExprContext(_parentctx, _parentState));
39077
39057
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39078
- this.state = 1119;
39058
+ this.state = 1114;
39079
39059
  if (!this.precpred(this._ctx, 23)) {
39080
39060
  throw this.createFailedPredicateException("this.precpred(this._ctx, 23)");
39081
39061
  }
39082
- this.state = 1120;
39062
+ this.state = 1115;
39083
39063
  this.match(_MalloyParser.TRIPLECOLON);
39084
- this.state = 1121;
39064
+ this.state = 1116;
39085
39065
  this.malloyOrSQLType();
39086
39066
  }
39087
39067
  break;
@@ -39090,15 +39070,15 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39090
39070
  _localctx = new ExprForRangeContext(new FieldExprContext(_parentctx, _parentState));
39091
39071
  _localctx._startAt = _prevctx;
39092
39072
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39093
- this.state = 1122;
39073
+ this.state = 1117;
39094
39074
  if (!this.precpred(this._ctx, 18)) {
39095
39075
  throw this.createFailedPredicateException("this.precpred(this._ctx, 18)");
39096
39076
  }
39097
- this.state = 1123;
39077
+ this.state = 1118;
39098
39078
  this.match(_MalloyParser.FOR);
39099
- this.state = 1124;
39079
+ this.state = 1119;
39100
39080
  _localctx._duration = this.fieldExpr(0);
39101
- this.state = 1125;
39081
+ this.state = 1120;
39102
39082
  this.timeframe();
39103
39083
  }
39104
39084
  break;
@@ -39106,13 +39086,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39106
39086
  {
39107
39087
  _localctx = new ExprAndTreeContext(new FieldExprContext(_parentctx, _parentState));
39108
39088
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39109
- this.state = 1127;
39089
+ this.state = 1122;
39110
39090
  if (!this.precpred(this._ctx, 17)) {
39111
39091
  throw this.createFailedPredicateException("this.precpred(this._ctx, 17)");
39112
39092
  }
39113
- this.state = 1128;
39093
+ this.state = 1123;
39114
39094
  this.match(_MalloyParser.AMPER);
39115
- this.state = 1129;
39095
+ this.state = 1124;
39116
39096
  this.partialAllowedFieldExpr();
39117
39097
  }
39118
39098
  break;
@@ -39120,13 +39100,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39120
39100
  {
39121
39101
  _localctx = new ExprOrTreeContext(new FieldExprContext(_parentctx, _parentState));
39122
39102
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39123
- this.state = 1130;
39103
+ this.state = 1125;
39124
39104
  if (!this.precpred(this._ctx, 16)) {
39125
39105
  throw this.createFailedPredicateException("this.precpred(this._ctx, 16)");
39126
39106
  }
39127
- this.state = 1131;
39107
+ this.state = 1126;
39128
39108
  this.match(_MalloyParser.BAR);
39129
- this.state = 1132;
39109
+ this.state = 1127;
39130
39110
  this.partialAllowedFieldExpr();
39131
39111
  }
39132
39112
  break;
@@ -39134,22 +39114,22 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39134
39114
  {
39135
39115
  _localctx = new ExprApplyContext(new FieldExprContext(_parentctx, _parentState));
39136
39116
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39137
- this.state = 1133;
39117
+ this.state = 1128;
39138
39118
  if (!this.precpred(this._ctx, 14)) {
39139
39119
  throw this.createFailedPredicateException("this.precpred(this._ctx, 14)");
39140
39120
  }
39141
- this.state = 1134;
39121
+ this.state = 1129;
39142
39122
  this.match(_MalloyParser.QMARK);
39143
- this.state = 1135;
39123
+ this.state = 1130;
39144
39124
  this.partialAllowedFieldExpr();
39145
39125
  }
39146
39126
  break;
39147
39127
  }
39148
39128
  }
39149
39129
  }
39150
- this.state = 1140;
39130
+ this.state = 1135;
39151
39131
  this._errHandler.sync(this);
39152
- _alt = this.interpreter.adaptivePredict(this._input, 111, this._ctx);
39132
+ _alt = this.interpreter.adaptivePredict(this._input, 110, this._ctx);
39153
39133
  }
39154
39134
  }
39155
39135
  } catch (re2) {
@@ -39171,42 +39151,42 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39171
39151
  this.enterRule(_localctx, 224, _MalloyParser.RULE_partialAllowedFieldExpr);
39172
39152
  let _la;
39173
39153
  try {
39174
- this.state = 1152;
39154
+ this.state = 1147;
39175
39155
  this._errHandler.sync(this);
39176
- switch (this.interpreter.adaptivePredict(this._input, 114, this._ctx)) {
39156
+ switch (this.interpreter.adaptivePredict(this._input, 113, this._ctx)) {
39177
39157
  case 1:
39178
39158
  this.enterOuterAlt(_localctx, 1);
39179
39159
  {
39180
- this.state = 1141;
39160
+ this.state = 1136;
39181
39161
  this.match(_MalloyParser.OPAREN);
39182
- this.state = 1143;
39162
+ this.state = 1138;
39183
39163
  this._errHandler.sync(this);
39184
39164
  _la = this._input.LA(1);
39185
39165
  if ((_la - 118 & ~31) === 0 && (1 << _la - 118 & (1 << _MalloyParser.LT - 118 | 1 << _MalloyParser.GT - 118 | 1 << _MalloyParser.EQ - 118 | 1 << _MalloyParser.NE - 118 | 1 << _MalloyParser.LTE - 118 | 1 << _MalloyParser.GTE - 118 | 1 << _MalloyParser.NOT_MATCH - 118 | 1 << _MalloyParser.MATCH - 118)) !== 0) {
39186
39166
  {
39187
- this.state = 1142;
39167
+ this.state = 1137;
39188
39168
  this.compareOp();
39189
39169
  }
39190
39170
  }
39191
- this.state = 1145;
39171
+ this.state = 1140;
39192
39172
  this.fieldExpr(0);
39193
- this.state = 1146;
39173
+ this.state = 1141;
39194
39174
  this.match(_MalloyParser.CPAREN);
39195
39175
  }
39196
39176
  break;
39197
39177
  case 2:
39198
39178
  this.enterOuterAlt(_localctx, 2);
39199
39179
  {
39200
- this.state = 1149;
39180
+ this.state = 1144;
39201
39181
  this._errHandler.sync(this);
39202
39182
  _la = this._input.LA(1);
39203
39183
  if ((_la - 118 & ~31) === 0 && (1 << _la - 118 & (1 << _MalloyParser.LT - 118 | 1 << _MalloyParser.GT - 118 | 1 << _MalloyParser.EQ - 118 | 1 << _MalloyParser.NE - 118 | 1 << _MalloyParser.LTE - 118 | 1 << _MalloyParser.GTE - 118 | 1 << _MalloyParser.NOT_MATCH - 118 | 1 << _MalloyParser.MATCH - 118)) !== 0) {
39204
39184
  {
39205
- this.state = 1148;
39185
+ this.state = 1143;
39206
39186
  this.compareOp();
39207
39187
  }
39208
39188
  }
39209
- this.state = 1151;
39189
+ this.state = 1146;
39210
39190
  this.fieldExpr(0);
39211
39191
  }
39212
39192
  break;
@@ -39232,7 +39212,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39232
39212
  let _alt;
39233
39213
  this.enterOuterAlt(_localctx, 1);
39234
39214
  {
39235
- this.state = 1155;
39215
+ this.state = 1150;
39236
39216
  this._errHandler.sync(this);
39237
39217
  _alt = 1;
39238
39218
  do {
@@ -39240,7 +39220,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39240
39220
  case 1:
39241
39221
  {
39242
39222
  {
39243
- this.state = 1154;
39223
+ this.state = 1149;
39244
39224
  this.pick();
39245
39225
  }
39246
39226
  }
@@ -39248,18 +39228,18 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39248
39228
  default:
39249
39229
  throw new NoViableAltException_1.NoViableAltException(this);
39250
39230
  }
39251
- this.state = 1157;
39231
+ this.state = 1152;
39252
39232
  this._errHandler.sync(this);
39253
- _alt = this.interpreter.adaptivePredict(this._input, 115, this._ctx);
39233
+ _alt = this.interpreter.adaptivePredict(this._input, 114, this._ctx);
39254
39234
  } while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER);
39255
- this.state = 1161;
39235
+ this.state = 1156;
39256
39236
  this._errHandler.sync(this);
39257
- switch (this.interpreter.adaptivePredict(this._input, 116, this._ctx)) {
39237
+ switch (this.interpreter.adaptivePredict(this._input, 115, this._ctx)) {
39258
39238
  case 1:
39259
39239
  {
39260
- this.state = 1159;
39240
+ this.state = 1154;
39261
39241
  this.match(_MalloyParser.ELSE);
39262
- this.state = 1160;
39242
+ this.state = 1155;
39263
39243
  _localctx._pickElse = this.fieldExpr(0);
39264
39244
  }
39265
39245
  break;
@@ -39286,20 +39266,20 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39286
39266
  try {
39287
39267
  this.enterOuterAlt(_localctx, 1);
39288
39268
  {
39289
- this.state = 1163;
39269
+ this.state = 1158;
39290
39270
  this.match(_MalloyParser.PICK);
39291
- this.state = 1165;
39271
+ this.state = 1160;
39292
39272
  this._errHandler.sync(this);
39293
39273
  _la = this._input.LA(1);
39294
39274
  if ((_la - 34 & ~31) === 0 && (1 << _la - 34 & (1 << _MalloyParser.ALL - 34 | 1 << _MalloyParser.AVG - 34 | 1 << _MalloyParser.CAST - 34 | 1 << _MalloyParser.COUNT - 34 | 1 << _MalloyParser.DAY - 34 | 1 << _MalloyParser.EXCLUDE - 34 | 1 << _MalloyParser.FALSE - 34 | 1 << _MalloyParser.HOUR - 34)) !== 0 || (_la - 66 & ~31) === 0 && (1 << _la - 66 & (1 << _MalloyParser.MAX - 66 | 1 << _MalloyParser.MIN - 66 | 1 << _MalloyParser.MINUTE - 66 | 1 << _MalloyParser.MONTH - 66 | 1 << _MalloyParser.NOT - 66 | 1 << _MalloyParser.NOW - 66 | 1 << _MalloyParser.NULL - 66 | 1 << _MalloyParser.PICK - 66 | 1 << _MalloyParser.QUARTER - 66 | 1 << _MalloyParser.SECOND - 66 | 1 << _MalloyParser.SOURCE_KW - 66 | 1 << _MalloyParser.SUM - 66 | 1 << _MalloyParser.TRUE - 66 | 1 << _MalloyParser.WEEK - 66 | 1 << _MalloyParser.YEAR - 66 | 1 << _MalloyParser.HACKY_REGEX - 66)) !== 0 || (_la - 98 & ~31) === 0 && (1 << _la - 98 & (1 << _MalloyParser.SQ_STRING - 98 | 1 << _MalloyParser.DQ_STRING - 98 | 1 << _MalloyParser.BQ_STRING - 98 | 1 << _MalloyParser.OPAREN - 98 | 1 << _MalloyParser.MINUS - 98)) !== 0 || (_la - 136 & ~31) === 0 && (1 << _la - 136 & (1 << _MalloyParser.LITERAL_TIMESTAMP - 136 | 1 << _MalloyParser.LITERAL_HOUR - 136 | 1 << _MalloyParser.LITERAL_DAY - 136 | 1 << _MalloyParser.LITERAL_QUARTER - 136 | 1 << _MalloyParser.LITERAL_MONTH - 136 | 1 << _MalloyParser.LITERAL_WEEK - 136 | 1 << _MalloyParser.LITERAL_YEAR - 136 | 1 << _MalloyParser.IDENTIFIER - 136 | 1 << _MalloyParser.NUMERIC_LITERAL - 136 | 1 << _MalloyParser.INTEGER_LITERAL - 136 | 1 << _MalloyParser.SQL_BEGIN - 136)) !== 0) {
39295
39275
  {
39296
- this.state = 1164;
39276
+ this.state = 1159;
39297
39277
  _localctx._pickValue = this.fieldExpr(0);
39298
39278
  }
39299
39279
  }
39300
- this.state = 1167;
39280
+ this.state = 1162;
39301
39281
  this.match(_MalloyParser.WHEN);
39302
- this.state = 1168;
39282
+ this.state = 1163;
39303
39283
  _localctx._pickWhen = this.partialAllowedFieldExpr();
39304
39284
  }
39305
39285
  } catch (re2) {
@@ -39324,32 +39304,32 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39324
39304
  let _alt;
39325
39305
  this.enterOuterAlt(_localctx, 1);
39326
39306
  {
39327
- this.state = 1170;
39307
+ this.state = 1165;
39328
39308
  this.fieldExpr(0);
39329
- this.state = 1175;
39309
+ this.state = 1170;
39330
39310
  this._errHandler.sync(this);
39331
- _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
39311
+ _alt = this.interpreter.adaptivePredict(this._input, 117, this._ctx);
39332
39312
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
39333
39313
  if (_alt === 1) {
39334
39314
  {
39335
39315
  {
39336
- this.state = 1171;
39316
+ this.state = 1166;
39337
39317
  this.match(_MalloyParser.COMMA);
39338
- this.state = 1172;
39318
+ this.state = 1167;
39339
39319
  this.fieldExpr(0);
39340
39320
  }
39341
39321
  }
39342
39322
  }
39343
- this.state = 1177;
39323
+ this.state = 1172;
39344
39324
  this._errHandler.sync(this);
39345
- _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
39325
+ _alt = this.interpreter.adaptivePredict(this._input, 117, this._ctx);
39346
39326
  }
39347
- this.state = 1179;
39327
+ this.state = 1174;
39348
39328
  this._errHandler.sync(this);
39349
39329
  _la = this._input.LA(1);
39350
39330
  if (_la === _MalloyParser.COMMA) {
39351
39331
  {
39352
- this.state = 1178;
39332
+ this.state = 1173;
39353
39333
  this.match(_MalloyParser.COMMA);
39354
39334
  }
39355
39335
  }
@@ -39376,32 +39356,32 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39376
39356
  let _alt;
39377
39357
  this.enterOuterAlt(_localctx, 1);
39378
39358
  {
39379
- this.state = 1181;
39359
+ this.state = 1176;
39380
39360
  this.fieldName();
39381
- this.state = 1188;
39361
+ this.state = 1183;
39382
39362
  this._errHandler.sync(this);
39383
- _alt = this.interpreter.adaptivePredict(this._input, 121, this._ctx);
39363
+ _alt = this.interpreter.adaptivePredict(this._input, 120, this._ctx);
39384
39364
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
39385
39365
  if (_alt === 1) {
39386
39366
  {
39387
39367
  {
39388
- this.state = 1183;
39368
+ this.state = 1178;
39389
39369
  this._errHandler.sync(this);
39390
39370
  _la = this._input.LA(1);
39391
39371
  if (_la === _MalloyParser.COMMA) {
39392
39372
  {
39393
- this.state = 1182;
39373
+ this.state = 1177;
39394
39374
  this.match(_MalloyParser.COMMA);
39395
39375
  }
39396
39376
  }
39397
- this.state = 1185;
39377
+ this.state = 1180;
39398
39378
  this.fieldName();
39399
39379
  }
39400
39380
  }
39401
39381
  }
39402
- this.state = 1190;
39382
+ this.state = 1185;
39403
39383
  this._errHandler.sync(this);
39404
- _alt = this.interpreter.adaptivePredict(this._input, 121, this._ctx);
39384
+ _alt = this.interpreter.adaptivePredict(this._input, 120, this._ctx);
39405
39385
  }
39406
39386
  }
39407
39387
  } catch (re2) {
@@ -39426,39 +39406,39 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39426
39406
  let _alt;
39427
39407
  this.enterOuterAlt(_localctx, 1);
39428
39408
  {
39429
- this.state = 1191;
39409
+ this.state = 1186;
39430
39410
  this.collectionMember();
39431
- this.state = 1198;
39411
+ this.state = 1193;
39432
39412
  this._errHandler.sync(this);
39433
- _alt = this.interpreter.adaptivePredict(this._input, 123, this._ctx);
39413
+ _alt = this.interpreter.adaptivePredict(this._input, 122, this._ctx);
39434
39414
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
39435
39415
  if (_alt === 1) {
39436
39416
  {
39437
39417
  {
39438
- this.state = 1193;
39418
+ this.state = 1188;
39439
39419
  this._errHandler.sync(this);
39440
39420
  _la = this._input.LA(1);
39441
39421
  if (_la === _MalloyParser.COMMA) {
39442
39422
  {
39443
- this.state = 1192;
39423
+ this.state = 1187;
39444
39424
  this.match(_MalloyParser.COMMA);
39445
39425
  }
39446
39426
  }
39447
- this.state = 1195;
39427
+ this.state = 1190;
39448
39428
  this.collectionMember();
39449
39429
  }
39450
39430
  }
39451
39431
  }
39452
- this.state = 1200;
39432
+ this.state = 1195;
39453
39433
  this._errHandler.sync(this);
39454
- _alt = this.interpreter.adaptivePredict(this._input, 123, this._ctx);
39434
+ _alt = this.interpreter.adaptivePredict(this._input, 122, this._ctx);
39455
39435
  }
39456
- this.state = 1202;
39436
+ this.state = 1197;
39457
39437
  this._errHandler.sync(this);
39458
39438
  _la = this._input.LA(1);
39459
39439
  if (_la === _MalloyParser.COMMA) {
39460
39440
  {
39461
- this.state = 1201;
39441
+ this.state = 1196;
39462
39442
  this.match(_MalloyParser.COMMA);
39463
39443
  }
39464
39444
  }
@@ -39484,25 +39464,25 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39484
39464
  try {
39485
39465
  this.enterOuterAlt(_localctx, 1);
39486
39466
  {
39487
- this.state = 1207;
39467
+ this.state = 1202;
39488
39468
  this._errHandler.sync(this);
39489
39469
  _la = this._input.LA(1);
39490
39470
  if (_la === _MalloyParser.BQ_STRING || _la === _MalloyParser.IDENTIFIER) {
39491
39471
  {
39492
- this.state = 1204;
39472
+ this.state = 1199;
39493
39473
  this.fieldPath();
39494
- this.state = 1205;
39474
+ this.state = 1200;
39495
39475
  this.match(_MalloyParser.DOT);
39496
39476
  }
39497
39477
  }
39498
- this.state = 1209;
39478
+ this.state = 1204;
39499
39479
  this.match(_MalloyParser.STAR);
39500
- this.state = 1211;
39480
+ this.state = 1206;
39501
39481
  this._errHandler.sync(this);
39502
- switch (this.interpreter.adaptivePredict(this._input, 126, this._ctx)) {
39482
+ switch (this.interpreter.adaptivePredict(this._input, 125, this._ctx)) {
39503
39483
  case 1:
39504
39484
  {
39505
- this.state = 1210;
39485
+ this.state = 1205;
39506
39486
  this.starQualified();
39507
39487
  }
39508
39488
  break;
@@ -39529,29 +39509,29 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39529
39509
  try {
39530
39510
  this.enterOuterAlt(_localctx, 1);
39531
39511
  {
39532
- this.state = 1213;
39512
+ this.state = 1208;
39533
39513
  this.match(_MalloyParser.OCURLY);
39534
- this.state = 1217;
39514
+ this.state = 1212;
39535
39515
  this._errHandler.sync(this);
39536
39516
  _la = this._input.LA(1);
39537
39517
  do {
39538
39518
  {
39539
- this.state = 1217;
39519
+ this.state = 1212;
39540
39520
  this._errHandler.sync(this);
39541
39521
  switch (this._input.LA(1)) {
39542
39522
  case _MalloyParser.EXCEPT:
39543
39523
  {
39544
39524
  {
39545
- this.state = 1214;
39525
+ this.state = 1209;
39546
39526
  this.match(_MalloyParser.EXCEPT);
39547
- this.state = 1215;
39527
+ this.state = 1210;
39548
39528
  this.fieldNameList();
39549
39529
  }
39550
39530
  }
39551
39531
  break;
39552
39532
  case _MalloyParser.COMMA:
39553
39533
  {
39554
- this.state = 1216;
39534
+ this.state = 1211;
39555
39535
  this.match(_MalloyParser.COMMA);
39556
39536
  }
39557
39537
  break;
@@ -39559,11 +39539,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39559
39539
  throw new NoViableAltException_1.NoViableAltException(this);
39560
39540
  }
39561
39541
  }
39562
- this.state = 1219;
39542
+ this.state = 1214;
39563
39543
  this._errHandler.sync(this);
39564
39544
  _la = this._input.LA(1);
39565
39545
  } while (_la === _MalloyParser.EXCEPT || _la === _MalloyParser.COMMA);
39566
- this.state = 1221;
39546
+ this.state = 1216;
39567
39547
  this.match(_MalloyParser.CCURLY);
39568
39548
  }
39569
39549
  } catch (re2) {
@@ -39587,16 +39567,16 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39587
39567
  try {
39588
39568
  this.enterOuterAlt(_localctx, 1);
39589
39569
  {
39590
- this.state = 1223;
39570
+ this.state = 1218;
39591
39571
  this.tags();
39592
- this.state = 1224;
39572
+ this.state = 1219;
39593
39573
  this.fieldPath();
39594
- this.state = 1226;
39574
+ this.state = 1221;
39595
39575
  this._errHandler.sync(this);
39596
39576
  _la = this._input.LA(1);
39597
39577
  if (_la === _MalloyParser.DOT) {
39598
39578
  {
39599
- this.state = 1225;
39579
+ this.state = 1220;
39600
39580
  this.refExpr();
39601
39581
  }
39602
39582
  }
@@ -39619,28 +39599,28 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39619
39599
  let _localctx = new RefExprContext(this._ctx, this.state);
39620
39600
  this.enterRule(_localctx, 242, _MalloyParser.RULE_refExpr);
39621
39601
  try {
39622
- this.state = 1235;
39602
+ this.state = 1230;
39623
39603
  this._errHandler.sync(this);
39624
- switch (this.interpreter.adaptivePredict(this._input, 130, this._ctx)) {
39604
+ switch (this.interpreter.adaptivePredict(this._input, 129, this._ctx)) {
39625
39605
  case 1:
39626
39606
  this.enterOuterAlt(_localctx, 1);
39627
39607
  {
39628
- this.state = 1228;
39608
+ this.state = 1223;
39629
39609
  this.match(_MalloyParser.DOT);
39630
- this.state = 1229;
39610
+ this.state = 1224;
39631
39611
  this.timeframe();
39632
39612
  }
39633
39613
  break;
39634
39614
  case 2:
39635
39615
  this.enterOuterAlt(_localctx, 2);
39636
39616
  {
39637
- this.state = 1230;
39617
+ this.state = 1225;
39638
39618
  this.match(_MalloyParser.DOT);
39639
- this.state = 1231;
39619
+ this.state = 1226;
39640
39620
  this.aggregate();
39641
- this.state = 1232;
39621
+ this.state = 1227;
39642
39622
  this.match(_MalloyParser.OPAREN);
39643
- this.state = 1233;
39623
+ this.state = 1228;
39644
39624
  this.match(_MalloyParser.CPAREN);
39645
39625
  }
39646
39626
  break;
@@ -39663,27 +39643,27 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39663
39643
  let _localctx = new CollectionMemberContext(this._ctx, this.state);
39664
39644
  this.enterRule(_localctx, 244, _MalloyParser.RULE_collectionMember);
39665
39645
  try {
39666
- this.state = 1240;
39646
+ this.state = 1235;
39667
39647
  this._errHandler.sync(this);
39668
- switch (this.interpreter.adaptivePredict(this._input, 131, this._ctx)) {
39648
+ switch (this.interpreter.adaptivePredict(this._input, 130, this._ctx)) {
39669
39649
  case 1:
39670
39650
  this.enterOuterAlt(_localctx, 1);
39671
39651
  {
39672
- this.state = 1237;
39652
+ this.state = 1232;
39673
39653
  this.taggedRef();
39674
39654
  }
39675
39655
  break;
39676
39656
  case 2:
39677
39657
  this.enterOuterAlt(_localctx, 2);
39678
39658
  {
39679
- this.state = 1238;
39659
+ this.state = 1233;
39680
39660
  this.collectionWildCard();
39681
39661
  }
39682
39662
  break;
39683
39663
  case 3:
39684
39664
  this.enterOuterAlt(_localctx, 3);
39685
39665
  {
39686
- this.state = 1239;
39666
+ this.state = 1234;
39687
39667
  this.fieldDef();
39688
39668
  }
39689
39669
  break;
@@ -39709,25 +39689,25 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39709
39689
  let _alt;
39710
39690
  this.enterOuterAlt(_localctx, 1);
39711
39691
  {
39712
- this.state = 1242;
39692
+ this.state = 1237;
39713
39693
  this.fieldName();
39714
- this.state = 1247;
39694
+ this.state = 1242;
39715
39695
  this._errHandler.sync(this);
39716
- _alt = this.interpreter.adaptivePredict(this._input, 132, this._ctx);
39696
+ _alt = this.interpreter.adaptivePredict(this._input, 131, this._ctx);
39717
39697
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
39718
39698
  if (_alt === 1) {
39719
39699
  {
39720
39700
  {
39721
- this.state = 1243;
39701
+ this.state = 1238;
39722
39702
  this.match(_MalloyParser.DOT);
39723
- this.state = 1244;
39703
+ this.state = 1239;
39724
39704
  this.fieldName();
39725
39705
  }
39726
39706
  }
39727
39707
  }
39728
- this.state = 1249;
39708
+ this.state = 1244;
39729
39709
  this._errHandler.sync(this);
39730
- _alt = this.interpreter.adaptivePredict(this._input, 132, this._ctx);
39710
+ _alt = this.interpreter.adaptivePredict(this._input, 131, this._ctx);
39731
39711
  }
39732
39712
  }
39733
39713
  } catch (re2) {
@@ -39750,7 +39730,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39750
39730
  try {
39751
39731
  this.enterOuterAlt(_localctx, 1);
39752
39732
  {
39753
- this.state = 1250;
39733
+ this.state = 1245;
39754
39734
  this.id();
39755
39735
  }
39756
39736
  } catch (re2) {
@@ -39773,7 +39753,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39773
39753
  try {
39774
39754
  this.enterOuterAlt(_localctx, 1);
39775
39755
  {
39776
- this.state = 1252;
39756
+ this.state = 1247;
39777
39757
  this.id();
39778
39758
  }
39779
39759
  } catch (re2) {
@@ -39796,9 +39776,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39796
39776
  try {
39797
39777
  this.enterOuterAlt(_localctx, 1);
39798
39778
  {
39799
- this.state = 1254;
39779
+ this.state = 1249;
39800
39780
  this.fieldExpr(0);
39801
- this.state = 1255;
39781
+ this.state = 1250;
39802
39782
  this.match(_MalloyParser.EOF);
39803
39783
  }
39804
39784
  } catch (re2) {
@@ -39821,7 +39801,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39821
39801
  try {
39822
39802
  this.enterOuterAlt(_localctx, 1);
39823
39803
  {
39824
- this.state = 1257;
39804
+ this.state = 1252;
39825
39805
  this.id();
39826
39806
  }
39827
39807
  } catch (re2) {
@@ -39844,7 +39824,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39844
39824
  try {
39845
39825
  this.enterOuterAlt(_localctx, 1);
39846
39826
  {
39847
- this.state = 1259;
39827
+ this.state = 1254;
39848
39828
  this.id();
39849
39829
  }
39850
39830
  } catch (re2) {
@@ -39867,7 +39847,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39867
39847
  try {
39868
39848
  this.enterOuterAlt(_localctx, 1);
39869
39849
  {
39870
- this.state = 1261;
39850
+ this.state = 1256;
39871
39851
  this.string();
39872
39852
  }
39873
39853
  } catch (re2) {
@@ -39890,15 +39870,15 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39890
39870
  try {
39891
39871
  this.enterOuterAlt(_localctx, 1);
39892
39872
  {
39893
- this.state = 1263;
39873
+ this.state = 1258;
39894
39874
  this.match(_MalloyParser.SEMI);
39895
- this.state = 1264;
39875
+ this.state = 1259;
39896
39876
  this.match(_MalloyParser.SEMI);
39897
- this.state = 1265;
39877
+ this.state = 1260;
39898
39878
  this.match(_MalloyParser.OBRACK);
39899
- this.state = 1266;
39879
+ this.state = 1261;
39900
39880
  this.string();
39901
- this.state = 1267;
39881
+ this.state = 1262;
39902
39882
  this.match(_MalloyParser.CBRACK);
39903
39883
  }
39904
39884
  } catch (re2) {
@@ -40721,9 +40701,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
40721
40701
  ];
40722
40702
  MalloyParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(MalloyParser._LITERAL_NAMES, MalloyParser._SYMBOLIC_NAMES, []);
40723
40703
  MalloyParser._serializedATNSegments = 3;
40724
- MalloyParser._serializedATNSegment0 = "\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x9D\u04F8     \x07 \x07\b \b \n \n\v \v\f \f\r \r             \x1B \x1B     ! !\" \"# #$ $% %& &' '( () )* *+ +, ,- -. ./ /0 01 12 23 34 45 56 67 78 89 9: :; ;< <= => >? ?@ @A AB BC CD DE EF FG GH HI IJ JK KL LM MN NO OP PQ QR RS ST TU UV VW WX XY YZ Z[ [\\ \\] ]^ ^_ _` `a ab bc cd de ef fg gh hi ij jk kl lm mn no op pq qr rs st tu uv vw wx xy yz z{ {| |} }~ ~\x7F \x7F\x80 \x80\x81 \x81\x82 \x82\x83 \x83\x84 \x84\x07\u010B\n\f\u010E\v\u011A\n\u0125\n\x07\x07\x07\u012B\n\x07\f\x07\x07\u012E\v\x07\b\b\b\b    \n\n\n\n\n\v\v\v\u013F\n\v\r\v\v\u0140\v\v\f\f\f\f\f\u0149\n\f\r\r\x07\r\u014D\n\r\f\r\r\u0150\v\r\r\r\u015A\n\x07\u0162\n\f\u0165\v\u016D\n\u0172\n\r\u0173\u0177\n\r\u0178\u017C\n\r\u017D\u0184\n\x07\u0187\n\f\u018A\v\u018D\n\u019E\n\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\u01AE\n\x1B\x07\u01B6\n\f\u01B9\v\u01BC\n   \u01C7\n  \x07 \u01CA\n \f  \u01CD\v   \u01D0\n !!!!!\"\"##$$%%%\x07%\u01E0\n%\f%%\u01E3\v%%%%\u01E7\n%&&&&&&&&&&&&&&&&&&\u01FA\n&\r&&\u01FB&&\u01FF\n&''''(((()))\u020B\n))\x07)\u020E\n)\f))\u0211\v)))\u0214\n)****+++\u021C\n++\x07+\u021F\n+\f++\u0222\v+++\u0225\n+,,,,,--..///0000000000000\u023F\n01112222\u0247\n2333333333\u0251\n3333333333\x073\u025C\n3\f33\u025F\v344444444\u0268\n4444\x074\u026D\n4\f44\u0270\v4555555\u0277\n56666\u027C\n6777\x077\u0281\n7\f77\u0284\v777888\u028A\n88\x078\u028D\n8\f88\u0290\v888\u0293\n899999::;\x07;\u029D\n;\f;;\u02A0\v;;;;\u02A4\n;;;\u02A7\n;;;;;\x07;\u02AD\n;\f;;\u02B0\v;;;;\u02B4\n;;;\u02B7\n;;;;\u02BB\n;;\u02BD\n;<<===\u02C3\n=>>>\x07>\u02C8\n>\f>>\u02CB\v>>>???\x07?\u02D2\n?\f??\u02D5\v???\u02D8\n?@@@\u02DC\n@@@@\u02E0\n@AAABBCCCCC\u02EB\nCDDD\x07D\u02F0\nD\fDD\u02F3\vDDD\u02F6\nDEEEFFFGGG\u0300\nGG\x07G\u0303\nG\fGG\u0306\vGGG\u0309\nGHHI\x07I\u030E\nI\fII\u0311\vIIIIIJJJJJJJJJJJJJJJJJJJ\u0329\nJKKLLLLMMM\u0333\nMM\x07M\u0336\nM\fMM\u0339\vMMM\u033C\nMNNN\u0340\nNOOOOPPP\u0348\nPP\x07P\u034B\nP\fPP\u034E\vPPP\u0351\nPQQQQQ\u0357\nQQQQQQQ\u035E\nQRRRRSSSSTTTTUUUU\x07U\u0370\nU\fUU\u0373\vUUU\u0376\nUVVVWWW\u037D\nWW\x07W\u0380\nW\fWW\u0383\vWWW\u0386\nWXXX\u038A\nXXX\u038D\nXYYYZZZZZ\u0396\nZ[[[[\u039B\n[\\\\\\\\\u03A0\n\\\\\\\u03A3\n\\]]]\u03A7\n]]\x07]\u03AA\n]\f]]\u03AD\v]^^^^^\u03B3\n^___```aabbccddeefff\u03C7\nfgghhiiiiiiii\u03D4\nijjjjjjjj\u03DD\njkkllmmnnooppp\u03EB\npqqqqqqqqqqqqqqqqqqqqqqq\u0403\nqqqqqq\u0409\nqqqqqqqqq\u0412\nqqqqqqqqqqqqq\u041F\nqqqqqqq\u0426\nqq\u0428\nqqq\u042B\nqqqq\u042F\nqqqqqqqqq\x07q\u0439\nq\fqq\u043C\vqqqq\u0440\nqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\x07q\u0473\nq\fqq\u0476\vqrrr\u047A\nrrrrrr\u0480\nrrr\u0483\nrss\u0486\ns\rss\u0487sss\u048C\nsttt\u0490\nttttuuu\x07u\u0498\nu\fuu\u049B\vuuu\u049E\nuvvv\u04A2\nvv\x07v\u04A5\nv\fvv\u04A8\vvwww\u04AC\nww\x07w\u04AF\nw\fww\u04B2\vwww\u04B5\nwxxxx\u04BA\nxxxx\u04BE\nxyyyyy\u04C4\ny\ryy\u04C5yyzzzz\u04CD\nz{{{{{{{{\u04D6\n{||||\u04DB\n|}}}\x07}\u04E0\n}\f}}\u04E3\v}~~\x7F\x7F\x80\x80\x80\x81\x81\x82\x82\x83\x83\x84\x84\x84\x84\x84\x84\x84df\xE0\x85\b\n\f \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\x80\x82\x84\x86\x88\x8A\x8C\x8E\x90\x92\x94\x96\x98\x9A\x9C\x9E\xA0\xA2\xA4\xA6\xA8\xAA\xAC\xAE\xB0\xB2\xB4\xB6\xB8\xBA\xBC\xBE\xC0\xC2\xC4\xC6\xC8\xCA\xCC\xCE\xD0\xD2\xD4\xD6\xD8\xDA\xDC\xDE\xE0\xE2\xE4\xE6\xE8\xEA\xEC\xEE\xF0\xF2\xF4\xF6\xF8\xFA\xFC\xFE\u0100\u0102\u0104\u0106qq\x99\x99\n\n\"\"88??CCPP''1177[[\x92\x92\x94\x94((..DETT\x07))//KKRRYYx}\x85\x86de\x93\x9477[[ff\x91\x91 00==FGOOQQ]]``$$55\x80\x80\x82\x82\x87\x87~\x7F\u0548\u010C\u0119\u011B\b\u0124\n\u0126\f\u012C\u012F\u0133\u0137\u013C\u0148\u014A\u0153\u0157\u015D \u0169\"\u016E$\u0171&\u0176(\u017B*\u017F,\u018E.\u01930\u01952\u01974\u01AD6\u01AF8\u01BB:\u01BD<\u01C2>\u01C4@\u01D1B\u01D6D\u01D8F\u01DAH\u01E6J\u01FEL\u0200N\u0204P\u0208R\u0215T\u0219V\u0226X\u022BZ\u022D\\\u022F^\u023E`\u0240b\u0246d\u0250f\u0267h\u0276j\u027Bl\u027Dn\u0287p\u0294r\u0299t\u02BCv\u02BEx\u02C2z\u02C4|\u02CE~\u02DF\x80\u02E1\x82\u02E4\x84\u02EA\x86\u02EC\x88\u02F7\x8A\u02FA\x8C\u02FD\x8E\u030A\x90\u030F\x92\u0328\x94\u032A\x96\u032C\x98\u0330\x9A\u033F\x9C\u0341\x9E\u0345\xA0\u035D\xA2\u035F\xA4\u0363\xA6\u0367\xA8\u036B\xAA\u0377\xAC\u037A\xAE\u0389\xB0\u038E\xB2\u0395\xB4\u0397\xB6\u03A2\xB8\u03A4\xBA\u03AE\xBC\u03B4\xBE\u03B7\xC0\u03BA\xC2\u03BC\xC4\u03BE\xC6\u03C0\xC8\u03C2\xCA\u03C6\xCC\u03C8\xCE\u03CA\xD0\u03D3\xD2\u03DC\xD4\u03DE\xD6\u03E0\xD8\u03E2\xDA\u03E4\xDC\u03E6\xDE\u03EA\xE0\u043F\xE2\u0482\xE4\u0485\xE6\u048D\xE8\u0494\xEA\u049F\xEC\u04A9\xEE\u04B9\xF0\u04BF\xF2\u04C9\xF4\u04D5\xF6\u04DA\xF8\u04DC\xFA\u04E4\xFC\u04E6\xFE\u04E8\u0100\u04EB\u0102\u04ED\u0104\u04EF\u0106\u04F1\u0108\u010B\u0109\u010B\x07\x84\u010A\u0108\u010A\u0109\u010B\u010E\u010C\u010A\u010C\u010D\u010D\u010F\u010E\u010C\u010F\u0110\x07\u0110\u0111\u011A\u0112\u011A\n\u0113\u011A\b\u0114\u011A\u0115\u011A \u0116\u011A$\u0117\u011A&\u0118\u011A\u0106\x84\u0119\u0111\u0119\u0112\u0119\u0113\u0119\u0114\u0119\u0115\u0119\u0116\u0119\u0117\u0119\u0118\u011A\u011B\u011C\f\x07\u011C\u011D\x07\u011D\u011E> \u011E\x07\u011F\u0125*\u0120\u0121\f\x07\u0121\u0122\x07\u0122\u0123\n\u0123\u0125\u0124\u011F\u0124\u0120\u0125 \u0126\u0127\f\x07\u0127\u0128d3\u0128\v\u0129\u012B\x07h\u012A\u0129\u012B\u012E\u012C\u012A\u012C\u012D\u012D\r\u012E\u012C\u012F\u0130\f\x07\u0130\u0131\x07@\u0131\u0132\f\x07\u0132\u0133\u0134\f\x07\u0134\u0135\x07\x1B\u0135\u0136\n\u0136\u0137\u0138\x07\u0138\u0139\u0102\x82\u0139\u013A\b\u013A\u013B\v\u013B\u013C\u013E\x07p\u013D\u013F\f\u013E\u013D\u013F\u0140\u0140\u013E\u0140\u0141\u0141\u0142\u0142\u0143\x07q\u0143\u0144\u0145\x07\x07\u0145\u0149\u0104\x83\u0146\u0147\x07\u0147\u0149\r\u0148\u0144\u0148\u0146\u0149\u014A\u014E\x07\x98\u014B\u014D\u014C\u014B\u014D\u0150\u014E\u014C\u014E\u014F\u014F\u0151\u0150\u014E\u0151\u0152\x07\x9D\u0152\u0153\u0154\x07\x9C\u0154\u0155d3\u0155\u0156 \u0156\x1B\u0157\u0159\x07>\u0158\u015A\u0159\u0158\u0159\u015A\u015A\u015B\u015B\u015C\"\u015C\u015D\u015E\x07p\u015E\u0163 \u015F\u0160\x07v\u0160\u0162 \u0161\u015F\u0162\u0165\u0163\u0161\u0163\u0164\u0164\u0166\u0165\u0163\u0166\u0167\x07q\u0167\u0168\x07:\u0168\u0169\u016C\xD8m\u016A\u016B\x07@\u016B\u016D\xD8m\u016C\u016A\u016C\u016D\u016D!\u016E\u016F\xCAf\u016F#\u0170\u0172\x07g\u0171\u0170\u0172\u0173\u0173\u0171\u0173\u0174\u0174%\u0175\u0177\x07h\u0176\u0175\u0177\u0178\u0178\u0176\u0178\u0179\u0179'\u017A\u017C\x07g\u017B\u017A\u017C\u017D\u017D\u017B\u017D\u017E\u017E)\u017F\u0180\f\x07\u0180\u0181\x07\u0181\u0188,\u0182\u0184\x07v\u0183\u0182\u0183\u0184\u0184\u0185\u0185\u0187,\u0186\u0183\u0187\u018A\u0188\u0186\u0188\u0189\u0189\u018C\u018A\u0188\u018B\u018D\x07v\u018C\u018B\u018C\u018D\u018D+\u018E\u018F\f\x07\u018F\u0190<\u0190\u0191\b\u0191\u0192d3\u0192-\u0193\u0194\x07~\u0194/\u0195\u0196\xD8m\u01961\u0197\u01986\u0198\u0199\x07w\u0199\u019A\x07U\u019A\u019D\x07l\u019B\u019E\r\u019C\u019E\xCCg\u019D\u019B\u019D\u019C\u019E\u019F\u019F\u01A0\x07m\u01A03\u01A1\u01A2\x07V\u01A2\u01A3\x07l\u01A3\u01A4\xD6l\u01A4\u01A5\x07m\u01A5\u01AE\u01A6";
40725
- MalloyParser._serializedATNSegment1 = "\u01A76\u01A7\u01A8\x07w\u01A8\u01A9\x07V\u01A9\u01AA\x07l\u01AA\u01AB\xD4k\u01AB\u01AC\x07m\u01AC\u01AE\u01AD\u01A1\u01AD\u01A6\u01AE5\u01AF\u01B0\xD8m\u01B07\u01B1\u01BC:\u01B2\u01B7\x07p\u01B3\u01B6\x92J\u01B4\u01B6\x07\x84\u01B5\u01B3\u01B5\u01B4\u01B6\u01B9\u01B7\u01B5\u01B7\u01B8\u01B8\u01BA\u01B9\u01B7\u01BA\u01BC\x07q\u01BB\u01B1\u01BB\u01B2\u01BC9\u01BD\u01BE\x07p\u01BE\u01BF\x07\x89\u01BF\u01C0\xE0q\u01C0\u01C1\x07q\u01C1;\u01C2\u01C3\xD8m\u01C3=\u01C4\u01CB@!\u01C5\u01C7\x07v\u01C6\u01C5\u01C6\u01C7\u01C7\u01C8\u01C8\u01CA@!\u01C9\u01C6\u01CA\u01CD\u01CB\u01C9\u01CB\u01CC\u01CC\u01CF\u01CD\u01CB\u01CE\u01D0\x07v\u01CF\u01CE\u01CF\u01D0\u01D0?\u01D1\u01D2\f\x07\u01D2\u01D3D#\u01D3\u01D4\b\u01D4\u01D5B\"\u01D5A\u01D6\u01D7d3\u01D7C\u01D8\u01D9\xD8m\u01D9E\u01DA\u01DB\xD8m\u01DBG\u01DC\u01E1\x07p\u01DD\u01E0J&\u01DE\u01E0\x07\x84\u01DF\u01DD\u01DF\u01DE\u01E0\u01E3\u01E1\u01DF\u01E1\u01E2\u01E2\u01E4\u01E3\u01E1\u01E4\u01E7\x07q\u01E5\u01E7:\u01E6\u01DC\u01E6\u01E5\u01E7I\u01E8\u01FFN(\u01E9\u01FFL'\u01EA\u01FF\\/\u01EB\u01FF^0\u01EC\u01FF\x88E\u01ED\u01EE\x07\u01EE\u01FF\xFC\x7F\u01EF\u01F0\x07\u01F0\u01FFP)\u01F1\u01F2 \u01F2\u01FF\xEAv\u01F3\u01F4\f\x07\u01F4\u01F5 \u01F5\u01F6\x8CG\u01F6\u01FF\u01F7\u01FF\xBE`\u01F8\u01FA\x07h\u01F9\u01F8\u01FA\u01FB\u01FB\u01F9\u01FB\u01FC\u01FC\u01FF\u01FD\u01FF(\u01FE\u01E8\u01FE\u01E9\u01FE\u01EA\u01FE\u01EB\u01FE\u01EC\u01FE\u01ED\u01FE\u01EF\u01FE\u01F1\u01FE\u01F3\u01FE\u01F7\u01FE\u01F9\u01FE\u01FD\u01FFK\u0200\u0201\f\x07\u0201\u0202\x07\u0202\u0203T+\u0203M\u0204\u0205\f\x07\u0205\u0206\x07 \u0206\u0207T+\u0207O\u0208\u020FR*\u0209\u020B\x07v\u020A\u0209\u020A\u020B\u020B\u020C\u020C\u020ER*\u020D\u020A\u020E\u0211\u020F\u020D\u020F\u0210\u0210\u0213\u0211\u020F\u0212\u0214\x07v\u0213\u0212\u0213\u0214\u0214Q\u0215\u0216\xFC\x7F\u0216\u0217\b\u0217\u0218\xFC\x7F\u0218S\u0219\u0220V,\u021A\u021C\x07v\u021B\u021A\u021B\u021C\u021C\u021D\u021D\u021FV,\u021E\u021B\u021F\u0222\u0220\u021E\u0220\u0221\u0221\u0224\u0222\u0220\u0223\u0225\x07v\u0224\u0223\u0224\u0225\u0225U\u0226\u0227\f\x07\u0227\u0228X-\u0228\u0229\b\u0229\u022A\xE0q\u022AW\u022B\u022C\xD8m\u022CY\u022D\u022E\xD8m\u022E[\u022F\u0230\x07\b\u0230\u0231T+\u0231]\u0232\u0233\f\x07\u0233\u0234\x07\u0234\u0235n8\u0235\u023F\u0236\u0237\f\x07\u0237\u0238\x07\u0238\u0239n8\u0239\u023F\u023A\u023B\f\x07\u023B\u023C\x07\u023C\u023Dn8\u023D\u023F\u023E\u0232\u023E\u0236\u023E\u023A\u023F_\u0240\u0241\x07\v\u0241\u0242l7\u0242a\u0243\u0247^0\u0244\u0247\x88E\u0245\u0247\\/\u0246\u0243\u0246\u0244\u0246\u0245\u0247c\u0248\u0249\b3\u0249\u0251\xD8m\u024A\u024B\x07l\u024B\u024Cd3\u024C\u024D\x07m\u024D\u0251\u024E\u02514\x1B\u024F\u02512\u0250\u0248\u0250\u024A\u0250\u024E\u0250\u024F\u0251\u025D\u0252\u0253\f\x07\u0253\u0254\x07~\u0254\u025Cf4\u0255\u0256\f\u0256\u0257\x07j\u0257\u025Cf4\u0258\u0259\f\u0259\u025A\x076\u025A\u025CH%\u025B\u0252\u025B\u0255\u025B\u0258\u025C\u025F\u025D\u025B\u025D\u025E\u025Ee\u025F\u025D\u0260\u0261\b4\u0261\u0268\xF8}\u0262\u02688\u0263\u0264\x07l\u0264\u0265h5\u0265\u0266\x07m\u0266\u0268\u0267\u0260\u0267\u0262\u0267\u0263\u0268\u026E\u0269\u026A\f\u026A\u026B\x07~\u026B\u026Df4\u026C\u0269\u026D\u0270\u026E\u026C\u026E\u026F\u026Fg\u0270\u026E\u0271\u0277f4\u0272\u0273f4\u0273\u0274\x07j\u0274\u0275h5\u0275\u0277\u0276\u0271\u0276\u0272\u0277i\u0278\u027CN(\u0279\u027CL'\u027A\u027C^0\u027B\u0278\u027B\u0279\u027B\u027A\u027Ck\u027D\u0282\x07p\u027E\u0281j6\u027F\u0281\x07\x84\u0280\u027E\u0280\u027F\u0281\u0284\u0282\u0280\u0282\u0283\u0283\u0285\u0284\u0282\u0285\u0286\x07q\u0286m\u0287\u028Et;\u0288\u028A\x07v\u0289\u0288\u0289\u028A\u028A\u028B\u028B\u028Dt;\u028C\u0289\u028D\u0290\u028E\u028C\u028E\u028F\u028F\u0292\u0290\u028E\u0291\u0293\x07v\u0292\u0291\u0292\u0293\u0293o\u0294\u0295\f\x07\u0295\u0296\x07@\u0296\u0297\f\x07\u0297\u0298d3\u0298q\u0299\u029A \u029As\u029B\u029D\x07h\u029C\u029B\u029D\u02A0\u029E\u029C\u029E\u029F\u029F\u02A1\u02A0\u029E\u02A1\u02A3Z.\u02A2\u02A4p9\u02A3\u02A2\u02A3\u02A4\u02A4\u02A6\u02A5\u02A7r:\u02A6\u02A5\u02A6\u02A7\u02A7\u02A8\u02A8\u02A9\x07_\u02A9\u02AA\xE0q\u02AA\u02BD\u02AB\u02AD\x07h\u02AC\u02AB\u02AD\u02B0\u02AE\u02AC\u02AE\u02AF\u02AF\u02B1\u02B0\u02AE\u02B1\u02B3Z.\u02B2\u02B4p9\u02B3\u02B2\u02B3\u02B4\u02B4\u02BA\u02B5\u02B7r:\u02B6\u02B5\u02B6\u02B7\u02B7\u02B8\u02B8\u02B9\x07L\u02B9\u02BBv<\u02BA\u02B6\u02BA\u02BB\u02BB\u02BD\u02BC\u029E\u02BC\u02AE\u02BDu\u02BE\u02BF\xE0q\u02BFw\u02C0\u02C3\x88E\u02C1\u02C3\x8AF\u02C2\u02C0\u02C2\u02C1\u02C3y\u02C4\u02C9\x07p\u02C5\u02C8\x84C\u02C6\u02C8\x07\x84\u02C7\u02C5\u02C7\u02C6\u02C8\u02CB\u02C9\u02C7\u02C9\u02CA\u02CA\u02CC\u02CB\u02C9\u02CC\u02CD\x07q\u02CD{\u02CE\u02D3~@\u02CF\u02D0\x07v\u02D0\u02D2~@\u02D1\u02CF\u02D2\u02D5\u02D3\u02D1\u02D3\u02D4\u02D4\u02D7\u02D5\u02D3\u02D6\u02D8\x07v\u02D7\u02D6\u02D7\u02D8\u02D8}\u02D9\u02DB\xE0q\u02DA\u02DC \u02DB\u02DA\u02DB\u02DC\u02DC\u02E0\u02DD\u02E0\x07'\u02DE\u02E0\x071\u02DF\u02D9\u02DF\u02DD\u02DF\u02DE\u02E0\x7F\u02E1\u02E2\x07\u02E2\u02E3|?\u02E3\x81\u02E4\u02E5\xB0Y\u02E5\x83\u02E6\u02EB\x88E\u02E7\u02EB\xA8U\u02E8\u02EB\x80A\u02E9\u02EB\x82B\u02EA\u02E6\u02EA\u02E7\u02EA\u02E8\u02EA\u02E9\u02EB\x85\u02EC\u02F1\xE0q\u02ED\u02EE\x07v\u02EE\u02F0\xE0q\u02EF\u02ED\u02F0\u02F3\u02F1\u02EF\u02F1\u02F2\u02F2\u02F5\u02F3\u02F1\u02F4\u02F6\x07v\u02F5\u02F4\u02F5\u02F6\u02F6\x87\u02F7\u02F8\x07!\u02F8\u02F9\x86D\u02F9\x89\u02FA\u02FB\x07\r\u02FB\u02FC\x86D\u02FC\x8B\u02FD\u0304\x90I\u02FE\u0300\x07v\u02FF\u02FE\u02FF\u0300\u0300\u0301\u0301\u0303\x90I\u0302\u02FF\u0303\u0306\u0304\u0302\u0304\u0305\u0305\u0308\u0306\u0304\u0307\u0309\x07v\u0308\u0307\u0308\u0309\u0309\x8D\u030A\u030B\xD8m\u030B\x8F\u030C\u030E\x07h\u030D\u030C\u030E\u0311\u030F\u030D\u030F\u0310\u0310\u0312\u0311\u030F\u0312\u0313\x8EH\u0313\u0314\b\u0314\u0315h5\u0315\x91\u0316\u0329\x96L\u0317\u0329\\/\u0318\u0329\x94K\u0319\u0329`1\u031A\u0329\xA6T\u031B\u0329\xBA^\u031C\u0329\xA2R\u031D\u0329\xA4S\u031E\u0329\xB4[\u031F\u0329\xB0Y\u0320\u0329\xAAV\u0321\u0329\x88E\u0322\u0329\x8AF\u0323\u0329\x9CO\u0324\u0329\xBC_\u0325\u0329\xBE`\u0326\u0329\xC0a\u0327\u0329(\u0328\u0316\u0328\u0317\u0328\u0318\u0328\u0319\u0328\u031A\u0328\u031B\u0328\u031C\u0328\u031D\u0328\u031E\u0328\u031F\u0328\u0320\u0328\u0321\u0328\u0322\u0328\u0323\u0328\u0324\u0328\u0325\u0328\u0326\u0328\u0327\u0329\x93\u032A\u032B^0\u032B\x95\u032C\u032D\f\x07\u032D\u032E\x07\f\u032E\u032F\x98M\u032F\x97\u0330\u0337\x9AN\u0331\u0333\x07v\u0332\u0331\u0332\u0333\u0333\u0334\u0334\u0336\x9AN\u0335\u0332\u0336\u0339\u0337\u0335\u0337\u0338\u0338\u033B\u0339\u0337\u033A\u033C\x07v\u033B\u033A\u033B\u033C\u033C\x99\u033D\u0340\xF2z\u033E\u0340V,\u033F\u033D\u033F\u033E\u0340\x9B\u0341\u0342\f\x07\u0342\u0343\x07\u0343\u0344\x9EP\u0344\x9D\u0345\u034C\xA0Q\u0346\u0348\x07v\u0347\u0346\u0347\u0348\u0348\u0349\u0349\u034B\xA0Q\u034A\u0347\u034B\u034E\u034C\u034A\u034C\u034D\u034D\u0350\u034E\u034C\u034F\u0351\x07v\u0350\u034F\u0350\u0351\u0351\x9F\u0352\u0353\f\x07\u0353\u0356\xF8}\u0354\u0355\x07~\u0355\u0357h5\u0356\u0354\u0356\u0357\u0357\u035E\u0358\u0359\f\x07\u0359\u035A<\u035A\u035B\b\u035B\u035Ch5\u035C\u035E\u035D\u0352\u035D\u0358\u035E\xA1\u035F\u0360\f\x07\u0360\u0361\x07\u0361\u0362\x98M\u0362\xA3\u0363\u0364\f\x07\u0364\u0365\x07\u0365\u0366\x98M\u0366\xA5\u0367\u0368\f\x07\u0368\u0369 \x07\u0369\u036A\xECw\u036A\xA7\u036B\u036C\x07\u036C\u0371\xD8m\u036D\u036E\x07v\u036E\u0370\xD8m\u036F\u036D\u0370\u0373\u0371\u036F\u0371\u0372\u0372\u0375\u0373\u0371\u0374\u0376\x07v\u0375\u0374\u0375\u0376\u0376\xA9\u0377\u0378\x07\u0378\u0379\xACW\u0379\xAB\u037A\u0381\xAEX\u037B\u037D\x07v\u037C\u037B\u037C\u037D\u037D\u037E\u037E\u0380\xAEX\u037F\u037C\u0380\u0383\u0381\u037F\u0381\u0382\u0382\u0385\u0383\u0381\u0384\u0386\x07v\u0385\u0384\u0385\u0386\u0386\xAD\u0387\u038A\x07\x94\u0388\u038A\xFC\x7F\u0389\u0387\u0389\u0388\u038A\u038C\u038B\u038D \u038C\u038B\u038C\u038D\u038D\xAF\u038E\u038F\x07\u038F\u0390\x07\x94\u0390\xB1\u0391\u0392\x07*\u0392\u0396\xFC\x7F\u0393\u0394\x07*\u0394\u0396\xE0q\u0395\u0391\u0395\u0393\u0396\xB3\u0397\u0398\x07 \u0398\u039A\x07\x94\u0399\u039B\xB2Z\u039A\u0399\u039A\u039B\u039B\xB5\u039C\u039F\xF8}\u039D\u039E\x07w\u039E\u03A0\x07\x80\u039F\u039D\u039F\u03A0\u03A0\u03A3\u03A1\u03A3\x07\x80\u03A2\u039C\u03A2\u03A1\u03A3\xB7\u03A4\u03AB\xB6\\\u03A5\u03A7\x07v\u03A6\u03A5\u03A6\u03A7\u03A7\u03A8\u03A8\u03AA\xB6\\\u03A9\u03A6\u03AA\u03AD\u03AB\u03A9\u03AB\u03AC\u03AC\xB9\u03AD\u03AB\u03AE\u03AF\x07\u03AF\u03B2\xB8]\u03B0\u03B1\x07*\u03B1\u03B3\xFC\x7F\u03B2\u03B0\u03B2\u03B3\u03B3\xBB\u03B4\u03B5\x07\u03B5\u03B6\xC2b\u03B6\xBD\u03B7\u03B8\x07#\u03B8\u03B9\xCAf\u03B9\xBF\u03BA\u03BB\x07h\u03BB\xC1\u03BC\u03BD \b\u03BD\xC3\u03BE\u03BF \u03BF\xC5\u03C0\u03C1 \n\u03C1\xC7\u03C2\u03C3 \v\u03C3\xC9\u03C4\u03C7\xCCg\u03C5\u03C7\r\u03C6\u03C4\u03C6\u03C5\u03C7\xCB\u03C8\u03C9 \f\u03C9\xCD\u03CA\u03CB \r\u03CB\xCF\u03CC\u03D4\xCAf\u03CD\u03D4\xCEh\u03CE\u03D4\xD2j\u03CF\u03D4\x07J\u03D0\u03D4 \u03D1\u03D4\x07c\u03D2\u03D4\x07I\u03D3\u03CC\u03D3\u03CD\u03D3\u03CE\u03D3\u03CF\u03D3\u03D0\u03D3\u03D1\u03D3\u03D2\u03D4\xD1\u03D5\u03DD\x07\x8A\u03D6\u03DD\x07\x8B\u03D7\u03DD\x07\x8C\u03D8\u03DD\x07\x8F\u03D9\u03DD\x07\x8E\u03DA\u03DD\x07\x8D\u03DB\u03DD\x07\x90\u03DC\u03D5\u03DC\u03D6\u03DC\u03D7\u03DC\u03D8\u03DC\u03D9\u03DC\u03DA\u03DC\u03DB\u03DD\xD3\u03DE\u03DF\xCAf\u03DF\xD5\u03E0\u03E1\xCAf\u03E1\xD7\u03E2\u03E3 \u03E3\xD9\u03E4\u03E5 \u03E5\xDB\u03E6\u03E7 \u03E7\xDD\u03E8\u03EB\xC6d\u03E9\u03EB\xCAf\u03EA\u03E8\u03EA\u03E9\u03EB\xDF\u03EC\u03ED\bq\u03ED\u0440\xF8}\u03EE\u0440\xD0i\u03EF\u03F0\x07\x7F\u03F0\u0440\xE0q\u03F1\u03F2\x07H\u03F2\u0440\xE0q\u03F3\u03F4\x07,\u03F4\u03F5\x07l\u03F5\u03F6\xE0q\u03F6\u03F7\x07&\u03F7\u03F8\xDEp\u03F8\u03F9\x07m\u03F9\u0440\u03FA\u03FB\x07.\u03FB\u03FC\x07l\u03FC\u03FD\x072\u03FD\u03FE\xE0q\u03FE\u03FF\x07m\u03FF\u0440\u0400\u0401\x07S\u0401\u0403\x07w\u0402\u0400\u0402\u0403\u0403\u0404\u0404\u0405\xC4c\u0405\u0408\x07l\u0406\u0409\xE0q\u0407\u0409\x07\x80\u0408\u0406\u0408\u0407\u0408\u0409\u0409\u040A\u040A\u040B\x07m\u040B\u0440\u040C\u040D\xF8}\u040D\u040E\x07w\u040E\u040F\xC4c\u040F\u0411\x07l\u0410\u0412\xE0q\u0411\u0410\u0411\u0412\u0412\u0413\u0413\u0414\x07m\u0414\u0440\u0415\u0416\x07l\u0416\u0417\xE2r\u0417\u0418\x07m\u0418\u0440\u0419\u041A\xF8}\u041A\u041B\x07w\u041B\u041C\xD8m\u041C\u041E\x07l\u041D\u041F\xE8u\u041E\u041D\u041E\u041F\u041F\u0420\u0420\u0421\x07m\u0421\u0440\u0422\u0427\xD8m\u0423\u0425\x07t\u0424\u0426\xC6d\u0425\u0424\u0425\u0426\u0426\u0428\u0427\u0423\u0427\u0428\u0428\u042B\u0429\u042B\xDAn\u042A\u0422\u042A\u0429\u042B\u042C\u042C\u042E\x07l\u042D\u042F\xE8u\u042E\u042D\u042E\u042F\u042F\u0430\u0430\u0431\x07m\u0431\u0440\u0432\u0440\xE4s\u0433\u0434\xDCo\u0434\u0435\x07l\u0435\u043A\xE0q\u0436\u0437\x07v\u0437\u0439\xFC\x7F\u0438\u0436\u0439\u043C\u043A\u0438\u043A\u043B\u043B\u043D\u043C\u043A\u043D\u043E\x07m\u043E\u0440\u043F\u03EC\u043F\u03EE\u043F\u03EF\u043F\u03F1\u043F\u03F3\u043F\u03FA\u043F\u0402\u043F\u040C\u043F\u0415\u043F\u0419\u043F\u042A\u043F\u0432\u043F\u0433\u0440\u0474\u0441\u0442\f\u0442\u0443 \u0443\u0473\xE0q\u0444\u0445\f\u0445\u0446 \u0446\u0473\xE0q\u0447\u0448\f\u0448\u0449\x07Z\u0449\u0473\xE0q\u044A\u044B\f\u044B\u044C\xC8e\u044C\u044D\xE0q\u044D\u0473\u044E\u044F\f\u044F\u0450\x07%\u0450\u0473\xE0q\u0451\u0452\f";
40726
- MalloyParser._serializedATNSegment2 = "\r\u0452\u0453\x07M\u0453\u0473\xE0q\u0454\u0455\f\f\u0455\u0456\x07\x88\u0456\u0473\xE0q\r\u0457\u0458\f\u0458\u0473z>\u0459\u045A\f\u045A\u0473\xDAn\u045B\u045C\f\x1B\u045C\u045D\x07w\u045D\u0473\xDAn\u045E\u045F\f\u045F\u0460\x07r\u0460\u0473\xDEp\u0461\u0462\f\u0462\u0463\x07s\u0463\u0473\xDEp\u0464\u0465\f\u0465\u0466\x079\u0466\u0467\xE0q\u0467\u0468\xDAn\u0468\u0473\u0469\u046A\f\u046A\u046B\x07i\u046B\u0473\xE2r\u046C\u046D\f\u046D\u046E\x07\x83\u046E\u0473\xE2r\u046F\u0470\f\u0470\u0471\x07\x89\u0471\u0473\xE2r\u0472\u0441\u0472\u0444\u0472\u0447\u0472\u044A\u0472\u044E\u0472\u0451\u0472\u0454\u0472\u0457\u0472\u0459\u0472\u045B\u0472\u045E\u0472\u0461\u0472\u0464\u0472\u0469\u0472\u046C\u0472\u046F\u0473\u0476\u0474\u0472\u0474\u0475\u0475\xE1\u0476\u0474\u0477\u0479\x07l\u0478\u047A\xC8e\u0479\u0478\u0479\u047A\u047A\u047B\u047B\u047C\xE0q\u047C\u047D\x07m\u047D\u0483\u047E\u0480\xC8e\u047F\u047E\u047F\u0480\u0480\u0481\u0481\u0483\xE0q\u0482\u0477\u0482\u047F\u0483\xE3\u0484\u0486\xE6t\u0485\u0484\u0486\u0487\u0487\u0485\u0487\u0488\u0488\u048B\u0489\u048A\x073\u048A\u048C\xE0q\u048B\u0489\u048B\u048C\u048C\xE5\u048D\u048F\x07N\u048E\u0490\xE0q\u048F\u048E\u048F\u0490\u0490\u0491\u0491\u0492\x07^\u0492\u0493\xE2r\u0493\xE7\u0494\u0499\xE0q\u0495\u0496\x07v\u0496\u0498\xE0q\u0497\u0495\u0498\u049B\u0499\u0497\u0499\u049A\u049A\u049D\u049B\u0499\u049C\u049E\x07v\u049D\u049C\u049D\u049E\u049E\xE9\u049F\u04A6\xFC\x7F\u04A0\u04A2\x07v\u04A1\u04A0\u04A1\u04A2\u04A2\u04A3\u04A3\u04A5\xFC\x7F\u04A4\u04A1\u04A5\u04A8\u04A6\u04A4\u04A6\u04A7\u04A7\xEB\u04A8\u04A6\u04A9\u04B0\xF6|\u04AA\u04AC\x07v\u04AB\u04AA\u04AB\u04AC\u04AC\u04AD\u04AD\u04AF\xF6|\u04AE\u04AB\u04AF\u04B2\u04B0\u04AE\u04B0\u04B1\u04B1\u04B4\u04B2\u04B0\u04B3\u04B5\x07v\u04B4\u04B3\u04B4\u04B5\u04B5\xED\u04B6\u04B7\xF8}\u04B7\u04B8\x07w\u04B8\u04BA\u04B9\u04B6\u04B9\u04BA\u04BA\u04BB\u04BB\u04BD\x07\x80\u04BC\u04BE\xF0y\u04BD\u04BC\u04BD\u04BE\u04BE\xEF\u04BF\u04C3\x07p\u04C0\u04C1\x07\n\u04C1\u04C4\xEAv\u04C2\u04C4\x07v\u04C3\u04C0\u04C3\u04C2\u04C4\u04C5\u04C5\u04C3\u04C5\u04C6\u04C6\u04C7\u04C7\u04C8\x07q\u04C8\xF1\u04C9\u04CA\f\x07\u04CA\u04CC\xF8}\u04CB\u04CD\xF4{\u04CC\u04CB\u04CC\u04CD\u04CD\xF3\u04CE\u04CF\x07w\u04CF\u04D6\xDAn\u04D0\u04D1\x07w\u04D1\u04D2\xC4c\u04D2\u04D3\x07l\u04D3\u04D4\x07m\u04D4\u04D6\u04D5\u04CE\u04D5\u04D0\u04D6\xF5\u04D7\u04DB\xF2z\u04D8\u04DB\xEEx\u04D9\u04DBV,\u04DA\u04D7\u04DA\u04D8\u04DA\u04D9\u04DB\xF7\u04DC\u04E1\xFC\x7F\u04DD\u04DE\x07w\u04DE\u04E0\xFC\x7F\u04DF\u04DD\u04E0\u04E3\u04E1\u04DF\u04E1\u04E2\u04E2\xF9\u04E3\u04E1\u04E4\u04E5\xD8m\u04E5\xFB\u04E6\u04E7\xD8m\u04E7\xFD\u04E8\u04E9\xE0q\u04E9\u04EA\x07\u04EA\xFF\u04EB\u04EC\xD8m\u04EC\u0101\u04ED\u04EE\xD8m\u04EE\u0103\u04EF\u04F0\xCAf\u04F0\u0105\u04F1\u04F2\x07\x84\u04F2\u04F3\x07\x84\u04F3\u04F4\x07n\u04F4\u04F5\xCAf\u04F5\u04F6\x07o\u04F6\u0107\x87\u010A\u010C\u0119\u0124\u012C\u0140\u0148\u014E\u0159\u0163\u016C\u0173\u0178\u017D\u0183\u0188\u018C\u019D\u01AD\u01B5\u01B7\u01BB\u01C6\u01CB\u01CF\u01DF\u01E1\u01E6\u01FB\u01FE\u020A\u020F\u0213\u021B\u0220\u0224\u023E\u0246\u0250\u025B\u025D\u0267\u026E\u0276\u027B\u0280\u0282\u0289\u028E\u0292\u029E\u02A3\u02A6\u02AE\u02B3\u02B6\u02BA\u02BC\u02C2\u02C7\u02C9\u02D3\u02D7\u02DB\u02DF\u02EA\u02F1\u02F5\u02FF\u0304\u0308\u030F\u0328\u0332\u0337\u033B\u033F\u0347\u034C\u0350\u0356\u035D\u0371\u0375\u037C\u0381\u0385\u0389\u038C\u0395\u039A\u039F\u03A2\u03A6\u03AB\u03B2\u03C6\u03D3\u03DC\u03EA\u0402\u0408\u0411\u041E\u0425\u0427\u042A\u042E\u043A\u043F\u0472\u0474\u0479\u047F\u0482\u0487\u048B\u048F\u0499\u049D\u04A1\u04A6\u04AB\u04B0\u04B4\u04B9\u04BD\u04C3\u04C5\u04CC\u04D5\u04DA\u04E1";
40704
+ MalloyParser._serializedATNSegment0 = "\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x9D\u04F3     \x07 \x07\b \b \n \n\v \v\f \f\r \r             \x1B \x1B     ! !\" \"# #$ $% %& &' '( () )* *+ +, ,- -. ./ /0 01 12 23 34 45 56 67 78 89 9: :; ;< <= => >? ?@ @A AB BC CD DE EF FG GH HI IJ JK KL LM MN NO OP PQ QR RS ST TU UV VW WX XY YZ Z[ [\\ \\] ]^ ^_ _` `a ab bc cd de ef fg gh hi ij jk kl lm mn no op pq qr rs st tu uv vw wx xy yz z{ {| |} }~ ~\x7F \x7F\x80 \x80\x81 \x81\x82 \x82\x83 \x83\x84 \x84\x07\u010B\n\f\u010E\v\u011A\n\u0125\n\x07\x07\x07\u012B\n\x07\f\x07\x07\u012E\v\x07\b\b\b\b    \n\n\n\n\n\v\v\v\u013F\n\v\r\v\v\u0140\v\v\f\f\f\f\f\u0149\n\f\r\r\x07\r\u014D\n\r\f\r\r\u0150\v\r\r\r\u015A\n\x07\u0162\n\f\u0165\v\u016D\n\u0172\n\r\u0173\u0177\n\r\u0178\u017C\n\r\u017D\u0184\n\x07\u0187\n\f\u018A\v\u018D\n\u019E\n\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\x1B\u01AE\n\x1B\x07\u01B6\n\f\u01B9\v\u01BC\n   \u01C7\n  \x07 \u01CA\n \f  \u01CD\v   \u01D0\n !!!!!\"\"##$$%%%\x07%\u01E0\n%\f%%\u01E3\v%%%%\u01E7\n%&&&&&&&&&&&&&&&&&&\u01FA\n&\r&&\u01FB&&\u01FF\n&''''(((()))\u020B\n))\x07)\u020E\n)\f))\u0211\v)))\u0214\n)****+++\u021C\n++\x07+\u021F\n+\f++\u0222\v+++\u0225\n+,,,,,--..///0000000000000\u023F\n01112222\u0247\n2333333333\u0251\n3333333333\x073\u025C\n3\f33\u025F\v344444444\u0268\n4444\x074\u026D\n4\f44\u0270\v4555555\u0277\n56666\u027C\n6777\x077\u0281\n7\f77\u0284\v777888\u028A\n88\x078\u028D\n8\f88\u0290\v888\u0293\n899999::;\x07;\u029D\n;\f;;\u02A0\v;;;;\u02A4\n;;;\u02A7\n;;;;;\x07;\u02AD\n;\f;;\u02B0\v;;;;\u02B4\n;;;\u02B7\n;;;;\u02BB\n;;\u02BD\n;<<===\u02C3\n=>>>\x07>\u02C8\n>\f>>\u02CB\v>>>???\x07?\u02D2\n?\f??\u02D5\v???\u02D8\n?@@@\u02DC\n@@@@\u02E0\n@AAABBCCCCC\u02EB\nCDDD\x07D\u02F0\nD\fDD\u02F3\vDDD\u02F6\nDEEEFFFGGG\u0300\nGG\x07G\u0303\nG\fGG\u0306\vGGG\u0309\nGHHI\x07I\u030E\nI\fII\u0311\vIIIIIJJJJJJJJJJJJJJJJJJJ\u0329\nJKKLLLLMMM\u0333\nMM\x07M\u0336\nM\fMM\u0339\vMMM\u033C\nMNNN\u0340\nNOOOOPPP\u0348\nPP\x07P\u034B\nP\fPP\u034E\vPPP\u0351\nPQQQQQ\u0357\nQQQRRRRSSSSTTTTUUUU\x07U\u036B\nU\fUU\u036E\vUUU\u0371\nUVVVWWW\u0378\nWW\x07W\u037B\nW\fWW\u037E\vWWW\u0381\nWXXX\u0385\nXXX\u0388\nXYYYZZZZZ\u0391\nZ[[[[\u0396\n[\\\\\\\\\u039B\n\\\\\\\u039E\n\\]]]\u03A2\n]]\x07]\u03A5\n]\f]]\u03A8\v]^^^^^\u03AE\n^___```aabbccddeefff\u03C2\nfgghhiiiiiiii\u03CF\nijjjjjjjj\u03D8\njkkllmmnnooppp\u03E6\npqqqqqqqqqqqqqqqqqqqqqqq\u03FE\nqqqqqq\u0404\nqqqqqqqqq\u040D\nqqqqqqqqqqqqq\u041A\nqqqqqqq\u0421\nqq\u0423\nqqq\u0426\nqqqq\u042A\nqqqqqqqqq\x07q\u0434\nq\fqq\u0437\vqqqq\u043B\nqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\x07q\u046E\nq\fqq\u0471\vqrrr\u0475\nrrrrrr\u047B\nrrr\u047E\nrss\u0481\ns\rss\u0482sss\u0487\nsttt\u048B\nttttuuu\x07u\u0493\nu\fuu\u0496\vuuu\u0499\nuvvv\u049D\nvv\x07v\u04A0\nv\fvv\u04A3\vvwww\u04A7\nww\x07w\u04AA\nw\fww\u04AD\vwww\u04B0\nwxxxx\u04B5\nxxxx\u04B9\nxyyyyy\u04BF\ny\ryy\u04C0yyzzzz\u04C8\nz{{{{{{{{\u04D1\n{||||\u04D6\n|}}}\x07}\u04DB\n}\f}}\u04DE\v}~~\x7F\x7F\x80\x80\x80\x81\x81\x82\x82\x83\x83\x84\x84\x84\x84\x84\x84\x84df\xE0\x85\b\n\f \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\x80\x82\x84\x86\x88\x8A\x8C\x8E\x90\x92\x94\x96\x98\x9A\x9C\x9E\xA0\xA2\xA4\xA6\xA8\xAA\xAC\xAE\xB0\xB2\xB4\xB6\xB8\xBA\xBC\xBE\xC0\xC2\xC4\xC6\xC8\xCA\xCC\xCE\xD0\xD2\xD4\xD6\xD8\xDA\xDC\xDE\xE0\xE2\xE4\xE6\xE8\xEA\xEC\xEE\xF0\xF2\xF4\xF6\xF8\xFA\xFC\xFE\u0100\u0102\u0104\u0106qq\x99\x99\n\n\"\"88??CCPP''1177[[\x92\x92\x94\x94((..DETT\x07))//KKRRYYx}\x85\x86de\x93\x9477[[ff\x91\x91 00==FGOOQQ]]``$$55\x80\x80\x82\x82\x87\x87~\x7F\u0542\u010C\u0119\u011B\b\u0124\n\u0126\f\u012C\u012F\u0133\u0137\u013C\u0148\u014A\u0153\u0157\u015D \u0169\"\u016E$\u0171&\u0176(\u017B*\u017F,\u018E.\u01930\u01952\u01974\u01AD6\u01AF8\u01BB:\u01BD<\u01C2>\u01C4@\u01D1B\u01D6D\u01D8F\u01DAH\u01E6J\u01FEL\u0200N\u0204P\u0208R\u0215T\u0219V\u0226X\u022BZ\u022D\\\u022F^\u023E`\u0240b\u0246d\u0250f\u0267h\u0276j\u027Bl\u027Dn\u0287p\u0294r\u0299t\u02BCv\u02BEx\u02C2z\u02C4|\u02CE~\u02DF\x80\u02E1\x82\u02E4\x84\u02EA\x86\u02EC\x88\u02F7\x8A\u02FA\x8C\u02FD\x8E\u030A\x90\u030F\x92\u0328\x94\u032A\x96\u032C\x98\u0330\x9A\u033F\x9C\u0341\x9E\u0345\xA0\u0352\xA2\u035A\xA4\u035E\xA6\u0362\xA8\u0366\xAA\u0372\xAC\u0375\xAE\u0384\xB0\u0389\xB2\u0390\xB4\u0392\xB6\u039D\xB8\u039F\xBA\u03A9\xBC\u03AF\xBE\u03B2\xC0\u03B5\xC2\u03B7\xC4\u03B9\xC6\u03BB\xC8\u03BD\xCA\u03C1\xCC\u03C3\xCE\u03C5\xD0\u03CE\xD2\u03D7\xD4\u03D9\xD6\u03DB\xD8\u03DD\xDA\u03DF\xDC\u03E1\xDE\u03E5\xE0\u043A\xE2\u047D\xE4\u0480\xE6\u0488\xE8\u048F\xEA\u049A\xEC\u04A4\xEE\u04B4\xF0\u04BA\xF2\u04C4\xF4\u04D0\xF6\u04D5\xF8\u04D7\xFA\u04DF\xFC\u04E1\xFE\u04E3\u0100\u04E6\u0102\u04E8\u0104\u04EA\u0106\u04EC\u0108\u010B\u0109\u010B\x07\x84\u010A\u0108\u010A\u0109\u010B\u010E\u010C\u010A\u010C\u010D\u010D\u010F\u010E\u010C\u010F\u0110\x07\u0110\u0111\u011A\u0112\u011A\n\u0113\u011A\b\u0114\u011A\u0115\u011A \u0116\u011A$\u0117\u011A&\u0118\u011A\u0106\x84\u0119\u0111\u0119\u0112\u0119\u0113\u0119\u0114\u0119\u0115\u0119\u0116\u0119\u0117\u0119\u0118\u011A\u011B\u011C\f\x07\u011C\u011D\x07\u011D\u011E> \u011E\x07\u011F\u0125*\u0120\u0121\f\x07\u0121\u0122\x07\u0122\u0123\n\u0123\u0125\u0124\u011F\u0124\u0120\u0125 \u0126\u0127\f\x07\u0127\u0128d3\u0128\v\u0129\u012B\x07h\u012A\u0129\u012B\u012E\u012C\u012A\u012C\u012D\u012D\r\u012E\u012C\u012F\u0130\f\x07\u0130\u0131\x07@\u0131\u0132\f\x07\u0132\u0133\u0134\f\x07\u0134\u0135\x07\x1B\u0135\u0136\n\u0136\u0137\u0138\x07\u0138\u0139\u0102\x82\u0139\u013A\b\u013A\u013B\v\u013B\u013C\u013E\x07p\u013D\u013F\f\u013E\u013D\u013F\u0140\u0140\u013E\u0140\u0141\u0141\u0142\u0142\u0143\x07q\u0143\u0144\u0145\x07\x07\u0145\u0149\u0104\x83\u0146\u0147\x07\u0147\u0149\r\u0148\u0144\u0148\u0146\u0149\u014A\u014E\x07\x98\u014B\u014D\u014C\u014B\u014D\u0150\u014E\u014C\u014E\u014F\u014F\u0151\u0150\u014E\u0151\u0152\x07\x9D\u0152\u0153\u0154\x07\x9C\u0154\u0155d3\u0155\u0156 \u0156\x1B\u0157\u0159\x07>\u0158\u015A\u0159\u0158\u0159\u015A\u015A\u015B\u015B\u015C\"\u015C\u015D\u015E\x07p\u015E\u0163 \u015F\u0160\x07v\u0160\u0162 \u0161\u015F\u0162\u0165\u0163\u0161\u0163\u0164\u0164\u0166\u0165\u0163\u0166\u0167\x07q\u0167\u0168\x07:\u0168\u0169\u016C\xD8m\u016A\u016B\x07@\u016B\u016D\xD8m\u016C\u016A\u016C\u016D\u016D!\u016E\u016F\xCAf\u016F#\u0170\u0172\x07g\u0171\u0170\u0172\u0173\u0173\u0171\u0173\u0174\u0174%\u0175\u0177\x07h\u0176\u0175\u0177\u0178\u0178\u0176\u0178\u0179\u0179'\u017A\u017C\x07g\u017B\u017A\u017C\u017D\u017D\u017B\u017D\u017E\u017E)\u017F\u0180\f\x07\u0180\u0181\x07\u0181\u0188,\u0182\u0184\x07v\u0183\u0182\u0183\u0184\u0184\u0185\u0185\u0187,\u0186\u0183\u0187\u018A\u0188\u0186\u0188\u0189\u0189\u018C\u018A\u0188\u018B\u018D\x07v\u018C\u018B\u018C\u018D\u018D+\u018E\u018F\f\x07\u018F\u0190<\u0190\u0191\b\u0191\u0192d3\u0192-\u0193\u0194\x07~\u0194/\u0195\u0196\xD8m\u01961\u0197\u01986\u0198\u0199\x07w\u0199\u019A\x07U\u019A\u019D\x07l\u019B\u019E\r\u019C\u019E\xCCg\u019D\u019B\u019D\u019C\u019E\u019F\u019F\u01A0\x07m\u01A03\u01A1\u01A2\x07V\u01A2\u01A3\x07l\u01A3\u01A4\xD6l\u01A4\u01A5\x07m\u01A5\u01AE\u01A6\u01A76\u01A7\u01A8\x07w";
40705
+ MalloyParser._serializedATNSegment1 = "\u01A8\u01A9\x07V\u01A9\u01AA\x07l\u01AA\u01AB\xD4k\u01AB\u01AC\x07m\u01AC\u01AE\u01AD\u01A1\u01AD\u01A6\u01AE5\u01AF\u01B0\xD8m\u01B07\u01B1\u01BC:\u01B2\u01B7\x07p\u01B3\u01B6\x92J\u01B4\u01B6\x07\x84\u01B5\u01B3\u01B5\u01B4\u01B6\u01B9\u01B7\u01B5\u01B7\u01B8\u01B8\u01BA\u01B9\u01B7\u01BA\u01BC\x07q\u01BB\u01B1\u01BB\u01B2\u01BC9\u01BD\u01BE\x07p\u01BE\u01BF\x07\x89\u01BF\u01C0\xE0q\u01C0\u01C1\x07q\u01C1;\u01C2\u01C3\xD8m\u01C3=\u01C4\u01CB@!\u01C5\u01C7\x07v\u01C6\u01C5\u01C6\u01C7\u01C7\u01C8\u01C8\u01CA@!\u01C9\u01C6\u01CA\u01CD\u01CB\u01C9\u01CB\u01CC\u01CC\u01CF\u01CD\u01CB\u01CE\u01D0\x07v\u01CF\u01CE\u01CF\u01D0\u01D0?\u01D1\u01D2\f\x07\u01D2\u01D3D#\u01D3\u01D4\b\u01D4\u01D5B\"\u01D5A\u01D6\u01D7d3\u01D7C\u01D8\u01D9\xD8m\u01D9E\u01DA\u01DB\xD8m\u01DBG\u01DC\u01E1\x07p\u01DD\u01E0J&\u01DE\u01E0\x07\x84\u01DF\u01DD\u01DF\u01DE\u01E0\u01E3\u01E1\u01DF\u01E1\u01E2\u01E2\u01E4\u01E3\u01E1\u01E4\u01E7\x07q\u01E5\u01E7:\u01E6\u01DC\u01E6\u01E5\u01E7I\u01E8\u01FFN(\u01E9\u01FFL'\u01EA\u01FF\\/\u01EB\u01FF^0\u01EC\u01FF\x88E\u01ED\u01EE\x07\u01EE\u01FF\xFC\x7F\u01EF\u01F0\x07\u01F0\u01FFP)\u01F1\u01F2 \u01F2\u01FF\xEAv\u01F3\u01F4\f\x07\u01F4\u01F5 \u01F5\u01F6\x8CG\u01F6\u01FF\u01F7\u01FF\xBE`\u01F8\u01FA\x07h\u01F9\u01F8\u01FA\u01FB\u01FB\u01F9\u01FB\u01FC\u01FC\u01FF\u01FD\u01FF(\u01FE\u01E8\u01FE\u01E9\u01FE\u01EA\u01FE\u01EB\u01FE\u01EC\u01FE\u01ED\u01FE\u01EF\u01FE\u01F1\u01FE\u01F3\u01FE\u01F7\u01FE\u01F9\u01FE\u01FD\u01FFK\u0200\u0201\f\x07\u0201\u0202\x07\u0202\u0203T+\u0203M\u0204\u0205\f\x07\u0205\u0206\x07 \u0206\u0207T+\u0207O\u0208\u020FR*\u0209\u020B\x07v\u020A\u0209\u020A\u020B\u020B\u020C\u020C\u020ER*\u020D\u020A\u020E\u0211\u020F\u020D\u020F\u0210\u0210\u0213\u0211\u020F\u0212\u0214\x07v\u0213\u0212\u0213\u0214\u0214Q\u0215\u0216\xFC\x7F\u0216\u0217\b\u0217\u0218\xFC\x7F\u0218S\u0219\u0220V,\u021A\u021C\x07v\u021B\u021A\u021B\u021C\u021C\u021D\u021D\u021FV,\u021E\u021B\u021F\u0222\u0220\u021E\u0220\u0221\u0221\u0224\u0222\u0220\u0223\u0225\x07v\u0224\u0223\u0224\u0225\u0225U\u0226\u0227\f\x07\u0227\u0228X-\u0228\u0229\b\u0229\u022A\xE0q\u022AW\u022B\u022C\xD8m\u022CY\u022D\u022E\xD8m\u022E[\u022F\u0230\x07\b\u0230\u0231T+\u0231]\u0232\u0233\f\x07\u0233\u0234\x07\u0234\u0235n8\u0235\u023F\u0236\u0237\f\x07\u0237\u0238\x07\u0238\u0239n8\u0239\u023F\u023A\u023B\f\x07\u023B\u023C\x07\u023C\u023Dn8\u023D\u023F\u023E\u0232\u023E\u0236\u023E\u023A\u023F_\u0240\u0241\x07\v\u0241\u0242l7\u0242a\u0243\u0247^0\u0244\u0247\x88E\u0245\u0247\\/\u0246\u0243\u0246\u0244\u0246\u0245\u0247c\u0248\u0249\b3\u0249\u0251\xD8m\u024A\u024B\x07l\u024B\u024Cd3\u024C\u024D\x07m\u024D\u0251\u024E\u02514\x1B\u024F\u02512\u0250\u0248\u0250\u024A\u0250\u024E\u0250\u024F\u0251\u025D\u0252\u0253\f\x07\u0253\u0254\x07~\u0254\u025Cf4\u0255\u0256\f\u0256\u0257\x07j\u0257\u025Cf4\u0258\u0259\f\u0259\u025A\x076\u025A\u025CH%\u025B\u0252\u025B\u0255\u025B\u0258\u025C\u025F\u025D\u025B\u025D\u025E\u025Ee\u025F\u025D\u0260\u0261\b4\u0261\u0268\xF8}\u0262\u02688\u0263\u0264\x07l\u0264\u0265h5\u0265\u0266\x07m\u0266\u0268\u0267\u0260\u0267\u0262\u0267\u0263\u0268\u026E\u0269\u026A\f\u026A\u026B\x07~\u026B\u026Df4\u026C\u0269\u026D\u0270\u026E\u026C\u026E\u026F\u026Fg\u0270\u026E\u0271\u0277f4\u0272\u0273f4\u0273\u0274\x07j\u0274\u0275h5\u0275\u0277\u0276\u0271\u0276\u0272\u0277i\u0278\u027CN(\u0279\u027CL'\u027A\u027C^0\u027B\u0278\u027B\u0279\u027B\u027A\u027Ck\u027D\u0282\x07p\u027E\u0281j6\u027F\u0281\x07\x84\u0280\u027E\u0280\u027F\u0281\u0284\u0282\u0280\u0282\u0283\u0283\u0285\u0284\u0282\u0285\u0286\x07q\u0286m\u0287\u028Et;\u0288\u028A\x07v\u0289\u0288\u0289\u028A\u028A\u028B\u028B\u028Dt;\u028C\u0289\u028D\u0290\u028E\u028C\u028E\u028F\u028F\u0292\u0290\u028E\u0291\u0293\x07v\u0292\u0291\u0292\u0293\u0293o\u0294\u0295\f\x07\u0295\u0296\x07@\u0296\u0297\f\x07\u0297\u0298d3\u0298q\u0299\u029A \u029As\u029B\u029D\x07h\u029C\u029B\u029D\u02A0\u029E\u029C\u029E\u029F\u029F\u02A1\u02A0\u029E\u02A1\u02A3Z.\u02A2\u02A4p9\u02A3\u02A2\u02A3\u02A4\u02A4\u02A6\u02A5\u02A7r:\u02A6\u02A5\u02A6\u02A7\u02A7\u02A8\u02A8\u02A9\x07_\u02A9\u02AA\xE0q\u02AA\u02BD\u02AB\u02AD\x07h\u02AC\u02AB\u02AD\u02B0\u02AE\u02AC\u02AE\u02AF\u02AF\u02B1\u02B0\u02AE\u02B1\u02B3Z.\u02B2\u02B4p9\u02B3\u02B2\u02B3\u02B4\u02B4\u02BA\u02B5\u02B7r:\u02B6\u02B5\u02B6\u02B7\u02B7\u02B8\u02B8\u02B9\x07L\u02B9\u02BBv<\u02BA\u02B6\u02BA\u02BB\u02BB\u02BD\u02BC\u029E\u02BC\u02AE\u02BDu\u02BE\u02BF\xE0q\u02BFw\u02C0\u02C3\x88E\u02C1\u02C3\x8AF\u02C2\u02C0\u02C2\u02C1\u02C3y\u02C4\u02C9\x07p\u02C5\u02C8\x84C\u02C6\u02C8\x07\x84\u02C7\u02C5\u02C7\u02C6\u02C8\u02CB\u02C9\u02C7\u02C9\u02CA\u02CA\u02CC\u02CB\u02C9\u02CC\u02CD\x07q\u02CD{\u02CE\u02D3~@\u02CF\u02D0\x07v\u02D0\u02D2~@\u02D1\u02CF\u02D2\u02D5\u02D3\u02D1\u02D3\u02D4\u02D4\u02D7\u02D5\u02D3\u02D6\u02D8\x07v\u02D7\u02D6\u02D7\u02D8\u02D8}\u02D9\u02DB\xE0q\u02DA\u02DC \u02DB\u02DA\u02DB\u02DC\u02DC\u02E0\u02DD\u02E0\x07'\u02DE\u02E0\x071\u02DF\u02D9\u02DF\u02DD\u02DF\u02DE\u02E0\x7F\u02E1\u02E2\x07\u02E2\u02E3|?\u02E3\x81\u02E4\u02E5\xB0Y\u02E5\x83\u02E6\u02EB\x88E\u02E7\u02EB\xA8U\u02E8\u02EB\x80A\u02E9\u02EB\x82B\u02EA\u02E6\u02EA\u02E7\u02EA\u02E8\u02EA\u02E9\u02EB\x85\u02EC\u02F1\xE0q\u02ED\u02EE\x07v\u02EE\u02F0\xE0q\u02EF\u02ED\u02F0\u02F3\u02F1\u02EF\u02F1\u02F2\u02F2\u02F5\u02F3\u02F1\u02F4\u02F6\x07v\u02F5\u02F4\u02F5\u02F6\u02F6\x87\u02F7\u02F8\x07!\u02F8\u02F9\x86D\u02F9\x89\u02FA\u02FB\x07\r\u02FB\u02FC\x86D\u02FC\x8B\u02FD\u0304\x90I\u02FE\u0300\x07v\u02FF\u02FE\u02FF\u0300\u0300\u0301\u0301\u0303\x90I\u0302\u02FF\u0303\u0306\u0304\u0302\u0304\u0305\u0305\u0308\u0306\u0304\u0307\u0309\x07v\u0308\u0307\u0308\u0309\u0309\x8D\u030A\u030B\xD8m\u030B\x8F\u030C\u030E\x07h\u030D\u030C\u030E\u0311\u030F\u030D\u030F\u0310\u0310\u0312\u0311\u030F\u0312\u0313\x8EH\u0313\u0314\b\u0314\u0315h5\u0315\x91\u0316\u0329\x96L\u0317\u0329\\/\u0318\u0329\x94K\u0319\u0329`1\u031A\u0329\xA6T\u031B\u0329\xBA^\u031C\u0329\xA2R\u031D\u0329\xA4S\u031E\u0329\xB4[\u031F\u0329\xB0Y\u0320\u0329\xAAV\u0321\u0329\x88E\u0322\u0329\x8AF\u0323\u0329\x9CO\u0324\u0329\xBC_\u0325\u0329\xBE`\u0326\u0329\xC0a\u0327\u0329(\u0328\u0316\u0328\u0317\u0328\u0318\u0328\u0319\u0328\u031A\u0328\u031B\u0328\u031C\u0328\u031D\u0328\u031E\u0328\u031F\u0328\u0320\u0328\u0321\u0328\u0322\u0328\u0323\u0328\u0324\u0328\u0325\u0328\u0326\u0328\u0327\u0329\x93\u032A\u032B^0\u032B\x95\u032C\u032D\f\x07\u032D\u032E\x07\f\u032E\u032F\x98M\u032F\x97\u0330\u0337\x9AN\u0331\u0333\x07v\u0332\u0331\u0332\u0333\u0333\u0334\u0334\u0336\x9AN\u0335\u0332\u0336\u0339\u0337\u0335\u0337\u0338\u0338\u033B\u0339\u0337\u033A\u033C\x07v\u033B\u033A\u033B\u033C\u033C\x99\u033D\u0340\xF2z\u033E\u0340V,\u033F\u033D\u033F\u033E\u0340\x9B\u0341\u0342\f\x07\u0342\u0343\x07\u0343\u0344\x9EP\u0344\x9D\u0345\u034C\xA0Q\u0346\u0348\x07v\u0347\u0346\u0347\u0348\u0348\u0349\u0349\u034B\xA0Q\u034A\u0347\u034B\u034E\u034C\u034A\u034C\u034D\u034D\u0350\u034E\u034C\u034F\u0351\x07v\u0350\u034F\u0350\u0351\u0351\x9F\u0352\u0356\f\x07\u0353\u0354<\u0354\u0355\b\u0355\u0357\u0356\u0353\u0356\u0357\u0357\u0358\u0358\u0359h5\u0359\xA1\u035A\u035B\f\x07\u035B\u035C\x07\u035C\u035D\x98M\u035D\xA3\u035E\u035F\f\x07\u035F\u0360\x07\u0360\u0361\x98M\u0361\xA5\u0362\u0363\f\x07\u0363\u0364 \x07\u0364\u0365\xECw\u0365\xA7\u0366\u0367\x07\u0367\u036C\xD8m\u0368\u0369\x07v\u0369\u036B\xD8m\u036A\u0368\u036B\u036E\u036C\u036A\u036C\u036D\u036D\u0370\u036E\u036C\u036F\u0371\x07v\u0370\u036F\u0370\u0371\u0371\xA9\u0372\u0373\x07\u0373\u0374\xACW\u0374\xAB\u0375\u037C\xAEX\u0376\u0378\x07v\u0377\u0376\u0377\u0378\u0378\u0379\u0379\u037B\xAEX\u037A\u0377\u037B\u037E\u037C\u037A\u037C\u037D\u037D\u0380\u037E\u037C\u037F\u0381\x07v\u0380\u037F\u0380\u0381\u0381\xAD\u0382\u0385\x07\x94\u0383\u0385\xFC\x7F\u0384\u0382\u0384\u0383\u0385\u0387\u0386\u0388 \u0387\u0386\u0387\u0388\u0388\xAF\u0389\u038A\x07\u038A\u038B\x07\x94\u038B\xB1\u038C\u038D\x07*\u038D\u0391\xFC\x7F\u038E\u038F\x07*\u038F\u0391\xE0q\u0390\u038C\u0390\u038E\u0391\xB3\u0392\u0393\x07 \u0393\u0395\x07\x94\u0394\u0396\xB2Z\u0395\u0394\u0395\u0396\u0396\xB5\u0397\u039A\xF8}\u0398\u0399\x07w\u0399\u039B\x07\x80\u039A\u0398\u039A\u039B\u039B\u039E\u039C\u039E\x07\x80\u039D\u0397\u039D\u039C\u039E\xB7\u039F\u03A6\xB6\\\u03A0\u03A2\x07v\u03A1\u03A0\u03A1\u03A2\u03A2\u03A3\u03A3\u03A5\xB6\\\u03A4\u03A1\u03A5\u03A8\u03A6\u03A4\u03A6\u03A7\u03A7\xB9\u03A8\u03A6\u03A9\u03AA\x07\u03AA\u03AD\xB8]\u03AB\u03AC\x07*\u03AC\u03AE\xFC\x7F\u03AD\u03AB\u03AD\u03AE\u03AE\xBB\u03AF\u03B0\x07\u03B0\u03B1\xC2b\u03B1\xBD\u03B2\u03B3\x07#\u03B3\u03B4\xCAf\u03B4\xBF\u03B5\u03B6\x07h\u03B6\xC1\u03B7\u03B8 \b\u03B8\xC3\u03B9\u03BA \u03BA\xC5\u03BB\u03BC \n\u03BC\xC7\u03BD\u03BE \v\u03BE\xC9\u03BF\u03C2\xCCg\u03C0\u03C2\r\u03C1\u03BF\u03C1\u03C0\u03C2\xCB\u03C3\u03C4 \f\u03C4\xCD\u03C5\u03C6 \r\u03C6\xCF\u03C7\u03CF\xCAf\u03C8\u03CF\xCEh\u03C9\u03CF\xD2j\u03CA\u03CF\x07J\u03CB\u03CF \u03CC\u03CF\x07c\u03CD\u03CF\x07I\u03CE\u03C7\u03CE\u03C8\u03CE\u03C9\u03CE\u03CA\u03CE\u03CB\u03CE\u03CC\u03CE\u03CD\u03CF\xD1\u03D0\u03D8\x07\x8A\u03D1\u03D8\x07\x8B\u03D2\u03D8\x07\x8C\u03D3\u03D8\x07\x8F\u03D4\u03D8\x07\x8E\u03D5\u03D8\x07\x8D\u03D6\u03D8\x07\x90\u03D7\u03D0\u03D7\u03D1\u03D7\u03D2\u03D7\u03D3\u03D7\u03D4\u03D7\u03D5\u03D7\u03D6\u03D8\xD3\u03D9\u03DA\xCAf\u03DA\xD5\u03DB\u03DC\xCAf\u03DC\xD7\u03DD\u03DE \u03DE\xD9\u03DF\u03E0 \u03E0\xDB\u03E1\u03E2 \u03E2\xDD\u03E3\u03E6\xC6d\u03E4\u03E6\xCAf\u03E5\u03E3\u03E5\u03E4\u03E6\xDF\u03E7\u03E8\bq\u03E8\u043B\xF8}\u03E9\u043B\xD0i\u03EA\u03EB\x07\x7F\u03EB\u043B\xE0q\u03EC\u03ED\x07H\u03ED\u043B\xE0q\u03EE\u03EF\x07,\u03EF\u03F0\x07l\u03F0\u03F1\xE0q\u03F1\u03F2\x07&\u03F2\u03F3\xDEp\u03F3\u03F4\x07m\u03F4\u043B\u03F5\u03F6\x07.\u03F6\u03F7\x07l\u03F7\u03F8\x072\u03F8\u03F9\xE0q\u03F9\u03FA\x07m\u03FA\u043B\u03FB\u03FC\x07S\u03FC\u03FE\x07w\u03FD\u03FB\u03FD\u03FE\u03FE\u03FF\u03FF\u0400\xC4c\u0400\u0403\x07l\u0401\u0404\xE0q\u0402\u0404\x07\x80\u0403\u0401\u0403\u0402\u0403\u0404\u0404\u0405\u0405\u0406\x07m\u0406\u043B\u0407\u0408\xF8}\u0408\u0409\x07w\u0409\u040A\xC4c\u040A\u040C\x07l\u040B\u040D\xE0q\u040C\u040B\u040C\u040D\u040D\u040E\u040E\u040F\x07m\u040F\u043B\u0410\u0411\x07l\u0411\u0412\xE2r\u0412\u0413\x07m\u0413\u043B\u0414\u0415\xF8}\u0415\u0416\x07w\u0416\u0417\xD8m\u0417\u0419\x07l\u0418\u041A\xE8u\u0419\u0418\u0419\u041A\u041A\u041B\u041B\u041C\x07m\u041C\u043B\u041D\u0422\xD8m\u041E\u0420\x07t\u041F\u0421\xC6d\u0420\u041F\u0420\u0421\u0421\u0423\u0422\u041E\u0422\u0423\u0423\u0426\u0424\u0426\xDAn\u0425\u041D\u0425\u0424\u0426\u0427\u0427\u0429\x07l\u0428\u042A\xE8u\u0429\u0428\u0429\u042A\u042A\u042B\u042B\u042C\x07m\u042C\u043B\u042D\u043B\xE4s\u042E\u042F\xDCo\u042F\u0430\x07l\u0430\u0435\xE0q\u0431\u0432\x07v\u0432\u0434\xFC\x7F\u0433\u0431\u0434\u0437\u0435\u0433\u0435\u0436\u0436\u0438\u0437\u0435\u0438\u0439\x07m\u0439\u043B\u043A\u03E7\u043A\u03E9\u043A\u03EA\u043A\u03EC\u043A\u03EE\u043A\u03F5\u043A\u03FD\u043A\u0407\u043A\u0410\u043A\u0414\u043A\u0425\u043A\u042D\u043A\u042E\u043B\u046F\u043C\u043D\f\u043D\u043E \u043E\u046E\xE0q\u043F\u0440\f\u0440\u0441 \u0441\u046E\xE0q\u0442\u0443\f\u0443\u0444\x07Z\u0444\u046E\xE0q\u0445\u0446\f\u0446\u0447\xC8e\u0447\u0448\xE0q\u0448\u046E\u0449\u044A\f\u044A\u044B\x07%\u044B\u046E\xE0q\u044C\u044D\f\r\u044D\u044E\x07M\u044E\u046E\xE0q\u044F\u0450\f\f\u0450\u0451\x07\x88\u0451\u046E\xE0q\r\u0452\u0453\f\u0453\u046Ez>\u0454\u0455";
40706
+ MalloyParser._serializedATNSegment2 = "\f\u0455\u046E\xDAn\u0456\u0457\f\x1B\u0457\u0458\x07w\u0458\u046E\xDAn\u0459\u045A\f\u045A\u045B\x07r\u045B\u046E\xDEp\u045C\u045D\f\u045D\u045E\x07s\u045E\u046E\xDEp\u045F\u0460\f\u0460\u0461\x079\u0461\u0462\xE0q\u0462\u0463\xDAn\u0463\u046E\u0464\u0465\f\u0465\u0466\x07i\u0466\u046E\xE2r\u0467\u0468\f\u0468\u0469\x07\x83\u0469\u046E\xE2r\u046A\u046B\f\u046B\u046C\x07\x89\u046C\u046E\xE2r\u046D\u043C\u046D\u043F\u046D\u0442\u046D\u0445\u046D\u0449\u046D\u044C\u046D\u044F\u046D\u0452\u046D\u0454\u046D\u0456\u046D\u0459\u046D\u045C\u046D\u045F\u046D\u0464\u046D\u0467\u046D\u046A\u046E\u0471\u046F\u046D\u046F\u0470\u0470\xE1\u0471\u046F\u0472\u0474\x07l\u0473\u0475\xC8e\u0474\u0473\u0474\u0475\u0475\u0476\u0476\u0477\xE0q\u0477\u0478\x07m\u0478\u047E\u0479\u047B\xC8e\u047A\u0479\u047A\u047B\u047B\u047C\u047C\u047E\xE0q\u047D\u0472\u047D\u047A\u047E\xE3\u047F\u0481\xE6t\u0480\u047F\u0481\u0482\u0482\u0480\u0482\u0483\u0483\u0486\u0484\u0485\x073\u0485\u0487\xE0q\u0486\u0484\u0486\u0487\u0487\xE5\u0488\u048A\x07N\u0489\u048B\xE0q\u048A\u0489\u048A\u048B\u048B\u048C\u048C\u048D\x07^\u048D\u048E\xE2r\u048E\xE7\u048F\u0494\xE0q\u0490\u0491\x07v\u0491\u0493\xE0q\u0492\u0490\u0493\u0496\u0494\u0492\u0494\u0495\u0495\u0498\u0496\u0494\u0497\u0499\x07v\u0498\u0497\u0498\u0499\u0499\xE9\u049A\u04A1\xFC\x7F\u049B\u049D\x07v\u049C\u049B\u049C\u049D\u049D\u049E\u049E\u04A0\xFC\x7F\u049F\u049C\u04A0\u04A3\u04A1\u049F\u04A1\u04A2\u04A2\xEB\u04A3\u04A1\u04A4\u04AB\xF6|\u04A5\u04A7\x07v\u04A6\u04A5\u04A6\u04A7\u04A7\u04A8\u04A8\u04AA\xF6|\u04A9\u04A6\u04AA\u04AD\u04AB\u04A9\u04AB\u04AC\u04AC\u04AF\u04AD\u04AB\u04AE\u04B0\x07v\u04AF\u04AE\u04AF\u04B0\u04B0\xED\u04B1\u04B2\xF8}\u04B2\u04B3\x07w\u04B3\u04B5\u04B4\u04B1\u04B4\u04B5\u04B5\u04B6\u04B6\u04B8\x07\x80\u04B7\u04B9\xF0y\u04B8\u04B7\u04B8\u04B9\u04B9\xEF\u04BA\u04BE\x07p\u04BB\u04BC\x07\n\u04BC\u04BF\xEAv\u04BD\u04BF\x07v\u04BE\u04BB\u04BE\u04BD\u04BF\u04C0\u04C0\u04BE\u04C0\u04C1\u04C1\u04C2\u04C2\u04C3\x07q\u04C3\xF1\u04C4\u04C5\f\x07\u04C5\u04C7\xF8}\u04C6\u04C8\xF4{\u04C7\u04C6\u04C7\u04C8\u04C8\xF3\u04C9\u04CA\x07w\u04CA\u04D1\xDAn\u04CB\u04CC\x07w\u04CC\u04CD\xC4c\u04CD\u04CE\x07l\u04CE\u04CF\x07m\u04CF\u04D1\u04D0\u04C9\u04D0\u04CB\u04D1\xF5\u04D2\u04D6\xF2z\u04D3\u04D6\xEEx\u04D4\u04D6V,\u04D5\u04D2\u04D5\u04D3\u04D5\u04D4\u04D6\xF7\u04D7\u04DC\xFC\x7F\u04D8\u04D9\x07w\u04D9\u04DB\xFC\x7F\u04DA\u04D8\u04DB\u04DE\u04DC\u04DA\u04DC\u04DD\u04DD\xF9\u04DE\u04DC\u04DF\u04E0\xD8m\u04E0\xFB\u04E1\u04E2\xD8m\u04E2\xFD\u04E3\u04E4\xE0q\u04E4\u04E5\x07\u04E5\xFF\u04E6\u04E7\xD8m\u04E7\u0101\u04E8\u04E9\xD8m\u04E9\u0103\u04EA\u04EB\xCAf\u04EB\u0105\u04EC\u04ED\x07\x84\u04ED\u04EE\x07\x84\u04EE\u04EF\x07n\u04EF\u04F0\xCAf\u04F0\u04F1\x07o\u04F1\u0107\x86\u010A\u010C\u0119\u0124\u012C\u0140\u0148\u014E\u0159\u0163\u016C\u0173\u0178\u017D\u0183\u0188\u018C\u019D\u01AD\u01B5\u01B7\u01BB\u01C6\u01CB\u01CF\u01DF\u01E1\u01E6\u01FB\u01FE\u020A\u020F\u0213\u021B\u0220\u0224\u023E\u0246\u0250\u025B\u025D\u0267\u026E\u0276\u027B\u0280\u0282\u0289\u028E\u0292\u029E\u02A3\u02A6\u02AE\u02B3\u02B6\u02BA\u02BC\u02C2\u02C7\u02C9\u02D3\u02D7\u02DB\u02DF\u02EA\u02F1\u02F5\u02FF\u0304\u0308\u030F\u0328\u0332\u0337\u033B\u033F\u0347\u034C\u0350\u0356\u036C\u0370\u0377\u037C\u0380\u0384\u0387\u0390\u0395\u039A\u039D\u03A1\u03A6\u03AD\u03C1\u03CE\u03D7\u03E5\u03FD\u0403\u040C\u0419\u0420\u0422\u0425\u0429\u0435\u043A\u046D\u046F\u0474\u047A\u047D\u0482\u0486\u048A\u0494\u0498\u049C\u04A1\u04A6\u04AB\u04AF\u04B4\u04B8\u04BE\u04C0\u04C7\u04D0\u04D5\u04DC";
40727
40707
  MalloyParser._serializedATN = Utils.join([
40728
40708
  MalloyParser._serializedATNSegment0,
40729
40709
  MalloyParser._serializedATNSegment1,
@@ -44922,57 +44902,18 @@ ${struct.dialect.sqlFinalStage("__stage0", [
44922
44902
  }
44923
44903
  };
44924
44904
  exports.NestEntryContext = NestEntryContext;
44925
- var NestExistingContext = class extends NestEntryContext {
44905
+ var NestDefContext = class extends NestEntryContext {
44926
44906
  tags() {
44927
44907
  return this.getRuleContext(0, TagsContext);
44928
44908
  }
44929
- fieldPath() {
44930
- return this.getRuleContext(0, FieldPathContext);
44931
- }
44932
- PLUS() {
44933
- return this.tryGetToken(MalloyParser.PLUS, 0);
44934
- }
44935
44909
  vExpr() {
44936
- return this.tryGetRuleContext(0, VExprContext);
44937
- }
44938
- constructor(ctx) {
44939
- super(ctx.parent, ctx.invokingState);
44940
- this.copyFrom(ctx);
44941
- }
44942
- // @Override
44943
- enterRule(listener2) {
44944
- if (listener2.enterNestExisting) {
44945
- listener2.enterNestExisting(this);
44946
- }
44947
- }
44948
- // @Override
44949
- exitRule(listener2) {
44950
- if (listener2.exitNestExisting) {
44951
- listener2.exitNestExisting(this);
44952
- }
44953
- }
44954
- // @Override
44955
- accept(visitor) {
44956
- if (visitor.visitNestExisting) {
44957
- return visitor.visitNestExisting(this);
44958
- } else {
44959
- return visitor.visitChildren(this);
44960
- }
44961
- }
44962
- };
44963
- exports.NestExistingContext = NestExistingContext;
44964
- var NestDefContext = class extends NestEntryContext {
44965
- tags() {
44966
- return this.getRuleContext(0, TagsContext);
44910
+ return this.getRuleContext(0, VExprContext);
44967
44911
  }
44968
44912
  queryName() {
44969
- return this.getRuleContext(0, QueryNameContext);
44913
+ return this.tryGetRuleContext(0, QueryNameContext);
44970
44914
  }
44971
44915
  isDefine() {
44972
- return this.getRuleContext(0, IsDefineContext);
44973
- }
44974
- vExpr() {
44975
- return this.getRuleContext(0, VExprContext);
44916
+ return this.tryGetRuleContext(0, IsDefineContext);
44976
44917
  }
44977
44918
  constructor(ctx) {
44978
44919
  super(ctx.parent, ctx.invokingState);
@@ -63866,6 +63807,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
63866
63807
  this.log("A multi-segment view cannot be used as a refinement");
63867
63808
  return [];
63868
63809
  }
63810
+ getImplicitName() {
63811
+ return this.operation.getImplicitName();
63812
+ }
63869
63813
  };
63870
63814
  exports.ViewArrow = ViewArrow;
63871
63815
  }
@@ -63978,6 +63922,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
63978
63922
  }
63979
63923
  return (0, refine_utils_1.refine)(this, pipeline, refineFrom[0]);
63980
63924
  }
63925
+ getImplicitName() {
63926
+ return this.base.getImplicitName();
63927
+ }
63981
63928
  };
63982
63929
  exports.ViewRefine = ViewRefine;
63983
63930
  }
@@ -64095,6 +64042,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
64095
64042
  }
64096
64043
  return pipeline;
64097
64044
  }
64045
+ getImplicitName() {
64046
+ return this.reference.nameString;
64047
+ }
64098
64048
  };
64099
64049
  exports.ReferenceView = ReferenceView;
64100
64050
  }
@@ -64837,6 +64787,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
64837
64787
  }
64838
64788
  return pipeline;
64839
64789
  }
64790
+ getImplicitName() {
64791
+ return void 0;
64792
+ }
64840
64793
  };
64841
64794
  exports.QOpDescView = QOpDescView;
64842
64795
  }
@@ -66397,7 +66350,7 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
66397
66350
  if (aggFunc === "sum") {
66398
66351
  expr2 = new ast.ExprSum(void 0, ref3);
66399
66352
  } else {
66400
- this.contextError(agg, "'${aggFunc}' is not legal in a reference-only aggregation");
66353
+ this.contextError(agg, `\`${aggFunc}\` is not legal in a reference-only aggregation`);
66401
66354
  return ref3;
66402
66355
  }
66403
66356
  }
@@ -66579,27 +66532,23 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
66579
66532
  visitNestedQueryList(pcx) {
66580
66533
  return new ast.Nests(this.only(pcx.nestEntry().map((cx) => this.visit(cx)), (x6) => x6 instanceof ast.NestFieldDeclaration && x6, "query"));
66581
66534
  }
66582
- visitNestExisting(pcx) {
66583
- const nameCx = pcx.fieldPath();
66584
- const name = this.getFieldPath(nameCx, ast.ViewOrScalarFieldReference);
66585
- const referenceView = this.astAt(new ast.ReferenceView(name), nameCx);
66586
- const refineCx = pcx.vExpr();
66587
- const notes = this.getNotes(pcx.tags());
66588
- if (refineCx) {
66589
- const nestRefine = new ast.NestFieldDeclaration(name.nameString, new ast.ViewRefine(referenceView, this.getVExpr(refineCx)));
66590
- nestRefine.extendNote({ notes });
66591
- return this.astAt(nestRefine, pcx);
66592
- }
66593
- const nestReference = new ast.NestFieldDeclaration(name.nameString, referenceView);
66594
- nestReference.extendNote({ notes });
66595
- return this.astAt(nestReference, pcx);
66596
- }
66597
66535
  visitNestDef(pcx) {
66598
- const name = (0, parse_utils_1.getId)(pcx.queryName());
66536
+ const nameCx = pcx.queryName();
66537
+ let name;
66599
66538
  const vExpr = this.getVExpr(pcx.vExpr());
66539
+ if (nameCx) {
66540
+ name = (0, parse_utils_1.getId)(nameCx);
66541
+ } else {
66542
+ const implicitName = vExpr.getImplicitName();
66543
+ if (implicitName === void 0) {
66544
+ this.contextError(pcx, "`nest:` view requires a name (add `nest_name is ...`)");
66545
+ }
66546
+ name = implicitName !== null && implicitName !== void 0 ? implicitName : "__unnamed__";
66547
+ }
66600
66548
  const nestDef = new ast.NestFieldDeclaration(name, vExpr);
66549
+ const isDefineCx = pcx.isDefine();
66601
66550
  nestDef.extendNote({
66602
- notes: this.getNotes(pcx.tags()).concat(this.getIsNotes(pcx.isDefine()))
66551
+ notes: this.getNotes(pcx.tags()).concat(isDefineCx ? this.getIsNotes(isDefineCx) : [])
66603
66552
  });
66604
66553
  return this.astAt(nestDef, pcx);
66605
66554
  }
@@ -67198,42 +67147,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
67198
67147
  var require_document_symbol_walker = __commonJS({
67199
67148
  "../malloy/dist/lang/parse-tree-walkers/document-symbol-walker.js"(exports) {
67200
67149
  "use strict";
67201
- var __createBinding = exports && exports.__createBinding || (Object.create ? function(o5, m4, k2, k22) {
67202
- if (k22 === void 0)
67203
- k22 = k2;
67204
- var desc = Object.getOwnPropertyDescriptor(m4, k2);
67205
- if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) {
67206
- desc = { enumerable: true, get: function() {
67207
- return m4[k2];
67208
- } };
67209
- }
67210
- Object.defineProperty(o5, k22, desc);
67211
- } : function(o5, m4, k2, k22) {
67212
- if (k22 === void 0)
67213
- k22 = k2;
67214
- o5[k22] = m4[k2];
67215
- });
67216
- var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o5, v6) {
67217
- Object.defineProperty(o5, "default", { enumerable: true, value: v6 });
67218
- } : function(o5, v6) {
67219
- o5["default"] = v6;
67220
- });
67221
- var __importStar = exports && exports.__importStar || function(mod) {
67222
- if (mod && mod.__esModule)
67223
- return mod;
67224
- var result = {};
67225
- if (mod != null) {
67226
- for (var k2 in mod)
67227
- if (k2 !== "default" && Object.prototype.hasOwnProperty.call(mod, k2))
67228
- __createBinding(result, mod, k2);
67229
- }
67230
- __setModuleDefault(result, mod);
67231
- return result;
67232
- };
67233
67150
  Object.defineProperty(exports, "__esModule", { value: true });
67234
67151
  exports.walkForDocumentSymbols = void 0;
67235
67152
  var ParseTreeWalker_1 = require_ParseTreeWalker();
67236
- var parser3 = __importStar(require_MalloyParser());
67237
67153
  var parse_utils_1 = require_parse_utils();
67238
67154
  var DocumentSymbolWalker = class {
67239
67155
  constructor(translator, tokens, scopes, symbols4) {
@@ -67333,10 +67249,48 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
67333
67249
  exitExploreQueryDef(_pcx) {
67334
67250
  this.popScope();
67335
67251
  }
67252
+ getNestDefName(pcx) {
67253
+ const nameCx = pcx.queryName();
67254
+ if (nameCx) {
67255
+ return nameCx.id().text;
67256
+ }
67257
+ let result = void 0;
67258
+ let done = false;
67259
+ const vExprListen = {
67260
+ enterVArrow(pcx2) {
67261
+ pcx2.vExpr().enterRule(vExprListen);
67262
+ },
67263
+ enterVSeg(pcx2) {
67264
+ pcx2.segExpr().enterRule(segExprListen);
67265
+ }
67266
+ };
67267
+ const segExprListen = {
67268
+ enterSegField(pcx2) {
67269
+ const names = pcx2.fieldPath().fieldName();
67270
+ if (!done)
67271
+ result !== null && result !== void 0 ? result : result = names[names.length - 1].id().text;
67272
+ },
67273
+ enterSegParen(pcx2) {
67274
+ pcx2.vExpr().enterRule(vExprListen);
67275
+ },
67276
+ enterSegRefine(pcx2) {
67277
+ pcx2._lhs.enterRule(segExprListen);
67278
+ },
67279
+ enterSegOps() {
67280
+ result = void 0;
67281
+ done = true;
67282
+ }
67283
+ };
67284
+ pcx.vExpr().enterRule(vExprListen);
67285
+ return result;
67286
+ }
67336
67287
  handleNestEntry(pcx) {
67288
+ const name = this.getNestDefName(pcx);
67289
+ if (name === void 0)
67290
+ return;
67337
67291
  const symbol2 = {
67338
67292
  range: this.translator.rangeFromContext(pcx),
67339
- name: pcx instanceof parser3.NestExistingContext ? pcx.fieldPath().text : pcx.queryName().id().text,
67293
+ name,
67340
67294
  type: "query",
67341
67295
  children: []
67342
67296
  };
@@ -67346,12 +67300,11 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
67346
67300
  }
67347
67301
  return symbol2;
67348
67302
  }
67349
- enterNestExisting(pcx) {
67350
- this.handleNestEntry(pcx);
67351
- }
67352
67303
  enterNestDef(pcx) {
67353
67304
  const symbol2 = this.handleNestEntry(pcx);
67354
- this.scopes.push(symbol2);
67305
+ if (symbol2) {
67306
+ this.scopes.push(symbol2);
67307
+ }
67355
67308
  }
67356
67309
  exitNestDef(_pcx) {
67357
67310
  this.popScope();