diff --git a/extensions/functions_datetime.yaml b/extensions/functions_datetime.yaml
index 754454a9b..ab00e8c9f 100644
--- a/extensions/functions_datetime.yaml
+++ b/extensions/functions_datetime.yaml
@@ -68,17 +68,6 @@ scalar_functions:
Examples: "Pacific/Marquesas", "Etc/GMT+1".
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: component
- options: [ YEAR, ISO_YEAR, US_YEAR, HOUR, MINUTE, SECOND,
- MILLISECOND, MICROSECOND, SUBSECOND, PICOSECOND, UNIX_TIME, TIMEZONE_OFFSET ]
- description: The part of the value to extract.
- - name: x
- value: timestamp_tz
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- return: i64
- args:
- name: component
options: [ YEAR, ISO_YEAR, US_YEAR, HOUR, MINUTE, SECOND,
@@ -90,14 +79,6 @@ scalar_functions:
description: Timezone string from IANA tzdb.
value: string
return: i64
- - args:
- - name: component
- options: [ YEAR, ISO_YEAR, US_YEAR, HOUR, MINUTE, SECOND,
- MILLISECOND, MICROSECOND, SUBSECOND, UNIX_TIME ]
- description: The part of the value to extract.
- - name: x
- value: timestamp
- return: i64
- args:
- name: component
options: [ YEAR, ISO_YEAR, US_YEAR, HOUR, MINUTE, SECOND,
@@ -118,21 +99,7 @@ scalar_functions:
options: [ HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, SUBSECOND ]
description: The part of the value to extract.
- name: x
- value: time
- return: i64
- - args:
- - name: component
- options: [ QUARTER, MONTH, DAY, DAY_OF_YEAR, MONDAY_DAY_OF_WEEK,
- SUNDAY_DAY_OF_WEEK, MONDAY_WEEK, SUNDAY_WEEK, ISO_WEEK, US_WEEK ]
- description: The part of the value to extract.
- - name: indexing
- options: [ ONE, ZERO ]
- description: Start counting from 1 or 0.
- - name: x
- value: timestamp_tz
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
+ value: precision_time
return: i64
- args:
- name: component
@@ -148,17 +115,6 @@ scalar_functions:
description: Timezone string from IANA tzdb.
value: string
return: i64
- - args:
- - name: component
- options: [ QUARTER, MONTH, DAY, DAY_OF_YEAR, MONDAY_DAY_OF_WEEK,
- SUNDAY_DAY_OF_WEEK, MONDAY_WEEK, SUNDAY_WEEK, ISO_WEEK, US_WEEK ]
- description: The part of the value to extract.
- - name: indexing
- options: [ ONE, ZERO ]
- description: Start counting from 1 or 0.
- - name: x
- value: timestamp
- return: i64
- args:
- name: component
options: [ QUARTER, MONTH, DAY, DAY_OF_YEAR, MONDAY_DAY_OF_WEEK,
@@ -193,13 +149,6 @@ scalar_functions:
Examples: "Pacific/Marquesas", "Etc/GMT+1".
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: component
- options: [ IS_LEAP_YEAR ]
- description: The part of the value to extract.
- - name: x
- value: timestamp
- return: boolean
- args:
- name: component
options: [ IS_LEAP_YEAR ]
@@ -207,16 +156,6 @@ scalar_functions:
- name: x
value: precision_timestamp
return: boolean
- - args:
- - name: component
- options: [ IS_LEAP_YEAR, IS_DST ]
- description: The part of the value to extract.
- - name: x
- value: timestamp_tz
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- return: boolean
- args:
- name: component
options: [ IS_LEAP_YEAR, IS_DST ]
@@ -243,27 +182,12 @@ scalar_functions:
Examples: "Pacific/Marquesas", "Etc/GMT+1".
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: x
- value: timestamp
- - name: y
- value: interval_year
- return: timestamp
- args:
- name: x
value: precision_timestamp
- name: y
value: interval_year
return: precision_timestamp
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: interval_year
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- return: timestamp_tz
- args:
- name: x
value: precision_timestamp_tz
@@ -279,24 +203,12 @@ scalar_functions:
- name: y
value: interval_year
return: date
- - args:
- - name: x
- value: timestamp
- - name: y
- value: interval_day
- return: timestamp
- args:
- name: x
value: precision_timestamp
- name: y
value: interval_day
return: precision_timestamp
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: interval_day
- return: timestamp_tz
- args:
- name: x
value: precision_timestamp_tz
@@ -308,7 +220,7 @@ scalar_functions:
value: date
- name: y
value: interval_day
- return: timestamp
+ return: precision_timestamp
-
name: "multiply"
description: Multiply an interval by an integral number.
@@ -386,39 +298,18 @@ scalar_functions:
Examples: "Pacific/Marquesas", "Etc/GMT+1".
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: x
- value: timestamp
- - name: y
- value: interval_year
- return: timestamp
- args:
- name: x
value: precision_timestamp
- name: y
value: interval_year
return: precision_timestamp
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: interval_year
- return: timestamp_tz
- args:
- name: x
value: precision_timestamp_tz
- name: y
value: interval_year
return: precision_timestamp_tz
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: interval_year
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- return: timestamp_tz
- args:
- name: x
value: precision_timestamp_tz
@@ -434,24 +325,12 @@ scalar_functions:
- name: y
value: interval_year
return: date
- - args:
- - name: x
- value: timestamp
- - name: y
- value: interval_day
- return: timestamp
- args:
- name: x
value: precision_timestamp
- name: y
value: interval_day
return: precision_timestamp
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: interval_day
- return: timestamp_tz
- args:
- name: x
value: precision_timestamp_tz
@@ -468,24 +347,12 @@ scalar_functions:
name: "lte"
description: less than or equal to
impls:
- - args:
- - name: x
- value: timestamp
- - name: y
- value: timestamp
- return: boolean
- args:
- name: x
value: precision_timestamp
- name: y
value: precision_timestamp
return: boolean
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: timestamp_tz
- return: boolean
- args:
- name: x
value: precision_timestamp_tz
@@ -514,24 +381,12 @@ scalar_functions:
name: "lt"
description: less than
impls:
- - args:
- - name: x
- value: timestamp
- - name: y
- value: timestamp
- return: boolean
- args:
- name: x
value: precision_timestamp
- name: y
value: precision_timestamp
return: boolean
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: timestamp_tz
- return: boolean
- args:
- name: x
value: precision_timestamp_tz
@@ -560,24 +415,12 @@ scalar_functions:
name: "gte"
description: greater than or equal to
impls:
- - args:
- - name: x
- value: timestamp
- - name: y
- value: timestamp
- return: boolean
- args:
- name: x
value: precision_timestamp
- name: y
value: precision_timestamp
return: boolean
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: timestamp_tz
- return: boolean
- args:
- name: x
value: precision_timestamp_tz
@@ -606,24 +449,12 @@ scalar_functions:
name: "gt"
description: greater than
impls:
- - args:
- - name: x
- value: timestamp
- - name: y
- value: timestamp
- return: boolean
- args:
- name: x
value: precision_timestamp
- name: y
value: precision_timestamp
return: boolean
- - args:
- - name: x
- value: timestamp_tz
- - name: y
- value: timestamp_tz
- return: boolean
- args:
- name: x
value: precision_timestamp_tz
@@ -657,13 +488,6 @@ scalar_functions:
Examples: "Pacific/Marquesas", "Etc/GMT+1".
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: x
- value: timestamp
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- return: timestamp_tz
- args:
- name: x
value: precision_timestamp
@@ -675,9 +499,15 @@ scalar_functions:
- name: x
value: date
- name: timezone
- description: Timezone string from IANA tzdb. Returned timestamp_tz will have time set to 00:00:00.
+ description: >-
+ Timezone string from IANA tzdb. Returned precision_timestamp_tz will have time set to
+ 00:00:00 with 0 subseconds in the given precision (0 <= precision <= 12).
value: string
- return: timestamp_tz
+ - name: precision
+ value: i8
+ return: |-
+ precision = integer_parameter(precision)
+ precision_timestamp_tz
-
name: "local_timestamp"
description: >-
@@ -687,13 +517,6 @@ scalar_functions:
Examples: "Pacific/Marquesas", "Etc/GMT+1".
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: x
- value: timestamp_tz
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- return: timestamp
- args:
- name: x
value: precision_timestamp_tz
@@ -704,7 +527,7 @@ scalar_functions:
-
name: "strptime_time"
description: >-
- Parse string into time using provided format,
+ Parse string into precision time using provided format,
see https://man7.org/linux/man-pages/man3/strptime.3.html for reference.
impls:
- args:
@@ -712,7 +535,11 @@ scalar_functions:
value: string
- name: format
value: string
- return: time
+ - name: precision
+ value: i8
+ return: |-
+ precision = integer_parameter(precision)
+ precision_time
-
name: "strptime_date"
description: >-
@@ -728,7 +555,7 @@ scalar_functions:
-
name: "strptime_timestamp"
description: >-
- Parse string into timestamp using provided format,
+ Parse string into precision timestamp using provided format,
see https://man7.org/linux/man-pages/man3/strptime.3.html for reference.
If timezone is present in timestamp and provided as parameter an error is thrown.
@@ -745,13 +572,21 @@ scalar_functions:
- name: timezone
description: Timezone string from IANA tzdb.
value: string
- return: timestamp_tz
+ - name: precision
+ value: i8
+ return: |-
+ precision = integer_parameter(precision)
+ precision_timestamp_tz
- args:
- name: timestamp_string
value: string
- name: format
value: string
- return: timestamp_tz
+ - name: precision
+ value: i8
+ return: |-
+ precision = integer_parameter(precision)
+ precision_timestamp_tz
-
name: "strftime"
description: >-
@@ -762,27 +597,12 @@ scalar_functions:
Examples: "Pacific/Marquesas", "Etc/GMT+1".
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: x
- value: timestamp
- - name: format
- value: string
- return: string
- args:
- name: x
value: precision_timestamp
- name: format
value: string
return: string
- - args:
- - name: x
- value: timestamp_tz
- - name: format
- value: string
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- return: string
- args:
- name: x
value: precision_timestamp_tz
@@ -800,7 +620,7 @@ scalar_functions:
return: string
- args:
- name: x
- value: time
+ value: precision_time
- name: format
value: string
return: string
@@ -818,18 +638,6 @@ scalar_functions:
Examples: "Pacific/Marquesas", "Etc/GMT+1".
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: x
- value: timestamp
- - name: rounding
- options: [ FLOOR, CEIL, ROUND_TIE_DOWN, ROUND_TIE_UP ]
- - name: unit
- options: [ YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND ]
- - name: multiple
- value: i64
- - name: origin
- value: timestamp
- return: timestamp
- args:
- name: x
value: precision_timestamp
@@ -842,21 +650,6 @@ scalar_functions:
- name: origin
value: precision_timestamp
return: precision_timestamp
- - args:
- - name: x
- value: timestamp_tz
- - name: rounding
- options: [ FLOOR, CEIL, ROUND_TIE_DOWN, ROUND_TIE_UP ]
- - name: unit
- options: [ YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND ]
- - name: multiple
- value: i64
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- - name: origin
- value: timestamp_tz
- return: timestamp_tz
- args:
- name: x
value: precision_timestamp_tz
@@ -886,7 +679,7 @@ scalar_functions:
return: date
- args:
- name: x
- value: time
+ value: precision_time
- name: rounding
options: [ FLOOR, CEIL, ROUND_TIE_DOWN, ROUND_TIE_UP ]
- name: unit
@@ -894,8 +687,8 @@ scalar_functions:
- name: multiple
value: i64
- name: origin
- value: time
- return: time
+ value: precision_time
+ return: precision_time
-
name: "round_calendar"
description: >-
@@ -911,19 +704,6 @@ scalar_functions:
If timezone is invalid an error is thrown.
impls:
- - args:
- - name: x
- value: timestamp
- - name: rounding
- options: [ FLOOR, CEIL, ROUND_TIE_DOWN, ROUND_TIE_UP ]
- - name: unit
- options: [ YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND ]
- - name: origin
- options: [ YEAR, MONTH, MONDAY_WEEK, SUNDAY_WEEK, ISO_WEEK,
- US_WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND ]
- - name: multiple
- value: i64
- return: timestamp
- args:
- name: x
value: precision_timestamp
@@ -937,22 +717,6 @@ scalar_functions:
- name: multiple
value: i64
return: precision_timestamp
- - args:
- - name: x
- value: timestamp_tz
- - name: rounding
- options: [ FLOOR, CEIL, ROUND_TIE_DOWN, ROUND_TIE_UP ]
- - name: unit
- options: [ YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND ]
- - name: origin
- options: [ YEAR, MONTH, MONDAY_WEEK, SUNDAY_WEEK, ISO_WEEK,
- US_WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND ]
- - name: multiple
- value: i64
- - name: timezone
- description: Timezone string from IANA tzdb.
- value: string
- return: timestamp_tz
- args:
- name: x
value: precision_timestamp_tz
@@ -985,7 +749,7 @@ scalar_functions:
return: date
- args:
- name: x
- value: time
+ value: precision_time
- name: rounding
options: [ FLOOR, CEIL, ROUND_TIE_DOWN, ROUND_TIE_UP ]
- name: unit
@@ -995,8 +759,8 @@ scalar_functions:
- name: multiple
value: i64
- name: origin
- value: time
- return: time
+ value: precision_time
+ return: precision_time
aggregate_functions:
- name: "min"
@@ -1011,18 +775,11 @@ aggregate_functions:
return: date?
- args:
- name: x
- value: time
+ value: precision_time
nullability: DECLARED_OUTPUT
decomposable: MANY
- intermediate: time?
- return: time?
- - args:
- - name: x
- value: timestamp
- nullability: DECLARED_OUTPUT
- decomposable: MANY
- intermediate: timestamp?
- return: timestamp?
+ intermediate: precision_time?
+ return: precision_time?
- args:
- name: x
value: precision_timestamp
@@ -1030,13 +787,6 @@ aggregate_functions:
decomposable: MANY
intermediate: precision_timestamp?
return: precision_timestamp?
- - args:
- - name: x
- value: timestamp_tz
- nullability: DECLARED_OUTPUT
- decomposable: MANY
- intermediate: timestamp_tz?
- return: timestamp_tz?
- args:
- name: x
value: precision_timestamp_tz
@@ -1070,18 +820,11 @@ aggregate_functions:
return: date?
- args:
- name: x
- value: time
+ value: precision_time
nullability: DECLARED_OUTPUT
decomposable: MANY
- intermediate: time?
- return: time?
- - args:
- - name: x
- value: timestamp
- nullability: DECLARED_OUTPUT
- decomposable: MANY
- intermediate: timestamp?
- return: timestamp?
+ intermediate: precision_time?
+ return: precision_time?
- args:
- name: x
value: precision_timestamp
@@ -1089,13 +832,6 @@ aggregate_functions:
decomposable: MANY
intermediate: precision_timestamp?
return: precision_timestamp?
- - args:
- - name: x
- value: timestamp_tz
- nullability: DECLARED_OUTPUT
- decomposable: MANY
- intermediate: timestamp_tz?
- return: timestamp_tz?
- args:
- name: x
value: precision_timestamp_tz
diff --git a/grammar/FuncTestCaseParser.g4 b/grammar/FuncTestCaseParser.g4
index 1139d4166..308a9a981 100644
--- a/grammar/FuncTestCaseParser.g4
+++ b/grammar/FuncTestCaseParser.g4
@@ -56,9 +56,6 @@ argument
| stringArg
| decimalArg
| dateArg
- | timeArg
- | timestampArg
- | timestampTzArg
| intervalYearArg
| intervalDayArg
| intervalCompoundArg
@@ -161,18 +158,6 @@ dateArg
: DateLiteral DoubleColon dateType
;
-timeArg
- : TimeLiteral DoubleColon timeType
- ;
-
-timestampArg
- : TimestampLiteral DoubleColon timestampType
- ;
-
-timestampTzArg
- : TimestampTzLiteral DoubleColon timestampTZType
- ;
-
intervalYearArg
: IntervalYearLiteral DoubleColon intervalYearType
;
@@ -254,10 +239,7 @@ scalarType
| floatType #float
| stringType #string
| binaryType #binary
- | timestampType #timestamp
- | timestampTZType #timestampTz
| dateType #date
- | timeType #time
| intervalYearType #intervalYear
| UUID isnull=QMark? #uuid
| UserDefined Identifier isnull=QMark? #userDefined
@@ -287,18 +269,6 @@ dateType
: Date isnull=QMark?
;
-timeType
- : Time isnull=QMark?
- ;
-
-timestampType
- : (Ts | Timestamp) isnull=QMark?
- ;
-
-timestampTZType
- : (TsTZ | Timestamp_TZ) isnull=QMark?
- ;
-
intervalYearType
: (IYear | Interval_Year) isnull=QMark?
;
diff --git a/grammar/SubstraitLexer.g4 b/grammar/SubstraitLexer.g4
index 4dfdf5272..2e42c8ee0 100644
--- a/grammar/SubstraitLexer.g4
+++ b/grammar/SubstraitLexer.g4
@@ -27,10 +27,7 @@ FP32 : 'FP32';
FP64 : 'FP64';
String : 'STRING';
Binary : 'BINARY';
-Timestamp: 'TIMESTAMP';
-Timestamp_TZ: 'TIMESTAMP_TZ';
Date : 'DATE';
-Time : 'TIME';
Interval_Year: 'INTERVAL_YEAR';
Interval_Day: 'INTERVAL_DAY';
Interval_Compound: 'INTERVAL_COMPOUND';
@@ -52,8 +49,6 @@ UserDefined: 'U!';
Bool: 'BOOL';
Str: 'STR';
VBin: 'VBIN';
-Ts: 'TS';
-TsTZ: 'TSTZ';
IYear: 'IYEAR';
IDay: 'IDAY';
ICompound: 'ICOMPOUND';
diff --git a/grammar/SubstraitType.g4 b/grammar/SubstraitType.g4
index d14df3976..1dea302d3 100644
--- a/grammar/SubstraitType.g4
+++ b/grammar/SubstraitType.g4
@@ -20,10 +20,7 @@ scalarType
| FP64 #fp64
| String #string
| Binary #binary
- | Timestamp #timestamp
- | Timestamp_TZ #timestampTz
| Date #date
- | Time #time
| Interval_Year #intervalYear
| UUID #uuid
;
diff --git a/proto/substrait/algebra.proto b/proto/substrait/algebra.proto
index 6cea2c849..272797f9a 100644
--- a/proto/substrait/algebra.proto
+++ b/proto/substrait/algebra.proto
@@ -997,6 +997,8 @@ message Expression {
}
message Literal {
+ reserved 14, 17, 27;
+
oneof literal_type {
bool boolean = 1;
int32 i8 = 2;
@@ -1007,14 +1009,8 @@ message Expression {
double fp64 = 11;
string string = 12;
bytes binary = 13;
- // Timestamp in units of microseconds since the UNIX epoch.
- // Deprecated in favor of `precision_timestamp`.
- int64 timestamp = 14 [deprecated = true];
// Date in units of days since the UNIX epoch.
int32 date = 16;
- // Time in units of microseconds past midnight.
- // Deprecated in favor of `precision_time`.
- int64 time = 17 [deprecated = true];
IntervalYearToMonth interval_year_to_month = 19;
IntervalDayToSecond interval_day_to_second = 20;
IntervalCompound interval_compound = 36;
@@ -1028,9 +1024,6 @@ message Expression {
PrecisionTimestamp precision_timestamp_tz = 35;
Struct struct = 25;
Map map = 26;
- // Timestamp in units of microseconds since the UNIX epoch.
- // Deprecated in favor of `precision_timestamp_tz`
- int64 timestamp_tz = 27 [deprecated = true];
bytes uuid = 28;
Type null = 29; // a typed null literal
List list = 30;
diff --git a/proto/substrait/type.proto b/proto/substrait/type.proto
index a430034eb..9a4da4e97 100644
--- a/proto/substrait/type.proto
+++ b/proto/substrait/type.proto
@@ -15,6 +15,8 @@ option java_package = "io.substrait.proto";
//
// The value 0 represents the system-preferred variation and is a valid reference value.
message Type {
+ reserved 14, 17, 29;
+
oneof kind {
Boolean bool = 1;
I8 i8 = 2;
@@ -25,16 +27,10 @@ message Type {
FP64 fp64 = 11;
String string = 12;
Binary binary = 13;
- // Deprecated in favor of `PrecisionTimestamp precision_timestamp`
- Timestamp timestamp = 14 [deprecated = true];
Date date = 16;
- // Deprecated in favor of `PrecisionTime precision_time`
- Time time = 17 [deprecated = true];
IntervalYear interval_year = 19;
IntervalDay interval_day = 20;
IntervalCompound interval_compound = 35;
- // Deprecated in favor of `PrecisionTimestampTZ precision_timestamp_tz`
- TimestampTZ timestamp_tz = 29 [deprecated = true];
UUID uuid = 32;
FixedChar fixed_char = 21;
@@ -113,26 +109,11 @@ message Type {
Nullability nullability = 2;
}
- message Timestamp {
- uint32 type_variation_reference = 1;
- Nullability nullability = 2;
- }
-
message Date {
uint32 type_variation_reference = 1;
Nullability nullability = 2;
}
- message Time {
- uint32 type_variation_reference = 1;
- Nullability nullability = 2;
- }
-
- message TimestampTZ {
- uint32 type_variation_reference = 1;
- Nullability nullability = 2;
- }
-
// An interval consisting of years and months
message IntervalYear {
uint32 type_variation_reference = 1;
diff --git a/site/docs/extensions/index.md b/site/docs/extensions/index.md
index 51c69531c..f731ae365 100644
--- a/site/docs/extensions/index.md
+++ b/site/docs/extensions/index.md
@@ -98,10 +98,7 @@ A function signature uniquely identifies a function implementation within a sing
| string | str |
| binary | vbin |
| boolean | bool |
-| timestamp | ts |
-| timestamp_tz | tstz |
| date | date |
-| time | time |
| interval_year | iyear |
| interval_day | iday |
| interval_compound | icompound |
@@ -126,7 +123,7 @@ A function signature uniquely identifies a function implementation within a sing
| ------------------------------------------------- | ------------------- |
| `add(optional enumeration, i8, i8) => i8` | `add:i8_i8` |
| `avg(fp32) => fp32` | `avg:fp32` |
-| `extract(required enumeration, timestamp) => i64` | `extract:req_ts` |
+| `extract(required enumeration, precision_timestamp<6>) => i64` | `extract:req_pts` |
| `sum(any1) => any1` | `sum:any` |
| `concat(str...) => str` | `concat:str` |
| `transform(list, func any2>) => list` | `transform:list_func` |
diff --git a/site/docs/types/type_classes.md b/site/docs/types/type_classes.md
index 7a501e2d4..a77400af0 100644
--- a/site/docs/types/type_classes.md
+++ b/site/docs/types/type_classes.md
@@ -21,10 +21,7 @@ Simple type classes are those that don't support any form of configuration. For
| fp64 | An 8-byte double-precision floating point number with the same range and precision as defined for the [IEEE 754 64-bit floating-point format](https://standards.ieee.org/ieee/754/6210/). | `double`
| string | A unicode string of text, [0..2,147,483,647] UTF-8 bytes in length. | `string`
| binary | A binary value, [0..2,147,483,647] bytes in length. | `binary`
-| timestamp | A naive timestamp with microsecond precision. Does not include timezone information and can thus not be unambiguously mapped to a moment on the timeline without context. Similar to naive datetime in Python. | `int64` microseconds since 1970-01-01 00:00:00.000000 (in an unspecified timezone)
-| timestamp_tz | A timezone-aware timestamp with microsecond precision. Similar to timezone-aware datetime in Python. | `int64` microseconds since 1970-01-01 00:00:00.000000 UTC
| date | A date within [1000-01-01..9999-12-31]. | `int32` days since `1970-01-01`
-| time | A time since the beginning of any day. Range of [0..86,399,999,999] microseconds; leap seconds need not be supported. | `int64` microseconds past midnight
| interval_year | Interval year to month. Supports a range of [-10,000..10,000] years with month precision (= [-120,000..120,000] months). Usually stored as separate integers for years and months, but only the total number of months is significant, i.e. `1y 0m` is considered equal to `0y 12m` or `1001y -12000m`. | `int32` years and `int32` months, with the added constraint that each component can never independently specify more than 10,000 years, even if the components have opposite signs (e.g. `-10000y 200000m` is **not** allowed)
| uuid | A universally-unique identifier composed of 128 bits. Typically presented to users in the following hexadecimal format: `c48ffa9e-64f4-44cb-ae47-152b4e60e77b`. Any 128-bit value is allowed, without specific adherence to RFC4122. | 16-byte `binary`
diff --git a/site/docs/types/type_parsing.md b/site/docs/types/type_parsing.md
index 9762b4071..0e0ac7b06 100644
--- a/site/docs/types/type_parsing.md
+++ b/site/docs/types/type_parsing.md
@@ -37,7 +37,7 @@ Structs are unique from other types because they have an arbitrary number of par
```
// Struct
- struct?
+ struct?>
// Named structs are not yet supported in the text format.
```
diff --git a/tests/README.md b/tests/README.md
index 8b830ecfd..a9d921fe4 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -110,9 +110,9 @@ enum_value := ::enum
result := | |
options := , , ...
option := :
-literal_value := string | integer | decimal | float | boolean | date | time | timestamp | timestamp_tz | interval year | interval days | null
+literal_value := string | integer | decimal | float | boolean | date | interval year | interval days | null
datatype := | |
-basic_type := bool | i8 | i16 | i32 | i64 | f32 | f64 | str | date | time | ts | tstz | iyear | vbin |
+basic_type := bool | i8 | i16 | i32 | i64 | f32 | f64 | str | date | iyear | vbin |
parametrized_type := fchar | vchar | dec | fbin | iday | icompound | pt | pts | ptstz | func datatype>
params := datatype | (datatype(, datatype)*)
complex_type := | |
@@ -156,9 +156,9 @@ Integers are represented as sequences of digits. Negative numbers are preceded b
All date and time literals use ISO 8601 format:
- **date**: `YYYY-MM-DD`, example: `2021-01-01`
-- **time**: `HH:MM:SS[.fraction]`, example: `12:00:00.000`
-- **timestamp**: `YYYY-MM-DD HH:MM:SS[.fraction]`, example: `2021-01-01 12:00:00`
-- **timestamp_tz**: `YYYY-MM-DD HH:MM:SS[.fraction]±HH:MM`, example: `2021-01-01 12:00:00+05:30`
+- **precision_time**: `HH:MM:SS[.fraction]`, example: `12:00:00.000`
+- **precision_timestamp**: `YYYY-MM-DD HH:MM:SS[.fraction]`, example: `2021-01-01 12:00:00`
+- **precision_timestamp_tz**: `YYYY-MM-DD HH:MM:SS[.fraction]±HH:MM`, example: `2021-01-01 12:00:00+05:30`
- **interval year**: `'P[n]Y[n]M'`, example: `'P2Y3M'` (2 years, 3 months)
- **interval days**: `'P[n]DT[n]H[n]M[n]S'`, example: `'P2DT3H2M9S'` (2 days, 3 hours, 2 minutes, 9 seconds)
ex2: 'P1DT2H3M4.45::iday<3>' (1 day, 2 hours, 3 minutes, 4 seconds, 450 milliseconds)`
@@ -186,15 +186,12 @@ Use short names listed in https://substrait.io/extensions/#function-signature-co
- **vchar**: Variable-length string `varchar`
- **vbin**: Fixed-length binary `fixedbinary`
- **date**: Date
-- **time**: Time
-- **ts**: Timestamp
-- **tstz**: Timestamp with timezone
- **iyear**: Interval year
-- **iday**: Interval days
+- **iday**: Interval days `interval_day`
- **icompound**: Interval compound
-- **pt**: Precision Time
-- **pts**: Precision Timestamp
-- **ptstz**: Precision Timestamp with timezone
+- **pt**: Precision Time `precision_time
`
+- **pts**: Precision Timestamp `precision_timestamp
`
+- **ptstz**: Precision Timestamp with timezone `precision_timestamp_tz
`
### Nullability
diff --git a/tests/baseline.json b/tests/baseline.json
index 3d5441246..07b82ff00 100644
--- a/tests/baseline.json
+++ b/tests/baseline.json
@@ -2,15 +2,15 @@
"registry": {
"extension_count": 15,
"dependency_count": 15,
- "function_count": 173,
+ "function_count": 174,
"num_aggregate_functions": 28,
"num_scalar_functions": 170,
"num_window_functions": 11,
- "num_function_overloads": 533
+ "num_function_overloads": 498
},
"coverage": {
- "total_test_count": 1168,
- "num_function_variants": 533,
+ "total_test_count": 1177,
+ "num_function_variants": 498,
"num_covered_function_variants": 245
}
}
diff --git a/tests/cases/datetime/add_datetime.test b/tests/cases/datetime/add_datetime.test
index 81f4aafdb..c74393718 100644
--- a/tests/cases/datetime/add_datetime.test
+++ b/tests/cases/datetime/add_datetime.test
@@ -1,16 +1,16 @@
### SUBSTRAIT_SCALAR_TEST: v1.0
### SUBSTRAIT_INCLUDE: '/extensions/functions_datetime.yaml'
-# timestamps: examples using the timestamp types
-add('2016-12-31T13:30:15'::ts, 'P5D'::iday) = '2017-01-05T13:30:15'::ts
-add('2016-12-01T13:30:15'::ts, 'P5Y'::iyear) = '2021-12-01T13:30:15'::ts
-add('2016-12-01T13:30:15'::ts, 'PT5H'::iday) = '2016-12-01T18:30:15'::ts
+# timestamps: examples using the precision_timestamp types
+add('2016-12-31T13:30:15'::pts<6>, 'P5D'::iday<6>) = '2017-01-05T13:30:15'::pts<6>
+add('2016-12-01T13:30:15'::pts<6>, 'P5Y'::iyear) = '2021-12-01T13:30:15'::pts<6>
+add('2016-12-01T13:30:15'::pts<6>, 'PT5H'::iday<6>) = '2016-12-01T18:30:15'::pts<6>
# date_to_timestamp: examples using the date types and resulting in a timestamp
-add('2020-12-31'::date, 'P5D'::iday) = '2021-01-05T00:00:00'::ts
+add('2020-12-31'::date, 'P5D'::iday<6>) = '2021-01-05T00:00:00'::pts<6>
add('2020-12-31'::date, 'P5Y'::iyear) = '2025-12-31'::date
add('2020-12-31'::date, 'P5M'::iyear) = '2021-05-31'::date
# null_input: examples with null args or return
-add(null::date?, 'P5D'::iday) = null::ts?
+add(null::date?, 'P5D'::iday<6>) = null::pts?<6>
add(null::date?, 'P5Y'::iyear) = null::date?
diff --git a/tests/cases/datetime/extract.test b/tests/cases/datetime/extract.test
index 2818a9f57..13534ad0a 100644
--- a/tests/cases/datetime/extract.test
+++ b/tests/cases/datetime/extract.test
@@ -1,31 +1,31 @@
### SUBSTRAIT_SCALAR_TEST: v1.0
### SUBSTRAIT_INCLUDE: '/extensions/functions_datetime.yaml'
-# timestamps: examples using the timestamp and timestamptz types
-extract(YEAR::enum, '2016-12-31T13:30:15'::ts) = 2016::i64
-extract(ISO_YEAR::enum, '2016-01-01T13:30:15'::ts) = 2015::i64
-extract(QUARTER::enum, '2016-12-31T13:30:15'::ts) = 4::i64
-extract(MONTH::enum, '2016-12-31T13:30:15'::ts) = 12::i64
-extract(ISO_WEEK::enum, '2016-12-31T13:30:15'::ts) = 52::i64
-extract(DAY::enum, '2016-12-31T13:30:15'::ts) = 31::i64
-extract(SUNDAY_DAY_OF_WEEK::enum, '2016-12-25T13:30:15'::ts) = 7::i64
-extract(MONDAY_DAY_OF_WEEK::enum, '2016-12-25T13:30:15'::ts) = 0::i64
-extract(DAY_OF_YEAR::enum, '2016-12-25T13:30:15'::ts) = 360::i64
-extract(HOUR::enum, '2016-12-31T13:30:15'::ts) = 13::i64
-extract(MINUTE::enum, '2016-12-31T13:30:15'::ts) = 30::i64
-extract(SECOND::enum, '2016-12-31T13:30:15'::ts) = 15::i64
-extract(MILLISECOND::enum, '2016-12-31T13:30:15'::ts) = 15000::i64
-extract(MICROSECOND::enum, '2016-12-31T13:30:15.220000'::ts) = 15220000::i64
-extract(UNIX_TIME::enum, '2016-12-31T13:30:15'::ts) = 1483191015::i64
+# timestamps: examples using the precision_timestamp and precision_timestamp_tz types
+extract(YEAR::enum, '2016-12-31T13:30:15'::pts<6>) = 2016::i64
+extract(ISO_YEAR::enum, '2016-01-01T13:30:15'::pts<6>) = 2015::i64
+extract(QUARTER::enum, '2016-12-31T13:30:15'::pts<6>) = 4::i64
+extract(MONTH::enum, '2016-12-31T13:30:15'::pts<6>) = 12::i64
+extract(ISO_WEEK::enum, '2016-12-31T13:30:15'::pts<6>) = 52::i64
+extract(DAY::enum, '2016-12-31T13:30:15'::pts<6>) = 31::i64
+extract(SUNDAY_DAY_OF_WEEK::enum, '2016-12-25T13:30:15'::pts<6>) = 7::i64
+extract(MONDAY_DAY_OF_WEEK::enum, '2016-12-25T13:30:15'::pts<6>) = 0::i64
+extract(DAY_OF_YEAR::enum, '2016-12-25T13:30:15'::pts<6>) = 360::i64
+extract(HOUR::enum, '2016-12-31T13:30:15'::pts<6>) = 13::i64
+extract(MINUTE::enum, '2016-12-31T13:30:15'::pts<6>) = 30::i64
+extract(SECOND::enum, '2016-12-31T13:30:15'::pts<6>) = 15::i64
+extract(MILLISECOND::enum, '2016-12-31T13:30:15'::pts<6>) = 15000::i64
+extract(MICROSECOND::enum, '2016-12-31T13:30:15.220000'::pts<6>) = 15220000::i64
+extract(UNIX_TIME::enum, '2016-12-31T13:30:15'::pts<6>) = 1483191015::i64
# date: examples using the date type
extract(YEAR::enum, '2020-12-31'::date) = 2020::i64
extract(MONTH::enum, '2020-12-31'::date) = 12::i64
extract(DAY::enum, '2020-12-31'::date) = 31::i64
-# time: examples using the time type
-extract(HOUR::enum, '01:02:03'::time) = 1::i64
-extract(MINUTE::enum, '01:02:03'::time) = 2::i64
-extract(SECOND::enum, '01:02:03'::time) = 3::i64
-extract(MILLISECOND::enum, '01:02:03.155'::time) = 3155::i64
-extract(MICROSECOND::enum, '01:02:03.45'::time) = 3450000::i64
+# time: examples using the precision_time type
+extract(HOUR::enum, '01:02:03'::pt<6>) = 1::i64
+extract(MINUTE::enum, '01:02:03'::pt<6>) = 2::i64
+extract(SECOND::enum, '01:02:03'::pt<6>) = 3::i64
+extract(MILLISECOND::enum, '01:02:03.155'::pt<6>) = 3155::i64
+extract(MICROSECOND::enum, '01:02:03.45'::pt<6>) = 3450000::i64
diff --git a/tests/cases/datetime/gt_datetime.test b/tests/cases/datetime/gt_datetime.test
index c265b1c40..e9f760c49 100644
--- a/tests/cases/datetime/gt_datetime.test
+++ b/tests/cases/datetime/gt_datetime.test
@@ -1,13 +1,13 @@
### SUBSTRAIT_SCALAR_TEST: v1.0
### SUBSTRAIT_INCLUDE: '/extensions/functions_datetime.yaml'
-# timestamps: examples using the timestamp type
-gt('2016-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = false::bool
-gt('2018-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = true::bool
+# timestamps: examples using the precision_timestamp type
+gt('2016-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = false::bool
+gt('2018-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = true::bool
-# timestamp_tz: examples using the timestamp_tz type
-gt('1999-01-08T01:05:05-08:00'::tstz, '1999-01-08T04:05:06-05:00'::tstz) = false::bool
-gt('1999-01-08T01:05:07-08:00'::tstz, '1999-01-08T04:05:06-05:00'::tstz) = true::bool
+# timestamp_tz: examples using the precision_timestamp_tz type
+gt('1999-01-08T01:05:05-08:00'::ptstz<6>, '1999-01-08T04:05:06-05:00'::ptstz<6>) = false::bool
+gt('1999-01-08T01:05:07-08:00'::ptstz<6>, '1999-01-08T04:05:06-05:00'::ptstz<6>) = true::bool
# date: examples using the date type
gt('2020-12-30'::date, '2020-12-31'::date) = false::bool
@@ -22,4 +22,4 @@ gt('P7Y'::iyear, 'P6Y'::iyear) = true::bool
# null_input: examples with null args
gt(null::iday?, 'P5D'::iday) = null::bool?
gt(null::date?, '2020-12-30'::date) = null::bool?
-gt(null::ts?, '2018-12-31T13:30:15'::ts) = null::bool?
+gt(null::pts?<6>, '2018-12-31T13:30:15'::pts<6>) = null::bool?
diff --git a/tests/cases/datetime/gte_datetime.test b/tests/cases/datetime/gte_datetime.test
index 0fe1c1d8c..62fe732a2 100644
--- a/tests/cases/datetime/gte_datetime.test
+++ b/tests/cases/datetime/gte_datetime.test
@@ -1,15 +1,15 @@
### SUBSTRAIT_SCALAR_TEST: v1.0
### SUBSTRAIT_INCLUDE: '/extensions/functions_datetime.yaml'
-# timestamps: examples using the timestamp type
-gte('2016-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = false::bool
-gte('2017-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = true::bool
-gte('2018-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = true::bool
+# timestamps: examples using the precision_timestamp type
+gte('2016-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = false::bool
+gte('2017-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = true::bool
+gte('2018-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = true::bool
-# timestamp_tz: examples using the timestamp_tz type
-gte('1999-01-08T01:05:05-08:00'::tstz, '1999-01-08T04:05:06-05:00'::tstz) = false::bool
-gte('1999-01-08T01:05:06-08:00'::tstz, '1999-01-08T01:05:06-08:00'::tstz) = true::bool
-gte('1999-01-08T01:05:06-08:00'::tstz, '1999-01-08T04:05:05-05:00'::tstz) = true::bool
+# timestamp_tz: examples using the precision_timestamp_tz type
+gte('1999-01-08T01:05:05-08:00'::ptstz<6>, '1999-01-08T04:05:06-05:00'::ptstz<6>) = false::bool
+gte('1999-01-08T01:05:06-08:00'::ptstz<6>, '1999-01-08T01:05:06-08:00'::ptstz<6>) = true::bool
+gte('1999-01-08T01:05:06-08:00'::ptstz<6>, '1999-01-08T04:05:05-05:00'::ptstz<6>) = true::bool
# date: examples using the date type
gte('2020-12-30'::date, '2020-12-31'::date) = false::bool
@@ -27,4 +27,4 @@ gte('P7Y'::iyear, 'P6Y'::iyear) = true::bool
# null_input: examples with null args or return
gte(null::iday?, 'P5D'::iday) = null::bool?
gte(null::date?, '2020-12-30'::date) = null::bool?
-gte(null::ts?, '2018-12-31T13:30:15'::ts) = null::bool?
+gte(null::pts?<6>, '2018-12-31T13:30:15'::pts<6>) = null::bool?
diff --git a/tests/cases/datetime/lt_datetime.test b/tests/cases/datetime/lt_datetime.test
index 59500284f..dd4ff071f 100644
--- a/tests/cases/datetime/lt_datetime.test
+++ b/tests/cases/datetime/lt_datetime.test
@@ -1,13 +1,13 @@
### SUBSTRAIT_SCALAR_TEST: v1.0
### SUBSTRAIT_INCLUDE: '/extensions/functions_datetime.yaml'
-# timestamps: examples using the timestamp type
-lt('2016-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = true::bool
-lt('2018-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = false::bool
+# timestamps: examples using the precision_timestamp type
+lt('2016-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = true::bool
+lt('2018-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = false::bool
-# timestamp_tz: examples using the timestamp_tz type
-lt('1999-01-08T01:05:05-08:00'::tstz, '1999-01-08T04:05:06-05:00'::tstz) = true::bool
-lt('1999-01-08T01:05:06-08:00'::tstz, '1999-01-08T04:05:06-05:00'::tstz) = false::bool
+# timestamp_tz: examples using the precision_timestamp_tz type
+lt('1999-01-08T01:05:05-08:00'::ptstz<6>, '1999-01-08T04:05:06-05:00'::ptstz<6>) = true::bool
+lt('1999-01-08T01:05:06-08:00'::ptstz<6>, '1999-01-08T04:05:06-05:00'::ptstz<6>) = false::bool
# date: examples using the date type
lt('2020-12-30'::date, '2020-12-31'::date) = true::bool
@@ -22,4 +22,4 @@ lt('P7Y'::iyear, 'P6Y'::iyear) = false::bool
# null_input: examples with null args or return
lt(null::iday?, 'P5D'::iday) = null::bool?
lt(null::date?, '2020-12-30'::date) = null::bool?
-lt(null::ts?, '2018-12-31T13:30:15'::ts) = null::bool?
+lt(null::pts?<6>, '2018-12-31T13:30:15'::pts<6>) = null::bool?
diff --git a/tests/cases/datetime/lte_datetime.test b/tests/cases/datetime/lte_datetime.test
index ba44aea9b..d190ae801 100644
--- a/tests/cases/datetime/lte_datetime.test
+++ b/tests/cases/datetime/lte_datetime.test
@@ -1,15 +1,15 @@
### SUBSTRAIT_SCALAR_TEST: v1.0
### SUBSTRAIT_INCLUDE: '/extensions/functions_datetime.yaml'
-# timestamps: examples using the timestamp type
-lte('2016-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = true::bool
-lte('2017-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = true::bool
-lte('2018-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = false::bool
+# timestamps: examples using the precision_timestamp type
+lte('2016-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = true::bool
+lte('2017-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = true::bool
+lte('2018-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = false::bool
-# timestamp_tz: examples using the timestamp_tz type
-lte('1999-01-08T01:05:05-08:00'::tstz, '1999-01-08T04:05:06-05:00'::tstz) = true::bool
-lte('1999-01-08T01:05:06-08:00'::tstz, '1999-01-08T01:05:06-08:00'::tstz) = true::bool
-lte('1999-01-08T01:05:06-08:00'::tstz, '1999-01-08T04:05:05-05:00'::tstz) = false::bool
+# timestamp_tz: examples using the precision_timestamp_tz type
+lte('1999-01-08T01:05:05-08:00'::ptstz<6>, '1999-01-08T04:05:06-05:00'::ptstz<6>) = true::bool
+lte('1999-01-08T01:05:06-08:00'::ptstz<6>, '1999-01-08T01:05:06-08:00'::ptstz<6>) = true::bool
+lte('1999-01-08T01:05:06-08:00'::ptstz<6>, '1999-01-08T04:05:05-05:00'::ptstz<6>) = false::bool
# date: examples using the date type
lte('2020-12-30'::date, '2020-12-31'::date) = true::bool
@@ -27,4 +27,4 @@ lte('P7Y'::iyear, 'P6Y'::iyear) = false::bool
# null_input: examples with null args or return
lte(null::iday?, 'P5D'::iday) = null::bool?
lte(null::date?, '2020-12-30'::date) = null::bool?
-lte(null::ts?, '2018-12-31T13:30:15'::ts) = null::bool?
+lte(null::pts?<6>, '2018-12-31T13:30:15'::pts<6>) = null::bool?
diff --git a/tests/cases/datetime/subtract_datetime.test b/tests/cases/datetime/subtract_datetime.test
index 75e7f4198..552c101f7 100644
--- a/tests/cases/datetime/subtract_datetime.test
+++ b/tests/cases/datetime/subtract_datetime.test
@@ -1,10 +1,10 @@
### SUBSTRAIT_SCALAR_TEST: v1.0
### SUBSTRAIT_INCLUDE: '/extensions/functions_datetime.yaml'
-# timestamps: examples using the timestamp type
-subtract('2016-12-31T13:30:15'::ts, 'P5D'::iday) = '2016-12-26T13:30:15'::ts
-subtract('2016-12-01T13:30:15'::ts, 'P5Y'::iyear) = '2011-12-01T13:30:15'::ts
-subtract('2016-12-01T13:30:15'::ts, 'PT5H'::iday) = '2016-12-01T08:30:15'::ts
+# timestamps: examples using the precision_timestamp type
+subtract('2016-12-31T13:30:15'::pts<6>, 'P5D'::iday) = '2016-12-26T13:30:15'::pts<6>
+subtract('2016-12-01T13:30:15'::pts<6>, 'P5Y'::iyear) = '2011-12-01T13:30:15'::pts<6>
+subtract('2016-12-01T13:30:15'::pts<6>, 'PT5H'::iday) = '2016-12-01T08:30:15'::pts<6>
# date: examples using the date type
subtract('2020-12-31'::date, 'P5D'::iday) = '2020-12-26'::date
diff --git a/tests/coverage/antlr_parser/FuncTestCaseLexer.py b/tests/coverage/antlr_parser/FuncTestCaseLexer.py
index 3a79d6b59..f63a3c899 100644
--- a/tests/coverage/antlr_parser/FuncTestCaseLexer.py
+++ b/tests/coverage/antlr_parser/FuncTestCaseLexer.py
@@ -11,7 +11,7 @@
def serializedATN():
return [
- 4,0,129,1313,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,
+ 4,0,124,1267,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,
5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,
2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,
7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,
@@ -31,93 +31,89 @@ def serializedATN():
2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,
7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,
2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,
- 7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,
- 2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,1,0,4,0,273,8,0,
- 11,0,12,0,274,1,0,1,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,
+ 7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,1,0,4,0,263,
+ 8,0,11,0,12,0,264,1,0,1,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,
2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,
- 3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,
- 3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,
- 4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,
+ 2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,
+ 3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,
+ 4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,
5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,
- 6,1,6,4,6,371,8,6,11,6,12,6,372,1,6,1,6,4,6,377,8,6,11,6,12,6,378,
- 3,6,381,8,6,1,7,1,7,1,7,1,7,5,7,387,8,7,10,7,12,7,390,9,7,1,7,3,
- 7,393,8,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,
- 9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,
- 10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,
- 12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,
- 13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,
- 15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,
- 16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,
- 18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,
- 19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,
- 20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,
- 21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,
- 22,1,22,1,22,1,22,1,23,3,23,544,8,23,1,23,1,23,1,24,3,24,549,8,24,
- 1,24,4,24,552,8,24,11,24,12,24,553,1,24,1,24,4,24,558,8,24,11,24,
- 12,24,559,3,24,562,8,24,1,25,3,25,565,8,25,1,25,4,25,568,8,25,11,
- 25,12,25,569,1,25,1,25,5,25,574,8,25,10,25,12,25,577,9,25,3,25,579,
- 8,25,1,25,1,25,3,25,583,8,25,1,25,4,25,586,8,25,11,25,12,25,587,
- 3,25,590,8,25,1,25,3,25,593,8,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
- 25,3,25,602,8,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,3,
- 26,613,8,26,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,29,1,29,1,
- 29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,637,
- 8,29,11,29,12,29,638,3,29,641,8,29,1,29,1,29,1,29,1,29,1,29,1,29,
- 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,
- 1,30,4,30,663,8,30,11,30,12,30,664,3,30,667,8,30,1,30,1,30,1,31,
- 1,31,1,31,1,31,1,31,1,31,1,31,1,31,4,31,679,8,31,11,31,12,31,680,
- 3,31,683,8,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,
- 1,33,1,33,1,34,1,34,1,35,1,35,1,36,1,36,1,37,1,37,1,38,1,38,1,39,
- 1,39,1,40,1,40,1,41,1,41,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,
- 1,43,3,43,722,8,43,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,43,3,43,
- 732,8,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,741,8,44,1,44,1,
- 44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,751,8,44,1,45,1,45,1,45,1,
- 45,1,45,3,45,758,8,45,1,45,1,45,1,45,3,45,763,8,45,1,45,1,45,1,45,
- 1,45,1,45,3,45,770,8,45,1,45,1,45,1,45,3,45,775,8,45,1,46,1,46,1,
- 46,1,46,1,46,3,46,782,8,46,1,46,1,46,1,46,3,46,787,8,46,1,46,1,46,
- 1,46,3,46,792,8,46,1,46,1,46,1,46,3,46,797,8,46,1,46,1,46,1,47,1,
- 47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,5,48,812,8,48,10,
- 48,12,48,815,9,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,
- 50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,5,51,834,8,51,10,51,12,51,
- 837,9,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,4,52,846,8,52,11,52,
- 12,52,847,1,52,3,52,851,8,52,1,52,5,52,854,8,52,10,52,12,52,857,
- 9,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,54,1,54,1,54,1,55,1,55,
- 1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,
- 1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,60,1,60,
- 1,60,1,60,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,63,1,63,1,63,
- 1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,
- 1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,
- 1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,
- 1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,
- 1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,
- 1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,
- 1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,
- 1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,
- 1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,
+ 5,1,6,1,6,4,6,361,8,6,11,6,12,6,362,1,6,1,6,4,6,367,8,6,11,6,12,
+ 6,368,3,6,371,8,6,1,7,1,7,1,7,1,7,5,7,377,8,7,10,7,12,7,380,9,7,
+ 1,7,3,7,383,8,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,
+ 1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,
+ 1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,
+ 1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,
+ 1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,
+ 1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,
+ 1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,
+ 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,
+ 1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,
+ 1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,
+ 1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,
+ 1,22,1,22,1,22,1,22,1,22,1,23,3,23,534,8,23,1,23,1,23,1,24,3,24,
+ 539,8,24,1,24,4,24,542,8,24,11,24,12,24,543,1,24,1,24,4,24,548,8,
+ 24,11,24,12,24,549,3,24,552,8,24,1,25,3,25,555,8,25,1,25,4,25,558,
+ 8,25,11,25,12,25,559,1,25,1,25,5,25,564,8,25,10,25,12,25,567,9,25,
+ 3,25,569,8,25,1,25,1,25,3,25,573,8,25,1,25,4,25,576,8,25,11,25,12,
+ 25,577,3,25,580,8,25,1,25,3,25,583,8,25,1,25,1,25,1,25,1,25,1,25,
+ 1,25,1,25,3,25,592,8,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,
+ 1,26,3,26,603,8,26,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,29,
+ 1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,
+ 4,29,627,8,29,11,29,12,29,628,3,29,631,8,29,1,29,1,29,1,29,1,29,
+ 1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,
+ 1,30,1,30,1,30,4,30,653,8,30,11,30,12,30,654,3,30,657,8,30,1,30,
+ 1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,4,31,669,8,31,11,31,
+ 12,31,670,3,31,673,8,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,
+ 1,32,1,32,1,33,1,33,1,34,1,34,1,35,1,35,1,36,1,36,1,37,1,37,1,38,
+ 1,38,1,39,1,39,1,40,1,40,1,41,1,41,1,42,1,42,1,43,1,43,1,43,1,43,
+ 1,43,1,43,1,43,3,43,712,8,43,1,43,1,43,1,43,1,43,1,43,1,43,1,43,
+ 1,43,3,43,722,8,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,731,8,
+ 44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,741,8,44,1,45,1,
+ 45,1,45,1,45,1,45,3,45,748,8,45,1,45,1,45,1,45,3,45,753,8,45,1,45,
+ 1,45,1,45,1,45,1,45,3,45,760,8,45,1,45,1,45,1,45,3,45,765,8,45,1,
+ 46,1,46,1,46,1,46,1,46,3,46,772,8,46,1,46,1,46,1,46,3,46,777,8,46,
+ 1,46,1,46,1,46,3,46,782,8,46,1,46,1,46,1,46,3,46,787,8,46,1,46,1,
+ 46,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,5,48,802,
+ 8,48,10,48,12,48,805,9,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,50,
+ 1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,5,51,824,8,51,10,51,
+ 12,51,827,9,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,4,52,836,8,52,
+ 11,52,12,52,837,1,52,3,52,841,8,52,1,52,5,52,844,8,52,10,52,12,52,
+ 847,9,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,54,1,54,1,54,1,55,
+ 1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,
+ 1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,60,
+ 1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,63,1,63,
+ 1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,
+ 1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,
+ 1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,
+ 1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,
+ 1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,
+ 1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,72,
+ 1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,
+ 1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,
+ 1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,
+ 1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,
+ 1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,
1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,
- 1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,
- 1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,
- 1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,
- 1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,
- 1,80,1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
- 1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,83,
- 1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,85,
- 1,85,1,85,1,85,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,88,1,88,
- 1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,91,1,91,1,91,
- 1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,
- 1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,
- 1,95,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,
- 1,98,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,
- 1,100,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,103,
- 1,103,1,103,1,104,1,104,1,104,1,105,1,105,1,106,1,106,1,107,1,107,
- 1,108,1,108,1,109,1,109,1,110,1,110,1,111,1,111,1,111,1,112,1,112,
- 1,112,1,113,1,113,1,113,1,114,1,114,1,115,1,115,1,116,1,116,1,117,
- 1,117,1,118,1,118,1,119,1,119,1,120,1,120,1,121,1,121,1,122,1,122,
- 1,123,1,123,1,124,1,124,1,125,1,125,1,126,1,126,1,126,1,126,1,127,
- 1,127,1,127,1,128,1,128,1,128,1,129,1,129,1,129,1,130,1,130,5,130,
- 1284,8,130,10,130,12,130,1287,9,130,1,130,3,130,1290,8,130,1,131,
- 1,131,1,132,3,132,1295,8,132,1,132,1,132,1,133,1,133,1,133,5,133,
- 1302,8,133,10,133,12,133,1305,9,133,1,134,1,134,3,134,1309,8,134,
- 1,134,3,134,1312,8,134,0,0,135,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,
+ 1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,
+ 1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,
+ 1,80,1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,82,1,82,
+ 1,82,1,82,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,
+ 1,85,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,88,
+ 1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,
+ 1,89,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,93,
+ 1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,
+ 1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,
+ 1,98,1,98,1,98,1,99,1,99,1,99,1,100,1,100,1,101,1,101,1,102,1,102,
+ 1,103,1,103,1,104,1,104,1,105,1,105,1,106,1,106,1,106,1,107,1,107,
+ 1,107,1,108,1,108,1,108,1,109,1,109,1,110,1,110,1,111,1,111,1,112,
+ 1,112,1,113,1,113,1,114,1,114,1,115,1,115,1,116,1,116,1,117,1,117,
+ 1,118,1,118,1,119,1,119,1,120,1,120,1,121,1,121,1,121,1,121,1,122,
+ 1,122,1,122,1,123,1,123,1,123,1,124,1,124,1,124,1,125,1,125,5,125,
+ 1238,8,125,10,125,12,125,1241,9,125,1,125,3,125,1244,8,125,1,126,
+ 1,126,1,127,3,127,1249,8,127,1,127,1,127,1,128,1,128,1,128,5,128,
+ 1256,8,128,10,128,12,128,1259,9,128,1,129,1,129,3,129,1263,8,129,
+ 1,129,3,129,1266,8,129,0,0,130,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,
8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,
19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,0,57,0,59,
28,61,29,63,30,65,31,67,32,69,33,71,34,73,35,75,36,77,37,79,38,81,
@@ -130,365 +126,352 @@ def serializedATN():
199,96,201,97,203,98,205,99,207,100,209,101,211,102,213,103,215,
104,217,105,219,106,221,107,223,108,225,109,227,110,229,111,231,
112,233,113,235,114,237,115,239,116,241,117,243,118,245,119,247,
- 120,249,121,251,122,253,123,255,124,257,125,259,126,261,0,263,0,
- 265,127,267,128,269,129,1,0,31,3,0,9,10,13,13,32,32,2,0,83,83,115,
- 115,2,0,85,85,117,117,2,0,66,66,98,98,2,0,84,84,116,116,2,0,82,82,
- 114,114,2,0,65,65,97,97,2,0,73,73,105,105,2,0,67,67,99,99,2,0,76,
- 76,108,108,2,0,69,69,101,101,2,0,71,71,103,103,2,0,78,78,110,110,
- 2,0,68,68,100,100,2,0,80,80,112,112,2,0,89,89,121,121,2,0,86,86,
- 118,118,2,0,10,10,13,13,2,0,70,70,102,102,2,0,79,79,111,111,2,0,
- 87,87,119,119,2,0,72,72,104,104,2,0,43,43,45,45,1,0,48,57,2,0,77,
- 77,109,109,2,0,39,39,92,92,1,0,42,42,2,0,42,42,47,47,2,0,90,90,122,
- 122,2,0,88,88,120,120,4,0,36,36,65,90,95,95,97,122,1361,0,1,1,0,
- 0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,
- 0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,
- 0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,
- 0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,
- 0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,
- 0,53,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,
- 0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,
- 0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,
- 0,87,1,0,0,0,0,89,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,
- 0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,109,1,0,
- 0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,
- 1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,
- 0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,
- 0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,
- 147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,
- 0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,
- 1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,
- 0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,
- 0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,
- 193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,
- 0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,
- 1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,
- 0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,
- 0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,
- 239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,
- 0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,
- 1,0,0,0,0,259,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,
- 1,272,1,0,0,0,3,278,1,0,0,0,5,282,1,0,0,0,7,304,1,0,0,0,9,329,1,
- 0,0,0,11,347,1,0,0,0,13,368,1,0,0,0,15,382,1,0,0,0,17,396,1,0,0,
- 0,19,403,1,0,0,0,21,412,1,0,0,0,23,425,1,0,0,0,25,434,1,0,0,0,27,
- 443,1,0,0,0,29,449,1,0,0,0,31,458,1,0,0,0,33,465,1,0,0,0,35,477,
- 1,0,0,0,37,481,1,0,0,0,39,494,1,0,0,0,41,507,1,0,0,0,43,521,1,0,
- 0,0,45,533,1,0,0,0,47,543,1,0,0,0,49,548,1,0,0,0,51,601,1,0,0,0,
- 53,612,1,0,0,0,55,614,1,0,0,0,57,619,1,0,0,0,59,622,1,0,0,0,61,648,
- 1,0,0,0,63,670,1,0,0,0,65,686,1,0,0,0,67,694,1,0,0,0,69,696,1,0,
- 0,0,71,698,1,0,0,0,73,700,1,0,0,0,75,702,1,0,0,0,77,704,1,0,0,0,
- 79,706,1,0,0,0,81,708,1,0,0,0,83,710,1,0,0,0,85,712,1,0,0,0,87,731,
- 1,0,0,0,89,750,1,0,0,0,91,774,1,0,0,0,93,776,1,0,0,0,95,800,1,0,
- 0,0,97,805,1,0,0,0,99,818,1,0,0,0,101,823,1,0,0,0,103,829,1,0,0,
- 0,105,840,1,0,0,0,107,863,1,0,0,0,109,865,1,0,0,0,111,868,1,0,0,
- 0,113,873,1,0,0,0,115,878,1,0,0,0,117,883,1,0,0,0,119,891,1,0,0,
- 0,121,894,1,0,0,0,123,898,1,0,0,0,125,902,1,0,0,0,127,906,1,0,0,
- 0,129,911,1,0,0,0,131,916,1,0,0,0,133,923,1,0,0,0,135,930,1,0,0,
- 0,137,940,1,0,0,0,139,953,1,0,0,0,141,958,1,0,0,0,143,963,1,0,0,
- 0,145,977,1,0,0,0,147,990,1,0,0,0,149,1008,1,0,0,0,151,1013,1,0,
- 0,0,153,1021,1,0,0,0,155,1036,1,0,0,0,157,1056,1,0,0,0,159,1079,
- 1,0,0,0,161,1089,1,0,0,0,163,1097,1,0,0,0,165,1109,1,0,0,0,167,1116,
- 1,0,0,0,169,1124,1,0,0,0,171,1129,1,0,0,0,173,1133,1,0,0,0,175,1136,
- 1,0,0,0,177,1141,1,0,0,0,179,1145,1,0,0,0,181,1150,1,0,0,0,183,1153,
- 1,0,0,0,185,1158,1,0,0,0,187,1164,1,0,0,0,189,1169,1,0,0,0,191,1179,
- 1,0,0,0,193,1183,1,0,0,0,195,1186,1,0,0,0,197,1190,1,0,0,0,199,1196,
- 1,0,0,0,201,1202,1,0,0,0,203,1208,1,0,0,0,205,1213,1,0,0,0,207,1217,
- 1,0,0,0,209,1220,1,0,0,0,211,1223,1,0,0,0,213,1225,1,0,0,0,215,1227,
- 1,0,0,0,217,1229,1,0,0,0,219,1231,1,0,0,0,221,1233,1,0,0,0,223,1235,
- 1,0,0,0,225,1238,1,0,0,0,227,1241,1,0,0,0,229,1244,1,0,0,0,231,1246,
- 1,0,0,0,233,1248,1,0,0,0,235,1250,1,0,0,0,237,1252,1,0,0,0,239,1254,
- 1,0,0,0,241,1256,1,0,0,0,243,1258,1,0,0,0,245,1260,1,0,0,0,247,1262,
- 1,0,0,0,249,1264,1,0,0,0,251,1266,1,0,0,0,253,1268,1,0,0,0,255,1272,
- 1,0,0,0,257,1275,1,0,0,0,259,1278,1,0,0,0,261,1289,1,0,0,0,263,1291,
- 1,0,0,0,265,1294,1,0,0,0,267,1298,1,0,0,0,269,1311,1,0,0,0,271,273,
- 7,0,0,0,272,271,1,0,0,0,273,274,1,0,0,0,274,272,1,0,0,0,274,275,
- 1,0,0,0,275,276,1,0,0,0,276,277,6,0,0,0,277,2,1,0,0,0,278,279,5,
- 35,0,0,279,280,5,35,0,0,280,281,5,35,0,0,281,4,1,0,0,0,282,283,7,
- 1,0,0,283,284,7,2,0,0,284,285,7,3,0,0,285,286,7,1,0,0,286,287,7,
- 4,0,0,287,288,7,5,0,0,288,289,7,6,0,0,289,290,7,7,0,0,290,291,7,
- 4,0,0,291,292,5,95,0,0,292,293,7,1,0,0,293,294,7,8,0,0,294,295,7,
- 6,0,0,295,296,7,9,0,0,296,297,7,6,0,0,297,298,7,5,0,0,298,299,5,
- 95,0,0,299,300,7,4,0,0,300,301,7,10,0,0,301,302,7,1,0,0,302,303,
- 7,4,0,0,303,6,1,0,0,0,304,305,7,1,0,0,305,306,7,2,0,0,306,307,7,
- 3,0,0,307,308,7,1,0,0,308,309,7,4,0,0,309,310,7,5,0,0,310,311,7,
- 6,0,0,311,312,7,7,0,0,312,313,7,4,0,0,313,314,5,95,0,0,314,315,7,
- 6,0,0,315,316,7,11,0,0,316,317,7,11,0,0,317,318,7,5,0,0,318,319,
- 7,10,0,0,319,320,7,11,0,0,320,321,7,6,0,0,321,322,7,4,0,0,322,323,
- 7,10,0,0,323,324,5,95,0,0,324,325,7,4,0,0,325,326,7,10,0,0,326,327,
- 7,1,0,0,327,328,7,4,0,0,328,8,1,0,0,0,329,330,7,1,0,0,330,331,7,
- 2,0,0,331,332,7,3,0,0,332,333,7,1,0,0,333,334,7,4,0,0,334,335,7,
- 5,0,0,335,336,7,6,0,0,336,337,7,7,0,0,337,338,7,4,0,0,338,339,5,
- 95,0,0,339,340,7,7,0,0,340,341,7,12,0,0,341,342,7,8,0,0,342,343,
- 7,9,0,0,343,344,7,2,0,0,344,345,7,13,0,0,345,346,7,10,0,0,346,10,
- 1,0,0,0,347,348,7,1,0,0,348,349,7,2,0,0,349,350,7,3,0,0,350,351,
- 7,1,0,0,351,352,7,4,0,0,352,353,7,5,0,0,353,354,7,6,0,0,354,355,
- 7,7,0,0,355,356,7,4,0,0,356,357,5,95,0,0,357,358,7,13,0,0,358,359,
- 7,10,0,0,359,360,7,14,0,0,360,361,7,10,0,0,361,362,7,12,0,0,362,
- 363,7,13,0,0,363,364,7,10,0,0,364,365,7,12,0,0,365,366,7,8,0,0,366,
- 367,7,15,0,0,367,12,1,0,0,0,368,370,7,16,0,0,369,371,3,107,53,0,
- 370,369,1,0,0,0,371,372,1,0,0,0,372,370,1,0,0,0,372,373,1,0,0,0,
- 373,380,1,0,0,0,374,376,5,46,0,0,375,377,3,107,53,0,376,375,1,0,
- 0,0,377,378,1,0,0,0,378,376,1,0,0,0,378,379,1,0,0,0,379,381,1,0,
- 0,0,380,374,1,0,0,0,380,381,1,0,0,0,381,14,1,0,0,0,382,383,5,35,
- 0,0,383,384,5,32,0,0,384,388,1,0,0,0,385,387,8,17,0,0,386,385,1,
- 0,0,0,387,390,1,0,0,0,388,386,1,0,0,0,388,389,1,0,0,0,389,392,1,
- 0,0,0,390,388,1,0,0,0,391,393,5,13,0,0,392,391,1,0,0,0,392,393,1,
- 0,0,0,393,394,1,0,0,0,394,395,5,10,0,0,395,16,1,0,0,0,396,397,7,
- 13,0,0,397,398,7,10,0,0,398,399,7,18,0,0,399,400,7,7,0,0,400,401,
- 7,12,0,0,401,402,7,10,0,0,402,18,1,0,0,0,403,404,5,60,0,0,404,405,
- 5,33,0,0,405,406,7,10,0,0,406,407,7,5,0,0,407,408,7,5,0,0,408,409,
- 7,19,0,0,409,410,7,5,0,0,410,411,5,62,0,0,411,20,1,0,0,0,412,413,
- 5,60,0,0,413,414,5,33,0,0,414,415,7,2,0,0,415,416,7,12,0,0,416,417,
- 7,13,0,0,417,418,7,10,0,0,418,419,7,18,0,0,419,420,7,7,0,0,420,421,
- 7,12,0,0,421,422,7,10,0,0,422,423,7,13,0,0,423,424,5,62,0,0,424,
- 22,1,0,0,0,425,426,7,19,0,0,426,427,7,16,0,0,427,428,7,10,0,0,428,
- 429,7,5,0,0,429,430,7,18,0,0,430,431,7,9,0,0,431,432,7,19,0,0,432,
- 433,7,20,0,0,433,24,1,0,0,0,434,435,7,5,0,0,435,436,7,19,0,0,436,
- 437,7,2,0,0,437,438,7,12,0,0,438,439,7,13,0,0,439,440,7,7,0,0,440,
- 441,7,12,0,0,441,442,7,11,0,0,442,26,1,0,0,0,443,444,7,10,0,0,444,
- 445,7,5,0,0,445,446,7,5,0,0,446,447,7,19,0,0,447,448,7,5,0,0,448,
- 28,1,0,0,0,449,450,7,1,0,0,450,451,7,6,0,0,451,452,7,4,0,0,452,453,
- 7,2,0,0,453,454,7,5,0,0,454,455,7,6,0,0,455,456,7,4,0,0,456,457,
- 7,10,0,0,457,30,1,0,0,0,458,459,7,1,0,0,459,460,7,7,0,0,460,461,
- 7,9,0,0,461,462,7,10,0,0,462,463,7,12,0,0,463,464,7,4,0,0,464,32,
- 1,0,0,0,465,466,7,4,0,0,466,467,7,7,0,0,467,468,7,10,0,0,468,469,
- 5,95,0,0,469,470,7,4,0,0,470,471,7,19,0,0,471,472,5,95,0,0,472,473,
- 7,10,0,0,473,474,7,16,0,0,474,475,7,10,0,0,475,476,7,12,0,0,476,
- 34,1,0,0,0,477,478,7,12,0,0,478,479,7,6,0,0,479,480,7,12,0,0,480,
- 36,1,0,0,0,481,482,7,6,0,0,482,483,7,8,0,0,483,484,7,8,0,0,484,485,
- 7,10,0,0,485,486,7,14,0,0,486,487,7,4,0,0,487,488,5,95,0,0,488,489,
- 7,12,0,0,489,490,7,2,0,0,490,491,7,9,0,0,491,492,7,9,0,0,492,493,
- 7,1,0,0,493,38,1,0,0,0,494,495,7,7,0,0,495,496,7,11,0,0,496,497,
- 7,12,0,0,497,498,7,19,0,0,498,499,7,5,0,0,499,500,7,10,0,0,500,501,
- 5,95,0,0,501,502,7,12,0,0,502,503,7,2,0,0,503,504,7,9,0,0,504,505,
- 7,9,0,0,505,506,7,1,0,0,506,40,1,0,0,0,507,508,7,12,0,0,508,509,
- 7,2,0,0,509,510,7,9,0,0,510,511,7,9,0,0,511,512,5,95,0,0,512,513,
- 7,21,0,0,513,514,7,6,0,0,514,515,7,12,0,0,515,516,7,13,0,0,516,517,
- 7,9,0,0,517,518,7,7,0,0,518,519,7,12,0,0,519,520,7,11,0,0,520,42,
- 1,0,0,0,521,522,7,1,0,0,522,523,7,14,0,0,523,524,7,6,0,0,524,525,
- 7,8,0,0,525,526,7,10,0,0,526,527,7,1,0,0,527,528,5,95,0,0,528,529,
- 7,19,0,0,529,530,7,12,0,0,530,531,7,9,0,0,531,532,7,15,0,0,532,44,
- 1,0,0,0,533,534,7,4,0,0,534,535,7,5,0,0,535,536,7,2,0,0,536,537,
- 7,12,0,0,537,538,7,8,0,0,538,539,7,6,0,0,539,540,7,4,0,0,540,541,
- 7,10,0,0,541,46,1,0,0,0,542,544,7,22,0,0,543,542,1,0,0,0,543,544,
- 1,0,0,0,544,545,1,0,0,0,545,546,3,261,130,0,546,48,1,0,0,0,547,549,
- 7,22,0,0,548,547,1,0,0,0,548,549,1,0,0,0,549,551,1,0,0,0,550,552,
- 7,23,0,0,551,550,1,0,0,0,552,553,1,0,0,0,553,551,1,0,0,0,553,554,
- 1,0,0,0,554,561,1,0,0,0,555,557,5,46,0,0,556,558,7,23,0,0,557,556,
- 1,0,0,0,558,559,1,0,0,0,559,557,1,0,0,0,559,560,1,0,0,0,560,562,
- 1,0,0,0,561,555,1,0,0,0,561,562,1,0,0,0,562,50,1,0,0,0,563,565,7,
- 22,0,0,564,563,1,0,0,0,564,565,1,0,0,0,565,567,1,0,0,0,566,568,7,
- 23,0,0,567,566,1,0,0,0,568,569,1,0,0,0,569,567,1,0,0,0,569,570,1,
- 0,0,0,570,578,1,0,0,0,571,575,5,46,0,0,572,574,7,23,0,0,573,572,
- 1,0,0,0,574,577,1,0,0,0,575,573,1,0,0,0,575,576,1,0,0,0,576,579,
- 1,0,0,0,577,575,1,0,0,0,578,571,1,0,0,0,578,579,1,0,0,0,579,589,
- 1,0,0,0,580,582,7,10,0,0,581,583,7,22,0,0,582,581,1,0,0,0,582,583,
- 1,0,0,0,583,585,1,0,0,0,584,586,7,23,0,0,585,584,1,0,0,0,586,587,
- 1,0,0,0,587,585,1,0,0,0,587,588,1,0,0,0,588,590,1,0,0,0,589,580,
- 1,0,0,0,589,590,1,0,0,0,590,602,1,0,0,0,591,593,7,22,0,0,592,591,
- 1,0,0,0,592,593,1,0,0,0,593,594,1,0,0,0,594,595,7,7,0,0,595,596,
- 7,12,0,0,596,602,7,18,0,0,597,598,7,1,0,0,598,599,7,12,0,0,599,600,
- 7,6,0,0,600,602,7,12,0,0,601,564,1,0,0,0,601,592,1,0,0,0,601,597,
- 1,0,0,0,602,52,1,0,0,0,603,604,7,4,0,0,604,605,7,5,0,0,605,606,7,
- 2,0,0,606,613,7,10,0,0,607,608,7,18,0,0,608,609,7,6,0,0,609,610,
- 7,9,0,0,610,611,7,1,0,0,611,613,7,10,0,0,612,603,1,0,0,0,612,607,
- 1,0,0,0,613,54,1,0,0,0,614,615,7,23,0,0,615,616,7,23,0,0,616,617,
- 7,23,0,0,617,618,7,23,0,0,618,56,1,0,0,0,619,620,7,23,0,0,620,621,
- 7,23,0,0,621,58,1,0,0,0,622,623,5,39,0,0,623,624,3,55,27,0,624,625,
- 5,45,0,0,625,626,3,57,28,0,626,627,5,45,0,0,627,628,3,57,28,0,628,
- 629,7,4,0,0,629,630,3,57,28,0,630,631,5,58,0,0,631,632,3,57,28,0,
- 632,633,5,58,0,0,633,640,3,57,28,0,634,636,5,46,0,0,635,637,7,23,
- 0,0,636,635,1,0,0,0,637,638,1,0,0,0,638,636,1,0,0,0,638,639,1,0,
- 0,0,639,641,1,0,0,0,640,634,1,0,0,0,640,641,1,0,0,0,641,642,1,0,
- 0,0,642,643,7,22,0,0,643,644,3,57,28,0,644,645,5,58,0,0,645,646,
- 3,57,28,0,646,647,5,39,0,0,647,60,1,0,0,0,648,649,5,39,0,0,649,650,
- 3,55,27,0,650,651,5,45,0,0,651,652,3,57,28,0,652,653,5,45,0,0,653,
- 654,3,57,28,0,654,655,7,4,0,0,655,656,3,57,28,0,656,657,5,58,0,0,
- 657,658,3,57,28,0,658,659,5,58,0,0,659,666,3,57,28,0,660,662,5,46,
- 0,0,661,663,7,23,0,0,662,661,1,0,0,0,663,664,1,0,0,0,664,662,1,0,
- 0,0,664,665,1,0,0,0,665,667,1,0,0,0,666,660,1,0,0,0,666,667,1,0,
- 0,0,667,668,1,0,0,0,668,669,5,39,0,0,669,62,1,0,0,0,670,671,5,39,
- 0,0,671,672,3,57,28,0,672,673,5,58,0,0,673,674,3,57,28,0,674,675,
- 5,58,0,0,675,682,3,57,28,0,676,678,5,46,0,0,677,679,7,23,0,0,678,
- 677,1,0,0,0,679,680,1,0,0,0,680,678,1,0,0,0,680,681,1,0,0,0,681,
- 683,1,0,0,0,682,676,1,0,0,0,682,683,1,0,0,0,683,684,1,0,0,0,684,
- 685,5,39,0,0,685,64,1,0,0,0,686,687,5,39,0,0,687,688,3,55,27,0,688,
- 689,5,45,0,0,689,690,3,57,28,0,690,691,5,45,0,0,691,692,3,57,28,
- 0,692,693,5,39,0,0,693,66,1,0,0,0,694,695,7,14,0,0,695,68,1,0,0,
- 0,696,697,7,4,0,0,697,70,1,0,0,0,698,699,7,15,0,0,699,72,1,0,0,0,
- 700,701,7,24,0,0,701,74,1,0,0,0,702,703,7,13,0,0,703,76,1,0,0,0,
- 704,705,7,21,0,0,705,78,1,0,0,0,706,707,7,1,0,0,707,80,1,0,0,0,708,
- 709,7,18,0,0,709,82,1,0,0,0,710,711,3,231,115,0,711,84,1,0,0,0,712,
- 713,3,229,114,0,713,86,1,0,0,0,714,715,5,39,0,0,715,716,3,67,33,
- 0,716,717,3,47,23,0,717,721,3,71,35,0,718,719,3,47,23,0,719,720,
- 3,73,36,0,720,722,1,0,0,0,721,718,1,0,0,0,721,722,1,0,0,0,722,723,
- 1,0,0,0,723,724,5,39,0,0,724,732,1,0,0,0,725,726,5,39,0,0,726,727,
- 3,67,33,0,727,728,3,47,23,0,728,729,3,73,36,0,729,730,5,39,0,0,730,
- 732,1,0,0,0,731,714,1,0,0,0,731,725,1,0,0,0,732,88,1,0,0,0,733,734,
- 5,39,0,0,734,735,3,67,33,0,735,736,3,47,23,0,736,740,3,75,37,0,737,
- 738,3,69,34,0,738,739,3,91,45,0,739,741,1,0,0,0,740,737,1,0,0,0,
- 740,741,1,0,0,0,741,742,1,0,0,0,742,743,5,39,0,0,743,751,1,0,0,0,
- 744,745,5,39,0,0,745,746,3,67,33,0,746,747,3,69,34,0,747,748,3,91,
- 45,0,748,749,5,39,0,0,749,751,1,0,0,0,750,733,1,0,0,0,750,744,1,
- 0,0,0,751,90,1,0,0,0,752,753,3,47,23,0,753,757,3,77,38,0,754,755,
- 3,47,23,0,755,756,3,73,36,0,756,758,1,0,0,0,757,754,1,0,0,0,757,
- 758,1,0,0,0,758,762,1,0,0,0,759,760,3,49,24,0,760,761,3,79,39,0,
- 761,763,1,0,0,0,762,759,1,0,0,0,762,763,1,0,0,0,763,775,1,0,0,0,
- 764,765,3,47,23,0,765,769,3,73,36,0,766,767,3,49,24,0,767,768,3,
- 79,39,0,768,770,1,0,0,0,769,766,1,0,0,0,769,770,1,0,0,0,770,775,
- 1,0,0,0,771,772,3,49,24,0,772,773,3,79,39,0,773,775,1,0,0,0,774,
- 752,1,0,0,0,774,764,1,0,0,0,774,771,1,0,0,0,775,92,1,0,0,0,776,777,
- 5,39,0,0,777,781,3,67,33,0,778,779,3,47,23,0,779,780,3,71,35,0,780,
- 782,1,0,0,0,781,778,1,0,0,0,781,782,1,0,0,0,782,786,1,0,0,0,783,
- 784,3,47,23,0,784,785,3,73,36,0,785,787,1,0,0,0,786,783,1,0,0,0,
- 786,787,1,0,0,0,787,791,1,0,0,0,788,789,3,47,23,0,789,790,3,75,37,
- 0,790,792,1,0,0,0,791,788,1,0,0,0,791,792,1,0,0,0,792,796,1,0,0,
- 0,793,794,3,69,34,0,794,795,3,91,45,0,795,797,1,0,0,0,796,793,1,
- 0,0,0,796,797,1,0,0,0,797,798,1,0,0,0,798,799,5,39,0,0,799,94,1,
- 0,0,0,800,801,7,12,0,0,801,802,7,2,0,0,802,803,7,9,0,0,803,804,7,
- 9,0,0,804,96,1,0,0,0,805,813,5,39,0,0,806,807,5,92,0,0,807,812,9,
- 0,0,0,808,809,5,39,0,0,809,812,5,39,0,0,810,812,8,25,0,0,811,806,
- 1,0,0,0,811,808,1,0,0,0,811,810,1,0,0,0,812,815,1,0,0,0,813,811,
- 1,0,0,0,813,814,1,0,0,0,814,816,1,0,0,0,815,813,1,0,0,0,816,817,
- 5,39,0,0,817,98,1,0,0,0,818,819,7,10,0,0,819,820,7,12,0,0,820,821,
- 7,2,0,0,821,822,7,24,0,0,822,100,1,0,0,0,823,824,7,8,0,0,824,825,
- 7,19,0,0,825,826,7,9,0,0,826,827,1,0,0,0,827,828,3,261,130,0,828,
- 102,1,0,0,0,829,830,5,47,0,0,830,831,5,47,0,0,831,835,1,0,0,0,832,
- 834,8,17,0,0,833,832,1,0,0,0,834,837,1,0,0,0,835,833,1,0,0,0,835,
- 836,1,0,0,0,836,838,1,0,0,0,837,835,1,0,0,0,838,839,6,51,0,0,839,
- 104,1,0,0,0,840,841,5,47,0,0,841,842,5,42,0,0,842,850,1,0,0,0,843,
- 851,8,26,0,0,844,846,5,42,0,0,845,844,1,0,0,0,846,847,1,0,0,0,847,
- 845,1,0,0,0,847,848,1,0,0,0,848,849,1,0,0,0,849,851,8,27,0,0,850,
- 843,1,0,0,0,850,845,1,0,0,0,851,855,1,0,0,0,852,854,5,42,0,0,853,
- 852,1,0,0,0,854,857,1,0,0,0,855,853,1,0,0,0,855,856,1,0,0,0,856,
- 858,1,0,0,0,857,855,1,0,0,0,858,859,5,42,0,0,859,860,5,47,0,0,860,
- 861,1,0,0,0,861,862,6,52,0,0,862,106,1,0,0,0,863,864,7,23,0,0,864,
- 108,1,0,0,0,865,866,7,7,0,0,866,867,7,18,0,0,867,110,1,0,0,0,868,
- 869,7,4,0,0,869,870,7,21,0,0,870,871,7,10,0,0,871,872,7,12,0,0,872,
- 112,1,0,0,0,873,874,7,10,0,0,874,875,7,9,0,0,875,876,7,1,0,0,876,
- 877,7,10,0,0,877,114,1,0,0,0,878,879,7,18,0,0,879,880,7,2,0,0,880,
- 881,7,12,0,0,881,882,7,8,0,0,882,116,1,0,0,0,883,884,7,3,0,0,884,
- 885,7,19,0,0,885,886,7,19,0,0,886,887,7,9,0,0,887,888,7,10,0,0,888,
- 889,7,6,0,0,889,890,7,12,0,0,890,118,1,0,0,0,891,892,7,7,0,0,892,
- 893,5,56,0,0,893,120,1,0,0,0,894,895,7,7,0,0,895,896,5,49,0,0,896,
- 897,5,54,0,0,897,122,1,0,0,0,898,899,7,7,0,0,899,900,5,51,0,0,900,
- 901,5,50,0,0,901,124,1,0,0,0,902,903,7,7,0,0,903,904,5,54,0,0,904,
- 905,5,52,0,0,905,126,1,0,0,0,906,907,7,18,0,0,907,908,7,14,0,0,908,
- 909,5,51,0,0,909,910,5,50,0,0,910,128,1,0,0,0,911,912,7,18,0,0,912,
- 913,7,14,0,0,913,914,5,54,0,0,914,915,5,52,0,0,915,130,1,0,0,0,916,
- 917,7,1,0,0,917,918,7,4,0,0,918,919,7,5,0,0,919,920,7,7,0,0,920,
- 921,7,12,0,0,921,922,7,11,0,0,922,132,1,0,0,0,923,924,7,3,0,0,924,
- 925,7,7,0,0,925,926,7,12,0,0,926,927,7,6,0,0,927,928,7,5,0,0,928,
- 929,7,15,0,0,929,134,1,0,0,0,930,931,7,4,0,0,931,932,7,7,0,0,932,
- 933,7,24,0,0,933,934,7,10,0,0,934,935,7,1,0,0,935,936,7,4,0,0,936,
- 937,7,6,0,0,937,938,7,24,0,0,938,939,7,14,0,0,939,136,1,0,0,0,940,
- 941,7,4,0,0,941,942,7,7,0,0,942,943,7,24,0,0,943,944,7,10,0,0,944,
- 945,7,1,0,0,945,946,7,4,0,0,946,947,7,6,0,0,947,948,7,24,0,0,948,
- 949,7,14,0,0,949,950,5,95,0,0,950,951,7,4,0,0,951,952,7,28,0,0,952,
- 138,1,0,0,0,953,954,7,13,0,0,954,955,7,6,0,0,955,956,7,4,0,0,956,
- 957,7,10,0,0,957,140,1,0,0,0,958,959,7,4,0,0,959,960,7,7,0,0,960,
- 961,7,24,0,0,961,962,7,10,0,0,962,142,1,0,0,0,963,964,7,7,0,0,964,
- 965,7,12,0,0,965,966,7,4,0,0,966,967,7,10,0,0,967,968,7,5,0,0,968,
- 969,7,16,0,0,969,970,7,6,0,0,970,971,7,9,0,0,971,972,5,95,0,0,972,
- 973,7,15,0,0,973,974,7,10,0,0,974,975,7,6,0,0,975,976,7,5,0,0,976,
- 144,1,0,0,0,977,978,7,7,0,0,978,979,7,12,0,0,979,980,7,4,0,0,980,
- 981,7,10,0,0,981,982,7,5,0,0,982,983,7,16,0,0,983,984,7,6,0,0,984,
- 985,7,9,0,0,985,986,5,95,0,0,986,987,7,13,0,0,987,988,7,6,0,0,988,
- 989,7,15,0,0,989,146,1,0,0,0,990,991,7,7,0,0,991,992,7,12,0,0,992,
- 993,7,4,0,0,993,994,7,10,0,0,994,995,7,5,0,0,995,996,7,16,0,0,996,
- 997,7,6,0,0,997,998,7,9,0,0,998,999,5,95,0,0,999,1000,7,8,0,0,1000,
- 1001,7,19,0,0,1001,1002,7,24,0,0,1002,1003,7,14,0,0,1003,1004,7,
- 19,0,0,1004,1005,7,2,0,0,1005,1006,7,12,0,0,1006,1007,7,13,0,0,1007,
- 148,1,0,0,0,1008,1009,7,2,0,0,1009,1010,7,2,0,0,1010,1011,7,7,0,
- 0,1011,1012,7,13,0,0,1012,150,1,0,0,0,1013,1014,7,13,0,0,1014,1015,
- 7,10,0,0,1015,1016,7,8,0,0,1016,1017,7,7,0,0,1017,1018,7,24,0,0,
- 1018,1019,7,6,0,0,1019,1020,7,9,0,0,1020,152,1,0,0,0,1021,1022,7,
- 14,0,0,1022,1023,7,5,0,0,1023,1024,7,10,0,0,1024,1025,7,8,0,0,1025,
- 1026,7,7,0,0,1026,1027,7,1,0,0,1027,1028,7,7,0,0,1028,1029,7,19,
- 0,0,1029,1030,7,12,0,0,1030,1031,5,95,0,0,1031,1032,7,4,0,0,1032,
- 1033,7,7,0,0,1033,1034,7,24,0,0,1034,1035,7,10,0,0,1035,154,1,0,
- 0,0,1036,1037,7,14,0,0,1037,1038,7,5,0,0,1038,1039,7,10,0,0,1039,
- 1040,7,8,0,0,1040,1041,7,7,0,0,1041,1042,7,1,0,0,1042,1043,7,7,0,
- 0,1043,1044,7,19,0,0,1044,1045,7,12,0,0,1045,1046,5,95,0,0,1046,
- 1047,7,4,0,0,1047,1048,7,7,0,0,1048,1049,7,24,0,0,1049,1050,7,10,
- 0,0,1050,1051,7,1,0,0,1051,1052,7,4,0,0,1052,1053,7,6,0,0,1053,1054,
- 7,24,0,0,1054,1055,7,14,0,0,1055,156,1,0,0,0,1056,1057,7,14,0,0,
- 1057,1058,7,5,0,0,1058,1059,7,10,0,0,1059,1060,7,8,0,0,1060,1061,
- 7,7,0,0,1061,1062,7,1,0,0,1062,1063,7,7,0,0,1063,1064,7,19,0,0,1064,
- 1065,7,12,0,0,1065,1066,5,95,0,0,1066,1067,7,4,0,0,1067,1068,7,7,
- 0,0,1068,1069,7,24,0,0,1069,1070,7,10,0,0,1070,1071,7,1,0,0,1071,
- 1072,7,4,0,0,1072,1073,7,6,0,0,1073,1074,7,24,0,0,1074,1075,7,14,
- 0,0,1075,1076,5,95,0,0,1076,1077,7,4,0,0,1077,1078,7,28,0,0,1078,
- 158,1,0,0,0,1079,1080,7,18,0,0,1080,1081,7,7,0,0,1081,1082,7,29,
- 0,0,1082,1083,7,10,0,0,1083,1084,7,13,0,0,1084,1085,7,8,0,0,1085,
- 1086,7,21,0,0,1086,1087,7,6,0,0,1087,1088,7,5,0,0,1088,160,1,0,0,
- 0,1089,1090,7,16,0,0,1090,1091,7,6,0,0,1091,1092,7,5,0,0,1092,1093,
- 7,8,0,0,1093,1094,7,21,0,0,1094,1095,7,6,0,0,1095,1096,7,5,0,0,1096,
- 162,1,0,0,0,1097,1098,7,18,0,0,1098,1099,7,7,0,0,1099,1100,7,29,
- 0,0,1100,1101,7,10,0,0,1101,1102,7,13,0,0,1102,1103,7,3,0,0,1103,
- 1104,7,7,0,0,1104,1105,7,12,0,0,1105,1106,7,6,0,0,1106,1107,7,5,
- 0,0,1107,1108,7,15,0,0,1108,164,1,0,0,0,1109,1110,7,1,0,0,1110,1111,
- 7,4,0,0,1111,1112,7,5,0,0,1112,1113,7,2,0,0,1113,1114,7,8,0,0,1114,
- 1115,7,4,0,0,1115,166,1,0,0,0,1116,1117,7,12,0,0,1117,1118,7,1,0,
- 0,1118,1119,7,4,0,0,1119,1120,7,5,0,0,1120,1121,7,2,0,0,1121,1122,
- 7,8,0,0,1122,1123,7,4,0,0,1123,168,1,0,0,0,1124,1125,7,9,0,0,1125,
- 1126,7,7,0,0,1126,1127,7,1,0,0,1127,1128,7,4,0,0,1128,170,1,0,0,
- 0,1129,1130,7,24,0,0,1130,1131,7,6,0,0,1131,1132,7,14,0,0,1132,172,
- 1,0,0,0,1133,1134,7,2,0,0,1134,1135,5,33,0,0,1135,174,1,0,0,0,1136,
- 1137,7,3,0,0,1137,1138,7,19,0,0,1138,1139,7,19,0,0,1139,1140,7,9,
- 0,0,1140,176,1,0,0,0,1141,1142,7,1,0,0,1142,1143,7,4,0,0,1143,1144,
- 7,5,0,0,1144,178,1,0,0,0,1145,1146,7,16,0,0,1146,1147,7,3,0,0,1147,
- 1148,7,7,0,0,1148,1149,7,12,0,0,1149,180,1,0,0,0,1150,1151,7,4,0,
- 0,1151,1152,7,1,0,0,1152,182,1,0,0,0,1153,1154,7,4,0,0,1154,1155,
- 7,1,0,0,1155,1156,7,4,0,0,1156,1157,7,28,0,0,1157,184,1,0,0,0,1158,
- 1159,7,7,0,0,1159,1160,7,15,0,0,1160,1161,7,10,0,0,1161,1162,7,6,
- 0,0,1162,1163,7,5,0,0,1163,186,1,0,0,0,1164,1165,7,7,0,0,1165,1166,
- 7,13,0,0,1166,1167,7,6,0,0,1167,1168,7,15,0,0,1168,188,1,0,0,0,1169,
- 1170,7,7,0,0,1170,1171,7,8,0,0,1171,1172,7,19,0,0,1172,1173,7,24,
- 0,0,1173,1174,7,14,0,0,1174,1175,7,19,0,0,1175,1176,7,2,0,0,1176,
- 1177,7,12,0,0,1177,1178,7,13,0,0,1178,190,1,0,0,0,1179,1180,7,13,
- 0,0,1180,1181,7,10,0,0,1181,1182,7,8,0,0,1182,192,1,0,0,0,1183,1184,
- 7,14,0,0,1184,1185,7,4,0,0,1185,194,1,0,0,0,1186,1187,7,14,0,0,1187,
- 1188,7,4,0,0,1188,1189,7,1,0,0,1189,196,1,0,0,0,1190,1191,7,14,0,
- 0,1191,1192,7,4,0,0,1192,1193,7,1,0,0,1193,1194,7,4,0,0,1194,1195,
- 7,28,0,0,1195,198,1,0,0,0,1196,1197,7,18,0,0,1197,1198,7,8,0,0,1198,
- 1199,7,21,0,0,1199,1200,7,6,0,0,1200,1201,7,5,0,0,1201,200,1,0,0,
- 0,1202,1203,7,16,0,0,1203,1204,7,8,0,0,1204,1205,7,21,0,0,1205,1206,
- 7,6,0,0,1206,1207,7,5,0,0,1207,202,1,0,0,0,1208,1209,7,18,0,0,1209,
- 1210,7,3,0,0,1210,1211,7,7,0,0,1211,1212,7,12,0,0,1212,204,1,0,0,
- 0,1213,1214,7,6,0,0,1214,1215,7,12,0,0,1215,1216,7,15,0,0,1216,206,
- 1,0,0,0,1217,1218,3,205,102,0,1218,1219,7,23,0,0,1219,208,1,0,0,
- 0,1220,1221,5,58,0,0,1221,1222,5,58,0,0,1222,210,1,0,0,0,1223,1224,
- 5,43,0,0,1224,212,1,0,0,0,1225,1226,5,45,0,0,1226,214,1,0,0,0,1227,
- 1228,5,42,0,0,1228,216,1,0,0,0,1229,1230,5,47,0,0,1230,218,1,0,0,
- 0,1231,1232,5,37,0,0,1232,220,1,0,0,0,1233,1234,5,61,0,0,1234,222,
- 1,0,0,0,1235,1236,5,33,0,0,1236,1237,5,61,0,0,1237,224,1,0,0,0,1238,
- 1239,5,62,0,0,1239,1240,5,61,0,0,1240,226,1,0,0,0,1241,1242,5,60,
- 0,0,1242,1243,5,61,0,0,1243,228,1,0,0,0,1244,1245,5,62,0,0,1245,
- 230,1,0,0,0,1246,1247,5,60,0,0,1247,232,1,0,0,0,1248,1249,5,33,0,
- 0,1249,234,1,0,0,0,1250,1251,5,40,0,0,1251,236,1,0,0,0,1252,1253,
- 5,41,0,0,1253,238,1,0,0,0,1254,1255,5,91,0,0,1255,240,1,0,0,0,1256,
- 1257,5,93,0,0,1257,242,1,0,0,0,1258,1259,5,44,0,0,1259,244,1,0,0,
- 0,1260,1261,5,58,0,0,1261,246,1,0,0,0,1262,1263,5,63,0,0,1263,248,
- 1,0,0,0,1264,1265,5,35,0,0,1265,250,1,0,0,0,1266,1267,5,46,0,0,1267,
- 252,1,0,0,0,1268,1269,7,6,0,0,1269,1270,7,12,0,0,1270,1271,7,13,
- 0,0,1271,254,1,0,0,0,1272,1273,7,19,0,0,1273,1274,7,5,0,0,1274,256,
- 1,0,0,0,1275,1276,5,58,0,0,1276,1277,5,61,0,0,1277,258,1,0,0,0,1278,
- 1279,5,45,0,0,1279,1280,5,62,0,0,1280,260,1,0,0,0,1281,1285,2,49,
- 57,0,1282,1284,3,263,131,0,1283,1282,1,0,0,0,1284,1287,1,0,0,0,1285,
- 1283,1,0,0,0,1285,1286,1,0,0,0,1286,1290,1,0,0,0,1287,1285,1,0,0,
- 0,1288,1290,5,48,0,0,1289,1281,1,0,0,0,1289,1288,1,0,0,0,1290,262,
- 1,0,0,0,1291,1292,2,48,57,0,1292,264,1,0,0,0,1293,1295,5,45,0,0,
- 1294,1293,1,0,0,0,1294,1295,1,0,0,0,1295,1296,1,0,0,0,1296,1297,
- 3,261,130,0,1297,266,1,0,0,0,1298,1303,7,30,0,0,1299,1302,7,30,0,
- 0,1300,1302,3,263,131,0,1301,1299,1,0,0,0,1301,1300,1,0,0,0,1302,
- 1305,1,0,0,0,1303,1301,1,0,0,0,1303,1304,1,0,0,0,1304,268,1,0,0,
- 0,1305,1303,1,0,0,0,1306,1308,5,13,0,0,1307,1309,5,10,0,0,1308,1307,
- 1,0,0,0,1308,1309,1,0,0,0,1309,1312,1,0,0,0,1310,1312,5,10,0,0,1311,
- 1306,1,0,0,0,1311,1310,1,0,0,0,1312,270,1,0,0,0,53,0,274,372,378,
- 380,388,392,543,548,553,559,561,564,569,575,578,582,587,589,592,
- 601,612,638,640,664,666,680,682,721,731,740,750,757,762,769,774,
- 781,786,791,796,811,813,835,847,850,855,1285,1289,1294,1301,1303,
- 1308,1311,1,0,1,0
+ 120,249,121,251,0,253,0,255,122,257,123,259,124,1,0,31,3,0,9,10,
+ 13,13,32,32,2,0,83,83,115,115,2,0,85,85,117,117,2,0,66,66,98,98,
+ 2,0,84,84,116,116,2,0,82,82,114,114,2,0,65,65,97,97,2,0,73,73,105,
+ 105,2,0,67,67,99,99,2,0,76,76,108,108,2,0,69,69,101,101,2,0,71,71,
+ 103,103,2,0,78,78,110,110,2,0,68,68,100,100,2,0,80,80,112,112,2,
+ 0,89,89,121,121,2,0,86,86,118,118,2,0,10,10,13,13,2,0,70,70,102,
+ 102,2,0,79,79,111,111,2,0,87,87,119,119,2,0,72,72,104,104,2,0,43,
+ 43,45,45,1,0,48,57,2,0,77,77,109,109,2,0,39,39,92,92,1,0,42,42,2,
+ 0,42,42,47,47,2,0,90,90,122,122,2,0,88,88,120,120,4,0,36,36,65,90,
+ 95,95,97,122,1315,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,
+ 0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,
+ 0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,
+ 0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,
+ 0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,
+ 0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,
+ 0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,
+ 0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,
+ 0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,93,1,0,0,
+ 0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,
+ 0,0,0,105,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,
+ 1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,
+ 0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,
+ 0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,
+ 143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,
+ 0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,
+ 1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,
+ 0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,
+ 0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,
+ 189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,
+ 0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,
+ 1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,
+ 0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,
+ 0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,
+ 235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,
+ 0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,255,1,0,0,0,0,257,
+ 1,0,0,0,0,259,1,0,0,0,1,262,1,0,0,0,3,268,1,0,0,0,5,272,1,0,0,0,
+ 7,294,1,0,0,0,9,319,1,0,0,0,11,337,1,0,0,0,13,358,1,0,0,0,15,372,
+ 1,0,0,0,17,386,1,0,0,0,19,393,1,0,0,0,21,402,1,0,0,0,23,415,1,0,
+ 0,0,25,424,1,0,0,0,27,433,1,0,0,0,29,439,1,0,0,0,31,448,1,0,0,0,
+ 33,455,1,0,0,0,35,467,1,0,0,0,37,471,1,0,0,0,39,484,1,0,0,0,41,497,
+ 1,0,0,0,43,511,1,0,0,0,45,523,1,0,0,0,47,533,1,0,0,0,49,538,1,0,
+ 0,0,51,591,1,0,0,0,53,602,1,0,0,0,55,604,1,0,0,0,57,609,1,0,0,0,
+ 59,612,1,0,0,0,61,638,1,0,0,0,63,660,1,0,0,0,65,676,1,0,0,0,67,684,
+ 1,0,0,0,69,686,1,0,0,0,71,688,1,0,0,0,73,690,1,0,0,0,75,692,1,0,
+ 0,0,77,694,1,0,0,0,79,696,1,0,0,0,81,698,1,0,0,0,83,700,1,0,0,0,
+ 85,702,1,0,0,0,87,721,1,0,0,0,89,740,1,0,0,0,91,764,1,0,0,0,93,766,
+ 1,0,0,0,95,790,1,0,0,0,97,795,1,0,0,0,99,808,1,0,0,0,101,813,1,0,
+ 0,0,103,819,1,0,0,0,105,830,1,0,0,0,107,853,1,0,0,0,109,855,1,0,
+ 0,0,111,858,1,0,0,0,113,863,1,0,0,0,115,868,1,0,0,0,117,873,1,0,
+ 0,0,119,881,1,0,0,0,121,884,1,0,0,0,123,888,1,0,0,0,125,892,1,0,
+ 0,0,127,896,1,0,0,0,129,901,1,0,0,0,131,906,1,0,0,0,133,913,1,0,
+ 0,0,135,920,1,0,0,0,137,925,1,0,0,0,139,939,1,0,0,0,141,952,1,0,
+ 0,0,143,970,1,0,0,0,145,975,1,0,0,0,147,983,1,0,0,0,149,998,1,0,
+ 0,0,151,1018,1,0,0,0,153,1041,1,0,0,0,155,1051,1,0,0,0,157,1059,
+ 1,0,0,0,159,1071,1,0,0,0,161,1078,1,0,0,0,163,1086,1,0,0,0,165,1091,
+ 1,0,0,0,167,1095,1,0,0,0,169,1098,1,0,0,0,171,1103,1,0,0,0,173,1107,
+ 1,0,0,0,175,1112,1,0,0,0,177,1118,1,0,0,0,179,1123,1,0,0,0,181,1133,
+ 1,0,0,0,183,1137,1,0,0,0,185,1140,1,0,0,0,187,1144,1,0,0,0,189,1150,
+ 1,0,0,0,191,1156,1,0,0,0,193,1162,1,0,0,0,195,1167,1,0,0,0,197,1171,
+ 1,0,0,0,199,1174,1,0,0,0,201,1177,1,0,0,0,203,1179,1,0,0,0,205,1181,
+ 1,0,0,0,207,1183,1,0,0,0,209,1185,1,0,0,0,211,1187,1,0,0,0,213,1189,
+ 1,0,0,0,215,1192,1,0,0,0,217,1195,1,0,0,0,219,1198,1,0,0,0,221,1200,
+ 1,0,0,0,223,1202,1,0,0,0,225,1204,1,0,0,0,227,1206,1,0,0,0,229,1208,
+ 1,0,0,0,231,1210,1,0,0,0,233,1212,1,0,0,0,235,1214,1,0,0,0,237,1216,
+ 1,0,0,0,239,1218,1,0,0,0,241,1220,1,0,0,0,243,1222,1,0,0,0,245,1226,
+ 1,0,0,0,247,1229,1,0,0,0,249,1232,1,0,0,0,251,1243,1,0,0,0,253,1245,
+ 1,0,0,0,255,1248,1,0,0,0,257,1252,1,0,0,0,259,1265,1,0,0,0,261,263,
+ 7,0,0,0,262,261,1,0,0,0,263,264,1,0,0,0,264,262,1,0,0,0,264,265,
+ 1,0,0,0,265,266,1,0,0,0,266,267,6,0,0,0,267,2,1,0,0,0,268,269,5,
+ 35,0,0,269,270,5,35,0,0,270,271,5,35,0,0,271,4,1,0,0,0,272,273,7,
+ 1,0,0,273,274,7,2,0,0,274,275,7,3,0,0,275,276,7,1,0,0,276,277,7,
+ 4,0,0,277,278,7,5,0,0,278,279,7,6,0,0,279,280,7,7,0,0,280,281,7,
+ 4,0,0,281,282,5,95,0,0,282,283,7,1,0,0,283,284,7,8,0,0,284,285,7,
+ 6,0,0,285,286,7,9,0,0,286,287,7,6,0,0,287,288,7,5,0,0,288,289,5,
+ 95,0,0,289,290,7,4,0,0,290,291,7,10,0,0,291,292,7,1,0,0,292,293,
+ 7,4,0,0,293,6,1,0,0,0,294,295,7,1,0,0,295,296,7,2,0,0,296,297,7,
+ 3,0,0,297,298,7,1,0,0,298,299,7,4,0,0,299,300,7,5,0,0,300,301,7,
+ 6,0,0,301,302,7,7,0,0,302,303,7,4,0,0,303,304,5,95,0,0,304,305,7,
+ 6,0,0,305,306,7,11,0,0,306,307,7,11,0,0,307,308,7,5,0,0,308,309,
+ 7,10,0,0,309,310,7,11,0,0,310,311,7,6,0,0,311,312,7,4,0,0,312,313,
+ 7,10,0,0,313,314,5,95,0,0,314,315,7,4,0,0,315,316,7,10,0,0,316,317,
+ 7,1,0,0,317,318,7,4,0,0,318,8,1,0,0,0,319,320,7,1,0,0,320,321,7,
+ 2,0,0,321,322,7,3,0,0,322,323,7,1,0,0,323,324,7,4,0,0,324,325,7,
+ 5,0,0,325,326,7,6,0,0,326,327,7,7,0,0,327,328,7,4,0,0,328,329,5,
+ 95,0,0,329,330,7,7,0,0,330,331,7,12,0,0,331,332,7,8,0,0,332,333,
+ 7,9,0,0,333,334,7,2,0,0,334,335,7,13,0,0,335,336,7,10,0,0,336,10,
+ 1,0,0,0,337,338,7,1,0,0,338,339,7,2,0,0,339,340,7,3,0,0,340,341,
+ 7,1,0,0,341,342,7,4,0,0,342,343,7,5,0,0,343,344,7,6,0,0,344,345,
+ 7,7,0,0,345,346,7,4,0,0,346,347,5,95,0,0,347,348,7,13,0,0,348,349,
+ 7,10,0,0,349,350,7,14,0,0,350,351,7,10,0,0,351,352,7,12,0,0,352,
+ 353,7,13,0,0,353,354,7,10,0,0,354,355,7,12,0,0,355,356,7,8,0,0,356,
+ 357,7,15,0,0,357,12,1,0,0,0,358,360,7,16,0,0,359,361,3,107,53,0,
+ 360,359,1,0,0,0,361,362,1,0,0,0,362,360,1,0,0,0,362,363,1,0,0,0,
+ 363,370,1,0,0,0,364,366,5,46,0,0,365,367,3,107,53,0,366,365,1,0,
+ 0,0,367,368,1,0,0,0,368,366,1,0,0,0,368,369,1,0,0,0,369,371,1,0,
+ 0,0,370,364,1,0,0,0,370,371,1,0,0,0,371,14,1,0,0,0,372,373,5,35,
+ 0,0,373,374,5,32,0,0,374,378,1,0,0,0,375,377,8,17,0,0,376,375,1,
+ 0,0,0,377,380,1,0,0,0,378,376,1,0,0,0,378,379,1,0,0,0,379,382,1,
+ 0,0,0,380,378,1,0,0,0,381,383,5,13,0,0,382,381,1,0,0,0,382,383,1,
+ 0,0,0,383,384,1,0,0,0,384,385,5,10,0,0,385,16,1,0,0,0,386,387,7,
+ 13,0,0,387,388,7,10,0,0,388,389,7,18,0,0,389,390,7,7,0,0,390,391,
+ 7,12,0,0,391,392,7,10,0,0,392,18,1,0,0,0,393,394,5,60,0,0,394,395,
+ 5,33,0,0,395,396,7,10,0,0,396,397,7,5,0,0,397,398,7,5,0,0,398,399,
+ 7,19,0,0,399,400,7,5,0,0,400,401,5,62,0,0,401,20,1,0,0,0,402,403,
+ 5,60,0,0,403,404,5,33,0,0,404,405,7,2,0,0,405,406,7,12,0,0,406,407,
+ 7,13,0,0,407,408,7,10,0,0,408,409,7,18,0,0,409,410,7,7,0,0,410,411,
+ 7,12,0,0,411,412,7,10,0,0,412,413,7,13,0,0,413,414,5,62,0,0,414,
+ 22,1,0,0,0,415,416,7,19,0,0,416,417,7,16,0,0,417,418,7,10,0,0,418,
+ 419,7,5,0,0,419,420,7,18,0,0,420,421,7,9,0,0,421,422,7,19,0,0,422,
+ 423,7,20,0,0,423,24,1,0,0,0,424,425,7,5,0,0,425,426,7,19,0,0,426,
+ 427,7,2,0,0,427,428,7,12,0,0,428,429,7,13,0,0,429,430,7,7,0,0,430,
+ 431,7,12,0,0,431,432,7,11,0,0,432,26,1,0,0,0,433,434,7,10,0,0,434,
+ 435,7,5,0,0,435,436,7,5,0,0,436,437,7,19,0,0,437,438,7,5,0,0,438,
+ 28,1,0,0,0,439,440,7,1,0,0,440,441,7,6,0,0,441,442,7,4,0,0,442,443,
+ 7,2,0,0,443,444,7,5,0,0,444,445,7,6,0,0,445,446,7,4,0,0,446,447,
+ 7,10,0,0,447,30,1,0,0,0,448,449,7,1,0,0,449,450,7,7,0,0,450,451,
+ 7,9,0,0,451,452,7,10,0,0,452,453,7,12,0,0,453,454,7,4,0,0,454,32,
+ 1,0,0,0,455,456,7,4,0,0,456,457,7,7,0,0,457,458,7,10,0,0,458,459,
+ 5,95,0,0,459,460,7,4,0,0,460,461,7,19,0,0,461,462,5,95,0,0,462,463,
+ 7,10,0,0,463,464,7,16,0,0,464,465,7,10,0,0,465,466,7,12,0,0,466,
+ 34,1,0,0,0,467,468,7,12,0,0,468,469,7,6,0,0,469,470,7,12,0,0,470,
+ 36,1,0,0,0,471,472,7,6,0,0,472,473,7,8,0,0,473,474,7,8,0,0,474,475,
+ 7,10,0,0,475,476,7,14,0,0,476,477,7,4,0,0,477,478,5,95,0,0,478,479,
+ 7,12,0,0,479,480,7,2,0,0,480,481,7,9,0,0,481,482,7,9,0,0,482,483,
+ 7,1,0,0,483,38,1,0,0,0,484,485,7,7,0,0,485,486,7,11,0,0,486,487,
+ 7,12,0,0,487,488,7,19,0,0,488,489,7,5,0,0,489,490,7,10,0,0,490,491,
+ 5,95,0,0,491,492,7,12,0,0,492,493,7,2,0,0,493,494,7,9,0,0,494,495,
+ 7,9,0,0,495,496,7,1,0,0,496,40,1,0,0,0,497,498,7,12,0,0,498,499,
+ 7,2,0,0,499,500,7,9,0,0,500,501,7,9,0,0,501,502,5,95,0,0,502,503,
+ 7,21,0,0,503,504,7,6,0,0,504,505,7,12,0,0,505,506,7,13,0,0,506,507,
+ 7,9,0,0,507,508,7,7,0,0,508,509,7,12,0,0,509,510,7,11,0,0,510,42,
+ 1,0,0,0,511,512,7,1,0,0,512,513,7,14,0,0,513,514,7,6,0,0,514,515,
+ 7,8,0,0,515,516,7,10,0,0,516,517,7,1,0,0,517,518,5,95,0,0,518,519,
+ 7,19,0,0,519,520,7,12,0,0,520,521,7,9,0,0,521,522,7,15,0,0,522,44,
+ 1,0,0,0,523,524,7,4,0,0,524,525,7,5,0,0,525,526,7,2,0,0,526,527,
+ 7,12,0,0,527,528,7,8,0,0,528,529,7,6,0,0,529,530,7,4,0,0,530,531,
+ 7,10,0,0,531,46,1,0,0,0,532,534,7,22,0,0,533,532,1,0,0,0,533,534,
+ 1,0,0,0,534,535,1,0,0,0,535,536,3,251,125,0,536,48,1,0,0,0,537,539,
+ 7,22,0,0,538,537,1,0,0,0,538,539,1,0,0,0,539,541,1,0,0,0,540,542,
+ 7,23,0,0,541,540,1,0,0,0,542,543,1,0,0,0,543,541,1,0,0,0,543,544,
+ 1,0,0,0,544,551,1,0,0,0,545,547,5,46,0,0,546,548,7,23,0,0,547,546,
+ 1,0,0,0,548,549,1,0,0,0,549,547,1,0,0,0,549,550,1,0,0,0,550,552,
+ 1,0,0,0,551,545,1,0,0,0,551,552,1,0,0,0,552,50,1,0,0,0,553,555,7,
+ 22,0,0,554,553,1,0,0,0,554,555,1,0,0,0,555,557,1,0,0,0,556,558,7,
+ 23,0,0,557,556,1,0,0,0,558,559,1,0,0,0,559,557,1,0,0,0,559,560,1,
+ 0,0,0,560,568,1,0,0,0,561,565,5,46,0,0,562,564,7,23,0,0,563,562,
+ 1,0,0,0,564,567,1,0,0,0,565,563,1,0,0,0,565,566,1,0,0,0,566,569,
+ 1,0,0,0,567,565,1,0,0,0,568,561,1,0,0,0,568,569,1,0,0,0,569,579,
+ 1,0,0,0,570,572,7,10,0,0,571,573,7,22,0,0,572,571,1,0,0,0,572,573,
+ 1,0,0,0,573,575,1,0,0,0,574,576,7,23,0,0,575,574,1,0,0,0,576,577,
+ 1,0,0,0,577,575,1,0,0,0,577,578,1,0,0,0,578,580,1,0,0,0,579,570,
+ 1,0,0,0,579,580,1,0,0,0,580,592,1,0,0,0,581,583,7,22,0,0,582,581,
+ 1,0,0,0,582,583,1,0,0,0,583,584,1,0,0,0,584,585,7,7,0,0,585,586,
+ 7,12,0,0,586,592,7,18,0,0,587,588,7,1,0,0,588,589,7,12,0,0,589,590,
+ 7,6,0,0,590,592,7,12,0,0,591,554,1,0,0,0,591,582,1,0,0,0,591,587,
+ 1,0,0,0,592,52,1,0,0,0,593,594,7,4,0,0,594,595,7,5,0,0,595,596,7,
+ 2,0,0,596,603,7,10,0,0,597,598,7,18,0,0,598,599,7,6,0,0,599,600,
+ 7,9,0,0,600,601,7,1,0,0,601,603,7,10,0,0,602,593,1,0,0,0,602,597,
+ 1,0,0,0,603,54,1,0,0,0,604,605,7,23,0,0,605,606,7,23,0,0,606,607,
+ 7,23,0,0,607,608,7,23,0,0,608,56,1,0,0,0,609,610,7,23,0,0,610,611,
+ 7,23,0,0,611,58,1,0,0,0,612,613,5,39,0,0,613,614,3,55,27,0,614,615,
+ 5,45,0,0,615,616,3,57,28,0,616,617,5,45,0,0,617,618,3,57,28,0,618,
+ 619,7,4,0,0,619,620,3,57,28,0,620,621,5,58,0,0,621,622,3,57,28,0,
+ 622,623,5,58,0,0,623,630,3,57,28,0,624,626,5,46,0,0,625,627,7,23,
+ 0,0,626,625,1,0,0,0,627,628,1,0,0,0,628,626,1,0,0,0,628,629,1,0,
+ 0,0,629,631,1,0,0,0,630,624,1,0,0,0,630,631,1,0,0,0,631,632,1,0,
+ 0,0,632,633,7,22,0,0,633,634,3,57,28,0,634,635,5,58,0,0,635,636,
+ 3,57,28,0,636,637,5,39,0,0,637,60,1,0,0,0,638,639,5,39,0,0,639,640,
+ 3,55,27,0,640,641,5,45,0,0,641,642,3,57,28,0,642,643,5,45,0,0,643,
+ 644,3,57,28,0,644,645,7,4,0,0,645,646,3,57,28,0,646,647,5,58,0,0,
+ 647,648,3,57,28,0,648,649,5,58,0,0,649,656,3,57,28,0,650,652,5,46,
+ 0,0,651,653,7,23,0,0,652,651,1,0,0,0,653,654,1,0,0,0,654,652,1,0,
+ 0,0,654,655,1,0,0,0,655,657,1,0,0,0,656,650,1,0,0,0,656,657,1,0,
+ 0,0,657,658,1,0,0,0,658,659,5,39,0,0,659,62,1,0,0,0,660,661,5,39,
+ 0,0,661,662,3,57,28,0,662,663,5,58,0,0,663,664,3,57,28,0,664,665,
+ 5,58,0,0,665,672,3,57,28,0,666,668,5,46,0,0,667,669,7,23,0,0,668,
+ 667,1,0,0,0,669,670,1,0,0,0,670,668,1,0,0,0,670,671,1,0,0,0,671,
+ 673,1,0,0,0,672,666,1,0,0,0,672,673,1,0,0,0,673,674,1,0,0,0,674,
+ 675,5,39,0,0,675,64,1,0,0,0,676,677,5,39,0,0,677,678,3,55,27,0,678,
+ 679,5,45,0,0,679,680,3,57,28,0,680,681,5,45,0,0,681,682,3,57,28,
+ 0,682,683,5,39,0,0,683,66,1,0,0,0,684,685,7,14,0,0,685,68,1,0,0,
+ 0,686,687,7,4,0,0,687,70,1,0,0,0,688,689,7,15,0,0,689,72,1,0,0,0,
+ 690,691,7,24,0,0,691,74,1,0,0,0,692,693,7,13,0,0,693,76,1,0,0,0,
+ 694,695,7,21,0,0,695,78,1,0,0,0,696,697,7,1,0,0,697,80,1,0,0,0,698,
+ 699,7,18,0,0,699,82,1,0,0,0,700,701,3,221,110,0,701,84,1,0,0,0,702,
+ 703,3,219,109,0,703,86,1,0,0,0,704,705,5,39,0,0,705,706,3,67,33,
+ 0,706,707,3,47,23,0,707,711,3,71,35,0,708,709,3,47,23,0,709,710,
+ 3,73,36,0,710,712,1,0,0,0,711,708,1,0,0,0,711,712,1,0,0,0,712,713,
+ 1,0,0,0,713,714,5,39,0,0,714,722,1,0,0,0,715,716,5,39,0,0,716,717,
+ 3,67,33,0,717,718,3,47,23,0,718,719,3,73,36,0,719,720,5,39,0,0,720,
+ 722,1,0,0,0,721,704,1,0,0,0,721,715,1,0,0,0,722,88,1,0,0,0,723,724,
+ 5,39,0,0,724,725,3,67,33,0,725,726,3,47,23,0,726,730,3,75,37,0,727,
+ 728,3,69,34,0,728,729,3,91,45,0,729,731,1,0,0,0,730,727,1,0,0,0,
+ 730,731,1,0,0,0,731,732,1,0,0,0,732,733,5,39,0,0,733,741,1,0,0,0,
+ 734,735,5,39,0,0,735,736,3,67,33,0,736,737,3,69,34,0,737,738,3,91,
+ 45,0,738,739,5,39,0,0,739,741,1,0,0,0,740,723,1,0,0,0,740,734,1,
+ 0,0,0,741,90,1,0,0,0,742,743,3,47,23,0,743,747,3,77,38,0,744,745,
+ 3,47,23,0,745,746,3,73,36,0,746,748,1,0,0,0,747,744,1,0,0,0,747,
+ 748,1,0,0,0,748,752,1,0,0,0,749,750,3,49,24,0,750,751,3,79,39,0,
+ 751,753,1,0,0,0,752,749,1,0,0,0,752,753,1,0,0,0,753,765,1,0,0,0,
+ 754,755,3,47,23,0,755,759,3,73,36,0,756,757,3,49,24,0,757,758,3,
+ 79,39,0,758,760,1,0,0,0,759,756,1,0,0,0,759,760,1,0,0,0,760,765,
+ 1,0,0,0,761,762,3,49,24,0,762,763,3,79,39,0,763,765,1,0,0,0,764,
+ 742,1,0,0,0,764,754,1,0,0,0,764,761,1,0,0,0,765,92,1,0,0,0,766,767,
+ 5,39,0,0,767,771,3,67,33,0,768,769,3,47,23,0,769,770,3,71,35,0,770,
+ 772,1,0,0,0,771,768,1,0,0,0,771,772,1,0,0,0,772,776,1,0,0,0,773,
+ 774,3,47,23,0,774,775,3,73,36,0,775,777,1,0,0,0,776,773,1,0,0,0,
+ 776,777,1,0,0,0,777,781,1,0,0,0,778,779,3,47,23,0,779,780,3,75,37,
+ 0,780,782,1,0,0,0,781,778,1,0,0,0,781,782,1,0,0,0,782,786,1,0,0,
+ 0,783,784,3,69,34,0,784,785,3,91,45,0,785,787,1,0,0,0,786,783,1,
+ 0,0,0,786,787,1,0,0,0,787,788,1,0,0,0,788,789,5,39,0,0,789,94,1,
+ 0,0,0,790,791,7,12,0,0,791,792,7,2,0,0,792,793,7,9,0,0,793,794,7,
+ 9,0,0,794,96,1,0,0,0,795,803,5,39,0,0,796,797,5,92,0,0,797,802,9,
+ 0,0,0,798,799,5,39,0,0,799,802,5,39,0,0,800,802,8,25,0,0,801,796,
+ 1,0,0,0,801,798,1,0,0,0,801,800,1,0,0,0,802,805,1,0,0,0,803,801,
+ 1,0,0,0,803,804,1,0,0,0,804,806,1,0,0,0,805,803,1,0,0,0,806,807,
+ 5,39,0,0,807,98,1,0,0,0,808,809,7,10,0,0,809,810,7,12,0,0,810,811,
+ 7,2,0,0,811,812,7,24,0,0,812,100,1,0,0,0,813,814,7,8,0,0,814,815,
+ 7,19,0,0,815,816,7,9,0,0,816,817,1,0,0,0,817,818,3,251,125,0,818,
+ 102,1,0,0,0,819,820,5,47,0,0,820,821,5,47,0,0,821,825,1,0,0,0,822,
+ 824,8,17,0,0,823,822,1,0,0,0,824,827,1,0,0,0,825,823,1,0,0,0,825,
+ 826,1,0,0,0,826,828,1,0,0,0,827,825,1,0,0,0,828,829,6,51,0,0,829,
+ 104,1,0,0,0,830,831,5,47,0,0,831,832,5,42,0,0,832,840,1,0,0,0,833,
+ 841,8,26,0,0,834,836,5,42,0,0,835,834,1,0,0,0,836,837,1,0,0,0,837,
+ 835,1,0,0,0,837,838,1,0,0,0,838,839,1,0,0,0,839,841,8,27,0,0,840,
+ 833,1,0,0,0,840,835,1,0,0,0,841,845,1,0,0,0,842,844,5,42,0,0,843,
+ 842,1,0,0,0,844,847,1,0,0,0,845,843,1,0,0,0,845,846,1,0,0,0,846,
+ 848,1,0,0,0,847,845,1,0,0,0,848,849,5,42,0,0,849,850,5,47,0,0,850,
+ 851,1,0,0,0,851,852,6,52,0,0,852,106,1,0,0,0,853,854,7,23,0,0,854,
+ 108,1,0,0,0,855,856,7,7,0,0,856,857,7,18,0,0,857,110,1,0,0,0,858,
+ 859,7,4,0,0,859,860,7,21,0,0,860,861,7,10,0,0,861,862,7,12,0,0,862,
+ 112,1,0,0,0,863,864,7,10,0,0,864,865,7,9,0,0,865,866,7,1,0,0,866,
+ 867,7,10,0,0,867,114,1,0,0,0,868,869,7,18,0,0,869,870,7,2,0,0,870,
+ 871,7,12,0,0,871,872,7,8,0,0,872,116,1,0,0,0,873,874,7,3,0,0,874,
+ 875,7,19,0,0,875,876,7,19,0,0,876,877,7,9,0,0,877,878,7,10,0,0,878,
+ 879,7,6,0,0,879,880,7,12,0,0,880,118,1,0,0,0,881,882,7,7,0,0,882,
+ 883,5,56,0,0,883,120,1,0,0,0,884,885,7,7,0,0,885,886,5,49,0,0,886,
+ 887,5,54,0,0,887,122,1,0,0,0,888,889,7,7,0,0,889,890,5,51,0,0,890,
+ 891,5,50,0,0,891,124,1,0,0,0,892,893,7,7,0,0,893,894,5,54,0,0,894,
+ 895,5,52,0,0,895,126,1,0,0,0,896,897,7,18,0,0,897,898,7,14,0,0,898,
+ 899,5,51,0,0,899,900,5,50,0,0,900,128,1,0,0,0,901,902,7,18,0,0,902,
+ 903,7,14,0,0,903,904,5,54,0,0,904,905,5,52,0,0,905,130,1,0,0,0,906,
+ 907,7,1,0,0,907,908,7,4,0,0,908,909,7,5,0,0,909,910,7,7,0,0,910,
+ 911,7,12,0,0,911,912,7,11,0,0,912,132,1,0,0,0,913,914,7,3,0,0,914,
+ 915,7,7,0,0,915,916,7,12,0,0,916,917,7,6,0,0,917,918,7,5,0,0,918,
+ 919,7,15,0,0,919,134,1,0,0,0,920,921,7,13,0,0,921,922,7,6,0,0,922,
+ 923,7,4,0,0,923,924,7,10,0,0,924,136,1,0,0,0,925,926,7,7,0,0,926,
+ 927,7,12,0,0,927,928,7,4,0,0,928,929,7,10,0,0,929,930,7,5,0,0,930,
+ 931,7,16,0,0,931,932,7,6,0,0,932,933,7,9,0,0,933,934,5,95,0,0,934,
+ 935,7,15,0,0,935,936,7,10,0,0,936,937,7,6,0,0,937,938,7,5,0,0,938,
+ 138,1,0,0,0,939,940,7,7,0,0,940,941,7,12,0,0,941,942,7,4,0,0,942,
+ 943,7,10,0,0,943,944,7,5,0,0,944,945,7,16,0,0,945,946,7,6,0,0,946,
+ 947,7,9,0,0,947,948,5,95,0,0,948,949,7,13,0,0,949,950,7,6,0,0,950,
+ 951,7,15,0,0,951,140,1,0,0,0,952,953,7,7,0,0,953,954,7,12,0,0,954,
+ 955,7,4,0,0,955,956,7,10,0,0,956,957,7,5,0,0,957,958,7,16,0,0,958,
+ 959,7,6,0,0,959,960,7,9,0,0,960,961,5,95,0,0,961,962,7,8,0,0,962,
+ 963,7,19,0,0,963,964,7,24,0,0,964,965,7,14,0,0,965,966,7,19,0,0,
+ 966,967,7,2,0,0,967,968,7,12,0,0,968,969,7,13,0,0,969,142,1,0,0,
+ 0,970,971,7,2,0,0,971,972,7,2,0,0,972,973,7,7,0,0,973,974,7,13,0,
+ 0,974,144,1,0,0,0,975,976,7,13,0,0,976,977,7,10,0,0,977,978,7,8,
+ 0,0,978,979,7,7,0,0,979,980,7,24,0,0,980,981,7,6,0,0,981,982,7,9,
+ 0,0,982,146,1,0,0,0,983,984,7,14,0,0,984,985,7,5,0,0,985,986,7,10,
+ 0,0,986,987,7,8,0,0,987,988,7,7,0,0,988,989,7,1,0,0,989,990,7,7,
+ 0,0,990,991,7,19,0,0,991,992,7,12,0,0,992,993,5,95,0,0,993,994,7,
+ 4,0,0,994,995,7,7,0,0,995,996,7,24,0,0,996,997,7,10,0,0,997,148,
+ 1,0,0,0,998,999,7,14,0,0,999,1000,7,5,0,0,1000,1001,7,10,0,0,1001,
+ 1002,7,8,0,0,1002,1003,7,7,0,0,1003,1004,7,1,0,0,1004,1005,7,7,0,
+ 0,1005,1006,7,19,0,0,1006,1007,7,12,0,0,1007,1008,5,95,0,0,1008,
+ 1009,7,4,0,0,1009,1010,7,7,0,0,1010,1011,7,24,0,0,1011,1012,7,10,
+ 0,0,1012,1013,7,1,0,0,1013,1014,7,4,0,0,1014,1015,7,6,0,0,1015,1016,
+ 7,24,0,0,1016,1017,7,14,0,0,1017,150,1,0,0,0,1018,1019,7,14,0,0,
+ 1019,1020,7,5,0,0,1020,1021,7,10,0,0,1021,1022,7,8,0,0,1022,1023,
+ 7,7,0,0,1023,1024,7,1,0,0,1024,1025,7,7,0,0,1025,1026,7,19,0,0,1026,
+ 1027,7,12,0,0,1027,1028,5,95,0,0,1028,1029,7,4,0,0,1029,1030,7,7,
+ 0,0,1030,1031,7,24,0,0,1031,1032,7,10,0,0,1032,1033,7,1,0,0,1033,
+ 1034,7,4,0,0,1034,1035,7,6,0,0,1035,1036,7,24,0,0,1036,1037,7,14,
+ 0,0,1037,1038,5,95,0,0,1038,1039,7,4,0,0,1039,1040,7,28,0,0,1040,
+ 152,1,0,0,0,1041,1042,7,18,0,0,1042,1043,7,7,0,0,1043,1044,7,29,
+ 0,0,1044,1045,7,10,0,0,1045,1046,7,13,0,0,1046,1047,7,8,0,0,1047,
+ 1048,7,21,0,0,1048,1049,7,6,0,0,1049,1050,7,5,0,0,1050,154,1,0,0,
+ 0,1051,1052,7,16,0,0,1052,1053,7,6,0,0,1053,1054,7,5,0,0,1054,1055,
+ 7,8,0,0,1055,1056,7,21,0,0,1056,1057,7,6,0,0,1057,1058,7,5,0,0,1058,
+ 156,1,0,0,0,1059,1060,7,18,0,0,1060,1061,7,7,0,0,1061,1062,7,29,
+ 0,0,1062,1063,7,10,0,0,1063,1064,7,13,0,0,1064,1065,7,3,0,0,1065,
+ 1066,7,7,0,0,1066,1067,7,12,0,0,1067,1068,7,6,0,0,1068,1069,7,5,
+ 0,0,1069,1070,7,15,0,0,1070,158,1,0,0,0,1071,1072,7,1,0,0,1072,1073,
+ 7,4,0,0,1073,1074,7,5,0,0,1074,1075,7,2,0,0,1075,1076,7,8,0,0,1076,
+ 1077,7,4,0,0,1077,160,1,0,0,0,1078,1079,7,12,0,0,1079,1080,7,1,0,
+ 0,1080,1081,7,4,0,0,1081,1082,7,5,0,0,1082,1083,7,2,0,0,1083,1084,
+ 7,8,0,0,1084,1085,7,4,0,0,1085,162,1,0,0,0,1086,1087,7,9,0,0,1087,
+ 1088,7,7,0,0,1088,1089,7,1,0,0,1089,1090,7,4,0,0,1090,164,1,0,0,
+ 0,1091,1092,7,24,0,0,1092,1093,7,6,0,0,1093,1094,7,14,0,0,1094,166,
+ 1,0,0,0,1095,1096,7,2,0,0,1096,1097,5,33,0,0,1097,168,1,0,0,0,1098,
+ 1099,7,3,0,0,1099,1100,7,19,0,0,1100,1101,7,19,0,0,1101,1102,7,9,
+ 0,0,1102,170,1,0,0,0,1103,1104,7,1,0,0,1104,1105,7,4,0,0,1105,1106,
+ 7,5,0,0,1106,172,1,0,0,0,1107,1108,7,16,0,0,1108,1109,7,3,0,0,1109,
+ 1110,7,7,0,0,1110,1111,7,12,0,0,1111,174,1,0,0,0,1112,1113,7,7,0,
+ 0,1113,1114,7,15,0,0,1114,1115,7,10,0,0,1115,1116,7,6,0,0,1116,1117,
+ 7,5,0,0,1117,176,1,0,0,0,1118,1119,7,7,0,0,1119,1120,7,13,0,0,1120,
+ 1121,7,6,0,0,1121,1122,7,15,0,0,1122,178,1,0,0,0,1123,1124,7,7,0,
+ 0,1124,1125,7,8,0,0,1125,1126,7,19,0,0,1126,1127,7,24,0,0,1127,1128,
+ 7,14,0,0,1128,1129,7,19,0,0,1129,1130,7,2,0,0,1130,1131,7,12,0,0,
+ 1131,1132,7,13,0,0,1132,180,1,0,0,0,1133,1134,7,13,0,0,1134,1135,
+ 7,10,0,0,1135,1136,7,8,0,0,1136,182,1,0,0,0,1137,1138,7,14,0,0,1138,
+ 1139,7,4,0,0,1139,184,1,0,0,0,1140,1141,7,14,0,0,1141,1142,7,4,0,
+ 0,1142,1143,7,1,0,0,1143,186,1,0,0,0,1144,1145,7,14,0,0,1145,1146,
+ 7,4,0,0,1146,1147,7,1,0,0,1147,1148,7,4,0,0,1148,1149,7,28,0,0,1149,
+ 188,1,0,0,0,1150,1151,7,18,0,0,1151,1152,7,8,0,0,1152,1153,7,21,
+ 0,0,1153,1154,7,6,0,0,1154,1155,7,5,0,0,1155,190,1,0,0,0,1156,1157,
+ 7,16,0,0,1157,1158,7,8,0,0,1158,1159,7,21,0,0,1159,1160,7,6,0,0,
+ 1160,1161,7,5,0,0,1161,192,1,0,0,0,1162,1163,7,18,0,0,1163,1164,
+ 7,3,0,0,1164,1165,7,7,0,0,1165,1166,7,12,0,0,1166,194,1,0,0,0,1167,
+ 1168,7,6,0,0,1168,1169,7,12,0,0,1169,1170,7,15,0,0,1170,196,1,0,
+ 0,0,1171,1172,3,195,97,0,1172,1173,7,23,0,0,1173,198,1,0,0,0,1174,
+ 1175,5,58,0,0,1175,1176,5,58,0,0,1176,200,1,0,0,0,1177,1178,5,43,
+ 0,0,1178,202,1,0,0,0,1179,1180,5,45,0,0,1180,204,1,0,0,0,1181,1182,
+ 5,42,0,0,1182,206,1,0,0,0,1183,1184,5,47,0,0,1184,208,1,0,0,0,1185,
+ 1186,5,37,0,0,1186,210,1,0,0,0,1187,1188,5,61,0,0,1188,212,1,0,0,
+ 0,1189,1190,5,33,0,0,1190,1191,5,61,0,0,1191,214,1,0,0,0,1192,1193,
+ 5,62,0,0,1193,1194,5,61,0,0,1194,216,1,0,0,0,1195,1196,5,60,0,0,
+ 1196,1197,5,61,0,0,1197,218,1,0,0,0,1198,1199,5,62,0,0,1199,220,
+ 1,0,0,0,1200,1201,5,60,0,0,1201,222,1,0,0,0,1202,1203,5,33,0,0,1203,
+ 224,1,0,0,0,1204,1205,5,40,0,0,1205,226,1,0,0,0,1206,1207,5,41,0,
+ 0,1207,228,1,0,0,0,1208,1209,5,91,0,0,1209,230,1,0,0,0,1210,1211,
+ 5,93,0,0,1211,232,1,0,0,0,1212,1213,5,44,0,0,1213,234,1,0,0,0,1214,
+ 1215,5,58,0,0,1215,236,1,0,0,0,1216,1217,5,63,0,0,1217,238,1,0,0,
+ 0,1218,1219,5,35,0,0,1219,240,1,0,0,0,1220,1221,5,46,0,0,1221,242,
+ 1,0,0,0,1222,1223,7,6,0,0,1223,1224,7,12,0,0,1224,1225,7,13,0,0,
+ 1225,244,1,0,0,0,1226,1227,7,19,0,0,1227,1228,7,5,0,0,1228,246,1,
+ 0,0,0,1229,1230,5,58,0,0,1230,1231,5,61,0,0,1231,248,1,0,0,0,1232,
+ 1233,5,45,0,0,1233,1234,5,62,0,0,1234,250,1,0,0,0,1235,1239,2,49,
+ 57,0,1236,1238,3,253,126,0,1237,1236,1,0,0,0,1238,1241,1,0,0,0,1239,
+ 1237,1,0,0,0,1239,1240,1,0,0,0,1240,1244,1,0,0,0,1241,1239,1,0,0,
+ 0,1242,1244,5,48,0,0,1243,1235,1,0,0,0,1243,1242,1,0,0,0,1244,252,
+ 1,0,0,0,1245,1246,2,48,57,0,1246,254,1,0,0,0,1247,1249,5,45,0,0,
+ 1248,1247,1,0,0,0,1248,1249,1,0,0,0,1249,1250,1,0,0,0,1250,1251,
+ 3,251,125,0,1251,256,1,0,0,0,1252,1257,7,30,0,0,1253,1256,7,30,0,
+ 0,1254,1256,3,253,126,0,1255,1253,1,0,0,0,1255,1254,1,0,0,0,1256,
+ 1259,1,0,0,0,1257,1255,1,0,0,0,1257,1258,1,0,0,0,1258,258,1,0,0,
+ 0,1259,1257,1,0,0,0,1260,1262,5,13,0,0,1261,1263,5,10,0,0,1262,1261,
+ 1,0,0,0,1262,1263,1,0,0,0,1263,1266,1,0,0,0,1264,1266,5,10,0,0,1265,
+ 1260,1,0,0,0,1265,1264,1,0,0,0,1266,260,1,0,0,0,53,0,264,362,368,
+ 370,378,382,533,538,543,549,551,554,559,565,568,572,577,579,582,
+ 591,602,628,630,654,656,670,672,711,721,730,740,747,752,759,764,
+ 771,776,781,786,801,803,825,837,840,845,1239,1243,1248,1255,1257,
+ 1262,1265,1,0,1,0
]
class FuncTestCaseLexer(Lexer):
@@ -560,72 +543,67 @@ class FuncTestCaseLexer(Lexer):
FP64 = 61
String = 62
Binary = 63
- Timestamp = 64
- Timestamp_TZ = 65
- Date = 66
- Time = 67
- Interval_Year = 68
- Interval_Day = 69
- Interval_Compound = 70
- UUID = 71
- Decimal = 72
- Precision_Time = 73
- Precision_Timestamp = 74
- Precision_Timestamp_TZ = 75
- FixedChar = 76
- VarChar = 77
- FixedBinary = 78
- Struct = 79
- NStruct = 80
- List = 81
- Map = 82
- UserDefined = 83
- Bool = 84
- Str = 85
- VBin = 86
- Ts = 87
- TsTZ = 88
- IYear = 89
- IDay = 90
- ICompound = 91
- Dec = 92
- PT = 93
- PTs = 94
- PTsTZ = 95
- FChar = 96
- VChar = 97
- FBin = 98
- Any = 99
- AnyVar = 100
- DoubleColon = 101
- Plus = 102
- Minus = 103
- Asterisk = 104
- ForwardSlash = 105
- Percent = 106
- Eq = 107
- Ne = 108
- Gte = 109
- Lte = 110
- Gt = 111
- Lt = 112
- Bang = 113
- OParen = 114
- CParen = 115
- OBracket = 116
- CBracket = 117
- Comma = 118
- Colon = 119
- QMark = 120
- Hash = 121
- Dot = 122
- And = 123
- Or = 124
- Assign = 125
- Arrow = 126
- Number = 127
- Identifier = 128
- Newline = 129
+ Date = 64
+ Interval_Year = 65
+ Interval_Day = 66
+ Interval_Compound = 67
+ UUID = 68
+ Decimal = 69
+ Precision_Time = 70
+ Precision_Timestamp = 71
+ Precision_Timestamp_TZ = 72
+ FixedChar = 73
+ VarChar = 74
+ FixedBinary = 75
+ Struct = 76
+ NStruct = 77
+ List = 78
+ Map = 79
+ UserDefined = 80
+ Bool = 81
+ Str = 82
+ VBin = 83
+ IYear = 84
+ IDay = 85
+ ICompound = 86
+ Dec = 87
+ PT = 88
+ PTs = 89
+ PTsTZ = 90
+ FChar = 91
+ VChar = 92
+ FBin = 93
+ Any = 94
+ AnyVar = 95
+ DoubleColon = 96
+ Plus = 97
+ Minus = 98
+ Asterisk = 99
+ ForwardSlash = 100
+ Percent = 101
+ Eq = 102
+ Ne = 103
+ Gte = 104
+ Lte = 105
+ Gt = 106
+ Lt = 107
+ Bang = 108
+ OParen = 109
+ CParen = 110
+ OBracket = 111
+ CBracket = 112
+ Comma = 113
+ Colon = 114
+ QMark = 115
+ Hash = 116
+ Dot = 117
+ And = 118
+ Or = 119
+ Assign = 120
+ Arrow = 121
+ Number = 122
+ Identifier = 123
+ Newline = 124
channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]
@@ -640,17 +618,16 @@ class FuncTestCaseLexer(Lexer):
"'TRUNCATE'", "'P'", "'T'", "'Y'", "'M'", "'D'", "'H'", "'S'",
"'F'", "'null'", "'enum'", "'IF'", "'THEN'", "'ELSE'", "'FUNC'",
"'BOOLEAN'", "'I8'", "'I16'", "'I32'", "'I64'", "'FP32'", "'FP64'",
- "'STRING'", "'BINARY'", "'TIMESTAMP'", "'TIMESTAMP_TZ'", "'DATE'",
- "'TIME'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'", "'INTERVAL_COMPOUND'",
- "'UUID'", "'DECIMAL'", "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'",
- "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'",
- "'STRUCT'", "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'",
- "'STR'", "'VBIN'", "'TS'", "'TSTZ'", "'IYEAR'", "'IDAY'", "'ICOMPOUND'",
- "'DEC'", "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'",
- "'ANY'", "'::'", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'!='",
- "'>='", "'<='", "'>'", "'<'", "'!'", "'('", "')'", "'['", "']'",
- "','", "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'", "':='",
- "'->'" ]
+ "'STRING'", "'BINARY'", "'DATE'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'",
+ "'INTERVAL_COMPOUND'", "'UUID'", "'DECIMAL'", "'PRECISION_TIME'",
+ "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'",
+ "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'", "'NSTRUCT'", "'LIST'",
+ "'MAP'", "'U!'", "'BOOL'", "'STR'", "'VBIN'", "'IYEAR'", "'IDAY'",
+ "'ICOMPOUND'", "'DEC'", "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'",
+ "'VCHAR'", "'FBIN'", "'ANY'", "'::'", "'+'", "'-'", "'*'", "'/'",
+ "'%'", "'='", "'!='", "'>='", "'<='", "'>'", "'<'", "'!'", "'('",
+ "')'", "'['", "']'", "','", "':'", "'?'", "'#'", "'.'", "'AND'",
+ "'OR'", "':='", "'->'" ]
symbolicNames = [ "",
"Whitespace", "TripleHash", "SubstraitScalarTest", "SubstraitAggregateTest",
@@ -666,17 +643,17 @@ class FuncTestCaseLexer(Lexer):
"IntervalYearLiteral", "IntervalDayLiteral", "IntervalCompoundLiteral",
"NullLiteral", "StringLiteral", "EnumType", "ColumnName", "LineComment",
"BlockComment", "If", "Then", "Else", "Func", "Boolean", "I8",
- "I16", "I32", "I64", "FP32", "FP64", "String", "Binary", "Timestamp",
- "Timestamp_TZ", "Date", "Time", "Interval_Year", "Interval_Day",
- "Interval_Compound", "UUID", "Decimal", "Precision_Time", "Precision_Timestamp",
- "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary",
- "Struct", "NStruct", "List", "Map", "UserDefined", "Bool", "Str",
- "VBin", "Ts", "TsTZ", "IYear", "IDay", "ICompound", "Dec", "PT",
- "PTs", "PTsTZ", "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon",
- "Plus", "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq",
- "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OParen", "CParen",
- "OBracket", "CBracket", "Comma", "Colon", "QMark", "Hash", "Dot",
- "And", "Or", "Assign", "Arrow", "Number", "Identifier", "Newline" ]
+ "I16", "I32", "I64", "FP32", "FP64", "String", "Binary", "Date",
+ "Interval_Year", "Interval_Day", "Interval_Compound", "UUID",
+ "Decimal", "Precision_Time", "Precision_Timestamp", "Precision_Timestamp_TZ",
+ "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct",
+ "List", "Map", "UserDefined", "Bool", "Str", "VBin", "IYear",
+ "IDay", "ICompound", "Dec", "PT", "PTs", "PTsTZ", "FChar", "VChar",
+ "FBin", "Any", "AnyVar", "DoubleColon", "Plus", "Minus", "Asterisk",
+ "ForwardSlash", "Percent", "Eq", "Ne", "Gte", "Lte", "Gt", "Lt",
+ "Bang", "OParen", "CParen", "OBracket", "CBracket", "Comma",
+ "Colon", "QMark", "Hash", "Dot", "And", "Or", "Assign", "Arrow",
+ "Number", "Identifier", "Newline" ]
ruleNames = [ "Whitespace", "TripleHash", "SubstraitScalarTest", "SubstraitAggregateTest",
"SubstraitInclude", "SubstraitDependency", "FormatVersion",
@@ -694,18 +671,17 @@ class FuncTestCaseLexer(Lexer):
"EnumType", "ColumnName", "LineComment", "BlockComment",
"DIGIT", "If", "Then", "Else", "Func", "Boolean", "I8",
"I16", "I32", "I64", "FP32", "FP64", "String", "Binary",
- "Timestamp", "Timestamp_TZ", "Date", "Time", "Interval_Year",
- "Interval_Day", "Interval_Compound", "UUID", "Decimal",
- "Precision_Time", "Precision_Timestamp", "Precision_Timestamp_TZ",
- "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct",
- "List", "Map", "UserDefined", "Bool", "Str", "VBin", "Ts",
- "TsTZ", "IYear", "IDay", "ICompound", "Dec", "PT", "PTs",
- "PTsTZ", "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon",
- "Plus", "Minus", "Asterisk", "ForwardSlash", "Percent",
- "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OParen",
- "CParen", "OBracket", "CBracket", "Comma", "Colon", "QMark",
- "Hash", "Dot", "And", "Or", "Assign", "Arrow", "Int",
- "Digit", "Number", "Identifier", "Newline" ]
+ "Date", "Interval_Year", "Interval_Day", "Interval_Compound",
+ "UUID", "Decimal", "Precision_Time", "Precision_Timestamp",
+ "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary",
+ "Struct", "NStruct", "List", "Map", "UserDefined", "Bool",
+ "Str", "VBin", "IYear", "IDay", "ICompound", "Dec", "PT",
+ "PTs", "PTsTZ", "FChar", "VChar", "FBin", "Any", "AnyVar",
+ "DoubleColon", "Plus", "Minus", "Asterisk", "ForwardSlash",
+ "Percent", "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang",
+ "OParen", "CParen", "OBracket", "CBracket", "Comma", "Colon",
+ "QMark", "Hash", "Dot", "And", "Or", "Assign", "Arrow",
+ "Int", "Digit", "Number", "Identifier", "Newline" ]
grammarFileName = "FuncTestCaseLexer.g4"
diff --git a/tests/coverage/antlr_parser/FuncTestCaseParser.py b/tests/coverage/antlr_parser/FuncTestCaseParser.py
index fdc96e159..6527d0df7 100644
--- a/tests/coverage/antlr_parser/FuncTestCaseParser.py
+++ b/tests/coverage/antlr_parser/FuncTestCaseParser.py
@@ -11,7 +11,7 @@
def serializedATN():
return [
- 4,1,129,746,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,
+ 4,1,124,704,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,
7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,
13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,
20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,
@@ -22,271 +22,255 @@ def serializedATN():
52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,
59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,
65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,
- 72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,
- 78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,1,0,1,0,4,0,
- 171,8,0,11,0,12,0,172,1,0,1,0,1,1,1,1,1,1,5,1,180,8,1,10,1,12,1,
- 183,9,1,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,5,3,196,8,3,
- 10,3,12,3,199,9,3,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,6,1,6,1,6,1,6,1,
- 6,1,6,1,6,1,6,3,6,216,8,6,1,6,1,6,1,6,1,7,3,7,222,8,7,1,7,4,7,225,
- 8,7,11,7,12,7,226,1,7,3,7,230,8,7,1,7,4,7,233,8,7,11,7,12,7,234,
- 3,7,237,8,7,1,8,1,8,1,8,5,8,242,8,8,10,8,12,8,245,9,8,1,9,1,9,3,
- 9,249,8,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,
- 1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,
- 274,8,10,1,11,1,11,1,11,1,11,1,11,3,11,281,8,11,1,11,1,11,1,11,1,
- 12,1,12,1,12,1,12,3,12,290,8,12,1,12,1,12,1,12,1,12,1,12,1,12,3,
- 12,298,8,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,307,8,12,1,13,
- 1,13,1,13,1,13,1,13,1,13,5,13,315,8,13,10,13,12,13,318,9,13,1,13,
- 1,13,1,13,1,13,1,14,1,14,1,14,1,14,5,14,328,8,14,10,14,12,14,331,
- 9,14,3,14,333,8,14,1,14,1,14,1,15,1,15,1,15,1,15,1,16,1,16,1,16,
- 1,16,5,16,345,8,16,10,16,12,16,348,9,16,3,16,350,8,16,1,16,1,16,
- 1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,365,
- 8,17,1,18,1,18,1,18,5,18,370,8,18,10,18,12,18,373,9,18,1,19,1,19,
- 1,19,5,19,378,8,19,10,19,12,19,381,9,19,1,20,1,20,1,20,1,20,3,20,
- 387,8,20,1,21,1,21,1,21,1,21,3,21,393,8,21,1,22,1,22,1,22,3,22,398,
- 8,22,1,23,1,23,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,26,1,26,
- 1,26,1,26,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,29,
- 1,29,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,
- 1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,36,
- 1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,39,1,39,
- 1,39,1,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,42,1,42,1,42,
- 1,42,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,
- 1,46,1,46,1,46,1,46,5,46,494,8,46,10,46,12,46,497,9,46,3,46,499,
- 8,46,1,46,1,46,1,47,1,47,3,47,505,8,47,1,48,1,48,1,48,1,48,1,48,
- 1,48,1,49,1,49,1,49,1,49,1,49,4,49,518,8,49,11,49,12,49,519,1,49,
- 3,49,523,8,49,1,50,1,50,1,50,1,50,1,50,1,51,1,51,3,51,532,8,51,1,
- 52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,3,52,546,
- 8,52,1,52,1,52,1,52,3,52,551,8,52,3,52,553,8,52,1,53,1,53,3,53,557,
- 8,53,1,54,1,54,3,54,561,8,54,1,55,1,55,3,55,565,8,55,1,56,1,56,3,
- 56,569,8,56,1,57,1,57,3,57,573,8,57,1,58,1,58,3,58,577,8,58,1,59,
- 1,59,3,59,581,8,59,1,60,1,60,3,60,585,8,60,1,61,1,61,3,61,589,8,
- 61,1,62,1,62,3,62,593,8,62,1,63,1,63,3,63,597,8,63,1,63,1,63,1,63,
- 1,63,3,63,603,8,63,1,64,1,64,3,64,607,8,64,1,64,1,64,1,64,1,64,3,
- 64,613,8,64,1,65,1,65,3,65,617,8,65,1,65,1,65,1,65,1,65,1,66,1,66,
- 3,66,625,8,66,1,66,1,66,1,66,1,66,1,67,1,67,3,67,633,8,67,1,67,1,
- 67,1,67,1,67,1,68,1,68,3,68,641,8,68,1,68,1,68,1,68,1,68,1,68,1,
- 68,3,68,649,8,68,1,69,1,69,3,69,653,8,69,1,69,1,69,1,69,1,69,1,70,
- 1,70,3,70,661,8,70,1,70,1,70,1,70,1,70,1,71,1,71,3,71,669,8,71,1,
- 71,1,71,1,71,1,71,1,72,1,72,3,72,677,8,72,1,72,1,72,1,72,1,72,1,
- 73,1,73,3,73,685,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,
- 74,1,74,1,74,5,74,698,8,74,10,74,12,74,701,9,74,1,74,1,74,3,74,705,
- 8,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,3,75,
- 718,8,75,1,76,1,76,1,77,1,77,1,78,1,78,1,78,1,78,1,79,1,79,1,80,
- 1,80,1,81,1,81,1,81,5,81,735,8,81,10,81,12,81,738,9,81,1,82,1,82,
- 1,83,1,83,3,83,744,8,83,1,83,0,0,84,0,2,4,6,8,10,12,14,16,18,20,
- 22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,
- 66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,
- 108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,
- 140,142,144,146,148,150,152,154,156,158,160,162,164,166,0,23,1,0,
- 3,4,2,0,18,18,26,26,2,0,55,55,84,84,2,0,62,62,85,85,2,0,63,63,86,
- 86,1,0,56,59,1,0,60,61,2,0,64,64,87,87,2,0,65,65,88,88,2,0,68,68,
- 89,89,2,0,69,69,90,90,2,0,70,70,91,91,2,0,76,76,96,96,2,0,77,77,
- 97,97,2,0,78,78,98,98,2,0,72,72,92,92,2,0,73,73,93,93,2,0,74,74,
- 94,94,2,0,75,75,95,95,1,0,10,11,3,0,12,13,21,22,128,128,5,0,14,20,
- 23,23,27,27,45,45,128,128,2,0,23,23,123,124,777,0,168,1,0,0,0,2,
- 176,1,0,0,0,4,184,1,0,0,0,6,189,1,0,0,0,8,200,1,0,0,0,10,205,1,0,
- 0,0,12,207,1,0,0,0,14,236,1,0,0,0,16,238,1,0,0,0,18,248,1,0,0,0,
- 20,273,1,0,0,0,22,275,1,0,0,0,24,306,1,0,0,0,26,308,1,0,0,0,28,323,
- 1,0,0,0,30,336,1,0,0,0,32,340,1,0,0,0,34,364,1,0,0,0,36,366,1,0,
- 0,0,38,374,1,0,0,0,40,386,1,0,0,0,42,392,1,0,0,0,44,397,1,0,0,0,
- 46,399,1,0,0,0,48,401,1,0,0,0,50,405,1,0,0,0,52,409,1,0,0,0,54,413,
- 1,0,0,0,56,417,1,0,0,0,58,421,1,0,0,0,60,425,1,0,0,0,62,429,1,0,
- 0,0,64,433,1,0,0,0,66,437,1,0,0,0,68,441,1,0,0,0,70,445,1,0,0,0,
- 72,449,1,0,0,0,74,453,1,0,0,0,76,457,1,0,0,0,78,461,1,0,0,0,80,465,
- 1,0,0,0,82,469,1,0,0,0,84,473,1,0,0,0,86,477,1,0,0,0,88,481,1,0,
- 0,0,90,485,1,0,0,0,92,489,1,0,0,0,94,504,1,0,0,0,96,506,1,0,0,0,
- 98,522,1,0,0,0,100,524,1,0,0,0,102,531,1,0,0,0,104,552,1,0,0,0,106,
- 554,1,0,0,0,108,558,1,0,0,0,110,562,1,0,0,0,112,566,1,0,0,0,114,
- 570,1,0,0,0,116,574,1,0,0,0,118,578,1,0,0,0,120,582,1,0,0,0,122,
- 586,1,0,0,0,124,590,1,0,0,0,126,594,1,0,0,0,128,604,1,0,0,0,130,
- 614,1,0,0,0,132,622,1,0,0,0,134,630,1,0,0,0,136,638,1,0,0,0,138,
- 650,1,0,0,0,140,658,1,0,0,0,142,666,1,0,0,0,144,674,1,0,0,0,146,
- 682,1,0,0,0,148,704,1,0,0,0,150,717,1,0,0,0,152,719,1,0,0,0,154,
- 721,1,0,0,0,156,723,1,0,0,0,158,727,1,0,0,0,160,729,1,0,0,0,162,
- 731,1,0,0,0,164,739,1,0,0,0,166,743,1,0,0,0,168,170,3,2,1,0,169,
- 171,3,14,7,0,170,169,1,0,0,0,171,172,1,0,0,0,172,170,1,0,0,0,172,
- 173,1,0,0,0,173,174,1,0,0,0,174,175,5,0,0,1,175,1,1,0,0,0,176,177,
- 3,4,2,0,177,181,3,6,3,0,178,180,3,8,4,0,179,178,1,0,0,0,180,183,
- 1,0,0,0,181,179,1,0,0,0,181,182,1,0,0,0,182,3,1,0,0,0,183,181,1,
- 0,0,0,184,185,5,2,0,0,185,186,7,0,0,0,186,187,5,119,0,0,187,188,
- 5,7,0,0,188,5,1,0,0,0,189,190,5,2,0,0,190,191,5,5,0,0,191,192,5,
- 119,0,0,192,197,5,46,0,0,193,194,5,118,0,0,194,196,5,46,0,0,195,
- 193,1,0,0,0,196,199,1,0,0,0,197,195,1,0,0,0,197,198,1,0,0,0,198,
- 7,1,0,0,0,199,197,1,0,0,0,200,201,5,2,0,0,201,202,5,6,0,0,202,203,
- 5,119,0,0,203,204,5,46,0,0,204,9,1,0,0,0,205,206,5,8,0,0,206,11,
- 1,0,0,0,207,208,3,166,83,0,208,209,5,114,0,0,209,210,3,16,8,0,210,
- 215,5,115,0,0,211,212,5,116,0,0,212,213,3,162,81,0,213,214,5,117,
- 0,0,214,216,1,0,0,0,215,211,1,0,0,0,215,216,1,0,0,0,216,217,1,0,
- 0,0,217,218,5,107,0,0,218,219,3,18,9,0,219,13,1,0,0,0,220,222,3,
- 10,5,0,221,220,1,0,0,0,221,222,1,0,0,0,222,224,1,0,0,0,223,225,3,
- 12,6,0,224,223,1,0,0,0,225,226,1,0,0,0,226,224,1,0,0,0,226,227,1,
- 0,0,0,227,237,1,0,0,0,228,230,3,10,5,0,229,228,1,0,0,0,229,230,1,
- 0,0,0,230,232,1,0,0,0,231,233,3,22,11,0,232,231,1,0,0,0,233,234,
- 1,0,0,0,234,232,1,0,0,0,234,235,1,0,0,0,235,237,1,0,0,0,236,221,
- 1,0,0,0,236,229,1,0,0,0,237,15,1,0,0,0,238,243,3,20,10,0,239,240,
- 5,118,0,0,240,242,3,20,10,0,241,239,1,0,0,0,242,245,1,0,0,0,243,
- 241,1,0,0,0,243,244,1,0,0,0,244,17,1,0,0,0,245,243,1,0,0,0,246,249,
- 3,20,10,0,247,249,3,154,77,0,248,246,1,0,0,0,248,247,1,0,0,0,249,
- 19,1,0,0,0,250,274,3,48,24,0,251,274,3,90,45,0,252,274,3,50,25,0,
- 253,274,3,52,26,0,254,274,3,56,28,0,255,274,3,58,29,0,256,274,3,
- 54,27,0,257,274,3,60,30,0,258,274,3,62,31,0,259,274,3,64,32,0,260,
- 274,3,66,33,0,261,274,3,68,34,0,262,274,3,70,35,0,263,274,3,72,36,
- 0,264,274,3,74,37,0,265,274,3,76,38,0,266,274,3,78,39,0,267,274,
- 3,80,40,0,268,274,3,82,41,0,269,274,3,84,42,0,270,274,3,86,43,0,
- 271,274,3,88,44,0,272,274,5,128,0,0,273,250,1,0,0,0,273,251,1,0,
- 0,0,273,252,1,0,0,0,273,253,1,0,0,0,273,254,1,0,0,0,273,255,1,0,
- 0,0,273,256,1,0,0,0,273,257,1,0,0,0,273,258,1,0,0,0,273,259,1,0,
- 0,0,273,260,1,0,0,0,273,261,1,0,0,0,273,262,1,0,0,0,273,263,1,0,
- 0,0,273,264,1,0,0,0,273,265,1,0,0,0,273,266,1,0,0,0,273,267,1,0,
- 0,0,273,268,1,0,0,0,273,269,1,0,0,0,273,270,1,0,0,0,273,271,1,0,
- 0,0,273,272,1,0,0,0,274,21,1,0,0,0,275,280,3,24,12,0,276,277,5,116,
- 0,0,277,278,3,162,81,0,278,279,5,117,0,0,279,281,1,0,0,0,280,276,
- 1,0,0,0,280,281,1,0,0,0,281,282,1,0,0,0,282,283,5,107,0,0,283,284,
- 3,18,9,0,284,23,1,0,0,0,285,286,3,26,13,0,286,287,3,166,83,0,287,
- 289,5,114,0,0,288,290,3,36,18,0,289,288,1,0,0,0,289,290,1,0,0,0,
- 290,291,1,0,0,0,291,292,5,115,0,0,292,307,1,0,0,0,293,294,3,28,14,
- 0,294,295,3,166,83,0,295,297,5,114,0,0,296,298,3,38,19,0,297,296,
- 1,0,0,0,297,298,1,0,0,0,298,299,1,0,0,0,299,300,5,115,0,0,300,307,
- 1,0,0,0,301,302,3,166,83,0,302,303,5,114,0,0,303,304,3,30,15,0,304,
- 305,5,115,0,0,305,307,1,0,0,0,306,285,1,0,0,0,306,293,1,0,0,0,306,
- 301,1,0,0,0,307,25,1,0,0,0,308,309,5,9,0,0,309,310,5,128,0,0,310,
- 311,5,114,0,0,311,316,3,102,51,0,312,313,5,118,0,0,313,315,3,102,
- 51,0,314,312,1,0,0,0,315,318,1,0,0,0,316,314,1,0,0,0,316,317,1,0,
- 0,0,317,319,1,0,0,0,318,316,1,0,0,0,319,320,5,115,0,0,320,321,5,
- 107,0,0,321,322,3,28,14,0,322,27,1,0,0,0,323,332,5,114,0,0,324,329,
- 3,32,16,0,325,326,5,118,0,0,326,328,3,32,16,0,327,325,1,0,0,0,328,
- 331,1,0,0,0,329,327,1,0,0,0,329,330,1,0,0,0,330,333,1,0,0,0,331,
- 329,1,0,0,0,332,324,1,0,0,0,332,333,1,0,0,0,333,334,1,0,0,0,334,
- 335,5,115,0,0,335,29,1,0,0,0,336,337,3,32,16,0,337,338,5,101,0,0,
- 338,339,3,102,51,0,339,31,1,0,0,0,340,349,5,114,0,0,341,346,3,34,
- 17,0,342,343,5,118,0,0,343,345,3,34,17,0,344,342,1,0,0,0,345,348,
- 1,0,0,0,346,344,1,0,0,0,346,347,1,0,0,0,347,350,1,0,0,0,348,346,
- 1,0,0,0,349,341,1,0,0,0,349,350,1,0,0,0,350,351,1,0,0,0,351,352,
- 5,115,0,0,352,33,1,0,0,0,353,365,5,45,0,0,354,365,3,44,22,0,355,
- 365,5,27,0,0,356,365,5,46,0,0,357,365,5,31,0,0,358,365,5,30,0,0,
- 359,365,5,29,0,0,360,365,5,28,0,0,361,365,5,42,0,0,362,365,5,43,
- 0,0,363,365,5,44,0,0,364,353,1,0,0,0,364,354,1,0,0,0,364,355,1,0,
- 0,0,364,356,1,0,0,0,364,357,1,0,0,0,364,358,1,0,0,0,364,359,1,0,
- 0,0,364,360,1,0,0,0,364,361,1,0,0,0,364,362,1,0,0,0,364,363,1,0,
- 0,0,365,35,1,0,0,0,366,371,3,40,20,0,367,368,5,118,0,0,368,370,3,
- 40,20,0,369,367,1,0,0,0,370,373,1,0,0,0,371,369,1,0,0,0,371,372,
- 1,0,0,0,372,37,1,0,0,0,373,371,1,0,0,0,374,379,3,42,21,0,375,376,
- 5,118,0,0,376,378,3,42,21,0,377,375,1,0,0,0,378,381,1,0,0,0,379,
- 377,1,0,0,0,379,380,1,0,0,0,380,39,1,0,0,0,381,379,1,0,0,0,382,383,
- 5,128,0,0,383,384,5,122,0,0,384,387,5,48,0,0,385,387,3,20,10,0,386,
- 382,1,0,0,0,386,385,1,0,0,0,387,41,1,0,0,0,388,389,5,48,0,0,389,
- 390,5,101,0,0,390,393,3,102,51,0,391,393,3,20,10,0,392,388,1,0,0,
- 0,392,391,1,0,0,0,393,43,1,0,0,0,394,398,5,25,0,0,395,398,5,24,0,
- 0,396,398,3,46,23,0,397,394,1,0,0,0,397,395,1,0,0,0,397,396,1,0,
- 0,0,398,45,1,0,0,0,399,400,7,1,0,0,400,47,1,0,0,0,401,402,5,45,0,
- 0,402,403,5,101,0,0,403,404,3,102,51,0,404,49,1,0,0,0,405,406,5,
- 24,0,0,406,407,5,101,0,0,407,408,3,112,56,0,408,51,1,0,0,0,409,410,
- 3,44,22,0,410,411,5,101,0,0,411,412,3,114,57,0,412,53,1,0,0,0,413,
- 414,3,44,22,0,414,415,5,101,0,0,415,416,3,136,68,0,416,55,1,0,0,
- 0,417,418,5,27,0,0,418,419,5,101,0,0,419,420,3,106,53,0,420,57,1,
- 0,0,0,421,422,5,46,0,0,422,423,5,101,0,0,423,424,3,108,54,0,424,
- 59,1,0,0,0,425,426,5,31,0,0,426,427,5,101,0,0,427,428,3,116,58,0,
- 428,61,1,0,0,0,429,430,5,30,0,0,430,431,5,101,0,0,431,432,3,118,
- 59,0,432,63,1,0,0,0,433,434,5,29,0,0,434,435,5,101,0,0,435,436,3,
- 120,60,0,436,65,1,0,0,0,437,438,5,28,0,0,438,439,5,101,0,0,439,440,
- 3,122,61,0,440,67,1,0,0,0,441,442,5,42,0,0,442,443,5,101,0,0,443,
- 444,3,124,62,0,444,69,1,0,0,0,445,446,5,43,0,0,446,447,5,101,0,0,
- 447,448,3,126,63,0,448,71,1,0,0,0,449,450,5,44,0,0,450,451,5,101,
- 0,0,451,452,3,128,64,0,452,73,1,0,0,0,453,454,5,46,0,0,454,455,5,
- 101,0,0,455,456,3,130,65,0,456,75,1,0,0,0,457,458,5,46,0,0,458,459,
- 5,101,0,0,459,460,3,132,66,0,460,77,1,0,0,0,461,462,5,46,0,0,462,
- 463,5,101,0,0,463,464,3,134,67,0,464,79,1,0,0,0,465,466,5,30,0,0,
- 466,467,5,101,0,0,467,468,3,138,69,0,468,81,1,0,0,0,469,470,5,29,
- 0,0,470,471,5,101,0,0,471,472,3,140,70,0,472,83,1,0,0,0,473,474,
- 5,28,0,0,474,475,5,101,0,0,475,476,3,142,71,0,476,85,1,0,0,0,477,
- 478,3,92,46,0,478,479,5,101,0,0,479,480,3,144,72,0,480,87,1,0,0,
- 0,481,482,3,96,48,0,482,483,5,101,0,0,483,484,3,146,73,0,484,89,
- 1,0,0,0,485,486,5,128,0,0,486,487,5,101,0,0,487,488,5,47,0,0,488,
- 91,1,0,0,0,489,498,5,116,0,0,490,495,3,94,47,0,491,492,5,118,0,0,
- 492,494,3,94,47,0,493,491,1,0,0,0,494,497,1,0,0,0,495,493,1,0,0,
- 0,495,496,1,0,0,0,496,499,1,0,0,0,497,495,1,0,0,0,498,490,1,0,0,
- 0,498,499,1,0,0,0,499,500,1,0,0,0,500,501,5,117,0,0,501,93,1,0,0,
- 0,502,505,3,34,17,0,503,505,3,92,46,0,504,502,1,0,0,0,504,503,1,
- 0,0,0,505,95,1,0,0,0,506,507,5,114,0,0,507,508,3,98,49,0,508,509,
- 5,126,0,0,509,510,3,100,50,0,510,511,5,115,0,0,511,97,1,0,0,0,512,
- 523,5,128,0,0,513,514,5,114,0,0,514,517,5,128,0,0,515,516,5,118,
- 0,0,516,518,5,128,0,0,517,515,1,0,0,0,518,519,1,0,0,0,519,517,1,
- 0,0,0,519,520,1,0,0,0,520,521,1,0,0,0,521,523,5,115,0,0,522,512,
- 1,0,0,0,522,513,1,0,0,0,523,99,1,0,0,0,524,525,3,166,83,0,525,526,
- 5,114,0,0,526,527,3,16,8,0,527,528,5,115,0,0,528,101,1,0,0,0,529,
- 532,3,104,52,0,530,532,3,150,75,0,531,529,1,0,0,0,531,530,1,0,0,
- 0,532,103,1,0,0,0,533,553,3,106,53,0,534,553,3,112,56,0,535,553,
- 3,114,57,0,536,553,3,108,54,0,537,553,3,110,55,0,538,553,3,120,60,
- 0,539,553,3,122,61,0,540,553,3,116,58,0,541,553,3,118,59,0,542,553,
- 3,124,62,0,543,545,5,71,0,0,544,546,5,120,0,0,545,544,1,0,0,0,545,
- 546,1,0,0,0,546,553,1,0,0,0,547,548,5,83,0,0,548,550,5,128,0,0,549,
- 551,5,120,0,0,550,549,1,0,0,0,550,551,1,0,0,0,551,553,1,0,0,0,552,
- 533,1,0,0,0,552,534,1,0,0,0,552,535,1,0,0,0,552,536,1,0,0,0,552,
- 537,1,0,0,0,552,538,1,0,0,0,552,539,1,0,0,0,552,540,1,0,0,0,552,
- 541,1,0,0,0,552,542,1,0,0,0,552,543,1,0,0,0,552,547,1,0,0,0,553,
- 105,1,0,0,0,554,556,7,2,0,0,555,557,5,120,0,0,556,555,1,0,0,0,556,
- 557,1,0,0,0,557,107,1,0,0,0,558,560,7,3,0,0,559,561,5,120,0,0,560,
- 559,1,0,0,0,560,561,1,0,0,0,561,109,1,0,0,0,562,564,7,4,0,0,563,
- 565,5,120,0,0,564,563,1,0,0,0,564,565,1,0,0,0,565,111,1,0,0,0,566,
- 568,7,5,0,0,567,569,5,120,0,0,568,567,1,0,0,0,568,569,1,0,0,0,569,
- 113,1,0,0,0,570,572,7,6,0,0,571,573,5,120,0,0,572,571,1,0,0,0,572,
- 573,1,0,0,0,573,115,1,0,0,0,574,576,5,66,0,0,575,577,5,120,0,0,576,
- 575,1,0,0,0,576,577,1,0,0,0,577,117,1,0,0,0,578,580,5,67,0,0,579,
- 581,5,120,0,0,580,579,1,0,0,0,580,581,1,0,0,0,581,119,1,0,0,0,582,
- 584,7,7,0,0,583,585,5,120,0,0,584,583,1,0,0,0,584,585,1,0,0,0,585,
- 121,1,0,0,0,586,588,7,8,0,0,587,589,5,120,0,0,588,587,1,0,0,0,588,
- 589,1,0,0,0,589,123,1,0,0,0,590,592,7,9,0,0,591,593,5,120,0,0,592,
- 591,1,0,0,0,592,593,1,0,0,0,593,125,1,0,0,0,594,596,7,10,0,0,595,
- 597,5,120,0,0,596,595,1,0,0,0,596,597,1,0,0,0,597,602,1,0,0,0,598,
- 599,5,40,0,0,599,600,3,152,76,0,600,601,5,41,0,0,601,603,1,0,0,0,
- 602,598,1,0,0,0,602,603,1,0,0,0,603,127,1,0,0,0,604,606,7,11,0,0,
- 605,607,5,120,0,0,606,605,1,0,0,0,606,607,1,0,0,0,607,612,1,0,0,
- 0,608,609,5,40,0,0,609,610,3,152,76,0,610,611,5,41,0,0,611,613,1,
- 0,0,0,612,608,1,0,0,0,612,613,1,0,0,0,613,129,1,0,0,0,614,616,7,
- 12,0,0,615,617,5,120,0,0,616,615,1,0,0,0,616,617,1,0,0,0,617,618,
- 1,0,0,0,618,619,5,40,0,0,619,620,3,152,76,0,620,621,5,41,0,0,621,
- 131,1,0,0,0,622,624,7,13,0,0,623,625,5,120,0,0,624,623,1,0,0,0,624,
- 625,1,0,0,0,625,626,1,0,0,0,626,627,5,40,0,0,627,628,3,152,76,0,
- 628,629,5,41,0,0,629,133,1,0,0,0,630,632,7,14,0,0,631,633,5,120,
- 0,0,632,631,1,0,0,0,632,633,1,0,0,0,633,634,1,0,0,0,634,635,5,40,
- 0,0,635,636,3,152,76,0,636,637,5,41,0,0,637,135,1,0,0,0,638,640,
- 7,15,0,0,639,641,5,120,0,0,640,639,1,0,0,0,640,641,1,0,0,0,641,648,
- 1,0,0,0,642,643,5,40,0,0,643,644,3,152,76,0,644,645,5,118,0,0,645,
- 646,3,152,76,0,646,647,5,41,0,0,647,649,1,0,0,0,648,642,1,0,0,0,
- 648,649,1,0,0,0,649,137,1,0,0,0,650,652,7,16,0,0,651,653,5,120,0,
- 0,652,651,1,0,0,0,652,653,1,0,0,0,653,654,1,0,0,0,654,655,5,40,0,
- 0,655,656,3,152,76,0,656,657,5,41,0,0,657,139,1,0,0,0,658,660,7,
- 17,0,0,659,661,5,120,0,0,660,659,1,0,0,0,660,661,1,0,0,0,661,662,
- 1,0,0,0,662,663,5,40,0,0,663,664,3,152,76,0,664,665,5,41,0,0,665,
- 141,1,0,0,0,666,668,7,18,0,0,667,669,5,120,0,0,668,667,1,0,0,0,668,
- 669,1,0,0,0,669,670,1,0,0,0,670,671,5,40,0,0,671,672,3,152,76,0,
- 672,673,5,41,0,0,673,143,1,0,0,0,674,676,5,81,0,0,675,677,5,120,
- 0,0,676,675,1,0,0,0,676,677,1,0,0,0,677,678,1,0,0,0,678,679,5,40,
- 0,0,679,680,3,102,51,0,680,681,5,41,0,0,681,145,1,0,0,0,682,684,
- 5,54,0,0,683,685,5,120,0,0,684,683,1,0,0,0,684,685,1,0,0,0,685,686,
- 1,0,0,0,686,687,5,40,0,0,687,688,3,148,74,0,688,689,5,126,0,0,689,
- 690,3,102,51,0,690,691,5,41,0,0,691,147,1,0,0,0,692,705,3,102,51,
- 0,693,694,5,114,0,0,694,699,3,102,51,0,695,696,5,118,0,0,696,698,
- 3,102,51,0,697,695,1,0,0,0,698,701,1,0,0,0,699,697,1,0,0,0,699,700,
- 1,0,0,0,700,702,1,0,0,0,701,699,1,0,0,0,702,703,5,115,0,0,703,705,
- 1,0,0,0,704,692,1,0,0,0,704,693,1,0,0,0,705,149,1,0,0,0,706,718,
- 3,130,65,0,707,718,3,132,66,0,708,718,3,134,67,0,709,718,3,136,68,
- 0,710,718,3,126,63,0,711,718,3,128,64,0,712,718,3,138,69,0,713,718,
- 3,140,70,0,714,718,3,142,71,0,715,718,3,144,72,0,716,718,3,146,73,
- 0,717,706,1,0,0,0,717,707,1,0,0,0,717,708,1,0,0,0,717,709,1,0,0,
- 0,717,710,1,0,0,0,717,711,1,0,0,0,717,712,1,0,0,0,717,713,1,0,0,
- 0,717,714,1,0,0,0,717,715,1,0,0,0,717,716,1,0,0,0,718,151,1,0,0,
- 0,719,720,5,24,0,0,720,153,1,0,0,0,721,722,7,19,0,0,722,155,1,0,
- 0,0,723,724,3,158,79,0,724,725,5,119,0,0,725,726,3,160,80,0,726,
- 157,1,0,0,0,727,728,7,20,0,0,728,159,1,0,0,0,729,730,7,21,0,0,730,
- 161,1,0,0,0,731,736,3,156,78,0,732,733,5,118,0,0,733,735,3,156,78,
- 0,734,732,1,0,0,0,735,738,1,0,0,0,736,734,1,0,0,0,736,737,1,0,0,
- 0,737,163,1,0,0,0,738,736,1,0,0,0,739,740,7,22,0,0,740,165,1,0,0,
- 0,741,744,3,164,82,0,742,744,5,128,0,0,743,741,1,0,0,0,743,742,1,
- 0,0,0,744,167,1,0,0,0,65,172,181,197,215,221,226,229,234,236,243,
- 248,273,280,289,297,306,316,329,332,346,349,364,371,379,386,392,
- 397,495,498,504,519,522,531,545,550,552,556,560,564,568,572,576,
- 580,584,588,592,596,602,606,612,616,624,632,640,648,652,660,668,
- 676,684,699,704,717,736,743
+ 72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,1,0,1,
+ 0,4,0,159,8,0,11,0,12,0,160,1,0,1,0,1,1,1,1,1,1,5,1,168,8,1,10,1,
+ 12,1,171,9,1,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,5,3,184,
+ 8,3,10,3,12,3,187,9,3,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,6,1,6,1,6,1,
+ 6,1,6,1,6,1,6,1,6,3,6,204,8,6,1,6,1,6,1,6,1,7,3,7,210,8,7,1,7,4,
+ 7,213,8,7,11,7,12,7,214,1,7,3,7,218,8,7,1,7,4,7,221,8,7,11,7,12,
+ 7,222,3,7,225,8,7,1,8,1,8,1,8,5,8,230,8,8,10,8,12,8,233,9,8,1,9,
+ 1,9,3,9,237,8,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,
+ 1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,259,8,10,
+ 1,11,1,11,1,11,1,11,1,11,3,11,266,8,11,1,11,1,11,1,11,1,12,1,12,
+ 1,12,1,12,3,12,275,8,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,283,8,
+ 12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,292,8,12,1,13,1,13,1,
+ 13,1,13,1,13,1,13,5,13,300,8,13,10,13,12,13,303,9,13,1,13,1,13,1,
+ 13,1,13,1,14,1,14,1,14,1,14,5,14,313,8,14,10,14,12,14,316,9,14,3,
+ 14,318,8,14,1,14,1,14,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,5,
+ 16,330,8,16,10,16,12,16,333,9,16,3,16,335,8,16,1,16,1,16,1,17,1,
+ 17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,350,8,17,1,
+ 18,1,18,1,18,5,18,355,8,18,10,18,12,18,358,9,18,1,19,1,19,1,19,5,
+ 19,363,8,19,10,19,12,19,366,9,19,1,20,1,20,1,20,1,20,3,20,372,8,
+ 20,1,21,1,21,1,21,1,21,3,21,378,8,21,1,22,1,22,1,22,3,22,383,8,22,
+ 1,23,1,23,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,26,1,26,1,26,
+ 1,26,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,
+ 1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,33,
+ 1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,36,1,36,
+ 1,36,1,36,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,39,1,39,1,39,
+ 1,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,
+ 1,43,1,43,1,43,1,43,5,43,467,8,43,10,43,12,43,470,9,43,3,43,472,
+ 8,43,1,43,1,43,1,44,1,44,3,44,478,8,44,1,45,1,45,1,45,1,45,1,45,
+ 1,45,1,46,1,46,1,46,1,46,1,46,4,46,491,8,46,11,46,12,46,492,1,46,
+ 3,46,496,8,46,1,47,1,47,1,47,1,47,1,47,1,48,1,48,3,48,505,8,48,1,
+ 49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,3,49,516,8,49,1,49,1,
+ 49,1,49,3,49,521,8,49,3,49,523,8,49,1,50,1,50,3,50,527,8,50,1,51,
+ 1,51,3,51,531,8,51,1,52,1,52,3,52,535,8,52,1,53,1,53,3,53,539,8,
+ 53,1,54,1,54,3,54,543,8,54,1,55,1,55,3,55,547,8,55,1,56,1,56,3,56,
+ 551,8,56,1,57,1,57,3,57,555,8,57,1,57,1,57,1,57,1,57,3,57,561,8,
+ 57,1,58,1,58,3,58,565,8,58,1,58,1,58,1,58,1,58,3,58,571,8,58,1,59,
+ 1,59,3,59,575,8,59,1,59,1,59,1,59,1,59,1,60,1,60,3,60,583,8,60,1,
+ 60,1,60,1,60,1,60,1,61,1,61,3,61,591,8,61,1,61,1,61,1,61,1,61,1,
+ 62,1,62,3,62,599,8,62,1,62,1,62,1,62,1,62,1,62,1,62,3,62,607,8,62,
+ 1,63,1,63,3,63,611,8,63,1,63,1,63,1,63,1,63,1,64,1,64,3,64,619,8,
+ 64,1,64,1,64,1,64,1,64,1,65,1,65,3,65,627,8,65,1,65,1,65,1,65,1,
+ 65,1,66,1,66,3,66,635,8,66,1,66,1,66,1,66,1,66,1,67,1,67,3,67,643,
+ 8,67,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,5,68,
+ 656,8,68,10,68,12,68,659,9,68,1,68,1,68,3,68,663,8,68,1,69,1,69,
+ 1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,3,69,676,8,69,1,70,
+ 1,70,1,71,1,71,1,72,1,72,1,72,1,72,1,73,1,73,1,74,1,74,1,75,1,75,
+ 1,75,5,75,693,8,75,10,75,12,75,696,9,75,1,76,1,76,1,77,1,77,3,77,
+ 702,8,77,1,77,0,0,78,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,
+ 32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,
+ 76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,
+ 114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,
+ 146,148,150,152,154,0,21,1,0,3,4,2,0,18,18,26,26,2,0,55,55,81,81,
+ 2,0,62,62,82,82,2,0,63,63,83,83,1,0,56,59,1,0,60,61,2,0,65,65,84,
+ 84,2,0,66,66,85,85,2,0,67,67,86,86,2,0,73,73,91,91,2,0,74,74,92,
+ 92,2,0,75,75,93,93,2,0,69,69,87,87,2,0,70,70,88,88,2,0,71,71,89,
+ 89,2,0,72,72,90,90,1,0,10,11,3,0,12,13,21,22,123,123,5,0,14,20,23,
+ 23,27,27,45,45,123,123,2,0,23,23,118,119,732,0,156,1,0,0,0,2,164,
+ 1,0,0,0,4,172,1,0,0,0,6,177,1,0,0,0,8,188,1,0,0,0,10,193,1,0,0,0,
+ 12,195,1,0,0,0,14,224,1,0,0,0,16,226,1,0,0,0,18,236,1,0,0,0,20,258,
+ 1,0,0,0,22,260,1,0,0,0,24,291,1,0,0,0,26,293,1,0,0,0,28,308,1,0,
+ 0,0,30,321,1,0,0,0,32,325,1,0,0,0,34,349,1,0,0,0,36,351,1,0,0,0,
+ 38,359,1,0,0,0,40,371,1,0,0,0,42,377,1,0,0,0,44,382,1,0,0,0,46,384,
+ 1,0,0,0,48,386,1,0,0,0,50,390,1,0,0,0,52,394,1,0,0,0,54,398,1,0,
+ 0,0,56,402,1,0,0,0,58,406,1,0,0,0,60,410,1,0,0,0,62,414,1,0,0,0,
+ 64,418,1,0,0,0,66,422,1,0,0,0,68,426,1,0,0,0,70,430,1,0,0,0,72,434,
+ 1,0,0,0,74,438,1,0,0,0,76,442,1,0,0,0,78,446,1,0,0,0,80,450,1,0,
+ 0,0,82,454,1,0,0,0,84,458,1,0,0,0,86,462,1,0,0,0,88,477,1,0,0,0,
+ 90,479,1,0,0,0,92,495,1,0,0,0,94,497,1,0,0,0,96,504,1,0,0,0,98,522,
+ 1,0,0,0,100,524,1,0,0,0,102,528,1,0,0,0,104,532,1,0,0,0,106,536,
+ 1,0,0,0,108,540,1,0,0,0,110,544,1,0,0,0,112,548,1,0,0,0,114,552,
+ 1,0,0,0,116,562,1,0,0,0,118,572,1,0,0,0,120,580,1,0,0,0,122,588,
+ 1,0,0,0,124,596,1,0,0,0,126,608,1,0,0,0,128,616,1,0,0,0,130,624,
+ 1,0,0,0,132,632,1,0,0,0,134,640,1,0,0,0,136,662,1,0,0,0,138,675,
+ 1,0,0,0,140,677,1,0,0,0,142,679,1,0,0,0,144,681,1,0,0,0,146,685,
+ 1,0,0,0,148,687,1,0,0,0,150,689,1,0,0,0,152,697,1,0,0,0,154,701,
+ 1,0,0,0,156,158,3,2,1,0,157,159,3,14,7,0,158,157,1,0,0,0,159,160,
+ 1,0,0,0,160,158,1,0,0,0,160,161,1,0,0,0,161,162,1,0,0,0,162,163,
+ 5,0,0,1,163,1,1,0,0,0,164,165,3,4,2,0,165,169,3,6,3,0,166,168,3,
+ 8,4,0,167,166,1,0,0,0,168,171,1,0,0,0,169,167,1,0,0,0,169,170,1,
+ 0,0,0,170,3,1,0,0,0,171,169,1,0,0,0,172,173,5,2,0,0,173,174,7,0,
+ 0,0,174,175,5,114,0,0,175,176,5,7,0,0,176,5,1,0,0,0,177,178,5,2,
+ 0,0,178,179,5,5,0,0,179,180,5,114,0,0,180,185,5,46,0,0,181,182,5,
+ 113,0,0,182,184,5,46,0,0,183,181,1,0,0,0,184,187,1,0,0,0,185,183,
+ 1,0,0,0,185,186,1,0,0,0,186,7,1,0,0,0,187,185,1,0,0,0,188,189,5,
+ 2,0,0,189,190,5,6,0,0,190,191,5,114,0,0,191,192,5,46,0,0,192,9,1,
+ 0,0,0,193,194,5,8,0,0,194,11,1,0,0,0,195,196,3,154,77,0,196,197,
+ 5,109,0,0,197,198,3,16,8,0,198,203,5,110,0,0,199,200,5,111,0,0,200,
+ 201,3,150,75,0,201,202,5,112,0,0,202,204,1,0,0,0,203,199,1,0,0,0,
+ 203,204,1,0,0,0,204,205,1,0,0,0,205,206,5,102,0,0,206,207,3,18,9,
+ 0,207,13,1,0,0,0,208,210,3,10,5,0,209,208,1,0,0,0,209,210,1,0,0,
+ 0,210,212,1,0,0,0,211,213,3,12,6,0,212,211,1,0,0,0,213,214,1,0,0,
+ 0,214,212,1,0,0,0,214,215,1,0,0,0,215,225,1,0,0,0,216,218,3,10,5,
+ 0,217,216,1,0,0,0,217,218,1,0,0,0,218,220,1,0,0,0,219,221,3,22,11,
+ 0,220,219,1,0,0,0,221,222,1,0,0,0,222,220,1,0,0,0,222,223,1,0,0,
+ 0,223,225,1,0,0,0,224,209,1,0,0,0,224,217,1,0,0,0,225,15,1,0,0,0,
+ 226,231,3,20,10,0,227,228,5,113,0,0,228,230,3,20,10,0,229,227,1,
+ 0,0,0,230,233,1,0,0,0,231,229,1,0,0,0,231,232,1,0,0,0,232,17,1,0,
+ 0,0,233,231,1,0,0,0,234,237,3,20,10,0,235,237,3,142,71,0,236,234,
+ 1,0,0,0,236,235,1,0,0,0,237,19,1,0,0,0,238,259,3,48,24,0,239,259,
+ 3,84,42,0,240,259,3,50,25,0,241,259,3,52,26,0,242,259,3,56,28,0,
+ 243,259,3,58,29,0,244,259,3,54,27,0,245,259,3,60,30,0,246,259,3,
+ 62,31,0,247,259,3,64,32,0,248,259,3,66,33,0,249,259,3,68,34,0,250,
+ 259,3,70,35,0,251,259,3,72,36,0,252,259,3,74,37,0,253,259,3,76,38,
+ 0,254,259,3,78,39,0,255,259,3,80,40,0,256,259,3,82,41,0,257,259,
+ 5,123,0,0,258,238,1,0,0,0,258,239,1,0,0,0,258,240,1,0,0,0,258,241,
+ 1,0,0,0,258,242,1,0,0,0,258,243,1,0,0,0,258,244,1,0,0,0,258,245,
+ 1,0,0,0,258,246,1,0,0,0,258,247,1,0,0,0,258,248,1,0,0,0,258,249,
+ 1,0,0,0,258,250,1,0,0,0,258,251,1,0,0,0,258,252,1,0,0,0,258,253,
+ 1,0,0,0,258,254,1,0,0,0,258,255,1,0,0,0,258,256,1,0,0,0,258,257,
+ 1,0,0,0,259,21,1,0,0,0,260,265,3,24,12,0,261,262,5,111,0,0,262,263,
+ 3,150,75,0,263,264,5,112,0,0,264,266,1,0,0,0,265,261,1,0,0,0,265,
+ 266,1,0,0,0,266,267,1,0,0,0,267,268,5,102,0,0,268,269,3,18,9,0,269,
+ 23,1,0,0,0,270,271,3,26,13,0,271,272,3,154,77,0,272,274,5,109,0,
+ 0,273,275,3,36,18,0,274,273,1,0,0,0,274,275,1,0,0,0,275,276,1,0,
+ 0,0,276,277,5,110,0,0,277,292,1,0,0,0,278,279,3,28,14,0,279,280,
+ 3,154,77,0,280,282,5,109,0,0,281,283,3,38,19,0,282,281,1,0,0,0,282,
+ 283,1,0,0,0,283,284,1,0,0,0,284,285,5,110,0,0,285,292,1,0,0,0,286,
+ 287,3,154,77,0,287,288,5,109,0,0,288,289,3,30,15,0,289,290,5,110,
+ 0,0,290,292,1,0,0,0,291,270,1,0,0,0,291,278,1,0,0,0,291,286,1,0,
+ 0,0,292,25,1,0,0,0,293,294,5,9,0,0,294,295,5,123,0,0,295,296,5,109,
+ 0,0,296,301,3,96,48,0,297,298,5,113,0,0,298,300,3,96,48,0,299,297,
+ 1,0,0,0,300,303,1,0,0,0,301,299,1,0,0,0,301,302,1,0,0,0,302,304,
+ 1,0,0,0,303,301,1,0,0,0,304,305,5,110,0,0,305,306,5,102,0,0,306,
+ 307,3,28,14,0,307,27,1,0,0,0,308,317,5,109,0,0,309,314,3,32,16,0,
+ 310,311,5,113,0,0,311,313,3,32,16,0,312,310,1,0,0,0,313,316,1,0,
+ 0,0,314,312,1,0,0,0,314,315,1,0,0,0,315,318,1,0,0,0,316,314,1,0,
+ 0,0,317,309,1,0,0,0,317,318,1,0,0,0,318,319,1,0,0,0,319,320,5,110,
+ 0,0,320,29,1,0,0,0,321,322,3,32,16,0,322,323,5,96,0,0,323,324,3,
+ 96,48,0,324,31,1,0,0,0,325,334,5,109,0,0,326,331,3,34,17,0,327,328,
+ 5,113,0,0,328,330,3,34,17,0,329,327,1,0,0,0,330,333,1,0,0,0,331,
+ 329,1,0,0,0,331,332,1,0,0,0,332,335,1,0,0,0,333,331,1,0,0,0,334,
+ 326,1,0,0,0,334,335,1,0,0,0,335,336,1,0,0,0,336,337,5,110,0,0,337,
+ 33,1,0,0,0,338,350,5,45,0,0,339,350,3,44,22,0,340,350,5,27,0,0,341,
+ 350,5,46,0,0,342,350,5,31,0,0,343,350,5,30,0,0,344,350,5,29,0,0,
+ 345,350,5,28,0,0,346,350,5,42,0,0,347,350,5,43,0,0,348,350,5,44,
+ 0,0,349,338,1,0,0,0,349,339,1,0,0,0,349,340,1,0,0,0,349,341,1,0,
+ 0,0,349,342,1,0,0,0,349,343,1,0,0,0,349,344,1,0,0,0,349,345,1,0,
+ 0,0,349,346,1,0,0,0,349,347,1,0,0,0,349,348,1,0,0,0,350,35,1,0,0,
+ 0,351,356,3,40,20,0,352,353,5,113,0,0,353,355,3,40,20,0,354,352,
+ 1,0,0,0,355,358,1,0,0,0,356,354,1,0,0,0,356,357,1,0,0,0,357,37,1,
+ 0,0,0,358,356,1,0,0,0,359,364,3,42,21,0,360,361,5,113,0,0,361,363,
+ 3,42,21,0,362,360,1,0,0,0,363,366,1,0,0,0,364,362,1,0,0,0,364,365,
+ 1,0,0,0,365,39,1,0,0,0,366,364,1,0,0,0,367,368,5,123,0,0,368,369,
+ 5,117,0,0,369,372,5,48,0,0,370,372,3,20,10,0,371,367,1,0,0,0,371,
+ 370,1,0,0,0,372,41,1,0,0,0,373,374,5,48,0,0,374,375,5,96,0,0,375,
+ 378,3,96,48,0,376,378,3,20,10,0,377,373,1,0,0,0,377,376,1,0,0,0,
+ 378,43,1,0,0,0,379,383,5,25,0,0,380,383,5,24,0,0,381,383,3,46,23,
+ 0,382,379,1,0,0,0,382,380,1,0,0,0,382,381,1,0,0,0,383,45,1,0,0,0,
+ 384,385,7,1,0,0,385,47,1,0,0,0,386,387,5,45,0,0,387,388,5,96,0,0,
+ 388,389,3,96,48,0,389,49,1,0,0,0,390,391,5,24,0,0,391,392,5,96,0,
+ 0,392,393,3,106,53,0,393,51,1,0,0,0,394,395,3,44,22,0,395,396,5,
+ 96,0,0,396,397,3,108,54,0,397,53,1,0,0,0,398,399,3,44,22,0,399,400,
+ 5,96,0,0,400,401,3,124,62,0,401,55,1,0,0,0,402,403,5,27,0,0,403,
+ 404,5,96,0,0,404,405,3,100,50,0,405,57,1,0,0,0,406,407,5,46,0,0,
+ 407,408,5,96,0,0,408,409,3,102,51,0,409,59,1,0,0,0,410,411,5,31,
+ 0,0,411,412,5,96,0,0,412,413,3,110,55,0,413,61,1,0,0,0,414,415,5,
+ 42,0,0,415,416,5,96,0,0,416,417,3,112,56,0,417,63,1,0,0,0,418,419,
+ 5,43,0,0,419,420,5,96,0,0,420,421,3,114,57,0,421,65,1,0,0,0,422,
+ 423,5,44,0,0,423,424,5,96,0,0,424,425,3,116,58,0,425,67,1,0,0,0,
+ 426,427,5,46,0,0,427,428,5,96,0,0,428,429,3,118,59,0,429,69,1,0,
+ 0,0,430,431,5,46,0,0,431,432,5,96,0,0,432,433,3,120,60,0,433,71,
+ 1,0,0,0,434,435,5,46,0,0,435,436,5,96,0,0,436,437,3,122,61,0,437,
+ 73,1,0,0,0,438,439,5,30,0,0,439,440,5,96,0,0,440,441,3,126,63,0,
+ 441,75,1,0,0,0,442,443,5,29,0,0,443,444,5,96,0,0,444,445,3,128,64,
+ 0,445,77,1,0,0,0,446,447,5,28,0,0,447,448,5,96,0,0,448,449,3,130,
+ 65,0,449,79,1,0,0,0,450,451,3,86,43,0,451,452,5,96,0,0,452,453,3,
+ 132,66,0,453,81,1,0,0,0,454,455,3,90,45,0,455,456,5,96,0,0,456,457,
+ 3,134,67,0,457,83,1,0,0,0,458,459,5,123,0,0,459,460,5,96,0,0,460,
+ 461,5,47,0,0,461,85,1,0,0,0,462,471,5,111,0,0,463,468,3,88,44,0,
+ 464,465,5,113,0,0,465,467,3,88,44,0,466,464,1,0,0,0,467,470,1,0,
+ 0,0,468,466,1,0,0,0,468,469,1,0,0,0,469,472,1,0,0,0,470,468,1,0,
+ 0,0,471,463,1,0,0,0,471,472,1,0,0,0,472,473,1,0,0,0,473,474,5,112,
+ 0,0,474,87,1,0,0,0,475,478,3,34,17,0,476,478,3,86,43,0,477,475,1,
+ 0,0,0,477,476,1,0,0,0,478,89,1,0,0,0,479,480,5,109,0,0,480,481,3,
+ 92,46,0,481,482,5,121,0,0,482,483,3,94,47,0,483,484,5,110,0,0,484,
+ 91,1,0,0,0,485,496,5,123,0,0,486,487,5,109,0,0,487,490,5,123,0,0,
+ 488,489,5,113,0,0,489,491,5,123,0,0,490,488,1,0,0,0,491,492,1,0,
+ 0,0,492,490,1,0,0,0,492,493,1,0,0,0,493,494,1,0,0,0,494,496,5,110,
+ 0,0,495,485,1,0,0,0,495,486,1,0,0,0,496,93,1,0,0,0,497,498,3,154,
+ 77,0,498,499,5,109,0,0,499,500,3,16,8,0,500,501,5,110,0,0,501,95,
+ 1,0,0,0,502,505,3,98,49,0,503,505,3,138,69,0,504,502,1,0,0,0,504,
+ 503,1,0,0,0,505,97,1,0,0,0,506,523,3,100,50,0,507,523,3,106,53,0,
+ 508,523,3,108,54,0,509,523,3,102,51,0,510,523,3,104,52,0,511,523,
+ 3,110,55,0,512,523,3,112,56,0,513,515,5,68,0,0,514,516,5,115,0,0,
+ 515,514,1,0,0,0,515,516,1,0,0,0,516,523,1,0,0,0,517,518,5,80,0,0,
+ 518,520,5,123,0,0,519,521,5,115,0,0,520,519,1,0,0,0,520,521,1,0,
+ 0,0,521,523,1,0,0,0,522,506,1,0,0,0,522,507,1,0,0,0,522,508,1,0,
+ 0,0,522,509,1,0,0,0,522,510,1,0,0,0,522,511,1,0,0,0,522,512,1,0,
+ 0,0,522,513,1,0,0,0,522,517,1,0,0,0,523,99,1,0,0,0,524,526,7,2,0,
+ 0,525,527,5,115,0,0,526,525,1,0,0,0,526,527,1,0,0,0,527,101,1,0,
+ 0,0,528,530,7,3,0,0,529,531,5,115,0,0,530,529,1,0,0,0,530,531,1,
+ 0,0,0,531,103,1,0,0,0,532,534,7,4,0,0,533,535,5,115,0,0,534,533,
+ 1,0,0,0,534,535,1,0,0,0,535,105,1,0,0,0,536,538,7,5,0,0,537,539,
+ 5,115,0,0,538,537,1,0,0,0,538,539,1,0,0,0,539,107,1,0,0,0,540,542,
+ 7,6,0,0,541,543,5,115,0,0,542,541,1,0,0,0,542,543,1,0,0,0,543,109,
+ 1,0,0,0,544,546,5,64,0,0,545,547,5,115,0,0,546,545,1,0,0,0,546,547,
+ 1,0,0,0,547,111,1,0,0,0,548,550,7,7,0,0,549,551,5,115,0,0,550,549,
+ 1,0,0,0,550,551,1,0,0,0,551,113,1,0,0,0,552,554,7,8,0,0,553,555,
+ 5,115,0,0,554,553,1,0,0,0,554,555,1,0,0,0,555,560,1,0,0,0,556,557,
+ 5,40,0,0,557,558,3,140,70,0,558,559,5,41,0,0,559,561,1,0,0,0,560,
+ 556,1,0,0,0,560,561,1,0,0,0,561,115,1,0,0,0,562,564,7,9,0,0,563,
+ 565,5,115,0,0,564,563,1,0,0,0,564,565,1,0,0,0,565,570,1,0,0,0,566,
+ 567,5,40,0,0,567,568,3,140,70,0,568,569,5,41,0,0,569,571,1,0,0,0,
+ 570,566,1,0,0,0,570,571,1,0,0,0,571,117,1,0,0,0,572,574,7,10,0,0,
+ 573,575,5,115,0,0,574,573,1,0,0,0,574,575,1,0,0,0,575,576,1,0,0,
+ 0,576,577,5,40,0,0,577,578,3,140,70,0,578,579,5,41,0,0,579,119,1,
+ 0,0,0,580,582,7,11,0,0,581,583,5,115,0,0,582,581,1,0,0,0,582,583,
+ 1,0,0,0,583,584,1,0,0,0,584,585,5,40,0,0,585,586,3,140,70,0,586,
+ 587,5,41,0,0,587,121,1,0,0,0,588,590,7,12,0,0,589,591,5,115,0,0,
+ 590,589,1,0,0,0,590,591,1,0,0,0,591,592,1,0,0,0,592,593,5,40,0,0,
+ 593,594,3,140,70,0,594,595,5,41,0,0,595,123,1,0,0,0,596,598,7,13,
+ 0,0,597,599,5,115,0,0,598,597,1,0,0,0,598,599,1,0,0,0,599,606,1,
+ 0,0,0,600,601,5,40,0,0,601,602,3,140,70,0,602,603,5,113,0,0,603,
+ 604,3,140,70,0,604,605,5,41,0,0,605,607,1,0,0,0,606,600,1,0,0,0,
+ 606,607,1,0,0,0,607,125,1,0,0,0,608,610,7,14,0,0,609,611,5,115,0,
+ 0,610,609,1,0,0,0,610,611,1,0,0,0,611,612,1,0,0,0,612,613,5,40,0,
+ 0,613,614,3,140,70,0,614,615,5,41,0,0,615,127,1,0,0,0,616,618,7,
+ 15,0,0,617,619,5,115,0,0,618,617,1,0,0,0,618,619,1,0,0,0,619,620,
+ 1,0,0,0,620,621,5,40,0,0,621,622,3,140,70,0,622,623,5,41,0,0,623,
+ 129,1,0,0,0,624,626,7,16,0,0,625,627,5,115,0,0,626,625,1,0,0,0,626,
+ 627,1,0,0,0,627,628,1,0,0,0,628,629,5,40,0,0,629,630,3,140,70,0,
+ 630,631,5,41,0,0,631,131,1,0,0,0,632,634,5,78,0,0,633,635,5,115,
+ 0,0,634,633,1,0,0,0,634,635,1,0,0,0,635,636,1,0,0,0,636,637,5,40,
+ 0,0,637,638,3,96,48,0,638,639,5,41,0,0,639,133,1,0,0,0,640,642,5,
+ 54,0,0,641,643,5,115,0,0,642,641,1,0,0,0,642,643,1,0,0,0,643,644,
+ 1,0,0,0,644,645,5,40,0,0,645,646,3,136,68,0,646,647,5,121,0,0,647,
+ 648,3,96,48,0,648,649,5,41,0,0,649,135,1,0,0,0,650,663,3,96,48,0,
+ 651,652,5,109,0,0,652,657,3,96,48,0,653,654,5,113,0,0,654,656,3,
+ 96,48,0,655,653,1,0,0,0,656,659,1,0,0,0,657,655,1,0,0,0,657,658,
+ 1,0,0,0,658,660,1,0,0,0,659,657,1,0,0,0,660,661,5,110,0,0,661,663,
+ 1,0,0,0,662,650,1,0,0,0,662,651,1,0,0,0,663,137,1,0,0,0,664,676,
+ 3,118,59,0,665,676,3,120,60,0,666,676,3,122,61,0,667,676,3,124,62,
+ 0,668,676,3,114,57,0,669,676,3,116,58,0,670,676,3,126,63,0,671,676,
+ 3,128,64,0,672,676,3,130,65,0,673,676,3,132,66,0,674,676,3,134,67,
+ 0,675,664,1,0,0,0,675,665,1,0,0,0,675,666,1,0,0,0,675,667,1,0,0,
+ 0,675,668,1,0,0,0,675,669,1,0,0,0,675,670,1,0,0,0,675,671,1,0,0,
+ 0,675,672,1,0,0,0,675,673,1,0,0,0,675,674,1,0,0,0,676,139,1,0,0,
+ 0,677,678,5,24,0,0,678,141,1,0,0,0,679,680,7,17,0,0,680,143,1,0,
+ 0,0,681,682,3,146,73,0,682,683,5,114,0,0,683,684,3,148,74,0,684,
+ 145,1,0,0,0,685,686,7,18,0,0,686,147,1,0,0,0,687,688,7,19,0,0,688,
+ 149,1,0,0,0,689,694,3,144,72,0,690,691,5,113,0,0,691,693,3,144,72,
+ 0,692,690,1,0,0,0,693,696,1,0,0,0,694,692,1,0,0,0,694,695,1,0,0,
+ 0,695,151,1,0,0,0,696,694,1,0,0,0,697,698,7,20,0,0,698,153,1,0,0,
+ 0,699,702,3,152,76,0,700,702,5,123,0,0,701,699,1,0,0,0,701,700,1,
+ 0,0,0,702,155,1,0,0,0,62,160,169,185,203,209,214,217,222,224,231,
+ 236,258,265,274,282,291,301,314,317,331,334,349,356,364,371,377,
+ 382,468,471,477,492,495,504,515,520,522,526,530,534,538,542,546,
+ 550,554,560,564,570,574,582,590,598,606,610,618,626,634,642,657,
+ 662,675,694,701
]
class FuncTestCaseParser ( Parser ):
@@ -313,19 +297,18 @@ class FuncTestCaseParser ( Parser ):
"'null'", "", "'enum'", "", "",
"", "'IF'", "'THEN'", "'ELSE'", "'FUNC'",
"'BOOLEAN'", "'I8'", "'I16'", "'I32'", "'I64'", "'FP32'",
- "'FP64'", "'STRING'", "'BINARY'", "'TIMESTAMP'", "'TIMESTAMP_TZ'",
- "'DATE'", "'TIME'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'",
- "'INTERVAL_COMPOUND'", "'UUID'", "'DECIMAL'", "'PRECISION_TIME'",
- "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'",
- "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'",
- "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'", "'STR'",
- "'VBIN'", "'TS'", "'TSTZ'", "'IYEAR'", "'IDAY'", "'ICOMPOUND'",
- "'DEC'", "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'",
- "'FBIN'", "'ANY'", "", "'::'", "'+'", "'-'",
- "'*'", "'/'", "'%'", "'='", "'!='", "'>='", "'<='",
- "'>'", "'<'", "'!'", "'('", "')'", "'['", "']'", "','",
- "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'", "':='",
- "'->'" ]
+ "'FP64'", "'STRING'", "'BINARY'", "'DATE'", "'INTERVAL_YEAR'",
+ "'INTERVAL_DAY'", "'INTERVAL_COMPOUND'", "'UUID'",
+ "'DECIMAL'", "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'",
+ "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'", "'VARCHAR'",
+ "'FIXEDBINARY'", "'STRUCT'", "'NSTRUCT'", "'LIST'",
+ "'MAP'", "'U!'", "'BOOL'", "'STR'", "'VBIN'", "'IYEAR'",
+ "'IDAY'", "'ICOMPOUND'", "'DEC'", "'PT'", "'PTS'",
+ "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", "'ANY'",
+ "", "'::'", "'+'", "'-'", "'*'", "'/'", "'%'",
+ "'='", "'!='", "'>='", "'<='", "'>'", "'<'", "'!'",
+ "'('", "')'", "'['", "']'", "','", "':'", "'?'", "'#'",
+ "'.'", "'AND'", "'OR'", "':='", "'->'" ]
symbolicNames = [ "", "Whitespace", "TripleHash", "SubstraitScalarTest",
"SubstraitAggregateTest", "SubstraitInclude", "SubstraitDependency",
@@ -343,19 +326,18 @@ class FuncTestCaseParser ( Parser ):
"EnumType", "ColumnName", "LineComment", "BlockComment",
"If", "Then", "Else", "Func", "Boolean", "I8", "I16",
"I32", "I64", "FP32", "FP64", "String", "Binary",
- "Timestamp", "Timestamp_TZ", "Date", "Time", "Interval_Year",
- "Interval_Day", "Interval_Compound", "UUID", "Decimal",
- "Precision_Time", "Precision_Timestamp", "Precision_Timestamp_TZ",
- "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct",
- "List", "Map", "UserDefined", "Bool", "Str", "VBin",
- "Ts", "TsTZ", "IYear", "IDay", "ICompound", "Dec",
- "PT", "PTs", "PTsTZ", "FChar", "VChar", "FBin", "Any",
- "AnyVar", "DoubleColon", "Plus", "Minus", "Asterisk",
- "ForwardSlash", "Percent", "Eq", "Ne", "Gte", "Lte",
- "Gt", "Lt", "Bang", "OParen", "CParen", "OBracket",
- "CBracket", "Comma", "Colon", "QMark", "Hash", "Dot",
- "And", "Or", "Assign", "Arrow", "Number", "Identifier",
- "Newline" ]
+ "Date", "Interval_Year", "Interval_Day", "Interval_Compound",
+ "UUID", "Decimal", "Precision_Time", "Precision_Timestamp",
+ "Precision_Timestamp_TZ", "FixedChar", "VarChar",
+ "FixedBinary", "Struct", "NStruct", "List", "Map",
+ "UserDefined", "Bool", "Str", "VBin", "IYear", "IDay",
+ "ICompound", "Dec", "PT", "PTs", "PTsTZ", "FChar",
+ "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus",
+ "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq",
+ "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OParen",
+ "CParen", "OBracket", "CBracket", "Comma", "Colon",
+ "QMark", "Hash", "Dot", "And", "Or", "Assign", "Arrow",
+ "Number", "Identifier", "Newline" ]
RULE_doc = 0
RULE_header = 1
@@ -388,59 +370,53 @@ class FuncTestCaseParser ( Parser ):
RULE_booleanArg = 28
RULE_stringArg = 29
RULE_dateArg = 30
- RULE_timeArg = 31
- RULE_timestampArg = 32
- RULE_timestampTzArg = 33
- RULE_intervalYearArg = 34
- RULE_intervalDayArg = 35
- RULE_intervalCompoundArg = 36
- RULE_fixedCharArg = 37
- RULE_varCharArg = 38
- RULE_fixedBinaryArg = 39
- RULE_precisionTimeArg = 40
- RULE_precisionTimestampArg = 41
- RULE_precisionTimestampTZArg = 42
- RULE_listArg = 43
- RULE_lambdaArg = 44
- RULE_enumArg = 45
- RULE_literalList = 46
- RULE_listElement = 47
- RULE_literalLambda = 48
- RULE_lambdaParameters = 49
- RULE_lambdaBody = 50
- RULE_dataType = 51
- RULE_scalarType = 52
- RULE_booleanType = 53
- RULE_stringType = 54
- RULE_binaryType = 55
- RULE_intType = 56
- RULE_floatType = 57
- RULE_dateType = 58
- RULE_timeType = 59
- RULE_timestampType = 60
- RULE_timestampTZType = 61
- RULE_intervalYearType = 62
- RULE_intervalDayType = 63
- RULE_intervalCompoundType = 64
- RULE_fixedCharType = 65
- RULE_varCharType = 66
- RULE_fixedBinaryType = 67
- RULE_decimalType = 68
- RULE_precisionTimeType = 69
- RULE_precisionTimestampType = 70
- RULE_precisionTimestampTZType = 71
- RULE_listType = 72
- RULE_funcType = 73
- RULE_funcParameters = 74
- RULE_parameterizedType = 75
- RULE_numericParameter = 76
- RULE_substraitError = 77
- RULE_funcOption = 78
- RULE_optionName = 79
- RULE_optionValue = 80
- RULE_funcOptions = 81
- RULE_nonReserved = 82
- RULE_identifier = 83
+ RULE_intervalYearArg = 31
+ RULE_intervalDayArg = 32
+ RULE_intervalCompoundArg = 33
+ RULE_fixedCharArg = 34
+ RULE_varCharArg = 35
+ RULE_fixedBinaryArg = 36
+ RULE_precisionTimeArg = 37
+ RULE_precisionTimestampArg = 38
+ RULE_precisionTimestampTZArg = 39
+ RULE_listArg = 40
+ RULE_lambdaArg = 41
+ RULE_enumArg = 42
+ RULE_literalList = 43
+ RULE_listElement = 44
+ RULE_literalLambda = 45
+ RULE_lambdaParameters = 46
+ RULE_lambdaBody = 47
+ RULE_dataType = 48
+ RULE_scalarType = 49
+ RULE_booleanType = 50
+ RULE_stringType = 51
+ RULE_binaryType = 52
+ RULE_intType = 53
+ RULE_floatType = 54
+ RULE_dateType = 55
+ RULE_intervalYearType = 56
+ RULE_intervalDayType = 57
+ RULE_intervalCompoundType = 58
+ RULE_fixedCharType = 59
+ RULE_varCharType = 60
+ RULE_fixedBinaryType = 61
+ RULE_decimalType = 62
+ RULE_precisionTimeType = 63
+ RULE_precisionTimestampType = 64
+ RULE_precisionTimestampTZType = 65
+ RULE_listType = 66
+ RULE_funcType = 67
+ RULE_funcParameters = 68
+ RULE_parameterizedType = 69
+ RULE_numericParameter = 70
+ RULE_substraitError = 71
+ RULE_funcOption = 72
+ RULE_optionName = 73
+ RULE_optionValue = 74
+ RULE_funcOptions = 75
+ RULE_nonReserved = 76
+ RULE_identifier = 77
ruleNames = [ "doc", "header", "version", "include", "dependency",
"testGroupDescription", "testCase", "testGroup", "arguments",
@@ -449,18 +425,16 @@ class FuncTestCaseParser ( Parser ):
"literal", "qualifiedAggregateFuncArgs", "aggregateFuncArgs",
"qualifiedAggregateFuncArg", "aggregateFuncArg", "numericLiteral",
"floatLiteral", "nullArg", "intArg", "floatArg", "decimalArg",
- "booleanArg", "stringArg", "dateArg", "timeArg", "timestampArg",
- "timestampTzArg", "intervalYearArg", "intervalDayArg",
- "intervalCompoundArg", "fixedCharArg", "varCharArg",
- "fixedBinaryArg", "precisionTimeArg", "precisionTimestampArg",
+ "booleanArg", "stringArg", "dateArg", "intervalYearArg",
+ "intervalDayArg", "intervalCompoundArg", "fixedCharArg",
+ "varCharArg", "fixedBinaryArg", "precisionTimeArg", "precisionTimestampArg",
"precisionTimestampTZArg", "listArg", "lambdaArg", "enumArg",
"literalList", "listElement", "literalLambda", "lambdaParameters",
"lambdaBody", "dataType", "scalarType", "booleanType",
"stringType", "binaryType", "intType", "floatType", "dateType",
- "timeType", "timestampType", "timestampTZType", "intervalYearType",
- "intervalDayType", "intervalCompoundType", "fixedCharType",
- "varCharType", "fixedBinaryType", "decimalType", "precisionTimeType",
- "precisionTimestampType", "precisionTimestampTZType",
+ "intervalYearType", "intervalDayType", "intervalCompoundType",
+ "fixedCharType", "varCharType", "fixedBinaryType", "decimalType",
+ "precisionTimeType", "precisionTimestampType", "precisionTimestampTZType",
"listType", "funcType", "funcParameters", "parameterizedType",
"numericParameter", "substraitError", "funcOption", "optionName",
"optionValue", "funcOptions", "nonReserved", "identifier" ]
@@ -529,72 +503,67 @@ class FuncTestCaseParser ( Parser ):
FP64=61
String=62
Binary=63
- Timestamp=64
- Timestamp_TZ=65
- Date=66
- Time=67
- Interval_Year=68
- Interval_Day=69
- Interval_Compound=70
- UUID=71
- Decimal=72
- Precision_Time=73
- Precision_Timestamp=74
- Precision_Timestamp_TZ=75
- FixedChar=76
- VarChar=77
- FixedBinary=78
- Struct=79
- NStruct=80
- List=81
- Map=82
- UserDefined=83
- Bool=84
- Str=85
- VBin=86
- Ts=87
- TsTZ=88
- IYear=89
- IDay=90
- ICompound=91
- Dec=92
- PT=93
- PTs=94
- PTsTZ=95
- FChar=96
- VChar=97
- FBin=98
- Any=99
- AnyVar=100
- DoubleColon=101
- Plus=102
- Minus=103
- Asterisk=104
- ForwardSlash=105
- Percent=106
- Eq=107
- Ne=108
- Gte=109
- Lte=110
- Gt=111
- Lt=112
- Bang=113
- OParen=114
- CParen=115
- OBracket=116
- CBracket=117
- Comma=118
- Colon=119
- QMark=120
- Hash=121
- Dot=122
- And=123
- Or=124
- Assign=125
- Arrow=126
- Number=127
- Identifier=128
- Newline=129
+ Date=64
+ Interval_Year=65
+ Interval_Day=66
+ Interval_Compound=67
+ UUID=68
+ Decimal=69
+ Precision_Time=70
+ Precision_Timestamp=71
+ Precision_Timestamp_TZ=72
+ FixedChar=73
+ VarChar=74
+ FixedBinary=75
+ Struct=76
+ NStruct=77
+ List=78
+ Map=79
+ UserDefined=80
+ Bool=81
+ Str=82
+ VBin=83
+ IYear=84
+ IDay=85
+ ICompound=86
+ Dec=87
+ PT=88
+ PTs=89
+ PTsTZ=90
+ FChar=91
+ VChar=92
+ FBin=93
+ Any=94
+ AnyVar=95
+ DoubleColon=96
+ Plus=97
+ Minus=98
+ Asterisk=99
+ ForwardSlash=100
+ Percent=101
+ Eq=102
+ Ne=103
+ Gte=104
+ Lte=105
+ Gt=106
+ Lt=107
+ Bang=108
+ OParen=109
+ CParen=110
+ OBracket=111
+ CBracket=112
+ Comma=113
+ Colon=114
+ QMark=115
+ Hash=116
+ Dot=117
+ And=118
+ Or=119
+ Assign=120
+ Arrow=121
+ Number=122
+ Identifier=123
+ Newline=124
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
super().__init__(input, output)
@@ -653,21 +622,21 @@ def doc(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 168
+ self.state = 156
self.header()
- self.state = 170
+ self.state = 158
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
- self.state = 169
+ self.state = 157
self.testGroup()
- self.state = 172
+ self.state = 160
self._errHandler.sync(self)
_la = self._input.LA(1)
- if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & 8389376) != 0) or ((((_la - 114)) & ~0x3f) == 0 and ((1 << (_la - 114)) & 17921) != 0)):
+ if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & 8389376) != 0) or ((((_la - 109)) & ~0x3f) == 0 and ((1 << (_la - 109)) & 17921) != 0)):
break
- self.state = 174
+ self.state = 162
self.match(FuncTestCaseParser.EOF)
except RecognitionException as re:
localctx.exception = re
@@ -727,17 +696,17 @@ def header(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 176
+ self.state = 164
self.version()
- self.state = 177
+ self.state = 165
self.include()
- self.state = 181
+ self.state = 169
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==2:
- self.state = 178
+ self.state = 166
self.dependency()
- self.state = 183
+ self.state = 171
self._errHandler.sync(self)
_la = self._input.LA(1)
@@ -799,18 +768,18 @@ def version(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 184
+ self.state = 172
self.match(FuncTestCaseParser.TripleHash)
- self.state = 185
+ self.state = 173
_la = self._input.LA(1)
if not(_la==3 or _la==4):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 186
+ self.state = 174
self.match(FuncTestCaseParser.Colon)
- self.state = 187
+ self.state = 175
self.match(FuncTestCaseParser.FormatVersion)
except RecognitionException as re:
localctx.exception = re
@@ -876,23 +845,23 @@ def include(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 189
+ self.state = 177
self.match(FuncTestCaseParser.TripleHash)
- self.state = 190
+ self.state = 178
self.match(FuncTestCaseParser.SubstraitInclude)
- self.state = 191
+ self.state = 179
self.match(FuncTestCaseParser.Colon)
- self.state = 192
+ self.state = 180
self.match(FuncTestCaseParser.StringLiteral)
- self.state = 197
+ self.state = 185
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 193
+ while _la==113:
+ self.state = 181
self.match(FuncTestCaseParser.Comma)
- self.state = 194
+ self.state = 182
self.match(FuncTestCaseParser.StringLiteral)
- self.state = 199
+ self.state = 187
self._errHandler.sync(self)
_la = self._input.LA(1)
@@ -950,13 +919,13 @@ def dependency(self):
self.enterRule(localctx, 8, self.RULE_dependency)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 200
+ self.state = 188
self.match(FuncTestCaseParser.TripleHash)
- self.state = 201
+ self.state = 189
self.match(FuncTestCaseParser.SubstraitDependency)
- self.state = 202
+ self.state = 190
self.match(FuncTestCaseParser.Colon)
- self.state = 203
+ self.state = 191
self.match(FuncTestCaseParser.StringLiteral)
except RecognitionException as re:
localctx.exception = re
@@ -1003,7 +972,7 @@ def testGroupDescription(self):
self.enterRule(localctx, 10, self.RULE_testGroupDescription)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 205
+ self.state = 193
self.match(FuncTestCaseParser.DescriptionLine)
except RecognitionException as re:
localctx.exception = re
@@ -1080,29 +1049,29 @@ def testCase(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 207
+ self.state = 195
localctx.functionName = self.identifier()
- self.state = 208
+ self.state = 196
self.match(FuncTestCaseParser.OParen)
- self.state = 209
+ self.state = 197
self.arguments()
- self.state = 210
+ self.state = 198
self.match(FuncTestCaseParser.CParen)
- self.state = 215
+ self.state = 203
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==116:
- self.state = 211
+ if _la==111:
+ self.state = 199
self.match(FuncTestCaseParser.OBracket)
- self.state = 212
+ self.state = 200
self.funcOptions()
- self.state = 213
+ self.state = 201
self.match(FuncTestCaseParser.CBracket)
- self.state = 217
+ self.state = 205
self.match(FuncTestCaseParser.Eq)
- self.state = 218
+ self.state = 206
self.result()
except RecognitionException as re:
localctx.exception = re
@@ -1199,31 +1168,31 @@ def testGroup(self):
self.enterRule(localctx, 14, self.RULE_testGroup)
self._la = 0 # Token type
try:
- self.state = 236
+ self.state = 224
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,8,self._ctx)
if la_ == 1:
localctx = FuncTestCaseParser.ScalarFuncTestGroupContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 221
+ self.state = 209
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==8:
- self.state = 220
+ self.state = 208
self.testGroupDescription()
- self.state = 224
+ self.state = 212
self._errHandler.sync(self)
_alt = 1
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt == 1:
- self.state = 223
+ self.state = 211
self.testCase()
else:
raise NoViableAltException(self)
- self.state = 226
+ self.state = 214
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,5,self._ctx)
@@ -1232,25 +1201,25 @@ def testGroup(self):
elif la_ == 2:
localctx = FuncTestCaseParser.AggregateFuncTestGroupContext(self, localctx)
self.enterOuterAlt(localctx, 2)
- self.state = 229
+ self.state = 217
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==8:
- self.state = 228
+ self.state = 216
self.testGroupDescription()
- self.state = 232
+ self.state = 220
self._errHandler.sync(self)
_alt = 1
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt == 1:
- self.state = 231
+ self.state = 219
self.aggFuncTestCase()
else:
raise NoViableAltException(self)
- self.state = 234
+ self.state = 222
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,7,self._ctx)
@@ -1313,17 +1282,17 @@ def arguments(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 238
+ self.state = 226
self.argument()
- self.state = 243
+ self.state = 231
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 239
+ while _la==113:
+ self.state = 227
self.match(FuncTestCaseParser.Comma)
- self.state = 240
+ self.state = 228
self.argument()
- self.state = 245
+ self.state = 233
self._errHandler.sync(self)
_la = self._input.LA(1)
@@ -1376,17 +1345,17 @@ def result(self):
localctx = FuncTestCaseParser.ResultContext(self, self._ctx, self.state)
self.enterRule(localctx, 18, self.RULE_result)
try:
- self.state = 248
+ self.state = 236
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [18, 24, 25, 26, 27, 28, 29, 30, 31, 42, 43, 44, 45, 46, 114, 116, 128]:
+ if token in [18, 24, 25, 26, 27, 28, 29, 30, 31, 42, 43, 44, 45, 46, 109, 111, 123]:
self.enterOuterAlt(localctx, 1)
- self.state = 246
+ self.state = 234
self.argument()
pass
elif token in [10, 11]:
self.enterOuterAlt(localctx, 2)
- self.state = 247
+ self.state = 235
self.substraitError()
pass
else:
@@ -1440,18 +1409,6 @@ def dateArg(self):
return self.getTypedRuleContext(FuncTestCaseParser.DateArgContext,0)
- def timeArg(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimeArgContext,0)
-
-
- def timestampArg(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimestampArgContext,0)
-
-
- def timestampTzArg(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimestampTzArgContext,0)
-
-
def intervalYearArg(self):
return self.getTypedRuleContext(FuncTestCaseParser.IntervalYearArgContext,0)
@@ -1524,144 +1481,126 @@ def argument(self):
localctx = FuncTestCaseParser.ArgumentContext(self, self._ctx, self.state)
self.enterRule(localctx, 20, self.RULE_argument)
try:
- self.state = 273
+ self.state = 258
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,11,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
- self.state = 250
+ self.state = 238
self.nullArg()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
- self.state = 251
+ self.state = 239
self.enumArg()
pass
elif la_ == 3:
self.enterOuterAlt(localctx, 3)
- self.state = 252
+ self.state = 240
self.intArg()
pass
elif la_ == 4:
self.enterOuterAlt(localctx, 4)
- self.state = 253
+ self.state = 241
self.floatArg()
pass
elif la_ == 5:
self.enterOuterAlt(localctx, 5)
- self.state = 254
+ self.state = 242
self.booleanArg()
pass
elif la_ == 6:
self.enterOuterAlt(localctx, 6)
- self.state = 255
+ self.state = 243
self.stringArg()
pass
elif la_ == 7:
self.enterOuterAlt(localctx, 7)
- self.state = 256
+ self.state = 244
self.decimalArg()
pass
elif la_ == 8:
self.enterOuterAlt(localctx, 8)
- self.state = 257
+ self.state = 245
self.dateArg()
pass
elif la_ == 9:
self.enterOuterAlt(localctx, 9)
- self.state = 258
- self.timeArg()
+ self.state = 246
+ self.intervalYearArg()
pass
elif la_ == 10:
self.enterOuterAlt(localctx, 10)
- self.state = 259
- self.timestampArg()
+ self.state = 247
+ self.intervalDayArg()
pass
elif la_ == 11:
self.enterOuterAlt(localctx, 11)
- self.state = 260
- self.timestampTzArg()
+ self.state = 248
+ self.intervalCompoundArg()
pass
elif la_ == 12:
self.enterOuterAlt(localctx, 12)
- self.state = 261
- self.intervalYearArg()
+ self.state = 249
+ self.fixedCharArg()
pass
elif la_ == 13:
self.enterOuterAlt(localctx, 13)
- self.state = 262
- self.intervalDayArg()
+ self.state = 250
+ self.varCharArg()
pass
elif la_ == 14:
self.enterOuterAlt(localctx, 14)
- self.state = 263
- self.intervalCompoundArg()
+ self.state = 251
+ self.fixedBinaryArg()
pass
elif la_ == 15:
self.enterOuterAlt(localctx, 15)
- self.state = 264
- self.fixedCharArg()
+ self.state = 252
+ self.precisionTimeArg()
pass
elif la_ == 16:
self.enterOuterAlt(localctx, 16)
- self.state = 265
- self.varCharArg()
+ self.state = 253
+ self.precisionTimestampArg()
pass
elif la_ == 17:
self.enterOuterAlt(localctx, 17)
- self.state = 266
- self.fixedBinaryArg()
+ self.state = 254
+ self.precisionTimestampTZArg()
pass
elif la_ == 18:
self.enterOuterAlt(localctx, 18)
- self.state = 267
- self.precisionTimeArg()
+ self.state = 255
+ self.listArg()
pass
elif la_ == 19:
self.enterOuterAlt(localctx, 19)
- self.state = 268
- self.precisionTimestampArg()
+ self.state = 256
+ self.lambdaArg()
pass
elif la_ == 20:
self.enterOuterAlt(localctx, 20)
- self.state = 269
- self.precisionTimestampTZArg()
- pass
-
- elif la_ == 21:
- self.enterOuterAlt(localctx, 21)
- self.state = 270
- self.listArg()
- pass
-
- elif la_ == 22:
- self.enterOuterAlt(localctx, 22)
- self.state = 271
- self.lambdaArg()
- pass
-
- elif la_ == 23:
- self.enterOuterAlt(localctx, 23)
- self.state = 272
+ self.state = 257
self.match(FuncTestCaseParser.Identifier)
pass
@@ -1730,23 +1669,23 @@ def aggFuncTestCase(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 275
+ self.state = 260
self.aggFuncCall()
- self.state = 280
+ self.state = 265
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==116:
- self.state = 276
+ if _la==111:
+ self.state = 261
self.match(FuncTestCaseParser.OBracket)
- self.state = 277
+ self.state = 262
self.funcOptions()
- self.state = 278
+ self.state = 263
self.match(FuncTestCaseParser.CBracket)
- self.state = 282
+ self.state = 267
self.match(FuncTestCaseParser.Eq)
- self.state = 283
+ self.state = 268
self.result()
except RecognitionException as re:
localctx.exception = re
@@ -1886,59 +1825,59 @@ def aggFuncCall(self):
self.enterRule(localctx, 24, self.RULE_aggFuncCall)
self._la = 0 # Token type
try:
- self.state = 306
+ self.state = 291
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [9]:
localctx = FuncTestCaseParser.MultiArgAggregateFuncCallContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 285
+ self.state = 270
self.tableData()
- self.state = 286
+ self.state = 271
localctx.funcName = self.identifier()
- self.state = 287
+ self.state = 272
self.match(FuncTestCaseParser.OParen)
- self.state = 289
+ self.state = 274
self._errHandler.sync(self)
_la = self._input.LA(1)
- if (((_la) & ~0x3f) == 0 and ((1 << _la) & 136343720296448) != 0) or ((((_la - 114)) & ~0x3f) == 0 and ((1 << (_la - 114)) & 16389) != 0):
- self.state = 288
+ if (((_la) & ~0x3f) == 0 and ((1 << _la) & 136343720296448) != 0) or ((((_la - 109)) & ~0x3f) == 0 and ((1 << (_la - 109)) & 16389) != 0):
+ self.state = 273
self.qualifiedAggregateFuncArgs()
- self.state = 291
+ self.state = 276
self.match(FuncTestCaseParser.CParen)
pass
- elif token in [114]:
+ elif token in [109]:
localctx = FuncTestCaseParser.CompactAggregateFuncCallContext(self, localctx)
self.enterOuterAlt(localctx, 2)
- self.state = 293
+ self.state = 278
self.tableRows()
- self.state = 294
+ self.state = 279
localctx.functName = self.identifier()
- self.state = 295
+ self.state = 280
self.match(FuncTestCaseParser.OParen)
- self.state = 297
+ self.state = 282
self._errHandler.sync(self)
_la = self._input.LA(1)
- if (((_la) & ~0x3f) == 0 and ((1 << _la) & 417818697007104) != 0) or ((((_la - 114)) & ~0x3f) == 0 and ((1 << (_la - 114)) & 16389) != 0):
- self.state = 296
+ if (((_la) & ~0x3f) == 0 and ((1 << _la) & 417818697007104) != 0) or ((((_la - 109)) & ~0x3f) == 0 and ((1 << (_la - 109)) & 16389) != 0):
+ self.state = 281
self.aggregateFuncArgs()
- self.state = 299
+ self.state = 284
self.match(FuncTestCaseParser.CParen)
pass
- elif token in [23, 123, 124, 128]:
+ elif token in [23, 118, 119, 123]:
localctx = FuncTestCaseParser.SingleArgAggregateFuncCallContext(self, localctx)
self.enterOuterAlt(localctx, 3)
- self.state = 301
+ self.state = 286
localctx.functName = self.identifier()
- self.state = 302
+ self.state = 287
self.match(FuncTestCaseParser.OParen)
- self.state = 303
+ self.state = 288
self.dataColumn()
- self.state = 304
+ self.state = 289
self.match(FuncTestCaseParser.CParen)
pass
else:
@@ -2020,31 +1959,31 @@ def tableData(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 308
+ self.state = 293
self.match(FuncTestCaseParser.Define)
- self.state = 309
+ self.state = 294
localctx.tableName = self.match(FuncTestCaseParser.Identifier)
- self.state = 310
+ self.state = 295
self.match(FuncTestCaseParser.OParen)
- self.state = 311
+ self.state = 296
self.dataType()
- self.state = 316
+ self.state = 301
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 312
+ while _la==113:
+ self.state = 297
self.match(FuncTestCaseParser.Comma)
- self.state = 313
+ self.state = 298
self.dataType()
- self.state = 318
+ self.state = 303
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 319
+ self.state = 304
self.match(FuncTestCaseParser.CParen)
- self.state = 320
+ self.state = 305
self.match(FuncTestCaseParser.Eq)
- self.state = 321
+ self.state = 306
self.tableRows()
except RecognitionException as re:
localctx.exception = re
@@ -2108,29 +2047,29 @@ def tableRows(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 323
+ self.state = 308
self.match(FuncTestCaseParser.OParen)
- self.state = 332
+ self.state = 317
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==114:
- self.state = 324
+ if _la==109:
+ self.state = 309
self.columnValues()
- self.state = 329
+ self.state = 314
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 325
+ while _la==113:
+ self.state = 310
self.match(FuncTestCaseParser.Comma)
- self.state = 326
+ self.state = 311
self.columnValues()
- self.state = 331
+ self.state = 316
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 334
+ self.state = 319
self.match(FuncTestCaseParser.CParen)
except RecognitionException as re:
localctx.exception = re
@@ -2185,11 +2124,11 @@ def dataColumn(self):
self.enterRule(localctx, 30, self.RULE_dataColumn)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 336
+ self.state = 321
self.columnValues()
- self.state = 337
+ self.state = 322
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 338
+ self.state = 323
self.dataType()
except RecognitionException as re:
localctx.exception = re
@@ -2253,29 +2192,29 @@ def columnValues(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 340
+ self.state = 325
self.match(FuncTestCaseParser.OParen)
- self.state = 349
+ self.state = 334
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & 136343720296448) != 0):
- self.state = 341
+ self.state = 326
self.literal()
- self.state = 346
+ self.state = 331
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 342
+ while _la==113:
+ self.state = 327
self.match(FuncTestCaseParser.Comma)
- self.state = 343
+ self.state = 328
self.literal()
- self.state = 348
+ self.state = 333
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 351
+ self.state = 336
self.match(FuncTestCaseParser.CParen)
except RecognitionException as re:
localctx.exception = re
@@ -2352,62 +2291,62 @@ def literal(self):
localctx = FuncTestCaseParser.LiteralContext(self, self._ctx, self.state)
self.enterRule(localctx, 34, self.RULE_literal)
try:
- self.state = 364
+ self.state = 349
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [45]:
self.enterOuterAlt(localctx, 1)
- self.state = 353
+ self.state = 338
self.match(FuncTestCaseParser.NullLiteral)
pass
elif token in [18, 24, 25, 26]:
self.enterOuterAlt(localctx, 2)
- self.state = 354
+ self.state = 339
self.numericLiteral()
pass
elif token in [27]:
self.enterOuterAlt(localctx, 3)
- self.state = 355
+ self.state = 340
self.match(FuncTestCaseParser.BooleanLiteral)
pass
elif token in [46]:
self.enterOuterAlt(localctx, 4)
- self.state = 356
+ self.state = 341
self.match(FuncTestCaseParser.StringLiteral)
pass
elif token in [31]:
self.enterOuterAlt(localctx, 5)
- self.state = 357
+ self.state = 342
self.match(FuncTestCaseParser.DateLiteral)
pass
elif token in [30]:
self.enterOuterAlt(localctx, 6)
- self.state = 358
+ self.state = 343
self.match(FuncTestCaseParser.TimeLiteral)
pass
elif token in [29]:
self.enterOuterAlt(localctx, 7)
- self.state = 359
+ self.state = 344
self.match(FuncTestCaseParser.TimestampLiteral)
pass
elif token in [28]:
self.enterOuterAlt(localctx, 8)
- self.state = 360
+ self.state = 345
self.match(FuncTestCaseParser.TimestampTzLiteral)
pass
elif token in [42]:
self.enterOuterAlt(localctx, 9)
- self.state = 361
+ self.state = 346
self.match(FuncTestCaseParser.IntervalYearLiteral)
pass
elif token in [43]:
self.enterOuterAlt(localctx, 10)
- self.state = 362
+ self.state = 347
self.match(FuncTestCaseParser.IntervalDayLiteral)
pass
elif token in [44]:
self.enterOuterAlt(localctx, 11)
- self.state = 363
+ self.state = 348
self.match(FuncTestCaseParser.IntervalCompoundLiteral)
pass
else:
@@ -2469,17 +2408,17 @@ def qualifiedAggregateFuncArgs(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 366
+ self.state = 351
self.qualifiedAggregateFuncArg()
- self.state = 371
+ self.state = 356
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 367
+ while _la==113:
+ self.state = 352
self.match(FuncTestCaseParser.Comma)
- self.state = 368
+ self.state = 353
self.qualifiedAggregateFuncArg()
- self.state = 373
+ self.state = 358
self._errHandler.sync(self)
_la = self._input.LA(1)
@@ -2539,17 +2478,17 @@ def aggregateFuncArgs(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 374
+ self.state = 359
self.aggregateFuncArg()
- self.state = 379
+ self.state = 364
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 375
+ while _la==113:
+ self.state = 360
self.match(FuncTestCaseParser.Comma)
- self.state = 376
+ self.state = 361
self.aggregateFuncArg()
- self.state = 381
+ self.state = 366
self._errHandler.sync(self)
_la = self._input.LA(1)
@@ -2608,22 +2547,22 @@ def qualifiedAggregateFuncArg(self):
localctx = FuncTestCaseParser.QualifiedAggregateFuncArgContext(self, self._ctx, self.state)
self.enterRule(localctx, 40, self.RULE_qualifiedAggregateFuncArg)
try:
- self.state = 386
+ self.state = 371
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,24,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
- self.state = 382
+ self.state = 367
localctx.tableName = self.match(FuncTestCaseParser.Identifier)
- self.state = 383
+ self.state = 368
self.match(FuncTestCaseParser.Dot)
- self.state = 384
+ self.state = 369
self.match(FuncTestCaseParser.ColumnName)
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
- self.state = 385
+ self.state = 370
self.argument()
pass
@@ -2683,21 +2622,21 @@ def aggregateFuncArg(self):
localctx = FuncTestCaseParser.AggregateFuncArgContext(self, self._ctx, self.state)
self.enterRule(localctx, 42, self.RULE_aggregateFuncArg)
try:
- self.state = 392
+ self.state = 377
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [48]:
self.enterOuterAlt(localctx, 1)
- self.state = 388
+ self.state = 373
self.match(FuncTestCaseParser.ColumnName)
- self.state = 389
+ self.state = 374
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 390
+ self.state = 375
self.dataType()
pass
- elif token in [18, 24, 25, 26, 27, 28, 29, 30, 31, 42, 43, 44, 45, 46, 114, 116, 128]:
+ elif token in [18, 24, 25, 26, 27, 28, 29, 30, 31, 42, 43, 44, 45, 46, 109, 111, 123]:
self.enterOuterAlt(localctx, 2)
- self.state = 391
+ self.state = 376
self.argument()
pass
else:
@@ -2754,22 +2693,22 @@ def numericLiteral(self):
localctx = FuncTestCaseParser.NumericLiteralContext(self, self._ctx, self.state)
self.enterRule(localctx, 44, self.RULE_numericLiteral)
try:
- self.state = 397
+ self.state = 382
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [25]:
self.enterOuterAlt(localctx, 1)
- self.state = 394
+ self.state = 379
self.match(FuncTestCaseParser.DecimalLiteral)
pass
elif token in [24]:
self.enterOuterAlt(localctx, 2)
- self.state = 395
+ self.state = 380
self.match(FuncTestCaseParser.IntegerLiteral)
pass
elif token in [18, 26]:
self.enterOuterAlt(localctx, 3)
- self.state = 396
+ self.state = 381
self.floatLiteral()
pass
else:
@@ -2824,7 +2763,7 @@ def floatLiteral(self):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 399
+ self.state = 384
_la = self._input.LA(1)
if not(_la==18 or _la==26):
self._errHandler.recoverInline(self)
@@ -2883,11 +2822,11 @@ def nullArg(self):
self.enterRule(localctx, 48, self.RULE_nullArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 401
+ self.state = 386
self.match(FuncTestCaseParser.NullLiteral)
- self.state = 402
+ self.state = 387
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 403
+ self.state = 388
self.dataType()
except RecognitionException as re:
localctx.exception = re
@@ -2941,11 +2880,11 @@ def intArg(self):
self.enterRule(localctx, 50, self.RULE_intArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 405
+ self.state = 390
self.match(FuncTestCaseParser.IntegerLiteral)
- self.state = 406
+ self.state = 391
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 407
+ self.state = 392
self.intType()
except RecognitionException as re:
localctx.exception = re
@@ -3000,11 +2939,11 @@ def floatArg(self):
self.enterRule(localctx, 52, self.RULE_floatArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 409
+ self.state = 394
self.numericLiteral()
- self.state = 410
+ self.state = 395
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 411
+ self.state = 396
self.floatType()
except RecognitionException as re:
localctx.exception = re
@@ -3059,11 +2998,11 @@ def decimalArg(self):
self.enterRule(localctx, 54, self.RULE_decimalArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 413
+ self.state = 398
self.numericLiteral()
- self.state = 414
+ self.state = 399
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 415
+ self.state = 400
self.decimalType()
except RecognitionException as re:
localctx.exception = re
@@ -3117,11 +3056,11 @@ def booleanArg(self):
self.enterRule(localctx, 56, self.RULE_booleanArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 417
+ self.state = 402
self.match(FuncTestCaseParser.BooleanLiteral)
- self.state = 418
+ self.state = 403
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 419
+ self.state = 404
self.booleanType()
except RecognitionException as re:
localctx.exception = re
@@ -3175,11 +3114,11 @@ def stringArg(self):
self.enterRule(localctx, 58, self.RULE_stringArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 421
+ self.state = 406
self.match(FuncTestCaseParser.StringLiteral)
- self.state = 422
+ self.state = 407
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 423
+ self.state = 408
self.stringType()
except RecognitionException as re:
localctx.exception = re
@@ -3233,11 +3172,11 @@ def dateArg(self):
self.enterRule(localctx, 60, self.RULE_dateArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 425
+ self.state = 410
self.match(FuncTestCaseParser.DateLiteral)
- self.state = 426
+ self.state = 411
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 427
+ self.state = 412
self.dateType()
except RecognitionException as re:
localctx.exception = re
@@ -3248,55 +3187,55 @@ def dateArg(self):
return localctx
- class TimeArgContext(ParserRuleContext):
+ class IntervalYearArgContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
- def TimeLiteral(self):
- return self.getToken(FuncTestCaseParser.TimeLiteral, 0)
+ def IntervalYearLiteral(self):
+ return self.getToken(FuncTestCaseParser.IntervalYearLiteral, 0)
def DoubleColon(self):
return self.getToken(FuncTestCaseParser.DoubleColon, 0)
- def timeType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimeTypeContext,0)
+ def intervalYearType(self):
+ return self.getTypedRuleContext(FuncTestCaseParser.IntervalYearTypeContext,0)
def getRuleIndex(self):
- return FuncTestCaseParser.RULE_timeArg
+ return FuncTestCaseParser.RULE_intervalYearArg
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimeArg" ):
- listener.enterTimeArg(self)
+ if hasattr( listener, "enterIntervalYearArg" ):
+ listener.enterIntervalYearArg(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimeArg" ):
- listener.exitTimeArg(self)
+ if hasattr( listener, "exitIntervalYearArg" ):
+ listener.exitIntervalYearArg(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimeArg" ):
- return visitor.visitTimeArg(self)
+ if hasattr( visitor, "visitIntervalYearArg" ):
+ return visitor.visitIntervalYearArg(self)
else:
return visitor.visitChildren(self)
- def timeArg(self):
+ def intervalYearArg(self):
- localctx = FuncTestCaseParser.TimeArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 62, self.RULE_timeArg)
+ localctx = FuncTestCaseParser.IntervalYearArgContext(self, self._ctx, self.state)
+ self.enterRule(localctx, 62, self.RULE_intervalYearArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 429
- self.match(FuncTestCaseParser.TimeLiteral)
- self.state = 430
+ self.state = 414
+ self.match(FuncTestCaseParser.IntervalYearLiteral)
+ self.state = 415
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 431
- self.timeType()
+ self.state = 416
+ self.intervalYearType()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
@@ -3306,55 +3245,55 @@ def timeArg(self):
return localctx
- class TimestampArgContext(ParserRuleContext):
+ class IntervalDayArgContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
- def TimestampLiteral(self):
- return self.getToken(FuncTestCaseParser.TimestampLiteral, 0)
+ def IntervalDayLiteral(self):
+ return self.getToken(FuncTestCaseParser.IntervalDayLiteral, 0)
def DoubleColon(self):
return self.getToken(FuncTestCaseParser.DoubleColon, 0)
- def timestampType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimestampTypeContext,0)
+ def intervalDayType(self):
+ return self.getTypedRuleContext(FuncTestCaseParser.IntervalDayTypeContext,0)
def getRuleIndex(self):
- return FuncTestCaseParser.RULE_timestampArg
+ return FuncTestCaseParser.RULE_intervalDayArg
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimestampArg" ):
- listener.enterTimestampArg(self)
+ if hasattr( listener, "enterIntervalDayArg" ):
+ listener.enterIntervalDayArg(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimestampArg" ):
- listener.exitTimestampArg(self)
+ if hasattr( listener, "exitIntervalDayArg" ):
+ listener.exitIntervalDayArg(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimestampArg" ):
- return visitor.visitTimestampArg(self)
+ if hasattr( visitor, "visitIntervalDayArg" ):
+ return visitor.visitIntervalDayArg(self)
else:
return visitor.visitChildren(self)
- def timestampArg(self):
+ def intervalDayArg(self):
- localctx = FuncTestCaseParser.TimestampArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 64, self.RULE_timestampArg)
+ localctx = FuncTestCaseParser.IntervalDayArgContext(self, self._ctx, self.state)
+ self.enterRule(localctx, 64, self.RULE_intervalDayArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 433
- self.match(FuncTestCaseParser.TimestampLiteral)
- self.state = 434
+ self.state = 418
+ self.match(FuncTestCaseParser.IntervalDayLiteral)
+ self.state = 419
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 435
- self.timestampType()
+ self.state = 420
+ self.intervalDayType()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
@@ -3364,55 +3303,55 @@ def timestampArg(self):
return localctx
- class TimestampTzArgContext(ParserRuleContext):
+ class IntervalCompoundArgContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
- def TimestampTzLiteral(self):
- return self.getToken(FuncTestCaseParser.TimestampTzLiteral, 0)
+ def IntervalCompoundLiteral(self):
+ return self.getToken(FuncTestCaseParser.IntervalCompoundLiteral, 0)
def DoubleColon(self):
return self.getToken(FuncTestCaseParser.DoubleColon, 0)
- def timestampTZType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimestampTZTypeContext,0)
+ def intervalCompoundType(self):
+ return self.getTypedRuleContext(FuncTestCaseParser.IntervalCompoundTypeContext,0)
def getRuleIndex(self):
- return FuncTestCaseParser.RULE_timestampTzArg
+ return FuncTestCaseParser.RULE_intervalCompoundArg
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimestampTzArg" ):
- listener.enterTimestampTzArg(self)
+ if hasattr( listener, "enterIntervalCompoundArg" ):
+ listener.enterIntervalCompoundArg(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimestampTzArg" ):
- listener.exitTimestampTzArg(self)
+ if hasattr( listener, "exitIntervalCompoundArg" ):
+ listener.exitIntervalCompoundArg(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimestampTzArg" ):
- return visitor.visitTimestampTzArg(self)
+ if hasattr( visitor, "visitIntervalCompoundArg" ):
+ return visitor.visitIntervalCompoundArg(self)
else:
return visitor.visitChildren(self)
- def timestampTzArg(self):
+ def intervalCompoundArg(self):
- localctx = FuncTestCaseParser.TimestampTzArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 66, self.RULE_timestampTzArg)
+ localctx = FuncTestCaseParser.IntervalCompoundArgContext(self, self._ctx, self.state)
+ self.enterRule(localctx, 66, self.RULE_intervalCompoundArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 437
- self.match(FuncTestCaseParser.TimestampTzLiteral)
- self.state = 438
+ self.state = 422
+ self.match(FuncTestCaseParser.IntervalCompoundLiteral)
+ self.state = 423
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 439
- self.timestampTZType()
+ self.state = 424
+ self.intervalCompoundType()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
@@ -3422,189 +3361,15 @@ def timestampTzArg(self):
return localctx
- class IntervalYearArgContext(ParserRuleContext):
+ class FixedCharArgContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
- def IntervalYearLiteral(self):
- return self.getToken(FuncTestCaseParser.IntervalYearLiteral, 0)
-
- def DoubleColon(self):
- return self.getToken(FuncTestCaseParser.DoubleColon, 0)
-
- def intervalYearType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.IntervalYearTypeContext,0)
-
-
- def getRuleIndex(self):
- return FuncTestCaseParser.RULE_intervalYearArg
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterIntervalYearArg" ):
- listener.enterIntervalYearArg(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitIntervalYearArg" ):
- listener.exitIntervalYearArg(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitIntervalYearArg" ):
- return visitor.visitIntervalYearArg(self)
- else:
- return visitor.visitChildren(self)
-
-
-
-
- def intervalYearArg(self):
-
- localctx = FuncTestCaseParser.IntervalYearArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 68, self.RULE_intervalYearArg)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 441
- self.match(FuncTestCaseParser.IntervalYearLiteral)
- self.state = 442
- self.match(FuncTestCaseParser.DoubleColon)
- self.state = 443
- self.intervalYearType()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
-
- class IntervalDayArgContext(ParserRuleContext):
- __slots__ = 'parser'
-
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def IntervalDayLiteral(self):
- return self.getToken(FuncTestCaseParser.IntervalDayLiteral, 0)
-
- def DoubleColon(self):
- return self.getToken(FuncTestCaseParser.DoubleColon, 0)
-
- def intervalDayType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.IntervalDayTypeContext,0)
-
-
- def getRuleIndex(self):
- return FuncTestCaseParser.RULE_intervalDayArg
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterIntervalDayArg" ):
- listener.enterIntervalDayArg(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitIntervalDayArg" ):
- listener.exitIntervalDayArg(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitIntervalDayArg" ):
- return visitor.visitIntervalDayArg(self)
- else:
- return visitor.visitChildren(self)
-
-
-
-
- def intervalDayArg(self):
-
- localctx = FuncTestCaseParser.IntervalDayArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 70, self.RULE_intervalDayArg)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 445
- self.match(FuncTestCaseParser.IntervalDayLiteral)
- self.state = 446
- self.match(FuncTestCaseParser.DoubleColon)
- self.state = 447
- self.intervalDayType()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
-
- class IntervalCompoundArgContext(ParserRuleContext):
- __slots__ = 'parser'
-
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def IntervalCompoundLiteral(self):
- return self.getToken(FuncTestCaseParser.IntervalCompoundLiteral, 0)
-
- def DoubleColon(self):
- return self.getToken(FuncTestCaseParser.DoubleColon, 0)
-
- def intervalCompoundType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.IntervalCompoundTypeContext,0)
-
-
- def getRuleIndex(self):
- return FuncTestCaseParser.RULE_intervalCompoundArg
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterIntervalCompoundArg" ):
- listener.enterIntervalCompoundArg(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitIntervalCompoundArg" ):
- listener.exitIntervalCompoundArg(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitIntervalCompoundArg" ):
- return visitor.visitIntervalCompoundArg(self)
- else:
- return visitor.visitChildren(self)
-
-
-
-
- def intervalCompoundArg(self):
-
- localctx = FuncTestCaseParser.IntervalCompoundArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 72, self.RULE_intervalCompoundArg)
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 449
- self.match(FuncTestCaseParser.IntervalCompoundLiteral)
- self.state = 450
- self.match(FuncTestCaseParser.DoubleColon)
- self.state = 451
- self.intervalCompoundType()
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
-
- class FixedCharArgContext(ParserRuleContext):
- __slots__ = 'parser'
-
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
-
- def StringLiteral(self):
- return self.getToken(FuncTestCaseParser.StringLiteral, 0)
+ def StringLiteral(self):
+ return self.getToken(FuncTestCaseParser.StringLiteral, 0)
def DoubleColon(self):
return self.getToken(FuncTestCaseParser.DoubleColon, 0)
@@ -3636,14 +3401,14 @@ def accept(self, visitor:ParseTreeVisitor):
def fixedCharArg(self):
localctx = FuncTestCaseParser.FixedCharArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 74, self.RULE_fixedCharArg)
+ self.enterRule(localctx, 68, self.RULE_fixedCharArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 453
+ self.state = 426
self.match(FuncTestCaseParser.StringLiteral)
- self.state = 454
+ self.state = 427
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 455
+ self.state = 428
self.fixedCharType()
except RecognitionException as re:
localctx.exception = re
@@ -3694,14 +3459,14 @@ def accept(self, visitor:ParseTreeVisitor):
def varCharArg(self):
localctx = FuncTestCaseParser.VarCharArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 76, self.RULE_varCharArg)
+ self.enterRule(localctx, 70, self.RULE_varCharArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 457
+ self.state = 430
self.match(FuncTestCaseParser.StringLiteral)
- self.state = 458
+ self.state = 431
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 459
+ self.state = 432
self.varCharType()
except RecognitionException as re:
localctx.exception = re
@@ -3752,14 +3517,14 @@ def accept(self, visitor:ParseTreeVisitor):
def fixedBinaryArg(self):
localctx = FuncTestCaseParser.FixedBinaryArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 78, self.RULE_fixedBinaryArg)
+ self.enterRule(localctx, 72, self.RULE_fixedBinaryArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 461
+ self.state = 434
self.match(FuncTestCaseParser.StringLiteral)
- self.state = 462
+ self.state = 435
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 463
+ self.state = 436
self.fixedBinaryType()
except RecognitionException as re:
localctx.exception = re
@@ -3810,14 +3575,14 @@ def accept(self, visitor:ParseTreeVisitor):
def precisionTimeArg(self):
localctx = FuncTestCaseParser.PrecisionTimeArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 80, self.RULE_precisionTimeArg)
+ self.enterRule(localctx, 74, self.RULE_precisionTimeArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 465
+ self.state = 438
self.match(FuncTestCaseParser.TimeLiteral)
- self.state = 466
+ self.state = 439
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 467
+ self.state = 440
self.precisionTimeType()
except RecognitionException as re:
localctx.exception = re
@@ -3868,14 +3633,14 @@ def accept(self, visitor:ParseTreeVisitor):
def precisionTimestampArg(self):
localctx = FuncTestCaseParser.PrecisionTimestampArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 82, self.RULE_precisionTimestampArg)
+ self.enterRule(localctx, 76, self.RULE_precisionTimestampArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 469
+ self.state = 442
self.match(FuncTestCaseParser.TimestampLiteral)
- self.state = 470
+ self.state = 443
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 471
+ self.state = 444
self.precisionTimestampType()
except RecognitionException as re:
localctx.exception = re
@@ -3926,14 +3691,14 @@ def accept(self, visitor:ParseTreeVisitor):
def precisionTimestampTZArg(self):
localctx = FuncTestCaseParser.PrecisionTimestampTZArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 84, self.RULE_precisionTimestampTZArg)
+ self.enterRule(localctx, 78, self.RULE_precisionTimestampTZArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 473
+ self.state = 446
self.match(FuncTestCaseParser.TimestampTzLiteral)
- self.state = 474
+ self.state = 447
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 475
+ self.state = 448
self.precisionTimestampTZType()
except RecognitionException as re:
localctx.exception = re
@@ -3985,14 +3750,14 @@ def accept(self, visitor:ParseTreeVisitor):
def listArg(self):
localctx = FuncTestCaseParser.ListArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 86, self.RULE_listArg)
+ self.enterRule(localctx, 80, self.RULE_listArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 477
+ self.state = 450
self.literalList()
- self.state = 478
+ self.state = 451
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 479
+ self.state = 452
self.listType()
except RecognitionException as re:
localctx.exception = re
@@ -4044,14 +3809,14 @@ def accept(self, visitor:ParseTreeVisitor):
def lambdaArg(self):
localctx = FuncTestCaseParser.LambdaArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 88, self.RULE_lambdaArg)
+ self.enterRule(localctx, 82, self.RULE_lambdaArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 481
+ self.state = 454
self.literalLambda()
- self.state = 482
+ self.state = 455
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 483
+ self.state = 456
self.funcType()
except RecognitionException as re:
localctx.exception = re
@@ -4101,14 +3866,14 @@ def accept(self, visitor:ParseTreeVisitor):
def enumArg(self):
localctx = FuncTestCaseParser.EnumArgContext(self, self._ctx, self.state)
- self.enterRule(localctx, 90, self.RULE_enumArg)
+ self.enterRule(localctx, 84, self.RULE_enumArg)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 485
+ self.state = 458
self.match(FuncTestCaseParser.Identifier)
- self.state = 486
+ self.state = 459
self.match(FuncTestCaseParser.DoubleColon)
- self.state = 487
+ self.state = 460
self.match(FuncTestCaseParser.EnumType)
except RecognitionException as re:
localctx.exception = re
@@ -4168,33 +3933,33 @@ def accept(self, visitor:ParseTreeVisitor):
def literalList(self):
localctx = FuncTestCaseParser.LiteralListContext(self, self._ctx, self.state)
- self.enterRule(localctx, 92, self.RULE_literalList)
+ self.enterRule(localctx, 86, self.RULE_literalList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 489
+ self.state = 462
self.match(FuncTestCaseParser.OBracket)
- self.state = 498
+ self.state = 471
self._errHandler.sync(self)
_la = self._input.LA(1)
- if (((_la) & ~0x3f) == 0 and ((1 << _la) & 136343720296448) != 0) or _la==116:
- self.state = 490
+ if (((_la) & ~0x3f) == 0 and ((1 << _la) & 136343720296448) != 0) or _la==111:
+ self.state = 463
self.listElement()
- self.state = 495
+ self.state = 468
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 491
+ while _la==113:
+ self.state = 464
self.match(FuncTestCaseParser.Comma)
- self.state = 492
+ self.state = 465
self.listElement()
- self.state = 497
+ self.state = 470
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 500
+ self.state = 473
self.match(FuncTestCaseParser.CBracket)
except RecognitionException as re:
localctx.exception = re
@@ -4243,19 +4008,19 @@ def accept(self, visitor:ParseTreeVisitor):
def listElement(self):
localctx = FuncTestCaseParser.ListElementContext(self, self._ctx, self.state)
- self.enterRule(localctx, 94, self.RULE_listElement)
+ self.enterRule(localctx, 88, self.RULE_listElement)
try:
- self.state = 504
+ self.state = 477
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [18, 24, 25, 26, 27, 28, 29, 30, 31, 42, 43, 44, 45, 46]:
self.enterOuterAlt(localctx, 1)
- self.state = 502
+ self.state = 475
self.literal()
pass
- elif token in [116]:
+ elif token in [111]:
self.enterOuterAlt(localctx, 2)
- self.state = 503
+ self.state = 476
self.literalList()
pass
else:
@@ -4317,18 +4082,18 @@ def accept(self, visitor:ParseTreeVisitor):
def literalLambda(self):
localctx = FuncTestCaseParser.LiteralLambdaContext(self, self._ctx, self.state)
- self.enterRule(localctx, 96, self.RULE_literalLambda)
+ self.enterRule(localctx, 90, self.RULE_literalLambda)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 506
+ self.state = 479
self.match(FuncTestCaseParser.OParen)
- self.state = 507
+ self.state = 480
self.lambdaParameters()
- self.state = 508
+ self.state = 481
self.match(FuncTestCaseParser.Arrow)
- self.state = 509
+ self.state = 482
self.lambdaBody()
- self.state = 510
+ self.state = 483
self.match(FuncTestCaseParser.CParen)
except RecognitionException as re:
localctx.exception = re
@@ -4420,40 +4185,40 @@ def accept(self, visitor:ParseTreeVisitor):
def lambdaParameters(self):
localctx = FuncTestCaseParser.LambdaParametersContext(self, self._ctx, self.state)
- self.enterRule(localctx, 98, self.RULE_lambdaParameters)
+ self.enterRule(localctx, 92, self.RULE_lambdaParameters)
self._la = 0 # Token type
try:
- self.state = 522
+ self.state = 495
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [128]:
+ if token in [123]:
localctx = FuncTestCaseParser.SingleParamContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 512
+ self.state = 485
self.match(FuncTestCaseParser.Identifier)
pass
- elif token in [114]:
+ elif token in [109]:
localctx = FuncTestCaseParser.TupleParamsContext(self, localctx)
self.enterOuterAlt(localctx, 2)
- self.state = 513
+ self.state = 486
self.match(FuncTestCaseParser.OParen)
- self.state = 514
+ self.state = 487
self.match(FuncTestCaseParser.Identifier)
- self.state = 517
+ self.state = 490
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
- self.state = 515
+ self.state = 488
self.match(FuncTestCaseParser.Comma)
- self.state = 516
+ self.state = 489
self.match(FuncTestCaseParser.Identifier)
- self.state = 519
+ self.state = 492
self._errHandler.sync(self)
_la = self._input.LA(1)
- if not (_la==118):
+ if not (_la==113):
break
- self.state = 521
+ self.state = 494
self.match(FuncTestCaseParser.CParen)
pass
else:
@@ -4512,16 +4277,16 @@ def accept(self, visitor:ParseTreeVisitor):
def lambdaBody(self):
localctx = FuncTestCaseParser.LambdaBodyContext(self, self._ctx, self.state)
- self.enterRule(localctx, 100, self.RULE_lambdaBody)
+ self.enterRule(localctx, 94, self.RULE_lambdaBody)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 524
+ self.state = 497
self.identifier()
- self.state = 525
+ self.state = 498
self.match(FuncTestCaseParser.OParen)
- self.state = 526
+ self.state = 499
self.arguments()
- self.state = 527
+ self.state = 500
self.match(FuncTestCaseParser.CParen)
except RecognitionException as re:
localctx.exception = re
@@ -4570,19 +4335,19 @@ def accept(self, visitor:ParseTreeVisitor):
def dataType(self):
localctx = FuncTestCaseParser.DataTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 102, self.RULE_dataType)
+ self.enterRule(localctx, 96, self.RULE_dataType)
try:
- self.state = 531
+ self.state = 504
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 71, 83, 84, 85, 86, 87, 88, 89]:
+ if token in [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 68, 80, 81, 82, 83, 84]:
self.enterOuterAlt(localctx, 1)
- self.state = 529
+ self.state = 502
self.scalarType()
pass
- elif token in [54, 69, 70, 72, 73, 74, 75, 76, 77, 78, 81, 90, 91, 92, 93, 94, 95, 96, 97, 98]:
+ elif token in [54, 66, 67, 69, 70, 71, 72, 73, 74, 75, 78, 85, 86, 87, 88, 89, 90, 91, 92, 93]:
self.enterOuterAlt(localctx, 2)
- self.state = 530
+ self.state = 503
self.parameterizedType()
pass
else:
@@ -4743,31 +4508,6 @@ def accept(self, visitor:ParseTreeVisitor):
return visitor.visitChildren(self)
- class TimeContext(ScalarTypeContext):
-
- def __init__(self, parser, ctx:ParserRuleContext): # actually a FuncTestCaseParser.ScalarTypeContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def timeType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimeTypeContext,0)
-
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTime" ):
- listener.enterTime(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTime" ):
- listener.exitTime(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTime" ):
- return visitor.visitTime(self)
- else:
- return visitor.visitChildren(self)
-
-
class FloatContext(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a FuncTestCaseParser.ScalarTypeContext
@@ -4870,152 +4610,84 @@ def accept(self, visitor:ParseTreeVisitor):
return visitor.visitChildren(self)
- class TimestampContext(ScalarTypeContext):
-
- def __init__(self, parser, ctx:ParserRuleContext): # actually a FuncTestCaseParser.ScalarTypeContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def timestampType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimestampTypeContext,0)
-
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimestamp" ):
- listener.enterTimestamp(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimestamp" ):
- listener.exitTimestamp(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimestamp" ):
- return visitor.visitTimestamp(self)
- else:
- return visitor.visitChildren(self)
-
-
- class TimestampTzContext(ScalarTypeContext):
-
- def __init__(self, parser, ctx:ParserRuleContext): # actually a FuncTestCaseParser.ScalarTypeContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def timestampTZType(self):
- return self.getTypedRuleContext(FuncTestCaseParser.TimestampTZTypeContext,0)
-
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimestampTz" ):
- listener.enterTimestampTz(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimestampTz" ):
- listener.exitTimestampTz(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimestampTz" ):
- return visitor.visitTimestampTz(self)
- else:
- return visitor.visitChildren(self)
-
-
def scalarType(self):
localctx = FuncTestCaseParser.ScalarTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 104, self.RULE_scalarType)
+ self.enterRule(localctx, 98, self.RULE_scalarType)
self._la = 0 # Token type
try:
- self.state = 552
+ self.state = 522
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [55, 84]:
+ if token in [55, 81]:
localctx = FuncTestCaseParser.BooleanContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 533
+ self.state = 506
self.booleanType()
pass
elif token in [56, 57, 58, 59]:
localctx = FuncTestCaseParser.IntContext(self, localctx)
self.enterOuterAlt(localctx, 2)
- self.state = 534
+ self.state = 507
self.intType()
pass
elif token in [60, 61]:
localctx = FuncTestCaseParser.FloatContext(self, localctx)
self.enterOuterAlt(localctx, 3)
- self.state = 535
+ self.state = 508
self.floatType()
pass
- elif token in [62, 85]:
+ elif token in [62, 82]:
localctx = FuncTestCaseParser.StringContext(self, localctx)
self.enterOuterAlt(localctx, 4)
- self.state = 536
+ self.state = 509
self.stringType()
pass
- elif token in [63, 86]:
+ elif token in [63, 83]:
localctx = FuncTestCaseParser.BinaryContext(self, localctx)
- self.enterOuterAlt(localctx, 5)
- self.state = 537
- self.binaryType()
- pass
- elif token in [64, 87]:
- localctx = FuncTestCaseParser.TimestampContext(self, localctx)
- self.enterOuterAlt(localctx, 6)
- self.state = 538
- self.timestampType()
- pass
- elif token in [65, 88]:
- localctx = FuncTestCaseParser.TimestampTzContext(self, localctx)
- self.enterOuterAlt(localctx, 7)
- self.state = 539
- self.timestampTZType()
+ self.enterOuterAlt(localctx, 5)
+ self.state = 510
+ self.binaryType()
pass
- elif token in [66]:
+ elif token in [64]:
localctx = FuncTestCaseParser.DateContext(self, localctx)
- self.enterOuterAlt(localctx, 8)
- self.state = 540
+ self.enterOuterAlt(localctx, 6)
+ self.state = 511
self.dateType()
pass
- elif token in [67]:
- localctx = FuncTestCaseParser.TimeContext(self, localctx)
- self.enterOuterAlt(localctx, 9)
- self.state = 541
- self.timeType()
- pass
- elif token in [68, 89]:
+ elif token in [65, 84]:
localctx = FuncTestCaseParser.IntervalYearContext(self, localctx)
- self.enterOuterAlt(localctx, 10)
- self.state = 542
+ self.enterOuterAlt(localctx, 7)
+ self.state = 512
self.intervalYearType()
pass
- elif token in [71]:
+ elif token in [68]:
localctx = FuncTestCaseParser.UuidContext(self, localctx)
- self.enterOuterAlt(localctx, 11)
- self.state = 543
+ self.enterOuterAlt(localctx, 8)
+ self.state = 513
self.match(FuncTestCaseParser.UUID)
- self.state = 545
+ self.state = 515
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 544
+ if _la==115:
+ self.state = 514
localctx.isnull = self.match(FuncTestCaseParser.QMark)
pass
- elif token in [83]:
+ elif token in [80]:
localctx = FuncTestCaseParser.UserDefinedContext(self, localctx)
- self.enterOuterAlt(localctx, 12)
- self.state = 547
+ self.enterOuterAlt(localctx, 9)
+ self.state = 517
self.match(FuncTestCaseParser.UserDefined)
- self.state = 548
+ self.state = 518
self.match(FuncTestCaseParser.Identifier)
- self.state = 550
+ self.state = 520
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 549
+ if _la==115:
+ self.state = 519
localctx.isnull = self.match(FuncTestCaseParser.QMark)
@@ -5072,22 +4744,22 @@ def accept(self, visitor:ParseTreeVisitor):
def booleanType(self):
localctx = FuncTestCaseParser.BooleanTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 106, self.RULE_booleanType)
+ self.enterRule(localctx, 100, self.RULE_booleanType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 554
+ self.state = 524
_la = self._input.LA(1)
- if not(_la==55 or _la==84):
+ if not(_la==55 or _la==81):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 556
+ self.state = 526
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 555
+ if _la==115:
+ self.state = 525
localctx.isnull = self.match(FuncTestCaseParser.QMark)
@@ -5140,22 +4812,22 @@ def accept(self, visitor:ParseTreeVisitor):
def stringType(self):
localctx = FuncTestCaseParser.StringTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 108, self.RULE_stringType)
+ self.enterRule(localctx, 102, self.RULE_stringType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 558
+ self.state = 528
_la = self._input.LA(1)
- if not(_la==62 or _la==85):
+ if not(_la==62 or _la==82):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 560
+ self.state = 530
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 559
+ if _la==115:
+ self.state = 529
localctx.isnull = self.match(FuncTestCaseParser.QMark)
@@ -5208,22 +4880,22 @@ def accept(self, visitor:ParseTreeVisitor):
def binaryType(self):
localctx = FuncTestCaseParser.BinaryTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 110, self.RULE_binaryType)
+ self.enterRule(localctx, 104, self.RULE_binaryType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 562
+ self.state = 532
_la = self._input.LA(1)
- if not(_la==63 or _la==86):
+ if not(_la==63 or _la==83):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 564
+ self.state = 534
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 563
+ if _la==115:
+ self.state = 533
localctx.isnull = self.match(FuncTestCaseParser.QMark)
@@ -5282,22 +4954,22 @@ def accept(self, visitor:ParseTreeVisitor):
def intType(self):
localctx = FuncTestCaseParser.IntTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 112, self.RULE_intType)
+ self.enterRule(localctx, 106, self.RULE_intType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 566
+ self.state = 536
_la = self._input.LA(1)
if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 1080863910568919040) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 568
+ self.state = 538
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 567
+ if _la==115:
+ self.state = 537
localctx.isnull = self.match(FuncTestCaseParser.QMark)
@@ -5350,22 +5022,22 @@ def accept(self, visitor:ParseTreeVisitor):
def floatType(self):
localctx = FuncTestCaseParser.FloatTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 114, self.RULE_floatType)
+ self.enterRule(localctx, 108, self.RULE_floatType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 570
+ self.state = 540
_la = self._input.LA(1)
if not(_la==60 or _la==61):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 572
+ self.state = 542
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 571
+ if _la==115:
+ self.state = 541
localctx.isnull = self.match(FuncTestCaseParser.QMark)
@@ -5415,213 +5087,17 @@ def accept(self, visitor:ParseTreeVisitor):
def dateType(self):
localctx = FuncTestCaseParser.DateTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 116, self.RULE_dateType)
+ self.enterRule(localctx, 110, self.RULE_dateType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 574
+ self.state = 544
self.match(FuncTestCaseParser.Date)
- self.state = 576
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==120:
- self.state = 575
- localctx.isnull = self.match(FuncTestCaseParser.QMark)
-
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
-
- class TimeTypeContext(ParserRuleContext):
- __slots__ = 'parser'
-
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- self.isnull = None # Token
-
- def Time(self):
- return self.getToken(FuncTestCaseParser.Time, 0)
-
- def QMark(self):
- return self.getToken(FuncTestCaseParser.QMark, 0)
-
- def getRuleIndex(self):
- return FuncTestCaseParser.RULE_timeType
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimeType" ):
- listener.enterTimeType(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimeType" ):
- listener.exitTimeType(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimeType" ):
- return visitor.visitTimeType(self)
- else:
- return visitor.visitChildren(self)
-
-
-
-
- def timeType(self):
-
- localctx = FuncTestCaseParser.TimeTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 118, self.RULE_timeType)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 578
- self.match(FuncTestCaseParser.Time)
- self.state = 580
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==120:
- self.state = 579
- localctx.isnull = self.match(FuncTestCaseParser.QMark)
-
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
-
- class TimestampTypeContext(ParserRuleContext):
- __slots__ = 'parser'
-
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- self.isnull = None # Token
-
- def Ts(self):
- return self.getToken(FuncTestCaseParser.Ts, 0)
-
- def Timestamp(self):
- return self.getToken(FuncTestCaseParser.Timestamp, 0)
-
- def QMark(self):
- return self.getToken(FuncTestCaseParser.QMark, 0)
-
- def getRuleIndex(self):
- return FuncTestCaseParser.RULE_timestampType
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimestampType" ):
- listener.enterTimestampType(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimestampType" ):
- listener.exitTimestampType(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimestampType" ):
- return visitor.visitTimestampType(self)
- else:
- return visitor.visitChildren(self)
-
-
-
-
- def timestampType(self):
-
- localctx = FuncTestCaseParser.TimestampTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 120, self.RULE_timestampType)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 582
- _la = self._input.LA(1)
- if not(_la==64 or _la==87):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- self.state = 584
- self._errHandler.sync(self)
- _la = self._input.LA(1)
- if _la==120:
- self.state = 583
- localctx.isnull = self.match(FuncTestCaseParser.QMark)
-
-
- except RecognitionException as re:
- localctx.exception = re
- self._errHandler.reportError(self, re)
- self._errHandler.recover(self, re)
- finally:
- self.exitRule()
- return localctx
-
-
- class TimestampTZTypeContext(ParserRuleContext):
- __slots__ = 'parser'
-
- def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
- super().__init__(parent, invokingState)
- self.parser = parser
- self.isnull = None # Token
-
- def TsTZ(self):
- return self.getToken(FuncTestCaseParser.TsTZ, 0)
-
- def Timestamp_TZ(self):
- return self.getToken(FuncTestCaseParser.Timestamp_TZ, 0)
-
- def QMark(self):
- return self.getToken(FuncTestCaseParser.QMark, 0)
-
- def getRuleIndex(self):
- return FuncTestCaseParser.RULE_timestampTZType
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimestampTZType" ):
- listener.enterTimestampTZType(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimestampTZType" ):
- listener.exitTimestampTZType(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimestampTZType" ):
- return visitor.visitTimestampTZType(self)
- else:
- return visitor.visitChildren(self)
-
-
-
-
- def timestampTZType(self):
-
- localctx = FuncTestCaseParser.TimestampTZTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 122, self.RULE_timestampTZType)
- self._la = 0 # Token type
- try:
- self.enterOuterAlt(localctx, 1)
- self.state = 586
- _la = self._input.LA(1)
- if not(_la==65 or _la==88):
- self._errHandler.recoverInline(self)
- else:
- self._errHandler.reportMatch(self)
- self.consume()
- self.state = 588
+ self.state = 546
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 587
+ if _la==115:
+ self.state = 545
localctx.isnull = self.match(FuncTestCaseParser.QMark)
@@ -5674,22 +5150,22 @@ def accept(self, visitor:ParseTreeVisitor):
def intervalYearType(self):
localctx = FuncTestCaseParser.IntervalYearTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 124, self.RULE_intervalYearType)
+ self.enterRule(localctx, 112, self.RULE_intervalYearType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 590
+ self.state = 548
_la = self._input.LA(1)
- if not(_la==68 or _la==89):
+ if not(_la==65 or _la==84):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 592
+ self.state = 550
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 591
+ if _la==115:
+ self.state = 549
localctx.isnull = self.match(FuncTestCaseParser.QMark)
@@ -5753,34 +5229,34 @@ def accept(self, visitor:ParseTreeVisitor):
def intervalDayType(self):
localctx = FuncTestCaseParser.IntervalDayTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 126, self.RULE_intervalDayType)
+ self.enterRule(localctx, 114, self.RULE_intervalDayType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 594
+ self.state = 552
_la = self._input.LA(1)
- if not(_la==69 or _la==90):
+ if not(_la==66 or _la==85):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 596
+ self.state = 554
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 595
+ if _la==115:
+ self.state = 553
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 602
+ self.state = 560
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==40:
- self.state = 598
+ self.state = 556
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 599
+ self.state = 557
localctx.len_ = self.numericParameter()
- self.state = 600
+ self.state = 558
self.match(FuncTestCaseParser.CAngleBracket)
@@ -5844,34 +5320,34 @@ def accept(self, visitor:ParseTreeVisitor):
def intervalCompoundType(self):
localctx = FuncTestCaseParser.IntervalCompoundTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 128, self.RULE_intervalCompoundType)
+ self.enterRule(localctx, 116, self.RULE_intervalCompoundType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 604
+ self.state = 562
_la = self._input.LA(1)
- if not(_la==70 or _la==91):
+ if not(_la==67 or _la==86):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 606
+ self.state = 564
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 605
+ if _la==115:
+ self.state = 563
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 612
+ self.state = 570
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==40:
- self.state = 608
+ self.state = 566
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 609
+ self.state = 567
localctx.len_ = self.numericParameter()
- self.state = 610
+ self.state = 568
self.match(FuncTestCaseParser.CAngleBracket)
@@ -5935,30 +5411,30 @@ def accept(self, visitor:ParseTreeVisitor):
def fixedCharType(self):
localctx = FuncTestCaseParser.FixedCharTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 130, self.RULE_fixedCharType)
+ self.enterRule(localctx, 118, self.RULE_fixedCharType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 614
+ self.state = 572
_la = self._input.LA(1)
- if not(_la==76 or _la==96):
+ if not(_la==73 or _la==91):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 616
+ self.state = 574
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 615
+ if _la==115:
+ self.state = 573
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 618
+ self.state = 576
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 619
+ self.state = 577
localctx.len_ = self.numericParameter()
- self.state = 620
+ self.state = 578
self.match(FuncTestCaseParser.CAngleBracket)
except RecognitionException as re:
localctx.exception = re
@@ -6020,30 +5496,30 @@ def accept(self, visitor:ParseTreeVisitor):
def varCharType(self):
localctx = FuncTestCaseParser.VarCharTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 132, self.RULE_varCharType)
+ self.enterRule(localctx, 120, self.RULE_varCharType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 622
+ self.state = 580
_la = self._input.LA(1)
- if not(_la==77 or _la==97):
+ if not(_la==74 or _la==92):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 624
+ self.state = 582
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 623
+ if _la==115:
+ self.state = 581
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 626
+ self.state = 584
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 627
+ self.state = 585
localctx.len_ = self.numericParameter()
- self.state = 628
+ self.state = 586
self.match(FuncTestCaseParser.CAngleBracket)
except RecognitionException as re:
localctx.exception = re
@@ -6105,30 +5581,30 @@ def accept(self, visitor:ParseTreeVisitor):
def fixedBinaryType(self):
localctx = FuncTestCaseParser.FixedBinaryTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 134, self.RULE_fixedBinaryType)
+ self.enterRule(localctx, 122, self.RULE_fixedBinaryType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 630
+ self.state = 588
_la = self._input.LA(1)
- if not(_la==78 or _la==98):
+ if not(_la==75 or _la==93):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 632
+ self.state = 590
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 631
+ if _la==115:
+ self.state = 589
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 634
+ self.state = 592
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 635
+ self.state = 593
localctx.len_ = self.numericParameter()
- self.state = 636
+ self.state = 594
self.match(FuncTestCaseParser.CAngleBracket)
except RecognitionException as re:
localctx.exception = re
@@ -6197,38 +5673,38 @@ def accept(self, visitor:ParseTreeVisitor):
def decimalType(self):
localctx = FuncTestCaseParser.DecimalTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 136, self.RULE_decimalType)
+ self.enterRule(localctx, 124, self.RULE_decimalType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 638
+ self.state = 596
_la = self._input.LA(1)
- if not(_la==72 or _la==92):
+ if not(_la==69 or _la==87):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 640
+ self.state = 598
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 639
+ if _la==115:
+ self.state = 597
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 648
+ self.state = 606
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==40:
- self.state = 642
+ self.state = 600
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 643
+ self.state = 601
localctx.precision = self.numericParameter()
- self.state = 644
+ self.state = 602
self.match(FuncTestCaseParser.Comma)
- self.state = 645
+ self.state = 603
localctx.scale = self.numericParameter()
- self.state = 646
+ self.state = 604
self.match(FuncTestCaseParser.CAngleBracket)
@@ -6292,30 +5768,30 @@ def accept(self, visitor:ParseTreeVisitor):
def precisionTimeType(self):
localctx = FuncTestCaseParser.PrecisionTimeTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 138, self.RULE_precisionTimeType)
+ self.enterRule(localctx, 126, self.RULE_precisionTimeType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 650
+ self.state = 608
_la = self._input.LA(1)
- if not(_la==73 or _la==93):
+ if not(_la==70 or _la==88):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 652
+ self.state = 610
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 651
+ if _la==115:
+ self.state = 609
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 654
+ self.state = 612
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 655
+ self.state = 613
localctx.precision = self.numericParameter()
- self.state = 656
+ self.state = 614
self.match(FuncTestCaseParser.CAngleBracket)
except RecognitionException as re:
localctx.exception = re
@@ -6377,30 +5853,30 @@ def accept(self, visitor:ParseTreeVisitor):
def precisionTimestampType(self):
localctx = FuncTestCaseParser.PrecisionTimestampTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 140, self.RULE_precisionTimestampType)
+ self.enterRule(localctx, 128, self.RULE_precisionTimestampType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 658
+ self.state = 616
_la = self._input.LA(1)
- if not(_la==74 or _la==94):
+ if not(_la==71 or _la==89):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 660
+ self.state = 618
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 659
+ if _la==115:
+ self.state = 617
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 662
+ self.state = 620
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 663
+ self.state = 621
localctx.precision = self.numericParameter()
- self.state = 664
+ self.state = 622
self.match(FuncTestCaseParser.CAngleBracket)
except RecognitionException as re:
localctx.exception = re
@@ -6462,30 +5938,30 @@ def accept(self, visitor:ParseTreeVisitor):
def precisionTimestampTZType(self):
localctx = FuncTestCaseParser.PrecisionTimestampTZTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 142, self.RULE_precisionTimestampTZType)
+ self.enterRule(localctx, 130, self.RULE_precisionTimestampTZType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 666
+ self.state = 624
_la = self._input.LA(1)
- if not(_la==75 or _la==95):
+ if not(_la==72 or _la==90):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 668
+ self.state = 626
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 667
+ if _la==115:
+ self.state = 625
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 670
+ self.state = 628
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 671
+ self.state = 629
localctx.precision = self.numericParameter()
- self.state = 672
+ self.state = 630
self.match(FuncTestCaseParser.CAngleBracket)
except RecognitionException as re:
localctx.exception = re
@@ -6552,26 +6028,26 @@ def accept(self, visitor:ParseTreeVisitor):
def listType(self):
localctx = FuncTestCaseParser.ListTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 144, self.RULE_listType)
+ self.enterRule(localctx, 132, self.RULE_listType)
self._la = 0 # Token type
try:
localctx = FuncTestCaseParser.ListContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 674
+ self.state = 632
self.match(FuncTestCaseParser.List)
- self.state = 676
+ self.state = 634
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 675
+ if _la==115:
+ self.state = 633
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 678
+ self.state = 636
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 679
+ self.state = 637
localctx.elemType = self.dataType()
- self.state = 680
+ self.state = 638
self.match(FuncTestCaseParser.CAngleBracket)
except RecognitionException as re:
localctx.exception = re
@@ -6638,29 +6114,29 @@ def accept(self, visitor:ParseTreeVisitor):
def funcType(self):
localctx = FuncTestCaseParser.FuncTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 146, self.RULE_funcType)
+ self.enterRule(localctx, 134, self.RULE_funcType)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 682
+ self.state = 640
self.match(FuncTestCaseParser.Func)
- self.state = 684
+ self.state = 642
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==120:
- self.state = 683
+ if _la==115:
+ self.state = 641
localctx.isnull = self.match(FuncTestCaseParser.QMark)
- self.state = 686
+ self.state = 644
self.match(FuncTestCaseParser.OAngleBracket)
- self.state = 687
+ self.state = 645
localctx.params = self.funcParameters()
- self.state = 688
+ self.state = 646
self.match(FuncTestCaseParser.Arrow)
- self.state = 689
+ self.state = 647
localctx.returnType = self.dataType()
- self.state = 690
+ self.state = 648
self.match(FuncTestCaseParser.CAngleBracket)
except RecognitionException as re:
localctx.exception = re
@@ -6754,38 +6230,38 @@ def accept(self, visitor:ParseTreeVisitor):
def funcParameters(self):
localctx = FuncTestCaseParser.FuncParametersContext(self, self._ctx, self.state)
- self.enterRule(localctx, 148, self.RULE_funcParameters)
+ self.enterRule(localctx, 136, self.RULE_funcParameters)
self._la = 0 # Token type
try:
- self.state = 704
+ self.state = 662
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 81, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98]:
+ if token in [54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93]:
localctx = FuncTestCaseParser.SingleFuncParamContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 692
+ self.state = 650
self.dataType()
pass
- elif token in [114]:
+ elif token in [109]:
localctx = FuncTestCaseParser.FuncParamsWithParensContext(self, localctx)
self.enterOuterAlt(localctx, 2)
- self.state = 693
+ self.state = 651
self.match(FuncTestCaseParser.OParen)
- self.state = 694
+ self.state = 652
self.dataType()
- self.state = 699
+ self.state = 657
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 695
+ while _la==113:
+ self.state = 653
self.match(FuncTestCaseParser.Comma)
- self.state = 696
+ self.state = 654
self.dataType()
- self.state = 701
+ self.state = 659
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 702
+ self.state = 660
self.match(FuncTestCaseParser.CParen)
pass
else:
@@ -6874,64 +6350,64 @@ def accept(self, visitor:ParseTreeVisitor):
def parameterizedType(self):
localctx = FuncTestCaseParser.ParameterizedTypeContext(self, self._ctx, self.state)
- self.enterRule(localctx, 150, self.RULE_parameterizedType)
+ self.enterRule(localctx, 138, self.RULE_parameterizedType)
try:
- self.state = 717
+ self.state = 675
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [76, 96]:
+ if token in [73, 91]:
self.enterOuterAlt(localctx, 1)
- self.state = 706
+ self.state = 664
self.fixedCharType()
pass
- elif token in [77, 97]:
+ elif token in [74, 92]:
self.enterOuterAlt(localctx, 2)
- self.state = 707
+ self.state = 665
self.varCharType()
pass
- elif token in [78, 98]:
+ elif token in [75, 93]:
self.enterOuterAlt(localctx, 3)
- self.state = 708
+ self.state = 666
self.fixedBinaryType()
pass
- elif token in [72, 92]:
+ elif token in [69, 87]:
self.enterOuterAlt(localctx, 4)
- self.state = 709
+ self.state = 667
self.decimalType()
pass
- elif token in [69, 90]:
+ elif token in [66, 85]:
self.enterOuterAlt(localctx, 5)
- self.state = 710
+ self.state = 668
self.intervalDayType()
pass
- elif token in [70, 91]:
+ elif token in [67, 86]:
self.enterOuterAlt(localctx, 6)
- self.state = 711
+ self.state = 669
self.intervalCompoundType()
pass
- elif token in [73, 93]:
+ elif token in [70, 88]:
self.enterOuterAlt(localctx, 7)
- self.state = 712
+ self.state = 670
self.precisionTimeType()
pass
- elif token in [74, 94]:
+ elif token in [71, 89]:
self.enterOuterAlt(localctx, 8)
- self.state = 713
+ self.state = 671
self.precisionTimestampType()
pass
- elif token in [75, 95]:
+ elif token in [72, 90]:
self.enterOuterAlt(localctx, 9)
- self.state = 714
+ self.state = 672
self.precisionTimestampTZType()
pass
- elif token in [81]:
+ elif token in [78]:
self.enterOuterAlt(localctx, 10)
- self.state = 715
+ self.state = 673
self.listType()
pass
elif token in [54]:
self.enterOuterAlt(localctx, 11)
- self.state = 716
+ self.state = 674
self.funcType()
pass
else:
@@ -6991,11 +6467,11 @@ def accept(self, visitor:ParseTreeVisitor):
def numericParameter(self):
localctx = FuncTestCaseParser.NumericParameterContext(self, self._ctx, self.state)
- self.enterRule(localctx, 152, self.RULE_numericParameter)
+ self.enterRule(localctx, 140, self.RULE_numericParameter)
try:
localctx = FuncTestCaseParser.IntegerLiteralContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 719
+ self.state = 677
self.match(FuncTestCaseParser.IntegerLiteral)
except RecognitionException as re:
localctx.exception = re
@@ -7042,11 +6518,11 @@ def accept(self, visitor:ParseTreeVisitor):
def substraitError(self):
localctx = FuncTestCaseParser.SubstraitErrorContext(self, self._ctx, self.state)
- self.enterRule(localctx, 154, self.RULE_substraitError)
+ self.enterRule(localctx, 142, self.RULE_substraitError)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 721
+ self.state = 679
_la = self._input.LA(1)
if not(_la==10 or _la==11):
self._errHandler.recoverInline(self)
@@ -7103,14 +6579,14 @@ def accept(self, visitor:ParseTreeVisitor):
def funcOption(self):
localctx = FuncTestCaseParser.FuncOptionContext(self, self._ctx, self.state)
- self.enterRule(localctx, 156, self.RULE_funcOption)
+ self.enterRule(localctx, 144, self.RULE_funcOption)
try:
self.enterOuterAlt(localctx, 1)
- self.state = 723
+ self.state = 681
self.optionName()
- self.state = 724
+ self.state = 682
self.match(FuncTestCaseParser.Colon)
- self.state = 725
+ self.state = 683
self.optionValue()
except RecognitionException as re:
localctx.exception = re
@@ -7166,13 +6642,13 @@ def accept(self, visitor:ParseTreeVisitor):
def optionName(self):
localctx = FuncTestCaseParser.OptionNameContext(self, self._ctx, self.state)
- self.enterRule(localctx, 158, self.RULE_optionName)
+ self.enterRule(localctx, 146, self.RULE_optionName)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 727
+ self.state = 685
_la = self._input.LA(1)
- if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 6303744) != 0) or _la==128):
+ if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 6303744) != 0) or _la==123):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
@@ -7249,13 +6725,13 @@ def accept(self, visitor:ParseTreeVisitor):
def optionValue(self):
localctx = FuncTestCaseParser.OptionValueContext(self, self._ctx, self.state)
- self.enterRule(localctx, 160, self.RULE_optionValue)
+ self.enterRule(localctx, 148, self.RULE_optionValue)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 729
+ self.state = 687
_la = self._input.LA(1)
- if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 35184516775936) != 0) or _la==128):
+ if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 35184516775936) != 0) or _la==123):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
@@ -7312,21 +6788,21 @@ def accept(self, visitor:ParseTreeVisitor):
def funcOptions(self):
localctx = FuncTestCaseParser.FuncOptionsContext(self, self._ctx, self.state)
- self.enterRule(localctx, 162, self.RULE_funcOptions)
+ self.enterRule(localctx, 150, self.RULE_funcOptions)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 731
+ self.state = 689
self.funcOption()
- self.state = 736
+ self.state = 694
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==118:
- self.state = 732
+ while _la==113:
+ self.state = 690
self.match(FuncTestCaseParser.Comma)
- self.state = 733
+ self.state = 691
self.funcOption()
- self.state = 738
+ self.state = 696
self._errHandler.sync(self)
_la = self._input.LA(1)
@@ -7378,13 +6854,13 @@ def accept(self, visitor:ParseTreeVisitor):
def nonReserved(self):
localctx = FuncTestCaseParser.NonReservedContext(self, self._ctx, self.state)
- self.enterRule(localctx, 164, self.RULE_nonReserved)
+ self.enterRule(localctx, 152, self.RULE_nonReserved)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 739
+ self.state = 697
_la = self._input.LA(1)
- if not(_la==23 or _la==123 or _la==124):
+ if not(_la==23 or _la==118 or _la==119):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
@@ -7435,19 +6911,19 @@ def accept(self, visitor:ParseTreeVisitor):
def identifier(self):
localctx = FuncTestCaseParser.IdentifierContext(self, self._ctx, self.state)
- self.enterRule(localctx, 166, self.RULE_identifier)
+ self.enterRule(localctx, 154, self.RULE_identifier)
try:
- self.state = 743
+ self.state = 701
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [23, 123, 124]:
+ if token in [23, 118, 119]:
self.enterOuterAlt(localctx, 1)
- self.state = 741
+ self.state = 699
self.nonReserved()
pass
- elif token in [128]:
+ elif token in [123]:
self.enterOuterAlt(localctx, 2)
- self.state = 742
+ self.state = 700
self.match(FuncTestCaseParser.Identifier)
pass
else:
diff --git a/tests/coverage/antlr_parser/FuncTestCaseParserListener.py b/tests/coverage/antlr_parser/FuncTestCaseParserListener.py
index 68d8d9354..e9f293015 100644
--- a/tests/coverage/antlr_parser/FuncTestCaseParserListener.py
+++ b/tests/coverage/antlr_parser/FuncTestCaseParserListener.py
@@ -315,33 +315,6 @@ def exitDateArg(self, ctx:FuncTestCaseParser.DateArgContext):
pass
- # Enter a parse tree produced by FuncTestCaseParser#timeArg.
- def enterTimeArg(self, ctx:FuncTestCaseParser.TimeArgContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#timeArg.
- def exitTimeArg(self, ctx:FuncTestCaseParser.TimeArgContext):
- pass
-
-
- # Enter a parse tree produced by FuncTestCaseParser#timestampArg.
- def enterTimestampArg(self, ctx:FuncTestCaseParser.TimestampArgContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#timestampArg.
- def exitTimestampArg(self, ctx:FuncTestCaseParser.TimestampArgContext):
- pass
-
-
- # Enter a parse tree produced by FuncTestCaseParser#timestampTzArg.
- def enterTimestampTzArg(self, ctx:FuncTestCaseParser.TimestampTzArgContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#timestampTzArg.
- def exitTimestampTzArg(self, ctx:FuncTestCaseParser.TimestampTzArgContext):
- pass
-
-
# Enter a parse tree produced by FuncTestCaseParser#intervalYearArg.
def enterIntervalYearArg(self, ctx:FuncTestCaseParser.IntervalYearArgContext):
pass
@@ -558,24 +531,6 @@ def exitBinary(self, ctx:FuncTestCaseParser.BinaryContext):
pass
- # Enter a parse tree produced by FuncTestCaseParser#timestamp.
- def enterTimestamp(self, ctx:FuncTestCaseParser.TimestampContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#timestamp.
- def exitTimestamp(self, ctx:FuncTestCaseParser.TimestampContext):
- pass
-
-
- # Enter a parse tree produced by FuncTestCaseParser#timestampTz.
- def enterTimestampTz(self, ctx:FuncTestCaseParser.TimestampTzContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#timestampTz.
- def exitTimestampTz(self, ctx:FuncTestCaseParser.TimestampTzContext):
- pass
-
-
# Enter a parse tree produced by FuncTestCaseParser#date.
def enterDate(self, ctx:FuncTestCaseParser.DateContext):
pass
@@ -585,15 +540,6 @@ def exitDate(self, ctx:FuncTestCaseParser.DateContext):
pass
- # Enter a parse tree produced by FuncTestCaseParser#time.
- def enterTime(self, ctx:FuncTestCaseParser.TimeContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#time.
- def exitTime(self, ctx:FuncTestCaseParser.TimeContext):
- pass
-
-
# Enter a parse tree produced by FuncTestCaseParser#intervalYear.
def enterIntervalYear(self, ctx:FuncTestCaseParser.IntervalYearContext):
pass
@@ -675,33 +621,6 @@ def exitDateType(self, ctx:FuncTestCaseParser.DateTypeContext):
pass
- # Enter a parse tree produced by FuncTestCaseParser#timeType.
- def enterTimeType(self, ctx:FuncTestCaseParser.TimeTypeContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#timeType.
- def exitTimeType(self, ctx:FuncTestCaseParser.TimeTypeContext):
- pass
-
-
- # Enter a parse tree produced by FuncTestCaseParser#timestampType.
- def enterTimestampType(self, ctx:FuncTestCaseParser.TimestampTypeContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#timestampType.
- def exitTimestampType(self, ctx:FuncTestCaseParser.TimestampTypeContext):
- pass
-
-
- # Enter a parse tree produced by FuncTestCaseParser#timestampTZType.
- def enterTimestampTZType(self, ctx:FuncTestCaseParser.TimestampTZTypeContext):
- pass
-
- # Exit a parse tree produced by FuncTestCaseParser#timestampTZType.
- def exitTimestampTZType(self, ctx:FuncTestCaseParser.TimestampTZTypeContext):
- pass
-
-
# Enter a parse tree produced by FuncTestCaseParser#intervalYearType.
def enterIntervalYearType(self, ctx:FuncTestCaseParser.IntervalYearTypeContext):
pass
diff --git a/tests/coverage/antlr_parser/FuncTestCaseParserVisitor.py b/tests/coverage/antlr_parser/FuncTestCaseParserVisitor.py
index 2888a99e5..c717e5b92 100644
--- a/tests/coverage/antlr_parser/FuncTestCaseParserVisitor.py
+++ b/tests/coverage/antlr_parser/FuncTestCaseParserVisitor.py
@@ -180,21 +180,6 @@ def visitDateArg(self, ctx:FuncTestCaseParser.DateArgContext):
return self.visitChildren(ctx)
- # Visit a parse tree produced by FuncTestCaseParser#timeArg.
- def visitTimeArg(self, ctx:FuncTestCaseParser.TimeArgContext):
- return self.visitChildren(ctx)
-
-
- # Visit a parse tree produced by FuncTestCaseParser#timestampArg.
- def visitTimestampArg(self, ctx:FuncTestCaseParser.TimestampArgContext):
- return self.visitChildren(ctx)
-
-
- # Visit a parse tree produced by FuncTestCaseParser#timestampTzArg.
- def visitTimestampTzArg(self, ctx:FuncTestCaseParser.TimestampTzArgContext):
- return self.visitChildren(ctx)
-
-
# Visit a parse tree produced by FuncTestCaseParser#intervalYearArg.
def visitIntervalYearArg(self, ctx:FuncTestCaseParser.IntervalYearArgContext):
return self.visitChildren(ctx)
@@ -315,26 +300,11 @@ def visitBinary(self, ctx:FuncTestCaseParser.BinaryContext):
return self.visitChildren(ctx)
- # Visit a parse tree produced by FuncTestCaseParser#timestamp.
- def visitTimestamp(self, ctx:FuncTestCaseParser.TimestampContext):
- return self.visitChildren(ctx)
-
-
- # Visit a parse tree produced by FuncTestCaseParser#timestampTz.
- def visitTimestampTz(self, ctx:FuncTestCaseParser.TimestampTzContext):
- return self.visitChildren(ctx)
-
-
# Visit a parse tree produced by FuncTestCaseParser#date.
def visitDate(self, ctx:FuncTestCaseParser.DateContext):
return self.visitChildren(ctx)
- # Visit a parse tree produced by FuncTestCaseParser#time.
- def visitTime(self, ctx:FuncTestCaseParser.TimeContext):
- return self.visitChildren(ctx)
-
-
# Visit a parse tree produced by FuncTestCaseParser#intervalYear.
def visitIntervalYear(self, ctx:FuncTestCaseParser.IntervalYearContext):
return self.visitChildren(ctx)
@@ -380,21 +350,6 @@ def visitDateType(self, ctx:FuncTestCaseParser.DateTypeContext):
return self.visitChildren(ctx)
- # Visit a parse tree produced by FuncTestCaseParser#timeType.
- def visitTimeType(self, ctx:FuncTestCaseParser.TimeTypeContext):
- return self.visitChildren(ctx)
-
-
- # Visit a parse tree produced by FuncTestCaseParser#timestampType.
- def visitTimestampType(self, ctx:FuncTestCaseParser.TimestampTypeContext):
- return self.visitChildren(ctx)
-
-
- # Visit a parse tree produced by FuncTestCaseParser#timestampTZType.
- def visitTimestampTZType(self, ctx:FuncTestCaseParser.TimestampTZTypeContext):
- return self.visitChildren(ctx)
-
-
# Visit a parse tree produced by FuncTestCaseParser#intervalYearType.
def visitIntervalYearType(self, ctx:FuncTestCaseParser.IntervalYearTypeContext):
return self.visitChildren(ctx)
diff --git a/tests/coverage/extensions.py b/tests/coverage/extensions.py
index 4f9ae1d3c..7587167fa 100644
--- a/tests/coverage/extensions.py
+++ b/tests/coverage/extensions.py
@@ -32,10 +32,7 @@ def build_type_to_short_type():
FuncTestCaseLexer.String: FuncTestCaseLexer.Str,
FuncTestCaseLexer.Binary: FuncTestCaseLexer.VBin,
FuncTestCaseLexer.Boolean: FuncTestCaseLexer.Bool,
- FuncTestCaseLexer.Timestamp: FuncTestCaseLexer.Ts,
- FuncTestCaseLexer.Timestamp_TZ: FuncTestCaseLexer.TsTZ,
FuncTestCaseLexer.Date: FuncTestCaseLexer.Date,
- FuncTestCaseLexer.Time: FuncTestCaseLexer.Time,
FuncTestCaseLexer.Interval_Year: FuncTestCaseLexer.IYear,
FuncTestCaseLexer.Interval_Day: FuncTestCaseLexer.IDay,
FuncTestCaseLexer.Interval_Compound: FuncTestCaseLexer.ICompound,
@@ -44,6 +41,7 @@ def build_type_to_short_type():
FuncTestCaseLexer.VarChar: FuncTestCaseLexer.VChar,
FuncTestCaseLexer.FixedBinary: FuncTestCaseLexer.FBin,
FuncTestCaseLexer.Decimal: FuncTestCaseLexer.Dec,
+ FuncTestCaseLexer.Precision_Time: FuncTestCaseLexer.PT,
FuncTestCaseLexer.Precision_Timestamp: FuncTestCaseLexer.PTs,
FuncTestCaseLexer.Precision_Timestamp_TZ: FuncTestCaseLexer.PTsTZ,
FuncTestCaseLexer.Struct: FuncTestCaseLexer.Struct,
diff --git a/tests/coverage/test_coverage.py b/tests/coverage/test_coverage.py
index 5b0179609..75c60ed92 100644
--- a/tests/coverage/test_coverage.py
+++ b/tests/coverage/test_coverage.py
@@ -45,8 +45,8 @@ def test_parse_basic_example():
def test_parse_date_time_example():
header = make_header("v1.0", "/extensions/functions_datetime.yaml")
- tests = """# timestamp examples using the timestamp type
-lt('2016-12-31T13:30:15'::ts, '2017-12-31T13:30:15'::ts) = true::bool
+ tests = """# timestamp examples using the precision_timestamp type
+lt('2016-12-31T13:30:15'::pts<6>, '2017-12-31T13:30:15'::pts<6>) = true::bool
"""
test_file = parse_string(header + tests)
@@ -55,11 +55,15 @@ def test_parse_date_time_example():
assert test_file.testcases[0].base_uri == "/extensions/functions_datetime.yaml"
assert (
test_file.testcases[0].group.name
- == "timestamp examples using the timestamp type"
+ == "timestamp examples using the precision_timestamp type"
)
assert test_file.testcases[0].result == CaseLiteral("true", "bool")
- assert test_file.testcases[0].args[0] == CaseLiteral("2016-12-31T13:30:15", "ts")
- assert test_file.testcases[0].args[1] == CaseLiteral("2017-12-31T13:30:15", "ts")
+ assert test_file.testcases[0].args[0] == CaseLiteral(
+ "2016-12-31T13:30:15", "pts<6>"
+ )
+ assert test_file.testcases[0].args[1] == CaseLiteral(
+ "2017-12-31T13:30:15", "pts<6>"
+ )
def test_parse_decimal_example():
@@ -430,10 +434,10 @@ def test_parse_errors_with_bad_aggregate_testcases(input_func_test, expected_mes
"f6(1.1::dec<38,10>, 2.2::dec<38,10>) = 3.3::dec<38,10>",
"f7(1.1::dec<38,10>, 2.2::decimal<38,10>) = 3.3::decimal<38,10>",
"f8('1991-01-01'::date) = '2001-01-01'::date",
- "f9('13:01:01.2345678'::time) = '23:59:59.999'::time",
- "f10('1991-01-01T01:02:03.456'::ts, '1991-01-01T00:00:00'::timestamp) = '1991-01-01T22:33:44'::ts",
- "f11('1991-01-01T01:02:03.456+05:30'::tstz, '1991-01-01T00:00:00+15:30'::timestamp_tz) = 23::i32",
- "f12('1991-01-01'::date, 5::i64) = '1991-01-01T00:00:00+15:30'::timestamp_tz",
+ "f9('13:01:01.2345678'::pt<6>) = '23:59:59.999'::pt<6>",
+ "f10('1991-01-01T01:02:03.456'::pts<6>, '1991-01-01T00:00:00'::pts<6>) = '1991-01-01T22:33:44'::pts<6>",
+ "f11('1991-01-01T01:02:03.456+05:30'::ptstz<6>, '1991-01-01T00:00:00+15:30'::ptstz<6>) = 23::i32",
+ "f12('1991-01-01'::date, 5::i64) = '1991-01-01T00:00:00+15:30'::ptstz<6>",
"f13('P10Y5M'::interval_year, 5::i64) = 'P15Y5M'::interval_year",
"f14('P10Y5M'::iyear, 5::i64) = 'P15Y5M'::iyear",
"f15('P10DT5H6M7.2000S'::interval_day<6>, 5::i64) = 'P10DT10H6M7.2000S'::interval_day<6>",
@@ -563,9 +567,9 @@ def test_nullable_types():
"concat([1, 2]::List?, [3]::List?) = [1, 2, 3]::List?",
# Date and time types
"lt('2020-01-01'::date?, '2020-01-02'::date?) = true::bool",
- "lt('12:00:00'::time?, '13:00:00'::time?) = true::bool",
- "lt('2020-01-01T12:00:00'::ts?, '2020-01-02T12:00:00'::ts?) = true::bool",
- "lt('2020-01-01T12:00:00+00:00'::tstz?, '2020-01-02T12:00:00+00:00'::tstz?) = true::bool",
+ "lt('12:00:00'::pt?<6>, '13:00:00'::pt?<6>) = true::bool",
+ "lt('2020-01-01T12:00:00'::pts?<6>, '2020-01-02T12:00:00'::pts?<6>) = true::bool",
+ "lt('2020-01-01T12:00:00+00:00'::ptstz?<6>, '2020-01-02T12:00:00+00:00'::ptstz?<6>) = true::bool",
# Interval types
"lt('P1Y'::iyear?, 'P2Y'::iyear?) = true::bool",
"lt('P1D'::iday?, 'P2D'::iday?) = true::bool",
diff --git a/tests/coverage/visitor.py b/tests/coverage/visitor.py
index 820eb6583..0f964ce5f 100644
--- a/tests/coverage/visitor.py
+++ b/tests/coverage/visitor.py
@@ -243,11 +243,11 @@ def visitLiteral(self, ctx: FuncTestCaseParser.LiteralContext):
if ctx.DateLiteral() is not None:
return ctx.getText(), "date"
if ctx.TimeLiteral() is not None:
- return ctx.getText(), "time"
+ return ctx.getText(), "pt"
if ctx.TimestampLiteral() is not None:
- return ctx.getText(), "ts"
+ return ctx.getText(), "pts"
if ctx.TimestampTzLiteral() is not None:
- return ctx.getText(), "tstz"
+ return ctx.getText(), "ptstz"
if ctx.IntervalDayLiteral() is not None:
return ctx.getText(), "iday"
if ctx.IntervalYearLiteral() is not None:
@@ -286,12 +286,6 @@ def visitArgument(self, ctx: FuncTestCaseParser.ArgumentContext):
return self.visitDecimalArg(ctx.decimalArg())
if ctx.dateArg() is not None:
return self.visitDateArg(ctx.dateArg())
- if ctx.timeArg() is not None:
- return self.visitTimeArg(ctx.timeArg())
- if ctx.timestampArg() is not None:
- return self.visitTimestampArg(ctx.timestampArg())
- if ctx.timestampTzArg() is not None:
- return self.visitTimestampTzArg(ctx.timestampTzArg())
if ctx.intervalDayArg() is not None:
return self.visitIntervalDayArg(ctx.intervalDayArg())
if ctx.intervalYearArg() is not None:
@@ -387,30 +381,6 @@ def visitDateArg(self, ctx: FuncTestCaseParser.DateArgContext):
nullable=ctx.dateType().isnull is not None,
)
- def visitTimeArg(self, ctx: FuncTestCaseParser.TimeArgContext):
- type_str = ctx.timeType().getText().lower()
- return CaseLiteral(
- value=ctx.TimeLiteral().getText().strip("'"),
- type=type_str,
- nullable=ctx.timeType().isnull is not None,
- )
-
- def visitTimestampArg(self, ctx: FuncTestCaseParser.TimestampArgContext):
- type_str = ctx.timestampType().getText().lower()
- return CaseLiteral(
- value=ctx.TimestampLiteral().getText().strip("'"),
- type=type_str,
- nullable=ctx.timestampType().isnull is not None,
- )
-
- def visitTimestampTzArg(self, ctx: FuncTestCaseParser.TimestampTzArgContext):
- type_str = ctx.timestampTZType().getText().lower()
- return CaseLiteral(
- value=ctx.TimestampTzLiteral().getText().strip("'"),
- type=type_str,
- nullable=ctx.timestampTZType().isnull is not None,
- )
-
def visitIntervalDayArg(self, ctx: FuncTestCaseParser.IntervalDayArgContext):
type_str = ctx.intervalDayType().getText().lower()
return CaseLiteral(
diff --git a/tests/test_extensions.py b/tests/test_extensions.py
index a9e4e4e71..0a444afb5 100644
--- a/tests/test_extensions.py
+++ b/tests/test_extensions.py
@@ -62,10 +62,9 @@ def test_build_type_to_short_type():
long_to_short = build_type_to_short_type()
assert long_to_short["i64"] == "i64"
assert long_to_short["fp64"] == "fp64"
- assert long_to_short["timestamp"] == "ts"
- assert long_to_short["timestamp_tz"] == "tstz"
assert long_to_short["precision_timestamp"] == "pts"
assert long_to_short["precision_timestamp_tz"] == "ptstz"
+ assert long_to_short["precision_time"] == "pt"
assert long_to_short["interval_year"] == "iyear"
assert long_to_short["interval_day"] == "iday"
assert long_to_short["interval_compound"] == "icompound"
diff --git a/tests/type/antlr_parser/SubstraitLexer.py b/tests/type/antlr_parser/SubstraitLexer.py
index 93a45f4c2..4c99f8a51 100644
--- a/tests/type/antlr_parser/SubstraitLexer.py
+++ b/tests/type/antlr_parser/SubstraitLexer.py
@@ -11,7 +11,7 @@
def serializedATN():
return [
- 4,0,84,670,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
+ 4,0,79,624,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,
13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,
19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,
@@ -23,229 +23,213 @@ def serializedATN():
58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,
65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,
71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,
- 78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,
- 84,2,85,7,85,2,86,7,86,1,0,1,0,1,0,1,0,5,0,180,8,0,10,0,12,0,183,
- 9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,192,8,1,11,1,12,1,193,1,1,3,
- 1,197,8,1,1,1,5,1,200,8,1,10,1,12,1,203,9,1,1,1,1,1,1,1,1,1,1,1,
- 1,2,4,2,211,8,2,11,2,12,2,212,1,2,1,2,1,3,1,3,1,4,1,4,1,4,1,5,1,
- 5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,
- 8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,11,1,11,
- 1,11,1,11,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,14,1,14,
- 1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,
- 1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,
- 1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,
- 1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,21,1,21,
- 1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,
- 1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,
- 1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,
- 1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,
- 1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,
- 1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
- 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
- 1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,
- 1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,
- 1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,
- 1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
- 1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,
- 1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,36,
- 1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,39,1,39,
- 1,39,1,39,1,39,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,42,1,42,
- 1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,
- 1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,46,1,46,1,46,
- 1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,
- 1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,
- 1,51,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,54,1,54,1,54,1,55,1,55,
- 1,56,1,56,1,57,1,57,1,58,1,58,1,59,1,59,1,60,1,60,1,61,1,61,1,61,
- 1,62,1,62,1,62,1,63,1,63,1,63,1,64,1,64,1,65,1,65,1,66,1,66,1,67,
- 1,67,1,68,1,68,1,69,1,69,1,70,1,70,1,71,1,71,1,72,1,72,1,73,1,73,
- 1,74,1,74,1,75,1,75,1,76,1,76,1,77,1,77,1,78,1,78,1,78,1,78,1,79,
- 1,79,1,79,1,80,1,80,1,80,1,81,1,81,1,81,1,82,1,82,5,82,641,8,82,
- 10,82,12,82,644,9,82,1,82,3,82,647,8,82,1,83,1,83,1,84,3,84,652,
- 8,84,1,84,1,84,1,85,1,85,1,85,5,85,659,8,85,10,85,12,85,662,9,85,
- 1,86,1,86,3,86,666,8,86,1,86,3,86,669,8,86,0,0,87,1,1,3,2,5,3,7,
- 0,9,4,11,5,13,6,15,7,17,8,19,9,21,10,23,11,25,12,27,13,29,14,31,
- 15,33,16,35,17,37,18,39,19,41,20,43,21,45,22,47,23,49,24,51,25,53,
- 26,55,27,57,28,59,29,61,30,63,31,65,32,67,33,69,34,71,35,73,36,75,
- 37,77,38,79,39,81,40,83,41,85,42,87,43,89,44,91,45,93,46,95,47,97,
- 48,99,49,101,50,103,51,105,52,107,53,109,54,111,55,113,56,115,57,
- 117,58,119,59,121,60,123,61,125,62,127,63,129,64,131,65,133,66,135,
- 67,137,68,139,69,141,70,143,71,145,72,147,73,149,74,151,75,153,76,
- 155,77,157,78,159,79,161,80,163,81,165,0,167,0,169,82,171,83,173,
- 84,1,0,28,2,0,10,10,13,13,1,0,42,42,2,0,42,42,47,47,3,0,9,9,13,13,
- 32,32,1,0,48,57,2,0,73,73,105,105,2,0,70,70,102,102,2,0,84,84,116,
- 116,2,0,72,72,104,104,2,0,69,69,101,101,2,0,78,78,110,110,2,0,76,
- 76,108,108,2,0,83,83,115,115,2,0,85,85,117,117,2,0,67,67,99,99,2,
- 0,66,66,98,98,2,0,79,79,111,111,2,0,65,65,97,97,2,0,80,80,112,112,
- 2,0,82,82,114,114,2,0,71,71,103,103,2,0,89,89,121,121,2,0,77,77,
- 109,109,2,0,90,90,122,122,2,0,68,68,100,100,2,0,86,86,118,118,2,
- 0,88,88,120,120,4,0,36,36,65,90,95,95,97,122,678,0,1,1,0,0,0,0,3,
- 1,0,0,0,0,5,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,
- 0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,
- 0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,
- 0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,
- 0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,
- 0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,
- 0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,
- 0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,
- 0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,
- 0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,
- 1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,
- 0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,
- 0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,
- 133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,
- 0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,
- 1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,
- 0,161,1,0,0,0,0,163,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,
- 0,0,0,1,175,1,0,0,0,3,186,1,0,0,0,5,210,1,0,0,0,7,216,1,0,0,0,9,
- 218,1,0,0,0,11,221,1,0,0,0,13,226,1,0,0,0,15,231,1,0,0,0,17,236,
- 1,0,0,0,19,244,1,0,0,0,21,247,1,0,0,0,23,251,1,0,0,0,25,255,1,0,
- 0,0,27,259,1,0,0,0,29,264,1,0,0,0,31,269,1,0,0,0,33,276,1,0,0,0,
- 35,283,1,0,0,0,37,293,1,0,0,0,39,306,1,0,0,0,41,311,1,0,0,0,43,316,
- 1,0,0,0,45,330,1,0,0,0,47,343,1,0,0,0,49,361,1,0,0,0,51,366,1,0,
- 0,0,53,374,1,0,0,0,55,389,1,0,0,0,57,409,1,0,0,0,59,432,1,0,0,0,
- 61,442,1,0,0,0,63,450,1,0,0,0,65,462,1,0,0,0,67,469,1,0,0,0,69,477,
- 1,0,0,0,71,482,1,0,0,0,73,486,1,0,0,0,75,489,1,0,0,0,77,494,1,0,
- 0,0,79,498,1,0,0,0,81,503,1,0,0,0,83,506,1,0,0,0,85,511,1,0,0,0,
- 87,517,1,0,0,0,89,522,1,0,0,0,91,532,1,0,0,0,93,536,1,0,0,0,95,539,
- 1,0,0,0,97,543,1,0,0,0,99,549,1,0,0,0,101,555,1,0,0,0,103,561,1,
- 0,0,0,105,566,1,0,0,0,107,570,1,0,0,0,109,573,1,0,0,0,111,576,1,
- 0,0,0,113,578,1,0,0,0,115,580,1,0,0,0,117,582,1,0,0,0,119,584,1,
- 0,0,0,121,586,1,0,0,0,123,588,1,0,0,0,125,591,1,0,0,0,127,594,1,
- 0,0,0,129,597,1,0,0,0,131,599,1,0,0,0,133,601,1,0,0,0,135,603,1,
- 0,0,0,137,605,1,0,0,0,139,607,1,0,0,0,141,609,1,0,0,0,143,611,1,
- 0,0,0,145,613,1,0,0,0,147,615,1,0,0,0,149,617,1,0,0,0,151,619,1,
- 0,0,0,153,621,1,0,0,0,155,623,1,0,0,0,157,625,1,0,0,0,159,629,1,
- 0,0,0,161,632,1,0,0,0,163,635,1,0,0,0,165,646,1,0,0,0,167,648,1,
- 0,0,0,169,651,1,0,0,0,171,655,1,0,0,0,173,668,1,0,0,0,175,176,5,
- 47,0,0,176,177,5,47,0,0,177,181,1,0,0,0,178,180,8,0,0,0,179,178,
- 1,0,0,0,180,183,1,0,0,0,181,179,1,0,0,0,181,182,1,0,0,0,182,184,
- 1,0,0,0,183,181,1,0,0,0,184,185,6,0,0,0,185,2,1,0,0,0,186,187,5,
- 47,0,0,187,188,5,42,0,0,188,196,1,0,0,0,189,197,8,1,0,0,190,192,
- 5,42,0,0,191,190,1,0,0,0,192,193,1,0,0,0,193,191,1,0,0,0,193,194,
- 1,0,0,0,194,195,1,0,0,0,195,197,8,2,0,0,196,189,1,0,0,0,196,191,
- 1,0,0,0,197,201,1,0,0,0,198,200,5,42,0,0,199,198,1,0,0,0,200,203,
- 1,0,0,0,201,199,1,0,0,0,201,202,1,0,0,0,202,204,1,0,0,0,203,201,
- 1,0,0,0,204,205,5,42,0,0,205,206,5,47,0,0,206,207,1,0,0,0,207,208,
- 6,1,0,0,208,4,1,0,0,0,209,211,7,3,0,0,210,209,1,0,0,0,211,212,1,
- 0,0,0,212,210,1,0,0,0,212,213,1,0,0,0,213,214,1,0,0,0,214,215,6,
- 2,0,0,215,6,1,0,0,0,216,217,7,4,0,0,217,8,1,0,0,0,218,219,7,5,0,
- 0,219,220,7,6,0,0,220,10,1,0,0,0,221,222,7,7,0,0,222,223,7,8,0,0,
- 223,224,7,9,0,0,224,225,7,10,0,0,225,12,1,0,0,0,226,227,7,9,0,0,
- 227,228,7,11,0,0,228,229,7,12,0,0,229,230,7,9,0,0,230,14,1,0,0,0,
- 231,232,7,6,0,0,232,233,7,13,0,0,233,234,7,10,0,0,234,235,7,14,0,
- 0,235,16,1,0,0,0,236,237,7,15,0,0,237,238,7,16,0,0,238,239,7,16,
- 0,0,239,240,7,11,0,0,240,241,7,9,0,0,241,242,7,17,0,0,242,243,7,
- 10,0,0,243,18,1,0,0,0,244,245,7,5,0,0,245,246,5,56,0,0,246,20,1,
- 0,0,0,247,248,7,5,0,0,248,249,5,49,0,0,249,250,5,54,0,0,250,22,1,
- 0,0,0,251,252,7,5,0,0,252,253,5,51,0,0,253,254,5,50,0,0,254,24,1,
- 0,0,0,255,256,7,5,0,0,256,257,5,54,0,0,257,258,5,52,0,0,258,26,1,
- 0,0,0,259,260,7,6,0,0,260,261,7,18,0,0,261,262,5,51,0,0,262,263,
- 5,50,0,0,263,28,1,0,0,0,264,265,7,6,0,0,265,266,7,18,0,0,266,267,
- 5,54,0,0,267,268,5,52,0,0,268,30,1,0,0,0,269,270,7,12,0,0,270,271,
- 7,7,0,0,271,272,7,19,0,0,272,273,7,5,0,0,273,274,7,10,0,0,274,275,
- 7,20,0,0,275,32,1,0,0,0,276,277,7,15,0,0,277,278,7,5,0,0,278,279,
- 7,10,0,0,279,280,7,17,0,0,280,281,7,19,0,0,281,282,7,21,0,0,282,
- 34,1,0,0,0,283,284,7,7,0,0,284,285,7,5,0,0,285,286,7,22,0,0,286,
- 287,7,9,0,0,287,288,7,12,0,0,288,289,7,7,0,0,289,290,7,17,0,0,290,
- 291,7,22,0,0,291,292,7,18,0,0,292,36,1,0,0,0,293,294,7,7,0,0,294,
- 295,7,5,0,0,295,296,7,22,0,0,296,297,7,9,0,0,297,298,7,12,0,0,298,
- 299,7,7,0,0,299,300,7,17,0,0,300,301,7,22,0,0,301,302,7,18,0,0,302,
- 303,5,95,0,0,303,304,7,7,0,0,304,305,7,23,0,0,305,38,1,0,0,0,306,
- 307,7,24,0,0,307,308,7,17,0,0,308,309,7,7,0,0,309,310,7,9,0,0,310,
- 40,1,0,0,0,311,312,7,7,0,0,312,313,7,5,0,0,313,314,7,22,0,0,314,
- 315,7,9,0,0,315,42,1,0,0,0,316,317,7,5,0,0,317,318,7,10,0,0,318,
- 319,7,7,0,0,319,320,7,9,0,0,320,321,7,19,0,0,321,322,7,25,0,0,322,
- 323,7,17,0,0,323,324,7,11,0,0,324,325,5,95,0,0,325,326,7,21,0,0,
- 326,327,7,9,0,0,327,328,7,17,0,0,328,329,7,19,0,0,329,44,1,0,0,0,
- 330,331,7,5,0,0,331,332,7,10,0,0,332,333,7,7,0,0,333,334,7,9,0,0,
- 334,335,7,19,0,0,335,336,7,25,0,0,336,337,7,17,0,0,337,338,7,11,
- 0,0,338,339,5,95,0,0,339,340,7,24,0,0,340,341,7,17,0,0,341,342,7,
- 21,0,0,342,46,1,0,0,0,343,344,7,5,0,0,344,345,7,10,0,0,345,346,7,
- 7,0,0,346,347,7,9,0,0,347,348,7,19,0,0,348,349,7,25,0,0,349,350,
- 7,17,0,0,350,351,7,11,0,0,351,352,5,95,0,0,352,353,7,14,0,0,353,
- 354,7,16,0,0,354,355,7,22,0,0,355,356,7,18,0,0,356,357,7,16,0,0,
- 357,358,7,13,0,0,358,359,7,10,0,0,359,360,7,24,0,0,360,48,1,0,0,
- 0,361,362,7,13,0,0,362,363,7,13,0,0,363,364,7,5,0,0,364,365,7,24,
- 0,0,365,50,1,0,0,0,366,367,7,24,0,0,367,368,7,9,0,0,368,369,7,14,
- 0,0,369,370,7,5,0,0,370,371,7,22,0,0,371,372,7,17,0,0,372,373,7,
- 11,0,0,373,52,1,0,0,0,374,375,7,18,0,0,375,376,7,19,0,0,376,377,
- 7,9,0,0,377,378,7,14,0,0,378,379,7,5,0,0,379,380,7,12,0,0,380,381,
- 7,5,0,0,381,382,7,16,0,0,382,383,7,10,0,0,383,384,5,95,0,0,384,385,
- 7,7,0,0,385,386,7,5,0,0,386,387,7,22,0,0,387,388,7,9,0,0,388,54,
- 1,0,0,0,389,390,7,18,0,0,390,391,7,19,0,0,391,392,7,9,0,0,392,393,
- 7,14,0,0,393,394,7,5,0,0,394,395,7,12,0,0,395,396,7,5,0,0,396,397,
- 7,16,0,0,397,398,7,10,0,0,398,399,5,95,0,0,399,400,7,7,0,0,400,401,
- 7,5,0,0,401,402,7,22,0,0,402,403,7,9,0,0,403,404,7,12,0,0,404,405,
- 7,7,0,0,405,406,7,17,0,0,406,407,7,22,0,0,407,408,7,18,0,0,408,56,
- 1,0,0,0,409,410,7,18,0,0,410,411,7,19,0,0,411,412,7,9,0,0,412,413,
- 7,14,0,0,413,414,7,5,0,0,414,415,7,12,0,0,415,416,7,5,0,0,416,417,
- 7,16,0,0,417,418,7,10,0,0,418,419,5,95,0,0,419,420,7,7,0,0,420,421,
- 7,5,0,0,421,422,7,22,0,0,422,423,7,9,0,0,423,424,7,12,0,0,424,425,
- 7,7,0,0,425,426,7,17,0,0,426,427,7,22,0,0,427,428,7,18,0,0,428,429,
- 5,95,0,0,429,430,7,7,0,0,430,431,7,23,0,0,431,58,1,0,0,0,432,433,
- 7,6,0,0,433,434,7,5,0,0,434,435,7,26,0,0,435,436,7,9,0,0,436,437,
- 7,24,0,0,437,438,7,14,0,0,438,439,7,8,0,0,439,440,7,17,0,0,440,441,
- 7,19,0,0,441,60,1,0,0,0,442,443,7,25,0,0,443,444,7,17,0,0,444,445,
- 7,19,0,0,445,446,7,14,0,0,446,447,7,8,0,0,447,448,7,17,0,0,448,449,
- 7,19,0,0,449,62,1,0,0,0,450,451,7,6,0,0,451,452,7,5,0,0,452,453,
- 7,26,0,0,453,454,7,9,0,0,454,455,7,24,0,0,455,456,7,15,0,0,456,457,
- 7,5,0,0,457,458,7,10,0,0,458,459,7,17,0,0,459,460,7,19,0,0,460,461,
- 7,21,0,0,461,64,1,0,0,0,462,463,7,12,0,0,463,464,7,7,0,0,464,465,
- 7,19,0,0,465,466,7,13,0,0,466,467,7,14,0,0,467,468,7,7,0,0,468,66,
- 1,0,0,0,469,470,7,10,0,0,470,471,7,12,0,0,471,472,7,7,0,0,472,473,
- 7,19,0,0,473,474,7,13,0,0,474,475,7,14,0,0,475,476,7,7,0,0,476,68,
- 1,0,0,0,477,478,7,11,0,0,478,479,7,5,0,0,479,480,7,12,0,0,480,481,
- 7,7,0,0,481,70,1,0,0,0,482,483,7,22,0,0,483,484,7,17,0,0,484,485,
- 7,18,0,0,485,72,1,0,0,0,486,487,7,13,0,0,487,488,5,33,0,0,488,74,
- 1,0,0,0,489,490,7,15,0,0,490,491,7,16,0,0,491,492,7,16,0,0,492,493,
- 7,11,0,0,493,76,1,0,0,0,494,495,7,12,0,0,495,496,7,7,0,0,496,497,
- 7,19,0,0,497,78,1,0,0,0,498,499,7,25,0,0,499,500,7,15,0,0,500,501,
- 7,5,0,0,501,502,7,10,0,0,502,80,1,0,0,0,503,504,7,7,0,0,504,505,
- 7,12,0,0,505,82,1,0,0,0,506,507,7,7,0,0,507,508,7,12,0,0,508,509,
- 7,7,0,0,509,510,7,23,0,0,510,84,1,0,0,0,511,512,7,5,0,0,512,513,
- 7,21,0,0,513,514,7,9,0,0,514,515,7,17,0,0,515,516,7,19,0,0,516,86,
- 1,0,0,0,517,518,7,5,0,0,518,519,7,24,0,0,519,520,7,17,0,0,520,521,
- 7,21,0,0,521,88,1,0,0,0,522,523,7,5,0,0,523,524,7,14,0,0,524,525,
- 7,16,0,0,525,526,7,22,0,0,526,527,7,18,0,0,527,528,7,16,0,0,528,
- 529,7,13,0,0,529,530,7,10,0,0,530,531,7,24,0,0,531,90,1,0,0,0,532,
- 533,7,24,0,0,533,534,7,9,0,0,534,535,7,14,0,0,535,92,1,0,0,0,536,
- 537,7,18,0,0,537,538,7,7,0,0,538,94,1,0,0,0,539,540,7,18,0,0,540,
- 541,7,7,0,0,541,542,7,12,0,0,542,96,1,0,0,0,543,544,7,18,0,0,544,
- 545,7,7,0,0,545,546,7,12,0,0,546,547,7,7,0,0,547,548,7,23,0,0,548,
- 98,1,0,0,0,549,550,7,6,0,0,550,551,7,14,0,0,551,552,7,8,0,0,552,
- 553,7,17,0,0,553,554,7,19,0,0,554,100,1,0,0,0,555,556,7,25,0,0,556,
- 557,7,14,0,0,557,558,7,8,0,0,558,559,7,17,0,0,559,560,7,19,0,0,560,
- 102,1,0,0,0,561,562,7,6,0,0,562,563,7,15,0,0,563,564,7,5,0,0,564,
- 565,7,10,0,0,565,104,1,0,0,0,566,567,7,17,0,0,567,568,7,10,0,0,568,
- 569,7,21,0,0,569,106,1,0,0,0,570,571,3,105,52,0,571,572,7,4,0,0,
- 572,108,1,0,0,0,573,574,5,58,0,0,574,575,5,58,0,0,575,110,1,0,0,
- 0,576,577,5,43,0,0,577,112,1,0,0,0,578,579,5,45,0,0,579,114,1,0,
- 0,0,580,581,5,42,0,0,581,116,1,0,0,0,582,583,5,47,0,0,583,118,1,
- 0,0,0,584,585,5,37,0,0,585,120,1,0,0,0,586,587,5,61,0,0,587,122,
- 1,0,0,0,588,589,5,33,0,0,589,590,5,61,0,0,590,124,1,0,0,0,591,592,
- 5,62,0,0,592,593,5,61,0,0,593,126,1,0,0,0,594,595,5,60,0,0,595,596,
- 5,61,0,0,596,128,1,0,0,0,597,598,5,62,0,0,598,130,1,0,0,0,599,600,
- 5,60,0,0,600,132,1,0,0,0,601,602,5,33,0,0,602,134,1,0,0,0,603,604,
- 3,131,65,0,604,136,1,0,0,0,605,606,3,129,64,0,606,138,1,0,0,0,607,
- 608,5,40,0,0,608,140,1,0,0,0,609,610,5,41,0,0,610,142,1,0,0,0,611,
- 612,5,91,0,0,612,144,1,0,0,0,613,614,5,93,0,0,614,146,1,0,0,0,615,
- 616,5,44,0,0,616,148,1,0,0,0,617,618,5,58,0,0,618,150,1,0,0,0,619,
- 620,5,63,0,0,620,152,1,0,0,0,621,622,5,35,0,0,622,154,1,0,0,0,623,
- 624,5,46,0,0,624,156,1,0,0,0,625,626,7,17,0,0,626,627,7,10,0,0,627,
- 628,7,24,0,0,628,158,1,0,0,0,629,630,7,16,0,0,630,631,7,19,0,0,631,
- 160,1,0,0,0,632,633,5,58,0,0,633,634,5,61,0,0,634,162,1,0,0,0,635,
- 636,5,45,0,0,636,637,5,62,0,0,637,164,1,0,0,0,638,642,2,49,57,0,
- 639,641,3,167,83,0,640,639,1,0,0,0,641,644,1,0,0,0,642,640,1,0,0,
- 0,642,643,1,0,0,0,643,647,1,0,0,0,644,642,1,0,0,0,645,647,5,48,0,
- 0,646,638,1,0,0,0,646,645,1,0,0,0,647,166,1,0,0,0,648,649,2,48,57,
- 0,649,168,1,0,0,0,650,652,5,45,0,0,651,650,1,0,0,0,651,652,1,0,0,
- 0,652,653,1,0,0,0,653,654,3,165,82,0,654,170,1,0,0,0,655,660,7,27,
- 0,0,656,659,7,27,0,0,657,659,3,167,83,0,658,656,1,0,0,0,658,657,
- 1,0,0,0,659,662,1,0,0,0,660,658,1,0,0,0,660,661,1,0,0,0,661,172,
- 1,0,0,0,662,660,1,0,0,0,663,665,5,13,0,0,664,666,5,10,0,0,665,664,
- 1,0,0,0,665,666,1,0,0,0,666,669,1,0,0,0,667,669,5,10,0,0,668,663,
- 1,0,0,0,668,667,1,0,0,0,669,174,1,0,0,0,13,0,181,193,196,201,212,
- 642,646,651,658,660,665,668,1,0,1,0
+ 78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,1,0,1,0,1,0,1,0,5,0,170,8,
+ 0,10,0,12,0,173,9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,182,8,1,11,1,
+ 12,1,183,1,1,3,1,187,8,1,1,1,5,1,190,8,1,10,1,12,1,193,9,1,1,1,1,
+ 1,1,1,1,1,1,1,1,2,4,2,201,8,2,11,2,12,2,202,1,2,1,2,1,3,1,3,1,4,
+ 1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,
+ 1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,10,1,
+ 10,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,
+ 13,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,
+ 16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,18,1,
+ 18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,
+ 19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,
+ 20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,
+ 20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,
+ 22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
+ 23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,
+ 24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
+ 24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
+ 25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,
+ 26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,
+ 27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,
+ 28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,
+ 30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,
+ 33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,36,1,
+ 36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,
+ 38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,
+ 40,1,40,1,40,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,
+ 43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,
+ 45,1,45,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,48,1,48,1,
+ 48,1,49,1,49,1,49,1,50,1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,54,1,
+ 54,1,55,1,55,1,56,1,56,1,56,1,57,1,57,1,57,1,58,1,58,1,58,1,59,1,
+ 59,1,60,1,60,1,61,1,61,1,62,1,62,1,63,1,63,1,64,1,64,1,65,1,65,1,
+ 66,1,66,1,67,1,67,1,68,1,68,1,69,1,69,1,70,1,70,1,71,1,71,1,72,1,
+ 72,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,75,1,75,1,75,1,76,1,76,1,
+ 76,1,77,1,77,5,77,595,8,77,10,77,12,77,598,9,77,1,77,3,77,601,8,
+ 77,1,78,1,78,1,79,3,79,606,8,79,1,79,1,79,1,80,1,80,1,80,5,80,613,
+ 8,80,10,80,12,80,616,9,80,1,81,1,81,3,81,620,8,81,1,81,3,81,623,
+ 8,81,0,0,82,1,1,3,2,5,3,7,0,9,4,11,5,13,6,15,7,17,8,19,9,21,10,23,
+ 11,25,12,27,13,29,14,31,15,33,16,35,17,37,18,39,19,41,20,43,21,45,
+ 22,47,23,49,24,51,25,53,26,55,27,57,28,59,29,61,30,63,31,65,32,67,
+ 33,69,34,71,35,73,36,75,37,77,38,79,39,81,40,83,41,85,42,87,43,89,
+ 44,91,45,93,46,95,47,97,48,99,49,101,50,103,51,105,52,107,53,109,
+ 54,111,55,113,56,115,57,117,58,119,59,121,60,123,61,125,62,127,63,
+ 129,64,131,65,133,66,135,67,137,68,139,69,141,70,143,71,145,72,147,
+ 73,149,74,151,75,153,76,155,0,157,0,159,77,161,78,163,79,1,0,28,
+ 2,0,10,10,13,13,1,0,42,42,2,0,42,42,47,47,3,0,9,9,13,13,32,32,1,
+ 0,48,57,2,0,73,73,105,105,2,0,70,70,102,102,2,0,84,84,116,116,2,
+ 0,72,72,104,104,2,0,69,69,101,101,2,0,78,78,110,110,2,0,76,76,108,
+ 108,2,0,83,83,115,115,2,0,85,85,117,117,2,0,67,67,99,99,2,0,66,66,
+ 98,98,2,0,79,79,111,111,2,0,65,65,97,97,2,0,80,80,112,112,2,0,82,
+ 82,114,114,2,0,71,71,103,103,2,0,89,89,121,121,2,0,68,68,100,100,
+ 2,0,86,86,118,118,2,0,77,77,109,109,2,0,90,90,122,122,2,0,88,88,
+ 120,120,4,0,36,36,65,90,95,95,97,122,632,0,1,1,0,0,0,0,3,1,0,0,0,
+ 0,5,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,
+ 17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,
+ 27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,
+ 37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,
+ 47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,
+ 57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,
+ 67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,
+ 77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,
+ 87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,
+ 97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,
+ 0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,
+ 1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,
+ 0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,
+ 0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,
+ 143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,
+ 0,0,0,153,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,1,165,
+ 1,0,0,0,3,176,1,0,0,0,5,200,1,0,0,0,7,206,1,0,0,0,9,208,1,0,0,0,
+ 11,211,1,0,0,0,13,216,1,0,0,0,15,221,1,0,0,0,17,226,1,0,0,0,19,234,
+ 1,0,0,0,21,237,1,0,0,0,23,241,1,0,0,0,25,245,1,0,0,0,27,249,1,0,
+ 0,0,29,254,1,0,0,0,31,259,1,0,0,0,33,266,1,0,0,0,35,273,1,0,0,0,
+ 37,278,1,0,0,0,39,292,1,0,0,0,41,305,1,0,0,0,43,323,1,0,0,0,45,328,
+ 1,0,0,0,47,336,1,0,0,0,49,351,1,0,0,0,51,371,1,0,0,0,53,394,1,0,
+ 0,0,55,404,1,0,0,0,57,412,1,0,0,0,59,424,1,0,0,0,61,431,1,0,0,0,
+ 63,439,1,0,0,0,65,444,1,0,0,0,67,448,1,0,0,0,69,451,1,0,0,0,71,456,
+ 1,0,0,0,73,460,1,0,0,0,75,465,1,0,0,0,77,471,1,0,0,0,79,476,1,0,
+ 0,0,81,486,1,0,0,0,83,490,1,0,0,0,85,493,1,0,0,0,87,497,1,0,0,0,
+ 89,503,1,0,0,0,91,509,1,0,0,0,93,515,1,0,0,0,95,520,1,0,0,0,97,524,
+ 1,0,0,0,99,527,1,0,0,0,101,530,1,0,0,0,103,532,1,0,0,0,105,534,1,
+ 0,0,0,107,536,1,0,0,0,109,538,1,0,0,0,111,540,1,0,0,0,113,542,1,
+ 0,0,0,115,545,1,0,0,0,117,548,1,0,0,0,119,551,1,0,0,0,121,553,1,
+ 0,0,0,123,555,1,0,0,0,125,557,1,0,0,0,127,559,1,0,0,0,129,561,1,
+ 0,0,0,131,563,1,0,0,0,133,565,1,0,0,0,135,567,1,0,0,0,137,569,1,
+ 0,0,0,139,571,1,0,0,0,141,573,1,0,0,0,143,575,1,0,0,0,145,577,1,
+ 0,0,0,147,579,1,0,0,0,149,583,1,0,0,0,151,586,1,0,0,0,153,589,1,
+ 0,0,0,155,600,1,0,0,0,157,602,1,0,0,0,159,605,1,0,0,0,161,609,1,
+ 0,0,0,163,622,1,0,0,0,165,166,5,47,0,0,166,167,5,47,0,0,167,171,
+ 1,0,0,0,168,170,8,0,0,0,169,168,1,0,0,0,170,173,1,0,0,0,171,169,
+ 1,0,0,0,171,172,1,0,0,0,172,174,1,0,0,0,173,171,1,0,0,0,174,175,
+ 6,0,0,0,175,2,1,0,0,0,176,177,5,47,0,0,177,178,5,42,0,0,178,186,
+ 1,0,0,0,179,187,8,1,0,0,180,182,5,42,0,0,181,180,1,0,0,0,182,183,
+ 1,0,0,0,183,181,1,0,0,0,183,184,1,0,0,0,184,185,1,0,0,0,185,187,
+ 8,2,0,0,186,179,1,0,0,0,186,181,1,0,0,0,187,191,1,0,0,0,188,190,
+ 5,42,0,0,189,188,1,0,0,0,190,193,1,0,0,0,191,189,1,0,0,0,191,192,
+ 1,0,0,0,192,194,1,0,0,0,193,191,1,0,0,0,194,195,5,42,0,0,195,196,
+ 5,47,0,0,196,197,1,0,0,0,197,198,6,1,0,0,198,4,1,0,0,0,199,201,7,
+ 3,0,0,200,199,1,0,0,0,201,202,1,0,0,0,202,200,1,0,0,0,202,203,1,
+ 0,0,0,203,204,1,0,0,0,204,205,6,2,0,0,205,6,1,0,0,0,206,207,7,4,
+ 0,0,207,8,1,0,0,0,208,209,7,5,0,0,209,210,7,6,0,0,210,10,1,0,0,0,
+ 211,212,7,7,0,0,212,213,7,8,0,0,213,214,7,9,0,0,214,215,7,10,0,0,
+ 215,12,1,0,0,0,216,217,7,9,0,0,217,218,7,11,0,0,218,219,7,12,0,0,
+ 219,220,7,9,0,0,220,14,1,0,0,0,221,222,7,6,0,0,222,223,7,13,0,0,
+ 223,224,7,10,0,0,224,225,7,14,0,0,225,16,1,0,0,0,226,227,7,15,0,
+ 0,227,228,7,16,0,0,228,229,7,16,0,0,229,230,7,11,0,0,230,231,7,9,
+ 0,0,231,232,7,17,0,0,232,233,7,10,0,0,233,18,1,0,0,0,234,235,7,5,
+ 0,0,235,236,5,56,0,0,236,20,1,0,0,0,237,238,7,5,0,0,238,239,5,49,
+ 0,0,239,240,5,54,0,0,240,22,1,0,0,0,241,242,7,5,0,0,242,243,5,51,
+ 0,0,243,244,5,50,0,0,244,24,1,0,0,0,245,246,7,5,0,0,246,247,5,54,
+ 0,0,247,248,5,52,0,0,248,26,1,0,0,0,249,250,7,6,0,0,250,251,7,18,
+ 0,0,251,252,5,51,0,0,252,253,5,50,0,0,253,28,1,0,0,0,254,255,7,6,
+ 0,0,255,256,7,18,0,0,256,257,5,54,0,0,257,258,5,52,0,0,258,30,1,
+ 0,0,0,259,260,7,12,0,0,260,261,7,7,0,0,261,262,7,19,0,0,262,263,
+ 7,5,0,0,263,264,7,10,0,0,264,265,7,20,0,0,265,32,1,0,0,0,266,267,
+ 7,15,0,0,267,268,7,5,0,0,268,269,7,10,0,0,269,270,7,17,0,0,270,271,
+ 7,19,0,0,271,272,7,21,0,0,272,34,1,0,0,0,273,274,7,22,0,0,274,275,
+ 7,17,0,0,275,276,7,7,0,0,276,277,7,9,0,0,277,36,1,0,0,0,278,279,
+ 7,5,0,0,279,280,7,10,0,0,280,281,7,7,0,0,281,282,7,9,0,0,282,283,
+ 7,19,0,0,283,284,7,23,0,0,284,285,7,17,0,0,285,286,7,11,0,0,286,
+ 287,5,95,0,0,287,288,7,21,0,0,288,289,7,9,0,0,289,290,7,17,0,0,290,
+ 291,7,19,0,0,291,38,1,0,0,0,292,293,7,5,0,0,293,294,7,10,0,0,294,
+ 295,7,7,0,0,295,296,7,9,0,0,296,297,7,19,0,0,297,298,7,23,0,0,298,
+ 299,7,17,0,0,299,300,7,11,0,0,300,301,5,95,0,0,301,302,7,22,0,0,
+ 302,303,7,17,0,0,303,304,7,21,0,0,304,40,1,0,0,0,305,306,7,5,0,0,
+ 306,307,7,10,0,0,307,308,7,7,0,0,308,309,7,9,0,0,309,310,7,19,0,
+ 0,310,311,7,23,0,0,311,312,7,17,0,0,312,313,7,11,0,0,313,314,5,95,
+ 0,0,314,315,7,14,0,0,315,316,7,16,0,0,316,317,7,24,0,0,317,318,7,
+ 18,0,0,318,319,7,16,0,0,319,320,7,13,0,0,320,321,7,10,0,0,321,322,
+ 7,22,0,0,322,42,1,0,0,0,323,324,7,13,0,0,324,325,7,13,0,0,325,326,
+ 7,5,0,0,326,327,7,22,0,0,327,44,1,0,0,0,328,329,7,22,0,0,329,330,
+ 7,9,0,0,330,331,7,14,0,0,331,332,7,5,0,0,332,333,7,24,0,0,333,334,
+ 7,17,0,0,334,335,7,11,0,0,335,46,1,0,0,0,336,337,7,18,0,0,337,338,
+ 7,19,0,0,338,339,7,9,0,0,339,340,7,14,0,0,340,341,7,5,0,0,341,342,
+ 7,12,0,0,342,343,7,5,0,0,343,344,7,16,0,0,344,345,7,10,0,0,345,346,
+ 5,95,0,0,346,347,7,7,0,0,347,348,7,5,0,0,348,349,7,24,0,0,349,350,
+ 7,9,0,0,350,48,1,0,0,0,351,352,7,18,0,0,352,353,7,19,0,0,353,354,
+ 7,9,0,0,354,355,7,14,0,0,355,356,7,5,0,0,356,357,7,12,0,0,357,358,
+ 7,5,0,0,358,359,7,16,0,0,359,360,7,10,0,0,360,361,5,95,0,0,361,362,
+ 7,7,0,0,362,363,7,5,0,0,363,364,7,24,0,0,364,365,7,9,0,0,365,366,
+ 7,12,0,0,366,367,7,7,0,0,367,368,7,17,0,0,368,369,7,24,0,0,369,370,
+ 7,18,0,0,370,50,1,0,0,0,371,372,7,18,0,0,372,373,7,19,0,0,373,374,
+ 7,9,0,0,374,375,7,14,0,0,375,376,7,5,0,0,376,377,7,12,0,0,377,378,
+ 7,5,0,0,378,379,7,16,0,0,379,380,7,10,0,0,380,381,5,95,0,0,381,382,
+ 7,7,0,0,382,383,7,5,0,0,383,384,7,24,0,0,384,385,7,9,0,0,385,386,
+ 7,12,0,0,386,387,7,7,0,0,387,388,7,17,0,0,388,389,7,24,0,0,389,390,
+ 7,18,0,0,390,391,5,95,0,0,391,392,7,7,0,0,392,393,7,25,0,0,393,52,
+ 1,0,0,0,394,395,7,6,0,0,395,396,7,5,0,0,396,397,7,26,0,0,397,398,
+ 7,9,0,0,398,399,7,22,0,0,399,400,7,14,0,0,400,401,7,8,0,0,401,402,
+ 7,17,0,0,402,403,7,19,0,0,403,54,1,0,0,0,404,405,7,23,0,0,405,406,
+ 7,17,0,0,406,407,7,19,0,0,407,408,7,14,0,0,408,409,7,8,0,0,409,410,
+ 7,17,0,0,410,411,7,19,0,0,411,56,1,0,0,0,412,413,7,6,0,0,413,414,
+ 7,5,0,0,414,415,7,26,0,0,415,416,7,9,0,0,416,417,7,22,0,0,417,418,
+ 7,15,0,0,418,419,7,5,0,0,419,420,7,10,0,0,420,421,7,17,0,0,421,422,
+ 7,19,0,0,422,423,7,21,0,0,423,58,1,0,0,0,424,425,7,12,0,0,425,426,
+ 7,7,0,0,426,427,7,19,0,0,427,428,7,13,0,0,428,429,7,14,0,0,429,430,
+ 7,7,0,0,430,60,1,0,0,0,431,432,7,10,0,0,432,433,7,12,0,0,433,434,
+ 7,7,0,0,434,435,7,19,0,0,435,436,7,13,0,0,436,437,7,14,0,0,437,438,
+ 7,7,0,0,438,62,1,0,0,0,439,440,7,11,0,0,440,441,7,5,0,0,441,442,
+ 7,12,0,0,442,443,7,7,0,0,443,64,1,0,0,0,444,445,7,24,0,0,445,446,
+ 7,17,0,0,446,447,7,18,0,0,447,66,1,0,0,0,448,449,7,13,0,0,449,450,
+ 5,33,0,0,450,68,1,0,0,0,451,452,7,15,0,0,452,453,7,16,0,0,453,454,
+ 7,16,0,0,454,455,7,11,0,0,455,70,1,0,0,0,456,457,7,12,0,0,457,458,
+ 7,7,0,0,458,459,7,19,0,0,459,72,1,0,0,0,460,461,7,23,0,0,461,462,
+ 7,15,0,0,462,463,7,5,0,0,463,464,7,10,0,0,464,74,1,0,0,0,465,466,
+ 7,5,0,0,466,467,7,21,0,0,467,468,7,9,0,0,468,469,7,17,0,0,469,470,
+ 7,19,0,0,470,76,1,0,0,0,471,472,7,5,0,0,472,473,7,22,0,0,473,474,
+ 7,17,0,0,474,475,7,21,0,0,475,78,1,0,0,0,476,477,7,5,0,0,477,478,
+ 7,14,0,0,478,479,7,16,0,0,479,480,7,24,0,0,480,481,7,18,0,0,481,
+ 482,7,16,0,0,482,483,7,13,0,0,483,484,7,10,0,0,484,485,7,22,0,0,
+ 485,80,1,0,0,0,486,487,7,22,0,0,487,488,7,9,0,0,488,489,7,14,0,0,
+ 489,82,1,0,0,0,490,491,7,18,0,0,491,492,7,7,0,0,492,84,1,0,0,0,493,
+ 494,7,18,0,0,494,495,7,7,0,0,495,496,7,12,0,0,496,86,1,0,0,0,497,
+ 498,7,18,0,0,498,499,7,7,0,0,499,500,7,12,0,0,500,501,7,7,0,0,501,
+ 502,7,25,0,0,502,88,1,0,0,0,503,504,7,6,0,0,504,505,7,14,0,0,505,
+ 506,7,8,0,0,506,507,7,17,0,0,507,508,7,19,0,0,508,90,1,0,0,0,509,
+ 510,7,23,0,0,510,511,7,14,0,0,511,512,7,8,0,0,512,513,7,17,0,0,513,
+ 514,7,19,0,0,514,92,1,0,0,0,515,516,7,6,0,0,516,517,7,15,0,0,517,
+ 518,7,5,0,0,518,519,7,10,0,0,519,94,1,0,0,0,520,521,7,17,0,0,521,
+ 522,7,10,0,0,522,523,7,21,0,0,523,96,1,0,0,0,524,525,3,95,47,0,525,
+ 526,7,4,0,0,526,98,1,0,0,0,527,528,5,58,0,0,528,529,5,58,0,0,529,
+ 100,1,0,0,0,530,531,5,43,0,0,531,102,1,0,0,0,532,533,5,45,0,0,533,
+ 104,1,0,0,0,534,535,5,42,0,0,535,106,1,0,0,0,536,537,5,47,0,0,537,
+ 108,1,0,0,0,538,539,5,37,0,0,539,110,1,0,0,0,540,541,5,61,0,0,541,
+ 112,1,0,0,0,542,543,5,33,0,0,543,544,5,61,0,0,544,114,1,0,0,0,545,
+ 546,5,62,0,0,546,547,5,61,0,0,547,116,1,0,0,0,548,549,5,60,0,0,549,
+ 550,5,61,0,0,550,118,1,0,0,0,551,552,5,62,0,0,552,120,1,0,0,0,553,
+ 554,5,60,0,0,554,122,1,0,0,0,555,556,5,33,0,0,556,124,1,0,0,0,557,
+ 558,3,121,60,0,558,126,1,0,0,0,559,560,3,119,59,0,560,128,1,0,0,
+ 0,561,562,5,40,0,0,562,130,1,0,0,0,563,564,5,41,0,0,564,132,1,0,
+ 0,0,565,566,5,91,0,0,566,134,1,0,0,0,567,568,5,93,0,0,568,136,1,
+ 0,0,0,569,570,5,44,0,0,570,138,1,0,0,0,571,572,5,58,0,0,572,140,
+ 1,0,0,0,573,574,5,63,0,0,574,142,1,0,0,0,575,576,5,35,0,0,576,144,
+ 1,0,0,0,577,578,5,46,0,0,578,146,1,0,0,0,579,580,7,17,0,0,580,581,
+ 7,10,0,0,581,582,7,22,0,0,582,148,1,0,0,0,583,584,7,16,0,0,584,585,
+ 7,19,0,0,585,150,1,0,0,0,586,587,5,58,0,0,587,588,5,61,0,0,588,152,
+ 1,0,0,0,589,590,5,45,0,0,590,591,5,62,0,0,591,154,1,0,0,0,592,596,
+ 2,49,57,0,593,595,3,157,78,0,594,593,1,0,0,0,595,598,1,0,0,0,596,
+ 594,1,0,0,0,596,597,1,0,0,0,597,601,1,0,0,0,598,596,1,0,0,0,599,
+ 601,5,48,0,0,600,592,1,0,0,0,600,599,1,0,0,0,601,156,1,0,0,0,602,
+ 603,2,48,57,0,603,158,1,0,0,0,604,606,5,45,0,0,605,604,1,0,0,0,605,
+ 606,1,0,0,0,606,607,1,0,0,0,607,608,3,155,77,0,608,160,1,0,0,0,609,
+ 614,7,27,0,0,610,613,7,27,0,0,611,613,3,157,78,0,612,610,1,0,0,0,
+ 612,611,1,0,0,0,613,616,1,0,0,0,614,612,1,0,0,0,614,615,1,0,0,0,
+ 615,162,1,0,0,0,616,614,1,0,0,0,617,619,5,13,0,0,618,620,5,10,0,
+ 0,619,618,1,0,0,0,619,620,1,0,0,0,620,623,1,0,0,0,621,623,5,10,0,
+ 0,622,617,1,0,0,0,622,621,1,0,0,0,623,164,1,0,0,0,13,0,171,183,186,
+ 191,202,596,600,605,612,614,619,622,1,0,1,0
]
class SubstraitLexer(Lexer):
@@ -270,74 +254,69 @@ class SubstraitLexer(Lexer):
FP64 = 14
String = 15
Binary = 16
- Timestamp = 17
- Timestamp_TZ = 18
- Date = 19
- Time = 20
- Interval_Year = 21
- Interval_Day = 22
- Interval_Compound = 23
- UUID = 24
- Decimal = 25
- Precision_Time = 26
- Precision_Timestamp = 27
- Precision_Timestamp_TZ = 28
- FixedChar = 29
- VarChar = 30
- FixedBinary = 31
- Struct = 32
- NStruct = 33
- List = 34
- Map = 35
- UserDefined = 36
- Bool = 37
- Str = 38
- VBin = 39
- Ts = 40
- TsTZ = 41
- IYear = 42
- IDay = 43
- ICompound = 44
- Dec = 45
- PT = 46
- PTs = 47
- PTsTZ = 48
- FChar = 49
- VChar = 50
- FBin = 51
- Any = 52
- AnyVar = 53
- DoubleColon = 54
- Plus = 55
- Minus = 56
- Asterisk = 57
- ForwardSlash = 58
- Percent = 59
- Eq = 60
- Ne = 61
- Gte = 62
- Lte = 63
- Gt = 64
- Lt = 65
- Bang = 66
- OAngleBracket = 67
- CAngleBracket = 68
- OParen = 69
- CParen = 70
- OBracket = 71
- CBracket = 72
- Comma = 73
- Colon = 74
- QMark = 75
- Hash = 76
- Dot = 77
- And = 78
- Or = 79
- Assign = 80
- Arrow = 81
- Number = 82
- Identifier = 83
- Newline = 84
+ Date = 17
+ Interval_Year = 18
+ Interval_Day = 19
+ Interval_Compound = 20
+ UUID = 21
+ Decimal = 22
+ Precision_Time = 23
+ Precision_Timestamp = 24
+ Precision_Timestamp_TZ = 25
+ FixedChar = 26
+ VarChar = 27
+ FixedBinary = 28
+ Struct = 29
+ NStruct = 30
+ List = 31
+ Map = 32
+ UserDefined = 33
+ Bool = 34
+ Str = 35
+ VBin = 36
+ IYear = 37
+ IDay = 38
+ ICompound = 39
+ Dec = 40
+ PT = 41
+ PTs = 42
+ PTsTZ = 43
+ FChar = 44
+ VChar = 45
+ FBin = 46
+ Any = 47
+ AnyVar = 48
+ DoubleColon = 49
+ Plus = 50
+ Minus = 51
+ Asterisk = 52
+ ForwardSlash = 53
+ Percent = 54
+ Eq = 55
+ Ne = 56
+ Gte = 57
+ Lte = 58
+ Gt = 59
+ Lt = 60
+ Bang = 61
+ OAngleBracket = 62
+ CAngleBracket = 63
+ OParen = 64
+ CParen = 65
+ OBracket = 66
+ CBracket = 67
+ Comma = 68
+ Colon = 69
+ QMark = 70
+ Hash = 71
+ Dot = 72
+ And = 73
+ Or = 74
+ Assign = 75
+ Arrow = 76
+ Number = 77
+ Identifier = 78
+ Newline = 79
channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]
@@ -346,49 +325,47 @@ class SubstraitLexer(Lexer):
literalNames = [ "",
"'IF'", "'THEN'", "'ELSE'", "'FUNC'", "'BOOLEAN'", "'I8'", "'I16'",
"'I32'", "'I64'", "'FP32'", "'FP64'", "'STRING'", "'BINARY'",
- "'TIMESTAMP'", "'TIMESTAMP_TZ'", "'DATE'", "'TIME'", "'INTERVAL_YEAR'",
- "'INTERVAL_DAY'", "'INTERVAL_COMPOUND'", "'UUID'", "'DECIMAL'",
- "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'",
- "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'", "'NSTRUCT'",
- "'LIST'", "'MAP'", "'U!'", "'BOOL'", "'STR'", "'VBIN'", "'TS'",
- "'TSTZ'", "'IYEAR'", "'IDAY'", "'ICOMPOUND'", "'DEC'", "'PT'",
- "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", "'ANY'",
- "'::'", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'!='", "'>='",
- "'<='", "'>'", "'<'", "'!'", "'('", "')'", "'['", "']'", "','",
- "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'", "':='", "'->'" ]
+ "'DATE'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'", "'INTERVAL_COMPOUND'",
+ "'UUID'", "'DECIMAL'", "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'",
+ "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'",
+ "'STRUCT'", "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'",
+ "'STR'", "'VBIN'", "'IYEAR'", "'IDAY'", "'ICOMPOUND'", "'DEC'",
+ "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'",
+ "'ANY'", "'::'", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'!='",
+ "'>='", "'<='", "'>'", "'<'", "'!'", "'('", "')'", "'['", "']'",
+ "','", "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'", "':='",
+ "'->'" ]
symbolicNames = [ "",
"LineComment", "BlockComment", "Whitespace", "If", "Then", "Else",
"Func", "Boolean", "I8", "I16", "I32", "I64", "FP32", "FP64",
- "String", "Binary", "Timestamp", "Timestamp_TZ", "Date", "Time",
- "Interval_Year", "Interval_Day", "Interval_Compound", "UUID",
- "Decimal", "Precision_Time", "Precision_Timestamp", "Precision_Timestamp_TZ",
- "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct",
- "List", "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", "TsTZ",
- "IYear", "IDay", "ICompound", "Dec", "PT", "PTs", "PTsTZ", "FChar",
- "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus", "Minus",
- "Asterisk", "ForwardSlash", "Percent", "Eq", "Ne", "Gte", "Lte",
- "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket", "OParen",
- "CParen", "OBracket", "CBracket", "Comma", "Colon", "QMark",
- "Hash", "Dot", "And", "Or", "Assign", "Arrow", "Number", "Identifier",
- "Newline" ]
+ "String", "Binary", "Date", "Interval_Year", "Interval_Day",
+ "Interval_Compound", "UUID", "Decimal", "Precision_Time", "Precision_Timestamp",
+ "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary",
+ "Struct", "NStruct", "List", "Map", "UserDefined", "Bool", "Str",
+ "VBin", "IYear", "IDay", "ICompound", "Dec", "PT", "PTs", "PTsTZ",
+ "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus",
+ "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq", "Ne",
+ "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket",
+ "OParen", "CParen", "OBracket", "CBracket", "Comma", "Colon",
+ "QMark", "Hash", "Dot", "And", "Or", "Assign", "Arrow", "Number",
+ "Identifier", "Newline" ]
ruleNames = [ "LineComment", "BlockComment", "Whitespace", "DIGIT",
"If", "Then", "Else", "Func", "Boolean", "I8", "I16",
- "I32", "I64", "FP32", "FP64", "String", "Binary", "Timestamp",
- "Timestamp_TZ", "Date", "Time", "Interval_Year", "Interval_Day",
- "Interval_Compound", "UUID", "Decimal", "Precision_Time",
- "Precision_Timestamp", "Precision_Timestamp_TZ", "FixedChar",
- "VarChar", "FixedBinary", "Struct", "NStruct", "List",
- "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", "TsTZ",
- "IYear", "IDay", "ICompound", "Dec", "PT", "PTs", "PTsTZ",
- "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon",
- "Plus", "Minus", "Asterisk", "ForwardSlash", "Percent",
- "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket",
- "CAngleBracket", "OParen", "CParen", "OBracket", "CBracket",
- "Comma", "Colon", "QMark", "Hash", "Dot", "And", "Or",
- "Assign", "Arrow", "Int", "Digit", "Number", "Identifier",
- "Newline" ]
+ "I32", "I64", "FP32", "FP64", "String", "Binary", "Date",
+ "Interval_Year", "Interval_Day", "Interval_Compound",
+ "UUID", "Decimal", "Precision_Time", "Precision_Timestamp",
+ "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary",
+ "Struct", "NStruct", "List", "Map", "UserDefined", "Bool",
+ "Str", "VBin", "IYear", "IDay", "ICompound", "Dec", "PT",
+ "PTs", "PTsTZ", "FChar", "VChar", "FBin", "Any", "AnyVar",
+ "DoubleColon", "Plus", "Minus", "Asterisk", "ForwardSlash",
+ "Percent", "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang",
+ "OAngleBracket", "CAngleBracket", "OParen", "CParen",
+ "OBracket", "CBracket", "Comma", "Colon", "QMark", "Hash",
+ "Dot", "And", "Or", "Assign", "Arrow", "Int", "Digit",
+ "Number", "Identifier", "Newline" ]
grammarFileName = "SubstraitLexer.g4"
diff --git a/tests/type/antlr_parser/SubstraitTypeLexer.py b/tests/type/antlr_parser/SubstraitTypeLexer.py
index 2f95655af..de89d481a 100644
--- a/tests/type/antlr_parser/SubstraitTypeLexer.py
+++ b/tests/type/antlr_parser/SubstraitTypeLexer.py
@@ -11,7 +11,7 @@
def serializedATN():
return [
- 4,0,84,670,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
+ 4,0,79,624,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,
13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,
19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,
@@ -23,229 +23,213 @@ def serializedATN():
58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,
65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,
71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,
- 78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,
- 84,2,85,7,85,2,86,7,86,1,0,1,0,1,0,1,0,5,0,180,8,0,10,0,12,0,183,
- 9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,192,8,1,11,1,12,1,193,1,1,3,
- 1,197,8,1,1,1,5,1,200,8,1,10,1,12,1,203,9,1,1,1,1,1,1,1,1,1,1,1,
- 1,2,4,2,211,8,2,11,2,12,2,212,1,2,1,2,1,3,1,3,1,4,1,4,1,4,1,5,1,
- 5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,
- 8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,11,1,11,
- 1,11,1,11,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,14,1,14,
- 1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,
- 1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,
- 1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,
- 1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,21,1,21,
- 1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,
- 1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,
- 1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,
- 1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,
- 1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,
- 1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
- 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
- 1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,
- 1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,
- 1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,
- 1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
- 1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,
- 1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,36,
- 1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,39,1,39,
- 1,39,1,39,1,39,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,42,1,42,
- 1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,
- 1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,46,1,46,1,46,
- 1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,
- 1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,
- 1,51,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,54,1,54,1,54,1,55,1,55,
- 1,56,1,56,1,57,1,57,1,58,1,58,1,59,1,59,1,60,1,60,1,61,1,61,1,61,
- 1,62,1,62,1,62,1,63,1,63,1,63,1,64,1,64,1,65,1,65,1,66,1,66,1,67,
- 1,67,1,68,1,68,1,69,1,69,1,70,1,70,1,71,1,71,1,72,1,72,1,73,1,73,
- 1,74,1,74,1,75,1,75,1,76,1,76,1,77,1,77,1,78,1,78,1,78,1,78,1,79,
- 1,79,1,79,1,80,1,80,1,80,1,81,1,81,1,81,1,82,1,82,5,82,641,8,82,
- 10,82,12,82,644,9,82,1,82,3,82,647,8,82,1,83,1,83,1,84,3,84,652,
- 8,84,1,84,1,84,1,85,1,85,1,85,5,85,659,8,85,10,85,12,85,662,9,85,
- 1,86,1,86,3,86,666,8,86,1,86,3,86,669,8,86,0,0,87,1,1,3,2,5,3,7,
- 0,9,4,11,5,13,6,15,7,17,8,19,9,21,10,23,11,25,12,27,13,29,14,31,
- 15,33,16,35,17,37,18,39,19,41,20,43,21,45,22,47,23,49,24,51,25,53,
- 26,55,27,57,28,59,29,61,30,63,31,65,32,67,33,69,34,71,35,73,36,75,
- 37,77,38,79,39,81,40,83,41,85,42,87,43,89,44,91,45,93,46,95,47,97,
- 48,99,49,101,50,103,51,105,52,107,53,109,54,111,55,113,56,115,57,
- 117,58,119,59,121,60,123,61,125,62,127,63,129,64,131,65,133,66,135,
- 67,137,68,139,69,141,70,143,71,145,72,147,73,149,74,151,75,153,76,
- 155,77,157,78,159,79,161,80,163,81,165,0,167,0,169,82,171,83,173,
- 84,1,0,28,2,0,10,10,13,13,1,0,42,42,2,0,42,42,47,47,3,0,9,9,13,13,
- 32,32,1,0,48,57,2,0,73,73,105,105,2,0,70,70,102,102,2,0,84,84,116,
- 116,2,0,72,72,104,104,2,0,69,69,101,101,2,0,78,78,110,110,2,0,76,
- 76,108,108,2,0,83,83,115,115,2,0,85,85,117,117,2,0,67,67,99,99,2,
- 0,66,66,98,98,2,0,79,79,111,111,2,0,65,65,97,97,2,0,80,80,112,112,
- 2,0,82,82,114,114,2,0,71,71,103,103,2,0,89,89,121,121,2,0,77,77,
- 109,109,2,0,90,90,122,122,2,0,68,68,100,100,2,0,86,86,118,118,2,
- 0,88,88,120,120,4,0,36,36,65,90,95,95,97,122,678,0,1,1,0,0,0,0,3,
- 1,0,0,0,0,5,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,
- 0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,
- 0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,
- 0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,
- 0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,
- 0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,
- 0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,
- 0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,
- 0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,
- 0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,
- 1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,
- 0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,
- 0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,
- 133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,
- 0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,
- 1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,
- 0,161,1,0,0,0,0,163,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,
- 0,0,0,1,175,1,0,0,0,3,186,1,0,0,0,5,210,1,0,0,0,7,216,1,0,0,0,9,
- 218,1,0,0,0,11,221,1,0,0,0,13,226,1,0,0,0,15,231,1,0,0,0,17,236,
- 1,0,0,0,19,244,1,0,0,0,21,247,1,0,0,0,23,251,1,0,0,0,25,255,1,0,
- 0,0,27,259,1,0,0,0,29,264,1,0,0,0,31,269,1,0,0,0,33,276,1,0,0,0,
- 35,283,1,0,0,0,37,293,1,0,0,0,39,306,1,0,0,0,41,311,1,0,0,0,43,316,
- 1,0,0,0,45,330,1,0,0,0,47,343,1,0,0,0,49,361,1,0,0,0,51,366,1,0,
- 0,0,53,374,1,0,0,0,55,389,1,0,0,0,57,409,1,0,0,0,59,432,1,0,0,0,
- 61,442,1,0,0,0,63,450,1,0,0,0,65,462,1,0,0,0,67,469,1,0,0,0,69,477,
- 1,0,0,0,71,482,1,0,0,0,73,486,1,0,0,0,75,489,1,0,0,0,77,494,1,0,
- 0,0,79,498,1,0,0,0,81,503,1,0,0,0,83,506,1,0,0,0,85,511,1,0,0,0,
- 87,517,1,0,0,0,89,522,1,0,0,0,91,532,1,0,0,0,93,536,1,0,0,0,95,539,
- 1,0,0,0,97,543,1,0,0,0,99,549,1,0,0,0,101,555,1,0,0,0,103,561,1,
- 0,0,0,105,566,1,0,0,0,107,570,1,0,0,0,109,573,1,0,0,0,111,576,1,
- 0,0,0,113,578,1,0,0,0,115,580,1,0,0,0,117,582,1,0,0,0,119,584,1,
- 0,0,0,121,586,1,0,0,0,123,588,1,0,0,0,125,591,1,0,0,0,127,594,1,
- 0,0,0,129,597,1,0,0,0,131,599,1,0,0,0,133,601,1,0,0,0,135,603,1,
- 0,0,0,137,605,1,0,0,0,139,607,1,0,0,0,141,609,1,0,0,0,143,611,1,
- 0,0,0,145,613,1,0,0,0,147,615,1,0,0,0,149,617,1,0,0,0,151,619,1,
- 0,0,0,153,621,1,0,0,0,155,623,1,0,0,0,157,625,1,0,0,0,159,629,1,
- 0,0,0,161,632,1,0,0,0,163,635,1,0,0,0,165,646,1,0,0,0,167,648,1,
- 0,0,0,169,651,1,0,0,0,171,655,1,0,0,0,173,668,1,0,0,0,175,176,5,
- 47,0,0,176,177,5,47,0,0,177,181,1,0,0,0,178,180,8,0,0,0,179,178,
- 1,0,0,0,180,183,1,0,0,0,181,179,1,0,0,0,181,182,1,0,0,0,182,184,
- 1,0,0,0,183,181,1,0,0,0,184,185,6,0,0,0,185,2,1,0,0,0,186,187,5,
- 47,0,0,187,188,5,42,0,0,188,196,1,0,0,0,189,197,8,1,0,0,190,192,
- 5,42,0,0,191,190,1,0,0,0,192,193,1,0,0,0,193,191,1,0,0,0,193,194,
- 1,0,0,0,194,195,1,0,0,0,195,197,8,2,0,0,196,189,1,0,0,0,196,191,
- 1,0,0,0,197,201,1,0,0,0,198,200,5,42,0,0,199,198,1,0,0,0,200,203,
- 1,0,0,0,201,199,1,0,0,0,201,202,1,0,0,0,202,204,1,0,0,0,203,201,
- 1,0,0,0,204,205,5,42,0,0,205,206,5,47,0,0,206,207,1,0,0,0,207,208,
- 6,1,0,0,208,4,1,0,0,0,209,211,7,3,0,0,210,209,1,0,0,0,211,212,1,
- 0,0,0,212,210,1,0,0,0,212,213,1,0,0,0,213,214,1,0,0,0,214,215,6,
- 2,0,0,215,6,1,0,0,0,216,217,7,4,0,0,217,8,1,0,0,0,218,219,7,5,0,
- 0,219,220,7,6,0,0,220,10,1,0,0,0,221,222,7,7,0,0,222,223,7,8,0,0,
- 223,224,7,9,0,0,224,225,7,10,0,0,225,12,1,0,0,0,226,227,7,9,0,0,
- 227,228,7,11,0,0,228,229,7,12,0,0,229,230,7,9,0,0,230,14,1,0,0,0,
- 231,232,7,6,0,0,232,233,7,13,0,0,233,234,7,10,0,0,234,235,7,14,0,
- 0,235,16,1,0,0,0,236,237,7,15,0,0,237,238,7,16,0,0,238,239,7,16,
- 0,0,239,240,7,11,0,0,240,241,7,9,0,0,241,242,7,17,0,0,242,243,7,
- 10,0,0,243,18,1,0,0,0,244,245,7,5,0,0,245,246,5,56,0,0,246,20,1,
- 0,0,0,247,248,7,5,0,0,248,249,5,49,0,0,249,250,5,54,0,0,250,22,1,
- 0,0,0,251,252,7,5,0,0,252,253,5,51,0,0,253,254,5,50,0,0,254,24,1,
- 0,0,0,255,256,7,5,0,0,256,257,5,54,0,0,257,258,5,52,0,0,258,26,1,
- 0,0,0,259,260,7,6,0,0,260,261,7,18,0,0,261,262,5,51,0,0,262,263,
- 5,50,0,0,263,28,1,0,0,0,264,265,7,6,0,0,265,266,7,18,0,0,266,267,
- 5,54,0,0,267,268,5,52,0,0,268,30,1,0,0,0,269,270,7,12,0,0,270,271,
- 7,7,0,0,271,272,7,19,0,0,272,273,7,5,0,0,273,274,7,10,0,0,274,275,
- 7,20,0,0,275,32,1,0,0,0,276,277,7,15,0,0,277,278,7,5,0,0,278,279,
- 7,10,0,0,279,280,7,17,0,0,280,281,7,19,0,0,281,282,7,21,0,0,282,
- 34,1,0,0,0,283,284,7,7,0,0,284,285,7,5,0,0,285,286,7,22,0,0,286,
- 287,7,9,0,0,287,288,7,12,0,0,288,289,7,7,0,0,289,290,7,17,0,0,290,
- 291,7,22,0,0,291,292,7,18,0,0,292,36,1,0,0,0,293,294,7,7,0,0,294,
- 295,7,5,0,0,295,296,7,22,0,0,296,297,7,9,0,0,297,298,7,12,0,0,298,
- 299,7,7,0,0,299,300,7,17,0,0,300,301,7,22,0,0,301,302,7,18,0,0,302,
- 303,5,95,0,0,303,304,7,7,0,0,304,305,7,23,0,0,305,38,1,0,0,0,306,
- 307,7,24,0,0,307,308,7,17,0,0,308,309,7,7,0,0,309,310,7,9,0,0,310,
- 40,1,0,0,0,311,312,7,7,0,0,312,313,7,5,0,0,313,314,7,22,0,0,314,
- 315,7,9,0,0,315,42,1,0,0,0,316,317,7,5,0,0,317,318,7,10,0,0,318,
- 319,7,7,0,0,319,320,7,9,0,0,320,321,7,19,0,0,321,322,7,25,0,0,322,
- 323,7,17,0,0,323,324,7,11,0,0,324,325,5,95,0,0,325,326,7,21,0,0,
- 326,327,7,9,0,0,327,328,7,17,0,0,328,329,7,19,0,0,329,44,1,0,0,0,
- 330,331,7,5,0,0,331,332,7,10,0,0,332,333,7,7,0,0,333,334,7,9,0,0,
- 334,335,7,19,0,0,335,336,7,25,0,0,336,337,7,17,0,0,337,338,7,11,
- 0,0,338,339,5,95,0,0,339,340,7,24,0,0,340,341,7,17,0,0,341,342,7,
- 21,0,0,342,46,1,0,0,0,343,344,7,5,0,0,344,345,7,10,0,0,345,346,7,
- 7,0,0,346,347,7,9,0,0,347,348,7,19,0,0,348,349,7,25,0,0,349,350,
- 7,17,0,0,350,351,7,11,0,0,351,352,5,95,0,0,352,353,7,14,0,0,353,
- 354,7,16,0,0,354,355,7,22,0,0,355,356,7,18,0,0,356,357,7,16,0,0,
- 357,358,7,13,0,0,358,359,7,10,0,0,359,360,7,24,0,0,360,48,1,0,0,
- 0,361,362,7,13,0,0,362,363,7,13,0,0,363,364,7,5,0,0,364,365,7,24,
- 0,0,365,50,1,0,0,0,366,367,7,24,0,0,367,368,7,9,0,0,368,369,7,14,
- 0,0,369,370,7,5,0,0,370,371,7,22,0,0,371,372,7,17,0,0,372,373,7,
- 11,0,0,373,52,1,0,0,0,374,375,7,18,0,0,375,376,7,19,0,0,376,377,
- 7,9,0,0,377,378,7,14,0,0,378,379,7,5,0,0,379,380,7,12,0,0,380,381,
- 7,5,0,0,381,382,7,16,0,0,382,383,7,10,0,0,383,384,5,95,0,0,384,385,
- 7,7,0,0,385,386,7,5,0,0,386,387,7,22,0,0,387,388,7,9,0,0,388,54,
- 1,0,0,0,389,390,7,18,0,0,390,391,7,19,0,0,391,392,7,9,0,0,392,393,
- 7,14,0,0,393,394,7,5,0,0,394,395,7,12,0,0,395,396,7,5,0,0,396,397,
- 7,16,0,0,397,398,7,10,0,0,398,399,5,95,0,0,399,400,7,7,0,0,400,401,
- 7,5,0,0,401,402,7,22,0,0,402,403,7,9,0,0,403,404,7,12,0,0,404,405,
- 7,7,0,0,405,406,7,17,0,0,406,407,7,22,0,0,407,408,7,18,0,0,408,56,
- 1,0,0,0,409,410,7,18,0,0,410,411,7,19,0,0,411,412,7,9,0,0,412,413,
- 7,14,0,0,413,414,7,5,0,0,414,415,7,12,0,0,415,416,7,5,0,0,416,417,
- 7,16,0,0,417,418,7,10,0,0,418,419,5,95,0,0,419,420,7,7,0,0,420,421,
- 7,5,0,0,421,422,7,22,0,0,422,423,7,9,0,0,423,424,7,12,0,0,424,425,
- 7,7,0,0,425,426,7,17,0,0,426,427,7,22,0,0,427,428,7,18,0,0,428,429,
- 5,95,0,0,429,430,7,7,0,0,430,431,7,23,0,0,431,58,1,0,0,0,432,433,
- 7,6,0,0,433,434,7,5,0,0,434,435,7,26,0,0,435,436,7,9,0,0,436,437,
- 7,24,0,0,437,438,7,14,0,0,438,439,7,8,0,0,439,440,7,17,0,0,440,441,
- 7,19,0,0,441,60,1,0,0,0,442,443,7,25,0,0,443,444,7,17,0,0,444,445,
- 7,19,0,0,445,446,7,14,0,0,446,447,7,8,0,0,447,448,7,17,0,0,448,449,
- 7,19,0,0,449,62,1,0,0,0,450,451,7,6,0,0,451,452,7,5,0,0,452,453,
- 7,26,0,0,453,454,7,9,0,0,454,455,7,24,0,0,455,456,7,15,0,0,456,457,
- 7,5,0,0,457,458,7,10,0,0,458,459,7,17,0,0,459,460,7,19,0,0,460,461,
- 7,21,0,0,461,64,1,0,0,0,462,463,7,12,0,0,463,464,7,7,0,0,464,465,
- 7,19,0,0,465,466,7,13,0,0,466,467,7,14,0,0,467,468,7,7,0,0,468,66,
- 1,0,0,0,469,470,7,10,0,0,470,471,7,12,0,0,471,472,7,7,0,0,472,473,
- 7,19,0,0,473,474,7,13,0,0,474,475,7,14,0,0,475,476,7,7,0,0,476,68,
- 1,0,0,0,477,478,7,11,0,0,478,479,7,5,0,0,479,480,7,12,0,0,480,481,
- 7,7,0,0,481,70,1,0,0,0,482,483,7,22,0,0,483,484,7,17,0,0,484,485,
- 7,18,0,0,485,72,1,0,0,0,486,487,7,13,0,0,487,488,5,33,0,0,488,74,
- 1,0,0,0,489,490,7,15,0,0,490,491,7,16,0,0,491,492,7,16,0,0,492,493,
- 7,11,0,0,493,76,1,0,0,0,494,495,7,12,0,0,495,496,7,7,0,0,496,497,
- 7,19,0,0,497,78,1,0,0,0,498,499,7,25,0,0,499,500,7,15,0,0,500,501,
- 7,5,0,0,501,502,7,10,0,0,502,80,1,0,0,0,503,504,7,7,0,0,504,505,
- 7,12,0,0,505,82,1,0,0,0,506,507,7,7,0,0,507,508,7,12,0,0,508,509,
- 7,7,0,0,509,510,7,23,0,0,510,84,1,0,0,0,511,512,7,5,0,0,512,513,
- 7,21,0,0,513,514,7,9,0,0,514,515,7,17,0,0,515,516,7,19,0,0,516,86,
- 1,0,0,0,517,518,7,5,0,0,518,519,7,24,0,0,519,520,7,17,0,0,520,521,
- 7,21,0,0,521,88,1,0,0,0,522,523,7,5,0,0,523,524,7,14,0,0,524,525,
- 7,16,0,0,525,526,7,22,0,0,526,527,7,18,0,0,527,528,7,16,0,0,528,
- 529,7,13,0,0,529,530,7,10,0,0,530,531,7,24,0,0,531,90,1,0,0,0,532,
- 533,7,24,0,0,533,534,7,9,0,0,534,535,7,14,0,0,535,92,1,0,0,0,536,
- 537,7,18,0,0,537,538,7,7,0,0,538,94,1,0,0,0,539,540,7,18,0,0,540,
- 541,7,7,0,0,541,542,7,12,0,0,542,96,1,0,0,0,543,544,7,18,0,0,544,
- 545,7,7,0,0,545,546,7,12,0,0,546,547,7,7,0,0,547,548,7,23,0,0,548,
- 98,1,0,0,0,549,550,7,6,0,0,550,551,7,14,0,0,551,552,7,8,0,0,552,
- 553,7,17,0,0,553,554,7,19,0,0,554,100,1,0,0,0,555,556,7,25,0,0,556,
- 557,7,14,0,0,557,558,7,8,0,0,558,559,7,17,0,0,559,560,7,19,0,0,560,
- 102,1,0,0,0,561,562,7,6,0,0,562,563,7,15,0,0,563,564,7,5,0,0,564,
- 565,7,10,0,0,565,104,1,0,0,0,566,567,7,17,0,0,567,568,7,10,0,0,568,
- 569,7,21,0,0,569,106,1,0,0,0,570,571,3,105,52,0,571,572,7,4,0,0,
- 572,108,1,0,0,0,573,574,5,58,0,0,574,575,5,58,0,0,575,110,1,0,0,
- 0,576,577,5,43,0,0,577,112,1,0,0,0,578,579,5,45,0,0,579,114,1,0,
- 0,0,580,581,5,42,0,0,581,116,1,0,0,0,582,583,5,47,0,0,583,118,1,
- 0,0,0,584,585,5,37,0,0,585,120,1,0,0,0,586,587,5,61,0,0,587,122,
- 1,0,0,0,588,589,5,33,0,0,589,590,5,61,0,0,590,124,1,0,0,0,591,592,
- 5,62,0,0,592,593,5,61,0,0,593,126,1,0,0,0,594,595,5,60,0,0,595,596,
- 5,61,0,0,596,128,1,0,0,0,597,598,5,62,0,0,598,130,1,0,0,0,599,600,
- 5,60,0,0,600,132,1,0,0,0,601,602,5,33,0,0,602,134,1,0,0,0,603,604,
- 3,131,65,0,604,136,1,0,0,0,605,606,3,129,64,0,606,138,1,0,0,0,607,
- 608,5,40,0,0,608,140,1,0,0,0,609,610,5,41,0,0,610,142,1,0,0,0,611,
- 612,5,91,0,0,612,144,1,0,0,0,613,614,5,93,0,0,614,146,1,0,0,0,615,
- 616,5,44,0,0,616,148,1,0,0,0,617,618,5,58,0,0,618,150,1,0,0,0,619,
- 620,5,63,0,0,620,152,1,0,0,0,621,622,5,35,0,0,622,154,1,0,0,0,623,
- 624,5,46,0,0,624,156,1,0,0,0,625,626,7,17,0,0,626,627,7,10,0,0,627,
- 628,7,24,0,0,628,158,1,0,0,0,629,630,7,16,0,0,630,631,7,19,0,0,631,
- 160,1,0,0,0,632,633,5,58,0,0,633,634,5,61,0,0,634,162,1,0,0,0,635,
- 636,5,45,0,0,636,637,5,62,0,0,637,164,1,0,0,0,638,642,2,49,57,0,
- 639,641,3,167,83,0,640,639,1,0,0,0,641,644,1,0,0,0,642,640,1,0,0,
- 0,642,643,1,0,0,0,643,647,1,0,0,0,644,642,1,0,0,0,645,647,5,48,0,
- 0,646,638,1,0,0,0,646,645,1,0,0,0,647,166,1,0,0,0,648,649,2,48,57,
- 0,649,168,1,0,0,0,650,652,5,45,0,0,651,650,1,0,0,0,651,652,1,0,0,
- 0,652,653,1,0,0,0,653,654,3,165,82,0,654,170,1,0,0,0,655,660,7,27,
- 0,0,656,659,7,27,0,0,657,659,3,167,83,0,658,656,1,0,0,0,658,657,
- 1,0,0,0,659,662,1,0,0,0,660,658,1,0,0,0,660,661,1,0,0,0,661,172,
- 1,0,0,0,662,660,1,0,0,0,663,665,5,13,0,0,664,666,5,10,0,0,665,664,
- 1,0,0,0,665,666,1,0,0,0,666,669,1,0,0,0,667,669,5,10,0,0,668,663,
- 1,0,0,0,668,667,1,0,0,0,669,174,1,0,0,0,13,0,181,193,196,201,212,
- 642,646,651,658,660,665,668,1,0,1,0
+ 78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,1,0,1,0,1,0,1,0,5,0,170,8,
+ 0,10,0,12,0,173,9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,182,8,1,11,1,
+ 12,1,183,1,1,3,1,187,8,1,1,1,5,1,190,8,1,10,1,12,1,193,9,1,1,1,1,
+ 1,1,1,1,1,1,1,1,2,4,2,201,8,2,11,2,12,2,202,1,2,1,2,1,3,1,3,1,4,
+ 1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,
+ 1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,10,1,
+ 10,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,
+ 13,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,
+ 16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,18,1,
+ 18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,
+ 19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,
+ 20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,
+ 20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,
+ 22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
+ 23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,
+ 24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
+ 24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
+ 25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,
+ 26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,
+ 27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,
+ 28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,
+ 30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,
+ 33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,36,1,
+ 36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,
+ 38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,
+ 40,1,40,1,40,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,
+ 43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,
+ 45,1,45,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,48,1,48,1,
+ 48,1,49,1,49,1,49,1,50,1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,54,1,
+ 54,1,55,1,55,1,56,1,56,1,56,1,57,1,57,1,57,1,58,1,58,1,58,1,59,1,
+ 59,1,60,1,60,1,61,1,61,1,62,1,62,1,63,1,63,1,64,1,64,1,65,1,65,1,
+ 66,1,66,1,67,1,67,1,68,1,68,1,69,1,69,1,70,1,70,1,71,1,71,1,72,1,
+ 72,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,75,1,75,1,75,1,76,1,76,1,
+ 76,1,77,1,77,5,77,595,8,77,10,77,12,77,598,9,77,1,77,3,77,601,8,
+ 77,1,78,1,78,1,79,3,79,606,8,79,1,79,1,79,1,80,1,80,1,80,5,80,613,
+ 8,80,10,80,12,80,616,9,80,1,81,1,81,3,81,620,8,81,1,81,3,81,623,
+ 8,81,0,0,82,1,1,3,2,5,3,7,0,9,4,11,5,13,6,15,7,17,8,19,9,21,10,23,
+ 11,25,12,27,13,29,14,31,15,33,16,35,17,37,18,39,19,41,20,43,21,45,
+ 22,47,23,49,24,51,25,53,26,55,27,57,28,59,29,61,30,63,31,65,32,67,
+ 33,69,34,71,35,73,36,75,37,77,38,79,39,81,40,83,41,85,42,87,43,89,
+ 44,91,45,93,46,95,47,97,48,99,49,101,50,103,51,105,52,107,53,109,
+ 54,111,55,113,56,115,57,117,58,119,59,121,60,123,61,125,62,127,63,
+ 129,64,131,65,133,66,135,67,137,68,139,69,141,70,143,71,145,72,147,
+ 73,149,74,151,75,153,76,155,0,157,0,159,77,161,78,163,79,1,0,28,
+ 2,0,10,10,13,13,1,0,42,42,2,0,42,42,47,47,3,0,9,9,13,13,32,32,1,
+ 0,48,57,2,0,73,73,105,105,2,0,70,70,102,102,2,0,84,84,116,116,2,
+ 0,72,72,104,104,2,0,69,69,101,101,2,0,78,78,110,110,2,0,76,76,108,
+ 108,2,0,83,83,115,115,2,0,85,85,117,117,2,0,67,67,99,99,2,0,66,66,
+ 98,98,2,0,79,79,111,111,2,0,65,65,97,97,2,0,80,80,112,112,2,0,82,
+ 82,114,114,2,0,71,71,103,103,2,0,89,89,121,121,2,0,68,68,100,100,
+ 2,0,86,86,118,118,2,0,77,77,109,109,2,0,90,90,122,122,2,0,88,88,
+ 120,120,4,0,36,36,65,90,95,95,97,122,632,0,1,1,0,0,0,0,3,1,0,0,0,
+ 0,5,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,
+ 17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,
+ 27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,
+ 37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,
+ 47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,
+ 57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,
+ 67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,
+ 77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,
+ 87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,
+ 97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,
+ 0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,
+ 1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,
+ 0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,
+ 0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,
+ 143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,
+ 0,0,0,153,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,1,165,
+ 1,0,0,0,3,176,1,0,0,0,5,200,1,0,0,0,7,206,1,0,0,0,9,208,1,0,0,0,
+ 11,211,1,0,0,0,13,216,1,0,0,0,15,221,1,0,0,0,17,226,1,0,0,0,19,234,
+ 1,0,0,0,21,237,1,0,0,0,23,241,1,0,0,0,25,245,1,0,0,0,27,249,1,0,
+ 0,0,29,254,1,0,0,0,31,259,1,0,0,0,33,266,1,0,0,0,35,273,1,0,0,0,
+ 37,278,1,0,0,0,39,292,1,0,0,0,41,305,1,0,0,0,43,323,1,0,0,0,45,328,
+ 1,0,0,0,47,336,1,0,0,0,49,351,1,0,0,0,51,371,1,0,0,0,53,394,1,0,
+ 0,0,55,404,1,0,0,0,57,412,1,0,0,0,59,424,1,0,0,0,61,431,1,0,0,0,
+ 63,439,1,0,0,0,65,444,1,0,0,0,67,448,1,0,0,0,69,451,1,0,0,0,71,456,
+ 1,0,0,0,73,460,1,0,0,0,75,465,1,0,0,0,77,471,1,0,0,0,79,476,1,0,
+ 0,0,81,486,1,0,0,0,83,490,1,0,0,0,85,493,1,0,0,0,87,497,1,0,0,0,
+ 89,503,1,0,0,0,91,509,1,0,0,0,93,515,1,0,0,0,95,520,1,0,0,0,97,524,
+ 1,0,0,0,99,527,1,0,0,0,101,530,1,0,0,0,103,532,1,0,0,0,105,534,1,
+ 0,0,0,107,536,1,0,0,0,109,538,1,0,0,0,111,540,1,0,0,0,113,542,1,
+ 0,0,0,115,545,1,0,0,0,117,548,1,0,0,0,119,551,1,0,0,0,121,553,1,
+ 0,0,0,123,555,1,0,0,0,125,557,1,0,0,0,127,559,1,0,0,0,129,561,1,
+ 0,0,0,131,563,1,0,0,0,133,565,1,0,0,0,135,567,1,0,0,0,137,569,1,
+ 0,0,0,139,571,1,0,0,0,141,573,1,0,0,0,143,575,1,0,0,0,145,577,1,
+ 0,0,0,147,579,1,0,0,0,149,583,1,0,0,0,151,586,1,0,0,0,153,589,1,
+ 0,0,0,155,600,1,0,0,0,157,602,1,0,0,0,159,605,1,0,0,0,161,609,1,
+ 0,0,0,163,622,1,0,0,0,165,166,5,47,0,0,166,167,5,47,0,0,167,171,
+ 1,0,0,0,168,170,8,0,0,0,169,168,1,0,0,0,170,173,1,0,0,0,171,169,
+ 1,0,0,0,171,172,1,0,0,0,172,174,1,0,0,0,173,171,1,0,0,0,174,175,
+ 6,0,0,0,175,2,1,0,0,0,176,177,5,47,0,0,177,178,5,42,0,0,178,186,
+ 1,0,0,0,179,187,8,1,0,0,180,182,5,42,0,0,181,180,1,0,0,0,182,183,
+ 1,0,0,0,183,181,1,0,0,0,183,184,1,0,0,0,184,185,1,0,0,0,185,187,
+ 8,2,0,0,186,179,1,0,0,0,186,181,1,0,0,0,187,191,1,0,0,0,188,190,
+ 5,42,0,0,189,188,1,0,0,0,190,193,1,0,0,0,191,189,1,0,0,0,191,192,
+ 1,0,0,0,192,194,1,0,0,0,193,191,1,0,0,0,194,195,5,42,0,0,195,196,
+ 5,47,0,0,196,197,1,0,0,0,197,198,6,1,0,0,198,4,1,0,0,0,199,201,7,
+ 3,0,0,200,199,1,0,0,0,201,202,1,0,0,0,202,200,1,0,0,0,202,203,1,
+ 0,0,0,203,204,1,0,0,0,204,205,6,2,0,0,205,6,1,0,0,0,206,207,7,4,
+ 0,0,207,8,1,0,0,0,208,209,7,5,0,0,209,210,7,6,0,0,210,10,1,0,0,0,
+ 211,212,7,7,0,0,212,213,7,8,0,0,213,214,7,9,0,0,214,215,7,10,0,0,
+ 215,12,1,0,0,0,216,217,7,9,0,0,217,218,7,11,0,0,218,219,7,12,0,0,
+ 219,220,7,9,0,0,220,14,1,0,0,0,221,222,7,6,0,0,222,223,7,13,0,0,
+ 223,224,7,10,0,0,224,225,7,14,0,0,225,16,1,0,0,0,226,227,7,15,0,
+ 0,227,228,7,16,0,0,228,229,7,16,0,0,229,230,7,11,0,0,230,231,7,9,
+ 0,0,231,232,7,17,0,0,232,233,7,10,0,0,233,18,1,0,0,0,234,235,7,5,
+ 0,0,235,236,5,56,0,0,236,20,1,0,0,0,237,238,7,5,0,0,238,239,5,49,
+ 0,0,239,240,5,54,0,0,240,22,1,0,0,0,241,242,7,5,0,0,242,243,5,51,
+ 0,0,243,244,5,50,0,0,244,24,1,0,0,0,245,246,7,5,0,0,246,247,5,54,
+ 0,0,247,248,5,52,0,0,248,26,1,0,0,0,249,250,7,6,0,0,250,251,7,18,
+ 0,0,251,252,5,51,0,0,252,253,5,50,0,0,253,28,1,0,0,0,254,255,7,6,
+ 0,0,255,256,7,18,0,0,256,257,5,54,0,0,257,258,5,52,0,0,258,30,1,
+ 0,0,0,259,260,7,12,0,0,260,261,7,7,0,0,261,262,7,19,0,0,262,263,
+ 7,5,0,0,263,264,7,10,0,0,264,265,7,20,0,0,265,32,1,0,0,0,266,267,
+ 7,15,0,0,267,268,7,5,0,0,268,269,7,10,0,0,269,270,7,17,0,0,270,271,
+ 7,19,0,0,271,272,7,21,0,0,272,34,1,0,0,0,273,274,7,22,0,0,274,275,
+ 7,17,0,0,275,276,7,7,0,0,276,277,7,9,0,0,277,36,1,0,0,0,278,279,
+ 7,5,0,0,279,280,7,10,0,0,280,281,7,7,0,0,281,282,7,9,0,0,282,283,
+ 7,19,0,0,283,284,7,23,0,0,284,285,7,17,0,0,285,286,7,11,0,0,286,
+ 287,5,95,0,0,287,288,7,21,0,0,288,289,7,9,0,0,289,290,7,17,0,0,290,
+ 291,7,19,0,0,291,38,1,0,0,0,292,293,7,5,0,0,293,294,7,10,0,0,294,
+ 295,7,7,0,0,295,296,7,9,0,0,296,297,7,19,0,0,297,298,7,23,0,0,298,
+ 299,7,17,0,0,299,300,7,11,0,0,300,301,5,95,0,0,301,302,7,22,0,0,
+ 302,303,7,17,0,0,303,304,7,21,0,0,304,40,1,0,0,0,305,306,7,5,0,0,
+ 306,307,7,10,0,0,307,308,7,7,0,0,308,309,7,9,0,0,309,310,7,19,0,
+ 0,310,311,7,23,0,0,311,312,7,17,0,0,312,313,7,11,0,0,313,314,5,95,
+ 0,0,314,315,7,14,0,0,315,316,7,16,0,0,316,317,7,24,0,0,317,318,7,
+ 18,0,0,318,319,7,16,0,0,319,320,7,13,0,0,320,321,7,10,0,0,321,322,
+ 7,22,0,0,322,42,1,0,0,0,323,324,7,13,0,0,324,325,7,13,0,0,325,326,
+ 7,5,0,0,326,327,7,22,0,0,327,44,1,0,0,0,328,329,7,22,0,0,329,330,
+ 7,9,0,0,330,331,7,14,0,0,331,332,7,5,0,0,332,333,7,24,0,0,333,334,
+ 7,17,0,0,334,335,7,11,0,0,335,46,1,0,0,0,336,337,7,18,0,0,337,338,
+ 7,19,0,0,338,339,7,9,0,0,339,340,7,14,0,0,340,341,7,5,0,0,341,342,
+ 7,12,0,0,342,343,7,5,0,0,343,344,7,16,0,0,344,345,7,10,0,0,345,346,
+ 5,95,0,0,346,347,7,7,0,0,347,348,7,5,0,0,348,349,7,24,0,0,349,350,
+ 7,9,0,0,350,48,1,0,0,0,351,352,7,18,0,0,352,353,7,19,0,0,353,354,
+ 7,9,0,0,354,355,7,14,0,0,355,356,7,5,0,0,356,357,7,12,0,0,357,358,
+ 7,5,0,0,358,359,7,16,0,0,359,360,7,10,0,0,360,361,5,95,0,0,361,362,
+ 7,7,0,0,362,363,7,5,0,0,363,364,7,24,0,0,364,365,7,9,0,0,365,366,
+ 7,12,0,0,366,367,7,7,0,0,367,368,7,17,0,0,368,369,7,24,0,0,369,370,
+ 7,18,0,0,370,50,1,0,0,0,371,372,7,18,0,0,372,373,7,19,0,0,373,374,
+ 7,9,0,0,374,375,7,14,0,0,375,376,7,5,0,0,376,377,7,12,0,0,377,378,
+ 7,5,0,0,378,379,7,16,0,0,379,380,7,10,0,0,380,381,5,95,0,0,381,382,
+ 7,7,0,0,382,383,7,5,0,0,383,384,7,24,0,0,384,385,7,9,0,0,385,386,
+ 7,12,0,0,386,387,7,7,0,0,387,388,7,17,0,0,388,389,7,24,0,0,389,390,
+ 7,18,0,0,390,391,5,95,0,0,391,392,7,7,0,0,392,393,7,25,0,0,393,52,
+ 1,0,0,0,394,395,7,6,0,0,395,396,7,5,0,0,396,397,7,26,0,0,397,398,
+ 7,9,0,0,398,399,7,22,0,0,399,400,7,14,0,0,400,401,7,8,0,0,401,402,
+ 7,17,0,0,402,403,7,19,0,0,403,54,1,0,0,0,404,405,7,23,0,0,405,406,
+ 7,17,0,0,406,407,7,19,0,0,407,408,7,14,0,0,408,409,7,8,0,0,409,410,
+ 7,17,0,0,410,411,7,19,0,0,411,56,1,0,0,0,412,413,7,6,0,0,413,414,
+ 7,5,0,0,414,415,7,26,0,0,415,416,7,9,0,0,416,417,7,22,0,0,417,418,
+ 7,15,0,0,418,419,7,5,0,0,419,420,7,10,0,0,420,421,7,17,0,0,421,422,
+ 7,19,0,0,422,423,7,21,0,0,423,58,1,0,0,0,424,425,7,12,0,0,425,426,
+ 7,7,0,0,426,427,7,19,0,0,427,428,7,13,0,0,428,429,7,14,0,0,429,430,
+ 7,7,0,0,430,60,1,0,0,0,431,432,7,10,0,0,432,433,7,12,0,0,433,434,
+ 7,7,0,0,434,435,7,19,0,0,435,436,7,13,0,0,436,437,7,14,0,0,437,438,
+ 7,7,0,0,438,62,1,0,0,0,439,440,7,11,0,0,440,441,7,5,0,0,441,442,
+ 7,12,0,0,442,443,7,7,0,0,443,64,1,0,0,0,444,445,7,24,0,0,445,446,
+ 7,17,0,0,446,447,7,18,0,0,447,66,1,0,0,0,448,449,7,13,0,0,449,450,
+ 5,33,0,0,450,68,1,0,0,0,451,452,7,15,0,0,452,453,7,16,0,0,453,454,
+ 7,16,0,0,454,455,7,11,0,0,455,70,1,0,0,0,456,457,7,12,0,0,457,458,
+ 7,7,0,0,458,459,7,19,0,0,459,72,1,0,0,0,460,461,7,23,0,0,461,462,
+ 7,15,0,0,462,463,7,5,0,0,463,464,7,10,0,0,464,74,1,0,0,0,465,466,
+ 7,5,0,0,466,467,7,21,0,0,467,468,7,9,0,0,468,469,7,17,0,0,469,470,
+ 7,19,0,0,470,76,1,0,0,0,471,472,7,5,0,0,472,473,7,22,0,0,473,474,
+ 7,17,0,0,474,475,7,21,0,0,475,78,1,0,0,0,476,477,7,5,0,0,477,478,
+ 7,14,0,0,478,479,7,16,0,0,479,480,7,24,0,0,480,481,7,18,0,0,481,
+ 482,7,16,0,0,482,483,7,13,0,0,483,484,7,10,0,0,484,485,7,22,0,0,
+ 485,80,1,0,0,0,486,487,7,22,0,0,487,488,7,9,0,0,488,489,7,14,0,0,
+ 489,82,1,0,0,0,490,491,7,18,0,0,491,492,7,7,0,0,492,84,1,0,0,0,493,
+ 494,7,18,0,0,494,495,7,7,0,0,495,496,7,12,0,0,496,86,1,0,0,0,497,
+ 498,7,18,0,0,498,499,7,7,0,0,499,500,7,12,0,0,500,501,7,7,0,0,501,
+ 502,7,25,0,0,502,88,1,0,0,0,503,504,7,6,0,0,504,505,7,14,0,0,505,
+ 506,7,8,0,0,506,507,7,17,0,0,507,508,7,19,0,0,508,90,1,0,0,0,509,
+ 510,7,23,0,0,510,511,7,14,0,0,511,512,7,8,0,0,512,513,7,17,0,0,513,
+ 514,7,19,0,0,514,92,1,0,0,0,515,516,7,6,0,0,516,517,7,15,0,0,517,
+ 518,7,5,0,0,518,519,7,10,0,0,519,94,1,0,0,0,520,521,7,17,0,0,521,
+ 522,7,10,0,0,522,523,7,21,0,0,523,96,1,0,0,0,524,525,3,95,47,0,525,
+ 526,7,4,0,0,526,98,1,0,0,0,527,528,5,58,0,0,528,529,5,58,0,0,529,
+ 100,1,0,0,0,530,531,5,43,0,0,531,102,1,0,0,0,532,533,5,45,0,0,533,
+ 104,1,0,0,0,534,535,5,42,0,0,535,106,1,0,0,0,536,537,5,47,0,0,537,
+ 108,1,0,0,0,538,539,5,37,0,0,539,110,1,0,0,0,540,541,5,61,0,0,541,
+ 112,1,0,0,0,542,543,5,33,0,0,543,544,5,61,0,0,544,114,1,0,0,0,545,
+ 546,5,62,0,0,546,547,5,61,0,0,547,116,1,0,0,0,548,549,5,60,0,0,549,
+ 550,5,61,0,0,550,118,1,0,0,0,551,552,5,62,0,0,552,120,1,0,0,0,553,
+ 554,5,60,0,0,554,122,1,0,0,0,555,556,5,33,0,0,556,124,1,0,0,0,557,
+ 558,3,121,60,0,558,126,1,0,0,0,559,560,3,119,59,0,560,128,1,0,0,
+ 0,561,562,5,40,0,0,562,130,1,0,0,0,563,564,5,41,0,0,564,132,1,0,
+ 0,0,565,566,5,91,0,0,566,134,1,0,0,0,567,568,5,93,0,0,568,136,1,
+ 0,0,0,569,570,5,44,0,0,570,138,1,0,0,0,571,572,5,58,0,0,572,140,
+ 1,0,0,0,573,574,5,63,0,0,574,142,1,0,0,0,575,576,5,35,0,0,576,144,
+ 1,0,0,0,577,578,5,46,0,0,578,146,1,0,0,0,579,580,7,17,0,0,580,581,
+ 7,10,0,0,581,582,7,22,0,0,582,148,1,0,0,0,583,584,7,16,0,0,584,585,
+ 7,19,0,0,585,150,1,0,0,0,586,587,5,58,0,0,587,588,5,61,0,0,588,152,
+ 1,0,0,0,589,590,5,45,0,0,590,591,5,62,0,0,591,154,1,0,0,0,592,596,
+ 2,49,57,0,593,595,3,157,78,0,594,593,1,0,0,0,595,598,1,0,0,0,596,
+ 594,1,0,0,0,596,597,1,0,0,0,597,601,1,0,0,0,598,596,1,0,0,0,599,
+ 601,5,48,0,0,600,592,1,0,0,0,600,599,1,0,0,0,601,156,1,0,0,0,602,
+ 603,2,48,57,0,603,158,1,0,0,0,604,606,5,45,0,0,605,604,1,0,0,0,605,
+ 606,1,0,0,0,606,607,1,0,0,0,607,608,3,155,77,0,608,160,1,0,0,0,609,
+ 614,7,27,0,0,610,613,7,27,0,0,611,613,3,157,78,0,612,610,1,0,0,0,
+ 612,611,1,0,0,0,613,616,1,0,0,0,614,612,1,0,0,0,614,615,1,0,0,0,
+ 615,162,1,0,0,0,616,614,1,0,0,0,617,619,5,13,0,0,618,620,5,10,0,
+ 0,619,618,1,0,0,0,619,620,1,0,0,0,620,623,1,0,0,0,621,623,5,10,0,
+ 0,622,617,1,0,0,0,622,621,1,0,0,0,623,164,1,0,0,0,13,0,171,183,186,
+ 191,202,596,600,605,612,614,619,622,1,0,1,0
]
class SubstraitTypeLexer(Lexer):
@@ -270,74 +254,69 @@ class SubstraitTypeLexer(Lexer):
FP64 = 14
String = 15
Binary = 16
- Timestamp = 17
- Timestamp_TZ = 18
- Date = 19
- Time = 20
- Interval_Year = 21
- Interval_Day = 22
- Interval_Compound = 23
- UUID = 24
- Decimal = 25
- Precision_Time = 26
- Precision_Timestamp = 27
- Precision_Timestamp_TZ = 28
- FixedChar = 29
- VarChar = 30
- FixedBinary = 31
- Struct = 32
- NStruct = 33
- List = 34
- Map = 35
- UserDefined = 36
- Bool = 37
- Str = 38
- VBin = 39
- Ts = 40
- TsTZ = 41
- IYear = 42
- IDay = 43
- ICompound = 44
- Dec = 45
- PT = 46
- PTs = 47
- PTsTZ = 48
- FChar = 49
- VChar = 50
- FBin = 51
- Any = 52
- AnyVar = 53
- DoubleColon = 54
- Plus = 55
- Minus = 56
- Asterisk = 57
- ForwardSlash = 58
- Percent = 59
- Eq = 60
- Ne = 61
- Gte = 62
- Lte = 63
- Gt = 64
- Lt = 65
- Bang = 66
- OAngleBracket = 67
- CAngleBracket = 68
- OParen = 69
- CParen = 70
- OBracket = 71
- CBracket = 72
- Comma = 73
- Colon = 74
- QMark = 75
- Hash = 76
- Dot = 77
- And = 78
- Or = 79
- Assign = 80
- Arrow = 81
- Number = 82
- Identifier = 83
- Newline = 84
+ Date = 17
+ Interval_Year = 18
+ Interval_Day = 19
+ Interval_Compound = 20
+ UUID = 21
+ Decimal = 22
+ Precision_Time = 23
+ Precision_Timestamp = 24
+ Precision_Timestamp_TZ = 25
+ FixedChar = 26
+ VarChar = 27
+ FixedBinary = 28
+ Struct = 29
+ NStruct = 30
+ List = 31
+ Map = 32
+ UserDefined = 33
+ Bool = 34
+ Str = 35
+ VBin = 36
+ IYear = 37
+ IDay = 38
+ ICompound = 39
+ Dec = 40
+ PT = 41
+ PTs = 42
+ PTsTZ = 43
+ FChar = 44
+ VChar = 45
+ FBin = 46
+ Any = 47
+ AnyVar = 48
+ DoubleColon = 49
+ Plus = 50
+ Minus = 51
+ Asterisk = 52
+ ForwardSlash = 53
+ Percent = 54
+ Eq = 55
+ Ne = 56
+ Gte = 57
+ Lte = 58
+ Gt = 59
+ Lt = 60
+ Bang = 61
+ OAngleBracket = 62
+ CAngleBracket = 63
+ OParen = 64
+ CParen = 65
+ OBracket = 66
+ CBracket = 67
+ Comma = 68
+ Colon = 69
+ QMark = 70
+ Hash = 71
+ Dot = 72
+ And = 73
+ Or = 74
+ Assign = 75
+ Arrow = 76
+ Number = 77
+ Identifier = 78
+ Newline = 79
channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]
@@ -346,49 +325,47 @@ class SubstraitTypeLexer(Lexer):
literalNames = [ "",
"'IF'", "'THEN'", "'ELSE'", "'FUNC'", "'BOOLEAN'", "'I8'", "'I16'",
"'I32'", "'I64'", "'FP32'", "'FP64'", "'STRING'", "'BINARY'",
- "'TIMESTAMP'", "'TIMESTAMP_TZ'", "'DATE'", "'TIME'", "'INTERVAL_YEAR'",
- "'INTERVAL_DAY'", "'INTERVAL_COMPOUND'", "'UUID'", "'DECIMAL'",
- "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'",
- "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'", "'NSTRUCT'",
- "'LIST'", "'MAP'", "'U!'", "'BOOL'", "'STR'", "'VBIN'", "'TS'",
- "'TSTZ'", "'IYEAR'", "'IDAY'", "'ICOMPOUND'", "'DEC'", "'PT'",
- "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", "'ANY'",
- "'::'", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'!='", "'>='",
- "'<='", "'>'", "'<'", "'!'", "'('", "')'", "'['", "']'", "','",
- "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'", "':='", "'->'" ]
+ "'DATE'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'", "'INTERVAL_COMPOUND'",
+ "'UUID'", "'DECIMAL'", "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'",
+ "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'",
+ "'STRUCT'", "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'",
+ "'STR'", "'VBIN'", "'IYEAR'", "'IDAY'", "'ICOMPOUND'", "'DEC'",
+ "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'",
+ "'ANY'", "'::'", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'!='",
+ "'>='", "'<='", "'>'", "'<'", "'!'", "'('", "')'", "'['", "']'",
+ "','", "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'", "':='",
+ "'->'" ]
symbolicNames = [ "",
"LineComment", "BlockComment", "Whitespace", "If", "Then", "Else",
"Func", "Boolean", "I8", "I16", "I32", "I64", "FP32", "FP64",
- "String", "Binary", "Timestamp", "Timestamp_TZ", "Date", "Time",
- "Interval_Year", "Interval_Day", "Interval_Compound", "UUID",
- "Decimal", "Precision_Time", "Precision_Timestamp", "Precision_Timestamp_TZ",
- "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct",
- "List", "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", "TsTZ",
- "IYear", "IDay", "ICompound", "Dec", "PT", "PTs", "PTsTZ", "FChar",
- "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus", "Minus",
- "Asterisk", "ForwardSlash", "Percent", "Eq", "Ne", "Gte", "Lte",
- "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket", "OParen",
- "CParen", "OBracket", "CBracket", "Comma", "Colon", "QMark",
- "Hash", "Dot", "And", "Or", "Assign", "Arrow", "Number", "Identifier",
- "Newline" ]
+ "String", "Binary", "Date", "Interval_Year", "Interval_Day",
+ "Interval_Compound", "UUID", "Decimal", "Precision_Time", "Precision_Timestamp",
+ "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary",
+ "Struct", "NStruct", "List", "Map", "UserDefined", "Bool", "Str",
+ "VBin", "IYear", "IDay", "ICompound", "Dec", "PT", "PTs", "PTsTZ",
+ "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus",
+ "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq", "Ne",
+ "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket",
+ "OParen", "CParen", "OBracket", "CBracket", "Comma", "Colon",
+ "QMark", "Hash", "Dot", "And", "Or", "Assign", "Arrow", "Number",
+ "Identifier", "Newline" ]
ruleNames = [ "LineComment", "BlockComment", "Whitespace", "DIGIT",
"If", "Then", "Else", "Func", "Boolean", "I8", "I16",
- "I32", "I64", "FP32", "FP64", "String", "Binary", "Timestamp",
- "Timestamp_TZ", "Date", "Time", "Interval_Year", "Interval_Day",
- "Interval_Compound", "UUID", "Decimal", "Precision_Time",
- "Precision_Timestamp", "Precision_Timestamp_TZ", "FixedChar",
- "VarChar", "FixedBinary", "Struct", "NStruct", "List",
- "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", "TsTZ",
- "IYear", "IDay", "ICompound", "Dec", "PT", "PTs", "PTsTZ",
- "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon",
- "Plus", "Minus", "Asterisk", "ForwardSlash", "Percent",
- "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket",
- "CAngleBracket", "OParen", "CParen", "OBracket", "CBracket",
- "Comma", "Colon", "QMark", "Hash", "Dot", "And", "Or",
- "Assign", "Arrow", "Int", "Digit", "Number", "Identifier",
- "Newline" ]
+ "I32", "I64", "FP32", "FP64", "String", "Binary", "Date",
+ "Interval_Year", "Interval_Day", "Interval_Compound",
+ "UUID", "Decimal", "Precision_Time", "Precision_Timestamp",
+ "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary",
+ "Struct", "NStruct", "List", "Map", "UserDefined", "Bool",
+ "Str", "VBin", "IYear", "IDay", "ICompound", "Dec", "PT",
+ "PTs", "PTsTZ", "FChar", "VChar", "FBin", "Any", "AnyVar",
+ "DoubleColon", "Plus", "Minus", "Asterisk", "ForwardSlash",
+ "Percent", "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang",
+ "OAngleBracket", "CAngleBracket", "OParen", "CParen",
+ "OBracket", "CBracket", "Comma", "Colon", "QMark", "Hash",
+ "Dot", "And", "Or", "Assign", "Arrow", "Int", "Digit",
+ "Number", "Identifier", "Newline" ]
grammarFileName = "SubstraitType.g4"
diff --git a/tests/type/antlr_parser/SubstraitTypeListener.py b/tests/type/antlr_parser/SubstraitTypeListener.py
index 9d2c0293a..68a7561fd 100644
--- a/tests/type/antlr_parser/SubstraitTypeListener.py
+++ b/tests/type/antlr_parser/SubstraitTypeListener.py
@@ -108,24 +108,6 @@ def exitBinary(self, ctx:SubstraitTypeParser.BinaryContext):
pass
- # Enter a parse tree produced by SubstraitTypeParser#timestamp.
- def enterTimestamp(self, ctx:SubstraitTypeParser.TimestampContext):
- pass
-
- # Exit a parse tree produced by SubstraitTypeParser#timestamp.
- def exitTimestamp(self, ctx:SubstraitTypeParser.TimestampContext):
- pass
-
-
- # Enter a parse tree produced by SubstraitTypeParser#timestampTz.
- def enterTimestampTz(self, ctx:SubstraitTypeParser.TimestampTzContext):
- pass
-
- # Exit a parse tree produced by SubstraitTypeParser#timestampTz.
- def exitTimestampTz(self, ctx:SubstraitTypeParser.TimestampTzContext):
- pass
-
-
# Enter a parse tree produced by SubstraitTypeParser#date.
def enterDate(self, ctx:SubstraitTypeParser.DateContext):
pass
@@ -135,15 +117,6 @@ def exitDate(self, ctx:SubstraitTypeParser.DateContext):
pass
- # Enter a parse tree produced by SubstraitTypeParser#time.
- def enterTime(self, ctx:SubstraitTypeParser.TimeContext):
- pass
-
- # Exit a parse tree produced by SubstraitTypeParser#time.
- def exitTime(self, ctx:SubstraitTypeParser.TimeContext):
- pass
-
-
# Enter a parse tree produced by SubstraitTypeParser#intervalYear.
def enterIntervalYear(self, ctx:SubstraitTypeParser.IntervalYearContext):
pass
diff --git a/tests/type/antlr_parser/SubstraitTypeParser.py b/tests/type/antlr_parser/SubstraitTypeParser.py
index 7061168de..a43f99d09 100644
--- a/tests/type/antlr_parser/SubstraitTypeParser.py
+++ b/tests/type/antlr_parser/SubstraitTypeParser.py
@@ -11,123 +11,121 @@
def serializedATN():
return [
- 4,1,84,310,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,
+ 4,1,79,307,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,
6,2,7,7,7,2,8,7,8,1,0,1,0,1,0,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,
- 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,40,8,2,1,3,1,3,3,3,44,
- 8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,52,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,
- 3,60,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,68,8,3,1,3,1,3,1,3,1,3,1,3,
- 1,3,1,3,1,3,3,3,78,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,86,8,3,1,3,1,
- 3,1,3,1,3,1,3,1,3,3,3,94,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,102,8,3,
- 1,3,1,3,1,3,1,3,1,3,1,3,3,3,110,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,
- 118,8,3,1,3,1,3,1,3,1,3,5,3,124,8,3,10,3,12,3,127,9,3,1,3,1,3,1,
- 3,1,3,3,3,133,8,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,141,8,3,10,3,12,3,
- 144,9,3,1,3,1,3,1,3,1,3,3,3,150,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,
- 158,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,168,8,3,1,3,1,3,1,3,
- 1,3,1,3,1,3,1,3,1,3,1,3,3,3,179,8,3,1,3,1,3,1,3,1,3,5,3,185,8,3,
- 10,3,12,3,188,9,3,1,3,1,3,3,3,192,8,3,3,3,194,8,3,1,4,1,4,1,4,1,
- 4,1,4,5,4,201,8,4,10,4,12,4,204,9,4,1,4,1,4,3,4,208,8,4,1,5,1,5,
- 1,5,3,5,213,8,5,1,6,1,6,3,6,217,8,6,1,6,1,6,3,6,221,8,6,3,6,223,
- 8,6,1,7,1,7,3,7,227,8,7,1,7,1,7,3,7,231,8,7,1,8,1,8,1,8,1,8,1,8,
- 1,8,1,8,1,8,1,8,4,8,242,8,8,11,8,12,8,243,1,8,1,8,1,8,1,8,4,8,250,
- 8,8,11,8,12,8,251,5,8,254,8,8,10,8,12,8,257,9,8,1,8,1,8,5,8,261,
- 8,8,10,8,12,8,264,9,8,1,8,1,8,1,8,1,8,3,8,270,8,8,1,8,1,8,1,8,1,
- 8,1,8,5,8,277,8,8,10,8,12,8,280,9,8,3,8,282,8,8,1,8,1,8,1,8,1,8,
- 1,8,1,8,1,8,1,8,1,8,1,8,3,8,294,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,
- 1,8,1,8,5,8,305,8,8,10,8,12,8,308,9,8,1,8,0,1,16,9,0,2,4,6,8,10,
- 12,14,16,0,1,3,0,55,58,60,65,78,79,373,0,18,1,0,0,0,2,21,1,0,0,0,
- 4,39,1,0,0,0,6,193,1,0,0,0,8,207,1,0,0,0,10,212,1,0,0,0,12,222,1,
- 0,0,0,14,230,1,0,0,0,16,293,1,0,0,0,18,19,3,16,8,0,19,20,5,0,0,1,
- 20,1,1,0,0,0,21,22,3,14,7,0,22,23,5,0,0,1,23,3,1,0,0,0,24,40,5,8,
- 0,0,25,40,5,9,0,0,26,40,5,10,0,0,27,40,5,11,0,0,28,40,5,12,0,0,29,
- 40,5,13,0,0,30,40,5,14,0,0,31,40,5,15,0,0,32,40,5,16,0,0,33,40,5,
- 17,0,0,34,40,5,18,0,0,35,40,5,19,0,0,36,40,5,20,0,0,37,40,5,21,0,
- 0,38,40,5,24,0,0,39,24,1,0,0,0,39,25,1,0,0,0,39,26,1,0,0,0,39,27,
- 1,0,0,0,39,28,1,0,0,0,39,29,1,0,0,0,39,30,1,0,0,0,39,31,1,0,0,0,
- 39,32,1,0,0,0,39,33,1,0,0,0,39,34,1,0,0,0,39,35,1,0,0,0,39,36,1,
- 0,0,0,39,37,1,0,0,0,39,38,1,0,0,0,40,5,1,0,0,0,41,43,5,29,0,0,42,
- 44,5,75,0,0,43,42,1,0,0,0,43,44,1,0,0,0,44,45,1,0,0,0,45,46,5,65,
- 0,0,46,47,3,10,5,0,47,48,5,64,0,0,48,194,1,0,0,0,49,51,5,30,0,0,
- 50,52,5,75,0,0,51,50,1,0,0,0,51,52,1,0,0,0,52,53,1,0,0,0,53,54,5,
- 65,0,0,54,55,3,10,5,0,55,56,5,64,0,0,56,194,1,0,0,0,57,59,5,31,0,
- 0,58,60,5,75,0,0,59,58,1,0,0,0,59,60,1,0,0,0,60,61,1,0,0,0,61,62,
- 5,65,0,0,62,63,3,10,5,0,63,64,5,64,0,0,64,194,1,0,0,0,65,67,5,25,
- 0,0,66,68,5,75,0,0,67,66,1,0,0,0,67,68,1,0,0,0,68,69,1,0,0,0,69,
- 70,5,65,0,0,70,71,3,10,5,0,71,72,5,73,0,0,72,73,3,10,5,0,73,74,5,
- 64,0,0,74,194,1,0,0,0,75,77,5,22,0,0,76,78,5,75,0,0,77,76,1,0,0,
- 0,77,78,1,0,0,0,78,79,1,0,0,0,79,80,5,65,0,0,80,81,3,10,5,0,81,82,
- 5,64,0,0,82,194,1,0,0,0,83,85,5,23,0,0,84,86,5,75,0,0,85,84,1,0,
- 0,0,85,86,1,0,0,0,86,87,1,0,0,0,87,88,5,65,0,0,88,89,3,10,5,0,89,
- 90,5,64,0,0,90,194,1,0,0,0,91,93,5,26,0,0,92,94,5,75,0,0,93,92,1,
- 0,0,0,93,94,1,0,0,0,94,95,1,0,0,0,95,96,5,65,0,0,96,97,3,10,5,0,
- 97,98,5,64,0,0,98,194,1,0,0,0,99,101,5,27,0,0,100,102,5,75,0,0,101,
- 100,1,0,0,0,101,102,1,0,0,0,102,103,1,0,0,0,103,104,5,65,0,0,104,
- 105,3,10,5,0,105,106,5,64,0,0,106,194,1,0,0,0,107,109,5,28,0,0,108,
- 110,5,75,0,0,109,108,1,0,0,0,109,110,1,0,0,0,110,111,1,0,0,0,111,
- 112,5,65,0,0,112,113,3,10,5,0,113,114,5,64,0,0,114,194,1,0,0,0,115,
- 117,5,32,0,0,116,118,5,75,0,0,117,116,1,0,0,0,117,118,1,0,0,0,118,
- 119,1,0,0,0,119,120,5,65,0,0,120,125,3,16,8,0,121,122,5,73,0,0,122,
- 124,3,16,8,0,123,121,1,0,0,0,124,127,1,0,0,0,125,123,1,0,0,0,125,
- 126,1,0,0,0,126,128,1,0,0,0,127,125,1,0,0,0,128,129,5,64,0,0,129,
- 194,1,0,0,0,130,132,5,33,0,0,131,133,5,75,0,0,132,131,1,0,0,0,132,
- 133,1,0,0,0,133,134,1,0,0,0,134,135,5,65,0,0,135,136,5,83,0,0,136,
- 142,3,16,8,0,137,138,5,73,0,0,138,139,5,83,0,0,139,141,3,16,8,0,
- 140,137,1,0,0,0,141,144,1,0,0,0,142,140,1,0,0,0,142,143,1,0,0,0,
- 143,145,1,0,0,0,144,142,1,0,0,0,145,146,5,64,0,0,146,194,1,0,0,0,
- 147,149,5,34,0,0,148,150,5,75,0,0,149,148,1,0,0,0,149,150,1,0,0,
- 0,150,151,1,0,0,0,151,152,5,65,0,0,152,153,3,16,8,0,153,154,5,64,
- 0,0,154,194,1,0,0,0,155,157,5,35,0,0,156,158,5,75,0,0,157,156,1,
- 0,0,0,157,158,1,0,0,0,158,159,1,0,0,0,159,160,5,65,0,0,160,161,3,
- 16,8,0,161,162,5,73,0,0,162,163,3,16,8,0,163,164,5,64,0,0,164,194,
- 1,0,0,0,165,167,5,7,0,0,166,168,5,75,0,0,167,166,1,0,0,0,167,168,
- 1,0,0,0,168,169,1,0,0,0,169,170,5,65,0,0,170,171,3,8,4,0,171,172,
- 5,81,0,0,172,173,3,16,8,0,173,174,5,64,0,0,174,194,1,0,0,0,175,176,
- 5,36,0,0,176,178,5,83,0,0,177,179,5,75,0,0,178,177,1,0,0,0,178,179,
- 1,0,0,0,179,191,1,0,0,0,180,181,5,65,0,0,181,186,3,16,8,0,182,183,
- 5,73,0,0,183,185,3,16,8,0,184,182,1,0,0,0,185,188,1,0,0,0,186,184,
- 1,0,0,0,186,187,1,0,0,0,187,189,1,0,0,0,188,186,1,0,0,0,189,190,
- 5,64,0,0,190,192,1,0,0,0,191,180,1,0,0,0,191,192,1,0,0,0,192,194,
- 1,0,0,0,193,41,1,0,0,0,193,49,1,0,0,0,193,57,1,0,0,0,193,65,1,0,
- 0,0,193,75,1,0,0,0,193,83,1,0,0,0,193,91,1,0,0,0,193,99,1,0,0,0,
- 193,107,1,0,0,0,193,115,1,0,0,0,193,130,1,0,0,0,193,147,1,0,0,0,
- 193,155,1,0,0,0,193,165,1,0,0,0,193,175,1,0,0,0,194,7,1,0,0,0,195,
- 208,3,16,8,0,196,197,5,69,0,0,197,202,3,16,8,0,198,199,5,73,0,0,
- 199,201,3,16,8,0,200,198,1,0,0,0,201,204,1,0,0,0,202,200,1,0,0,0,
- 202,203,1,0,0,0,203,205,1,0,0,0,204,202,1,0,0,0,205,206,5,70,0,0,
- 206,208,1,0,0,0,207,195,1,0,0,0,207,196,1,0,0,0,208,9,1,0,0,0,209,
- 213,5,82,0,0,210,213,5,83,0,0,211,213,3,16,8,0,212,209,1,0,0,0,212,
- 210,1,0,0,0,212,211,1,0,0,0,213,11,1,0,0,0,214,216,5,52,0,0,215,
- 217,5,75,0,0,216,215,1,0,0,0,216,217,1,0,0,0,217,223,1,0,0,0,218,
- 220,5,53,0,0,219,221,5,75,0,0,220,219,1,0,0,0,220,221,1,0,0,0,221,
- 223,1,0,0,0,222,214,1,0,0,0,222,218,1,0,0,0,223,13,1,0,0,0,224,226,
- 3,4,2,0,225,227,5,75,0,0,226,225,1,0,0,0,226,227,1,0,0,0,227,231,
- 1,0,0,0,228,231,3,6,3,0,229,231,3,12,6,0,230,224,1,0,0,0,230,228,
- 1,0,0,0,230,229,1,0,0,0,231,15,1,0,0,0,232,233,6,8,-1,0,233,234,
- 5,69,0,0,234,235,3,16,8,0,235,236,5,70,0,0,236,294,1,0,0,0,237,238,
- 5,83,0,0,238,239,5,60,0,0,239,241,3,16,8,0,240,242,5,84,0,0,241,
- 240,1,0,0,0,242,243,1,0,0,0,243,241,1,0,0,0,243,244,1,0,0,0,244,
- 255,1,0,0,0,245,246,5,83,0,0,246,247,5,60,0,0,247,249,3,16,8,0,248,
- 250,5,84,0,0,249,248,1,0,0,0,250,251,1,0,0,0,251,249,1,0,0,0,251,
- 252,1,0,0,0,252,254,1,0,0,0,253,245,1,0,0,0,254,257,1,0,0,0,255,
- 253,1,0,0,0,255,256,1,0,0,0,256,258,1,0,0,0,257,255,1,0,0,0,258,
- 262,3,14,7,0,259,261,5,84,0,0,260,259,1,0,0,0,261,264,1,0,0,0,262,
- 260,1,0,0,0,262,263,1,0,0,0,263,294,1,0,0,0,264,262,1,0,0,0,265,
- 294,3,14,7,0,266,294,5,82,0,0,267,269,5,83,0,0,268,270,5,75,0,0,
- 269,268,1,0,0,0,269,270,1,0,0,0,270,294,1,0,0,0,271,272,5,83,0,0,
- 272,281,5,69,0,0,273,278,3,16,8,0,274,275,5,73,0,0,275,277,3,16,
- 8,0,276,274,1,0,0,0,277,280,1,0,0,0,278,276,1,0,0,0,278,279,1,0,
- 0,0,279,282,1,0,0,0,280,278,1,0,0,0,281,273,1,0,0,0,281,282,1,0,
- 0,0,282,283,1,0,0,0,283,294,5,70,0,0,284,285,5,4,0,0,285,286,3,16,
- 8,0,286,287,5,5,0,0,287,288,3,16,8,0,288,289,5,6,0,0,289,290,3,16,
- 8,3,290,294,1,0,0,0,291,292,5,66,0,0,292,294,3,16,8,2,293,232,1,
- 0,0,0,293,237,1,0,0,0,293,265,1,0,0,0,293,266,1,0,0,0,293,267,1,
- 0,0,0,293,271,1,0,0,0,293,284,1,0,0,0,293,291,1,0,0,0,294,306,1,
- 0,0,0,295,296,10,4,0,0,296,297,7,0,0,0,297,305,3,16,8,5,298,299,
- 10,1,0,0,299,300,5,75,0,0,300,301,3,16,8,0,301,302,5,74,0,0,302,
- 303,3,16,8,2,303,305,1,0,0,0,304,295,1,0,0,0,304,298,1,0,0,0,305,
- 308,1,0,0,0,306,304,1,0,0,0,306,307,1,0,0,0,307,17,1,0,0,0,308,306,
- 1,0,0,0,39,39,43,51,59,67,77,85,93,101,109,117,125,132,142,149,157,
- 167,178,186,191,193,202,207,212,216,220,222,226,230,243,251,255,
- 262,269,278,281,293,304,306
+ 2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,37,8,2,1,3,1,3,3,3,41,8,3,1,3,1,3,
+ 1,3,1,3,1,3,1,3,3,3,49,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,57,8,3,1,
+ 3,1,3,1,3,1,3,1,3,1,3,3,3,65,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,
+ 3,3,75,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,83,8,3,1,3,1,3,1,3,1,3,1,
+ 3,1,3,3,3,91,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,99,8,3,1,3,1,3,1,3,
+ 1,3,1,3,1,3,3,3,107,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,115,8,3,1,3,
+ 1,3,1,3,1,3,5,3,121,8,3,10,3,12,3,124,9,3,1,3,1,3,1,3,1,3,3,3,130,
+ 8,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,138,8,3,10,3,12,3,141,9,3,1,3,1,
+ 3,1,3,1,3,3,3,147,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,155,8,3,1,3,1,
+ 3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,165,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,
+ 3,1,3,1,3,3,3,176,8,3,1,3,1,3,1,3,1,3,5,3,182,8,3,10,3,12,3,185,
+ 9,3,1,3,1,3,3,3,189,8,3,3,3,191,8,3,1,4,1,4,1,4,1,4,1,4,5,4,198,
+ 8,4,10,4,12,4,201,9,4,1,4,1,4,3,4,205,8,4,1,5,1,5,1,5,3,5,210,8,
+ 5,1,6,1,6,3,6,214,8,6,1,6,1,6,3,6,218,8,6,3,6,220,8,6,1,7,1,7,3,
+ 7,224,8,7,1,7,1,7,3,7,228,8,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,
+ 8,4,8,239,8,8,11,8,12,8,240,1,8,1,8,1,8,1,8,4,8,247,8,8,11,8,12,
+ 8,248,5,8,251,8,8,10,8,12,8,254,9,8,1,8,1,8,5,8,258,8,8,10,8,12,
+ 8,261,9,8,1,8,1,8,1,8,1,8,3,8,267,8,8,1,8,1,8,1,8,1,8,1,8,5,8,274,
+ 8,8,10,8,12,8,277,9,8,3,8,279,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,
+ 8,1,8,1,8,3,8,291,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,5,8,302,
+ 8,8,10,8,12,8,305,9,8,1,8,0,1,16,9,0,2,4,6,8,10,12,14,16,0,1,3,0,
+ 50,53,55,60,73,74,367,0,18,1,0,0,0,2,21,1,0,0,0,4,36,1,0,0,0,6,190,
+ 1,0,0,0,8,204,1,0,0,0,10,209,1,0,0,0,12,219,1,0,0,0,14,227,1,0,0,
+ 0,16,290,1,0,0,0,18,19,3,16,8,0,19,20,5,0,0,1,20,1,1,0,0,0,21,22,
+ 3,14,7,0,22,23,5,0,0,1,23,3,1,0,0,0,24,37,5,8,0,0,25,37,5,9,0,0,
+ 26,37,5,10,0,0,27,37,5,11,0,0,28,37,5,12,0,0,29,37,5,13,0,0,30,37,
+ 5,14,0,0,31,37,5,15,0,0,32,37,5,16,0,0,33,37,5,17,0,0,34,37,5,18,
+ 0,0,35,37,5,21,0,0,36,24,1,0,0,0,36,25,1,0,0,0,36,26,1,0,0,0,36,
+ 27,1,0,0,0,36,28,1,0,0,0,36,29,1,0,0,0,36,30,1,0,0,0,36,31,1,0,0,
+ 0,36,32,1,0,0,0,36,33,1,0,0,0,36,34,1,0,0,0,36,35,1,0,0,0,37,5,1,
+ 0,0,0,38,40,5,26,0,0,39,41,5,70,0,0,40,39,1,0,0,0,40,41,1,0,0,0,
+ 41,42,1,0,0,0,42,43,5,60,0,0,43,44,3,10,5,0,44,45,5,59,0,0,45,191,
+ 1,0,0,0,46,48,5,27,0,0,47,49,5,70,0,0,48,47,1,0,0,0,48,49,1,0,0,
+ 0,49,50,1,0,0,0,50,51,5,60,0,0,51,52,3,10,5,0,52,53,5,59,0,0,53,
+ 191,1,0,0,0,54,56,5,28,0,0,55,57,5,70,0,0,56,55,1,0,0,0,56,57,1,
+ 0,0,0,57,58,1,0,0,0,58,59,5,60,0,0,59,60,3,10,5,0,60,61,5,59,0,0,
+ 61,191,1,0,0,0,62,64,5,22,0,0,63,65,5,70,0,0,64,63,1,0,0,0,64,65,
+ 1,0,0,0,65,66,1,0,0,0,66,67,5,60,0,0,67,68,3,10,5,0,68,69,5,68,0,
+ 0,69,70,3,10,5,0,70,71,5,59,0,0,71,191,1,0,0,0,72,74,5,19,0,0,73,
+ 75,5,70,0,0,74,73,1,0,0,0,74,75,1,0,0,0,75,76,1,0,0,0,76,77,5,60,
+ 0,0,77,78,3,10,5,0,78,79,5,59,0,0,79,191,1,0,0,0,80,82,5,20,0,0,
+ 81,83,5,70,0,0,82,81,1,0,0,0,82,83,1,0,0,0,83,84,1,0,0,0,84,85,5,
+ 60,0,0,85,86,3,10,5,0,86,87,5,59,0,0,87,191,1,0,0,0,88,90,5,23,0,
+ 0,89,91,5,70,0,0,90,89,1,0,0,0,90,91,1,0,0,0,91,92,1,0,0,0,92,93,
+ 5,60,0,0,93,94,3,10,5,0,94,95,5,59,0,0,95,191,1,0,0,0,96,98,5,24,
+ 0,0,97,99,5,70,0,0,98,97,1,0,0,0,98,99,1,0,0,0,99,100,1,0,0,0,100,
+ 101,5,60,0,0,101,102,3,10,5,0,102,103,5,59,0,0,103,191,1,0,0,0,104,
+ 106,5,25,0,0,105,107,5,70,0,0,106,105,1,0,0,0,106,107,1,0,0,0,107,
+ 108,1,0,0,0,108,109,5,60,0,0,109,110,3,10,5,0,110,111,5,59,0,0,111,
+ 191,1,0,0,0,112,114,5,29,0,0,113,115,5,70,0,0,114,113,1,0,0,0,114,
+ 115,1,0,0,0,115,116,1,0,0,0,116,117,5,60,0,0,117,122,3,16,8,0,118,
+ 119,5,68,0,0,119,121,3,16,8,0,120,118,1,0,0,0,121,124,1,0,0,0,122,
+ 120,1,0,0,0,122,123,1,0,0,0,123,125,1,0,0,0,124,122,1,0,0,0,125,
+ 126,5,59,0,0,126,191,1,0,0,0,127,129,5,30,0,0,128,130,5,70,0,0,129,
+ 128,1,0,0,0,129,130,1,0,0,0,130,131,1,0,0,0,131,132,5,60,0,0,132,
+ 133,5,78,0,0,133,139,3,16,8,0,134,135,5,68,0,0,135,136,5,78,0,0,
+ 136,138,3,16,8,0,137,134,1,0,0,0,138,141,1,0,0,0,139,137,1,0,0,0,
+ 139,140,1,0,0,0,140,142,1,0,0,0,141,139,1,0,0,0,142,143,5,59,0,0,
+ 143,191,1,0,0,0,144,146,5,31,0,0,145,147,5,70,0,0,146,145,1,0,0,
+ 0,146,147,1,0,0,0,147,148,1,0,0,0,148,149,5,60,0,0,149,150,3,16,
+ 8,0,150,151,5,59,0,0,151,191,1,0,0,0,152,154,5,32,0,0,153,155,5,
+ 70,0,0,154,153,1,0,0,0,154,155,1,0,0,0,155,156,1,0,0,0,156,157,5,
+ 60,0,0,157,158,3,16,8,0,158,159,5,68,0,0,159,160,3,16,8,0,160,161,
+ 5,59,0,0,161,191,1,0,0,0,162,164,5,7,0,0,163,165,5,70,0,0,164,163,
+ 1,0,0,0,164,165,1,0,0,0,165,166,1,0,0,0,166,167,5,60,0,0,167,168,
+ 3,8,4,0,168,169,5,76,0,0,169,170,3,16,8,0,170,171,5,59,0,0,171,191,
+ 1,0,0,0,172,173,5,33,0,0,173,175,5,78,0,0,174,176,5,70,0,0,175,174,
+ 1,0,0,0,175,176,1,0,0,0,176,188,1,0,0,0,177,178,5,60,0,0,178,183,
+ 3,16,8,0,179,180,5,68,0,0,180,182,3,16,8,0,181,179,1,0,0,0,182,185,
+ 1,0,0,0,183,181,1,0,0,0,183,184,1,0,0,0,184,186,1,0,0,0,185,183,
+ 1,0,0,0,186,187,5,59,0,0,187,189,1,0,0,0,188,177,1,0,0,0,188,189,
+ 1,0,0,0,189,191,1,0,0,0,190,38,1,0,0,0,190,46,1,0,0,0,190,54,1,0,
+ 0,0,190,62,1,0,0,0,190,72,1,0,0,0,190,80,1,0,0,0,190,88,1,0,0,0,
+ 190,96,1,0,0,0,190,104,1,0,0,0,190,112,1,0,0,0,190,127,1,0,0,0,190,
+ 144,1,0,0,0,190,152,1,0,0,0,190,162,1,0,0,0,190,172,1,0,0,0,191,
+ 7,1,0,0,0,192,205,3,16,8,0,193,194,5,64,0,0,194,199,3,16,8,0,195,
+ 196,5,68,0,0,196,198,3,16,8,0,197,195,1,0,0,0,198,201,1,0,0,0,199,
+ 197,1,0,0,0,199,200,1,0,0,0,200,202,1,0,0,0,201,199,1,0,0,0,202,
+ 203,5,65,0,0,203,205,1,0,0,0,204,192,1,0,0,0,204,193,1,0,0,0,205,
+ 9,1,0,0,0,206,210,5,77,0,0,207,210,5,78,0,0,208,210,3,16,8,0,209,
+ 206,1,0,0,0,209,207,1,0,0,0,209,208,1,0,0,0,210,11,1,0,0,0,211,213,
+ 5,47,0,0,212,214,5,70,0,0,213,212,1,0,0,0,213,214,1,0,0,0,214,220,
+ 1,0,0,0,215,217,5,48,0,0,216,218,5,70,0,0,217,216,1,0,0,0,217,218,
+ 1,0,0,0,218,220,1,0,0,0,219,211,1,0,0,0,219,215,1,0,0,0,220,13,1,
+ 0,0,0,221,223,3,4,2,0,222,224,5,70,0,0,223,222,1,0,0,0,223,224,1,
+ 0,0,0,224,228,1,0,0,0,225,228,3,6,3,0,226,228,3,12,6,0,227,221,1,
+ 0,0,0,227,225,1,0,0,0,227,226,1,0,0,0,228,15,1,0,0,0,229,230,6,8,
+ -1,0,230,231,5,64,0,0,231,232,3,16,8,0,232,233,5,65,0,0,233,291,
+ 1,0,0,0,234,235,5,78,0,0,235,236,5,55,0,0,236,238,3,16,8,0,237,239,
+ 5,79,0,0,238,237,1,0,0,0,239,240,1,0,0,0,240,238,1,0,0,0,240,241,
+ 1,0,0,0,241,252,1,0,0,0,242,243,5,78,0,0,243,244,5,55,0,0,244,246,
+ 3,16,8,0,245,247,5,79,0,0,246,245,1,0,0,0,247,248,1,0,0,0,248,246,
+ 1,0,0,0,248,249,1,0,0,0,249,251,1,0,0,0,250,242,1,0,0,0,251,254,
+ 1,0,0,0,252,250,1,0,0,0,252,253,1,0,0,0,253,255,1,0,0,0,254,252,
+ 1,0,0,0,255,259,3,14,7,0,256,258,5,79,0,0,257,256,1,0,0,0,258,261,
+ 1,0,0,0,259,257,1,0,0,0,259,260,1,0,0,0,260,291,1,0,0,0,261,259,
+ 1,0,0,0,262,291,3,14,7,0,263,291,5,77,0,0,264,266,5,78,0,0,265,267,
+ 5,70,0,0,266,265,1,0,0,0,266,267,1,0,0,0,267,291,1,0,0,0,268,269,
+ 5,78,0,0,269,278,5,64,0,0,270,275,3,16,8,0,271,272,5,68,0,0,272,
+ 274,3,16,8,0,273,271,1,0,0,0,274,277,1,0,0,0,275,273,1,0,0,0,275,
+ 276,1,0,0,0,276,279,1,0,0,0,277,275,1,0,0,0,278,270,1,0,0,0,278,
+ 279,1,0,0,0,279,280,1,0,0,0,280,291,5,65,0,0,281,282,5,4,0,0,282,
+ 283,3,16,8,0,283,284,5,5,0,0,284,285,3,16,8,0,285,286,5,6,0,0,286,
+ 287,3,16,8,3,287,291,1,0,0,0,288,289,5,61,0,0,289,291,3,16,8,2,290,
+ 229,1,0,0,0,290,234,1,0,0,0,290,262,1,0,0,0,290,263,1,0,0,0,290,
+ 264,1,0,0,0,290,268,1,0,0,0,290,281,1,0,0,0,290,288,1,0,0,0,291,
+ 303,1,0,0,0,292,293,10,4,0,0,293,294,7,0,0,0,294,302,3,16,8,5,295,
+ 296,10,1,0,0,296,297,5,70,0,0,297,298,3,16,8,0,298,299,5,69,0,0,
+ 299,300,3,16,8,2,300,302,1,0,0,0,301,292,1,0,0,0,301,295,1,0,0,0,
+ 302,305,1,0,0,0,303,301,1,0,0,0,303,304,1,0,0,0,304,17,1,0,0,0,305,
+ 303,1,0,0,0,39,36,40,48,56,64,74,82,90,98,106,114,122,129,139,146,
+ 154,164,175,183,188,190,199,204,209,213,217,219,223,227,240,248,
+ 252,259,266,275,278,290,301,303
]
class SubstraitTypeParser ( Parser ):
@@ -143,36 +141,35 @@ class SubstraitTypeParser ( Parser ):
literalNames = [ "", "", "", "",
"'IF'", "'THEN'", "'ELSE'", "'FUNC'", "'BOOLEAN'",
"'I8'", "'I16'", "'I32'", "'I64'", "'FP32'", "'FP64'",
- "'STRING'", "'BINARY'", "'TIMESTAMP'", "'TIMESTAMP_TZ'",
- "'DATE'", "'TIME'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'",
- "'INTERVAL_COMPOUND'", "'UUID'", "'DECIMAL'", "'PRECISION_TIME'",
- "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'",
- "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'",
- "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'", "'STR'",
- "'VBIN'", "'TS'", "'TSTZ'", "'IYEAR'", "'IDAY'", "'ICOMPOUND'",
- "'DEC'", "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'",
- "'FBIN'", "'ANY'", "", "'::'", "'+'", "'-'",
- "'*'", "'/'", "'%'", "'='", "'!='", "'>='", "'<='",
- "'>'", "'<'", "'!'", "", "", "'('",
- "')'", "'['", "']'", "','", "':'", "'?'", "'#'", "'.'",
- "'AND'", "'OR'", "':='", "'->'" ]
+ "'STRING'", "'BINARY'", "'DATE'", "'INTERVAL_YEAR'",
+ "'INTERVAL_DAY'", "'INTERVAL_COMPOUND'", "'UUID'",
+ "'DECIMAL'", "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'",
+ "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'", "'VARCHAR'",
+ "'FIXEDBINARY'", "'STRUCT'", "'NSTRUCT'", "'LIST'",
+ "'MAP'", "'U!'", "'BOOL'", "'STR'", "'VBIN'", "'IYEAR'",
+ "'IDAY'", "'ICOMPOUND'", "'DEC'", "'PT'", "'PTS'",
+ "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", "'ANY'",
+ "", "'::'", "'+'", "'-'", "'*'", "'/'", "'%'",
+ "'='", "'!='", "'>='", "'<='", "'>'", "'<'", "'!'",
+ "", "", "'('", "')'", "'['", "']'",
+ "','", "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'",
+ "':='", "'->'" ]
symbolicNames = [ "", "LineComment", "BlockComment", "Whitespace",
"If", "Then", "Else", "Func", "Boolean", "I8", "I16",
"I32", "I64", "FP32", "FP64", "String", "Binary",
- "Timestamp", "Timestamp_TZ", "Date", "Time", "Interval_Year",
- "Interval_Day", "Interval_Compound", "UUID", "Decimal",
- "Precision_Time", "Precision_Timestamp", "Precision_Timestamp_TZ",
- "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct",
- "List", "Map", "UserDefined", "Bool", "Str", "VBin",
- "Ts", "TsTZ", "IYear", "IDay", "ICompound", "Dec",
- "PT", "PTs", "PTsTZ", "FChar", "VChar", "FBin", "Any",
- "AnyVar", "DoubleColon", "Plus", "Minus", "Asterisk",
- "ForwardSlash", "Percent", "Eq", "Ne", "Gte", "Lte",
- "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket",
- "OParen", "CParen", "OBracket", "CBracket", "Comma",
- "Colon", "QMark", "Hash", "Dot", "And", "Or", "Assign",
- "Arrow", "Number", "Identifier", "Newline" ]
+ "Date", "Interval_Year", "Interval_Day", "Interval_Compound",
+ "UUID", "Decimal", "Precision_Time", "Precision_Timestamp",
+ "Precision_Timestamp_TZ", "FixedChar", "VarChar",
+ "FixedBinary", "Struct", "NStruct", "List", "Map",
+ "UserDefined", "Bool", "Str", "VBin", "IYear", "IDay",
+ "ICompound", "Dec", "PT", "PTs", "PTsTZ", "FChar",
+ "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus",
+ "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq",
+ "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket",
+ "CAngleBracket", "OParen", "CParen", "OBracket", "CBracket",
+ "Comma", "Colon", "QMark", "Hash", "Dot", "And", "Or",
+ "Assign", "Arrow", "Number", "Identifier", "Newline" ]
RULE_startRule = 0
RULE_typeStatement = 1
@@ -205,74 +202,69 @@ class SubstraitTypeParser ( Parser ):
FP64=14
String=15
Binary=16
- Timestamp=17
- Timestamp_TZ=18
- Date=19
- Time=20
- Interval_Year=21
- Interval_Day=22
- Interval_Compound=23
- UUID=24
- Decimal=25
- Precision_Time=26
- Precision_Timestamp=27
- Precision_Timestamp_TZ=28
- FixedChar=29
- VarChar=30
- FixedBinary=31
- Struct=32
- NStruct=33
- List=34
- Map=35
- UserDefined=36
- Bool=37
- Str=38
- VBin=39
- Ts=40
- TsTZ=41
- IYear=42
- IDay=43
- ICompound=44
- Dec=45
- PT=46
- PTs=47
- PTsTZ=48
- FChar=49
- VChar=50
- FBin=51
- Any=52
- AnyVar=53
- DoubleColon=54
- Plus=55
- Minus=56
- Asterisk=57
- ForwardSlash=58
- Percent=59
- Eq=60
- Ne=61
- Gte=62
- Lte=63
- Gt=64
- Lt=65
- Bang=66
- OAngleBracket=67
- CAngleBracket=68
- OParen=69
- CParen=70
- OBracket=71
- CBracket=72
- Comma=73
- Colon=74
- QMark=75
- Hash=76
- Dot=77
- And=78
- Or=79
- Assign=80
- Arrow=81
- Number=82
- Identifier=83
- Newline=84
+ Date=17
+ Interval_Year=18
+ Interval_Day=19
+ Interval_Compound=20
+ UUID=21
+ Decimal=22
+ Precision_Time=23
+ Precision_Timestamp=24
+ Precision_Timestamp_TZ=25
+ FixedChar=26
+ VarChar=27
+ FixedBinary=28
+ Struct=29
+ NStruct=30
+ List=31
+ Map=32
+ UserDefined=33
+ Bool=34
+ Str=35
+ VBin=36
+ IYear=37
+ IDay=38
+ ICompound=39
+ Dec=40
+ PT=41
+ PTs=42
+ PTsTZ=43
+ FChar=44
+ VChar=45
+ FBin=46
+ Any=47
+ AnyVar=48
+ DoubleColon=49
+ Plus=50
+ Minus=51
+ Asterisk=52
+ ForwardSlash=53
+ Percent=54
+ Eq=55
+ Ne=56
+ Gte=57
+ Lte=58
+ Gt=59
+ Lt=60
+ Bang=61
+ OAngleBracket=62
+ CAngleBracket=63
+ OParen=64
+ CParen=65
+ OBracket=66
+ CBracket=67
+ Comma=68
+ Colon=69
+ QMark=70
+ Hash=71
+ Dot=72
+ And=73
+ Or=74
+ Assign=75
+ Arrow=76
+ Number=77
+ Identifier=78
+ Newline=79
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
super().__init__(input, output)
@@ -430,6 +422,30 @@ def accept(self, visitor:ParseTreeVisitor):
return visitor.visitChildren(self)
+ class BooleanContext(ScalarTypeContext):
+
+ def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
+ super().__init__(parser)
+ self.copyFrom(ctx)
+
+ def Boolean(self):
+ return self.getToken(SubstraitTypeParser.Boolean, 0)
+
+ def enterRule(self, listener:ParseTreeListener):
+ if hasattr( listener, "enterBoolean" ):
+ listener.enterBoolean(self)
+
+ def exitRule(self, listener:ParseTreeListener):
+ if hasattr( listener, "exitBoolean" ):
+ listener.exitBoolean(self)
+
+ def accept(self, visitor:ParseTreeVisitor):
+ if hasattr( visitor, "visitBoolean" ):
+ return visitor.visitBoolean(self)
+ else:
+ return visitor.visitChildren(self)
+
+
class StringContext(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
@@ -478,290 +494,194 @@ def accept(self, visitor:ParseTreeVisitor):
return visitor.visitChildren(self)
- class I32Context(ScalarTypeContext):
-
- def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def I32(self):
- return self.getToken(SubstraitTypeParser.I32, 0)
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterI32" ):
- listener.enterI32(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitI32" ):
- listener.exitI32(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitI32" ):
- return visitor.visitI32(self)
- else:
- return visitor.visitChildren(self)
-
-
- class IntervalYearContext(ScalarTypeContext):
-
- def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def Interval_Year(self):
- return self.getToken(SubstraitTypeParser.Interval_Year, 0)
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterIntervalYear" ):
- listener.enterIntervalYear(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitIntervalYear" ):
- listener.exitIntervalYear(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitIntervalYear" ):
- return visitor.visitIntervalYear(self)
- else:
- return visitor.visitChildren(self)
-
-
- class UuidContext(ScalarTypeContext):
-
- def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def UUID(self):
- return self.getToken(SubstraitTypeParser.UUID, 0)
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterUuid" ):
- listener.enterUuid(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitUuid" ):
- listener.exitUuid(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitUuid" ):
- return visitor.visitUuid(self)
- else:
- return visitor.visitChildren(self)
-
-
- class I8Context(ScalarTypeContext):
-
- def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
- super().__init__(parser)
- self.copyFrom(ctx)
-
- def I8(self):
- return self.getToken(SubstraitTypeParser.I8, 0)
-
- def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterI8" ):
- listener.enterI8(self)
-
- def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitI8" ):
- listener.exitI8(self)
-
- def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitI8" ):
- return visitor.visitI8(self)
- else:
- return visitor.visitChildren(self)
-
-
- class I16Context(ScalarTypeContext):
+ class BinaryContext(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
super().__init__(parser)
self.copyFrom(ctx)
- def I16(self):
- return self.getToken(SubstraitTypeParser.I16, 0)
+ def Binary(self):
+ return self.getToken(SubstraitTypeParser.Binary, 0)
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterI16" ):
- listener.enterI16(self)
+ if hasattr( listener, "enterBinary" ):
+ listener.enterBinary(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitI16" ):
- listener.exitI16(self)
+ if hasattr( listener, "exitBinary" ):
+ listener.exitBinary(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitI16" ):
- return visitor.visitI16(self)
+ if hasattr( visitor, "visitBinary" ):
+ return visitor.visitBinary(self)
else:
return visitor.visitChildren(self)
- class BooleanContext(ScalarTypeContext):
+ class Fp64Context(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
super().__init__(parser)
self.copyFrom(ctx)
- def Boolean(self):
- return self.getToken(SubstraitTypeParser.Boolean, 0)
+ def FP64(self):
+ return self.getToken(SubstraitTypeParser.FP64, 0)
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterBoolean" ):
- listener.enterBoolean(self)
+ if hasattr( listener, "enterFp64" ):
+ listener.enterFp64(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitBoolean" ):
- listener.exitBoolean(self)
+ if hasattr( listener, "exitFp64" ):
+ listener.exitFp64(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitBoolean" ):
- return visitor.visitBoolean(self)
+ if hasattr( visitor, "visitFp64" ):
+ return visitor.visitFp64(self)
else:
return visitor.visitChildren(self)
- class BinaryContext(ScalarTypeContext):
+ class I32Context(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
super().__init__(parser)
self.copyFrom(ctx)
- def Binary(self):
- return self.getToken(SubstraitTypeParser.Binary, 0)
+ def I32(self):
+ return self.getToken(SubstraitTypeParser.I32, 0)
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterBinary" ):
- listener.enterBinary(self)
+ if hasattr( listener, "enterI32" ):
+ listener.enterI32(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitBinary" ):
- listener.exitBinary(self)
+ if hasattr( listener, "exitI32" ):
+ listener.exitI32(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitBinary" ):
- return visitor.visitBinary(self)
+ if hasattr( visitor, "visitI32" ):
+ return visitor.visitI32(self)
else:
return visitor.visitChildren(self)
- class Fp64Context(ScalarTypeContext):
+ class Fp32Context(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
super().__init__(parser)
self.copyFrom(ctx)
- def FP64(self):
- return self.getToken(SubstraitTypeParser.FP64, 0)
+ def FP32(self):
+ return self.getToken(SubstraitTypeParser.FP32, 0)
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterFp64" ):
- listener.enterFp64(self)
+ if hasattr( listener, "enterFp32" ):
+ listener.enterFp32(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitFp64" ):
- listener.exitFp64(self)
+ if hasattr( listener, "exitFp32" ):
+ listener.exitFp32(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitFp64" ):
- return visitor.visitFp64(self)
+ if hasattr( visitor, "visitFp32" ):
+ return visitor.visitFp32(self)
else:
return visitor.visitChildren(self)
- class Fp32Context(ScalarTypeContext):
+ class IntervalYearContext(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
super().__init__(parser)
self.copyFrom(ctx)
- def FP32(self):
- return self.getToken(SubstraitTypeParser.FP32, 0)
+ def Interval_Year(self):
+ return self.getToken(SubstraitTypeParser.Interval_Year, 0)
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterFp32" ):
- listener.enterFp32(self)
+ if hasattr( listener, "enterIntervalYear" ):
+ listener.enterIntervalYear(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitFp32" ):
- listener.exitFp32(self)
+ if hasattr( listener, "exitIntervalYear" ):
+ listener.exitIntervalYear(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitFp32" ):
- return visitor.visitFp32(self)
+ if hasattr( visitor, "visitIntervalYear" ):
+ return visitor.visitIntervalYear(self)
else:
return visitor.visitChildren(self)
- class TimeContext(ScalarTypeContext):
+ class UuidContext(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
super().__init__(parser)
self.copyFrom(ctx)
- def Time(self):
- return self.getToken(SubstraitTypeParser.Time, 0)
+ def UUID(self):
+ return self.getToken(SubstraitTypeParser.UUID, 0)
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTime" ):
- listener.enterTime(self)
+ if hasattr( listener, "enterUuid" ):
+ listener.enterUuid(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTime" ):
- listener.exitTime(self)
+ if hasattr( listener, "exitUuid" ):
+ listener.exitUuid(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTime" ):
- return visitor.visitTime(self)
+ if hasattr( visitor, "visitUuid" ):
+ return visitor.visitUuid(self)
else:
return visitor.visitChildren(self)
- class TimestampContext(ScalarTypeContext):
+ class I8Context(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
super().__init__(parser)
self.copyFrom(ctx)
- def Timestamp(self):
- return self.getToken(SubstraitTypeParser.Timestamp, 0)
+ def I8(self):
+ return self.getToken(SubstraitTypeParser.I8, 0)
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimestamp" ):
- listener.enterTimestamp(self)
+ if hasattr( listener, "enterI8" ):
+ listener.enterI8(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimestamp" ):
- listener.exitTimestamp(self)
+ if hasattr( listener, "exitI8" ):
+ listener.exitI8(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimestamp" ):
- return visitor.visitTimestamp(self)
+ if hasattr( visitor, "visitI8" ):
+ return visitor.visitI8(self)
else:
return visitor.visitChildren(self)
- class TimestampTzContext(ScalarTypeContext):
+ class I16Context(ScalarTypeContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext
super().__init__(parser)
self.copyFrom(ctx)
- def Timestamp_TZ(self):
- return self.getToken(SubstraitTypeParser.Timestamp_TZ, 0)
+ def I16(self):
+ return self.getToken(SubstraitTypeParser.I16, 0)
def enterRule(self, listener:ParseTreeListener):
- if hasattr( listener, "enterTimestampTz" ):
- listener.enterTimestampTz(self)
+ if hasattr( listener, "enterI16" ):
+ listener.enterI16(self)
def exitRule(self, listener:ParseTreeListener):
- if hasattr( listener, "exitTimestampTz" ):
- listener.exitTimestampTz(self)
+ if hasattr( listener, "exitI16" ):
+ listener.exitI16(self)
def accept(self, visitor:ParseTreeVisitor):
- if hasattr( visitor, "visitTimestampTz" ):
- return visitor.visitTimestampTz(self)
+ if hasattr( visitor, "visitI16" ):
+ return visitor.visitI16(self)
else:
return visitor.visitChildren(self)
@@ -772,7 +692,7 @@ def scalarType(self):
localctx = SubstraitTypeParser.ScalarTypeContext(self, self._ctx, self.state)
self.enterRule(localctx, 4, self.RULE_scalarType)
try:
- self.state = 39
+ self.state = 36
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [8]:
@@ -830,39 +750,21 @@ def scalarType(self):
self.match(SubstraitTypeParser.Binary)
pass
elif token in [17]:
- localctx = SubstraitTypeParser.TimestampContext(self, localctx)
+ localctx = SubstraitTypeParser.DateContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 33
- self.match(SubstraitTypeParser.Timestamp)
+ self.match(SubstraitTypeParser.Date)
pass
elif token in [18]:
- localctx = SubstraitTypeParser.TimestampTzContext(self, localctx)
+ localctx = SubstraitTypeParser.IntervalYearContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 34
- self.match(SubstraitTypeParser.Timestamp_TZ)
- pass
- elif token in [19]:
- localctx = SubstraitTypeParser.DateContext(self, localctx)
- self.enterOuterAlt(localctx, 12)
- self.state = 35
- self.match(SubstraitTypeParser.Date)
- pass
- elif token in [20]:
- localctx = SubstraitTypeParser.TimeContext(self, localctx)
- self.enterOuterAlt(localctx, 13)
- self.state = 36
- self.match(SubstraitTypeParser.Time)
- pass
- elif token in [21]:
- localctx = SubstraitTypeParser.IntervalYearContext(self, localctx)
- self.enterOuterAlt(localctx, 14)
- self.state = 37
self.match(SubstraitTypeParser.Interval_Year)
pass
- elif token in [24]:
+ elif token in [21]:
localctx = SubstraitTypeParser.UuidContext(self, localctx)
- self.enterOuterAlt(localctx, 15)
- self.state = 38
+ self.enterOuterAlt(localctx, 12)
+ self.state = 35
self.match(SubstraitTypeParser.UUID)
pass
else:
@@ -1471,365 +1373,365 @@ def parameterizedType(self):
self.enterRule(localctx, 6, self.RULE_parameterizedType)
self._la = 0 # Token type
try:
- self.state = 193
+ self.state = 190
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [29]:
+ if token in [26]:
localctx = SubstraitTypeParser.FixedCharContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 41
+ self.state = 38
self.match(SubstraitTypeParser.FixedChar)
- self.state = 43
+ self.state = 40
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 42
+ if _la==70:
+ self.state = 39
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 45
+ self.state = 42
self.match(SubstraitTypeParser.Lt)
- self.state = 46
+ self.state = 43
localctx.length = self.numericParameter()
- self.state = 47
+ self.state = 44
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [30]:
+ elif token in [27]:
localctx = SubstraitTypeParser.VarCharContext(self, localctx)
self.enterOuterAlt(localctx, 2)
- self.state = 49
+ self.state = 46
self.match(SubstraitTypeParser.VarChar)
- self.state = 51
+ self.state = 48
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 50
+ if _la==70:
+ self.state = 47
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 53
+ self.state = 50
self.match(SubstraitTypeParser.Lt)
- self.state = 54
+ self.state = 51
localctx.length = self.numericParameter()
- self.state = 55
+ self.state = 52
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [31]:
+ elif token in [28]:
localctx = SubstraitTypeParser.FixedBinaryContext(self, localctx)
self.enterOuterAlt(localctx, 3)
- self.state = 57
+ self.state = 54
self.match(SubstraitTypeParser.FixedBinary)
- self.state = 59
+ self.state = 56
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 58
+ if _la==70:
+ self.state = 55
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 61
+ self.state = 58
self.match(SubstraitTypeParser.Lt)
- self.state = 62
+ self.state = 59
localctx.length = self.numericParameter()
- self.state = 63
+ self.state = 60
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [25]:
+ elif token in [22]:
localctx = SubstraitTypeParser.DecimalContext(self, localctx)
self.enterOuterAlt(localctx, 4)
- self.state = 65
+ self.state = 62
self.match(SubstraitTypeParser.Decimal)
- self.state = 67
+ self.state = 64
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 66
+ if _la==70:
+ self.state = 63
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 69
+ self.state = 66
self.match(SubstraitTypeParser.Lt)
- self.state = 70
+ self.state = 67
localctx.precision = self.numericParameter()
- self.state = 71
+ self.state = 68
self.match(SubstraitTypeParser.Comma)
- self.state = 72
+ self.state = 69
localctx.scale = self.numericParameter()
- self.state = 73
+ self.state = 70
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [22]:
+ elif token in [19]:
localctx = SubstraitTypeParser.PrecisionIntervalDayContext(self, localctx)
self.enterOuterAlt(localctx, 5)
- self.state = 75
+ self.state = 72
self.match(SubstraitTypeParser.Interval_Day)
- self.state = 77
+ self.state = 74
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 76
+ if _la==70:
+ self.state = 73
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 79
+ self.state = 76
self.match(SubstraitTypeParser.Lt)
- self.state = 80
+ self.state = 77
localctx.precision = self.numericParameter()
- self.state = 81
+ self.state = 78
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [23]:
+ elif token in [20]:
localctx = SubstraitTypeParser.PrecisionIntervalCompoundContext(self, localctx)
self.enterOuterAlt(localctx, 6)
- self.state = 83
+ self.state = 80
self.match(SubstraitTypeParser.Interval_Compound)
- self.state = 85
+ self.state = 82
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 84
+ if _la==70:
+ self.state = 81
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 87
+ self.state = 84
self.match(SubstraitTypeParser.Lt)
- self.state = 88
+ self.state = 85
localctx.precision = self.numericParameter()
- self.state = 89
+ self.state = 86
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [26]:
+ elif token in [23]:
localctx = SubstraitTypeParser.PrecisionTimeContext(self, localctx)
self.enterOuterAlt(localctx, 7)
- self.state = 91
+ self.state = 88
self.match(SubstraitTypeParser.Precision_Time)
- self.state = 93
+ self.state = 90
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 92
+ if _la==70:
+ self.state = 89
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 95
+ self.state = 92
self.match(SubstraitTypeParser.Lt)
- self.state = 96
+ self.state = 93
localctx.precision = self.numericParameter()
- self.state = 97
+ self.state = 94
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [27]:
+ elif token in [24]:
localctx = SubstraitTypeParser.PrecisionTimestampContext(self, localctx)
self.enterOuterAlt(localctx, 8)
- self.state = 99
+ self.state = 96
self.match(SubstraitTypeParser.Precision_Timestamp)
- self.state = 101
+ self.state = 98
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 100
+ if _la==70:
+ self.state = 97
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 103
+ self.state = 100
self.match(SubstraitTypeParser.Lt)
- self.state = 104
+ self.state = 101
localctx.precision = self.numericParameter()
- self.state = 105
+ self.state = 102
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [28]:
+ elif token in [25]:
localctx = SubstraitTypeParser.PrecisionTimestampTZContext(self, localctx)
self.enterOuterAlt(localctx, 9)
- self.state = 107
+ self.state = 104
self.match(SubstraitTypeParser.Precision_Timestamp_TZ)
- self.state = 109
+ self.state = 106
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 108
+ if _la==70:
+ self.state = 105
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 111
+ self.state = 108
self.match(SubstraitTypeParser.Lt)
- self.state = 112
+ self.state = 109
localctx.precision = self.numericParameter()
- self.state = 113
+ self.state = 110
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [32]:
+ elif token in [29]:
localctx = SubstraitTypeParser.StructContext(self, localctx)
self.enterOuterAlt(localctx, 10)
- self.state = 115
+ self.state = 112
self.match(SubstraitTypeParser.Struct)
- self.state = 117
+ self.state = 114
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 116
+ if _la==70:
+ self.state = 113
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 119
+ self.state = 116
self.match(SubstraitTypeParser.Lt)
- self.state = 120
+ self.state = 117
self.expr(0)
- self.state = 125
+ self.state = 122
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==73:
- self.state = 121
+ while _la==68:
+ self.state = 118
self.match(SubstraitTypeParser.Comma)
- self.state = 122
+ self.state = 119
self.expr(0)
- self.state = 127
+ self.state = 124
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 128
+ self.state = 125
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [33]:
+ elif token in [30]:
localctx = SubstraitTypeParser.NStructContext(self, localctx)
self.enterOuterAlt(localctx, 11)
- self.state = 130
+ self.state = 127
self.match(SubstraitTypeParser.NStruct)
- self.state = 132
+ self.state = 129
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 131
+ if _la==70:
+ self.state = 128
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 134
+ self.state = 131
self.match(SubstraitTypeParser.Lt)
- self.state = 135
+ self.state = 132
self.match(SubstraitTypeParser.Identifier)
- self.state = 136
+ self.state = 133
self.expr(0)
- self.state = 142
+ self.state = 139
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==73:
- self.state = 137
+ while _la==68:
+ self.state = 134
self.match(SubstraitTypeParser.Comma)
- self.state = 138
+ self.state = 135
self.match(SubstraitTypeParser.Identifier)
- self.state = 139
+ self.state = 136
self.expr(0)
- self.state = 144
+ self.state = 141
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 145
+ self.state = 142
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [34]:
+ elif token in [31]:
localctx = SubstraitTypeParser.ListContext(self, localctx)
self.enterOuterAlt(localctx, 12)
- self.state = 147
+ self.state = 144
self.match(SubstraitTypeParser.List)
- self.state = 149
+ self.state = 146
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 148
+ if _la==70:
+ self.state = 145
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 151
+ self.state = 148
self.match(SubstraitTypeParser.Lt)
- self.state = 152
+ self.state = 149
self.expr(0)
- self.state = 153
+ self.state = 150
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [35]:
+ elif token in [32]:
localctx = SubstraitTypeParser.MapContext(self, localctx)
self.enterOuterAlt(localctx, 13)
- self.state = 155
+ self.state = 152
self.match(SubstraitTypeParser.Map)
- self.state = 157
+ self.state = 154
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 156
+ if _la==70:
+ self.state = 153
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 159
+ self.state = 156
self.match(SubstraitTypeParser.Lt)
- self.state = 160
+ self.state = 157
localctx.key = self.expr(0)
- self.state = 161
+ self.state = 158
self.match(SubstraitTypeParser.Comma)
- self.state = 162
+ self.state = 159
localctx.value = self.expr(0)
- self.state = 163
+ self.state = 160
self.match(SubstraitTypeParser.Gt)
pass
elif token in [7]:
localctx = SubstraitTypeParser.FuncContext(self, localctx)
self.enterOuterAlt(localctx, 14)
- self.state = 165
+ self.state = 162
self.match(SubstraitTypeParser.Func)
- self.state = 167
+ self.state = 164
self._errHandler.sync(self)
_la = self._input.LA(1)
- if _la==75:
- self.state = 166
+ if _la==70:
+ self.state = 163
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 169
+ self.state = 166
self.match(SubstraitTypeParser.Lt)
- self.state = 170
+ self.state = 167
localctx.params = self.funcParams()
- self.state = 171
+ self.state = 168
self.match(SubstraitTypeParser.Arrow)
- self.state = 172
+ self.state = 169
localctx.returnType = self.expr(0)
- self.state = 173
+ self.state = 170
self.match(SubstraitTypeParser.Gt)
pass
- elif token in [36]:
+ elif token in [33]:
localctx = SubstraitTypeParser.UserDefinedContext(self, localctx)
self.enterOuterAlt(localctx, 15)
- self.state = 175
+ self.state = 172
self.match(SubstraitTypeParser.UserDefined)
- self.state = 176
+ self.state = 173
self.match(SubstraitTypeParser.Identifier)
- self.state = 178
+ self.state = 175
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,17,self._ctx)
if la_ == 1:
- self.state = 177
+ self.state = 174
localctx.isnull = self.match(SubstraitTypeParser.QMark)
- self.state = 191
+ self.state = 188
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,19,self._ctx)
if la_ == 1:
- self.state = 180
+ self.state = 177
self.match(SubstraitTypeParser.Lt)
- self.state = 181
+ self.state = 178
self.expr(0)
- self.state = 186
+ self.state = 183
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==73:
- self.state = 182
+ while _la==68:
+ self.state = 179
self.match(SubstraitTypeParser.Comma)
- self.state = 183
+ self.state = 180
self.expr(0)
- self.state = 188
+ self.state = 185
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 189
+ self.state = 186
self.match(SubstraitTypeParser.Gt)
@@ -1932,36 +1834,36 @@ def funcParams(self):
self.enterRule(localctx, 8, self.RULE_funcParams)
self._la = 0 # Token type
try:
- self.state = 207
+ self.state = 204
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,22,self._ctx)
if la_ == 1:
localctx = SubstraitTypeParser.SingleFuncParamContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 195
+ self.state = 192
self.expr(0)
pass
elif la_ == 2:
localctx = SubstraitTypeParser.FuncParamsWithParensContext(self, localctx)
self.enterOuterAlt(localctx, 2)
- self.state = 196
+ self.state = 193
self.match(SubstraitTypeParser.OParen)
- self.state = 197
+ self.state = 194
self.expr(0)
- self.state = 202
+ self.state = 199
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==73:
- self.state = 198
+ while _la==68:
+ self.state = 195
self.match(SubstraitTypeParser.Comma)
- self.state = 199
+ self.state = 196
self.expr(0)
- self.state = 204
+ self.state = 201
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 205
+ self.state = 202
self.match(SubstraitTypeParser.CParen)
pass
@@ -2071,27 +1973,27 @@ def numericParameter(self):
localctx = SubstraitTypeParser.NumericParameterContext(self, self._ctx, self.state)
self.enterRule(localctx, 10, self.RULE_numericParameter)
try:
- self.state = 212
+ self.state = 209
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,23,self._ctx)
if la_ == 1:
localctx = SubstraitTypeParser.NumericLiteralContext(self, localctx)
self.enterOuterAlt(localctx, 1)
- self.state = 209
+ self.state = 206
self.match(SubstraitTypeParser.Number)
pass
elif la_ == 2:
localctx = SubstraitTypeParser.NumericParameterNameContext(self, localctx)
self.enterOuterAlt(localctx, 2)
- self.state = 210
+ self.state = 207
self.match(SubstraitTypeParser.Identifier)
pass
elif la_ == 3:
localctx = SubstraitTypeParser.NumericExpressionContext(self, localctx)
self.enterOuterAlt(localctx, 3)
- self.state = 211
+ self.state = 208
self.expr(0)
pass
@@ -2147,31 +2049,31 @@ def anyType(self):
localctx = SubstraitTypeParser.AnyTypeContext(self, self._ctx, self.state)
self.enterRule(localctx, 12, self.RULE_anyType)
try:
- self.state = 222
+ self.state = 219
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [52]:
+ if token in [47]:
self.enterOuterAlt(localctx, 1)
- self.state = 214
+ self.state = 211
self.match(SubstraitTypeParser.Any)
- self.state = 216
+ self.state = 213
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,24,self._ctx)
if la_ == 1:
- self.state = 215
+ self.state = 212
localctx.isnull = self.match(SubstraitTypeParser.QMark)
pass
- elif token in [53]:
+ elif token in [48]:
self.enterOuterAlt(localctx, 2)
- self.state = 218
+ self.state = 215
self.match(SubstraitTypeParser.AnyVar)
- self.state = 220
+ self.state = 217
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,25,self._ctx)
if la_ == 1:
- self.state = 219
+ self.state = 216
localctx.isnull = self.match(SubstraitTypeParser.QMark)
@@ -2236,30 +2138,30 @@ def typeDef(self):
localctx = SubstraitTypeParser.TypeDefContext(self, self._ctx, self.state)
self.enterRule(localctx, 14, self.RULE_typeDef)
try:
- self.state = 230
+ self.state = 227
self._errHandler.sync(self)
token = self._input.LA(1)
- if token in [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24]:
+ if token in [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21]:
self.enterOuterAlt(localctx, 1)
- self.state = 224
+ self.state = 221
self.scalarType()
- self.state = 226
+ self.state = 223
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,27,self._ctx)
if la_ == 1:
- self.state = 225
+ self.state = 222
localctx.isnull = self.match(SubstraitTypeParser.QMark)
pass
- elif token in [7, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]:
+ elif token in [7, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]:
self.enterOuterAlt(localctx, 2)
- self.state = 228
+ self.state = 225
self.parameterizedType()
pass
- elif token in [52, 53]:
+ elif token in [47, 48]:
self.enterOuterAlt(localctx, 3)
- self.state = 229
+ self.state = 226
self.anyType()
pass
else:
@@ -2646,7 +2548,7 @@ def expr(self, _p:int=0):
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
- self.state = 293
+ self.state = 290
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,36,self._ctx)
if la_ == 1:
@@ -2654,11 +2556,11 @@ def expr(self, _p:int=0):
self._ctx = localctx
_prevctx = localctx
- self.state = 233
+ self.state = 230
self.match(SubstraitTypeParser.OParen)
- self.state = 234
+ self.state = 231
self.expr(0)
- self.state = 235
+ self.state = 232
self.match(SubstraitTypeParser.CParen)
pass
@@ -2666,60 +2568,60 @@ def expr(self, _p:int=0):
localctx = SubstraitTypeParser.MultilineDefinitionContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
- self.state = 237
+ self.state = 234
self.match(SubstraitTypeParser.Identifier)
- self.state = 238
+ self.state = 235
self.match(SubstraitTypeParser.Eq)
- self.state = 239
+ self.state = 236
self.expr(0)
- self.state = 241
+ self.state = 238
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
- self.state = 240
+ self.state = 237
self.match(SubstraitTypeParser.Newline)
- self.state = 243
+ self.state = 240
self._errHandler.sync(self)
_la = self._input.LA(1)
- if not (_la==84):
+ if not (_la==79):
break
- self.state = 255
+ self.state = 252
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==83:
- self.state = 245
+ while _la==78:
+ self.state = 242
self.match(SubstraitTypeParser.Identifier)
- self.state = 246
+ self.state = 243
self.match(SubstraitTypeParser.Eq)
- self.state = 247
+ self.state = 244
self.expr(0)
- self.state = 249
+ self.state = 246
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
- self.state = 248
+ self.state = 245
self.match(SubstraitTypeParser.Newline)
- self.state = 251
+ self.state = 248
self._errHandler.sync(self)
_la = self._input.LA(1)
- if not (_la==84):
+ if not (_la==79):
break
- self.state = 257
+ self.state = 254
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 258
+ self.state = 255
localctx.finalType = self.typeDef()
- self.state = 262
+ self.state = 259
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,32,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
- self.state = 259
+ self.state = 256
self.match(SubstraitTypeParser.Newline)
- self.state = 264
+ self.state = 261
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,32,self._ctx)
@@ -2729,7 +2631,7 @@ def expr(self, _p:int=0):
localctx = SubstraitTypeParser.TypeLiteralContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
- self.state = 265
+ self.state = 262
self.typeDef()
pass
@@ -2737,7 +2639,7 @@ def expr(self, _p:int=0):
localctx = SubstraitTypeParser.LiteralNumberContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
- self.state = 266
+ self.state = 263
self.match(SubstraitTypeParser.Number)
pass
@@ -2745,13 +2647,13 @@ def expr(self, _p:int=0):
localctx = SubstraitTypeParser.ParameterNameContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
- self.state = 267
+ self.state = 264
self.match(SubstraitTypeParser.Identifier)
- self.state = 269
+ self.state = 266
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,33,self._ctx)
if la_ == 1:
- self.state = 268
+ self.state = 265
localctx.isnull = self.match(SubstraitTypeParser.QMark)
@@ -2761,31 +2663,31 @@ def expr(self, _p:int=0):
localctx = SubstraitTypeParser.FunctionCallContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
- self.state = 271
+ self.state = 268
self.match(SubstraitTypeParser.Identifier)
- self.state = 272
+ self.state = 269
self.match(SubstraitTypeParser.OParen)
- self.state = 281
+ self.state = 278
self._errHandler.sync(self)
_la = self._input.LA(1)
- if (((_la) & ~0x3f) == 0 and ((1 << _la) & 13510936321064848) != 0) or ((((_la - 66)) & ~0x3f) == 0 and ((1 << (_la - 66)) & 196617) != 0):
- self.state = 273
+ if (((_la) & ~0x3f) == 0 and ((1 << _la) & 2306265238858629008) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & 24577) != 0):
+ self.state = 270
self.expr(0)
- self.state = 278
+ self.state = 275
self._errHandler.sync(self)
_la = self._input.LA(1)
- while _la==73:
- self.state = 274
+ while _la==68:
+ self.state = 271
self.match(SubstraitTypeParser.Comma)
- self.state = 275
+ self.state = 272
self.expr(0)
- self.state = 280
+ self.state = 277
self._errHandler.sync(self)
_la = self._input.LA(1)
- self.state = 283
+ self.state = 280
self.match(SubstraitTypeParser.CParen)
pass
@@ -2793,17 +2695,17 @@ def expr(self, _p:int=0):
localctx = SubstraitTypeParser.IfExprContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
- self.state = 284
+ self.state = 281
self.match(SubstraitTypeParser.If)
- self.state = 285
+ self.state = 282
localctx.ifExpr = self.expr(0)
- self.state = 286
+ self.state = 283
self.match(SubstraitTypeParser.Then)
- self.state = 287
+ self.state = 284
localctx.thenExpr = self.expr(0)
- self.state = 288
+ self.state = 285
self.match(SubstraitTypeParser.Else)
- self.state = 289
+ self.state = 286
localctx.elseExpr = self.expr(3)
pass
@@ -2812,15 +2714,15 @@ def expr(self, _p:int=0):
self._ctx = localctx
_prevctx = localctx
- self.state = 291
+ self.state = 288
self.match(SubstraitTypeParser.Bang)
- self.state = 292
+ self.state = 289
self.expr(2)
pass
self._ctx.stop = self._input.LT(-1)
- self.state = 306
+ self.state = 303
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,38,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
@@ -2828,26 +2730,26 @@ def expr(self, _p:int=0):
if self._parseListeners is not None:
self.triggerExitRuleEvent()
_prevctx = localctx
- self.state = 304
+ self.state = 301
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,37,self._ctx)
if la_ == 1:
localctx = SubstraitTypeParser.BinaryExprContext(self, SubstraitTypeParser.ExprContext(self, _parentctx, _parentState))
localctx.left = _prevctx
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
- self.state = 295
+ self.state = 292
if not self.precpred(self._ctx, 4):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 4)")
- self.state = 296
+ self.state = 293
localctx.op = self._input.LT(1)
_la = self._input.LA(1)
- if not(((((_la - 55)) & ~0x3f) == 0 and ((1 << (_la - 55)) & 25167855) != 0)):
+ if not(((((_la - 50)) & ~0x3f) == 0 and ((1 << (_la - 50)) & 25167855) != 0)):
localctx.op = self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
- self.state = 297
+ self.state = 294
localctx.right = self.expr(5)
pass
@@ -2855,22 +2757,22 @@ def expr(self, _p:int=0):
localctx = SubstraitTypeParser.TernaryContext(self, SubstraitTypeParser.ExprContext(self, _parentctx, _parentState))
localctx.ifExpr = _prevctx
self.pushNewRecursionContext(localctx, _startState, self.RULE_expr)
- self.state = 298
+ self.state = 295
if not self.precpred(self._ctx, 1):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 1)")
- self.state = 299
+ self.state = 296
self.match(SubstraitTypeParser.QMark)
- self.state = 300
+ self.state = 297
localctx.thenExpr = self.expr(0)
- self.state = 301
+ self.state = 298
self.match(SubstraitTypeParser.Colon)
- self.state = 302
+ self.state = 299
localctx.elseExpr = self.expr(2)
pass
- self.state = 308
+ self.state = 305
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,38,self._ctx)
diff --git a/tests/type/antlr_parser/SubstraitTypeVisitor.py b/tests/type/antlr_parser/SubstraitTypeVisitor.py
index c3acac61e..6671f1388 100644
--- a/tests/type/antlr_parser/SubstraitTypeVisitor.py
+++ b/tests/type/antlr_parser/SubstraitTypeVisitor.py
@@ -65,26 +65,11 @@ def visitBinary(self, ctx:SubstraitTypeParser.BinaryContext):
return self.visitChildren(ctx)
- # Visit a parse tree produced by SubstraitTypeParser#timestamp.
- def visitTimestamp(self, ctx:SubstraitTypeParser.TimestampContext):
- return self.visitChildren(ctx)
-
-
- # Visit a parse tree produced by SubstraitTypeParser#timestampTz.
- def visitTimestampTz(self, ctx:SubstraitTypeParser.TimestampTzContext):
- return self.visitChildren(ctx)
-
-
# Visit a parse tree produced by SubstraitTypeParser#date.
def visitDate(self, ctx:SubstraitTypeParser.DateContext):
return self.visitChildren(ctx)
- # Visit a parse tree produced by SubstraitTypeParser#time.
- def visitTime(self, ctx:SubstraitTypeParser.TimeContext):
- return self.visitChildren(ctx)
-
-
# Visit a parse tree produced by SubstraitTypeParser#intervalYear.
def visitIntervalYear(self, ctx:SubstraitTypeParser.IntervalYearContext):
return self.visitChildren(ctx)
diff --git a/text/dialect_schema.yaml b/text/dialect_schema.yaml
index 28236fe71..5b2a92bf1 100644
--- a/text/dialect_schema.yaml
+++ b/text/dialect_schema.yaml
@@ -50,7 +50,6 @@ properties:
- PRECISION_TIMESTAMP
- PRECISION_TIMESTAMP_TZ
- DATE
- - TIME
- INTERVAL_COMPOUND
- INTERVAL_DAY
- INTERVAL_YEAR
@@ -75,7 +74,6 @@ properties:
- $ref: "#/definitions/type_precision_timestamp"
- $ref: "#/definitions/type_precision_timestamp_tz"
- $ref: "#/definitions/type_date"
- - $ref: "#/definitions/type_time"
- $ref: "#/definitions/type_interval_compound"
- $ref: "#/definitions/type_interval_day"
- $ref: "#/definitions/type_interval_year"
@@ -518,18 +516,6 @@ definitions:
description: Arbitrary data created by the dialect author.
system_metadata:
$ref: "#/definitions/system_type_metadata"
- type_time:
- type: object
- additionalProperties: false
- required: [type]
- properties:
- type:
- const: TIME
- metadata:
- type: object
- description: Arbitrary data created by the dialect author.
- system_metadata:
- $ref: "#/definitions/system_type_metadata"
type_interval_compound:
type: object
additionalProperties: false
diff --git a/tools/proto_prefix.py b/tools/proto_prefix.py
index 3e3cec295..7d6949667 100755
--- a/tools/proto_prefix.py
+++ b/tools/proto_prefix.py
@@ -34,7 +34,7 @@ def tokenize(data):
ident=re.compile(r"[a-zA-Z_][a-zA-Z_0-9.]*"),
string=re.compile(r'"(?:[^"\\]|\\.)*"'),
number=re.compile(r"[0-9]+"),
- symbol=re.compile(r"[=;{}\[\]]"),
+ symbol=re.compile(r"[=;,{}\[\]]"),
comment=re.compile(r"//[^\n]*\n|/\*(?:(?!\*/).)*\*/"),
space=re.compile(r"\s+"),
)