@malloydata/malloy 0.0.75-dev230815172342 → 0.0.75-dev230815210351

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.
@@ -2151,7 +2151,9 @@ export declare class ExprUngroupContext extends FieldExprContext {
2151
2151
  accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
2152
2152
  }
2153
2153
  export declare class PartialAllowedFieldExprContext extends ParserRuleContext {
2154
+ OPAREN(): TerminalNode | undefined;
2154
2155
  fieldExpr(): FieldExprContext;
2156
+ CPAREN(): TerminalNode | undefined;
2155
2157
  compareOp(): CompareOpContext | undefined;
2156
2158
  constructor(parent: ParserRuleContext | undefined, invokingState: number);
2157
2159
  get ruleIndex(): number;
@@ -5778,19 +5778,45 @@ class MalloyParser extends Parser_1.Parser {
5778
5778
  this.enterRule(_localctx, 216, MalloyParser.RULE_partialAllowedFieldExpr);
5779
5779
  let _la;
5780
5780
  try {
5781
- this.enterOuterAlt(_localctx, 1);
5782
- {
5783
- this.state = 1087;
5784
- this._errHandler.sync(this);
5785
- _la = this._input.LA(1);
5786
- if (((((_la - 112)) & ~0x1F) === 0 && ((1 << (_la - 112)) & ((1 << (MalloyParser.LT - 112)) | (1 << (MalloyParser.GT - 112)) | (1 << (MalloyParser.EQ - 112)) | (1 << (MalloyParser.NE - 112)) | (1 << (MalloyParser.LTE - 112)) | (1 << (MalloyParser.GTE - 112)) | (1 << (MalloyParser.NOT_MATCH - 112)) | (1 << (MalloyParser.MATCH - 112)))) !== 0)) {
5781
+ this.state = 1097;
5782
+ this._errHandler.sync(this);
5783
+ switch (this.interpreter.adaptivePredict(this._input, 111, this._ctx)) {
5784
+ case 1:
5785
+ this.enterOuterAlt(_localctx, 1);
5787
5786
  {
5788
5787
  this.state = 1086;
5789
- this.compareOp();
5788
+ this.match(MalloyParser.OPAREN);
5789
+ this.state = 1088;
5790
+ this._errHandler.sync(this);
5791
+ _la = this._input.LA(1);
5792
+ if (((((_la - 112)) & ~0x1F) === 0 && ((1 << (_la - 112)) & ((1 << (MalloyParser.LT - 112)) | (1 << (MalloyParser.GT - 112)) | (1 << (MalloyParser.EQ - 112)) | (1 << (MalloyParser.NE - 112)) | (1 << (MalloyParser.LTE - 112)) | (1 << (MalloyParser.GTE - 112)) | (1 << (MalloyParser.NOT_MATCH - 112)) | (1 << (MalloyParser.MATCH - 112)))) !== 0)) {
5793
+ {
5794
+ this.state = 1087;
5795
+ this.compareOp();
5796
+ }
5797
+ }
5798
+ this.state = 1090;
5799
+ this.fieldExpr(0);
5800
+ this.state = 1091;
5801
+ this.match(MalloyParser.CPAREN);
5790
5802
  }
5791
- }
5792
- this.state = 1089;
5793
- this.fieldExpr(0);
5803
+ break;
5804
+ case 2:
5805
+ this.enterOuterAlt(_localctx, 2);
5806
+ {
5807
+ this.state = 1094;
5808
+ this._errHandler.sync(this);
5809
+ _la = this._input.LA(1);
5810
+ if (((((_la - 112)) & ~0x1F) === 0 && ((1 << (_la - 112)) & ((1 << (MalloyParser.LT - 112)) | (1 << (MalloyParser.GT - 112)) | (1 << (MalloyParser.EQ - 112)) | (1 << (MalloyParser.NE - 112)) | (1 << (MalloyParser.LTE - 112)) | (1 << (MalloyParser.GTE - 112)) | (1 << (MalloyParser.NOT_MATCH - 112)) | (1 << (MalloyParser.MATCH - 112)))) !== 0)) {
5811
+ {
5812
+ this.state = 1093;
5813
+ this.compareOp();
5814
+ }
5815
+ }
5816
+ this.state = 1096;
5817
+ this.fieldExpr(0);
5818
+ }
5819
+ break;
5794
5820
  }
5795
5821
  }
5796
5822
  catch (re) {
@@ -5816,7 +5842,7 @@ class MalloyParser extends Parser_1.Parser {
5816
5842
  let _alt;
5817
5843
  this.enterOuterAlt(_localctx, 1);
5818
5844
  {
5819
- this.state = 1092;
5845
+ this.state = 1100;
5820
5846
  this._errHandler.sync(this);
5821
5847
  _alt = 1;
5822
5848
  do {
@@ -5824,7 +5850,7 @@ class MalloyParser extends Parser_1.Parser {
5824
5850
  case 1:
5825
5851
  {
5826
5852
  {
5827
- this.state = 1091;
5853
+ this.state = 1099;
5828
5854
  this.pick();
5829
5855
  }
5830
5856
  }
@@ -5832,18 +5858,18 @@ class MalloyParser extends Parser_1.Parser {
5832
5858
  default:
5833
5859
  throw new NoViableAltException_1.NoViableAltException(this);
5834
5860
  }
5835
- this.state = 1094;
5861
+ this.state = 1102;
5836
5862
  this._errHandler.sync(this);
5837
- _alt = this.interpreter.adaptivePredict(this._input, 110, this._ctx);
5863
+ _alt = this.interpreter.adaptivePredict(this._input, 112, this._ctx);
5838
5864
  } while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER);
5839
- this.state = 1098;
5865
+ this.state = 1106;
5840
5866
  this._errHandler.sync(this);
5841
- switch (this.interpreter.adaptivePredict(this._input, 111, this._ctx)) {
5867
+ switch (this.interpreter.adaptivePredict(this._input, 113, this._ctx)) {
5842
5868
  case 1:
5843
5869
  {
5844
- this.state = 1096;
5870
+ this.state = 1104;
5845
5871
  this.match(MalloyParser.ELSE);
5846
- this.state = 1097;
5872
+ this.state = 1105;
5847
5873
  _localctx._pickElse = this.fieldExpr(0);
5848
5874
  }
5849
5875
  break;
@@ -5873,20 +5899,20 @@ class MalloyParser extends Parser_1.Parser {
5873
5899
  try {
5874
5900
  this.enterOuterAlt(_localctx, 1);
5875
5901
  {
5876
- this.state = 1100;
5902
+ this.state = 1108;
5877
5903
  this.match(MalloyParser.PICK);
5878
- this.state = 1102;
5904
+ this.state = 1110;
5879
5905
  this._errHandler.sync(this);
5880
5906
  _la = this._input.LA(1);
5881
5907
  if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (MalloyParser.ALL - 32)) | (1 << (MalloyParser.AVG - 32)) | (1 << (MalloyParser.CAST - 32)) | (1 << (MalloyParser.COUNT - 32)) | (1 << (MalloyParser.DAY - 32)) | (1 << (MalloyParser.EXCLUDE - 32)) | (1 << (MalloyParser.FALSE - 32)) | (1 << (MalloyParser.HOUR - 32)) | (1 << (MalloyParser.MAX - 32)) | (1 << (MalloyParser.MIN - 32)) | (1 << (MalloyParser.MINUTE - 32)))) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & ((1 << (MalloyParser.MONTH - 64)) | (1 << (MalloyParser.NOT - 64)) | (1 << (MalloyParser.NOW - 64)) | (1 << (MalloyParser.NULL - 64)) | (1 << (MalloyParser.PICK - 64)) | (1 << (MalloyParser.QUARTER - 64)) | (1 << (MalloyParser.SECOND - 64)) | (1 << (MalloyParser.SUM - 64)) | (1 << (MalloyParser.TRUE - 64)) | (1 << (MalloyParser.WEEK - 64)) | (1 << (MalloyParser.YEAR - 64)) | (1 << (MalloyParser.HACKY_REGEX - 64)) | (1 << (MalloyParser.SQ_STRING - 64)) | (1 << (MalloyParser.DQ_STRING - 64)) | (1 << (MalloyParser.BQ_STRING - 64)))) !== 0) || ((((_la - 100)) & ~0x1F) === 0 && ((1 << (_la - 100)) & ((1 << (MalloyParser.OPAREN - 100)) | (1 << (MalloyParser.MINUS - 100)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 100)) | (1 << (MalloyParser.LITERAL_HOUR - 100)))) !== 0) || ((((_la - 132)) & ~0x1F) === 0 && ((1 << (_la - 132)) & ((1 << (MalloyParser.LITERAL_DAY - 132)) | (1 << (MalloyParser.LITERAL_QUARTER - 132)) | (1 << (MalloyParser.LITERAL_MONTH - 132)) | (1 << (MalloyParser.LITERAL_WEEK - 132)) | (1 << (MalloyParser.LITERAL_YEAR - 132)) | (1 << (MalloyParser.IDENTIFIER - 132)) | (1 << (MalloyParser.NUMERIC_LITERAL - 132)) | (1 << (MalloyParser.INTEGER_LITERAL - 132)) | (1 << (MalloyParser.SQL_BEGIN - 132)))) !== 0)) {
5882
5908
  {
5883
- this.state = 1101;
5909
+ this.state = 1109;
5884
5910
  _localctx._pickValue = this.fieldExpr(0);
5885
5911
  }
5886
5912
  }
5887
- this.state = 1104;
5913
+ this.state = 1112;
5888
5914
  this.match(MalloyParser.WHEN);
5889
- this.state = 1105;
5915
+ this.state = 1113;
5890
5916
  _localctx._pickWhen = this.partialAllowedFieldExpr();
5891
5917
  }
5892
5918
  }
@@ -5914,32 +5940,32 @@ class MalloyParser extends Parser_1.Parser {
5914
5940
  let _alt;
5915
5941
  this.enterOuterAlt(_localctx, 1);
5916
5942
  {
5917
- this.state = 1107;
5943
+ this.state = 1115;
5918
5944
  this.fieldExpr(0);
5919
- this.state = 1112;
5945
+ this.state = 1120;
5920
5946
  this._errHandler.sync(this);
5921
- _alt = this.interpreter.adaptivePredict(this._input, 113, this._ctx);
5947
+ _alt = this.interpreter.adaptivePredict(this._input, 115, this._ctx);
5922
5948
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
5923
5949
  if (_alt === 1) {
5924
5950
  {
5925
5951
  {
5926
- this.state = 1108;
5952
+ this.state = 1116;
5927
5953
  this.match(MalloyParser.COMMA);
5928
- this.state = 1109;
5954
+ this.state = 1117;
5929
5955
  this.fieldExpr(0);
5930
5956
  }
5931
5957
  }
5932
5958
  }
5933
- this.state = 1114;
5959
+ this.state = 1122;
5934
5960
  this._errHandler.sync(this);
5935
- _alt = this.interpreter.adaptivePredict(this._input, 113, this._ctx);
5961
+ _alt = this.interpreter.adaptivePredict(this._input, 115, this._ctx);
5936
5962
  }
5937
- this.state = 1116;
5963
+ this.state = 1124;
5938
5964
  this._errHandler.sync(this);
5939
5965
  _la = this._input.LA(1);
5940
5966
  if (_la === MalloyParser.COMMA) {
5941
5967
  {
5942
- this.state = 1115;
5968
+ this.state = 1123;
5943
5969
  this.match(MalloyParser.COMMA);
5944
5970
  }
5945
5971
  }
@@ -5969,32 +5995,32 @@ class MalloyParser extends Parser_1.Parser {
5969
5995
  let _alt;
5970
5996
  this.enterOuterAlt(_localctx, 1);
5971
5997
  {
5972
- this.state = 1118;
5998
+ this.state = 1126;
5973
5999
  this.fieldName();
5974
- this.state = 1125;
6000
+ this.state = 1133;
5975
6001
  this._errHandler.sync(this);
5976
- _alt = this.interpreter.adaptivePredict(this._input, 116, this._ctx);
6002
+ _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
5977
6003
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
5978
6004
  if (_alt === 1) {
5979
6005
  {
5980
6006
  {
5981
- this.state = 1120;
6007
+ this.state = 1128;
5982
6008
  this._errHandler.sync(this);
5983
6009
  _la = this._input.LA(1);
5984
6010
  if (_la === MalloyParser.COMMA) {
5985
6011
  {
5986
- this.state = 1119;
6012
+ this.state = 1127;
5987
6013
  this.match(MalloyParser.COMMA);
5988
6014
  }
5989
6015
  }
5990
- this.state = 1122;
6016
+ this.state = 1130;
5991
6017
  this.fieldName();
5992
6018
  }
5993
6019
  }
5994
6020
  }
5995
- this.state = 1127;
6021
+ this.state = 1135;
5996
6022
  this._errHandler.sync(this);
5997
- _alt = this.interpreter.adaptivePredict(this._input, 116, this._ctx);
6023
+ _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
5998
6024
  }
5999
6025
  }
6000
6026
  }
@@ -6022,39 +6048,39 @@ class MalloyParser extends Parser_1.Parser {
6022
6048
  let _alt;
6023
6049
  this.enterOuterAlt(_localctx, 1);
6024
6050
  {
6025
- this.state = 1128;
6051
+ this.state = 1136;
6026
6052
  this.collectionMember();
6027
- this.state = 1135;
6053
+ this.state = 1143;
6028
6054
  this._errHandler.sync(this);
6029
- _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
6055
+ _alt = this.interpreter.adaptivePredict(this._input, 120, this._ctx);
6030
6056
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
6031
6057
  if (_alt === 1) {
6032
6058
  {
6033
6059
  {
6034
- this.state = 1130;
6060
+ this.state = 1138;
6035
6061
  this._errHandler.sync(this);
6036
6062
  _la = this._input.LA(1);
6037
6063
  if (_la === MalloyParser.COMMA) {
6038
6064
  {
6039
- this.state = 1129;
6065
+ this.state = 1137;
6040
6066
  this.match(MalloyParser.COMMA);
6041
6067
  }
6042
6068
  }
6043
- this.state = 1132;
6069
+ this.state = 1140;
6044
6070
  this.collectionMember();
6045
6071
  }
6046
6072
  }
6047
6073
  }
6048
- this.state = 1137;
6074
+ this.state = 1145;
6049
6075
  this._errHandler.sync(this);
6050
- _alt = this.interpreter.adaptivePredict(this._input, 118, this._ctx);
6076
+ _alt = this.interpreter.adaptivePredict(this._input, 120, this._ctx);
6051
6077
  }
6052
- this.state = 1139;
6078
+ this.state = 1147;
6053
6079
  this._errHandler.sync(this);
6054
6080
  _la = this._input.LA(1);
6055
6081
  if (_la === MalloyParser.COMMA) {
6056
6082
  {
6057
- this.state = 1138;
6083
+ this.state = 1146;
6058
6084
  this.match(MalloyParser.COMMA);
6059
6085
  }
6060
6086
  }
@@ -6083,18 +6109,18 @@ class MalloyParser extends Parser_1.Parser {
6083
6109
  try {
6084
6110
  this.enterOuterAlt(_localctx, 1);
6085
6111
  {
6086
- this.state = 1144;
6112
+ this.state = 1152;
6087
6113
  this._errHandler.sync(this);
6088
6114
  _la = this._input.LA(1);
6089
6115
  if (_la === MalloyParser.BQ_STRING || _la === MalloyParser.IDENTIFIER) {
6090
6116
  {
6091
- this.state = 1141;
6117
+ this.state = 1149;
6092
6118
  this.fieldPath();
6093
- this.state = 1142;
6119
+ this.state = 1150;
6094
6120
  this.match(MalloyParser.DOT);
6095
6121
  }
6096
6122
  }
6097
- this.state = 1146;
6123
+ this.state = 1154;
6098
6124
  _la = this._input.LA(1);
6099
6125
  if (!(_la === MalloyParser.STAR || _la === MalloyParser.STARSTAR)) {
6100
6126
  this._errHandler.recoverInline(this);
@@ -6131,16 +6157,16 @@ class MalloyParser extends Parser_1.Parser {
6131
6157
  try {
6132
6158
  this.enterOuterAlt(_localctx, 1);
6133
6159
  {
6134
- this.state = 1148;
6160
+ this.state = 1156;
6135
6161
  this.tags();
6136
- this.state = 1149;
6162
+ this.state = 1157;
6137
6163
  this.fieldPath();
6138
- this.state = 1151;
6164
+ this.state = 1159;
6139
6165
  this._errHandler.sync(this);
6140
6166
  _la = this._input.LA(1);
6141
6167
  if (_la === MalloyParser.DOT) {
6142
6168
  {
6143
- this.state = 1150;
6169
+ this.state = 1158;
6144
6170
  this.refExpr();
6145
6171
  }
6146
6172
  }
@@ -6166,28 +6192,28 @@ class MalloyParser extends Parser_1.Parser {
6166
6192
  let _localctx = new RefExprContext(this._ctx, this.state);
6167
6193
  this.enterRule(_localctx, 232, MalloyParser.RULE_refExpr);
6168
6194
  try {
6169
- this.state = 1160;
6195
+ this.state = 1168;
6170
6196
  this._errHandler.sync(this);
6171
- switch (this.interpreter.adaptivePredict(this._input, 122, this._ctx)) {
6197
+ switch (this.interpreter.adaptivePredict(this._input, 124, this._ctx)) {
6172
6198
  case 1:
6173
6199
  this.enterOuterAlt(_localctx, 1);
6174
6200
  {
6175
- this.state = 1153;
6201
+ this.state = 1161;
6176
6202
  this.match(MalloyParser.DOT);
6177
- this.state = 1154;
6203
+ this.state = 1162;
6178
6204
  this.timeframe();
6179
6205
  }
6180
6206
  break;
6181
6207
  case 2:
6182
6208
  this.enterOuterAlt(_localctx, 2);
6183
6209
  {
6184
- this.state = 1155;
6210
+ this.state = 1163;
6185
6211
  this.match(MalloyParser.DOT);
6186
- this.state = 1156;
6212
+ this.state = 1164;
6187
6213
  this.aggregate();
6188
- this.state = 1157;
6214
+ this.state = 1165;
6189
6215
  this.match(MalloyParser.OPAREN);
6190
- this.state = 1158;
6216
+ this.state = 1166;
6191
6217
  this.match(MalloyParser.CPAREN);
6192
6218
  }
6193
6219
  break;
@@ -6213,27 +6239,27 @@ class MalloyParser extends Parser_1.Parser {
6213
6239
  let _localctx = new CollectionMemberContext(this._ctx, this.state);
6214
6240
  this.enterRule(_localctx, 234, MalloyParser.RULE_collectionMember);
6215
6241
  try {
6216
- this.state = 1165;
6242
+ this.state = 1173;
6217
6243
  this._errHandler.sync(this);
6218
- switch (this.interpreter.adaptivePredict(this._input, 123, this._ctx)) {
6244
+ switch (this.interpreter.adaptivePredict(this._input, 125, this._ctx)) {
6219
6245
  case 1:
6220
6246
  this.enterOuterAlt(_localctx, 1);
6221
6247
  {
6222
- this.state = 1162;
6248
+ this.state = 1170;
6223
6249
  this.taggedRef();
6224
6250
  }
6225
6251
  break;
6226
6252
  case 2:
6227
6253
  this.enterOuterAlt(_localctx, 2);
6228
6254
  {
6229
- this.state = 1163;
6255
+ this.state = 1171;
6230
6256
  this.collectionWildCard();
6231
6257
  }
6232
6258
  break;
6233
6259
  case 3:
6234
6260
  this.enterOuterAlt(_localctx, 3);
6235
6261
  {
6236
- this.state = 1164;
6262
+ this.state = 1172;
6237
6263
  this.fieldDef();
6238
6264
  }
6239
6265
  break;
@@ -6262,25 +6288,25 @@ class MalloyParser extends Parser_1.Parser {
6262
6288
  let _alt;
6263
6289
  this.enterOuterAlt(_localctx, 1);
6264
6290
  {
6265
- this.state = 1167;
6291
+ this.state = 1175;
6266
6292
  this.fieldName();
6267
- this.state = 1172;
6293
+ this.state = 1180;
6268
6294
  this._errHandler.sync(this);
6269
- _alt = this.interpreter.adaptivePredict(this._input, 124, this._ctx);
6295
+ _alt = this.interpreter.adaptivePredict(this._input, 126, this._ctx);
6270
6296
  while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) {
6271
6297
  if (_alt === 1) {
6272
6298
  {
6273
6299
  {
6274
- this.state = 1168;
6300
+ this.state = 1176;
6275
6301
  this.match(MalloyParser.DOT);
6276
- this.state = 1169;
6302
+ this.state = 1177;
6277
6303
  this.fieldName();
6278
6304
  }
6279
6305
  }
6280
6306
  }
6281
- this.state = 1174;
6307
+ this.state = 1182;
6282
6308
  this._errHandler.sync(this);
6283
- _alt = this.interpreter.adaptivePredict(this._input, 124, this._ctx);
6309
+ _alt = this.interpreter.adaptivePredict(this._input, 126, this._ctx);
6284
6310
  }
6285
6311
  }
6286
6312
  }
@@ -6306,7 +6332,7 @@ class MalloyParser extends Parser_1.Parser {
6306
6332
  try {
6307
6333
  this.enterOuterAlt(_localctx, 1);
6308
6334
  {
6309
- this.state = 1175;
6335
+ this.state = 1183;
6310
6336
  this.id();
6311
6337
  }
6312
6338
  }
@@ -6332,7 +6358,7 @@ class MalloyParser extends Parser_1.Parser {
6332
6358
  try {
6333
6359
  this.enterOuterAlt(_localctx, 1);
6334
6360
  {
6335
- this.state = 1177;
6361
+ this.state = 1185;
6336
6362
  this.id();
6337
6363
  }
6338
6364
  }
@@ -6358,9 +6384,9 @@ class MalloyParser extends Parser_1.Parser {
6358
6384
  try {
6359
6385
  this.enterOuterAlt(_localctx, 1);
6360
6386
  {
6361
- this.state = 1179;
6387
+ this.state = 1187;
6362
6388
  this.fieldExpr(0);
6363
- this.state = 1180;
6389
+ this.state = 1188;
6364
6390
  this.match(MalloyParser.EOF);
6365
6391
  }
6366
6392
  }
@@ -6386,7 +6412,7 @@ class MalloyParser extends Parser_1.Parser {
6386
6412
  try {
6387
6413
  this.enterOuterAlt(_localctx, 1);
6388
6414
  {
6389
- this.state = 1182;
6415
+ this.state = 1190;
6390
6416
  this.id();
6391
6417
  }
6392
6418
  }
@@ -6412,7 +6438,7 @@ class MalloyParser extends Parser_1.Parser {
6412
6438
  try {
6413
6439
  this.enterOuterAlt(_localctx, 1);
6414
6440
  {
6415
- this.state = 1184;
6441
+ this.state = 1192;
6416
6442
  this.id();
6417
6443
  }
6418
6444
  }
@@ -6438,7 +6464,7 @@ class MalloyParser extends Parser_1.Parser {
6438
6464
  try {
6439
6465
  this.enterOuterAlt(_localctx, 1);
6440
6466
  {
6441
- this.state = 1186;
6467
+ this.state = 1194;
6442
6468
  this.string();
6443
6469
  }
6444
6470
  }
@@ -6860,7 +6886,7 @@ MalloyParser._SYMBOLIC_NAMES = [
6860
6886
  ];
6861
6887
  MalloyParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(MalloyParser._LITERAL_NAMES, MalloyParser._SYMBOLIC_NAMES, []);
6862
6888
  MalloyParser._serializedATNSegments = 3;
6863
- MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x97\u04A7\x04" +
6889
+ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x97\u04AF\x04" +
6864
6890
  "\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
6865
6891
  "\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" +
6866
6892
  "\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12" +
@@ -6951,34 +6977,35 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
6951
6977
  "m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03" +
6952
6978
  "m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03" +
6953
6979
  "m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03" +
6954
- "m\x03m\x07m\u043C\nm\fm\x0Em\u043F\vm\x03n\x05n\u0442\nn\x03n\x03n\x03" +
6955
- "o\x06o\u0447\no\ro\x0Eo\u0448\x03o\x03o\x05o\u044D\no\x03p\x03p\x05p\u0451" +
6956
- "\np\x03p\x03p\x03p\x03q\x03q\x03q\x07q\u0459\nq\fq\x0Eq\u045C\vq\x03q" +
6957
- "\x05q\u045F\nq\x03r\x03r\x05r\u0463\nr\x03r\x07r\u0466\nr\fr\x0Er\u0469" +
6958
- "\vr\x03s\x03s\x05s\u046D\ns\x03s\x07s\u0470\ns\fs\x0Es\u0473\vs\x03s\x05" +
6959
- "s\u0476\ns\x03t\x03t\x03t\x05t\u047B\nt\x03t\x03t\x03u\x03u\x03u\x05u" +
6960
- "\u0482\nu\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x05v\u048B\nv\x03w\x03w\x03" +
6961
- "w\x05w\u0490\nw\x03x\x03x\x03x\x07x\u0495\nx\fx\x0Ex\u0498\vx\x03y\x03" +
6962
- "y\x03z\x03z\x03{\x03{\x03{\x03|\x03|\x03}\x03}\x03~\x03~\x03~\x02\x02" +
6963
- "\x03\xD8\x7F\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02" +
6964
- "\x12\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02" +
6965
- "&\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02" +
6966
- "B\x02D\x02F\x02H\x02J\x02L\x02N\x02P\x02R\x02T\x02V\x02X\x02Z\x02\\\x02" +
6967
- "^\x02`\x02b\x02d\x02f\x02h\x02j\x02l\x02n\x02p\x02r\x02t\x02v\x02x\x02" +
6968
- "z\x02|\x02~\x02\x80\x02\x82\x02\x84\x02\x86\x02\x88\x02\x8A\x02\x8C\x02" +
6969
- "\x8E\x02\x90\x02\x92\x02\x94\x02\x96\x02\x98\x02\x9A\x02\x9C\x02\x9E\x02" +
6970
- "\xA0\x02\xA2\x02\xA4\x02\xA6\x02\xA8\x02\xAA\x02\xAC\x02\xAE\x02\xB0\x02" +
6971
- "\xB2\x02\xB4\x02\xB6\x02\xB8\x02\xBA\x02\xBC\x02\xBE\x02\xC0\x02\xC2\x02" +
6972
- "\xC4\x02\xC6\x02\xC8\x02\xCA\x02\xCC\x02\xCE\x02\xD0\x02\xD2\x02\xD4\x02" +
6973
- "\xD6\x02\xD8\x02\xDA\x02\xDC\x02\xDE\x02\xE0\x02\xE2\x02\xE4\x02\xE6\x02" +
6974
- "\xE8\x02\xEA\x02\xEC\x02\xEE\x02\xF0\x02\xF2\x02\xF4\x02\xF6\x02\xF8\x02" +
6975
- "\xFA\x02\x02\x12\x04\x02kk\x93\x93\x04\x02\x03\x03\n\n\x04\x02%%//\x06" +
6976
- "\x0255UU\x8C\x8C\x8E\x8E\x06\x02&&,,?@NN\x07\x02\'\'--FFMMSS\x04\x02r" +
6977
- "w\x7F\x80\x03\x02^_\x03\x02\x8D\x8E\x04\x0255UU\x04\x02``\x8B\x8B\t\x02" +
6978
- "..::ABJJLLWWZZ\x04\x02\"\"33\x05\x02zz||\x81\x81\x03\x02xy\x03\x02z{\x02" +
6979
- "\u04EF\x02\u0100\x03\x02\x02\x02\x04\u010C\x03\x02\x02\x02\x06\u010E\x03" +
6980
- "\x02\x02\x02\b\u0117\x03\x02\x02\x02\n\u0119\x03\x02\x02\x02\f\u011F\x03" +
6981
- "\x02\x02\x02\x0E\u0122\x03\x02\x02\x02\x10\u0126\x03\x02\x02\x02\x12\u012B" +
6980
+ "m\x03m\x07m\u043C\nm\fm\x0Em\u043F\vm\x03n\x03n\x05n\u0443\nn\x03n\x03" +
6981
+ "n\x03n\x03n\x05n\u0449\nn\x03n\x05n\u044C\nn\x03o\x06o\u044F\no\ro\x0E" +
6982
+ "o\u0450\x03o\x03o\x05o\u0455\no\x03p\x03p\x05p\u0459\np\x03p\x03p\x03" +
6983
+ "p\x03q\x03q\x03q\x07q\u0461\nq\fq\x0Eq\u0464\vq\x03q\x05q\u0467\nq\x03" +
6984
+ "r\x03r\x05r\u046B\nr\x03r\x07r\u046E\nr\fr\x0Er\u0471\vr\x03s\x03s\x05" +
6985
+ "s\u0475\ns\x03s\x07s\u0478\ns\fs\x0Es\u047B\vs\x03s\x05s\u047E\ns\x03" +
6986
+ "t\x03t\x03t\x05t\u0483\nt\x03t\x03t\x03u\x03u\x03u\x05u\u048A\nu\x03v" +
6987
+ "\x03v\x03v\x03v\x03v\x03v\x03v\x05v\u0493\nv\x03w\x03w\x03w\x05w\u0498" +
6988
+ "\nw\x03x\x03x\x03x\x07x\u049D\nx\fx\x0Ex\u04A0\vx\x03y\x03y\x03z\x03z" +
6989
+ "\x03{\x03{\x03{\x03|\x03|\x03}\x03}\x03~\x03~\x03~\x02\x02\x03\xD8\x7F" +
6990
+ "\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12\x02\x14" +
6991
+ "\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&\x02(\x02" +
6992
+ "*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02B\x02D\x02" +
6993
+ "F\x02H\x02J\x02L\x02N\x02P\x02R\x02T\x02V\x02X\x02Z\x02\\\x02^\x02`\x02" +
6994
+ "b\x02d\x02f\x02h\x02j\x02l\x02n\x02p\x02r\x02t\x02v\x02x\x02z\x02|\x02" +
6995
+ "~\x02\x80\x02\x82\x02\x84\x02\x86\x02\x88\x02\x8A\x02\x8C\x02\x8E\x02" +
6996
+ "\x90\x02\x92\x02\x94\x02\x96\x02\x98\x02\x9A\x02\x9C\x02\x9E\x02\xA0\x02" +
6997
+ "\xA2\x02\xA4\x02\xA6\x02\xA8\x02\xAA\x02\xAC\x02\xAE\x02\xB0\x02\xB2\x02" +
6998
+ "\xB4\x02\xB6\x02\xB8\x02\xBA\x02\xBC\x02\xBE\x02\xC0\x02\xC2\x02\xC4\x02" +
6999
+ "\xC6\x02\xC8\x02\xCA\x02\xCC\x02\xCE\x02\xD0\x02\xD2\x02\xD4\x02\xD6\x02" +
7000
+ "\xD8\x02\xDA\x02\xDC\x02\xDE\x02\xE0\x02\xE2\x02\xE4\x02\xE6\x02\xE8\x02" +
7001
+ "\xEA\x02\xEC\x02\xEE\x02\xF0\x02\xF2\x02\xF4\x02\xF6\x02\xF8\x02\xFA\x02" +
7002
+ "\x02\x12\x04\x02kk\x93\x93\x04\x02\x03\x03\n\n\x04\x02%%//\x06\x0255U" +
7003
+ "U\x8C\x8C\x8E\x8E\x06\x02&&,,?@NN\x07\x02\'\'--FFMMSS\x04\x02rw\x7F\x80" +
7004
+ "\x03\x02^_\x03\x02\x8D\x8E\x04\x0255UU\x04\x02``\x8B\x8B\t\x02..::ABJ" +
7005
+ "JLLWWZZ\x04\x02\"\"33\x05\x02zz||\x81\x81\x03\x02xy\x03\x02z{\x02\u04F9" +
7006
+ "\x02\u0100\x03\x02\x02\x02\x04\u010C\x03\x02\x02\x02\x06\u010E\x03\x02" +
7007
+ "\x02\x02\b\u0117\x03\x02\x02\x02\n\u0119\x03\x02\x02\x02\f\u011F\x03\x02" +
7008
+ "\x02\x02\x0E\u0122\x03\x02\x02\x02\x10\u0126\x03\x02\x02\x02\x12\u012B" +
6982
7009
  "\x03\x02\x02\x02\x14\u0130\x03\x02\x02\x02\x16\u013C\x03\x02\x02\x02\x18" +
6983
7010
  "\u013E\x03\x02\x02\x02\x1A\u0147\x03\x02\x02\x02\x1C\u014B\x03\x02\x02" +
6984
7011
  "\x02\x1E\u014E\x03\x02\x02\x02 \u0151\x03\x02\x02\x02\"\u0156\x03\x02" +
@@ -7013,13 +7040,13 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
7013
7040
  "\x02\x02\x02\xC6\u0397\x03\x02\x02\x02\xC8\u0399\x03\x02\x02\x02\xCA\u03A2" +
7014
7041
  "\x03\x02\x02\x02\xCC\u03AB\x03\x02\x02\x02\xCE\u03AD\x03\x02\x02\x02\xD0" +
7015
7042
  "\u03AF\x03\x02\x02\x02\xD2\u03B1\x03\x02\x02\x02\xD4\u03B3\x03\x02\x02" +
7016
- "\x02\xD6\u03B5\x03\x02\x02\x02\xD8\u0405\x03\x02\x02\x02\xDA\u0441\x03" +
7017
- "\x02\x02\x02\xDC\u0446\x03\x02\x02\x02\xDE\u044E\x03\x02\x02\x02\xE0\u0455" +
7018
- "\x03\x02\x02\x02\xE2\u0460\x03\x02\x02\x02\xE4\u046A\x03\x02\x02\x02\xE6" +
7019
- "\u047A\x03\x02\x02\x02\xE8\u047E\x03\x02\x02\x02\xEA\u048A\x03\x02\x02" +
7020
- "\x02\xEC\u048F\x03\x02\x02\x02\xEE\u0491\x03\x02\x02\x02\xF0\u0499\x03" +
7021
- "\x02\x02\x02\xF2\u049B\x03\x02\x02\x02\xF4\u049D\x03\x02\x02\x02\xF6\u04A0" +
7022
- "\x03\x02\x02\x02\xF8\u04A2\x03\x02\x02\x02\xFA\u04A4\x03\x02\x02\x02\xFC" +
7043
+ "\x02\xD6\u03B5\x03\x02\x02\x02\xD8\u0405\x03\x02\x02\x02\xDA\u044B\x03" +
7044
+ "\x02\x02\x02\xDC\u044E\x03\x02\x02\x02\xDE\u0456\x03\x02\x02\x02\xE0\u045D" +
7045
+ "\x03\x02\x02\x02\xE2\u0468\x03\x02\x02\x02\xE4\u0472\x03\x02\x02\x02\xE6" +
7046
+ "\u0482\x03\x02\x02\x02\xE8\u0486\x03\x02\x02\x02\xEA\u0492\x03\x02\x02" +
7047
+ "\x02\xEC\u0497\x03\x02\x02\x02\xEE\u0499\x03\x02\x02\x02\xF0\u04A1\x03" +
7048
+ "\x02\x02\x02\xF2\u04A3\x03\x02\x02\x02\xF4\u04A5\x03\x02\x02\x02\xF6\u04A8" +
7049
+ "\x03\x02\x02\x02\xF8\u04AA\x03\x02\x02\x02\xFA\u04AC\x03\x02\x02\x02\xFC" +
7023
7050
  "\xFF\x05\x04\x03\x02\xFD\xFF\x07~\x02\x02\xFE\xFC\x03\x02\x02\x02\xFE" +
7024
7051
  "\xFD\x03\x02\x02\x02\xFF\u0102\x03\x02\x02\x02\u0100\xFE\x03\x02\x02\x02" +
7025
7052
  "\u0100\u0101\x03\x02\x02\x02\u0101\u0103\x03\x02\x02\x02\u0102\u0100\x03" +
@@ -7101,40 +7128,40 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
7101
7128
  "\u01AF\u01B7\x03\x02\x02\x02\u01B0\u01B1\x078\x02\x02\u01B1\u01B2\x07" +
7102
7129
  "f\x02\x02\u01B2\u01B3\x05\xF6|\x02\u01B3\u01B4\x07g\x02\x02\u01B4\u01B7" +
7103
7130
  "\x03\x02\x02\x02\u01B5\u01B7\x05:\x1E\x02\u01B6\u01A9\x03\x02\x02\x02" +
7104
- "\u01B6\u01AA\x03\x02\x02\x02\u01B6\u01AB\x03\x02\x02\x02\u01B6\u01B0\x03" +
7105
- "\x02\x02\x02\u01B6\u01B5\x03\x02\x02\x02";
7106
- MalloyParser._serializedATNSegment1 = "\u01B79\x03\x02\x02\x02\u01B8\u01B9\x05D#\x02\u01B9\u01BA\x07q\x02\x02" +
7107
- "\u01BA\u01BB\x07O\x02\x02\u01BB\u01BE\x07f\x02\x02\u01BC\u01BF\x05\x18" +
7108
- "\r\x02\u01BD\u01BF\x05\xC6d\x02\u01BE\u01BC\x03\x02\x02\x02\u01BE\u01BD" +
7109
- "\x03\x02\x02\x02\u01BF\u01C0\x03\x02\x02\x02\u01C0\u01C1\x07g\x02\x02" +
7110
- "\u01C1;\x03\x02\x02\x02\u01C2\u01C6\x05> \x02\u01C3\u01C5\x05@!\x02\u01C4" +
7111
- "\u01C3\x03\x02\x02\x02\u01C5\u01C8\x03\x02\x02\x02\u01C6\u01C4\x03\x02" +
7112
- "\x02\x02\u01C6\u01C7\x03\x02\x02\x02\u01C7=\x03\x02\x02\x02\u01C8\u01C6" +
7113
- "\x03\x02\x02\x02\u01C9\u01CB\x07d\x02\x02\u01CA\u01C9\x03\x02\x02\x02" +
7114
- "\u01CA\u01CB\x03\x02\x02\x02\u01CB\u01CC\x03\x02\x02\x02\u01CC\u01D2\x05" +
7115
- "F$\x02\u01CD\u01CF\x05J&\x02\u01CE\u01D0\x05,\x17\x02\u01CF\u01CE\x03" +
7116
- "\x02\x02\x02\u01CF\u01D0\x03\x02\x02\x02\u01D0\u01D2\x03\x02\x02\x02\u01D1" +
7117
- "\u01CA\x03\x02\x02\x02\u01D1\u01CD\x03\x02\x02\x02\u01D2?\x03\x02\x02" +
7118
- "\x02\u01D3\u01D4\x07d\x02\x02\u01D4\u01D5\x05F$\x02\u01D5A\x03\x02\x02" +
7119
- "\x02\u01D6\u01D7\x07P\x02\x02\u01D7\u01D8\x07f\x02\x02\u01D8\u01D9\x05" +
7120
- "\xD0i\x02\u01D9\u01DA\x07g\x02\x02\u01DA\u01E3\x03\x02\x02\x02\u01DB\u01DC" +
7121
- "\x05D#\x02\u01DC\u01DD\x07q\x02\x02\u01DD\u01DE\x07P\x02\x02\u01DE\u01DF" +
7122
- "\x07f\x02\x02\u01DF\u01E0\x05\xCEh\x02\u01E0\u01E1\x07g\x02\x02\u01E1" +
7123
- "\u01E3\x03\x02\x02\x02\u01E2\u01D6\x03\x02\x02\x02\u01E2\u01DB\x03\x02" +
7124
- "\x02\x02\u01E3C\x03\x02\x02\x02\u01E4\u01E5\x05\xD2j\x02\u01E5E\x03\x02" +
7125
- "\x02\x02\u01E6\u01F1\x05H%\x02\u01E7\u01EC\x07j\x02\x02\u01E8\u01EB\x05" +
7126
- "\x8EH\x02\u01E9\u01EB\x07~\x02\x02\u01EA\u01E8\x03\x02\x02\x02\u01EA\u01E9" +
7127
- "\x03\x02\x02\x02\u01EB\u01EE\x03\x02\x02\x02\u01EC\u01EA\x03\x02\x02\x02" +
7128
- "\u01EC\u01ED\x03\x02\x02\x02\u01ED\u01EF\x03\x02\x02\x02\u01EE\u01EC\x03" +
7129
- "\x02\x02\x02\u01EF\u01F1\x07k\x02\x02\u01F0\u01E6\x03\x02\x02\x02\u01F0" +
7130
- "\u01E7\x03\x02\x02\x02\u01F1G\x03\x02\x02\x02\u01F2\u01F3\x07j\x02\x02" +
7131
- "\u01F3\u01F4\x07\x83\x02\x02\u01F4\u01F5\x05\xD8m\x02\u01F5\u01F6\x07" +
7132
- "k\x02\x02\u01F6I\x03\x02\x02\x02\u01F7\u01F8\x05\xD2j\x02\u01F8K\x03\x02" +
7133
- "\x02\x02\u01F9\u01FA\x05\xD2j\x02\u01FAM\x03\x02\x02\x02\u01FB\u0202\x05" +
7134
- "P)\x02\u01FC\u01FE\x07p\x02\x02\u01FD\u01FC\x03\x02\x02\x02\u01FD\u01FE" +
7135
- "\x03\x02\x02\x02\u01FE\u01FF\x03\x02\x02\x02\u01FF\u0201\x05P)\x02\u0200" +
7136
- "\u01FD\x03\x02\x02\x02\u0201\u0204\x03\x02\x02\x02\u0202\u0200\x03\x02" +
7137
- "\x02\x02\u0202\u0203\x03\x02\x02\x02\u0203\u0206\x03\x02\x02\x02\u0204" +
7131
+ "\u01B6\u01AA\x03\x02\x02\x02";
7132
+ MalloyParser._serializedATNSegment1 = "\u01B6\u01AB\x03\x02\x02\x02\u01B6\u01B0\x03\x02\x02\x02\u01B6\u01B5\x03" +
7133
+ "\x02\x02\x02\u01B79\x03\x02\x02\x02\u01B8\u01B9\x05D#\x02\u01B9\u01BA" +
7134
+ "\x07q\x02\x02\u01BA\u01BB\x07O\x02\x02\u01BB\u01BE\x07f\x02\x02\u01BC" +
7135
+ "\u01BF\x05\x18\r\x02\u01BD\u01BF\x05\xC6d\x02\u01BE\u01BC\x03\x02\x02" +
7136
+ "\x02\u01BE\u01BD\x03\x02\x02\x02\u01BF\u01C0\x03\x02\x02\x02\u01C0\u01C1" +
7137
+ "\x07g\x02\x02\u01C1;\x03\x02\x02\x02\u01C2\u01C6\x05> \x02\u01C3\u01C5" +
7138
+ "\x05@!\x02\u01C4\u01C3\x03\x02\x02\x02\u01C5\u01C8\x03\x02\x02\x02\u01C6" +
7139
+ "\u01C4\x03\x02\x02\x02\u01C6\u01C7\x03\x02\x02\x02\u01C7=\x03\x02\x02" +
7140
+ "\x02\u01C8\u01C6\x03\x02\x02\x02\u01C9\u01CB\x07d\x02\x02\u01CA\u01C9" +
7141
+ "\x03\x02\x02\x02\u01CA\u01CB\x03\x02\x02\x02\u01CB\u01CC\x03\x02\x02\x02" +
7142
+ "\u01CC\u01D2\x05F$\x02\u01CD\u01CF\x05J&\x02\u01CE\u01D0\x05,\x17\x02" +
7143
+ "\u01CF\u01CE\x03\x02\x02\x02\u01CF\u01D0\x03\x02\x02\x02\u01D0\u01D2\x03" +
7144
+ "\x02\x02\x02\u01D1\u01CA\x03\x02\x02\x02\u01D1\u01CD\x03\x02\x02\x02\u01D2" +
7145
+ "?\x03\x02\x02\x02\u01D3\u01D4\x07d\x02\x02\u01D4\u01D5\x05F$\x02\u01D5" +
7146
+ "A\x03\x02\x02\x02\u01D6\u01D7\x07P\x02\x02\u01D7\u01D8\x07f\x02\x02\u01D8" +
7147
+ "\u01D9\x05\xD0i\x02\u01D9\u01DA\x07g\x02\x02\u01DA\u01E3\x03\x02\x02\x02" +
7148
+ "\u01DB\u01DC\x05D#\x02\u01DC\u01DD\x07q\x02\x02\u01DD\u01DE\x07P\x02\x02" +
7149
+ "\u01DE\u01DF\x07f\x02\x02\u01DF\u01E0\x05\xCEh\x02\u01E0\u01E1\x07g\x02" +
7150
+ "\x02\u01E1\u01E3\x03\x02\x02\x02\u01E2\u01D6\x03\x02\x02\x02\u01E2\u01DB" +
7151
+ "\x03\x02\x02\x02\u01E3C\x03\x02\x02\x02\u01E4\u01E5\x05\xD2j\x02\u01E5" +
7152
+ "E\x03\x02\x02\x02\u01E6\u01F1\x05H%\x02\u01E7\u01EC\x07j\x02\x02\u01E8" +
7153
+ "\u01EB\x05\x8EH\x02\u01E9\u01EB\x07~\x02\x02\u01EA\u01E8\x03\x02\x02\x02" +
7154
+ "\u01EA\u01E9\x03\x02\x02\x02\u01EB\u01EE\x03\x02\x02\x02\u01EC\u01EA\x03" +
7155
+ "\x02\x02\x02\u01EC\u01ED\x03\x02\x02\x02\u01ED\u01EF\x03\x02\x02\x02\u01EE" +
7156
+ "\u01EC\x03\x02\x02\x02\u01EF\u01F1\x07k\x02\x02\u01F0\u01E6\x03\x02\x02" +
7157
+ "\x02\u01F0\u01E7\x03\x02\x02\x02\u01F1G\x03\x02\x02\x02\u01F2\u01F3\x07" +
7158
+ "j\x02\x02\u01F3\u01F4\x07\x83\x02\x02\u01F4\u01F5\x05\xD8m\x02\u01F5\u01F6" +
7159
+ "\x07k\x02\x02\u01F6I\x03\x02\x02\x02\u01F7\u01F8\x05\xD2j\x02\u01F8K\x03" +
7160
+ "\x02\x02\x02\u01F9\u01FA\x05\xD2j\x02\u01FAM\x03\x02\x02\x02\u01FB\u0202" +
7161
+ "\x05P)\x02\u01FC\u01FE\x07p\x02\x02\u01FD\u01FC\x03\x02\x02\x02\u01FD" +
7162
+ "\u01FE\x03\x02\x02\x02\u01FE\u01FF\x03\x02\x02\x02\u01FF\u0201\x05P)\x02" +
7163
+ "\u0200\u01FD\x03\x02\x02\x02\u0201\u0204\x03\x02\x02\x02\u0202\u0200\x03" +
7164
+ "\x02\x02\x02\u0202\u0203\x03\x02\x02\x02\u0203\u0206\x03\x02\x02\x02\u0204" +
7138
7165
  "\u0202\x03\x02\x02\x02\u0205\u0207\x07p\x02\x02\u0206\u0205\x03\x02\x02" +
7139
7166
  "\x02\u0206\u0207\x03\x02\x02\x02\u0207O\x03\x02\x02\x02\u0208\u0209\x05" +
7140
7167
  "\f\x07\x02\u0209\u020A\x05T+\x02\u020A\u020B\x05\x0E\b\x02\u020B\u020C" +
@@ -7396,53 +7423,57 @@ MalloyParser._serializedATNSegment1 = "\u01B79\x03\x02\x02\x02\u01B8\u01B9\x05D#
7396
7423
  "\x02\x02\u043B\u042D\x03\x02\x02\x02\u043B\u0432\x03\x02\x02\x02\u043B" +
7397
7424
  "\u0435\x03\x02\x02\x02\u043B\u0438\x03\x02\x02\x02\u043C\u043F\x03\x02" +
7398
7425
  "\x02\x02\u043D\u043B\x03\x02\x02\x02\u043D\u043E\x03\x02\x02\x02\u043E" +
7399
- "\xD9\x03\x02\x02\x02\u043F\u043D\x03\x02\x02\x02\u0440\u0442\x05\xC2b" +
7400
- "\x02\u0441\u0440\x03\x02\x02\x02\u0441\u0442\x03\x02\x02\x02\u0442\u0443" +
7401
- "\x03\x02\x02\x02\u0443\u0444\x05\xD8m\x02\u0444\xDB\x03\x02\x02\x02\u0445" +
7402
- "\u0447\x05\xDEp\x02\u0446\u0445\x03\x02\x02\x02\u0447\u0448\x03\x02\x02" +
7403
- "\x02\u0448\u0446\x03\x02\x02\x02\u0448\u0449\x03\x02\x02\x02\u0449\u044C" +
7404
- "\x03\x02\x02\x02\u044A\u044B\x071\x02\x02\u044B\u044D\x05\xD8m\x02\u044C" +
7405
- "\u044A\x03\x02\x02\x02\u044C\u044D\x03\x02\x02\x02\u044D\xDD\x03\x02\x02" +
7406
- "\x02\u044E\u0450\x07I\x02\x02\u044F\u0451\x05\xD8m\x02\u0450\u044F\x03" +
7407
- "\x02\x02\x02\u0450\u0451\x03\x02\x02\x02\u0451\u0452\x03\x02\x02\x02\u0452" +
7408
- "\u0453\x07X\x02\x02\u0453\u0454\x05\xDAn\x02\u0454\xDF\x03\x02\x02\x02" +
7409
- "\u0455\u045A\x05\xD8m\x02\u0456\u0457\x07p\x02\x02\u0457\u0459\x05\xD8" +
7410
- "m\x02\u0458\u0456\x03\x02\x02\x02\u0459\u045C\x03\x02\x02\x02\u045A\u0458" +
7411
- "\x03\x02\x02\x02\u045A\u045B\x03\x02\x02\x02\u045B\u045E\x03\x02\x02\x02" +
7412
- "\u045C\u045A\x03\x02\x02\x02\u045D\u045F\x07p\x02\x02\u045E\u045D\x03" +
7413
- "\x02\x02\x02\u045E\u045F\x03\x02\x02\x02\u045F\xE1\x03\x02\x02\x02\u0460" +
7414
- "\u0467";
7415
- MalloyParser._serializedATNSegment2 = "\x05\xF2z\x02\u0461\u0463\x07p\x02\x02\u0462\u0461\x03\x02\x02\x02\u0462" +
7416
- "\u0463\x03\x02\x02\x02\u0463\u0464\x03\x02\x02\x02\u0464\u0466\x05\xF2" +
7417
- "z\x02\u0465\u0462\x03\x02\x02\x02\u0466\u0469\x03\x02\x02\x02\u0467\u0465" +
7418
- "\x03\x02\x02\x02\u0467\u0468\x03\x02\x02\x02\u0468\xE3\x03\x02\x02\x02" +
7419
- "\u0469\u0467\x03\x02\x02\x02\u046A\u0471\x05\xECw\x02\u046B\u046D\x07" +
7420
- "p\x02\x02\u046C\u046B\x03\x02\x02\x02\u046C\u046D\x03\x02\x02\x02\u046D" +
7421
- "\u046E\x03\x02\x02\x02\u046E\u0470\x05\xECw\x02\u046F\u046C\x03\x02\x02" +
7422
- "\x02\u0470\u0473\x03\x02\x02\x02\u0471\u046F\x03\x02\x02\x02\u0471\u0472" +
7423
- "\x03\x02\x02\x02\u0472\u0475\x03\x02\x02\x02\u0473\u0471\x03\x02\x02\x02" +
7424
- "\u0474\u0476\x07p\x02\x02\u0475\u0474\x03\x02\x02\x02\u0475\u0476\x03" +
7425
- "\x02\x02\x02\u0476\xE5\x03\x02\x02\x02\u0477\u0478\x05\xEEx\x02\u0478" +
7426
- "\u0479\x07q\x02\x02\u0479\u047B\x03\x02\x02\x02\u047A\u0477\x03\x02\x02" +
7427
- "\x02\u047A\u047B\x03\x02\x02\x02\u047B\u047C\x03\x02\x02\x02\u047C\u047D" +
7428
- "\t\x11\x02\x02\u047D\xE7\x03\x02\x02\x02\u047E\u047F\x05\f\x07\x02\u047F" +
7429
- "\u0481\x05\xEEx\x02\u0480\u0482\x05\xEAv\x02\u0481\u0480\x03\x02\x02\x02" +
7430
- "\u0481\u0482\x03\x02\x02\x02\u0482\xE9\x03\x02\x02\x02\u0483\u0484\x07" +
7431
- "q\x02\x02\u0484\u048B\x05\xD4k\x02\u0485\u0486\x07q\x02\x02\u0486\u0487" +
7432
- "\x05\xBE`\x02\u0487\u0488\x07f\x02\x02\u0488\u0489\x07g\x02\x02\u0489" +
7433
- "\u048B\x03\x02\x02\x02\u048A\u0483\x03\x02\x02\x02\u048A\u0485\x03\x02" +
7434
- "\x02\x02\u048B\xEB\x03\x02\x02\x02\u048C\u0490\x05\xE8u\x02\u048D\u0490" +
7435
- "\x05\xE6t\x02\u048E\u0490\x05f4\x02\u048F\u048C\x03\x02\x02\x02\u048F" +
7436
- "\u048D\x03\x02\x02\x02\u048F\u048E\x03\x02\x02\x02\u0490\xED\x03\x02\x02" +
7437
- "\x02\u0491\u0496\x05\xF2z\x02\u0492\u0493\x07q\x02\x02\u0493\u0495\x05" +
7438
- "\xF2z\x02\u0494\u0492\x03\x02\x02\x02\u0495\u0498\x03\x02\x02\x02\u0496" +
7439
- "\u0494\x03\x02\x02\x02\u0496\u0497\x03\x02\x02\x02\u0497\xEF\x03\x02\x02" +
7440
- "\x02\u0498\u0496\x03\x02\x02\x02\u0499\u049A\x05\xD2j\x02\u049A\xF1\x03" +
7441
- "\x02\x02\x02\u049B\u049C\x05\xD2j\x02\u049C\xF3\x03\x02\x02\x02\u049D" +
7442
- "\u049E\x05\xD8m\x02\u049E\u049F\x07\x02\x02\x03\u049F\xF5\x03\x02\x02" +
7443
- "\x02\u04A0\u04A1\x05\xD2j\x02\u04A1\xF7\x03\x02\x02\x02\u04A2\u04A3\x05" +
7444
- "\xD2j\x02\u04A3\xF9\x03\x02\x02\x02\u04A4\u04A5\x05\xC4c\x02\u04A5\xFB" +
7445
- "\x03\x02\x02\x02\x7F\xFE\u0100\u010C\u0117\u011F\u0134\u013C\u0142\u0153" +
7426
+ "\xD9\x03\x02\x02\x02\u043F\u043D\x03\x02\x02\x02\u0440\u0442\x07f\x02" +
7427
+ "\x02\u0441\u0443\x05\xC2b\x02\u0442\u0441\x03\x02\x02\x02\u0442\u0443" +
7428
+ "\x03\x02\x02\x02\u0443\u0444\x03\x02\x02\x02\u0444\u0445\x05\xD8m\x02" +
7429
+ "\u0445\u0446\x07g\x02\x02\u0446\u044C\x03\x02\x02\x02\u0447\u0449\x05" +
7430
+ "\xC2b\x02\u0448\u0447\x03\x02\x02\x02\u0448\u0449\x03\x02\x02\x02\u0449" +
7431
+ "\u044A\x03\x02\x02\x02\u044A\u044C\x05\xD8m\x02\u044B\u0440\x03\x02\x02" +
7432
+ "\x02\u044B\u0448\x03\x02\x02\x02\u044C\xDB\x03\x02\x02\x02\u044D\u044F" +
7433
+ "\x05\xDEp\x02\u044E\u044D\x03\x02\x02\x02\u044F\u0450\x03\x02\x02\x02" +
7434
+ "\u0450\u044E\x03\x02\x02\x02\u0450\u0451\x03\x02\x02\x02\u0451\u0454\x03" +
7435
+ "\x02\x02\x02\u0452\u0453\x071\x02\x02\u0453\u0455\x05\xD8m\x02\u0454\u0452" +
7436
+ "\x03\x02\x02\x02\u0454\u0455\x03\x02\x02\x02\u0455\xDD\x03\x02\x02\x02" +
7437
+ "\u0456\u0458\x07I\x02\x02\u0457\u0459\x05\xD8m\x02\u0458\u0457\x03\x02" +
7438
+ "\x02\x02\u0458\u0459\x03\x02\x02\x02\u0459\u045A\x03\x02\x02\x02\u045A" +
7439
+ "\u045B\x07X\x02\x02\u045B\u045C\x05\xDAn\x02\u045C\xDF\x03\x02\x02\x02" +
7440
+ "\u045D\u0462";
7441
+ MalloyParser._serializedATNSegment2 = "\x05\xD8m\x02\u045E\u045F\x07p\x02\x02\u045F\u0461\x05\xD8m\x02\u0460" +
7442
+ "\u045E\x03\x02\x02\x02\u0461\u0464\x03\x02\x02\x02\u0462\u0460\x03\x02" +
7443
+ "\x02\x02\u0462\u0463\x03\x02\x02\x02\u0463\u0466\x03\x02\x02\x02\u0464" +
7444
+ "\u0462\x03\x02\x02\x02\u0465\u0467\x07p\x02\x02\u0466\u0465\x03\x02\x02" +
7445
+ "\x02\u0466\u0467\x03\x02\x02\x02\u0467\xE1\x03\x02\x02\x02\u0468\u046F" +
7446
+ "\x05\xF2z\x02\u0469\u046B\x07p\x02\x02\u046A\u0469\x03\x02\x02\x02\u046A" +
7447
+ "\u046B\x03\x02\x02\x02\u046B\u046C\x03\x02\x02\x02\u046C\u046E\x05\xF2" +
7448
+ "z\x02\u046D\u046A\x03\x02\x02\x02\u046E\u0471\x03\x02\x02\x02\u046F\u046D" +
7449
+ "\x03\x02\x02\x02\u046F\u0470\x03\x02\x02\x02\u0470\xE3\x03\x02\x02\x02" +
7450
+ "\u0471\u046F\x03\x02\x02\x02\u0472\u0479\x05\xECw\x02\u0473\u0475\x07" +
7451
+ "p\x02\x02\u0474\u0473\x03\x02\x02\x02\u0474\u0475\x03\x02\x02\x02\u0475" +
7452
+ "\u0476\x03\x02\x02\x02\u0476\u0478\x05\xECw\x02\u0477\u0474\x03\x02\x02" +
7453
+ "\x02\u0478\u047B\x03\x02\x02\x02\u0479\u0477\x03\x02\x02\x02\u0479\u047A" +
7454
+ "\x03\x02\x02\x02\u047A\u047D\x03\x02\x02\x02\u047B\u0479\x03\x02\x02\x02" +
7455
+ "\u047C\u047E\x07p\x02\x02\u047D\u047C\x03\x02\x02\x02\u047D\u047E\x03" +
7456
+ "\x02\x02\x02\u047E\xE5\x03\x02\x02\x02\u047F\u0480\x05\xEEx\x02\u0480" +
7457
+ "\u0481\x07q\x02\x02\u0481\u0483\x03\x02\x02\x02\u0482\u047F\x03\x02\x02" +
7458
+ "\x02\u0482\u0483\x03\x02\x02\x02\u0483\u0484\x03\x02\x02\x02\u0484\u0485" +
7459
+ "\t\x11\x02\x02\u0485\xE7\x03\x02\x02\x02\u0486\u0487\x05\f\x07\x02\u0487" +
7460
+ "\u0489\x05\xEEx\x02\u0488\u048A\x05\xEAv\x02\u0489\u0488\x03\x02\x02\x02" +
7461
+ "\u0489\u048A\x03\x02\x02\x02\u048A\xE9\x03\x02\x02\x02\u048B\u048C\x07" +
7462
+ "q\x02\x02\u048C\u0493\x05\xD4k\x02\u048D\u048E\x07q\x02\x02\u048E\u048F" +
7463
+ "\x05\xBE`\x02\u048F\u0490\x07f\x02\x02\u0490\u0491\x07g\x02\x02\u0491" +
7464
+ "\u0493\x03\x02\x02\x02\u0492\u048B\x03\x02\x02\x02\u0492\u048D\x03\x02" +
7465
+ "\x02\x02\u0493\xEB\x03\x02\x02\x02\u0494\u0498\x05\xE8u\x02\u0495\u0498" +
7466
+ "\x05\xE6t\x02\u0496\u0498\x05f4\x02\u0497\u0494\x03\x02\x02\x02\u0497" +
7467
+ "\u0495\x03\x02\x02\x02\u0497\u0496\x03\x02\x02\x02\u0498\xED\x03\x02\x02" +
7468
+ "\x02\u0499\u049E\x05\xF2z\x02\u049A\u049B\x07q\x02\x02\u049B\u049D\x05" +
7469
+ "\xF2z\x02\u049C\u049A\x03\x02\x02\x02\u049D\u04A0\x03\x02\x02\x02\u049E" +
7470
+ "\u049C\x03\x02\x02\x02\u049E\u049F\x03\x02\x02\x02\u049F\xEF\x03\x02\x02" +
7471
+ "\x02\u04A0\u049E\x03\x02\x02\x02\u04A1\u04A2\x05\xD2j\x02\u04A2\xF1\x03" +
7472
+ "\x02\x02\x02\u04A3\u04A4\x05\xD2j\x02\u04A4\xF3\x03\x02\x02\x02\u04A5" +
7473
+ "\u04A6\x05\xD8m\x02\u04A6\u04A7\x07\x02\x02\x03\u04A7\xF5\x03\x02\x02" +
7474
+ "\x02\u04A8\u04A9\x05\xD2j\x02\u04A9\xF7\x03\x02\x02\x02\u04AA\u04AB\x05" +
7475
+ "\xD2j\x02\u04AB\xF9\x03\x02\x02\x02\u04AC\u04AD\x05\xC4c\x02\u04AD\xFB" +
7476
+ "\x03\x02\x02\x02\x81\xFE\u0100\u010C\u0117\u011F\u0134\u013C\u0142\u0153" +
7446
7477
  "\u0158\u015D\u0163\u0168\u016C\u0176\u017B\u017E\u0183\u0189\u018D\u0193" +
7447
7478
  "\u0197\u0199\u019C\u01A3\u01A7\u01B6\u01BE\u01C6\u01CA\u01CF\u01D1\u01E2" +
7448
7479
  "\u01EA\u01EC\u01F0\u01FD\u0202\u0206\u0211\u021A\u021C\u0221\u0236\u0239" +
@@ -7451,8 +7482,8 @@ MalloyParser._serializedATNSegment2 = "\x05\xF2z\x02\u0461\u0463\x07p\x02\x02\u0
7451
7482
  "\u02DF\u02E3\u02EA\u0303\u030D\u0312\u0316\u031A\u0322\u0327\u032B\u0330" +
7452
7483
  "\u0337\u034A\u034F\u0353\u0357\u035A\u0363\u0368\u036D\u0371\u0375\u037A" +
7453
7484
  "\u0381\u0395\u03A2\u03AB\u03CE\u03D4\u03DF\u03E4\u03EB\u03ED\u03F0\u03F4" +
7454
- "\u0400\u0405\u043B\u043D\u0441\u0448\u044C\u0450\u045A\u045E\u0462\u0467" +
7455
- "\u046C\u0471\u0475\u047A\u0481\u048A\u048F\u0496";
7485
+ "\u0400\u0405\u043B\u043D\u0442\u0448\u044B\u0450\u0454\u0458\u0462\u0466" +
7486
+ "\u046A\u046F\u0474\u0479\u047D\u0482\u0489\u0492\u0497\u049E";
7456
7487
  MalloyParser._serializedATN = Utils.join([
7457
7488
  MalloyParser._serializedATNSegment0,
7458
7489
  MalloyParser._serializedATNSegment1,
@@ -13822,9 +13853,11 @@ class ExprUngroupContext extends FieldExprContext {
13822
13853
  }
13823
13854
  exports.ExprUngroupContext = ExprUngroupContext;
13824
13855
  class PartialAllowedFieldExprContext extends ParserRuleContext_1.ParserRuleContext {
13856
+ OPAREN() { return this.tryGetToken(MalloyParser.OPAREN, 0); }
13825
13857
  fieldExpr() {
13826
13858
  return this.getRuleContext(0, FieldExprContext);
13827
13859
  }
13860
+ CPAREN() { return this.tryGetToken(MalloyParser.CPAREN, 0); }
13828
13861
  compareOp() {
13829
13862
  return this.tryGetRuleContext(0, CompareOpContext);
13830
13863
  }
@@ -1390,6 +1390,9 @@ describe('expressions', () => {
1390
1390
  test.each(noOffset.map(x => [x]))('disallow date delta %s', unit => {
1391
1391
  expect(new test_translator_1.BetaExpression(`ad + 10 ${unit}s`)).translationToFailWith(`Cannot offset date by ${unit}`);
1392
1392
  });
1393
+ test('apply with parens', () => {
1394
+ expect((0, test_translator_1.expr) `ai ? (> 1 & < 100)`).toTranslate();
1395
+ });
1393
1396
  });
1394
1397
  test('filtered measure', () => {
1395
1398
  expect((0, test_translator_1.expr) `acount {? astr = 'why?' }`).toTranslate();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/malloy",
3
- "version": "0.0.75-dev230815172342",
3
+ "version": "0.0.75-dev230815210351",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",