@malloydata/malloy 0.0.83-dev230914211456 → 0.0.83

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.
@@ -71,7 +71,7 @@ class MalloyParser extends Parser_1.Parser {
71
71
  this.state = 260;
72
72
  this._errHandler.sync(this);
73
73
  _la = this._input.LA(1);
74
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE) | (1 << MalloyParser.SQLC))) !== 0) || ((((_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.FROM - 32)) | (1 << (MalloyParser.FROM_SQL - 32)) | (1 << (MalloyParser.HOUR - 32)) | (1 << (MalloyParser.IMPORT - 32)) | (1 << (MalloyParser.IS - 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.SOURCE_KW - 64)) | (1 << (MalloyParser.SUM - 64)) | (1 << (MalloyParser.TABLE - 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 - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & ((1 << (MalloyParser.DOC_ANNOTATION - 96)) | (1 << (MalloyParser.ANNOTATION - 96)) | (1 << (MalloyParser.ARROW - 96)) | (1 << (MalloyParser.OPAREN - 96)) | (1 << (MalloyParser.OCURLY - 96)) | (1 << (MalloyParser.MINUS - 96)) | (1 << (MalloyParser.SEMI - 96)))) !== 0) || ((((_la - 131)) & ~0x1F) === 0 && ((1 << (_la - 131)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 131)) | (1 << (MalloyParser.LITERAL_HOUR - 131)) | (1 << (MalloyParser.LITERAL_DAY - 131)) | (1 << (MalloyParser.LITERAL_QUARTER - 131)) | (1 << (MalloyParser.LITERAL_MONTH - 131)) | (1 << (MalloyParser.LITERAL_WEEK - 131)) | (1 << (MalloyParser.LITERAL_YEAR - 131)) | (1 << (MalloyParser.IDENTIFIER - 131)) | (1 << (MalloyParser.NUMERIC_LITERAL - 131)) | (1 << (MalloyParser.INTEGER_LITERAL - 131)) | (1 << (MalloyParser.SQL_BEGIN - 131)))) !== 0)) {
74
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE) | (1 << MalloyParser.SQLC) | (1 << MalloyParser.VIEW))) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & ((1 << (MalloyParser.ALL - 33)) | (1 << (MalloyParser.AVG - 33)) | (1 << (MalloyParser.CAST - 33)) | (1 << (MalloyParser.COUNT - 33)) | (1 << (MalloyParser.DAY - 33)) | (1 << (MalloyParser.EXCLUDE - 33)) | (1 << (MalloyParser.FALSE - 33)) | (1 << (MalloyParser.FROM - 33)) | (1 << (MalloyParser.FROM_SQL - 33)) | (1 << (MalloyParser.HOUR - 33)) | (1 << (MalloyParser.IMPORT - 33)) | (1 << (MalloyParser.IS - 33)) | (1 << (MalloyParser.MAX - 33)) | (1 << (MalloyParser.MIN - 33)) | (1 << (MalloyParser.MINUTE - 33)))) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & ((1 << (MalloyParser.MONTH - 65)) | (1 << (MalloyParser.NOT - 65)) | (1 << (MalloyParser.NOW - 65)) | (1 << (MalloyParser.NULL - 65)) | (1 << (MalloyParser.PICK - 65)) | (1 << (MalloyParser.QUARTER - 65)) | (1 << (MalloyParser.SECOND - 65)) | (1 << (MalloyParser.SOURCE_KW - 65)) | (1 << (MalloyParser.SUM - 65)) | (1 << (MalloyParser.TABLE - 65)) | (1 << (MalloyParser.TRUE - 65)) | (1 << (MalloyParser.WEEK - 65)) | (1 << (MalloyParser.YEAR - 65)) | (1 << (MalloyParser.HACKY_REGEX - 65)) | (1 << (MalloyParser.SQ_STRING - 65)) | (1 << (MalloyParser.DQ_STRING - 65)) | (1 << (MalloyParser.BQ_STRING - 65)))) !== 0) || ((((_la - 97)) & ~0x1F) === 0 && ((1 << (_la - 97)) & ((1 << (MalloyParser.DOC_ANNOTATION - 97)) | (1 << (MalloyParser.ANNOTATION - 97)) | (1 << (MalloyParser.ARROW - 97)) | (1 << (MalloyParser.OPAREN - 97)) | (1 << (MalloyParser.OCURLY - 97)) | (1 << (MalloyParser.MINUS - 97)) | (1 << (MalloyParser.SEMI - 97)))) !== 0) || ((((_la - 132)) & ~0x1F) === 0 && ((1 << (_la - 132)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 132)) | (1 << (MalloyParser.LITERAL_HOUR - 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)) {
75
75
  {
76
76
  this.state = 258;
77
77
  this._errHandler.sync(this);
@@ -91,6 +91,7 @@ class MalloyParser extends Parser_1.Parser {
91
91
  case MalloyParser.SELECT:
92
92
  case MalloyParser.SOURCE:
93
93
  case MalloyParser.SQLC:
94
+ case MalloyParser.VIEW:
94
95
  case MalloyParser.ALL:
95
96
  case MalloyParser.AVG:
96
97
  case MalloyParser.CAST:
@@ -1785,7 +1786,7 @@ class MalloyParser extends Parser_1.Parser {
1785
1786
  this.state = 516;
1786
1787
  this._errHandler.sync(this);
1787
1788
  _la = this._input.LA(1);
1788
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DECLARE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.EXTENDQ) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.HAVING) | (1 << MalloyParser.INDEX) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.LIMIT) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.ORDER_BY) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SAMPLE) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE) | (1 << MalloyParser.TOP) | (1 << MalloyParser.WHERE) | (1 << MalloyParser.TIMEZONE))) !== 0) || ((((_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.FROM - 32)) | (1 << (MalloyParser.FROM_SQL - 32)) | (1 << (MalloyParser.HOUR - 32)) | (1 << (MalloyParser.IS - 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.SOURCE_KW - 64)) | (1 << (MalloyParser.SUM - 64)) | (1 << (MalloyParser.TABLE - 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 - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & ((1 << (MalloyParser.DOC_ANNOTATION - 96)) | (1 << (MalloyParser.ANNOTATION - 96)) | (1 << (MalloyParser.ARROW - 96)) | (1 << (MalloyParser.OPAREN - 96)) | (1 << (MalloyParser.OCURLY - 96)) | (1 << (MalloyParser.MINUS - 96)) | (1 << (MalloyParser.SEMI - 96)))) !== 0) || ((((_la - 131)) & ~0x1F) === 0 && ((1 << (_la - 131)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 131)) | (1 << (MalloyParser.LITERAL_HOUR - 131)) | (1 << (MalloyParser.LITERAL_DAY - 131)) | (1 << (MalloyParser.LITERAL_QUARTER - 131)) | (1 << (MalloyParser.LITERAL_MONTH - 131)) | (1 << (MalloyParser.LITERAL_WEEK - 131)) | (1 << (MalloyParser.LITERAL_YEAR - 131)) | (1 << (MalloyParser.IDENTIFIER - 131)) | (1 << (MalloyParser.NUMERIC_LITERAL - 131)) | (1 << (MalloyParser.INTEGER_LITERAL - 131)) | (1 << (MalloyParser.SQL_BEGIN - 131)))) !== 0)) {
1789
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DECLARE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.EXTENDQ) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.HAVING) | (1 << MalloyParser.INDEX) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.LIMIT) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.ORDER_BY) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SAMPLE) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE) | (1 << MalloyParser.TOP) | (1 << MalloyParser.WHERE) | (1 << MalloyParser.VIEW))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (MalloyParser.TIMEZONE - 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.FROM - 32)) | (1 << (MalloyParser.FROM_SQL - 32)) | (1 << (MalloyParser.HOUR - 32)) | (1 << (MalloyParser.IS - 32)) | (1 << (MalloyParser.MAX - 32)) | (1 << (MalloyParser.MIN - 32)))) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & ((1 << (MalloyParser.MINUTE - 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.SOURCE_KW - 64)) | (1 << (MalloyParser.SUM - 64)) | (1 << (MalloyParser.TABLE - 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)))) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & ((1 << (MalloyParser.BQ_STRING - 96)) | (1 << (MalloyParser.DOC_ANNOTATION - 96)) | (1 << (MalloyParser.ANNOTATION - 96)) | (1 << (MalloyParser.ARROW - 96)) | (1 << (MalloyParser.OPAREN - 96)) | (1 << (MalloyParser.OCURLY - 96)) | (1 << (MalloyParser.MINUS - 96)) | (1 << (MalloyParser.SEMI - 96)))) !== 0) || ((((_la - 132)) & ~0x1F) === 0 && ((1 << (_la - 132)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 132)) | (1 << (MalloyParser.LITERAL_HOUR - 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)) {
1789
1790
  {
1790
1791
  this.state = 514;
1791
1792
  this._errHandler.sync(this);
@@ -1813,6 +1814,7 @@ class MalloyParser extends Parser_1.Parser {
1813
1814
  case MalloyParser.SOURCE:
1814
1815
  case MalloyParser.TOP:
1815
1816
  case MalloyParser.WHERE:
1817
+ case MalloyParser.VIEW:
1816
1818
  case MalloyParser.TIMEZONE:
1817
1819
  case MalloyParser.ALL:
1818
1820
  case MalloyParser.AVG:
@@ -2192,7 +2194,7 @@ class MalloyParser extends Parser_1.Parser {
2192
2194
  this.state = 564;
2193
2195
  this._errHandler.sync(this);
2194
2196
  _la = this._input.LA(1);
2195
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.ACCEPT) | (1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DECLARE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.EXCEPT) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.PRIMARY_KEY) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RENAME) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE) | (1 << MalloyParser.WHERE) | (1 << MalloyParser.TIMEZONE))) !== 0) || ((((_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.FROM - 32)) | (1 << (MalloyParser.FROM_SQL - 32)) | (1 << (MalloyParser.HOUR - 32)) | (1 << (MalloyParser.IS - 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.SOURCE_KW - 64)) | (1 << (MalloyParser.SUM - 64)) | (1 << (MalloyParser.TABLE - 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 - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & ((1 << (MalloyParser.DOC_ANNOTATION - 96)) | (1 << (MalloyParser.ANNOTATION - 96)) | (1 << (MalloyParser.ARROW - 96)) | (1 << (MalloyParser.OPAREN - 96)) | (1 << (MalloyParser.OCURLY - 96)) | (1 << (MalloyParser.MINUS - 96)) | (1 << (MalloyParser.SEMI - 96)))) !== 0) || ((((_la - 131)) & ~0x1F) === 0 && ((1 << (_la - 131)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 131)) | (1 << (MalloyParser.LITERAL_HOUR - 131)) | (1 << (MalloyParser.LITERAL_DAY - 131)) | (1 << (MalloyParser.LITERAL_QUARTER - 131)) | (1 << (MalloyParser.LITERAL_MONTH - 131)) | (1 << (MalloyParser.LITERAL_WEEK - 131)) | (1 << (MalloyParser.LITERAL_YEAR - 131)) | (1 << (MalloyParser.IDENTIFIER - 131)) | (1 << (MalloyParser.NUMERIC_LITERAL - 131)) | (1 << (MalloyParser.INTEGER_LITERAL - 131)) | (1 << (MalloyParser.SQL_BEGIN - 131)))) !== 0)) {
2197
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.ACCEPT) | (1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DECLARE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.EXCEPT) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.PRIMARY_KEY) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RENAME) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE) | (1 << MalloyParser.WHERE) | (1 << MalloyParser.VIEW))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (MalloyParser.TIMEZONE - 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.FROM - 32)) | (1 << (MalloyParser.FROM_SQL - 32)) | (1 << (MalloyParser.HOUR - 32)) | (1 << (MalloyParser.IS - 32)) | (1 << (MalloyParser.MAX - 32)) | (1 << (MalloyParser.MIN - 32)))) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & ((1 << (MalloyParser.MINUTE - 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.SOURCE_KW - 64)) | (1 << (MalloyParser.SUM - 64)) | (1 << (MalloyParser.TABLE - 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)))) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & ((1 << (MalloyParser.BQ_STRING - 96)) | (1 << (MalloyParser.DOC_ANNOTATION - 96)) | (1 << (MalloyParser.ANNOTATION - 96)) | (1 << (MalloyParser.ARROW - 96)) | (1 << (MalloyParser.OPAREN - 96)) | (1 << (MalloyParser.OCURLY - 96)) | (1 << (MalloyParser.MINUS - 96)) | (1 << (MalloyParser.SEMI - 96)))) !== 0) || ((((_la - 132)) & ~0x1F) === 0 && ((1 << (_la - 132)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 132)) | (1 << (MalloyParser.LITERAL_HOUR - 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)) {
2196
2198
  {
2197
2199
  this.state = 562;
2198
2200
  this._errHandler.sync(this);
@@ -2217,6 +2219,7 @@ class MalloyParser extends Parser_1.Parser {
2217
2219
  case MalloyParser.SELECT:
2218
2220
  case MalloyParser.SOURCE:
2219
2221
  case MalloyParser.WHERE:
2222
+ case MalloyParser.VIEW:
2220
2223
  case MalloyParser.TIMEZONE:
2221
2224
  case MalloyParser.ALL:
2222
2225
  case MalloyParser.AVG:
@@ -2410,7 +2413,17 @@ class MalloyParser extends Parser_1.Parser {
2410
2413
  this.state = 582;
2411
2414
  this.tags();
2412
2415
  this.state = 583;
2413
- this.match(MalloyParser.QUERY);
2416
+ _la = this._input.LA(1);
2417
+ if (!(_la === MalloyParser.QUERY || _la === MalloyParser.VIEW)) {
2418
+ this._errHandler.recoverInline(this);
2419
+ }
2420
+ else {
2421
+ if (this._input.LA(1) === Token_1.Token.EOF) {
2422
+ this.matchedEOF = true;
2423
+ }
2424
+ this._errHandler.reportMatch(this);
2425
+ this.consume();
2426
+ }
2414
2427
  this.state = 584;
2415
2428
  this.subQueryDefList();
2416
2429
  }
@@ -2948,7 +2961,7 @@ class MalloyParser extends Parser_1.Parser {
2948
2961
  this.state = 672;
2949
2962
  this._errHandler.sync(this);
2950
2963
  _la = this._input.LA(1);
2951
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE))) !== 0) || ((((_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.FROM - 32)) | (1 << (MalloyParser.FROM_SQL - 32)) | (1 << (MalloyParser.HOUR - 32)) | (1 << (MalloyParser.IS - 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.SOURCE_KW - 64)) | (1 << (MalloyParser.SUM - 64)) | (1 << (MalloyParser.TABLE - 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 - 97)) & ~0x1F) === 0 && ((1 << (_la - 97)) & ((1 << (MalloyParser.ANNOTATION - 97)) | (1 << (MalloyParser.ARROW - 97)) | (1 << (MalloyParser.OPAREN - 97)) | (1 << (MalloyParser.OCURLY - 97)) | (1 << (MalloyParser.MINUS - 97)) | (1 << (MalloyParser.SEMI - 97)))) !== 0) || ((((_la - 131)) & ~0x1F) === 0 && ((1 << (_la - 131)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 131)) | (1 << (MalloyParser.LITERAL_HOUR - 131)) | (1 << (MalloyParser.LITERAL_DAY - 131)) | (1 << (MalloyParser.LITERAL_QUARTER - 131)) | (1 << (MalloyParser.LITERAL_MONTH - 131)) | (1 << (MalloyParser.LITERAL_WEEK - 131)) | (1 << (MalloyParser.LITERAL_YEAR - 131)) | (1 << (MalloyParser.IDENTIFIER - 131)) | (1 << (MalloyParser.NUMERIC_LITERAL - 131)) | (1 << (MalloyParser.INTEGER_LITERAL - 131)) | (1 << (MalloyParser.SQL_BEGIN - 131)))) !== 0)) {
2964
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE) | (1 << MalloyParser.VIEW))) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & ((1 << (MalloyParser.ALL - 33)) | (1 << (MalloyParser.AVG - 33)) | (1 << (MalloyParser.CAST - 33)) | (1 << (MalloyParser.COUNT - 33)) | (1 << (MalloyParser.DAY - 33)) | (1 << (MalloyParser.EXCLUDE - 33)) | (1 << (MalloyParser.FALSE - 33)) | (1 << (MalloyParser.FROM - 33)) | (1 << (MalloyParser.FROM_SQL - 33)) | (1 << (MalloyParser.HOUR - 33)) | (1 << (MalloyParser.IS - 33)) | (1 << (MalloyParser.MAX - 33)) | (1 << (MalloyParser.MIN - 33)) | (1 << (MalloyParser.MINUTE - 33)))) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & ((1 << (MalloyParser.MONTH - 65)) | (1 << (MalloyParser.NOT - 65)) | (1 << (MalloyParser.NOW - 65)) | (1 << (MalloyParser.NULL - 65)) | (1 << (MalloyParser.PICK - 65)) | (1 << (MalloyParser.QUARTER - 65)) | (1 << (MalloyParser.SECOND - 65)) | (1 << (MalloyParser.SOURCE_KW - 65)) | (1 << (MalloyParser.SUM - 65)) | (1 << (MalloyParser.TABLE - 65)) | (1 << (MalloyParser.TRUE - 65)) | (1 << (MalloyParser.WEEK - 65)) | (1 << (MalloyParser.YEAR - 65)) | (1 << (MalloyParser.HACKY_REGEX - 65)) | (1 << (MalloyParser.SQ_STRING - 65)) | (1 << (MalloyParser.DQ_STRING - 65)) | (1 << (MalloyParser.BQ_STRING - 65)))) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & ((1 << (MalloyParser.ANNOTATION - 98)) | (1 << (MalloyParser.ARROW - 98)) | (1 << (MalloyParser.OPAREN - 98)) | (1 << (MalloyParser.OCURLY - 98)) | (1 << (MalloyParser.MINUS - 98)) | (1 << (MalloyParser.SEMI - 98)))) !== 0) || ((((_la - 132)) & ~0x1F) === 0 && ((1 << (_la - 132)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 132)) | (1 << (MalloyParser.LITERAL_HOUR - 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)) {
2952
2965
  {
2953
2966
  this.state = 670;
2954
2967
  this._errHandler.sync(this);
@@ -2967,6 +2980,7 @@ class MalloyParser extends Parser_1.Parser {
2967
2980
  case MalloyParser.RUN:
2968
2981
  case MalloyParser.SELECT:
2969
2982
  case MalloyParser.SOURCE:
2983
+ case MalloyParser.VIEW:
2970
2984
  case MalloyParser.ALL:
2971
2985
  case MalloyParser.AVG:
2972
2986
  case MalloyParser.CAST:
@@ -3178,7 +3192,7 @@ class MalloyParser extends Parser_1.Parser {
3178
3192
  this.state = 703;
3179
3193
  this._errHandler.sync(this);
3180
3194
  _la = this._input.LA(1);
3181
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE))) !== 0) || ((((_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.FROM - 32)) | (1 << (MalloyParser.FROM_SQL - 32)) | (1 << (MalloyParser.HOUR - 32)) | (1 << (MalloyParser.IS - 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.SOURCE_KW - 64)) | (1 << (MalloyParser.SUM - 64)) | (1 << (MalloyParser.TABLE - 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 - 97)) & ~0x1F) === 0 && ((1 << (_la - 97)) & ((1 << (MalloyParser.ANNOTATION - 97)) | (1 << (MalloyParser.ARROW - 97)) | (1 << (MalloyParser.OPAREN - 97)) | (1 << (MalloyParser.OCURLY - 97)) | (1 << (MalloyParser.MINUS - 97)))) !== 0) || ((((_la - 131)) & ~0x1F) === 0 && ((1 << (_la - 131)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 131)) | (1 << (MalloyParser.LITERAL_HOUR - 131)) | (1 << (MalloyParser.LITERAL_DAY - 131)) | (1 << (MalloyParser.LITERAL_QUARTER - 131)) | (1 << (MalloyParser.LITERAL_MONTH - 131)) | (1 << (MalloyParser.LITERAL_WEEK - 131)) | (1 << (MalloyParser.LITERAL_YEAR - 131)) | (1 << (MalloyParser.IDENTIFIER - 131)) | (1 << (MalloyParser.NUMERIC_LITERAL - 131)) | (1 << (MalloyParser.INTEGER_LITERAL - 131)) | (1 << (MalloyParser.SQL_BEGIN - 131)))) !== 0)) {
3195
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MalloyParser.AGGREGATE) | (1 << MalloyParser.CALCULATE) | (1 << MalloyParser.DIMENSION) | (1 << MalloyParser.GROUP_BY) | (1 << MalloyParser.JOIN_CROSS) | (1 << MalloyParser.JOIN_ONE) | (1 << MalloyParser.JOIN_MANY) | (1 << MalloyParser.MEASURE) | (1 << MalloyParser.NEST) | (1 << MalloyParser.PROJECT) | (1 << MalloyParser.QUERY) | (1 << MalloyParser.RUN) | (1 << MalloyParser.SELECT) | (1 << MalloyParser.SOURCE) | (1 << MalloyParser.VIEW))) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & ((1 << (MalloyParser.ALL - 33)) | (1 << (MalloyParser.AVG - 33)) | (1 << (MalloyParser.CAST - 33)) | (1 << (MalloyParser.COUNT - 33)) | (1 << (MalloyParser.DAY - 33)) | (1 << (MalloyParser.EXCLUDE - 33)) | (1 << (MalloyParser.FALSE - 33)) | (1 << (MalloyParser.FROM - 33)) | (1 << (MalloyParser.FROM_SQL - 33)) | (1 << (MalloyParser.HOUR - 33)) | (1 << (MalloyParser.IS - 33)) | (1 << (MalloyParser.MAX - 33)) | (1 << (MalloyParser.MIN - 33)) | (1 << (MalloyParser.MINUTE - 33)))) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & ((1 << (MalloyParser.MONTH - 65)) | (1 << (MalloyParser.NOT - 65)) | (1 << (MalloyParser.NOW - 65)) | (1 << (MalloyParser.NULL - 65)) | (1 << (MalloyParser.PICK - 65)) | (1 << (MalloyParser.QUARTER - 65)) | (1 << (MalloyParser.SECOND - 65)) | (1 << (MalloyParser.SOURCE_KW - 65)) | (1 << (MalloyParser.SUM - 65)) | (1 << (MalloyParser.TABLE - 65)) | (1 << (MalloyParser.TRUE - 65)) | (1 << (MalloyParser.WEEK - 65)) | (1 << (MalloyParser.YEAR - 65)) | (1 << (MalloyParser.HACKY_REGEX - 65)) | (1 << (MalloyParser.SQ_STRING - 65)) | (1 << (MalloyParser.DQ_STRING - 65)) | (1 << (MalloyParser.BQ_STRING - 65)))) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & ((1 << (MalloyParser.ANNOTATION - 98)) | (1 << (MalloyParser.ARROW - 98)) | (1 << (MalloyParser.OPAREN - 98)) | (1 << (MalloyParser.OCURLY - 98)) | (1 << (MalloyParser.MINUS - 98)))) !== 0) || ((((_la - 132)) & ~0x1F) === 0 && ((1 << (_la - 132)) & ((1 << (MalloyParser.LITERAL_TIMESTAMP - 132)) | (1 << (MalloyParser.LITERAL_HOUR - 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)) {
3182
3196
  {
3183
3197
  this.state = 702;
3184
3198
  this.isExplore();
@@ -4704,7 +4718,7 @@ class MalloyParser extends Parser_1.Parser {
4704
4718
  {
4705
4719
  this.state = 932;
4706
4720
  _la = this._input.LA(1);
4707
- if (!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MalloyParser.AVG - 36)) | (1 << (MalloyParser.COUNT - 36)) | (1 << (MalloyParser.MAX - 36)) | (1 << (MalloyParser.MIN - 36)))) !== 0) || _la === MalloyParser.SUM)) {
4721
+ if (!(((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & ((1 << (MalloyParser.AVG - 37)) | (1 << (MalloyParser.COUNT - 37)) | (1 << (MalloyParser.MAX - 37)) | (1 << (MalloyParser.MIN - 37)))) !== 0) || _la === MalloyParser.SUM)) {
4708
4722
  this._errHandler.recoverInline(this);
4709
4723
  }
4710
4724
  else {
@@ -4741,7 +4755,7 @@ class MalloyParser extends Parser_1.Parser {
4741
4755
  {
4742
4756
  this.state = 934;
4743
4757
  _la = this._input.LA(1);
4744
- if (!(((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & ((1 << (MalloyParser.BOOLEAN - 37)) | (1 << (MalloyParser.DATE - 37)) | (1 << (MalloyParser.NUMBER - 37)))) !== 0) || _la === MalloyParser.STRING || _la === MalloyParser.TIMESTAMP)) {
4758
+ if (!(((((_la - 38)) & ~0x1F) === 0 && ((1 << (_la - 38)) & ((1 << (MalloyParser.BOOLEAN - 38)) | (1 << (MalloyParser.DATE - 38)) | (1 << (MalloyParser.NUMBER - 38)))) !== 0) || _la === MalloyParser.STRING || _la === MalloyParser.TIMESTAMP)) {
4745
4759
  this._errHandler.recoverInline(this);
4746
4760
  }
4747
4761
  else {
@@ -4778,7 +4792,7 @@ class MalloyParser extends Parser_1.Parser {
4778
4792
  {
4779
4793
  this.state = 936;
4780
4794
  _la = this._input.LA(1);
4781
- if (!(((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & ((1 << (MalloyParser.LT - 113)) | (1 << (MalloyParser.GT - 113)) | (1 << (MalloyParser.EQ - 113)) | (1 << (MalloyParser.NE - 113)) | (1 << (MalloyParser.LTE - 113)) | (1 << (MalloyParser.GTE - 113)) | (1 << (MalloyParser.NOT_MATCH - 113)) | (1 << (MalloyParser.MATCH - 113)))) !== 0))) {
4795
+ if (!(((((_la - 114)) & ~0x1F) === 0 && ((1 << (_la - 114)) & ((1 << (MalloyParser.LT - 114)) | (1 << (MalloyParser.GT - 114)) | (1 << (MalloyParser.EQ - 114)) | (1 << (MalloyParser.NE - 114)) | (1 << (MalloyParser.LTE - 114)) | (1 << (MalloyParser.GTE - 114)) | (1 << (MalloyParser.NOT_MATCH - 114)) | (1 << (MalloyParser.MATCH - 114)))) !== 0))) {
4782
4796
  this._errHandler.recoverInline(this);
4783
4797
  }
4784
4798
  else {
@@ -5207,7 +5221,7 @@ class MalloyParser extends Parser_1.Parser {
5207
5221
  {
5208
5222
  this.state = 970;
5209
5223
  _la = this._input.LA(1);
5210
- if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & ((1 << (MalloyParser.DAY - 44)) | (1 << (MalloyParser.HOUR - 44)) | (1 << (MalloyParser.MINUTE - 44)) | (1 << (MalloyParser.MONTH - 44)) | (1 << (MalloyParser.QUARTER - 44)) | (1 << (MalloyParser.SECOND - 44)))) !== 0) || _la === MalloyParser.WEEK || _la === MalloyParser.YEAR)) {
5224
+ if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & ((1 << (MalloyParser.DAY - 45)) | (1 << (MalloyParser.HOUR - 45)) | (1 << (MalloyParser.MINUTE - 45)) | (1 << (MalloyParser.MONTH - 45)) | (1 << (MalloyParser.QUARTER - 45)) | (1 << (MalloyParser.SECOND - 45)))) !== 0) || _la === MalloyParser.WEEK || _la === MalloyParser.YEAR)) {
5211
5225
  this._errHandler.recoverInline(this);
5212
5226
  }
5213
5227
  else {
@@ -5512,7 +5526,7 @@ class MalloyParser extends Parser_1.Parser {
5512
5526
  this.state = 1015;
5513
5527
  this._errHandler.sync(this);
5514
5528
  _la = this._input.LA(1);
5515
- 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.SOURCE_KW - 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 - 101)) & ~0x1F) === 0 && ((1 << (_la - 101)) & ((1 << (MalloyParser.OPAREN - 101)) | (1 << (MalloyParser.MINUS - 101)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 101)) | (1 << (MalloyParser.LITERAL_HOUR - 101)))) !== 0) || ((((_la - 133)) & ~0x1F) === 0 && ((1 << (_la - 133)) & ((1 << (MalloyParser.LITERAL_DAY - 133)) | (1 << (MalloyParser.LITERAL_QUARTER - 133)) | (1 << (MalloyParser.LITERAL_MONTH - 133)) | (1 << (MalloyParser.LITERAL_WEEK - 133)) | (1 << (MalloyParser.LITERAL_YEAR - 133)) | (1 << (MalloyParser.IDENTIFIER - 133)) | (1 << (MalloyParser.NUMERIC_LITERAL - 133)) | (1 << (MalloyParser.INTEGER_LITERAL - 133)) | (1 << (MalloyParser.SQL_BEGIN - 133)))) !== 0)) {
5529
+ if (((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & ((1 << (MalloyParser.ALL - 33)) | (1 << (MalloyParser.AVG - 33)) | (1 << (MalloyParser.CAST - 33)) | (1 << (MalloyParser.COUNT - 33)) | (1 << (MalloyParser.DAY - 33)) | (1 << (MalloyParser.EXCLUDE - 33)) | (1 << (MalloyParser.FALSE - 33)) | (1 << (MalloyParser.HOUR - 33)) | (1 << (MalloyParser.MAX - 33)) | (1 << (MalloyParser.MIN - 33)) | (1 << (MalloyParser.MINUTE - 33)))) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & ((1 << (MalloyParser.MONTH - 65)) | (1 << (MalloyParser.NOT - 65)) | (1 << (MalloyParser.NOW - 65)) | (1 << (MalloyParser.NULL - 65)) | (1 << (MalloyParser.PICK - 65)) | (1 << (MalloyParser.QUARTER - 65)) | (1 << (MalloyParser.SECOND - 65)) | (1 << (MalloyParser.SOURCE_KW - 65)) | (1 << (MalloyParser.SUM - 65)) | (1 << (MalloyParser.TRUE - 65)) | (1 << (MalloyParser.WEEK - 65)) | (1 << (MalloyParser.YEAR - 65)) | (1 << (MalloyParser.HACKY_REGEX - 65)) | (1 << (MalloyParser.SQ_STRING - 65)) | (1 << (MalloyParser.DQ_STRING - 65)) | (1 << (MalloyParser.BQ_STRING - 65)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (MalloyParser.OPAREN - 102)) | (1 << (MalloyParser.MINUS - 102)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 102)) | (1 << (MalloyParser.LITERAL_HOUR - 102)))) !== 0) || ((((_la - 134)) & ~0x1F) === 0 && ((1 << (_la - 134)) & ((1 << (MalloyParser.LITERAL_DAY - 134)) | (1 << (MalloyParser.LITERAL_QUARTER - 134)) | (1 << (MalloyParser.LITERAL_MONTH - 134)) | (1 << (MalloyParser.LITERAL_WEEK - 134)) | (1 << (MalloyParser.LITERAL_YEAR - 134)) | (1 << (MalloyParser.IDENTIFIER - 134)) | (1 << (MalloyParser.NUMERIC_LITERAL - 134)) | (1 << (MalloyParser.INTEGER_LITERAL - 134)) | (1 << (MalloyParser.SQL_BEGIN - 134)))) !== 0)) {
5516
5530
  {
5517
5531
  this.state = 1014;
5518
5532
  this.fieldExpr(0);
@@ -5552,7 +5566,7 @@ class MalloyParser extends Parser_1.Parser {
5552
5566
  this.state = 1028;
5553
5567
  this._errHandler.sync(this);
5554
5568
  _la = this._input.LA(1);
5555
- 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.SOURCE_KW - 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 - 101)) & ~0x1F) === 0 && ((1 << (_la - 101)) & ((1 << (MalloyParser.OPAREN - 101)) | (1 << (MalloyParser.MINUS - 101)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 101)) | (1 << (MalloyParser.LITERAL_HOUR - 101)))) !== 0) || ((((_la - 133)) & ~0x1F) === 0 && ((1 << (_la - 133)) & ((1 << (MalloyParser.LITERAL_DAY - 133)) | (1 << (MalloyParser.LITERAL_QUARTER - 133)) | (1 << (MalloyParser.LITERAL_MONTH - 133)) | (1 << (MalloyParser.LITERAL_WEEK - 133)) | (1 << (MalloyParser.LITERAL_YEAR - 133)) | (1 << (MalloyParser.IDENTIFIER - 133)) | (1 << (MalloyParser.NUMERIC_LITERAL - 133)) | (1 << (MalloyParser.INTEGER_LITERAL - 133)) | (1 << (MalloyParser.SQL_BEGIN - 133)))) !== 0)) {
5569
+ if (((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & ((1 << (MalloyParser.ALL - 33)) | (1 << (MalloyParser.AVG - 33)) | (1 << (MalloyParser.CAST - 33)) | (1 << (MalloyParser.COUNT - 33)) | (1 << (MalloyParser.DAY - 33)) | (1 << (MalloyParser.EXCLUDE - 33)) | (1 << (MalloyParser.FALSE - 33)) | (1 << (MalloyParser.HOUR - 33)) | (1 << (MalloyParser.MAX - 33)) | (1 << (MalloyParser.MIN - 33)) | (1 << (MalloyParser.MINUTE - 33)))) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & ((1 << (MalloyParser.MONTH - 65)) | (1 << (MalloyParser.NOT - 65)) | (1 << (MalloyParser.NOW - 65)) | (1 << (MalloyParser.NULL - 65)) | (1 << (MalloyParser.PICK - 65)) | (1 << (MalloyParser.QUARTER - 65)) | (1 << (MalloyParser.SECOND - 65)) | (1 << (MalloyParser.SOURCE_KW - 65)) | (1 << (MalloyParser.SUM - 65)) | (1 << (MalloyParser.TRUE - 65)) | (1 << (MalloyParser.WEEK - 65)) | (1 << (MalloyParser.YEAR - 65)) | (1 << (MalloyParser.HACKY_REGEX - 65)) | (1 << (MalloyParser.SQ_STRING - 65)) | (1 << (MalloyParser.DQ_STRING - 65)) | (1 << (MalloyParser.BQ_STRING - 65)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (MalloyParser.OPAREN - 102)) | (1 << (MalloyParser.MINUS - 102)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 102)) | (1 << (MalloyParser.LITERAL_HOUR - 102)))) !== 0) || ((((_la - 134)) & ~0x1F) === 0 && ((1 << (_la - 134)) & ((1 << (MalloyParser.LITERAL_DAY - 134)) | (1 << (MalloyParser.LITERAL_QUARTER - 134)) | (1 << (MalloyParser.LITERAL_MONTH - 134)) | (1 << (MalloyParser.LITERAL_WEEK - 134)) | (1 << (MalloyParser.LITERAL_YEAR - 134)) | (1 << (MalloyParser.IDENTIFIER - 134)) | (1 << (MalloyParser.NUMERIC_LITERAL - 134)) | (1 << (MalloyParser.INTEGER_LITERAL - 134)) | (1 << (MalloyParser.SQL_BEGIN - 134)))) !== 0)) {
5556
5570
  {
5557
5571
  this.state = 1027;
5558
5572
  this.argumentList();
@@ -5587,7 +5601,7 @@ class MalloyParser extends Parser_1.Parser {
5587
5601
  this.state = 1035;
5588
5602
  this._errHandler.sync(this);
5589
5603
  _la = this._input.LA(1);
5590
- if (((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & ((1 << (MalloyParser.BOOLEAN - 37)) | (1 << (MalloyParser.DATE - 37)) | (1 << (MalloyParser.NUMBER - 37)))) !== 0) || _la === MalloyParser.STRING || _la === MalloyParser.TIMESTAMP) {
5604
+ if (((((_la - 38)) & ~0x1F) === 0 && ((1 << (_la - 38)) & ((1 << (MalloyParser.BOOLEAN - 38)) | (1 << (MalloyParser.DATE - 38)) | (1 << (MalloyParser.NUMBER - 38)))) !== 0) || _la === MalloyParser.STRING || _la === MalloyParser.TIMESTAMP) {
5591
5605
  {
5592
5606
  this.state = 1034;
5593
5607
  this.malloyType();
@@ -5620,7 +5634,7 @@ class MalloyParser extends Parser_1.Parser {
5620
5634
  this.state = 1044;
5621
5635
  this._errHandler.sync(this);
5622
5636
  _la = this._input.LA(1);
5623
- 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.SOURCE_KW - 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 - 101)) & ~0x1F) === 0 && ((1 << (_la - 101)) & ((1 << (MalloyParser.OPAREN - 101)) | (1 << (MalloyParser.MINUS - 101)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 101)) | (1 << (MalloyParser.LITERAL_HOUR - 101)))) !== 0) || ((((_la - 133)) & ~0x1F) === 0 && ((1 << (_la - 133)) & ((1 << (MalloyParser.LITERAL_DAY - 133)) | (1 << (MalloyParser.LITERAL_QUARTER - 133)) | (1 << (MalloyParser.LITERAL_MONTH - 133)) | (1 << (MalloyParser.LITERAL_WEEK - 133)) | (1 << (MalloyParser.LITERAL_YEAR - 133)) | (1 << (MalloyParser.IDENTIFIER - 133)) | (1 << (MalloyParser.NUMERIC_LITERAL - 133)) | (1 << (MalloyParser.INTEGER_LITERAL - 133)) | (1 << (MalloyParser.SQL_BEGIN - 133)))) !== 0)) {
5637
+ if (((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & ((1 << (MalloyParser.ALL - 33)) | (1 << (MalloyParser.AVG - 33)) | (1 << (MalloyParser.CAST - 33)) | (1 << (MalloyParser.COUNT - 33)) | (1 << (MalloyParser.DAY - 33)) | (1 << (MalloyParser.EXCLUDE - 33)) | (1 << (MalloyParser.FALSE - 33)) | (1 << (MalloyParser.HOUR - 33)) | (1 << (MalloyParser.MAX - 33)) | (1 << (MalloyParser.MIN - 33)) | (1 << (MalloyParser.MINUTE - 33)))) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & ((1 << (MalloyParser.MONTH - 65)) | (1 << (MalloyParser.NOT - 65)) | (1 << (MalloyParser.NOW - 65)) | (1 << (MalloyParser.NULL - 65)) | (1 << (MalloyParser.PICK - 65)) | (1 << (MalloyParser.QUARTER - 65)) | (1 << (MalloyParser.SECOND - 65)) | (1 << (MalloyParser.SOURCE_KW - 65)) | (1 << (MalloyParser.SUM - 65)) | (1 << (MalloyParser.TRUE - 65)) | (1 << (MalloyParser.WEEK - 65)) | (1 << (MalloyParser.YEAR - 65)) | (1 << (MalloyParser.HACKY_REGEX - 65)) | (1 << (MalloyParser.SQ_STRING - 65)) | (1 << (MalloyParser.DQ_STRING - 65)) | (1 << (MalloyParser.BQ_STRING - 65)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (MalloyParser.OPAREN - 102)) | (1 << (MalloyParser.MINUS - 102)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 102)) | (1 << (MalloyParser.LITERAL_HOUR - 102)))) !== 0) || ((((_la - 134)) & ~0x1F) === 0 && ((1 << (_la - 134)) & ((1 << (MalloyParser.LITERAL_DAY - 134)) | (1 << (MalloyParser.LITERAL_QUARTER - 134)) | (1 << (MalloyParser.LITERAL_MONTH - 134)) | (1 << (MalloyParser.LITERAL_WEEK - 134)) | (1 << (MalloyParser.LITERAL_YEAR - 134)) | (1 << (MalloyParser.IDENTIFIER - 134)) | (1 << (MalloyParser.NUMERIC_LITERAL - 134)) | (1 << (MalloyParser.INTEGER_LITERAL - 134)) | (1 << (MalloyParser.SQL_BEGIN - 134)))) !== 0)) {
5624
5638
  {
5625
5639
  this.state = 1043;
5626
5640
  this.argumentList();
@@ -5696,7 +5710,7 @@ class MalloyParser extends Parser_1.Parser {
5696
5710
  }
5697
5711
  this.state = 1064;
5698
5712
  _la = this._input.LA(1);
5699
- if (!(((((_la - 121)) & ~0x1F) === 0 && ((1 << (_la - 121)) & ((1 << (MalloyParser.STAR - 121)) | (1 << (MalloyParser.SLASH - 121)) | (1 << (MalloyParser.PERCENT - 121)))) !== 0))) {
5713
+ if (!(((((_la - 122)) & ~0x1F) === 0 && ((1 << (_la - 122)) & ((1 << (MalloyParser.STAR - 122)) | (1 << (MalloyParser.SLASH - 122)) | (1 << (MalloyParser.PERCENT - 122)))) !== 0))) {
5700
5714
  this._errHandler.recoverInline(this);
5701
5715
  }
5702
5716
  else {
@@ -5974,7 +5988,7 @@ class MalloyParser extends Parser_1.Parser {
5974
5988
  this.state = 1122;
5975
5989
  this._errHandler.sync(this);
5976
5990
  _la = this._input.LA(1);
5977
- if (((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & ((1 << (MalloyParser.LT - 113)) | (1 << (MalloyParser.GT - 113)) | (1 << (MalloyParser.EQ - 113)) | (1 << (MalloyParser.NE - 113)) | (1 << (MalloyParser.LTE - 113)) | (1 << (MalloyParser.GTE - 113)) | (1 << (MalloyParser.NOT_MATCH - 113)) | (1 << (MalloyParser.MATCH - 113)))) !== 0)) {
5991
+ if (((((_la - 114)) & ~0x1F) === 0 && ((1 << (_la - 114)) & ((1 << (MalloyParser.LT - 114)) | (1 << (MalloyParser.GT - 114)) | (1 << (MalloyParser.EQ - 114)) | (1 << (MalloyParser.NE - 114)) | (1 << (MalloyParser.LTE - 114)) | (1 << (MalloyParser.GTE - 114)) | (1 << (MalloyParser.NOT_MATCH - 114)) | (1 << (MalloyParser.MATCH - 114)))) !== 0)) {
5978
5992
  {
5979
5993
  this.state = 1121;
5980
5994
  this.compareOp();
@@ -5992,7 +6006,7 @@ class MalloyParser extends Parser_1.Parser {
5992
6006
  this.state = 1128;
5993
6007
  this._errHandler.sync(this);
5994
6008
  _la = this._input.LA(1);
5995
- if (((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & ((1 << (MalloyParser.LT - 113)) | (1 << (MalloyParser.GT - 113)) | (1 << (MalloyParser.EQ - 113)) | (1 << (MalloyParser.NE - 113)) | (1 << (MalloyParser.LTE - 113)) | (1 << (MalloyParser.GTE - 113)) | (1 << (MalloyParser.NOT_MATCH - 113)) | (1 << (MalloyParser.MATCH - 113)))) !== 0)) {
6009
+ if (((((_la - 114)) & ~0x1F) === 0 && ((1 << (_la - 114)) & ((1 << (MalloyParser.LT - 114)) | (1 << (MalloyParser.GT - 114)) | (1 << (MalloyParser.EQ - 114)) | (1 << (MalloyParser.NE - 114)) | (1 << (MalloyParser.LTE - 114)) | (1 << (MalloyParser.GTE - 114)) | (1 << (MalloyParser.NOT_MATCH - 114)) | (1 << (MalloyParser.MATCH - 114)))) !== 0)) {
5996
6010
  {
5997
6011
  this.state = 1127;
5998
6012
  this.compareOp();
@@ -6089,7 +6103,7 @@ class MalloyParser extends Parser_1.Parser {
6089
6103
  this.state = 1144;
6090
6104
  this._errHandler.sync(this);
6091
6105
  _la = this._input.LA(1);
6092
- 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.SOURCE_KW - 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 - 101)) & ~0x1F) === 0 && ((1 << (_la - 101)) & ((1 << (MalloyParser.OPAREN - 101)) | (1 << (MalloyParser.MINUS - 101)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 101)) | (1 << (MalloyParser.LITERAL_HOUR - 101)))) !== 0) || ((((_la - 133)) & ~0x1F) === 0 && ((1 << (_la - 133)) & ((1 << (MalloyParser.LITERAL_DAY - 133)) | (1 << (MalloyParser.LITERAL_QUARTER - 133)) | (1 << (MalloyParser.LITERAL_MONTH - 133)) | (1 << (MalloyParser.LITERAL_WEEK - 133)) | (1 << (MalloyParser.LITERAL_YEAR - 133)) | (1 << (MalloyParser.IDENTIFIER - 133)) | (1 << (MalloyParser.NUMERIC_LITERAL - 133)) | (1 << (MalloyParser.INTEGER_LITERAL - 133)) | (1 << (MalloyParser.SQL_BEGIN - 133)))) !== 0)) {
6106
+ if (((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & ((1 << (MalloyParser.ALL - 33)) | (1 << (MalloyParser.AVG - 33)) | (1 << (MalloyParser.CAST - 33)) | (1 << (MalloyParser.COUNT - 33)) | (1 << (MalloyParser.DAY - 33)) | (1 << (MalloyParser.EXCLUDE - 33)) | (1 << (MalloyParser.FALSE - 33)) | (1 << (MalloyParser.HOUR - 33)) | (1 << (MalloyParser.MAX - 33)) | (1 << (MalloyParser.MIN - 33)) | (1 << (MalloyParser.MINUTE - 33)))) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & ((1 << (MalloyParser.MONTH - 65)) | (1 << (MalloyParser.NOT - 65)) | (1 << (MalloyParser.NOW - 65)) | (1 << (MalloyParser.NULL - 65)) | (1 << (MalloyParser.PICK - 65)) | (1 << (MalloyParser.QUARTER - 65)) | (1 << (MalloyParser.SECOND - 65)) | (1 << (MalloyParser.SOURCE_KW - 65)) | (1 << (MalloyParser.SUM - 65)) | (1 << (MalloyParser.TRUE - 65)) | (1 << (MalloyParser.WEEK - 65)) | (1 << (MalloyParser.YEAR - 65)) | (1 << (MalloyParser.HACKY_REGEX - 65)) | (1 << (MalloyParser.SQ_STRING - 65)) | (1 << (MalloyParser.DQ_STRING - 65)) | (1 << (MalloyParser.BQ_STRING - 65)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (MalloyParser.OPAREN - 102)) | (1 << (MalloyParser.MINUS - 102)) | (1 << (MalloyParser.LITERAL_TIMESTAMP - 102)) | (1 << (MalloyParser.LITERAL_HOUR - 102)))) !== 0) || ((((_la - 134)) & ~0x1F) === 0 && ((1 << (_la - 134)) & ((1 << (MalloyParser.LITERAL_DAY - 134)) | (1 << (MalloyParser.LITERAL_QUARTER - 134)) | (1 << (MalloyParser.LITERAL_MONTH - 134)) | (1 << (MalloyParser.LITERAL_WEEK - 134)) | (1 << (MalloyParser.LITERAL_YEAR - 134)) | (1 << (MalloyParser.IDENTIFIER - 134)) | (1 << (MalloyParser.NUMERIC_LITERAL - 134)) | (1 << (MalloyParser.INTEGER_LITERAL - 134)) | (1 << (MalloyParser.SQL_BEGIN - 134)))) !== 0)) {
6093
6107
  {
6094
6108
  this.state = 1143;
6095
6109
  _localctx._pickValue = this.fieldExpr(0);
@@ -6740,126 +6754,127 @@ MalloyParser.SOURCE = 27;
6740
6754
  MalloyParser.SQLC = 28;
6741
6755
  MalloyParser.TOP = 29;
6742
6756
  MalloyParser.WHERE = 30;
6743
- MalloyParser.TIMEZONE = 31;
6744
- MalloyParser.ALL = 32;
6745
- MalloyParser.AND = 33;
6746
- MalloyParser.AS = 34;
6747
- MalloyParser.ASC = 35;
6748
- MalloyParser.AVG = 36;
6749
- MalloyParser.BOOLEAN = 37;
6750
- MalloyParser.BY = 38;
6751
- MalloyParser.CASE = 39;
6752
- MalloyParser.CAST = 40;
6753
- MalloyParser.CONDITION = 41;
6754
- MalloyParser.COUNT = 42;
6755
- MalloyParser.DATE = 43;
6756
- MalloyParser.DAY = 44;
6757
- MalloyParser.DESC = 45;
6758
- MalloyParser.DISTINCT = 46;
6759
- MalloyParser.ELSE = 47;
6760
- MalloyParser.END = 48;
6761
- MalloyParser.EXCLUDE = 49;
6762
- MalloyParser.EXTEND = 50;
6763
- MalloyParser.FALSE = 51;
6764
- MalloyParser.FOR = 52;
6765
- MalloyParser.FROM = 53;
6766
- MalloyParser.FROM_SQL = 54;
6767
- MalloyParser.HAS = 55;
6768
- MalloyParser.HOUR = 56;
6769
- MalloyParser.IMPORT = 57;
6770
- MalloyParser.IS = 58;
6771
- MalloyParser.JSON = 59;
6772
- MalloyParser.LAST = 60;
6773
- MalloyParser.MAX = 61;
6774
- MalloyParser.MIN = 62;
6775
- MalloyParser.MINUTE = 63;
6776
- MalloyParser.MONTH = 64;
6777
- MalloyParser.NOT = 65;
6778
- MalloyParser.NOW = 66;
6779
- MalloyParser.NULL = 67;
6780
- MalloyParser.NUMBER = 68;
6781
- MalloyParser.ON = 69;
6782
- MalloyParser.OR = 70;
6783
- MalloyParser.PICK = 71;
6784
- MalloyParser.QUARTER = 72;
6785
- MalloyParser.REFINE = 73;
6786
- MalloyParser.SECOND = 74;
6787
- MalloyParser.STRING = 75;
6788
- MalloyParser.SOURCE_KW = 76;
6789
- MalloyParser.SUM = 77;
6790
- MalloyParser.SQL = 78;
6791
- MalloyParser.TABLE = 79;
6792
- MalloyParser.THEN = 80;
6793
- MalloyParser.THIS = 81;
6794
- MalloyParser.TIMESTAMP = 82;
6795
- MalloyParser.TO = 83;
6796
- MalloyParser.TRUE = 84;
6797
- MalloyParser.TURTLE = 85;
6798
- MalloyParser.WEEK = 86;
6799
- MalloyParser.WHEN = 87;
6800
- MalloyParser.WITH = 88;
6801
- MalloyParser.YEAR = 89;
6802
- MalloyParser.UNGROUPED = 90;
6803
- MalloyParser.STRING_ESCAPE = 91;
6804
- MalloyParser.HACKY_REGEX = 92;
6805
- MalloyParser.SQ_STRING = 93;
6806
- MalloyParser.DQ_STRING = 94;
6807
- MalloyParser.BQ_STRING = 95;
6808
- MalloyParser.DOC_ANNOTATION = 96;
6809
- MalloyParser.ANNOTATION = 97;
6810
- MalloyParser.AMPER = 98;
6811
- MalloyParser.ARROW = 99;
6812
- MalloyParser.FAT_ARROW = 100;
6813
- MalloyParser.OPAREN = 101;
6814
- MalloyParser.CPAREN = 102;
6815
- MalloyParser.OBRACK = 103;
6816
- MalloyParser.CBRACK = 104;
6817
- MalloyParser.OCURLY = 105;
6818
- MalloyParser.CCURLY = 106;
6819
- MalloyParser.DOUBLECOLON = 107;
6820
- MalloyParser.TRIPLECOLON = 108;
6821
- MalloyParser.EXCLAM = 109;
6822
- MalloyParser.COLON = 110;
6823
- MalloyParser.COMMA = 111;
6824
- MalloyParser.DOT = 112;
6825
- MalloyParser.LT = 113;
6826
- MalloyParser.GT = 114;
6827
- MalloyParser.EQ = 115;
6828
- MalloyParser.NE = 116;
6829
- MalloyParser.LTE = 117;
6830
- MalloyParser.GTE = 118;
6831
- MalloyParser.PLUS = 119;
6832
- MalloyParser.MINUS = 120;
6833
- MalloyParser.STAR = 121;
6834
- MalloyParser.STARSTAR = 122;
6835
- MalloyParser.SLASH = 123;
6836
- MalloyParser.BAR = 124;
6837
- MalloyParser.SEMI = 125;
6838
- MalloyParser.NOT_MATCH = 126;
6839
- MalloyParser.MATCH = 127;
6840
- MalloyParser.PERCENT = 128;
6841
- MalloyParser.DOUBLE_QMARK = 129;
6842
- MalloyParser.QMARK = 130;
6843
- MalloyParser.LITERAL_TIMESTAMP = 131;
6844
- MalloyParser.LITERAL_HOUR = 132;
6845
- MalloyParser.LITERAL_DAY = 133;
6846
- MalloyParser.LITERAL_QUARTER = 134;
6847
- MalloyParser.LITERAL_MONTH = 135;
6848
- MalloyParser.LITERAL_WEEK = 136;
6849
- MalloyParser.LITERAL_YEAR = 137;
6850
- MalloyParser.IDENTIFIER = 138;
6851
- MalloyParser.PERCENT_LITERAL = 139;
6852
- MalloyParser.NUMERIC_LITERAL = 140;
6853
- MalloyParser.INTEGER_LITERAL = 141;
6854
- MalloyParser.BLOCK_COMMENT = 142;
6855
- MalloyParser.COMMENT_TO_EOL = 143;
6856
- MalloyParser.WHITE_SPACE = 144;
6857
- MalloyParser.SQL_BEGIN = 145;
6858
- MalloyParser.CLOSE_CODE = 146;
6859
- MalloyParser.UNWATED_CHARS_TRAILING_NUMBERS = 147;
6860
- MalloyParser.UNEXPECTED_CHAR = 148;
6861
- MalloyParser.OPEN_CODE = 149;
6862
- MalloyParser.SQL_END = 150;
6757
+ MalloyParser.VIEW = 31;
6758
+ MalloyParser.TIMEZONE = 32;
6759
+ MalloyParser.ALL = 33;
6760
+ MalloyParser.AND = 34;
6761
+ MalloyParser.AS = 35;
6762
+ MalloyParser.ASC = 36;
6763
+ MalloyParser.AVG = 37;
6764
+ MalloyParser.BOOLEAN = 38;
6765
+ MalloyParser.BY = 39;
6766
+ MalloyParser.CASE = 40;
6767
+ MalloyParser.CAST = 41;
6768
+ MalloyParser.CONDITION = 42;
6769
+ MalloyParser.COUNT = 43;
6770
+ MalloyParser.DATE = 44;
6771
+ MalloyParser.DAY = 45;
6772
+ MalloyParser.DESC = 46;
6773
+ MalloyParser.DISTINCT = 47;
6774
+ MalloyParser.ELSE = 48;
6775
+ MalloyParser.END = 49;
6776
+ MalloyParser.EXCLUDE = 50;
6777
+ MalloyParser.EXTEND = 51;
6778
+ MalloyParser.FALSE = 52;
6779
+ MalloyParser.FOR = 53;
6780
+ MalloyParser.FROM = 54;
6781
+ MalloyParser.FROM_SQL = 55;
6782
+ MalloyParser.HAS = 56;
6783
+ MalloyParser.HOUR = 57;
6784
+ MalloyParser.IMPORT = 58;
6785
+ MalloyParser.IS = 59;
6786
+ MalloyParser.JSON = 60;
6787
+ MalloyParser.LAST = 61;
6788
+ MalloyParser.MAX = 62;
6789
+ MalloyParser.MIN = 63;
6790
+ MalloyParser.MINUTE = 64;
6791
+ MalloyParser.MONTH = 65;
6792
+ MalloyParser.NOT = 66;
6793
+ MalloyParser.NOW = 67;
6794
+ MalloyParser.NULL = 68;
6795
+ MalloyParser.NUMBER = 69;
6796
+ MalloyParser.ON = 70;
6797
+ MalloyParser.OR = 71;
6798
+ MalloyParser.PICK = 72;
6799
+ MalloyParser.QUARTER = 73;
6800
+ MalloyParser.REFINE = 74;
6801
+ MalloyParser.SECOND = 75;
6802
+ MalloyParser.STRING = 76;
6803
+ MalloyParser.SOURCE_KW = 77;
6804
+ MalloyParser.SUM = 78;
6805
+ MalloyParser.SQL = 79;
6806
+ MalloyParser.TABLE = 80;
6807
+ MalloyParser.THEN = 81;
6808
+ MalloyParser.THIS = 82;
6809
+ MalloyParser.TIMESTAMP = 83;
6810
+ MalloyParser.TO = 84;
6811
+ MalloyParser.TRUE = 85;
6812
+ MalloyParser.TURTLE = 86;
6813
+ MalloyParser.WEEK = 87;
6814
+ MalloyParser.WHEN = 88;
6815
+ MalloyParser.WITH = 89;
6816
+ MalloyParser.YEAR = 90;
6817
+ MalloyParser.UNGROUPED = 91;
6818
+ MalloyParser.STRING_ESCAPE = 92;
6819
+ MalloyParser.HACKY_REGEX = 93;
6820
+ MalloyParser.SQ_STRING = 94;
6821
+ MalloyParser.DQ_STRING = 95;
6822
+ MalloyParser.BQ_STRING = 96;
6823
+ MalloyParser.DOC_ANNOTATION = 97;
6824
+ MalloyParser.ANNOTATION = 98;
6825
+ MalloyParser.AMPER = 99;
6826
+ MalloyParser.ARROW = 100;
6827
+ MalloyParser.FAT_ARROW = 101;
6828
+ MalloyParser.OPAREN = 102;
6829
+ MalloyParser.CPAREN = 103;
6830
+ MalloyParser.OBRACK = 104;
6831
+ MalloyParser.CBRACK = 105;
6832
+ MalloyParser.OCURLY = 106;
6833
+ MalloyParser.CCURLY = 107;
6834
+ MalloyParser.DOUBLECOLON = 108;
6835
+ MalloyParser.TRIPLECOLON = 109;
6836
+ MalloyParser.EXCLAM = 110;
6837
+ MalloyParser.COLON = 111;
6838
+ MalloyParser.COMMA = 112;
6839
+ MalloyParser.DOT = 113;
6840
+ MalloyParser.LT = 114;
6841
+ MalloyParser.GT = 115;
6842
+ MalloyParser.EQ = 116;
6843
+ MalloyParser.NE = 117;
6844
+ MalloyParser.LTE = 118;
6845
+ MalloyParser.GTE = 119;
6846
+ MalloyParser.PLUS = 120;
6847
+ MalloyParser.MINUS = 121;
6848
+ MalloyParser.STAR = 122;
6849
+ MalloyParser.STARSTAR = 123;
6850
+ MalloyParser.SLASH = 124;
6851
+ MalloyParser.BAR = 125;
6852
+ MalloyParser.SEMI = 126;
6853
+ MalloyParser.NOT_MATCH = 127;
6854
+ MalloyParser.MATCH = 128;
6855
+ MalloyParser.PERCENT = 129;
6856
+ MalloyParser.DOUBLE_QMARK = 130;
6857
+ MalloyParser.QMARK = 131;
6858
+ MalloyParser.LITERAL_TIMESTAMP = 132;
6859
+ MalloyParser.LITERAL_HOUR = 133;
6860
+ MalloyParser.LITERAL_DAY = 134;
6861
+ MalloyParser.LITERAL_QUARTER = 135;
6862
+ MalloyParser.LITERAL_MONTH = 136;
6863
+ MalloyParser.LITERAL_WEEK = 137;
6864
+ MalloyParser.LITERAL_YEAR = 138;
6865
+ MalloyParser.IDENTIFIER = 139;
6866
+ MalloyParser.PERCENT_LITERAL = 140;
6867
+ MalloyParser.NUMERIC_LITERAL = 141;
6868
+ MalloyParser.INTEGER_LITERAL = 142;
6869
+ MalloyParser.BLOCK_COMMENT = 143;
6870
+ MalloyParser.COMMENT_TO_EOL = 144;
6871
+ MalloyParser.WHITE_SPACE = 145;
6872
+ MalloyParser.SQL_BEGIN = 146;
6873
+ MalloyParser.CLOSE_CODE = 147;
6874
+ MalloyParser.UNWATED_CHARS_TRAILING_NUMBERS = 148;
6875
+ MalloyParser.UNEXPECTED_CHAR = 149;
6876
+ MalloyParser.OPEN_CODE = 150;
6877
+ MalloyParser.SQL_END = 151;
6863
6878
  MalloyParser.RULE_malloyDocument = 0;
6864
6879
  MalloyParser.RULE_malloyStatement = 1;
6865
6880
  MalloyParser.RULE_defineSourceStatement = 2;
@@ -7034,20 +7049,20 @@ MalloyParser._LITERAL_NAMES = [
7034
7049
  undefined, undefined, undefined, undefined, undefined, undefined, undefined,
7035
7050
  undefined, undefined, undefined, undefined, undefined, undefined, undefined,
7036
7051
  undefined, undefined, undefined, undefined, undefined, undefined, undefined,
7037
- "'&'", "'->'", "'=>'", "'('", "')'", "'['", "']'", "'{'", "'}'", "'::'",
7038
- "':::'", "'!'", "':'", "','", "'.'", "'<'", "'>'", "'='", "'!='", "'<='",
7039
- "'>='", "'+'", "'-'", "'*'", "'**'", "'/'", "'|'", "';'", "'!~'", "'~'",
7040
- "'%'", "'??'", "'?'", undefined, undefined, undefined, undefined, undefined,
7052
+ undefined, "'&'", "'->'", "'=>'", "'('", "')'", "'['", "']'", "'{'", "'}'",
7053
+ "'::'", "':::'", "'!'", "':'", "','", "'.'", "'<'", "'>'", "'='", "'!='",
7054
+ "'<='", "'>='", "'+'", "'-'", "'*'", "'**'", "'/'", "'|'", "';'", "'!~'",
7055
+ "'~'", "'%'", "'??'", "'?'", undefined, undefined, undefined, undefined,
7041
7056
  undefined, undefined, undefined, undefined, undefined, undefined, undefined,
7042
- undefined, undefined, "'\"\"\"'", "'}%'",
7057
+ undefined, undefined, undefined, "'\"\"\"'", "'}%'",
7043
7058
  ];
7044
7059
  MalloyParser._SYMBOLIC_NAMES = [
7045
7060
  undefined, "ACCEPT", "AGGREGATE", "CALCULATE", "CALCULATION", "CONNECTION",
7046
7061
  "DECLARE", "DIMENSION", "EXCEPT", "EXTENDQ", "GROUP_BY", "HAVING", "INDEX",
7047
7062
  "JOIN_CROSS", "JOIN_ONE", "JOIN_MANY", "LIMIT", "MEASURE", "NEST", "ORDER_BY",
7048
7063
  "PRIMARY_KEY", "PROJECT", "QUERY", "RENAME", "RUN", "SAMPLE", "SELECT",
7049
- "SOURCE", "SQLC", "TOP", "WHERE", "TIMEZONE", "ALL", "AND", "AS", "ASC",
7050
- "AVG", "BOOLEAN", "BY", "CASE", "CAST", "CONDITION", "COUNT", "DATE",
7064
+ "SOURCE", "SQLC", "TOP", "WHERE", "VIEW", "TIMEZONE", "ALL", "AND", "AS",
7065
+ "ASC", "AVG", "BOOLEAN", "BY", "CASE", "CAST", "CONDITION", "COUNT", "DATE",
7051
7066
  "DAY", "DESC", "DISTINCT", "ELSE", "END", "EXCLUDE", "EXTEND", "FALSE",
7052
7067
  "FOR", "FROM", "FROM_SQL", "HAS", "HOUR", "IMPORT", "IS", "JSON", "LAST",
7053
7068
  "MAX", "MIN", "MINUTE", "MONTH", "NOT", "NOW", "NULL", "NUMBER", "ON",
@@ -7067,7 +7082,7 @@ MalloyParser._SYMBOLIC_NAMES = [
7067
7082
  ];
7068
7083
  MalloyParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(MalloyParser._LITERAL_NAMES, MalloyParser._SYMBOLIC_NAMES, []);
7069
7084
  MalloyParser._serializedATNSegments = 3;
7070
- MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x98\u04D1\x04" +
7085
+ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x99\u04D1\x04" +
7071
7086
  "\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
7072
7087
  "\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" +
7073
7088
  "\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12" +
@@ -7183,57 +7198,57 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
7183
7198
  "\x02\xC0\x02\xC2\x02\xC4\x02\xC6\x02\xC8\x02\xCA\x02\xCC\x02\xCE\x02\xD0" +
7184
7199
  "\x02\xD2\x02\xD4\x02\xD6\x02\xD8\x02\xDA\x02\xDC\x02\xDE\x02\xE0\x02\xE2" +
7185
7200
  "\x02\xE4\x02\xE6\x02\xE8\x02\xEA\x02\xEC\x02\xEE\x02\xF0\x02\xF2\x02\xF4" +
7186
- "\x02\xF6\x02\xF8\x02\xFA\x02\xFC\x02\xFE\x02\u0100\x02\x02\x13\x04\x02" +
7187
- "ll\x94\x94\x04\x02eerr\x04\x02\x03\x03\n\n\x04\x02\x17\x17\x1C\x1C\x04" +
7188
- "\x02%%//\x06\x0255VV\x8D\x8D\x8F\x8F\x06\x02&&,,?@OO\x07\x02\'\'--FFM" +
7189
- "MTT\x04\x02sx\x80\x81\x03\x02_`\x03\x02\x8E\x8F\x04\x0255VV\x04\x02aa" +
7190
- "\x8C\x8C\t\x02..::ABJJLLXX[[\x04\x02\"\"33\x05\x02{{}}\x82\x82\x03\x02" +
7191
- "yz\x02\u051C\x02\u0106\x03\x02\x02\x02\x04\u0112\x03\x02\x02\x02\x06\u0114" +
7192
- "\x03\x02\x02\x02\b\u011D\x03\x02\x02\x02\n\u011F\x03\x02\x02\x02\f\u0125" +
7193
- "\x03\x02\x02\x02\x0E\u0128\x03\x02\x02\x02\x10\u012C\x03\x02\x02\x02\x12" +
7194
- "\u0131\x03\x02\x02\x02\x14\u0136\x03\x02\x02\x02\x16\u0142\x03\x02\x02" +
7195
- "\x02\x18\u0144\x03\x02\x02\x02\x1A\u014D\x03\x02\x02\x02\x1C\u0151\x03" +
7196
- "\x02\x02\x02\x1E\u0157\x03\x02\x02\x02 \u0163\x03\x02\x02\x02\"\u0168" +
7197
- "\x03\x02\x02\x02$\u016B\x03\x02\x02\x02&\u0170\x03\x02\x02\x02(\u0175" +
7198
- "\x03\x02\x02\x02*\u0179\x03\x02\x02\x02,\u0188\x03\x02\x02\x02.\u018D" +
7199
- "\x03\x02\x02\x020\u0195\x03\x02\x02\x022\u019D\x03\x02\x02\x024\u01A7" +
7200
- "\x03\x02\x02\x026\u01B3\x03\x02\x02\x028\u01BD\x03\x02\x02\x02:\u01BF" +
7201
- "\x03\x02\x02\x02<\u01D0\x03\x02\x02\x02>\u01D2\x03\x02\x02\x02@\u01DC" +
7202
- "\x03\x02\x02\x02B\u01EB\x03\x02\x02\x02D\u01ED\x03\x02\x02\x02F\u01FC" +
7203
- "\x03\x02\x02\x02H\u01FE\x03\x02\x02\x02J\u020A\x03\x02\x02\x02L\u020C" +
7204
- "\x03\x02\x02\x02N\u0211\x03\x02\x02\x02P\u0213\x03\x02\x02\x02R\u0215" +
7205
- "\x03\x02\x02\x02T\u0222\x03\x02\x02\x02V\u022B\x03\x02\x02\x02X\u022D" +
7206
- "\x03\x02\x02\x02Z\u022F\x03\x02\x02\x02\\\u023B\x03\x02\x02\x02^\u0253" +
7207
- "\x03\x02\x02\x02`\u0255\x03\x02\x02\x02b\u0259\x03\x02\x02\x02d\u025D" +
7208
- "\x03\x02\x02\x02f\u026A\x03\x02\x02\x02h\u026E\x03\x02\x02\x02j\u027B" +
7209
- "\x03\x02\x02\x02l\u0280\x03\x02\x02\x02n\u0282\x03\x02\x02\x02p\u0284" +
7210
- "\x03\x02\x02\x02r\u0293\x03\x02\x02\x02t\u0295\x03\x02\x02\x02v\u029B" +
7211
- "\x03\x02\x02\x02x\u029D\x03\x02\x02\x02z\u02A7\x03\x02\x02\x02|\u02B4" +
7212
- "\x03\x02\x02\x02~\u02D4\x03\x02\x02\x02\x80\u02D6\x03\x02\x02\x02\x82" +
7213
- "\u02DA\x03\x02\x02\x02\x84\u02DF\x03\x02\x02\x02\x86\u02E1\x03\x02\x02" +
7214
- "\x02\x88\u02EC\x03\x02\x02\x02\x8A\u02EF\x03\x02\x02\x02\x8C\u02F2\x03" +
7215
- "\x02\x02\x02\x8E\u02FF\x03\x02\x02\x02\x90\u0304\x03\x02\x02\x02\x92\u031D" +
7216
- "\x03\x02\x02\x02\x94\u031F\x03\x02\x02\x02\x96\u0321\x03\x02\x02\x02\x98" +
7217
- "\u0325\x03\x02\x02\x02\x9A\u0334\x03\x02\x02\x02\x9C\u0336\x03\x02\x02" +
7218
- "\x02\x9E\u033A\x03\x02\x02\x02\xA0\u0351\x03\x02\x02\x02\xA2\u0353\x03" +
7219
- "\x02\x02\x02\xA4\u0357\x03\x02\x02\x02\xA6\u035B\x03\x02\x02\x02\xA8\u035F" +
7220
- "\x03\x02\x02\x02\xAA\u0362\x03\x02\x02\x02\xAC\u0371\x03\x02\x02\x02\xAE" +
7221
- "\u0376\x03\x02\x02\x02\xB0\u037D\x03\x02\x02\x02\xB2\u037F\x03\x02\x02" +
7222
- "\x02\xB4\u038A\x03\x02\x02\x02\xB6\u038C\x03\x02\x02\x02\xB8\u0396\x03" +
7223
- "\x02\x02\x02\xBA\u039C\x03\x02\x02\x02\xBC\u039F\x03\x02\x02\x02\xBE\u03A2" +
7224
- "\x03\x02\x02\x02\xC0\u03A4\x03\x02\x02\x02\xC2\u03A6\x03\x02\x02\x02\xC4" +
7225
- "\u03A8\x03\x02\x02\x02\xC6\u03AA\x03\x02\x02\x02\xC8\u03AE\x03\x02\x02" +
7226
- "\x02\xCA\u03B0\x03\x02\x02\x02\xCC\u03B2\x03\x02\x02\x02\xCE\u03BB\x03" +
7227
- "\x02\x02\x02\xD0\u03C4\x03\x02\x02\x02\xD2\u03C6\x03\x02\x02\x02\xD4\u03C8" +
7228
- "\x03\x02\x02\x02\xD6\u03CA\x03\x02\x02\x02\xD8\u03CC\x03\x02\x02\x02\xDA" +
7229
- "\u03CE\x03\x02\x02\x02\xDC\u03D2\x03\x02\x02\x02\xDE\u0427\x03\x02\x02" +
7230
- "\x02\xE0\u046D\x03\x02\x02\x02\xE2\u0470\x03\x02\x02\x02\xE4\u0478\x03" +
7231
- "\x02\x02\x02\xE6\u047F\x03\x02\x02\x02\xE8\u048A\x03\x02\x02\x02\xEA\u0494" +
7232
- "\x03\x02\x02\x02\xEC\u04A4\x03\x02\x02\x02\xEE\u04A8\x03\x02\x02\x02\xF0" +
7233
- "\u04B4\x03\x02\x02\x02\xF2\u04B9\x03\x02\x02\x02\xF4\u04BB\x03\x02\x02" +
7234
- "\x02\xF6\u04C3\x03\x02\x02\x02\xF8\u04C5\x03\x02\x02\x02\xFA\u04C7\x03" +
7235
- "\x02\x02\x02\xFC\u04CA\x03\x02\x02\x02\xFE\u04CC\x03\x02\x02\x02\u0100" +
7236
- "\u04CE\x03\x02\x02\x02\u0102\u0105\x05\x04\x03\x02\u0103\u0105\x07\x7F" +
7201
+ "\x02\xF6\x02\xF8\x02\xFA\x02\xFC\x02\xFE\x02\u0100\x02\x02\x14\x04\x02" +
7202
+ "mm\x95\x95\x04\x02ffss\x04\x02\x03\x03\n\n\x04\x02\x18\x18!!\x04\x02\x17" +
7203
+ "\x17\x1C\x1C\x04\x02&&00\x06\x0266WW\x8E\x8E\x90\x90\x06\x02\'\'--@AP" +
7204
+ "P\x07\x02((..GGNNUU\x04\x02ty\x81\x82\x03\x02`a\x03\x02\x8F\x90\x04\x02" +
7205
+ "66WW\x04\x02bb\x8D\x8D\t\x02//;;BCKKMMYY\\\\\x04\x02##44\x05\x02||~~\x83" +
7206
+ "\x83\x03\x02z{\x02\u051C\x02\u0106\x03\x02\x02\x02\x04\u0112\x03\x02\x02" +
7207
+ "\x02\x06\u0114\x03\x02\x02\x02\b\u011D\x03\x02\x02\x02\n\u011F\x03\x02" +
7208
+ "\x02\x02\f\u0125\x03\x02\x02\x02\x0E\u0128\x03\x02\x02\x02\x10\u012C\x03" +
7209
+ "\x02\x02\x02\x12\u0131\x03\x02\x02\x02\x14\u0136\x03\x02\x02\x02\x16\u0142" +
7210
+ "\x03\x02\x02\x02\x18\u0144\x03\x02\x02\x02\x1A\u014D\x03\x02\x02\x02\x1C" +
7211
+ "\u0151\x03\x02\x02\x02\x1E\u0157\x03\x02\x02\x02 \u0163\x03\x02\x02\x02" +
7212
+ "\"\u0168\x03\x02\x02\x02$\u016B\x03\x02\x02\x02&\u0170\x03\x02\x02\x02" +
7213
+ "(\u0175\x03\x02\x02\x02*\u0179\x03\x02\x02\x02,\u0188\x03\x02\x02\x02" +
7214
+ ".\u018D\x03\x02\x02\x020\u0195\x03\x02\x02\x022\u019D\x03\x02\x02\x02" +
7215
+ "4\u01A7\x03\x02\x02\x026\u01B3\x03\x02\x02\x028\u01BD\x03\x02\x02\x02" +
7216
+ ":\u01BF\x03\x02\x02\x02<\u01D0\x03\x02\x02\x02>\u01D2\x03\x02\x02\x02" +
7217
+ "@\u01DC\x03\x02\x02\x02B\u01EB\x03\x02\x02\x02D\u01ED\x03\x02\x02\x02" +
7218
+ "F\u01FC\x03\x02\x02\x02H\u01FE\x03\x02\x02\x02J\u020A\x03\x02\x02\x02" +
7219
+ "L\u020C\x03\x02\x02\x02N\u0211\x03\x02\x02\x02P\u0213\x03\x02\x02\x02" +
7220
+ "R\u0215\x03\x02\x02\x02T\u0222\x03\x02\x02\x02V\u022B\x03\x02\x02\x02" +
7221
+ "X\u022D\x03\x02\x02\x02Z\u022F\x03\x02\x02\x02\\\u023B\x03\x02\x02\x02" +
7222
+ "^\u0253\x03\x02\x02\x02`\u0255\x03\x02\x02\x02b\u0259\x03\x02\x02\x02" +
7223
+ "d\u025D\x03\x02\x02\x02f\u026A\x03\x02\x02\x02h\u026E\x03\x02\x02\x02" +
7224
+ "j\u027B\x03\x02\x02\x02l\u0280\x03\x02\x02\x02n\u0282\x03\x02\x02\x02" +
7225
+ "p\u0284\x03\x02\x02\x02r\u0293\x03\x02\x02\x02t\u0295\x03\x02\x02\x02" +
7226
+ "v\u029B\x03\x02\x02\x02x\u029D\x03\x02\x02\x02z\u02A7\x03\x02\x02\x02" +
7227
+ "|\u02B4\x03\x02\x02\x02~\u02D4\x03\x02\x02\x02\x80\u02D6\x03\x02\x02\x02" +
7228
+ "\x82\u02DA\x03\x02\x02\x02\x84\u02DF\x03\x02\x02\x02\x86\u02E1\x03\x02" +
7229
+ "\x02\x02\x88\u02EC\x03\x02\x02\x02\x8A\u02EF\x03\x02\x02\x02\x8C\u02F2" +
7230
+ "\x03\x02\x02\x02\x8E\u02FF\x03\x02\x02\x02\x90\u0304\x03\x02\x02\x02\x92" +
7231
+ "\u031D\x03\x02\x02\x02\x94\u031F\x03\x02\x02\x02\x96\u0321\x03\x02\x02" +
7232
+ "\x02\x98\u0325\x03\x02\x02\x02\x9A\u0334\x03\x02\x02\x02\x9C\u0336\x03" +
7233
+ "\x02\x02\x02\x9E\u033A\x03\x02\x02\x02\xA0\u0351\x03\x02\x02\x02\xA2\u0353" +
7234
+ "\x03\x02\x02\x02\xA4\u0357\x03\x02\x02\x02\xA6\u035B\x03\x02\x02\x02\xA8" +
7235
+ "\u035F\x03\x02\x02\x02\xAA\u0362\x03\x02\x02\x02\xAC\u0371\x03\x02\x02" +
7236
+ "\x02\xAE\u0376\x03\x02\x02\x02\xB0\u037D\x03\x02\x02\x02\xB2\u037F\x03" +
7237
+ "\x02\x02\x02\xB4\u038A\x03\x02\x02\x02\xB6\u038C\x03\x02\x02\x02\xB8\u0396" +
7238
+ "\x03\x02\x02\x02\xBA\u039C\x03\x02\x02\x02\xBC\u039F\x03\x02\x02\x02\xBE" +
7239
+ "\u03A2\x03\x02\x02\x02\xC0\u03A4\x03\x02\x02\x02\xC2\u03A6\x03\x02\x02" +
7240
+ "\x02\xC4\u03A8\x03\x02\x02\x02\xC6\u03AA\x03\x02\x02\x02\xC8\u03AE\x03" +
7241
+ "\x02\x02\x02\xCA\u03B0\x03\x02\x02\x02\xCC\u03B2\x03\x02\x02\x02\xCE\u03BB" +
7242
+ "\x03\x02\x02\x02\xD0\u03C4\x03\x02\x02\x02\xD2\u03C6\x03\x02\x02\x02\xD4" +
7243
+ "\u03C8\x03\x02\x02\x02\xD6\u03CA\x03\x02\x02\x02\xD8\u03CC\x03\x02\x02" +
7244
+ "\x02\xDA\u03CE\x03\x02\x02\x02\xDC\u03D2\x03\x02\x02\x02\xDE\u0427\x03" +
7245
+ "\x02\x02\x02\xE0\u046D\x03\x02\x02\x02\xE2\u0470\x03\x02\x02\x02\xE4\u0478" +
7246
+ "\x03\x02\x02\x02\xE6\u047F\x03\x02\x02\x02\xE8\u048A\x03\x02\x02\x02\xEA" +
7247
+ "\u0494\x03\x02\x02\x02\xEC\u04A4\x03\x02\x02\x02\xEE\u04A8\x03\x02\x02" +
7248
+ "\x02\xF0\u04B4\x03\x02\x02\x02\xF2\u04B9\x03\x02\x02\x02\xF4\u04BB\x03" +
7249
+ "\x02\x02\x02\xF6\u04C3\x03\x02\x02\x02\xF8\u04C5\x03\x02\x02\x02\xFA\u04C7" +
7250
+ "\x03\x02\x02\x02\xFC\u04CA\x03\x02\x02\x02\xFE\u04CC\x03\x02\x02\x02\u0100" +
7251
+ "\u04CE\x03\x02\x02\x02\u0102\u0105\x05\x04\x03\x02\u0103\u0105\x07\x80" +
7237
7252
  "\x02\x02\u0104\u0102\x03\x02\x02\x02\u0104\u0103\x03\x02\x02\x02\u0105" +
7238
7253
  "\u0108\x03\x02\x02\x02\u0106\u0104\x03\x02\x02\x02\u0106\u0107\x03\x02" +
7239
7254
  "\x02\x02\u0107\u0109\x03\x02\x02\x02\u0108\u0106\x03\x02\x02\x02\u0109" +
@@ -7249,58 +7264,58 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
7249
7264
  "\u011C\x05\n\x06\x02\u011C\u011E\x03\x02\x02\x02\u011D\u0118\x03\x02\x02" +
7250
7265
  "\x02\u011D\u0119\x03\x02\x02\x02\u011E\t\x03\x02\x02\x02\u011F\u0120\x05" +
7251
7266
  "\f\x07\x02\u0120\u0121\x054\x1B\x02\u0121\v\x03\x02\x02\x02\u0122\u0124" +
7252
- "\x07c\x02\x02\u0123\u0122\x03\x02\x02\x02\u0124\u0127\x03\x02\x02\x02" +
7267
+ "\x07d\x02\x02\u0123\u0122\x03\x02\x02\x02\u0124\u0127\x03\x02\x02\x02" +
7253
7268
  "\u0125\u0123\x03\x02\x02\x02\u0125\u0126\x03\x02\x02\x02\u0126\r\x03\x02" +
7254
7269
  "\x02\x02\u0127\u0125\x03\x02\x02\x02\u0128\u0129\x05\f\x07\x02\u0129\u012A" +
7255
- "\x07<\x02\x02\u012A\u012B\x05\f\x07\x02\u012B\x0F\x03\x02\x02\x02\u012C" +
7270
+ "\x07=\x02\x02\u012A\u012B\x05\f\x07\x02\u012B\x0F\x03\x02\x02\x02\u012C" +
7256
7271
  "\u012D\x05\f\x07\x02\u012D\u012E\x07\x1A\x02\x02\u012E\u012F\x05\f\x07" +
7257
7272
  "\x02\u012F\u0130\x05\n\x06\x02\u0130\x11\x03\x02\x02\x02\u0131\u0132\x07" +
7258
7273
  "\x1E\x02\x02\u0132\u0133\x05\xFE\x80\x02\u0133\u0134\x05\x0E\b\x02\u0134" +
7259
- "\u0135\x05\x14\v\x02\u0135\x13\x03\x02\x02\x02\u0136\u0138\x07k\x02\x02" +
7274
+ "\u0135\x05\x14\v\x02\u0135\x13\x03\x02\x02\x02\u0136\u0138\x07l\x02\x02" +
7260
7275
  "\u0137\u0139\x05\x16\f\x02\u0138\u0137\x03\x02\x02\x02\u0139\u013A\x03" +
7261
7276
  "\x02\x02\x02\u013A\u0138\x03\x02\x02\x02\u013A\u013B\x03\x02\x02\x02\u013B" +
7262
- "\u013C\x03\x02\x02\x02\u013C\u013D\x07l\x02\x02\u013D\x15\x03\x02\x02" +
7277
+ "\u013C\x03\x02\x02\x02\u013C\u013D\x07m\x02\x02\u013D\x15\x03\x02\x02" +
7263
7278
  "\x02\u013E\u013F\x07\x07\x02\x02\u013F\u0143\x05\u0100\x81\x02\u0140\u0141" +
7264
7279
  "\x07\x1C\x02\x02\u0141\u0143\x05\x18\r\x02\u0142\u013E\x03\x02\x02\x02" +
7265
7280
  "\u0142\u0140\x03\x02\x02\x02\u0143\x17\x03\x02\x02\x02\u0144\u0148\x07" +
7266
- "\x93\x02\x02\u0145\u0147\x05\x1A\x0E\x02\u0146\u0145\x03\x02\x02\x02\u0147" +
7281
+ "\x94\x02\x02\u0145\u0147\x05\x1A\x0E\x02\u0146\u0145\x03\x02\x02\x02\u0147" +
7267
7282
  "\u014A\x03\x02\x02\x02\u0148\u0146\x03\x02\x02\x02\u0148\u0149\x03\x02" +
7268
7283
  "\x02\x02\u0149\u014B\x03\x02\x02\x02\u014A\u0148\x03\x02\x02\x02\u014B" +
7269
- "\u014C\x07\x98\x02\x02\u014C\x19\x03\x02\x02\x02\u014D\u014E\x07\x97\x02" +
7284
+ "\u014C\x07\x99\x02\x02\u014C\x19\x03\x02\x02\x02\u014D\u014E\x07\x98\x02" +
7270
7285
  "\x02\u014E\u014F\x054\x1B\x02\u014F\u0150\t\x02\x02\x02\u0150\x1B\x03" +
7271
- "\x02\x02\x02\u0151\u0153\x07;\x02\x02\u0152\u0154\x05\x1E\x10\x02\u0153" +
7286
+ "\x02\x02\x02\u0151\u0153\x07<\x02\x02\u0152\u0154\x05\x1E\x10\x02\u0153" +
7272
7287
  "\u0152\x03\x02\x02\x02\u0153\u0154\x03\x02\x02\x02\u0154\u0155\x03\x02" +
7273
7288
  "\x02\x02\u0155\u0156\x05\"\x12\x02\u0156\x1D\x03\x02\x02\x02\u0157\u0158" +
7274
- "\x07k\x02\x02\u0158\u015D\x05 \x11\x02\u0159\u015A\x07q\x02\x02\u015A" +
7289
+ "\x07l\x02\x02\u0158\u015D\x05 \x11\x02\u0159\u015A\x07r\x02\x02\u015A" +
7275
7290
  "\u015C\x05 \x11\x02\u015B\u0159\x03\x02\x02\x02\u015C\u015F\x03\x02\x02" +
7276
7291
  "\x02\u015D\u015B\x03\x02\x02\x02\u015D\u015E\x03\x02\x02\x02\u015E\u0160" +
7277
- "\x03\x02\x02\x02\u015F\u015D\x03\x02\x02\x02\u0160\u0161\x07l\x02\x02" +
7278
- "\u0161\u0162\x077\x02\x02\u0162\x1F\x03\x02\x02\x02\u0163\u0166\x05\xD6" +
7279
- "l\x02\u0164\u0165\x07<\x02\x02\u0165\u0167\x05\xD6l\x02\u0166\u0164\x03" +
7292
+ "\x03\x02\x02\x02\u015F\u015D\x03\x02\x02\x02\u0160\u0161\x07m\x02\x02" +
7293
+ "\u0161\u0162\x078\x02\x02\u0162\x1F\x03\x02\x02\x02\u0163\u0166\x05\xD6" +
7294
+ "l\x02\u0164\u0165\x07=\x02\x02\u0165\u0167\x05\xD6l\x02\u0166\u0164\x03" +
7280
7295
  "\x02\x02\x02\u0166\u0167\x03\x02\x02\x02\u0167!\x03\x02\x02\x02\u0168" +
7281
- "\u0169\x05\xC8e\x02\u0169#\x03\x02\x02\x02\u016A\u016C\x07b\x02\x02\u016B" +
7296
+ "\u0169\x05\xC8e\x02\u0169#\x03\x02\x02\x02\u016A\u016C\x07c\x02\x02\u016B" +
7282
7297
  "\u016A\x03\x02\x02\x02\u016C\u016D\x03\x02\x02\x02\u016D\u016B\x03\x02" +
7283
7298
  "\x02\x02\u016D\u016E\x03\x02\x02\x02\u016E%\x03\x02\x02\x02\u016F\u0171" +
7284
- "\x07c\x02\x02\u0170\u016F\x03\x02\x02\x02\u0171\u0172\x03\x02\x02\x02" +
7299
+ "\x07d\x02\x02\u0170\u016F\x03\x02\x02\x02\u0171\u0172\x03\x02\x02\x02" +
7285
7300
  "\u0172\u0170\x03\x02\x02\x02\u0172\u0173\x03\x02\x02\x02\u0173\'\x03\x02" +
7286
- "\x02\x02\u0174\u0176\x07b\x02\x02\u0175\u0174\x03\x02\x02\x02\u0176\u0177" +
7301
+ "\x02\x02\u0174\u0176\x07c\x02\x02\u0175\u0174\x03\x02\x02\x02\u0176\u0177" +
7287
7302
  "\x03\x02\x02\x02\u0177\u0175\x03\x02\x02\x02\u0177\u0178\x03\x02\x02\x02" +
7288
7303
  "\u0178)\x03\x02\x02\x02\u0179\u017A\x05\f\x07\x02\u017A\u017B\x07\x18" +
7289
- "\x02\x02\u017B\u0182\x05,\x17\x02\u017C\u017E\x07q\x02\x02\u017D\u017C" +
7304
+ "\x02\x02\u017B\u0182\x05,\x17\x02\u017C\u017E\x07r\x02\x02\u017D\u017C" +
7290
7305
  "\x03\x02\x02\x02\u017D\u017E\x03\x02\x02\x02\u017E\u017F\x03\x02\x02\x02" +
7291
7306
  "\u017F\u0181\x05,\x17\x02\u0180\u017D\x03\x02\x02\x02\u0181\u0184\x03" +
7292
7307
  "\x02\x02\x02\u0182\u0180\x03\x02\x02\x02\u0182\u0183\x03\x02\x02\x02\u0183" +
7293
- "\u0186\x03\x02\x02\x02\u0184\u0182\x03\x02\x02\x02\u0185\u0187\x07q\x02" +
7308
+ "\u0186\x03\x02\x02\x02\u0184\u0182\x03\x02\x02\x02\u0185\u0187\x07r\x02" +
7294
7309
  "\x02\u0186\u0185\x03\x02\x02\x02\u0186\u0187\x03\x02\x02\x02\u0187+\x03" +
7295
7310
  "\x02\x02\x02\u0188\u0189\x05\f\x07\x02\u0189\u018A\x05P)\x02\u018A\u018B" +
7296
7311
  "\x05\x0E\b\x02\u018B\u018C\x054\x1B\x02\u018C-\x03\x02\x02\x02\u018D\u018E" +
7297
- "\x07y\x02\x02\u018E/\x03\x02\x02\x02\u018F\u0191\x05.\x18\x02\u0190\u018F" +
7312
+ "\x07z\x02\x02\u018E/\x03\x02\x02\x02\u018F\u0191\x05.\x18\x02\u0190\u018F" +
7298
7313
  "\x03\x02\x02\x02\u0190\u0191\x03\x02\x02\x02\u0191\u0192\x03\x02\x02\x02" +
7299
- "\u0192\u0196\x05J&\x02\u0193\u0194\x07K\x02\x02\u0194\u0196\x05J&\x02" +
7314
+ "\u0192\u0196\x05J&\x02\u0193\u0194\x07L\x02\x02\u0194\u0196\x05J&\x02" +
7300
7315
  "\u0195\u0190\x03\x02\x02\x02\u0195\u0193\x03\x02\x02\x02\u01961\x03\x02" +
7301
7316
  "\x02\x02\u0197\u0199\x05.\x18\x02\u0198\u0197\x03\x02\x02\x02\u0198\u0199" +
7302
7317
  "\x03\x02\x02\x02\u0199\u019A\x03\x02\x02\x02\u019A\u019E\x05\\/\x02\u019B" +
7303
- "\u019C\x074\x02\x02\u019C\u019E\x05\\/\x02\u019D\u0198\x03\x02\x02\x02" +
7318
+ "\u019C\x075\x02\x02\u019C\u019E\x05\\/\x02\u019D\u0198\x03\x02\x02\x02" +
7304
7319
  "\u019D\u019B\x03\x02\x02\x02\u019E3\x03\x02\x02\x02\u019F\u01A3\x056\x1C" +
7305
7320
  "\x02\u01A0\u01A2\x05D#\x02\u01A1\u01A0\x03\x02\x02\x02\u01A2\u01A5\x03" +
7306
7321
  "\x02\x02\x02\u01A3\u01A1\x03\x02\x02\x02\u01A3\u01A4\x03\x02\x02\x02\u01A4" +
@@ -7308,189 +7323,190 @@ MalloyParser._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\
7308
7323
  "\u01A7\u019F\x03\x02\x02\x02\u01A7\u01A6\x03\x02\x02\x02\u01A85\x03\x02" +
7309
7324
  "\x02\x02\u01A9\u01AB\x05:\x1E\x02\u01AA\u01AC\x05D#\x02\u01AB\u01AA\x03" +
7310
7325
  "\x02\x02\x02\u01AC\u01AD\x03\x02\x02\x02\u01AD\u01AB\x03\x02\x02\x02\u01AD" +
7311
- "\u01AE\x03\x02\x02\x02\u01AE\u01B4\x03";
7312
- MalloyParser._serializedATNSegment1 = "\x02\x02\x02\u01AF\u01B1\x058\x1D\x02\u01B0\u01B2\x050\x19\x02\u01B1\u01B0" +
7313
- "\x03\x02\x02\x02\u01B1\u01B2\x03\x02\x02\x02\u01B2\u01B4\x03\x02\x02\x02" +
7314
- "\u01B3\u01A9\x03\x02\x02\x02\u01B3\u01AF\x03\x02\x02\x02\u01B47\x03\x02" +
7315
- "\x02\x02\u01B5\u01B7\x07e\x02\x02\u01B6\u01B5\x03\x02\x02\x02\u01B6\u01B7" +
7316
- "\x03\x02\x02\x02\u01B7\u01B8\x03\x02\x02\x02\u01B8\u01BE\x05\xD6l\x02" +
7317
- "\u01B9\u01BA\x05:\x1E\x02\u01BA\u01BB\t\x03\x02\x02\u01BB\u01BC\x05\xD6" +
7318
- "l\x02\u01BC\u01BE\x03\x02\x02\x02\u01BD\u01B6\x03\x02\x02\x02\u01BD\u01B9" +
7319
- "\x03\x02\x02\x02\u01BE9\x03\x02\x02\x02\u01BF\u01C1\x05<\x1F\x02\u01C0" +
7320
- "\u01C2\x052\x1A\x02\u01C1\u01C0\x03\x02\x02\x02\u01C1\u01C2\x03\x02\x02" +
7321
- "\x02\u01C2;\x03\x02\x02\x02\u01C3\u01D1\x05Z.\x02\u01C4\u01D1\x05F$\x02" +
7322
- "\u01C5\u01C6\x077\x02\x02\u01C6\u01C7\x07g\x02\x02\u01C7\u01C8\x054\x1B" +
7323
- "\x02\u01C8\u01C9\x07h\x02\x02\u01C9\u01D1\x03\x02\x02\x02\u01CA\u01CB" +
7324
- "\x078\x02\x02\u01CB\u01CC\x07g\x02\x02\u01CC\u01CD\x05\xFC\x7F\x02\u01CD" +
7325
- "\u01CE\x07h\x02\x02\u01CE\u01D1\x03\x02\x02\x02\u01CF\u01D1\x05> \x02" +
7326
- "\u01D0\u01C3\x03\x02\x02\x02\u01D0\u01C4\x03\x02\x02\x02\u01D0\u01C5\x03" +
7327
- "\x02\x02\x02\u01D0\u01CA\x03\x02\x02\x02\u01D0\u01CF\x03\x02\x02\x02\u01D1" +
7328
- "=\x03\x02\x02\x02\u01D2\u01D3\x05H%\x02\u01D3\u01D4\x07r\x02\x02\u01D4" +
7329
- "\u01D5\x07P\x02\x02\u01D5\u01D8\x07g\x02\x02\u01D6\u01D9\x05\x18\r\x02" +
7330
- "\u01D7\u01D9\x05\xCAf\x02\u01D8\u01D6\x03\x02\x02\x02\u01D8\u01D7\x03" +
7331
- "\x02\x02\x02\u01D9\u01DA\x03\x02\x02\x02\u01DA\u01DB\x07h\x02\x02\u01DB" +
7332
- "?\x03\x02\x02\x02\u01DC\u01E0\x05B\"\x02\u01DD\u01DF\x05D#\x02\u01DE\u01DD" +
7333
- "\x03\x02\x02\x02\u01DF\u01E2\x03\x02\x02\x02\u01E0\u01DE\x03\x02\x02\x02" +
7334
- "\u01E0\u01E1\x03\x02\x02\x02\u01E1A\x03\x02\x02\x02\u01E2\u01E0\x03\x02" +
7335
- "\x02\x02\u01E3\u01E5\x07e\x02\x02\u01E4\u01E3\x03\x02\x02\x02\u01E4\u01E5" +
7336
- "\x03\x02\x02\x02\u01E5\u01E6\x03\x02\x02\x02\u01E6\u01EC\x05J&\x02\u01E7" +
7337
- "\u01E9\x05N(\x02\u01E8\u01EA\x050\x19\x02\u01E9\u01E8\x03\x02\x02\x02" +
7338
- "\u01E9\u01EA\x03\x02\x02\x02\u01EA\u01EC\x03\x02\x02\x02\u01EB\u01E4\x03" +
7339
- "\x02\x02\x02\u01EB\u01E7\x03\x02\x02\x02\u01ECC\x03\x02\x02\x02\u01ED" +
7340
- "\u01EE\x07e\x02\x02\u01EE\u01EF\x05J&\x02\u01EFE\x03\x02\x02\x02\u01F0" +
7341
- "\u01F1\x07Q\x02\x02\u01F1\u01F2\x07g\x02\x02\u01F2\u01F3\x05\xD4k\x02" +
7342
- "\u01F3\u01F4\x07h\x02\x02\u01F4\u01FD\x03\x02\x02\x02\u01F5\u01F6\x05" +
7343
- "H%\x02\u01F6\u01F7\x07r\x02\x02\u01F7\u01F8\x07Q\x02\x02\u01F8\u01F9\x07" +
7344
- "g\x02\x02\u01F9\u01FA\x05\xD2j\x02\u01FA\u01FB\x07h\x02\x02\u01FB\u01FD" +
7345
- "\x03\x02\x02\x02\u01FC\u01F0\x03\x02\x02\x02\u01FC\u01F5\x03\x02\x02\x02" +
7346
- "\u01FDG\x03\x02\x02\x02\u01FE\u01FF\x05\xD6l\x02\u01FFI\x03\x02\x02\x02" +
7347
- "\u0200\u020B\x05L\'\x02\u0201\u0206\x07k\x02\x02\u0202\u0205\x05\x92J" +
7348
- "\x02\u0203\u0205\x07\x7F\x02\x02\u0204\u0202\x03\x02\x02\x02\u0204\u0203" +
7349
- "\x03\x02\x02\x02\u0205\u0208\x03\x02\x02\x02\u0206\u0204\x03\x02\x02\x02" +
7350
- "\u0206\u0207\x03\x02\x02\x02\u0207\u0209\x03\x02\x02\x02\u0208\u0206\x03" +
7351
- "\x02\x02\x02\u0209\u020B\x07l\x02\x02\u020A\u0200\x03\x02\x02\x02\u020A" +
7352
- "\u0201\x03\x02\x02\x02\u020BK\x03\x02\x02\x02\u020C\u020D\x07k\x02\x02" +
7353
- "\u020D\u020E\x07\x84\x02\x02\u020E\u020F\x05\xDEp\x02\u020F\u0210\x07" +
7354
- "l\x02\x02\u0210M\x03\x02\x02\x02\u0211\u0212\x05\xD6l\x02\u0212O\x03\x02" +
7355
- "\x02\x02\u0213\u0214\x05\xD6l\x02\u0214Q\x03\x02\x02\x02\u0215\u021C\x05" +
7356
- "T+\x02\u0216\u0218\x07q\x02\x02\u0217\u0216\x03\x02\x02\x02\u0217\u0218" +
7357
- "\x03\x02\x02\x02\u0218\u0219\x03\x02\x02\x02\u0219\u021B\x05T+\x02\u021A" +
7358
- "\u0217\x03\x02\x02\x02\u021B\u021E\x03\x02\x02\x02\u021C\u021A\x03\x02" +
7359
- "\x02\x02\u021C\u021D\x03\x02\x02\x02\u021D\u0220\x03\x02\x02\x02\u021E" +
7360
- "\u021C\x03\x02\x02\x02\u021F\u0221\x07q\x02\x02\u0220\u021F\x03\x02\x02" +
7361
- "\x02\u0220\u0221\x03\x02\x02\x02\u0221S\x03\x02\x02\x02\u0222\u0223\x05" +
7362
- "\f\x07\x02\u0223\u0224\x05X-\x02\u0224\u0225\x05\x0E\b\x02\u0225\u0226" +
7363
- "\x05V,\x02\u0226U\x03\x02\x02\x02\u0227\u022C\x05:\x1E\x02\u0228\u0229" +
7364
- "\x054\x1B\x02\u0229\u022A\x052\x1A\x02\u022A\u022C\x03\x02\x02\x02\u022B" +
7365
- "\u0227\x03\x02\x02\x02\u022B\u0228\x03\x02\x02\x02\u022CW\x03\x02\x02" +
7366
- "\x02\u022D\u022E\x05\xD6l\x02\u022EY\x03\x02\x02\x02\u022F\u0230\x05\xD6" +
7367
- "l\x02\u0230[\x03\x02\x02\x02\u0231\u0236\x07k\x02\x02\u0232\u0235\x05" +
7368
- "^0\x02\u0233\u0235\x07\x7F\x02\x02\u0234\u0232\x03\x02\x02\x02\u0234\u0233" +
7369
- "\x03\x02\x02\x02\u0235\u0238\x03\x02\x02\x02\u0236\u0234\x03\x02\x02\x02" +
7370
- "\u0236\u0237\x03\x02\x02\x02\u0237\u0239\x03\x02\x02\x02\u0238\u0236\x03" +
7371
- "\x02\x02\x02\u0239\u023C\x07l\x02\x02\u023A\u023C\x05L\'\x02\u023B\u0231" +
7372
- "\x03\x02\x02\x02\u023B\u023A\x03\x02\x02\x02\u023C]\x03\x02\x02\x02\u023D" +
7373
- "\u0254\x05b2\x02\u023E\u0254\x05`1\x02\u023F\u0254\x05p9\x02\u0240\u0254" +
7374
- "\x05r:\x02\u0241\u0254\x05\x88E\x02\u0242\u0243\x07\x16\x02\x02\u0243" +
7375
- "\u0254\x05\xF8}\x02\u0244\u0245\x07\x19\x02\x02\u0245\u0254\x05d3\x02" +
7376
- "\u0246\u0247\t\x04\x02\x02\u0247\u0254\x05\xE8u\x02\u0248\u0249\x05\f" +
7377
- "\x07\x02\u0249\u024A\x07\x18\x02\x02\u024A\u024B\x05\x8CG\x02\u024B\u0254" +
7378
- "\x03\x02\x02\x02\u024C\u0254\x05\xBC_\x02\u024D\u024F\x07c\x02\x02\u024E" +
7379
- "\u024D\x03\x02\x02\x02\u024F\u0250\x03\x02\x02\x02\u0250\u024E\x03\x02" +
7380
- "\x02\x02\u0250\u0251\x03\x02\x02\x02\u0251\u0254\x03\x02\x02\x02\u0252" +
7381
- "\u0254\x05(\x15\x02\u0253\u023D\x03\x02\x02\x02\u0253\u023E\x03\x02\x02" +
7382
- "\x02\u0253\u023F\x03\x02\x02\x02\u0253\u0240\x03\x02\x02\x02\u0253\u0241" +
7383
- "\x03\x02\x02\x02\u0253\u0242\x03\x02\x02\x02\u0253\u0244\x03\x02\x02\x02" +
7384
- "\u0253\u0246\x03\x02\x02\x02\u0253\u0248\x03\x02\x02\x02\u0253\u024C\x03" +
7385
- "\x02\x02\x02\u0253\u024E\x03\x02\x02\x02\u0253\u0252\x03\x02\x02\x02\u0254" +
7386
- "_\x03\x02\x02\x02\u0255\u0256\x05\f\x07\x02\u0256\u0257\x07\x13\x02\x02" +
7387
- "\u0257\u0258\x05h5\x02\u0258a\x03\x02\x02\x02\u0259\u025A\x05\f\x07\x02" +
7388
- "\u025A\u025B\x07\t\x02\x02\u025B\u025C\x05h5\x02\u025Cc\x03\x02\x02\x02" +
7389
- "\u025D\u0264\x05f4\x02\u025E\u0260\x07q\x02\x02\u025F\u025E\x03\x02\x02" +
7390
- "\x02\u025F\u0260\x03\x02\x02\x02\u0260\u0261\x03\x02\x02\x02\u0261\u0263" +
7391
- "\x05f4\x02\u0262\u025F\x03\x02\x02\x02\u0263\u0266\x03\x02\x02\x02\u0264" +
7392
- "\u0262\x03\x02\x02\x02\u0264\u0265\x03\x02\x02\x02\u0265\u0268\x03\x02" +
7393
- "\x02\x02\u0266\u0264\x03\x02\x02\x02\u0267\u0269\x07q\x02\x02\u0268\u0267" +
7394
- "\x03\x02\x02\x02\u0268\u0269\x03\x02\x02\x02\u0269e\x03\x02\x02\x02\u026A" +
7395
- "\u026B\x05\xF8}\x02\u026B\u026C\x05\x0E\b\x02\u026C\u026D\x05\xF8}\x02" +
7396
- "\u026Dg\x03\x02\x02\x02\u026E\u0275\x05j6\x02\u026F\u0271\x07q\x02\x02" +
7397
- "\u0270\u026F\x03\x02\x02\x02\u0270\u0271\x03\x02\x02\x02\u0271\u0272\x03" +
7398
- "\x02\x02\x02\u0272\u0274\x05j6\x02\u0273\u0270\x03\x02\x02\x02\u0274\u0277" +
7399
- "\x03\x02\x02\x02\u0275\u0273\x03\x02\x02\x02\u0275\u0276\x03\x02\x02\x02" +
7400
- "\u0276\u0279\x03\x02\x02\x02\u0277\u0275\x03\x02\x02\x02\u0278\u027A\x07" +
7401
- "q\x02\x02\u0279\u0278\x03\x02\x02\x02\u0279\u027A\x03\x02\x02\x02\u027A" +
7402
- "i\x03\x02\x02\x02\u027B\u027C\x05\f\x07\x02\u027C\u027D\x05l7\x02\u027D" +
7403
- "\u027E\x05\x0E\b\x02\u027E\u027F\x05\xDEp\x02\u027Fk\x03\x02\x02\x02\u0280" +
7404
- "\u0281\x05\xD6l\x02\u0281m\x03\x02\x02\x02\u0282\u0283\x05\xD6l\x02\u0283" +
7405
- "o\x03\x02\x02\x02\u0284\u0285\x07\b\x02\x02\u0285\u0286\x05h5\x02\u0286" +
7406
- "q\x03\x02\x02\x02\u0287\u0288\x05\f\x07\x02\u0288\u0289\x07\x10\x02\x02" +
7407
- "\u0289\u028A\x05z>\x02\u028A\u0294\x03\x02\x02\x02\u028B\u028C\x05\f\x07" +
7408
- "\x02\u028C\u028D\x07\x11\x02\x02\u028D\u028E\x05z>\x02\u028E\u0294\x03" +
7409
- "\x02\x02\x02\u028F\u0290\x05\f\x07\x02\u0290\u0291\x07\x0F\x02\x02\u0291" +
7410
- "\u0292\x05z>\x02\u0292\u0294\x03\x02\x02\x02\u0293\u0287\x03\x02\x02\x02" +
7411
- "\u0293\u028B\x03\x02\x02\x02\u0293\u028F\x03\x02\x02\x02\u0294s\x03\x02" +
7412
- "\x02\x02\u0295\u0296\x07\v\x02\x02\u0296\u0297\x05x=\x02\u0297u\x03\x02" +
7413
- "\x02\x02\u0298\u029C\x05b2\x02\u0299\u029C\x05`1\x02\u029A\u029C\x05r" +
7414
- ":\x02\u029B\u0298\x03\x02\x02\x02\u029B\u0299\x03\x02\x02\x02\u029B\u029A" +
7415
- "\x03\x02\x02\x02\u029Cw\x03\x02\x02\x02\u029D\u02A2\x07k\x02\x02\u029E" +
7416
- "\u02A1\x05v<\x02\u029F\u02A1\x07\x7F\x02\x02\u02A0\u029E\x03\x02\x02\x02" +
7417
- "\u02A0\u029F\x03\x02\x02\x02\u02A1\u02A4\x03\x02\x02\x02\u02A2\u02A0\x03" +
7418
- "\x02\x02\x02\u02A2\u02A3\x03\x02\x02\x02\u02A3\u02A5\x03\x02\x02\x02\u02A4" +
7419
- "\u02A2\x03\x02\x02\x02\u02A5\u02A6\x07l\x02\x02\u02A6y\x03\x02\x02\x02" +
7420
- "\u02A7\u02AE\x05~@\x02\u02A8\u02AA\x07q\x02\x02\u02A9\u02A8\x03\x02\x02" +
7421
- "\x02\u02A9\u02AA\x03\x02\x02\x02\u02AA\u02AB\x03\x02\x02\x02\u02AB\u02AD" +
7422
- "\x05~@\x02\u02AC\u02A9\x03\x02\x02\x02\u02AD\u02B0\x03\x02\x02\x02\u02AE" +
7423
- "\u02AC\x03\x02\x02\x02\u02AE\u02AF\x03\x02\x02\x02\u02AF\u02B2\x03\x02" +
7424
- "\x02\x02\u02B0\u02AE\x03\x02\x02\x02\u02B1\u02B3\x07q\x02\x02\u02B2\u02B1" +
7425
- "\x03\x02\x02\x02\u02B2\u02B3\x03\x02\x02\x02\u02B3{\x03\x02\x02\x02\u02B4" +
7426
- "\u02B5\x05\f\x07\x02\u02B5\u02B6\x07<\x02\x02\u02B6\u02B7\x05\f\x07\x02" +
7427
- "\u02B7\u02B8\x05V,\x02\u02B8}\x03\x02\x02\x02\u02B9\u02BB\x07c\x02\x02" +
7428
- "\u02BA\u02B9\x03\x02\x02\x02\u02BB\u02BE\x03\x02\x02\x02\u02BC\u02BA\x03" +
7429
- "\x02\x02\x02\u02BC\u02BD\x03\x02\x02\x02\u02BD\u02BF\x03\x02\x02\x02\u02BE" +
7430
- "\u02BC\x03\x02\x02\x02\u02BF\u02C1\x05n8\x02\u02C0\u02C2\x05|?\x02\u02C1" +
7431
- "\u02C0\x03\x02\x02\x02\u02C1\u02C2\x03\x02\x02\x02\u02C2\u02C3\x03\x02" +
7432
- "\x02\x02\u02C3\u02C4\x07Z\x02\x02\u02C4\u02C5\x05\xDEp\x02\u02C5\u02D5" +
7433
- "\x03\x02\x02\x02\u02C6\u02C8\x07c\x02\x02\u02C7\u02C6\x03\x02\x02\x02" +
7434
- "\u02C8\u02CB\x03\x02\x02\x02\u02C9\u02C7\x03\x02\x02\x02\u02C9\u02CA\x03" +
7435
- "\x02\x02\x02\u02CA\u02CC\x03\x02\x02\x02\u02CB\u02C9\x03\x02\x02\x02\u02CC" +
7436
- "\u02CE\x05n8\x02\u02CD\u02CF\x05|?\x02\u02CE\u02CD\x03\x02\x02\x02\u02CE" +
7437
- "\u02CF\x03\x02\x02\x02\u02CF\u02D2\x03\x02\x02\x02\u02D0\u02D1\x07G\x02" +
7438
- "\x02\u02D1\u02D3\x05\x80A\x02\u02D2\u02D0\x03\x02\x02\x02\u02D2\u02D3" +
7439
- "\x03\x02\x02\x02\u02D3\u02D5\x03\x02\x02\x02\u02D4\u02BC\x03\x02\x02\x02" +
7440
- "\u02D4\u02C9\x03\x02\x02\x02\u02D5\x7F\x03\x02\x02\x02\u02D6\u02D7\x05" +
7441
- "\xDEp\x02\u02D7\x81\x03\x02\x02\x02\u02D8\u02DB\x05\x88E\x02\u02D9\u02DB" +
7442
- "\x05\x8AF\x02\u02DA\u02D8\x03\x02\x02\x02\u02DA\u02D9\x03\x02\x02\x02" +
7443
- "\u02DB\x83\x03\x02\x02\x02\u02DC\u02DD\x07\x84\x02\x02\u02DD\u02E0\x05" +
7444
- "\xDEp\x02\u02DE\u02E0\x05\x88E\x02\u02DF\u02DC\x03\x02\x02\x02\u02DF\u02DE" +
7445
- "\x03\x02\x02\x02\u02E0\x85\x03\x02\x02\x02\u02E1\u02E6\x05\xDEp\x02\u02E2" +
7446
- "\u02E3\x07q\x02\x02\u02E3\u02E5\x05\xDEp\x02\u02E4\u02E2\x03\x02\x02\x02" +
7447
- "\u02E5\u02E8\x03\x02\x02\x02\u02E6\u02E4\x03\x02\x02\x02\u02E6\u02E7\x03" +
7448
- "\x02\x02\x02\u02E7\u02EA\x03\x02\x02\x02\u02E8\u02E6\x03\x02\x02\x02\u02E9" +
7449
- "\u02EB\x07q\x02\x02\u02EA\u02E9\x03\x02\x02\x02\u02EA\u02EB\x03\x02\x02" +
7450
- "\x02\u02EB\x87\x03\x02\x02\x02\u02EC\u02ED\x07 \x02\x02\u02ED\u02EE\x05" +
7451
- "\x86D\x02\u02EE\x89\x03\x02\x02\x02\u02EF\u02F0\x07\r\x02\x02\u02F0\u02F1" +
7452
- "\x05\x86D\x02\u02F1\x8B\x03\x02\x02\x02\u02F2\u02F9\x05\x90I\x02\u02F3" +
7453
- "\u02F5\x07q\x02\x02\u02F4\u02F3\x03\x02\x02\x02\u02F4\u02F5\x03\x02\x02" +
7454
- "\x02\u02F5\u02F6\x03\x02\x02\x02\u02F6\u02F8\x05\x90I\x02\u02F7\u02F4" +
7455
- "\x03\x02\x02\x02\u02F8\u02FB\x03\x02\x02\x02\u02F9\u02F7\x03\x02\x02\x02" +
7456
- "\u02F9\u02FA\x03\x02\x02\x02\u02FA\u02FD\x03\x02\x02\x02\u02FB\u02F9\x03" +
7457
- "\x02\x02\x02\u02FC\u02FE\x07q\x02\x02\u02FD\u02FC\x03\x02\x02\x02\u02FD" +
7458
- "\u02FE\x03\x02\x02\x02\u02FE\x8D\x03\x02\x02\x02\u02FF\u0300\x05\xD6l" +
7459
- "\x02\u0300\x8F\x03\x02\x02\x02\u0301\u0303\x07c\x02\x02\u0302\u0301\x03" +
7460
- "\x02\x02\x02\u0303\u0306\x03\x02\x02\x02\u0304\u0302\x03\x02\x02\x02\u0304" +
7461
- "\u0305\x03\x02\x02\x02\u0305\u0307\x03\x02\x02\x02\u0306\u0304\x03\x02" +
7462
- "\x02\x02\u0307\u0308\x05\x8EH\x02\u0308\u0309\x05\x0E\b\x02\u0309\u030A" +
7463
- "\x05@!\x02\u030A\x91\x03\x02\x02\x02\u030B\u031E\x05\x96L\x02\u030C\u031E" +
7464
- "\x05p9\x02\u030D\u031E\x05\x94K\x02\u030E\u031E\x05t;\x02\u030F\u031E" +
7465
- "\x05\xA6T\x02\u0310\u031E\x05\xB8]\x02\u0311\u031E\x05\xA2R\x02\u0312" +
7466
- "\u031E\x05\xA4S\x02\u0313\u031E\x05\xB2Z\x02\u0314\u031E\x05\xAEX\x02" +
7467
- "\u0315\u031E\x05\xA8U\x02\u0316\u031E\x05\x88E\x02\u0317\u031E\x05\x8A" +
7468
- "F\x02\u0318\u031E\x05\x9CO\x02\u0319\u031E\x05\xBA^\x02\u031A\u031E\x05" +
7469
- "\xBC_\x02\u031B\u031E\x05\xBE`\x02\u031C\u031E\x05(\x15\x02\u031D\u030B" +
7470
- "\x03\x02\x02\x02\u031D\u030C\x03\x02\x02\x02\u031D\u030D\x03\x02\x02\x02" +
7471
- "\u031D\u030E\x03\x02\x02\x02\u031D\u030F\x03\x02\x02\x02\u031D\u0310\x03" +
7472
- "\x02\x02\x02\u031D\u0311\x03\x02\x02\x02\u031D\u0312\x03\x02\x02\x02\u031D" +
7326
+ "\u01AE\x03";
7327
+ MalloyParser._serializedATNSegment1 = "\x02\x02\x02\u01AE\u01B4\x03\x02\x02\x02\u01AF\u01B1\x058\x1D\x02\u01B0" +
7328
+ "\u01B2\x050\x19\x02\u01B1\u01B0\x03\x02\x02\x02\u01B1\u01B2\x03\x02\x02" +
7329
+ "\x02\u01B2\u01B4\x03\x02\x02\x02\u01B3\u01A9\x03\x02\x02\x02\u01B3\u01AF" +
7330
+ "\x03\x02\x02\x02\u01B47\x03\x02\x02\x02\u01B5\u01B7\x07f\x02\x02\u01B6" +
7331
+ "\u01B5\x03\x02\x02\x02\u01B6\u01B7\x03\x02\x02\x02\u01B7\u01B8\x03\x02" +
7332
+ "\x02\x02\u01B8\u01BE\x05\xD6l\x02\u01B9\u01BA\x05:\x1E\x02\u01BA\u01BB" +
7333
+ "\t\x03\x02\x02\u01BB\u01BC\x05\xD6l\x02\u01BC\u01BE\x03\x02\x02\x02\u01BD" +
7334
+ "\u01B6\x03\x02\x02\x02\u01BD\u01B9\x03\x02\x02\x02\u01BE9\x03\x02\x02" +
7335
+ "\x02\u01BF\u01C1\x05<\x1F\x02\u01C0\u01C2\x052\x1A\x02\u01C1\u01C0\x03" +
7336
+ "\x02\x02\x02\u01C1\u01C2\x03\x02\x02\x02\u01C2;\x03\x02\x02\x02\u01C3" +
7337
+ "\u01D1\x05Z.\x02\u01C4\u01D1\x05F$\x02\u01C5\u01C6\x078\x02\x02\u01C6" +
7338
+ "\u01C7\x07h\x02\x02\u01C7\u01C8\x054\x1B\x02\u01C8\u01C9\x07i\x02\x02" +
7339
+ "\u01C9\u01D1\x03\x02\x02\x02\u01CA\u01CB\x079\x02\x02\u01CB\u01CC\x07" +
7340
+ "h\x02\x02\u01CC\u01CD\x05\xFC\x7F\x02\u01CD\u01CE\x07i\x02\x02\u01CE\u01D1" +
7341
+ "\x03\x02\x02\x02\u01CF\u01D1\x05> \x02\u01D0\u01C3\x03\x02\x02\x02\u01D0" +
7342
+ "\u01C4\x03\x02\x02\x02\u01D0\u01C5\x03\x02\x02\x02\u01D0\u01CA\x03\x02" +
7343
+ "\x02\x02\u01D0\u01CF\x03\x02\x02\x02\u01D1=\x03\x02\x02\x02\u01D2\u01D3" +
7344
+ "\x05H%\x02\u01D3\u01D4\x07s\x02\x02\u01D4\u01D5\x07Q\x02\x02\u01D5\u01D8" +
7345
+ "\x07h\x02\x02\u01D6\u01D9\x05\x18\r\x02\u01D7\u01D9\x05\xCAf\x02\u01D8" +
7346
+ "\u01D6\x03\x02\x02\x02\u01D8\u01D7\x03\x02\x02\x02\u01D9\u01DA\x03\x02" +
7347
+ "\x02\x02\u01DA\u01DB\x07i\x02\x02\u01DB?\x03\x02\x02\x02\u01DC\u01E0\x05" +
7348
+ "B\"\x02\u01DD\u01DF\x05D#\x02\u01DE\u01DD\x03\x02\x02\x02\u01DF\u01E2" +
7349
+ "\x03\x02\x02\x02\u01E0\u01DE\x03\x02\x02\x02\u01E0\u01E1\x03\x02\x02\x02" +
7350
+ "\u01E1A\x03\x02\x02\x02\u01E2\u01E0\x03\x02\x02\x02\u01E3\u01E5\x07f\x02" +
7351
+ "\x02\u01E4\u01E3\x03\x02\x02\x02\u01E4\u01E5\x03\x02\x02\x02\u01E5\u01E6" +
7352
+ "\x03\x02\x02\x02\u01E6\u01EC\x05J&\x02\u01E7\u01E9\x05N(\x02\u01E8\u01EA" +
7353
+ "\x050\x19\x02\u01E9\u01E8\x03\x02\x02\x02\u01E9\u01EA\x03\x02\x02\x02" +
7354
+ "\u01EA\u01EC\x03\x02\x02\x02\u01EB\u01E4\x03\x02\x02\x02\u01EB\u01E7\x03" +
7355
+ "\x02\x02\x02\u01ECC\x03\x02\x02\x02\u01ED\u01EE\x07f\x02\x02\u01EE\u01EF" +
7356
+ "\x05J&\x02\u01EFE\x03\x02\x02\x02\u01F0\u01F1\x07R\x02\x02\u01F1\u01F2" +
7357
+ "\x07h\x02\x02\u01F2\u01F3\x05\xD4k\x02\u01F3\u01F4\x07i\x02\x02\u01F4" +
7358
+ "\u01FD\x03\x02\x02\x02\u01F5\u01F6\x05H%\x02\u01F6\u01F7\x07s\x02\x02" +
7359
+ "\u01F7\u01F8\x07R\x02\x02\u01F8\u01F9\x07h\x02\x02\u01F9\u01FA\x05\xD2" +
7360
+ "j\x02\u01FA\u01FB\x07i\x02\x02\u01FB\u01FD\x03\x02\x02\x02\u01FC\u01F0" +
7361
+ "\x03\x02\x02\x02\u01FC\u01F5\x03\x02\x02\x02\u01FDG\x03\x02\x02\x02\u01FE" +
7362
+ "\u01FF\x05\xD6l\x02\u01FFI\x03\x02\x02\x02\u0200\u020B\x05L\'\x02\u0201" +
7363
+ "\u0206\x07l\x02\x02\u0202\u0205\x05\x92J\x02\u0203\u0205\x07\x80\x02\x02" +
7364
+ "\u0204\u0202\x03\x02\x02\x02\u0204\u0203\x03\x02\x02\x02\u0205\u0208\x03" +
7365
+ "\x02\x02\x02\u0206\u0204\x03\x02\x02\x02\u0206\u0207\x03\x02\x02\x02\u0207" +
7366
+ "\u0209\x03\x02\x02\x02\u0208\u0206\x03\x02\x02\x02\u0209\u020B\x07m\x02" +
7367
+ "\x02\u020A\u0200\x03\x02\x02\x02\u020A\u0201\x03\x02\x02\x02\u020BK\x03" +
7368
+ "\x02\x02\x02\u020C\u020D\x07l\x02\x02\u020D\u020E\x07\x85\x02\x02\u020E" +
7369
+ "\u020F\x05\xDEp\x02\u020F\u0210\x07m\x02\x02\u0210M\x03\x02\x02\x02\u0211" +
7370
+ "\u0212\x05\xD6l\x02\u0212O\x03\x02\x02\x02\u0213\u0214\x05\xD6l\x02\u0214" +
7371
+ "Q\x03\x02\x02\x02\u0215\u021C\x05T+\x02\u0216\u0218\x07r\x02\x02\u0217" +
7372
+ "\u0216\x03\x02\x02\x02\u0217\u0218\x03\x02\x02\x02\u0218\u0219\x03\x02" +
7373
+ "\x02\x02\u0219\u021B\x05T+\x02\u021A\u0217\x03\x02\x02\x02\u021B\u021E" +
7374
+ "\x03\x02\x02\x02\u021C\u021A\x03\x02\x02\x02\u021C\u021D\x03\x02\x02\x02" +
7375
+ "\u021D\u0220\x03\x02\x02\x02\u021E\u021C\x03\x02\x02\x02\u021F\u0221\x07" +
7376
+ "r\x02\x02\u0220\u021F\x03\x02\x02\x02\u0220\u0221\x03\x02\x02\x02\u0221" +
7377
+ "S\x03\x02\x02\x02\u0222\u0223\x05\f\x07\x02\u0223\u0224\x05X-\x02\u0224" +
7378
+ "\u0225\x05\x0E\b\x02\u0225\u0226\x05V,\x02\u0226U\x03\x02\x02\x02\u0227" +
7379
+ "\u022C\x05:\x1E\x02\u0228\u0229\x054\x1B\x02\u0229\u022A\x052\x1A\x02" +
7380
+ "\u022A\u022C\x03\x02\x02\x02\u022B\u0227\x03\x02\x02\x02\u022B\u0228\x03" +
7381
+ "\x02\x02\x02\u022CW\x03\x02\x02\x02\u022D\u022E\x05\xD6l\x02\u022EY\x03" +
7382
+ "\x02\x02\x02\u022F\u0230\x05\xD6l\x02\u0230[\x03\x02\x02\x02\u0231\u0236" +
7383
+ "\x07l\x02\x02\u0232\u0235\x05^0\x02\u0233\u0235\x07\x80\x02\x02\u0234" +
7384
+ "\u0232\x03\x02\x02\x02\u0234\u0233\x03\x02\x02\x02\u0235\u0238\x03\x02" +
7385
+ "\x02\x02\u0236\u0234\x03\x02\x02\x02\u0236\u0237\x03\x02\x02\x02\u0237" +
7386
+ "\u0239\x03\x02\x02\x02\u0238\u0236\x03\x02\x02\x02\u0239\u023C\x07m\x02" +
7387
+ "\x02\u023A\u023C\x05L\'\x02\u023B\u0231\x03\x02\x02\x02\u023B\u023A\x03" +
7388
+ "\x02\x02\x02\u023C]\x03\x02\x02\x02\u023D\u0254\x05b2\x02\u023E\u0254" +
7389
+ "\x05`1\x02\u023F\u0254\x05p9\x02\u0240\u0254\x05r:\x02\u0241\u0254\x05" +
7390
+ "\x88E\x02\u0242\u0243\x07\x16\x02\x02\u0243\u0254\x05\xF8}\x02\u0244\u0245" +
7391
+ "\x07\x19\x02\x02\u0245\u0254\x05d3\x02\u0246\u0247\t\x04\x02\x02\u0247" +
7392
+ "\u0254\x05\xE8u\x02\u0248\u0249\x05\f\x07\x02\u0249\u024A\t\x05\x02\x02" +
7393
+ "\u024A\u024B\x05\x8CG\x02\u024B\u0254\x03\x02\x02\x02\u024C\u0254\x05" +
7394
+ "\xBC_\x02\u024D\u024F\x07d\x02\x02\u024E\u024D\x03\x02\x02\x02\u024F\u0250" +
7395
+ "\x03\x02\x02\x02\u0250\u024E\x03\x02\x02\x02\u0250\u0251\x03\x02\x02\x02" +
7396
+ "\u0251\u0254\x03\x02\x02\x02\u0252\u0254\x05(\x15\x02\u0253\u023D\x03" +
7397
+ "\x02\x02\x02\u0253\u023E\x03\x02\x02\x02\u0253\u023F\x03\x02\x02\x02\u0253" +
7398
+ "\u0240\x03\x02\x02\x02\u0253\u0241\x03\x02\x02\x02\u0253\u0242\x03\x02" +
7399
+ "\x02\x02\u0253\u0244\x03\x02\x02\x02\u0253\u0246\x03\x02\x02\x02\u0253" +
7400
+ "\u0248\x03\x02\x02\x02\u0253\u024C\x03\x02\x02\x02\u0253\u024E\x03\x02" +
7401
+ "\x02\x02\u0253\u0252\x03\x02\x02\x02\u0254_\x03\x02\x02\x02\u0255\u0256" +
7402
+ "\x05\f\x07\x02\u0256\u0257\x07\x13\x02\x02\u0257\u0258\x05h5\x02\u0258" +
7403
+ "a\x03\x02\x02\x02\u0259\u025A\x05\f\x07\x02\u025A\u025B\x07\t\x02\x02" +
7404
+ "\u025B\u025C\x05h5\x02\u025Cc\x03\x02\x02\x02\u025D\u0264\x05f4\x02\u025E" +
7405
+ "\u0260\x07r\x02\x02\u025F\u025E\x03\x02\x02\x02\u025F\u0260\x03\x02\x02" +
7406
+ "\x02\u0260\u0261\x03\x02\x02\x02\u0261\u0263\x05f4\x02\u0262\u025F\x03" +
7407
+ "\x02\x02\x02\u0263\u0266\x03\x02\x02\x02\u0264\u0262\x03\x02\x02\x02\u0264" +
7408
+ "\u0265\x03\x02\x02\x02\u0265\u0268\x03\x02\x02\x02\u0266\u0264\x03\x02" +
7409
+ "\x02\x02\u0267\u0269\x07r\x02\x02\u0268\u0267\x03\x02\x02\x02\u0268\u0269" +
7410
+ "\x03\x02\x02\x02\u0269e\x03\x02\x02\x02\u026A\u026B\x05\xF8}\x02\u026B" +
7411
+ "\u026C\x05\x0E\b\x02\u026C\u026D\x05\xF8}\x02\u026Dg\x03\x02\x02\x02\u026E" +
7412
+ "\u0275\x05j6\x02\u026F\u0271\x07r\x02\x02\u0270\u026F\x03\x02\x02\x02" +
7413
+ "\u0270\u0271\x03\x02\x02\x02\u0271\u0272\x03\x02\x02\x02\u0272\u0274\x05" +
7414
+ "j6\x02\u0273\u0270\x03\x02\x02\x02\u0274\u0277\x03\x02\x02\x02\u0275\u0273" +
7415
+ "\x03\x02\x02\x02\u0275\u0276\x03\x02\x02\x02\u0276\u0279\x03\x02\x02\x02" +
7416
+ "\u0277\u0275\x03\x02\x02\x02\u0278\u027A\x07r\x02\x02\u0279\u0278\x03" +
7417
+ "\x02\x02\x02\u0279\u027A\x03\x02\x02\x02\u027Ai\x03\x02\x02\x02\u027B" +
7418
+ "\u027C\x05\f\x07\x02\u027C\u027D\x05l7\x02\u027D\u027E\x05\x0E\b\x02\u027E" +
7419
+ "\u027F\x05\xDEp\x02\u027Fk\x03\x02\x02\x02\u0280\u0281\x05\xD6l\x02\u0281" +
7420
+ "m\x03\x02\x02\x02\u0282\u0283\x05\xD6l\x02\u0283o\x03\x02\x02\x02\u0284" +
7421
+ "\u0285\x07\b\x02\x02\u0285\u0286\x05h5\x02\u0286q\x03\x02\x02\x02\u0287" +
7422
+ "\u0288\x05\f\x07\x02\u0288\u0289\x07\x10\x02\x02\u0289\u028A\x05z>\x02" +
7423
+ "\u028A\u0294\x03\x02\x02\x02\u028B\u028C\x05\f\x07\x02\u028C\u028D\x07" +
7424
+ "\x11\x02\x02\u028D\u028E\x05z>\x02\u028E\u0294\x03\x02\x02\x02\u028F\u0290" +
7425
+ "\x05\f\x07\x02\u0290\u0291\x07\x0F\x02\x02\u0291\u0292\x05z>\x02\u0292" +
7426
+ "\u0294\x03\x02\x02\x02\u0293\u0287\x03\x02\x02\x02\u0293\u028B\x03\x02" +
7427
+ "\x02\x02\u0293\u028F\x03\x02\x02\x02\u0294s\x03\x02\x02\x02\u0295\u0296" +
7428
+ "\x07\v\x02\x02\u0296\u0297\x05x=\x02\u0297u\x03\x02\x02\x02\u0298\u029C" +
7429
+ "\x05b2\x02\u0299\u029C\x05`1\x02\u029A\u029C\x05r:\x02\u029B\u0298\x03" +
7430
+ "\x02\x02\x02\u029B\u0299\x03\x02\x02\x02\u029B\u029A\x03\x02\x02\x02\u029C" +
7431
+ "w\x03\x02\x02\x02\u029D\u02A2\x07l\x02\x02\u029E\u02A1\x05v<\x02\u029F" +
7432
+ "\u02A1\x07\x80\x02\x02\u02A0\u029E\x03\x02\x02\x02\u02A0\u029F\x03\x02" +
7433
+ "\x02\x02\u02A1\u02A4\x03\x02\x02\x02\u02A2\u02A0\x03\x02\x02\x02\u02A2" +
7434
+ "\u02A3\x03\x02\x02\x02\u02A3\u02A5\x03\x02\x02\x02\u02A4\u02A2\x03\x02" +
7435
+ "\x02\x02\u02A5\u02A6\x07m\x02\x02\u02A6y\x03\x02\x02\x02\u02A7\u02AE\x05" +
7436
+ "~@\x02\u02A8\u02AA\x07r\x02\x02\u02A9\u02A8\x03\x02\x02\x02\u02A9\u02AA" +
7437
+ "\x03\x02\x02\x02\u02AA\u02AB\x03\x02\x02\x02\u02AB\u02AD\x05~@\x02\u02AC" +
7438
+ "\u02A9\x03\x02\x02\x02\u02AD\u02B0\x03\x02\x02\x02\u02AE\u02AC\x03\x02" +
7439
+ "\x02\x02\u02AE\u02AF\x03\x02\x02\x02\u02AF\u02B2\x03\x02\x02\x02\u02B0" +
7440
+ "\u02AE\x03\x02\x02\x02\u02B1\u02B3\x07r\x02\x02\u02B2\u02B1\x03\x02\x02" +
7441
+ "\x02\u02B2\u02B3\x03\x02\x02\x02\u02B3{\x03\x02\x02\x02\u02B4\u02B5\x05" +
7442
+ "\f\x07\x02\u02B5\u02B6\x07=\x02\x02\u02B6\u02B7\x05\f\x07\x02\u02B7\u02B8" +
7443
+ "\x05V,\x02\u02B8}\x03\x02\x02\x02\u02B9\u02BB\x07d\x02\x02\u02BA\u02B9" +
7444
+ "\x03\x02\x02\x02\u02BB\u02BE\x03\x02\x02\x02\u02BC\u02BA\x03\x02\x02\x02" +
7445
+ "\u02BC\u02BD\x03\x02\x02\x02\u02BD\u02BF\x03\x02\x02\x02\u02BE\u02BC\x03" +
7446
+ "\x02\x02\x02\u02BF\u02C1\x05n8\x02\u02C0\u02C2\x05|?\x02\u02C1\u02C0\x03" +
7447
+ "\x02\x02\x02\u02C1\u02C2\x03\x02\x02\x02\u02C2\u02C3\x03\x02\x02\x02\u02C3" +
7448
+ "\u02C4\x07[\x02\x02\u02C4\u02C5\x05\xDEp\x02\u02C5\u02D5\x03\x02\x02\x02" +
7449
+ "\u02C6\u02C8\x07d\x02\x02\u02C7\u02C6\x03\x02\x02\x02\u02C8\u02CB\x03" +
7450
+ "\x02\x02\x02\u02C9\u02C7\x03\x02\x02\x02\u02C9\u02CA\x03\x02\x02\x02\u02CA" +
7451
+ "\u02CC\x03\x02\x02\x02\u02CB\u02C9\x03\x02\x02\x02\u02CC\u02CE\x05n8\x02" +
7452
+ "\u02CD\u02CF\x05|?\x02\u02CE\u02CD\x03\x02\x02\x02\u02CE\u02CF\x03\x02" +
7453
+ "\x02\x02\u02CF\u02D2\x03\x02\x02\x02\u02D0\u02D1\x07H\x02\x02\u02D1\u02D3" +
7454
+ "\x05\x80A\x02\u02D2\u02D0\x03\x02\x02\x02\u02D2\u02D3\x03\x02\x02\x02" +
7455
+ "\u02D3\u02D5\x03\x02\x02\x02\u02D4\u02BC\x03\x02\x02\x02\u02D4\u02C9\x03" +
7456
+ "\x02\x02\x02\u02D5\x7F\x03\x02\x02\x02\u02D6\u02D7\x05\xDEp\x02\u02D7" +
7457
+ "\x81\x03\x02\x02\x02\u02D8\u02DB\x05\x88E\x02\u02D9\u02DB\x05\x8AF\x02" +
7458
+ "\u02DA\u02D8\x03\x02\x02\x02\u02DA\u02D9\x03\x02\x02\x02\u02DB\x83\x03" +
7459
+ "\x02\x02\x02\u02DC\u02DD\x07\x85\x02\x02\u02DD\u02E0\x05\xDEp\x02\u02DE" +
7460
+ "\u02E0\x05\x88E\x02\u02DF\u02DC\x03\x02\x02\x02\u02DF\u02DE\x03\x02\x02" +
7461
+ "\x02\u02E0\x85\x03\x02\x02\x02\u02E1\u02E6\x05\xDEp\x02\u02E2\u02E3\x07" +
7462
+ "r\x02\x02\u02E3\u02E5\x05\xDEp\x02\u02E4\u02E2\x03\x02\x02\x02\u02E5\u02E8" +
7463
+ "\x03\x02\x02\x02\u02E6\u02E4\x03\x02\x02\x02\u02E6\u02E7\x03\x02\x02\x02" +
7464
+ "\u02E7\u02EA\x03\x02\x02\x02\u02E8\u02E6\x03\x02\x02\x02\u02E9\u02EB\x07" +
7465
+ "r\x02\x02\u02EA\u02E9\x03\x02\x02\x02\u02EA\u02EB\x03\x02\x02\x02\u02EB" +
7466
+ "\x87\x03\x02\x02\x02\u02EC\u02ED\x07 \x02\x02\u02ED\u02EE\x05\x86D\x02" +
7467
+ "\u02EE\x89\x03\x02\x02\x02\u02EF\u02F0\x07\r\x02\x02\u02F0\u02F1\x05\x86" +
7468
+ "D\x02\u02F1\x8B\x03\x02\x02\x02\u02F2\u02F9\x05\x90I\x02\u02F3\u02F5\x07" +
7469
+ "r\x02\x02\u02F4\u02F3\x03\x02\x02\x02\u02F4\u02F5\x03\x02\x02\x02\u02F5" +
7470
+ "\u02F6\x03\x02\x02\x02\u02F6\u02F8\x05\x90I\x02\u02F7\u02F4\x03\x02\x02" +
7471
+ "\x02\u02F8\u02FB\x03\x02\x02\x02\u02F9\u02F7\x03\x02\x02\x02\u02F9\u02FA" +
7472
+ "\x03\x02\x02\x02\u02FA\u02FD\x03\x02\x02\x02\u02FB\u02F9\x03\x02\x02\x02" +
7473
+ "\u02FC\u02FE\x07r\x02\x02\u02FD\u02FC\x03\x02\x02\x02\u02FD\u02FE\x03" +
7474
+ "\x02\x02\x02\u02FE\x8D\x03\x02\x02\x02\u02FF\u0300\x05\xD6l\x02\u0300" +
7475
+ "\x8F\x03\x02\x02\x02\u0301\u0303\x07d\x02\x02\u0302\u0301\x03\x02\x02" +
7476
+ "\x02\u0303\u0306\x03\x02\x02\x02\u0304\u0302\x03\x02\x02\x02\u0304\u0305" +
7477
+ "\x03\x02\x02\x02\u0305\u0307\x03\x02\x02\x02\u0306\u0304\x03\x02\x02\x02" +
7478
+ "\u0307\u0308\x05\x8EH\x02\u0308\u0309\x05\x0E\b\x02\u0309\u030A\x05@!" +
7479
+ "\x02\u030A\x91\x03\x02\x02\x02\u030B\u031E\x05\x96L\x02\u030C\u031E\x05" +
7480
+ "p9\x02\u030D\u031E\x05\x94K\x02\u030E\u031E\x05t;\x02\u030F\u031E\x05" +
7481
+ "\xA6T\x02\u0310\u031E\x05\xB8]\x02\u0311\u031E\x05\xA2R\x02\u0312\u031E" +
7482
+ "\x05\xA4S\x02\u0313\u031E\x05\xB2Z\x02\u0314\u031E\x05\xAEX\x02\u0315" +
7483
+ "\u031E\x05\xA8U\x02\u0316\u031E\x05\x88E\x02\u0317\u031E\x05\x8AF\x02" +
7484
+ "\u0318\u031E\x05\x9CO\x02\u0319\u031E\x05\xBA^\x02\u031A\u031E\x05\xBC" +
7485
+ "_\x02\u031B\u031E\x05\xBE`\x02\u031C\u031E\x05(\x15\x02\u031D\u030B\x03" +
7486
+ "\x02\x02\x02\u031D\u030C\x03\x02\x02\x02\u031D\u030D\x03\x02\x02\x02\u031D" +
7487
+ "\u030E\x03\x02\x02\x02\u031D\u030F\x03\x02\x02\x02\u031D\u0310\x03\x02" +
7488
+ "\x02\x02\u031D\u0311\x03\x02\x02\x02\u031D\u0312\x03\x02\x02\x02\u031D" +
7473
7489
  "\u0313\x03\x02\x02\x02\u031D\u0314\x03\x02\x02\x02\u031D\u0315\x03\x02" +
7474
7490
  "\x02\x02\u031D\u0316\x03\x02\x02\x02\u031D\u0317\x03\x02\x02\x02\u031D" +
7475
7491
  "\u0318\x03\x02\x02\x02\u031D\u0319\x03\x02\x02\x02\u031D\u031A\x03\x02" +
7476
7492
  "\x02\x02\u031D\u031B\x03\x02\x02\x02\u031D\u031C\x03\x02\x02\x02\u031E" +
7477
7493
  "\x93\x03\x02\x02\x02\u031F\u0320\x05r:\x02\u0320\x95\x03\x02\x02\x02\u0321" +
7478
7494
  "\u0322\x05\f\x07\x02\u0322\u0323\x07\f\x02\x02\u0323\u0324\x05\x98M\x02" +
7479
- "\u0324\x97\x03\x02\x02\x02\u0325\u032C\x05\x9AN\x02\u0326\u0328\x07q\x02" +
7495
+ "\u0324\x97\x03\x02\x02\x02\u0325\u032C\x05\x9AN\x02\u0326\u0328\x07r\x02" +
7480
7496
  "\x02\u0327\u0326\x03\x02\x02\x02\u0327\u0328\x03\x02\x02\x02\u0328\u0329" +
7481
7497
  "\x03\x02\x02\x02\u0329\u032B\x05\x9AN\x02\u032A\u0327\x03\x02\x02\x02" +
7482
7498
  "\u032B\u032E\x03\x02\x02\x02\u032C\u032A\x03\x02\x02\x02\u032C\u032D\x03" +
7483
7499
  "\x02\x02\x02\u032D\u0330\x03\x02\x02\x02\u032E\u032C\x03\x02\x02\x02\u032F" +
7484
- "\u0331\x07q\x02\x02\u0330\u032F\x03\x02\x02\x02\u0330\u0331\x03\x02\x02" +
7500
+ "\u0331\x07r\x02\x02\u0330\u032F\x03\x02\x02\x02\u0330\u0331\x03\x02\x02" +
7485
7501
  "\x02\u0331\x99\x03\x02\x02\x02\u0332\u0335\x05\xEEx\x02\u0333\u0335\x05" +
7486
7502
  "j6\x02\u0334\u0332\x03\x02\x02\x02\u0334\u0333\x03\x02\x02\x02\u0335\x9B" +
7487
7503
  "\x03\x02\x02\x02\u0336\u0337\x05\f\x07\x02\u0337\u0338\x07\x14\x02\x02" +
7488
7504
  "\u0338\u0339\x05\x9EP\x02\u0339\x9D\x03\x02\x02\x02\u033A\u0341\x05\xA0" +
7489
- "Q\x02\u033B\u033D\x07q\x02\x02\u033C\u033B\x03\x02\x02\x02\u033C\u033D" +
7505
+ "Q\x02\u033B\u033D\x07r\x02\x02\u033C\u033B\x03\x02\x02\x02\u033C\u033D" +
7490
7506
  "\x03\x02\x02\x02\u033D\u033E\x03\x02\x02\x02\u033E\u0340\x05\xA0Q\x02" +
7491
7507
  "\u033F\u033C\x03\x02\x02\x02\u0340\u0343\x03\x02\x02\x02\u0341\u033F\x03" +
7492
7508
  "\x02\x02\x02\u0341\u0342\x03\x02\x02\x02\u0342\u0345\x03\x02\x02\x02\u0343" +
7493
- "\u0341\x03\x02\x02\x02\u0344\u0346\x07q\x02\x02\u0345\u0344\x03\x02\x02" +
7509
+ "\u0341\x03\x02\x02\x02\u0344\u0346\x07r\x02\x02\u0345\u0344\x03\x02\x02" +
7494
7510
  "\x02\u0345\u0346\x03\x02\x02\x02\u0346\x9F\x03\x02\x02\x02\u0347\u0348" +
7495
7511
  "\x05\f\x07\x02\u0348\u034A\x05P)\x02\u0349\u034B\x050\x19\x02\u034A\u0349" +
7496
7512
  "\x03\x02\x02\x02\u034A\u034B\x03\x02\x02\x02\u034B\u0352\x03\x02\x02\x02" +
@@ -7500,188 +7516,189 @@ MalloyParser._serializedATNSegment1 = "\x02\x02\x02\u01AF\u01B1\x058\x1D\x02\u01
7500
7516
  "\u0354\x05\f\x07\x02\u0354\u0355\x07\x04\x02\x02\u0355\u0356\x05\x98M" +
7501
7517
  "\x02\u0356\xA3\x03\x02\x02\x02\u0357\u0358\x05\f\x07\x02\u0358\u0359\x07" +
7502
7518
  "\x05\x02\x02\u0359\u035A\x05\x98M\x02\u035A\xA5\x03\x02\x02\x02\u035B" +
7503
- "\u035C\x05\f\x07\x02\u035C\u035D\t\x05\x02\x02\u035D\u035E\x05\xEAv\x02" +
7519
+ "\u035C\x05\f\x07\x02\u035C\u035D\t\x06\x02\x02\u035D\u035E\x05\xEAv\x02" +
7504
7520
  "\u035E\xA7\x03\x02\x02\x02\u035F\u0360\x07\x15\x02\x02\u0360\u0361\x05" +
7505
7521
  "\xAAV\x02\u0361\xA9\x03\x02\x02\x02\u0362\u0369\x05\xACW\x02\u0363\u0365" +
7506
- "\x07q\x02\x02\u0364\u0363\x03\x02\x02\x02\u0364\u0365\x03\x02\x02\x02" +
7522
+ "\x07r\x02\x02\u0364\u0363\x03\x02\x02\x02\u0364\u0365\x03\x02\x02\x02" +
7507
7523
  "\u0365\u0366\x03\x02\x02\x02\u0366\u0368\x05\xACW\x02\u0367\u0364\x03" +
7508
7524
  "\x02\x02\x02\u0368\u036B\x03\x02\x02\x02\u0369\u0367\x03\x02\x02\x02\u0369" +
7509
7525
  "\u036A\x03\x02\x02\x02\u036A\u036D\x03\x02\x02\x02\u036B\u0369\x03\x02" +
7510
- "\x02\x02\u036C\u036E\x07q\x02\x02\u036D\u036C\x03\x02\x02\x02\u036D\u036E" +
7511
- "\x03\x02\x02\x02\u036E\xAB\x03\x02\x02\x02\u036F\u0372\x07\x8F\x02\x02" +
7526
+ "\x02\x02\u036C\u036E\x07r\x02\x02\u036D\u036C\x03\x02\x02\x02\u036D\u036E" +
7527
+ "\x03\x02\x02\x02\u036E\xAB\x03\x02\x02\x02\u036F\u0372\x07\x90\x02\x02" +
7512
7528
  "\u0370\u0372\x05\xF8}\x02\u0371\u036F\x03\x02\x02\x02\u0371\u0370\x03" +
7513
- "\x02\x02\x02\u0372\u0374\x03\x02\x02\x02\u0373\u0375\t\x06\x02\x02\u0374" +
7529
+ "\x02\x02\x02\u0372\u0374\x03\x02\x02\x02\u0373\u0375\t\x07\x02\x02\u0374" +
7514
7530
  "\u0373\x03\x02\x02\x02\u0374\u0375\x03\x02\x02\x02\u0375\xAD\x03\x02\x02" +
7515
- "\x02\u0376\u0377\x07\x12\x02\x02\u0377\u0378\x07\x8F\x02\x02\u0378\xAF" +
7516
- "\x03\x02\x02\x02\u0379\u037A\x07(\x02\x02\u037A\u037E\x05\xF8}\x02\u037B" +
7517
- "\u037C\x07(\x02\x02\u037C\u037E\x05\xDEp\x02\u037D\u0379\x03\x02\x02\x02" +
7531
+ "\x02\u0376\u0377\x07\x12\x02\x02\u0377\u0378\x07\x90\x02\x02\u0378\xAF" +
7532
+ "\x03\x02\x02\x02\u0379\u037A\x07)\x02\x02\u037A\u037E\x05\xF8}\x02\u037B" +
7533
+ "\u037C\x07)\x02\x02\u037C\u037E\x05\xDEp\x02\u037D\u0379\x03\x02\x02\x02" +
7518
7534
  "\u037D\u037B\x03\x02\x02\x02\u037E\xB1\x03\x02\x02\x02\u037F\u0380\x07" +
7519
- "\x1F\x02\x02\u0380\u0382\x07\x8F\x02\x02\u0381\u0383\x05\xB0Y\x02\u0382" +
7535
+ "\x1F\x02\x02\u0380\u0382\x07\x90\x02\x02\u0381\u0383\x05\xB0Y\x02\u0382" +
7520
7536
  "\u0381\x03\x02\x02\x02\u0382\u0383\x03\x02\x02\x02\u0383\xB3\x03\x02\x02" +
7521
- "\x02\u0384\u0387\x05\xF4{\x02\u0385\u0386\x07r\x02\x02\u0386\u0388\x07" +
7522
- "{\x02\x02\u0387\u0385\x03\x02\x02\x02\u0387\u0388\x03\x02\x02\x02\u0388" +
7523
- "\u038B\x03\x02\x02\x02\u0389\u038B\x07{\x02\x02\u038A\u0384\x03\x02\x02" +
7537
+ "\x02\u0384\u0387\x05\xF4{\x02\u0385\u0386\x07s\x02\x02\u0386\u0388\x07" +
7538
+ "|\x02\x02\u0387\u0385\x03\x02\x02\x02\u0387\u0388\x03\x02\x02\x02\u0388" +
7539
+ "\u038B\x03\x02\x02\x02\u0389\u038B\x07|\x02\x02\u038A\u0384\x03\x02\x02" +
7524
7540
  "\x02\u038A\u0389\x03\x02\x02\x02\u038B\xB5\x03\x02\x02\x02\u038C\u0393" +
7525
- "\x05\xB4[\x02\u038D\u038F\x07q\x02\x02\u038E\u038D\x03\x02\x02\x02\u038E" +
7541
+ "\x05\xB4[\x02\u038D\u038F\x07r\x02\x02\u038E\u038D\x03\x02\x02\x02\u038E" +
7526
7542
  "\u038F\x03\x02\x02\x02\u038F\u0390\x03\x02\x02\x02\u0390\u0392\x05\xB4" +
7527
7543
  "[\x02\u0391\u038E\x03\x02\x02\x02\u0392\u0395\x03\x02\x02\x02\u0393\u0391" +
7528
7544
  "\x03\x02\x02\x02\u0393\u0394\x03\x02\x02\x02\u0394\xB7\x03\x02\x02\x02" +
7529
7545
  "\u0395\u0393\x03\x02\x02\x02\u0396\u0397\x07\x0E\x02\x02\u0397\u039A\x05" +
7530
- "\xB6\\\x02\u0398\u0399\x07(\x02\x02\u0399\u039B\x05\xF8}\x02\u039A\u0398" +
7546
+ "\xB6\\\x02\u0398\u0399\x07)\x02\x02\u0399\u039B\x05\xF8}\x02\u039A\u0398" +
7531
7547
  "\x03\x02\x02\x02\u039A\u039B\x03\x02\x02\x02\u039B\xB9\x03\x02\x02\x02" +
7532
7548
  "\u039C\u039D\x07\x1B\x02\x02\u039D\u039E\x05\xC0a\x02\u039E\xBB\x03\x02" +
7533
- "\x02\x02\u039F\u03A0\x07!\x02\x02\u03A0\u03A1\x05\xC8e\x02\u03A1\xBD\x03" +
7534
- "\x02\x02\x02\u03A2\u03A3\x07c\x02\x02\u03A3\xBF\x03\x02\x02\x02\u03A4" +
7535
- "\u03A5\t\x07\x02\x02\u03A5\xC1\x03\x02\x02\x02\u03A6\u03A7\t\b\x02\x02" +
7536
- "\u03A7\xC3\x03\x02\x02\x02\u03A8\u03A9\t\t\x02\x02\u03A9\xC5\x03\x02\x02" +
7537
- "\x02\u03AA\u03AB\t\n\x02\x02\u03AB\xC7\x03\x02\x02\x02\u03AC\u03AF\x05" +
7538
- "\xCAf\x02\u03AD\u03AF\x05\x18\r\x02\u03AE\u03AC\x03\x02\x02\x02\u03AE" +
7539
- "\u03AD\x03\x02\x02\x02\u03AF\xC9\x03\x02\x02\x02\u03B0\u03B1\t\v\x02\x02" +
7540
- "\u03B1\xCB\x03\x02\x02\x02\u03B2\u03B3\t\f\x02\x02\u03B3\xCD\x03\x02\x02" +
7541
- "\x02\u03B4\u03BC\x05\xC8e\x02\u03B5\u03BC\x05\xCCg\x02\u03B6\u03BC\x05" +
7542
- "\xD0i\x02\u03B7\u03BC\x07E\x02\x02\u03B8\u03BC\t\r\x02\x02\u03B9\u03BC" +
7543
- "\x07^\x02\x02\u03BA\u03BC\x07D\x02\x02\u03BB\u03B4\x03\x02\x02\x02\u03BB" +
7544
- "\u03B5\x03\x02\x02\x02\u03BB\u03B6\x03\x02\x02\x02\u03BB\u03B7\x03\x02" +
7545
- "\x02\x02\u03BB\u03B8\x03\x02\x02\x02\u03BB\u03B9\x03\x02\x02\x02\u03BB" +
7546
- "\u03BA\x03\x02\x02\x02\u03BC\xCF\x03\x02\x02\x02\u03BD\u03C5\x07\x85\x02" +
7547
- "\x02\u03BE\u03C5\x07\x86\x02\x02\u03BF\u03C5\x07\x87\x02\x02\u03C0\u03C5" +
7548
- "\x07\x8A\x02\x02\u03C1\u03C5\x07\x89\x02\x02\u03C2\u03C5\x07\x88\x02\x02" +
7549
- "\u03C3\u03C5\x07\x8B\x02\x02\u03C4\u03BD\x03\x02\x02\x02\u03C4\u03BE\x03" +
7550
- "\x02\x02\x02\u03C4\u03BF\x03\x02\x02\x02\u03C4\u03C0\x03\x02\x02\x02\u03C4" +
7549
+ "\x02\x02\u039F\u03A0\x07\"\x02\x02\u03A0\u03A1\x05\xC8e\x02\u03A1\xBD" +
7550
+ "\x03\x02\x02\x02\u03A2\u03A3\x07d\x02\x02\u03A3\xBF\x03\x02\x02\x02\u03A4" +
7551
+ "\u03A5\t\b\x02\x02\u03A5\xC1\x03\x02\x02\x02\u03A6\u03A7\t\t\x02\x02\u03A7" +
7552
+ "\xC3\x03\x02\x02\x02\u03A8\u03A9\t\n\x02\x02\u03A9\xC5\x03\x02\x02\x02" +
7553
+ "\u03AA\u03AB\t\v\x02\x02\u03AB\xC7\x03\x02\x02\x02\u03AC\u03AF\x05\xCA" +
7554
+ "f\x02\u03AD\u03AF\x05\x18\r\x02\u03AE\u03AC\x03\x02\x02\x02\u03AE\u03AD" +
7555
+ "\x03\x02\x02\x02\u03AF\xC9\x03\x02\x02\x02\u03B0\u03B1\t\f\x02\x02\u03B1" +
7556
+ "\xCB\x03\x02\x02\x02\u03B2\u03B3\t\r\x02\x02\u03B3\xCD\x03\x02\x02\x02" +
7557
+ "\u03B4\u03BC\x05\xC8e\x02\u03B5\u03BC\x05\xCCg\x02\u03B6\u03BC\x05\xD0" +
7558
+ "i\x02\u03B7\u03BC\x07F\x02\x02\u03B8\u03BC\t\x0E\x02\x02\u03B9\u03BC\x07" +
7559
+ "_\x02\x02\u03BA\u03BC\x07E\x02\x02\u03BB\u03B4\x03\x02\x02\x02\u03BB\u03B5" +
7560
+ "\x03\x02\x02\x02\u03BB\u03B6\x03\x02\x02\x02\u03BB\u03B7\x03\x02\x02\x02" +
7561
+ "\u03BB\u03B8\x03\x02\x02\x02\u03BB\u03B9\x03\x02\x02\x02\u03BB\u03BA\x03" +
7562
+ "\x02\x02\x02\u03BC\xCF\x03\x02\x02\x02\u03BD\u03C5\x07\x86\x02\x02\u03BE" +
7563
+ "\u03C5\x07\x87\x02\x02\u03BF\u03C5\x07\x88\x02\x02\u03C0\u03C5\x07\x8B" +
7564
+ "\x02\x02\u03C1\u03C5\x07\x8A\x02\x02\u03C2\u03C5\x07\x89\x02\x02\u03C3" +
7565
+ "\u03C5\x07\x8C\x02\x02\u03C4\u03BD\x03\x02\x02\x02\u03C4\u03BE\x03\x02" +
7566
+ "\x02\x02\u03C4\u03BF\x03\x02\x02\x02\u03C4\u03C0\x03\x02\x02\x02\u03C4" +
7551
7567
  "\u03C1\x03\x02\x02\x02\u03C4\u03C2\x03\x02\x02\x02\u03C4\u03C3\x03\x02" +
7552
7568
  "\x02\x02\u03C5\xD1\x03\x02\x02\x02\u03C6\u03C7\x05\xC8e\x02\u03C7\xD3" +
7553
7569
  "\x03\x02\x02\x02\u03C8\u03C9\x05\xC8e\x02\u03C9\xD5\x03\x02\x02\x02\u03CA" +
7554
- "\u03CB\t\x0E\x02\x02\u03CB\xD7\x03\x02\x02\x02\u03CC\u03CD\t\x0F\x02\x02" +
7555
- "\u03CD\xD9\x03\x02\x02\x02\u03CE\u03CF\t\x10\x02\x02\u03CF\xDB\x03\x02" +
7570
+ "\u03CB\t\x0F\x02\x02\u03CB\xD7\x03\x02\x02\x02\u03CC\u03CD\t\x10\x02\x02" +
7571
+ "\u03CD\xD9\x03\x02\x02\x02\u03CE\u03CF\t\x11\x02\x02\u03CF\xDB\x03\x02" +
7556
7572
  "\x02\x02\u03D0\u03D3\x05\xC4c\x02\u03D1\u03D3\x05\xC8e\x02\u03D2\u03D0" +
7557
7573
  "\x03\x02\x02\x02\u03D2\u03D1\x03\x02\x02\x02\u03D3\xDD\x03\x02\x02\x02" +
7558
7574
  "\u03D4\u03D5\bp\x01\x02\u03D5\u0428\x05\xF4{\x02\u03D6\u0428\x05\xCEh" +
7559
- "\x02\u03D7\u03D8\x07z\x02\x02\u03D8\u0428\x05\xDEp\x18\u03D9\u03DA\x07" +
7560
- "C\x02\x02\u03DA\u0428\x05\xDEp\x0F\u03DB\u03DC\x07*\x02\x02\u03DC\u03DD" +
7561
- "\x07g\x02\x02\u03DD\u03DE\x05\xDEp\x02\u03DE\u03DF\x07$\x02\x02\u03DF" +
7562
- "\u03E0\x05\xDCo\x02\u03E0\u03E1\x07h\x02\x02\u03E1\u0428\x03\x02\x02\x02" +
7563
- "\u03E2\u03E3\x07,\x02\x02\u03E3\u03E4\x07g\x02\x02\u03E4\u03E5\x070\x02" +
7564
- "\x02\u03E5\u03E6\x05\xDEp\x02\u03E6\u03E7\x07h\x02\x02\u03E7\u0428\x03" +
7565
- "\x02\x02\x02\u03E8\u03E9\x07N\x02\x02\u03E9\u03EB\x07r\x02\x02\u03EA\u03E8" +
7575
+ "\x02\u03D7\u03D8\x07{\x02\x02\u03D8\u0428\x05\xDEp\x18\u03D9\u03DA\x07" +
7576
+ "D\x02\x02\u03DA\u0428\x05\xDEp\x0F\u03DB\u03DC\x07+\x02\x02\u03DC\u03DD" +
7577
+ "\x07h\x02\x02\u03DD\u03DE\x05\xDEp\x02\u03DE\u03DF\x07%\x02\x02\u03DF" +
7578
+ "\u03E0\x05\xDCo\x02\u03E0\u03E1\x07i\x02\x02\u03E1\u0428\x03\x02\x02\x02" +
7579
+ "\u03E2\u03E3\x07-\x02\x02\u03E3\u03E4\x07h\x02\x02\u03E4\u03E5\x071\x02" +
7580
+ "\x02\u03E5\u03E6\x05\xDEp\x02\u03E6\u03E7\x07i\x02\x02\u03E7\u0428\x03" +
7581
+ "\x02\x02\x02\u03E8\u03E9\x07O\x02\x02\u03E9\u03EB\x07s\x02\x02\u03EA\u03E8" +
7566
7582
  "\x03\x02\x02\x02\u03EA\u03EB\x03\x02\x02\x02\u03EB\u03EC\x03\x02\x02\x02" +
7567
- "\u03EC\u03ED\x05\xC2b\x02\u03ED\u03F0\x07g\x02\x02\u03EE\u03F1\x05\xDE" +
7568
- "p\x02\u03EF\u03F1\x07{\x02\x02\u03F0\u03EE\x03\x02\x02\x02\u03F0\u03EF" +
7583
+ "\u03EC\u03ED\x05\xC2b\x02\u03ED\u03F0\x07h\x02\x02\u03EE\u03F1\x05\xDE" +
7584
+ "p\x02\u03EF\u03F1\x07|\x02\x02\u03F0\u03EE\x03\x02\x02\x02\u03F0\u03EF" +
7569
7585
  "\x03\x02\x02\x02\u03F0\u03F1\x03\x02\x02\x02\u03F1\u03F2\x03\x02\x02\x02" +
7570
- "\u03F2\u03F3\x07h\x02\x02\u03F3\u0428\x03\x02\x02\x02\u03F4\u03F5\x05" +
7571
- "\xF4{\x02\u03F5\u03F6\x07r\x02\x02\u03F6\u03F7\x05\xC2b\x02\u03F7\u03F9" +
7572
- "\x07g\x02\x02\u03F8\u03FA\x05\xDEp\x02\u03F9\u03F8\x03\x02\x02\x02\u03F9" +
7573
- "\u03FA\x03\x02\x02\x02\u03FA\u03FB\x03\x02\x02\x02\u03FB\u03FC\x07h\x02" +
7574
- "\x02\u03FC\u0428\x03\x02\x02\x02\u03FD\u03FE\x07g\x02\x02\u03FE\u03FF" +
7575
- "\x05\xE0q\x02\u03FF\u0400\x07h\x02\x02\u0400\u0428\x03\x02\x02\x02\u0401" +
7576
- "\u0402\x05\xF4{\x02\u0402\u0403\x07r\x02\x02\u0403\u0404\x05\xD6l\x02" +
7577
- "\u0404\u0406\x07g\x02\x02\u0405\u0407\x05\xE6t\x02\u0406\u0405\x03\x02" +
7586
+ "\u03F2\u03F3\x07i\x02\x02\u03F3\u0428\x03\x02\x02\x02\u03F4\u03F5\x05" +
7587
+ "\xF4{\x02\u03F5\u03F6\x07s\x02\x02\u03F6\u03F7\x05\xC2b\x02\u03F7\u03F9" +
7588
+ "\x07h\x02\x02\u03F8\u03FA\x05\xDEp\x02\u03F9\u03F8\x03\x02\x02\x02\u03F9" +
7589
+ "\u03FA\x03\x02\x02\x02\u03FA\u03FB\x03\x02\x02\x02\u03FB\u03FC\x07i\x02" +
7590
+ "\x02\u03FC\u0428\x03\x02\x02\x02\u03FD\u03FE\x07h\x02\x02\u03FE\u03FF" +
7591
+ "\x05\xE0q\x02\u03FF\u0400\x07i\x02\x02\u0400\u0428\x03\x02\x02\x02\u0401" +
7592
+ "\u0402\x05\xF4{\x02\u0402\u0403\x07s\x02\x02\u0403\u0404\x05\xD6l\x02" +
7593
+ "\u0404\u0406\x07h\x02\x02\u0405\u0407\x05\xE6t\x02\u0406\u0405\x03\x02" +
7578
7594
  "\x02\x02\u0406\u0407\x03\x02\x02\x02\u0407\u0408\x03\x02\x02\x02\u0408" +
7579
- "\u0409\x07h\x02\x02\u0409\u0428\x03\x02\x02\x02\u040A\u040F\x05\xD6l\x02" +
7580
- "\u040B\u040D\x07o\x02\x02\u040C\u040E\x05\xC4c\x02\u040D\u040C\x03\x02" +
7595
+ "\u0409\x07i\x02\x02\u0409\u0428\x03\x02\x02\x02\u040A\u040F\x05\xD6l\x02" +
7596
+ "\u040B\u040D\x07p\x02\x02\u040C\u040E\x05\xC4c\x02\u040D\u040C\x03\x02" +
7581
7597
  "\x02\x02\u040D\u040E\x03\x02\x02\x02\u040E\u0410\x03\x02\x02\x02\u040F" +
7582
7598
  "\u040B\x03\x02\x02\x02\u040F\u0410\x03\x02\x02\x02\u0410\u0413\x03\x02" +
7583
7599
  "\x02\x02\u0411\u0413\x05\xD8m\x02\u0412\u040A\x03\x02\x02\x02\u0412\u0411" +
7584
- "\x03\x02\x02\x02\u0413\u0414\x03\x02\x02\x02\u0414\u0416\x07g\x02\x02" +
7600
+ "\x03\x02\x02\x02\u0413\u0414\x03\x02\x02\x02\u0414\u0416\x07h\x02\x02" +
7585
7601
  "\u0415\u0417\x05\xE6t\x02\u0416\u0415\x03\x02\x02\x02\u0416\u0417\x03" +
7586
- "\x02\x02\x02\u0417\u0418\x03\x02\x02\x02\u0418\u0419\x07h\x02\x02\u0419" +
7602
+ "\x02\x02\x02\u0417\u0418\x03\x02\x02\x02\u0418\u0419\x07i\x02\x02\u0419" +
7587
7603
  "\u0428\x03\x02\x02\x02\u041A\u0428\x05\xE2r\x02\u041B\u041C\x05\xDAn\x02" +
7588
- "\u041C\u041D\x07g\x02\x02\u041D\u0422\x05\xDEp\x02\u041E\u041F\x07q\x02" +
7604
+ "\u041C\u041D\x07h\x02\x02\u041D\u0422\x05\xDEp\x02\u041E\u041F\x07r\x02" +
7589
7605
  "\x02\u041F\u0421\x05\xF8}\x02\u0420\u041E\x03\x02\x02\x02\u0421\u0424" +
7590
7606
  "\x03\x02\x02\x02\u0422\u0420\x03\x02\x02\x02\u0422\u0423\x03\x02\x02\x02" +
7591
7607
  "\u0423\u0425\x03\x02\x02\x02\u0424\u0422\x03\x02\x02\x02\u0425\u0426\x07" +
7592
- "h\x02\x02\u0426\u0428\x03\x02\x02\x02\u0427\u03D4\x03\x02\x02\x02\u0427" +
7608
+ "i\x02\x02\u0426\u0428\x03\x02\x02\x02\u0427\u03D4\x03\x02\x02\x02\u0427" +
7593
7609
  "\u03D6\x03\x02\x02\x02\u0427\u03D7\x03\x02\x02\x02\u0427\u03D9\x03\x02" +
7594
7610
  "\x02\x02\u0427\u03DB\x03\x02\x02\x02\u0427\u03E2\x03\x02\x02\x02\u0427" +
7595
7611
  "\u03EA\x03\x02\x02\x02\u0427\u03F4\x03\x02\x02\x02\u0427\u03FD\x03\x02" +
7596
7612
  "\x02\x02\u0427\u0401\x03\x02\x02\x02\u0427\u0412\x03\x02\x02\x02\u0427" +
7597
7613
  "\u041A\x03\x02\x02\x02\u0427\u041B\x03\x02\x02\x02\u0428\u045F\x03\x02" +
7598
- "\x02\x02\u0429\u042A\f\x17\x02\x02\u042A\u042B\t\x11\x02\x02\u042B\u045E" +
7599
- "\x05\xDEp\x18\u042C\u042D\f\x16\x02\x02\u042D\u042E\t\x12\x02\x02\u042E" +
7600
- "\u045E\x05\xDEp\x17\u042F\u0430\f\x15\x02\x02\u0430\u0431\x07U\x02\x02" +
7614
+ "\x02\x02\u0429\u042A\f\x17\x02\x02\u042A\u042B\t\x12\x02\x02\u042B\u045E" +
7615
+ "\x05\xDEp\x18\u042C\u042D\f\x16\x02\x02\u042D\u042E\t\x13\x02\x02\u042E" +
7616
+ "\u045E\x05\xDEp\x17\u042F\u0430\f\x15\x02\x02\u0430\u0431\x07V\x02\x02" +
7601
7617
  "\u0431\u045E\x05\xDEp\x16\u0432\u0433\f\x11\x02\x02\u0433\u0434\x05\xC6" +
7602
7618
  "d\x02\u0434\u0435\x05\xDEp\x12\u0435\u045E\x03\x02\x02\x02\u0436\u0437" +
7603
- "\f\x0E\x02\x02\u0437\u0438\x07#\x02\x02\u0438\u045E\x05\xDEp\x0F\u0439" +
7604
- "\u043A\f\r\x02\x02\u043A\u043B\x07H\x02\x02\u043B\u045E\x05\xDEp\x0E\u043C" +
7605
- "\u043D\f\f\x02\x02\u043D\u043E\x07\x83\x02\x02\u043E\u045E\x05\xDEp\r" +
7606
- "\u043F\u0440\f\x1E\x02\x02\u0440\u0441\x07k\x02\x02\u0441\u0442\x05\x84" +
7607
- "C\x02\u0442\u0443\x07l\x02\x02\u0443\u045E\x03\x02\x02\x02\u0444\u0445" +
7619
+ "\f\x0E\x02\x02\u0437\u0438\x07$\x02\x02\u0438\u045E\x05\xDEp\x0F\u0439" +
7620
+ "\u043A\f\r\x02\x02\u043A\u043B\x07I\x02\x02\u043B\u045E\x05\xDEp\x0E\u043C" +
7621
+ "\u043D\f\f\x02\x02\u043D\u043E\x07\x84\x02\x02\u043E\u045E\x05\xDEp\r" +
7622
+ "\u043F\u0440\f\x1E\x02\x02\u0440\u0441\x07l\x02\x02\u0441\u0442\x05\x84" +
7623
+ "C\x02\u0442\u0443\x07m\x02\x02\u0443\u045E\x03\x02\x02\x02\u0444\u0445" +
7608
7624
  "\f\x1C\x02\x02\u0445\u045E\x05\xD8m\x02\u0446\u0447\f\x1B\x02\x02\u0447" +
7609
- "\u0448\x07r\x02\x02\u0448\u045E\x05\xD8m\x02\u0449\u044A\f\x1A\x02\x02" +
7610
- "\u044A\u044B\x07m\x02\x02\u044B\u045E\x05\xDCo\x02\u044C\u044D\f\x19\x02" +
7611
- "\x02\u044D\u044E\x07n\x02\x02\u044E\u045E\x05\xDCo\x02\u044F\u0450\f\x14" +
7612
- "\x02\x02\u0450\u0451\x076\x02\x02\u0451\u0452\x05\xDEp\x02\u0452\u0453" +
7625
+ "\u0448\x07s\x02\x02\u0448\u045E\x05\xD8m\x02\u0449\u044A\f\x1A\x02\x02" +
7626
+ "\u044A\u044B\x07n\x02\x02\u044B\u045E\x05\xDCo\x02\u044C\u044D\f\x19\x02" +
7627
+ "\x02\u044D\u044E\x07o\x02\x02\u044E\u045E\x05\xDCo\x02\u044F\u0450\f\x14" +
7628
+ "\x02\x02\u0450\u0451\x077\x02\x02\u0451\u0452\x05\xDEp\x02\u0452\u0453" +
7613
7629
  "\x05\xD8m\x02\u0453\u045E\x03\x02\x02\x02\u0454\u0455\f\x13\x02\x02\u0455" +
7614
- "\u0456\x07d\x02\x02\u0456\u045E\x05\xE0q\x02\u0457\u0458\f\x12\x02\x02" +
7615
- "\u0458\u0459\x07~\x02\x02\u0459\u045E\x05\xE0q\x02\u045A\u045B\f\x10\x02" +
7616
- "\x02\u045B\u045C\x07\x84\x02\x02\u045C\u045E\x05\xE0q\x02\u045D\u0429" +
7630
+ "\u0456\x07e\x02\x02\u0456\u045E\x05\xE0q\x02\u0457\u0458\f\x12\x02\x02" +
7631
+ "\u0458\u0459\x07\x7F\x02\x02\u0459\u045E\x05\xE0q\x02\u045A\u045B\f\x10" +
7632
+ "\x02\x02\u045B\u045C\x07\x85\x02\x02\u045C\u045E\x05\xE0q\x02\u045D\u0429" +
7617
7633
  "\x03\x02\x02\x02\u045D\u042C\x03\x02\x02\x02\u045D\u042F\x03\x02\x02\x02" +
7618
7634
  "\u045D\u0432\x03\x02\x02\x02\u045D\u0436\x03\x02\x02\x02\u045D\u0439\x03" +
7619
- "\x02\x02\x02\u045D\u043C\x03\x02\x02";
7620
- MalloyParser._serializedATNSegment2 = "\x02\u045D\u043F\x03\x02\x02\x02\u045D\u0444\x03\x02\x02\x02\u045D\u0446" +
7621
- "\x03\x02\x02\x02\u045D\u0449\x03\x02\x02\x02\u045D\u044C\x03\x02\x02\x02" +
7622
- "\u045D\u044F\x03\x02\x02\x02\u045D\u0454\x03\x02\x02\x02\u045D\u0457\x03" +
7623
- "\x02\x02\x02\u045D\u045A\x03\x02\x02\x02\u045E\u0461\x03\x02\x02\x02\u045F" +
7624
- "\u045D\x03\x02\x02\x02\u045F\u0460\x03\x02\x02\x02\u0460\xDF\x03\x02\x02" +
7625
- "\x02\u0461\u045F\x03\x02\x02\x02\u0462\u0464\x07g\x02\x02\u0463\u0465" +
7626
- "\x05\xC6d\x02\u0464\u0463\x03\x02\x02\x02\u0464\u0465\x03\x02\x02\x02" +
7627
- "\u0465\u0466\x03\x02\x02\x02\u0466\u0467\x05\xDEp\x02\u0467\u0468\x07" +
7628
- "h\x02\x02\u0468\u046E\x03\x02\x02\x02\u0469\u046B\x05\xC6d\x02\u046A\u0469" +
7629
- "\x03\x02\x02\x02\u046A\u046B\x03\x02\x02\x02\u046B\u046C\x03\x02\x02\x02" +
7630
- "\u046C\u046E\x05\xDEp\x02\u046D\u0462\x03\x02\x02\x02\u046D\u046A\x03" +
7631
- "\x02\x02\x02\u046E\xE1\x03\x02\x02\x02\u046F\u0471\x05\xE4s\x02\u0470" +
7632
- "\u046F\x03\x02\x02\x02\u0471\u0472\x03\x02\x02\x02\u0472\u0470\x03\x02" +
7633
- "\x02\x02\u0472\u0473\x03\x02\x02\x02\u0473\u0476\x03\x02\x02\x02\u0474" +
7634
- "\u0475\x071\x02\x02\u0475\u0477\x05\xDEp\x02\u0476\u0474\x03\x02\x02\x02" +
7635
- "\u0476\u0477\x03\x02\x02\x02\u0477\xE3\x03\x02\x02\x02\u0478\u047A\x07" +
7636
- "I\x02\x02\u0479\u047B\x05\xDEp\x02\u047A\u0479\x03\x02\x02\x02\u047A\u047B" +
7637
- "\x03\x02\x02\x02\u047B\u047C\x03\x02\x02\x02\u047C\u047D\x07Y\x02\x02" +
7638
- "\u047D\u047E\x05\xE0q\x02\u047E\xE5\x03\x02\x02\x02\u047F\u0484\x05\xDE" +
7639
- "p\x02\u0480\u0481\x07q\x02\x02\u0481\u0483\x05\xDEp\x02\u0482\u0480\x03" +
7640
- "\x02\x02\x02\u0483\u0486\x03\x02\x02\x02\u0484\u0482\x03\x02\x02\x02\u0484" +
7641
- "\u0485\x03\x02\x02\x02\u0485\u0488\x03\x02\x02\x02\u0486\u0484\x03\x02" +
7642
- "\x02\x02\u0487\u0489\x07q\x02\x02\u0488\u0487\x03\x02\x02\x02\u0488\u0489" +
7643
- "\x03\x02\x02\x02\u0489\xE7\x03\x02\x02\x02\u048A\u0491\x05\xF8}\x02\u048B" +
7644
- "\u048D\x07q\x02\x02\u048C\u048B\x03\x02\x02\x02\u048C\u048D\x03\x02\x02" +
7645
- "\x02\u048D\u048E\x03\x02\x02\x02\u048E\u0490\x05\xF8}\x02\u048F\u048C" +
7646
- "\x03\x02\x02\x02\u0490\u0493\x03\x02\x02\x02\u0491\u048F\x03\x02\x02\x02" +
7647
- "\u0491\u0492\x03\x02\x02\x02\u0492\xE9\x03\x02\x02\x02\u0493\u0491\x03" +
7648
- "\x02\x02\x02\u0494\u049B\x05\xF2z\x02\u0495\u0497\x07q\x02\x02\u0496\u0495" +
7649
- "\x03\x02\x02\x02\u0496\u0497\x03\x02\x02\x02\u0497\u0498\x03\x02\x02\x02" +
7650
- "\u0498\u049A\x05\xF2z\x02\u0499\u0496\x03\x02\x02\x02\u049A\u049D\x03" +
7651
- "\x02\x02\x02\u049B\u0499\x03\x02\x02\x02\u049B\u049C\x03\x02\x02\x02\u049C" +
7652
- "\u049F\x03\x02\x02\x02\u049D\u049B\x03\x02\x02\x02\u049E\u04A0\x07q\x02" +
7653
- "\x02\u049F\u049E\x03\x02\x02\x02\u049F\u04A0\x03\x02\x02\x02\u04A0\xEB" +
7654
- "\x03\x02\x02\x02\u04A1\u04A2\x05\xF4{\x02\u04A2\u04A3\x07r\x02\x02\u04A3" +
7655
- "\u04A5\x03\x02\x02\x02\u04A4\u04A1\x03\x02\x02\x02\u04A4\u04A5\x03\x02" +
7656
- "\x02\x02\u04A5\u04A6\x03\x02\x02\x02\u04A6\u04A7\x07{\x02\x02\u04A7\xED" +
7657
- "\x03\x02\x02\x02\u04A8\u04A9\x05\f\x07\x02\u04A9\u04AB\x05\xF4{\x02\u04AA" +
7658
- "\u04AC\x05\xF0y\x02\u04AB\u04AA\x03\x02\x02\x02\u04AB\u04AC\x03\x02\x02" +
7659
- "\x02\u04AC\xEF\x03\x02\x02\x02\u04AD\u04AE\x07r\x02\x02\u04AE\u04B5\x05" +
7660
- "\xD8m\x02\u04AF\u04B0\x07r\x02\x02\u04B0\u04B1\x05\xC2b\x02\u04B1\u04B2" +
7661
- "\x07g\x02\x02\u04B2\u04B3\x07h\x02\x02\u04B3\u04B5\x03\x02\x02\x02\u04B4" +
7662
- "\u04AD\x03\x02\x02\x02\u04B4\u04AF\x03\x02\x02\x02\u04B5\xF1\x03\x02\x02" +
7663
- "\x02\u04B6\u04BA\x05\xEEx\x02\u04B7\u04BA\x05\xECw\x02\u04B8\u04BA\x05" +
7664
- "j6\x02\u04B9\u04B6\x03\x02\x02\x02\u04B9\u04B7\x03\x02\x02\x02\u04B9\u04B8" +
7665
- "\x03\x02\x02\x02\u04BA\xF3\x03\x02\x02\x02\u04BB\u04C0\x05\xF8}\x02\u04BC" +
7666
- "\u04BD\x07r\x02\x02\u04BD\u04BF\x05\xF8}\x02\u04BE\u04BC\x03\x02\x02\x02" +
7667
- "\u04BF\u04C2\x03\x02\x02\x02\u04C0\u04BE\x03\x02\x02\x02\u04C0\u04C1\x03" +
7668
- "\x02\x02\x02\u04C1\xF5\x03\x02\x02\x02\u04C2\u04C0\x03\x02\x02\x02\u04C3" +
7669
- "\u04C4\x05\xD6l\x02\u04C4\xF7\x03\x02\x02\x02\u04C5\u04C6\x05\xD6l\x02" +
7670
- "\u04C6\xF9\x03\x02\x02\x02\u04C7\u04C8\x05\xDEp\x02\u04C8\u04C9\x07\x02" +
7671
- "\x02\x03\u04C9\xFB\x03\x02\x02\x02\u04CA\u04CB\x05\xD6l\x02\u04CB\xFD" +
7672
- "\x03\x02\x02\x02\u04CC\u04CD\x05\xD6l\x02\u04CD\xFF\x03\x02\x02\x02\u04CE" +
7673
- "\u04CF\x05\xC8e\x02\u04CF\u0101\x03\x02\x02\x02\x85\u0104\u0106\u0112" +
7674
- "\u011D\u0125\u013A\u0142\u0148\u0153\u015D\u0166\u016D\u0172\u0177\u017D" +
7675
- "\u0182\u0186\u0190\u0195\u0198\u019D\u01A3\u01A7\u01AD\u01B1\u01B3\u01B6" +
7676
- "\u01BD\u01C1\u01D0\u01D8\u01E0\u01E4\u01E9\u01EB\u01FC\u0204\u0206\u020A" +
7677
- "\u0217\u021C\u0220\u022B\u0234\u0236\u023B\u0250\u0253\u025F\u0264\u0268" +
7678
- "\u0270\u0275\u0279\u0293\u029B\u02A0\u02A2\u02A9\u02AE\u02B2\u02BC\u02C1" +
7679
- "\u02C9\u02CE\u02D2\u02D4\u02DA\u02DF\u02E6\u02EA\u02F4\u02F9\u02FD\u0304" +
7680
- "\u031D\u0327\u032C\u0330\u0334\u033C\u0341\u0345\u034A\u0351\u0364\u0369" +
7681
- "\u036D\u0371\u0374\u037D\u0382\u0387\u038A\u038E\u0393\u039A\u03AE\u03BB" +
7682
- "\u03C4\u03D2\u03EA\u03F0\u03F9\u0406\u040D\u040F\u0412\u0416\u0422\u0427" +
7683
- "\u045D\u045F\u0464\u046A\u046D\u0472\u0476\u047A\u0484\u0488\u048C\u0491" +
7684
- "\u0496\u049B\u049F\u04A4\u04AB\u04B4\u04B9\u04C0";
7635
+ "\x02\x02";
7636
+ MalloyParser._serializedATNSegment2 = "\x02\u045D\u043C\x03\x02\x02\x02\u045D\u043F\x03\x02\x02\x02\u045D\u0444" +
7637
+ "\x03\x02\x02\x02\u045D\u0446\x03\x02\x02\x02\u045D\u0449\x03\x02\x02\x02" +
7638
+ "\u045D\u044C\x03\x02\x02\x02\u045D\u044F\x03\x02\x02\x02\u045D\u0454\x03" +
7639
+ "\x02\x02\x02\u045D\u0457\x03\x02\x02\x02\u045D\u045A\x03\x02\x02\x02\u045E" +
7640
+ "\u0461\x03\x02\x02\x02\u045F\u045D\x03\x02\x02\x02\u045F\u0460\x03\x02" +
7641
+ "\x02\x02\u0460\xDF\x03\x02\x02\x02\u0461\u045F\x03\x02\x02\x02\u0462\u0464" +
7642
+ "\x07h\x02\x02\u0463\u0465\x05\xC6d\x02\u0464\u0463\x03\x02\x02\x02\u0464" +
7643
+ "\u0465\x03\x02\x02\x02\u0465\u0466\x03\x02\x02\x02\u0466\u0467\x05\xDE" +
7644
+ "p\x02\u0467\u0468\x07i\x02\x02\u0468\u046E\x03\x02\x02\x02\u0469\u046B" +
7645
+ "\x05\xC6d\x02\u046A\u0469\x03\x02\x02\x02\u046A\u046B\x03\x02\x02\x02" +
7646
+ "\u046B\u046C\x03\x02\x02\x02\u046C\u046E\x05\xDEp\x02\u046D\u0462\x03" +
7647
+ "\x02\x02\x02\u046D\u046A\x03\x02\x02\x02\u046E\xE1\x03\x02\x02\x02\u046F" +
7648
+ "\u0471\x05\xE4s\x02\u0470\u046F\x03\x02\x02\x02\u0471\u0472\x03\x02\x02" +
7649
+ "\x02\u0472\u0470\x03\x02\x02\x02\u0472\u0473\x03\x02\x02\x02\u0473\u0476" +
7650
+ "\x03\x02\x02\x02\u0474\u0475\x072\x02\x02\u0475\u0477\x05\xDEp\x02\u0476" +
7651
+ "\u0474\x03\x02\x02\x02\u0476\u0477\x03\x02\x02\x02\u0477\xE3\x03\x02\x02" +
7652
+ "\x02\u0478\u047A\x07J\x02\x02\u0479\u047B\x05\xDEp\x02\u047A\u0479\x03" +
7653
+ "\x02\x02\x02\u047A\u047B\x03\x02\x02\x02\u047B\u047C\x03\x02\x02\x02\u047C" +
7654
+ "\u047D\x07Z\x02\x02\u047D\u047E\x05\xE0q\x02\u047E\xE5\x03\x02\x02\x02" +
7655
+ "\u047F\u0484\x05\xDEp\x02\u0480\u0481\x07r\x02\x02\u0481\u0483\x05\xDE" +
7656
+ "p\x02\u0482\u0480\x03\x02\x02\x02\u0483\u0486\x03\x02\x02\x02\u0484\u0482" +
7657
+ "\x03\x02\x02\x02\u0484\u0485\x03\x02\x02\x02\u0485\u0488\x03\x02\x02\x02" +
7658
+ "\u0486\u0484\x03\x02\x02\x02\u0487\u0489\x07r\x02\x02\u0488\u0487\x03" +
7659
+ "\x02\x02\x02\u0488\u0489\x03\x02\x02\x02\u0489\xE7\x03\x02\x02\x02\u048A" +
7660
+ "\u0491\x05\xF8}\x02\u048B\u048D\x07r\x02\x02\u048C\u048B\x03\x02\x02\x02" +
7661
+ "\u048C\u048D\x03\x02\x02\x02\u048D\u048E\x03\x02\x02\x02\u048E\u0490\x05" +
7662
+ "\xF8}\x02\u048F\u048C\x03\x02\x02\x02\u0490\u0493\x03\x02\x02\x02\u0491" +
7663
+ "\u048F\x03\x02\x02\x02\u0491\u0492\x03\x02\x02\x02\u0492\xE9\x03\x02\x02" +
7664
+ "\x02\u0493\u0491\x03\x02\x02\x02\u0494\u049B\x05\xF2z\x02\u0495\u0497" +
7665
+ "\x07r\x02\x02\u0496\u0495\x03\x02\x02\x02\u0496\u0497\x03\x02\x02\x02" +
7666
+ "\u0497\u0498\x03\x02\x02\x02\u0498\u049A\x05\xF2z\x02\u0499\u0496\x03" +
7667
+ "\x02\x02\x02\u049A\u049D\x03\x02\x02\x02\u049B\u0499\x03\x02\x02\x02\u049B" +
7668
+ "\u049C\x03\x02\x02\x02\u049C\u049F\x03\x02\x02\x02\u049D\u049B\x03\x02" +
7669
+ "\x02\x02\u049E\u04A0\x07r\x02\x02\u049F\u049E\x03\x02\x02\x02\u049F\u04A0" +
7670
+ "\x03\x02\x02\x02\u04A0\xEB\x03\x02\x02\x02\u04A1\u04A2\x05\xF4{\x02\u04A2" +
7671
+ "\u04A3\x07s\x02\x02\u04A3\u04A5\x03\x02\x02\x02\u04A4\u04A1\x03\x02\x02" +
7672
+ "\x02\u04A4\u04A5\x03\x02\x02\x02\u04A5\u04A6\x03\x02\x02\x02\u04A6\u04A7" +
7673
+ "\x07|\x02\x02\u04A7\xED\x03\x02\x02\x02\u04A8\u04A9\x05\f\x07\x02\u04A9" +
7674
+ "\u04AB\x05\xF4{\x02\u04AA\u04AC\x05\xF0y\x02\u04AB\u04AA\x03\x02\x02\x02" +
7675
+ "\u04AB\u04AC\x03\x02\x02\x02\u04AC\xEF\x03\x02\x02\x02\u04AD\u04AE\x07" +
7676
+ "s\x02\x02\u04AE\u04B5\x05\xD8m\x02\u04AF\u04B0\x07s\x02\x02\u04B0\u04B1" +
7677
+ "\x05\xC2b\x02\u04B1\u04B2\x07h\x02\x02\u04B2\u04B3\x07i\x02\x02\u04B3" +
7678
+ "\u04B5\x03\x02\x02\x02\u04B4\u04AD\x03\x02\x02\x02\u04B4\u04AF\x03\x02" +
7679
+ "\x02\x02\u04B5\xF1\x03\x02\x02\x02\u04B6\u04BA\x05\xEEx\x02\u04B7\u04BA" +
7680
+ "\x05\xECw\x02\u04B8\u04BA\x05j6\x02\u04B9\u04B6\x03\x02\x02\x02\u04B9" +
7681
+ "\u04B7\x03\x02\x02\x02\u04B9\u04B8\x03\x02\x02\x02\u04BA\xF3\x03\x02\x02" +
7682
+ "\x02\u04BB\u04C0\x05\xF8}\x02\u04BC\u04BD\x07s\x02\x02\u04BD\u04BF\x05" +
7683
+ "\xF8}\x02\u04BE\u04BC\x03\x02\x02\x02\u04BF\u04C2\x03\x02\x02\x02\u04C0" +
7684
+ "\u04BE\x03\x02\x02\x02\u04C0\u04C1\x03\x02\x02\x02\u04C1\xF5\x03\x02\x02" +
7685
+ "\x02\u04C2\u04C0\x03\x02\x02\x02\u04C3\u04C4\x05\xD6l\x02\u04C4\xF7\x03" +
7686
+ "\x02\x02\x02\u04C5\u04C6\x05\xD6l\x02\u04C6\xF9\x03\x02\x02\x02\u04C7" +
7687
+ "\u04C8\x05\xDEp\x02\u04C8\u04C9\x07\x02\x02\x03\u04C9\xFB\x03\x02\x02" +
7688
+ "\x02\u04CA\u04CB\x05\xD6l\x02\u04CB\xFD\x03\x02\x02\x02\u04CC\u04CD\x05" +
7689
+ "\xD6l\x02\u04CD\xFF\x03\x02\x02\x02\u04CE\u04CF\x05\xC8e\x02\u04CF\u0101" +
7690
+ "\x03\x02\x02\x02\x85\u0104\u0106\u0112\u011D\u0125\u013A\u0142\u0148\u0153" +
7691
+ "\u015D\u0166\u016D\u0172\u0177\u017D\u0182\u0186\u0190\u0195\u0198\u019D" +
7692
+ "\u01A3\u01A7\u01AD\u01B1\u01B3\u01B6\u01BD\u01C1\u01D0\u01D8\u01E0\u01E4" +
7693
+ "\u01E9\u01EB\u01FC\u0204\u0206\u020A\u0217\u021C\u0220\u022B\u0234\u0236" +
7694
+ "\u023B\u0250\u0253\u025F\u0264\u0268\u0270\u0275\u0279\u0293\u029B\u02A0" +
7695
+ "\u02A2\u02A9\u02AE\u02B2\u02BC\u02C1\u02C9\u02CE\u02D2\u02D4\u02DA\u02DF" +
7696
+ "\u02E6\u02EA\u02F4\u02F9\u02FD\u0304\u031D\u0327\u032C\u0330\u0334\u033C" +
7697
+ "\u0341\u0345\u034A\u0351\u0364\u0369\u036D\u0371\u0374\u037D\u0382\u0387" +
7698
+ "\u038A\u038E\u0393\u039A\u03AE\u03BB\u03C4\u03D2\u03EA\u03F0\u03F9\u0406" +
7699
+ "\u040D\u040F\u0412\u0416\u0422\u0427\u045D\u045F\u0464\u046A\u046D\u0472" +
7700
+ "\u0476\u047A\u0484\u0488\u048C\u0491\u0496\u049B\u049F\u04A4\u04AB\u04B4" +
7701
+ "\u04B9\u04C0";
7685
7702
  MalloyParser._serializedATN = Utils.join([
7686
7703
  MalloyParser._serializedATNSegment0,
7687
7704
  MalloyParser._serializedATNSegment1,
@@ -10105,10 +10122,11 @@ class DefExploreQueryContext extends ExploreStatementContext {
10105
10122
  tags() {
10106
10123
  return this.getRuleContext(0, TagsContext);
10107
10124
  }
10108
- QUERY() { return this.getToken(MalloyParser.QUERY, 0); }
10109
10125
  subQueryDefList() {
10110
10126
  return this.getRuleContext(0, SubQueryDefListContext);
10111
10127
  }
10128
+ QUERY() { return this.tryGetToken(MalloyParser.QUERY, 0); }
10129
+ VIEW() { return this.tryGetToken(MalloyParser.VIEW, 0); }
10112
10130
  constructor(ctx) {
10113
10131
  super(ctx.parent, ctx.invokingState);
10114
10132
  this.copyFrom(ctx);