@malloydata/render 0.0.123-dev240205152128 → 0.0.123-dev240205203117

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.
@@ -1355,6 +1355,9 @@
1355
1355
  case "function_parameter":
1356
1356
  case "parameter":
1357
1357
  case "outputField":
1358
+ case "source-reference":
1359
+ case "aggregate_limit":
1360
+ case "aggregate_order_by":
1358
1361
  return fragment2;
1359
1362
  case "sql-string":
1360
1363
  return {
@@ -1461,6 +1464,9 @@
1461
1464
  case "function_parameter":
1462
1465
  case "parameter":
1463
1466
  case "outputField":
1467
+ case "source-reference":
1468
+ case "aggregate_limit":
1469
+ case "aggregate_order_by":
1464
1470
  return fragment;
1465
1471
  case "function_call":
1466
1472
  return {
@@ -1534,7 +1540,7 @@
1534
1540
  }
1535
1541
  }
1536
1542
  default:
1537
- throw new Error("unexpected");
1543
+ throw new Error(`unexpected fragment type ${fragment.type}`);
1538
1544
  }
1539
1545
  });
1540
1546
  }
@@ -33422,9 +33428,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
33422
33428
  Object.defineProperty(exports, "__esModule", { value: true });
33423
33429
  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
33430
  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;
33431
+ 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;
33432
+ 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;
33433
+ exports.ExperimentalStatementForTestingContext = exports.ConnectionNameContext = exports.NameSQLBlockContext = exports.SqlExploreNameRefContext = exports.JustExprContext = exports.FieldNameContext = exports.JoinNameContext = exports.FieldPathContext = exports.CollectionMemberContext = void 0;
33428
33434
  var ATN_1 = require_ATN();
33429
33435
  var ATNDeserializer_1 = require_ATNDeserializer();
33430
33436
  var FailedPredicateException_1 = require_FailedPredicateException();
@@ -37276,46 +37282,26 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37276
37282
  nestEntry() {
37277
37283
  let _localctx = new NestEntryContext(this._ctx, this.state);
37278
37284
  this.enterRule(_localctx, 158, _MalloyParser.RULE_nestEntry);
37279
- let _la;
37280
37285
  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
- }
37286
+ _localctx = new NestDefContext(_localctx);
37287
+ this.enterOuterAlt(_localctx, 1);
37288
+ {
37289
+ this.state = 848;
37290
+ this.tags();
37291
+ this.state = 852;
37292
+ this._errHandler.sync(this);
37293
+ switch (this.interpreter.adaptivePredict(this._input, 80, this._ctx)) {
37294
+ case 1:
37295
+ {
37296
+ this.state = 849;
37297
+ this.queryName();
37298
+ this.state = 850;
37299
+ this.isDefine();
37302
37300
  }
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;
37301
+ break;
37302
+ }
37303
+ this.state = 854;
37304
+ this.vExpr();
37319
37305
  }
37320
37306
  } catch (re2) {
37321
37307
  if (re2 instanceof RecognitionException_1.RecognitionException) {
@@ -37337,11 +37323,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37337
37323
  try {
37338
37324
  this.enterOuterAlt(_localctx, 1);
37339
37325
  {
37340
- this.state = 861;
37326
+ this.state = 856;
37341
37327
  this.tags();
37342
- this.state = 862;
37328
+ this.state = 857;
37343
37329
  this.match(_MalloyParser.AGGREGATE);
37344
- this.state = 863;
37330
+ this.state = 858;
37345
37331
  this.queryFieldList();
37346
37332
  }
37347
37333
  } catch (re2) {
@@ -37364,11 +37350,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37364
37350
  try {
37365
37351
  this.enterOuterAlt(_localctx, 1);
37366
37352
  {
37367
- this.state = 865;
37353
+ this.state = 860;
37368
37354
  this.tags();
37369
- this.state = 866;
37355
+ this.state = 861;
37370
37356
  this.match(_MalloyParser.CALCULATE);
37371
- this.state = 867;
37357
+ this.state = 862;
37372
37358
  this.queryFieldList();
37373
37359
  }
37374
37360
  } catch (re2) {
@@ -37392,9 +37378,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37392
37378
  try {
37393
37379
  this.enterOuterAlt(_localctx, 1);
37394
37380
  {
37395
- this.state = 869;
37381
+ this.state = 864;
37396
37382
  this.tags();
37397
- this.state = 870;
37383
+ this.state = 865;
37398
37384
  _la = this._input.LA(1);
37399
37385
  if (!(_la === _MalloyParser.PROJECT || _la === _MalloyParser.SELECT)) {
37400
37386
  this._errHandler.recoverInline(this);
@@ -37405,7 +37391,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37405
37391
  this._errHandler.reportMatch(this);
37406
37392
  this.consume();
37407
37393
  }
37408
- this.state = 871;
37394
+ this.state = 866;
37409
37395
  this.fieldCollection();
37410
37396
  }
37411
37397
  } catch (re2) {
@@ -37430,34 +37416,34 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37430
37416
  let _alt;
37431
37417
  this.enterOuterAlt(_localctx, 1);
37432
37418
  {
37433
- this.state = 873;
37419
+ this.state = 868;
37434
37420
  this.match(_MalloyParser.PARTITION_BY);
37435
- this.state = 874;
37421
+ this.state = 869;
37436
37422
  this.id();
37437
- this.state = 879;
37423
+ this.state = 874;
37438
37424
  this._errHandler.sync(this);
37439
- _alt = this.interpreter.adaptivePredict(this._input, 82, this._ctx);
37425
+ _alt = this.interpreter.adaptivePredict(this._input, 81, this._ctx);
37440
37426
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
37441
37427
  if (_alt === 1) {
37442
37428
  {
37443
37429
  {
37444
- this.state = 875;
37430
+ this.state = 870;
37445
37431
  this.match(_MalloyParser.COMMA);
37446
- this.state = 876;
37432
+ this.state = 871;
37447
37433
  this.id();
37448
37434
  }
37449
37435
  }
37450
37436
  }
37451
- this.state = 881;
37437
+ this.state = 876;
37452
37438
  this._errHandler.sync(this);
37453
- _alt = this.interpreter.adaptivePredict(this._input, 82, this._ctx);
37439
+ _alt = this.interpreter.adaptivePredict(this._input, 81, this._ctx);
37454
37440
  }
37455
- this.state = 883;
37441
+ this.state = 878;
37456
37442
  this._errHandler.sync(this);
37457
37443
  _la = this._input.LA(1);
37458
37444
  if (_la === _MalloyParser.COMMA) {
37459
37445
  {
37460
- this.state = 882;
37446
+ this.state = 877;
37461
37447
  this.match(_MalloyParser.COMMA);
37462
37448
  }
37463
37449
  }
@@ -37482,9 +37468,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37482
37468
  try {
37483
37469
  this.enterOuterAlt(_localctx, 1);
37484
37470
  {
37485
- this.state = 885;
37471
+ this.state = 880;
37486
37472
  this.match(_MalloyParser.ORDER_BY);
37487
- this.state = 886;
37473
+ this.state = 881;
37488
37474
  this.ordering();
37489
37475
  }
37490
37476
  } catch (re2) {
@@ -37509,39 +37495,39 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37509
37495
  let _alt;
37510
37496
  this.enterOuterAlt(_localctx, 1);
37511
37497
  {
37512
- this.state = 888;
37498
+ this.state = 883;
37513
37499
  this.orderBySpec();
37514
- this.state = 895;
37500
+ this.state = 890;
37515
37501
  this._errHandler.sync(this);
37516
- _alt = this.interpreter.adaptivePredict(this._input, 85, this._ctx);
37502
+ _alt = this.interpreter.adaptivePredict(this._input, 84, this._ctx);
37517
37503
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
37518
37504
  if (_alt === 1) {
37519
37505
  {
37520
37506
  {
37521
- this.state = 890;
37507
+ this.state = 885;
37522
37508
  this._errHandler.sync(this);
37523
37509
  _la = this._input.LA(1);
37524
37510
  if (_la === _MalloyParser.COMMA) {
37525
37511
  {
37526
- this.state = 889;
37512
+ this.state = 884;
37527
37513
  this.match(_MalloyParser.COMMA);
37528
37514
  }
37529
37515
  }
37530
- this.state = 892;
37516
+ this.state = 887;
37531
37517
  this.orderBySpec();
37532
37518
  }
37533
37519
  }
37534
37520
  }
37535
- this.state = 897;
37521
+ this.state = 892;
37536
37522
  this._errHandler.sync(this);
37537
- _alt = this.interpreter.adaptivePredict(this._input, 85, this._ctx);
37523
+ _alt = this.interpreter.adaptivePredict(this._input, 84, this._ctx);
37538
37524
  }
37539
- this.state = 899;
37525
+ this.state = 894;
37540
37526
  this._errHandler.sync(this);
37541
37527
  _la = this._input.LA(1);
37542
37528
  if (_la === _MalloyParser.COMMA) {
37543
37529
  {
37544
- this.state = 898;
37530
+ this.state = 893;
37545
37531
  this.match(_MalloyParser.COMMA);
37546
37532
  }
37547
37533
  }
@@ -37567,31 +37553,31 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37567
37553
  try {
37568
37554
  this.enterOuterAlt(_localctx, 1);
37569
37555
  {
37570
- this.state = 903;
37556
+ this.state = 898;
37571
37557
  this._errHandler.sync(this);
37572
37558
  switch (this._input.LA(1)) {
37573
37559
  case _MalloyParser.INTEGER_LITERAL:
37574
37560
  {
37575
- this.state = 901;
37561
+ this.state = 896;
37576
37562
  this.match(_MalloyParser.INTEGER_LITERAL);
37577
37563
  }
37578
37564
  break;
37579
37565
  case _MalloyParser.BQ_STRING:
37580
37566
  case _MalloyParser.IDENTIFIER:
37581
37567
  {
37582
- this.state = 902;
37568
+ this.state = 897;
37583
37569
  this.fieldName();
37584
37570
  }
37585
37571
  break;
37586
37572
  default:
37587
37573
  throw new NoViableAltException_1.NoViableAltException(this);
37588
37574
  }
37589
- this.state = 906;
37575
+ this.state = 901;
37590
37576
  this._errHandler.sync(this);
37591
37577
  _la = this._input.LA(1);
37592
37578
  if (_la === _MalloyParser.ASC || _la === _MalloyParser.DESC) {
37593
37579
  {
37594
- this.state = 905;
37580
+ this.state = 900;
37595
37581
  _la = this._input.LA(1);
37596
37582
  if (!(_la === _MalloyParser.ASC || _la === _MalloyParser.DESC)) {
37597
37583
  this._errHandler.recoverInline(this);
@@ -37625,9 +37611,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37625
37611
  try {
37626
37612
  this.enterOuterAlt(_localctx, 1);
37627
37613
  {
37628
- this.state = 908;
37614
+ this.state = 903;
37629
37615
  this.match(_MalloyParser.LIMIT);
37630
- this.state = 909;
37616
+ this.state = 904;
37631
37617
  this.match(_MalloyParser.INTEGER_LITERAL);
37632
37618
  }
37633
37619
  } catch (re2) {
@@ -37648,24 +37634,24 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37648
37634
  let _localctx = new BySpecContext(this._ctx, this.state);
37649
37635
  this.enterRule(_localctx, 176, _MalloyParser.RULE_bySpec);
37650
37636
  try {
37651
- this.state = 915;
37637
+ this.state = 910;
37652
37638
  this._errHandler.sync(this);
37653
- switch (this.interpreter.adaptivePredict(this._input, 89, this._ctx)) {
37639
+ switch (this.interpreter.adaptivePredict(this._input, 88, this._ctx)) {
37654
37640
  case 1:
37655
37641
  this.enterOuterAlt(_localctx, 1);
37656
37642
  {
37657
- this.state = 911;
37643
+ this.state = 906;
37658
37644
  this.match(_MalloyParser.BY);
37659
- this.state = 912;
37645
+ this.state = 907;
37660
37646
  this.fieldName();
37661
37647
  }
37662
37648
  break;
37663
37649
  case 2:
37664
37650
  this.enterOuterAlt(_localctx, 2);
37665
37651
  {
37666
- this.state = 913;
37652
+ this.state = 908;
37667
37653
  this.match(_MalloyParser.BY);
37668
- this.state = 914;
37654
+ this.state = 909;
37669
37655
  this.fieldExpr(0);
37670
37656
  }
37671
37657
  break;
@@ -37691,16 +37677,16 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37691
37677
  try {
37692
37678
  this.enterOuterAlt(_localctx, 1);
37693
37679
  {
37694
- this.state = 917;
37680
+ this.state = 912;
37695
37681
  this.match(_MalloyParser.TOP);
37696
- this.state = 918;
37682
+ this.state = 913;
37697
37683
  this.match(_MalloyParser.INTEGER_LITERAL);
37698
- this.state = 920;
37684
+ this.state = 915;
37699
37685
  this._errHandler.sync(this);
37700
37686
  _la = this._input.LA(1);
37701
37687
  if (_la === _MalloyParser.BY) {
37702
37688
  {
37703
- this.state = 919;
37689
+ this.state = 914;
37704
37690
  this.bySpec();
37705
37691
  }
37706
37692
  }
@@ -37724,23 +37710,23 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37724
37710
  this.enterRule(_localctx, 180, _MalloyParser.RULE_indexElement);
37725
37711
  let _la;
37726
37712
  try {
37727
- this.state = 928;
37713
+ this.state = 923;
37728
37714
  this._errHandler.sync(this);
37729
37715
  switch (this._input.LA(1)) {
37730
37716
  case _MalloyParser.BQ_STRING:
37731
37717
  case _MalloyParser.IDENTIFIER:
37732
37718
  this.enterOuterAlt(_localctx, 1);
37733
37719
  {
37734
- this.state = 922;
37720
+ this.state = 917;
37735
37721
  this.fieldPath();
37736
- this.state = 925;
37722
+ this.state = 920;
37737
37723
  this._errHandler.sync(this);
37738
37724
  _la = this._input.LA(1);
37739
37725
  if (_la === _MalloyParser.DOT) {
37740
37726
  {
37741
- this.state = 923;
37727
+ this.state = 918;
37742
37728
  this.match(_MalloyParser.DOT);
37743
- this.state = 924;
37729
+ this.state = 919;
37744
37730
  this.match(_MalloyParser.STAR);
37745
37731
  }
37746
37732
  }
@@ -37749,7 +37735,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37749
37735
  case _MalloyParser.STAR:
37750
37736
  this.enterOuterAlt(_localctx, 2);
37751
37737
  {
37752
- this.state = 927;
37738
+ this.state = 922;
37753
37739
  this.match(_MalloyParser.STAR);
37754
37740
  }
37755
37741
  break;
@@ -37778,32 +37764,32 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37778
37764
  let _alt;
37779
37765
  this.enterOuterAlt(_localctx, 1);
37780
37766
  {
37781
- this.state = 930;
37767
+ this.state = 925;
37782
37768
  this.indexElement();
37783
- this.state = 937;
37769
+ this.state = 932;
37784
37770
  this._errHandler.sync(this);
37785
- _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx);
37771
+ _alt = this.interpreter.adaptivePredict(this._input, 93, this._ctx);
37786
37772
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
37787
37773
  if (_alt === 1) {
37788
37774
  {
37789
37775
  {
37790
- this.state = 932;
37776
+ this.state = 927;
37791
37777
  this._errHandler.sync(this);
37792
37778
  _la = this._input.LA(1);
37793
37779
  if (_la === _MalloyParser.COMMA) {
37794
37780
  {
37795
- this.state = 931;
37781
+ this.state = 926;
37796
37782
  this.match(_MalloyParser.COMMA);
37797
37783
  }
37798
37784
  }
37799
- this.state = 934;
37785
+ this.state = 929;
37800
37786
  this.indexElement();
37801
37787
  }
37802
37788
  }
37803
37789
  }
37804
- this.state = 939;
37790
+ this.state = 934;
37805
37791
  this._errHandler.sync(this);
37806
- _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx);
37792
+ _alt = this.interpreter.adaptivePredict(this._input, 93, this._ctx);
37807
37793
  }
37808
37794
  }
37809
37795
  } catch (re2) {
@@ -37827,18 +37813,18 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37827
37813
  try {
37828
37814
  this.enterOuterAlt(_localctx, 1);
37829
37815
  {
37830
- this.state = 940;
37816
+ this.state = 935;
37831
37817
  this.match(_MalloyParser.INDEX);
37832
- this.state = 941;
37818
+ this.state = 936;
37833
37819
  this.indexFields();
37834
- this.state = 944;
37820
+ this.state = 939;
37835
37821
  this._errHandler.sync(this);
37836
37822
  _la = this._input.LA(1);
37837
37823
  if (_la === _MalloyParser.BY) {
37838
37824
  {
37839
- this.state = 942;
37825
+ this.state = 937;
37840
37826
  this.match(_MalloyParser.BY);
37841
- this.state = 943;
37827
+ this.state = 938;
37842
37828
  this.fieldName();
37843
37829
  }
37844
37830
  }
@@ -37863,9 +37849,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37863
37849
  try {
37864
37850
  this.enterOuterAlt(_localctx, 1);
37865
37851
  {
37866
- this.state = 946;
37852
+ this.state = 941;
37867
37853
  this.match(_MalloyParser.SAMPLE);
37868
- this.state = 947;
37854
+ this.state = 942;
37869
37855
  this.sampleSpec();
37870
37856
  }
37871
37857
  } catch (re2) {
@@ -37888,9 +37874,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37888
37874
  try {
37889
37875
  this.enterOuterAlt(_localctx, 1);
37890
37876
  {
37891
- this.state = 949;
37877
+ this.state = 944;
37892
37878
  this.match(_MalloyParser.TIMEZONE);
37893
- this.state = 950;
37879
+ this.state = 945;
37894
37880
  this.string();
37895
37881
  }
37896
37882
  } catch (re2) {
@@ -37913,7 +37899,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37913
37899
  try {
37914
37900
  this.enterOuterAlt(_localctx, 1);
37915
37901
  {
37916
- this.state = 952;
37902
+ this.state = 947;
37917
37903
  this.match(_MalloyParser.ANNOTATION);
37918
37904
  }
37919
37905
  } catch (re2) {
@@ -37937,7 +37923,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37937
37923
  try {
37938
37924
  this.enterOuterAlt(_localctx, 1);
37939
37925
  {
37940
- this.state = 954;
37926
+ this.state = 949;
37941
37927
  _la = this._input.LA(1);
37942
37928
  if (!(_la === _MalloyParser.FALSE || _la === _MalloyParser.TRUE || _la === _MalloyParser.PERCENT_LITERAL || _la === _MalloyParser.INTEGER_LITERAL)) {
37943
37929
  this._errHandler.recoverInline(this);
@@ -37970,7 +37956,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
37970
37956
  try {
37971
37957
  this.enterOuterAlt(_localctx, 1);
37972
37958
  {
37973
- this.state = 956;
37959
+ this.state = 951;
37974
37960
  _la = this._input.LA(1);
37975
37961
  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
37962
  this._errHandler.recoverInline(this);
@@ -38003,7 +37989,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38003
37989
  try {
38004
37990
  this.enterOuterAlt(_localctx, 1);
38005
37991
  {
38006
- this.state = 958;
37992
+ this.state = 953;
38007
37993
  _la = this._input.LA(1);
38008
37994
  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
37995
  this._errHandler.recoverInline(this);
@@ -38036,7 +38022,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38036
38022
  try {
38037
38023
  this.enterOuterAlt(_localctx, 1);
38038
38024
  {
38039
- this.state = 960;
38025
+ this.state = 955;
38040
38026
  _la = this._input.LA(1);
38041
38027
  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
38028
  this._errHandler.recoverInline(this);
@@ -38066,21 +38052,21 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38066
38052
  let _localctx = new StringContext(this._ctx, this.state);
38067
38053
  this.enterRule(_localctx, 200, _MalloyParser.RULE_string);
38068
38054
  try {
38069
- this.state = 964;
38055
+ this.state = 959;
38070
38056
  this._errHandler.sync(this);
38071
38057
  switch (this._input.LA(1)) {
38072
38058
  case _MalloyParser.SQ_STRING:
38073
38059
  case _MalloyParser.DQ_STRING:
38074
38060
  this.enterOuterAlt(_localctx, 1);
38075
38061
  {
38076
- this.state = 962;
38062
+ this.state = 957;
38077
38063
  this.shortString();
38078
38064
  }
38079
38065
  break;
38080
38066
  case _MalloyParser.SQL_BEGIN:
38081
38067
  this.enterOuterAlt(_localctx, 2);
38082
38068
  {
38083
- this.state = 963;
38069
+ this.state = 958;
38084
38070
  this.sqlString();
38085
38071
  }
38086
38072
  break;
@@ -38108,7 +38094,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38108
38094
  try {
38109
38095
  this.enterOuterAlt(_localctx, 1);
38110
38096
  {
38111
- this.state = 966;
38097
+ this.state = 961;
38112
38098
  _la = this._input.LA(1);
38113
38099
  if (!(_la === _MalloyParser.SQ_STRING || _la === _MalloyParser.DQ_STRING)) {
38114
38100
  this._errHandler.recoverInline(this);
@@ -38141,7 +38127,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38141
38127
  try {
38142
38128
  this.enterOuterAlt(_localctx, 1);
38143
38129
  {
38144
- this.state = 968;
38130
+ this.state = 963;
38145
38131
  _la = this._input.LA(1);
38146
38132
  if (!(_la === _MalloyParser.NUMERIC_LITERAL || _la === _MalloyParser.INTEGER_LITERAL)) {
38147
38133
  this._errHandler.recoverInline(this);
@@ -38172,7 +38158,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38172
38158
  this.enterRule(_localctx, 206, _MalloyParser.RULE_literal);
38173
38159
  let _la;
38174
38160
  try {
38175
- this.state = 977;
38161
+ this.state = 972;
38176
38162
  this._errHandler.sync(this);
38177
38163
  switch (this._input.LA(1)) {
38178
38164
  case _MalloyParser.SQ_STRING:
@@ -38181,7 +38167,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38181
38167
  _localctx = new ExprStringContext(_localctx);
38182
38168
  this.enterOuterAlt(_localctx, 1);
38183
38169
  {
38184
- this.state = 970;
38170
+ this.state = 965;
38185
38171
  this.string();
38186
38172
  }
38187
38173
  break;
@@ -38190,7 +38176,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38190
38176
  _localctx = new ExprNumberContext(_localctx);
38191
38177
  this.enterOuterAlt(_localctx, 2);
38192
38178
  {
38193
- this.state = 971;
38179
+ this.state = 966;
38194
38180
  this.numericLiteral();
38195
38181
  }
38196
38182
  break;
@@ -38204,7 +38190,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38204
38190
  _localctx = new ExprTimeContext(_localctx);
38205
38191
  this.enterOuterAlt(_localctx, 3);
38206
38192
  {
38207
- this.state = 972;
38193
+ this.state = 967;
38208
38194
  this.dateLiteral();
38209
38195
  }
38210
38196
  break;
@@ -38212,7 +38198,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38212
38198
  _localctx = new ExprNULLContext(_localctx);
38213
38199
  this.enterOuterAlt(_localctx, 4);
38214
38200
  {
38215
- this.state = 973;
38201
+ this.state = 968;
38216
38202
  this.match(_MalloyParser.NULL);
38217
38203
  }
38218
38204
  break;
@@ -38221,7 +38207,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38221
38207
  _localctx = new ExprBoolContext(_localctx);
38222
38208
  this.enterOuterAlt(_localctx, 5);
38223
38209
  {
38224
- this.state = 974;
38210
+ this.state = 969;
38225
38211
  _la = this._input.LA(1);
38226
38212
  if (!(_la === _MalloyParser.FALSE || _la === _MalloyParser.TRUE)) {
38227
38213
  this._errHandler.recoverInline(this);
@@ -38238,7 +38224,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38238
38224
  _localctx = new ExprRegexContext(_localctx);
38239
38225
  this.enterOuterAlt(_localctx, 6);
38240
38226
  {
38241
- this.state = 975;
38227
+ this.state = 970;
38242
38228
  this.match(_MalloyParser.HACKY_REGEX);
38243
38229
  }
38244
38230
  break;
@@ -38246,7 +38232,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38246
38232
  _localctx = new ExprNowContext(_localctx);
38247
38233
  this.enterOuterAlt(_localctx, 7);
38248
38234
  {
38249
- this.state = 976;
38235
+ this.state = 971;
38250
38236
  this.match(_MalloyParser.NOW);
38251
38237
  }
38252
38238
  break;
@@ -38271,14 +38257,14 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38271
38257
  let _localctx = new DateLiteralContext(this._ctx, this.state);
38272
38258
  this.enterRule(_localctx, 208, _MalloyParser.RULE_dateLiteral);
38273
38259
  try {
38274
- this.state = 986;
38260
+ this.state = 981;
38275
38261
  this._errHandler.sync(this);
38276
38262
  switch (this._input.LA(1)) {
38277
38263
  case _MalloyParser.LITERAL_TIMESTAMP:
38278
38264
  _localctx = new LiteralTimestampContext(_localctx);
38279
38265
  this.enterOuterAlt(_localctx, 1);
38280
38266
  {
38281
- this.state = 979;
38267
+ this.state = 974;
38282
38268
  this.match(_MalloyParser.LITERAL_TIMESTAMP);
38283
38269
  }
38284
38270
  break;
@@ -38286,7 +38272,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38286
38272
  _localctx = new LiteralHourContext(_localctx);
38287
38273
  this.enterOuterAlt(_localctx, 2);
38288
38274
  {
38289
- this.state = 980;
38275
+ this.state = 975;
38290
38276
  this.match(_MalloyParser.LITERAL_HOUR);
38291
38277
  }
38292
38278
  break;
@@ -38294,7 +38280,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38294
38280
  _localctx = new LiteralDayContext(_localctx);
38295
38281
  this.enterOuterAlt(_localctx, 3);
38296
38282
  {
38297
- this.state = 981;
38283
+ this.state = 976;
38298
38284
  this.match(_MalloyParser.LITERAL_DAY);
38299
38285
  }
38300
38286
  break;
@@ -38302,7 +38288,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38302
38288
  _localctx = new LiteralWeekContext(_localctx);
38303
38289
  this.enterOuterAlt(_localctx, 4);
38304
38290
  {
38305
- this.state = 982;
38291
+ this.state = 977;
38306
38292
  this.match(_MalloyParser.LITERAL_WEEK);
38307
38293
  }
38308
38294
  break;
@@ -38310,7 +38296,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38310
38296
  _localctx = new LiteralMonthContext(_localctx);
38311
38297
  this.enterOuterAlt(_localctx, 5);
38312
38298
  {
38313
- this.state = 983;
38299
+ this.state = 978;
38314
38300
  this.match(_MalloyParser.LITERAL_MONTH);
38315
38301
  }
38316
38302
  break;
@@ -38318,7 +38304,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38318
38304
  _localctx = new LiteralQuarterContext(_localctx);
38319
38305
  this.enterOuterAlt(_localctx, 6);
38320
38306
  {
38321
- this.state = 984;
38307
+ this.state = 979;
38322
38308
  this.match(_MalloyParser.LITERAL_QUARTER);
38323
38309
  }
38324
38310
  break;
@@ -38326,7 +38312,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38326
38312
  _localctx = new LiteralYearContext(_localctx);
38327
38313
  this.enterOuterAlt(_localctx, 7);
38328
38314
  {
38329
- this.state = 985;
38315
+ this.state = 980;
38330
38316
  this.match(_MalloyParser.LITERAL_YEAR);
38331
38317
  }
38332
38318
  break;
@@ -38353,7 +38339,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38353
38339
  try {
38354
38340
  this.enterOuterAlt(_localctx, 1);
38355
38341
  {
38356
- this.state = 988;
38342
+ this.state = 983;
38357
38343
  this.string();
38358
38344
  }
38359
38345
  } catch (re2) {
@@ -38376,7 +38362,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38376
38362
  try {
38377
38363
  this.enterOuterAlt(_localctx, 1);
38378
38364
  {
38379
- this.state = 990;
38365
+ this.state = 985;
38380
38366
  this.string();
38381
38367
  }
38382
38368
  } catch (re2) {
@@ -38400,7 +38386,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38400
38386
  try {
38401
38387
  this.enterOuterAlt(_localctx, 1);
38402
38388
  {
38403
- this.state = 992;
38389
+ this.state = 987;
38404
38390
  _la = this._input.LA(1);
38405
38391
  if (!(_la === _MalloyParser.BQ_STRING || _la === _MalloyParser.IDENTIFIER)) {
38406
38392
  this._errHandler.recoverInline(this);
@@ -38433,7 +38419,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38433
38419
  try {
38434
38420
  this.enterOuterAlt(_localctx, 1);
38435
38421
  {
38436
- this.state = 994;
38422
+ this.state = 989;
38437
38423
  _la = this._input.LA(1);
38438
38424
  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
38425
  this._errHandler.recoverInline(this);
@@ -38466,7 +38452,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38466
38452
  try {
38467
38453
  this.enterOuterAlt(_localctx, 1);
38468
38454
  {
38469
- this.state = 996;
38455
+ this.state = 991;
38470
38456
  _la = this._input.LA(1);
38471
38457
  if (!(_la === _MalloyParser.ALL || _la === _MalloyParser.EXCLUDE)) {
38472
38458
  this._errHandler.recoverInline(this);
@@ -38496,7 +38482,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38496
38482
  let _localctx = new MalloyOrSQLTypeContext(this._ctx, this.state);
38497
38483
  this.enterRule(_localctx, 220, _MalloyParser.RULE_malloyOrSQLType);
38498
38484
  try {
38499
- this.state = 1e3;
38485
+ this.state = 995;
38500
38486
  this._errHandler.sync(this);
38501
38487
  switch (this._input.LA(1)) {
38502
38488
  case _MalloyParser.BOOLEAN:
@@ -38506,7 +38492,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38506
38492
  case _MalloyParser.TIMESTAMP:
38507
38493
  this.enterOuterAlt(_localctx, 1);
38508
38494
  {
38509
- this.state = 998;
38495
+ this.state = 993;
38510
38496
  this.malloyType();
38511
38497
  }
38512
38498
  break;
@@ -38515,7 +38501,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38515
38501
  case _MalloyParser.SQL_BEGIN:
38516
38502
  this.enterOuterAlt(_localctx, 2);
38517
38503
  {
38518
- this.state = 999;
38504
+ this.state = 994;
38519
38505
  this.string();
38520
38506
  }
38521
38507
  break;
@@ -38551,15 +38537,15 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38551
38537
  let _alt;
38552
38538
  this.enterOuterAlt(_localctx, 1);
38553
38539
  {
38554
- this.state = 1085;
38540
+ this.state = 1080;
38555
38541
  this._errHandler.sync(this);
38556
- switch (this.interpreter.adaptivePredict(this._input, 109, this._ctx)) {
38542
+ switch (this.interpreter.adaptivePredict(this._input, 108, this._ctx)) {
38557
38543
  case 1:
38558
38544
  {
38559
38545
  _localctx = new ExprFieldPathContext(_localctx);
38560
38546
  this._ctx = _localctx;
38561
38547
  _prevctx = _localctx;
38562
- this.state = 1003;
38548
+ this.state = 998;
38563
38549
  this.fieldPath();
38564
38550
  }
38565
38551
  break;
@@ -38568,7 +38554,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38568
38554
  _localctx = new ExprLiteralContext(_localctx);
38569
38555
  this._ctx = _localctx;
38570
38556
  _prevctx = _localctx;
38571
- this.state = 1004;
38557
+ this.state = 999;
38572
38558
  this.literal();
38573
38559
  }
38574
38560
  break;
@@ -38577,9 +38563,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38577
38563
  _localctx = new ExprMinusContext(_localctx);
38578
38564
  this._ctx = _localctx;
38579
38565
  _prevctx = _localctx;
38580
- this.state = 1005;
38566
+ this.state = 1e3;
38581
38567
  this.match(_MalloyParser.MINUS);
38582
- this.state = 1006;
38568
+ this.state = 1001;
38583
38569
  this.fieldExpr(22);
38584
38570
  }
38585
38571
  break;
@@ -38588,9 +38574,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38588
38574
  _localctx = new ExprNotContext(_localctx);
38589
38575
  this._ctx = _localctx;
38590
38576
  _prevctx = _localctx;
38591
- this.state = 1007;
38577
+ this.state = 1002;
38592
38578
  this.match(_MalloyParser.NOT);
38593
- this.state = 1008;
38579
+ this.state = 1003;
38594
38580
  this.fieldExpr(13);
38595
38581
  }
38596
38582
  break;
@@ -38599,17 +38585,17 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38599
38585
  _localctx = new ExprCastContext(_localctx);
38600
38586
  this._ctx = _localctx;
38601
38587
  _prevctx = _localctx;
38602
- this.state = 1009;
38588
+ this.state = 1004;
38603
38589
  this.match(_MalloyParser.CAST);
38604
- this.state = 1010;
38590
+ this.state = 1005;
38605
38591
  this.match(_MalloyParser.OPAREN);
38606
- this.state = 1011;
38592
+ this.state = 1006;
38607
38593
  this.fieldExpr(0);
38608
- this.state = 1012;
38594
+ this.state = 1007;
38609
38595
  this.match(_MalloyParser.AS);
38610
- this.state = 1013;
38596
+ this.state = 1008;
38611
38597
  this.malloyOrSQLType();
38612
- this.state = 1014;
38598
+ this.state = 1009;
38613
38599
  this.match(_MalloyParser.CPAREN);
38614
38600
  }
38615
38601
  break;
@@ -38618,15 +38604,15 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38618
38604
  _localctx = new ExprCountDisinctContext(_localctx);
38619
38605
  this._ctx = _localctx;
38620
38606
  _prevctx = _localctx;
38621
- this.state = 1016;
38607
+ this.state = 1011;
38622
38608
  this.match(_MalloyParser.COUNT);
38623
- this.state = 1017;
38609
+ this.state = 1012;
38624
38610
  this.match(_MalloyParser.OPAREN);
38625
- this.state = 1018;
38611
+ this.state = 1013;
38626
38612
  this.match(_MalloyParser.DISTINCT);
38627
- this.state = 1019;
38613
+ this.state = 1014;
38628
38614
  this.fieldExpr(0);
38629
- this.state = 1020;
38615
+ this.state = 1015;
38630
38616
  this.match(_MalloyParser.CPAREN);
38631
38617
  }
38632
38618
  break;
@@ -38635,22 +38621,22 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38635
38621
  _localctx = new ExprPathlessAggregateContext(_localctx);
38636
38622
  this._ctx = _localctx;
38637
38623
  _prevctx = _localctx;
38638
- this.state = 1024;
38624
+ this.state = 1019;
38639
38625
  this._errHandler.sync(this);
38640
38626
  _la = this._input.LA(1);
38641
38627
  if (_la === _MalloyParser.SOURCE_KW) {
38642
38628
  {
38643
- this.state = 1022;
38629
+ this.state = 1017;
38644
38630
  this.match(_MalloyParser.SOURCE_KW);
38645
- this.state = 1023;
38631
+ this.state = 1018;
38646
38632
  this.match(_MalloyParser.DOT);
38647
38633
  }
38648
38634
  }
38649
- this.state = 1026;
38635
+ this.state = 1021;
38650
38636
  this.aggregate();
38651
- this.state = 1027;
38637
+ this.state = 1022;
38652
38638
  this.match(_MalloyParser.OPAREN);
38653
- this.state = 1030;
38639
+ this.state = 1025;
38654
38640
  this._errHandler.sync(this);
38655
38641
  switch (this._input.LA(1)) {
38656
38642
  case _MalloyParser.ALL:
@@ -38694,13 +38680,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38694
38680
  case _MalloyParser.INTEGER_LITERAL:
38695
38681
  case _MalloyParser.SQL_BEGIN:
38696
38682
  {
38697
- this.state = 1028;
38683
+ this.state = 1023;
38698
38684
  this.fieldExpr(0);
38699
38685
  }
38700
38686
  break;
38701
38687
  case _MalloyParser.STAR:
38702
38688
  {
38703
- this.state = 1029;
38689
+ this.state = 1024;
38704
38690
  this.match(_MalloyParser.STAR);
38705
38691
  }
38706
38692
  break;
@@ -38709,7 +38695,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38709
38695
  default:
38710
38696
  break;
38711
38697
  }
38712
- this.state = 1032;
38698
+ this.state = 1027;
38713
38699
  this.match(_MalloyParser.CPAREN);
38714
38700
  }
38715
38701
  break;
@@ -38718,24 +38704,24 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38718
38704
  _localctx = new ExprAggregateContext(_localctx);
38719
38705
  this._ctx = _localctx;
38720
38706
  _prevctx = _localctx;
38721
- this.state = 1034;
38707
+ this.state = 1029;
38722
38708
  this.fieldPath();
38723
- this.state = 1035;
38709
+ this.state = 1030;
38724
38710
  this.match(_MalloyParser.DOT);
38725
- this.state = 1036;
38711
+ this.state = 1031;
38726
38712
  this.aggregate();
38727
- this.state = 1037;
38713
+ this.state = 1032;
38728
38714
  this.match(_MalloyParser.OPAREN);
38729
- this.state = 1039;
38715
+ this.state = 1034;
38730
38716
  this._errHandler.sync(this);
38731
38717
  _la = this._input.LA(1);
38732
38718
  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
38719
  {
38734
- this.state = 1038;
38720
+ this.state = 1033;
38735
38721
  this.fieldExpr(0);
38736
38722
  }
38737
38723
  }
38738
- this.state = 1041;
38724
+ this.state = 1036;
38739
38725
  this.match(_MalloyParser.CPAREN);
38740
38726
  }
38741
38727
  break;
@@ -38744,11 +38730,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38744
38730
  _localctx = new ExprExprContext(_localctx);
38745
38731
  this._ctx = _localctx;
38746
38732
  _prevctx = _localctx;
38747
- this.state = 1043;
38733
+ this.state = 1038;
38748
38734
  this.match(_MalloyParser.OPAREN);
38749
- this.state = 1044;
38735
+ this.state = 1039;
38750
38736
  this.partialAllowedFieldExpr();
38751
- this.state = 1045;
38737
+ this.state = 1040;
38752
38738
  this.match(_MalloyParser.CPAREN);
38753
38739
  }
38754
38740
  break;
@@ -38757,26 +38743,26 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38757
38743
  _localctx = new ExprAggFuncContext(_localctx);
38758
38744
  this._ctx = _localctx;
38759
38745
  _prevctx = _localctx;
38760
- this.state = 1047;
38746
+ this.state = 1042;
38761
38747
  this.fieldPath();
38762
- this.state = 1048;
38748
+ this.state = 1043;
38763
38749
  this.match(_MalloyParser.DOT);
38764
- this.state = 1049;
38750
+ this.state = 1044;
38765
38751
  this.id();
38766
- this.state = 1050;
38752
+ this.state = 1045;
38767
38753
  this.match(_MalloyParser.OPAREN);
38768
38754
  {
38769
- this.state = 1052;
38755
+ this.state = 1047;
38770
38756
  this._errHandler.sync(this);
38771
38757
  _la = this._input.LA(1);
38772
38758
  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
38759
  {
38774
- this.state = 1051;
38760
+ this.state = 1046;
38775
38761
  this.argumentList();
38776
38762
  }
38777
38763
  }
38778
38764
  }
38779
- this.state = 1054;
38765
+ this.state = 1049;
38780
38766
  this.match(_MalloyParser.CPAREN);
38781
38767
  }
38782
38768
  break;
@@ -38785,28 +38771,28 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38785
38771
  _localctx = new ExprFuncContext(_localctx);
38786
38772
  this._ctx = _localctx;
38787
38773
  _prevctx = _localctx;
38788
- this.state = 1064;
38774
+ this.state = 1059;
38789
38775
  this._errHandler.sync(this);
38790
38776
  switch (this._input.LA(1)) {
38791
38777
  case _MalloyParser.BQ_STRING:
38792
38778
  case _MalloyParser.IDENTIFIER:
38793
38779
  {
38794
38780
  {
38795
- this.state = 1056;
38781
+ this.state = 1051;
38796
38782
  this.id();
38797
- this.state = 1061;
38783
+ this.state = 1056;
38798
38784
  this._errHandler.sync(this);
38799
38785
  _la = this._input.LA(1);
38800
38786
  if (_la === _MalloyParser.EXCLAM) {
38801
38787
  {
38802
- this.state = 1057;
38788
+ this.state = 1052;
38803
38789
  this.match(_MalloyParser.EXCLAM);
38804
- this.state = 1059;
38790
+ this.state = 1054;
38805
38791
  this._errHandler.sync(this);
38806
38792
  _la = this._input.LA(1);
38807
38793
  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
38794
  {
38809
- this.state = 1058;
38795
+ this.state = 1053;
38810
38796
  this.malloyType();
38811
38797
  }
38812
38798
  }
@@ -38824,27 +38810,27 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38824
38810
  case _MalloyParser.WEEK:
38825
38811
  case _MalloyParser.YEAR:
38826
38812
  {
38827
- this.state = 1063;
38813
+ this.state = 1058;
38828
38814
  this.timeframe();
38829
38815
  }
38830
38816
  break;
38831
38817
  default:
38832
38818
  throw new NoViableAltException_1.NoViableAltException(this);
38833
38819
  }
38834
- this.state = 1066;
38820
+ this.state = 1061;
38835
38821
  this.match(_MalloyParser.OPAREN);
38836
38822
  {
38837
- this.state = 1068;
38823
+ this.state = 1063;
38838
38824
  this._errHandler.sync(this);
38839
38825
  _la = this._input.LA(1);
38840
38826
  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
38827
  {
38842
- this.state = 1067;
38828
+ this.state = 1062;
38843
38829
  this.argumentList();
38844
38830
  }
38845
38831
  }
38846
38832
  }
38847
- this.state = 1070;
38833
+ this.state = 1065;
38848
38834
  this.match(_MalloyParser.CPAREN);
38849
38835
  }
38850
38836
  break;
@@ -38853,7 +38839,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38853
38839
  _localctx = new ExprPickContext(_localctx);
38854
38840
  this._ctx = _localctx;
38855
38841
  _prevctx = _localctx;
38856
- this.state = 1072;
38842
+ this.state = 1067;
38857
38843
  this.pickStatement();
38858
38844
  }
38859
38845
  break;
@@ -38862,37 +38848,37 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38862
38848
  _localctx = new ExprUngroupContext(_localctx);
38863
38849
  this._ctx = _localctx;
38864
38850
  _prevctx = _localctx;
38865
- this.state = 1073;
38851
+ this.state = 1068;
38866
38852
  this.ungroup();
38867
- this.state = 1074;
38853
+ this.state = 1069;
38868
38854
  this.match(_MalloyParser.OPAREN);
38869
- this.state = 1075;
38855
+ this.state = 1070;
38870
38856
  this.fieldExpr(0);
38871
- this.state = 1080;
38857
+ this.state = 1075;
38872
38858
  this._errHandler.sync(this);
38873
38859
  _la = this._input.LA(1);
38874
38860
  while (_la === _MalloyParser.COMMA) {
38875
38861
  {
38876
38862
  {
38877
- this.state = 1076;
38863
+ this.state = 1071;
38878
38864
  this.match(_MalloyParser.COMMA);
38879
- this.state = 1077;
38865
+ this.state = 1072;
38880
38866
  this.fieldName();
38881
38867
  }
38882
38868
  }
38883
- this.state = 1082;
38869
+ this.state = 1077;
38884
38870
  this._errHandler.sync(this);
38885
38871
  _la = this._input.LA(1);
38886
38872
  }
38887
- this.state = 1083;
38873
+ this.state = 1078;
38888
38874
  this.match(_MalloyParser.CPAREN);
38889
38875
  }
38890
38876
  break;
38891
38877
  }
38892
38878
  this._ctx._stop = this._input.tryLT(-1);
38893
- this.state = 1138;
38879
+ this.state = 1133;
38894
38880
  this._errHandler.sync(this);
38895
- _alt = this.interpreter.adaptivePredict(this._input, 111, this._ctx);
38881
+ _alt = this.interpreter.adaptivePredict(this._input, 110, this._ctx);
38896
38882
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
38897
38883
  if (_alt === 1) {
38898
38884
  if (this._parseListeners != null) {
@@ -38900,18 +38886,18 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38900
38886
  }
38901
38887
  _prevctx = _localctx;
38902
38888
  {
38903
- this.state = 1136;
38889
+ this.state = 1131;
38904
38890
  this._errHandler.sync(this);
38905
- switch (this.interpreter.adaptivePredict(this._input, 110, this._ctx)) {
38891
+ switch (this.interpreter.adaptivePredict(this._input, 109, this._ctx)) {
38906
38892
  case 1:
38907
38893
  {
38908
38894
  _localctx = new ExprMulDivContext(new FieldExprContext(_parentctx, _parentState));
38909
38895
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38910
- this.state = 1087;
38896
+ this.state = 1082;
38911
38897
  if (!this.precpred(this._ctx, 21)) {
38912
38898
  throw this.createFailedPredicateException("this.precpred(this._ctx, 21)");
38913
38899
  }
38914
- this.state = 1088;
38900
+ this.state = 1083;
38915
38901
  _la = this._input.LA(1);
38916
38902
  if (!((_la - 126 & ~31) === 0 && (1 << _la - 126 & (1 << _MalloyParser.STAR - 126 | 1 << _MalloyParser.SLASH - 126 | 1 << _MalloyParser.PERCENT - 126)) !== 0)) {
38917
38903
  this._errHandler.recoverInline(this);
@@ -38922,7 +38908,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38922
38908
  this._errHandler.reportMatch(this);
38923
38909
  this.consume();
38924
38910
  }
38925
- this.state = 1089;
38911
+ this.state = 1084;
38926
38912
  this.fieldExpr(22);
38927
38913
  }
38928
38914
  break;
@@ -38930,11 +38916,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38930
38916
  {
38931
38917
  _localctx = new ExprAddSubContext(new FieldExprContext(_parentctx, _parentState));
38932
38918
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38933
- this.state = 1090;
38919
+ this.state = 1085;
38934
38920
  if (!this.precpred(this._ctx, 20)) {
38935
38921
  throw this.createFailedPredicateException("this.precpred(this._ctx, 20)");
38936
38922
  }
38937
- this.state = 1091;
38923
+ this.state = 1086;
38938
38924
  _la = this._input.LA(1);
38939
38925
  if (!(_la === _MalloyParser.PLUS || _la === _MalloyParser.MINUS)) {
38940
38926
  this._errHandler.recoverInline(this);
@@ -38945,7 +38931,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38945
38931
  this._errHandler.reportMatch(this);
38946
38932
  this.consume();
38947
38933
  }
38948
- this.state = 1092;
38934
+ this.state = 1087;
38949
38935
  this.fieldExpr(21);
38950
38936
  }
38951
38937
  break;
@@ -38953,13 +38939,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38953
38939
  {
38954
38940
  _localctx = new ExprRangeContext(new FieldExprContext(_parentctx, _parentState));
38955
38941
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38956
- this.state = 1093;
38942
+ this.state = 1088;
38957
38943
  if (!this.precpred(this._ctx, 19)) {
38958
38944
  throw this.createFailedPredicateException("this.precpred(this._ctx, 19)");
38959
38945
  }
38960
- this.state = 1094;
38946
+ this.state = 1089;
38961
38947
  this.match(_MalloyParser.TO);
38962
- this.state = 1095;
38948
+ this.state = 1090;
38963
38949
  this.fieldExpr(20);
38964
38950
  }
38965
38951
  break;
@@ -38967,13 +38953,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38967
38953
  {
38968
38954
  _localctx = new ExprCompareContext(new FieldExprContext(_parentctx, _parentState));
38969
38955
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38970
- this.state = 1096;
38956
+ this.state = 1091;
38971
38957
  if (!this.precpred(this._ctx, 15)) {
38972
38958
  throw this.createFailedPredicateException("this.precpred(this._ctx, 15)");
38973
38959
  }
38974
- this.state = 1097;
38960
+ this.state = 1092;
38975
38961
  this.compareOp();
38976
- this.state = 1098;
38962
+ this.state = 1093;
38977
38963
  this.fieldExpr(16);
38978
38964
  }
38979
38965
  break;
@@ -38981,13 +38967,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38981
38967
  {
38982
38968
  _localctx = new ExprLogicalAndContext(new FieldExprContext(_parentctx, _parentState));
38983
38969
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38984
- this.state = 1100;
38970
+ this.state = 1095;
38985
38971
  if (!this.precpred(this._ctx, 12)) {
38986
38972
  throw this.createFailedPredicateException("this.precpred(this._ctx, 12)");
38987
38973
  }
38988
- this.state = 1101;
38974
+ this.state = 1096;
38989
38975
  this.match(_MalloyParser.AND);
38990
- this.state = 1102;
38976
+ this.state = 1097;
38991
38977
  this.fieldExpr(13);
38992
38978
  }
38993
38979
  break;
@@ -38995,13 +38981,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
38995
38981
  {
38996
38982
  _localctx = new ExprLogicalOrContext(new FieldExprContext(_parentctx, _parentState));
38997
38983
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
38998
- this.state = 1103;
38984
+ this.state = 1098;
38999
38985
  if (!this.precpred(this._ctx, 11)) {
39000
38986
  throw this.createFailedPredicateException("this.precpred(this._ctx, 11)");
39001
38987
  }
39002
- this.state = 1104;
38988
+ this.state = 1099;
39003
38989
  this.match(_MalloyParser.OR);
39004
- this.state = 1105;
38990
+ this.state = 1100;
39005
38991
  this.fieldExpr(12);
39006
38992
  }
39007
38993
  break;
@@ -39009,13 +38995,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39009
38995
  {
39010
38996
  _localctx = new ExprCoalesceContext(new FieldExprContext(_parentctx, _parentState));
39011
38997
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39012
- this.state = 1106;
38998
+ this.state = 1101;
39013
38999
  if (!this.precpred(this._ctx, 10)) {
39014
39000
  throw this.createFailedPredicateException("this.precpred(this._ctx, 10)");
39015
39001
  }
39016
- this.state = 1107;
39002
+ this.state = 1102;
39017
39003
  this.match(_MalloyParser.DOUBLE_QMARK);
39018
- this.state = 1108;
39004
+ this.state = 1103;
39019
39005
  this.fieldExpr(11);
39020
39006
  }
39021
39007
  break;
@@ -39023,11 +39009,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39023
39009
  {
39024
39010
  _localctx = new ExprFieldPropsContext(new FieldExprContext(_parentctx, _parentState));
39025
39011
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39026
- this.state = 1109;
39012
+ this.state = 1104;
39027
39013
  if (!this.precpred(this._ctx, 28)) {
39028
39014
  throw this.createFailedPredicateException("this.precpred(this._ctx, 28)");
39029
39015
  }
39030
- this.state = 1110;
39016
+ this.state = 1105;
39031
39017
  this.fieldProperties();
39032
39018
  }
39033
39019
  break;
@@ -39035,11 +39021,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39035
39021
  {
39036
39022
  _localctx = new ExprDurationContext(new FieldExprContext(_parentctx, _parentState));
39037
39023
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39038
- this.state = 1111;
39024
+ this.state = 1106;
39039
39025
  if (!this.precpred(this._ctx, 26)) {
39040
39026
  throw this.createFailedPredicateException("this.precpred(this._ctx, 26)");
39041
39027
  }
39042
- this.state = 1112;
39028
+ this.state = 1107;
39043
39029
  this.timeframe();
39044
39030
  }
39045
39031
  break;
@@ -39047,13 +39033,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39047
39033
  {
39048
39034
  _localctx = new ExprTimeTruncContext(new FieldExprContext(_parentctx, _parentState));
39049
39035
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39050
- this.state = 1113;
39036
+ this.state = 1108;
39051
39037
  if (!this.precpred(this._ctx, 25)) {
39052
39038
  throw this.createFailedPredicateException("this.precpred(this._ctx, 25)");
39053
39039
  }
39054
- this.state = 1114;
39040
+ this.state = 1109;
39055
39041
  this.match(_MalloyParser.DOT);
39056
- this.state = 1115;
39042
+ this.state = 1110;
39057
39043
  this.timeframe();
39058
39044
  }
39059
39045
  break;
@@ -39061,13 +39047,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39061
39047
  {
39062
39048
  _localctx = new ExprCastContext(new FieldExprContext(_parentctx, _parentState));
39063
39049
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39064
- this.state = 1116;
39050
+ this.state = 1111;
39065
39051
  if (!this.precpred(this._ctx, 24)) {
39066
39052
  throw this.createFailedPredicateException("this.precpred(this._ctx, 24)");
39067
39053
  }
39068
- this.state = 1117;
39054
+ this.state = 1112;
39069
39055
  this.match(_MalloyParser.DOUBLECOLON);
39070
- this.state = 1118;
39056
+ this.state = 1113;
39071
39057
  this.malloyOrSQLType();
39072
39058
  }
39073
39059
  break;
@@ -39075,13 +39061,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39075
39061
  {
39076
39062
  _localctx = new ExprSafeCastContext(new FieldExprContext(_parentctx, _parentState));
39077
39063
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39078
- this.state = 1119;
39064
+ this.state = 1114;
39079
39065
  if (!this.precpred(this._ctx, 23)) {
39080
39066
  throw this.createFailedPredicateException("this.precpred(this._ctx, 23)");
39081
39067
  }
39082
- this.state = 1120;
39068
+ this.state = 1115;
39083
39069
  this.match(_MalloyParser.TRIPLECOLON);
39084
- this.state = 1121;
39070
+ this.state = 1116;
39085
39071
  this.malloyOrSQLType();
39086
39072
  }
39087
39073
  break;
@@ -39090,15 +39076,15 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39090
39076
  _localctx = new ExprForRangeContext(new FieldExprContext(_parentctx, _parentState));
39091
39077
  _localctx._startAt = _prevctx;
39092
39078
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39093
- this.state = 1122;
39079
+ this.state = 1117;
39094
39080
  if (!this.precpred(this._ctx, 18)) {
39095
39081
  throw this.createFailedPredicateException("this.precpred(this._ctx, 18)");
39096
39082
  }
39097
- this.state = 1123;
39083
+ this.state = 1118;
39098
39084
  this.match(_MalloyParser.FOR);
39099
- this.state = 1124;
39085
+ this.state = 1119;
39100
39086
  _localctx._duration = this.fieldExpr(0);
39101
- this.state = 1125;
39087
+ this.state = 1120;
39102
39088
  this.timeframe();
39103
39089
  }
39104
39090
  break;
@@ -39106,13 +39092,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39106
39092
  {
39107
39093
  _localctx = new ExprAndTreeContext(new FieldExprContext(_parentctx, _parentState));
39108
39094
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39109
- this.state = 1127;
39095
+ this.state = 1122;
39110
39096
  if (!this.precpred(this._ctx, 17)) {
39111
39097
  throw this.createFailedPredicateException("this.precpred(this._ctx, 17)");
39112
39098
  }
39113
- this.state = 1128;
39099
+ this.state = 1123;
39114
39100
  this.match(_MalloyParser.AMPER);
39115
- this.state = 1129;
39101
+ this.state = 1124;
39116
39102
  this.partialAllowedFieldExpr();
39117
39103
  }
39118
39104
  break;
@@ -39120,13 +39106,13 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39120
39106
  {
39121
39107
  _localctx = new ExprOrTreeContext(new FieldExprContext(_parentctx, _parentState));
39122
39108
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39123
- this.state = 1130;
39109
+ this.state = 1125;
39124
39110
  if (!this.precpred(this._ctx, 16)) {
39125
39111
  throw this.createFailedPredicateException("this.precpred(this._ctx, 16)");
39126
39112
  }
39127
- this.state = 1131;
39113
+ this.state = 1126;
39128
39114
  this.match(_MalloyParser.BAR);
39129
- this.state = 1132;
39115
+ this.state = 1127;
39130
39116
  this.partialAllowedFieldExpr();
39131
39117
  }
39132
39118
  break;
@@ -39134,22 +39120,22 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39134
39120
  {
39135
39121
  _localctx = new ExprApplyContext(new FieldExprContext(_parentctx, _parentState));
39136
39122
  this.pushNewRecursionContext(_localctx, _startState, _MalloyParser.RULE_fieldExpr);
39137
- this.state = 1133;
39123
+ this.state = 1128;
39138
39124
  if (!this.precpred(this._ctx, 14)) {
39139
39125
  throw this.createFailedPredicateException("this.precpred(this._ctx, 14)");
39140
39126
  }
39141
- this.state = 1134;
39127
+ this.state = 1129;
39142
39128
  this.match(_MalloyParser.QMARK);
39143
- this.state = 1135;
39129
+ this.state = 1130;
39144
39130
  this.partialAllowedFieldExpr();
39145
39131
  }
39146
39132
  break;
39147
39133
  }
39148
39134
  }
39149
39135
  }
39150
- this.state = 1140;
39136
+ this.state = 1135;
39151
39137
  this._errHandler.sync(this);
39152
- _alt = this.interpreter.adaptivePredict(this._input, 111, this._ctx);
39138
+ _alt = this.interpreter.adaptivePredict(this._input, 110, this._ctx);
39153
39139
  }
39154
39140
  }
39155
39141
  } catch (re2) {
@@ -39171,42 +39157,42 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39171
39157
  this.enterRule(_localctx, 224, _MalloyParser.RULE_partialAllowedFieldExpr);
39172
39158
  let _la;
39173
39159
  try {
39174
- this.state = 1152;
39160
+ this.state = 1147;
39175
39161
  this._errHandler.sync(this);
39176
- switch (this.interpreter.adaptivePredict(this._input, 114, this._ctx)) {
39162
+ switch (this.interpreter.adaptivePredict(this._input, 113, this._ctx)) {
39177
39163
  case 1:
39178
39164
  this.enterOuterAlt(_localctx, 1);
39179
39165
  {
39180
- this.state = 1141;
39166
+ this.state = 1136;
39181
39167
  this.match(_MalloyParser.OPAREN);
39182
- this.state = 1143;
39168
+ this.state = 1138;
39183
39169
  this._errHandler.sync(this);
39184
39170
  _la = this._input.LA(1);
39185
39171
  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
39172
  {
39187
- this.state = 1142;
39173
+ this.state = 1137;
39188
39174
  this.compareOp();
39189
39175
  }
39190
39176
  }
39191
- this.state = 1145;
39177
+ this.state = 1140;
39192
39178
  this.fieldExpr(0);
39193
- this.state = 1146;
39179
+ this.state = 1141;
39194
39180
  this.match(_MalloyParser.CPAREN);
39195
39181
  }
39196
39182
  break;
39197
39183
  case 2:
39198
39184
  this.enterOuterAlt(_localctx, 2);
39199
39185
  {
39200
- this.state = 1149;
39186
+ this.state = 1144;
39201
39187
  this._errHandler.sync(this);
39202
39188
  _la = this._input.LA(1);
39203
39189
  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
39190
  {
39205
- this.state = 1148;
39191
+ this.state = 1143;
39206
39192
  this.compareOp();
39207
39193
  }
39208
39194
  }
39209
- this.state = 1151;
39195
+ this.state = 1146;
39210
39196
  this.fieldExpr(0);
39211
39197
  }
39212
39198
  break;
@@ -39232,7 +39218,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39232
39218
  let _alt;
39233
39219
  this.enterOuterAlt(_localctx, 1);
39234
39220
  {
39235
- this.state = 1155;
39221
+ this.state = 1150;
39236
39222
  this._errHandler.sync(this);
39237
39223
  _alt = 1;
39238
39224
  do {
@@ -39240,7 +39226,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39240
39226
  case 1:
39241
39227
  {
39242
39228
  {
39243
- this.state = 1154;
39229
+ this.state = 1149;
39244
39230
  this.pick();
39245
39231
  }
39246
39232
  }
@@ -39248,18 +39234,18 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39248
39234
  default:
39249
39235
  throw new NoViableAltException_1.NoViableAltException(this);
39250
39236
  }
39251
- this.state = 1157;
39237
+ this.state = 1152;
39252
39238
  this._errHandler.sync(this);
39253
- _alt = this.interpreter.adaptivePredict(this._input, 115, this._ctx);
39239
+ _alt = this.interpreter.adaptivePredict(this._input, 114, this._ctx);
39254
39240
  } while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER);
39255
- this.state = 1161;
39241
+ this.state = 1156;
39256
39242
  this._errHandler.sync(this);
39257
- switch (this.interpreter.adaptivePredict(this._input, 116, this._ctx)) {
39243
+ switch (this.interpreter.adaptivePredict(this._input, 115, this._ctx)) {
39258
39244
  case 1:
39259
39245
  {
39260
- this.state = 1159;
39246
+ this.state = 1154;
39261
39247
  this.match(_MalloyParser.ELSE);
39262
- this.state = 1160;
39248
+ this.state = 1155;
39263
39249
  _localctx._pickElse = this.fieldExpr(0);
39264
39250
  }
39265
39251
  break;
@@ -39286,20 +39272,20 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39286
39272
  try {
39287
39273
  this.enterOuterAlt(_localctx, 1);
39288
39274
  {
39289
- this.state = 1163;
39275
+ this.state = 1158;
39290
39276
  this.match(_MalloyParser.PICK);
39291
- this.state = 1165;
39277
+ this.state = 1160;
39292
39278
  this._errHandler.sync(this);
39293
39279
  _la = this._input.LA(1);
39294
39280
  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
39281
  {
39296
- this.state = 1164;
39282
+ this.state = 1159;
39297
39283
  _localctx._pickValue = this.fieldExpr(0);
39298
39284
  }
39299
39285
  }
39300
- this.state = 1167;
39286
+ this.state = 1162;
39301
39287
  this.match(_MalloyParser.WHEN);
39302
- this.state = 1168;
39288
+ this.state = 1163;
39303
39289
  _localctx._pickWhen = this.partialAllowedFieldExpr();
39304
39290
  }
39305
39291
  } catch (re2) {
@@ -39324,32 +39310,32 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39324
39310
  let _alt;
39325
39311
  this.enterOuterAlt(_localctx, 1);
39326
39312
  {
39327
- this.state = 1170;
39313
+ this.state = 1165;
39328
39314
  this.fieldExpr(0);
39329
- this.state = 1175;
39315
+ this.state = 1170;
39330
39316
  this._errHandler.sync(this);
39331
- _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
39317
+ _alt = this.interpreter.adaptivePredict(this._input, 117, this._ctx);
39332
39318
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
39333
39319
  if (_alt === 1) {
39334
39320
  {
39335
39321
  {
39336
- this.state = 1171;
39322
+ this.state = 1166;
39337
39323
  this.match(_MalloyParser.COMMA);
39338
- this.state = 1172;
39324
+ this.state = 1167;
39339
39325
  this.fieldExpr(0);
39340
39326
  }
39341
39327
  }
39342
39328
  }
39343
- this.state = 1177;
39329
+ this.state = 1172;
39344
39330
  this._errHandler.sync(this);
39345
- _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
39331
+ _alt = this.interpreter.adaptivePredict(this._input, 117, this._ctx);
39346
39332
  }
39347
- this.state = 1179;
39333
+ this.state = 1174;
39348
39334
  this._errHandler.sync(this);
39349
39335
  _la = this._input.LA(1);
39350
39336
  if (_la === _MalloyParser.COMMA) {
39351
39337
  {
39352
- this.state = 1178;
39338
+ this.state = 1173;
39353
39339
  this.match(_MalloyParser.COMMA);
39354
39340
  }
39355
39341
  }
@@ -39376,32 +39362,32 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39376
39362
  let _alt;
39377
39363
  this.enterOuterAlt(_localctx, 1);
39378
39364
  {
39379
- this.state = 1181;
39365
+ this.state = 1176;
39380
39366
  this.fieldName();
39381
- this.state = 1188;
39367
+ this.state = 1183;
39382
39368
  this._errHandler.sync(this);
39383
- _alt = this.interpreter.adaptivePredict(this._input, 121, this._ctx);
39369
+ _alt = this.interpreter.adaptivePredict(this._input, 120, this._ctx);
39384
39370
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
39385
39371
  if (_alt === 1) {
39386
39372
  {
39387
39373
  {
39388
- this.state = 1183;
39374
+ this.state = 1178;
39389
39375
  this._errHandler.sync(this);
39390
39376
  _la = this._input.LA(1);
39391
39377
  if (_la === _MalloyParser.COMMA) {
39392
39378
  {
39393
- this.state = 1182;
39379
+ this.state = 1177;
39394
39380
  this.match(_MalloyParser.COMMA);
39395
39381
  }
39396
39382
  }
39397
- this.state = 1185;
39383
+ this.state = 1180;
39398
39384
  this.fieldName();
39399
39385
  }
39400
39386
  }
39401
39387
  }
39402
- this.state = 1190;
39388
+ this.state = 1185;
39403
39389
  this._errHandler.sync(this);
39404
- _alt = this.interpreter.adaptivePredict(this._input, 121, this._ctx);
39390
+ _alt = this.interpreter.adaptivePredict(this._input, 120, this._ctx);
39405
39391
  }
39406
39392
  }
39407
39393
  } catch (re2) {
@@ -39426,39 +39412,39 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39426
39412
  let _alt;
39427
39413
  this.enterOuterAlt(_localctx, 1);
39428
39414
  {
39429
- this.state = 1191;
39415
+ this.state = 1186;
39430
39416
  this.collectionMember();
39431
- this.state = 1198;
39417
+ this.state = 1193;
39432
39418
  this._errHandler.sync(this);
39433
- _alt = this.interpreter.adaptivePredict(this._input, 123, this._ctx);
39419
+ _alt = this.interpreter.adaptivePredict(this._input, 122, this._ctx);
39434
39420
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
39435
39421
  if (_alt === 1) {
39436
39422
  {
39437
39423
  {
39438
- this.state = 1193;
39424
+ this.state = 1188;
39439
39425
  this._errHandler.sync(this);
39440
39426
  _la = this._input.LA(1);
39441
39427
  if (_la === _MalloyParser.COMMA) {
39442
39428
  {
39443
- this.state = 1192;
39429
+ this.state = 1187;
39444
39430
  this.match(_MalloyParser.COMMA);
39445
39431
  }
39446
39432
  }
39447
- this.state = 1195;
39433
+ this.state = 1190;
39448
39434
  this.collectionMember();
39449
39435
  }
39450
39436
  }
39451
39437
  }
39452
- this.state = 1200;
39438
+ this.state = 1195;
39453
39439
  this._errHandler.sync(this);
39454
- _alt = this.interpreter.adaptivePredict(this._input, 123, this._ctx);
39440
+ _alt = this.interpreter.adaptivePredict(this._input, 122, this._ctx);
39455
39441
  }
39456
- this.state = 1202;
39442
+ this.state = 1197;
39457
39443
  this._errHandler.sync(this);
39458
39444
  _la = this._input.LA(1);
39459
39445
  if (_la === _MalloyParser.COMMA) {
39460
39446
  {
39461
- this.state = 1201;
39447
+ this.state = 1196;
39462
39448
  this.match(_MalloyParser.COMMA);
39463
39449
  }
39464
39450
  }
@@ -39484,25 +39470,25 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39484
39470
  try {
39485
39471
  this.enterOuterAlt(_localctx, 1);
39486
39472
  {
39487
- this.state = 1207;
39473
+ this.state = 1202;
39488
39474
  this._errHandler.sync(this);
39489
39475
  _la = this._input.LA(1);
39490
39476
  if (_la === _MalloyParser.BQ_STRING || _la === _MalloyParser.IDENTIFIER) {
39491
39477
  {
39492
- this.state = 1204;
39478
+ this.state = 1199;
39493
39479
  this.fieldPath();
39494
- this.state = 1205;
39480
+ this.state = 1200;
39495
39481
  this.match(_MalloyParser.DOT);
39496
39482
  }
39497
39483
  }
39498
- this.state = 1209;
39484
+ this.state = 1204;
39499
39485
  this.match(_MalloyParser.STAR);
39500
- this.state = 1211;
39486
+ this.state = 1206;
39501
39487
  this._errHandler.sync(this);
39502
- switch (this.interpreter.adaptivePredict(this._input, 126, this._ctx)) {
39488
+ switch (this.interpreter.adaptivePredict(this._input, 125, this._ctx)) {
39503
39489
  case 1:
39504
39490
  {
39505
- this.state = 1210;
39491
+ this.state = 1205;
39506
39492
  this.starQualified();
39507
39493
  }
39508
39494
  break;
@@ -39529,29 +39515,29 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39529
39515
  try {
39530
39516
  this.enterOuterAlt(_localctx, 1);
39531
39517
  {
39532
- this.state = 1213;
39518
+ this.state = 1208;
39533
39519
  this.match(_MalloyParser.OCURLY);
39534
- this.state = 1217;
39520
+ this.state = 1212;
39535
39521
  this._errHandler.sync(this);
39536
39522
  _la = this._input.LA(1);
39537
39523
  do {
39538
39524
  {
39539
- this.state = 1217;
39525
+ this.state = 1212;
39540
39526
  this._errHandler.sync(this);
39541
39527
  switch (this._input.LA(1)) {
39542
39528
  case _MalloyParser.EXCEPT:
39543
39529
  {
39544
39530
  {
39545
- this.state = 1214;
39531
+ this.state = 1209;
39546
39532
  this.match(_MalloyParser.EXCEPT);
39547
- this.state = 1215;
39533
+ this.state = 1210;
39548
39534
  this.fieldNameList();
39549
39535
  }
39550
39536
  }
39551
39537
  break;
39552
39538
  case _MalloyParser.COMMA:
39553
39539
  {
39554
- this.state = 1216;
39540
+ this.state = 1211;
39555
39541
  this.match(_MalloyParser.COMMA);
39556
39542
  }
39557
39543
  break;
@@ -39559,11 +39545,11 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39559
39545
  throw new NoViableAltException_1.NoViableAltException(this);
39560
39546
  }
39561
39547
  }
39562
- this.state = 1219;
39548
+ this.state = 1214;
39563
39549
  this._errHandler.sync(this);
39564
39550
  _la = this._input.LA(1);
39565
39551
  } while (_la === _MalloyParser.EXCEPT || _la === _MalloyParser.COMMA);
39566
- this.state = 1221;
39552
+ this.state = 1216;
39567
39553
  this.match(_MalloyParser.CCURLY);
39568
39554
  }
39569
39555
  } catch (re2) {
@@ -39587,16 +39573,16 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39587
39573
  try {
39588
39574
  this.enterOuterAlt(_localctx, 1);
39589
39575
  {
39590
- this.state = 1223;
39576
+ this.state = 1218;
39591
39577
  this.tags();
39592
- this.state = 1224;
39578
+ this.state = 1219;
39593
39579
  this.fieldPath();
39594
- this.state = 1226;
39580
+ this.state = 1221;
39595
39581
  this._errHandler.sync(this);
39596
39582
  _la = this._input.LA(1);
39597
39583
  if (_la === _MalloyParser.DOT) {
39598
39584
  {
39599
- this.state = 1225;
39585
+ this.state = 1220;
39600
39586
  this.refExpr();
39601
39587
  }
39602
39588
  }
@@ -39619,28 +39605,28 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39619
39605
  let _localctx = new RefExprContext(this._ctx, this.state);
39620
39606
  this.enterRule(_localctx, 242, _MalloyParser.RULE_refExpr);
39621
39607
  try {
39622
- this.state = 1235;
39608
+ this.state = 1230;
39623
39609
  this._errHandler.sync(this);
39624
- switch (this.interpreter.adaptivePredict(this._input, 130, this._ctx)) {
39610
+ switch (this.interpreter.adaptivePredict(this._input, 129, this._ctx)) {
39625
39611
  case 1:
39626
39612
  this.enterOuterAlt(_localctx, 1);
39627
39613
  {
39628
- this.state = 1228;
39614
+ this.state = 1223;
39629
39615
  this.match(_MalloyParser.DOT);
39630
- this.state = 1229;
39616
+ this.state = 1224;
39631
39617
  this.timeframe();
39632
39618
  }
39633
39619
  break;
39634
39620
  case 2:
39635
39621
  this.enterOuterAlt(_localctx, 2);
39636
39622
  {
39637
- this.state = 1230;
39623
+ this.state = 1225;
39638
39624
  this.match(_MalloyParser.DOT);
39639
- this.state = 1231;
39625
+ this.state = 1226;
39640
39626
  this.aggregate();
39641
- this.state = 1232;
39627
+ this.state = 1227;
39642
39628
  this.match(_MalloyParser.OPAREN);
39643
- this.state = 1233;
39629
+ this.state = 1228;
39644
39630
  this.match(_MalloyParser.CPAREN);
39645
39631
  }
39646
39632
  break;
@@ -39663,27 +39649,27 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39663
39649
  let _localctx = new CollectionMemberContext(this._ctx, this.state);
39664
39650
  this.enterRule(_localctx, 244, _MalloyParser.RULE_collectionMember);
39665
39651
  try {
39666
- this.state = 1240;
39652
+ this.state = 1235;
39667
39653
  this._errHandler.sync(this);
39668
- switch (this.interpreter.adaptivePredict(this._input, 131, this._ctx)) {
39654
+ switch (this.interpreter.adaptivePredict(this._input, 130, this._ctx)) {
39669
39655
  case 1:
39670
39656
  this.enterOuterAlt(_localctx, 1);
39671
39657
  {
39672
- this.state = 1237;
39658
+ this.state = 1232;
39673
39659
  this.taggedRef();
39674
39660
  }
39675
39661
  break;
39676
39662
  case 2:
39677
39663
  this.enterOuterAlt(_localctx, 2);
39678
39664
  {
39679
- this.state = 1238;
39665
+ this.state = 1233;
39680
39666
  this.collectionWildCard();
39681
39667
  }
39682
39668
  break;
39683
39669
  case 3:
39684
39670
  this.enterOuterAlt(_localctx, 3);
39685
39671
  {
39686
- this.state = 1239;
39672
+ this.state = 1234;
39687
39673
  this.fieldDef();
39688
39674
  }
39689
39675
  break;
@@ -39709,25 +39695,25 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39709
39695
  let _alt;
39710
39696
  this.enterOuterAlt(_localctx, 1);
39711
39697
  {
39712
- this.state = 1242;
39698
+ this.state = 1237;
39713
39699
  this.fieldName();
39714
- this.state = 1247;
39700
+ this.state = 1242;
39715
39701
  this._errHandler.sync(this);
39716
- _alt = this.interpreter.adaptivePredict(this._input, 132, this._ctx);
39702
+ _alt = this.interpreter.adaptivePredict(this._input, 131, this._ctx);
39717
39703
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
39718
39704
  if (_alt === 1) {
39719
39705
  {
39720
39706
  {
39721
- this.state = 1243;
39707
+ this.state = 1238;
39722
39708
  this.match(_MalloyParser.DOT);
39723
- this.state = 1244;
39709
+ this.state = 1239;
39724
39710
  this.fieldName();
39725
39711
  }
39726
39712
  }
39727
39713
  }
39728
- this.state = 1249;
39714
+ this.state = 1244;
39729
39715
  this._errHandler.sync(this);
39730
- _alt = this.interpreter.adaptivePredict(this._input, 132, this._ctx);
39716
+ _alt = this.interpreter.adaptivePredict(this._input, 131, this._ctx);
39731
39717
  }
39732
39718
  }
39733
39719
  } catch (re2) {
@@ -39750,7 +39736,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39750
39736
  try {
39751
39737
  this.enterOuterAlt(_localctx, 1);
39752
39738
  {
39753
- this.state = 1250;
39739
+ this.state = 1245;
39754
39740
  this.id();
39755
39741
  }
39756
39742
  } catch (re2) {
@@ -39773,7 +39759,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39773
39759
  try {
39774
39760
  this.enterOuterAlt(_localctx, 1);
39775
39761
  {
39776
- this.state = 1252;
39762
+ this.state = 1247;
39777
39763
  this.id();
39778
39764
  }
39779
39765
  } catch (re2) {
@@ -39796,9 +39782,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39796
39782
  try {
39797
39783
  this.enterOuterAlt(_localctx, 1);
39798
39784
  {
39799
- this.state = 1254;
39785
+ this.state = 1249;
39800
39786
  this.fieldExpr(0);
39801
- this.state = 1255;
39787
+ this.state = 1250;
39802
39788
  this.match(_MalloyParser.EOF);
39803
39789
  }
39804
39790
  } catch (re2) {
@@ -39821,7 +39807,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39821
39807
  try {
39822
39808
  this.enterOuterAlt(_localctx, 1);
39823
39809
  {
39824
- this.state = 1257;
39810
+ this.state = 1252;
39825
39811
  this.id();
39826
39812
  }
39827
39813
  } catch (re2) {
@@ -39844,7 +39830,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39844
39830
  try {
39845
39831
  this.enterOuterAlt(_localctx, 1);
39846
39832
  {
39847
- this.state = 1259;
39833
+ this.state = 1254;
39848
39834
  this.id();
39849
39835
  }
39850
39836
  } catch (re2) {
@@ -39867,7 +39853,7 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39867
39853
  try {
39868
39854
  this.enterOuterAlt(_localctx, 1);
39869
39855
  {
39870
- this.state = 1261;
39856
+ this.state = 1256;
39871
39857
  this.string();
39872
39858
  }
39873
39859
  } catch (re2) {
@@ -39890,15 +39876,15 @@ ${struct.dialect.sqlFinalStage("__stage0", [
39890
39876
  try {
39891
39877
  this.enterOuterAlt(_localctx, 1);
39892
39878
  {
39893
- this.state = 1263;
39879
+ this.state = 1258;
39894
39880
  this.match(_MalloyParser.SEMI);
39895
- this.state = 1264;
39881
+ this.state = 1259;
39896
39882
  this.match(_MalloyParser.SEMI);
39897
- this.state = 1265;
39883
+ this.state = 1260;
39898
39884
  this.match(_MalloyParser.OBRACK);
39899
- this.state = 1266;
39885
+ this.state = 1261;
39900
39886
  this.string();
39901
- this.state = 1267;
39887
+ this.state = 1262;
39902
39888
  this.match(_MalloyParser.CBRACK);
39903
39889
  }
39904
39890
  } catch (re2) {
@@ -40721,9 +40707,9 @@ ${struct.dialect.sqlFinalStage("__stage0", [
40721
40707
  ];
40722
40708
  MalloyParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(MalloyParser._LITERAL_NAMES, MalloyParser._SYMBOLIC_NAMES, []);
40723
40709
  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";
40710
+ 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";
40711
+ 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";
40712
+ 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
40713
  MalloyParser._serializedATN = Utils.join([
40728
40714
  MalloyParser._serializedATNSegment0,
40729
40715
  MalloyParser._serializedATNSegment1,
@@ -44922,57 +44908,18 @@ ${struct.dialect.sqlFinalStage("__stage0", [
44922
44908
  }
44923
44909
  };
44924
44910
  exports.NestEntryContext = NestEntryContext;
44925
- var NestExistingContext = class extends NestEntryContext {
44911
+ var NestDefContext = class extends NestEntryContext {
44926
44912
  tags() {
44927
44913
  return this.getRuleContext(0, TagsContext);
44928
44914
  }
44929
- fieldPath() {
44930
- return this.getRuleContext(0, FieldPathContext);
44931
- }
44932
- PLUS() {
44933
- return this.tryGetToken(MalloyParser.PLUS, 0);
44934
- }
44935
44915
  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);
44916
+ return this.getRuleContext(0, VExprContext);
44967
44917
  }
44968
44918
  queryName() {
44969
- return this.getRuleContext(0, QueryNameContext);
44919
+ return this.tryGetRuleContext(0, QueryNameContext);
44970
44920
  }
44971
44921
  isDefine() {
44972
- return this.getRuleContext(0, IsDefineContext);
44973
- }
44974
- vExpr() {
44975
- return this.getRuleContext(0, VExprContext);
44922
+ return this.tryGetRuleContext(0, IsDefineContext);
44976
44923
  }
44977
44924
  constructor(ctx) {
44978
44925
  super(ctx.parent, ctx.invokingState);
@@ -55373,7 +55320,7 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
55373
55320
  };
55374
55321
  structPath = this.source.path;
55375
55322
  const joinUsage = this.getJoinUsage(inputFS);
55376
- const allUsagesSame = joinUsage.length === 1 || joinUsage.slice(1).every((p3) => joinPathEq(p3, joinUsage[0]));
55323
+ const allUsagesSame = joinUsage.length === 1 || joinUsage.length > 1 && joinUsage.slice(1).every((p3) => joinPathEq(p3, joinUsage[0]));
55377
55324
  if (allUsagesSame) {
55378
55325
  structPath = joinUsage[0].map((p3) => p3.name);
55379
55326
  sourceRelationship = joinUsage[0];
@@ -55515,6 +55462,13 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
55515
55462
  result.push(def2.relationship);
55516
55463
  }
55517
55464
  }
55465
+ } else if (frag.type === "source-reference") {
55466
+ if (frag.path) {
55467
+ const def2 = lookup6(fs, frag.path);
55468
+ result.push(def2.relationship);
55469
+ } else {
55470
+ result.push([]);
55471
+ }
55518
55472
  }
55519
55473
  }
55520
55474
  });
@@ -63866,6 +63820,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
63866
63820
  this.log("A multi-segment view cannot be used as a refinement");
63867
63821
  return [];
63868
63822
  }
63823
+ getImplicitName() {
63824
+ return this.operation.getImplicitName();
63825
+ }
63869
63826
  };
63870
63827
  exports.ViewArrow = ViewArrow;
63871
63828
  }
@@ -63978,6 +63935,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
63978
63935
  }
63979
63936
  return (0, refine_utils_1.refine)(this, pipeline, refineFrom[0]);
63980
63937
  }
63938
+ getImplicitName() {
63939
+ return this.base.getImplicitName();
63940
+ }
63981
63941
  };
63982
63942
  exports.ViewRefine = ViewRefine;
63983
63943
  }
@@ -64095,6 +64055,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
64095
64055
  }
64096
64056
  return pipeline;
64097
64057
  }
64058
+ getImplicitName() {
64059
+ return this.reference.nameString;
64060
+ }
64098
64061
  };
64099
64062
  exports.ReferenceView = ReferenceView;
64100
64063
  }
@@ -64837,6 +64800,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
64837
64800
  }
64838
64801
  return pipeline;
64839
64802
  }
64803
+ getImplicitName() {
64804
+ return void 0;
64805
+ }
64840
64806
  };
64841
64807
  exports.QOpDescView = QOpDescView;
64842
64808
  }
@@ -66397,7 +66363,7 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
66397
66363
  if (aggFunc === "sum") {
66398
66364
  expr2 = new ast.ExprSum(void 0, ref3);
66399
66365
  } else {
66400
- this.contextError(agg, "'${aggFunc}' is not legal in a reference-only aggregation");
66366
+ this.contextError(agg, `\`${aggFunc}\` is not legal in a reference-only aggregation`);
66401
66367
  return ref3;
66402
66368
  }
66403
66369
  }
@@ -66579,27 +66545,23 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
66579
66545
  visitNestedQueryList(pcx) {
66580
66546
  return new ast.Nests(this.only(pcx.nestEntry().map((cx) => this.visit(cx)), (x6) => x6 instanceof ast.NestFieldDeclaration && x6, "query"));
66581
66547
  }
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
66548
  visitNestDef(pcx) {
66598
- const name = (0, parse_utils_1.getId)(pcx.queryName());
66549
+ const nameCx = pcx.queryName();
66550
+ let name;
66599
66551
  const vExpr = this.getVExpr(pcx.vExpr());
66552
+ if (nameCx) {
66553
+ name = (0, parse_utils_1.getId)(nameCx);
66554
+ } else {
66555
+ const implicitName = vExpr.getImplicitName();
66556
+ if (implicitName === void 0) {
66557
+ this.contextError(pcx, "`nest:` view requires a name (add `nest_name is ...`)");
66558
+ }
66559
+ name = implicitName !== null && implicitName !== void 0 ? implicitName : "__unnamed__";
66560
+ }
66600
66561
  const nestDef = new ast.NestFieldDeclaration(name, vExpr);
66562
+ const isDefineCx = pcx.isDefine();
66601
66563
  nestDef.extendNote({
66602
- notes: this.getNotes(pcx.tags()).concat(this.getIsNotes(pcx.isDefine()))
66564
+ notes: this.getNotes(pcx.tags()).concat(isDefineCx ? this.getIsNotes(isDefineCx) : [])
66603
66565
  });
66604
66566
  return this.astAt(nestDef, pcx);
66605
66567
  }
@@ -67198,42 +67160,9 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
67198
67160
  var require_document_symbol_walker = __commonJS({
67199
67161
  "../malloy/dist/lang/parse-tree-walkers/document-symbol-walker.js"(exports) {
67200
67162
  "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
67163
  Object.defineProperty(exports, "__esModule", { value: true });
67234
67164
  exports.walkForDocumentSymbols = void 0;
67235
67165
  var ParseTreeWalker_1 = require_ParseTreeWalker();
67236
- var parser3 = __importStar(require_MalloyParser());
67237
67166
  var parse_utils_1 = require_parse_utils();
67238
67167
  var DocumentSymbolWalker = class {
67239
67168
  constructor(translator, tokens, scopes, symbols4) {
@@ -67333,10 +67262,48 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
67333
67262
  exitExploreQueryDef(_pcx) {
67334
67263
  this.popScope();
67335
67264
  }
67265
+ getNestDefName(pcx) {
67266
+ const nameCx = pcx.queryName();
67267
+ if (nameCx) {
67268
+ return nameCx.id().text;
67269
+ }
67270
+ let result = void 0;
67271
+ let done = false;
67272
+ const vExprListen = {
67273
+ enterVArrow(pcx2) {
67274
+ pcx2.vExpr().enterRule(vExprListen);
67275
+ },
67276
+ enterVSeg(pcx2) {
67277
+ pcx2.segExpr().enterRule(segExprListen);
67278
+ }
67279
+ };
67280
+ const segExprListen = {
67281
+ enterSegField(pcx2) {
67282
+ const names = pcx2.fieldPath().fieldName();
67283
+ if (!done)
67284
+ result !== null && result !== void 0 ? result : result = names[names.length - 1].id().text;
67285
+ },
67286
+ enterSegParen(pcx2) {
67287
+ pcx2.vExpr().enterRule(vExprListen);
67288
+ },
67289
+ enterSegRefine(pcx2) {
67290
+ pcx2._lhs.enterRule(segExprListen);
67291
+ },
67292
+ enterSegOps() {
67293
+ result = void 0;
67294
+ done = true;
67295
+ }
67296
+ };
67297
+ pcx.vExpr().enterRule(vExprListen);
67298
+ return result;
67299
+ }
67336
67300
  handleNestEntry(pcx) {
67301
+ const name = this.getNestDefName(pcx);
67302
+ if (name === void 0)
67303
+ return;
67337
67304
  const symbol2 = {
67338
67305
  range: this.translator.rangeFromContext(pcx),
67339
- name: pcx instanceof parser3.NestExistingContext ? pcx.fieldPath().text : pcx.queryName().id().text,
67306
+ name,
67340
67307
  type: "query",
67341
67308
  children: []
67342
67309
  };
@@ -67346,12 +67313,11 @@ QUERY: ${(0, util_1.inspect)(opDesc, { breakLength: 72, depth: Infinity })}`);
67346
67313
  }
67347
67314
  return symbol2;
67348
67315
  }
67349
- enterNestExisting(pcx) {
67350
- this.handleNestEntry(pcx);
67351
- }
67352
67316
  enterNestDef(pcx) {
67353
67317
  const symbol2 = this.handleNestEntry(pcx);
67354
- this.scopes.push(symbol2);
67318
+ if (symbol2) {
67319
+ this.scopes.push(symbol2);
67320
+ }
67355
67321
  }
67356
67322
  exitNestDef(_pcx) {
67357
67323
  this.popScope();