From e99fa2c02bfcdac972cdb4a92b0ee88c02a47cb9 Mon Sep 17 00:00:00 2001 From: tokoko Date: Tue, 29 Apr 2025 19:49:34 +0000 Subject: [PATCH 1/2] chore: switch to substrait antlr grammar --- Makefile | 2 +- SubstraitType.g4 | 209 --- src/substrait/derivation_expression.py | 19 +- src/substrait/extension_registry.py | 26 +- src/substrait/gen/antlr/SubstraitType.interp | 177 ++- src/substrait/gen/antlr/SubstraitType.tokens | 231 +-- .../gen/antlr/SubstraitTypeLexer.interp | 267 ++-- src/substrait/gen/antlr/SubstraitTypeLexer.py | 617 ++++---- .../gen/antlr/SubstraitTypeLexer.tokens | 231 +-- .../gen/antlr/SubstraitTypeListener.py | 80 +- .../gen/antlr/SubstraitTypeParser.py | 1332 +++++++++-------- 11 files changed, 1646 insertions(+), 1545 deletions(-) delete mode 100644 SubstraitType.g4 diff --git a/Makefile b/Makefile index 7ab45a7..3c47757 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,2 @@ antlr: - java -jar ${ANTLR_JAR} -o src/substrait/gen/antlr -Dlanguage=Python3 SubstraitType.g4 + cd third_party/substrait/grammar && java -jar ${ANTLR_JAR} -o ../../../src/substrait/gen/antlr -Dlanguage=Python3 SubstraitType.g4 diff --git a/SubstraitType.g4 b/SubstraitType.g4 deleted file mode 100644 index f7d50af..0000000 --- a/SubstraitType.g4 +++ /dev/null @@ -1,209 +0,0 @@ -grammar SubstraitType; - -// -fragment A : [aA]; -fragment B : [bB]; -fragment C : [cC]; -fragment D : [dD]; -fragment E : [eE]; -fragment F : [fF]; -fragment G : [gG]; -fragment H : [hH]; -fragment I : [iI]; -fragment J : [jJ]; -fragment K : [kK]; -fragment L : [lL]; -fragment M : [mM]; -fragment N : [nN]; -fragment O : [oO]; -fragment P : [pP]; -fragment Q : [qQ]; -fragment R : [rR]; -fragment S : [sS]; -fragment T : [tT]; -fragment U : [uU]; -fragment V : [vV]; -fragment W : [wW]; -fragment X : [xX]; -fragment Y : [yY]; -fragment Z : [zZ]; - - -If : I F; -Then : T H E N; -Else : E L S E; - -// TYPES -Boolean : B O O L E A N; -I8 : I '8'; -I16 : I '16'; -I32 : I '32'; -I64 : I '64'; -FP32 : F P '32'; -FP64 : F P '64'; -String : S T R I N G; -Binary : B I N A R Y; -Timestamp: T I M E S T A M P; -TimestampTZ: T I M E S T A M P '_' T Z; -Date : D A T E; -Time : T I M E; -IntervalYear: I N T E R V A L '_' Y E A R; -IntervalDay: I N T E R V A L '_' D A Y; -IntervalCompound: I N T E R V A L '_' C O M P O U N D; -UUID : U U I D; -Decimal : D E C I M A L; -PrecisionTimestamp: P R E C I S I O N '_' T I M E S T A M P; -PrecisionTimestampTZ: P R E C I S I O N '_' T I M E S T A M P '_' T Z; -FixedChar: F I X E D C H A R; -VarChar : V A R C H A R; -FixedBinary: F I X E D B I N A R Y; -Struct : S T R U C T; -NStruct : N S T R U C T; -List : L I S T; -Map : M A P; -ANY : A N Y; -UserDefined: U '!'; - - -// OPERATIONS -And : A N D; -Or : O R; -Assign : ':='; - -// COMPARE -Eq : '='; -NotEquals: '!='; -Gte : '>='; -Lte : '<='; -Gt : '>'; -Lt : '<'; -Bang : '!'; - - -// MATH -Plus : '+'; -Minus : '-'; -Asterisk : '*'; -ForwardSlash : '/'; -Percent : '%'; - -// ORGANIZE -OBracket : '['; -CBracket : ']'; -OParen : '('; -CParen : ')'; -SColon : ';'; -Comma : ','; -QMark : '?'; -Colon : ':'; -SingleQuote: '\''; - - -Number - : '-'? Int - ; - -Identifier - : ('a'..'z' | 'A'..'Z' | '_' | '$') ('a'..'z' | 'A'..'Z' | '_' | '$' | Digit)* - ; - -LineComment - : '//' ~[\r\n]* -> channel(HIDDEN) - ; - -BlockComment - : ( '/*' - ( '/'* BlockComment - | ~[/*] - | '/'+ ~[/*] - | '*'+ ~[/*] - )* - '*'* - '*/' - ) -> channel(HIDDEN) - ; - -Whitespace - : [ \t]+ -> channel(HIDDEN) - ; - -Newline - : ( '\r' '\n'? - | '\n' - ) - ; - - -fragment Int - : '1'..'9' Digit* - | '0' - ; - -fragment Digit - : '0'..'9' - ; - -start: expr EOF; - -scalarType - : Boolean #Boolean - | I8 #i8 - | I16 #i16 - | I32 #i32 - | I64 #i64 - | FP32 #fp32 - | FP64 #fp64 - | String #string - | Binary #binary - | Timestamp #timestamp - | TimestampTZ #timestampTz - | Date #date - | Time #time - | IntervalYear #intervalYear - | UUID #uuid - | UserDefined Identifier #userDefined - ; - -parameterizedType - : FixedChar isnull='?'? Lt len=numericParameter Gt #fixedChar - | VarChar isnull='?'? Lt len=numericParameter Gt #varChar - | FixedBinary isnull='?'? Lt len=numericParameter Gt #fixedBinary - | Decimal isnull='?'? Lt precision=numericParameter Comma scale=numericParameter Gt #decimal - | IntervalDay isnull='?'? Lt precision=numericParameter Gt #intervalDay - | IntervalCompound isnull='?'? Lt precision=numericParameter Gt #intervalCompound - | PrecisionTimestamp isnull='?'? Lt precision=numericParameter Gt #precisionTimestamp - | PrecisionTimestampTZ isnull='?'? Lt precision=numericParameter Gt #precisionTimestampTZ - | Struct isnull='?'? Lt expr (Comma expr)* Gt #struct - | NStruct isnull='?'? Lt Identifier expr (Comma Identifier expr)* Gt #nStruct - | List isnull='?'? Lt expr Gt #list - | Map isnull='?'? Lt key=expr Comma value=expr Gt #map - ; - -numericParameter - : Number #numericLiteral - | Identifier #numericParameterName - | expr #numericExpression - ; - -anyType: ANY; - -type - : scalarType isnull='?'? - | parameterizedType - | anyType isnull='?'? - ; - -// : (OParen innerExpr CParen | innerExpr) - -expr - : OParen expr CParen #ParenExpression - | Identifier Eq expr Newline+ (Identifier Eq expr Newline+)* finalType=type Newline* #MultilineDefinition - | type #TypeLiteral - | number=Number #LiteralNumber - | identifier=Identifier isnull='?'? #TypeParam - | Identifier OParen (expr (Comma expr)*)? CParen #FunctionCall - | left=expr op=(And | Or | Plus | Minus | Lt | Gt | Eq | NotEquals | Lte | Gte | Asterisk | ForwardSlash) right=expr #BinaryExpr - | If ifExpr=expr Then thenExpr=expr Else elseExpr=expr #IfExpr - | (Bang) expr #NotExpr - | ifExpr=expr QMark thenExpr=expr Colon elseExpr=expr #Ternary - ; \ No newline at end of file diff --git a/src/substrait/derivation_expression.py b/src/substrait/derivation_expression.py index f5e68c1..a46c985 100644 --- a/src/substrait/derivation_expression.py +++ b/src/substrait/derivation_expression.py @@ -27,9 +27,9 @@ def _evaluate(x, values: dict): else: raise Exception(f"Unknown binary op {x.op.text}") elif type(x) == SubstraitTypeParser.LiteralNumberContext: - return int(x.number.text) - elif type(x) == SubstraitTypeParser.TypeParamContext: - return values[x.identifier.text] + return int(x.Number().symbol.text) + elif type(x) == SubstraitTypeParser.ParameterNameContext: + return values[x.Identifier().symbol.text] elif type(x) == SubstraitTypeParser.NumericParameterNameContext: return values[x.Identifier().symbol.text] elif type(x) == SubstraitTypeParser.ParenExpressionContext: @@ -43,9 +43,10 @@ def _evaluate(x, values: dict): return max(*exprs) else: raise Exception(f"Unknown function {func}") - elif type(x) == SubstraitTypeParser.TypeContext: + elif type(x) == SubstraitTypeParser.TypeDefContext: scalar_type = x.scalarType() parametrized_type = x.parameterizedType() + any_type = x.anyType() if scalar_type: nullability = ( Type.NULLABILITY_NULLABLE if x.isnull else Type.NULLABILITY_REQUIRED @@ -81,8 +82,14 @@ def _evaluate(x, values: dict): ) ) raise Exception(f"Unknown parametrized type {type(parametrized_type)}") + elif any_type: + any_var = any_type.AnyVar() + if any_var: + return values[any_var.symbol.text] + else: + raise Exception() else: - raise Exception("either scalar_type or parametrized_type is required") + raise Exception(f"either scalar_type, parametrized_type or any_type is required") elif type(x) == SubstraitTypeParser.NumericExpressionContext: return _evaluate(x.expr(), values) elif type(x) == SubstraitTypeParser.TernaryContext: @@ -101,7 +108,7 @@ def _evaluate(x, values: dict): return _evaluate(x.finalType, values) elif type(x) == SubstraitTypeParser.TypeLiteralContext: - return _evaluate(x.type_(), values) + return _evaluate(x.typeDef(), values) elif type(x) == SubstraitTypeParser.NumericLiteralContext: return int(str(x.Number())) else: diff --git a/src/substrait/extension_registry.py b/src/substrait/extension_registry.py index 2774ae3..f271bcb 100644 --- a/src/substrait/extension_registry.py +++ b/src/substrait/extension_registry.py @@ -96,25 +96,33 @@ def types_equal(type1: Type, type2: Type, check_nullability=False): ).nullability = Type.Nullability.NULLABILITY_UNSPECIFIED return x == y +def handle_parameter_cover(covered: Type, parameter_name: str, parameters: dict, check_nullability: bool): + if parameter_name in parameters: + covering = parameters[parameter_name] + return types_equal(covering, covered, check_nullability) + else: + parameters[parameter_name] = covered + return True def covers( covered: Type, covering: SubstraitTypeParser.TypeLiteralContext, parameters: dict, check_nullability=False, -): - if isinstance(covering, SubstraitTypeParser.TypeParamContext): +): + if isinstance(covering, SubstraitTypeParser.ParameterNameContext): parameter_name = str(covering.Identifier()) + return handle_parameter_cover(covered, parameter_name, parameters, check_nullability) - if parameter_name in parameters: - covering = parameters[parameter_name] + covering: SubstraitTypeParser.TypeDefContext = covering.typeDef() - return types_equal(covering, covered, check_nullability) + any_type: SubstraitTypeParser.AnyTypeContext = covering.anyType() + if any_type: + if any_type.AnyVar(): + return handle_parameter_cover(covered, any_type.AnyVar().symbol.text, parameters, check_nullability) else: - parameters[parameter_name] = covered return True - covering = covering.type_() scalar_type = covering.scalarType() if scalar_type: covering = _evaluate(covering, {}) @@ -150,10 +158,6 @@ def covers( else: raise Exception(f"Unhandled type {type(parameterized_type)}") - any_type = covering.anyType() - if any_type: - return True - class FunctionEntry: def __init__( diff --git a/src/substrait/gen/antlr/SubstraitType.interp b/src/substrait/gen/antlr/SubstraitType.interp index 51a94fa..b56ac7d 100644 --- a/src/substrait/gen/antlr/SubstraitType.interp +++ b/src/substrait/gen/antlr/SubstraitType.interp @@ -3,38 +3,57 @@ null null null null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -':=' +'IF' +'THEN' +'ELSE' +'BOOLEAN' +'I8' +'I16' +'I32' +'I64' +'FP32' +'FP64' +'STRING' +'BINARY' +'TIMESTAMP' +'TIMESTAMP_TZ' +'DATE' +'TIME' +'INTERVAL_YEAR' +'INTERVAL_DAY' +'UUID' +'DECIMAL' +'PRECISION_TIMESTAMP' +'PRECISION_TIMESTAMP_TZ' +'FIXEDCHAR' +'VARCHAR' +'FIXEDBINARY' +'STRUCT' +'NSTRUCT' +'LIST' +'MAP' +'U!' +'BOOL' +'STR' +'VBIN' +'TS' +'TSTZ' +'IYEAR' +'IDAY' +'DEC' +'PTS' +'PTSTZ' +'FCHAR' +'VCHAR' +'FBIN' +'ANY' +null +'::' +'+' +'-' +'*' +'/' +'%' '=' '!=' '>=' @@ -42,29 +61,29 @@ null '>' '<' '!' -'+' -'-' -'*' -'/' -'%' -'[' -']' +null +null '(' ')' -';' +'[' +']' ',' -'?' ':' -'\'' -null -null -null +'?' +'#' +'.' +'AND' +'OR' +':=' null null null token symbolic names: null +LineComment +BlockComment +Whitespace If Then Else @@ -78,16 +97,15 @@ FP64 String Binary Timestamp -TimestampTZ +Timestamp_TZ Date Time -IntervalYear -IntervalDay -IntervalCompound +Interval_Year +Interval_Day UUID Decimal -PrecisionTimestamp -PrecisionTimestampTZ +Precision_Timestamp +Precision_Timestamp_TZ FixedChar VarChar FixedBinary @@ -95,48 +113,63 @@ Struct NStruct List Map -ANY UserDefined -And -Or -Assign +Bool +Str +VBin +Ts +TsTZ +IYear +IDay +Dec +PTs +PTsTZ +FChar +VChar +FBin +Any +AnyVar +DoubleColon +Plus +Minus +Asterisk +ForwardSlash +Percent Eq -NotEquals +Ne Gte Lte Gt Lt Bang -Plus -Minus -Asterisk -ForwardSlash -Percent -OBracket -CBracket +OAngleBracket +CAngleBracket OParen CParen -SColon +OBracket +CBracket Comma -QMark Colon -SingleQuote +QMark +Hash +Dot +And +Or +Assign Number Identifier -LineComment -BlockComment -Whitespace Newline rule names: -start +startRule +typeStatement scalarType parameterizedType numericParameter anyType -type +typeDef expr atn: -[4, 1, 62, 250, 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, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 35, 8, 1, 1, 2, 1, 2, 3, 2, 39, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 47, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 55, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 63, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 73, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 81, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 89, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 97, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 105, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 111, 8, 2, 10, 2, 12, 2, 114, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 120, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 128, 8, 2, 10, 2, 12, 2, 131, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 137, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 145, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 153, 8, 2, 1, 3, 1, 3, 1, 3, 3, 3, 158, 8, 3, 1, 4, 1, 4, 1, 5, 1, 5, 3, 5, 164, 8, 5, 1, 5, 1, 5, 1, 5, 3, 5, 169, 8, 5, 3, 5, 171, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 4, 6, 182, 8, 6, 11, 6, 12, 6, 183, 1, 6, 1, 6, 1, 6, 1, 6, 4, 6, 190, 8, 6, 11, 6, 12, 6, 191, 5, 6, 194, 8, 6, 10, 6, 12, 6, 197, 9, 6, 1, 6, 1, 6, 5, 6, 201, 8, 6, 10, 6, 12, 6, 204, 9, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 210, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 217, 8, 6, 10, 6, 12, 6, 220, 9, 6, 3, 6, 222, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 234, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 245, 8, 6, 10, 6, 12, 6, 248, 9, 6, 1, 6, 0, 1, 12, 7, 0, 2, 4, 6, 8, 10, 12, 0, 1, 3, 0, 33, 34, 36, 41, 43, 46, 304, 0, 14, 1, 0, 0, 0, 2, 34, 1, 0, 0, 0, 4, 152, 1, 0, 0, 0, 6, 157, 1, 0, 0, 0, 8, 159, 1, 0, 0, 0, 10, 170, 1, 0, 0, 0, 12, 233, 1, 0, 0, 0, 14, 15, 3, 12, 6, 0, 15, 16, 5, 0, 0, 1, 16, 1, 1, 0, 0, 0, 17, 35, 5, 4, 0, 0, 18, 35, 5, 5, 0, 0, 19, 35, 5, 6, 0, 0, 20, 35, 5, 7, 0, 0, 21, 35, 5, 8, 0, 0, 22, 35, 5, 9, 0, 0, 23, 35, 5, 10, 0, 0, 24, 35, 5, 11, 0, 0, 25, 35, 5, 12, 0, 0, 26, 35, 5, 13, 0, 0, 27, 35, 5, 14, 0, 0, 28, 35, 5, 15, 0, 0, 29, 35, 5, 16, 0, 0, 30, 35, 5, 17, 0, 0, 31, 35, 5, 20, 0, 0, 32, 33, 5, 32, 0, 0, 33, 35, 5, 58, 0, 0, 34, 17, 1, 0, 0, 0, 34, 18, 1, 0, 0, 0, 34, 19, 1, 0, 0, 0, 34, 20, 1, 0, 0, 0, 34, 21, 1, 0, 0, 0, 34, 22, 1, 0, 0, 0, 34, 23, 1, 0, 0, 0, 34, 24, 1, 0, 0, 0, 34, 25, 1, 0, 0, 0, 34, 26, 1, 0, 0, 0, 34, 27, 1, 0, 0, 0, 34, 28, 1, 0, 0, 0, 34, 29, 1, 0, 0, 0, 34, 30, 1, 0, 0, 0, 34, 31, 1, 0, 0, 0, 34, 32, 1, 0, 0, 0, 35, 3, 1, 0, 0, 0, 36, 38, 5, 24, 0, 0, 37, 39, 5, 54, 0, 0, 38, 37, 1, 0, 0, 0, 38, 39, 1, 0, 0, 0, 39, 40, 1, 0, 0, 0, 40, 41, 5, 41, 0, 0, 41, 42, 3, 6, 3, 0, 42, 43, 5, 40, 0, 0, 43, 153, 1, 0, 0, 0, 44, 46, 5, 25, 0, 0, 45, 47, 5, 54, 0, 0, 46, 45, 1, 0, 0, 0, 46, 47, 1, 0, 0, 0, 47, 48, 1, 0, 0, 0, 48, 49, 5, 41, 0, 0, 49, 50, 3, 6, 3, 0, 50, 51, 5, 40, 0, 0, 51, 153, 1, 0, 0, 0, 52, 54, 5, 26, 0, 0, 53, 55, 5, 54, 0, 0, 54, 53, 1, 0, 0, 0, 54, 55, 1, 0, 0, 0, 55, 56, 1, 0, 0, 0, 56, 57, 5, 41, 0, 0, 57, 58, 3, 6, 3, 0, 58, 59, 5, 40, 0, 0, 59, 153, 1, 0, 0, 0, 60, 62, 5, 21, 0, 0, 61, 63, 5, 54, 0, 0, 62, 61, 1, 0, 0, 0, 62, 63, 1, 0, 0, 0, 63, 64, 1, 0, 0, 0, 64, 65, 5, 41, 0, 0, 65, 66, 3, 6, 3, 0, 66, 67, 5, 53, 0, 0, 67, 68, 3, 6, 3, 0, 68, 69, 5, 40, 0, 0, 69, 153, 1, 0, 0, 0, 70, 72, 5, 18, 0, 0, 71, 73, 5, 54, 0, 0, 72, 71, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 75, 5, 41, 0, 0, 75, 76, 3, 6, 3, 0, 76, 77, 5, 40, 0, 0, 77, 153, 1, 0, 0, 0, 78, 80, 5, 19, 0, 0, 79, 81, 5, 54, 0, 0, 80, 79, 1, 0, 0, 0, 80, 81, 1, 0, 0, 0, 81, 82, 1, 0, 0, 0, 82, 83, 5, 41, 0, 0, 83, 84, 3, 6, 3, 0, 84, 85, 5, 40, 0, 0, 85, 153, 1, 0, 0, 0, 86, 88, 5, 22, 0, 0, 87, 89, 5, 54, 0, 0, 88, 87, 1, 0, 0, 0, 88, 89, 1, 0, 0, 0, 89, 90, 1, 0, 0, 0, 90, 91, 5, 41, 0, 0, 91, 92, 3, 6, 3, 0, 92, 93, 5, 40, 0, 0, 93, 153, 1, 0, 0, 0, 94, 96, 5, 23, 0, 0, 95, 97, 5, 54, 0, 0, 96, 95, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 98, 1, 0, 0, 0, 98, 99, 5, 41, 0, 0, 99, 100, 3, 6, 3, 0, 100, 101, 5, 40, 0, 0, 101, 153, 1, 0, 0, 0, 102, 104, 5, 27, 0, 0, 103, 105, 5, 54, 0, 0, 104, 103, 1, 0, 0, 0, 104, 105, 1, 0, 0, 0, 105, 106, 1, 0, 0, 0, 106, 107, 5, 41, 0, 0, 107, 112, 3, 12, 6, 0, 108, 109, 5, 53, 0, 0, 109, 111, 3, 12, 6, 0, 110, 108, 1, 0, 0, 0, 111, 114, 1, 0, 0, 0, 112, 110, 1, 0, 0, 0, 112, 113, 1, 0, 0, 0, 113, 115, 1, 0, 0, 0, 114, 112, 1, 0, 0, 0, 115, 116, 5, 40, 0, 0, 116, 153, 1, 0, 0, 0, 117, 119, 5, 28, 0, 0, 118, 120, 5, 54, 0, 0, 119, 118, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 122, 5, 41, 0, 0, 122, 123, 5, 58, 0, 0, 123, 129, 3, 12, 6, 0, 124, 125, 5, 53, 0, 0, 125, 126, 5, 58, 0, 0, 126, 128, 3, 12, 6, 0, 127, 124, 1, 0, 0, 0, 128, 131, 1, 0, 0, 0, 129, 127, 1, 0, 0, 0, 129, 130, 1, 0, 0, 0, 130, 132, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0, 132, 133, 5, 40, 0, 0, 133, 153, 1, 0, 0, 0, 134, 136, 5, 29, 0, 0, 135, 137, 5, 54, 0, 0, 136, 135, 1, 0, 0, 0, 136, 137, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 139, 5, 41, 0, 0, 139, 140, 3, 12, 6, 0, 140, 141, 5, 40, 0, 0, 141, 153, 1, 0, 0, 0, 142, 144, 5, 30, 0, 0, 143, 145, 5, 54, 0, 0, 144, 143, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 147, 5, 41, 0, 0, 147, 148, 3, 12, 6, 0, 148, 149, 5, 53, 0, 0, 149, 150, 3, 12, 6, 0, 150, 151, 5, 40, 0, 0, 151, 153, 1, 0, 0, 0, 152, 36, 1, 0, 0, 0, 152, 44, 1, 0, 0, 0, 152, 52, 1, 0, 0, 0, 152, 60, 1, 0, 0, 0, 152, 70, 1, 0, 0, 0, 152, 78, 1, 0, 0, 0, 152, 86, 1, 0, 0, 0, 152, 94, 1, 0, 0, 0, 152, 102, 1, 0, 0, 0, 152, 117, 1, 0, 0, 0, 152, 134, 1, 0, 0, 0, 152, 142, 1, 0, 0, 0, 153, 5, 1, 0, 0, 0, 154, 158, 5, 57, 0, 0, 155, 158, 5, 58, 0, 0, 156, 158, 3, 12, 6, 0, 157, 154, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 157, 156, 1, 0, 0, 0, 158, 7, 1, 0, 0, 0, 159, 160, 5, 31, 0, 0, 160, 9, 1, 0, 0, 0, 161, 163, 3, 2, 1, 0, 162, 164, 5, 54, 0, 0, 163, 162, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 171, 1, 0, 0, 0, 165, 171, 3, 4, 2, 0, 166, 168, 3, 8, 4, 0, 167, 169, 5, 54, 0, 0, 168, 167, 1, 0, 0, 0, 168, 169, 1, 0, 0, 0, 169, 171, 1, 0, 0, 0, 170, 161, 1, 0, 0, 0, 170, 165, 1, 0, 0, 0, 170, 166, 1, 0, 0, 0, 171, 11, 1, 0, 0, 0, 172, 173, 6, 6, -1, 0, 173, 174, 5, 50, 0, 0, 174, 175, 3, 12, 6, 0, 175, 176, 5, 51, 0, 0, 176, 234, 1, 0, 0, 0, 177, 178, 5, 58, 0, 0, 178, 179, 5, 36, 0, 0, 179, 181, 3, 12, 6, 0, 180, 182, 5, 62, 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, 195, 1, 0, 0, 0, 185, 186, 5, 58, 0, 0, 186, 187, 5, 36, 0, 0, 187, 189, 3, 12, 6, 0, 188, 190, 5, 62, 0, 0, 189, 188, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 194, 1, 0, 0, 0, 193, 185, 1, 0, 0, 0, 194, 197, 1, 0, 0, 0, 195, 193, 1, 0, 0, 0, 195, 196, 1, 0, 0, 0, 196, 198, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 198, 202, 3, 10, 5, 0, 199, 201, 5, 62, 0, 0, 200, 199, 1, 0, 0, 0, 201, 204, 1, 0, 0, 0, 202, 200, 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 234, 1, 0, 0, 0, 204, 202, 1, 0, 0, 0, 205, 234, 3, 10, 5, 0, 206, 234, 5, 57, 0, 0, 207, 209, 5, 58, 0, 0, 208, 210, 5, 54, 0, 0, 209, 208, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 234, 1, 0, 0, 0, 211, 212, 5, 58, 0, 0, 212, 221, 5, 50, 0, 0, 213, 218, 3, 12, 6, 0, 214, 215, 5, 53, 0, 0, 215, 217, 3, 12, 6, 0, 216, 214, 1, 0, 0, 0, 217, 220, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 222, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 221, 213, 1, 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 234, 5, 51, 0, 0, 224, 225, 5, 1, 0, 0, 225, 226, 3, 12, 6, 0, 226, 227, 5, 2, 0, 0, 227, 228, 3, 12, 6, 0, 228, 229, 5, 3, 0, 0, 229, 230, 3, 12, 6, 3, 230, 234, 1, 0, 0, 0, 231, 232, 5, 42, 0, 0, 232, 234, 3, 12, 6, 2, 233, 172, 1, 0, 0, 0, 233, 177, 1, 0, 0, 0, 233, 205, 1, 0, 0, 0, 233, 206, 1, 0, 0, 0, 233, 207, 1, 0, 0, 0, 233, 211, 1, 0, 0, 0, 233, 224, 1, 0, 0, 0, 233, 231, 1, 0, 0, 0, 234, 246, 1, 0, 0, 0, 235, 236, 10, 4, 0, 0, 236, 237, 7, 0, 0, 0, 237, 245, 3, 12, 6, 5, 238, 239, 10, 1, 0, 0, 239, 240, 5, 54, 0, 0, 240, 241, 3, 12, 6, 0, 241, 242, 5, 55, 0, 0, 242, 243, 3, 12, 6, 2, 243, 245, 1, 0, 0, 0, 244, 235, 1, 0, 0, 0, 244, 238, 1, 0, 0, 0, 245, 248, 1, 0, 0, 0, 246, 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 13, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 30, 34, 38, 46, 54, 62, 72, 80, 88, 96, 104, 112, 119, 129, 136, 144, 152, 157, 163, 168, 170, 183, 191, 195, 202, 209, 218, 221, 233, 244, 246] \ No newline at end of file +[4, 1, 78, 268, 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, 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, 38, 8, 2, 1, 3, 1, 3, 3, 3, 42, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 50, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 58, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 66, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 76, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 84, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 92, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 100, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 106, 8, 3, 10, 3, 12, 3, 109, 9, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 115, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 123, 8, 3, 10, 3, 12, 3, 126, 9, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 132, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 140, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 151, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 157, 8, 3, 10, 3, 12, 3, 160, 9, 3, 1, 3, 1, 3, 3, 3, 164, 8, 3, 3, 3, 166, 8, 3, 1, 4, 1, 4, 1, 4, 3, 4, 171, 8, 4, 1, 5, 1, 5, 3, 5, 175, 8, 5, 1, 5, 1, 5, 3, 5, 179, 8, 5, 3, 5, 181, 8, 5, 1, 6, 1, 6, 3, 6, 185, 8, 6, 1, 6, 1, 6, 3, 6, 189, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 200, 8, 7, 11, 7, 12, 7, 201, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 208, 8, 7, 11, 7, 12, 7, 209, 5, 7, 212, 8, 7, 10, 7, 12, 7, 215, 9, 7, 1, 7, 1, 7, 5, 7, 219, 8, 7, 10, 7, 12, 7, 222, 9, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 228, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 235, 8, 7, 10, 7, 12, 7, 238, 9, 7, 3, 7, 240, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 252, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 263, 8, 7, 10, 7, 12, 7, 266, 9, 7, 1, 7, 0, 1, 14, 8, 0, 2, 4, 6, 8, 10, 12, 14, 0, 1, 3, 0, 50, 53, 55, 60, 73, 74, 324, 0, 16, 1, 0, 0, 0, 2, 19, 1, 0, 0, 0, 4, 37, 1, 0, 0, 0, 6, 165, 1, 0, 0, 0, 8, 170, 1, 0, 0, 0, 10, 180, 1, 0, 0, 0, 12, 188, 1, 0, 0, 0, 14, 251, 1, 0, 0, 0, 16, 17, 3, 14, 7, 0, 17, 18, 5, 0, 0, 1, 18, 1, 1, 0, 0, 0, 19, 20, 3, 12, 6, 0, 20, 21, 5, 0, 0, 1, 21, 3, 1, 0, 0, 0, 22, 38, 5, 7, 0, 0, 23, 38, 5, 8, 0, 0, 24, 38, 5, 9, 0, 0, 25, 38, 5, 10, 0, 0, 26, 38, 5, 11, 0, 0, 27, 38, 5, 12, 0, 0, 28, 38, 5, 13, 0, 0, 29, 38, 5, 14, 0, 0, 30, 38, 5, 15, 0, 0, 31, 38, 5, 16, 0, 0, 32, 38, 5, 17, 0, 0, 33, 38, 5, 18, 0, 0, 34, 38, 5, 19, 0, 0, 35, 38, 5, 20, 0, 0, 36, 38, 5, 22, 0, 0, 37, 22, 1, 0, 0, 0, 37, 23, 1, 0, 0, 0, 37, 24, 1, 0, 0, 0, 37, 25, 1, 0, 0, 0, 37, 26, 1, 0, 0, 0, 37, 27, 1, 0, 0, 0, 37, 28, 1, 0, 0, 0, 37, 29, 1, 0, 0, 0, 37, 30, 1, 0, 0, 0, 37, 31, 1, 0, 0, 0, 37, 32, 1, 0, 0, 0, 37, 33, 1, 0, 0, 0, 37, 34, 1, 0, 0, 0, 37, 35, 1, 0, 0, 0, 37, 36, 1, 0, 0, 0, 38, 5, 1, 0, 0, 0, 39, 41, 5, 26, 0, 0, 40, 42, 5, 70, 0, 0, 41, 40, 1, 0, 0, 0, 41, 42, 1, 0, 0, 0, 42, 43, 1, 0, 0, 0, 43, 44, 5, 60, 0, 0, 44, 45, 3, 8, 4, 0, 45, 46, 5, 59, 0, 0, 46, 166, 1, 0, 0, 0, 47, 49, 5, 27, 0, 0, 48, 50, 5, 70, 0, 0, 49, 48, 1, 0, 0, 0, 49, 50, 1, 0, 0, 0, 50, 51, 1, 0, 0, 0, 51, 52, 5, 60, 0, 0, 52, 53, 3, 8, 4, 0, 53, 54, 5, 59, 0, 0, 54, 166, 1, 0, 0, 0, 55, 57, 5, 28, 0, 0, 56, 58, 5, 70, 0, 0, 57, 56, 1, 0, 0, 0, 57, 58, 1, 0, 0, 0, 58, 59, 1, 0, 0, 0, 59, 60, 5, 60, 0, 0, 60, 61, 3, 8, 4, 0, 61, 62, 5, 59, 0, 0, 62, 166, 1, 0, 0, 0, 63, 65, 5, 23, 0, 0, 64, 66, 5, 70, 0, 0, 65, 64, 1, 0, 0, 0, 65, 66, 1, 0, 0, 0, 66, 67, 1, 0, 0, 0, 67, 68, 5, 60, 0, 0, 68, 69, 3, 8, 4, 0, 69, 70, 5, 68, 0, 0, 70, 71, 3, 8, 4, 0, 71, 72, 5, 59, 0, 0, 72, 166, 1, 0, 0, 0, 73, 75, 5, 21, 0, 0, 74, 76, 5, 70, 0, 0, 75, 74, 1, 0, 0, 0, 75, 76, 1, 0, 0, 0, 76, 77, 1, 0, 0, 0, 77, 78, 5, 60, 0, 0, 78, 79, 3, 8, 4, 0, 79, 80, 5, 59, 0, 0, 80, 166, 1, 0, 0, 0, 81, 83, 5, 24, 0, 0, 82, 84, 5, 70, 0, 0, 83, 82, 1, 0, 0, 0, 83, 84, 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 86, 5, 60, 0, 0, 86, 87, 3, 8, 4, 0, 87, 88, 5, 59, 0, 0, 88, 166, 1, 0, 0, 0, 89, 91, 5, 25, 0, 0, 90, 92, 5, 70, 0, 0, 91, 90, 1, 0, 0, 0, 91, 92, 1, 0, 0, 0, 92, 93, 1, 0, 0, 0, 93, 94, 5, 60, 0, 0, 94, 95, 3, 8, 4, 0, 95, 96, 5, 59, 0, 0, 96, 166, 1, 0, 0, 0, 97, 99, 5, 29, 0, 0, 98, 100, 5, 70, 0, 0, 99, 98, 1, 0, 0, 0, 99, 100, 1, 0, 0, 0, 100, 101, 1, 0, 0, 0, 101, 102, 5, 60, 0, 0, 102, 107, 3, 14, 7, 0, 103, 104, 5, 68, 0, 0, 104, 106, 3, 14, 7, 0, 105, 103, 1, 0, 0, 0, 106, 109, 1, 0, 0, 0, 107, 105, 1, 0, 0, 0, 107, 108, 1, 0, 0, 0, 108, 110, 1, 0, 0, 0, 109, 107, 1, 0, 0, 0, 110, 111, 5, 59, 0, 0, 111, 166, 1, 0, 0, 0, 112, 114, 5, 30, 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, 118, 5, 77, 0, 0, 118, 124, 3, 14, 7, 0, 119, 120, 5, 68, 0, 0, 120, 121, 5, 77, 0, 0, 121, 123, 3, 14, 7, 0, 122, 119, 1, 0, 0, 0, 123, 126, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 127, 1, 0, 0, 0, 126, 124, 1, 0, 0, 0, 127, 128, 5, 59, 0, 0, 128, 166, 1, 0, 0, 0, 129, 131, 5, 31, 0, 0, 130, 132, 5, 70, 0, 0, 131, 130, 1, 0, 0, 0, 131, 132, 1, 0, 0, 0, 132, 133, 1, 0, 0, 0, 133, 134, 5, 60, 0, 0, 134, 135, 3, 14, 7, 0, 135, 136, 5, 59, 0, 0, 136, 166, 1, 0, 0, 0, 137, 139, 5, 32, 0, 0, 138, 140, 5, 70, 0, 0, 139, 138, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 5, 60, 0, 0, 142, 143, 3, 14, 7, 0, 143, 144, 5, 68, 0, 0, 144, 145, 3, 14, 7, 0, 145, 146, 5, 59, 0, 0, 146, 166, 1, 0, 0, 0, 147, 148, 5, 33, 0, 0, 148, 150, 5, 77, 0, 0, 149, 151, 5, 70, 0, 0, 150, 149, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 163, 1, 0, 0, 0, 152, 153, 5, 60, 0, 0, 153, 158, 3, 14, 7, 0, 154, 155, 5, 68, 0, 0, 155, 157, 3, 14, 7, 0, 156, 154, 1, 0, 0, 0, 157, 160, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 161, 1, 0, 0, 0, 160, 158, 1, 0, 0, 0, 161, 162, 5, 59, 0, 0, 162, 164, 1, 0, 0, 0, 163, 152, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 166, 1, 0, 0, 0, 165, 39, 1, 0, 0, 0, 165, 47, 1, 0, 0, 0, 165, 55, 1, 0, 0, 0, 165, 63, 1, 0, 0, 0, 165, 73, 1, 0, 0, 0, 165, 81, 1, 0, 0, 0, 165, 89, 1, 0, 0, 0, 165, 97, 1, 0, 0, 0, 165, 112, 1, 0, 0, 0, 165, 129, 1, 0, 0, 0, 165, 137, 1, 0, 0, 0, 165, 147, 1, 0, 0, 0, 166, 7, 1, 0, 0, 0, 167, 171, 5, 76, 0, 0, 168, 171, 5, 77, 0, 0, 169, 171, 3, 14, 7, 0, 170, 167, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 170, 169, 1, 0, 0, 0, 171, 9, 1, 0, 0, 0, 172, 174, 5, 47, 0, 0, 173, 175, 5, 70, 0, 0, 174, 173, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, 181, 1, 0, 0, 0, 176, 178, 5, 48, 0, 0, 177, 179, 5, 70, 0, 0, 178, 177, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 181, 1, 0, 0, 0, 180, 172, 1, 0, 0, 0, 180, 176, 1, 0, 0, 0, 181, 11, 1, 0, 0, 0, 182, 184, 3, 4, 2, 0, 183, 185, 5, 70, 0, 0, 184, 183, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 189, 1, 0, 0, 0, 186, 189, 3, 6, 3, 0, 187, 189, 3, 10, 5, 0, 188, 182, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 188, 187, 1, 0, 0, 0, 189, 13, 1, 0, 0, 0, 190, 191, 6, 7, -1, 0, 191, 192, 5, 64, 0, 0, 192, 193, 3, 14, 7, 0, 193, 194, 5, 65, 0, 0, 194, 252, 1, 0, 0, 0, 195, 196, 5, 77, 0, 0, 196, 197, 5, 55, 0, 0, 197, 199, 3, 14, 7, 0, 198, 200, 5, 78, 0, 0, 199, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 199, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 213, 1, 0, 0, 0, 203, 204, 5, 77, 0, 0, 204, 205, 5, 55, 0, 0, 205, 207, 3, 14, 7, 0, 206, 208, 5, 78, 0, 0, 207, 206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 212, 1, 0, 0, 0, 211, 203, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 216, 1, 0, 0, 0, 215, 213, 1, 0, 0, 0, 216, 220, 3, 12, 6, 0, 217, 219, 5, 78, 0, 0, 218, 217, 1, 0, 0, 0, 219, 222, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 220, 221, 1, 0, 0, 0, 221, 252, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 223, 252, 3, 12, 6, 0, 224, 252, 5, 76, 0, 0, 225, 227, 5, 77, 0, 0, 226, 228, 5, 70, 0, 0, 227, 226, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 252, 1, 0, 0, 0, 229, 230, 5, 77, 0, 0, 230, 239, 5, 64, 0, 0, 231, 236, 3, 14, 7, 0, 232, 233, 5, 68, 0, 0, 233, 235, 3, 14, 7, 0, 234, 232, 1, 0, 0, 0, 235, 238, 1, 0, 0, 0, 236, 234, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237, 240, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 239, 231, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 252, 5, 65, 0, 0, 242, 243, 5, 4, 0, 0, 243, 244, 3, 14, 7, 0, 244, 245, 5, 5, 0, 0, 245, 246, 3, 14, 7, 0, 246, 247, 5, 6, 0, 0, 247, 248, 3, 14, 7, 3, 248, 252, 1, 0, 0, 0, 249, 250, 5, 61, 0, 0, 250, 252, 3, 14, 7, 2, 251, 190, 1, 0, 0, 0, 251, 195, 1, 0, 0, 0, 251, 223, 1, 0, 0, 0, 251, 224, 1, 0, 0, 0, 251, 225, 1, 0, 0, 0, 251, 229, 1, 0, 0, 0, 251, 242, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 252, 264, 1, 0, 0, 0, 253, 254, 10, 4, 0, 0, 254, 255, 7, 0, 0, 0, 255, 263, 3, 14, 7, 5, 256, 257, 10, 1, 0, 0, 257, 258, 5, 70, 0, 0, 258, 259, 3, 14, 7, 0, 259, 260, 5, 69, 0, 0, 260, 261, 3, 14, 7, 2, 261, 263, 1, 0, 0, 0, 262, 253, 1, 0, 0, 0, 262, 256, 1, 0, 0, 0, 263, 266, 1, 0, 0, 0, 264, 262, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 15, 1, 0, 0, 0, 266, 264, 1, 0, 0, 0, 34, 37, 41, 49, 57, 65, 75, 83, 91, 99, 107, 114, 124, 131, 139, 150, 158, 163, 165, 170, 174, 178, 180, 184, 188, 201, 209, 213, 220, 227, 236, 239, 251, 262, 264] \ No newline at end of file diff --git a/src/substrait/gen/antlr/SubstraitType.tokens b/src/substrait/gen/antlr/SubstraitType.tokens index 20c69d8..942b3ae 100644 --- a/src/substrait/gen/antlr/SubstraitType.tokens +++ b/src/substrait/gen/antlr/SubstraitType.tokens @@ -1,84 +1,147 @@ -If=1 -Then=2 -Else=3 -Boolean=4 -I8=5 -I16=6 -I32=7 -I64=8 -FP32=9 -FP64=10 -String=11 -Binary=12 -Timestamp=13 -TimestampTZ=14 -Date=15 -Time=16 -IntervalYear=17 -IntervalDay=18 -IntervalCompound=19 -UUID=20 -Decimal=21 -PrecisionTimestamp=22 -PrecisionTimestampTZ=23 -FixedChar=24 -VarChar=25 -FixedBinary=26 -Struct=27 -NStruct=28 -List=29 -Map=30 -ANY=31 -UserDefined=32 -And=33 -Or=34 -Assign=35 -Eq=36 -NotEquals=37 -Gte=38 -Lte=39 -Gt=40 -Lt=41 -Bang=42 -Plus=43 -Minus=44 -Asterisk=45 -ForwardSlash=46 -Percent=47 -OBracket=48 -CBracket=49 -OParen=50 -CParen=51 -SColon=52 -Comma=53 -QMark=54 -Colon=55 -SingleQuote=56 -Number=57 -Identifier=58 -LineComment=59 -BlockComment=60 -Whitespace=61 -Newline=62 -':='=35 -'='=36 -'!='=37 -'>='=38 -'<='=39 -'>'=40 -'<'=41 -'!'=42 -'+'=43 -'-'=44 -'*'=45 -'/'=46 -'%'=47 -'['=48 -']'=49 -'('=50 -')'=51 -';'=52 -','=53 -'?'=54 -':'=55 -'\''=56 +LineComment=1 +BlockComment=2 +Whitespace=3 +If=4 +Then=5 +Else=6 +Boolean=7 +I8=8 +I16=9 +I32=10 +I64=11 +FP32=12 +FP64=13 +String=14 +Binary=15 +Timestamp=16 +Timestamp_TZ=17 +Date=18 +Time=19 +Interval_Year=20 +Interval_Day=21 +UUID=22 +Decimal=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 +Ts=37 +TsTZ=38 +IYear=39 +IDay=40 +Dec=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 +Number=76 +Identifier=77 +Newline=78 +'IF'=4 +'THEN'=5 +'ELSE'=6 +'BOOLEAN'=7 +'I8'=8 +'I16'=9 +'I32'=10 +'I64'=11 +'FP32'=12 +'FP64'=13 +'STRING'=14 +'BINARY'=15 +'TIMESTAMP'=16 +'TIMESTAMP_TZ'=17 +'DATE'=18 +'TIME'=19 +'INTERVAL_YEAR'=20 +'INTERVAL_DAY'=21 +'UUID'=22 +'DECIMAL'=23 +'PRECISION_TIMESTAMP'=24 +'PRECISION_TIMESTAMP_TZ'=25 +'FIXEDCHAR'=26 +'VARCHAR'=27 +'FIXEDBINARY'=28 +'STRUCT'=29 +'NSTRUCT'=30 +'LIST'=31 +'MAP'=32 +'U!'=33 +'BOOL'=34 +'STR'=35 +'VBIN'=36 +'TS'=37 +'TSTZ'=38 +'IYEAR'=39 +'IDAY'=40 +'DEC'=41 +'PTS'=42 +'PTSTZ'=43 +'FCHAR'=44 +'VCHAR'=45 +'FBIN'=46 +'ANY'=47 +'::'=49 +'+'=50 +'-'=51 +'*'=52 +'/'=53 +'%'=54 +'='=55 +'!='=56 +'>='=57 +'<='=58 +'>'=59 +'<'=60 +'!'=61 +'('=64 +')'=65 +'['=66 +']'=67 +','=68 +':'=69 +'?'=70 +'#'=71 +'.'=72 +'AND'=73 +'OR'=74 +':='=75 diff --git a/src/substrait/gen/antlr/SubstraitTypeLexer.interp b/src/substrait/gen/antlr/SubstraitTypeLexer.interp index d6f47ea..aef3695 100644 --- a/src/substrait/gen/antlr/SubstraitTypeLexer.interp +++ b/src/substrait/gen/antlr/SubstraitTypeLexer.interp @@ -3,38 +3,57 @@ null null null null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -':=' +'IF' +'THEN' +'ELSE' +'BOOLEAN' +'I8' +'I16' +'I32' +'I64' +'FP32' +'FP64' +'STRING' +'BINARY' +'TIMESTAMP' +'TIMESTAMP_TZ' +'DATE' +'TIME' +'INTERVAL_YEAR' +'INTERVAL_DAY' +'UUID' +'DECIMAL' +'PRECISION_TIMESTAMP' +'PRECISION_TIMESTAMP_TZ' +'FIXEDCHAR' +'VARCHAR' +'FIXEDBINARY' +'STRUCT' +'NSTRUCT' +'LIST' +'MAP' +'U!' +'BOOL' +'STR' +'VBIN' +'TS' +'TSTZ' +'IYEAR' +'IDAY' +'DEC' +'PTS' +'PTSTZ' +'FCHAR' +'VCHAR' +'FBIN' +'ANY' +null +'::' +'+' +'-' +'*' +'/' +'%' '=' '!=' '>=' @@ -42,29 +61,29 @@ null '>' '<' '!' -'+' -'-' -'*' -'/' -'%' -'[' -']' +null +null '(' ')' -';' +'[' +']' ',' -'?' ':' -'\'' -null -null -null +'?' +'#' +'.' +'AND' +'OR' +':=' null null null token symbolic names: null +LineComment +BlockComment +Whitespace If Then Else @@ -78,16 +97,15 @@ FP64 String Binary Timestamp -TimestampTZ +Timestamp_TZ Date Time -IntervalYear -IntervalDay -IntervalCompound +Interval_Year +Interval_Day UUID Decimal -PrecisionTimestamp -PrecisionTimestampTZ +Precision_Timestamp +Precision_Timestamp_TZ FixedChar VarChar FixedBinary @@ -95,66 +113,58 @@ Struct NStruct List Map -ANY UserDefined -And -Or -Assign +Bool +Str +VBin +Ts +TsTZ +IYear +IDay +Dec +PTs +PTsTZ +FChar +VChar +FBin +Any +AnyVar +DoubleColon +Plus +Minus +Asterisk +ForwardSlash +Percent Eq -NotEquals +Ne Gte Lte Gt Lt Bang -Plus -Minus -Asterisk -ForwardSlash -Percent -OBracket -CBracket +OAngleBracket +CAngleBracket OParen CParen -SColon +OBracket +CBracket Comma -QMark Colon -SingleQuote +QMark +Hash +Dot +And +Or +Assign Number Identifier -LineComment -BlockComment -Whitespace Newline rule names: -A -B -C -D -E -F -G -H -I -J -K -L -M -N -O -P -Q -R -S -T -U -V -W -X -Y -Z +LineComment +BlockComment +Whitespace +DIGIT If Then Else @@ -168,16 +178,15 @@ FP64 String Binary Timestamp -TimestampTZ +Timestamp_TZ Date Time -IntervalYear -IntervalDay -IntervalCompound +Interval_Year +Interval_Day UUID Decimal -PrecisionTimestamp -PrecisionTimestampTZ +Precision_Timestamp +Precision_Timestamp_TZ FixedChar VarChar FixedBinary @@ -185,40 +194,54 @@ Struct NStruct List Map -ANY UserDefined -And -Or -Assign +Bool +Str +VBin +Ts +TsTZ +IYear +IDay +Dec +PTs +PTsTZ +FChar +VChar +FBin +Any +AnyVar +DoubleColon +Plus +Minus +Asterisk +ForwardSlash +Percent Eq -NotEquals +Ne Gte Lte Gt Lt Bang -Plus -Minus -Asterisk -ForwardSlash -Percent -OBracket -CBracket +OAngleBracket +CAngleBracket OParen CParen -SColon +OBracket +CBracket Comma -QMark Colon -SingleQuote +QMark +Hash +Dot +And +Or +Assign +Int +Digit Number Identifier -LineComment -BlockComment -Whitespace Newline -Int -Digit channel names: DEFAULT_TOKEN_CHANNEL @@ -228,4 +251,4 @@ mode names: DEFAULT_MODE atn: -[4, 0, 62, 632, 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, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 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, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 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, 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, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 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, 39, 1, 39, 1, 39, 1, 40, 1, 40, 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, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 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, 44, 1, 44, 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, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 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, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 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, 79, 1, 79, 1, 80, 1, 80, 1, 81, 1, 81, 1, 82, 3, 82, 545, 8, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 5, 83, 552, 8, 83, 10, 83, 12, 83, 555, 9, 83, 1, 84, 1, 84, 1, 84, 1, 84, 5, 84, 561, 8, 84, 10, 84, 12, 84, 564, 9, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 5, 85, 572, 8, 85, 10, 85, 12, 85, 575, 9, 85, 1, 85, 1, 85, 1, 85, 4, 85, 580, 8, 85, 11, 85, 12, 85, 581, 1, 85, 1, 85, 4, 85, 586, 8, 85, 11, 85, 12, 85, 587, 1, 85, 5, 85, 591, 8, 85, 10, 85, 12, 85, 594, 9, 85, 1, 85, 5, 85, 597, 8, 85, 10, 85, 12, 85, 600, 9, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 4, 86, 608, 8, 86, 11, 86, 12, 86, 609, 1, 86, 1, 86, 1, 87, 1, 87, 3, 87, 616, 8, 87, 1, 87, 3, 87, 619, 8, 87, 1, 88, 1, 88, 5, 88, 623, 8, 88, 10, 88, 12, 88, 626, 9, 88, 1, 88, 3, 88, 629, 8, 88, 1, 89, 1, 89, 0, 0, 90, 1, 0, 3, 0, 5, 0, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 0, 53, 1, 55, 2, 57, 3, 59, 4, 61, 5, 63, 6, 65, 7, 67, 8, 69, 9, 71, 10, 73, 11, 75, 12, 77, 13, 79, 14, 81, 15, 83, 16, 85, 17, 87, 18, 89, 19, 91, 20, 93, 21, 95, 22, 97, 23, 99, 24, 101, 25, 103, 26, 105, 27, 107, 28, 109, 29, 111, 30, 113, 31, 115, 32, 117, 33, 119, 34, 121, 35, 123, 36, 125, 37, 127, 38, 129, 39, 131, 40, 133, 41, 135, 42, 137, 43, 139, 44, 141, 45, 143, 46, 145, 47, 147, 48, 149, 49, 151, 50, 153, 51, 155, 52, 157, 53, 159, 54, 161, 55, 163, 56, 165, 57, 167, 58, 169, 59, 171, 60, 173, 61, 175, 62, 177, 0, 179, 0, 1, 0, 30, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 4, 0, 36, 36, 65, 90, 95, 95, 97, 122, 2, 0, 10, 10, 13, 13, 2, 0, 42, 42, 47, 47, 2, 0, 9, 9, 32, 32, 620, 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, 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, 1, 181, 1, 0, 0, 0, 3, 183, 1, 0, 0, 0, 5, 185, 1, 0, 0, 0, 7, 187, 1, 0, 0, 0, 9, 189, 1, 0, 0, 0, 11, 191, 1, 0, 0, 0, 13, 193, 1, 0, 0, 0, 15, 195, 1, 0, 0, 0, 17, 197, 1, 0, 0, 0, 19, 199, 1, 0, 0, 0, 21, 201, 1, 0, 0, 0, 23, 203, 1, 0, 0, 0, 25, 205, 1, 0, 0, 0, 27, 207, 1, 0, 0, 0, 29, 209, 1, 0, 0, 0, 31, 211, 1, 0, 0, 0, 33, 213, 1, 0, 0, 0, 35, 215, 1, 0, 0, 0, 37, 217, 1, 0, 0, 0, 39, 219, 1, 0, 0, 0, 41, 221, 1, 0, 0, 0, 43, 223, 1, 0, 0, 0, 45, 225, 1, 0, 0, 0, 47, 227, 1, 0, 0, 0, 49, 229, 1, 0, 0, 0, 51, 231, 1, 0, 0, 0, 53, 233, 1, 0, 0, 0, 55, 236, 1, 0, 0, 0, 57, 241, 1, 0, 0, 0, 59, 246, 1, 0, 0, 0, 61, 254, 1, 0, 0, 0, 63, 257, 1, 0, 0, 0, 65, 261, 1, 0, 0, 0, 67, 265, 1, 0, 0, 0, 69, 269, 1, 0, 0, 0, 71, 274, 1, 0, 0, 0, 73, 279, 1, 0, 0, 0, 75, 286, 1, 0, 0, 0, 77, 293, 1, 0, 0, 0, 79, 303, 1, 0, 0, 0, 81, 316, 1, 0, 0, 0, 83, 321, 1, 0, 0, 0, 85, 326, 1, 0, 0, 0, 87, 340, 1, 0, 0, 0, 89, 353, 1, 0, 0, 0, 91, 371, 1, 0, 0, 0, 93, 376, 1, 0, 0, 0, 95, 384, 1, 0, 0, 0, 97, 404, 1, 0, 0, 0, 99, 427, 1, 0, 0, 0, 101, 437, 1, 0, 0, 0, 103, 445, 1, 0, 0, 0, 105, 457, 1, 0, 0, 0, 107, 464, 1, 0, 0, 0, 109, 472, 1, 0, 0, 0, 111, 477, 1, 0, 0, 0, 113, 481, 1, 0, 0, 0, 115, 485, 1, 0, 0, 0, 117, 488, 1, 0, 0, 0, 119, 492, 1, 0, 0, 0, 121, 495, 1, 0, 0, 0, 123, 498, 1, 0, 0, 0, 125, 500, 1, 0, 0, 0, 127, 503, 1, 0, 0, 0, 129, 506, 1, 0, 0, 0, 131, 509, 1, 0, 0, 0, 133, 511, 1, 0, 0, 0, 135, 513, 1, 0, 0, 0, 137, 515, 1, 0, 0, 0, 139, 517, 1, 0, 0, 0, 141, 519, 1, 0, 0, 0, 143, 521, 1, 0, 0, 0, 145, 523, 1, 0, 0, 0, 147, 525, 1, 0, 0, 0, 149, 527, 1, 0, 0, 0, 151, 529, 1, 0, 0, 0, 153, 531, 1, 0, 0, 0, 155, 533, 1, 0, 0, 0, 157, 535, 1, 0, 0, 0, 159, 537, 1, 0, 0, 0, 161, 539, 1, 0, 0, 0, 163, 541, 1, 0, 0, 0, 165, 544, 1, 0, 0, 0, 167, 548, 1, 0, 0, 0, 169, 556, 1, 0, 0, 0, 171, 567, 1, 0, 0, 0, 173, 607, 1, 0, 0, 0, 175, 618, 1, 0, 0, 0, 177, 628, 1, 0, 0, 0, 179, 630, 1, 0, 0, 0, 181, 182, 7, 0, 0, 0, 182, 2, 1, 0, 0, 0, 183, 184, 7, 1, 0, 0, 184, 4, 1, 0, 0, 0, 185, 186, 7, 2, 0, 0, 186, 6, 1, 0, 0, 0, 187, 188, 7, 3, 0, 0, 188, 8, 1, 0, 0, 0, 189, 190, 7, 4, 0, 0, 190, 10, 1, 0, 0, 0, 191, 192, 7, 5, 0, 0, 192, 12, 1, 0, 0, 0, 193, 194, 7, 6, 0, 0, 194, 14, 1, 0, 0, 0, 195, 196, 7, 7, 0, 0, 196, 16, 1, 0, 0, 0, 197, 198, 7, 8, 0, 0, 198, 18, 1, 0, 0, 0, 199, 200, 7, 9, 0, 0, 200, 20, 1, 0, 0, 0, 201, 202, 7, 10, 0, 0, 202, 22, 1, 0, 0, 0, 203, 204, 7, 11, 0, 0, 204, 24, 1, 0, 0, 0, 205, 206, 7, 12, 0, 0, 206, 26, 1, 0, 0, 0, 207, 208, 7, 13, 0, 0, 208, 28, 1, 0, 0, 0, 209, 210, 7, 14, 0, 0, 210, 30, 1, 0, 0, 0, 211, 212, 7, 15, 0, 0, 212, 32, 1, 0, 0, 0, 213, 214, 7, 16, 0, 0, 214, 34, 1, 0, 0, 0, 215, 216, 7, 17, 0, 0, 216, 36, 1, 0, 0, 0, 217, 218, 7, 18, 0, 0, 218, 38, 1, 0, 0, 0, 219, 220, 7, 19, 0, 0, 220, 40, 1, 0, 0, 0, 221, 222, 7, 20, 0, 0, 222, 42, 1, 0, 0, 0, 223, 224, 7, 21, 0, 0, 224, 44, 1, 0, 0, 0, 225, 226, 7, 22, 0, 0, 226, 46, 1, 0, 0, 0, 227, 228, 7, 23, 0, 0, 228, 48, 1, 0, 0, 0, 229, 230, 7, 24, 0, 0, 230, 50, 1, 0, 0, 0, 231, 232, 7, 25, 0, 0, 232, 52, 1, 0, 0, 0, 233, 234, 3, 17, 8, 0, 234, 235, 3, 11, 5, 0, 235, 54, 1, 0, 0, 0, 236, 237, 3, 39, 19, 0, 237, 238, 3, 15, 7, 0, 238, 239, 3, 9, 4, 0, 239, 240, 3, 27, 13, 0, 240, 56, 1, 0, 0, 0, 241, 242, 3, 9, 4, 0, 242, 243, 3, 23, 11, 0, 243, 244, 3, 37, 18, 0, 244, 245, 3, 9, 4, 0, 245, 58, 1, 0, 0, 0, 246, 247, 3, 3, 1, 0, 247, 248, 3, 29, 14, 0, 248, 249, 3, 29, 14, 0, 249, 250, 3, 23, 11, 0, 250, 251, 3, 9, 4, 0, 251, 252, 3, 1, 0, 0, 252, 253, 3, 27, 13, 0, 253, 60, 1, 0, 0, 0, 254, 255, 3, 17, 8, 0, 255, 256, 5, 56, 0, 0, 256, 62, 1, 0, 0, 0, 257, 258, 3, 17, 8, 0, 258, 259, 5, 49, 0, 0, 259, 260, 5, 54, 0, 0, 260, 64, 1, 0, 0, 0, 261, 262, 3, 17, 8, 0, 262, 263, 5, 51, 0, 0, 263, 264, 5, 50, 0, 0, 264, 66, 1, 0, 0, 0, 265, 266, 3, 17, 8, 0, 266, 267, 5, 54, 0, 0, 267, 268, 5, 52, 0, 0, 268, 68, 1, 0, 0, 0, 269, 270, 3, 11, 5, 0, 270, 271, 3, 31, 15, 0, 271, 272, 5, 51, 0, 0, 272, 273, 5, 50, 0, 0, 273, 70, 1, 0, 0, 0, 274, 275, 3, 11, 5, 0, 275, 276, 3, 31, 15, 0, 276, 277, 5, 54, 0, 0, 277, 278, 5, 52, 0, 0, 278, 72, 1, 0, 0, 0, 279, 280, 3, 37, 18, 0, 280, 281, 3, 39, 19, 0, 281, 282, 3, 35, 17, 0, 282, 283, 3, 17, 8, 0, 283, 284, 3, 27, 13, 0, 284, 285, 3, 13, 6, 0, 285, 74, 1, 0, 0, 0, 286, 287, 3, 3, 1, 0, 287, 288, 3, 17, 8, 0, 288, 289, 3, 27, 13, 0, 289, 290, 3, 1, 0, 0, 290, 291, 3, 35, 17, 0, 291, 292, 3, 49, 24, 0, 292, 76, 1, 0, 0, 0, 293, 294, 3, 39, 19, 0, 294, 295, 3, 17, 8, 0, 295, 296, 3, 25, 12, 0, 296, 297, 3, 9, 4, 0, 297, 298, 3, 37, 18, 0, 298, 299, 3, 39, 19, 0, 299, 300, 3, 1, 0, 0, 300, 301, 3, 25, 12, 0, 301, 302, 3, 31, 15, 0, 302, 78, 1, 0, 0, 0, 303, 304, 3, 39, 19, 0, 304, 305, 3, 17, 8, 0, 305, 306, 3, 25, 12, 0, 306, 307, 3, 9, 4, 0, 307, 308, 3, 37, 18, 0, 308, 309, 3, 39, 19, 0, 309, 310, 3, 1, 0, 0, 310, 311, 3, 25, 12, 0, 311, 312, 3, 31, 15, 0, 312, 313, 5, 95, 0, 0, 313, 314, 3, 39, 19, 0, 314, 315, 3, 51, 25, 0, 315, 80, 1, 0, 0, 0, 316, 317, 3, 7, 3, 0, 317, 318, 3, 1, 0, 0, 318, 319, 3, 39, 19, 0, 319, 320, 3, 9, 4, 0, 320, 82, 1, 0, 0, 0, 321, 322, 3, 39, 19, 0, 322, 323, 3, 17, 8, 0, 323, 324, 3, 25, 12, 0, 324, 325, 3, 9, 4, 0, 325, 84, 1, 0, 0, 0, 326, 327, 3, 17, 8, 0, 327, 328, 3, 27, 13, 0, 328, 329, 3, 39, 19, 0, 329, 330, 3, 9, 4, 0, 330, 331, 3, 35, 17, 0, 331, 332, 3, 43, 21, 0, 332, 333, 3, 1, 0, 0, 333, 334, 3, 23, 11, 0, 334, 335, 5, 95, 0, 0, 335, 336, 3, 49, 24, 0, 336, 337, 3, 9, 4, 0, 337, 338, 3, 1, 0, 0, 338, 339, 3, 35, 17, 0, 339, 86, 1, 0, 0, 0, 340, 341, 3, 17, 8, 0, 341, 342, 3, 27, 13, 0, 342, 343, 3, 39, 19, 0, 343, 344, 3, 9, 4, 0, 344, 345, 3, 35, 17, 0, 345, 346, 3, 43, 21, 0, 346, 347, 3, 1, 0, 0, 347, 348, 3, 23, 11, 0, 348, 349, 5, 95, 0, 0, 349, 350, 3, 7, 3, 0, 350, 351, 3, 1, 0, 0, 351, 352, 3, 49, 24, 0, 352, 88, 1, 0, 0, 0, 353, 354, 3, 17, 8, 0, 354, 355, 3, 27, 13, 0, 355, 356, 3, 39, 19, 0, 356, 357, 3, 9, 4, 0, 357, 358, 3, 35, 17, 0, 358, 359, 3, 43, 21, 0, 359, 360, 3, 1, 0, 0, 360, 361, 3, 23, 11, 0, 361, 362, 5, 95, 0, 0, 362, 363, 3, 5, 2, 0, 363, 364, 3, 29, 14, 0, 364, 365, 3, 25, 12, 0, 365, 366, 3, 31, 15, 0, 366, 367, 3, 29, 14, 0, 367, 368, 3, 41, 20, 0, 368, 369, 3, 27, 13, 0, 369, 370, 3, 7, 3, 0, 370, 90, 1, 0, 0, 0, 371, 372, 3, 41, 20, 0, 372, 373, 3, 41, 20, 0, 373, 374, 3, 17, 8, 0, 374, 375, 3, 7, 3, 0, 375, 92, 1, 0, 0, 0, 376, 377, 3, 7, 3, 0, 377, 378, 3, 9, 4, 0, 378, 379, 3, 5, 2, 0, 379, 380, 3, 17, 8, 0, 380, 381, 3, 25, 12, 0, 381, 382, 3, 1, 0, 0, 382, 383, 3, 23, 11, 0, 383, 94, 1, 0, 0, 0, 384, 385, 3, 31, 15, 0, 385, 386, 3, 35, 17, 0, 386, 387, 3, 9, 4, 0, 387, 388, 3, 5, 2, 0, 388, 389, 3, 17, 8, 0, 389, 390, 3, 37, 18, 0, 390, 391, 3, 17, 8, 0, 391, 392, 3, 29, 14, 0, 392, 393, 3, 27, 13, 0, 393, 394, 5, 95, 0, 0, 394, 395, 3, 39, 19, 0, 395, 396, 3, 17, 8, 0, 396, 397, 3, 25, 12, 0, 397, 398, 3, 9, 4, 0, 398, 399, 3, 37, 18, 0, 399, 400, 3, 39, 19, 0, 400, 401, 3, 1, 0, 0, 401, 402, 3, 25, 12, 0, 402, 403, 3, 31, 15, 0, 403, 96, 1, 0, 0, 0, 404, 405, 3, 31, 15, 0, 405, 406, 3, 35, 17, 0, 406, 407, 3, 9, 4, 0, 407, 408, 3, 5, 2, 0, 408, 409, 3, 17, 8, 0, 409, 410, 3, 37, 18, 0, 410, 411, 3, 17, 8, 0, 411, 412, 3, 29, 14, 0, 412, 413, 3, 27, 13, 0, 413, 414, 5, 95, 0, 0, 414, 415, 3, 39, 19, 0, 415, 416, 3, 17, 8, 0, 416, 417, 3, 25, 12, 0, 417, 418, 3, 9, 4, 0, 418, 419, 3, 37, 18, 0, 419, 420, 3, 39, 19, 0, 420, 421, 3, 1, 0, 0, 421, 422, 3, 25, 12, 0, 422, 423, 3, 31, 15, 0, 423, 424, 5, 95, 0, 0, 424, 425, 3, 39, 19, 0, 425, 426, 3, 51, 25, 0, 426, 98, 1, 0, 0, 0, 427, 428, 3, 11, 5, 0, 428, 429, 3, 17, 8, 0, 429, 430, 3, 47, 23, 0, 430, 431, 3, 9, 4, 0, 431, 432, 3, 7, 3, 0, 432, 433, 3, 5, 2, 0, 433, 434, 3, 15, 7, 0, 434, 435, 3, 1, 0, 0, 435, 436, 3, 35, 17, 0, 436, 100, 1, 0, 0, 0, 437, 438, 3, 43, 21, 0, 438, 439, 3, 1, 0, 0, 439, 440, 3, 35, 17, 0, 440, 441, 3, 5, 2, 0, 441, 442, 3, 15, 7, 0, 442, 443, 3, 1, 0, 0, 443, 444, 3, 35, 17, 0, 444, 102, 1, 0, 0, 0, 445, 446, 3, 11, 5, 0, 446, 447, 3, 17, 8, 0, 447, 448, 3, 47, 23, 0, 448, 449, 3, 9, 4, 0, 449, 450, 3, 7, 3, 0, 450, 451, 3, 3, 1, 0, 451, 452, 3, 17, 8, 0, 452, 453, 3, 27, 13, 0, 453, 454, 3, 1, 0, 0, 454, 455, 3, 35, 17, 0, 455, 456, 3, 49, 24, 0, 456, 104, 1, 0, 0, 0, 457, 458, 3, 37, 18, 0, 458, 459, 3, 39, 19, 0, 459, 460, 3, 35, 17, 0, 460, 461, 3, 41, 20, 0, 461, 462, 3, 5, 2, 0, 462, 463, 3, 39, 19, 0, 463, 106, 1, 0, 0, 0, 464, 465, 3, 27, 13, 0, 465, 466, 3, 37, 18, 0, 466, 467, 3, 39, 19, 0, 467, 468, 3, 35, 17, 0, 468, 469, 3, 41, 20, 0, 469, 470, 3, 5, 2, 0, 470, 471, 3, 39, 19, 0, 471, 108, 1, 0, 0, 0, 472, 473, 3, 23, 11, 0, 473, 474, 3, 17, 8, 0, 474, 475, 3, 37, 18, 0, 475, 476, 3, 39, 19, 0, 476, 110, 1, 0, 0, 0, 477, 478, 3, 25, 12, 0, 478, 479, 3, 1, 0, 0, 479, 480, 3, 31, 15, 0, 480, 112, 1, 0, 0, 0, 481, 482, 3, 1, 0, 0, 482, 483, 3, 27, 13, 0, 483, 484, 3, 49, 24, 0, 484, 114, 1, 0, 0, 0, 485, 486, 3, 41, 20, 0, 486, 487, 5, 33, 0, 0, 487, 116, 1, 0, 0, 0, 488, 489, 3, 1, 0, 0, 489, 490, 3, 27, 13, 0, 490, 491, 3, 7, 3, 0, 491, 118, 1, 0, 0, 0, 492, 493, 3, 29, 14, 0, 493, 494, 3, 35, 17, 0, 494, 120, 1, 0, 0, 0, 495, 496, 5, 58, 0, 0, 496, 497, 5, 61, 0, 0, 497, 122, 1, 0, 0, 0, 498, 499, 5, 61, 0, 0, 499, 124, 1, 0, 0, 0, 500, 501, 5, 33, 0, 0, 501, 502, 5, 61, 0, 0, 502, 126, 1, 0, 0, 0, 503, 504, 5, 62, 0, 0, 504, 505, 5, 61, 0, 0, 505, 128, 1, 0, 0, 0, 506, 507, 5, 60, 0, 0, 507, 508, 5, 61, 0, 0, 508, 130, 1, 0, 0, 0, 509, 510, 5, 62, 0, 0, 510, 132, 1, 0, 0, 0, 511, 512, 5, 60, 0, 0, 512, 134, 1, 0, 0, 0, 513, 514, 5, 33, 0, 0, 514, 136, 1, 0, 0, 0, 515, 516, 5, 43, 0, 0, 516, 138, 1, 0, 0, 0, 517, 518, 5, 45, 0, 0, 518, 140, 1, 0, 0, 0, 519, 520, 5, 42, 0, 0, 520, 142, 1, 0, 0, 0, 521, 522, 5, 47, 0, 0, 522, 144, 1, 0, 0, 0, 523, 524, 5, 37, 0, 0, 524, 146, 1, 0, 0, 0, 525, 526, 5, 91, 0, 0, 526, 148, 1, 0, 0, 0, 527, 528, 5, 93, 0, 0, 528, 150, 1, 0, 0, 0, 529, 530, 5, 40, 0, 0, 530, 152, 1, 0, 0, 0, 531, 532, 5, 41, 0, 0, 532, 154, 1, 0, 0, 0, 533, 534, 5, 59, 0, 0, 534, 156, 1, 0, 0, 0, 535, 536, 5, 44, 0, 0, 536, 158, 1, 0, 0, 0, 537, 538, 5, 63, 0, 0, 538, 160, 1, 0, 0, 0, 539, 540, 5, 58, 0, 0, 540, 162, 1, 0, 0, 0, 541, 542, 5, 39, 0, 0, 542, 164, 1, 0, 0, 0, 543, 545, 5, 45, 0, 0, 544, 543, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 1, 0, 0, 0, 546, 547, 3, 177, 88, 0, 547, 166, 1, 0, 0, 0, 548, 553, 7, 26, 0, 0, 549, 552, 7, 26, 0, 0, 550, 552, 3, 179, 89, 0, 551, 549, 1, 0, 0, 0, 551, 550, 1, 0, 0, 0, 552, 555, 1, 0, 0, 0, 553, 551, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 168, 1, 0, 0, 0, 555, 553, 1, 0, 0, 0, 556, 557, 5, 47, 0, 0, 557, 558, 5, 47, 0, 0, 558, 562, 1, 0, 0, 0, 559, 561, 8, 27, 0, 0, 560, 559, 1, 0, 0, 0, 561, 564, 1, 0, 0, 0, 562, 560, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 565, 1, 0, 0, 0, 564, 562, 1, 0, 0, 0, 565, 566, 6, 84, 0, 0, 566, 170, 1, 0, 0, 0, 567, 568, 5, 47, 0, 0, 568, 569, 5, 42, 0, 0, 569, 592, 1, 0, 0, 0, 570, 572, 5, 47, 0, 0, 571, 570, 1, 0, 0, 0, 572, 575, 1, 0, 0, 0, 573, 571, 1, 0, 0, 0, 573, 574, 1, 0, 0, 0, 574, 576, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 576, 591, 3, 171, 85, 0, 577, 591, 8, 28, 0, 0, 578, 580, 5, 47, 0, 0, 579, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 582, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 591, 8, 28, 0, 0, 584, 586, 5, 42, 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, 589, 1, 0, 0, 0, 589, 591, 8, 28, 0, 0, 590, 573, 1, 0, 0, 0, 590, 577, 1, 0, 0, 0, 590, 579, 1, 0, 0, 0, 590, 585, 1, 0, 0, 0, 591, 594, 1, 0, 0, 0, 592, 590, 1, 0, 0, 0, 592, 593, 1, 0, 0, 0, 593, 598, 1, 0, 0, 0, 594, 592, 1, 0, 0, 0, 595, 597, 5, 42, 0, 0, 596, 595, 1, 0, 0, 0, 597, 600, 1, 0, 0, 0, 598, 596, 1, 0, 0, 0, 598, 599, 1, 0, 0, 0, 599, 601, 1, 0, 0, 0, 600, 598, 1, 0, 0, 0, 601, 602, 5, 42, 0, 0, 602, 603, 5, 47, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 6, 85, 0, 0, 605, 172, 1, 0, 0, 0, 606, 608, 7, 29, 0, 0, 607, 606, 1, 0, 0, 0, 608, 609, 1, 0, 0, 0, 609, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 612, 6, 86, 0, 0, 612, 174, 1, 0, 0, 0, 613, 615, 5, 13, 0, 0, 614, 616, 5, 10, 0, 0, 615, 614, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 619, 1, 0, 0, 0, 617, 619, 5, 10, 0, 0, 618, 613, 1, 0, 0, 0, 618, 617, 1, 0, 0, 0, 619, 176, 1, 0, 0, 0, 620, 624, 2, 49, 57, 0, 621, 623, 3, 179, 89, 0, 622, 621, 1, 0, 0, 0, 623, 626, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 624, 625, 1, 0, 0, 0, 625, 629, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 627, 629, 5, 48, 0, 0, 628, 620, 1, 0, 0, 0, 628, 627, 1, 0, 0, 0, 629, 178, 1, 0, 0, 0, 630, 631, 2, 48, 57, 0, 631, 180, 1, 0, 0, 0, 16, 0, 544, 551, 553, 562, 573, 581, 587, 590, 592, 598, 609, 615, 618, 624, 628, 1, 0, 1, 0] \ No newline at end of file +[4, 0, 78, 604, 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, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 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, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 168, 8, 0, 10, 0, 12, 0, 171, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 180, 8, 1, 11, 1, 12, 1, 181, 1, 1, 3, 1, 185, 8, 1, 1, 1, 5, 1, 188, 8, 1, 10, 1, 12, 1, 191, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 199, 8, 2, 11, 2, 12, 2, 200, 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, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 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, 12, 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, 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, 17, 1, 17, 1, 17, 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, 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, 21, 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, 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, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 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, 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, 5, 76, 575, 8, 76, 10, 76, 12, 76, 578, 9, 76, 1, 76, 3, 76, 581, 8, 76, 1, 77, 1, 77, 1, 78, 3, 78, 586, 8, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 5, 79, 593, 8, 79, 10, 79, 12, 79, 596, 9, 79, 1, 80, 1, 80, 3, 80, 600, 8, 80, 1, 80, 3, 80, 603, 8, 80, 0, 0, 81, 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, 0, 155, 0, 157, 76, 159, 77, 161, 78, 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, 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, 85, 85, 117, 117, 2, 0, 67, 67, 99, 99, 2, 0, 88, 88, 120, 120, 4, 0, 36, 36, 65, 90, 95, 95, 97, 122, 612, 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, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 1, 163, 1, 0, 0, 0, 3, 174, 1, 0, 0, 0, 5, 198, 1, 0, 0, 0, 7, 204, 1, 0, 0, 0, 9, 206, 1, 0, 0, 0, 11, 209, 1, 0, 0, 0, 13, 214, 1, 0, 0, 0, 15, 219, 1, 0, 0, 0, 17, 227, 1, 0, 0, 0, 19, 230, 1, 0, 0, 0, 21, 234, 1, 0, 0, 0, 23, 238, 1, 0, 0, 0, 25, 242, 1, 0, 0, 0, 27, 247, 1, 0, 0, 0, 29, 252, 1, 0, 0, 0, 31, 259, 1, 0, 0, 0, 33, 266, 1, 0, 0, 0, 35, 276, 1, 0, 0, 0, 37, 289, 1, 0, 0, 0, 39, 294, 1, 0, 0, 0, 41, 299, 1, 0, 0, 0, 43, 313, 1, 0, 0, 0, 45, 326, 1, 0, 0, 0, 47, 331, 1, 0, 0, 0, 49, 339, 1, 0, 0, 0, 51, 359, 1, 0, 0, 0, 53, 382, 1, 0, 0, 0, 55, 392, 1, 0, 0, 0, 57, 400, 1, 0, 0, 0, 59, 412, 1, 0, 0, 0, 61, 419, 1, 0, 0, 0, 63, 427, 1, 0, 0, 0, 65, 432, 1, 0, 0, 0, 67, 436, 1, 0, 0, 0, 69, 439, 1, 0, 0, 0, 71, 444, 1, 0, 0, 0, 73, 448, 1, 0, 0, 0, 75, 453, 1, 0, 0, 0, 77, 456, 1, 0, 0, 0, 79, 461, 1, 0, 0, 0, 81, 467, 1, 0, 0, 0, 83, 472, 1, 0, 0, 0, 85, 476, 1, 0, 0, 0, 87, 480, 1, 0, 0, 0, 89, 486, 1, 0, 0, 0, 91, 492, 1, 0, 0, 0, 93, 498, 1, 0, 0, 0, 95, 503, 1, 0, 0, 0, 97, 507, 1, 0, 0, 0, 99, 510, 1, 0, 0, 0, 101, 513, 1, 0, 0, 0, 103, 515, 1, 0, 0, 0, 105, 517, 1, 0, 0, 0, 107, 519, 1, 0, 0, 0, 109, 521, 1, 0, 0, 0, 111, 523, 1, 0, 0, 0, 113, 525, 1, 0, 0, 0, 115, 528, 1, 0, 0, 0, 117, 531, 1, 0, 0, 0, 119, 534, 1, 0, 0, 0, 121, 536, 1, 0, 0, 0, 123, 538, 1, 0, 0, 0, 125, 540, 1, 0, 0, 0, 127, 542, 1, 0, 0, 0, 129, 544, 1, 0, 0, 0, 131, 546, 1, 0, 0, 0, 133, 548, 1, 0, 0, 0, 135, 550, 1, 0, 0, 0, 137, 552, 1, 0, 0, 0, 139, 554, 1, 0, 0, 0, 141, 556, 1, 0, 0, 0, 143, 558, 1, 0, 0, 0, 145, 560, 1, 0, 0, 0, 147, 562, 1, 0, 0, 0, 149, 566, 1, 0, 0, 0, 151, 569, 1, 0, 0, 0, 153, 580, 1, 0, 0, 0, 155, 582, 1, 0, 0, 0, 157, 585, 1, 0, 0, 0, 159, 589, 1, 0, 0, 0, 161, 602, 1, 0, 0, 0, 163, 164, 5, 47, 0, 0, 164, 165, 5, 47, 0, 0, 165, 169, 1, 0, 0, 0, 166, 168, 8, 0, 0, 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, 172, 1, 0, 0, 0, 171, 169, 1, 0, 0, 0, 172, 173, 6, 0, 0, 0, 173, 2, 1, 0, 0, 0, 174, 175, 5, 47, 0, 0, 175, 176, 5, 42, 0, 0, 176, 184, 1, 0, 0, 0, 177, 185, 8, 1, 0, 0, 178, 180, 5, 42, 0, 0, 179, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 185, 8, 2, 0, 0, 184, 177, 1, 0, 0, 0, 184, 179, 1, 0, 0, 0, 185, 189, 1, 0, 0, 0, 186, 188, 5, 42, 0, 0, 187, 186, 1, 0, 0, 0, 188, 191, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190, 192, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 192, 193, 5, 42, 0, 0, 193, 194, 5, 47, 0, 0, 194, 195, 1, 0, 0, 0, 195, 196, 6, 1, 0, 0, 196, 4, 1, 0, 0, 0, 197, 199, 7, 3, 0, 0, 198, 197, 1, 0, 0, 0, 199, 200, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 203, 6, 2, 0, 0, 203, 6, 1, 0, 0, 0, 204, 205, 7, 4, 0, 0, 205, 8, 1, 0, 0, 0, 206, 207, 7, 5, 0, 0, 207, 208, 7, 6, 0, 0, 208, 10, 1, 0, 0, 0, 209, 210, 7, 7, 0, 0, 210, 211, 7, 8, 0, 0, 211, 212, 7, 9, 0, 0, 212, 213, 7, 10, 0, 0, 213, 12, 1, 0, 0, 0, 214, 215, 7, 9, 0, 0, 215, 216, 7, 11, 0, 0, 216, 217, 7, 12, 0, 0, 217, 218, 7, 9, 0, 0, 218, 14, 1, 0, 0, 0, 219, 220, 7, 13, 0, 0, 220, 221, 7, 14, 0, 0, 221, 222, 7, 14, 0, 0, 222, 223, 7, 11, 0, 0, 223, 224, 7, 9, 0, 0, 224, 225, 7, 15, 0, 0, 225, 226, 7, 10, 0, 0, 226, 16, 1, 0, 0, 0, 227, 228, 7, 5, 0, 0, 228, 229, 5, 56, 0, 0, 229, 18, 1, 0, 0, 0, 230, 231, 7, 5, 0, 0, 231, 232, 5, 49, 0, 0, 232, 233, 5, 54, 0, 0, 233, 20, 1, 0, 0, 0, 234, 235, 7, 5, 0, 0, 235, 236, 5, 51, 0, 0, 236, 237, 5, 50, 0, 0, 237, 22, 1, 0, 0, 0, 238, 239, 7, 5, 0, 0, 239, 240, 5, 54, 0, 0, 240, 241, 5, 52, 0, 0, 241, 24, 1, 0, 0, 0, 242, 243, 7, 6, 0, 0, 243, 244, 7, 16, 0, 0, 244, 245, 5, 51, 0, 0, 245, 246, 5, 50, 0, 0, 246, 26, 1, 0, 0, 0, 247, 248, 7, 6, 0, 0, 248, 249, 7, 16, 0, 0, 249, 250, 5, 54, 0, 0, 250, 251, 5, 52, 0, 0, 251, 28, 1, 0, 0, 0, 252, 253, 7, 12, 0, 0, 253, 254, 7, 7, 0, 0, 254, 255, 7, 17, 0, 0, 255, 256, 7, 5, 0, 0, 256, 257, 7, 10, 0, 0, 257, 258, 7, 18, 0, 0, 258, 30, 1, 0, 0, 0, 259, 260, 7, 13, 0, 0, 260, 261, 7, 5, 0, 0, 261, 262, 7, 10, 0, 0, 262, 263, 7, 15, 0, 0, 263, 264, 7, 17, 0, 0, 264, 265, 7, 19, 0, 0, 265, 32, 1, 0, 0, 0, 266, 267, 7, 7, 0, 0, 267, 268, 7, 5, 0, 0, 268, 269, 7, 20, 0, 0, 269, 270, 7, 9, 0, 0, 270, 271, 7, 12, 0, 0, 271, 272, 7, 7, 0, 0, 272, 273, 7, 15, 0, 0, 273, 274, 7, 20, 0, 0, 274, 275, 7, 16, 0, 0, 275, 34, 1, 0, 0, 0, 276, 277, 7, 7, 0, 0, 277, 278, 7, 5, 0, 0, 278, 279, 7, 20, 0, 0, 279, 280, 7, 9, 0, 0, 280, 281, 7, 12, 0, 0, 281, 282, 7, 7, 0, 0, 282, 283, 7, 15, 0, 0, 283, 284, 7, 20, 0, 0, 284, 285, 7, 16, 0, 0, 285, 286, 5, 95, 0, 0, 286, 287, 7, 7, 0, 0, 287, 288, 7, 21, 0, 0, 288, 36, 1, 0, 0, 0, 289, 290, 7, 22, 0, 0, 290, 291, 7, 15, 0, 0, 291, 292, 7, 7, 0, 0, 292, 293, 7, 9, 0, 0, 293, 38, 1, 0, 0, 0, 294, 295, 7, 7, 0, 0, 295, 296, 7, 5, 0, 0, 296, 297, 7, 20, 0, 0, 297, 298, 7, 9, 0, 0, 298, 40, 1, 0, 0, 0, 299, 300, 7, 5, 0, 0, 300, 301, 7, 10, 0, 0, 301, 302, 7, 7, 0, 0, 302, 303, 7, 9, 0, 0, 303, 304, 7, 17, 0, 0, 304, 305, 7, 23, 0, 0, 305, 306, 7, 15, 0, 0, 306, 307, 7, 11, 0, 0, 307, 308, 5, 95, 0, 0, 308, 309, 7, 19, 0, 0, 309, 310, 7, 9, 0, 0, 310, 311, 7, 15, 0, 0, 311, 312, 7, 17, 0, 0, 312, 42, 1, 0, 0, 0, 313, 314, 7, 5, 0, 0, 314, 315, 7, 10, 0, 0, 315, 316, 7, 7, 0, 0, 316, 317, 7, 9, 0, 0, 317, 318, 7, 17, 0, 0, 318, 319, 7, 23, 0, 0, 319, 320, 7, 15, 0, 0, 320, 321, 7, 11, 0, 0, 321, 322, 5, 95, 0, 0, 322, 323, 7, 22, 0, 0, 323, 324, 7, 15, 0, 0, 324, 325, 7, 19, 0, 0, 325, 44, 1, 0, 0, 0, 326, 327, 7, 24, 0, 0, 327, 328, 7, 24, 0, 0, 328, 329, 7, 5, 0, 0, 329, 330, 7, 22, 0, 0, 330, 46, 1, 0, 0, 0, 331, 332, 7, 22, 0, 0, 332, 333, 7, 9, 0, 0, 333, 334, 7, 25, 0, 0, 334, 335, 7, 5, 0, 0, 335, 336, 7, 20, 0, 0, 336, 337, 7, 15, 0, 0, 337, 338, 7, 11, 0, 0, 338, 48, 1, 0, 0, 0, 339, 340, 7, 16, 0, 0, 340, 341, 7, 17, 0, 0, 341, 342, 7, 9, 0, 0, 342, 343, 7, 25, 0, 0, 343, 344, 7, 5, 0, 0, 344, 345, 7, 12, 0, 0, 345, 346, 7, 5, 0, 0, 346, 347, 7, 14, 0, 0, 347, 348, 7, 10, 0, 0, 348, 349, 5, 95, 0, 0, 349, 350, 7, 7, 0, 0, 350, 351, 7, 5, 0, 0, 351, 352, 7, 20, 0, 0, 352, 353, 7, 9, 0, 0, 353, 354, 7, 12, 0, 0, 354, 355, 7, 7, 0, 0, 355, 356, 7, 15, 0, 0, 356, 357, 7, 20, 0, 0, 357, 358, 7, 16, 0, 0, 358, 50, 1, 0, 0, 0, 359, 360, 7, 16, 0, 0, 360, 361, 7, 17, 0, 0, 361, 362, 7, 9, 0, 0, 362, 363, 7, 25, 0, 0, 363, 364, 7, 5, 0, 0, 364, 365, 7, 12, 0, 0, 365, 366, 7, 5, 0, 0, 366, 367, 7, 14, 0, 0, 367, 368, 7, 10, 0, 0, 368, 369, 5, 95, 0, 0, 369, 370, 7, 7, 0, 0, 370, 371, 7, 5, 0, 0, 371, 372, 7, 20, 0, 0, 372, 373, 7, 9, 0, 0, 373, 374, 7, 12, 0, 0, 374, 375, 7, 7, 0, 0, 375, 376, 7, 15, 0, 0, 376, 377, 7, 20, 0, 0, 377, 378, 7, 16, 0, 0, 378, 379, 5, 95, 0, 0, 379, 380, 7, 7, 0, 0, 380, 381, 7, 21, 0, 0, 381, 52, 1, 0, 0, 0, 382, 383, 7, 6, 0, 0, 383, 384, 7, 5, 0, 0, 384, 385, 7, 26, 0, 0, 385, 386, 7, 9, 0, 0, 386, 387, 7, 22, 0, 0, 387, 388, 7, 25, 0, 0, 388, 389, 7, 8, 0, 0, 389, 390, 7, 15, 0, 0, 390, 391, 7, 17, 0, 0, 391, 54, 1, 0, 0, 0, 392, 393, 7, 23, 0, 0, 393, 394, 7, 15, 0, 0, 394, 395, 7, 17, 0, 0, 395, 396, 7, 25, 0, 0, 396, 397, 7, 8, 0, 0, 397, 398, 7, 15, 0, 0, 398, 399, 7, 17, 0, 0, 399, 56, 1, 0, 0, 0, 400, 401, 7, 6, 0, 0, 401, 402, 7, 5, 0, 0, 402, 403, 7, 26, 0, 0, 403, 404, 7, 9, 0, 0, 404, 405, 7, 22, 0, 0, 405, 406, 7, 13, 0, 0, 406, 407, 7, 5, 0, 0, 407, 408, 7, 10, 0, 0, 408, 409, 7, 15, 0, 0, 409, 410, 7, 17, 0, 0, 410, 411, 7, 19, 0, 0, 411, 58, 1, 0, 0, 0, 412, 413, 7, 12, 0, 0, 413, 414, 7, 7, 0, 0, 414, 415, 7, 17, 0, 0, 415, 416, 7, 24, 0, 0, 416, 417, 7, 25, 0, 0, 417, 418, 7, 7, 0, 0, 418, 60, 1, 0, 0, 0, 419, 420, 7, 10, 0, 0, 420, 421, 7, 12, 0, 0, 421, 422, 7, 7, 0, 0, 422, 423, 7, 17, 0, 0, 423, 424, 7, 24, 0, 0, 424, 425, 7, 25, 0, 0, 425, 426, 7, 7, 0, 0, 426, 62, 1, 0, 0, 0, 427, 428, 7, 11, 0, 0, 428, 429, 7, 5, 0, 0, 429, 430, 7, 12, 0, 0, 430, 431, 7, 7, 0, 0, 431, 64, 1, 0, 0, 0, 432, 433, 7, 20, 0, 0, 433, 434, 7, 15, 0, 0, 434, 435, 7, 16, 0, 0, 435, 66, 1, 0, 0, 0, 436, 437, 7, 24, 0, 0, 437, 438, 5, 33, 0, 0, 438, 68, 1, 0, 0, 0, 439, 440, 7, 13, 0, 0, 440, 441, 7, 14, 0, 0, 441, 442, 7, 14, 0, 0, 442, 443, 7, 11, 0, 0, 443, 70, 1, 0, 0, 0, 444, 445, 7, 12, 0, 0, 445, 446, 7, 7, 0, 0, 446, 447, 7, 17, 0, 0, 447, 72, 1, 0, 0, 0, 448, 449, 7, 23, 0, 0, 449, 450, 7, 13, 0, 0, 450, 451, 7, 5, 0, 0, 451, 452, 7, 10, 0, 0, 452, 74, 1, 0, 0, 0, 453, 454, 7, 7, 0, 0, 454, 455, 7, 12, 0, 0, 455, 76, 1, 0, 0, 0, 456, 457, 7, 7, 0, 0, 457, 458, 7, 12, 0, 0, 458, 459, 7, 7, 0, 0, 459, 460, 7, 21, 0, 0, 460, 78, 1, 0, 0, 0, 461, 462, 7, 5, 0, 0, 462, 463, 7, 19, 0, 0, 463, 464, 7, 9, 0, 0, 464, 465, 7, 15, 0, 0, 465, 466, 7, 17, 0, 0, 466, 80, 1, 0, 0, 0, 467, 468, 7, 5, 0, 0, 468, 469, 7, 22, 0, 0, 469, 470, 7, 15, 0, 0, 470, 471, 7, 19, 0, 0, 471, 82, 1, 0, 0, 0, 472, 473, 7, 22, 0, 0, 473, 474, 7, 9, 0, 0, 474, 475, 7, 25, 0, 0, 475, 84, 1, 0, 0, 0, 476, 477, 7, 16, 0, 0, 477, 478, 7, 7, 0, 0, 478, 479, 7, 12, 0, 0, 479, 86, 1, 0, 0, 0, 480, 481, 7, 16, 0, 0, 481, 482, 7, 7, 0, 0, 482, 483, 7, 12, 0, 0, 483, 484, 7, 7, 0, 0, 484, 485, 7, 21, 0, 0, 485, 88, 1, 0, 0, 0, 486, 487, 7, 6, 0, 0, 487, 488, 7, 25, 0, 0, 488, 489, 7, 8, 0, 0, 489, 490, 7, 15, 0, 0, 490, 491, 7, 17, 0, 0, 491, 90, 1, 0, 0, 0, 492, 493, 7, 23, 0, 0, 493, 494, 7, 25, 0, 0, 494, 495, 7, 8, 0, 0, 495, 496, 7, 15, 0, 0, 496, 497, 7, 17, 0, 0, 497, 92, 1, 0, 0, 0, 498, 499, 7, 6, 0, 0, 499, 500, 7, 13, 0, 0, 500, 501, 7, 5, 0, 0, 501, 502, 7, 10, 0, 0, 502, 94, 1, 0, 0, 0, 503, 504, 7, 15, 0, 0, 504, 505, 7, 10, 0, 0, 505, 506, 7, 19, 0, 0, 506, 96, 1, 0, 0, 0, 507, 508, 3, 95, 47, 0, 508, 509, 7, 4, 0, 0, 509, 98, 1, 0, 0, 0, 510, 511, 5, 58, 0, 0, 511, 512, 5, 58, 0, 0, 512, 100, 1, 0, 0, 0, 513, 514, 5, 43, 0, 0, 514, 102, 1, 0, 0, 0, 515, 516, 5, 45, 0, 0, 516, 104, 1, 0, 0, 0, 517, 518, 5, 42, 0, 0, 518, 106, 1, 0, 0, 0, 519, 520, 5, 47, 0, 0, 520, 108, 1, 0, 0, 0, 521, 522, 5, 37, 0, 0, 522, 110, 1, 0, 0, 0, 523, 524, 5, 61, 0, 0, 524, 112, 1, 0, 0, 0, 525, 526, 5, 33, 0, 0, 526, 527, 5, 61, 0, 0, 527, 114, 1, 0, 0, 0, 528, 529, 5, 62, 0, 0, 529, 530, 5, 61, 0, 0, 530, 116, 1, 0, 0, 0, 531, 532, 5, 60, 0, 0, 532, 533, 5, 61, 0, 0, 533, 118, 1, 0, 0, 0, 534, 535, 5, 62, 0, 0, 535, 120, 1, 0, 0, 0, 536, 537, 5, 60, 0, 0, 537, 122, 1, 0, 0, 0, 538, 539, 5, 33, 0, 0, 539, 124, 1, 0, 0, 0, 540, 541, 3, 121, 60, 0, 541, 126, 1, 0, 0, 0, 542, 543, 3, 119, 59, 0, 543, 128, 1, 0, 0, 0, 544, 545, 5, 40, 0, 0, 545, 130, 1, 0, 0, 0, 546, 547, 5, 41, 0, 0, 547, 132, 1, 0, 0, 0, 548, 549, 5, 91, 0, 0, 549, 134, 1, 0, 0, 0, 550, 551, 5, 93, 0, 0, 551, 136, 1, 0, 0, 0, 552, 553, 5, 44, 0, 0, 553, 138, 1, 0, 0, 0, 554, 555, 5, 58, 0, 0, 555, 140, 1, 0, 0, 0, 556, 557, 5, 63, 0, 0, 557, 142, 1, 0, 0, 0, 558, 559, 5, 35, 0, 0, 559, 144, 1, 0, 0, 0, 560, 561, 5, 46, 0, 0, 561, 146, 1, 0, 0, 0, 562, 563, 7, 15, 0, 0, 563, 564, 7, 10, 0, 0, 564, 565, 7, 22, 0, 0, 565, 148, 1, 0, 0, 0, 566, 567, 7, 14, 0, 0, 567, 568, 7, 17, 0, 0, 568, 150, 1, 0, 0, 0, 569, 570, 5, 58, 0, 0, 570, 571, 5, 61, 0, 0, 571, 152, 1, 0, 0, 0, 572, 576, 2, 49, 57, 0, 573, 575, 3, 155, 77, 0, 574, 573, 1, 0, 0, 0, 575, 578, 1, 0, 0, 0, 576, 574, 1, 0, 0, 0, 576, 577, 1, 0, 0, 0, 577, 581, 1, 0, 0, 0, 578, 576, 1, 0, 0, 0, 579, 581, 5, 48, 0, 0, 580, 572, 1, 0, 0, 0, 580, 579, 1, 0, 0, 0, 581, 154, 1, 0, 0, 0, 582, 583, 2, 48, 57, 0, 583, 156, 1, 0, 0, 0, 584, 586, 5, 45, 0, 0, 585, 584, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 588, 3, 153, 76, 0, 588, 158, 1, 0, 0, 0, 589, 594, 7, 27, 0, 0, 590, 593, 7, 27, 0, 0, 591, 593, 3, 155, 77, 0, 592, 590, 1, 0, 0, 0, 592, 591, 1, 0, 0, 0, 593, 596, 1, 0, 0, 0, 594, 592, 1, 0, 0, 0, 594, 595, 1, 0, 0, 0, 595, 160, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 597, 599, 5, 13, 0, 0, 598, 600, 5, 10, 0, 0, 599, 598, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 603, 1, 0, 0, 0, 601, 603, 5, 10, 0, 0, 602, 597, 1, 0, 0, 0, 602, 601, 1, 0, 0, 0, 603, 162, 1, 0, 0, 0, 13, 0, 169, 181, 184, 189, 200, 576, 580, 585, 592, 594, 599, 602, 1, 0, 1, 0] \ No newline at end of file diff --git a/src/substrait/gen/antlr/SubstraitTypeLexer.py b/src/substrait/gen/antlr/SubstraitTypeLexer.py index 3fb17be..dd8cc53 100644 --- a/src/substrait/gen/antlr/SubstraitTypeLexer.py +++ b/src/substrait/gen/antlr/SubstraitTypeLexer.py @@ -10,7 +10,7 @@ def serializedATN(): return [ - 4,0,62,632,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,78,604,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, @@ -22,217 +22,207 @@ 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,2,87,7,87,2,88,7,88,2,89,7,89,1,0,1,0,1,1, - 1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9, - 1,9,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,14,1,14,1,15,1,15, - 1,16,1,16,1,17,1,17,1,18,1,18,1,19,1,19,1,20,1,20,1,21,1,21,1,22, - 1,22,1,23,1,23,1,24,1,24,1,25,1,25,1,26,1,26,1,26,1,27,1,27,1,27, - 1,27,1,27,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,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,34,1,35,1,35,1,35,1,35, - 1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37, - 1,37,1,37,1,38,1,38,1,38,1,38,1,38,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,39,1,39,1,39,1,40, - 1,40,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,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43, - 1,43,1,43,1,43,1,43,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,44,1,44,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,45,1,46,1,46,1,46,1,46,1,46,1,46, - 1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47, - 1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48, - 1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48, - 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,49, - 1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51, - 1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52, - 1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54, - 1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,57, - 1,57,1,57,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,60,1,60,1,60,1,61, - 1,61,1,62,1,62,1,62,1,63,1,63,1,63,1,64,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,79, - 1,79,1,80,1,80,1,81,1,81,1,82,3,82,545,8,82,1,82,1,82,1,83,1,83, - 1,83,5,83,552,8,83,10,83,12,83,555,9,83,1,84,1,84,1,84,1,84,5,84, - 561,8,84,10,84,12,84,564,9,84,1,84,1,84,1,85,1,85,1,85,1,85,5,85, - 572,8,85,10,85,12,85,575,9,85,1,85,1,85,1,85,4,85,580,8,85,11,85, - 12,85,581,1,85,1,85,4,85,586,8,85,11,85,12,85,587,1,85,5,85,591, - 8,85,10,85,12,85,594,9,85,1,85,5,85,597,8,85,10,85,12,85,600,9,85, - 1,85,1,85,1,85,1,85,1,85,1,86,4,86,608,8,86,11,86,12,86,609,1,86, - 1,86,1,87,1,87,3,87,616,8,87,1,87,3,87,619,8,87,1,88,1,88,5,88,623, - 8,88,10,88,12,88,626,9,88,1,88,3,88,629,8,88,1,89,1,89,0,0,90,1, - 0,3,0,5,0,7,0,9,0,11,0,13,0,15,0,17,0,19,0,21,0,23,0,25,0,27,0,29, - 0,31,0,33,0,35,0,37,0,39,0,41,0,43,0,45,0,47,0,49,0,51,0,53,1,55, - 2,57,3,59,4,61,5,63,6,65,7,67,8,69,9,71,10,73,11,75,12,77,13,79, - 14,81,15,83,16,85,17,87,18,89,19,91,20,93,21,95,22,97,23,99,24,101, - 25,103,26,105,27,107,28,109,29,111,30,113,31,115,32,117,33,119,34, - 121,35,123,36,125,37,127,38,129,39,131,40,133,41,135,42,137,43,139, - 44,141,45,143,46,145,47,147,48,149,49,151,50,153,51,155,52,157,53, - 159,54,161,55,163,56,165,57,167,58,169,59,171,60,173,61,175,62,177, - 0,179,0,1,0,30,2,0,65,65,97,97,2,0,66,66,98,98,2,0,67,67,99,99,2, - 0,68,68,100,100,2,0,69,69,101,101,2,0,70,70,102,102,2,0,71,71,103, - 103,2,0,72,72,104,104,2,0,73,73,105,105,2,0,74,74,106,106,2,0,75, - 75,107,107,2,0,76,76,108,108,2,0,77,77,109,109,2,0,78,78,110,110, - 2,0,79,79,111,111,2,0,80,80,112,112,2,0,81,81,113,113,2,0,82,82, - 114,114,2,0,83,83,115,115,2,0,84,84,116,116,2,0,85,85,117,117,2, - 0,86,86,118,118,2,0,87,87,119,119,2,0,88,88,120,120,2,0,89,89,121, - 121,2,0,90,90,122,122,4,0,36,36,65,90,95,95,97,122,2,0,10,10,13, - 13,2,0,42,42,47,47,2,0,9,9,32,32,620,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,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,1,181,1,0,0,0,3,183,1, - 0,0,0,5,185,1,0,0,0,7,187,1,0,0,0,9,189,1,0,0,0,11,191,1,0,0,0,13, - 193,1,0,0,0,15,195,1,0,0,0,17,197,1,0,0,0,19,199,1,0,0,0,21,201, - 1,0,0,0,23,203,1,0,0,0,25,205,1,0,0,0,27,207,1,0,0,0,29,209,1,0, - 0,0,31,211,1,0,0,0,33,213,1,0,0,0,35,215,1,0,0,0,37,217,1,0,0,0, - 39,219,1,0,0,0,41,221,1,0,0,0,43,223,1,0,0,0,45,225,1,0,0,0,47,227, - 1,0,0,0,49,229,1,0,0,0,51,231,1,0,0,0,53,233,1,0,0,0,55,236,1,0, - 0,0,57,241,1,0,0,0,59,246,1,0,0,0,61,254,1,0,0,0,63,257,1,0,0,0, - 65,261,1,0,0,0,67,265,1,0,0,0,69,269,1,0,0,0,71,274,1,0,0,0,73,279, - 1,0,0,0,75,286,1,0,0,0,77,293,1,0,0,0,79,303,1,0,0,0,81,316,1,0, - 0,0,83,321,1,0,0,0,85,326,1,0,0,0,87,340,1,0,0,0,89,353,1,0,0,0, - 91,371,1,0,0,0,93,376,1,0,0,0,95,384,1,0,0,0,97,404,1,0,0,0,99,427, - 1,0,0,0,101,437,1,0,0,0,103,445,1,0,0,0,105,457,1,0,0,0,107,464, - 1,0,0,0,109,472,1,0,0,0,111,477,1,0,0,0,113,481,1,0,0,0,115,485, - 1,0,0,0,117,488,1,0,0,0,119,492,1,0,0,0,121,495,1,0,0,0,123,498, - 1,0,0,0,125,500,1,0,0,0,127,503,1,0,0,0,129,506,1,0,0,0,131,509, - 1,0,0,0,133,511,1,0,0,0,135,513,1,0,0,0,137,515,1,0,0,0,139,517, - 1,0,0,0,141,519,1,0,0,0,143,521,1,0,0,0,145,523,1,0,0,0,147,525, - 1,0,0,0,149,527,1,0,0,0,151,529,1,0,0,0,153,531,1,0,0,0,155,533, - 1,0,0,0,157,535,1,0,0,0,159,537,1,0,0,0,161,539,1,0,0,0,163,541, - 1,0,0,0,165,544,1,0,0,0,167,548,1,0,0,0,169,556,1,0,0,0,171,567, - 1,0,0,0,173,607,1,0,0,0,175,618,1,0,0,0,177,628,1,0,0,0,179,630, - 1,0,0,0,181,182,7,0,0,0,182,2,1,0,0,0,183,184,7,1,0,0,184,4,1,0, - 0,0,185,186,7,2,0,0,186,6,1,0,0,0,187,188,7,3,0,0,188,8,1,0,0,0, - 189,190,7,4,0,0,190,10,1,0,0,0,191,192,7,5,0,0,192,12,1,0,0,0,193, - 194,7,6,0,0,194,14,1,0,0,0,195,196,7,7,0,0,196,16,1,0,0,0,197,198, - 7,8,0,0,198,18,1,0,0,0,199,200,7,9,0,0,200,20,1,0,0,0,201,202,7, - 10,0,0,202,22,1,0,0,0,203,204,7,11,0,0,204,24,1,0,0,0,205,206,7, - 12,0,0,206,26,1,0,0,0,207,208,7,13,0,0,208,28,1,0,0,0,209,210,7, - 14,0,0,210,30,1,0,0,0,211,212,7,15,0,0,212,32,1,0,0,0,213,214,7, - 16,0,0,214,34,1,0,0,0,215,216,7,17,0,0,216,36,1,0,0,0,217,218,7, - 18,0,0,218,38,1,0,0,0,219,220,7,19,0,0,220,40,1,0,0,0,221,222,7, - 20,0,0,222,42,1,0,0,0,223,224,7,21,0,0,224,44,1,0,0,0,225,226,7, - 22,0,0,226,46,1,0,0,0,227,228,7,23,0,0,228,48,1,0,0,0,229,230,7, - 24,0,0,230,50,1,0,0,0,231,232,7,25,0,0,232,52,1,0,0,0,233,234,3, - 17,8,0,234,235,3,11,5,0,235,54,1,0,0,0,236,237,3,39,19,0,237,238, - 3,15,7,0,238,239,3,9,4,0,239,240,3,27,13,0,240,56,1,0,0,0,241,242, - 3,9,4,0,242,243,3,23,11,0,243,244,3,37,18,0,244,245,3,9,4,0,245, - 58,1,0,0,0,246,247,3,3,1,0,247,248,3,29,14,0,248,249,3,29,14,0,249, - 250,3,23,11,0,250,251,3,9,4,0,251,252,3,1,0,0,252,253,3,27,13,0, - 253,60,1,0,0,0,254,255,3,17,8,0,255,256,5,56,0,0,256,62,1,0,0,0, - 257,258,3,17,8,0,258,259,5,49,0,0,259,260,5,54,0,0,260,64,1,0,0, - 0,261,262,3,17,8,0,262,263,5,51,0,0,263,264,5,50,0,0,264,66,1,0, - 0,0,265,266,3,17,8,0,266,267,5,54,0,0,267,268,5,52,0,0,268,68,1, - 0,0,0,269,270,3,11,5,0,270,271,3,31,15,0,271,272,5,51,0,0,272,273, - 5,50,0,0,273,70,1,0,0,0,274,275,3,11,5,0,275,276,3,31,15,0,276,277, - 5,54,0,0,277,278,5,52,0,0,278,72,1,0,0,0,279,280,3,37,18,0,280,281, - 3,39,19,0,281,282,3,35,17,0,282,283,3,17,8,0,283,284,3,27,13,0,284, - 285,3,13,6,0,285,74,1,0,0,0,286,287,3,3,1,0,287,288,3,17,8,0,288, - 289,3,27,13,0,289,290,3,1,0,0,290,291,3,35,17,0,291,292,3,49,24, - 0,292,76,1,0,0,0,293,294,3,39,19,0,294,295,3,17,8,0,295,296,3,25, - 12,0,296,297,3,9,4,0,297,298,3,37,18,0,298,299,3,39,19,0,299,300, - 3,1,0,0,300,301,3,25,12,0,301,302,3,31,15,0,302,78,1,0,0,0,303,304, - 3,39,19,0,304,305,3,17,8,0,305,306,3,25,12,0,306,307,3,9,4,0,307, - 308,3,37,18,0,308,309,3,39,19,0,309,310,3,1,0,0,310,311,3,25,12, - 0,311,312,3,31,15,0,312,313,5,95,0,0,313,314,3,39,19,0,314,315,3, - 51,25,0,315,80,1,0,0,0,316,317,3,7,3,0,317,318,3,1,0,0,318,319,3, - 39,19,0,319,320,3,9,4,0,320,82,1,0,0,0,321,322,3,39,19,0,322,323, - 3,17,8,0,323,324,3,25,12,0,324,325,3,9,4,0,325,84,1,0,0,0,326,327, - 3,17,8,0,327,328,3,27,13,0,328,329,3,39,19,0,329,330,3,9,4,0,330, - 331,3,35,17,0,331,332,3,43,21,0,332,333,3,1,0,0,333,334,3,23,11, - 0,334,335,5,95,0,0,335,336,3,49,24,0,336,337,3,9,4,0,337,338,3,1, - 0,0,338,339,3,35,17,0,339,86,1,0,0,0,340,341,3,17,8,0,341,342,3, - 27,13,0,342,343,3,39,19,0,343,344,3,9,4,0,344,345,3,35,17,0,345, - 346,3,43,21,0,346,347,3,1,0,0,347,348,3,23,11,0,348,349,5,95,0,0, - 349,350,3,7,3,0,350,351,3,1,0,0,351,352,3,49,24,0,352,88,1,0,0,0, - 353,354,3,17,8,0,354,355,3,27,13,0,355,356,3,39,19,0,356,357,3,9, - 4,0,357,358,3,35,17,0,358,359,3,43,21,0,359,360,3,1,0,0,360,361, - 3,23,11,0,361,362,5,95,0,0,362,363,3,5,2,0,363,364,3,29,14,0,364, - 365,3,25,12,0,365,366,3,31,15,0,366,367,3,29,14,0,367,368,3,41,20, - 0,368,369,3,27,13,0,369,370,3,7,3,0,370,90,1,0,0,0,371,372,3,41, - 20,0,372,373,3,41,20,0,373,374,3,17,8,0,374,375,3,7,3,0,375,92,1, - 0,0,0,376,377,3,7,3,0,377,378,3,9,4,0,378,379,3,5,2,0,379,380,3, - 17,8,0,380,381,3,25,12,0,381,382,3,1,0,0,382,383,3,23,11,0,383,94, - 1,0,0,0,384,385,3,31,15,0,385,386,3,35,17,0,386,387,3,9,4,0,387, - 388,3,5,2,0,388,389,3,17,8,0,389,390,3,37,18,0,390,391,3,17,8,0, - 391,392,3,29,14,0,392,393,3,27,13,0,393,394,5,95,0,0,394,395,3,39, - 19,0,395,396,3,17,8,0,396,397,3,25,12,0,397,398,3,9,4,0,398,399, - 3,37,18,0,399,400,3,39,19,0,400,401,3,1,0,0,401,402,3,25,12,0,402, - 403,3,31,15,0,403,96,1,0,0,0,404,405,3,31,15,0,405,406,3,35,17,0, - 406,407,3,9,4,0,407,408,3,5,2,0,408,409,3,17,8,0,409,410,3,37,18, - 0,410,411,3,17,8,0,411,412,3,29,14,0,412,413,3,27,13,0,413,414,5, - 95,0,0,414,415,3,39,19,0,415,416,3,17,8,0,416,417,3,25,12,0,417, - 418,3,9,4,0,418,419,3,37,18,0,419,420,3,39,19,0,420,421,3,1,0,0, - 421,422,3,25,12,0,422,423,3,31,15,0,423,424,5,95,0,0,424,425,3,39, - 19,0,425,426,3,51,25,0,426,98,1,0,0,0,427,428,3,11,5,0,428,429,3, - 17,8,0,429,430,3,47,23,0,430,431,3,9,4,0,431,432,3,7,3,0,432,433, - 3,5,2,0,433,434,3,15,7,0,434,435,3,1,0,0,435,436,3,35,17,0,436,100, - 1,0,0,0,437,438,3,43,21,0,438,439,3,1,0,0,439,440,3,35,17,0,440, - 441,3,5,2,0,441,442,3,15,7,0,442,443,3,1,0,0,443,444,3,35,17,0,444, - 102,1,0,0,0,445,446,3,11,5,0,446,447,3,17,8,0,447,448,3,47,23,0, - 448,449,3,9,4,0,449,450,3,7,3,0,450,451,3,3,1,0,451,452,3,17,8,0, - 452,453,3,27,13,0,453,454,3,1,0,0,454,455,3,35,17,0,455,456,3,49, - 24,0,456,104,1,0,0,0,457,458,3,37,18,0,458,459,3,39,19,0,459,460, - 3,35,17,0,460,461,3,41,20,0,461,462,3,5,2,0,462,463,3,39,19,0,463, - 106,1,0,0,0,464,465,3,27,13,0,465,466,3,37,18,0,466,467,3,39,19, - 0,467,468,3,35,17,0,468,469,3,41,20,0,469,470,3,5,2,0,470,471,3, - 39,19,0,471,108,1,0,0,0,472,473,3,23,11,0,473,474,3,17,8,0,474,475, - 3,37,18,0,475,476,3,39,19,0,476,110,1,0,0,0,477,478,3,25,12,0,478, - 479,3,1,0,0,479,480,3,31,15,0,480,112,1,0,0,0,481,482,3,1,0,0,482, - 483,3,27,13,0,483,484,3,49,24,0,484,114,1,0,0,0,485,486,3,41,20, - 0,486,487,5,33,0,0,487,116,1,0,0,0,488,489,3,1,0,0,489,490,3,27, - 13,0,490,491,3,7,3,0,491,118,1,0,0,0,492,493,3,29,14,0,493,494,3, - 35,17,0,494,120,1,0,0,0,495,496,5,58,0,0,496,497,5,61,0,0,497,122, - 1,0,0,0,498,499,5,61,0,0,499,124,1,0,0,0,500,501,5,33,0,0,501,502, - 5,61,0,0,502,126,1,0,0,0,503,504,5,62,0,0,504,505,5,61,0,0,505,128, - 1,0,0,0,506,507,5,60,0,0,507,508,5,61,0,0,508,130,1,0,0,0,509,510, - 5,62,0,0,510,132,1,0,0,0,511,512,5,60,0,0,512,134,1,0,0,0,513,514, - 5,33,0,0,514,136,1,0,0,0,515,516,5,43,0,0,516,138,1,0,0,0,517,518, - 5,45,0,0,518,140,1,0,0,0,519,520,5,42,0,0,520,142,1,0,0,0,521,522, - 5,47,0,0,522,144,1,0,0,0,523,524,5,37,0,0,524,146,1,0,0,0,525,526, - 5,91,0,0,526,148,1,0,0,0,527,528,5,93,0,0,528,150,1,0,0,0,529,530, - 5,40,0,0,530,152,1,0,0,0,531,532,5,41,0,0,532,154,1,0,0,0,533,534, - 5,59,0,0,534,156,1,0,0,0,535,536,5,44,0,0,536,158,1,0,0,0,537,538, - 5,63,0,0,538,160,1,0,0,0,539,540,5,58,0,0,540,162,1,0,0,0,541,542, - 5,39,0,0,542,164,1,0,0,0,543,545,5,45,0,0,544,543,1,0,0,0,544,545, - 1,0,0,0,545,546,1,0,0,0,546,547,3,177,88,0,547,166,1,0,0,0,548,553, - 7,26,0,0,549,552,7,26,0,0,550,552,3,179,89,0,551,549,1,0,0,0,551, - 550,1,0,0,0,552,555,1,0,0,0,553,551,1,0,0,0,553,554,1,0,0,0,554, - 168,1,0,0,0,555,553,1,0,0,0,556,557,5,47,0,0,557,558,5,47,0,0,558, - 562,1,0,0,0,559,561,8,27,0,0,560,559,1,0,0,0,561,564,1,0,0,0,562, - 560,1,0,0,0,562,563,1,0,0,0,563,565,1,0,0,0,564,562,1,0,0,0,565, - 566,6,84,0,0,566,170,1,0,0,0,567,568,5,47,0,0,568,569,5,42,0,0,569, - 592,1,0,0,0,570,572,5,47,0,0,571,570,1,0,0,0,572,575,1,0,0,0,573, - 571,1,0,0,0,573,574,1,0,0,0,574,576,1,0,0,0,575,573,1,0,0,0,576, - 591,3,171,85,0,577,591,8,28,0,0,578,580,5,47,0,0,579,578,1,0,0,0, - 580,581,1,0,0,0,581,579,1,0,0,0,581,582,1,0,0,0,582,583,1,0,0,0, - 583,591,8,28,0,0,584,586,5,42,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,589,1,0,0,0,589,591,8,28,0, - 0,590,573,1,0,0,0,590,577,1,0,0,0,590,579,1,0,0,0,590,585,1,0,0, - 0,591,594,1,0,0,0,592,590,1,0,0,0,592,593,1,0,0,0,593,598,1,0,0, - 0,594,592,1,0,0,0,595,597,5,42,0,0,596,595,1,0,0,0,597,600,1,0,0, - 0,598,596,1,0,0,0,598,599,1,0,0,0,599,601,1,0,0,0,600,598,1,0,0, - 0,601,602,5,42,0,0,602,603,5,47,0,0,603,604,1,0,0,0,604,605,6,85, - 0,0,605,172,1,0,0,0,606,608,7,29,0,0,607,606,1,0,0,0,608,609,1,0, - 0,0,609,607,1,0,0,0,609,610,1,0,0,0,610,611,1,0,0,0,611,612,6,86, - 0,0,612,174,1,0,0,0,613,615,5,13,0,0,614,616,5,10,0,0,615,614,1, - 0,0,0,615,616,1,0,0,0,616,619,1,0,0,0,617,619,5,10,0,0,618,613,1, - 0,0,0,618,617,1,0,0,0,619,176,1,0,0,0,620,624,2,49,57,0,621,623, - 3,179,89,0,622,621,1,0,0,0,623,626,1,0,0,0,624,622,1,0,0,0,624,625, - 1,0,0,0,625,629,1,0,0,0,626,624,1,0,0,0,627,629,5,48,0,0,628,620, - 1,0,0,0,628,627,1,0,0,0,629,178,1,0,0,0,630,631,2,48,57,0,631,180, - 1,0,0,0,16,0,544,551,553,562,573,581,587,590,592,598,609,615,618, - 624,628,1,0,1,0 + 78,7,78,2,79,7,79,2,80,7,80,1,0,1,0,1,0,1,0,5,0,168,8,0,10,0,12, + 0,171,9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,180,8,1,11,1,12,1,181, + 1,1,3,1,185,8,1,1,1,5,1,188,8,1,10,1,12,1,191,9,1,1,1,1,1,1,1,1, + 1,1,1,1,2,4,2,199,8,2,11,2,12,2,200,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,7, + 1,7,1,7,1,8,1,8,1,8,1,9,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,12,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,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,17,1,17,1,17, + 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,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,21,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,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,38,1,38,1,38,1,38,1,38, + 1,39,1,39,1,39,1,39,1,39,1,39,1,40,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,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,5,76,575,8,76,10,76, + 12,76,578,9,76,1,76,3,76,581,8,76,1,77,1,77,1,78,3,78,586,8,78,1, + 78,1,78,1,79,1,79,1,79,5,79,593,8,79,10,79,12,79,596,9,79,1,80,1, + 80,3,80,600,8,80,1,80,3,80,603,8,80,0,0,81,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,0,155,0,157, + 76,159,77,161,78,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,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,85,85,117,117,2, + 0,67,67,99,99,2,0,88,88,120,120,4,0,36,36,65,90,95,95,97,122,612, + 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,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0, + 1,163,1,0,0,0,3,174,1,0,0,0,5,198,1,0,0,0,7,204,1,0,0,0,9,206,1, + 0,0,0,11,209,1,0,0,0,13,214,1,0,0,0,15,219,1,0,0,0,17,227,1,0,0, + 0,19,230,1,0,0,0,21,234,1,0,0,0,23,238,1,0,0,0,25,242,1,0,0,0,27, + 247,1,0,0,0,29,252,1,0,0,0,31,259,1,0,0,0,33,266,1,0,0,0,35,276, + 1,0,0,0,37,289,1,0,0,0,39,294,1,0,0,0,41,299,1,0,0,0,43,313,1,0, + 0,0,45,326,1,0,0,0,47,331,1,0,0,0,49,339,1,0,0,0,51,359,1,0,0,0, + 53,382,1,0,0,0,55,392,1,0,0,0,57,400,1,0,0,0,59,412,1,0,0,0,61,419, + 1,0,0,0,63,427,1,0,0,0,65,432,1,0,0,0,67,436,1,0,0,0,69,439,1,0, + 0,0,71,444,1,0,0,0,73,448,1,0,0,0,75,453,1,0,0,0,77,456,1,0,0,0, + 79,461,1,0,0,0,81,467,1,0,0,0,83,472,1,0,0,0,85,476,1,0,0,0,87,480, + 1,0,0,0,89,486,1,0,0,0,91,492,1,0,0,0,93,498,1,0,0,0,95,503,1,0, + 0,0,97,507,1,0,0,0,99,510,1,0,0,0,101,513,1,0,0,0,103,515,1,0,0, + 0,105,517,1,0,0,0,107,519,1,0,0,0,109,521,1,0,0,0,111,523,1,0,0, + 0,113,525,1,0,0,0,115,528,1,0,0,0,117,531,1,0,0,0,119,534,1,0,0, + 0,121,536,1,0,0,0,123,538,1,0,0,0,125,540,1,0,0,0,127,542,1,0,0, + 0,129,544,1,0,0,0,131,546,1,0,0,0,133,548,1,0,0,0,135,550,1,0,0, + 0,137,552,1,0,0,0,139,554,1,0,0,0,141,556,1,0,0,0,143,558,1,0,0, + 0,145,560,1,0,0,0,147,562,1,0,0,0,149,566,1,0,0,0,151,569,1,0,0, + 0,153,580,1,0,0,0,155,582,1,0,0,0,157,585,1,0,0,0,159,589,1,0,0, + 0,161,602,1,0,0,0,163,164,5,47,0,0,164,165,5,47,0,0,165,169,1,0, + 0,0,166,168,8,0,0,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,172,1,0,0,0,171,169,1,0,0,0,172,173,6,0, + 0,0,173,2,1,0,0,0,174,175,5,47,0,0,175,176,5,42,0,0,176,184,1,0, + 0,0,177,185,8,1,0,0,178,180,5,42,0,0,179,178,1,0,0,0,180,181,1,0, + 0,0,181,179,1,0,0,0,181,182,1,0,0,0,182,183,1,0,0,0,183,185,8,2, + 0,0,184,177,1,0,0,0,184,179,1,0,0,0,185,189,1,0,0,0,186,188,5,42, + 0,0,187,186,1,0,0,0,188,191,1,0,0,0,189,187,1,0,0,0,189,190,1,0, + 0,0,190,192,1,0,0,0,191,189,1,0,0,0,192,193,5,42,0,0,193,194,5,47, + 0,0,194,195,1,0,0,0,195,196,6,1,0,0,196,4,1,0,0,0,197,199,7,3,0, + 0,198,197,1,0,0,0,199,200,1,0,0,0,200,198,1,0,0,0,200,201,1,0,0, + 0,201,202,1,0,0,0,202,203,6,2,0,0,203,6,1,0,0,0,204,205,7,4,0,0, + 205,8,1,0,0,0,206,207,7,5,0,0,207,208,7,6,0,0,208,10,1,0,0,0,209, + 210,7,7,0,0,210,211,7,8,0,0,211,212,7,9,0,0,212,213,7,10,0,0,213, + 12,1,0,0,0,214,215,7,9,0,0,215,216,7,11,0,0,216,217,7,12,0,0,217, + 218,7,9,0,0,218,14,1,0,0,0,219,220,7,13,0,0,220,221,7,14,0,0,221, + 222,7,14,0,0,222,223,7,11,0,0,223,224,7,9,0,0,224,225,7,15,0,0,225, + 226,7,10,0,0,226,16,1,0,0,0,227,228,7,5,0,0,228,229,5,56,0,0,229, + 18,1,0,0,0,230,231,7,5,0,0,231,232,5,49,0,0,232,233,5,54,0,0,233, + 20,1,0,0,0,234,235,7,5,0,0,235,236,5,51,0,0,236,237,5,50,0,0,237, + 22,1,0,0,0,238,239,7,5,0,0,239,240,5,54,0,0,240,241,5,52,0,0,241, + 24,1,0,0,0,242,243,7,6,0,0,243,244,7,16,0,0,244,245,5,51,0,0,245, + 246,5,50,0,0,246,26,1,0,0,0,247,248,7,6,0,0,248,249,7,16,0,0,249, + 250,5,54,0,0,250,251,5,52,0,0,251,28,1,0,0,0,252,253,7,12,0,0,253, + 254,7,7,0,0,254,255,7,17,0,0,255,256,7,5,0,0,256,257,7,10,0,0,257, + 258,7,18,0,0,258,30,1,0,0,0,259,260,7,13,0,0,260,261,7,5,0,0,261, + 262,7,10,0,0,262,263,7,15,0,0,263,264,7,17,0,0,264,265,7,19,0,0, + 265,32,1,0,0,0,266,267,7,7,0,0,267,268,7,5,0,0,268,269,7,20,0,0, + 269,270,7,9,0,0,270,271,7,12,0,0,271,272,7,7,0,0,272,273,7,15,0, + 0,273,274,7,20,0,0,274,275,7,16,0,0,275,34,1,0,0,0,276,277,7,7,0, + 0,277,278,7,5,0,0,278,279,7,20,0,0,279,280,7,9,0,0,280,281,7,12, + 0,0,281,282,7,7,0,0,282,283,7,15,0,0,283,284,7,20,0,0,284,285,7, + 16,0,0,285,286,5,95,0,0,286,287,7,7,0,0,287,288,7,21,0,0,288,36, + 1,0,0,0,289,290,7,22,0,0,290,291,7,15,0,0,291,292,7,7,0,0,292,293, + 7,9,0,0,293,38,1,0,0,0,294,295,7,7,0,0,295,296,7,5,0,0,296,297,7, + 20,0,0,297,298,7,9,0,0,298,40,1,0,0,0,299,300,7,5,0,0,300,301,7, + 10,0,0,301,302,7,7,0,0,302,303,7,9,0,0,303,304,7,17,0,0,304,305, + 7,23,0,0,305,306,7,15,0,0,306,307,7,11,0,0,307,308,5,95,0,0,308, + 309,7,19,0,0,309,310,7,9,0,0,310,311,7,15,0,0,311,312,7,17,0,0,312, + 42,1,0,0,0,313,314,7,5,0,0,314,315,7,10,0,0,315,316,7,7,0,0,316, + 317,7,9,0,0,317,318,7,17,0,0,318,319,7,23,0,0,319,320,7,15,0,0,320, + 321,7,11,0,0,321,322,5,95,0,0,322,323,7,22,0,0,323,324,7,15,0,0, + 324,325,7,19,0,0,325,44,1,0,0,0,326,327,7,24,0,0,327,328,7,24,0, + 0,328,329,7,5,0,0,329,330,7,22,0,0,330,46,1,0,0,0,331,332,7,22,0, + 0,332,333,7,9,0,0,333,334,7,25,0,0,334,335,7,5,0,0,335,336,7,20, + 0,0,336,337,7,15,0,0,337,338,7,11,0,0,338,48,1,0,0,0,339,340,7,16, + 0,0,340,341,7,17,0,0,341,342,7,9,0,0,342,343,7,25,0,0,343,344,7, + 5,0,0,344,345,7,12,0,0,345,346,7,5,0,0,346,347,7,14,0,0,347,348, + 7,10,0,0,348,349,5,95,0,0,349,350,7,7,0,0,350,351,7,5,0,0,351,352, + 7,20,0,0,352,353,7,9,0,0,353,354,7,12,0,0,354,355,7,7,0,0,355,356, + 7,15,0,0,356,357,7,20,0,0,357,358,7,16,0,0,358,50,1,0,0,0,359,360, + 7,16,0,0,360,361,7,17,0,0,361,362,7,9,0,0,362,363,7,25,0,0,363,364, + 7,5,0,0,364,365,7,12,0,0,365,366,7,5,0,0,366,367,7,14,0,0,367,368, + 7,10,0,0,368,369,5,95,0,0,369,370,7,7,0,0,370,371,7,5,0,0,371,372, + 7,20,0,0,372,373,7,9,0,0,373,374,7,12,0,0,374,375,7,7,0,0,375,376, + 7,15,0,0,376,377,7,20,0,0,377,378,7,16,0,0,378,379,5,95,0,0,379, + 380,7,7,0,0,380,381,7,21,0,0,381,52,1,0,0,0,382,383,7,6,0,0,383, + 384,7,5,0,0,384,385,7,26,0,0,385,386,7,9,0,0,386,387,7,22,0,0,387, + 388,7,25,0,0,388,389,7,8,0,0,389,390,7,15,0,0,390,391,7,17,0,0,391, + 54,1,0,0,0,392,393,7,23,0,0,393,394,7,15,0,0,394,395,7,17,0,0,395, + 396,7,25,0,0,396,397,7,8,0,0,397,398,7,15,0,0,398,399,7,17,0,0,399, + 56,1,0,0,0,400,401,7,6,0,0,401,402,7,5,0,0,402,403,7,26,0,0,403, + 404,7,9,0,0,404,405,7,22,0,0,405,406,7,13,0,0,406,407,7,5,0,0,407, + 408,7,10,0,0,408,409,7,15,0,0,409,410,7,17,0,0,410,411,7,19,0,0, + 411,58,1,0,0,0,412,413,7,12,0,0,413,414,7,7,0,0,414,415,7,17,0,0, + 415,416,7,24,0,0,416,417,7,25,0,0,417,418,7,7,0,0,418,60,1,0,0,0, + 419,420,7,10,0,0,420,421,7,12,0,0,421,422,7,7,0,0,422,423,7,17,0, + 0,423,424,7,24,0,0,424,425,7,25,0,0,425,426,7,7,0,0,426,62,1,0,0, + 0,427,428,7,11,0,0,428,429,7,5,0,0,429,430,7,12,0,0,430,431,7,7, + 0,0,431,64,1,0,0,0,432,433,7,20,0,0,433,434,7,15,0,0,434,435,7,16, + 0,0,435,66,1,0,0,0,436,437,7,24,0,0,437,438,5,33,0,0,438,68,1,0, + 0,0,439,440,7,13,0,0,440,441,7,14,0,0,441,442,7,14,0,0,442,443,7, + 11,0,0,443,70,1,0,0,0,444,445,7,12,0,0,445,446,7,7,0,0,446,447,7, + 17,0,0,447,72,1,0,0,0,448,449,7,23,0,0,449,450,7,13,0,0,450,451, + 7,5,0,0,451,452,7,10,0,0,452,74,1,0,0,0,453,454,7,7,0,0,454,455, + 7,12,0,0,455,76,1,0,0,0,456,457,7,7,0,0,457,458,7,12,0,0,458,459, + 7,7,0,0,459,460,7,21,0,0,460,78,1,0,0,0,461,462,7,5,0,0,462,463, + 7,19,0,0,463,464,7,9,0,0,464,465,7,15,0,0,465,466,7,17,0,0,466,80, + 1,0,0,0,467,468,7,5,0,0,468,469,7,22,0,0,469,470,7,15,0,0,470,471, + 7,19,0,0,471,82,1,0,0,0,472,473,7,22,0,0,473,474,7,9,0,0,474,475, + 7,25,0,0,475,84,1,0,0,0,476,477,7,16,0,0,477,478,7,7,0,0,478,479, + 7,12,0,0,479,86,1,0,0,0,480,481,7,16,0,0,481,482,7,7,0,0,482,483, + 7,12,0,0,483,484,7,7,0,0,484,485,7,21,0,0,485,88,1,0,0,0,486,487, + 7,6,0,0,487,488,7,25,0,0,488,489,7,8,0,0,489,490,7,15,0,0,490,491, + 7,17,0,0,491,90,1,0,0,0,492,493,7,23,0,0,493,494,7,25,0,0,494,495, + 7,8,0,0,495,496,7,15,0,0,496,497,7,17,0,0,497,92,1,0,0,0,498,499, + 7,6,0,0,499,500,7,13,0,0,500,501,7,5,0,0,501,502,7,10,0,0,502,94, + 1,0,0,0,503,504,7,15,0,0,504,505,7,10,0,0,505,506,7,19,0,0,506,96, + 1,0,0,0,507,508,3,95,47,0,508,509,7,4,0,0,509,98,1,0,0,0,510,511, + 5,58,0,0,511,512,5,58,0,0,512,100,1,0,0,0,513,514,5,43,0,0,514,102, + 1,0,0,0,515,516,5,45,0,0,516,104,1,0,0,0,517,518,5,42,0,0,518,106, + 1,0,0,0,519,520,5,47,0,0,520,108,1,0,0,0,521,522,5,37,0,0,522,110, + 1,0,0,0,523,524,5,61,0,0,524,112,1,0,0,0,525,526,5,33,0,0,526,527, + 5,61,0,0,527,114,1,0,0,0,528,529,5,62,0,0,529,530,5,61,0,0,530,116, + 1,0,0,0,531,532,5,60,0,0,532,533,5,61,0,0,533,118,1,0,0,0,534,535, + 5,62,0,0,535,120,1,0,0,0,536,537,5,60,0,0,537,122,1,0,0,0,538,539, + 5,33,0,0,539,124,1,0,0,0,540,541,3,121,60,0,541,126,1,0,0,0,542, + 543,3,119,59,0,543,128,1,0,0,0,544,545,5,40,0,0,545,130,1,0,0,0, + 546,547,5,41,0,0,547,132,1,0,0,0,548,549,5,91,0,0,549,134,1,0,0, + 0,550,551,5,93,0,0,551,136,1,0,0,0,552,553,5,44,0,0,553,138,1,0, + 0,0,554,555,5,58,0,0,555,140,1,0,0,0,556,557,5,63,0,0,557,142,1, + 0,0,0,558,559,5,35,0,0,559,144,1,0,0,0,560,561,5,46,0,0,561,146, + 1,0,0,0,562,563,7,15,0,0,563,564,7,10,0,0,564,565,7,22,0,0,565,148, + 1,0,0,0,566,567,7,14,0,0,567,568,7,17,0,0,568,150,1,0,0,0,569,570, + 5,58,0,0,570,571,5,61,0,0,571,152,1,0,0,0,572,576,2,49,57,0,573, + 575,3,155,77,0,574,573,1,0,0,0,575,578,1,0,0,0,576,574,1,0,0,0,576, + 577,1,0,0,0,577,581,1,0,0,0,578,576,1,0,0,0,579,581,5,48,0,0,580, + 572,1,0,0,0,580,579,1,0,0,0,581,154,1,0,0,0,582,583,2,48,57,0,583, + 156,1,0,0,0,584,586,5,45,0,0,585,584,1,0,0,0,585,586,1,0,0,0,586, + 587,1,0,0,0,587,588,3,153,76,0,588,158,1,0,0,0,589,594,7,27,0,0, + 590,593,7,27,0,0,591,593,3,155,77,0,592,590,1,0,0,0,592,591,1,0, + 0,0,593,596,1,0,0,0,594,592,1,0,0,0,594,595,1,0,0,0,595,160,1,0, + 0,0,596,594,1,0,0,0,597,599,5,13,0,0,598,600,5,10,0,0,599,598,1, + 0,0,0,599,600,1,0,0,0,600,603,1,0,0,0,601,603,5,10,0,0,602,597,1, + 0,0,0,602,601,1,0,0,0,603,162,1,0,0,0,13,0,169,181,184,189,200,576, + 580,585,592,594,599,602,1,0,1,0 ] class SubstraitTypeLexer(Lexer): @@ -241,105 +231,130 @@ class SubstraitTypeLexer(Lexer): decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] - If = 1 - Then = 2 - Else = 3 - Boolean = 4 - I8 = 5 - I16 = 6 - I32 = 7 - I64 = 8 - FP32 = 9 - FP64 = 10 - String = 11 - Binary = 12 - Timestamp = 13 - TimestampTZ = 14 - Date = 15 - Time = 16 - IntervalYear = 17 - IntervalDay = 18 - IntervalCompound = 19 - UUID = 20 - Decimal = 21 - PrecisionTimestamp = 22 - PrecisionTimestampTZ = 23 - FixedChar = 24 - VarChar = 25 - FixedBinary = 26 - Struct = 27 - NStruct = 28 - List = 29 - Map = 30 - ANY = 31 - UserDefined = 32 - And = 33 - Or = 34 - Assign = 35 - Eq = 36 - NotEquals = 37 - Gte = 38 - Lte = 39 - Gt = 40 - Lt = 41 - Bang = 42 - Plus = 43 - Minus = 44 - Asterisk = 45 - ForwardSlash = 46 - Percent = 47 - OBracket = 48 - CBracket = 49 - OParen = 50 - CParen = 51 - SColon = 52 - Comma = 53 - QMark = 54 - Colon = 55 - SingleQuote = 56 - Number = 57 - Identifier = 58 - LineComment = 59 - BlockComment = 60 - Whitespace = 61 - Newline = 62 + LineComment = 1 + BlockComment = 2 + Whitespace = 3 + If = 4 + Then = 5 + Else = 6 + Boolean = 7 + I8 = 8 + I16 = 9 + I32 = 10 + I64 = 11 + FP32 = 12 + FP64 = 13 + String = 14 + Binary = 15 + Timestamp = 16 + Timestamp_TZ = 17 + Date = 18 + Time = 19 + Interval_Year = 20 + Interval_Day = 21 + UUID = 22 + Decimal = 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 + Ts = 37 + TsTZ = 38 + IYear = 39 + IDay = 40 + Dec = 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 + Number = 76 + Identifier = 77 + Newline = 78 channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] modeNames = [ "DEFAULT_MODE" ] literalNames = [ "", - "':='", "'='", "'!='", "'>='", "'<='", "'>'", "'<'", "'!'", - "'+'", "'-'", "'*'", "'/'", "'%'", "'['", "']'", "'('", "')'", - "';'", "','", "'?'", "':'", "'''" ] + "'IF'", "'THEN'", "'ELSE'", "'BOOLEAN'", "'I8'", "'I16'", "'I32'", + "'I64'", "'FP32'", "'FP64'", "'STRING'", "'BINARY'", "'TIMESTAMP'", + "'TIMESTAMP_TZ'", "'DATE'", "'TIME'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'", + "'UUID'", "'DECIMAL'", "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'", + "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'", "'NSTRUCT'", + "'LIST'", "'MAP'", "'U!'", "'BOOL'", "'STR'", "'VBIN'", "'TS'", + "'TSTZ'", "'IYEAR'", "'IDAY'", "'DEC'", "'PTS'", "'PTSTZ'", + "'FCHAR'", "'VCHAR'", "'FBIN'", "'ANY'", "'::'", "'+'", "'-'", + "'*'", "'/'", "'%'", "'='", "'!='", "'>='", "'<='", "'>'", "'<'", + "'!'", "'('", "')'", "'['", "']'", "','", "':'", "'?'", "'#'", + "'.'", "'AND'", "'OR'", "':='" ] symbolicNames = [ "", - "If", "Then", "Else", "Boolean", "I8", "I16", "I32", "I64", - "FP32", "FP64", "String", "Binary", "Timestamp", "TimestampTZ", - "Date", "Time", "IntervalYear", "IntervalDay", "IntervalCompound", - "UUID", "Decimal", "PrecisionTimestamp", "PrecisionTimestampTZ", + "LineComment", "BlockComment", "Whitespace", "If", "Then", "Else", + "Boolean", "I8", "I16", "I32", "I64", "FP32", "FP64", "String", + "Binary", "Timestamp", "Timestamp_TZ", "Date", "Time", "Interval_Year", + "Interval_Day", "UUID", "Decimal", "Precision_Timestamp", "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct", - "List", "Map", "ANY", "UserDefined", "And", "Or", "Assign", - "Eq", "NotEquals", "Gte", "Lte", "Gt", "Lt", "Bang", "Plus", - "Minus", "Asterisk", "ForwardSlash", "Percent", "OBracket", - "CBracket", "OParen", "CParen", "SColon", "Comma", "QMark", - "Colon", "SingleQuote", "Number", "Identifier", "LineComment", - "BlockComment", "Whitespace", "Newline" ] + "List", "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", "TsTZ", + "IYear", "IDay", "Dec", "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", "Number", "Identifier", "Newline" ] - ruleNames = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", - "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", - "W", "X", "Y", "Z", "If", "Then", "Else", "Boolean", "I8", - "I16", "I32", "I64", "FP32", "FP64", "String", "Binary", - "Timestamp", "TimestampTZ", "Date", "Time", "IntervalYear", - "IntervalDay", "IntervalCompound", "UUID", "Decimal", - "PrecisionTimestamp", "PrecisionTimestampTZ", "FixedChar", - "VarChar", "FixedBinary", "Struct", "NStruct", "List", - "Map", "ANY", "UserDefined", "And", "Or", "Assign", "Eq", - "NotEquals", "Gte", "Lte", "Gt", "Lt", "Bang", "Plus", - "Minus", "Asterisk", "ForwardSlash", "Percent", "OBracket", - "CBracket", "OParen", "CParen", "SColon", "Comma", "QMark", - "Colon", "SingleQuote", "Number", "Identifier", "LineComment", - "BlockComment", "Whitespace", "Newline", "Int", "Digit" ] + ruleNames = [ "LineComment", "BlockComment", "Whitespace", "DIGIT", + "If", "Then", "Else", "Boolean", "I8", "I16", "I32", "I64", + "FP32", "FP64", "String", "Binary", "Timestamp", "Timestamp_TZ", + "Date", "Time", "Interval_Year", "Interval_Day", "UUID", + "Decimal", "Precision_Timestamp", "Precision_Timestamp_TZ", + "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct", + "List", "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", + "TsTZ", "IYear", "IDay", "Dec", "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", "Int", "Digit", "Number", "Identifier", "Newline" ] grammarFileName = "SubstraitType.g4" diff --git a/src/substrait/gen/antlr/SubstraitTypeLexer.tokens b/src/substrait/gen/antlr/SubstraitTypeLexer.tokens index 20c69d8..942b3ae 100644 --- a/src/substrait/gen/antlr/SubstraitTypeLexer.tokens +++ b/src/substrait/gen/antlr/SubstraitTypeLexer.tokens @@ -1,84 +1,147 @@ -If=1 -Then=2 -Else=3 -Boolean=4 -I8=5 -I16=6 -I32=7 -I64=8 -FP32=9 -FP64=10 -String=11 -Binary=12 -Timestamp=13 -TimestampTZ=14 -Date=15 -Time=16 -IntervalYear=17 -IntervalDay=18 -IntervalCompound=19 -UUID=20 -Decimal=21 -PrecisionTimestamp=22 -PrecisionTimestampTZ=23 -FixedChar=24 -VarChar=25 -FixedBinary=26 -Struct=27 -NStruct=28 -List=29 -Map=30 -ANY=31 -UserDefined=32 -And=33 -Or=34 -Assign=35 -Eq=36 -NotEquals=37 -Gte=38 -Lte=39 -Gt=40 -Lt=41 -Bang=42 -Plus=43 -Minus=44 -Asterisk=45 -ForwardSlash=46 -Percent=47 -OBracket=48 -CBracket=49 -OParen=50 -CParen=51 -SColon=52 -Comma=53 -QMark=54 -Colon=55 -SingleQuote=56 -Number=57 -Identifier=58 -LineComment=59 -BlockComment=60 -Whitespace=61 -Newline=62 -':='=35 -'='=36 -'!='=37 -'>='=38 -'<='=39 -'>'=40 -'<'=41 -'!'=42 -'+'=43 -'-'=44 -'*'=45 -'/'=46 -'%'=47 -'['=48 -']'=49 -'('=50 -')'=51 -';'=52 -','=53 -'?'=54 -':'=55 -'\''=56 +LineComment=1 +BlockComment=2 +Whitespace=3 +If=4 +Then=5 +Else=6 +Boolean=7 +I8=8 +I16=9 +I32=10 +I64=11 +FP32=12 +FP64=13 +String=14 +Binary=15 +Timestamp=16 +Timestamp_TZ=17 +Date=18 +Time=19 +Interval_Year=20 +Interval_Day=21 +UUID=22 +Decimal=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 +Ts=37 +TsTZ=38 +IYear=39 +IDay=40 +Dec=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 +Number=76 +Identifier=77 +Newline=78 +'IF'=4 +'THEN'=5 +'ELSE'=6 +'BOOLEAN'=7 +'I8'=8 +'I16'=9 +'I32'=10 +'I64'=11 +'FP32'=12 +'FP64'=13 +'STRING'=14 +'BINARY'=15 +'TIMESTAMP'=16 +'TIMESTAMP_TZ'=17 +'DATE'=18 +'TIME'=19 +'INTERVAL_YEAR'=20 +'INTERVAL_DAY'=21 +'UUID'=22 +'DECIMAL'=23 +'PRECISION_TIMESTAMP'=24 +'PRECISION_TIMESTAMP_TZ'=25 +'FIXEDCHAR'=26 +'VARCHAR'=27 +'FIXEDBINARY'=28 +'STRUCT'=29 +'NSTRUCT'=30 +'LIST'=31 +'MAP'=32 +'U!'=33 +'BOOL'=34 +'STR'=35 +'VBIN'=36 +'TS'=37 +'TSTZ'=38 +'IYEAR'=39 +'IDAY'=40 +'DEC'=41 +'PTS'=42 +'PTSTZ'=43 +'FCHAR'=44 +'VCHAR'=45 +'FBIN'=46 +'ANY'=47 +'::'=49 +'+'=50 +'-'=51 +'*'=52 +'/'=53 +'%'=54 +'='=55 +'!='=56 +'>='=57 +'<='=58 +'>'=59 +'<'=60 +'!'=61 +'('=64 +')'=65 +'['=66 +']'=67 +','=68 +':'=69 +'?'=70 +'#'=71 +'.'=72 +'AND'=73 +'OR'=74 +':='=75 diff --git a/src/substrait/gen/antlr/SubstraitTypeListener.py b/src/substrait/gen/antlr/SubstraitTypeListener.py index 29c4d48..c18e63e 100644 --- a/src/substrait/gen/antlr/SubstraitTypeListener.py +++ b/src/substrait/gen/antlr/SubstraitTypeListener.py @@ -8,20 +8,29 @@ # This class defines a complete listener for a parse tree produced by SubstraitTypeParser. class SubstraitTypeListener(ParseTreeListener): - # Enter a parse tree produced by SubstraitTypeParser#start. - def enterStart(self, ctx:SubstraitTypeParser.StartContext): + # Enter a parse tree produced by SubstraitTypeParser#startRule. + def enterStartRule(self, ctx:SubstraitTypeParser.StartRuleContext): pass - # Exit a parse tree produced by SubstraitTypeParser#start. - def exitStart(self, ctx:SubstraitTypeParser.StartContext): + # Exit a parse tree produced by SubstraitTypeParser#startRule. + def exitStartRule(self, ctx:SubstraitTypeParser.StartRuleContext): pass - # Enter a parse tree produced by SubstraitTypeParser#Boolean. + # Enter a parse tree produced by SubstraitTypeParser#typeStatement. + def enterTypeStatement(self, ctx:SubstraitTypeParser.TypeStatementContext): + pass + + # Exit a parse tree produced by SubstraitTypeParser#typeStatement. + def exitTypeStatement(self, ctx:SubstraitTypeParser.TypeStatementContext): + pass + + + # Enter a parse tree produced by SubstraitTypeParser#boolean. def enterBoolean(self, ctx:SubstraitTypeParser.BooleanContext): pass - # Exit a parse tree produced by SubstraitTypeParser#Boolean. + # Exit a parse tree produced by SubstraitTypeParser#boolean. def exitBoolean(self, ctx:SubstraitTypeParser.BooleanContext): pass @@ -152,15 +161,6 @@ def exitUuid(self, ctx:SubstraitTypeParser.UuidContext): pass - # Enter a parse tree produced by SubstraitTypeParser#userDefined. - def enterUserDefined(self, ctx:SubstraitTypeParser.UserDefinedContext): - pass - - # Exit a parse tree produced by SubstraitTypeParser#userDefined. - def exitUserDefined(self, ctx:SubstraitTypeParser.UserDefinedContext): - pass - - # Enter a parse tree produced by SubstraitTypeParser#fixedChar. def enterFixedChar(self, ctx:SubstraitTypeParser.FixedCharContext): pass @@ -197,21 +197,12 @@ def exitDecimal(self, ctx:SubstraitTypeParser.DecimalContext): pass - # Enter a parse tree produced by SubstraitTypeParser#intervalDay. - def enterIntervalDay(self, ctx:SubstraitTypeParser.IntervalDayContext): - pass - - # Exit a parse tree produced by SubstraitTypeParser#intervalDay. - def exitIntervalDay(self, ctx:SubstraitTypeParser.IntervalDayContext): - pass - - - # Enter a parse tree produced by SubstraitTypeParser#intervalCompound. - def enterIntervalCompound(self, ctx:SubstraitTypeParser.IntervalCompoundContext): + # Enter a parse tree produced by SubstraitTypeParser#precisionIntervalDay. + def enterPrecisionIntervalDay(self, ctx:SubstraitTypeParser.PrecisionIntervalDayContext): pass - # Exit a parse tree produced by SubstraitTypeParser#intervalCompound. - def exitIntervalCompound(self, ctx:SubstraitTypeParser.IntervalCompoundContext): + # Exit a parse tree produced by SubstraitTypeParser#precisionIntervalDay. + def exitPrecisionIntervalDay(self, ctx:SubstraitTypeParser.PrecisionIntervalDayContext): pass @@ -269,6 +260,15 @@ def exitMap(self, ctx:SubstraitTypeParser.MapContext): pass + # Enter a parse tree produced by SubstraitTypeParser#userDefined. + def enterUserDefined(self, ctx:SubstraitTypeParser.UserDefinedContext): + pass + + # Exit a parse tree produced by SubstraitTypeParser#userDefined. + def exitUserDefined(self, ctx:SubstraitTypeParser.UserDefinedContext): + pass + + # Enter a parse tree produced by SubstraitTypeParser#numericLiteral. def enterNumericLiteral(self, ctx:SubstraitTypeParser.NumericLiteralContext): pass @@ -305,12 +305,12 @@ def exitAnyType(self, ctx:SubstraitTypeParser.AnyTypeContext): pass - # Enter a parse tree produced by SubstraitTypeParser#type. - def enterType(self, ctx:SubstraitTypeParser.TypeContext): + # Enter a parse tree produced by SubstraitTypeParser#typeDef. + def enterTypeDef(self, ctx:SubstraitTypeParser.TypeDefContext): pass - # Exit a parse tree produced by SubstraitTypeParser#type. - def exitType(self, ctx:SubstraitTypeParser.TypeContext): + # Exit a parse tree produced by SubstraitTypeParser#typeDef. + def exitTypeDef(self, ctx:SubstraitTypeParser.TypeDefContext): pass @@ -359,21 +359,21 @@ def exitBinaryExpr(self, ctx:SubstraitTypeParser.BinaryExprContext): pass - # Enter a parse tree produced by SubstraitTypeParser#TypeParam. - def enterTypeParam(self, ctx:SubstraitTypeParser.TypeParamContext): + # Enter a parse tree produced by SubstraitTypeParser#ParenExpression. + def enterParenExpression(self, ctx:SubstraitTypeParser.ParenExpressionContext): pass - # Exit a parse tree produced by SubstraitTypeParser#TypeParam. - def exitTypeParam(self, ctx:SubstraitTypeParser.TypeParamContext): + # Exit a parse tree produced by SubstraitTypeParser#ParenExpression. + def exitParenExpression(self, ctx:SubstraitTypeParser.ParenExpressionContext): pass - # Enter a parse tree produced by SubstraitTypeParser#ParenExpression. - def enterParenExpression(self, ctx:SubstraitTypeParser.ParenExpressionContext): + # Enter a parse tree produced by SubstraitTypeParser#ParameterName. + def enterParameterName(self, ctx:SubstraitTypeParser.ParameterNameContext): pass - # Exit a parse tree produced by SubstraitTypeParser#ParenExpression. - def exitParenExpression(self, ctx:SubstraitTypeParser.ParenExpressionContext): + # Exit a parse tree produced by SubstraitTypeParser#ParameterName. + def exitParameterName(self, ctx:SubstraitTypeParser.ParameterNameContext): pass diff --git a/src/substrait/gen/antlr/SubstraitTypeParser.py b/src/substrait/gen/antlr/SubstraitTypeParser.py index da3a528..48e4b12 100644 --- a/src/substrait/gen/antlr/SubstraitTypeParser.py +++ b/src/substrait/gen/antlr/SubstraitTypeParser.py @@ -10,100 +10,107 @@ def serializedATN(): return [ - 4,1,62,250,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,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,3,1,35,8,1,1,2,1,2,3,2,39,8,2,1,2,1,2,1,2,1,2, - 1,2,1,2,3,2,47,8,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,55,8,2,1,2,1,2,1, - 2,1,2,1,2,1,2,3,2,63,8,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,73, - 8,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,81,8,2,1,2,1,2,1,2,1,2,1,2,1,2,3, - 2,89,8,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,97,8,2,1,2,1,2,1,2,1,2,1,2, - 1,2,3,2,105,8,2,1,2,1,2,1,2,1,2,5,2,111,8,2,10,2,12,2,114,9,2,1, - 2,1,2,1,2,1,2,3,2,120,8,2,1,2,1,2,1,2,1,2,1,2,1,2,5,2,128,8,2,10, - 2,12,2,131,9,2,1,2,1,2,1,2,1,2,3,2,137,8,2,1,2,1,2,1,2,1,2,1,2,1, - 2,3,2,145,8,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,153,8,2,1,3,1,3,1,3,3, - 3,158,8,3,1,4,1,4,1,5,1,5,3,5,164,8,5,1,5,1,5,1,5,3,5,169,8,5,3, - 5,171,8,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,4,6,182,8,6,11,6,12, - 6,183,1,6,1,6,1,6,1,6,4,6,190,8,6,11,6,12,6,191,5,6,194,8,6,10,6, - 12,6,197,9,6,1,6,1,6,5,6,201,8,6,10,6,12,6,204,9,6,1,6,1,6,1,6,1, - 6,3,6,210,8,6,1,6,1,6,1,6,1,6,1,6,5,6,217,8,6,10,6,12,6,220,9,6, - 3,6,222,8,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,234,8,6, - 1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,5,6,245,8,6,10,6,12,6,248,9, - 6,1,6,0,1,12,7,0,2,4,6,8,10,12,0,1,3,0,33,34,36,41,43,46,304,0,14, - 1,0,0,0,2,34,1,0,0,0,4,152,1,0,0,0,6,157,1,0,0,0,8,159,1,0,0,0,10, - 170,1,0,0,0,12,233,1,0,0,0,14,15,3,12,6,0,15,16,5,0,0,1,16,1,1,0, - 0,0,17,35,5,4,0,0,18,35,5,5,0,0,19,35,5,6,0,0,20,35,5,7,0,0,21,35, - 5,8,0,0,22,35,5,9,0,0,23,35,5,10,0,0,24,35,5,11,0,0,25,35,5,12,0, - 0,26,35,5,13,0,0,27,35,5,14,0,0,28,35,5,15,0,0,29,35,5,16,0,0,30, - 35,5,17,0,0,31,35,5,20,0,0,32,33,5,32,0,0,33,35,5,58,0,0,34,17,1, - 0,0,0,34,18,1,0,0,0,34,19,1,0,0,0,34,20,1,0,0,0,34,21,1,0,0,0,34, - 22,1,0,0,0,34,23,1,0,0,0,34,24,1,0,0,0,34,25,1,0,0,0,34,26,1,0,0, - 0,34,27,1,0,0,0,34,28,1,0,0,0,34,29,1,0,0,0,34,30,1,0,0,0,34,31, - 1,0,0,0,34,32,1,0,0,0,35,3,1,0,0,0,36,38,5,24,0,0,37,39,5,54,0,0, - 38,37,1,0,0,0,38,39,1,0,0,0,39,40,1,0,0,0,40,41,5,41,0,0,41,42,3, - 6,3,0,42,43,5,40,0,0,43,153,1,0,0,0,44,46,5,25,0,0,45,47,5,54,0, - 0,46,45,1,0,0,0,46,47,1,0,0,0,47,48,1,0,0,0,48,49,5,41,0,0,49,50, - 3,6,3,0,50,51,5,40,0,0,51,153,1,0,0,0,52,54,5,26,0,0,53,55,5,54, - 0,0,54,53,1,0,0,0,54,55,1,0,0,0,55,56,1,0,0,0,56,57,5,41,0,0,57, - 58,3,6,3,0,58,59,5,40,0,0,59,153,1,0,0,0,60,62,5,21,0,0,61,63,5, - 54,0,0,62,61,1,0,0,0,62,63,1,0,0,0,63,64,1,0,0,0,64,65,5,41,0,0, - 65,66,3,6,3,0,66,67,5,53,0,0,67,68,3,6,3,0,68,69,5,40,0,0,69,153, - 1,0,0,0,70,72,5,18,0,0,71,73,5,54,0,0,72,71,1,0,0,0,72,73,1,0,0, - 0,73,74,1,0,0,0,74,75,5,41,0,0,75,76,3,6,3,0,76,77,5,40,0,0,77,153, - 1,0,0,0,78,80,5,19,0,0,79,81,5,54,0,0,80,79,1,0,0,0,80,81,1,0,0, - 0,81,82,1,0,0,0,82,83,5,41,0,0,83,84,3,6,3,0,84,85,5,40,0,0,85,153, - 1,0,0,0,86,88,5,22,0,0,87,89,5,54,0,0,88,87,1,0,0,0,88,89,1,0,0, - 0,89,90,1,0,0,0,90,91,5,41,0,0,91,92,3,6,3,0,92,93,5,40,0,0,93,153, - 1,0,0,0,94,96,5,23,0,0,95,97,5,54,0,0,96,95,1,0,0,0,96,97,1,0,0, - 0,97,98,1,0,0,0,98,99,5,41,0,0,99,100,3,6,3,0,100,101,5,40,0,0,101, - 153,1,0,0,0,102,104,5,27,0,0,103,105,5,54,0,0,104,103,1,0,0,0,104, - 105,1,0,0,0,105,106,1,0,0,0,106,107,5,41,0,0,107,112,3,12,6,0,108, - 109,5,53,0,0,109,111,3,12,6,0,110,108,1,0,0,0,111,114,1,0,0,0,112, - 110,1,0,0,0,112,113,1,0,0,0,113,115,1,0,0,0,114,112,1,0,0,0,115, - 116,5,40,0,0,116,153,1,0,0,0,117,119,5,28,0,0,118,120,5,54,0,0,119, - 118,1,0,0,0,119,120,1,0,0,0,120,121,1,0,0,0,121,122,5,41,0,0,122, - 123,5,58,0,0,123,129,3,12,6,0,124,125,5,53,0,0,125,126,5,58,0,0, - 126,128,3,12,6,0,127,124,1,0,0,0,128,131,1,0,0,0,129,127,1,0,0,0, - 129,130,1,0,0,0,130,132,1,0,0,0,131,129,1,0,0,0,132,133,5,40,0,0, - 133,153,1,0,0,0,134,136,5,29,0,0,135,137,5,54,0,0,136,135,1,0,0, - 0,136,137,1,0,0,0,137,138,1,0,0,0,138,139,5,41,0,0,139,140,3,12, - 6,0,140,141,5,40,0,0,141,153,1,0,0,0,142,144,5,30,0,0,143,145,5, - 54,0,0,144,143,1,0,0,0,144,145,1,0,0,0,145,146,1,0,0,0,146,147,5, - 41,0,0,147,148,3,12,6,0,148,149,5,53,0,0,149,150,3,12,6,0,150,151, - 5,40,0,0,151,153,1,0,0,0,152,36,1,0,0,0,152,44,1,0,0,0,152,52,1, - 0,0,0,152,60,1,0,0,0,152,70,1,0,0,0,152,78,1,0,0,0,152,86,1,0,0, - 0,152,94,1,0,0,0,152,102,1,0,0,0,152,117,1,0,0,0,152,134,1,0,0,0, - 152,142,1,0,0,0,153,5,1,0,0,0,154,158,5,57,0,0,155,158,5,58,0,0, - 156,158,3,12,6,0,157,154,1,0,0,0,157,155,1,0,0,0,157,156,1,0,0,0, - 158,7,1,0,0,0,159,160,5,31,0,0,160,9,1,0,0,0,161,163,3,2,1,0,162, - 164,5,54,0,0,163,162,1,0,0,0,163,164,1,0,0,0,164,171,1,0,0,0,165, - 171,3,4,2,0,166,168,3,8,4,0,167,169,5,54,0,0,168,167,1,0,0,0,168, - 169,1,0,0,0,169,171,1,0,0,0,170,161,1,0,0,0,170,165,1,0,0,0,170, - 166,1,0,0,0,171,11,1,0,0,0,172,173,6,6,-1,0,173,174,5,50,0,0,174, - 175,3,12,6,0,175,176,5,51,0,0,176,234,1,0,0,0,177,178,5,58,0,0,178, - 179,5,36,0,0,179,181,3,12,6,0,180,182,5,62,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,195,1,0,0,0,185, - 186,5,58,0,0,186,187,5,36,0,0,187,189,3,12,6,0,188,190,5,62,0,0, - 189,188,1,0,0,0,190,191,1,0,0,0,191,189,1,0,0,0,191,192,1,0,0,0, - 192,194,1,0,0,0,193,185,1,0,0,0,194,197,1,0,0,0,195,193,1,0,0,0, - 195,196,1,0,0,0,196,198,1,0,0,0,197,195,1,0,0,0,198,202,3,10,5,0, - 199,201,5,62,0,0,200,199,1,0,0,0,201,204,1,0,0,0,202,200,1,0,0,0, - 202,203,1,0,0,0,203,234,1,0,0,0,204,202,1,0,0,0,205,234,3,10,5,0, - 206,234,5,57,0,0,207,209,5,58,0,0,208,210,5,54,0,0,209,208,1,0,0, - 0,209,210,1,0,0,0,210,234,1,0,0,0,211,212,5,58,0,0,212,221,5,50, - 0,0,213,218,3,12,6,0,214,215,5,53,0,0,215,217,3,12,6,0,216,214,1, - 0,0,0,217,220,1,0,0,0,218,216,1,0,0,0,218,219,1,0,0,0,219,222,1, - 0,0,0,220,218,1,0,0,0,221,213,1,0,0,0,221,222,1,0,0,0,222,223,1, - 0,0,0,223,234,5,51,0,0,224,225,5,1,0,0,225,226,3,12,6,0,226,227, - 5,2,0,0,227,228,3,12,6,0,228,229,5,3,0,0,229,230,3,12,6,3,230,234, - 1,0,0,0,231,232,5,42,0,0,232,234,3,12,6,2,233,172,1,0,0,0,233,177, - 1,0,0,0,233,205,1,0,0,0,233,206,1,0,0,0,233,207,1,0,0,0,233,211, - 1,0,0,0,233,224,1,0,0,0,233,231,1,0,0,0,234,246,1,0,0,0,235,236, - 10,4,0,0,236,237,7,0,0,0,237,245,3,12,6,5,238,239,10,1,0,0,239,240, - 5,54,0,0,240,241,3,12,6,0,241,242,5,55,0,0,242,243,3,12,6,2,243, - 245,1,0,0,0,244,235,1,0,0,0,244,238,1,0,0,0,245,248,1,0,0,0,246, - 244,1,0,0,0,246,247,1,0,0,0,247,13,1,0,0,0,248,246,1,0,0,0,30,34, - 38,46,54,62,72,80,88,96,104,112,119,129,136,144,152,157,163,168, - 170,183,191,195,202,209,218,221,233,244,246 + 4,1,78,268,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,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,38,8,2,1,3,1,3,3,3,42,8,3,1,3, + 1,3,1,3,1,3,1,3,1,3,3,3,50,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,58,8, + 3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,66,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3, + 1,3,3,3,76,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,84,8,3,1,3,1,3,1,3,1, + 3,1,3,1,3,3,3,92,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,100,8,3,1,3,1,3, + 1,3,1,3,5,3,106,8,3,10,3,12,3,109,9,3,1,3,1,3,1,3,1,3,3,3,115,8, + 3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,123,8,3,10,3,12,3,126,9,3,1,3,1,3, + 1,3,1,3,3,3,132,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,140,8,3,1,3,1,3, + 1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,151,8,3,1,3,1,3,1,3,1,3,5,3,157, + 8,3,10,3,12,3,160,9,3,1,3,1,3,3,3,164,8,3,3,3,166,8,3,1,4,1,4,1, + 4,3,4,171,8,4,1,5,1,5,3,5,175,8,5,1,5,1,5,3,5,179,8,5,3,5,181,8, + 5,1,6,1,6,3,6,185,8,6,1,6,1,6,3,6,189,8,6,1,7,1,7,1,7,1,7,1,7,1, + 7,1,7,1,7,1,7,4,7,200,8,7,11,7,12,7,201,1,7,1,7,1,7,1,7,4,7,208, + 8,7,11,7,12,7,209,5,7,212,8,7,10,7,12,7,215,9,7,1,7,1,7,5,7,219, + 8,7,10,7,12,7,222,9,7,1,7,1,7,1,7,1,7,3,7,228,8,7,1,7,1,7,1,7,1, + 7,1,7,5,7,235,8,7,10,7,12,7,238,9,7,3,7,240,8,7,1,7,1,7,1,7,1,7, + 1,7,1,7,1,7,1,7,1,7,1,7,3,7,252,8,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7, + 1,7,1,7,5,7,263,8,7,10,7,12,7,266,9,7,1,7,0,1,14,8,0,2,4,6,8,10, + 12,14,0,1,3,0,50,53,55,60,73,74,324,0,16,1,0,0,0,2,19,1,0,0,0,4, + 37,1,0,0,0,6,165,1,0,0,0,8,170,1,0,0,0,10,180,1,0,0,0,12,188,1,0, + 0,0,14,251,1,0,0,0,16,17,3,14,7,0,17,18,5,0,0,1,18,1,1,0,0,0,19, + 20,3,12,6,0,20,21,5,0,0,1,21,3,1,0,0,0,22,38,5,7,0,0,23,38,5,8,0, + 0,24,38,5,9,0,0,25,38,5,10,0,0,26,38,5,11,0,0,27,38,5,12,0,0,28, + 38,5,13,0,0,29,38,5,14,0,0,30,38,5,15,0,0,31,38,5,16,0,0,32,38,5, + 17,0,0,33,38,5,18,0,0,34,38,5,19,0,0,35,38,5,20,0,0,36,38,5,22,0, + 0,37,22,1,0,0,0,37,23,1,0,0,0,37,24,1,0,0,0,37,25,1,0,0,0,37,26, + 1,0,0,0,37,27,1,0,0,0,37,28,1,0,0,0,37,29,1,0,0,0,37,30,1,0,0,0, + 37,31,1,0,0,0,37,32,1,0,0,0,37,33,1,0,0,0,37,34,1,0,0,0,37,35,1, + 0,0,0,37,36,1,0,0,0,38,5,1,0,0,0,39,41,5,26,0,0,40,42,5,70,0,0,41, + 40,1,0,0,0,41,42,1,0,0,0,42,43,1,0,0,0,43,44,5,60,0,0,44,45,3,8, + 4,0,45,46,5,59,0,0,46,166,1,0,0,0,47,49,5,27,0,0,48,50,5,70,0,0, + 49,48,1,0,0,0,49,50,1,0,0,0,50,51,1,0,0,0,51,52,5,60,0,0,52,53,3, + 8,4,0,53,54,5,59,0,0,54,166,1,0,0,0,55,57,5,28,0,0,56,58,5,70,0, + 0,57,56,1,0,0,0,57,58,1,0,0,0,58,59,1,0,0,0,59,60,5,60,0,0,60,61, + 3,8,4,0,61,62,5,59,0,0,62,166,1,0,0,0,63,65,5,23,0,0,64,66,5,70, + 0,0,65,64,1,0,0,0,65,66,1,0,0,0,66,67,1,0,0,0,67,68,5,60,0,0,68, + 69,3,8,4,0,69,70,5,68,0,0,70,71,3,8,4,0,71,72,5,59,0,0,72,166,1, + 0,0,0,73,75,5,21,0,0,74,76,5,70,0,0,75,74,1,0,0,0,75,76,1,0,0,0, + 76,77,1,0,0,0,77,78,5,60,0,0,78,79,3,8,4,0,79,80,5,59,0,0,80,166, + 1,0,0,0,81,83,5,24,0,0,82,84,5,70,0,0,83,82,1,0,0,0,83,84,1,0,0, + 0,84,85,1,0,0,0,85,86,5,60,0,0,86,87,3,8,4,0,87,88,5,59,0,0,88,166, + 1,0,0,0,89,91,5,25,0,0,90,92,5,70,0,0,91,90,1,0,0,0,91,92,1,0,0, + 0,92,93,1,0,0,0,93,94,5,60,0,0,94,95,3,8,4,0,95,96,5,59,0,0,96,166, + 1,0,0,0,97,99,5,29,0,0,98,100,5,70,0,0,99,98,1,0,0,0,99,100,1,0, + 0,0,100,101,1,0,0,0,101,102,5,60,0,0,102,107,3,14,7,0,103,104,5, + 68,0,0,104,106,3,14,7,0,105,103,1,0,0,0,106,109,1,0,0,0,107,105, + 1,0,0,0,107,108,1,0,0,0,108,110,1,0,0,0,109,107,1,0,0,0,110,111, + 5,59,0,0,111,166,1,0,0,0,112,114,5,30,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,118, + 5,77,0,0,118,124,3,14,7,0,119,120,5,68,0,0,120,121,5,77,0,0,121, + 123,3,14,7,0,122,119,1,0,0,0,123,126,1,0,0,0,124,122,1,0,0,0,124, + 125,1,0,0,0,125,127,1,0,0,0,126,124,1,0,0,0,127,128,5,59,0,0,128, + 166,1,0,0,0,129,131,5,31,0,0,130,132,5,70,0,0,131,130,1,0,0,0,131, + 132,1,0,0,0,132,133,1,0,0,0,133,134,5,60,0,0,134,135,3,14,7,0,135, + 136,5,59,0,0,136,166,1,0,0,0,137,139,5,32,0,0,138,140,5,70,0,0,139, + 138,1,0,0,0,139,140,1,0,0,0,140,141,1,0,0,0,141,142,5,60,0,0,142, + 143,3,14,7,0,143,144,5,68,0,0,144,145,3,14,7,0,145,146,5,59,0,0, + 146,166,1,0,0,0,147,148,5,33,0,0,148,150,5,77,0,0,149,151,5,70,0, + 0,150,149,1,0,0,0,150,151,1,0,0,0,151,163,1,0,0,0,152,153,5,60,0, + 0,153,158,3,14,7,0,154,155,5,68,0,0,155,157,3,14,7,0,156,154,1,0, + 0,0,157,160,1,0,0,0,158,156,1,0,0,0,158,159,1,0,0,0,159,161,1,0, + 0,0,160,158,1,0,0,0,161,162,5,59,0,0,162,164,1,0,0,0,163,152,1,0, + 0,0,163,164,1,0,0,0,164,166,1,0,0,0,165,39,1,0,0,0,165,47,1,0,0, + 0,165,55,1,0,0,0,165,63,1,0,0,0,165,73,1,0,0,0,165,81,1,0,0,0,165, + 89,1,0,0,0,165,97,1,0,0,0,165,112,1,0,0,0,165,129,1,0,0,0,165,137, + 1,0,0,0,165,147,1,0,0,0,166,7,1,0,0,0,167,171,5,76,0,0,168,171,5, + 77,0,0,169,171,3,14,7,0,170,167,1,0,0,0,170,168,1,0,0,0,170,169, + 1,0,0,0,171,9,1,0,0,0,172,174,5,47,0,0,173,175,5,70,0,0,174,173, + 1,0,0,0,174,175,1,0,0,0,175,181,1,0,0,0,176,178,5,48,0,0,177,179, + 5,70,0,0,178,177,1,0,0,0,178,179,1,0,0,0,179,181,1,0,0,0,180,172, + 1,0,0,0,180,176,1,0,0,0,181,11,1,0,0,0,182,184,3,4,2,0,183,185,5, + 70,0,0,184,183,1,0,0,0,184,185,1,0,0,0,185,189,1,0,0,0,186,189,3, + 6,3,0,187,189,3,10,5,0,188,182,1,0,0,0,188,186,1,0,0,0,188,187,1, + 0,0,0,189,13,1,0,0,0,190,191,6,7,-1,0,191,192,5,64,0,0,192,193,3, + 14,7,0,193,194,5,65,0,0,194,252,1,0,0,0,195,196,5,77,0,0,196,197, + 5,55,0,0,197,199,3,14,7,0,198,200,5,78,0,0,199,198,1,0,0,0,200,201, + 1,0,0,0,201,199,1,0,0,0,201,202,1,0,0,0,202,213,1,0,0,0,203,204, + 5,77,0,0,204,205,5,55,0,0,205,207,3,14,7,0,206,208,5,78,0,0,207, + 206,1,0,0,0,208,209,1,0,0,0,209,207,1,0,0,0,209,210,1,0,0,0,210, + 212,1,0,0,0,211,203,1,0,0,0,212,215,1,0,0,0,213,211,1,0,0,0,213, + 214,1,0,0,0,214,216,1,0,0,0,215,213,1,0,0,0,216,220,3,12,6,0,217, + 219,5,78,0,0,218,217,1,0,0,0,219,222,1,0,0,0,220,218,1,0,0,0,220, + 221,1,0,0,0,221,252,1,0,0,0,222,220,1,0,0,0,223,252,3,12,6,0,224, + 252,5,76,0,0,225,227,5,77,0,0,226,228,5,70,0,0,227,226,1,0,0,0,227, + 228,1,0,0,0,228,252,1,0,0,0,229,230,5,77,0,0,230,239,5,64,0,0,231, + 236,3,14,7,0,232,233,5,68,0,0,233,235,3,14,7,0,234,232,1,0,0,0,235, + 238,1,0,0,0,236,234,1,0,0,0,236,237,1,0,0,0,237,240,1,0,0,0,238, + 236,1,0,0,0,239,231,1,0,0,0,239,240,1,0,0,0,240,241,1,0,0,0,241, + 252,5,65,0,0,242,243,5,4,0,0,243,244,3,14,7,0,244,245,5,5,0,0,245, + 246,3,14,7,0,246,247,5,6,0,0,247,248,3,14,7,3,248,252,1,0,0,0,249, + 250,5,61,0,0,250,252,3,14,7,2,251,190,1,0,0,0,251,195,1,0,0,0,251, + 223,1,0,0,0,251,224,1,0,0,0,251,225,1,0,0,0,251,229,1,0,0,0,251, + 242,1,0,0,0,251,249,1,0,0,0,252,264,1,0,0,0,253,254,10,4,0,0,254, + 255,7,0,0,0,255,263,3,14,7,5,256,257,10,1,0,0,257,258,5,70,0,0,258, + 259,3,14,7,0,259,260,5,69,0,0,260,261,3,14,7,2,261,263,1,0,0,0,262, + 253,1,0,0,0,262,256,1,0,0,0,263,266,1,0,0,0,264,262,1,0,0,0,264, + 265,1,0,0,0,265,15,1,0,0,0,266,264,1,0,0,0,34,37,41,49,57,65,75, + 83,91,99,107,114,124,131,139,150,158,163,165,170,174,178,180,184, + 188,201,209,213,220,227,236,239,251,262,264 ] class SubstraitTypeParser ( Parser ): @@ -117,106 +124,127 @@ class SubstraitTypeParser ( Parser ): sharedContextCache = PredictionContextCache() literalNames = [ "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "':='", "'='", - "'!='", "'>='", "'<='", "'>'", "'<'", "'!'", "'+'", - "'-'", "'*'", "'/'", "'%'", "'['", "']'", "'('", "')'", - "';'", "','", "'?'", "':'", "'''" ] - - symbolicNames = [ "", "If", "Then", "Else", "Boolean", "I8", - "I16", "I32", "I64", "FP32", "FP64", "String", "Binary", - "Timestamp", "TimestampTZ", "Date", "Time", "IntervalYear", - "IntervalDay", "IntervalCompound", "UUID", "Decimal", - "PrecisionTimestamp", "PrecisionTimestampTZ", "FixedChar", - "VarChar", "FixedBinary", "Struct", "NStruct", "List", - "Map", "ANY", "UserDefined", "And", "Or", "Assign", - "Eq", "NotEquals", "Gte", "Lte", "Gt", "Lt", "Bang", + "'IF'", "'THEN'", "'ELSE'", "'BOOLEAN'", "'I8'", "'I16'", + "'I32'", "'I64'", "'FP32'", "'FP64'", "'STRING'", "'BINARY'", + "'TIMESTAMP'", "'TIMESTAMP_TZ'", "'DATE'", "'TIME'", + "'INTERVAL_YEAR'", "'INTERVAL_DAY'", "'UUID'", "'DECIMAL'", + "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'", + "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'", + "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'", "'STR'", + "'VBIN'", "'TS'", "'TSTZ'", "'IYEAR'", "'IDAY'", "'DEC'", + "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", + "'ANY'", "", "'::'", "'+'", "'-'", "'*'", + "'/'", "'%'", "'='", "'!='", "'>='", "'<='", "'>'", + "'<'", "'!'", "", "", "'('", "')'", + "'['", "']'", "','", "':'", "'?'", "'#'", "'.'", "'AND'", + "'OR'", "':='" ] + + symbolicNames = [ "", "LineComment", "BlockComment", "Whitespace", + "If", "Then", "Else", "Boolean", "I8", "I16", "I32", + "I64", "FP32", "FP64", "String", "Binary", "Timestamp", + "Timestamp_TZ", "Date", "Time", "Interval_Year", "Interval_Day", + "UUID", "Decimal", "Precision_Timestamp", "Precision_Timestamp_TZ", + "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct", + "List", "Map", "UserDefined", "Bool", "Str", "VBin", + "Ts", "TsTZ", "IYear", "IDay", "Dec", "PTs", "PTsTZ", + "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus", "Minus", "Asterisk", "ForwardSlash", "Percent", - "OBracket", "CBracket", "OParen", "CParen", "SColon", - "Comma", "QMark", "Colon", "SingleQuote", "Number", - "Identifier", "LineComment", "BlockComment", "Whitespace", - "Newline" ] - - RULE_start = 0 - RULE_scalarType = 1 - RULE_parameterizedType = 2 - RULE_numericParameter = 3 - RULE_anyType = 4 - RULE_type = 5 - RULE_expr = 6 - - ruleNames = [ "start", "scalarType", "parameterizedType", "numericParameter", - "anyType", "type", "expr" ] + "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", + "CAngleBracket", "OParen", "CParen", "OBracket", "CBracket", + "Comma", "Colon", "QMark", "Hash", "Dot", "And", "Or", + "Assign", "Number", "Identifier", "Newline" ] + + RULE_startRule = 0 + RULE_typeStatement = 1 + RULE_scalarType = 2 + RULE_parameterizedType = 3 + RULE_numericParameter = 4 + RULE_anyType = 5 + RULE_typeDef = 6 + RULE_expr = 7 + + ruleNames = [ "startRule", "typeStatement", "scalarType", "parameterizedType", + "numericParameter", "anyType", "typeDef", "expr" ] EOF = Token.EOF - If=1 - Then=2 - Else=3 - Boolean=4 - I8=5 - I16=6 - I32=7 - I64=8 - FP32=9 - FP64=10 - String=11 - Binary=12 - Timestamp=13 - TimestampTZ=14 - Date=15 - Time=16 - IntervalYear=17 - IntervalDay=18 - IntervalCompound=19 - UUID=20 - Decimal=21 - PrecisionTimestamp=22 - PrecisionTimestampTZ=23 - FixedChar=24 - VarChar=25 - FixedBinary=26 - Struct=27 - NStruct=28 - List=29 - Map=30 - ANY=31 - UserDefined=32 - And=33 - Or=34 - Assign=35 - Eq=36 - NotEquals=37 - Gte=38 - Lte=39 - Gt=40 - Lt=41 - Bang=42 - Plus=43 - Minus=44 - Asterisk=45 - ForwardSlash=46 - Percent=47 - OBracket=48 - CBracket=49 - OParen=50 - CParen=51 - SColon=52 - Comma=53 - QMark=54 - Colon=55 - SingleQuote=56 - Number=57 - Identifier=58 - LineComment=59 - BlockComment=60 - Whitespace=61 - Newline=62 + LineComment=1 + BlockComment=2 + Whitespace=3 + If=4 + Then=5 + Else=6 + Boolean=7 + I8=8 + I16=9 + I32=10 + I64=11 + FP32=12 + FP64=13 + String=14 + Binary=15 + Timestamp=16 + Timestamp_TZ=17 + Date=18 + Time=19 + Interval_Year=20 + Interval_Day=21 + UUID=22 + Decimal=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 + Ts=37 + TsTZ=38 + IYear=39 + IDay=40 + Dec=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 + Number=76 + Identifier=77 + Newline=78 def __init__(self, input:TokenStream, output:TextIO = sys.stdout): super().__init__(input, output) @@ -227,7 +255,7 @@ def __init__(self, input:TokenStream, output:TextIO = sys.stdout): - class StartContext(ParserRuleContext): + class StartRuleContext(ParserRuleContext): __slots__ = 'parser' def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): @@ -242,28 +270,75 @@ def EOF(self): return self.getToken(SubstraitTypeParser.EOF, 0) def getRuleIndex(self): - return SubstraitTypeParser.RULE_start + return SubstraitTypeParser.RULE_startRule def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStart" ): - listener.enterStart(self) + if hasattr( listener, "enterStartRule" ): + listener.enterStartRule(self) def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStart" ): - listener.exitStart(self) + if hasattr( listener, "exitStartRule" ): + listener.exitStartRule(self) - def start(self): + def startRule(self): - localctx = SubstraitTypeParser.StartContext(self, self._ctx, self.state) - self.enterRule(localctx, 0, self.RULE_start) + localctx = SubstraitTypeParser.StartRuleContext(self, self._ctx, self.state) + self.enterRule(localctx, 0, self.RULE_startRule) try: self.enterOuterAlt(localctx, 1) - self.state = 14 + self.state = 16 self.expr(0) - self.state = 15 + self.state = 17 + self.match(SubstraitTypeParser.EOF) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + class TypeStatementContext(ParserRuleContext): + __slots__ = 'parser' + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeDef(self): + return self.getTypedRuleContext(SubstraitTypeParser.TypeDefContext,0) + + + def EOF(self): + return self.getToken(SubstraitTypeParser.EOF, 0) + + def getRuleIndex(self): + return SubstraitTypeParser.RULE_typeStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeStatement" ): + listener.enterTypeStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeStatement" ): + listener.exitTypeStatement(self) + + + + + def typeStatement(self): + + localctx = SubstraitTypeParser.TypeStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 2, self.RULE_typeStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 19 + self.typeDef() + self.state = 20 self.match(SubstraitTypeParser.EOF) except RecognitionException as re: localctx.exception = re @@ -345,26 +420,6 @@ def exitRule(self, listener:ParseTreeListener): listener.exitI64(self) - class UserDefinedContext(ScalarTypeContext): - - def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext - super().__init__(parser) - self.copyFrom(ctx) - - def UserDefined(self): - return self.getToken(SubstraitTypeParser.UserDefined, 0) - def Identifier(self): - return self.getToken(SubstraitTypeParser.Identifier, 0) - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUserDefined" ): - listener.enterUserDefined(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUserDefined" ): - listener.exitUserDefined(self) - - class I32Context(ScalarTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext @@ -389,8 +444,8 @@ def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypePar super().__init__(parser) self.copyFrom(ctx) - def IntervalYear(self): - return self.getToken(SubstraitTypeParser.IntervalYear, 0) + def Interval_Year(self): + return self.getToken(SubstraitTypeParser.Interval_Year, 0) def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterIntervalYear" ): @@ -455,6 +510,24 @@ def exitRule(self, listener:ParseTreeListener): listener.exitI16(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) + + class BinaryContext(ScalarTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext @@ -527,24 +600,6 @@ def exitRule(self, listener:ParseTreeListener): listener.exitTime(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) - - class TimestampContext(ScalarTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ScalarTypeContext @@ -569,8 +624,8 @@ def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypePar super().__init__(parser) self.copyFrom(ctx) - def TimestampTZ(self): - return self.getToken(SubstraitTypeParser.TimestampTZ, 0) + def Timestamp_TZ(self): + return self.getToken(SubstraitTypeParser.Timestamp_TZ, 0) def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterTimestampTz" ): @@ -585,109 +640,101 @@ def exitRule(self, listener:ParseTreeListener): def scalarType(self): localctx = SubstraitTypeParser.ScalarTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 2, self.RULE_scalarType) + self.enterRule(localctx, 4, self.RULE_scalarType) try: - self.state = 34 + self.state = 37 self._errHandler.sync(self) token = self._input.LA(1) - if token in [4]: + if token in [7]: localctx = SubstraitTypeParser.BooleanContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 17 + self.state = 22 self.match(SubstraitTypeParser.Boolean) pass - elif token in [5]: + elif token in [8]: localctx = SubstraitTypeParser.I8Context(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 18 + self.state = 23 self.match(SubstraitTypeParser.I8) pass - elif token in [6]: + elif token in [9]: localctx = SubstraitTypeParser.I16Context(self, localctx) self.enterOuterAlt(localctx, 3) - self.state = 19 + self.state = 24 self.match(SubstraitTypeParser.I16) pass - elif token in [7]: + elif token in [10]: localctx = SubstraitTypeParser.I32Context(self, localctx) self.enterOuterAlt(localctx, 4) - self.state = 20 + self.state = 25 self.match(SubstraitTypeParser.I32) pass - elif token in [8]: + elif token in [11]: localctx = SubstraitTypeParser.I64Context(self, localctx) self.enterOuterAlt(localctx, 5) - self.state = 21 + self.state = 26 self.match(SubstraitTypeParser.I64) pass - elif token in [9]: + elif token in [12]: localctx = SubstraitTypeParser.Fp32Context(self, localctx) self.enterOuterAlt(localctx, 6) - self.state = 22 + self.state = 27 self.match(SubstraitTypeParser.FP32) pass - elif token in [10]: + elif token in [13]: localctx = SubstraitTypeParser.Fp64Context(self, localctx) self.enterOuterAlt(localctx, 7) - self.state = 23 + self.state = 28 self.match(SubstraitTypeParser.FP64) pass - elif token in [11]: + elif token in [14]: localctx = SubstraitTypeParser.StringContext(self, localctx) self.enterOuterAlt(localctx, 8) - self.state = 24 + self.state = 29 self.match(SubstraitTypeParser.String) pass - elif token in [12]: + elif token in [15]: localctx = SubstraitTypeParser.BinaryContext(self, localctx) self.enterOuterAlt(localctx, 9) - self.state = 25 + self.state = 30 self.match(SubstraitTypeParser.Binary) pass - elif token in [13]: + elif token in [16]: localctx = SubstraitTypeParser.TimestampContext(self, localctx) self.enterOuterAlt(localctx, 10) - self.state = 26 + self.state = 31 self.match(SubstraitTypeParser.Timestamp) pass - elif token in [14]: + elif token in [17]: localctx = SubstraitTypeParser.TimestampTzContext(self, localctx) self.enterOuterAlt(localctx, 11) - self.state = 27 - self.match(SubstraitTypeParser.TimestampTZ) + self.state = 32 + self.match(SubstraitTypeParser.Timestamp_TZ) pass - elif token in [15]: + elif token in [18]: localctx = SubstraitTypeParser.DateContext(self, localctx) self.enterOuterAlt(localctx, 12) - self.state = 28 + self.state = 33 self.match(SubstraitTypeParser.Date) pass - elif token in [16]: + elif token in [19]: localctx = SubstraitTypeParser.TimeContext(self, localctx) self.enterOuterAlt(localctx, 13) - self.state = 29 + self.state = 34 self.match(SubstraitTypeParser.Time) pass - elif token in [17]: + elif token in [20]: localctx = SubstraitTypeParser.IntervalYearContext(self, localctx) self.enterOuterAlt(localctx, 14) - self.state = 30 - self.match(SubstraitTypeParser.IntervalYear) + self.state = 35 + self.match(SubstraitTypeParser.Interval_Year) pass - elif token in [20]: + elif token in [22]: localctx = SubstraitTypeParser.UuidContext(self, localctx) self.enterOuterAlt(localctx, 15) - self.state = 31 + self.state = 36 self.match(SubstraitTypeParser.UUID) pass - elif token in [32]: - localctx = SubstraitTypeParser.UserDefinedContext(self, localctx) - self.enterOuterAlt(localctx, 16) - self.state = 32 - self.match(SubstraitTypeParser.UserDefined) - self.state = 33 - self.match(SubstraitTypeParser.Identifier) - pass else: raise NoViableAltException(self) @@ -761,8 +808,8 @@ def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypePar self.precision = None # NumericParameterContext self.copyFrom(ctx) - def PrecisionTimestampTZ(self): - return self.getToken(SubstraitTypeParser.PrecisionTimestampTZ, 0) + def Precision_Timestamp_TZ(self): + return self.getToken(SubstraitTypeParser.Precision_Timestamp_TZ, 0) def Lt(self): return self.getToken(SubstraitTypeParser.Lt, 0) def Gt(self): @@ -828,7 +875,7 @@ class VarCharContext(ParameterizedTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext super().__init__(parser) self.isnull = None # Token - self.len_ = None # NumericParameterContext + self.length = None # NumericParameterContext self.copyFrom(ctx) def VarChar(self): @@ -857,7 +904,7 @@ class FixedBinaryContext(ParameterizedTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext super().__init__(parser) self.isnull = None # Token - self.len_ = None # NumericParameterContext + self.length = None # NumericParameterContext self.copyFrom(ctx) def FixedBinary(self): @@ -881,62 +928,42 @@ def exitRule(self, listener:ParseTreeListener): listener.exitFixedBinary(self) - class IntervalCompoundContext(ParameterizedTypeContext): + class UserDefinedContext(ParameterizedTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext super().__init__(parser) self.isnull = None # Token - self.precision = None # NumericParameterContext self.copyFrom(ctx) - def IntervalCompound(self): - return self.getToken(SubstraitTypeParser.IntervalCompound, 0) + def UserDefined(self): + return self.getToken(SubstraitTypeParser.UserDefined, 0) + def Identifier(self): + return self.getToken(SubstraitTypeParser.Identifier, 0) def Lt(self): return self.getToken(SubstraitTypeParser.Lt, 0) - def Gt(self): - return self.getToken(SubstraitTypeParser.Gt, 0) - def numericParameter(self): - return self.getTypedRuleContext(SubstraitTypeParser.NumericParameterContext,0) - - def QMark(self): - return self.getToken(SubstraitTypeParser.QMark, 0) - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIntervalCompound" ): - listener.enterIntervalCompound(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIntervalCompound" ): - listener.exitIntervalCompound(self) - - - class IntervalDayContext(ParameterizedTypeContext): - - def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext - super().__init__(parser) - self.isnull = None # Token - self.precision = None # NumericParameterContext - self.copyFrom(ctx) + def expr(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(SubstraitTypeParser.ExprContext) + else: + return self.getTypedRuleContext(SubstraitTypeParser.ExprContext,i) - def IntervalDay(self): - return self.getToken(SubstraitTypeParser.IntervalDay, 0) - def Lt(self): - return self.getToken(SubstraitTypeParser.Lt, 0) def Gt(self): return self.getToken(SubstraitTypeParser.Gt, 0) - def numericParameter(self): - return self.getTypedRuleContext(SubstraitTypeParser.NumericParameterContext,0) - def QMark(self): return self.getToken(SubstraitTypeParser.QMark, 0) + def Comma(self, i:int=None): + if i is None: + return self.getTokens(SubstraitTypeParser.Comma) + else: + return self.getToken(SubstraitTypeParser.Comma, i) def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIntervalDay" ): - listener.enterIntervalDay(self) + if hasattr( listener, "enterUserDefined" ): + listener.enterUserDefined(self) def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIntervalDay" ): - listener.exitIntervalDay(self) + if hasattr( listener, "exitUserDefined" ): + listener.exitUserDefined(self) class PrecisionTimestampContext(ParameterizedTypeContext): @@ -947,8 +974,8 @@ def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypePar self.precision = None # NumericParameterContext self.copyFrom(ctx) - def PrecisionTimestamp(self): - return self.getToken(SubstraitTypeParser.PrecisionTimestamp, 0) + def Precision_Timestamp(self): + return self.getToken(SubstraitTypeParser.Precision_Timestamp, 0) def Lt(self): return self.getToken(SubstraitTypeParser.Lt, 0) def Gt(self): @@ -973,7 +1000,7 @@ class FixedCharContext(ParameterizedTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext super().__init__(parser) self.isnull = None # Token - self.len_ = None # NumericParameterContext + self.length = None # NumericParameterContext self.copyFrom(ctx) def FixedChar(self): @@ -1095,291 +1122,340 @@ def exitRule(self, listener:ParseTreeListener): listener.exitMap(self) + class PrecisionIntervalDayContext(ParameterizedTypeContext): + + def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext + super().__init__(parser) + self.isnull = None # Token + self.precision = None # NumericParameterContext + self.copyFrom(ctx) + + def Interval_Day(self): + return self.getToken(SubstraitTypeParser.Interval_Day, 0) + def Lt(self): + return self.getToken(SubstraitTypeParser.Lt, 0) + def Gt(self): + return self.getToken(SubstraitTypeParser.Gt, 0) + def numericParameter(self): + return self.getTypedRuleContext(SubstraitTypeParser.NumericParameterContext,0) + + def QMark(self): + return self.getToken(SubstraitTypeParser.QMark, 0) + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrecisionIntervalDay" ): + listener.enterPrecisionIntervalDay(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrecisionIntervalDay" ): + listener.exitPrecisionIntervalDay(self) + + def parameterizedType(self): localctx = SubstraitTypeParser.ParameterizedTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 4, self.RULE_parameterizedType) + self.enterRule(localctx, 6, self.RULE_parameterizedType) self._la = 0 # Token type try: - self.state = 152 + self.state = 165 self._errHandler.sync(self) token = self._input.LA(1) - if token in [24]: + if token in [26]: localctx = SubstraitTypeParser.FixedCharContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 36 + self.state = 39 self.match(SubstraitTypeParser.FixedChar) - self.state = 38 + self.state = 41 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 37 + if _la==70: + self.state = 40 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 40 + self.state = 43 self.match(SubstraitTypeParser.Lt) - self.state = 41 - localctx.len_ = self.numericParameter() - self.state = 42 + self.state = 44 + localctx.length = self.numericParameter() + self.state = 45 self.match(SubstraitTypeParser.Gt) pass - elif token in [25]: + elif token in [27]: localctx = SubstraitTypeParser.VarCharContext(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 44 + self.state = 47 self.match(SubstraitTypeParser.VarChar) - self.state = 46 + self.state = 49 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 45 + if _la==70: + self.state = 48 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 48 + self.state = 51 self.match(SubstraitTypeParser.Lt) - self.state = 49 - localctx.len_ = self.numericParameter() - self.state = 50 + self.state = 52 + localctx.length = self.numericParameter() + self.state = 53 self.match(SubstraitTypeParser.Gt) pass - elif token in [26]: + elif token in [28]: localctx = SubstraitTypeParser.FixedBinaryContext(self, localctx) self.enterOuterAlt(localctx, 3) - self.state = 52 + self.state = 55 self.match(SubstraitTypeParser.FixedBinary) - self.state = 54 + self.state = 57 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 53 + if _la==70: + self.state = 56 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 56 + self.state = 59 self.match(SubstraitTypeParser.Lt) - self.state = 57 - localctx.len_ = self.numericParameter() - self.state = 58 + self.state = 60 + localctx.length = self.numericParameter() + self.state = 61 self.match(SubstraitTypeParser.Gt) pass - elif token in [21]: + elif token in [23]: localctx = SubstraitTypeParser.DecimalContext(self, localctx) self.enterOuterAlt(localctx, 4) - self.state = 60 + self.state = 63 self.match(SubstraitTypeParser.Decimal) - self.state = 62 + self.state = 65 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 61 + if _la==70: + self.state = 64 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 64 + self.state = 67 self.match(SubstraitTypeParser.Lt) - self.state = 65 + self.state = 68 localctx.precision = self.numericParameter() - self.state = 66 + self.state = 69 self.match(SubstraitTypeParser.Comma) - self.state = 67 + self.state = 70 localctx.scale = self.numericParameter() - self.state = 68 + self.state = 71 self.match(SubstraitTypeParser.Gt) pass - elif token in [18]: - localctx = SubstraitTypeParser.IntervalDayContext(self, localctx) + elif token in [21]: + localctx = SubstraitTypeParser.PrecisionIntervalDayContext(self, localctx) self.enterOuterAlt(localctx, 5) - self.state = 70 - self.match(SubstraitTypeParser.IntervalDay) - self.state = 72 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==54: - self.state = 71 - localctx.isnull = self.match(SubstraitTypeParser.QMark) - - - self.state = 74 - self.match(SubstraitTypeParser.Lt) + self.state = 73 + self.match(SubstraitTypeParser.Interval_Day) self.state = 75 - localctx.precision = self.numericParameter() - self.state = 76 - self.match(SubstraitTypeParser.Gt) - pass - elif token in [19]: - localctx = SubstraitTypeParser.IntervalCompoundContext(self, localctx) - self.enterOuterAlt(localctx, 6) - self.state = 78 - self.match(SubstraitTypeParser.IntervalCompound) - self.state = 80 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 79 + if _la==70: + self.state = 74 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 82 + self.state = 77 self.match(SubstraitTypeParser.Lt) - self.state = 83 + self.state = 78 localctx.precision = self.numericParameter() - self.state = 84 + self.state = 79 self.match(SubstraitTypeParser.Gt) pass - elif token in [22]: + elif token in [24]: localctx = SubstraitTypeParser.PrecisionTimestampContext(self, localctx) - self.enterOuterAlt(localctx, 7) - self.state = 86 - self.match(SubstraitTypeParser.PrecisionTimestamp) - self.state = 88 + self.enterOuterAlt(localctx, 6) + self.state = 81 + self.match(SubstraitTypeParser.Precision_Timestamp) + self.state = 83 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 87 + if _la==70: + self.state = 82 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 90 + self.state = 85 self.match(SubstraitTypeParser.Lt) - self.state = 91 + self.state = 86 localctx.precision = self.numericParameter() - self.state = 92 + self.state = 87 self.match(SubstraitTypeParser.Gt) pass - elif token in [23]: + elif token in [25]: localctx = SubstraitTypeParser.PrecisionTimestampTZContext(self, localctx) - self.enterOuterAlt(localctx, 8) - self.state = 94 - self.match(SubstraitTypeParser.PrecisionTimestampTZ) - self.state = 96 + self.enterOuterAlt(localctx, 7) + self.state = 89 + self.match(SubstraitTypeParser.Precision_Timestamp_TZ) + self.state = 91 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 95 + if _la==70: + self.state = 90 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 98 + self.state = 93 self.match(SubstraitTypeParser.Lt) - self.state = 99 + self.state = 94 localctx.precision = self.numericParameter() - self.state = 100 + self.state = 95 self.match(SubstraitTypeParser.Gt) pass - elif token in [27]: + elif token in [29]: localctx = SubstraitTypeParser.StructContext(self, localctx) - self.enterOuterAlt(localctx, 9) - self.state = 102 + self.enterOuterAlt(localctx, 8) + self.state = 97 self.match(SubstraitTypeParser.Struct) - self.state = 104 + self.state = 99 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 103 + if _la==70: + self.state = 98 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 106 + self.state = 101 self.match(SubstraitTypeParser.Lt) - self.state = 107 + self.state = 102 self.expr(0) - self.state = 112 + self.state = 107 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==53: - self.state = 108 + while _la==68: + self.state = 103 self.match(SubstraitTypeParser.Comma) - self.state = 109 + self.state = 104 self.expr(0) - self.state = 114 + self.state = 109 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 115 + self.state = 110 self.match(SubstraitTypeParser.Gt) pass - elif token in [28]: + elif token in [30]: localctx = SubstraitTypeParser.NStructContext(self, localctx) - self.enterOuterAlt(localctx, 10) - self.state = 117 + self.enterOuterAlt(localctx, 9) + self.state = 112 self.match(SubstraitTypeParser.NStruct) - self.state = 119 + self.state = 114 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 118 + if _la==70: + self.state = 113 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 121 + self.state = 116 self.match(SubstraitTypeParser.Lt) - self.state = 122 + self.state = 117 self.match(SubstraitTypeParser.Identifier) - self.state = 123 + self.state = 118 self.expr(0) - self.state = 129 + self.state = 124 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==53: - self.state = 124 + while _la==68: + self.state = 119 self.match(SubstraitTypeParser.Comma) - self.state = 125 + self.state = 120 self.match(SubstraitTypeParser.Identifier) - self.state = 126 + self.state = 121 self.expr(0) - self.state = 131 + self.state = 126 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 132 + self.state = 127 self.match(SubstraitTypeParser.Gt) pass - elif token in [29]: + elif token in [31]: localctx = SubstraitTypeParser.ListContext(self, localctx) - self.enterOuterAlt(localctx, 11) - self.state = 134 + self.enterOuterAlt(localctx, 10) + self.state = 129 self.match(SubstraitTypeParser.List) - self.state = 136 + self.state = 131 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 135 + if _la==70: + self.state = 130 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 138 + self.state = 133 self.match(SubstraitTypeParser.Lt) - self.state = 139 + self.state = 134 self.expr(0) - self.state = 140 + self.state = 135 self.match(SubstraitTypeParser.Gt) pass - elif token in [30]: + elif token in [32]: localctx = SubstraitTypeParser.MapContext(self, localctx) - self.enterOuterAlt(localctx, 12) - self.state = 142 + self.enterOuterAlt(localctx, 11) + self.state = 137 self.match(SubstraitTypeParser.Map) - self.state = 144 + self.state = 139 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==54: - self.state = 143 + if _la==70: + self.state = 138 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 146 + self.state = 141 self.match(SubstraitTypeParser.Lt) - self.state = 147 + self.state = 142 localctx.key = self.expr(0) - self.state = 148 + self.state = 143 self.match(SubstraitTypeParser.Comma) - self.state = 149 + self.state = 144 localctx.value = self.expr(0) - self.state = 150 + self.state = 145 self.match(SubstraitTypeParser.Gt) + pass + elif token in [33]: + localctx = SubstraitTypeParser.UserDefinedContext(self, localctx) + self.enterOuterAlt(localctx, 12) + self.state = 147 + self.match(SubstraitTypeParser.UserDefined) + self.state = 148 + self.match(SubstraitTypeParser.Identifier) + self.state = 150 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,14,self._ctx) + if la_ == 1: + self.state = 149 + localctx.isnull = self.match(SubstraitTypeParser.QMark) + + + self.state = 163 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,16,self._ctx) + if la_ == 1: + self.state = 152 + self.match(SubstraitTypeParser.Lt) + self.state = 153 + self.expr(0) + self.state = 158 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==68: + self.state = 154 + self.match(SubstraitTypeParser.Comma) + self.state = 155 + self.expr(0) + self.state = 160 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 161 + self.match(SubstraitTypeParser.Gt) + + pass else: raise NoViableAltException(self) @@ -1469,29 +1545,29 @@ def exitRule(self, listener:ParseTreeListener): def numericParameter(self): localctx = SubstraitTypeParser.NumericParameterContext(self, self._ctx, self.state) - self.enterRule(localctx, 6, self.RULE_numericParameter) + self.enterRule(localctx, 8, self.RULE_numericParameter) try: - self.state = 157 + self.state = 170 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,16,self._ctx) + la_ = self._interp.adaptivePredict(self._input,18,self._ctx) if la_ == 1: localctx = SubstraitTypeParser.NumericLiteralContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 154 + self.state = 167 self.match(SubstraitTypeParser.Number) pass elif la_ == 2: localctx = SubstraitTypeParser.NumericParameterNameContext(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 155 + self.state = 168 self.match(SubstraitTypeParser.Identifier) pass elif la_ == 3: localctx = SubstraitTypeParser.NumericExpressionContext(self, localctx) self.enterOuterAlt(localctx, 3) - self.state = 156 + self.state = 169 self.expr(0) pass @@ -1511,9 +1587,16 @@ class AnyTypeContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser + self.isnull = None # Token - def ANY(self): - return self.getToken(SubstraitTypeParser.ANY, 0) + def Any(self): + return self.getToken(SubstraitTypeParser.Any, 0) + + def QMark(self): + return self.getToken(SubstraitTypeParser.QMark, 0) + + def AnyVar(self): + return self.getToken(SubstraitTypeParser.AnyVar, 0) def getRuleIndex(self): return SubstraitTypeParser.RULE_anyType @@ -1532,11 +1615,40 @@ def exitRule(self, listener:ParseTreeListener): def anyType(self): localctx = SubstraitTypeParser.AnyTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 8, self.RULE_anyType) + self.enterRule(localctx, 10, self.RULE_anyType) try: - self.enterOuterAlt(localctx, 1) - self.state = 159 - self.match(SubstraitTypeParser.ANY) + self.state = 180 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [47]: + self.enterOuterAlt(localctx, 1) + self.state = 172 + self.match(SubstraitTypeParser.Any) + self.state = 174 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,19,self._ctx) + if la_ == 1: + self.state = 173 + localctx.isnull = self.match(SubstraitTypeParser.QMark) + + + pass + elif token in [48]: + self.enterOuterAlt(localctx, 2) + self.state = 176 + self.match(SubstraitTypeParser.AnyVar) + self.state = 178 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,20,self._ctx) + if la_ == 1: + self.state = 177 + localctx.isnull = self.match(SubstraitTypeParser.QMark) + + + pass + else: + raise NoViableAltException(self) + except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) @@ -1546,7 +1658,7 @@ def anyType(self): return localctx - class TypeContext(ParserRuleContext): + class TypeDefContext(ParserRuleContext): __slots__ = 'parser' def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): @@ -1570,57 +1682,49 @@ def anyType(self): def getRuleIndex(self): - return SubstraitTypeParser.RULE_type + return SubstraitTypeParser.RULE_typeDef def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterType" ): - listener.enterType(self) + if hasattr( listener, "enterTypeDef" ): + listener.enterTypeDef(self) def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitType" ): - listener.exitType(self) + if hasattr( listener, "exitTypeDef" ): + listener.exitTypeDef(self) - def type_(self): + def typeDef(self): - localctx = SubstraitTypeParser.TypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 10, self.RULE_type) + localctx = SubstraitTypeParser.TypeDefContext(self, self._ctx, self.state) + self.enterRule(localctx, 12, self.RULE_typeDef) try: - self.state = 170 + self.state = 188 self._errHandler.sync(self) token = self._input.LA(1) - if token in [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 32]: + if token in [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22]: self.enterOuterAlt(localctx, 1) - self.state = 161 + self.state = 182 self.scalarType() - self.state = 163 + self.state = 184 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,17,self._ctx) + la_ = self._interp.adaptivePredict(self._input,22,self._ctx) if la_ == 1: - self.state = 162 + self.state = 183 localctx.isnull = self.match(SubstraitTypeParser.QMark) pass - elif token in [18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]: + elif token in [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]: self.enterOuterAlt(localctx, 2) - self.state = 165 + self.state = 186 self.parameterizedType() pass - elif token in [31]: + elif token in [47, 48]: self.enterOuterAlt(localctx, 3) - self.state = 166 + self.state = 187 self.anyType() - self.state = 168 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,18,self._ctx) - if la_ == 1: - self.state = 167 - localctx.isnull = self.match(SubstraitTypeParser.QMark) - - pass else: raise NoViableAltException(self) @@ -1687,8 +1791,8 @@ def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypePar super().__init__(parser) self.copyFrom(ctx) - def type_(self): - return self.getTypedRuleContext(SubstraitTypeParser.TypeContext,0) + def typeDef(self): + return self.getTypedRuleContext(SubstraitTypeParser.TypeDefContext,0) def enterRule(self, listener:ParseTreeListener): @@ -1704,7 +1808,7 @@ class MultilineDefinitionContext(ExprContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ExprContext super().__init__(parser) - self.finalType = None # TypeContext + self.finalType = None # TypeDefContext self.copyFrom(ctx) def Identifier(self, i:int=None): @@ -1723,8 +1827,8 @@ def expr(self, i:int=None): else: return self.getTypedRuleContext(SubstraitTypeParser.ExprContext,i) - def type_(self): - return self.getTypedRuleContext(SubstraitTypeParser.TypeContext,0) + def typeDef(self): + return self.getTypedRuleContext(SubstraitTypeParser.TypeDefContext,0) def Newline(self, i:int=None): if i is None: @@ -1799,8 +1903,8 @@ def Gt(self): return self.getToken(SubstraitTypeParser.Gt, 0) def Eq(self): return self.getToken(SubstraitTypeParser.Eq, 0) - def NotEquals(self): - return self.getToken(SubstraitTypeParser.NotEquals, 0) + def Ne(self): + return self.getToken(SubstraitTypeParser.Ne, 0) def Lte(self): return self.getToken(SubstraitTypeParser.Lte, 0) def Gte(self): @@ -1819,28 +1923,6 @@ def exitRule(self, listener:ParseTreeListener): listener.exitBinaryExpr(self) - class TypeParamContext(ExprContext): - - def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ExprContext - super().__init__(parser) - self.identifier = None # Token - self.isnull = None # Token - self.copyFrom(ctx) - - def Identifier(self): - return self.getToken(SubstraitTypeParser.Identifier, 0) - def QMark(self): - return self.getToken(SubstraitTypeParser.QMark, 0) - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeParam" ): - listener.enterTypeParam(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeParam" ): - listener.exitTypeParam(self) - - class ParenExpressionContext(ExprContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ExprContext @@ -1864,6 +1946,27 @@ def exitRule(self, listener:ParseTreeListener): listener.exitParenExpression(self) + class ParameterNameContext(ExprContext): + + def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ExprContext + super().__init__(parser) + self.isnull = None # Token + self.copyFrom(ctx) + + def Identifier(self): + return self.getToken(SubstraitTypeParser.Identifier, 0) + def QMark(self): + return self.getToken(SubstraitTypeParser.QMark, 0) + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterParameterName" ): + listener.enterParameterName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitParameterName" ): + listener.exitParameterName(self) + + class FunctionCallContext(ExprContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ExprContext @@ -1922,7 +2025,6 @@ class LiteralNumberContext(ExprContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ExprContext super().__init__(parser) - self.number = None # Token self.copyFrom(ctx) def Number(self): @@ -1943,24 +2045,24 @@ def expr(self, _p:int=0): _parentState = self.state localctx = SubstraitTypeParser.ExprContext(self, self._ctx, _parentState) _prevctx = localctx - _startState = 12 - self.enterRecursionRule(localctx, 12, self.RULE_expr, _p) + _startState = 14 + self.enterRecursionRule(localctx, 14, self.RULE_expr, _p) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 233 + self.state = 251 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,27,self._ctx) + la_ = self._interp.adaptivePredict(self._input,31,self._ctx) if la_ == 1: localctx = SubstraitTypeParser.ParenExpressionContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 173 + self.state = 191 self.match(SubstraitTypeParser.OParen) - self.state = 174 + self.state = 192 self.expr(0) - self.state = 175 + self.state = 193 self.match(SubstraitTypeParser.CParen) pass @@ -1968,62 +2070,62 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.MultilineDefinitionContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 177 + self.state = 195 self.match(SubstraitTypeParser.Identifier) - self.state = 178 + self.state = 196 self.match(SubstraitTypeParser.Eq) - self.state = 179 + self.state = 197 self.expr(0) - self.state = 181 + self.state = 199 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 180 + self.state = 198 self.match(SubstraitTypeParser.Newline) - self.state = 183 + self.state = 201 self._errHandler.sync(self) _la = self._input.LA(1) - if not (_la==62): + if not (_la==78): break - self.state = 195 + self.state = 213 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==58: - self.state = 185 + while _la==77: + self.state = 203 self.match(SubstraitTypeParser.Identifier) - self.state = 186 + self.state = 204 self.match(SubstraitTypeParser.Eq) - self.state = 187 + self.state = 205 self.expr(0) - self.state = 189 + self.state = 207 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 188 + self.state = 206 self.match(SubstraitTypeParser.Newline) - self.state = 191 + self.state = 209 self._errHandler.sync(self) _la = self._input.LA(1) - if not (_la==62): + if not (_la==78): break - self.state = 197 + self.state = 215 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 198 - localctx.finalType = self.type_() - self.state = 202 + self.state = 216 + localctx.finalType = self.typeDef() + self.state = 220 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,23,self._ctx) + _alt = self._interp.adaptivePredict(self._input,27,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 199 + self.state = 217 self.match(SubstraitTypeParser.Newline) - self.state = 204 + self.state = 222 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,23,self._ctx) + _alt = self._interp.adaptivePredict(self._input,27,self._ctx) pass @@ -2031,29 +2133,29 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.TypeLiteralContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 205 - self.type_() + self.state = 223 + self.typeDef() pass elif la_ == 4: localctx = SubstraitTypeParser.LiteralNumberContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 206 - localctx.number = self.match(SubstraitTypeParser.Number) + self.state = 224 + self.match(SubstraitTypeParser.Number) pass elif la_ == 5: - localctx = SubstraitTypeParser.TypeParamContext(self, localctx) + localctx = SubstraitTypeParser.ParameterNameContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 207 - localctx.identifier = self.match(SubstraitTypeParser.Identifier) - self.state = 209 + self.state = 225 + self.match(SubstraitTypeParser.Identifier) + self.state = 227 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,24,self._ctx) + la_ = self._interp.adaptivePredict(self._input,28,self._ctx) if la_ == 1: - self.state = 208 + self.state = 226 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -2063,31 +2165,31 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.FunctionCallContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 211 + self.state = 229 self.match(SubstraitTypeParser.Identifier) - self.state = 212 + self.state = 230 self.match(SubstraitTypeParser.OParen) - self.state = 221 + self.state = 239 self._errHandler.sync(self) _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & 433475870770855922) != 0): - self.state = 213 + if (((_la) & ~0x3f) == 0 and ((1 << _la) & 2306265238858629008) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & 12289) != 0): + self.state = 231 self.expr(0) - self.state = 218 + self.state = 236 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==53: - self.state = 214 + while _la==68: + self.state = 232 self.match(SubstraitTypeParser.Comma) - self.state = 215 + self.state = 233 self.expr(0) - self.state = 220 + self.state = 238 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 223 + self.state = 241 self.match(SubstraitTypeParser.CParen) pass @@ -2095,17 +2197,17 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.IfExprContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 224 + self.state = 242 self.match(SubstraitTypeParser.If) - self.state = 225 + self.state = 243 localctx.ifExpr = self.expr(0) - self.state = 226 + self.state = 244 self.match(SubstraitTypeParser.Then) - self.state = 227 + self.state = 245 localctx.thenExpr = self.expr(0) - self.state = 228 + self.state = 246 self.match(SubstraitTypeParser.Else) - self.state = 229 + self.state = 247 localctx.elseExpr = self.expr(3) pass @@ -2114,42 +2216,42 @@ def expr(self, _p:int=0): self._ctx = localctx _prevctx = localctx - self.state = 231 + self.state = 249 self.match(SubstraitTypeParser.Bang) - self.state = 232 + self.state = 250 self.expr(2) pass self._ctx.stop = self._input.LT(-1) - self.state = 246 + self.state = 264 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,29,self._ctx) + _alt = self._interp.adaptivePredict(self._input,33,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: if self._parseListeners is not None: self.triggerExitRuleEvent() _prevctx = localctx - self.state = 244 + self.state = 262 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,28,self._ctx) + la_ = self._interp.adaptivePredict(self._input,32,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 = 235 + self.state = 253 if not self.precpred(self._ctx, 4): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 4)") - self.state = 236 + self.state = 254 localctx.op = self._input.LT(1) _la = self._input.LA(1) - if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 136296492171264) != 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 = 237 + self.state = 255 localctx.right = self.expr(5) pass @@ -2157,24 +2259,24 @@ 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 = 238 + self.state = 256 if not self.precpred(self._ctx, 1): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 239 + self.state = 257 self.match(SubstraitTypeParser.QMark) - self.state = 240 + self.state = 258 localctx.thenExpr = self.expr(0) - self.state = 241 + self.state = 259 self.match(SubstraitTypeParser.Colon) - self.state = 242 + self.state = 260 localctx.elseExpr = self.expr(2) pass - self.state = 248 + self.state = 266 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,29,self._ctx) + _alt = self._interp.adaptivePredict(self._input,33,self._ctx) except RecognitionException as re: localctx.exception = re @@ -2189,7 +2291,7 @@ def expr(self, _p:int=0): def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): if self._predicates == None: self._predicates = dict() - self._predicates[6] = self.expr_sempred + self._predicates[7] = self.expr_sempred pred = self._predicates.get(ruleIndex, None) if pred is None: raise Exception("No predicate with index:" + str(ruleIndex)) From b9d7735a6c841a7547419d26fb65c298217f0e9b Mon Sep 17 00:00:00 2001 From: tokoko Date: Tue, 29 Apr 2025 23:19:06 +0000 Subject: [PATCH 2/2] chore: remove antlr build artifacts --- Makefile | 5 +- src/substrait/gen/antlr/SubstraitType.interp | 175 ------------ src/substrait/gen/antlr/SubstraitType.tokens | 147 ---------- .../gen/antlr/SubstraitTypeLexer.interp | 254 ------------------ .../gen/antlr/SubstraitTypeLexer.tokens | 147 ---------- 5 files changed, 4 insertions(+), 724 deletions(-) delete mode 100644 src/substrait/gen/antlr/SubstraitType.interp delete mode 100644 src/substrait/gen/antlr/SubstraitType.tokens delete mode 100644 src/substrait/gen/antlr/SubstraitTypeLexer.interp delete mode 100644 src/substrait/gen/antlr/SubstraitTypeLexer.tokens diff --git a/Makefile b/Makefile index 3c47757..89fea7c 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,5 @@ antlr: - cd third_party/substrait/grammar && java -jar ${ANTLR_JAR} -o ../../../src/substrait/gen/antlr -Dlanguage=Python3 SubstraitType.g4 + cd third_party/substrait/grammar \ + && java -jar ${ANTLR_JAR} -o ../../../src/substrait/gen/antlr -Dlanguage=Python3 SubstraitType.g4 \ + && rm ../../../src/substrait/gen/antlr/*.tokens \ + && rm ../../../src/substrait/gen/antlr/*.interp diff --git a/src/substrait/gen/antlr/SubstraitType.interp b/src/substrait/gen/antlr/SubstraitType.interp deleted file mode 100644 index b56ac7d..0000000 --- a/src/substrait/gen/antlr/SubstraitType.interp +++ /dev/null @@ -1,175 +0,0 @@ -token literal names: -null -null -null -null -'IF' -'THEN' -'ELSE' -'BOOLEAN' -'I8' -'I16' -'I32' -'I64' -'FP32' -'FP64' -'STRING' -'BINARY' -'TIMESTAMP' -'TIMESTAMP_TZ' -'DATE' -'TIME' -'INTERVAL_YEAR' -'INTERVAL_DAY' -'UUID' -'DECIMAL' -'PRECISION_TIMESTAMP' -'PRECISION_TIMESTAMP_TZ' -'FIXEDCHAR' -'VARCHAR' -'FIXEDBINARY' -'STRUCT' -'NSTRUCT' -'LIST' -'MAP' -'U!' -'BOOL' -'STR' -'VBIN' -'TS' -'TSTZ' -'IYEAR' -'IDAY' -'DEC' -'PTS' -'PTSTZ' -'FCHAR' -'VCHAR' -'FBIN' -'ANY' -null -'::' -'+' -'-' -'*' -'/' -'%' -'=' -'!=' -'>=' -'<=' -'>' -'<' -'!' -null -null -'(' -')' -'[' -']' -',' -':' -'?' -'#' -'.' -'AND' -'OR' -':=' -null -null -null - -token symbolic names: -null -LineComment -BlockComment -Whitespace -If -Then -Else -Boolean -I8 -I16 -I32 -I64 -FP32 -FP64 -String -Binary -Timestamp -Timestamp_TZ -Date -Time -Interval_Year -Interval_Day -UUID -Decimal -Precision_Timestamp -Precision_Timestamp_TZ -FixedChar -VarChar -FixedBinary -Struct -NStruct -List -Map -UserDefined -Bool -Str -VBin -Ts -TsTZ -IYear -IDay -Dec -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 -Number -Identifier -Newline - -rule names: -startRule -typeStatement -scalarType -parameterizedType -numericParameter -anyType -typeDef -expr - - -atn: -[4, 1, 78, 268, 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, 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, 38, 8, 2, 1, 3, 1, 3, 3, 3, 42, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 50, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 58, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 66, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 76, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 84, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 92, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 100, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 106, 8, 3, 10, 3, 12, 3, 109, 9, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 115, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 123, 8, 3, 10, 3, 12, 3, 126, 9, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 132, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 140, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 151, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 157, 8, 3, 10, 3, 12, 3, 160, 9, 3, 1, 3, 1, 3, 3, 3, 164, 8, 3, 3, 3, 166, 8, 3, 1, 4, 1, 4, 1, 4, 3, 4, 171, 8, 4, 1, 5, 1, 5, 3, 5, 175, 8, 5, 1, 5, 1, 5, 3, 5, 179, 8, 5, 3, 5, 181, 8, 5, 1, 6, 1, 6, 3, 6, 185, 8, 6, 1, 6, 1, 6, 3, 6, 189, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 200, 8, 7, 11, 7, 12, 7, 201, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 208, 8, 7, 11, 7, 12, 7, 209, 5, 7, 212, 8, 7, 10, 7, 12, 7, 215, 9, 7, 1, 7, 1, 7, 5, 7, 219, 8, 7, 10, 7, 12, 7, 222, 9, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 228, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 235, 8, 7, 10, 7, 12, 7, 238, 9, 7, 3, 7, 240, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 252, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 263, 8, 7, 10, 7, 12, 7, 266, 9, 7, 1, 7, 0, 1, 14, 8, 0, 2, 4, 6, 8, 10, 12, 14, 0, 1, 3, 0, 50, 53, 55, 60, 73, 74, 324, 0, 16, 1, 0, 0, 0, 2, 19, 1, 0, 0, 0, 4, 37, 1, 0, 0, 0, 6, 165, 1, 0, 0, 0, 8, 170, 1, 0, 0, 0, 10, 180, 1, 0, 0, 0, 12, 188, 1, 0, 0, 0, 14, 251, 1, 0, 0, 0, 16, 17, 3, 14, 7, 0, 17, 18, 5, 0, 0, 1, 18, 1, 1, 0, 0, 0, 19, 20, 3, 12, 6, 0, 20, 21, 5, 0, 0, 1, 21, 3, 1, 0, 0, 0, 22, 38, 5, 7, 0, 0, 23, 38, 5, 8, 0, 0, 24, 38, 5, 9, 0, 0, 25, 38, 5, 10, 0, 0, 26, 38, 5, 11, 0, 0, 27, 38, 5, 12, 0, 0, 28, 38, 5, 13, 0, 0, 29, 38, 5, 14, 0, 0, 30, 38, 5, 15, 0, 0, 31, 38, 5, 16, 0, 0, 32, 38, 5, 17, 0, 0, 33, 38, 5, 18, 0, 0, 34, 38, 5, 19, 0, 0, 35, 38, 5, 20, 0, 0, 36, 38, 5, 22, 0, 0, 37, 22, 1, 0, 0, 0, 37, 23, 1, 0, 0, 0, 37, 24, 1, 0, 0, 0, 37, 25, 1, 0, 0, 0, 37, 26, 1, 0, 0, 0, 37, 27, 1, 0, 0, 0, 37, 28, 1, 0, 0, 0, 37, 29, 1, 0, 0, 0, 37, 30, 1, 0, 0, 0, 37, 31, 1, 0, 0, 0, 37, 32, 1, 0, 0, 0, 37, 33, 1, 0, 0, 0, 37, 34, 1, 0, 0, 0, 37, 35, 1, 0, 0, 0, 37, 36, 1, 0, 0, 0, 38, 5, 1, 0, 0, 0, 39, 41, 5, 26, 0, 0, 40, 42, 5, 70, 0, 0, 41, 40, 1, 0, 0, 0, 41, 42, 1, 0, 0, 0, 42, 43, 1, 0, 0, 0, 43, 44, 5, 60, 0, 0, 44, 45, 3, 8, 4, 0, 45, 46, 5, 59, 0, 0, 46, 166, 1, 0, 0, 0, 47, 49, 5, 27, 0, 0, 48, 50, 5, 70, 0, 0, 49, 48, 1, 0, 0, 0, 49, 50, 1, 0, 0, 0, 50, 51, 1, 0, 0, 0, 51, 52, 5, 60, 0, 0, 52, 53, 3, 8, 4, 0, 53, 54, 5, 59, 0, 0, 54, 166, 1, 0, 0, 0, 55, 57, 5, 28, 0, 0, 56, 58, 5, 70, 0, 0, 57, 56, 1, 0, 0, 0, 57, 58, 1, 0, 0, 0, 58, 59, 1, 0, 0, 0, 59, 60, 5, 60, 0, 0, 60, 61, 3, 8, 4, 0, 61, 62, 5, 59, 0, 0, 62, 166, 1, 0, 0, 0, 63, 65, 5, 23, 0, 0, 64, 66, 5, 70, 0, 0, 65, 64, 1, 0, 0, 0, 65, 66, 1, 0, 0, 0, 66, 67, 1, 0, 0, 0, 67, 68, 5, 60, 0, 0, 68, 69, 3, 8, 4, 0, 69, 70, 5, 68, 0, 0, 70, 71, 3, 8, 4, 0, 71, 72, 5, 59, 0, 0, 72, 166, 1, 0, 0, 0, 73, 75, 5, 21, 0, 0, 74, 76, 5, 70, 0, 0, 75, 74, 1, 0, 0, 0, 75, 76, 1, 0, 0, 0, 76, 77, 1, 0, 0, 0, 77, 78, 5, 60, 0, 0, 78, 79, 3, 8, 4, 0, 79, 80, 5, 59, 0, 0, 80, 166, 1, 0, 0, 0, 81, 83, 5, 24, 0, 0, 82, 84, 5, 70, 0, 0, 83, 82, 1, 0, 0, 0, 83, 84, 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 86, 5, 60, 0, 0, 86, 87, 3, 8, 4, 0, 87, 88, 5, 59, 0, 0, 88, 166, 1, 0, 0, 0, 89, 91, 5, 25, 0, 0, 90, 92, 5, 70, 0, 0, 91, 90, 1, 0, 0, 0, 91, 92, 1, 0, 0, 0, 92, 93, 1, 0, 0, 0, 93, 94, 5, 60, 0, 0, 94, 95, 3, 8, 4, 0, 95, 96, 5, 59, 0, 0, 96, 166, 1, 0, 0, 0, 97, 99, 5, 29, 0, 0, 98, 100, 5, 70, 0, 0, 99, 98, 1, 0, 0, 0, 99, 100, 1, 0, 0, 0, 100, 101, 1, 0, 0, 0, 101, 102, 5, 60, 0, 0, 102, 107, 3, 14, 7, 0, 103, 104, 5, 68, 0, 0, 104, 106, 3, 14, 7, 0, 105, 103, 1, 0, 0, 0, 106, 109, 1, 0, 0, 0, 107, 105, 1, 0, 0, 0, 107, 108, 1, 0, 0, 0, 108, 110, 1, 0, 0, 0, 109, 107, 1, 0, 0, 0, 110, 111, 5, 59, 0, 0, 111, 166, 1, 0, 0, 0, 112, 114, 5, 30, 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, 118, 5, 77, 0, 0, 118, 124, 3, 14, 7, 0, 119, 120, 5, 68, 0, 0, 120, 121, 5, 77, 0, 0, 121, 123, 3, 14, 7, 0, 122, 119, 1, 0, 0, 0, 123, 126, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 127, 1, 0, 0, 0, 126, 124, 1, 0, 0, 0, 127, 128, 5, 59, 0, 0, 128, 166, 1, 0, 0, 0, 129, 131, 5, 31, 0, 0, 130, 132, 5, 70, 0, 0, 131, 130, 1, 0, 0, 0, 131, 132, 1, 0, 0, 0, 132, 133, 1, 0, 0, 0, 133, 134, 5, 60, 0, 0, 134, 135, 3, 14, 7, 0, 135, 136, 5, 59, 0, 0, 136, 166, 1, 0, 0, 0, 137, 139, 5, 32, 0, 0, 138, 140, 5, 70, 0, 0, 139, 138, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 5, 60, 0, 0, 142, 143, 3, 14, 7, 0, 143, 144, 5, 68, 0, 0, 144, 145, 3, 14, 7, 0, 145, 146, 5, 59, 0, 0, 146, 166, 1, 0, 0, 0, 147, 148, 5, 33, 0, 0, 148, 150, 5, 77, 0, 0, 149, 151, 5, 70, 0, 0, 150, 149, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 163, 1, 0, 0, 0, 152, 153, 5, 60, 0, 0, 153, 158, 3, 14, 7, 0, 154, 155, 5, 68, 0, 0, 155, 157, 3, 14, 7, 0, 156, 154, 1, 0, 0, 0, 157, 160, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 161, 1, 0, 0, 0, 160, 158, 1, 0, 0, 0, 161, 162, 5, 59, 0, 0, 162, 164, 1, 0, 0, 0, 163, 152, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 166, 1, 0, 0, 0, 165, 39, 1, 0, 0, 0, 165, 47, 1, 0, 0, 0, 165, 55, 1, 0, 0, 0, 165, 63, 1, 0, 0, 0, 165, 73, 1, 0, 0, 0, 165, 81, 1, 0, 0, 0, 165, 89, 1, 0, 0, 0, 165, 97, 1, 0, 0, 0, 165, 112, 1, 0, 0, 0, 165, 129, 1, 0, 0, 0, 165, 137, 1, 0, 0, 0, 165, 147, 1, 0, 0, 0, 166, 7, 1, 0, 0, 0, 167, 171, 5, 76, 0, 0, 168, 171, 5, 77, 0, 0, 169, 171, 3, 14, 7, 0, 170, 167, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 170, 169, 1, 0, 0, 0, 171, 9, 1, 0, 0, 0, 172, 174, 5, 47, 0, 0, 173, 175, 5, 70, 0, 0, 174, 173, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, 181, 1, 0, 0, 0, 176, 178, 5, 48, 0, 0, 177, 179, 5, 70, 0, 0, 178, 177, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 181, 1, 0, 0, 0, 180, 172, 1, 0, 0, 0, 180, 176, 1, 0, 0, 0, 181, 11, 1, 0, 0, 0, 182, 184, 3, 4, 2, 0, 183, 185, 5, 70, 0, 0, 184, 183, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 189, 1, 0, 0, 0, 186, 189, 3, 6, 3, 0, 187, 189, 3, 10, 5, 0, 188, 182, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 188, 187, 1, 0, 0, 0, 189, 13, 1, 0, 0, 0, 190, 191, 6, 7, -1, 0, 191, 192, 5, 64, 0, 0, 192, 193, 3, 14, 7, 0, 193, 194, 5, 65, 0, 0, 194, 252, 1, 0, 0, 0, 195, 196, 5, 77, 0, 0, 196, 197, 5, 55, 0, 0, 197, 199, 3, 14, 7, 0, 198, 200, 5, 78, 0, 0, 199, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 199, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 213, 1, 0, 0, 0, 203, 204, 5, 77, 0, 0, 204, 205, 5, 55, 0, 0, 205, 207, 3, 14, 7, 0, 206, 208, 5, 78, 0, 0, 207, 206, 1, 0, 0, 0, 208, 209, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 212, 1, 0, 0, 0, 211, 203, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 216, 1, 0, 0, 0, 215, 213, 1, 0, 0, 0, 216, 220, 3, 12, 6, 0, 217, 219, 5, 78, 0, 0, 218, 217, 1, 0, 0, 0, 219, 222, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 220, 221, 1, 0, 0, 0, 221, 252, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 223, 252, 3, 12, 6, 0, 224, 252, 5, 76, 0, 0, 225, 227, 5, 77, 0, 0, 226, 228, 5, 70, 0, 0, 227, 226, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 252, 1, 0, 0, 0, 229, 230, 5, 77, 0, 0, 230, 239, 5, 64, 0, 0, 231, 236, 3, 14, 7, 0, 232, 233, 5, 68, 0, 0, 233, 235, 3, 14, 7, 0, 234, 232, 1, 0, 0, 0, 235, 238, 1, 0, 0, 0, 236, 234, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237, 240, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 239, 231, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 252, 5, 65, 0, 0, 242, 243, 5, 4, 0, 0, 243, 244, 3, 14, 7, 0, 244, 245, 5, 5, 0, 0, 245, 246, 3, 14, 7, 0, 246, 247, 5, 6, 0, 0, 247, 248, 3, 14, 7, 3, 248, 252, 1, 0, 0, 0, 249, 250, 5, 61, 0, 0, 250, 252, 3, 14, 7, 2, 251, 190, 1, 0, 0, 0, 251, 195, 1, 0, 0, 0, 251, 223, 1, 0, 0, 0, 251, 224, 1, 0, 0, 0, 251, 225, 1, 0, 0, 0, 251, 229, 1, 0, 0, 0, 251, 242, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 252, 264, 1, 0, 0, 0, 253, 254, 10, 4, 0, 0, 254, 255, 7, 0, 0, 0, 255, 263, 3, 14, 7, 5, 256, 257, 10, 1, 0, 0, 257, 258, 5, 70, 0, 0, 258, 259, 3, 14, 7, 0, 259, 260, 5, 69, 0, 0, 260, 261, 3, 14, 7, 2, 261, 263, 1, 0, 0, 0, 262, 253, 1, 0, 0, 0, 262, 256, 1, 0, 0, 0, 263, 266, 1, 0, 0, 0, 264, 262, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 15, 1, 0, 0, 0, 266, 264, 1, 0, 0, 0, 34, 37, 41, 49, 57, 65, 75, 83, 91, 99, 107, 114, 124, 131, 139, 150, 158, 163, 165, 170, 174, 178, 180, 184, 188, 201, 209, 213, 220, 227, 236, 239, 251, 262, 264] \ No newline at end of file diff --git a/src/substrait/gen/antlr/SubstraitType.tokens b/src/substrait/gen/antlr/SubstraitType.tokens deleted file mode 100644 index 942b3ae..0000000 --- a/src/substrait/gen/antlr/SubstraitType.tokens +++ /dev/null @@ -1,147 +0,0 @@ -LineComment=1 -BlockComment=2 -Whitespace=3 -If=4 -Then=5 -Else=6 -Boolean=7 -I8=8 -I16=9 -I32=10 -I64=11 -FP32=12 -FP64=13 -String=14 -Binary=15 -Timestamp=16 -Timestamp_TZ=17 -Date=18 -Time=19 -Interval_Year=20 -Interval_Day=21 -UUID=22 -Decimal=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 -Ts=37 -TsTZ=38 -IYear=39 -IDay=40 -Dec=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 -Number=76 -Identifier=77 -Newline=78 -'IF'=4 -'THEN'=5 -'ELSE'=6 -'BOOLEAN'=7 -'I8'=8 -'I16'=9 -'I32'=10 -'I64'=11 -'FP32'=12 -'FP64'=13 -'STRING'=14 -'BINARY'=15 -'TIMESTAMP'=16 -'TIMESTAMP_TZ'=17 -'DATE'=18 -'TIME'=19 -'INTERVAL_YEAR'=20 -'INTERVAL_DAY'=21 -'UUID'=22 -'DECIMAL'=23 -'PRECISION_TIMESTAMP'=24 -'PRECISION_TIMESTAMP_TZ'=25 -'FIXEDCHAR'=26 -'VARCHAR'=27 -'FIXEDBINARY'=28 -'STRUCT'=29 -'NSTRUCT'=30 -'LIST'=31 -'MAP'=32 -'U!'=33 -'BOOL'=34 -'STR'=35 -'VBIN'=36 -'TS'=37 -'TSTZ'=38 -'IYEAR'=39 -'IDAY'=40 -'DEC'=41 -'PTS'=42 -'PTSTZ'=43 -'FCHAR'=44 -'VCHAR'=45 -'FBIN'=46 -'ANY'=47 -'::'=49 -'+'=50 -'-'=51 -'*'=52 -'/'=53 -'%'=54 -'='=55 -'!='=56 -'>='=57 -'<='=58 -'>'=59 -'<'=60 -'!'=61 -'('=64 -')'=65 -'['=66 -']'=67 -','=68 -':'=69 -'?'=70 -'#'=71 -'.'=72 -'AND'=73 -'OR'=74 -':='=75 diff --git a/src/substrait/gen/antlr/SubstraitTypeLexer.interp b/src/substrait/gen/antlr/SubstraitTypeLexer.interp deleted file mode 100644 index aef3695..0000000 --- a/src/substrait/gen/antlr/SubstraitTypeLexer.interp +++ /dev/null @@ -1,254 +0,0 @@ -token literal names: -null -null -null -null -'IF' -'THEN' -'ELSE' -'BOOLEAN' -'I8' -'I16' -'I32' -'I64' -'FP32' -'FP64' -'STRING' -'BINARY' -'TIMESTAMP' -'TIMESTAMP_TZ' -'DATE' -'TIME' -'INTERVAL_YEAR' -'INTERVAL_DAY' -'UUID' -'DECIMAL' -'PRECISION_TIMESTAMP' -'PRECISION_TIMESTAMP_TZ' -'FIXEDCHAR' -'VARCHAR' -'FIXEDBINARY' -'STRUCT' -'NSTRUCT' -'LIST' -'MAP' -'U!' -'BOOL' -'STR' -'VBIN' -'TS' -'TSTZ' -'IYEAR' -'IDAY' -'DEC' -'PTS' -'PTSTZ' -'FCHAR' -'VCHAR' -'FBIN' -'ANY' -null -'::' -'+' -'-' -'*' -'/' -'%' -'=' -'!=' -'>=' -'<=' -'>' -'<' -'!' -null -null -'(' -')' -'[' -']' -',' -':' -'?' -'#' -'.' -'AND' -'OR' -':=' -null -null -null - -token symbolic names: -null -LineComment -BlockComment -Whitespace -If -Then -Else -Boolean -I8 -I16 -I32 -I64 -FP32 -FP64 -String -Binary -Timestamp -Timestamp_TZ -Date -Time -Interval_Year -Interval_Day -UUID -Decimal -Precision_Timestamp -Precision_Timestamp_TZ -FixedChar -VarChar -FixedBinary -Struct -NStruct -List -Map -UserDefined -Bool -Str -VBin -Ts -TsTZ -IYear -IDay -Dec -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 -Number -Identifier -Newline - -rule names: -LineComment -BlockComment -Whitespace -DIGIT -If -Then -Else -Boolean -I8 -I16 -I32 -I64 -FP32 -FP64 -String -Binary -Timestamp -Timestamp_TZ -Date -Time -Interval_Year -Interval_Day -UUID -Decimal -Precision_Timestamp -Precision_Timestamp_TZ -FixedChar -VarChar -FixedBinary -Struct -NStruct -List -Map -UserDefined -Bool -Str -VBin -Ts -TsTZ -IYear -IDay -Dec -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 -Int -Digit -Number -Identifier -Newline - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[4, 0, 78, 604, 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, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 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, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 168, 8, 0, 10, 0, 12, 0, 171, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 180, 8, 1, 11, 1, 12, 1, 181, 1, 1, 3, 1, 185, 8, 1, 1, 1, 5, 1, 188, 8, 1, 10, 1, 12, 1, 191, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 2, 199, 8, 2, 11, 2, 12, 2, 200, 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, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 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, 12, 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, 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, 17, 1, 17, 1, 17, 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, 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, 21, 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, 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, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 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, 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, 5, 76, 575, 8, 76, 10, 76, 12, 76, 578, 9, 76, 1, 76, 3, 76, 581, 8, 76, 1, 77, 1, 77, 1, 78, 3, 78, 586, 8, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 5, 79, 593, 8, 79, 10, 79, 12, 79, 596, 9, 79, 1, 80, 1, 80, 3, 80, 600, 8, 80, 1, 80, 3, 80, 603, 8, 80, 0, 0, 81, 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, 0, 155, 0, 157, 76, 159, 77, 161, 78, 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, 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, 85, 85, 117, 117, 2, 0, 67, 67, 99, 99, 2, 0, 88, 88, 120, 120, 4, 0, 36, 36, 65, 90, 95, 95, 97, 122, 612, 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, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 1, 163, 1, 0, 0, 0, 3, 174, 1, 0, 0, 0, 5, 198, 1, 0, 0, 0, 7, 204, 1, 0, 0, 0, 9, 206, 1, 0, 0, 0, 11, 209, 1, 0, 0, 0, 13, 214, 1, 0, 0, 0, 15, 219, 1, 0, 0, 0, 17, 227, 1, 0, 0, 0, 19, 230, 1, 0, 0, 0, 21, 234, 1, 0, 0, 0, 23, 238, 1, 0, 0, 0, 25, 242, 1, 0, 0, 0, 27, 247, 1, 0, 0, 0, 29, 252, 1, 0, 0, 0, 31, 259, 1, 0, 0, 0, 33, 266, 1, 0, 0, 0, 35, 276, 1, 0, 0, 0, 37, 289, 1, 0, 0, 0, 39, 294, 1, 0, 0, 0, 41, 299, 1, 0, 0, 0, 43, 313, 1, 0, 0, 0, 45, 326, 1, 0, 0, 0, 47, 331, 1, 0, 0, 0, 49, 339, 1, 0, 0, 0, 51, 359, 1, 0, 0, 0, 53, 382, 1, 0, 0, 0, 55, 392, 1, 0, 0, 0, 57, 400, 1, 0, 0, 0, 59, 412, 1, 0, 0, 0, 61, 419, 1, 0, 0, 0, 63, 427, 1, 0, 0, 0, 65, 432, 1, 0, 0, 0, 67, 436, 1, 0, 0, 0, 69, 439, 1, 0, 0, 0, 71, 444, 1, 0, 0, 0, 73, 448, 1, 0, 0, 0, 75, 453, 1, 0, 0, 0, 77, 456, 1, 0, 0, 0, 79, 461, 1, 0, 0, 0, 81, 467, 1, 0, 0, 0, 83, 472, 1, 0, 0, 0, 85, 476, 1, 0, 0, 0, 87, 480, 1, 0, 0, 0, 89, 486, 1, 0, 0, 0, 91, 492, 1, 0, 0, 0, 93, 498, 1, 0, 0, 0, 95, 503, 1, 0, 0, 0, 97, 507, 1, 0, 0, 0, 99, 510, 1, 0, 0, 0, 101, 513, 1, 0, 0, 0, 103, 515, 1, 0, 0, 0, 105, 517, 1, 0, 0, 0, 107, 519, 1, 0, 0, 0, 109, 521, 1, 0, 0, 0, 111, 523, 1, 0, 0, 0, 113, 525, 1, 0, 0, 0, 115, 528, 1, 0, 0, 0, 117, 531, 1, 0, 0, 0, 119, 534, 1, 0, 0, 0, 121, 536, 1, 0, 0, 0, 123, 538, 1, 0, 0, 0, 125, 540, 1, 0, 0, 0, 127, 542, 1, 0, 0, 0, 129, 544, 1, 0, 0, 0, 131, 546, 1, 0, 0, 0, 133, 548, 1, 0, 0, 0, 135, 550, 1, 0, 0, 0, 137, 552, 1, 0, 0, 0, 139, 554, 1, 0, 0, 0, 141, 556, 1, 0, 0, 0, 143, 558, 1, 0, 0, 0, 145, 560, 1, 0, 0, 0, 147, 562, 1, 0, 0, 0, 149, 566, 1, 0, 0, 0, 151, 569, 1, 0, 0, 0, 153, 580, 1, 0, 0, 0, 155, 582, 1, 0, 0, 0, 157, 585, 1, 0, 0, 0, 159, 589, 1, 0, 0, 0, 161, 602, 1, 0, 0, 0, 163, 164, 5, 47, 0, 0, 164, 165, 5, 47, 0, 0, 165, 169, 1, 0, 0, 0, 166, 168, 8, 0, 0, 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, 172, 1, 0, 0, 0, 171, 169, 1, 0, 0, 0, 172, 173, 6, 0, 0, 0, 173, 2, 1, 0, 0, 0, 174, 175, 5, 47, 0, 0, 175, 176, 5, 42, 0, 0, 176, 184, 1, 0, 0, 0, 177, 185, 8, 1, 0, 0, 178, 180, 5, 42, 0, 0, 179, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 185, 8, 2, 0, 0, 184, 177, 1, 0, 0, 0, 184, 179, 1, 0, 0, 0, 185, 189, 1, 0, 0, 0, 186, 188, 5, 42, 0, 0, 187, 186, 1, 0, 0, 0, 188, 191, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190, 192, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 192, 193, 5, 42, 0, 0, 193, 194, 5, 47, 0, 0, 194, 195, 1, 0, 0, 0, 195, 196, 6, 1, 0, 0, 196, 4, 1, 0, 0, 0, 197, 199, 7, 3, 0, 0, 198, 197, 1, 0, 0, 0, 199, 200, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 203, 6, 2, 0, 0, 203, 6, 1, 0, 0, 0, 204, 205, 7, 4, 0, 0, 205, 8, 1, 0, 0, 0, 206, 207, 7, 5, 0, 0, 207, 208, 7, 6, 0, 0, 208, 10, 1, 0, 0, 0, 209, 210, 7, 7, 0, 0, 210, 211, 7, 8, 0, 0, 211, 212, 7, 9, 0, 0, 212, 213, 7, 10, 0, 0, 213, 12, 1, 0, 0, 0, 214, 215, 7, 9, 0, 0, 215, 216, 7, 11, 0, 0, 216, 217, 7, 12, 0, 0, 217, 218, 7, 9, 0, 0, 218, 14, 1, 0, 0, 0, 219, 220, 7, 13, 0, 0, 220, 221, 7, 14, 0, 0, 221, 222, 7, 14, 0, 0, 222, 223, 7, 11, 0, 0, 223, 224, 7, 9, 0, 0, 224, 225, 7, 15, 0, 0, 225, 226, 7, 10, 0, 0, 226, 16, 1, 0, 0, 0, 227, 228, 7, 5, 0, 0, 228, 229, 5, 56, 0, 0, 229, 18, 1, 0, 0, 0, 230, 231, 7, 5, 0, 0, 231, 232, 5, 49, 0, 0, 232, 233, 5, 54, 0, 0, 233, 20, 1, 0, 0, 0, 234, 235, 7, 5, 0, 0, 235, 236, 5, 51, 0, 0, 236, 237, 5, 50, 0, 0, 237, 22, 1, 0, 0, 0, 238, 239, 7, 5, 0, 0, 239, 240, 5, 54, 0, 0, 240, 241, 5, 52, 0, 0, 241, 24, 1, 0, 0, 0, 242, 243, 7, 6, 0, 0, 243, 244, 7, 16, 0, 0, 244, 245, 5, 51, 0, 0, 245, 246, 5, 50, 0, 0, 246, 26, 1, 0, 0, 0, 247, 248, 7, 6, 0, 0, 248, 249, 7, 16, 0, 0, 249, 250, 5, 54, 0, 0, 250, 251, 5, 52, 0, 0, 251, 28, 1, 0, 0, 0, 252, 253, 7, 12, 0, 0, 253, 254, 7, 7, 0, 0, 254, 255, 7, 17, 0, 0, 255, 256, 7, 5, 0, 0, 256, 257, 7, 10, 0, 0, 257, 258, 7, 18, 0, 0, 258, 30, 1, 0, 0, 0, 259, 260, 7, 13, 0, 0, 260, 261, 7, 5, 0, 0, 261, 262, 7, 10, 0, 0, 262, 263, 7, 15, 0, 0, 263, 264, 7, 17, 0, 0, 264, 265, 7, 19, 0, 0, 265, 32, 1, 0, 0, 0, 266, 267, 7, 7, 0, 0, 267, 268, 7, 5, 0, 0, 268, 269, 7, 20, 0, 0, 269, 270, 7, 9, 0, 0, 270, 271, 7, 12, 0, 0, 271, 272, 7, 7, 0, 0, 272, 273, 7, 15, 0, 0, 273, 274, 7, 20, 0, 0, 274, 275, 7, 16, 0, 0, 275, 34, 1, 0, 0, 0, 276, 277, 7, 7, 0, 0, 277, 278, 7, 5, 0, 0, 278, 279, 7, 20, 0, 0, 279, 280, 7, 9, 0, 0, 280, 281, 7, 12, 0, 0, 281, 282, 7, 7, 0, 0, 282, 283, 7, 15, 0, 0, 283, 284, 7, 20, 0, 0, 284, 285, 7, 16, 0, 0, 285, 286, 5, 95, 0, 0, 286, 287, 7, 7, 0, 0, 287, 288, 7, 21, 0, 0, 288, 36, 1, 0, 0, 0, 289, 290, 7, 22, 0, 0, 290, 291, 7, 15, 0, 0, 291, 292, 7, 7, 0, 0, 292, 293, 7, 9, 0, 0, 293, 38, 1, 0, 0, 0, 294, 295, 7, 7, 0, 0, 295, 296, 7, 5, 0, 0, 296, 297, 7, 20, 0, 0, 297, 298, 7, 9, 0, 0, 298, 40, 1, 0, 0, 0, 299, 300, 7, 5, 0, 0, 300, 301, 7, 10, 0, 0, 301, 302, 7, 7, 0, 0, 302, 303, 7, 9, 0, 0, 303, 304, 7, 17, 0, 0, 304, 305, 7, 23, 0, 0, 305, 306, 7, 15, 0, 0, 306, 307, 7, 11, 0, 0, 307, 308, 5, 95, 0, 0, 308, 309, 7, 19, 0, 0, 309, 310, 7, 9, 0, 0, 310, 311, 7, 15, 0, 0, 311, 312, 7, 17, 0, 0, 312, 42, 1, 0, 0, 0, 313, 314, 7, 5, 0, 0, 314, 315, 7, 10, 0, 0, 315, 316, 7, 7, 0, 0, 316, 317, 7, 9, 0, 0, 317, 318, 7, 17, 0, 0, 318, 319, 7, 23, 0, 0, 319, 320, 7, 15, 0, 0, 320, 321, 7, 11, 0, 0, 321, 322, 5, 95, 0, 0, 322, 323, 7, 22, 0, 0, 323, 324, 7, 15, 0, 0, 324, 325, 7, 19, 0, 0, 325, 44, 1, 0, 0, 0, 326, 327, 7, 24, 0, 0, 327, 328, 7, 24, 0, 0, 328, 329, 7, 5, 0, 0, 329, 330, 7, 22, 0, 0, 330, 46, 1, 0, 0, 0, 331, 332, 7, 22, 0, 0, 332, 333, 7, 9, 0, 0, 333, 334, 7, 25, 0, 0, 334, 335, 7, 5, 0, 0, 335, 336, 7, 20, 0, 0, 336, 337, 7, 15, 0, 0, 337, 338, 7, 11, 0, 0, 338, 48, 1, 0, 0, 0, 339, 340, 7, 16, 0, 0, 340, 341, 7, 17, 0, 0, 341, 342, 7, 9, 0, 0, 342, 343, 7, 25, 0, 0, 343, 344, 7, 5, 0, 0, 344, 345, 7, 12, 0, 0, 345, 346, 7, 5, 0, 0, 346, 347, 7, 14, 0, 0, 347, 348, 7, 10, 0, 0, 348, 349, 5, 95, 0, 0, 349, 350, 7, 7, 0, 0, 350, 351, 7, 5, 0, 0, 351, 352, 7, 20, 0, 0, 352, 353, 7, 9, 0, 0, 353, 354, 7, 12, 0, 0, 354, 355, 7, 7, 0, 0, 355, 356, 7, 15, 0, 0, 356, 357, 7, 20, 0, 0, 357, 358, 7, 16, 0, 0, 358, 50, 1, 0, 0, 0, 359, 360, 7, 16, 0, 0, 360, 361, 7, 17, 0, 0, 361, 362, 7, 9, 0, 0, 362, 363, 7, 25, 0, 0, 363, 364, 7, 5, 0, 0, 364, 365, 7, 12, 0, 0, 365, 366, 7, 5, 0, 0, 366, 367, 7, 14, 0, 0, 367, 368, 7, 10, 0, 0, 368, 369, 5, 95, 0, 0, 369, 370, 7, 7, 0, 0, 370, 371, 7, 5, 0, 0, 371, 372, 7, 20, 0, 0, 372, 373, 7, 9, 0, 0, 373, 374, 7, 12, 0, 0, 374, 375, 7, 7, 0, 0, 375, 376, 7, 15, 0, 0, 376, 377, 7, 20, 0, 0, 377, 378, 7, 16, 0, 0, 378, 379, 5, 95, 0, 0, 379, 380, 7, 7, 0, 0, 380, 381, 7, 21, 0, 0, 381, 52, 1, 0, 0, 0, 382, 383, 7, 6, 0, 0, 383, 384, 7, 5, 0, 0, 384, 385, 7, 26, 0, 0, 385, 386, 7, 9, 0, 0, 386, 387, 7, 22, 0, 0, 387, 388, 7, 25, 0, 0, 388, 389, 7, 8, 0, 0, 389, 390, 7, 15, 0, 0, 390, 391, 7, 17, 0, 0, 391, 54, 1, 0, 0, 0, 392, 393, 7, 23, 0, 0, 393, 394, 7, 15, 0, 0, 394, 395, 7, 17, 0, 0, 395, 396, 7, 25, 0, 0, 396, 397, 7, 8, 0, 0, 397, 398, 7, 15, 0, 0, 398, 399, 7, 17, 0, 0, 399, 56, 1, 0, 0, 0, 400, 401, 7, 6, 0, 0, 401, 402, 7, 5, 0, 0, 402, 403, 7, 26, 0, 0, 403, 404, 7, 9, 0, 0, 404, 405, 7, 22, 0, 0, 405, 406, 7, 13, 0, 0, 406, 407, 7, 5, 0, 0, 407, 408, 7, 10, 0, 0, 408, 409, 7, 15, 0, 0, 409, 410, 7, 17, 0, 0, 410, 411, 7, 19, 0, 0, 411, 58, 1, 0, 0, 0, 412, 413, 7, 12, 0, 0, 413, 414, 7, 7, 0, 0, 414, 415, 7, 17, 0, 0, 415, 416, 7, 24, 0, 0, 416, 417, 7, 25, 0, 0, 417, 418, 7, 7, 0, 0, 418, 60, 1, 0, 0, 0, 419, 420, 7, 10, 0, 0, 420, 421, 7, 12, 0, 0, 421, 422, 7, 7, 0, 0, 422, 423, 7, 17, 0, 0, 423, 424, 7, 24, 0, 0, 424, 425, 7, 25, 0, 0, 425, 426, 7, 7, 0, 0, 426, 62, 1, 0, 0, 0, 427, 428, 7, 11, 0, 0, 428, 429, 7, 5, 0, 0, 429, 430, 7, 12, 0, 0, 430, 431, 7, 7, 0, 0, 431, 64, 1, 0, 0, 0, 432, 433, 7, 20, 0, 0, 433, 434, 7, 15, 0, 0, 434, 435, 7, 16, 0, 0, 435, 66, 1, 0, 0, 0, 436, 437, 7, 24, 0, 0, 437, 438, 5, 33, 0, 0, 438, 68, 1, 0, 0, 0, 439, 440, 7, 13, 0, 0, 440, 441, 7, 14, 0, 0, 441, 442, 7, 14, 0, 0, 442, 443, 7, 11, 0, 0, 443, 70, 1, 0, 0, 0, 444, 445, 7, 12, 0, 0, 445, 446, 7, 7, 0, 0, 446, 447, 7, 17, 0, 0, 447, 72, 1, 0, 0, 0, 448, 449, 7, 23, 0, 0, 449, 450, 7, 13, 0, 0, 450, 451, 7, 5, 0, 0, 451, 452, 7, 10, 0, 0, 452, 74, 1, 0, 0, 0, 453, 454, 7, 7, 0, 0, 454, 455, 7, 12, 0, 0, 455, 76, 1, 0, 0, 0, 456, 457, 7, 7, 0, 0, 457, 458, 7, 12, 0, 0, 458, 459, 7, 7, 0, 0, 459, 460, 7, 21, 0, 0, 460, 78, 1, 0, 0, 0, 461, 462, 7, 5, 0, 0, 462, 463, 7, 19, 0, 0, 463, 464, 7, 9, 0, 0, 464, 465, 7, 15, 0, 0, 465, 466, 7, 17, 0, 0, 466, 80, 1, 0, 0, 0, 467, 468, 7, 5, 0, 0, 468, 469, 7, 22, 0, 0, 469, 470, 7, 15, 0, 0, 470, 471, 7, 19, 0, 0, 471, 82, 1, 0, 0, 0, 472, 473, 7, 22, 0, 0, 473, 474, 7, 9, 0, 0, 474, 475, 7, 25, 0, 0, 475, 84, 1, 0, 0, 0, 476, 477, 7, 16, 0, 0, 477, 478, 7, 7, 0, 0, 478, 479, 7, 12, 0, 0, 479, 86, 1, 0, 0, 0, 480, 481, 7, 16, 0, 0, 481, 482, 7, 7, 0, 0, 482, 483, 7, 12, 0, 0, 483, 484, 7, 7, 0, 0, 484, 485, 7, 21, 0, 0, 485, 88, 1, 0, 0, 0, 486, 487, 7, 6, 0, 0, 487, 488, 7, 25, 0, 0, 488, 489, 7, 8, 0, 0, 489, 490, 7, 15, 0, 0, 490, 491, 7, 17, 0, 0, 491, 90, 1, 0, 0, 0, 492, 493, 7, 23, 0, 0, 493, 494, 7, 25, 0, 0, 494, 495, 7, 8, 0, 0, 495, 496, 7, 15, 0, 0, 496, 497, 7, 17, 0, 0, 497, 92, 1, 0, 0, 0, 498, 499, 7, 6, 0, 0, 499, 500, 7, 13, 0, 0, 500, 501, 7, 5, 0, 0, 501, 502, 7, 10, 0, 0, 502, 94, 1, 0, 0, 0, 503, 504, 7, 15, 0, 0, 504, 505, 7, 10, 0, 0, 505, 506, 7, 19, 0, 0, 506, 96, 1, 0, 0, 0, 507, 508, 3, 95, 47, 0, 508, 509, 7, 4, 0, 0, 509, 98, 1, 0, 0, 0, 510, 511, 5, 58, 0, 0, 511, 512, 5, 58, 0, 0, 512, 100, 1, 0, 0, 0, 513, 514, 5, 43, 0, 0, 514, 102, 1, 0, 0, 0, 515, 516, 5, 45, 0, 0, 516, 104, 1, 0, 0, 0, 517, 518, 5, 42, 0, 0, 518, 106, 1, 0, 0, 0, 519, 520, 5, 47, 0, 0, 520, 108, 1, 0, 0, 0, 521, 522, 5, 37, 0, 0, 522, 110, 1, 0, 0, 0, 523, 524, 5, 61, 0, 0, 524, 112, 1, 0, 0, 0, 525, 526, 5, 33, 0, 0, 526, 527, 5, 61, 0, 0, 527, 114, 1, 0, 0, 0, 528, 529, 5, 62, 0, 0, 529, 530, 5, 61, 0, 0, 530, 116, 1, 0, 0, 0, 531, 532, 5, 60, 0, 0, 532, 533, 5, 61, 0, 0, 533, 118, 1, 0, 0, 0, 534, 535, 5, 62, 0, 0, 535, 120, 1, 0, 0, 0, 536, 537, 5, 60, 0, 0, 537, 122, 1, 0, 0, 0, 538, 539, 5, 33, 0, 0, 539, 124, 1, 0, 0, 0, 540, 541, 3, 121, 60, 0, 541, 126, 1, 0, 0, 0, 542, 543, 3, 119, 59, 0, 543, 128, 1, 0, 0, 0, 544, 545, 5, 40, 0, 0, 545, 130, 1, 0, 0, 0, 546, 547, 5, 41, 0, 0, 547, 132, 1, 0, 0, 0, 548, 549, 5, 91, 0, 0, 549, 134, 1, 0, 0, 0, 550, 551, 5, 93, 0, 0, 551, 136, 1, 0, 0, 0, 552, 553, 5, 44, 0, 0, 553, 138, 1, 0, 0, 0, 554, 555, 5, 58, 0, 0, 555, 140, 1, 0, 0, 0, 556, 557, 5, 63, 0, 0, 557, 142, 1, 0, 0, 0, 558, 559, 5, 35, 0, 0, 559, 144, 1, 0, 0, 0, 560, 561, 5, 46, 0, 0, 561, 146, 1, 0, 0, 0, 562, 563, 7, 15, 0, 0, 563, 564, 7, 10, 0, 0, 564, 565, 7, 22, 0, 0, 565, 148, 1, 0, 0, 0, 566, 567, 7, 14, 0, 0, 567, 568, 7, 17, 0, 0, 568, 150, 1, 0, 0, 0, 569, 570, 5, 58, 0, 0, 570, 571, 5, 61, 0, 0, 571, 152, 1, 0, 0, 0, 572, 576, 2, 49, 57, 0, 573, 575, 3, 155, 77, 0, 574, 573, 1, 0, 0, 0, 575, 578, 1, 0, 0, 0, 576, 574, 1, 0, 0, 0, 576, 577, 1, 0, 0, 0, 577, 581, 1, 0, 0, 0, 578, 576, 1, 0, 0, 0, 579, 581, 5, 48, 0, 0, 580, 572, 1, 0, 0, 0, 580, 579, 1, 0, 0, 0, 581, 154, 1, 0, 0, 0, 582, 583, 2, 48, 57, 0, 583, 156, 1, 0, 0, 0, 584, 586, 5, 45, 0, 0, 585, 584, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 588, 3, 153, 76, 0, 588, 158, 1, 0, 0, 0, 589, 594, 7, 27, 0, 0, 590, 593, 7, 27, 0, 0, 591, 593, 3, 155, 77, 0, 592, 590, 1, 0, 0, 0, 592, 591, 1, 0, 0, 0, 593, 596, 1, 0, 0, 0, 594, 592, 1, 0, 0, 0, 594, 595, 1, 0, 0, 0, 595, 160, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 597, 599, 5, 13, 0, 0, 598, 600, 5, 10, 0, 0, 599, 598, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 603, 1, 0, 0, 0, 601, 603, 5, 10, 0, 0, 602, 597, 1, 0, 0, 0, 602, 601, 1, 0, 0, 0, 603, 162, 1, 0, 0, 0, 13, 0, 169, 181, 184, 189, 200, 576, 580, 585, 592, 594, 599, 602, 1, 0, 1, 0] \ No newline at end of file diff --git a/src/substrait/gen/antlr/SubstraitTypeLexer.tokens b/src/substrait/gen/antlr/SubstraitTypeLexer.tokens deleted file mode 100644 index 942b3ae..0000000 --- a/src/substrait/gen/antlr/SubstraitTypeLexer.tokens +++ /dev/null @@ -1,147 +0,0 @@ -LineComment=1 -BlockComment=2 -Whitespace=3 -If=4 -Then=5 -Else=6 -Boolean=7 -I8=8 -I16=9 -I32=10 -I64=11 -FP32=12 -FP64=13 -String=14 -Binary=15 -Timestamp=16 -Timestamp_TZ=17 -Date=18 -Time=19 -Interval_Year=20 -Interval_Day=21 -UUID=22 -Decimal=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 -Ts=37 -TsTZ=38 -IYear=39 -IDay=40 -Dec=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 -Number=76 -Identifier=77 -Newline=78 -'IF'=4 -'THEN'=5 -'ELSE'=6 -'BOOLEAN'=7 -'I8'=8 -'I16'=9 -'I32'=10 -'I64'=11 -'FP32'=12 -'FP64'=13 -'STRING'=14 -'BINARY'=15 -'TIMESTAMP'=16 -'TIMESTAMP_TZ'=17 -'DATE'=18 -'TIME'=19 -'INTERVAL_YEAR'=20 -'INTERVAL_DAY'=21 -'UUID'=22 -'DECIMAL'=23 -'PRECISION_TIMESTAMP'=24 -'PRECISION_TIMESTAMP_TZ'=25 -'FIXEDCHAR'=26 -'VARCHAR'=27 -'FIXEDBINARY'=28 -'STRUCT'=29 -'NSTRUCT'=30 -'LIST'=31 -'MAP'=32 -'U!'=33 -'BOOL'=34 -'STR'=35 -'VBIN'=36 -'TS'=37 -'TSTZ'=38 -'IYEAR'=39 -'IDAY'=40 -'DEC'=41 -'PTS'=42 -'PTSTZ'=43 -'FCHAR'=44 -'VCHAR'=45 -'FBIN'=46 -'ANY'=47 -'::'=49 -'+'=50 -'-'=51 -'*'=52 -'/'=53 -'%'=54 -'='=55 -'!='=56 -'>='=57 -'<='=58 -'>'=59 -'<'=60 -'!'=61 -'('=64 -')'=65 -'['=66 -']'=67 -','=68 -':'=69 -'?'=70 -'#'=71 -'.'=72 -'AND'=73 -'OR'=74 -':='=75