@malloydata/malloy 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.
@@ -26,9 +26,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  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;
28
28
  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;
29
- 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;
30
- 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;
31
- exports.ExperimentalStatementForTestingContext = exports.ConnectionNameContext = exports.NameSQLBlockContext = exports.SqlExploreNameRefContext = exports.JustExprContext = exports.FieldNameContext = exports.JoinNameContext = exports.FieldPathContext = exports.CollectionMemberContext = exports.RefExprContext = void 0;
29
+ 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;
30
+ 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;
31
+ exports.ExperimentalStatementForTestingContext = exports.ConnectionNameContext = exports.NameSQLBlockContext = exports.SqlExploreNameRefContext = exports.JustExprContext = exports.FieldNameContext = exports.JoinNameContext = exports.FieldPathContext = exports.CollectionMemberContext = void 0;
32
32
  const ATN_1 = require("antlr4ts/atn/ATN");
33
33
  const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer");
34
34
  const FailedPredicateException_1 = require("antlr4ts/FailedPredicateException");
@@ -4116,46 +4116,26 @@ class MalloyParser extends Parser_1.Parser {
4116
4116
  nestEntry() {
4117
4117
  let _localctx = new NestEntryContext(this._ctx, this.state);
4118
4118
  this.enterRule(_localctx, 158, MalloyParser.RULE_nestEntry);
4119
- let _la;
4120
4119
  try {
4121
- this.state = 859;
4122
- this._errHandler.sync(this);
4123
- switch (this.interpreter.adaptivePredict(this._input, 81, this._ctx)) {
4124
- case 1:
4125
- _localctx = new NestExistingContext(_localctx);
4126
- this.enterOuterAlt(_localctx, 1);
4127
- {
4128
- this.state = 848;
4129
- this.tags();
4130
- this.state = 849;
4131
- this.fieldPath();
4132
- this.state = 852;
4133
- this._errHandler.sync(this);
4134
- _la = this._input.LA(1);
4135
- if (_la === MalloyParser.PLUS) {
4136
- {
4137
- this.state = 850;
4138
- this.match(MalloyParser.PLUS);
4139
- this.state = 851;
4140
- this.vExpr();
4141
- }
4120
+ _localctx = new NestDefContext(_localctx);
4121
+ this.enterOuterAlt(_localctx, 1);
4122
+ {
4123
+ this.state = 848;
4124
+ this.tags();
4125
+ this.state = 852;
4126
+ this._errHandler.sync(this);
4127
+ switch (this.interpreter.adaptivePredict(this._input, 80, this._ctx)) {
4128
+ case 1:
4129
+ {
4130
+ this.state = 849;
4131
+ this.queryName();
4132
+ this.state = 850;
4133
+ this.isDefine();
4142
4134
  }
4143
- }
4144
- break;
4145
- case 2:
4146
- _localctx = new NestDefContext(_localctx);
4147
- this.enterOuterAlt(_localctx, 2);
4148
- {
4149
- this.state = 854;
4150
- this.tags();
4151
- this.state = 855;
4152
- this.queryName();
4153
- this.state = 856;
4154
- this.isDefine();
4155
- this.state = 857;
4156
- this.vExpr();
4157
- }
4158
- break;
4135
+ break;
4136
+ }
4137
+ this.state = 854;
4138
+ this.vExpr();
4159
4139
  }
4160
4140
  }
4161
4141
  catch (re) {
@@ -4180,11 +4160,11 @@ class MalloyParser extends Parser_1.Parser {
4180
4160
  try {
4181
4161
  this.enterOuterAlt(_localctx, 1);
4182
4162
  {
4183
- this.state = 861;
4163
+ this.state = 856;
4184
4164
  this.tags();
4185
- this.state = 862;
4165
+ this.state = 857;
4186
4166
  this.match(MalloyParser.AGGREGATE);
4187
- this.state = 863;
4167
+ this.state = 858;
4188
4168
  this.queryFieldList();
4189
4169
  }
4190
4170
  }
@@ -4210,11 +4190,11 @@ class MalloyParser extends Parser_1.Parser {
4210
4190
  try {
4211
4191
  this.enterOuterAlt(_localctx, 1);
4212
4192
  {
4213
- this.state = 865;
4193
+ this.state = 860;
4214
4194
  this.tags();
4215
- this.state = 866;
4195
+ this.state = 861;
4216
4196
  this.match(MalloyParser.CALCULATE);
4217
- this.state = 867;
4197
+ this.state = 862;
4218
4198
  this.queryFieldList();
4219
4199
  }
4220
4200
  }
@@ -4241,9 +4221,9 @@ class MalloyParser extends Parser_1.Parser {
4241
4221
  try {
4242
4222
  this.enterOuterAlt(_localctx, 1);
4243
4223
  {
4244
- this.state = 869;
4224
+ this.state = 864;
4245
4225
  this.tags();
4246
- this.state = 870;
4226
+ this.state = 865;
4247
4227
  _la = this._input.LA(1);
4248
4228
  if (!(_la === MalloyParser.PROJECT || _la === MalloyParser.SELECT)) {
4249
4229
  this._errHandler.recoverInline(this);
@@ -4255,7 +4235,7 @@ class MalloyParser extends Parser_1.Parser {
4255
4235
  this._errHandler.reportMatch(this);
4256
4236
  this.consume();
4257
4237
  }
4258
- this.state = 871;
4238
+ this.state = 866;
4259
4239
  this.fieldCollection();
4260
4240
  }
4261
4241
  }
@@ -4283,34 +4263,34 @@ class MalloyParser extends Parser_1.Parser {
4283
4263
  let _alt;
4284
4264
  this.enterOuterAlt(_localctx, 1);
4285
4265
  {
4286
- this.state = 873;
4266
+ this.state = 868;
4287
4267
  this.match(MalloyParser.PARTITION_BY);
4288
- this.state = 874;
4268
+ this.state = 869;
4289
4269
  this.id();
4290
- this.state = 879;
4270
+ this.state = 874;
4291
4271
  this._errHandler.sync(this);
4292
- _alt = this.interpreter.adaptivePredict(this._input, 82, this._ctx);
4272
+ _alt = this.interpreter.adaptivePredict(this._input, 81, this._ctx);
4293
4273
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
4294
4274
  if (_alt === 1) {
4295
4275
  {
4296
4276
  {
4297
- this.state = 875;
4277
+ this.state = 870;
4298
4278
  this.match(MalloyParser.COMMA);
4299
- this.state = 876;
4279
+ this.state = 871;
4300
4280
  this.id();
4301
4281
  }
4302
4282
  }
4303
4283
  }
4304
- this.state = 881;
4284
+ this.state = 876;
4305
4285
  this._errHandler.sync(this);
4306
- _alt = this.interpreter.adaptivePredict(this._input, 82, this._ctx);
4286
+ _alt = this.interpreter.adaptivePredict(this._input, 81, this._ctx);
4307
4287
  }
4308
- this.state = 883;
4288
+ this.state = 878;
4309
4289
  this._errHandler.sync(this);
4310
4290
  _la = this._input.LA(1);
4311
4291
  if (_la === MalloyParser.COMMA) {
4312
4292
  {
4313
- this.state = 882;
4293
+ this.state = 877;
4314
4294
  this.match(MalloyParser.COMMA);
4315
4295
  }
4316
4296
  }
@@ -4338,9 +4318,9 @@ class MalloyParser extends Parser_1.Parser {
4338
4318
  try {
4339
4319
  this.enterOuterAlt(_localctx, 1);
4340
4320
  {
4341
- this.state = 885;
4321
+ this.state = 880;
4342
4322
  this.match(MalloyParser.ORDER_BY);
4343
- this.state = 886;
4323
+ this.state = 881;
4344
4324
  this.ordering();
4345
4325
  }
4346
4326
  }
@@ -4368,39 +4348,39 @@ class MalloyParser extends Parser_1.Parser {
4368
4348
  let _alt;
4369
4349
  this.enterOuterAlt(_localctx, 1);
4370
4350
  {
4371
- this.state = 888;
4351
+ this.state = 883;
4372
4352
  this.orderBySpec();
4373
- this.state = 895;
4353
+ this.state = 890;
4374
4354
  this._errHandler.sync(this);
4375
- _alt = this.interpreter.adaptivePredict(this._input, 85, this._ctx);
4355
+ _alt = this.interpreter.adaptivePredict(this._input, 84, this._ctx);
4376
4356
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
4377
4357
  if (_alt === 1) {
4378
4358
  {
4379
4359
  {
4380
- this.state = 890;
4360
+ this.state = 885;
4381
4361
  this._errHandler.sync(this);
4382
4362
  _la = this._input.LA(1);
4383
4363
  if (_la === MalloyParser.COMMA) {
4384
4364
  {
4385
- this.state = 889;
4365
+ this.state = 884;
4386
4366
  this.match(MalloyParser.COMMA);
4387
4367
  }
4388
4368
  }
4389
- this.state = 892;
4369
+ this.state = 887;
4390
4370
  this.orderBySpec();
4391
4371
  }
4392
4372
  }
4393
4373
  }
4394
- this.state = 897;
4374
+ this.state = 892;
4395
4375
  this._errHandler.sync(this);
4396
- _alt = this.interpreter.adaptivePredict(this._input, 85, this._ctx);
4376
+ _alt = this.interpreter.adaptivePredict(this._input, 84, this._ctx);
4397
4377
  }
4398
- this.state = 899;
4378
+ this.state = 894;
4399
4379
  this._errHandler.sync(this);
4400
4380
  _la = this._input.LA(1);
4401
4381
  if (_la === MalloyParser.COMMA) {
4402
4382
  {
4403
- this.state = 898;
4383
+ this.state = 893;
4404
4384
  this.match(MalloyParser.COMMA);
4405
4385
  }
4406
4386
  }
@@ -4429,31 +4409,31 @@ class MalloyParser extends Parser_1.Parser {
4429
4409
  try {
4430
4410
  this.enterOuterAlt(_localctx, 1);
4431
4411
  {
4432
- this.state = 903;
4412
+ this.state = 898;
4433
4413
  this._errHandler.sync(this);
4434
4414
  switch (this._input.LA(1)) {
4435
4415
  case MalloyParser.INTEGER_LITERAL:
4436
4416
  {
4437
- this.state = 901;
4417
+ this.state = 896;
4438
4418
  this.match(MalloyParser.INTEGER_LITERAL);
4439
4419
  }
4440
4420
  break;
4441
4421
  case MalloyParser.BQ_STRING:
4442
4422
  case MalloyParser.IDENTIFIER:
4443
4423
  {
4444
- this.state = 902;
4424
+ this.state = 897;
4445
4425
  this.fieldName();
4446
4426
  }
4447
4427
  break;
4448
4428
  default:
4449
4429
  throw new NoViableAltException_1.NoViableAltException(this);
4450
4430
  }
4451
- this.state = 906;
4431
+ this.state = 901;
4452
4432
  this._errHandler.sync(this);
4453
4433
  _la = this._input.LA(1);
4454
4434
  if (_la === MalloyParser.ASC || _la === MalloyParser.DESC) {
4455
4435
  {
4456
- this.state = 905;
4436
+ this.state = 900;
4457
4437
  _la = this._input.LA(1);
4458
4438
  if (!(_la === MalloyParser.ASC || _la === MalloyParser.DESC)) {
4459
4439
  this._errHandler.recoverInline(this);
@@ -4491,9 +4471,9 @@ class MalloyParser extends Parser_1.Parser {
4491
4471
  try {
4492
4472
  this.enterOuterAlt(_localctx, 1);
4493
4473
  {
4494
- this.state = 908;
4474
+ this.state = 903;
4495
4475
  this.match(MalloyParser.LIMIT);
4496
- this.state = 909;
4476
+ this.state = 904;
4497
4477
  this.match(MalloyParser.INTEGER_LITERAL);
4498
4478
  }
4499
4479
  }
@@ -4517,24 +4497,24 @@ class MalloyParser extends Parser_1.Parser {
4517
4497
  let _localctx = new BySpecContext(this._ctx, this.state);
4518
4498
  this.enterRule(_localctx, 176, MalloyParser.RULE_bySpec);
4519
4499
  try {
4520
- this.state = 915;
4500
+ this.state = 910;
4521
4501
  this._errHandler.sync(this);
4522
- switch (this.interpreter.adaptivePredict(this._input, 89, this._ctx)) {
4502
+ switch (this.interpreter.adaptivePredict(this._input, 88, this._ctx)) {
4523
4503
  case 1:
4524
4504
  this.enterOuterAlt(_localctx, 1);
4525
4505
  {
4526
- this.state = 911;
4506
+ this.state = 906;
4527
4507
  this.match(MalloyParser.BY);
4528
- this.state = 912;
4508
+ this.state = 907;
4529
4509
  this.fieldName();
4530
4510
  }
4531
4511
  break;
4532
4512
  case 2:
4533
4513
  this.enterOuterAlt(_localctx, 2);
4534
4514
  {
4535
- this.state = 913;
4515
+ this.state = 908;
4536
4516
  this.match(MalloyParser.BY);
4537
- this.state = 914;
4517
+ this.state = 909;
4538
4518
  this.fieldExpr(0);
4539
4519
  }
4540
4520
  break;
@@ -4563,16 +4543,16 @@ class MalloyParser extends Parser_1.Parser {
4563
4543
  try {
4564
4544
  this.enterOuterAlt(_localctx, 1);
4565
4545
  {
4566
- this.state = 917;
4546
+ this.state = 912;
4567
4547
  this.match(MalloyParser.TOP);
4568
- this.state = 918;
4548
+ this.state = 913;
4569
4549
  this.match(MalloyParser.INTEGER_LITERAL);
4570
- this.state = 920;
4550
+ this.state = 915;
4571
4551
  this._errHandler.sync(this);
4572
4552
  _la = this._input.LA(1);
4573
4553
  if (_la === MalloyParser.BY) {
4574
4554
  {
4575
- this.state = 919;
4555
+ this.state = 914;
4576
4556
  this.bySpec();
4577
4557
  }
4578
4558
  }
@@ -4599,23 +4579,23 @@ class MalloyParser extends Parser_1.Parser {
4599
4579
  this.enterRule(_localctx, 180, MalloyParser.RULE_indexElement);
4600
4580
  let _la;
4601
4581
  try {
4602
- this.state = 928;
4582
+ this.state = 923;
4603
4583
  this._errHandler.sync(this);
4604
4584
  switch (this._input.LA(1)) {
4605
4585
  case MalloyParser.BQ_STRING:
4606
4586
  case MalloyParser.IDENTIFIER:
4607
4587
  this.enterOuterAlt(_localctx, 1);
4608
4588
  {
4609
- this.state = 922;
4589
+ this.state = 917;
4610
4590
  this.fieldPath();
4611
- this.state = 925;
4591
+ this.state = 920;
4612
4592
  this._errHandler.sync(this);
4613
4593
  _la = this._input.LA(1);
4614
4594
  if (_la === MalloyParser.DOT) {
4615
4595
  {
4616
- this.state = 923;
4596
+ this.state = 918;
4617
4597
  this.match(MalloyParser.DOT);
4618
- this.state = 924;
4598
+ this.state = 919;
4619
4599
  this.match(MalloyParser.STAR);
4620
4600
  }
4621
4601
  }
@@ -4624,7 +4604,7 @@ class MalloyParser extends Parser_1.Parser {
4624
4604
  case MalloyParser.STAR:
4625
4605
  this.enterOuterAlt(_localctx, 2);
4626
4606
  {
4627
- this.state = 927;
4607
+ this.state = 922;
4628
4608
  this.match(MalloyParser.STAR);
4629
4609
  }
4630
4610
  break;
@@ -4656,32 +4636,32 @@ class MalloyParser extends Parser_1.Parser {
4656
4636
  let _alt;
4657
4637
  this.enterOuterAlt(_localctx, 1);
4658
4638
  {
4659
- this.state = 930;
4639
+ this.state = 925;
4660
4640
  this.indexElement();
4661
- this.state = 937;
4641
+ this.state = 932;
4662
4642
  this._errHandler.sync(this);
4663
- _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx);
4643
+ _alt = this.interpreter.adaptivePredict(this._input, 93, this._ctx);
4664
4644
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
4665
4645
  if (_alt === 1) {
4666
4646
  {
4667
4647
  {
4668
- this.state = 932;
4648
+ this.state = 927;
4669
4649
  this._errHandler.sync(this);
4670
4650
  _la = this._input.LA(1);
4671
4651
  if (_la === MalloyParser.COMMA) {
4672
4652
  {
4673
- this.state = 931;
4653
+ this.state = 926;
4674
4654
  this.match(MalloyParser.COMMA);
4675
4655
  }
4676
4656
  }
4677
- this.state = 934;
4657
+ this.state = 929;
4678
4658
  this.indexElement();
4679
4659
  }
4680
4660
  }
4681
4661
  }
4682
- this.state = 939;
4662
+ this.state = 934;
4683
4663
  this._errHandler.sync(this);
4684
- _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx);
4664
+ _alt = this.interpreter.adaptivePredict(this._input, 93, this._ctx);
4685
4665
  }
4686
4666
  }
4687
4667
  }
@@ -4708,18 +4688,18 @@ class MalloyParser extends Parser_1.Parser {
4708
4688
  try {
4709
4689
  this.enterOuterAlt(_localctx, 1);
4710
4690
  {
4711
- this.state = 940;
4691
+ this.state = 935;
4712
4692
  this.match(MalloyParser.INDEX);
4713
- this.state = 941;
4693
+ this.state = 936;
4714
4694
  this.indexFields();
4715
- this.state = 944;
4695
+ this.state = 939;
4716
4696
  this._errHandler.sync(this);
4717
4697
  _la = this._input.LA(1);
4718
4698
  if (_la === MalloyParser.BY) {
4719
4699
  {
4720
- this.state = 942;
4700
+ this.state = 937;
4721
4701
  this.match(MalloyParser.BY);
4722
- this.state = 943;
4702
+ this.state = 938;
4723
4703
  this.fieldName();
4724
4704
  }
4725
4705
  }
@@ -4747,9 +4727,9 @@ class MalloyParser extends Parser_1.Parser {
4747
4727
  try {
4748
4728
  this.enterOuterAlt(_localctx, 1);
4749
4729
  {
4750
- this.state = 946;
4730
+ this.state = 941;
4751
4731
  this.match(MalloyParser.SAMPLE);
4752
- this.state = 947;
4732
+ this.state = 942;
4753
4733
  this.sampleSpec();
4754
4734
  }
4755
4735
  }
@@ -4775,9 +4755,9 @@ class MalloyParser extends Parser_1.Parser {
4775
4755
  try {
4776
4756
  this.enterOuterAlt(_localctx, 1);
4777
4757
  {
4778
- this.state = 949;
4758
+ this.state = 944;
4779
4759
  this.match(MalloyParser.TIMEZONE);
4780
- this.state = 950;
4760
+ this.state = 945;
4781
4761
  this.string();
4782
4762
  }
4783
4763
  }
@@ -4803,7 +4783,7 @@ class MalloyParser extends Parser_1.Parser {
4803
4783
  try {
4804
4784
  this.enterOuterAlt(_localctx, 1);
4805
4785
  {
4806
- this.state = 952;
4786
+ this.state = 947;
4807
4787
  this.match(MalloyParser.ANNOTATION);
4808
4788
  }
4809
4789
  }
@@ -4830,7 +4810,7 @@ class MalloyParser extends Parser_1.Parser {
4830
4810
  try {
4831
4811
  this.enterOuterAlt(_localctx, 1);
4832
4812
  {
4833
- this.state = 954;
4813
+ this.state = 949;
4834
4814
  _la = this._input.LA(1);
4835
4815
  if (!(_la === MalloyParser.FALSE || _la === MalloyParser.TRUE || _la === MalloyParser.PERCENT_LITERAL || _la === MalloyParser.INTEGER_LITERAL)) {
4836
4816
  this._errHandler.recoverInline(this);
@@ -4867,7 +4847,7 @@ class MalloyParser extends Parser_1.Parser {
4867
4847
  try {
4868
4848
  this.enterOuterAlt(_localctx, 1);
4869
4849
  {
4870
- this.state = 956;
4850
+ this.state = 951;
4871
4851
  _la = this._input.LA(1);
4872
4852
  if (!(((((_la - 38)) & ~0x1F) === 0 && ((1 << (_la - 38)) & ((1 << (MalloyParser.AVG - 38)) | (1 << (MalloyParser.COUNT - 38)) | (1 << (MalloyParser.MAX - 38)) | (1 << (MalloyParser.MIN - 38)))) !== 0) || _la === MalloyParser.SUM)) {
4873
4853
  this._errHandler.recoverInline(this);
@@ -4904,7 +4884,7 @@ class MalloyParser extends Parser_1.Parser {
4904
4884
  try {
4905
4885
  this.enterOuterAlt(_localctx, 1);
4906
4886
  {
4907
- this.state = 958;
4887
+ this.state = 953;
4908
4888
  _la = this._input.LA(1);
4909
4889
  if (!(_la === MalloyParser.BOOLEAN || _la === MalloyParser.DATE || ((((_la - 73)) & ~0x1F) === 0 && ((1 << (_la - 73)) & ((1 << (MalloyParser.NUMBER - 73)) | (1 << (MalloyParser.STRING - 73)) | (1 << (MalloyParser.TIMESTAMP - 73)))) !== 0))) {
4910
4890
  this._errHandler.recoverInline(this);
@@ -4941,7 +4921,7 @@ class MalloyParser extends Parser_1.Parser {
4941
4921
  try {
4942
4922
  this.enterOuterAlt(_localctx, 1);
4943
4923
  {
4944
- this.state = 960;
4924
+ this.state = 955;
4945
4925
  _la = this._input.LA(1);
4946
4926
  if (!(((((_la - 118)) & ~0x1F) === 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))) {
4947
4927
  this._errHandler.recoverInline(this);
@@ -4975,21 +4955,21 @@ class MalloyParser extends Parser_1.Parser {
4975
4955
  let _localctx = new StringContext(this._ctx, this.state);
4976
4956
  this.enterRule(_localctx, 200, MalloyParser.RULE_string);
4977
4957
  try {
4978
- this.state = 964;
4958
+ this.state = 959;
4979
4959
  this._errHandler.sync(this);
4980
4960
  switch (this._input.LA(1)) {
4981
4961
  case MalloyParser.SQ_STRING:
4982
4962
  case MalloyParser.DQ_STRING:
4983
4963
  this.enterOuterAlt(_localctx, 1);
4984
4964
  {
4985
- this.state = 962;
4965
+ this.state = 957;
4986
4966
  this.shortString();
4987
4967
  }
4988
4968
  break;
4989
4969
  case MalloyParser.SQL_BEGIN:
4990
4970
  this.enterOuterAlt(_localctx, 2);
4991
4971
  {
4992
- this.state = 963;
4972
+ this.state = 958;
4993
4973
  this.sqlString();
4994
4974
  }
4995
4975
  break;
@@ -5020,7 +5000,7 @@ class MalloyParser extends Parser_1.Parser {
5020
5000
  try {
5021
5001
  this.enterOuterAlt(_localctx, 1);
5022
5002
  {
5023
- this.state = 966;
5003
+ this.state = 961;
5024
5004
  _la = this._input.LA(1);
5025
5005
  if (!(_la === MalloyParser.SQ_STRING || _la === MalloyParser.DQ_STRING)) {
5026
5006
  this._errHandler.recoverInline(this);
@@ -5057,7 +5037,7 @@ class MalloyParser extends Parser_1.Parser {
5057
5037
  try {
5058
5038
  this.enterOuterAlt(_localctx, 1);
5059
5039
  {
5060
- this.state = 968;
5040
+ this.state = 963;
5061
5041
  _la = this._input.LA(1);
5062
5042
  if (!(_la === MalloyParser.NUMERIC_LITERAL || _la === MalloyParser.INTEGER_LITERAL)) {
5063
5043
  this._errHandler.recoverInline(this);
@@ -5092,7 +5072,7 @@ class MalloyParser extends Parser_1.Parser {
5092
5072
  this.enterRule(_localctx, 206, MalloyParser.RULE_literal);
5093
5073
  let _la;
5094
5074
  try {
5095
- this.state = 977;
5075
+ this.state = 972;
5096
5076
  this._errHandler.sync(this);
5097
5077
  switch (this._input.LA(1)) {
5098
5078
  case MalloyParser.SQ_STRING:
@@ -5101,7 +5081,7 @@ class MalloyParser extends Parser_1.Parser {
5101
5081
  _localctx = new ExprStringContext(_localctx);
5102
5082
  this.enterOuterAlt(_localctx, 1);
5103
5083
  {
5104
- this.state = 970;
5084
+ this.state = 965;
5105
5085
  this.string();
5106
5086
  }
5107
5087
  break;
@@ -5110,7 +5090,7 @@ class MalloyParser extends Parser_1.Parser {
5110
5090
  _localctx = new ExprNumberContext(_localctx);
5111
5091
  this.enterOuterAlt(_localctx, 2);
5112
5092
  {
5113
- this.state = 971;
5093
+ this.state = 966;
5114
5094
  this.numericLiteral();
5115
5095
  }
5116
5096
  break;
@@ -5124,7 +5104,7 @@ class MalloyParser extends Parser_1.Parser {
5124
5104
  _localctx = new ExprTimeContext(_localctx);
5125
5105
  this.enterOuterAlt(_localctx, 3);
5126
5106
  {
5127
- this.state = 972;
5107
+ this.state = 967;
5128
5108
  this.dateLiteral();
5129
5109
  }
5130
5110
  break;
@@ -5132,7 +5112,7 @@ class MalloyParser extends Parser_1.Parser {
5132
5112
  _localctx = new ExprNULLContext(_localctx);
5133
5113
  this.enterOuterAlt(_localctx, 4);
5134
5114
  {
5135
- this.state = 973;
5115
+ this.state = 968;
5136
5116
  this.match(MalloyParser.NULL);
5137
5117
  }
5138
5118
  break;
@@ -5141,7 +5121,7 @@ class MalloyParser extends Parser_1.Parser {
5141
5121
  _localctx = new ExprBoolContext(_localctx);
5142
5122
  this.enterOuterAlt(_localctx, 5);
5143
5123
  {
5144
- this.state = 974;
5124
+ this.state = 969;
5145
5125
  _la = this._input.LA(1);
5146
5126
  if (!(_la === MalloyParser.FALSE || _la === MalloyParser.TRUE)) {
5147
5127
  this._errHandler.recoverInline(this);
@@ -5159,7 +5139,7 @@ class MalloyParser extends Parser_1.Parser {
5159
5139
  _localctx = new ExprRegexContext(_localctx);
5160
5140
  this.enterOuterAlt(_localctx, 6);
5161
5141
  {
5162
- this.state = 975;
5142
+ this.state = 970;
5163
5143
  this.match(MalloyParser.HACKY_REGEX);
5164
5144
  }
5165
5145
  break;
@@ -5167,7 +5147,7 @@ class MalloyParser extends Parser_1.Parser {
5167
5147
  _localctx = new ExprNowContext(_localctx);
5168
5148
  this.enterOuterAlt(_localctx, 7);
5169
5149
  {
5170
- this.state = 976;
5150
+ this.state = 971;
5171
5151
  this.match(MalloyParser.NOW);
5172
5152
  }
5173
5153
  break;
@@ -5195,14 +5175,14 @@ class MalloyParser extends Parser_1.Parser {
5195
5175
  let _localctx = new DateLiteralContext(this._ctx, this.state);
5196
5176
  this.enterRule(_localctx, 208, MalloyParser.RULE_dateLiteral);
5197
5177
  try {
5198
- this.state = 986;
5178
+ this.state = 981;
5199
5179
  this._errHandler.sync(this);
5200
5180
  switch (this._input.LA(1)) {
5201
5181
  case MalloyParser.LITERAL_TIMESTAMP:
5202
5182
  _localctx = new LiteralTimestampContext(_localctx);
5203
5183
  this.enterOuterAlt(_localctx, 1);
5204
5184
  {
5205
- this.state = 979;
5185
+ this.state = 974;
5206
5186
  this.match(MalloyParser.LITERAL_TIMESTAMP);
5207
5187
  }
5208
5188
  break;
@@ -5210,7 +5190,7 @@ class MalloyParser extends Parser_1.Parser {
5210
5190
  _localctx = new LiteralHourContext(_localctx);
5211
5191
  this.enterOuterAlt(_localctx, 2);
5212
5192
  {
5213
- this.state = 980;
5193
+ this.state = 975;
5214
5194
  this.match(MalloyParser.LITERAL_HOUR);
5215
5195
  }
5216
5196
  break;
@@ -5218,7 +5198,7 @@ class MalloyParser extends Parser_1.Parser {
5218
5198
  _localctx = new LiteralDayContext(_localctx);
5219
5199
  this.enterOuterAlt(_localctx, 3);
5220
5200
  {
5221
- this.state = 981;
5201
+ this.state = 976;
5222
5202
  this.match(MalloyParser.LITERAL_DAY);
5223
5203
  }
5224
5204
  break;
@@ -5226,7 +5206,7 @@ class MalloyParser extends Parser_1.Parser {
5226
5206
  _localctx = new LiteralWeekContext(_localctx);
5227
5207
  this.enterOuterAlt(_localctx, 4);
5228
5208
  {
5229
- this.state = 982;
5209
+ this.state = 977;
5230
5210
  this.match(MalloyParser.LITERAL_WEEK);
5231
5211
  }
5232
5212
  break;
@@ -5234,7 +5214,7 @@ class MalloyParser extends Parser_1.Parser {
5234
5214
  _localctx = new LiteralMonthContext(_localctx);
5235
5215
  this.enterOuterAlt(_localctx, 5);
5236
5216
  {
5237
- this.state = 983;
5217
+ this.state = 978;
5238
5218
  this.match(MalloyParser.LITERAL_MONTH);
5239
5219
  }
5240
5220
  break;
@@ -5242,7 +5222,7 @@ class MalloyParser extends Parser_1.Parser {
5242
5222
  _localctx = new LiteralQuarterContext(_localctx);
5243
5223
  this.enterOuterAlt(_localctx, 6);
5244
5224
  {
5245
- this.state = 984;
5225
+ this.state = 979;
5246
5226
  this.match(MalloyParser.LITERAL_QUARTER);
5247
5227
  }
5248
5228
  break;
@@ -5250,7 +5230,7 @@ class MalloyParser extends Parser_1.Parser {
5250
5230
  _localctx = new LiteralYearContext(_localctx);
5251
5231
  this.enterOuterAlt(_localctx, 7);
5252
5232
  {
5253
- this.state = 985;
5233
+ this.state = 980;
5254
5234
  this.match(MalloyParser.LITERAL_YEAR);
5255
5235
  }
5256
5236
  break;
@@ -5280,7 +5260,7 @@ class MalloyParser extends Parser_1.Parser {
5280
5260
  try {
5281
5261
  this.enterOuterAlt(_localctx, 1);
5282
5262
  {
5283
- this.state = 988;
5263
+ this.state = 983;
5284
5264
  this.string();
5285
5265
  }
5286
5266
  }
@@ -5306,7 +5286,7 @@ class MalloyParser extends Parser_1.Parser {
5306
5286
  try {
5307
5287
  this.enterOuterAlt(_localctx, 1);
5308
5288
  {
5309
- this.state = 990;
5289
+ this.state = 985;
5310
5290
  this.string();
5311
5291
  }
5312
5292
  }
@@ -5333,7 +5313,7 @@ class MalloyParser extends Parser_1.Parser {
5333
5313
  try {
5334
5314
  this.enterOuterAlt(_localctx, 1);
5335
5315
  {
5336
- this.state = 992;
5316
+ this.state = 987;
5337
5317
  _la = this._input.LA(1);
5338
5318
  if (!(_la === MalloyParser.BQ_STRING || _la === MalloyParser.IDENTIFIER)) {
5339
5319
  this._errHandler.recoverInline(this);
@@ -5370,7 +5350,7 @@ class MalloyParser extends Parser_1.Parser {
5370
5350
  try {
5371
5351
  this.enterOuterAlt(_localctx, 1);
5372
5352
  {
5373
- this.state = 994;
5353
+ this.state = 989;
5374
5354
  _la = this._input.LA(1);
5375
5355
  if (!(((((_la - 46)) & ~0x1F) === 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)) & ~0x1F) === 0 && ((1 << (_la - 79)) & ((1 << (MalloyParser.SECOND - 79)) | (1 << (MalloyParser.WEEK - 79)) | (1 << (MalloyParser.YEAR - 79)))) !== 0))) {
5376
5356
  this._errHandler.recoverInline(this);
@@ -5407,7 +5387,7 @@ class MalloyParser extends Parser_1.Parser {
5407
5387
  try {
5408
5388
  this.enterOuterAlt(_localctx, 1);
5409
5389
  {
5410
- this.state = 996;
5390
+ this.state = 991;
5411
5391
  _la = this._input.LA(1);
5412
5392
  if (!(_la === MalloyParser.ALL || _la === MalloyParser.EXCLUDE)) {
5413
5393
  this._errHandler.recoverInline(this);
@@ -5441,7 +5421,7 @@ class MalloyParser extends Parser_1.Parser {
5441
5421
  let _localctx = new MalloyOrSQLTypeContext(this._ctx, this.state);
5442
5422
  this.enterRule(_localctx, 220, MalloyParser.RULE_malloyOrSQLType);
5443
5423
  try {
5444
- this.state = 1000;
5424
+ this.state = 995;
5445
5425
  this._errHandler.sync(this);
5446
5426
  switch (this._input.LA(1)) {
5447
5427
  case MalloyParser.BOOLEAN:
@@ -5451,7 +5431,7 @@ class MalloyParser extends Parser_1.Parser {
5451
5431
  case MalloyParser.TIMESTAMP:
5452
5432
  this.enterOuterAlt(_localctx, 1);
5453
5433
  {
5454
- this.state = 998;
5434
+ this.state = 993;
5455
5435
  this.malloyType();
5456
5436
  }
5457
5437
  break;
@@ -5460,7 +5440,7 @@ class MalloyParser extends Parser_1.Parser {
5460
5440
  case MalloyParser.SQL_BEGIN:
5461
5441
  this.enterOuterAlt(_localctx, 2);
5462
5442
  {
5463
- this.state = 999;
5443
+ this.state = 994;
5464
5444
  this.string();
5465
5445
  }
5466
5446
  break;
@@ -5499,15 +5479,15 @@ class MalloyParser extends Parser_1.Parser {
5499
5479
  let _alt;
5500
5480
  this.enterOuterAlt(_localctx, 1);
5501
5481
  {
5502
- this.state = 1085;
5482
+ this.state = 1080;
5503
5483
  this._errHandler.sync(this);
5504
- switch (this.interpreter.adaptivePredict(this._input, 109, this._ctx)) {
5484
+ switch (this.interpreter.adaptivePredict(this._input, 108, this._ctx)) {
5505
5485
  case 1:
5506
5486
  {
5507
5487
  _localctx = new ExprFieldPathContext(_localctx);
5508
5488
  this._ctx = _localctx;
5509
5489
  _prevctx = _localctx;
5510
- this.state = 1003;
5490
+ this.state = 998;
5511
5491
  this.fieldPath();
5512
5492
  }
5513
5493
  break;
@@ -5516,7 +5496,7 @@ class MalloyParser extends Parser_1.Parser {
5516
5496
  _localctx = new ExprLiteralContext(_localctx);
5517
5497
  this._ctx = _localctx;
5518
5498
  _prevctx = _localctx;
5519
- this.state = 1004;
5499
+ this.state = 999;
5520
5500
  this.literal();
5521
5501
  }
5522
5502
  break;
@@ -5525,9 +5505,9 @@ class MalloyParser extends Parser_1.Parser {
5525
5505
  _localctx = new ExprMinusContext(_localctx);
5526
5506
  this._ctx = _localctx;
5527
5507
  _prevctx = _localctx;
5528
- this.state = 1005;
5508
+ this.state = 1000;
5529
5509
  this.match(MalloyParser.MINUS);
5530
- this.state = 1006;
5510
+ this.state = 1001;
5531
5511
  this.fieldExpr(22);
5532
5512
  }
5533
5513
  break;
@@ -5536,9 +5516,9 @@ class MalloyParser extends Parser_1.Parser {
5536
5516
  _localctx = new ExprNotContext(_localctx);
5537
5517
  this._ctx = _localctx;
5538
5518
  _prevctx = _localctx;
5539
- this.state = 1007;
5519
+ this.state = 1002;
5540
5520
  this.match(MalloyParser.NOT);
5541
- this.state = 1008;
5521
+ this.state = 1003;
5542
5522
  this.fieldExpr(13);
5543
5523
  }
5544
5524
  break;
@@ -5547,17 +5527,17 @@ class MalloyParser extends Parser_1.Parser {
5547
5527
  _localctx = new ExprCastContext(_localctx);
5548
5528
  this._ctx = _localctx;
5549
5529
  _prevctx = _localctx;
5550
- this.state = 1009;
5530
+ this.state = 1004;
5551
5531
  this.match(MalloyParser.CAST);
5552
- this.state = 1010;
5532
+ this.state = 1005;
5553
5533
  this.match(MalloyParser.OPAREN);
5554
- this.state = 1011;
5534
+ this.state = 1006;
5555
5535
  this.fieldExpr(0);
5556
- this.state = 1012;
5536
+ this.state = 1007;
5557
5537
  this.match(MalloyParser.AS);
5558
- this.state = 1013;
5538
+ this.state = 1008;
5559
5539
  this.malloyOrSQLType();
5560
- this.state = 1014;
5540
+ this.state = 1009;
5561
5541
  this.match(MalloyParser.CPAREN);
5562
5542
  }
5563
5543
  break;
@@ -5566,15 +5546,15 @@ class MalloyParser extends Parser_1.Parser {
5566
5546
  _localctx = new ExprCountDisinctContext(_localctx);
5567
5547
  this._ctx = _localctx;
5568
5548
  _prevctx = _localctx;
5569
- this.state = 1016;
5549
+ this.state = 1011;
5570
5550
  this.match(MalloyParser.COUNT);
5571
- this.state = 1017;
5551
+ this.state = 1012;
5572
5552
  this.match(MalloyParser.OPAREN);
5573
- this.state = 1018;
5553
+ this.state = 1013;
5574
5554
  this.match(MalloyParser.DISTINCT);
5575
- this.state = 1019;
5555
+ this.state = 1014;
5576
5556
  this.fieldExpr(0);
5577
- this.state = 1020;
5557
+ this.state = 1015;
5578
5558
  this.match(MalloyParser.CPAREN);
5579
5559
  }
5580
5560
  break;
@@ -5583,22 +5563,22 @@ class MalloyParser extends Parser_1.Parser {
5583
5563
  _localctx = new ExprPathlessAggregateContext(_localctx);
5584
5564
  this._ctx = _localctx;
5585
5565
  _prevctx = _localctx;
5586
- this.state = 1024;
5566
+ this.state = 1019;
5587
5567
  this._errHandler.sync(this);
5588
5568
  _la = this._input.LA(1);
5589
5569
  if (_la === MalloyParser.SOURCE_KW) {
5590
5570
  {
5591
- this.state = 1022;
5571
+ this.state = 1017;
5592
5572
  this.match(MalloyParser.SOURCE_KW);
5593
- this.state = 1023;
5573
+ this.state = 1018;
5594
5574
  this.match(MalloyParser.DOT);
5595
5575
  }
5596
5576
  }
5597
- this.state = 1026;
5577
+ this.state = 1021;
5598
5578
  this.aggregate();
5599
- this.state = 1027;
5579
+ this.state = 1022;
5600
5580
  this.match(MalloyParser.OPAREN);
5601
- this.state = 1030;
5581
+ this.state = 1025;
5602
5582
  this._errHandler.sync(this);
5603
5583
  switch (this._input.LA(1)) {
5604
5584
  case MalloyParser.ALL:
@@ -5642,13 +5622,13 @@ class MalloyParser extends Parser_1.Parser {
5642
5622
  case MalloyParser.INTEGER_LITERAL:
5643
5623
  case MalloyParser.SQL_BEGIN:
5644
5624
  {
5645
- this.state = 1028;
5625
+ this.state = 1023;
5646
5626
  this.fieldExpr(0);
5647
5627
  }
5648
5628
  break;
5649
5629
  case MalloyParser.STAR:
5650
5630
  {
5651
- this.state = 1029;
5631
+ this.state = 1024;
5652
5632
  this.match(MalloyParser.STAR);
5653
5633
  }
5654
5634
  break;
@@ -5657,7 +5637,7 @@ class MalloyParser extends Parser_1.Parser {
5657
5637
  default:
5658
5638
  break;
5659
5639
  }
5660
- this.state = 1032;
5640
+ this.state = 1027;
5661
5641
  this.match(MalloyParser.CPAREN);
5662
5642
  }
5663
5643
  break;
@@ -5666,24 +5646,24 @@ class MalloyParser extends Parser_1.Parser {
5666
5646
  _localctx = new ExprAggregateContext(_localctx);
5667
5647
  this._ctx = _localctx;
5668
5648
  _prevctx = _localctx;
5669
- this.state = 1034;
5649
+ this.state = 1029;
5670
5650
  this.fieldPath();
5671
- this.state = 1035;
5651
+ this.state = 1030;
5672
5652
  this.match(MalloyParser.DOT);
5673
- this.state = 1036;
5653
+ this.state = 1031;
5674
5654
  this.aggregate();
5675
- this.state = 1037;
5655
+ this.state = 1032;
5676
5656
  this.match(MalloyParser.OPAREN);
5677
- this.state = 1039;
5657
+ this.state = 1034;
5678
5658
  this._errHandler.sync(this);
5679
5659
  _la = this._input.LA(1);
5680
5660
  if (((((_la - 34)) & ~0x1F) === 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)) & ~0x1F) === 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)) & ~0x1F) === 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)) & ~0x1F) === 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)) {
5681
5661
  {
5682
- this.state = 1038;
5662
+ this.state = 1033;
5683
5663
  this.fieldExpr(0);
5684
5664
  }
5685
5665
  }
5686
- this.state = 1041;
5666
+ this.state = 1036;
5687
5667
  this.match(MalloyParser.CPAREN);
5688
5668
  }
5689
5669
  break;
@@ -5692,11 +5672,11 @@ class MalloyParser extends Parser_1.Parser {
5692
5672
  _localctx = new ExprExprContext(_localctx);
5693
5673
  this._ctx = _localctx;
5694
5674
  _prevctx = _localctx;
5695
- this.state = 1043;
5675
+ this.state = 1038;
5696
5676
  this.match(MalloyParser.OPAREN);
5697
- this.state = 1044;
5677
+ this.state = 1039;
5698
5678
  this.partialAllowedFieldExpr();
5699
- this.state = 1045;
5679
+ this.state = 1040;
5700
5680
  this.match(MalloyParser.CPAREN);
5701
5681
  }
5702
5682
  break;
@@ -5705,26 +5685,26 @@ class MalloyParser extends Parser_1.Parser {
5705
5685
  _localctx = new ExprAggFuncContext(_localctx);
5706
5686
  this._ctx = _localctx;
5707
5687
  _prevctx = _localctx;
5708
- this.state = 1047;
5688
+ this.state = 1042;
5709
5689
  this.fieldPath();
5710
- this.state = 1048;
5690
+ this.state = 1043;
5711
5691
  this.match(MalloyParser.DOT);
5712
- this.state = 1049;
5692
+ this.state = 1044;
5713
5693
  this.id();
5714
- this.state = 1050;
5694
+ this.state = 1045;
5715
5695
  this.match(MalloyParser.OPAREN);
5716
5696
  {
5717
- this.state = 1052;
5697
+ this.state = 1047;
5718
5698
  this._errHandler.sync(this);
5719
5699
  _la = this._input.LA(1);
5720
5700
  if (((((_la - 34)) & ~0x1F) === 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)) & ~0x1F) === 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)) & ~0x1F) === 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)) & ~0x1F) === 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)) {
5721
5701
  {
5722
- this.state = 1051;
5702
+ this.state = 1046;
5723
5703
  this.argumentList();
5724
5704
  }
5725
5705
  }
5726
5706
  }
5727
- this.state = 1054;
5707
+ this.state = 1049;
5728
5708
  this.match(MalloyParser.CPAREN);
5729
5709
  }
5730
5710
  break;
@@ -5733,28 +5713,28 @@ class MalloyParser extends Parser_1.Parser {
5733
5713
  _localctx = new ExprFuncContext(_localctx);
5734
5714
  this._ctx = _localctx;
5735
5715
  _prevctx = _localctx;
5736
- this.state = 1064;
5716
+ this.state = 1059;
5737
5717
  this._errHandler.sync(this);
5738
5718
  switch (this._input.LA(1)) {
5739
5719
  case MalloyParser.BQ_STRING:
5740
5720
  case MalloyParser.IDENTIFIER:
5741
5721
  {
5742
5722
  {
5743
- this.state = 1056;
5723
+ this.state = 1051;
5744
5724
  this.id();
5745
- this.state = 1061;
5725
+ this.state = 1056;
5746
5726
  this._errHandler.sync(this);
5747
5727
  _la = this._input.LA(1);
5748
5728
  if (_la === MalloyParser.EXCLAM) {
5749
5729
  {
5750
- this.state = 1057;
5730
+ this.state = 1052;
5751
5731
  this.match(MalloyParser.EXCLAM);
5752
- this.state = 1059;
5732
+ this.state = 1054;
5753
5733
  this._errHandler.sync(this);
5754
5734
  _la = this._input.LA(1);
5755
5735
  if (_la === MalloyParser.BOOLEAN || _la === MalloyParser.DATE || ((((_la - 73)) & ~0x1F) === 0 && ((1 << (_la - 73)) & ((1 << (MalloyParser.NUMBER - 73)) | (1 << (MalloyParser.STRING - 73)) | (1 << (MalloyParser.TIMESTAMP - 73)))) !== 0)) {
5756
5736
  {
5757
- this.state = 1058;
5737
+ this.state = 1053;
5758
5738
  this.malloyType();
5759
5739
  }
5760
5740
  }
@@ -5772,27 +5752,27 @@ class MalloyParser extends Parser_1.Parser {
5772
5752
  case MalloyParser.WEEK:
5773
5753
  case MalloyParser.YEAR:
5774
5754
  {
5775
- this.state = 1063;
5755
+ this.state = 1058;
5776
5756
  this.timeframe();
5777
5757
  }
5778
5758
  break;
5779
5759
  default:
5780
5760
  throw new NoViableAltException_1.NoViableAltException(this);
5781
5761
  }
5782
- this.state = 1066;
5762
+ this.state = 1061;
5783
5763
  this.match(MalloyParser.OPAREN);
5784
5764
  {
5785
- this.state = 1068;
5765
+ this.state = 1063;
5786
5766
  this._errHandler.sync(this);
5787
5767
  _la = this._input.LA(1);
5788
5768
  if (((((_la - 34)) & ~0x1F) === 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)) & ~0x1F) === 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)) & ~0x1F) === 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)) & ~0x1F) === 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)) {
5789
5769
  {
5790
- this.state = 1067;
5770
+ this.state = 1062;
5791
5771
  this.argumentList();
5792
5772
  }
5793
5773
  }
5794
5774
  }
5795
- this.state = 1070;
5775
+ this.state = 1065;
5796
5776
  this.match(MalloyParser.CPAREN);
5797
5777
  }
5798
5778
  break;
@@ -5801,7 +5781,7 @@ class MalloyParser extends Parser_1.Parser {
5801
5781
  _localctx = new ExprPickContext(_localctx);
5802
5782
  this._ctx = _localctx;
5803
5783
  _prevctx = _localctx;
5804
- this.state = 1072;
5784
+ this.state = 1067;
5805
5785
  this.pickStatement();
5806
5786
  }
5807
5787
  break;
@@ -5810,37 +5790,37 @@ class MalloyParser extends Parser_1.Parser {
5810
5790
  _localctx = new ExprUngroupContext(_localctx);
5811
5791
  this._ctx = _localctx;
5812
5792
  _prevctx = _localctx;
5813
- this.state = 1073;
5793
+ this.state = 1068;
5814
5794
  this.ungroup();
5815
- this.state = 1074;
5795
+ this.state = 1069;
5816
5796
  this.match(MalloyParser.OPAREN);
5817
- this.state = 1075;
5797
+ this.state = 1070;
5818
5798
  this.fieldExpr(0);
5819
- this.state = 1080;
5799
+ this.state = 1075;
5820
5800
  this._errHandler.sync(this);
5821
5801
  _la = this._input.LA(1);
5822
5802
  while (_la === MalloyParser.COMMA) {
5823
5803
  {
5824
5804
  {
5825
- this.state = 1076;
5805
+ this.state = 1071;
5826
5806
  this.match(MalloyParser.COMMA);
5827
- this.state = 1077;
5807
+ this.state = 1072;
5828
5808
  this.fieldName();
5829
5809
  }
5830
5810
  }
5831
- this.state = 1082;
5811
+ this.state = 1077;
5832
5812
  this._errHandler.sync(this);
5833
5813
  _la = this._input.LA(1);
5834
5814
  }
5835
- this.state = 1083;
5815
+ this.state = 1078;
5836
5816
  this.match(MalloyParser.CPAREN);
5837
5817
  }
5838
5818
  break;
5839
5819
  }
5840
5820
  this._ctx._stop = this._input.tryLT(-1);
5841
- this.state = 1138;
5821
+ this.state = 1133;
5842
5822
  this._errHandler.sync(this);
5843
- _alt = this.interpreter.adaptivePredict(this._input, 111, this._ctx);
5823
+ _alt = this.interpreter.adaptivePredict(this._input, 110, this._ctx);
5844
5824
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
5845
5825
  if (_alt === 1) {
5846
5826
  if (this._parseListeners != null) {
@@ -5848,18 +5828,18 @@ class MalloyParser extends Parser_1.Parser {
5848
5828
  }
5849
5829
  _prevctx = _localctx;
5850
5830
  {
5851
- this.state = 1136;
5831
+ this.state = 1131;
5852
5832
  this._errHandler.sync(this);
5853
- switch (this.interpreter.adaptivePredict(this._input, 110, this._ctx)) {
5833
+ switch (this.interpreter.adaptivePredict(this._input, 109, this._ctx)) {
5854
5834
  case 1:
5855
5835
  {
5856
5836
  _localctx = new ExprMulDivContext(new FieldExprContext(_parentctx, _parentState));
5857
5837
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5858
- this.state = 1087;
5838
+ this.state = 1082;
5859
5839
  if (!(this.precpred(this._ctx, 21))) {
5860
5840
  throw this.createFailedPredicateException("this.precpred(this._ctx, 21)");
5861
5841
  }
5862
- this.state = 1088;
5842
+ this.state = 1083;
5863
5843
  _la = this._input.LA(1);
5864
5844
  if (!(((((_la - 126)) & ~0x1F) === 0 && ((1 << (_la - 126)) & ((1 << (MalloyParser.STAR - 126)) | (1 << (MalloyParser.SLASH - 126)) | (1 << (MalloyParser.PERCENT - 126)))) !== 0))) {
5865
5845
  this._errHandler.recoverInline(this);
@@ -5871,7 +5851,7 @@ class MalloyParser extends Parser_1.Parser {
5871
5851
  this._errHandler.reportMatch(this);
5872
5852
  this.consume();
5873
5853
  }
5874
- this.state = 1089;
5854
+ this.state = 1084;
5875
5855
  this.fieldExpr(22);
5876
5856
  }
5877
5857
  break;
@@ -5879,11 +5859,11 @@ class MalloyParser extends Parser_1.Parser {
5879
5859
  {
5880
5860
  _localctx = new ExprAddSubContext(new FieldExprContext(_parentctx, _parentState));
5881
5861
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5882
- this.state = 1090;
5862
+ this.state = 1085;
5883
5863
  if (!(this.precpred(this._ctx, 20))) {
5884
5864
  throw this.createFailedPredicateException("this.precpred(this._ctx, 20)");
5885
5865
  }
5886
- this.state = 1091;
5866
+ this.state = 1086;
5887
5867
  _la = this._input.LA(1);
5888
5868
  if (!(_la === MalloyParser.PLUS || _la === MalloyParser.MINUS)) {
5889
5869
  this._errHandler.recoverInline(this);
@@ -5895,7 +5875,7 @@ class MalloyParser extends Parser_1.Parser {
5895
5875
  this._errHandler.reportMatch(this);
5896
5876
  this.consume();
5897
5877
  }
5898
- this.state = 1092;
5878
+ this.state = 1087;
5899
5879
  this.fieldExpr(21);
5900
5880
  }
5901
5881
  break;
@@ -5903,13 +5883,13 @@ class MalloyParser extends Parser_1.Parser {
5903
5883
  {
5904
5884
  _localctx = new ExprRangeContext(new FieldExprContext(_parentctx, _parentState));
5905
5885
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5906
- this.state = 1093;
5886
+ this.state = 1088;
5907
5887
  if (!(this.precpred(this._ctx, 19))) {
5908
5888
  throw this.createFailedPredicateException("this.precpred(this._ctx, 19)");
5909
5889
  }
5910
- this.state = 1094;
5890
+ this.state = 1089;
5911
5891
  this.match(MalloyParser.TO);
5912
- this.state = 1095;
5892
+ this.state = 1090;
5913
5893
  this.fieldExpr(20);
5914
5894
  }
5915
5895
  break;
@@ -5917,13 +5897,13 @@ class MalloyParser extends Parser_1.Parser {
5917
5897
  {
5918
5898
  _localctx = new ExprCompareContext(new FieldExprContext(_parentctx, _parentState));
5919
5899
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5920
- this.state = 1096;
5900
+ this.state = 1091;
5921
5901
  if (!(this.precpred(this._ctx, 15))) {
5922
5902
  throw this.createFailedPredicateException("this.precpred(this._ctx, 15)");
5923
5903
  }
5924
- this.state = 1097;
5904
+ this.state = 1092;
5925
5905
  this.compareOp();
5926
- this.state = 1098;
5906
+ this.state = 1093;
5927
5907
  this.fieldExpr(16);
5928
5908
  }
5929
5909
  break;
@@ -5931,13 +5911,13 @@ class MalloyParser extends Parser_1.Parser {
5931
5911
  {
5932
5912
  _localctx = new ExprLogicalAndContext(new FieldExprContext(_parentctx, _parentState));
5933
5913
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5934
- this.state = 1100;
5914
+ this.state = 1095;
5935
5915
  if (!(this.precpred(this._ctx, 12))) {
5936
5916
  throw this.createFailedPredicateException("this.precpred(this._ctx, 12)");
5937
5917
  }
5938
- this.state = 1101;
5918
+ this.state = 1096;
5939
5919
  this.match(MalloyParser.AND);
5940
- this.state = 1102;
5920
+ this.state = 1097;
5941
5921
  this.fieldExpr(13);
5942
5922
  }
5943
5923
  break;
@@ -5945,13 +5925,13 @@ class MalloyParser extends Parser_1.Parser {
5945
5925
  {
5946
5926
  _localctx = new ExprLogicalOrContext(new FieldExprContext(_parentctx, _parentState));
5947
5927
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5948
- this.state = 1103;
5928
+ this.state = 1098;
5949
5929
  if (!(this.precpred(this._ctx, 11))) {
5950
5930
  throw this.createFailedPredicateException("this.precpred(this._ctx, 11)");
5951
5931
  }
5952
- this.state = 1104;
5932
+ this.state = 1099;
5953
5933
  this.match(MalloyParser.OR);
5954
- this.state = 1105;
5934
+ this.state = 1100;
5955
5935
  this.fieldExpr(12);
5956
5936
  }
5957
5937
  break;
@@ -5959,13 +5939,13 @@ class MalloyParser extends Parser_1.Parser {
5959
5939
  {
5960
5940
  _localctx = new ExprCoalesceContext(new FieldExprContext(_parentctx, _parentState));
5961
5941
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5962
- this.state = 1106;
5942
+ this.state = 1101;
5963
5943
  if (!(this.precpred(this._ctx, 10))) {
5964
5944
  throw this.createFailedPredicateException("this.precpred(this._ctx, 10)");
5965
5945
  }
5966
- this.state = 1107;
5946
+ this.state = 1102;
5967
5947
  this.match(MalloyParser.DOUBLE_QMARK);
5968
- this.state = 1108;
5948
+ this.state = 1103;
5969
5949
  this.fieldExpr(11);
5970
5950
  }
5971
5951
  break;
@@ -5973,11 +5953,11 @@ class MalloyParser extends Parser_1.Parser {
5973
5953
  {
5974
5954
  _localctx = new ExprFieldPropsContext(new FieldExprContext(_parentctx, _parentState));
5975
5955
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5976
- this.state = 1109;
5956
+ this.state = 1104;
5977
5957
  if (!(this.precpred(this._ctx, 28))) {
5978
5958
  throw this.createFailedPredicateException("this.precpred(this._ctx, 28)");
5979
5959
  }
5980
- this.state = 1110;
5960
+ this.state = 1105;
5981
5961
  this.fieldProperties();
5982
5962
  }
5983
5963
  break;
@@ -5985,11 +5965,11 @@ class MalloyParser extends Parser_1.Parser {
5985
5965
  {
5986
5966
  _localctx = new ExprDurationContext(new FieldExprContext(_parentctx, _parentState));
5987
5967
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
5988
- this.state = 1111;
5968
+ this.state = 1106;
5989
5969
  if (!(this.precpred(this._ctx, 26))) {
5990
5970
  throw this.createFailedPredicateException("this.precpred(this._ctx, 26)");
5991
5971
  }
5992
- this.state = 1112;
5972
+ this.state = 1107;
5993
5973
  this.timeframe();
5994
5974
  }
5995
5975
  break;
@@ -5997,13 +5977,13 @@ class MalloyParser extends Parser_1.Parser {
5997
5977
  {
5998
5978
  _localctx = new ExprTimeTruncContext(new FieldExprContext(_parentctx, _parentState));
5999
5979
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
6000
- this.state = 1113;
5980
+ this.state = 1108;
6001
5981
  if (!(this.precpred(this._ctx, 25))) {
6002
5982
  throw this.createFailedPredicateException("this.precpred(this._ctx, 25)");
6003
5983
  }
6004
- this.state = 1114;
5984
+ this.state = 1109;
6005
5985
  this.match(MalloyParser.DOT);
6006
- this.state = 1115;
5986
+ this.state = 1110;
6007
5987
  this.timeframe();
6008
5988
  }
6009
5989
  break;
@@ -6011,13 +5991,13 @@ class MalloyParser extends Parser_1.Parser {
6011
5991
  {
6012
5992
  _localctx = new ExprCastContext(new FieldExprContext(_parentctx, _parentState));
6013
5993
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
6014
- this.state = 1116;
5994
+ this.state = 1111;
6015
5995
  if (!(this.precpred(this._ctx, 24))) {
6016
5996
  throw this.createFailedPredicateException("this.precpred(this._ctx, 24)");
6017
5997
  }
6018
- this.state = 1117;
5998
+ this.state = 1112;
6019
5999
  this.match(MalloyParser.DOUBLECOLON);
6020
- this.state = 1118;
6000
+ this.state = 1113;
6021
6001
  this.malloyOrSQLType();
6022
6002
  }
6023
6003
  break;
@@ -6025,13 +6005,13 @@ class MalloyParser extends Parser_1.Parser {
6025
6005
  {
6026
6006
  _localctx = new ExprSafeCastContext(new FieldExprContext(_parentctx, _parentState));
6027
6007
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
6028
- this.state = 1119;
6008
+ this.state = 1114;
6029
6009
  if (!(this.precpred(this._ctx, 23))) {
6030
6010
  throw this.createFailedPredicateException("this.precpred(this._ctx, 23)");
6031
6011
  }
6032
- this.state = 1120;
6012
+ this.state = 1115;
6033
6013
  this.match(MalloyParser.TRIPLECOLON);
6034
- this.state = 1121;
6014
+ this.state = 1116;
6035
6015
  this.malloyOrSQLType();
6036
6016
  }
6037
6017
  break;
@@ -6040,15 +6020,15 @@ class MalloyParser extends Parser_1.Parser {
6040
6020
  _localctx = new ExprForRangeContext(new FieldExprContext(_parentctx, _parentState));
6041
6021
  _localctx._startAt = _prevctx;
6042
6022
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
6043
- this.state = 1122;
6023
+ this.state = 1117;
6044
6024
  if (!(this.precpred(this._ctx, 18))) {
6045
6025
  throw this.createFailedPredicateException("this.precpred(this._ctx, 18)");
6046
6026
  }
6047
- this.state = 1123;
6027
+ this.state = 1118;
6048
6028
  this.match(MalloyParser.FOR);
6049
- this.state = 1124;
6029
+ this.state = 1119;
6050
6030
  _localctx._duration = this.fieldExpr(0);
6051
- this.state = 1125;
6031
+ this.state = 1120;
6052
6032
  this.timeframe();
6053
6033
  }
6054
6034
  break;
@@ -6056,13 +6036,13 @@ class MalloyParser extends Parser_1.Parser {
6056
6036
  {
6057
6037
  _localctx = new ExprAndTreeContext(new FieldExprContext(_parentctx, _parentState));
6058
6038
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
6059
- this.state = 1127;
6039
+ this.state = 1122;
6060
6040
  if (!(this.precpred(this._ctx, 17))) {
6061
6041
  throw this.createFailedPredicateException("this.precpred(this._ctx, 17)");
6062
6042
  }
6063
- this.state = 1128;
6043
+ this.state = 1123;
6064
6044
  this.match(MalloyParser.AMPER);
6065
- this.state = 1129;
6045
+ this.state = 1124;
6066
6046
  this.partialAllowedFieldExpr();
6067
6047
  }
6068
6048
  break;
@@ -6070,13 +6050,13 @@ class MalloyParser extends Parser_1.Parser {
6070
6050
  {
6071
6051
  _localctx = new ExprOrTreeContext(new FieldExprContext(_parentctx, _parentState));
6072
6052
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
6073
- this.state = 1130;
6053
+ this.state = 1125;
6074
6054
  if (!(this.precpred(this._ctx, 16))) {
6075
6055
  throw this.createFailedPredicateException("this.precpred(this._ctx, 16)");
6076
6056
  }
6077
- this.state = 1131;
6057
+ this.state = 1126;
6078
6058
  this.match(MalloyParser.BAR);
6079
- this.state = 1132;
6059
+ this.state = 1127;
6080
6060
  this.partialAllowedFieldExpr();
6081
6061
  }
6082
6062
  break;
@@ -6084,22 +6064,22 @@ class MalloyParser extends Parser_1.Parser {
6084
6064
  {
6085
6065
  _localctx = new ExprApplyContext(new FieldExprContext(_parentctx, _parentState));
6086
6066
  this.pushNewRecursionContext(_localctx, _startState, MalloyParser.RULE_fieldExpr);
6087
- this.state = 1133;
6067
+ this.state = 1128;
6088
6068
  if (!(this.precpred(this._ctx, 14))) {
6089
6069
  throw this.createFailedPredicateException("this.precpred(this._ctx, 14)");
6090
6070
  }
6091
- this.state = 1134;
6071
+ this.state = 1129;
6092
6072
  this.match(MalloyParser.QMARK);
6093
- this.state = 1135;
6073
+ this.state = 1130;
6094
6074
  this.partialAllowedFieldExpr();
6095
6075
  }
6096
6076
  break;
6097
6077
  }
6098
6078
  }
6099
6079
  }
6100
- this.state = 1140;
6080
+ this.state = 1135;
6101
6081
  this._errHandler.sync(this);
6102
- _alt = this.interpreter.adaptivePredict(this._input, 111, this._ctx);
6082
+ _alt = this.interpreter.adaptivePredict(this._input, 110, this._ctx);
6103
6083
  }
6104
6084
  }
6105
6085
  }
@@ -6124,42 +6104,42 @@ class MalloyParser extends Parser_1.Parser {
6124
6104
  this.enterRule(_localctx, 224, MalloyParser.RULE_partialAllowedFieldExpr);
6125
6105
  let _la;
6126
6106
  try {
6127
- this.state = 1152;
6107
+ this.state = 1147;
6128
6108
  this._errHandler.sync(this);
6129
- switch (this.interpreter.adaptivePredict(this._input, 114, this._ctx)) {
6109
+ switch (this.interpreter.adaptivePredict(this._input, 113, this._ctx)) {
6130
6110
  case 1:
6131
6111
  this.enterOuterAlt(_localctx, 1);
6132
6112
  {
6133
- this.state = 1141;
6113
+ this.state = 1136;
6134
6114
  this.match(MalloyParser.OPAREN);
6135
- this.state = 1143;
6115
+ this.state = 1138;
6136
6116
  this._errHandler.sync(this);
6137
6117
  _la = this._input.LA(1);
6138
6118
  if (((((_la - 118)) & ~0x1F) === 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)) {
6139
6119
  {
6140
- this.state = 1142;
6120
+ this.state = 1137;
6141
6121
  this.compareOp();
6142
6122
  }
6143
6123
  }
6144
- this.state = 1145;
6124
+ this.state = 1140;
6145
6125
  this.fieldExpr(0);
6146
- this.state = 1146;
6126
+ this.state = 1141;
6147
6127
  this.match(MalloyParser.CPAREN);
6148
6128
  }
6149
6129
  break;
6150
6130
  case 2:
6151
6131
  this.enterOuterAlt(_localctx, 2);
6152
6132
  {
6153
- this.state = 1149;
6133
+ this.state = 1144;
6154
6134
  this._errHandler.sync(this);
6155
6135
  _la = this._input.LA(1);
6156
6136
  if (((((_la - 118)) & ~0x1F) === 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)) {
6157
6137
  {
6158
- this.state = 1148;
6138
+ this.state = 1143;
6159
6139
  this.compareOp();
6160
6140
  }
6161
6141
  }
6162
- this.state = 1151;
6142
+ this.state = 1146;
6163
6143
  this.fieldExpr(0);
6164
6144
  }
6165
6145
  break;
@@ -6188,7 +6168,7 @@ class MalloyParser extends Parser_1.Parser {
6188
6168
  let _alt;
6189
6169
  this.enterOuterAlt(_localctx, 1);
6190
6170
  {
6191
- this.state = 1155;
6171
+ this.state = 1150;
6192
6172
  this._errHandler.sync(this);
6193
6173
  _alt = 1;
6194
6174
  do {
@@ -6196,7 +6176,7 @@ class MalloyParser extends Parser_1.Parser {
6196
6176
  case 1:
6197
6177
  {
6198
6178
  {
6199
- this.state = 1154;
6179
+ this.state = 1149;
6200
6180
  this.pick();
6201
6181
  }
6202
6182
  }
@@ -6204,18 +6184,18 @@ class MalloyParser extends Parser_1.Parser {
6204
6184
  default:
6205
6185
  throw new NoViableAltException_1.NoViableAltException(this);
6206
6186
  }
6207
- this.state = 1157;
6187
+ this.state = 1152;
6208
6188
  this._errHandler.sync(this);
6209
- _alt = this.interpreter.adaptivePredict(this._input, 115, this._ctx);
6189
+ _alt = this.interpreter.adaptivePredict(this._input, 114, this._ctx);
6210
6190
  } while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER);
6211
- this.state = 1161;
6191
+ this.state = 1156;
6212
6192
  this._errHandler.sync(this);
6213
- switch (this.interpreter.adaptivePredict(this._input, 116, this._ctx)) {
6193
+ switch (this.interpreter.adaptivePredict(this._input, 115, this._ctx)) {
6214
6194
  case 1:
6215
6195
  {
6216
- this.state = 1159;
6196
+ this.state = 1154;
6217
6197
  this.match(MalloyParser.ELSE);
6218
- this.state = 1160;
6198
+ this.state = 1155;
6219
6199
  _localctx._pickElse = this.fieldExpr(0);
6220
6200
  }
6221
6201
  break;
@@ -6245,20 +6225,20 @@ class MalloyParser extends Parser_1.Parser {
6245
6225
  try {
6246
6226
  this.enterOuterAlt(_localctx, 1);
6247
6227
  {
6248
- this.state = 1163;
6228
+ this.state = 1158;
6249
6229
  this.match(MalloyParser.PICK);
6250
- this.state = 1165;
6230
+ this.state = 1160;
6251
6231
  this._errHandler.sync(this);
6252
6232
  _la = this._input.LA(1);
6253
6233
  if (((((_la - 34)) & ~0x1F) === 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)) & ~0x1F) === 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)) & ~0x1F) === 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)) & ~0x1F) === 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)) {
6254
6234
  {
6255
- this.state = 1164;
6235
+ this.state = 1159;
6256
6236
  _localctx._pickValue = this.fieldExpr(0);
6257
6237
  }
6258
6238
  }
6259
- this.state = 1167;
6239
+ this.state = 1162;
6260
6240
  this.match(MalloyParser.WHEN);
6261
- this.state = 1168;
6241
+ this.state = 1163;
6262
6242
  _localctx._pickWhen = this.partialAllowedFieldExpr();
6263
6243
  }
6264
6244
  }
@@ -6286,32 +6266,32 @@ class MalloyParser extends Parser_1.Parser {
6286
6266
  let _alt;
6287
6267
  this.enterOuterAlt(_localctx, 1);
6288
6268
  {
6289
- this.state = 1170;
6269
+ this.state = 1165;
6290
6270
  this.fieldExpr(0);
6291
- this.state = 1175;
6271
+ this.state = 1170;
6292
6272
  this._errHandler.sync(this);
6293
- _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
6273
+ _alt = this.interpreter.adaptivePredict(this._input, 117, this._ctx);
6294
6274
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
6295
6275
  if (_alt === 1) {
6296
6276
  {
6297
6277
  {
6298
- this.state = 1171;
6278
+ this.state = 1166;
6299
6279
  this.match(MalloyParser.COMMA);
6300
- this.state = 1172;
6280
+ this.state = 1167;
6301
6281
  this.fieldExpr(0);
6302
6282
  }
6303
6283
  }
6304
6284
  }
6305
- this.state = 1177;
6285
+ this.state = 1172;
6306
6286
  this._errHandler.sync(this);
6307
- _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
6287
+ _alt = this.interpreter.adaptivePredict(this._input, 117, this._ctx);
6308
6288
  }
6309
- this.state = 1179;
6289
+ this.state = 1174;
6310
6290
  this._errHandler.sync(this);
6311
6291
  _la = this._input.LA(1);
6312
6292
  if (_la === MalloyParser.COMMA) {
6313
6293
  {
6314
- this.state = 1178;
6294
+ this.state = 1173;
6315
6295
  this.match(MalloyParser.COMMA);
6316
6296
  }
6317
6297
  }
@@ -6341,32 +6321,32 @@ class MalloyParser extends Parser_1.Parser {
6341
6321
  let _alt;
6342
6322
  this.enterOuterAlt(_localctx, 1);
6343
6323
  {
6344
- this.state = 1181;
6324
+ this.state = 1176;
6345
6325
  this.fieldName();
6346
- this.state = 1188;
6326
+ this.state = 1183;
6347
6327
  this._errHandler.sync(this);
6348
- _alt = this.interpreter.adaptivePredict(this._input, 121, this._ctx);
6328
+ _alt = this.interpreter.adaptivePredict(this._input, 120, this._ctx);
6349
6329
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
6350
6330
  if (_alt === 1) {
6351
6331
  {
6352
6332
  {
6353
- this.state = 1183;
6333
+ this.state = 1178;
6354
6334
  this._errHandler.sync(this);
6355
6335
  _la = this._input.LA(1);
6356
6336
  if (_la === MalloyParser.COMMA) {
6357
6337
  {
6358
- this.state = 1182;
6338
+ this.state = 1177;
6359
6339
  this.match(MalloyParser.COMMA);
6360
6340
  }
6361
6341
  }
6362
- this.state = 1185;
6342
+ this.state = 1180;
6363
6343
  this.fieldName();
6364
6344
  }
6365
6345
  }
6366
6346
  }
6367
- this.state = 1190;
6347
+ this.state = 1185;
6368
6348
  this._errHandler.sync(this);
6369
- _alt = this.interpreter.adaptivePredict(this._input, 121, this._ctx);
6349
+ _alt = this.interpreter.adaptivePredict(this._input, 120, this._ctx);
6370
6350
  }
6371
6351
  }
6372
6352
  }
@@ -6394,39 +6374,39 @@ class MalloyParser extends Parser_1.Parser {
6394
6374
  let _alt;
6395
6375
  this.enterOuterAlt(_localctx, 1);
6396
6376
  {
6397
- this.state = 1191;
6377
+ this.state = 1186;
6398
6378
  this.collectionMember();
6399
- this.state = 1198;
6379
+ this.state = 1193;
6400
6380
  this._errHandler.sync(this);
6401
- _alt = this.interpreter.adaptivePredict(this._input, 123, this._ctx);
6381
+ _alt = this.interpreter.adaptivePredict(this._input, 122, this._ctx);
6402
6382
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
6403
6383
  if (_alt === 1) {
6404
6384
  {
6405
6385
  {
6406
- this.state = 1193;
6386
+ this.state = 1188;
6407
6387
  this._errHandler.sync(this);
6408
6388
  _la = this._input.LA(1);
6409
6389
  if (_la === MalloyParser.COMMA) {
6410
6390
  {
6411
- this.state = 1192;
6391
+ this.state = 1187;
6412
6392
  this.match(MalloyParser.COMMA);
6413
6393
  }
6414
6394
  }
6415
- this.state = 1195;
6395
+ this.state = 1190;
6416
6396
  this.collectionMember();
6417
6397
  }
6418
6398
  }
6419
6399
  }
6420
- this.state = 1200;
6400
+ this.state = 1195;
6421
6401
  this._errHandler.sync(this);
6422
- _alt = this.interpreter.adaptivePredict(this._input, 123, this._ctx);
6402
+ _alt = this.interpreter.adaptivePredict(this._input, 122, this._ctx);
6423
6403
  }
6424
- this.state = 1202;
6404
+ this.state = 1197;
6425
6405
  this._errHandler.sync(this);
6426
6406
  _la = this._input.LA(1);
6427
6407
  if (_la === MalloyParser.COMMA) {
6428
6408
  {
6429
- this.state = 1201;
6409
+ this.state = 1196;
6430
6410
  this.match(MalloyParser.COMMA);
6431
6411
  }
6432
6412
  }
@@ -6455,25 +6435,25 @@ class MalloyParser extends Parser_1.Parser {
6455
6435
  try {
6456
6436
  this.enterOuterAlt(_localctx, 1);
6457
6437
  {
6458
- this.state = 1207;
6438
+ this.state = 1202;
6459
6439
  this._errHandler.sync(this);
6460
6440
  _la = this._input.LA(1);
6461
6441
  if (_la === MalloyParser.BQ_STRING || _la === MalloyParser.IDENTIFIER) {
6462
6442
  {
6463
- this.state = 1204;
6443
+ this.state = 1199;
6464
6444
  this.fieldPath();
6465
- this.state = 1205;
6445
+ this.state = 1200;
6466
6446
  this.match(MalloyParser.DOT);
6467
6447
  }
6468
6448
  }
6469
- this.state = 1209;
6449
+ this.state = 1204;
6470
6450
  this.match(MalloyParser.STAR);
6471
- this.state = 1211;
6451
+ this.state = 1206;
6472
6452
  this._errHandler.sync(this);
6473
- switch (this.interpreter.adaptivePredict(this._input, 126, this._ctx)) {
6453
+ switch (this.interpreter.adaptivePredict(this._input, 125, this._ctx)) {
6474
6454
  case 1:
6475
6455
  {
6476
- this.state = 1210;
6456
+ this.state = 1205;
6477
6457
  this.starQualified();
6478
6458
  }
6479
6459
  break;
@@ -6503,29 +6483,29 @@ class MalloyParser extends Parser_1.Parser {
6503
6483
  try {
6504
6484
  this.enterOuterAlt(_localctx, 1);
6505
6485
  {
6506
- this.state = 1213;
6486
+ this.state = 1208;
6507
6487
  this.match(MalloyParser.OCURLY);
6508
- this.state = 1217;
6488
+ this.state = 1212;
6509
6489
  this._errHandler.sync(this);
6510
6490
  _la = this._input.LA(1);
6511
6491
  do {
6512
6492
  {
6513
- this.state = 1217;
6493
+ this.state = 1212;
6514
6494
  this._errHandler.sync(this);
6515
6495
  switch (this._input.LA(1)) {
6516
6496
  case MalloyParser.EXCEPT:
6517
6497
  {
6518
6498
  {
6519
- this.state = 1214;
6499
+ this.state = 1209;
6520
6500
  this.match(MalloyParser.EXCEPT);
6521
- this.state = 1215;
6501
+ this.state = 1210;
6522
6502
  this.fieldNameList();
6523
6503
  }
6524
6504
  }
6525
6505
  break;
6526
6506
  case MalloyParser.COMMA:
6527
6507
  {
6528
- this.state = 1216;
6508
+ this.state = 1211;
6529
6509
  this.match(MalloyParser.COMMA);
6530
6510
  }
6531
6511
  break;
@@ -6533,11 +6513,11 @@ class MalloyParser extends Parser_1.Parser {
6533
6513
  throw new NoViableAltException_1.NoViableAltException(this);
6534
6514
  }
6535
6515
  }
6536
- this.state = 1219;
6516
+ this.state = 1214;
6537
6517
  this._errHandler.sync(this);
6538
6518
  _la = this._input.LA(1);
6539
6519
  } while (_la === MalloyParser.EXCEPT || _la === MalloyParser.COMMA);
6540
- this.state = 1221;
6520
+ this.state = 1216;
6541
6521
  this.match(MalloyParser.CCURLY);
6542
6522
  }
6543
6523
  }
@@ -6564,16 +6544,16 @@ class MalloyParser extends Parser_1.Parser {
6564
6544
  try {
6565
6545
  this.enterOuterAlt(_localctx, 1);
6566
6546
  {
6567
- this.state = 1223;
6547
+ this.state = 1218;
6568
6548
  this.tags();
6569
- this.state = 1224;
6549
+ this.state = 1219;
6570
6550
  this.fieldPath();
6571
- this.state = 1226;
6551
+ this.state = 1221;
6572
6552
  this._errHandler.sync(this);
6573
6553
  _la = this._input.LA(1);
6574
6554
  if (_la === MalloyParser.DOT) {
6575
6555
  {
6576
- this.state = 1225;
6556
+ this.state = 1220;
6577
6557
  this.refExpr();
6578
6558
  }
6579
6559
  }
@@ -6599,28 +6579,28 @@ class MalloyParser extends Parser_1.Parser {
6599
6579
  let _localctx = new RefExprContext(this._ctx, this.state);
6600
6580
  this.enterRule(_localctx, 242, MalloyParser.RULE_refExpr);
6601
6581
  try {
6602
- this.state = 1235;
6582
+ this.state = 1230;
6603
6583
  this._errHandler.sync(this);
6604
- switch (this.interpreter.adaptivePredict(this._input, 130, this._ctx)) {
6584
+ switch (this.interpreter.adaptivePredict(this._input, 129, this._ctx)) {
6605
6585
  case 1:
6606
6586
  this.enterOuterAlt(_localctx, 1);
6607
6587
  {
6608
- this.state = 1228;
6588
+ this.state = 1223;
6609
6589
  this.match(MalloyParser.DOT);
6610
- this.state = 1229;
6590
+ this.state = 1224;
6611
6591
  this.timeframe();
6612
6592
  }
6613
6593
  break;
6614
6594
  case 2:
6615
6595
  this.enterOuterAlt(_localctx, 2);
6616
6596
  {
6617
- this.state = 1230;
6597
+ this.state = 1225;
6618
6598
  this.match(MalloyParser.DOT);
6619
- this.state = 1231;
6599
+ this.state = 1226;
6620
6600
  this.aggregate();
6621
- this.state = 1232;
6601
+ this.state = 1227;
6622
6602
  this.match(MalloyParser.OPAREN);
6623
- this.state = 1233;
6603
+ this.state = 1228;
6624
6604
  this.match(MalloyParser.CPAREN);
6625
6605
  }
6626
6606
  break;
@@ -6646,27 +6626,27 @@ class MalloyParser extends Parser_1.Parser {
6646
6626
  let _localctx = new CollectionMemberContext(this._ctx, this.state);
6647
6627
  this.enterRule(_localctx, 244, MalloyParser.RULE_collectionMember);
6648
6628
  try {
6649
- this.state = 1240;
6629
+ this.state = 1235;
6650
6630
  this._errHandler.sync(this);
6651
- switch (this.interpreter.adaptivePredict(this._input, 131, this._ctx)) {
6631
+ switch (this.interpreter.adaptivePredict(this._input, 130, this._ctx)) {
6652
6632
  case 1:
6653
6633
  this.enterOuterAlt(_localctx, 1);
6654
6634
  {
6655
- this.state = 1237;
6635
+ this.state = 1232;
6656
6636
  this.taggedRef();
6657
6637
  }
6658
6638
  break;
6659
6639
  case 2:
6660
6640
  this.enterOuterAlt(_localctx, 2);
6661
6641
  {
6662
- this.state = 1238;
6642
+ this.state = 1233;
6663
6643
  this.collectionWildCard();
6664
6644
  }
6665
6645
  break;
6666
6646
  case 3:
6667
6647
  this.enterOuterAlt(_localctx, 3);
6668
6648
  {
6669
- this.state = 1239;
6649
+ this.state = 1234;
6670
6650
  this.fieldDef();
6671
6651
  }
6672
6652
  break;
@@ -6695,25 +6675,25 @@ class MalloyParser extends Parser_1.Parser {
6695
6675
  let _alt;
6696
6676
  this.enterOuterAlt(_localctx, 1);
6697
6677
  {
6698
- this.state = 1242;
6678
+ this.state = 1237;
6699
6679
  this.fieldName();
6700
- this.state = 1247;
6680
+ this.state = 1242;
6701
6681
  this._errHandler.sync(this);
6702
- _alt = this.interpreter.adaptivePredict(this._input, 132, this._ctx);
6682
+ _alt = this.interpreter.adaptivePredict(this._input, 131, this._ctx);
6703
6683
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
6704
6684
  if (_alt === 1) {
6705
6685
  {
6706
6686
  {
6707
- this.state = 1243;
6687
+ this.state = 1238;
6708
6688
  this.match(MalloyParser.DOT);
6709
- this.state = 1244;
6689
+ this.state = 1239;
6710
6690
  this.fieldName();
6711
6691
  }
6712
6692
  }
6713
6693
  }
6714
- this.state = 1249;
6694
+ this.state = 1244;
6715
6695
  this._errHandler.sync(this);
6716
- _alt = this.interpreter.adaptivePredict(this._input, 132, this._ctx);
6696
+ _alt = this.interpreter.adaptivePredict(this._input, 131, this._ctx);
6717
6697
  }
6718
6698
  }
6719
6699
  }
@@ -6739,7 +6719,7 @@ class MalloyParser extends Parser_1.Parser {
6739
6719
  try {
6740
6720
  this.enterOuterAlt(_localctx, 1);
6741
6721
  {
6742
- this.state = 1250;
6722
+ this.state = 1245;
6743
6723
  this.id();
6744
6724
  }
6745
6725
  }
@@ -6765,7 +6745,7 @@ class MalloyParser extends Parser_1.Parser {
6765
6745
  try {
6766
6746
  this.enterOuterAlt(_localctx, 1);
6767
6747
  {
6768
- this.state = 1252;
6748
+ this.state = 1247;
6769
6749
  this.id();
6770
6750
  }
6771
6751
  }
@@ -6791,9 +6771,9 @@ class MalloyParser extends Parser_1.Parser {
6791
6771
  try {
6792
6772
  this.enterOuterAlt(_localctx, 1);
6793
6773
  {
6794
- this.state = 1254;
6774
+ this.state = 1249;
6795
6775
  this.fieldExpr(0);
6796
- this.state = 1255;
6776
+ this.state = 1250;
6797
6777
  this.match(MalloyParser.EOF);
6798
6778
  }
6799
6779
  }
@@ -6819,7 +6799,7 @@ class MalloyParser extends Parser_1.Parser {
6819
6799
  try {
6820
6800
  this.enterOuterAlt(_localctx, 1);
6821
6801
  {
6822
- this.state = 1257;
6802
+ this.state = 1252;
6823
6803
  this.id();
6824
6804
  }
6825
6805
  }
@@ -6845,7 +6825,7 @@ class MalloyParser extends Parser_1.Parser {
6845
6825
  try {
6846
6826
  this.enterOuterAlt(_localctx, 1);
6847
6827
  {
6848
- this.state = 1259;
6828
+ this.state = 1254;
6849
6829
  this.id();
6850
6830
  }
6851
6831
  }
@@ -6871,7 +6851,7 @@ class MalloyParser extends Parser_1.Parser {
6871
6851
  try {
6872
6852
  this.enterOuterAlt(_localctx, 1);
6873
6853
  {
6874
- this.state = 1261;
6854
+ this.state = 1256;
6875
6855
  this.string();
6876
6856
  }
6877
6857
  }
@@ -6897,15 +6877,15 @@ class MalloyParser extends Parser_1.Parser {
6897
6877
  try {
6898
6878
  this.enterOuterAlt(_localctx, 1);
6899
6879
  {
6900
- this.state = 1263;
6880
+ this.state = 1258;
6901
6881
  this.match(MalloyParser.SEMI);
6902
- this.state = 1264;
6882
+ this.state = 1259;
6903
6883
  this.match(MalloyParser.SEMI);
6904
- this.state = 1265;
6884
+ this.state = 1260;
6905
6885
  this.match(MalloyParser.OBRACK);
6906
- this.state = 1266;
6886
+ this.state = 1261;
6907
6887
  this.string();
6908
- this.state = 1267;
6888
+ this.state = 1262;
6909
6889
  this.match(MalloyParser.CBRACK);
6910
6890
  }
6911
6891
  }
@@ -7364,7 +7344,7 @@ MalloyParser._SYMBOLIC_NAMES = [
7364
7344
  ];
7365
7345
  MalloyParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(MalloyParser._LITERAL_NAMES, MalloyParser._SYMBOLIC_NAMES, []);
7366
7346
  MalloyParser._serializedATNSegments = 3;
7367
- MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x9D\u04F8\x04" +
7347
+ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x9D\u04F3\x04" +
7368
7348
  "\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
7369
7349
  "\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r" +
7370
7350
  "\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12" +
@@ -7436,107 +7416,107 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
7436
7416
  "L\x03L\x03L\x03M\x03M\x05M\u0333\nM\x03M\x07M\u0336\nM\fM\x0EM\u0339\v" +
7437
7417
  "M\x03M\x05M\u033C\nM\x03N\x03N\x05N\u0340\nN\x03O\x03O\x03O\x03O\x03P" +
7438
7418
  "\x03P\x05P\u0348\nP\x03P\x07P\u034B\nP\fP\x0EP\u034E\vP\x03P\x05P\u0351" +
7439
- "\nP\x03Q\x03Q\x03Q\x03Q\x05Q\u0357\nQ\x03Q\x03Q\x03Q\x03Q\x03Q\x05Q\u035E" +
7440
- "\nQ\x03R\x03R\x03R\x03R\x03S\x03S\x03S\x03S\x03T\x03T\x03T\x03T\x03U\x03" +
7441
- "U\x03U\x03U\x07U\u0370\nU\fU\x0EU\u0373\vU\x03U\x05U\u0376\nU\x03V\x03" +
7442
- "V\x03V\x03W\x03W\x05W\u037D\nW\x03W\x07W\u0380\nW\fW\x0EW\u0383\vW\x03" +
7443
- "W\x05W\u0386\nW\x03X\x03X\x05X\u038A\nX\x03X\x05X\u038D\nX\x03Y\x03Y\x03" +
7444
- "Y\x03Z\x03Z\x03Z\x03Z\x05Z\u0396\nZ\x03[\x03[\x03[\x05[\u039B\n[\x03\\" +
7445
- "\x03\\\x03\\\x05\\\u03A0\n\\\x03\\\x05\\\u03A3\n\\\x03]\x03]\x05]\u03A7" +
7446
- "\n]\x03]\x07]\u03AA\n]\f]\x0E]\u03AD\v]\x03^\x03^\x03^\x03^\x05^\u03B3" +
7447
- "\n^\x03_\x03_\x03_\x03`\x03`\x03`\x03a\x03a\x03b\x03b\x03c\x03c\x03d\x03" +
7448
- "d\x03e\x03e\x03f\x03f\x05f\u03C7\nf\x03g\x03g\x03h\x03h\x03i\x03i\x03" +
7449
- "i\x03i\x03i\x03i\x03i\x05i\u03D4\ni\x03j\x03j\x03j\x03j\x03j\x03j\x03" +
7450
- "j\x05j\u03DD\nj\x03k\x03k\x03l\x03l\x03m\x03m\x03n\x03n\x03o\x03o\x03" +
7451
- "p\x03p\x05p\u03EB\np\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" +
7452
- "q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x05q\u0403" +
7453
- "\nq\x03q\x03q\x03q\x03q\x05q\u0409\nq\x03q\x03q\x03q\x03q\x03q\x03q\x03" +
7454
- "q\x05q\u0412\nq\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" +
7455
- "q\x05q\u041F\nq\x03q\x03q\x03q\x03q\x03q\x05q\u0426\nq\x05q\u0428\nq\x03" +
7456
- "q\x05q\u042B\nq\x03q\x03q\x05q\u042F\nq\x03q\x03q\x03q\x03q\x03q\x03q" +
7457
- "\x03q\x03q\x07q\u0439\nq\fq\x0Eq\u043C\vq\x03q\x03q\x05q\u0440\nq\x03" +
7419
+ "\nP\x03Q\x03Q\x03Q\x03Q\x05Q\u0357\nQ\x03Q\x03Q\x03R\x03R\x03R\x03R\x03" +
7420
+ "S\x03S\x03S\x03S\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x07U\u036B\n" +
7421
+ "U\fU\x0EU\u036E\vU\x03U\x05U\u0371\nU\x03V\x03V\x03V\x03W\x03W\x05W\u0378" +
7422
+ "\nW\x03W\x07W\u037B\nW\fW\x0EW\u037E\vW\x03W\x05W\u0381\nW\x03X\x03X\x05" +
7423
+ "X\u0385\nX\x03X\x05X\u0388\nX\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x03Z\x05Z" +
7424
+ "\u0391\nZ\x03[\x03[\x03[\x05[\u0396\n[\x03\\\x03\\\x03\\\x05\\\u039B\n" +
7425
+ "\\\x03\\\x05\\\u039E\n\\\x03]\x03]\x05]\u03A2\n]\x03]\x07]\u03A5\n]\f" +
7426
+ "]\x0E]\u03A8\v]\x03^\x03^\x03^\x03^\x05^\u03AE\n^\x03_\x03_\x03_\x03`" +
7427
+ "\x03`\x03`\x03a\x03a\x03b\x03b\x03c\x03c\x03d\x03d\x03e\x03e\x03f\x03" +
7428
+ "f\x05f\u03C2\nf\x03g\x03g\x03h\x03h\x03i\x03i\x03i\x03i\x03i\x03i\x03" +
7429
+ "i\x05i\u03CF\ni\x03j\x03j\x03j\x03j\x03j\x03j\x03j\x05j\u03D8\nj\x03k" +
7430
+ "\x03k\x03l\x03l\x03m\x03m\x03n\x03n\x03o\x03o\x03p\x03p\x05p\u03E6\np" +
7431
+ "\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" +
7432
+ "q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x05q\u03FE\nq\x03q\x03q\x03" +
7433
+ "q\x03q\x05q\u0404\nq\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x05q\u040D\nq" +
7434
+ "\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x05q\u041A\nq" +
7435
+ "\x03q\x03q\x03q\x03q\x03q\x05q\u0421\nq\x05q\u0423\nq\x03q\x05q\u0426" +
7436
+ "\nq\x03q\x03q\x05q\u042A\nq\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x07" +
7437
+ "q\u0434\nq\fq\x0Eq\u0437\vq\x03q\x03q\x05q\u043B\nq\x03q\x03q\x03q\x03" +
7458
7438
  "q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" +
7459
7439
  "q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" +
7460
7440
  "q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03" +
7461
- "q\x03q\x03q\x03q\x03q\x03q\x03q\x07q\u0473\nq\fq\x0Eq\u0476\vq\x03r\x03" +
7462
- "r\x05r\u047A\nr\x03r\x03r\x03r\x03r\x05r\u0480\nr\x03r\x05r\u0483\nr\x03" +
7463
- "s\x06s\u0486\ns\rs\x0Es\u0487\x03s\x03s\x05s\u048C\ns\x03t\x03t\x05t\u0490" +
7464
- "\nt\x03t\x03t\x03t\x03u\x03u\x03u\x07u\u0498\nu\fu\x0Eu\u049B\vu\x03u" +
7465
- "\x05u\u049E\nu\x03v\x03v\x05v\u04A2\nv\x03v\x07v\u04A5\nv\fv\x0Ev\u04A8" +
7466
- "\vv\x03w\x03w\x05w\u04AC\nw\x03w\x07w\u04AF\nw\fw\x0Ew\u04B2\vw\x03w\x05" +
7467
- "w\u04B5\nw\x03x\x03x\x03x\x05x\u04BA\nx\x03x\x03x\x05x\u04BE\nx\x03y\x03" +
7468
- "y\x03y\x03y\x06y\u04C4\ny\ry\x0Ey\u04C5\x03y\x03y\x03z\x03z\x03z\x05z" +
7469
- "\u04CD\nz\x03{\x03{\x03{\x03{\x03{\x03{\x03{\x05{\u04D6\n{\x03|\x03|\x03" +
7470
- "|\x05|\u04DB\n|\x03}\x03}\x03}\x07}\u04E0\n}\f}\x0E}\u04E3\v}\x03~\x03" +
7471
- "~\x03\x7F\x03\x7F\x03\x80\x03\x80\x03\x80\x03\x81\x03\x81\x03\x82\x03" +
7472
- "\x82\x03\x83\x03\x83\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x03" +
7473
- "\x84\x02\x02\x05df\xE0\x85\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E" +
7474
- "\x02\x10\x02\x12\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 " +
7475
- "\x02\"\x02$\x02&\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02" +
7476
- "<\x02>\x02@\x02B\x02D\x02F\x02H\x02J\x02L\x02N\x02P\x02R\x02T\x02V\x02" +
7477
- "X\x02Z\x02\\\x02^\x02`\x02b\x02d\x02f\x02h\x02j\x02l\x02n\x02p\x02r\x02" +
7478
- "t\x02v\x02x\x02z\x02|\x02~\x02\x80\x02\x82\x02\x84\x02\x86\x02\x88\x02" +
7479
- "\x8A\x02\x8C\x02\x8E\x02\x90\x02\x92\x02\x94\x02\x96\x02\x98\x02\x9A\x02" +
7480
- "\x9C\x02\x9E\x02\xA0\x02\xA2\x02\xA4\x02\xA6\x02\xA8\x02\xAA\x02\xAC\x02" +
7481
- "\xAE\x02\xB0\x02\xB2\x02\xB4\x02\xB6\x02\xB8\x02\xBA\x02\xBC\x02\xBE\x02" +
7482
- "\xC0\x02\xC2\x02\xC4\x02\xC6\x02\xC8\x02\xCA\x02\xCC\x02\xCE\x02\xD0\x02" +
7483
- "\xD2\x02\xD4\x02\xD6\x02\xD8\x02\xDA\x02\xDC\x02\xDE\x02\xE0\x02\xE2\x02" +
7484
- "\xE4\x02\xE6\x02\xE8\x02\xEA\x02\xEC\x02\xEE\x02\xF0\x02\xF2\x02\xF4\x02" +
7485
- "\xF6\x02\xF8\x02\xFA\x02\xFC\x02\xFE\x02\u0100\x02\u0102\x02\u0104\x02" +
7486
- "\u0106\x02\x02\x14\x04\x02qq\x99\x99\x04\x02\x03\x03\n\n\x04\x02\x19\x19" +
7487
- "\"\"\x06\x0288??CCPP\x04\x02\'\'11\x04\x02\x18\x18\x1D\x1D\x06\x0277[" +
7488
- "[\x92\x92\x94\x94\x06\x02((..DETT\x07\x02))//KKRRYY\x04\x02x}\x85\x86" +
7489
- "\x03\x02de\x03\x02\x93\x94\x04\x0277[[\x04\x02ff\x91\x91\t\x0200==FGO" +
7490
- "OQQ]]``\x04\x02$$55\x05\x02\x80\x80\x82\x82\x87\x87\x03\x02~\x7F\x02\u0548" +
7491
- "\x02\u010C\x03\x02\x02\x02\x04\u0119\x03\x02\x02\x02\x06\u011B\x03\x02" +
7492
- "\x02\x02\b\u0124\x03\x02\x02\x02\n\u0126\x03\x02\x02\x02\f\u012C\x03\x02" +
7493
- "\x02\x02\x0E\u012F\x03\x02\x02\x02\x10\u0133\x03\x02\x02\x02\x12\u0137" +
7494
- "\x03\x02\x02\x02\x14\u013C\x03\x02\x02\x02\x16\u0148\x03\x02\x02\x02\x18" +
7495
- "\u014A\x03\x02\x02\x02\x1A\u0153\x03\x02\x02\x02\x1C\u0157\x03\x02\x02" +
7496
- "\x02\x1E\u015D\x03\x02\x02\x02 \u0169\x03\x02\x02\x02\"\u016E\x03\x02" +
7497
- "\x02\x02$\u0171\x03\x02\x02\x02&\u0176\x03\x02\x02\x02(\u017B\x03\x02" +
7498
- "\x02\x02*\u017F\x03\x02\x02\x02,\u018E\x03\x02\x02\x02.\u0193\x03\x02" +
7499
- "\x02\x020\u0195\x03\x02\x02\x022\u0197\x03\x02\x02\x024\u01AD\x03\x02" +
7500
- "\x02\x026\u01AF\x03\x02\x02\x028\u01BB\x03\x02\x02\x02:\u01BD\x03\x02" +
7501
- "\x02\x02<\u01C2\x03\x02\x02\x02>\u01C4\x03\x02\x02\x02@\u01D1\x03\x02" +
7502
- "\x02\x02B\u01D6\x03\x02\x02\x02D\u01D8\x03\x02\x02\x02F\u01DA\x03\x02" +
7503
- "\x02\x02H\u01E6\x03\x02\x02\x02J\u01FE\x03\x02\x02\x02L\u0200\x03\x02" +
7504
- "\x02\x02N\u0204\x03\x02\x02\x02P\u0208\x03\x02\x02\x02R\u0215\x03\x02" +
7505
- "\x02\x02T\u0219\x03\x02\x02\x02V\u0226\x03\x02\x02\x02X\u022B\x03\x02" +
7506
- "\x02\x02Z\u022D\x03\x02\x02\x02\\\u022F\x03\x02\x02\x02^\u023E\x03\x02" +
7507
- "\x02\x02`\u0240\x03\x02\x02\x02b\u0246\x03\x02\x02\x02d\u0250\x03\x02" +
7508
- "\x02\x02f\u0267\x03\x02\x02\x02h\u0276\x03\x02\x02\x02j\u027B\x03\x02" +
7509
- "\x02\x02l\u027D\x03\x02\x02\x02n\u0287\x03\x02\x02\x02p\u0294\x03\x02" +
7510
- "\x02\x02r\u0299\x03\x02\x02\x02t\u02BC\x03\x02\x02\x02v\u02BE\x03\x02" +
7511
- "\x02\x02x\u02C2\x03\x02\x02\x02z\u02C4\x03\x02\x02\x02|\u02CE\x03\x02" +
7512
- "\x02\x02~\u02DF\x03\x02\x02\x02\x80\u02E1\x03\x02\x02\x02\x82\u02E4\x03" +
7513
- "\x02\x02\x02\x84\u02EA\x03\x02\x02\x02\x86\u02EC\x03\x02\x02\x02\x88\u02F7" +
7514
- "\x03\x02\x02\x02\x8A\u02FA\x03\x02\x02\x02\x8C\u02FD\x03\x02\x02\x02\x8E" +
7515
- "\u030A\x03\x02\x02\x02\x90\u030F\x03\x02\x02\x02\x92\u0328\x03\x02\x02" +
7516
- "\x02\x94\u032A\x03\x02\x02\x02\x96\u032C\x03\x02\x02\x02\x98\u0330\x03" +
7517
- "\x02\x02\x02\x9A\u033F\x03\x02\x02\x02\x9C\u0341\x03\x02\x02\x02\x9E\u0345" +
7518
- "\x03\x02\x02\x02\xA0\u035D\x03\x02\x02\x02\xA2\u035F\x03\x02\x02\x02\xA4" +
7519
- "\u0363\x03\x02\x02\x02\xA6\u0367\x03\x02\x02\x02\xA8\u036B\x03\x02\x02" +
7520
- "\x02\xAA\u0377\x03\x02\x02\x02\xAC\u037A\x03\x02\x02\x02\xAE\u0389\x03" +
7521
- "\x02\x02\x02\xB0\u038E\x03\x02\x02\x02\xB2\u0395\x03\x02\x02\x02\xB4\u0397" +
7522
- "\x03\x02\x02\x02\xB6\u03A2\x03\x02\x02\x02\xB8\u03A4\x03\x02\x02\x02\xBA" +
7523
- "\u03AE\x03\x02\x02\x02\xBC\u03B4\x03\x02\x02\x02\xBE\u03B7\x03\x02\x02" +
7524
- "\x02\xC0\u03BA\x03\x02\x02\x02\xC2\u03BC\x03\x02\x02\x02\xC4\u03BE\x03" +
7525
- "\x02\x02\x02\xC6\u03C0\x03\x02\x02\x02\xC8\u03C2\x03\x02\x02\x02\xCA\u03C6" +
7526
- "\x03\x02\x02\x02\xCC\u03C8\x03\x02\x02\x02\xCE\u03CA\x03\x02\x02\x02\xD0" +
7527
- "\u03D3\x03\x02\x02\x02\xD2\u03DC\x03\x02\x02\x02\xD4\u03DE\x03\x02\x02" +
7528
- "\x02\xD6\u03E0\x03\x02\x02\x02\xD8\u03E2\x03\x02\x02\x02\xDA\u03E4\x03" +
7529
- "\x02\x02\x02\xDC\u03E6\x03\x02\x02\x02\xDE\u03EA\x03\x02\x02\x02\xE0\u043F" +
7530
- "\x03\x02\x02\x02\xE2\u0482\x03\x02\x02\x02\xE4\u0485\x03\x02\x02\x02\xE6" +
7531
- "\u048D\x03\x02\x02\x02\xE8\u0494\x03\x02\x02\x02\xEA\u049F\x03\x02\x02" +
7532
- "\x02\xEC\u04A9\x03\x02\x02\x02\xEE\u04B9\x03\x02\x02\x02\xF0\u04BF\x03" +
7533
- "\x02\x02\x02\xF2\u04C9\x03\x02\x02\x02\xF4\u04D5\x03\x02\x02\x02\xF6\u04DA" +
7534
- "\x03\x02\x02\x02\xF8\u04DC\x03\x02\x02\x02\xFA\u04E4\x03\x02\x02\x02\xFC" +
7535
- "\u04E6\x03\x02\x02\x02\xFE\u04E8\x03\x02\x02\x02\u0100\u04EB\x03\x02\x02" +
7536
- "\x02\u0102\u04ED\x03\x02\x02\x02\u0104\u04EF\x03\x02\x02\x02\u0106\u04F1" +
7537
- "\x03\x02\x02\x02\u0108\u010B\x05\x04\x03\x02\u0109\u010B\x07\x84\x02\x02" +
7538
- "\u010A\u0108\x03\x02\x02\x02\u010A\u0109\x03\x02\x02\x02\u010B\u010E\x03" +
7539
- "\x02\x02\x02\u010C\u010A\x03\x02\x02\x02\u010C\u010D\x03\x02\x02\x02\u010D" +
7441
+ "q\x03q\x03q\x03q\x07q\u046E\nq\fq\x0Eq\u0471\vq\x03r\x03r\x05r\u0475\n" +
7442
+ "r\x03r\x03r\x03r\x03r\x05r\u047B\nr\x03r\x05r\u047E\nr\x03s\x06s\u0481" +
7443
+ "\ns\rs\x0Es\u0482\x03s\x03s\x05s\u0487\ns\x03t\x03t\x05t\u048B\nt\x03" +
7444
+ "t\x03t\x03t\x03u\x03u\x03u\x07u\u0493\nu\fu\x0Eu\u0496\vu\x03u\x05u\u0499" +
7445
+ "\nu\x03v\x03v\x05v\u049D\nv\x03v\x07v\u04A0\nv\fv\x0Ev\u04A3\vv\x03w\x03" +
7446
+ "w\x05w\u04A7\nw\x03w\x07w\u04AA\nw\fw\x0Ew\u04AD\vw\x03w\x05w\u04B0\n" +
7447
+ "w\x03x\x03x\x03x\x05x\u04B5\nx\x03x\x03x\x05x\u04B9\nx\x03y\x03y\x03y" +
7448
+ "\x03y\x06y\u04BF\ny\ry\x0Ey\u04C0\x03y\x03y\x03z\x03z\x03z\x05z\u04C8" +
7449
+ "\nz\x03{\x03{\x03{\x03{\x03{\x03{\x03{\x05{\u04D1\n{\x03|\x03|\x03|\x05" +
7450
+ "|\u04D6\n|\x03}\x03}\x03}\x07}\u04DB\n}\f}\x0E}\u04DE\v}\x03~\x03~\x03" +
7451
+ "\x7F\x03\x7F\x03\x80\x03\x80\x03\x80\x03\x81\x03\x81\x03\x82\x03\x82\x03" +
7452
+ "\x83\x03\x83\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84\x02" +
7453
+ "\x02\x05df\xE0\x85\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10" +
7454
+ "\x02\x12\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02" +
7455
+ "$\x02&\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02" +
7456
+ "@\x02B\x02D\x02F\x02H\x02J\x02L\x02N\x02P\x02R\x02T\x02V\x02X\x02Z\x02" +
7457
+ "\\\x02^\x02`\x02b\x02d\x02f\x02h\x02j\x02l\x02n\x02p\x02r\x02t\x02v\x02" +
7458
+ "x\x02z\x02|\x02~\x02\x80\x02\x82\x02\x84\x02\x86\x02\x88\x02\x8A\x02\x8C" +
7459
+ "\x02\x8E\x02\x90\x02\x92\x02\x94\x02\x96\x02\x98\x02\x9A\x02\x9C\x02\x9E" +
7460
+ "\x02\xA0\x02\xA2\x02\xA4\x02\xA6\x02\xA8\x02\xAA\x02\xAC\x02\xAE\x02\xB0" +
7461
+ "\x02\xB2\x02\xB4\x02\xB6\x02\xB8\x02\xBA\x02\xBC\x02\xBE\x02\xC0\x02\xC2" +
7462
+ "\x02\xC4\x02\xC6\x02\xC8\x02\xCA\x02\xCC\x02\xCE\x02\xD0\x02\xD2\x02\xD4" +
7463
+ "\x02\xD6\x02\xD8\x02\xDA\x02\xDC\x02\xDE\x02\xE0\x02\xE2\x02\xE4\x02\xE6" +
7464
+ "\x02\xE8\x02\xEA\x02\xEC\x02\xEE\x02\xF0\x02\xF2\x02\xF4\x02\xF6\x02\xF8" +
7465
+ "\x02\xFA\x02\xFC\x02\xFE\x02\u0100\x02\u0102\x02\u0104\x02\u0106\x02\x02" +
7466
+ "\x14\x04\x02qq\x99\x99\x04\x02\x03\x03\n\n\x04\x02\x19\x19\"\"\x06\x02" +
7467
+ "88??CCPP\x04\x02\'\'11\x04\x02\x18\x18\x1D\x1D\x06\x0277[[\x92\x92\x94" +
7468
+ "\x94\x06\x02((..DETT\x07\x02))//KKRRYY\x04\x02x}\x85\x86\x03\x02de\x03" +
7469
+ "\x02\x93\x94\x04\x0277[[\x04\x02ff\x91\x91\t\x0200==FGOOQQ]]``\x04\x02" +
7470
+ "$$55\x05\x02\x80\x80\x82\x82\x87\x87\x03\x02~\x7F\x02\u0542\x02\u010C" +
7471
+ "\x03\x02\x02\x02\x04\u0119\x03\x02\x02\x02\x06\u011B\x03\x02\x02\x02\b" +
7472
+ "\u0124\x03\x02\x02\x02\n\u0126\x03\x02\x02\x02\f\u012C\x03\x02\x02\x02" +
7473
+ "\x0E\u012F\x03\x02\x02\x02\x10\u0133\x03\x02\x02\x02\x12\u0137\x03\x02" +
7474
+ "\x02\x02\x14\u013C\x03\x02\x02\x02\x16\u0148\x03\x02\x02\x02\x18\u014A" +
7475
+ "\x03\x02\x02\x02\x1A\u0153\x03\x02\x02\x02\x1C\u0157\x03\x02\x02\x02\x1E" +
7476
+ "\u015D\x03\x02\x02\x02 \u0169\x03\x02\x02\x02\"\u016E\x03\x02\x02\x02" +
7477
+ "$\u0171\x03\x02\x02\x02&\u0176\x03\x02\x02\x02(\u017B\x03\x02\x02\x02" +
7478
+ "*\u017F\x03\x02\x02\x02,\u018E\x03\x02\x02\x02.\u0193\x03\x02\x02\x02" +
7479
+ "0\u0195\x03\x02\x02\x022\u0197\x03\x02\x02\x024\u01AD\x03\x02\x02\x02" +
7480
+ "6\u01AF\x03\x02\x02\x028\u01BB\x03\x02\x02\x02:\u01BD\x03\x02\x02\x02" +
7481
+ "<\u01C2\x03\x02\x02\x02>\u01C4\x03\x02\x02\x02@\u01D1\x03\x02\x02\x02" +
7482
+ "B\u01D6\x03\x02\x02\x02D\u01D8\x03\x02\x02\x02F\u01DA\x03\x02\x02\x02" +
7483
+ "H\u01E6\x03\x02\x02\x02J\u01FE\x03\x02\x02\x02L\u0200\x03\x02\x02\x02" +
7484
+ "N\u0204\x03\x02\x02\x02P\u0208\x03\x02\x02\x02R\u0215\x03\x02\x02\x02" +
7485
+ "T\u0219\x03\x02\x02\x02V\u0226\x03\x02\x02\x02X\u022B\x03\x02\x02\x02" +
7486
+ "Z\u022D\x03\x02\x02\x02\\\u022F\x03\x02\x02\x02^\u023E\x03\x02\x02\x02" +
7487
+ "`\u0240\x03\x02\x02\x02b\u0246\x03\x02\x02\x02d\u0250\x03\x02\x02\x02" +
7488
+ "f\u0267\x03\x02\x02\x02h\u0276\x03\x02\x02\x02j\u027B\x03\x02\x02\x02" +
7489
+ "l\u027D\x03\x02\x02\x02n\u0287\x03\x02\x02\x02p\u0294\x03\x02\x02\x02" +
7490
+ "r\u0299\x03\x02\x02\x02t\u02BC\x03\x02\x02\x02v\u02BE\x03\x02\x02\x02" +
7491
+ "x\u02C2\x03\x02\x02\x02z\u02C4\x03\x02\x02\x02|\u02CE\x03\x02\x02\x02" +
7492
+ "~\u02DF\x03\x02\x02\x02\x80\u02E1\x03\x02\x02\x02\x82\u02E4\x03\x02\x02" +
7493
+ "\x02\x84\u02EA\x03\x02\x02\x02\x86\u02EC\x03\x02\x02\x02\x88\u02F7\x03" +
7494
+ "\x02\x02\x02\x8A\u02FA\x03\x02\x02\x02\x8C\u02FD\x03\x02\x02\x02\x8E\u030A" +
7495
+ "\x03\x02\x02\x02\x90\u030F\x03\x02\x02\x02\x92\u0328\x03\x02\x02\x02\x94" +
7496
+ "\u032A\x03\x02\x02\x02\x96\u032C\x03\x02\x02\x02\x98\u0330\x03\x02\x02" +
7497
+ "\x02\x9A\u033F\x03\x02\x02\x02\x9C\u0341\x03\x02\x02\x02\x9E\u0345\x03" +
7498
+ "\x02\x02\x02\xA0\u0352\x03\x02\x02\x02\xA2\u035A\x03\x02\x02\x02\xA4\u035E" +
7499
+ "\x03\x02\x02\x02\xA6\u0362\x03\x02\x02\x02\xA8\u0366\x03\x02\x02\x02\xAA" +
7500
+ "\u0372\x03\x02\x02\x02\xAC\u0375\x03\x02\x02\x02\xAE\u0384\x03\x02\x02" +
7501
+ "\x02\xB0\u0389\x03\x02\x02\x02\xB2\u0390\x03\x02\x02\x02\xB4\u0392\x03" +
7502
+ "\x02\x02\x02\xB6\u039D\x03\x02\x02\x02\xB8\u039F\x03\x02\x02\x02\xBA\u03A9" +
7503
+ "\x03\x02\x02\x02\xBC\u03AF\x03\x02\x02\x02\xBE\u03B2\x03\x02\x02\x02\xC0" +
7504
+ "\u03B5\x03\x02\x02\x02\xC2\u03B7\x03\x02\x02\x02\xC4\u03B9\x03\x02\x02" +
7505
+ "\x02\xC6\u03BB\x03\x02\x02\x02\xC8\u03BD\x03\x02\x02\x02\xCA\u03C1\x03" +
7506
+ "\x02\x02\x02\xCC\u03C3\x03\x02\x02\x02\xCE\u03C5\x03\x02\x02\x02\xD0\u03CE" +
7507
+ "\x03\x02\x02\x02\xD2\u03D7\x03\x02\x02\x02\xD4\u03D9\x03\x02\x02\x02\xD6" +
7508
+ "\u03DB\x03\x02\x02\x02\xD8\u03DD\x03\x02\x02\x02\xDA\u03DF\x03\x02\x02" +
7509
+ "\x02\xDC\u03E1\x03\x02\x02\x02\xDE\u03E5\x03\x02\x02\x02\xE0\u043A\x03" +
7510
+ "\x02\x02\x02\xE2\u047D\x03\x02\x02\x02\xE4\u0480\x03\x02\x02\x02\xE6\u0488" +
7511
+ "\x03\x02\x02\x02\xE8\u048F\x03\x02\x02\x02\xEA\u049A\x03\x02\x02\x02\xEC" +
7512
+ "\u04A4\x03\x02\x02\x02\xEE\u04B4\x03\x02\x02\x02\xF0\u04BA\x03\x02\x02" +
7513
+ "\x02\xF2\u04C4\x03\x02\x02\x02\xF4\u04D0\x03\x02\x02\x02\xF6\u04D5\x03" +
7514
+ "\x02\x02\x02\xF8\u04D7\x03\x02\x02\x02\xFA\u04DF\x03\x02\x02\x02\xFC\u04E1" +
7515
+ "\x03\x02\x02\x02\xFE\u04E3\x03\x02\x02\x02\u0100\u04E6\x03\x02\x02\x02" +
7516
+ "\u0102\u04E8\x03\x02\x02\x02\u0104\u04EA\x03\x02\x02\x02\u0106\u04EC\x03" +
7517
+ "\x02\x02\x02\u0108\u010B\x05\x04\x03\x02\u0109\u010B\x07\x84\x02\x02\u010A" +
7518
+ "\u0108\x03\x02\x02\x02\u010A\u0109\x03\x02\x02\x02\u010B\u010E\x03\x02" +
7519
+ "\x02\x02\u010C\u010A\x03\x02\x02\x02\u010C\u010D\x03\x02\x02\x02\u010D" +
7540
7520
  "\u010F\x03\x02\x02\x02\u010E\u010C\x03\x02\x02\x02\u010F\u0110\x07\x02" +
7541
7521
  "\x02\x03\u0110\x03\x03\x02\x02\x02\u0111\u011A\x05\x06\x04\x02\u0112\u011A" +
7542
7522
  "\x05\x12\n\x02\u0113\u011A\x05\b\x05\x02\u0114\u011A\x05\x1C\x0F\x02\u0115" +
@@ -7602,33 +7582,32 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
7602
7582
  "\x02\x02\x02\u019E\u019F\x03\x02\x02\x02\u019F\u01A0\x07m\x02\x02\u01A0" +
7603
7583
  "3\x03\x02\x02\x02\u01A1\u01A2\x07V\x02\x02\u01A2\u01A3\x07l\x02\x02\u01A3" +
7604
7584
  "\u01A4\x05\xD6l\x02\u01A4\u01A5\x07m\x02\x02\u01A5\u01AE\x03\x02\x02\x02" +
7605
- "\u01A6";
7606
- MalloyParser._serializedATNSegment1 = "\u01A7\x056\x1C\x02\u01A7\u01A8\x07w\x02\x02\u01A8\u01A9\x07V\x02\x02" +
7607
- "\u01A9\u01AA\x07l\x02\x02\u01AA\u01AB\x05\xD4k\x02\u01AB\u01AC\x07m\x02" +
7608
- "\x02\u01AC\u01AE\x03\x02\x02\x02\u01AD\u01A1\x03\x02\x02\x02\u01AD\u01A6" +
7609
- "\x03\x02\x02\x02\u01AE5\x03\x02\x02\x02\u01AF\u01B0\x05\xD8m\x02\u01B0" +
7610
- "7\x03\x02\x02\x02\u01B1\u01BC\x05:\x1E\x02\u01B2\u01B7\x07p\x02\x02\u01B3" +
7611
- "\u01B6\x05\x92J\x02\u01B4\u01B6\x07\x84\x02\x02\u01B5\u01B3\x03\x02\x02" +
7612
- "\x02\u01B5\u01B4\x03\x02\x02\x02\u01B6\u01B9\x03\x02\x02\x02\u01B7\u01B5" +
7613
- "\x03\x02\x02\x02\u01B7\u01B8\x03\x02\x02\x02\u01B8\u01BA\x03\x02\x02\x02" +
7614
- "\u01B9\u01B7\x03\x02\x02\x02\u01BA\u01BC\x07q\x02\x02\u01BB\u01B1\x03" +
7615
- "\x02\x02\x02\u01BB\u01B2\x03\x02\x02\x02\u01BC9\x03\x02\x02\x02\u01BD" +
7616
- "\u01BE\x07p\x02\x02\u01BE\u01BF\x07\x89\x02\x02\u01BF\u01C0\x05\xE0q\x02" +
7617
- "\u01C0\u01C1\x07q\x02\x02\u01C1;\x03\x02\x02\x02\u01C2\u01C3\x05\xD8m" +
7618
- "\x02\u01C3=\x03\x02\x02\x02\u01C4\u01CB\x05@!\x02\u01C5\u01C7\x07v\x02" +
7619
- "\x02\u01C6\u01C5\x03\x02\x02\x02\u01C6\u01C7\x03\x02\x02\x02\u01C7\u01C8" +
7620
- "\x03\x02\x02\x02\u01C8\u01CA\x05@!\x02\u01C9\u01C6\x03\x02\x02\x02\u01CA" +
7621
- "\u01CD\x03\x02\x02\x02\u01CB\u01C9\x03\x02\x02\x02\u01CB\u01CC\x03\x02" +
7622
- "\x02\x02\u01CC\u01CF\x03\x02\x02\x02\u01CD\u01CB\x03\x02\x02\x02\u01CE" +
7623
- "\u01D0\x07v\x02\x02\u01CF\u01CE\x03\x02\x02\x02\u01CF\u01D0\x03\x02\x02" +
7624
- "\x02\u01D0?\x03\x02\x02\x02\u01D1\u01D2\x05\f\x07\x02\u01D2\u01D3\x05" +
7625
- "D#\x02\u01D3\u01D4\x05\x0E\b\x02\u01D4\u01D5\x05B\"\x02\u01D5A\x03\x02" +
7626
- "\x02\x02\u01D6\u01D7\x05d3\x02\u01D7C\x03\x02\x02\x02\u01D8\u01D9\x05" +
7627
- "\xD8m\x02\u01D9E\x03\x02\x02\x02\u01DA\u01DB\x05\xD8m\x02\u01DBG\x03\x02" +
7628
- "\x02\x02\u01DC\u01E1\x07p\x02\x02\u01DD\u01E0\x05J&\x02\u01DE\u01E0\x07" +
7629
- "\x84\x02\x02\u01DF\u01DD\x03\x02\x02\x02\u01DF\u01DE\x03\x02\x02\x02\u01E0" +
7630
- "\u01E3\x03\x02\x02\x02\u01E1\u01DF\x03\x02\x02\x02\u01E1\u01E2\x03\x02" +
7631
- "\x02\x02\u01E2\u01E4\x03\x02\x02\x02\u01E3\u01E1\x03\x02\x02\x02\u01E4" +
7585
+ "\u01A6\u01A7\x056\x1C\x02\u01A7\u01A8\x07w\x02\x02";
7586
+ MalloyParser._serializedATNSegment1 = "\u01A8\u01A9\x07V\x02\x02\u01A9\u01AA\x07l\x02\x02\u01AA\u01AB\x05\xD4" +
7587
+ "k\x02\u01AB\u01AC\x07m\x02\x02\u01AC\u01AE\x03\x02\x02\x02\u01AD\u01A1" +
7588
+ "\x03\x02\x02\x02\u01AD\u01A6\x03\x02\x02\x02\u01AE5\x03\x02\x02\x02\u01AF" +
7589
+ "\u01B0\x05\xD8m\x02\u01B07\x03\x02\x02\x02\u01B1\u01BC\x05:\x1E\x02\u01B2" +
7590
+ "\u01B7\x07p\x02\x02\u01B3\u01B6\x05\x92J\x02\u01B4\u01B6\x07\x84\x02\x02" +
7591
+ "\u01B5\u01B3\x03\x02\x02\x02\u01B5\u01B4\x03\x02\x02\x02\u01B6\u01B9\x03" +
7592
+ "\x02\x02\x02\u01B7\u01B5\x03\x02\x02\x02\u01B7\u01B8\x03\x02\x02\x02\u01B8" +
7593
+ "\u01BA\x03\x02\x02\x02\u01B9\u01B7\x03\x02\x02\x02\u01BA\u01BC\x07q\x02" +
7594
+ "\x02\u01BB\u01B1\x03\x02\x02\x02\u01BB\u01B2\x03\x02\x02\x02\u01BC9\x03" +
7595
+ "\x02\x02\x02\u01BD\u01BE\x07p\x02\x02\u01BE\u01BF\x07\x89\x02\x02\u01BF" +
7596
+ "\u01C0\x05\xE0q\x02\u01C0\u01C1\x07q\x02\x02\u01C1;\x03\x02\x02\x02\u01C2" +
7597
+ "\u01C3\x05\xD8m\x02\u01C3=\x03\x02\x02\x02\u01C4\u01CB\x05@!\x02\u01C5" +
7598
+ "\u01C7\x07v\x02\x02\u01C6\u01C5\x03\x02\x02\x02\u01C6\u01C7\x03\x02\x02" +
7599
+ "\x02\u01C7\u01C8\x03\x02\x02\x02\u01C8\u01CA\x05@!\x02\u01C9\u01C6\x03" +
7600
+ "\x02\x02\x02\u01CA\u01CD\x03\x02\x02\x02\u01CB\u01C9\x03\x02\x02\x02\u01CB" +
7601
+ "\u01CC\x03\x02\x02\x02\u01CC\u01CF\x03\x02\x02\x02\u01CD\u01CB\x03\x02" +
7602
+ "\x02\x02\u01CE\u01D0\x07v\x02\x02\u01CF\u01CE\x03\x02\x02\x02\u01CF\u01D0" +
7603
+ "\x03\x02\x02\x02\u01D0?\x03\x02\x02\x02\u01D1\u01D2\x05\f\x07\x02\u01D2" +
7604
+ "\u01D3\x05D#\x02\u01D3\u01D4\x05\x0E\b\x02\u01D4\u01D5\x05B\"\x02\u01D5" +
7605
+ "A\x03\x02\x02\x02\u01D6\u01D7\x05d3\x02\u01D7C\x03\x02\x02\x02\u01D8\u01D9" +
7606
+ "\x05\xD8m\x02\u01D9E\x03\x02\x02\x02\u01DA\u01DB\x05\xD8m\x02\u01DBG\x03" +
7607
+ "\x02\x02\x02\u01DC\u01E1\x07p\x02\x02\u01DD\u01E0\x05J&\x02\u01DE\u01E0" +
7608
+ "\x07\x84\x02\x02\u01DF\u01DD\x03\x02\x02\x02\u01DF\u01DE\x03\x02\x02\x02" +
7609
+ "\u01E0\u01E3\x03\x02\x02\x02\u01E1\u01DF\x03\x02\x02\x02\u01E1\u01E2\x03" +
7610
+ "\x02\x02\x02\u01E2\u01E4\x03\x02\x02\x02\u01E3\u01E1\x03\x02\x02\x02\u01E4" +
7632
7611
  "\u01E7\x07q\x02\x02\u01E5\u01E7\x05:\x1E\x02\u01E6\u01DC\x03\x02\x02\x02" +
7633
7612
  "\u01E6\u01E5\x03\x02\x02\x02\u01E7I\x03\x02\x02\x02\u01E8\u01FF\x05N(" +
7634
7613
  "\x02\u01E9\u01FF\x05L\'\x02\u01EA\u01FF\x05\\/\x02\u01EB\u01FF\x05^0\x02" +
@@ -7796,210 +7775,208 @@ MalloyParser._serializedATNSegment1 = "\u01A7\x056\x1C\x02\u01A7\u01A8\x07w\x02\
7796
7775
  "\x03\x02\x02\x02\u034B\u034E\x03\x02\x02\x02\u034C\u034A\x03\x02\x02\x02" +
7797
7776
  "\u034C\u034D\x03\x02\x02\x02\u034D\u0350\x03\x02\x02\x02\u034E\u034C\x03" +
7798
7777
  "\x02\x02\x02\u034F\u0351\x07v\x02\x02\u0350\u034F\x03\x02\x02\x02\u0350" +
7799
- "\u0351\x03\x02\x02\x02\u0351\x9F\x03\x02\x02\x02\u0352\u0353\x05\f\x07" +
7800
- "\x02\u0353\u0356\x05\xF8}\x02\u0354\u0355\x07~\x02\x02\u0355\u0357\x05" +
7801
- "h5\x02\u0356\u0354\x03\x02\x02\x02\u0356\u0357\x03\x02\x02\x02\u0357\u035E" +
7802
- "\x03\x02\x02\x02\u0358\u0359\x05\f\x07\x02\u0359\u035A\x05<\x1F\x02\u035A" +
7803
- "\u035B\x05\x0E\b\x02\u035B\u035C\x05h5\x02\u035C\u035E\x03\x02\x02\x02" +
7804
- "\u035D\u0352\x03\x02\x02\x02\u035D\u0358\x03\x02\x02\x02\u035E\xA1\x03" +
7805
- "\x02\x02\x02\u035F\u0360\x05\f\x07\x02\u0360\u0361\x07\x04\x02\x02\u0361" +
7806
- "\u0362\x05\x98M\x02\u0362\xA3\x03\x02\x02\x02\u0363\u0364\x05\f\x07\x02" +
7807
- "\u0364\u0365\x07\x05\x02\x02\u0365\u0366\x05\x98M\x02\u0366\xA5\x03\x02" +
7808
- "\x02\x02\u0367\u0368\x05\f\x07\x02\u0368\u0369\t\x07\x02\x02\u0369\u036A" +
7809
- "\x05\xECw\x02\u036A\xA7\x03\x02\x02\x02\u036B\u036C\x07\x16\x02\x02\u036C" +
7810
- "\u0371\x05\xD8m\x02\u036D\u036E\x07v\x02\x02\u036E\u0370\x05\xD8m\x02" +
7811
- "\u036F\u036D\x03\x02\x02\x02\u0370\u0373\x03\x02\x02\x02\u0371\u036F\x03" +
7812
- "\x02\x02\x02\u0371\u0372\x03\x02\x02\x02\u0372\u0375\x03\x02\x02\x02\u0373" +
7813
- "\u0371\x03\x02\x02\x02\u0374\u0376\x07v\x02\x02\u0375\u0374\x03\x02\x02" +
7814
- "\x02\u0375\u0376\x03\x02\x02\x02\u0376\xA9\x03\x02\x02\x02\u0377\u0378" +
7815
- "\x07\x15\x02\x02\u0378\u0379\x05\xACW\x02\u0379\xAB\x03\x02\x02\x02\u037A" +
7816
- "\u0381\x05\xAEX\x02\u037B\u037D\x07v\x02\x02\u037C\u037B\x03\x02\x02\x02" +
7817
- "\u037C\u037D\x03\x02\x02\x02\u037D\u037E\x03\x02\x02\x02\u037E\u0380\x05" +
7818
- "\xAEX\x02\u037F\u037C\x03\x02\x02\x02\u0380\u0383\x03\x02\x02\x02\u0381" +
7819
- "\u037F\x03\x02\x02\x02\u0381\u0382\x03\x02\x02\x02\u0382\u0385\x03\x02" +
7820
- "\x02\x02\u0383\u0381\x03\x02\x02\x02\u0384\u0386\x07v\x02\x02\u0385\u0384" +
7821
- "\x03\x02\x02\x02\u0385\u0386\x03\x02\x02\x02\u0386\xAD\x03\x02\x02\x02" +
7822
- "\u0387\u038A\x07\x94\x02\x02\u0388\u038A\x05\xFC\x7F\x02\u0389\u0387\x03" +
7823
- "\x02\x02\x02\u0389\u0388\x03\x02\x02\x02\u038A\u038C\x03\x02\x02\x02\u038B" +
7824
- "\u038D\t\x06\x02\x02\u038C\u038B\x03\x02\x02\x02\u038C\u038D\x03\x02\x02" +
7825
- "\x02\u038D\xAF\x03\x02\x02\x02\u038E\u038F\x07\x12\x02\x02\u038F\u0390" +
7826
- "\x07\x94\x02\x02\u0390\xB1\x03\x02\x02\x02\u0391\u0392\x07*\x02\x02\u0392" +
7827
- "\u0396\x05\xFC\x7F\x02\u0393\u0394\x07*\x02\x02\u0394\u0396\x05\xE0q\x02" +
7828
- "\u0395\u0391\x03\x02\x02\x02\u0395\u0393\x03\x02\x02\x02\u0396\xB3\x03" +
7829
- "\x02\x02\x02\u0397\u0398\x07 \x02\x02\u0398\u039A\x07\x94\x02\x02\u0399" +
7830
- "\u039B\x05\xB2Z\x02\u039A\u0399\x03\x02\x02\x02\u039A\u039B\x03\x02\x02" +
7831
- "\x02\u039B\xB5\x03\x02\x02\x02\u039C\u039F\x05\xF8}\x02\u039D\u039E\x07" +
7832
- "w\x02\x02\u039E\u03A0\x07\x80\x02\x02\u039F\u039D\x03\x02\x02\x02\u039F" +
7833
- "\u03A0\x03\x02\x02\x02\u03A0\u03A3\x03\x02\x02\x02\u03A1\u03A3\x07\x80" +
7834
- "\x02\x02\u03A2\u039C\x03\x02\x02\x02\u03A2\u03A1\x03\x02\x02\x02\u03A3" +
7835
- "\xB7\x03\x02\x02\x02\u03A4\u03AB\x05\xB6\\\x02\u03A5\u03A7\x07v\x02\x02" +
7836
- "\u03A6\u03A5\x03\x02\x02\x02\u03A6\u03A7\x03\x02\x02\x02\u03A7\u03A8\x03" +
7837
- "\x02\x02\x02\u03A8\u03AA\x05\xB6\\\x02\u03A9\u03A6\x03\x02\x02\x02\u03AA" +
7838
- "\u03AD\x03\x02\x02\x02\u03AB\u03A9\x03\x02\x02\x02\u03AB\u03AC\x03\x02" +
7839
- "\x02\x02\u03AC\xB9\x03\x02\x02\x02\u03AD\u03AB\x03\x02\x02\x02\u03AE\u03AF" +
7840
- "\x07\x0E\x02\x02\u03AF\u03B2\x05\xB8]\x02\u03B0\u03B1\x07*\x02\x02\u03B1" +
7841
- "\u03B3\x05\xFC\x7F\x02\u03B2\u03B0\x03\x02\x02\x02\u03B2\u03B3\x03\x02" +
7842
- "\x02\x02\u03B3\xBB\x03\x02\x02\x02\u03B4\u03B5\x07\x1C\x02\x02\u03B5\u03B6" +
7843
- "\x05\xC2b\x02\u03B6\xBD\x03\x02\x02\x02\u03B7\u03B8\x07#\x02\x02\u03B8" +
7844
- "\u03B9\x05\xCAf\x02\u03B9\xBF\x03\x02\x02\x02\u03BA\u03BB\x07h\x02\x02" +
7845
- "\u03BB\xC1\x03\x02\x02\x02\u03BC\u03BD\t\b\x02\x02\u03BD\xC3\x03\x02\x02" +
7846
- "\x02\u03BE\u03BF\t\t\x02\x02\u03BF\xC5\x03\x02\x02\x02\u03C0\u03C1\t\n" +
7847
- "\x02\x02\u03C1\xC7\x03\x02\x02\x02\u03C2\u03C3\t\v\x02\x02\u03C3\xC9\x03" +
7848
- "\x02\x02\x02\u03C4\u03C7\x05\xCCg\x02\u03C5\u03C7\x05\x18\r\x02\u03C6" +
7849
- "\u03C4\x03\x02\x02\x02\u03C6\u03C5\x03\x02\x02\x02\u03C7\xCB\x03\x02\x02" +
7850
- "\x02\u03C8\u03C9\t\f\x02\x02\u03C9\xCD\x03\x02\x02\x02\u03CA\u03CB\t\r" +
7851
- "\x02\x02\u03CB\xCF\x03\x02\x02\x02\u03CC\u03D4\x05\xCAf\x02\u03CD\u03D4" +
7852
- "\x05\xCEh\x02\u03CE\u03D4\x05\xD2j\x02\u03CF\u03D4\x07J\x02\x02\u03D0" +
7853
- "\u03D4\t\x0E\x02\x02\u03D1\u03D4\x07c\x02\x02\u03D2\u03D4\x07I\x02\x02" +
7854
- "\u03D3\u03CC\x03\x02\x02\x02\u03D3\u03CD\x03\x02\x02\x02\u03D3\u03CE\x03" +
7855
- "\x02\x02\x02\u03D3\u03CF\x03\x02\x02\x02\u03D3\u03D0\x03\x02\x02\x02\u03D3" +
7856
- "\u03D1\x03\x02\x02\x02\u03D3\u03D2\x03\x02\x02\x02\u03D4\xD1\x03\x02\x02" +
7857
- "\x02\u03D5\u03DD\x07\x8A\x02\x02\u03D6\u03DD\x07\x8B\x02\x02\u03D7\u03DD" +
7858
- "\x07\x8C\x02\x02\u03D8\u03DD\x07\x8F\x02\x02\u03D9\u03DD\x07\x8E\x02\x02" +
7859
- "\u03DA\u03DD\x07\x8D\x02\x02\u03DB\u03DD\x07\x90\x02\x02\u03DC\u03D5\x03" +
7860
- "\x02\x02\x02\u03DC\u03D6\x03\x02\x02\x02\u03DC\u03D7\x03\x02\x02\x02\u03DC" +
7861
- "\u03D8\x03\x02\x02\x02\u03DC\u03D9\x03\x02\x02\x02\u03DC\u03DA\x03\x02" +
7862
- "\x02\x02\u03DC\u03DB\x03\x02\x02\x02\u03DD\xD3\x03\x02\x02\x02\u03DE\u03DF" +
7863
- "\x05\xCAf\x02\u03DF\xD5\x03\x02\x02\x02\u03E0\u03E1\x05\xCAf\x02\u03E1" +
7864
- "\xD7\x03\x02\x02\x02\u03E2\u03E3\t\x0F\x02\x02\u03E3\xD9\x03\x02\x02\x02" +
7865
- "\u03E4\u03E5\t\x10\x02\x02\u03E5\xDB\x03\x02\x02\x02\u03E6\u03E7\t\x11" +
7866
- "\x02\x02\u03E7\xDD\x03\x02\x02\x02\u03E8\u03EB\x05\xC6d\x02\u03E9\u03EB" +
7867
- "\x05\xCAf\x02\u03EA\u03E8\x03\x02\x02\x02\u03EA\u03E9\x03\x02\x02\x02" +
7868
- "\u03EB\xDF\x03\x02\x02\x02\u03EC\u03ED\bq\x01\x02\u03ED\u0440\x05\xF8" +
7869
- "}\x02\u03EE\u0440\x05\xD0i\x02\u03EF\u03F0\x07\x7F\x02\x02\u03F0\u0440" +
7870
- "\x05\xE0q\x18\u03F1\u03F2\x07H\x02\x02\u03F2\u0440\x05\xE0q\x0F\u03F3" +
7871
- "\u03F4\x07,\x02\x02\u03F4\u03F5\x07l\x02\x02\u03F5\u03F6\x05\xE0q\x02" +
7872
- "\u03F6\u03F7\x07&\x02\x02\u03F7\u03F8\x05\xDEp\x02\u03F8\u03F9\x07m\x02" +
7873
- "\x02\u03F9\u0440\x03\x02\x02\x02\u03FA\u03FB\x07.\x02\x02\u03FB\u03FC" +
7874
- "\x07l\x02\x02\u03FC\u03FD\x072\x02\x02\u03FD\u03FE\x05\xE0q\x02\u03FE" +
7875
- "\u03FF\x07m\x02\x02\u03FF\u0440\x03\x02\x02\x02\u0400\u0401\x07S\x02\x02" +
7876
- "\u0401\u0403\x07w\x02\x02\u0402\u0400\x03\x02\x02\x02\u0402\u0403\x03" +
7877
- "\x02\x02\x02\u0403\u0404\x03\x02\x02\x02\u0404\u0405\x05\xC4c\x02\u0405" +
7878
- "\u0408\x07l\x02\x02\u0406\u0409\x05\xE0q\x02\u0407\u0409\x07\x80\x02\x02" +
7879
- "\u0408\u0406\x03\x02\x02\x02\u0408\u0407\x03\x02\x02\x02\u0408\u0409\x03" +
7880
- "\x02\x02\x02\u0409\u040A\x03\x02\x02\x02\u040A\u040B\x07m\x02\x02\u040B" +
7881
- "\u0440\x03\x02\x02\x02\u040C\u040D\x05\xF8}\x02\u040D\u040E\x07w\x02\x02" +
7882
- "\u040E\u040F\x05\xC4c\x02\u040F\u0411\x07l\x02\x02\u0410\u0412\x05\xE0" +
7883
- "q\x02\u0411\u0410\x03\x02\x02\x02\u0411\u0412\x03\x02\x02\x02\u0412\u0413" +
7884
- "\x03\x02\x02\x02\u0413\u0414\x07m\x02\x02\u0414\u0440\x03\x02\x02\x02" +
7885
- "\u0415\u0416\x07l\x02\x02\u0416\u0417\x05\xE2r\x02\u0417\u0418\x07m\x02" +
7886
- "\x02\u0418\u0440\x03\x02\x02\x02\u0419\u041A\x05\xF8}\x02\u041A\u041B" +
7887
- "\x07w\x02\x02\u041B\u041C\x05\xD8m\x02\u041C\u041E\x07l\x02\x02\u041D" +
7888
- "\u041F\x05\xE8u\x02\u041E\u041D\x03\x02\x02\x02\u041E\u041F\x03\x02\x02" +
7889
- "\x02\u041F\u0420\x03\x02\x02\x02\u0420\u0421\x07m\x02\x02\u0421\u0440" +
7890
- "\x03\x02\x02\x02\u0422\u0427\x05\xD8m\x02\u0423\u0425\x07t\x02\x02\u0424" +
7891
- "\u0426\x05\xC6d\x02\u0425\u0424\x03\x02\x02\x02\u0425\u0426\x03\x02\x02" +
7892
- "\x02\u0426\u0428\x03\x02\x02\x02\u0427\u0423\x03\x02\x02\x02\u0427\u0428" +
7893
- "\x03\x02\x02\x02\u0428\u042B\x03\x02\x02\x02\u0429\u042B\x05\xDAn\x02" +
7894
- "\u042A\u0422\x03\x02\x02\x02\u042A\u0429\x03\x02\x02\x02\u042B\u042C\x03" +
7895
- "\x02\x02\x02\u042C\u042E\x07l\x02\x02\u042D\u042F\x05\xE8u\x02\u042E\u042D" +
7896
- "\x03\x02\x02\x02\u042E\u042F\x03\x02\x02\x02\u042F\u0430\x03\x02\x02\x02" +
7897
- "\u0430\u0431\x07m\x02\x02\u0431\u0440\x03\x02\x02\x02\u0432\u0440\x05" +
7898
- "\xE4s\x02\u0433\u0434\x05\xDCo\x02\u0434\u0435\x07l\x02\x02\u0435\u043A" +
7899
- "\x05\xE0q\x02\u0436\u0437\x07v\x02\x02\u0437\u0439\x05\xFC\x7F\x02\u0438" +
7900
- "\u0436\x03\x02\x02\x02\u0439\u043C\x03\x02\x02\x02\u043A\u0438\x03\x02" +
7901
- "\x02\x02\u043A\u043B\x03\x02\x02\x02\u043B\u043D\x03\x02\x02\x02\u043C" +
7902
- "\u043A\x03\x02\x02\x02\u043D\u043E\x07m\x02\x02\u043E\u0440\x03\x02\x02" +
7903
- "\x02\u043F\u03EC\x03\x02\x02\x02\u043F\u03EE\x03\x02\x02\x02\u043F\u03EF" +
7904
- "\x03\x02\x02\x02\u043F\u03F1\x03\x02\x02\x02\u043F\u03F3\x03\x02\x02\x02" +
7905
- "\u043F\u03FA\x03\x02\x02\x02\u043F\u0402\x03\x02\x02\x02\u043F\u040C\x03" +
7906
- "\x02\x02\x02\u043F\u0415\x03\x02\x02\x02\u043F\u0419\x03\x02\x02\x02\u043F" +
7907
- "\u042A\x03\x02\x02\x02\u043F\u0432\x03\x02\x02\x02\u043F\u0433\x03\x02" +
7908
- "\x02\x02\u0440\u0474\x03\x02\x02\x02\u0441\u0442\f\x17\x02\x02\u0442\u0443" +
7909
- "\t\x12\x02\x02\u0443\u0473\x05\xE0q\x18\u0444\u0445\f\x16\x02\x02\u0445" +
7910
- "\u0446\t\x13\x02\x02\u0446\u0473\x05\xE0q\x17\u0447\u0448\f\x15\x02\x02" +
7911
- "\u0448\u0449\x07Z\x02\x02\u0449\u0473\x05\xE0q\x16\u044A\u044B\f\x11\x02" +
7912
- "\x02\u044B\u044C\x05\xC8e\x02\u044C\u044D\x05\xE0q\x12\u044D\u0473\x03" +
7913
- "\x02\x02\x02\u044E\u044F\f\x0E\x02\x02\u044F\u0450\x07%\x02\x02\u0450" +
7914
- "\u0473\x05\xE0q\x0F\u0451\u0452\f";
7915
- MalloyParser._serializedATNSegment2 = "\r\x02\x02\u0452\u0453\x07M\x02\x02\u0453\u0473\x05\xE0q\x0E\u0454\u0455" +
7916
- "\f\f\x02\x02\u0455\u0456\x07\x88\x02\x02\u0456\u0473\x05\xE0q\r\u0457" +
7917
- "\u0458\f\x1E\x02\x02\u0458\u0473\x05z>\x02\u0459\u045A\f\x1C\x02\x02\u045A" +
7918
- "\u0473\x05\xDAn\x02\u045B\u045C\f\x1B\x02\x02\u045C\u045D\x07w\x02\x02" +
7919
- "\u045D\u0473\x05\xDAn\x02\u045E\u045F\f\x1A\x02\x02\u045F\u0460\x07r\x02" +
7920
- "\x02\u0460\u0473\x05\xDEp\x02\u0461\u0462\f\x19\x02\x02\u0462\u0463\x07" +
7921
- "s\x02\x02\u0463\u0473\x05\xDEp\x02\u0464\u0465\f\x14\x02\x02\u0465\u0466" +
7922
- "\x079\x02\x02\u0466\u0467\x05\xE0q\x02\u0467\u0468\x05\xDAn\x02\u0468" +
7923
- "\u0473\x03\x02\x02\x02\u0469\u046A\f\x13\x02\x02\u046A\u046B\x07i\x02" +
7924
- "\x02\u046B\u0473\x05\xE2r\x02\u046C\u046D\f\x12\x02\x02\u046D\u046E\x07" +
7925
- "\x83\x02\x02\u046E\u0473\x05\xE2r\x02\u046F\u0470\f\x10\x02\x02\u0470" +
7926
- "\u0471\x07\x89\x02\x02\u0471\u0473\x05\xE2r\x02\u0472\u0441\x03\x02\x02" +
7927
- "\x02\u0472\u0444\x03\x02\x02\x02\u0472\u0447\x03\x02\x02\x02\u0472\u044A" +
7928
- "\x03\x02\x02\x02\u0472\u044E\x03\x02\x02\x02\u0472\u0451\x03\x02\x02\x02" +
7929
- "\u0472\u0454\x03\x02\x02\x02\u0472\u0457\x03\x02\x02\x02\u0472\u0459\x03" +
7930
- "\x02\x02\x02\u0472\u045B\x03\x02\x02\x02\u0472\u045E\x03\x02\x02\x02\u0472" +
7931
- "\u0461\x03\x02\x02\x02\u0472\u0464\x03\x02\x02\x02\u0472\u0469\x03\x02" +
7932
- "\x02\x02\u0472\u046C\x03\x02\x02\x02\u0472\u046F\x03\x02\x02\x02\u0473" +
7933
- "\u0476\x03\x02\x02\x02\u0474\u0472\x03\x02\x02\x02\u0474\u0475\x03\x02" +
7934
- "\x02\x02\u0475\xE1\x03\x02\x02\x02\u0476\u0474\x03\x02\x02\x02\u0477\u0479" +
7935
- "\x07l\x02\x02\u0478\u047A\x05\xC8e\x02\u0479\u0478\x03\x02\x02\x02\u0479" +
7936
- "\u047A\x03\x02\x02\x02\u047A\u047B\x03\x02\x02\x02\u047B\u047C\x05\xE0" +
7937
- "q\x02\u047C\u047D\x07m\x02\x02\u047D\u0483\x03\x02\x02\x02\u047E\u0480" +
7938
- "\x05\xC8e\x02\u047F\u047E\x03\x02\x02\x02\u047F\u0480\x03\x02\x02\x02" +
7939
- "\u0480\u0481\x03\x02\x02\x02\u0481\u0483\x05\xE0q\x02\u0482\u0477\x03" +
7940
- "\x02\x02\x02\u0482\u047F\x03\x02\x02\x02\u0483\xE3\x03\x02\x02\x02\u0484" +
7941
- "\u0486\x05\xE6t\x02\u0485\u0484\x03\x02\x02\x02\u0486\u0487\x03\x02\x02" +
7942
- "\x02\u0487\u0485\x03\x02\x02\x02\u0487\u0488\x03\x02\x02\x02\u0488\u048B" +
7943
- "\x03\x02\x02\x02\u0489\u048A\x073\x02\x02\u048A\u048C\x05\xE0q\x02\u048B" +
7944
- "\u0489\x03\x02\x02\x02\u048B\u048C\x03\x02\x02\x02\u048C\xE5\x03\x02\x02" +
7945
- "\x02\u048D\u048F\x07N\x02\x02\u048E\u0490\x05\xE0q\x02\u048F\u048E\x03" +
7946
- "\x02\x02\x02\u048F\u0490\x03\x02\x02\x02\u0490\u0491\x03\x02\x02\x02\u0491" +
7947
- "\u0492\x07^\x02\x02\u0492\u0493\x05\xE2r\x02\u0493\xE7\x03\x02\x02\x02" +
7948
- "\u0494\u0499\x05\xE0q\x02\u0495\u0496\x07v\x02\x02\u0496\u0498\x05\xE0" +
7949
- "q\x02\u0497\u0495\x03\x02\x02\x02\u0498\u049B\x03\x02\x02\x02\u0499\u0497" +
7950
- "\x03\x02\x02\x02\u0499\u049A\x03\x02\x02\x02\u049A\u049D\x03\x02\x02\x02" +
7951
- "\u049B\u0499\x03\x02\x02\x02\u049C\u049E\x07v\x02\x02\u049D\u049C\x03" +
7952
- "\x02\x02\x02\u049D\u049E\x03\x02\x02\x02\u049E\xE9\x03\x02\x02\x02\u049F" +
7953
- "\u04A6\x05\xFC\x7F\x02\u04A0\u04A2\x07v\x02\x02\u04A1\u04A0\x03\x02\x02" +
7954
- "\x02\u04A1\u04A2\x03\x02\x02\x02\u04A2\u04A3\x03\x02\x02\x02\u04A3\u04A5" +
7955
- "\x05\xFC\x7F\x02\u04A4\u04A1\x03\x02\x02\x02\u04A5\u04A8\x03\x02\x02\x02" +
7956
- "\u04A6\u04A4\x03\x02\x02\x02\u04A6\u04A7\x03\x02\x02\x02\u04A7\xEB\x03" +
7957
- "\x02\x02\x02\u04A8\u04A6\x03\x02\x02\x02\u04A9\u04B0\x05\xF6|\x02\u04AA" +
7958
- "\u04AC\x07v\x02\x02\u04AB\u04AA\x03\x02\x02\x02\u04AB\u04AC\x03\x02\x02" +
7959
- "\x02\u04AC\u04AD\x03\x02\x02\x02\u04AD\u04AF\x05\xF6|\x02\u04AE\u04AB" +
7960
- "\x03\x02\x02\x02\u04AF\u04B2\x03\x02\x02\x02\u04B0\u04AE\x03\x02\x02\x02" +
7961
- "\u04B0\u04B1\x03\x02\x02\x02\u04B1\u04B4\x03\x02\x02\x02\u04B2\u04B0\x03" +
7962
- "\x02\x02\x02\u04B3\u04B5\x07v\x02\x02\u04B4\u04B3\x03\x02\x02\x02\u04B4" +
7963
- "\u04B5\x03\x02\x02\x02\u04B5\xED\x03\x02\x02\x02\u04B6\u04B7\x05\xF8}" +
7964
- "\x02\u04B7\u04B8\x07w\x02\x02\u04B8\u04BA\x03\x02\x02\x02\u04B9\u04B6" +
7965
- "\x03\x02\x02\x02\u04B9\u04BA\x03\x02\x02\x02\u04BA\u04BB\x03\x02\x02\x02" +
7966
- "\u04BB\u04BD\x07\x80\x02\x02\u04BC\u04BE\x05\xF0y\x02\u04BD\u04BC\x03" +
7967
- "\x02\x02\x02\u04BD\u04BE\x03\x02\x02\x02\u04BE\xEF\x03\x02\x02\x02\u04BF" +
7968
- "\u04C3\x07p\x02\x02\u04C0\u04C1\x07\n\x02\x02\u04C1\u04C4\x05\xEAv\x02" +
7969
- "\u04C2\u04C4\x07v\x02\x02\u04C3\u04C0\x03\x02\x02\x02\u04C3\u04C2\x03" +
7970
- "\x02\x02\x02\u04C4\u04C5\x03\x02\x02\x02\u04C5\u04C3\x03\x02\x02\x02\u04C5" +
7971
- "\u04C6\x03\x02\x02\x02\u04C6\u04C7\x03\x02\x02\x02\u04C7\u04C8\x07q\x02" +
7972
- "\x02\u04C8\xF1\x03\x02\x02\x02\u04C9\u04CA\x05\f\x07\x02\u04CA\u04CC\x05" +
7973
- "\xF8}\x02\u04CB\u04CD\x05\xF4{\x02\u04CC\u04CB\x03\x02\x02\x02\u04CC\u04CD" +
7974
- "\x03\x02\x02\x02\u04CD\xF3\x03\x02\x02\x02\u04CE\u04CF\x07w\x02\x02\u04CF" +
7975
- "\u04D6\x05\xDAn\x02\u04D0\u04D1\x07w\x02\x02\u04D1\u04D2\x05\xC4c\x02" +
7976
- "\u04D2\u04D3\x07l\x02\x02\u04D3\u04D4\x07m\x02\x02\u04D4\u04D6\x03\x02" +
7977
- "\x02\x02\u04D5\u04CE\x03\x02\x02\x02\u04D5\u04D0\x03\x02\x02\x02\u04D6" +
7978
- "\xF5\x03\x02\x02\x02\u04D7\u04DB\x05\xF2z\x02\u04D8\u04DB\x05\xEEx\x02" +
7979
- "\u04D9\u04DB\x05V,\x02\u04DA\u04D7\x03\x02\x02\x02\u04DA\u04D8\x03\x02" +
7980
- "\x02\x02\u04DA\u04D9\x03\x02\x02\x02\u04DB\xF7\x03\x02\x02\x02\u04DC\u04E1" +
7981
- "\x05\xFC\x7F\x02\u04DD\u04DE\x07w\x02\x02\u04DE\u04E0\x05\xFC\x7F\x02" +
7982
- "\u04DF\u04DD\x03\x02\x02\x02\u04E0\u04E3\x03\x02\x02\x02\u04E1\u04DF\x03" +
7983
- "\x02\x02\x02\u04E1\u04E2\x03\x02\x02\x02\u04E2\xF9\x03\x02\x02\x02\u04E3" +
7984
- "\u04E1\x03\x02\x02\x02\u04E4\u04E5\x05\xD8m\x02\u04E5\xFB\x03\x02\x02" +
7985
- "\x02\u04E6\u04E7\x05\xD8m\x02\u04E7\xFD\x03\x02\x02\x02\u04E8\u04E9\x05" +
7986
- "\xE0q\x02\u04E9\u04EA\x07\x02\x02\x03\u04EA\xFF\x03\x02\x02\x02\u04EB" +
7987
- "\u04EC\x05\xD8m\x02\u04EC\u0101\x03\x02\x02\x02\u04ED\u04EE\x05\xD8m\x02" +
7988
- "\u04EE\u0103\x03\x02\x02\x02\u04EF\u04F0\x05\xCAf\x02\u04F0\u0105\x03" +
7989
- "\x02\x02\x02\u04F1\u04F2\x07\x84\x02\x02\u04F2\u04F3\x07\x84\x02\x02\u04F3" +
7990
- "\u04F4\x07n\x02\x02\u04F4\u04F5\x05\xCAf\x02\u04F5\u04F6\x07o\x02\x02" +
7991
- "\u04F6\u0107\x03\x02\x02\x02\x87\u010A\u010C\u0119\u0124\u012C\u0140\u0148" +
7778
+ "\u0351\x03\x02\x02\x02\u0351\x9F\x03\x02\x02\x02\u0352\u0356\x05\f\x07" +
7779
+ "\x02\u0353\u0354\x05<\x1F\x02\u0354\u0355\x05\x0E\b\x02\u0355\u0357\x03" +
7780
+ "\x02\x02\x02\u0356\u0353\x03\x02\x02\x02\u0356\u0357\x03\x02\x02\x02\u0357" +
7781
+ "\u0358\x03\x02\x02\x02\u0358\u0359\x05h5\x02\u0359\xA1\x03\x02\x02\x02" +
7782
+ "\u035A\u035B\x05\f\x07\x02\u035B\u035C\x07\x04\x02\x02\u035C\u035D\x05" +
7783
+ "\x98M\x02\u035D\xA3\x03\x02\x02\x02\u035E\u035F\x05\f\x07\x02\u035F\u0360" +
7784
+ "\x07\x05\x02\x02\u0360\u0361\x05\x98M\x02\u0361\xA5\x03\x02\x02\x02\u0362" +
7785
+ "\u0363\x05\f\x07\x02\u0363\u0364\t\x07\x02\x02\u0364\u0365\x05\xECw\x02" +
7786
+ "\u0365\xA7\x03\x02\x02\x02\u0366\u0367\x07\x16\x02\x02\u0367\u036C\x05" +
7787
+ "\xD8m\x02\u0368\u0369\x07v\x02\x02\u0369\u036B\x05\xD8m\x02\u036A\u0368" +
7788
+ "\x03\x02\x02\x02\u036B\u036E\x03\x02\x02\x02\u036C\u036A\x03\x02\x02\x02" +
7789
+ "\u036C\u036D\x03\x02\x02\x02\u036D\u0370\x03\x02\x02\x02\u036E\u036C\x03" +
7790
+ "\x02\x02\x02\u036F\u0371\x07v\x02\x02\u0370\u036F\x03\x02\x02\x02\u0370" +
7791
+ "\u0371\x03\x02\x02\x02\u0371\xA9\x03\x02\x02\x02\u0372\u0373\x07\x15\x02" +
7792
+ "\x02\u0373\u0374\x05\xACW\x02\u0374\xAB\x03\x02\x02\x02\u0375\u037C\x05" +
7793
+ "\xAEX\x02\u0376\u0378\x07v\x02\x02\u0377\u0376\x03\x02\x02\x02\u0377\u0378" +
7794
+ "\x03\x02\x02\x02\u0378\u0379\x03\x02\x02\x02\u0379\u037B\x05\xAEX\x02" +
7795
+ "\u037A\u0377\x03\x02\x02\x02\u037B\u037E\x03\x02\x02\x02\u037C\u037A\x03" +
7796
+ "\x02\x02\x02\u037C\u037D\x03\x02\x02\x02\u037D\u0380\x03\x02\x02\x02\u037E" +
7797
+ "\u037C\x03\x02\x02\x02\u037F\u0381\x07v\x02\x02\u0380\u037F\x03\x02\x02" +
7798
+ "\x02\u0380\u0381\x03\x02\x02\x02\u0381\xAD\x03\x02\x02\x02\u0382\u0385" +
7799
+ "\x07\x94\x02\x02\u0383\u0385\x05\xFC\x7F\x02\u0384\u0382\x03\x02\x02\x02" +
7800
+ "\u0384\u0383\x03\x02\x02\x02\u0385\u0387\x03\x02\x02\x02\u0386\u0388\t" +
7801
+ "\x06\x02\x02\u0387\u0386\x03\x02\x02\x02\u0387\u0388\x03\x02\x02\x02\u0388" +
7802
+ "\xAF\x03\x02\x02\x02\u0389\u038A\x07\x12\x02\x02\u038A\u038B\x07\x94\x02" +
7803
+ "\x02\u038B\xB1\x03\x02\x02\x02\u038C\u038D\x07*\x02\x02\u038D\u0391\x05" +
7804
+ "\xFC\x7F\x02\u038E\u038F\x07*\x02\x02\u038F\u0391\x05\xE0q\x02\u0390\u038C" +
7805
+ "\x03\x02\x02\x02\u0390\u038E\x03\x02\x02\x02\u0391\xB3\x03\x02\x02\x02" +
7806
+ "\u0392\u0393\x07 \x02\x02\u0393\u0395\x07\x94\x02\x02\u0394\u0396\x05" +
7807
+ "\xB2Z\x02\u0395\u0394\x03\x02\x02\x02\u0395\u0396\x03\x02\x02\x02\u0396" +
7808
+ "\xB5\x03\x02\x02\x02\u0397\u039A\x05\xF8}\x02\u0398\u0399\x07w\x02\x02" +
7809
+ "\u0399\u039B\x07\x80\x02\x02\u039A\u0398\x03\x02\x02\x02\u039A\u039B\x03" +
7810
+ "\x02\x02\x02\u039B\u039E\x03\x02\x02\x02\u039C\u039E\x07\x80\x02\x02\u039D" +
7811
+ "\u0397\x03\x02\x02\x02\u039D\u039C\x03\x02\x02\x02\u039E\xB7\x03\x02\x02" +
7812
+ "\x02\u039F\u03A6\x05\xB6\\\x02\u03A0\u03A2\x07v\x02\x02\u03A1\u03A0\x03" +
7813
+ "\x02\x02\x02\u03A1\u03A2\x03\x02\x02\x02\u03A2\u03A3\x03\x02\x02\x02\u03A3" +
7814
+ "\u03A5\x05\xB6\\\x02\u03A4\u03A1\x03\x02\x02\x02\u03A5\u03A8\x03\x02\x02" +
7815
+ "\x02\u03A6\u03A4\x03\x02\x02\x02\u03A6\u03A7\x03\x02\x02\x02\u03A7\xB9" +
7816
+ "\x03\x02\x02\x02\u03A8\u03A6\x03\x02\x02\x02\u03A9\u03AA\x07\x0E\x02\x02" +
7817
+ "\u03AA\u03AD\x05\xB8]\x02\u03AB\u03AC\x07*\x02\x02\u03AC\u03AE\x05\xFC" +
7818
+ "\x7F\x02\u03AD\u03AB\x03\x02\x02\x02\u03AD\u03AE\x03\x02\x02\x02\u03AE" +
7819
+ "\xBB\x03\x02\x02\x02\u03AF\u03B0\x07\x1C\x02\x02\u03B0\u03B1\x05\xC2b" +
7820
+ "\x02\u03B1\xBD\x03\x02\x02\x02\u03B2\u03B3\x07#\x02\x02\u03B3\u03B4\x05" +
7821
+ "\xCAf\x02\u03B4\xBF\x03\x02\x02\x02\u03B5\u03B6\x07h\x02\x02\u03B6\xC1" +
7822
+ "\x03\x02\x02\x02\u03B7\u03B8\t\b\x02\x02\u03B8\xC3\x03\x02\x02\x02\u03B9" +
7823
+ "\u03BA\t\t\x02\x02\u03BA\xC5\x03\x02\x02\x02\u03BB\u03BC\t\n\x02\x02\u03BC" +
7824
+ "\xC7\x03\x02\x02\x02\u03BD\u03BE\t\v\x02\x02\u03BE\xC9\x03\x02\x02\x02" +
7825
+ "\u03BF\u03C2\x05\xCCg\x02\u03C0\u03C2\x05\x18\r\x02\u03C1\u03BF\x03\x02" +
7826
+ "\x02\x02\u03C1\u03C0\x03\x02\x02\x02\u03C2\xCB\x03\x02\x02\x02\u03C3\u03C4" +
7827
+ "\t\f\x02\x02\u03C4\xCD\x03\x02\x02\x02\u03C5\u03C6\t\r\x02\x02\u03C6\xCF" +
7828
+ "\x03\x02\x02\x02\u03C7\u03CF\x05\xCAf\x02\u03C8\u03CF\x05\xCEh\x02\u03C9" +
7829
+ "\u03CF\x05\xD2j\x02\u03CA\u03CF\x07J\x02\x02\u03CB\u03CF\t\x0E\x02\x02" +
7830
+ "\u03CC\u03CF\x07c\x02\x02\u03CD\u03CF\x07I\x02\x02\u03CE\u03C7\x03\x02" +
7831
+ "\x02\x02\u03CE\u03C8\x03\x02\x02\x02\u03CE\u03C9\x03\x02\x02\x02\u03CE" +
7832
+ "\u03CA\x03\x02\x02\x02\u03CE\u03CB\x03\x02\x02\x02\u03CE\u03CC\x03\x02" +
7833
+ "\x02\x02\u03CE\u03CD\x03\x02\x02\x02\u03CF\xD1\x03\x02\x02\x02\u03D0\u03D8" +
7834
+ "\x07\x8A\x02\x02\u03D1\u03D8\x07\x8B\x02\x02\u03D2\u03D8\x07\x8C\x02\x02" +
7835
+ "\u03D3\u03D8\x07\x8F\x02\x02\u03D4\u03D8\x07\x8E\x02\x02\u03D5\u03D8\x07" +
7836
+ "\x8D\x02\x02\u03D6\u03D8\x07\x90\x02\x02\u03D7\u03D0\x03\x02\x02\x02\u03D7" +
7837
+ "\u03D1\x03\x02\x02\x02\u03D7\u03D2\x03\x02\x02\x02\u03D7\u03D3\x03\x02" +
7838
+ "\x02\x02\u03D7\u03D4\x03\x02\x02\x02\u03D7\u03D5\x03\x02\x02\x02\u03D7" +
7839
+ "\u03D6\x03\x02\x02\x02\u03D8\xD3\x03\x02\x02\x02\u03D9\u03DA\x05\xCAf" +
7840
+ "\x02\u03DA\xD5\x03\x02\x02\x02\u03DB\u03DC\x05\xCAf\x02\u03DC\xD7\x03" +
7841
+ "\x02\x02\x02\u03DD\u03DE\t\x0F\x02\x02\u03DE\xD9\x03\x02\x02\x02\u03DF" +
7842
+ "\u03E0\t\x10\x02\x02\u03E0\xDB\x03\x02\x02\x02\u03E1\u03E2\t\x11\x02\x02" +
7843
+ "\u03E2\xDD\x03\x02\x02\x02\u03E3\u03E6\x05\xC6d\x02\u03E4\u03E6\x05\xCA" +
7844
+ "f\x02\u03E5\u03E3\x03\x02\x02\x02\u03E5\u03E4\x03\x02\x02\x02\u03E6\xDF" +
7845
+ "\x03\x02\x02\x02\u03E7\u03E8\bq\x01\x02\u03E8\u043B\x05\xF8}\x02\u03E9" +
7846
+ "\u043B\x05\xD0i\x02\u03EA\u03EB\x07\x7F\x02\x02\u03EB\u043B\x05\xE0q\x18" +
7847
+ "\u03EC\u03ED\x07H\x02\x02\u03ED\u043B\x05\xE0q\x0F\u03EE\u03EF\x07,\x02" +
7848
+ "\x02\u03EF\u03F0\x07l\x02\x02\u03F0\u03F1\x05\xE0q\x02\u03F1\u03F2\x07" +
7849
+ "&\x02\x02\u03F2\u03F3\x05\xDEp\x02\u03F3\u03F4\x07m\x02\x02\u03F4\u043B" +
7850
+ "\x03\x02\x02\x02\u03F5\u03F6\x07.\x02\x02\u03F6\u03F7\x07l\x02\x02\u03F7" +
7851
+ "\u03F8\x072\x02\x02\u03F8\u03F9\x05\xE0q\x02\u03F9\u03FA\x07m\x02\x02" +
7852
+ "\u03FA\u043B\x03\x02\x02\x02\u03FB\u03FC\x07S\x02\x02\u03FC\u03FE\x07" +
7853
+ "w\x02\x02\u03FD\u03FB\x03\x02\x02\x02\u03FD\u03FE\x03\x02\x02\x02\u03FE" +
7854
+ "\u03FF\x03\x02\x02\x02\u03FF\u0400\x05\xC4c\x02\u0400\u0403\x07l\x02\x02" +
7855
+ "\u0401\u0404\x05\xE0q\x02\u0402\u0404\x07\x80\x02\x02\u0403\u0401\x03" +
7856
+ "\x02\x02\x02\u0403\u0402\x03\x02\x02\x02\u0403\u0404\x03\x02\x02\x02\u0404" +
7857
+ "\u0405\x03\x02\x02\x02\u0405\u0406\x07m\x02\x02\u0406\u043B\x03\x02\x02" +
7858
+ "\x02\u0407\u0408\x05\xF8}\x02\u0408\u0409\x07w\x02\x02\u0409\u040A\x05" +
7859
+ "\xC4c\x02\u040A\u040C\x07l\x02\x02\u040B\u040D\x05\xE0q\x02\u040C\u040B" +
7860
+ "\x03\x02\x02\x02\u040C\u040D\x03\x02\x02\x02\u040D\u040E\x03\x02\x02\x02" +
7861
+ "\u040E\u040F\x07m\x02\x02\u040F\u043B\x03\x02\x02\x02\u0410\u0411\x07" +
7862
+ "l\x02\x02\u0411\u0412\x05\xE2r\x02\u0412\u0413\x07m\x02\x02\u0413\u043B" +
7863
+ "\x03\x02\x02\x02\u0414\u0415\x05\xF8}\x02\u0415\u0416\x07w\x02\x02\u0416" +
7864
+ "\u0417\x05\xD8m\x02\u0417\u0419\x07l\x02\x02\u0418\u041A\x05\xE8u\x02" +
7865
+ "\u0419\u0418\x03\x02\x02\x02\u0419\u041A\x03\x02\x02\x02\u041A\u041B\x03" +
7866
+ "\x02\x02\x02\u041B\u041C\x07m\x02\x02\u041C\u043B\x03\x02\x02\x02\u041D" +
7867
+ "\u0422\x05\xD8m\x02\u041E\u0420\x07t\x02\x02\u041F\u0421\x05\xC6d\x02" +
7868
+ "\u0420\u041F\x03\x02\x02\x02\u0420\u0421\x03\x02\x02\x02\u0421\u0423\x03" +
7869
+ "\x02\x02\x02\u0422\u041E\x03\x02\x02\x02\u0422\u0423\x03\x02\x02\x02\u0423" +
7870
+ "\u0426\x03\x02\x02\x02\u0424\u0426\x05\xDAn\x02\u0425\u041D\x03\x02\x02" +
7871
+ "\x02\u0425\u0424\x03\x02\x02\x02\u0426\u0427\x03\x02\x02\x02\u0427\u0429" +
7872
+ "\x07l\x02\x02\u0428\u042A\x05\xE8u\x02\u0429\u0428\x03\x02\x02\x02\u0429" +
7873
+ "\u042A\x03\x02\x02\x02\u042A\u042B\x03\x02\x02\x02\u042B\u042C\x07m\x02" +
7874
+ "\x02\u042C\u043B\x03\x02\x02\x02\u042D\u043B\x05\xE4s\x02\u042E\u042F" +
7875
+ "\x05\xDCo\x02\u042F\u0430\x07l\x02\x02\u0430\u0435\x05\xE0q\x02\u0431" +
7876
+ "\u0432\x07v\x02\x02\u0432\u0434\x05\xFC\x7F\x02\u0433\u0431\x03\x02\x02" +
7877
+ "\x02\u0434\u0437\x03\x02\x02\x02\u0435\u0433\x03\x02\x02\x02\u0435\u0436" +
7878
+ "\x03\x02\x02\x02\u0436\u0438\x03\x02\x02\x02\u0437\u0435\x03\x02\x02\x02" +
7879
+ "\u0438\u0439\x07m\x02\x02\u0439\u043B\x03\x02\x02\x02\u043A\u03E7\x03" +
7880
+ "\x02\x02\x02\u043A\u03E9\x03\x02\x02\x02\u043A\u03EA\x03\x02\x02\x02\u043A" +
7881
+ "\u03EC\x03\x02\x02\x02\u043A\u03EE\x03\x02\x02\x02\u043A\u03F5\x03\x02" +
7882
+ "\x02\x02\u043A\u03FD\x03\x02\x02\x02\u043A\u0407\x03\x02\x02\x02\u043A" +
7883
+ "\u0410\x03\x02\x02\x02\u043A\u0414\x03\x02\x02\x02\u043A\u0425\x03\x02" +
7884
+ "\x02\x02\u043A\u042D\x03\x02\x02\x02\u043A\u042E\x03\x02\x02\x02\u043B" +
7885
+ "\u046F\x03\x02\x02\x02\u043C\u043D\f\x17\x02\x02\u043D\u043E\t\x12\x02" +
7886
+ "\x02\u043E\u046E\x05\xE0q\x18\u043F\u0440\f\x16\x02\x02\u0440\u0441\t" +
7887
+ "\x13\x02\x02\u0441\u046E\x05\xE0q\x17\u0442\u0443\f\x15\x02\x02\u0443" +
7888
+ "\u0444\x07Z\x02\x02\u0444\u046E\x05\xE0q\x16\u0445\u0446\f\x11\x02\x02" +
7889
+ "\u0446\u0447\x05\xC8e\x02\u0447\u0448\x05\xE0q\x12\u0448\u046E\x03\x02" +
7890
+ "\x02\x02\u0449\u044A\f\x0E\x02\x02\u044A\u044B\x07%\x02\x02\u044B\u046E" +
7891
+ "\x05\xE0q\x0F\u044C\u044D\f\r\x02\x02\u044D\u044E\x07M\x02\x02\u044E\u046E" +
7892
+ "\x05\xE0q\x0E\u044F\u0450\f\f\x02\x02\u0450\u0451\x07\x88\x02\x02\u0451" +
7893
+ "\u046E\x05\xE0q\r\u0452\u0453\f\x1E\x02\x02\u0453\u046E\x05z>\x02\u0454" +
7894
+ "\u0455";
7895
+ MalloyParser._serializedATNSegment2 = "\f\x1C\x02\x02\u0455\u046E\x05\xDAn\x02\u0456\u0457\f\x1B\x02\x02\u0457" +
7896
+ "\u0458\x07w\x02\x02\u0458\u046E\x05\xDAn\x02\u0459\u045A\f\x1A\x02\x02" +
7897
+ "\u045A\u045B\x07r\x02\x02\u045B\u046E\x05\xDEp\x02\u045C\u045D\f\x19\x02" +
7898
+ "\x02\u045D\u045E\x07s\x02\x02\u045E\u046E\x05\xDEp\x02\u045F\u0460\f\x14" +
7899
+ "\x02\x02\u0460\u0461\x079\x02\x02\u0461\u0462\x05\xE0q\x02\u0462\u0463" +
7900
+ "\x05\xDAn\x02\u0463\u046E\x03\x02\x02\x02\u0464\u0465\f\x13\x02\x02\u0465" +
7901
+ "\u0466\x07i\x02\x02\u0466\u046E\x05\xE2r\x02\u0467\u0468\f\x12\x02\x02" +
7902
+ "\u0468\u0469\x07\x83\x02\x02\u0469\u046E\x05\xE2r\x02\u046A\u046B\f\x10" +
7903
+ "\x02\x02\u046B\u046C\x07\x89\x02\x02\u046C\u046E\x05\xE2r\x02\u046D\u043C" +
7904
+ "\x03\x02\x02\x02\u046D\u043F\x03\x02\x02\x02\u046D\u0442\x03\x02\x02\x02" +
7905
+ "\u046D\u0445\x03\x02\x02\x02\u046D\u0449\x03\x02\x02\x02\u046D\u044C\x03" +
7906
+ "\x02\x02\x02\u046D\u044F\x03\x02\x02\x02\u046D\u0452\x03\x02\x02\x02\u046D" +
7907
+ "\u0454\x03\x02\x02\x02\u046D\u0456\x03\x02\x02\x02\u046D\u0459\x03\x02" +
7908
+ "\x02\x02\u046D\u045C\x03\x02\x02\x02\u046D\u045F\x03\x02\x02\x02\u046D" +
7909
+ "\u0464\x03\x02\x02\x02\u046D\u0467\x03\x02\x02\x02\u046D\u046A\x03\x02" +
7910
+ "\x02\x02\u046E\u0471\x03\x02\x02\x02\u046F\u046D\x03\x02\x02\x02\u046F" +
7911
+ "\u0470\x03\x02\x02\x02\u0470\xE1\x03\x02\x02\x02\u0471\u046F\x03\x02\x02" +
7912
+ "\x02\u0472\u0474\x07l\x02\x02\u0473\u0475\x05\xC8e\x02\u0474\u0473\x03" +
7913
+ "\x02\x02\x02\u0474\u0475\x03\x02\x02\x02\u0475\u0476\x03\x02\x02\x02\u0476" +
7914
+ "\u0477\x05\xE0q\x02\u0477\u0478\x07m\x02\x02\u0478\u047E\x03\x02\x02\x02" +
7915
+ "\u0479\u047B\x05\xC8e\x02\u047A\u0479\x03\x02\x02\x02\u047A\u047B\x03" +
7916
+ "\x02\x02\x02\u047B\u047C\x03\x02\x02\x02\u047C\u047E\x05\xE0q\x02\u047D" +
7917
+ "\u0472\x03\x02\x02\x02\u047D\u047A\x03\x02\x02\x02\u047E\xE3\x03\x02\x02" +
7918
+ "\x02\u047F\u0481\x05\xE6t\x02\u0480\u047F\x03\x02\x02\x02\u0481\u0482" +
7919
+ "\x03\x02\x02\x02\u0482\u0480\x03\x02\x02\x02\u0482\u0483\x03\x02\x02\x02" +
7920
+ "\u0483\u0486\x03\x02\x02\x02\u0484\u0485\x073\x02\x02\u0485\u0487\x05" +
7921
+ "\xE0q\x02\u0486\u0484\x03\x02\x02\x02\u0486\u0487\x03\x02\x02\x02\u0487" +
7922
+ "\xE5\x03\x02\x02\x02\u0488\u048A\x07N\x02\x02\u0489\u048B\x05\xE0q\x02" +
7923
+ "\u048A\u0489\x03\x02\x02\x02\u048A\u048B\x03\x02\x02\x02\u048B\u048C\x03" +
7924
+ "\x02\x02\x02\u048C\u048D\x07^\x02\x02\u048D\u048E\x05\xE2r\x02\u048E\xE7" +
7925
+ "\x03\x02\x02\x02\u048F\u0494\x05\xE0q\x02\u0490\u0491\x07v\x02\x02\u0491" +
7926
+ "\u0493\x05\xE0q\x02\u0492\u0490\x03\x02\x02\x02\u0493\u0496\x03\x02\x02" +
7927
+ "\x02\u0494\u0492\x03\x02\x02\x02\u0494\u0495\x03\x02\x02\x02\u0495\u0498" +
7928
+ "\x03\x02\x02\x02\u0496\u0494\x03\x02\x02\x02\u0497\u0499\x07v\x02\x02" +
7929
+ "\u0498\u0497\x03\x02\x02\x02\u0498\u0499\x03\x02\x02\x02\u0499\xE9\x03" +
7930
+ "\x02\x02\x02\u049A\u04A1\x05\xFC\x7F\x02\u049B\u049D\x07v\x02\x02\u049C" +
7931
+ "\u049B\x03\x02\x02\x02\u049C\u049D\x03\x02\x02\x02\u049D\u049E\x03\x02" +
7932
+ "\x02\x02\u049E\u04A0\x05\xFC\x7F\x02\u049F\u049C\x03\x02\x02\x02\u04A0" +
7933
+ "\u04A3\x03\x02\x02\x02\u04A1\u049F\x03\x02\x02\x02\u04A1\u04A2\x03\x02" +
7934
+ "\x02\x02\u04A2\xEB\x03\x02\x02\x02\u04A3\u04A1\x03\x02\x02\x02\u04A4\u04AB" +
7935
+ "\x05\xF6|\x02\u04A5\u04A7\x07v\x02\x02\u04A6\u04A5\x03\x02\x02\x02\u04A6" +
7936
+ "\u04A7\x03\x02\x02\x02\u04A7\u04A8\x03\x02\x02\x02\u04A8\u04AA\x05\xF6" +
7937
+ "|\x02\u04A9\u04A6\x03\x02\x02\x02\u04AA\u04AD\x03\x02\x02\x02\u04AB\u04A9" +
7938
+ "\x03\x02\x02\x02\u04AB\u04AC\x03\x02\x02\x02\u04AC\u04AF\x03\x02\x02\x02" +
7939
+ "\u04AD\u04AB\x03\x02\x02\x02\u04AE\u04B0\x07v\x02\x02\u04AF\u04AE\x03" +
7940
+ "\x02\x02\x02\u04AF\u04B0\x03\x02\x02\x02\u04B0\xED\x03\x02\x02\x02\u04B1" +
7941
+ "\u04B2\x05\xF8}\x02\u04B2\u04B3\x07w\x02\x02\u04B3\u04B5\x03\x02\x02\x02" +
7942
+ "\u04B4\u04B1\x03\x02\x02\x02\u04B4\u04B5\x03\x02\x02\x02\u04B5\u04B6\x03" +
7943
+ "\x02\x02\x02\u04B6\u04B8\x07\x80\x02\x02\u04B7\u04B9\x05\xF0y\x02\u04B8" +
7944
+ "\u04B7\x03\x02\x02\x02\u04B8\u04B9\x03\x02\x02\x02\u04B9\xEF\x03\x02\x02" +
7945
+ "\x02\u04BA\u04BE\x07p\x02\x02\u04BB\u04BC\x07\n\x02\x02\u04BC\u04BF\x05" +
7946
+ "\xEAv\x02\u04BD\u04BF\x07v\x02\x02\u04BE\u04BB\x03\x02\x02\x02\u04BE\u04BD" +
7947
+ "\x03\x02\x02\x02\u04BF\u04C0\x03\x02\x02\x02\u04C0\u04BE\x03\x02\x02\x02" +
7948
+ "\u04C0\u04C1\x03\x02\x02\x02\u04C1\u04C2\x03\x02\x02\x02\u04C2\u04C3\x07" +
7949
+ "q\x02\x02\u04C3\xF1\x03\x02\x02\x02\u04C4\u04C5\x05\f\x07\x02\u04C5\u04C7" +
7950
+ "\x05\xF8}\x02\u04C6\u04C8\x05\xF4{\x02\u04C7\u04C6\x03\x02\x02\x02\u04C7" +
7951
+ "\u04C8\x03\x02\x02\x02\u04C8\xF3\x03\x02\x02\x02\u04C9\u04CA\x07w\x02" +
7952
+ "\x02\u04CA\u04D1\x05\xDAn\x02\u04CB\u04CC\x07w\x02\x02\u04CC\u04CD\x05" +
7953
+ "\xC4c\x02\u04CD\u04CE\x07l\x02\x02\u04CE\u04CF\x07m\x02\x02\u04CF\u04D1" +
7954
+ "\x03\x02\x02\x02\u04D0\u04C9\x03\x02\x02\x02\u04D0\u04CB\x03\x02\x02\x02" +
7955
+ "\u04D1\xF5\x03\x02\x02\x02\u04D2\u04D6\x05\xF2z\x02\u04D3\u04D6\x05\xEE" +
7956
+ "x\x02\u04D4\u04D6\x05V,\x02\u04D5\u04D2\x03\x02\x02\x02\u04D5\u04D3\x03" +
7957
+ "\x02\x02\x02\u04D5\u04D4\x03\x02\x02\x02\u04D6\xF7\x03\x02\x02\x02\u04D7" +
7958
+ "\u04DC\x05\xFC\x7F\x02\u04D8\u04D9\x07w\x02\x02\u04D9\u04DB\x05\xFC\x7F" +
7959
+ "\x02\u04DA\u04D8\x03\x02\x02\x02\u04DB\u04DE\x03\x02\x02\x02\u04DC\u04DA" +
7960
+ "\x03\x02\x02\x02\u04DC\u04DD\x03\x02\x02\x02\u04DD\xF9\x03\x02\x02\x02" +
7961
+ "\u04DE\u04DC\x03\x02\x02\x02\u04DF\u04E0\x05\xD8m\x02\u04E0\xFB\x03\x02" +
7962
+ "\x02\x02\u04E1\u04E2\x05\xD8m\x02\u04E2\xFD\x03\x02\x02\x02\u04E3\u04E4" +
7963
+ "\x05\xE0q\x02\u04E4\u04E5\x07\x02\x02\x03\u04E5\xFF\x03\x02\x02\x02\u04E6" +
7964
+ "\u04E7\x05\xD8m\x02\u04E7\u0101\x03\x02\x02\x02\u04E8\u04E9\x05\xD8m\x02" +
7965
+ "\u04E9\u0103\x03\x02\x02\x02\u04EA\u04EB\x05\xCAf\x02\u04EB\u0105\x03" +
7966
+ "\x02\x02\x02\u04EC\u04ED\x07\x84\x02\x02\u04ED\u04EE\x07\x84\x02\x02\u04EE" +
7967
+ "\u04EF\x07n\x02\x02\u04EF\u04F0\x05\xCAf\x02\u04F0\u04F1\x07o\x02\x02" +
7968
+ "\u04F1\u0107\x03\x02\x02\x02\x86\u010A\u010C\u0119\u0124\u012C\u0140\u0148" +
7992
7969
  "\u014E\u0159\u0163\u016C\u0173\u0178\u017D\u0183\u0188\u018C\u019D\u01AD" +
7993
7970
  "\u01B5\u01B7\u01BB\u01C6\u01CB\u01CF\u01DF\u01E1\u01E6\u01FB\u01FE\u020A" +
7994
7971
  "\u020F\u0213\u021B\u0220\u0224\u023E\u0246\u0250\u025B\u025D\u0267\u026E" +
7995
7972
  "\u0276\u027B\u0280\u0282\u0289\u028E\u0292\u029E\u02A3\u02A6\u02AE\u02B3" +
7996
7973
  "\u02B6\u02BA\u02BC\u02C2\u02C7\u02C9\u02D3\u02D7\u02DB\u02DF\u02EA\u02F1" +
7997
7974
  "\u02F5\u02FF\u0304\u0308\u030F\u0328\u0332\u0337\u033B\u033F\u0347\u034C" +
7998
- "\u0350\u0356\u035D\u0371\u0375\u037C\u0381\u0385\u0389\u038C\u0395\u039A" +
7999
- "\u039F\u03A2\u03A6\u03AB\u03B2\u03C6\u03D3\u03DC\u03EA\u0402\u0408\u0411" +
8000
- "\u041E\u0425\u0427\u042A\u042E\u043A\u043F\u0472\u0474\u0479\u047F\u0482" +
8001
- "\u0487\u048B\u048F\u0499\u049D\u04A1\u04A6\u04AB\u04B0\u04B4\u04B9\u04BD" +
8002
- "\u04C3\u04C5\u04CC\u04D5\u04DA\u04E1";
7975
+ "\u0350\u0356\u036C\u0370\u0377\u037C\u0380\u0384\u0387\u0390\u0395\u039A" +
7976
+ "\u039D\u03A1\u03A6\u03AD\u03C1\u03CE\u03D7\u03E5\u03FD\u0403\u040C\u0419" +
7977
+ "\u0420\u0422\u0425\u0429\u0435\u043A\u046D\u046F\u0474\u047A\u047D\u0482" +
7978
+ "\u0486\u048A\u0494\u0498\u049C\u04A1\u04A6\u04AB\u04AF\u04B4\u04B8\u04BE" +
7979
+ "\u04C0\u04C7\u04D0\u04D5\u04DC";
8003
7980
  MalloyParser._serializedATN = Utils.join([
8004
7981
  MalloyParser._serializedATNSegment0,
8005
7982
  MalloyParser._serializedATNSegment1,
@@ -12030,56 +12007,18 @@ class NestEntryContext extends ParserRuleContext_1.ParserRuleContext {
12030
12007
  }
12031
12008
  }
12032
12009
  exports.NestEntryContext = NestEntryContext;
12033
- class NestExistingContext extends NestEntryContext {
12010
+ class NestDefContext extends NestEntryContext {
12034
12011
  tags() {
12035
12012
  return this.getRuleContext(0, TagsContext);
12036
12013
  }
12037
- fieldPath() {
12038
- return this.getRuleContext(0, FieldPathContext);
12039
- }
12040
- PLUS() { return this.tryGetToken(MalloyParser.PLUS, 0); }
12041
12014
  vExpr() {
12042
- return this.tryGetRuleContext(0, VExprContext);
12043
- }
12044
- constructor(ctx) {
12045
- super(ctx.parent, ctx.invokingState);
12046
- this.copyFrom(ctx);
12047
- }
12048
- // @Override
12049
- enterRule(listener) {
12050
- if (listener.enterNestExisting) {
12051
- listener.enterNestExisting(this);
12052
- }
12053
- }
12054
- // @Override
12055
- exitRule(listener) {
12056
- if (listener.exitNestExisting) {
12057
- listener.exitNestExisting(this);
12058
- }
12059
- }
12060
- // @Override
12061
- accept(visitor) {
12062
- if (visitor.visitNestExisting) {
12063
- return visitor.visitNestExisting(this);
12064
- }
12065
- else {
12066
- return visitor.visitChildren(this);
12067
- }
12068
- }
12069
- }
12070
- exports.NestExistingContext = NestExistingContext;
12071
- class NestDefContext extends NestEntryContext {
12072
- tags() {
12073
- return this.getRuleContext(0, TagsContext);
12015
+ return this.getRuleContext(0, VExprContext);
12074
12016
  }
12075
12017
  queryName() {
12076
- return this.getRuleContext(0, QueryNameContext);
12018
+ return this.tryGetRuleContext(0, QueryNameContext);
12077
12019
  }
12078
12020
  isDefine() {
12079
- return this.getRuleContext(0, IsDefineContext);
12080
- }
12081
- vExpr() {
12082
- return this.getRuleContext(0, VExprContext);
12021
+ return this.tryGetRuleContext(0, IsDefineContext);
12083
12022
  }
12084
12023
  constructor(ctx) {
12085
12024
  super(ctx.parent, ctx.invokingState);