From 4bd8a7343676d96feb01d99ece5fac76b08fb553 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:37:19 +0000 Subject: [PATCH] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../_udunits2_parser/parser/udunits2Lexer.py | 5951 ++++++++++++++++- .../_udunits2_parser/parser/udunits2Parser.py | 1880 +++++- .../parser/udunits2ParserVisitor.py | 35 +- 3 files changed, 7263 insertions(+), 603 deletions(-) diff --git a/cf_units/_udunits2_parser/parser/udunits2Lexer.py b/cf_units/_udunits2_parser/parser/udunits2Lexer.py index 4e83f8fb..320d5b63 100644 --- a/cf_units/_udunits2_parser/parser/udunits2Lexer.py +++ b/cf_units/_udunits2_parser/parser/udunits2Lexer.py @@ -1,7 +1,9 @@ # Generated from /home/ruth/git_stuff/cf-units/cf_units/_udunits2_parser/parser/udunits2Lexer.g4 by ANTLR 4.11.1 -from antlr4 import * -from io import StringIO import sys +from io import StringIO + +from antlr4 import * + if sys.version_info[1] > 5: from typing import TextIO else: @@ -10,242 +12,5573 @@ def serializedATN(): return [ - 4,0,27,617,6,-1,6,-1,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,1,0,1,0,3,0,162,8,0,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,3,3, - 172,8,3,1,4,5,4,175,8,4,10,4,12,4,178,9,4,1,4,1,4,1,4,1,4,1,4,1, - 4,1,4,1,4,1,4,1,4,1,4,3,4,191,8,4,1,4,5,4,194,8,4,10,4,12,4,197, - 9,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,4,9,208,8,9,11,9,12,9,209, - 1,10,1,10,3,10,214,8,10,1,11,1,11,1,11,1,12,1,12,1,12,3,12,222,8, - 12,1,12,3,12,225,8,12,1,12,1,12,1,12,3,12,230,8,12,1,12,3,12,233, - 8,12,1,12,1,12,1,12,3,12,238,8,12,1,13,1,13,1,13,1,13,1,13,1,13, - 1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,3,13, - 258,8,13,1,13,1,13,1,14,4,14,263,8,14,11,14,12,14,264,1,15,1,15, - 1,15,3,15,270,8,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16, - 3,16,281,8,16,1,17,1,17,5,17,285,8,17,10,17,12,17,288,9,17,1,17, - 1,17,1,17,1,17,3,17,294,8,17,1,17,3,17,297,8,17,1,17,5,17,300,8, - 17,10,17,12,17,303,9,17,1,18,1,18,4,18,307,8,18,11,18,12,18,308, - 1,18,1,18,1,19,1,19,1,20,1,20,1,21,1,21,1,22,1,22,1,22,1,22,1,22, - 1,22,1,22,3,22,326,8,22,1,23,1,23,3,23,330,8,23,1,24,3,24,333,8, - 24,1,24,3,24,336,8,24,1,24,1,24,1,24,3,24,341,8,24,1,25,3,25,344, - 8,25,1,25,1,25,1,26,1,26,1,26,3,26,351,8,26,1,26,1,26,5,26,355,8, - 26,10,26,12,26,358,9,26,3,26,360,8,26,1,27,3,27,363,8,27,1,27,1, - 27,1,27,3,27,368,8,27,1,28,3,28,371,8,28,1,28,1,28,1,28,1,28,1,28, - 1,28,1,28,3,28,380,8,28,1,29,1,29,3,29,384,8,29,1,29,3,29,387,8, - 29,1,29,3,29,390,8,29,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1, - 31,1,31,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,3,33,410,8,33,1, - 34,1,34,1,34,3,34,415,8,34,3,34,417,8,34,1,35,1,35,1,35,3,35,422, - 8,35,3,35,424,8,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,37,1,37, - 1,37,1,37,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,40,1,40,1,40, - 1,40,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43, - 1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,47, - 1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,50,1,50, - 1,50,1,50,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,53,1,53,1,53, - 1,53,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,57,1,57,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59, - 1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,62, - 1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64, - 1,64,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,67,1,67, - 1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69, - 1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72, - 1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75, - 1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77, - 1,77,0,0,78,3,1,5,2,7,0,9,3,11,4,13,5,15,6,17,7,19,8,21,9,23,0,25, - 10,27,11,29,12,31,13,33,14,35,15,37,16,39,17,41,18,43,19,45,20,47, - 21,49,0,51,0,53,0,55,0,57,0,59,0,61,0,63,22,65,23,67,24,69,25,71, - 0,73,26,75,27,77,0,79,0,81,0,83,0,85,0,87,0,89,0,91,0,93,0,95,0, - 97,0,99,0,101,0,103,0,105,0,107,0,109,0,111,0,113,0,115,0,117,0, - 119,0,121,0,123,0,125,0,127,0,129,0,131,0,133,0,135,0,137,0,139, - 0,141,0,143,0,145,0,147,0,149,0,151,0,153,0,155,0,157,0,3,0,1,2, - 6,2,0,42,42,183,183,2,0,69,69,101,101,4,0,178,179,185,185,8304,8304, - 8308,8315,3,0,65,90,95,95,97,122,9,0,128,128,173,173,176,176,181, - 181,192,214,216,246,248,255,937,937,960,960,1,0,32,32,656,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,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,1,47,1,0, - 0,0,1,63,1,0,0,0,1,65,1,0,0,0,1,67,1,0,0,0,1,69,1,0,0,0,1,73,1,0, - 0,0,1,75,1,0,0,0,1,77,1,0,0,0,1,79,1,0,0,0,1,81,1,0,0,0,1,83,1,0, - 0,0,1,85,1,0,0,0,1,87,1,0,0,0,1,89,1,0,0,0,1,91,1,0,0,0,1,93,1,0, - 0,0,1,95,1,0,0,0,1,97,1,0,0,0,1,99,1,0,0,0,1,101,1,0,0,0,1,103,1, - 0,0,0,1,105,1,0,0,0,1,107,1,0,0,0,1,109,1,0,0,0,1,111,1,0,0,0,1, - 113,1,0,0,0,1,115,1,0,0,0,2,117,1,0,0,0,2,119,1,0,0,0,2,121,1,0, - 0,0,2,123,1,0,0,0,2,125,1,0,0,0,2,127,1,0,0,0,2,129,1,0,0,0,2,131, - 1,0,0,0,2,133,1,0,0,0,2,135,1,0,0,0,2,137,1,0,0,0,2,139,1,0,0,0, - 2,141,1,0,0,0,2,143,1,0,0,0,2,145,1,0,0,0,2,147,1,0,0,0,2,149,1, - 0,0,0,2,151,1,0,0,0,2,153,1,0,0,0,2,155,1,0,0,0,2,157,1,0,0,0,3, - 161,1,0,0,0,5,165,1,0,0,0,7,167,1,0,0,0,9,171,1,0,0,0,11,176,1,0, - 0,0,13,198,1,0,0,0,15,200,1,0,0,0,17,202,1,0,0,0,19,204,1,0,0,0, - 21,207,1,0,0,0,23,213,1,0,0,0,25,215,1,0,0,0,27,237,1,0,0,0,29,257, - 1,0,0,0,31,262,1,0,0,0,33,269,1,0,0,0,35,280,1,0,0,0,37,282,1,0, - 0,0,39,306,1,0,0,0,41,312,1,0,0,0,43,314,1,0,0,0,45,316,1,0,0,0, - 47,325,1,0,0,0,49,329,1,0,0,0,51,340,1,0,0,0,53,343,1,0,0,0,55,350, - 1,0,0,0,57,367,1,0,0,0,59,379,1,0,0,0,61,381,1,0,0,0,63,391,1,0, - 0,0,65,397,1,0,0,0,67,401,1,0,0,0,69,403,1,0,0,0,71,411,1,0,0,0, - 73,418,1,0,0,0,75,428,1,0,0,0,77,432,1,0,0,0,79,436,1,0,0,0,81,440, - 1,0,0,0,83,444,1,0,0,0,85,448,1,0,0,0,87,452,1,0,0,0,89,456,1,0, - 0,0,91,460,1,0,0,0,93,464,1,0,0,0,95,468,1,0,0,0,97,472,1,0,0,0, - 99,476,1,0,0,0,101,480,1,0,0,0,103,484,1,0,0,0,105,488,1,0,0,0,107, - 492,1,0,0,0,109,496,1,0,0,0,111,500,1,0,0,0,113,504,1,0,0,0,115, - 508,1,0,0,0,117,512,1,0,0,0,119,517,1,0,0,0,121,522,1,0,0,0,123, - 527,1,0,0,0,125,532,1,0,0,0,127,537,1,0,0,0,129,542,1,0,0,0,131, - 547,1,0,0,0,133,552,1,0,0,0,135,557,1,0,0,0,137,562,1,0,0,0,139, - 567,1,0,0,0,141,572,1,0,0,0,143,577,1,0,0,0,145,582,1,0,0,0,147, - 587,1,0,0,0,149,592,1,0,0,0,151,597,1,0,0,0,153,602,1,0,0,0,155, - 607,1,0,0,0,157,612,1,0,0,0,159,162,3,7,2,0,160,162,3,5,1,0,161, - 159,1,0,0,0,161,160,1,0,0,0,162,163,1,0,0,0,163,164,3,21,9,0,164, - 4,1,0,0,0,165,166,5,43,0,0,166,6,1,0,0,0,167,168,5,45,0,0,168,8, - 1,0,0,0,169,172,7,0,0,0,170,172,3,7,2,0,171,169,1,0,0,0,171,170, - 1,0,0,0,172,10,1,0,0,0,173,175,3,43,20,0,174,173,1,0,0,0,175,178, - 1,0,0,0,176,174,1,0,0,0,176,177,1,0,0,0,177,190,1,0,0,0,178,176, - 1,0,0,0,179,191,5,47,0,0,180,181,5,32,0,0,181,182,5,80,0,0,182,183, - 5,69,0,0,183,184,5,82,0,0,184,191,5,32,0,0,185,186,5,32,0,0,186, - 187,5,112,0,0,187,188,5,101,0,0,188,189,5,114,0,0,189,191,5,32,0, - 0,190,179,1,0,0,0,190,180,1,0,0,0,190,185,1,0,0,0,191,195,1,0,0, - 0,192,194,3,43,20,0,193,192,1,0,0,0,194,197,1,0,0,0,195,193,1,0, - 0,0,195,196,1,0,0,0,196,12,1,0,0,0,197,195,1,0,0,0,198,199,5,46, - 0,0,199,14,1,0,0,0,200,201,5,40,0,0,201,16,1,0,0,0,202,203,5,41, - 0,0,203,18,1,0,0,0,204,205,5,58,0,0,205,20,1,0,0,0,206,208,2,48, - 57,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,22,1,0,0,0,211,214,3,21,9,0,212,214,3,3,0,0,213,211,1,0, - 0,0,213,212,1,0,0,0,214,24,1,0,0,0,215,216,7,1,0,0,216,217,3,23, - 10,0,217,26,1,0,0,0,218,219,3,23,10,0,219,221,3,13,5,0,220,222,3, - 21,9,0,221,220,1,0,0,0,221,222,1,0,0,0,222,230,1,0,0,0,223,225,3, - 23,10,0,224,223,1,0,0,0,224,225,1,0,0,0,225,226,1,0,0,0,226,227, - 3,13,5,0,227,228,3,21,9,0,228,230,1,0,0,0,229,218,1,0,0,0,229,224, - 1,0,0,0,230,232,1,0,0,0,231,233,3,25,11,0,232,231,1,0,0,0,232,233, - 1,0,0,0,233,238,1,0,0,0,234,235,3,23,10,0,235,236,3,25,11,0,236, - 238,1,0,0,0,237,229,1,0,0,0,237,234,1,0,0,0,238,28,1,0,0,0,239,258, - 5,64,0,0,240,241,5,97,0,0,241,242,5,102,0,0,242,243,5,116,0,0,243, - 244,5,101,0,0,244,258,5,114,0,0,245,246,5,102,0,0,246,247,5,114, - 0,0,247,248,5,111,0,0,248,258,5,109,0,0,249,250,5,115,0,0,250,251, - 5,105,0,0,251,252,5,110,0,0,252,253,5,99,0,0,253,258,5,101,0,0,254, - 255,5,114,0,0,255,256,5,101,0,0,256,258,5,102,0,0,257,239,1,0,0, - 0,257,240,1,0,0,0,257,245,1,0,0,0,257,249,1,0,0,0,257,254,1,0,0, - 0,258,259,1,0,0,0,259,260,6,13,0,0,260,30,1,0,0,0,261,263,7,2,0, - 0,262,261,1,0,0,0,263,264,1,0,0,0,264,262,1,0,0,0,264,265,1,0,0, - 0,265,32,1,0,0,0,266,270,5,94,0,0,267,268,5,42,0,0,268,270,5,42, - 0,0,269,266,1,0,0,0,269,267,1,0,0,0,270,34,1,0,0,0,271,272,5,108, - 0,0,272,273,5,111,0,0,273,281,5,103,0,0,274,275,5,108,0,0,275,281, - 5,103,0,0,276,277,5,108,0,0,277,281,5,110,0,0,278,279,5,108,0,0, - 279,281,5,98,0,0,280,271,1,0,0,0,280,274,1,0,0,0,280,276,1,0,0,0, - 280,278,1,0,0,0,281,36,1,0,0,0,282,286,5,40,0,0,283,285,3,43,20, - 0,284,283,1,0,0,0,285,288,1,0,0,0,286,284,1,0,0,0,286,287,1,0,0, - 0,287,293,1,0,0,0,288,286,1,0,0,0,289,290,5,82,0,0,290,294,5,69, - 0,0,291,292,5,114,0,0,292,294,5,101,0,0,293,289,1,0,0,0,293,291, - 1,0,0,0,294,296,1,0,0,0,295,297,5,58,0,0,296,295,1,0,0,0,296,297, - 1,0,0,0,297,301,1,0,0,0,298,300,3,43,20,0,299,298,1,0,0,0,300,303, - 1,0,0,0,301,299,1,0,0,0,301,302,1,0,0,0,302,38,1,0,0,0,303,301,1, - 0,0,0,304,307,7,3,0,0,305,307,3,41,19,0,306,304,1,0,0,0,306,305, - 1,0,0,0,307,308,1,0,0,0,308,306,1,0,0,0,308,309,1,0,0,0,309,310, - 1,0,0,0,310,311,6,18,1,0,311,40,1,0,0,0,312,313,7,4,0,0,313,42,1, - 0,0,0,314,315,7,5,0,0,315,44,1,0,0,0,316,317,9,0,0,0,317,46,1,0, - 0,0,318,319,5,85,0,0,319,320,5,84,0,0,320,326,5,67,0,0,321,326,5, - 90,0,0,322,323,5,71,0,0,323,324,5,77,0,0,324,326,5,84,0,0,325,318, - 1,0,0,0,325,321,1,0,0,0,325,322,1,0,0,0,326,48,1,0,0,0,327,330,3, - 5,1,0,328,330,3,7,2,0,329,327,1,0,0,0,329,328,1,0,0,0,330,50,1,0, - 0,0,331,333,3,49,23,0,332,331,1,0,0,0,332,333,1,0,0,0,333,335,1, - 0,0,0,334,336,2,48,49,0,335,334,1,0,0,0,335,336,1,0,0,0,336,337, - 1,0,0,0,337,341,2,48,57,0,338,339,5,50,0,0,339,341,2,48,51,0,340, - 332,1,0,0,0,340,338,1,0,0,0,341,52,1,0,0,0,342,344,2,48,53,0,343, - 342,1,0,0,0,343,344,1,0,0,0,344,345,1,0,0,0,345,346,2,48,57,0,346, - 54,1,0,0,0,347,351,3,53,25,0,348,349,5,54,0,0,349,351,5,48,0,0,350, - 347,1,0,0,0,350,348,1,0,0,0,351,359,1,0,0,0,352,356,3,13,5,0,353, - 355,2,48,57,0,354,353,1,0,0,0,355,358,1,0,0,0,356,354,1,0,0,0,356, - 357,1,0,0,0,357,360,1,0,0,0,358,356,1,0,0,0,359,352,1,0,0,0,359, - 360,1,0,0,0,360,56,1,0,0,0,361,363,5,48,0,0,362,361,1,0,0,0,362, - 363,1,0,0,0,363,364,1,0,0,0,364,368,2,49,57,0,365,366,5,49,0,0,366, - 368,2,48,50,0,367,362,1,0,0,0,367,365,1,0,0,0,368,58,1,0,0,0,369, - 371,5,48,0,0,370,369,1,0,0,0,370,371,1,0,0,0,371,372,1,0,0,0,372, - 380,2,49,57,0,373,374,2,49,50,0,374,380,2,48,57,0,375,376,5,51,0, - 0,376,380,5,48,0,0,377,378,5,51,0,0,378,380,5,49,0,0,379,370,1,0, - 0,0,379,373,1,0,0,0,379,375,1,0,0,0,379,377,1,0,0,0,380,60,1,0,0, - 0,381,383,3,23,10,0,382,384,3,21,9,0,383,382,1,0,0,0,383,384,1,0, - 0,0,384,386,1,0,0,0,385,387,3,21,9,0,386,385,1,0,0,0,386,387,1,0, - 0,0,387,389,1,0,0,0,388,390,3,21,9,0,389,388,1,0,0,0,389,390,1,0, - 0,0,390,62,1,0,0,0,391,392,3,51,24,0,392,393,5,58,0,0,393,394,3, - 53,25,0,394,395,5,58,0,0,395,396,3,55,26,0,396,64,1,0,0,0,397,398, - 3,51,24,0,398,399,5,58,0,0,399,400,3,53,25,0,400,66,1,0,0,0,401, - 402,5,45,0,0,402,68,1,0,0,0,403,404,3,61,29,0,404,405,3,7,2,0,405, - 409,3,57,27,0,406,407,3,7,2,0,407,408,3,59,28,0,408,410,1,0,0,0, - 409,406,1,0,0,0,409,410,1,0,0,0,410,70,1,0,0,0,411,416,3,51,24,0, - 412,414,3,53,25,0,413,415,3,55,26,0,414,413,1,0,0,0,414,415,1,0, - 0,0,415,417,1,0,0,0,416,412,1,0,0,0,416,417,1,0,0,0,417,72,1,0,0, - 0,418,423,3,61,29,0,419,421,3,57,27,0,420,422,3,59,28,0,421,420, - 1,0,0,0,421,422,1,0,0,0,422,424,1,0,0,0,423,419,1,0,0,0,423,424, - 1,0,0,0,424,425,1,0,0,0,425,426,5,84,0,0,426,427,3,71,34,0,427,74, - 1,0,0,0,428,429,3,69,33,0,429,430,5,84,0,0,430,431,3,71,34,0,431, - 76,1,0,0,0,432,433,3,3,0,0,433,434,1,0,0,0,434,435,6,37,2,0,435, - 78,1,0,0,0,436,437,3,5,1,0,437,438,1,0,0,0,438,439,6,38,3,0,439, - 80,1,0,0,0,440,441,3,9,3,0,441,442,1,0,0,0,442,443,6,39,4,0,443, - 82,1,0,0,0,444,445,3,11,4,0,445,446,1,0,0,0,446,447,6,40,5,0,447, - 84,1,0,0,0,448,449,3,13,5,0,449,450,1,0,0,0,450,451,6,41,6,0,451, - 86,1,0,0,0,452,453,3,15,6,0,453,454,1,0,0,0,454,455,6,42,7,0,455, - 88,1,0,0,0,456,457,3,17,7,0,457,458,1,0,0,0,458,459,6,43,8,0,459, - 90,1,0,0,0,460,461,3,19,8,0,461,462,1,0,0,0,462,463,6,44,9,0,463, - 92,1,0,0,0,464,465,3,21,9,0,465,466,1,0,0,0,466,467,6,45,10,0,467, - 94,1,0,0,0,468,469,3,25,11,0,469,470,1,0,0,0,470,471,6,46,11,0,471, - 96,1,0,0,0,472,473,3,27,12,0,473,474,1,0,0,0,474,475,6,47,12,0,475, - 98,1,0,0,0,476,477,3,29,13,0,477,478,1,0,0,0,478,479,6,48,13,0,479, - 100,1,0,0,0,480,481,3,31,14,0,481,482,1,0,0,0,482,483,6,49,14,0, - 483,102,1,0,0,0,484,485,3,33,15,0,485,486,1,0,0,0,486,487,6,50,15, - 0,487,104,1,0,0,0,488,489,3,35,16,0,489,490,1,0,0,0,490,491,6,51, - 16,0,491,106,1,0,0,0,492,493,3,37,17,0,493,494,1,0,0,0,494,495,6, - 52,17,0,495,108,1,0,0,0,496,497,3,39,18,0,497,498,1,0,0,0,498,499, - 6,53,18,0,499,110,1,0,0,0,500,501,3,41,19,0,501,502,1,0,0,0,502, - 503,6,54,19,0,503,112,1,0,0,0,504,505,3,43,20,0,505,506,1,0,0,0, - 506,507,6,55,20,0,507,114,1,0,0,0,508,509,3,45,21,0,509,510,1,0, - 0,0,510,511,6,56,21,0,511,116,1,0,0,0,512,513,3,3,0,0,513,514,1, - 0,0,0,514,515,6,57,2,0,515,516,6,57,22,0,516,118,1,0,0,0,517,518, - 2,45,46,0,518,519,1,0,0,0,519,520,6,58,4,0,520,521,6,58,22,0,521, - 120,1,0,0,0,522,523,3,3,0,0,523,524,1,0,0,0,524,525,6,59,2,0,525, - 526,6,59,22,0,526,122,1,0,0,0,527,528,3,5,1,0,528,529,1,0,0,0,529, - 530,6,60,3,0,530,531,6,60,22,0,531,124,1,0,0,0,532,533,3,9,3,0,533, - 534,1,0,0,0,534,535,6,61,4,0,535,536,6,61,22,0,536,126,1,0,0,0,537, - 538,3,11,4,0,538,539,1,0,0,0,539,540,6,62,5,0,540,541,6,62,22,0, - 541,128,1,0,0,0,542,543,3,13,5,0,543,544,1,0,0,0,544,545,6,63,6, - 0,545,546,6,63,22,0,546,130,1,0,0,0,547,548,3,15,6,0,548,549,1,0, - 0,0,549,550,6,64,7,0,550,551,6,64,22,0,551,132,1,0,0,0,552,553,3, - 17,7,0,553,554,1,0,0,0,554,555,6,65,8,0,555,556,6,65,22,0,556,134, - 1,0,0,0,557,558,3,19,8,0,558,559,1,0,0,0,559,560,6,66,9,0,560,561, - 6,66,22,0,561,136,1,0,0,0,562,563,3,21,9,0,563,564,1,0,0,0,564,565, - 6,67,10,0,565,566,6,67,22,0,566,138,1,0,0,0,567,568,3,25,11,0,568, - 569,1,0,0,0,569,570,6,68,11,0,570,571,6,68,22,0,571,140,1,0,0,0, - 572,573,3,29,13,0,573,574,1,0,0,0,574,575,6,69,13,0,575,576,6,69, - 22,0,576,142,1,0,0,0,577,578,3,31,14,0,578,579,1,0,0,0,579,580,6, - 70,14,0,580,581,6,70,22,0,581,144,1,0,0,0,582,583,3,33,15,0,583, - 584,1,0,0,0,584,585,6,71,15,0,585,586,6,71,22,0,586,146,1,0,0,0, - 587,588,3,35,16,0,588,589,1,0,0,0,589,590,6,72,16,0,590,591,6,72, - 22,0,591,148,1,0,0,0,592,593,3,37,17,0,593,594,1,0,0,0,594,595,6, - 73,17,0,595,596,6,73,22,0,596,150,1,0,0,0,597,598,3,39,18,0,598, - 599,1,0,0,0,599,600,6,74,18,0,600,601,6,74,22,0,601,152,1,0,0,0, - 602,603,3,41,19,0,603,604,1,0,0,0,604,605,6,75,19,0,605,606,6,75, - 22,0,606,154,1,0,0,0,607,608,3,43,20,0,608,609,1,0,0,0,609,610,6, - 76,20,0,610,611,6,76,22,0,611,156,1,0,0,0,612,613,3,45,21,0,613, - 614,1,0,0,0,614,615,6,77,21,0,615,616,6,77,22,0,616,158,1,0,0,0, - 46,0,1,2,161,171,176,190,195,209,213,221,224,229,232,237,257,264, - 269,280,286,293,296,301,306,308,325,329,332,335,340,343,350,356, - 359,362,367,370,379,383,386,389,409,414,416,421,423,23,5,1,0,2,2, - 0,7,1,0,7,2,0,7,3,0,7,4,0,7,5,0,7,6,0,7,7,0,7,8,0,7,9,0,7,10,0,7, - 11,0,7,12,0,7,13,0,7,14,0,7,15,0,7,16,0,7,17,0,7,18,0,7,19,0,7,20, - 0,2,0,0 + 4, + 0, + 27, + 617, + 6, + -1, + 6, + -1, + 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, + 1, + 0, + 1, + 0, + 3, + 0, + 162, + 8, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 2, + 1, + 3, + 1, + 3, + 3, + 3, + 172, + 8, + 3, + 1, + 4, + 5, + 4, + 175, + 8, + 4, + 10, + 4, + 12, + 4, + 178, + 9, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 3, + 4, + 191, + 8, + 4, + 1, + 4, + 5, + 4, + 194, + 8, + 4, + 10, + 4, + 12, + 4, + 197, + 9, + 4, + 1, + 5, + 1, + 5, + 1, + 6, + 1, + 6, + 1, + 7, + 1, + 7, + 1, + 8, + 1, + 8, + 1, + 9, + 4, + 9, + 208, + 8, + 9, + 11, + 9, + 12, + 9, + 209, + 1, + 10, + 1, + 10, + 3, + 10, + 214, + 8, + 10, + 1, + 11, + 1, + 11, + 1, + 11, + 1, + 12, + 1, + 12, + 1, + 12, + 3, + 12, + 222, + 8, + 12, + 1, + 12, + 3, + 12, + 225, + 8, + 12, + 1, + 12, + 1, + 12, + 1, + 12, + 3, + 12, + 230, + 8, + 12, + 1, + 12, + 3, + 12, + 233, + 8, + 12, + 1, + 12, + 1, + 12, + 1, + 12, + 3, + 12, + 238, + 8, + 12, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 1, + 13, + 3, + 13, + 258, + 8, + 13, + 1, + 13, + 1, + 13, + 1, + 14, + 4, + 14, + 263, + 8, + 14, + 11, + 14, + 12, + 14, + 264, + 1, + 15, + 1, + 15, + 1, + 15, + 3, + 15, + 270, + 8, + 15, + 1, + 16, + 1, + 16, + 1, + 16, + 1, + 16, + 1, + 16, + 1, + 16, + 1, + 16, + 1, + 16, + 1, + 16, + 3, + 16, + 281, + 8, + 16, + 1, + 17, + 1, + 17, + 5, + 17, + 285, + 8, + 17, + 10, + 17, + 12, + 17, + 288, + 9, + 17, + 1, + 17, + 1, + 17, + 1, + 17, + 1, + 17, + 3, + 17, + 294, + 8, + 17, + 1, + 17, + 3, + 17, + 297, + 8, + 17, + 1, + 17, + 5, + 17, + 300, + 8, + 17, + 10, + 17, + 12, + 17, + 303, + 9, + 17, + 1, + 18, + 1, + 18, + 4, + 18, + 307, + 8, + 18, + 11, + 18, + 12, + 18, + 308, + 1, + 18, + 1, + 18, + 1, + 19, + 1, + 19, + 1, + 20, + 1, + 20, + 1, + 21, + 1, + 21, + 1, + 22, + 1, + 22, + 1, + 22, + 1, + 22, + 1, + 22, + 1, + 22, + 1, + 22, + 3, + 22, + 326, + 8, + 22, + 1, + 23, + 1, + 23, + 3, + 23, + 330, + 8, + 23, + 1, + 24, + 3, + 24, + 333, + 8, + 24, + 1, + 24, + 3, + 24, + 336, + 8, + 24, + 1, + 24, + 1, + 24, + 1, + 24, + 3, + 24, + 341, + 8, + 24, + 1, + 25, + 3, + 25, + 344, + 8, + 25, + 1, + 25, + 1, + 25, + 1, + 26, + 1, + 26, + 1, + 26, + 3, + 26, + 351, + 8, + 26, + 1, + 26, + 1, + 26, + 5, + 26, + 355, + 8, + 26, + 10, + 26, + 12, + 26, + 358, + 9, + 26, + 3, + 26, + 360, + 8, + 26, + 1, + 27, + 3, + 27, + 363, + 8, + 27, + 1, + 27, + 1, + 27, + 1, + 27, + 3, + 27, + 368, + 8, + 27, + 1, + 28, + 3, + 28, + 371, + 8, + 28, + 1, + 28, + 1, + 28, + 1, + 28, + 1, + 28, + 1, + 28, + 1, + 28, + 1, + 28, + 3, + 28, + 380, + 8, + 28, + 1, + 29, + 1, + 29, + 3, + 29, + 384, + 8, + 29, + 1, + 29, + 3, + 29, + 387, + 8, + 29, + 1, + 29, + 3, + 29, + 390, + 8, + 29, + 1, + 30, + 1, + 30, + 1, + 30, + 1, + 30, + 1, + 30, + 1, + 30, + 1, + 31, + 1, + 31, + 1, + 31, + 1, + 31, + 1, + 32, + 1, + 32, + 1, + 33, + 1, + 33, + 1, + 33, + 1, + 33, + 1, + 33, + 1, + 33, + 3, + 33, + 410, + 8, + 33, + 1, + 34, + 1, + 34, + 1, + 34, + 3, + 34, + 415, + 8, + 34, + 3, + 34, + 417, + 8, + 34, + 1, + 35, + 1, + 35, + 1, + 35, + 3, + 35, + 422, + 8, + 35, + 3, + 35, + 424, + 8, + 35, + 1, + 35, + 1, + 35, + 1, + 35, + 1, + 36, + 1, + 36, + 1, + 36, + 1, + 36, + 1, + 37, + 1, + 37, + 1, + 37, + 1, + 37, + 1, + 38, + 1, + 38, + 1, + 38, + 1, + 38, + 1, + 39, + 1, + 39, + 1, + 39, + 1, + 39, + 1, + 40, + 1, + 40, + 1, + 40, + 1, + 40, + 1, + 41, + 1, + 41, + 1, + 41, + 1, + 41, + 1, + 42, + 1, + 42, + 1, + 42, + 1, + 42, + 1, + 43, + 1, + 43, + 1, + 43, + 1, + 43, + 1, + 44, + 1, + 44, + 1, + 44, + 1, + 44, + 1, + 45, + 1, + 45, + 1, + 45, + 1, + 45, + 1, + 46, + 1, + 46, + 1, + 46, + 1, + 46, + 1, + 47, + 1, + 47, + 1, + 47, + 1, + 47, + 1, + 48, + 1, + 48, + 1, + 48, + 1, + 48, + 1, + 49, + 1, + 49, + 1, + 49, + 1, + 49, + 1, + 50, + 1, + 50, + 1, + 50, + 1, + 50, + 1, + 51, + 1, + 51, + 1, + 51, + 1, + 51, + 1, + 52, + 1, + 52, + 1, + 52, + 1, + 52, + 1, + 53, + 1, + 53, + 1, + 53, + 1, + 53, + 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, + 57, + 1, + 57, + 1, + 58, + 1, + 58, + 1, + 58, + 1, + 58, + 1, + 58, + 1, + 59, + 1, + 59, + 1, + 59, + 1, + 59, + 1, + 59, + 1, + 60, + 1, + 60, + 1, + 60, + 1, + 60, + 1, + 60, + 1, + 61, + 1, + 61, + 1, + 61, + 1, + 61, + 1, + 61, + 1, + 62, + 1, + 62, + 1, + 62, + 1, + 62, + 1, + 62, + 1, + 63, + 1, + 63, + 1, + 63, + 1, + 63, + 1, + 63, + 1, + 64, + 1, + 64, + 1, + 64, + 1, + 64, + 1, + 64, + 1, + 65, + 1, + 65, + 1, + 65, + 1, + 65, + 1, + 65, + 1, + 66, + 1, + 66, + 1, + 66, + 1, + 66, + 1, + 66, + 1, + 67, + 1, + 67, + 1, + 67, + 1, + 67, + 1, + 67, + 1, + 68, + 1, + 68, + 1, + 68, + 1, + 68, + 1, + 68, + 1, + 69, + 1, + 69, + 1, + 69, + 1, + 69, + 1, + 69, + 1, + 70, + 1, + 70, + 1, + 70, + 1, + 70, + 1, + 70, + 1, + 71, + 1, + 71, + 1, + 71, + 1, + 71, + 1, + 71, + 1, + 72, + 1, + 72, + 1, + 72, + 1, + 72, + 1, + 72, + 1, + 73, + 1, + 73, + 1, + 73, + 1, + 73, + 1, + 73, + 1, + 74, + 1, + 74, + 1, + 74, + 1, + 74, + 1, + 74, + 1, + 75, + 1, + 75, + 1, + 75, + 1, + 75, + 1, + 75, + 1, + 76, + 1, + 76, + 1, + 76, + 1, + 76, + 1, + 76, + 1, + 77, + 1, + 77, + 1, + 77, + 1, + 77, + 1, + 77, + 0, + 0, + 78, + 3, + 1, + 5, + 2, + 7, + 0, + 9, + 3, + 11, + 4, + 13, + 5, + 15, + 6, + 17, + 7, + 19, + 8, + 21, + 9, + 23, + 0, + 25, + 10, + 27, + 11, + 29, + 12, + 31, + 13, + 33, + 14, + 35, + 15, + 37, + 16, + 39, + 17, + 41, + 18, + 43, + 19, + 45, + 20, + 47, + 21, + 49, + 0, + 51, + 0, + 53, + 0, + 55, + 0, + 57, + 0, + 59, + 0, + 61, + 0, + 63, + 22, + 65, + 23, + 67, + 24, + 69, + 25, + 71, + 0, + 73, + 26, + 75, + 27, + 77, + 0, + 79, + 0, + 81, + 0, + 83, + 0, + 85, + 0, + 87, + 0, + 89, + 0, + 91, + 0, + 93, + 0, + 95, + 0, + 97, + 0, + 99, + 0, + 101, + 0, + 103, + 0, + 105, + 0, + 107, + 0, + 109, + 0, + 111, + 0, + 113, + 0, + 115, + 0, + 117, + 0, + 119, + 0, + 121, + 0, + 123, + 0, + 125, + 0, + 127, + 0, + 129, + 0, + 131, + 0, + 133, + 0, + 135, + 0, + 137, + 0, + 139, + 0, + 141, + 0, + 143, + 0, + 145, + 0, + 147, + 0, + 149, + 0, + 151, + 0, + 153, + 0, + 155, + 0, + 157, + 0, + 3, + 0, + 1, + 2, + 6, + 2, + 0, + 42, + 42, + 183, + 183, + 2, + 0, + 69, + 69, + 101, + 101, + 4, + 0, + 178, + 179, + 185, + 185, + 8304, + 8304, + 8308, + 8315, + 3, + 0, + 65, + 90, + 95, + 95, + 97, + 122, + 9, + 0, + 128, + 128, + 173, + 173, + 176, + 176, + 181, + 181, + 192, + 214, + 216, + 246, + 248, + 255, + 937, + 937, + 960, + 960, + 1, + 0, + 32, + 32, + 656, + 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, + 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, + 1, + 47, + 1, + 0, + 0, + 0, + 1, + 63, + 1, + 0, + 0, + 0, + 1, + 65, + 1, + 0, + 0, + 0, + 1, + 67, + 1, + 0, + 0, + 0, + 1, + 69, + 1, + 0, + 0, + 0, + 1, + 73, + 1, + 0, + 0, + 0, + 1, + 75, + 1, + 0, + 0, + 0, + 1, + 77, + 1, + 0, + 0, + 0, + 1, + 79, + 1, + 0, + 0, + 0, + 1, + 81, + 1, + 0, + 0, + 0, + 1, + 83, + 1, + 0, + 0, + 0, + 1, + 85, + 1, + 0, + 0, + 0, + 1, + 87, + 1, + 0, + 0, + 0, + 1, + 89, + 1, + 0, + 0, + 0, + 1, + 91, + 1, + 0, + 0, + 0, + 1, + 93, + 1, + 0, + 0, + 0, + 1, + 95, + 1, + 0, + 0, + 0, + 1, + 97, + 1, + 0, + 0, + 0, + 1, + 99, + 1, + 0, + 0, + 0, + 1, + 101, + 1, + 0, + 0, + 0, + 1, + 103, + 1, + 0, + 0, + 0, + 1, + 105, + 1, + 0, + 0, + 0, + 1, + 107, + 1, + 0, + 0, + 0, + 1, + 109, + 1, + 0, + 0, + 0, + 1, + 111, + 1, + 0, + 0, + 0, + 1, + 113, + 1, + 0, + 0, + 0, + 1, + 115, + 1, + 0, + 0, + 0, + 2, + 117, + 1, + 0, + 0, + 0, + 2, + 119, + 1, + 0, + 0, + 0, + 2, + 121, + 1, + 0, + 0, + 0, + 2, + 123, + 1, + 0, + 0, + 0, + 2, + 125, + 1, + 0, + 0, + 0, + 2, + 127, + 1, + 0, + 0, + 0, + 2, + 129, + 1, + 0, + 0, + 0, + 2, + 131, + 1, + 0, + 0, + 0, + 2, + 133, + 1, + 0, + 0, + 0, + 2, + 135, + 1, + 0, + 0, + 0, + 2, + 137, + 1, + 0, + 0, + 0, + 2, + 139, + 1, + 0, + 0, + 0, + 2, + 141, + 1, + 0, + 0, + 0, + 2, + 143, + 1, + 0, + 0, + 0, + 2, + 145, + 1, + 0, + 0, + 0, + 2, + 147, + 1, + 0, + 0, + 0, + 2, + 149, + 1, + 0, + 0, + 0, + 2, + 151, + 1, + 0, + 0, + 0, + 2, + 153, + 1, + 0, + 0, + 0, + 2, + 155, + 1, + 0, + 0, + 0, + 2, + 157, + 1, + 0, + 0, + 0, + 3, + 161, + 1, + 0, + 0, + 0, + 5, + 165, + 1, + 0, + 0, + 0, + 7, + 167, + 1, + 0, + 0, + 0, + 9, + 171, + 1, + 0, + 0, + 0, + 11, + 176, + 1, + 0, + 0, + 0, + 13, + 198, + 1, + 0, + 0, + 0, + 15, + 200, + 1, + 0, + 0, + 0, + 17, + 202, + 1, + 0, + 0, + 0, + 19, + 204, + 1, + 0, + 0, + 0, + 21, + 207, + 1, + 0, + 0, + 0, + 23, + 213, + 1, + 0, + 0, + 0, + 25, + 215, + 1, + 0, + 0, + 0, + 27, + 237, + 1, + 0, + 0, + 0, + 29, + 257, + 1, + 0, + 0, + 0, + 31, + 262, + 1, + 0, + 0, + 0, + 33, + 269, + 1, + 0, + 0, + 0, + 35, + 280, + 1, + 0, + 0, + 0, + 37, + 282, + 1, + 0, + 0, + 0, + 39, + 306, + 1, + 0, + 0, + 0, + 41, + 312, + 1, + 0, + 0, + 0, + 43, + 314, + 1, + 0, + 0, + 0, + 45, + 316, + 1, + 0, + 0, + 0, + 47, + 325, + 1, + 0, + 0, + 0, + 49, + 329, + 1, + 0, + 0, + 0, + 51, + 340, + 1, + 0, + 0, + 0, + 53, + 343, + 1, + 0, + 0, + 0, + 55, + 350, + 1, + 0, + 0, + 0, + 57, + 367, + 1, + 0, + 0, + 0, + 59, + 379, + 1, + 0, + 0, + 0, + 61, + 381, + 1, + 0, + 0, + 0, + 63, + 391, + 1, + 0, + 0, + 0, + 65, + 397, + 1, + 0, + 0, + 0, + 67, + 401, + 1, + 0, + 0, + 0, + 69, + 403, + 1, + 0, + 0, + 0, + 71, + 411, + 1, + 0, + 0, + 0, + 73, + 418, + 1, + 0, + 0, + 0, + 75, + 428, + 1, + 0, + 0, + 0, + 77, + 432, + 1, + 0, + 0, + 0, + 79, + 436, + 1, + 0, + 0, + 0, + 81, + 440, + 1, + 0, + 0, + 0, + 83, + 444, + 1, + 0, + 0, + 0, + 85, + 448, + 1, + 0, + 0, + 0, + 87, + 452, + 1, + 0, + 0, + 0, + 89, + 456, + 1, + 0, + 0, + 0, + 91, + 460, + 1, + 0, + 0, + 0, + 93, + 464, + 1, + 0, + 0, + 0, + 95, + 468, + 1, + 0, + 0, + 0, + 97, + 472, + 1, + 0, + 0, + 0, + 99, + 476, + 1, + 0, + 0, + 0, + 101, + 480, + 1, + 0, + 0, + 0, + 103, + 484, + 1, + 0, + 0, + 0, + 105, + 488, + 1, + 0, + 0, + 0, + 107, + 492, + 1, + 0, + 0, + 0, + 109, + 496, + 1, + 0, + 0, + 0, + 111, + 500, + 1, + 0, + 0, + 0, + 113, + 504, + 1, + 0, + 0, + 0, + 115, + 508, + 1, + 0, + 0, + 0, + 117, + 512, + 1, + 0, + 0, + 0, + 119, + 517, + 1, + 0, + 0, + 0, + 121, + 522, + 1, + 0, + 0, + 0, + 123, + 527, + 1, + 0, + 0, + 0, + 125, + 532, + 1, + 0, + 0, + 0, + 127, + 537, + 1, + 0, + 0, + 0, + 129, + 542, + 1, + 0, + 0, + 0, + 131, + 547, + 1, + 0, + 0, + 0, + 133, + 552, + 1, + 0, + 0, + 0, + 135, + 557, + 1, + 0, + 0, + 0, + 137, + 562, + 1, + 0, + 0, + 0, + 139, + 567, + 1, + 0, + 0, + 0, + 141, + 572, + 1, + 0, + 0, + 0, + 143, + 577, + 1, + 0, + 0, + 0, + 145, + 582, + 1, + 0, + 0, + 0, + 147, + 587, + 1, + 0, + 0, + 0, + 149, + 592, + 1, + 0, + 0, + 0, + 151, + 597, + 1, + 0, + 0, + 0, + 153, + 602, + 1, + 0, + 0, + 0, + 155, + 607, + 1, + 0, + 0, + 0, + 157, + 612, + 1, + 0, + 0, + 0, + 159, + 162, + 3, + 7, + 2, + 0, + 160, + 162, + 3, + 5, + 1, + 0, + 161, + 159, + 1, + 0, + 0, + 0, + 161, + 160, + 1, + 0, + 0, + 0, + 162, + 163, + 1, + 0, + 0, + 0, + 163, + 164, + 3, + 21, + 9, + 0, + 164, + 4, + 1, + 0, + 0, + 0, + 165, + 166, + 5, + 43, + 0, + 0, + 166, + 6, + 1, + 0, + 0, + 0, + 167, + 168, + 5, + 45, + 0, + 0, + 168, + 8, + 1, + 0, + 0, + 0, + 169, + 172, + 7, + 0, + 0, + 0, + 170, + 172, + 3, + 7, + 2, + 0, + 171, + 169, + 1, + 0, + 0, + 0, + 171, + 170, + 1, + 0, + 0, + 0, + 172, + 10, + 1, + 0, + 0, + 0, + 173, + 175, + 3, + 43, + 20, + 0, + 174, + 173, + 1, + 0, + 0, + 0, + 175, + 178, + 1, + 0, + 0, + 0, + 176, + 174, + 1, + 0, + 0, + 0, + 176, + 177, + 1, + 0, + 0, + 0, + 177, + 190, + 1, + 0, + 0, + 0, + 178, + 176, + 1, + 0, + 0, + 0, + 179, + 191, + 5, + 47, + 0, + 0, + 180, + 181, + 5, + 32, + 0, + 0, + 181, + 182, + 5, + 80, + 0, + 0, + 182, + 183, + 5, + 69, + 0, + 0, + 183, + 184, + 5, + 82, + 0, + 0, + 184, + 191, + 5, + 32, + 0, + 0, + 185, + 186, + 5, + 32, + 0, + 0, + 186, + 187, + 5, + 112, + 0, + 0, + 187, + 188, + 5, + 101, + 0, + 0, + 188, + 189, + 5, + 114, + 0, + 0, + 189, + 191, + 5, + 32, + 0, + 0, + 190, + 179, + 1, + 0, + 0, + 0, + 190, + 180, + 1, + 0, + 0, + 0, + 190, + 185, + 1, + 0, + 0, + 0, + 191, + 195, + 1, + 0, + 0, + 0, + 192, + 194, + 3, + 43, + 20, + 0, + 193, + 192, + 1, + 0, + 0, + 0, + 194, + 197, + 1, + 0, + 0, + 0, + 195, + 193, + 1, + 0, + 0, + 0, + 195, + 196, + 1, + 0, + 0, + 0, + 196, + 12, + 1, + 0, + 0, + 0, + 197, + 195, + 1, + 0, + 0, + 0, + 198, + 199, + 5, + 46, + 0, + 0, + 199, + 14, + 1, + 0, + 0, + 0, + 200, + 201, + 5, + 40, + 0, + 0, + 201, + 16, + 1, + 0, + 0, + 0, + 202, + 203, + 5, + 41, + 0, + 0, + 203, + 18, + 1, + 0, + 0, + 0, + 204, + 205, + 5, + 58, + 0, + 0, + 205, + 20, + 1, + 0, + 0, + 0, + 206, + 208, + 2, + 48, + 57, + 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, + 22, + 1, + 0, + 0, + 0, + 211, + 214, + 3, + 21, + 9, + 0, + 212, + 214, + 3, + 3, + 0, + 0, + 213, + 211, + 1, + 0, + 0, + 0, + 213, + 212, + 1, + 0, + 0, + 0, + 214, + 24, + 1, + 0, + 0, + 0, + 215, + 216, + 7, + 1, + 0, + 0, + 216, + 217, + 3, + 23, + 10, + 0, + 217, + 26, + 1, + 0, + 0, + 0, + 218, + 219, + 3, + 23, + 10, + 0, + 219, + 221, + 3, + 13, + 5, + 0, + 220, + 222, + 3, + 21, + 9, + 0, + 221, + 220, + 1, + 0, + 0, + 0, + 221, + 222, + 1, + 0, + 0, + 0, + 222, + 230, + 1, + 0, + 0, + 0, + 223, + 225, + 3, + 23, + 10, + 0, + 224, + 223, + 1, + 0, + 0, + 0, + 224, + 225, + 1, + 0, + 0, + 0, + 225, + 226, + 1, + 0, + 0, + 0, + 226, + 227, + 3, + 13, + 5, + 0, + 227, + 228, + 3, + 21, + 9, + 0, + 228, + 230, + 1, + 0, + 0, + 0, + 229, + 218, + 1, + 0, + 0, + 0, + 229, + 224, + 1, + 0, + 0, + 0, + 230, + 232, + 1, + 0, + 0, + 0, + 231, + 233, + 3, + 25, + 11, + 0, + 232, + 231, + 1, + 0, + 0, + 0, + 232, + 233, + 1, + 0, + 0, + 0, + 233, + 238, + 1, + 0, + 0, + 0, + 234, + 235, + 3, + 23, + 10, + 0, + 235, + 236, + 3, + 25, + 11, + 0, + 236, + 238, + 1, + 0, + 0, + 0, + 237, + 229, + 1, + 0, + 0, + 0, + 237, + 234, + 1, + 0, + 0, + 0, + 238, + 28, + 1, + 0, + 0, + 0, + 239, + 258, + 5, + 64, + 0, + 0, + 240, + 241, + 5, + 97, + 0, + 0, + 241, + 242, + 5, + 102, + 0, + 0, + 242, + 243, + 5, + 116, + 0, + 0, + 243, + 244, + 5, + 101, + 0, + 0, + 244, + 258, + 5, + 114, + 0, + 0, + 245, + 246, + 5, + 102, + 0, + 0, + 246, + 247, + 5, + 114, + 0, + 0, + 247, + 248, + 5, + 111, + 0, + 0, + 248, + 258, + 5, + 109, + 0, + 0, + 249, + 250, + 5, + 115, + 0, + 0, + 250, + 251, + 5, + 105, + 0, + 0, + 251, + 252, + 5, + 110, + 0, + 0, + 252, + 253, + 5, + 99, + 0, + 0, + 253, + 258, + 5, + 101, + 0, + 0, + 254, + 255, + 5, + 114, + 0, + 0, + 255, + 256, + 5, + 101, + 0, + 0, + 256, + 258, + 5, + 102, + 0, + 0, + 257, + 239, + 1, + 0, + 0, + 0, + 257, + 240, + 1, + 0, + 0, + 0, + 257, + 245, + 1, + 0, + 0, + 0, + 257, + 249, + 1, + 0, + 0, + 0, + 257, + 254, + 1, + 0, + 0, + 0, + 258, + 259, + 1, + 0, + 0, + 0, + 259, + 260, + 6, + 13, + 0, + 0, + 260, + 30, + 1, + 0, + 0, + 0, + 261, + 263, + 7, + 2, + 0, + 0, + 262, + 261, + 1, + 0, + 0, + 0, + 263, + 264, + 1, + 0, + 0, + 0, + 264, + 262, + 1, + 0, + 0, + 0, + 264, + 265, + 1, + 0, + 0, + 0, + 265, + 32, + 1, + 0, + 0, + 0, + 266, + 270, + 5, + 94, + 0, + 0, + 267, + 268, + 5, + 42, + 0, + 0, + 268, + 270, + 5, + 42, + 0, + 0, + 269, + 266, + 1, + 0, + 0, + 0, + 269, + 267, + 1, + 0, + 0, + 0, + 270, + 34, + 1, + 0, + 0, + 0, + 271, + 272, + 5, + 108, + 0, + 0, + 272, + 273, + 5, + 111, + 0, + 0, + 273, + 281, + 5, + 103, + 0, + 0, + 274, + 275, + 5, + 108, + 0, + 0, + 275, + 281, + 5, + 103, + 0, + 0, + 276, + 277, + 5, + 108, + 0, + 0, + 277, + 281, + 5, + 110, + 0, + 0, + 278, + 279, + 5, + 108, + 0, + 0, + 279, + 281, + 5, + 98, + 0, + 0, + 280, + 271, + 1, + 0, + 0, + 0, + 280, + 274, + 1, + 0, + 0, + 0, + 280, + 276, + 1, + 0, + 0, + 0, + 280, + 278, + 1, + 0, + 0, + 0, + 281, + 36, + 1, + 0, + 0, + 0, + 282, + 286, + 5, + 40, + 0, + 0, + 283, + 285, + 3, + 43, + 20, + 0, + 284, + 283, + 1, + 0, + 0, + 0, + 285, + 288, + 1, + 0, + 0, + 0, + 286, + 284, + 1, + 0, + 0, + 0, + 286, + 287, + 1, + 0, + 0, + 0, + 287, + 293, + 1, + 0, + 0, + 0, + 288, + 286, + 1, + 0, + 0, + 0, + 289, + 290, + 5, + 82, + 0, + 0, + 290, + 294, + 5, + 69, + 0, + 0, + 291, + 292, + 5, + 114, + 0, + 0, + 292, + 294, + 5, + 101, + 0, + 0, + 293, + 289, + 1, + 0, + 0, + 0, + 293, + 291, + 1, + 0, + 0, + 0, + 294, + 296, + 1, + 0, + 0, + 0, + 295, + 297, + 5, + 58, + 0, + 0, + 296, + 295, + 1, + 0, + 0, + 0, + 296, + 297, + 1, + 0, + 0, + 0, + 297, + 301, + 1, + 0, + 0, + 0, + 298, + 300, + 3, + 43, + 20, + 0, + 299, + 298, + 1, + 0, + 0, + 0, + 300, + 303, + 1, + 0, + 0, + 0, + 301, + 299, + 1, + 0, + 0, + 0, + 301, + 302, + 1, + 0, + 0, + 0, + 302, + 38, + 1, + 0, + 0, + 0, + 303, + 301, + 1, + 0, + 0, + 0, + 304, + 307, + 7, + 3, + 0, + 0, + 305, + 307, + 3, + 41, + 19, + 0, + 306, + 304, + 1, + 0, + 0, + 0, + 306, + 305, + 1, + 0, + 0, + 0, + 307, + 308, + 1, + 0, + 0, + 0, + 308, + 306, + 1, + 0, + 0, + 0, + 308, + 309, + 1, + 0, + 0, + 0, + 309, + 310, + 1, + 0, + 0, + 0, + 310, + 311, + 6, + 18, + 1, + 0, + 311, + 40, + 1, + 0, + 0, + 0, + 312, + 313, + 7, + 4, + 0, + 0, + 313, + 42, + 1, + 0, + 0, + 0, + 314, + 315, + 7, + 5, + 0, + 0, + 315, + 44, + 1, + 0, + 0, + 0, + 316, + 317, + 9, + 0, + 0, + 0, + 317, + 46, + 1, + 0, + 0, + 0, + 318, + 319, + 5, + 85, + 0, + 0, + 319, + 320, + 5, + 84, + 0, + 0, + 320, + 326, + 5, + 67, + 0, + 0, + 321, + 326, + 5, + 90, + 0, + 0, + 322, + 323, + 5, + 71, + 0, + 0, + 323, + 324, + 5, + 77, + 0, + 0, + 324, + 326, + 5, + 84, + 0, + 0, + 325, + 318, + 1, + 0, + 0, + 0, + 325, + 321, + 1, + 0, + 0, + 0, + 325, + 322, + 1, + 0, + 0, + 0, + 326, + 48, + 1, + 0, + 0, + 0, + 327, + 330, + 3, + 5, + 1, + 0, + 328, + 330, + 3, + 7, + 2, + 0, + 329, + 327, + 1, + 0, + 0, + 0, + 329, + 328, + 1, + 0, + 0, + 0, + 330, + 50, + 1, + 0, + 0, + 0, + 331, + 333, + 3, + 49, + 23, + 0, + 332, + 331, + 1, + 0, + 0, + 0, + 332, + 333, + 1, + 0, + 0, + 0, + 333, + 335, + 1, + 0, + 0, + 0, + 334, + 336, + 2, + 48, + 49, + 0, + 335, + 334, + 1, + 0, + 0, + 0, + 335, + 336, + 1, + 0, + 0, + 0, + 336, + 337, + 1, + 0, + 0, + 0, + 337, + 341, + 2, + 48, + 57, + 0, + 338, + 339, + 5, + 50, + 0, + 0, + 339, + 341, + 2, + 48, + 51, + 0, + 340, + 332, + 1, + 0, + 0, + 0, + 340, + 338, + 1, + 0, + 0, + 0, + 341, + 52, + 1, + 0, + 0, + 0, + 342, + 344, + 2, + 48, + 53, + 0, + 343, + 342, + 1, + 0, + 0, + 0, + 343, + 344, + 1, + 0, + 0, + 0, + 344, + 345, + 1, + 0, + 0, + 0, + 345, + 346, + 2, + 48, + 57, + 0, + 346, + 54, + 1, + 0, + 0, + 0, + 347, + 351, + 3, + 53, + 25, + 0, + 348, + 349, + 5, + 54, + 0, + 0, + 349, + 351, + 5, + 48, + 0, + 0, + 350, + 347, + 1, + 0, + 0, + 0, + 350, + 348, + 1, + 0, + 0, + 0, + 351, + 359, + 1, + 0, + 0, + 0, + 352, + 356, + 3, + 13, + 5, + 0, + 353, + 355, + 2, + 48, + 57, + 0, + 354, + 353, + 1, + 0, + 0, + 0, + 355, + 358, + 1, + 0, + 0, + 0, + 356, + 354, + 1, + 0, + 0, + 0, + 356, + 357, + 1, + 0, + 0, + 0, + 357, + 360, + 1, + 0, + 0, + 0, + 358, + 356, + 1, + 0, + 0, + 0, + 359, + 352, + 1, + 0, + 0, + 0, + 359, + 360, + 1, + 0, + 0, + 0, + 360, + 56, + 1, + 0, + 0, + 0, + 361, + 363, + 5, + 48, + 0, + 0, + 362, + 361, + 1, + 0, + 0, + 0, + 362, + 363, + 1, + 0, + 0, + 0, + 363, + 364, + 1, + 0, + 0, + 0, + 364, + 368, + 2, + 49, + 57, + 0, + 365, + 366, + 5, + 49, + 0, + 0, + 366, + 368, + 2, + 48, + 50, + 0, + 367, + 362, + 1, + 0, + 0, + 0, + 367, + 365, + 1, + 0, + 0, + 0, + 368, + 58, + 1, + 0, + 0, + 0, + 369, + 371, + 5, + 48, + 0, + 0, + 370, + 369, + 1, + 0, + 0, + 0, + 370, + 371, + 1, + 0, + 0, + 0, + 371, + 372, + 1, + 0, + 0, + 0, + 372, + 380, + 2, + 49, + 57, + 0, + 373, + 374, + 2, + 49, + 50, + 0, + 374, + 380, + 2, + 48, + 57, + 0, + 375, + 376, + 5, + 51, + 0, + 0, + 376, + 380, + 5, + 48, + 0, + 0, + 377, + 378, + 5, + 51, + 0, + 0, + 378, + 380, + 5, + 49, + 0, + 0, + 379, + 370, + 1, + 0, + 0, + 0, + 379, + 373, + 1, + 0, + 0, + 0, + 379, + 375, + 1, + 0, + 0, + 0, + 379, + 377, + 1, + 0, + 0, + 0, + 380, + 60, + 1, + 0, + 0, + 0, + 381, + 383, + 3, + 23, + 10, + 0, + 382, + 384, + 3, + 21, + 9, + 0, + 383, + 382, + 1, + 0, + 0, + 0, + 383, + 384, + 1, + 0, + 0, + 0, + 384, + 386, + 1, + 0, + 0, + 0, + 385, + 387, + 3, + 21, + 9, + 0, + 386, + 385, + 1, + 0, + 0, + 0, + 386, + 387, + 1, + 0, + 0, + 0, + 387, + 389, + 1, + 0, + 0, + 0, + 388, + 390, + 3, + 21, + 9, + 0, + 389, + 388, + 1, + 0, + 0, + 0, + 389, + 390, + 1, + 0, + 0, + 0, + 390, + 62, + 1, + 0, + 0, + 0, + 391, + 392, + 3, + 51, + 24, + 0, + 392, + 393, + 5, + 58, + 0, + 0, + 393, + 394, + 3, + 53, + 25, + 0, + 394, + 395, + 5, + 58, + 0, + 0, + 395, + 396, + 3, + 55, + 26, + 0, + 396, + 64, + 1, + 0, + 0, + 0, + 397, + 398, + 3, + 51, + 24, + 0, + 398, + 399, + 5, + 58, + 0, + 0, + 399, + 400, + 3, + 53, + 25, + 0, + 400, + 66, + 1, + 0, + 0, + 0, + 401, + 402, + 5, + 45, + 0, + 0, + 402, + 68, + 1, + 0, + 0, + 0, + 403, + 404, + 3, + 61, + 29, + 0, + 404, + 405, + 3, + 7, + 2, + 0, + 405, + 409, + 3, + 57, + 27, + 0, + 406, + 407, + 3, + 7, + 2, + 0, + 407, + 408, + 3, + 59, + 28, + 0, + 408, + 410, + 1, + 0, + 0, + 0, + 409, + 406, + 1, + 0, + 0, + 0, + 409, + 410, + 1, + 0, + 0, + 0, + 410, + 70, + 1, + 0, + 0, + 0, + 411, + 416, + 3, + 51, + 24, + 0, + 412, + 414, + 3, + 53, + 25, + 0, + 413, + 415, + 3, + 55, + 26, + 0, + 414, + 413, + 1, + 0, + 0, + 0, + 414, + 415, + 1, + 0, + 0, + 0, + 415, + 417, + 1, + 0, + 0, + 0, + 416, + 412, + 1, + 0, + 0, + 0, + 416, + 417, + 1, + 0, + 0, + 0, + 417, + 72, + 1, + 0, + 0, + 0, + 418, + 423, + 3, + 61, + 29, + 0, + 419, + 421, + 3, + 57, + 27, + 0, + 420, + 422, + 3, + 59, + 28, + 0, + 421, + 420, + 1, + 0, + 0, + 0, + 421, + 422, + 1, + 0, + 0, + 0, + 422, + 424, + 1, + 0, + 0, + 0, + 423, + 419, + 1, + 0, + 0, + 0, + 423, + 424, + 1, + 0, + 0, + 0, + 424, + 425, + 1, + 0, + 0, + 0, + 425, + 426, + 5, + 84, + 0, + 0, + 426, + 427, + 3, + 71, + 34, + 0, + 427, + 74, + 1, + 0, + 0, + 0, + 428, + 429, + 3, + 69, + 33, + 0, + 429, + 430, + 5, + 84, + 0, + 0, + 430, + 431, + 3, + 71, + 34, + 0, + 431, + 76, + 1, + 0, + 0, + 0, + 432, + 433, + 3, + 3, + 0, + 0, + 433, + 434, + 1, + 0, + 0, + 0, + 434, + 435, + 6, + 37, + 2, + 0, + 435, + 78, + 1, + 0, + 0, + 0, + 436, + 437, + 3, + 5, + 1, + 0, + 437, + 438, + 1, + 0, + 0, + 0, + 438, + 439, + 6, + 38, + 3, + 0, + 439, + 80, + 1, + 0, + 0, + 0, + 440, + 441, + 3, + 9, + 3, + 0, + 441, + 442, + 1, + 0, + 0, + 0, + 442, + 443, + 6, + 39, + 4, + 0, + 443, + 82, + 1, + 0, + 0, + 0, + 444, + 445, + 3, + 11, + 4, + 0, + 445, + 446, + 1, + 0, + 0, + 0, + 446, + 447, + 6, + 40, + 5, + 0, + 447, + 84, + 1, + 0, + 0, + 0, + 448, + 449, + 3, + 13, + 5, + 0, + 449, + 450, + 1, + 0, + 0, + 0, + 450, + 451, + 6, + 41, + 6, + 0, + 451, + 86, + 1, + 0, + 0, + 0, + 452, + 453, + 3, + 15, + 6, + 0, + 453, + 454, + 1, + 0, + 0, + 0, + 454, + 455, + 6, + 42, + 7, + 0, + 455, + 88, + 1, + 0, + 0, + 0, + 456, + 457, + 3, + 17, + 7, + 0, + 457, + 458, + 1, + 0, + 0, + 0, + 458, + 459, + 6, + 43, + 8, + 0, + 459, + 90, + 1, + 0, + 0, + 0, + 460, + 461, + 3, + 19, + 8, + 0, + 461, + 462, + 1, + 0, + 0, + 0, + 462, + 463, + 6, + 44, + 9, + 0, + 463, + 92, + 1, + 0, + 0, + 0, + 464, + 465, + 3, + 21, + 9, + 0, + 465, + 466, + 1, + 0, + 0, + 0, + 466, + 467, + 6, + 45, + 10, + 0, + 467, + 94, + 1, + 0, + 0, + 0, + 468, + 469, + 3, + 25, + 11, + 0, + 469, + 470, + 1, + 0, + 0, + 0, + 470, + 471, + 6, + 46, + 11, + 0, + 471, + 96, + 1, + 0, + 0, + 0, + 472, + 473, + 3, + 27, + 12, + 0, + 473, + 474, + 1, + 0, + 0, + 0, + 474, + 475, + 6, + 47, + 12, + 0, + 475, + 98, + 1, + 0, + 0, + 0, + 476, + 477, + 3, + 29, + 13, + 0, + 477, + 478, + 1, + 0, + 0, + 0, + 478, + 479, + 6, + 48, + 13, + 0, + 479, + 100, + 1, + 0, + 0, + 0, + 480, + 481, + 3, + 31, + 14, + 0, + 481, + 482, + 1, + 0, + 0, + 0, + 482, + 483, + 6, + 49, + 14, + 0, + 483, + 102, + 1, + 0, + 0, + 0, + 484, + 485, + 3, + 33, + 15, + 0, + 485, + 486, + 1, + 0, + 0, + 0, + 486, + 487, + 6, + 50, + 15, + 0, + 487, + 104, + 1, + 0, + 0, + 0, + 488, + 489, + 3, + 35, + 16, + 0, + 489, + 490, + 1, + 0, + 0, + 0, + 490, + 491, + 6, + 51, + 16, + 0, + 491, + 106, + 1, + 0, + 0, + 0, + 492, + 493, + 3, + 37, + 17, + 0, + 493, + 494, + 1, + 0, + 0, + 0, + 494, + 495, + 6, + 52, + 17, + 0, + 495, + 108, + 1, + 0, + 0, + 0, + 496, + 497, + 3, + 39, + 18, + 0, + 497, + 498, + 1, + 0, + 0, + 0, + 498, + 499, + 6, + 53, + 18, + 0, + 499, + 110, + 1, + 0, + 0, + 0, + 500, + 501, + 3, + 41, + 19, + 0, + 501, + 502, + 1, + 0, + 0, + 0, + 502, + 503, + 6, + 54, + 19, + 0, + 503, + 112, + 1, + 0, + 0, + 0, + 504, + 505, + 3, + 43, + 20, + 0, + 505, + 506, + 1, + 0, + 0, + 0, + 506, + 507, + 6, + 55, + 20, + 0, + 507, + 114, + 1, + 0, + 0, + 0, + 508, + 509, + 3, + 45, + 21, + 0, + 509, + 510, + 1, + 0, + 0, + 0, + 510, + 511, + 6, + 56, + 21, + 0, + 511, + 116, + 1, + 0, + 0, + 0, + 512, + 513, + 3, + 3, + 0, + 0, + 513, + 514, + 1, + 0, + 0, + 0, + 514, + 515, + 6, + 57, + 2, + 0, + 515, + 516, + 6, + 57, + 22, + 0, + 516, + 118, + 1, + 0, + 0, + 0, + 517, + 518, + 2, + 45, + 46, + 0, + 518, + 519, + 1, + 0, + 0, + 0, + 519, + 520, + 6, + 58, + 4, + 0, + 520, + 521, + 6, + 58, + 22, + 0, + 521, + 120, + 1, + 0, + 0, + 0, + 522, + 523, + 3, + 3, + 0, + 0, + 523, + 524, + 1, + 0, + 0, + 0, + 524, + 525, + 6, + 59, + 2, + 0, + 525, + 526, + 6, + 59, + 22, + 0, + 526, + 122, + 1, + 0, + 0, + 0, + 527, + 528, + 3, + 5, + 1, + 0, + 528, + 529, + 1, + 0, + 0, + 0, + 529, + 530, + 6, + 60, + 3, + 0, + 530, + 531, + 6, + 60, + 22, + 0, + 531, + 124, + 1, + 0, + 0, + 0, + 532, + 533, + 3, + 9, + 3, + 0, + 533, + 534, + 1, + 0, + 0, + 0, + 534, + 535, + 6, + 61, + 4, + 0, + 535, + 536, + 6, + 61, + 22, + 0, + 536, + 126, + 1, + 0, + 0, + 0, + 537, + 538, + 3, + 11, + 4, + 0, + 538, + 539, + 1, + 0, + 0, + 0, + 539, + 540, + 6, + 62, + 5, + 0, + 540, + 541, + 6, + 62, + 22, + 0, + 541, + 128, + 1, + 0, + 0, + 0, + 542, + 543, + 3, + 13, + 5, + 0, + 543, + 544, + 1, + 0, + 0, + 0, + 544, + 545, + 6, + 63, + 6, + 0, + 545, + 546, + 6, + 63, + 22, + 0, + 546, + 130, + 1, + 0, + 0, + 0, + 547, + 548, + 3, + 15, + 6, + 0, + 548, + 549, + 1, + 0, + 0, + 0, + 549, + 550, + 6, + 64, + 7, + 0, + 550, + 551, + 6, + 64, + 22, + 0, + 551, + 132, + 1, + 0, + 0, + 0, + 552, + 553, + 3, + 17, + 7, + 0, + 553, + 554, + 1, + 0, + 0, + 0, + 554, + 555, + 6, + 65, + 8, + 0, + 555, + 556, + 6, + 65, + 22, + 0, + 556, + 134, + 1, + 0, + 0, + 0, + 557, + 558, + 3, + 19, + 8, + 0, + 558, + 559, + 1, + 0, + 0, + 0, + 559, + 560, + 6, + 66, + 9, + 0, + 560, + 561, + 6, + 66, + 22, + 0, + 561, + 136, + 1, + 0, + 0, + 0, + 562, + 563, + 3, + 21, + 9, + 0, + 563, + 564, + 1, + 0, + 0, + 0, + 564, + 565, + 6, + 67, + 10, + 0, + 565, + 566, + 6, + 67, + 22, + 0, + 566, + 138, + 1, + 0, + 0, + 0, + 567, + 568, + 3, + 25, + 11, + 0, + 568, + 569, + 1, + 0, + 0, + 0, + 569, + 570, + 6, + 68, + 11, + 0, + 570, + 571, + 6, + 68, + 22, + 0, + 571, + 140, + 1, + 0, + 0, + 0, + 572, + 573, + 3, + 29, + 13, + 0, + 573, + 574, + 1, + 0, + 0, + 0, + 574, + 575, + 6, + 69, + 13, + 0, + 575, + 576, + 6, + 69, + 22, + 0, + 576, + 142, + 1, + 0, + 0, + 0, + 577, + 578, + 3, + 31, + 14, + 0, + 578, + 579, + 1, + 0, + 0, + 0, + 579, + 580, + 6, + 70, + 14, + 0, + 580, + 581, + 6, + 70, + 22, + 0, + 581, + 144, + 1, + 0, + 0, + 0, + 582, + 583, + 3, + 33, + 15, + 0, + 583, + 584, + 1, + 0, + 0, + 0, + 584, + 585, + 6, + 71, + 15, + 0, + 585, + 586, + 6, + 71, + 22, + 0, + 586, + 146, + 1, + 0, + 0, + 0, + 587, + 588, + 3, + 35, + 16, + 0, + 588, + 589, + 1, + 0, + 0, + 0, + 589, + 590, + 6, + 72, + 16, + 0, + 590, + 591, + 6, + 72, + 22, + 0, + 591, + 148, + 1, + 0, + 0, + 0, + 592, + 593, + 3, + 37, + 17, + 0, + 593, + 594, + 1, + 0, + 0, + 0, + 594, + 595, + 6, + 73, + 17, + 0, + 595, + 596, + 6, + 73, + 22, + 0, + 596, + 150, + 1, + 0, + 0, + 0, + 597, + 598, + 3, + 39, + 18, + 0, + 598, + 599, + 1, + 0, + 0, + 0, + 599, + 600, + 6, + 74, + 18, + 0, + 600, + 601, + 6, + 74, + 22, + 0, + 601, + 152, + 1, + 0, + 0, + 0, + 602, + 603, + 3, + 41, + 19, + 0, + 603, + 604, + 1, + 0, + 0, + 0, + 604, + 605, + 6, + 75, + 19, + 0, + 605, + 606, + 6, + 75, + 22, + 0, + 606, + 154, + 1, + 0, + 0, + 0, + 607, + 608, + 3, + 43, + 20, + 0, + 608, + 609, + 1, + 0, + 0, + 0, + 609, + 610, + 6, + 76, + 20, + 0, + 610, + 611, + 6, + 76, + 22, + 0, + 611, + 156, + 1, + 0, + 0, + 0, + 612, + 613, + 3, + 45, + 21, + 0, + 613, + 614, + 1, + 0, + 0, + 0, + 614, + 615, + 6, + 77, + 21, + 0, + 615, + 616, + 6, + 77, + 22, + 0, + 616, + 158, + 1, + 0, + 0, + 0, + 46, + 0, + 1, + 2, + 161, + 171, + 176, + 190, + 195, + 209, + 213, + 221, + 224, + 229, + 232, + 237, + 257, + 264, + 269, + 280, + 286, + 293, + 296, + 301, + 306, + 308, + 325, + 329, + 332, + 335, + 340, + 343, + 350, + 356, + 359, + 362, + 367, + 370, + 379, + 383, + 386, + 389, + 409, + 414, + 416, + 421, + 423, + 23, + 5, + 1, + 0, + 2, + 2, + 0, + 7, + 1, + 0, + 7, + 2, + 0, + 7, + 3, + 0, + 7, + 4, + 0, + 7, + 5, + 0, + 7, + 6, + 0, + 7, + 7, + 0, + 7, + 8, + 0, + 7, + 9, + 0, + 7, + 10, + 0, + 7, + 11, + 0, + 7, + 12, + 0, + 7, + 13, + 0, + 7, + 14, + 0, + 7, + 15, + 0, + 7, + 16, + 0, + 7, + 17, + 0, + 7, + 18, + 0, + 7, + 19, + 0, + 7, + 20, + 0, + 2, + 0, + 0, ] -class udunits2Lexer(Lexer): +class udunits2Lexer(Lexer): atn = ATNDeserializer().deserialize(serializedATN()) - decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + decisionsToDFA = [DFA(ds, i) for i, ds in enumerate(atn.decisionToState)] SHIFT_MODE = 1 ID_SEEN = 2 @@ -278,49 +5611,131 @@ class udunits2Lexer(Lexer): TIMESTAMP = 26 DT_T_CLOCK = 27 - channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] + channelNames = ["DEFAULT_TOKEN_CHANNEL", "HIDDEN"] - modeNames = [ "DEFAULT_MODE", "SHIFT_MODE", "ID_SEEN" ] + modeNames = ["DEFAULT_MODE", "SHIFT_MODE", "ID_SEEN"] - literalNames = [ "", - "'+'", "'.'", "'('", "')'", "':'", "'-'" ] + literalNames = ["", "'+'", "'.'", "'('", "')'", "':'", "'-'"] - symbolicNames = [ "", - "SIGNED_INT", "PLUS", "MULTIPLY", "DIVIDE", "PERIOD", "OPEN_PAREN", - "CLOSE_PAREN", "SEMICOLON", "INT", "E_POWER", "FLOAT", "SHIFT_OP", - "UNICODE_EXPONENT", "RAISE", "LOG", "LOGREF", "ID", "LATIN_SUBSET", - "WS", "ERRORCHARACTER", "TIMEZONE", "HOUR_MINUTE_SECOND", "HOUR_MINUTE", - "M_MINUS", "DATE", "TIMESTAMP", "DT_T_CLOCK" ] + symbolicNames = [ + "", + "SIGNED_INT", + "PLUS", + "MULTIPLY", + "DIVIDE", + "PERIOD", + "OPEN_PAREN", + "CLOSE_PAREN", + "SEMICOLON", + "INT", + "E_POWER", + "FLOAT", + "SHIFT_OP", + "UNICODE_EXPONENT", + "RAISE", + "LOG", + "LOGREF", + "ID", + "LATIN_SUBSET", + "WS", + "ERRORCHARACTER", + "TIMEZONE", + "HOUR_MINUTE_SECOND", + "HOUR_MINUTE", + "M_MINUS", + "DATE", + "TIMESTAMP", + "DT_T_CLOCK", + ] - ruleNames = [ "SIGNED_INT", "PLUS", "MINUS", "MULTIPLY", "DIVIDE", "PERIOD", - "OPEN_PAREN", "CLOSE_PAREN", "SEMICOLON", "INT", "ANY_INT", - "E_POWER", "FLOAT", "SHIFT_OP", "UNICODE_EXPONENT", "RAISE", - "LOG", "LOGREF", "ID", "LATIN_SUBSET", "WS", "ERRORCHARACTER", - "TIMEZONE", "SIGN", "HOUR", "MINUTE", "SECOND", "MONTH", - "DAY", "YEAR", "HOUR_MINUTE_SECOND", "HOUR_MINUTE", "M_MINUS", - "DATE", "CLOCK", "TIMESTAMP", "DT_T_CLOCK", "SHIFT_MODE_SIGNED_INT", - "SHIFT_MODE_PLUS", "SHIFT_MODE_MULTIPLY", "SHIFT_MODE_DIVIDE", - "SHIFT_MODE_PERIOD", "SHIFT_MODE_OPEN_PAREN", "SHIFT_MODE_CLOSE_PAREN", - "SHIFT_MODE_SEMICOLON", "SHIFT_MODE_INT", "SHIFT_MODE_E_POWER", - "SHIFT_MODE_FLOAT", "SHIFT_MODE_SHIFT_OP", "SHIFT_MODE_UNICODE_EXPONENT", - "SHIFT_MODE_RAISE", "SHIFT_MODE_LOG", "SHIFT_MODE_LOGREF", - "SHIFT_MODE_ID", "SHIFT_MODE_LATIN_SUBSET", "SHIFT_MODE_WS", - "SHIFT_MODE_ERRORCHARACTER", "ID_SEEN_SIGNED_INT", "EXTRA_MULTIPLY", - "ID_SEEN_AUTO_SIGNED_INT", "ID_SEEN_AUTO_PLUS", "ID_SEEN_AUTO_MULTIPLY", - "ID_SEEN_AUTO_DIVIDE", "ID_SEEN_AUTO_PERIOD", "ID_SEEN_AUTO_OPEN_PAREN", - "ID_SEEN_AUTO_CLOSE_PAREN", "ID_SEEN_AUTO_SEMICOLON", - "ID_SEEN_AUTO_INT", "ID_SEEN_AUTO_E_POWER", "ID_SEEN_AUTO_SHIFT_OP", - "ID_SEEN_AUTO_UNICODE_EXPONENT", "ID_SEEN_AUTO_RAISE", - "ID_SEEN_AUTO_LOG", "ID_SEEN_AUTO_LOGREF", "ID_SEEN_AUTO_ID", - "ID_SEEN_AUTO_LATIN_SUBSET", "ID_SEEN_AUTO_WS", "ID_SEEN_AUTO_ERRORCHARACTER" ] + ruleNames = [ + "SIGNED_INT", + "PLUS", + "MINUS", + "MULTIPLY", + "DIVIDE", + "PERIOD", + "OPEN_PAREN", + "CLOSE_PAREN", + "SEMICOLON", + "INT", + "ANY_INT", + "E_POWER", + "FLOAT", + "SHIFT_OP", + "UNICODE_EXPONENT", + "RAISE", + "LOG", + "LOGREF", + "ID", + "LATIN_SUBSET", + "WS", + "ERRORCHARACTER", + "TIMEZONE", + "SIGN", + "HOUR", + "MINUTE", + "SECOND", + "MONTH", + "DAY", + "YEAR", + "HOUR_MINUTE_SECOND", + "HOUR_MINUTE", + "M_MINUS", + "DATE", + "CLOCK", + "TIMESTAMP", + "DT_T_CLOCK", + "SHIFT_MODE_SIGNED_INT", + "SHIFT_MODE_PLUS", + "SHIFT_MODE_MULTIPLY", + "SHIFT_MODE_DIVIDE", + "SHIFT_MODE_PERIOD", + "SHIFT_MODE_OPEN_PAREN", + "SHIFT_MODE_CLOSE_PAREN", + "SHIFT_MODE_SEMICOLON", + "SHIFT_MODE_INT", + "SHIFT_MODE_E_POWER", + "SHIFT_MODE_FLOAT", + "SHIFT_MODE_SHIFT_OP", + "SHIFT_MODE_UNICODE_EXPONENT", + "SHIFT_MODE_RAISE", + "SHIFT_MODE_LOG", + "SHIFT_MODE_LOGREF", + "SHIFT_MODE_ID", + "SHIFT_MODE_LATIN_SUBSET", + "SHIFT_MODE_WS", + "SHIFT_MODE_ERRORCHARACTER", + "ID_SEEN_SIGNED_INT", + "EXTRA_MULTIPLY", + "ID_SEEN_AUTO_SIGNED_INT", + "ID_SEEN_AUTO_PLUS", + "ID_SEEN_AUTO_MULTIPLY", + "ID_SEEN_AUTO_DIVIDE", + "ID_SEEN_AUTO_PERIOD", + "ID_SEEN_AUTO_OPEN_PAREN", + "ID_SEEN_AUTO_CLOSE_PAREN", + "ID_SEEN_AUTO_SEMICOLON", + "ID_SEEN_AUTO_INT", + "ID_SEEN_AUTO_E_POWER", + "ID_SEEN_AUTO_SHIFT_OP", + "ID_SEEN_AUTO_UNICODE_EXPONENT", + "ID_SEEN_AUTO_RAISE", + "ID_SEEN_AUTO_LOG", + "ID_SEEN_AUTO_LOGREF", + "ID_SEEN_AUTO_ID", + "ID_SEEN_AUTO_LATIN_SUBSET", + "ID_SEEN_AUTO_WS", + "ID_SEEN_AUTO_ERRORCHARACTER", + ] grammarFileName = "udunits2Lexer.g4" - def __init__(self, input=None, output:TextIO = sys.stdout): + def __init__(self, input=None, output: TextIO = sys.stdout): super().__init__(input, output) self.checkVersion("4.11.1") - self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) + self._interp = LexerATNSimulator( + self, self.atn, self.decisionsToDFA, PredictionContextCache() + ) self._actions = None self._predicates = None - - diff --git a/cf_units/_udunits2_parser/parser/udunits2Parser.py b/cf_units/_udunits2_parser/parser/udunits2Parser.py index f8f6849b..ee6d6d1f 100644 --- a/cf_units/_udunits2_parser/parser/udunits2Parser.py +++ b/cf_units/_udunits2_parser/parser/udunits2Parser.py @@ -1,86 +1,1311 @@ # Generated from /home/ruth/git_stuff/cf-units/cf_units/_udunits2_parser/udunits2Parser.g4 by ANTLR 4.11.1 # encoding: utf-8 -from antlr4 import * -from io import StringIO import sys +from io import StringIO + +from antlr4 import * + if sys.version_info[1] > 5: - from typing import TextIO + from typing import TextIO else: - from typing.io import TextIO + from typing.io import TextIO + def serializedATN(): return [ - 4,1,27,130,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,1,0,3,0,22,8,0,1,0,1,0,1,1,1,1,1,1,3,1, - 29,8,1,1,1,1,1,3,1,33,8,1,1,1,1,1,1,1,1,1,3,1,39,8,1,1,1,1,1,3,1, - 43,8,1,1,1,1,1,3,1,47,8,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,4,2,62,8,2,11,2,12,2,63,1,2,5,2,67,8,2,10,2,12,2,70, - 9,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,83,8,3,1,4,1, - 4,1,4,1,4,1,4,1,4,3,4,91,8,4,1,5,1,5,1,6,1,6,3,6,97,8,6,1,7,1,7, - 1,7,3,7,102,8,7,1,7,1,7,3,7,106,8,7,1,7,3,7,109,8,7,1,7,1,7,1,7, - 3,7,114,8,7,1,7,3,7,117,8,7,3,7,119,8,7,1,8,1,8,1,8,3,8,124,8,8, - 1,9,1,9,3,9,128,8,9,1,9,0,1,4,10,0,2,4,6,8,10,12,14,16,18,0,2,2, - 0,1,1,9,9,2,0,9,9,25,25,148,0,21,1,0,0,0,2,46,1,0,0,0,4,48,1,0,0, - 0,6,82,1,0,0,0,8,90,1,0,0,0,10,92,1,0,0,0,12,96,1,0,0,0,14,118,1, - 0,0,0,16,123,1,0,0,0,18,127,1,0,0,0,20,22,3,2,1,0,21,20,1,0,0,0, - 21,22,1,0,0,0,22,23,1,0,0,0,23,24,5,0,0,1,24,1,1,0,0,0,25,47,3,4, - 2,0,26,28,3,4,2,0,27,29,5,19,0,0,28,27,1,0,0,0,28,29,1,0,0,0,29, - 30,1,0,0,0,30,32,5,12,0,0,31,33,5,19,0,0,32,31,1,0,0,0,32,33,1,0, - 0,0,33,34,1,0,0,0,34,35,3,12,6,0,35,47,1,0,0,0,36,38,3,4,2,0,37, - 39,5,19,0,0,38,37,1,0,0,0,38,39,1,0,0,0,39,40,1,0,0,0,40,42,5,12, - 0,0,41,43,5,19,0,0,42,41,1,0,0,0,42,43,1,0,0,0,43,44,1,0,0,0,44, - 45,3,14,7,0,45,47,1,0,0,0,46,25,1,0,0,0,46,26,1,0,0,0,46,36,1,0, - 0,0,47,3,1,0,0,0,48,49,6,2,-1,0,49,50,3,6,3,0,50,68,1,0,0,0,51,52, - 10,4,0,0,52,67,3,6,3,0,53,54,10,3,0,0,54,55,5,3,0,0,55,67,3,6,3, - 0,56,57,10,2,0,0,57,58,5,4,0,0,58,67,3,6,3,0,59,61,10,1,0,0,60,62, - 5,19,0,0,61,60,1,0,0,0,62,63,1,0,0,0,63,61,1,0,0,0,63,64,1,0,0,0, - 64,65,1,0,0,0,65,67,3,6,3,0,66,51,1,0,0,0,66,53,1,0,0,0,66,56,1, - 0,0,0,66,59,1,0,0,0,67,70,1,0,0,0,68,66,1,0,0,0,68,69,1,0,0,0,69, - 5,1,0,0,0,70,68,1,0,0,0,71,72,3,8,4,0,72,73,3,10,5,0,73,83,1,0,0, - 0,74,83,3,8,4,0,75,76,3,8,4,0,76,77,5,14,0,0,77,78,3,10,5,0,78,83, - 1,0,0,0,79,80,3,8,4,0,80,81,5,13,0,0,81,83,1,0,0,0,82,71,1,0,0,0, - 82,74,1,0,0,0,82,75,1,0,0,0,82,79,1,0,0,0,83,7,1,0,0,0,84,91,5,17, - 0,0,85,86,5,6,0,0,86,87,3,2,1,0,87,88,5,7,0,0,88,91,1,0,0,0,89,91, - 3,12,6,0,90,84,1,0,0,0,90,85,1,0,0,0,90,89,1,0,0,0,91,9,1,0,0,0, - 92,93,7,0,0,0,93,11,1,0,0,0,94,97,3,10,5,0,95,97,5,11,0,0,96,94, - 1,0,0,0,96,95,1,0,0,0,97,13,1,0,0,0,98,119,7,1,0,0,99,101,7,1,0, - 0,100,102,5,19,0,0,101,100,1,0,0,0,101,102,1,0,0,0,102,103,1,0,0, - 0,103,108,3,16,8,0,104,106,5,19,0,0,105,104,1,0,0,0,105,106,1,0, - 0,0,106,107,1,0,0,0,107,109,3,18,9,0,108,105,1,0,0,0,108,109,1,0, - 0,0,109,119,1,0,0,0,110,119,5,27,0,0,111,113,5,26,0,0,112,114,5, - 19,0,0,113,112,1,0,0,0,113,114,1,0,0,0,114,116,1,0,0,0,115,117,3, - 18,9,0,116,115,1,0,0,0,116,117,1,0,0,0,117,119,1,0,0,0,118,98,1, - 0,0,0,118,99,1,0,0,0,118,110,1,0,0,0,118,111,1,0,0,0,119,15,1,0, - 0,0,120,124,5,22,0,0,121,124,5,23,0,0,122,124,3,10,5,0,123,120,1, - 0,0,0,123,121,1,0,0,0,123,122,1,0,0,0,124,17,1,0,0,0,125,128,5,23, - 0,0,126,128,3,10,5,0,127,125,1,0,0,0,127,126,1,0,0,0,128,19,1,0, - 0,0,20,21,28,32,38,42,46,63,66,68,82,90,96,101,105,108,113,116,118, - 123,127 + 4, + 1, + 27, + 130, + 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, + 1, + 0, + 3, + 0, + 22, + 8, + 0, + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 3, + 1, + 29, + 8, + 1, + 1, + 1, + 1, + 1, + 3, + 1, + 33, + 8, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 3, + 1, + 39, + 8, + 1, + 1, + 1, + 1, + 1, + 3, + 1, + 43, + 8, + 1, + 1, + 1, + 1, + 1, + 3, + 1, + 47, + 8, + 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, + 4, + 2, + 62, + 8, + 2, + 11, + 2, + 12, + 2, + 63, + 1, + 2, + 5, + 2, + 67, + 8, + 2, + 10, + 2, + 12, + 2, + 70, + 9, + 2, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 1, + 3, + 3, + 3, + 83, + 8, + 3, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 1, + 4, + 3, + 4, + 91, + 8, + 4, + 1, + 5, + 1, + 5, + 1, + 6, + 1, + 6, + 3, + 6, + 97, + 8, + 6, + 1, + 7, + 1, + 7, + 1, + 7, + 3, + 7, + 102, + 8, + 7, + 1, + 7, + 1, + 7, + 3, + 7, + 106, + 8, + 7, + 1, + 7, + 3, + 7, + 109, + 8, + 7, + 1, + 7, + 1, + 7, + 1, + 7, + 3, + 7, + 114, + 8, + 7, + 1, + 7, + 3, + 7, + 117, + 8, + 7, + 3, + 7, + 119, + 8, + 7, + 1, + 8, + 1, + 8, + 1, + 8, + 3, + 8, + 124, + 8, + 8, + 1, + 9, + 1, + 9, + 3, + 9, + 128, + 8, + 9, + 1, + 9, + 0, + 1, + 4, + 10, + 0, + 2, + 4, + 6, + 8, + 10, + 12, + 14, + 16, + 18, + 0, + 2, + 2, + 0, + 1, + 1, + 9, + 9, + 2, + 0, + 9, + 9, + 25, + 25, + 148, + 0, + 21, + 1, + 0, + 0, + 0, + 2, + 46, + 1, + 0, + 0, + 0, + 4, + 48, + 1, + 0, + 0, + 0, + 6, + 82, + 1, + 0, + 0, + 0, + 8, + 90, + 1, + 0, + 0, + 0, + 10, + 92, + 1, + 0, + 0, + 0, + 12, + 96, + 1, + 0, + 0, + 0, + 14, + 118, + 1, + 0, + 0, + 0, + 16, + 123, + 1, + 0, + 0, + 0, + 18, + 127, + 1, + 0, + 0, + 0, + 20, + 22, + 3, + 2, + 1, + 0, + 21, + 20, + 1, + 0, + 0, + 0, + 21, + 22, + 1, + 0, + 0, + 0, + 22, + 23, + 1, + 0, + 0, + 0, + 23, + 24, + 5, + 0, + 0, + 1, + 24, + 1, + 1, + 0, + 0, + 0, + 25, + 47, + 3, + 4, + 2, + 0, + 26, + 28, + 3, + 4, + 2, + 0, + 27, + 29, + 5, + 19, + 0, + 0, + 28, + 27, + 1, + 0, + 0, + 0, + 28, + 29, + 1, + 0, + 0, + 0, + 29, + 30, + 1, + 0, + 0, + 0, + 30, + 32, + 5, + 12, + 0, + 0, + 31, + 33, + 5, + 19, + 0, + 0, + 32, + 31, + 1, + 0, + 0, + 0, + 32, + 33, + 1, + 0, + 0, + 0, + 33, + 34, + 1, + 0, + 0, + 0, + 34, + 35, + 3, + 12, + 6, + 0, + 35, + 47, + 1, + 0, + 0, + 0, + 36, + 38, + 3, + 4, + 2, + 0, + 37, + 39, + 5, + 19, + 0, + 0, + 38, + 37, + 1, + 0, + 0, + 0, + 38, + 39, + 1, + 0, + 0, + 0, + 39, + 40, + 1, + 0, + 0, + 0, + 40, + 42, + 5, + 12, + 0, + 0, + 41, + 43, + 5, + 19, + 0, + 0, + 42, + 41, + 1, + 0, + 0, + 0, + 42, + 43, + 1, + 0, + 0, + 0, + 43, + 44, + 1, + 0, + 0, + 0, + 44, + 45, + 3, + 14, + 7, + 0, + 45, + 47, + 1, + 0, + 0, + 0, + 46, + 25, + 1, + 0, + 0, + 0, + 46, + 26, + 1, + 0, + 0, + 0, + 46, + 36, + 1, + 0, + 0, + 0, + 47, + 3, + 1, + 0, + 0, + 0, + 48, + 49, + 6, + 2, + -1, + 0, + 49, + 50, + 3, + 6, + 3, + 0, + 50, + 68, + 1, + 0, + 0, + 0, + 51, + 52, + 10, + 4, + 0, + 0, + 52, + 67, + 3, + 6, + 3, + 0, + 53, + 54, + 10, + 3, + 0, + 0, + 54, + 55, + 5, + 3, + 0, + 0, + 55, + 67, + 3, + 6, + 3, + 0, + 56, + 57, + 10, + 2, + 0, + 0, + 57, + 58, + 5, + 4, + 0, + 0, + 58, + 67, + 3, + 6, + 3, + 0, + 59, + 61, + 10, + 1, + 0, + 0, + 60, + 62, + 5, + 19, + 0, + 0, + 61, + 60, + 1, + 0, + 0, + 0, + 62, + 63, + 1, + 0, + 0, + 0, + 63, + 61, + 1, + 0, + 0, + 0, + 63, + 64, + 1, + 0, + 0, + 0, + 64, + 65, + 1, + 0, + 0, + 0, + 65, + 67, + 3, + 6, + 3, + 0, + 66, + 51, + 1, + 0, + 0, + 0, + 66, + 53, + 1, + 0, + 0, + 0, + 66, + 56, + 1, + 0, + 0, + 0, + 66, + 59, + 1, + 0, + 0, + 0, + 67, + 70, + 1, + 0, + 0, + 0, + 68, + 66, + 1, + 0, + 0, + 0, + 68, + 69, + 1, + 0, + 0, + 0, + 69, + 5, + 1, + 0, + 0, + 0, + 70, + 68, + 1, + 0, + 0, + 0, + 71, + 72, + 3, + 8, + 4, + 0, + 72, + 73, + 3, + 10, + 5, + 0, + 73, + 83, + 1, + 0, + 0, + 0, + 74, + 83, + 3, + 8, + 4, + 0, + 75, + 76, + 3, + 8, + 4, + 0, + 76, + 77, + 5, + 14, + 0, + 0, + 77, + 78, + 3, + 10, + 5, + 0, + 78, + 83, + 1, + 0, + 0, + 0, + 79, + 80, + 3, + 8, + 4, + 0, + 80, + 81, + 5, + 13, + 0, + 0, + 81, + 83, + 1, + 0, + 0, + 0, + 82, + 71, + 1, + 0, + 0, + 0, + 82, + 74, + 1, + 0, + 0, + 0, + 82, + 75, + 1, + 0, + 0, + 0, + 82, + 79, + 1, + 0, + 0, + 0, + 83, + 7, + 1, + 0, + 0, + 0, + 84, + 91, + 5, + 17, + 0, + 0, + 85, + 86, + 5, + 6, + 0, + 0, + 86, + 87, + 3, + 2, + 1, + 0, + 87, + 88, + 5, + 7, + 0, + 0, + 88, + 91, + 1, + 0, + 0, + 0, + 89, + 91, + 3, + 12, + 6, + 0, + 90, + 84, + 1, + 0, + 0, + 0, + 90, + 85, + 1, + 0, + 0, + 0, + 90, + 89, + 1, + 0, + 0, + 0, + 91, + 9, + 1, + 0, + 0, + 0, + 92, + 93, + 7, + 0, + 0, + 0, + 93, + 11, + 1, + 0, + 0, + 0, + 94, + 97, + 3, + 10, + 5, + 0, + 95, + 97, + 5, + 11, + 0, + 0, + 96, + 94, + 1, + 0, + 0, + 0, + 96, + 95, + 1, + 0, + 0, + 0, + 97, + 13, + 1, + 0, + 0, + 0, + 98, + 119, + 7, + 1, + 0, + 0, + 99, + 101, + 7, + 1, + 0, + 0, + 100, + 102, + 5, + 19, + 0, + 0, + 101, + 100, + 1, + 0, + 0, + 0, + 101, + 102, + 1, + 0, + 0, + 0, + 102, + 103, + 1, + 0, + 0, + 0, + 103, + 108, + 3, + 16, + 8, + 0, + 104, + 106, + 5, + 19, + 0, + 0, + 105, + 104, + 1, + 0, + 0, + 0, + 105, + 106, + 1, + 0, + 0, + 0, + 106, + 107, + 1, + 0, + 0, + 0, + 107, + 109, + 3, + 18, + 9, + 0, + 108, + 105, + 1, + 0, + 0, + 0, + 108, + 109, + 1, + 0, + 0, + 0, + 109, + 119, + 1, + 0, + 0, + 0, + 110, + 119, + 5, + 27, + 0, + 0, + 111, + 113, + 5, + 26, + 0, + 0, + 112, + 114, + 5, + 19, + 0, + 0, + 113, + 112, + 1, + 0, + 0, + 0, + 113, + 114, + 1, + 0, + 0, + 0, + 114, + 116, + 1, + 0, + 0, + 0, + 115, + 117, + 3, + 18, + 9, + 0, + 116, + 115, + 1, + 0, + 0, + 0, + 116, + 117, + 1, + 0, + 0, + 0, + 117, + 119, + 1, + 0, + 0, + 0, + 118, + 98, + 1, + 0, + 0, + 0, + 118, + 99, + 1, + 0, + 0, + 0, + 118, + 110, + 1, + 0, + 0, + 0, + 118, + 111, + 1, + 0, + 0, + 0, + 119, + 15, + 1, + 0, + 0, + 0, + 120, + 124, + 5, + 22, + 0, + 0, + 121, + 124, + 5, + 23, + 0, + 0, + 122, + 124, + 3, + 10, + 5, + 0, + 123, + 120, + 1, + 0, + 0, + 0, + 123, + 121, + 1, + 0, + 0, + 0, + 123, + 122, + 1, + 0, + 0, + 0, + 124, + 17, + 1, + 0, + 0, + 0, + 125, + 128, + 5, + 23, + 0, + 0, + 126, + 128, + 3, + 10, + 5, + 0, + 127, + 125, + 1, + 0, + 0, + 0, + 127, + 126, + 1, + 0, + 0, + 0, + 128, + 19, + 1, + 0, + 0, + 0, + 20, + 21, + 28, + 32, + 38, + 42, + 46, + 63, + 66, + 68, + 82, + 90, + 96, + 101, + 105, + 108, + 113, + 116, + 118, + 123, + 127, ] -class udunits2Parser ( Parser ): +class udunits2Parser(Parser): grammarFileName = "udunits2Parser.g4" atn = ATNDeserializer().deserialize(serializedATN()) - decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + decisionsToDFA = [DFA(ds, i) for i, ds in enumerate(atn.decisionToState)] sharedContextCache = PredictionContextCache() - literalNames = [ "", "", "'+'", "", "", - "'.'", "'('", "')'", "':'", "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "", - "", "'-'" ] + literalNames = [ + "", + "", + "'+'", + "", + "", + "'.'", + "'('", + "')'", + "':'", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "'-'", + ] - symbolicNames = [ "", "SIGNED_INT", "PLUS", "MULTIPLY", "DIVIDE", - "PERIOD", "OPEN_PAREN", "CLOSE_PAREN", "SEMICOLON", - "INT", "E_POWER", "FLOAT", "SHIFT_OP", "UNICODE_EXPONENT", - "RAISE", "LOG", "LOGREF", "ID", "LATIN_SUBSET", "WS", - "ERRORCHARACTER", "TIMEZONE", "HOUR_MINUTE_SECOND", - "HOUR_MINUTE", "M_MINUS", "DATE", "TIMESTAMP", "DT_T_CLOCK" ] + symbolicNames = [ + "", + "SIGNED_INT", + "PLUS", + "MULTIPLY", + "DIVIDE", + "PERIOD", + "OPEN_PAREN", + "CLOSE_PAREN", + "SEMICOLON", + "INT", + "E_POWER", + "FLOAT", + "SHIFT_OP", + "UNICODE_EXPONENT", + "RAISE", + "LOG", + "LOGREF", + "ID", + "LATIN_SUBSET", + "WS", + "ERRORCHARACTER", + "TIMEZONE", + "HOUR_MINUTE_SECOND", + "HOUR_MINUTE", + "M_MINUS", + "DATE", + "TIMESTAMP", + "DT_T_CLOCK", + ] RULE_unit_spec = 0 RULE_shift_spec = 1 @@ -93,51 +1318,65 @@ class udunits2Parser ( Parser ): RULE_signed_clock = 8 RULE_timezone_offset = 9 - ruleNames = [ "unit_spec", "shift_spec", "product", "power", "basic_spec", - "integer", "number", "timestamp", "signed_clock", "timezone_offset" ] + ruleNames = [ + "unit_spec", + "shift_spec", + "product", + "power", + "basic_spec", + "integer", + "number", + "timestamp", + "signed_clock", + "timezone_offset", + ] EOF = Token.EOF - SIGNED_INT=1 - PLUS=2 - MULTIPLY=3 - DIVIDE=4 - PERIOD=5 - OPEN_PAREN=6 - CLOSE_PAREN=7 - SEMICOLON=8 - INT=9 - E_POWER=10 - FLOAT=11 - SHIFT_OP=12 - UNICODE_EXPONENT=13 - RAISE=14 - LOG=15 - LOGREF=16 - ID=17 - LATIN_SUBSET=18 - WS=19 - ERRORCHARACTER=20 - TIMEZONE=21 - HOUR_MINUTE_SECOND=22 - HOUR_MINUTE=23 - M_MINUS=24 - DATE=25 - TIMESTAMP=26 - DT_T_CLOCK=27 - - def __init__(self, input:TokenStream, output:TextIO = sys.stdout): + SIGNED_INT = 1 + PLUS = 2 + MULTIPLY = 3 + DIVIDE = 4 + PERIOD = 5 + OPEN_PAREN = 6 + CLOSE_PAREN = 7 + SEMICOLON = 8 + INT = 9 + E_POWER = 10 + FLOAT = 11 + SHIFT_OP = 12 + UNICODE_EXPONENT = 13 + RAISE = 14 + LOG = 15 + LOGREF = 16 + ID = 17 + LATIN_SUBSET = 18 + WS = 19 + ERRORCHARACTER = 20 + TIMEZONE = 21 + HOUR_MINUTE_SECOND = 22 + HOUR_MINUTE = 23 + M_MINUS = 24 + DATE = 25 + TIMESTAMP = 26 + DT_T_CLOCK = 27 + + def __init__(self, input: TokenStream, output: TextIO = sys.stdout): super().__init__(input, output) self.checkVersion("4.11.1") - self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) + self._interp = ParserATNSimulator( + self, self.atn, self.decisionsToDFA, self.sharedContextCache + ) self._predicates = None - - - class Unit_specContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser @@ -145,36 +1384,32 @@ def EOF(self): return self.getToken(udunits2Parser.EOF, 0) def shift_spec(self): - return self.getTypedRuleContext(udunits2Parser.Shift_specContext,0) - + return self.getTypedRuleContext( + udunits2Parser.Shift_specContext, 0 + ) def getRuleIndex(self): return udunits2Parser.RULE_unit_spec - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitUnit_spec" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitUnit_spec"): return visitor.visitUnit_spec(self) else: return visitor.visitChildren(self) - - - def unit_spec(self): - localctx = udunits2Parser.Unit_specContext(self, self._ctx, self.state) self.enterRule(localctx, 0, self.RULE_unit_spec) - self._la = 0 # Token type + self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 21 self._errHandler.sync(self) _la = self._input.LA(1) - if ((_la) & ~0x3f) == 0 and ((1 << _la) & 133698) != 0: + if ((_la) & ~0x3F) == 0 and ((1 << _la) & 133698) != 0: self.state = 20 self.shift_spec() - self.state = 23 self.match(udunits2Parser.EOF) except RecognitionException as re: @@ -185,56 +1420,55 @@ def unit_spec(self): self.exitRule() return localctx - class Shift_specContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser def product(self): - return self.getTypedRuleContext(udunits2Parser.ProductContext,0) - + return self.getTypedRuleContext(udunits2Parser.ProductContext, 0) def SHIFT_OP(self): return self.getToken(udunits2Parser.SHIFT_OP, 0) def number(self): - return self.getTypedRuleContext(udunits2Parser.NumberContext,0) - + return self.getTypedRuleContext(udunits2Parser.NumberContext, 0) - def WS(self, i:int=None): + def WS(self, i: int = None): if i is None: return self.getTokens(udunits2Parser.WS) else: return self.getToken(udunits2Parser.WS, i) def timestamp(self): - return self.getTypedRuleContext(udunits2Parser.TimestampContext,0) - + return self.getTypedRuleContext(udunits2Parser.TimestampContext, 0) def getRuleIndex(self): return udunits2Parser.RULE_shift_spec - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitShift_spec" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitShift_spec"): return visitor.visitShift_spec(self) else: return visitor.visitChildren(self) - - - def shift_spec(self): - - localctx = udunits2Parser.Shift_specContext(self, self._ctx, self.state) + localctx = udunits2Parser.Shift_specContext( + self, self._ctx, self.state + ) self.enterRule(localctx, 2, self.RULE_shift_spec) - self._la = 0 # Token type + self._la = 0 # Token type try: self.state = 46 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,5,self._ctx) + la_ = self._interp.adaptivePredict(self._input, 5, self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) self.state = 25 @@ -248,21 +1482,19 @@ def shift_spec(self): self.state = 28 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==19: + if _la == 19: self.state = 27 self.match(udunits2Parser.WS) - self.state = 30 self.match(udunits2Parser.SHIFT_OP) self.state = 32 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==19: + if _la == 19: self.state = 31 self.match(udunits2Parser.WS) - self.state = 34 self.number() pass @@ -274,26 +1506,23 @@ def shift_spec(self): self.state = 38 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==19: + if _la == 19: self.state = 37 self.match(udunits2Parser.WS) - self.state = 40 self.match(udunits2Parser.SHIFT_OP) self.state = 42 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==19: + if _la == 19: self.state = 41 self.match(udunits2Parser.WS) - self.state = 44 self.timestamp() pass - except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) @@ -302,21 +1531,23 @@ def shift_spec(self): self.exitRule() return localctx - class ProductContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser def power(self): - return self.getTypedRuleContext(udunits2Parser.PowerContext,0) - + return self.getTypedRuleContext(udunits2Parser.PowerContext, 0) def product(self): - return self.getTypedRuleContext(udunits2Parser.ProductContext,0) - + return self.getTypedRuleContext(udunits2Parser.ProductContext, 0) def MULTIPLY(self): return self.getToken(udunits2Parser.MULTIPLY, 0) @@ -324,7 +1555,7 @@ def MULTIPLY(self): def DIVIDE(self): return self.getToken(udunits2Parser.DIVIDE, 0) - def WS(self, i:int=None): + def WS(self, i: int = None): if i is None: return self.getTokens(udunits2Parser.WS) else: @@ -333,22 +1564,20 @@ def WS(self, i:int=None): def getRuleIndex(self): return udunits2Parser.RULE_product - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitProduct" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitProduct"): return visitor.visitProduct(self) else: return visitor.visitChildren(self) - - - def product(self, _p:int=0): + def product(self, _p: int = 0): _parentctx = self._ctx _parentState = self.state localctx = udunits2Parser.ProductContext(self, self._ctx, _parentState) _prevctx = localctx _startState = 4 self.enterRecursionRule(localctx, 4, self.RULE_product, _p) - self._la = 0 # Token type + self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 49 @@ -356,33 +1585,53 @@ def product(self, _p:int=0): self._ctx.stop = self._input.LT(-1) self.state = 68 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,8,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: + _alt = self._interp.adaptivePredict(self._input, 8, 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 = 66 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,7,self._ctx) + la_ = self._interp.adaptivePredict( + self._input, 7, self._ctx + ) if la_ == 1: - localctx = udunits2Parser.ProductContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_product) + localctx = udunits2Parser.ProductContext( + self, _parentctx, _parentState + ) + self.pushNewRecursionContext( + localctx, _startState, self.RULE_product + ) self.state = 51 if not self.precpred(self._ctx, 4): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 4)") + from antlr4.error.Errors import ( + FailedPredicateException, + ) + + raise FailedPredicateException( + self, "self.precpred(self._ctx, 4)" + ) self.state = 52 self.power() pass elif la_ == 2: - localctx = udunits2Parser.ProductContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_product) + localctx = udunits2Parser.ProductContext( + self, _parentctx, _parentState + ) + self.pushNewRecursionContext( + localctx, _startState, self.RULE_product + ) self.state = 53 if not self.precpred(self._ctx, 3): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") + from antlr4.error.Errors import ( + FailedPredicateException, + ) + + raise FailedPredicateException( + self, "self.precpred(self._ctx, 3)" + ) self.state = 54 self.match(udunits2Parser.MULTIPLY) self.state = 55 @@ -390,12 +1639,21 @@ def product(self, _p:int=0): pass elif la_ == 3: - localctx = udunits2Parser.ProductContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_product) + localctx = udunits2Parser.ProductContext( + self, _parentctx, _parentState + ) + self.pushNewRecursionContext( + localctx, _startState, self.RULE_product + ) self.state = 56 if not self.precpred(self._ctx, 2): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") + from antlr4.error.Errors import ( + FailedPredicateException, + ) + + raise FailedPredicateException( + self, "self.precpred(self._ctx, 2)" + ) self.state = 57 self.match(udunits2Parser.DIVIDE) self.state = 58 @@ -403,32 +1661,40 @@ def product(self, _p:int=0): pass elif la_ == 4: - localctx = udunits2Parser.ProductContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_product) + localctx = udunits2Parser.ProductContext( + self, _parentctx, _parentState + ) + self.pushNewRecursionContext( + localctx, _startState, self.RULE_product + ) self.state = 59 if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 61 + from antlr4.error.Errors import ( + FailedPredicateException, + ) + + raise FailedPredicateException( + self, "self.precpred(self._ctx, 1)" + ) + self.state = 61 self._errHandler.sync(self) _la = self._input.LA(1) while True: self.state = 60 self.match(udunits2Parser.WS) - self.state = 63 + self.state = 63 self._errHandler.sync(self) _la = self._input.LA(1) - if not (_la==19): + if not (_la == 19): break self.state = 65 self.power() pass - self.state = 70 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,8,self._ctx) + _alt = self._interp.adaptivePredict(self._input, 8, self._ctx) except RecognitionException as re: localctx.exception = re @@ -438,21 +1704,25 @@ def product(self, _p:int=0): self.unrollRecursionContexts(_parentctx) return localctx - class PowerContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser def basic_spec(self): - return self.getTypedRuleContext(udunits2Parser.Basic_specContext,0) - + return self.getTypedRuleContext( + udunits2Parser.Basic_specContext, 0 + ) def integer(self): - return self.getTypedRuleContext(udunits2Parser.IntegerContext,0) - + return self.getTypedRuleContext(udunits2Parser.IntegerContext, 0) def RAISE(self): return self.getToken(udunits2Parser.RAISE, 0) @@ -463,23 +1733,19 @@ def UNICODE_EXPONENT(self): def getRuleIndex(self): return udunits2Parser.RULE_power - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitPower" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitPower"): return visitor.visitPower(self) else: return visitor.visitChildren(self) - - - def power(self): - localctx = udunits2Parser.PowerContext(self, self._ctx, self.state) self.enterRule(localctx, 6, self.RULE_power) try: self.state = 82 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,9,self._ctx) + la_ = self._interp.adaptivePredict(self._input, 9, self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) self.state = 71 @@ -512,7 +1778,6 @@ def power(self): self.match(udunits2Parser.UNICODE_EXPONENT) pass - except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) @@ -521,11 +1786,15 @@ def power(self): self.exitRule() return localctx - class Basic_specContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser @@ -536,31 +1805,29 @@ def OPEN_PAREN(self): return self.getToken(udunits2Parser.OPEN_PAREN, 0) def shift_spec(self): - return self.getTypedRuleContext(udunits2Parser.Shift_specContext,0) - + return self.getTypedRuleContext( + udunits2Parser.Shift_specContext, 0 + ) def CLOSE_PAREN(self): return self.getToken(udunits2Parser.CLOSE_PAREN, 0) def number(self): - return self.getTypedRuleContext(udunits2Parser.NumberContext,0) - + return self.getTypedRuleContext(udunits2Parser.NumberContext, 0) def getRuleIndex(self): return udunits2Parser.RULE_basic_spec - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitBasic_spec" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitBasic_spec"): return visitor.visitBasic_spec(self) else: return visitor.visitChildren(self) - - - def basic_spec(self): - - localctx = udunits2Parser.Basic_specContext(self, self._ctx, self.state) + localctx = udunits2Parser.Basic_specContext( + self, self._ctx, self.state + ) self.enterRule(localctx, 8, self.RULE_basic_spec) try: self.state = 90 @@ -596,11 +1863,15 @@ def basic_spec(self): self.exitRule() return localctx - class IntegerContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser @@ -613,25 +1884,21 @@ def SIGNED_INT(self): def getRuleIndex(self): return udunits2Parser.RULE_integer - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitInteger" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitInteger"): return visitor.visitInteger(self) else: return visitor.visitChildren(self) - - - def integer(self): - localctx = udunits2Parser.IntegerContext(self, self._ctx, self.state) self.enterRule(localctx, 10, self.RULE_integer) - self._la = 0 # Token type + self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 92 _la = self._input.LA(1) - if not(_la==1 or _la==9): + if not (_la == 1 or _la == 9): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) @@ -644,17 +1911,20 @@ def integer(self): self.exitRule() return localctx - class NumberContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser def integer(self): - return self.getTypedRuleContext(udunits2Parser.IntegerContext,0) - + return self.getTypedRuleContext(udunits2Parser.IntegerContext, 0) def FLOAT(self): return self.getToken(udunits2Parser.FLOAT, 0) @@ -662,17 +1932,13 @@ def FLOAT(self): def getRuleIndex(self): return udunits2Parser.RULE_number - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitNumber" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitNumber"): return visitor.visitNumber(self) else: return visitor.visitChildren(self) - - - def number(self): - localctx = udunits2Parser.NumberContext(self, self._ctx, self.state) self.enterRule(localctx, 12, self.RULE_number) try: @@ -700,11 +1966,15 @@ def number(self): self.exitRule() return localctx - class TimestampContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser @@ -715,18 +1985,20 @@ def INT(self): return self.getToken(udunits2Parser.INT, 0) def signed_clock(self): - return self.getTypedRuleContext(udunits2Parser.Signed_clockContext,0) + return self.getTypedRuleContext( + udunits2Parser.Signed_clockContext, 0 + ) - - def WS(self, i:int=None): + def WS(self, i: int = None): if i is None: return self.getTokens(udunits2Parser.WS) else: return self.getToken(udunits2Parser.WS, i) def timezone_offset(self): - return self.getTypedRuleContext(udunits2Parser.Timezone_offsetContext,0) - + return self.getTypedRuleContext( + udunits2Parser.Timezone_offsetContext, 0 + ) def DT_T_CLOCK(self): return self.getToken(udunits2Parser.DT_T_CLOCK, 0) @@ -737,29 +2009,25 @@ def TIMESTAMP(self): def getRuleIndex(self): return udunits2Parser.RULE_timestamp - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitTimestamp" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitTimestamp"): return visitor.visitTimestamp(self) else: return visitor.visitChildren(self) - - - def timestamp(self): - localctx = udunits2Parser.TimestampContext(self, self._ctx, self.state) self.enterRule(localctx, 14, self.RULE_timestamp) - self._la = 0 # Token type + self._la = 0 # Token type try: self.state = 118 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,17,self._ctx) + la_ = self._interp.adaptivePredict(self._input, 17, self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) self.state = 98 _la = self._input.LA(1) - if not(_la==9 or _la==25): + if not (_la == 9 or _la == 25): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) @@ -770,7 +2038,7 @@ def timestamp(self): self.enterOuterAlt(localctx, 2) self.state = 99 _la = self._input.LA(1) - if not(_la==9 or _la==25): + if not (_la == 9 or _la == 25): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) @@ -778,29 +2046,26 @@ def timestamp(self): self.state = 101 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==19: + if _la == 19: self.state = 100 self.match(udunits2Parser.WS) - self.state = 103 self.signed_clock() self.state = 108 self._errHandler.sync(self) _la = self._input.LA(1) - if ((_la) & ~0x3f) == 0 and ((1 << _la) & 8913410) != 0: + if ((_la) & ~0x3F) == 0 and ((1 << _la) & 8913410) != 0: self.state = 105 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==19: + if _la == 19: self.state = 104 self.match(udunits2Parser.WS) - self.state = 107 self.timezone_offset() - pass elif la_ == 3: @@ -816,22 +2081,19 @@ def timestamp(self): self.state = 113 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==19: + if _la == 19: self.state = 112 self.match(udunits2Parser.WS) - self.state = 116 self._errHandler.sync(self) _la = self._input.LA(1) - if ((_la) & ~0x3f) == 0 and ((1 << _la) & 8389122) != 0: + if ((_la) & ~0x3F) == 0 and ((1 << _la) & 8389122) != 0: self.state = 115 self.timezone_offset() - pass - except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) @@ -840,11 +2102,15 @@ def timestamp(self): self.exitRule() return localctx - class Signed_clockContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser @@ -855,24 +2121,21 @@ def HOUR_MINUTE(self): return self.getToken(udunits2Parser.HOUR_MINUTE, 0) def integer(self): - return self.getTypedRuleContext(udunits2Parser.IntegerContext,0) - + return self.getTypedRuleContext(udunits2Parser.IntegerContext, 0) def getRuleIndex(self): return udunits2Parser.RULE_signed_clock - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitSigned_clock" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitSigned_clock"): return visitor.visitSigned_clock(self) else: return visitor.visitChildren(self) - - - def signed_clock(self): - - localctx = udunits2Parser.Signed_clockContext(self, self._ctx, self.state) + localctx = udunits2Parser.Signed_clockContext( + self, self._ctx, self.state + ) self.enterRule(localctx, 16, self.RULE_signed_clock) try: self.state = 123 @@ -904,11 +2167,15 @@ def signed_clock(self): self.exitRule() return localctx - class Timezone_offsetContext(ParserRuleContext): - __slots__ = 'parser' - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + __slots__ = "parser" + + def __init__( + self, + parser, + parent: ParserRuleContext = None, + invokingState: int = -1, + ): super().__init__(parent, invokingState) self.parser = parser @@ -916,24 +2183,21 @@ def HOUR_MINUTE(self): return self.getToken(udunits2Parser.HOUR_MINUTE, 0) def integer(self): - return self.getTypedRuleContext(udunits2Parser.IntegerContext,0) - + return self.getTypedRuleContext(udunits2Parser.IntegerContext, 0) def getRuleIndex(self): return udunits2Parser.RULE_timezone_offset - def accept(self, visitor:ParseTreeVisitor): - if hasattr( visitor, "visitTimezone_offset" ): + def accept(self, visitor: ParseTreeVisitor): + if hasattr(visitor, "visitTimezone_offset"): return visitor.visitTimezone_offset(self) else: return visitor.visitChildren(self) - - - def timezone_offset(self): - - localctx = udunits2Parser.Timezone_offsetContext(self, self._ctx, self.state) + localctx = udunits2Parser.Timezone_offsetContext( + self, self._ctx, self.state + ) self.enterRule(localctx, 18, self.RULE_timezone_offset) try: self.state = 127 @@ -960,9 +2224,7 @@ def timezone_offset(self): self.exitRule() return localctx - - - def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): + def sempred(self, localctx: RuleContext, ruleIndex: int, predIndex: int): if self._predicates == None: self._predicates = dict() self._predicates[2] = self.product_sempred @@ -972,23 +2234,15 @@ def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): else: return pred(localctx, predIndex) - def product_sempred(self, localctx:ProductContext, predIndex:int): - if predIndex == 0: - return self.precpred(self._ctx, 4) - - - if predIndex == 1: - return self.precpred(self._ctx, 3) - - - if predIndex == 2: - return self.precpred(self._ctx, 2) - - - if predIndex == 3: - return self.precpred(self._ctx, 1) - - + def product_sempred(self, localctx: ProductContext, predIndex: int): + if predIndex == 0: + return self.precpred(self._ctx, 4) + if predIndex == 1: + return self.precpred(self._ctx, 3) + if predIndex == 2: + return self.precpred(self._ctx, 2) + if predIndex == 3: + return self.precpred(self._ctx, 1) diff --git a/cf_units/_udunits2_parser/parser/udunits2ParserVisitor.py b/cf_units/_udunits2_parser/parser/udunits2ParserVisitor.py index 32a795b1..f83c692e 100644 --- a/cf_units/_udunits2_parser/parser/udunits2ParserVisitor.py +++ b/cf_units/_udunits2_parser/parser/udunits2ParserVisitor.py @@ -1,5 +1,6 @@ # Generated from /home/ruth/git_stuff/cf-units/cf_units/_udunits2_parser/udunits2Parser.g4 by ANTLR 4.11.1 from antlr4 import * + if __name__ is not None and "." in __name__: from .udunits2Parser import udunits2Parser else: @@ -7,57 +8,47 @@ # This class defines a complete generic visitor for a parse tree produced by udunits2Parser. -class udunits2ParserVisitor(ParseTreeVisitor): +class udunits2ParserVisitor(ParseTreeVisitor): # Visit a parse tree produced by udunits2Parser#unit_spec. - def visitUnit_spec(self, ctx:udunits2Parser.Unit_specContext): + def visitUnit_spec(self, ctx: udunits2Parser.Unit_specContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#shift_spec. - def visitShift_spec(self, ctx:udunits2Parser.Shift_specContext): + def visitShift_spec(self, ctx: udunits2Parser.Shift_specContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#product. - def visitProduct(self, ctx:udunits2Parser.ProductContext): + def visitProduct(self, ctx: udunits2Parser.ProductContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#power. - def visitPower(self, ctx:udunits2Parser.PowerContext): + def visitPower(self, ctx: udunits2Parser.PowerContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#basic_spec. - def visitBasic_spec(self, ctx:udunits2Parser.Basic_specContext): + def visitBasic_spec(self, ctx: udunits2Parser.Basic_specContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#integer. - def visitInteger(self, ctx:udunits2Parser.IntegerContext): + def visitInteger(self, ctx: udunits2Parser.IntegerContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#number. - def visitNumber(self, ctx:udunits2Parser.NumberContext): + def visitNumber(self, ctx: udunits2Parser.NumberContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#timestamp. - def visitTimestamp(self, ctx:udunits2Parser.TimestampContext): + def visitTimestamp(self, ctx: udunits2Parser.TimestampContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#signed_clock. - def visitSigned_clock(self, ctx:udunits2Parser.Signed_clockContext): + def visitSigned_clock(self, ctx: udunits2Parser.Signed_clockContext): return self.visitChildren(ctx) - # Visit a parse tree produced by udunits2Parser#timezone_offset. - def visitTimezone_offset(self, ctx:udunits2Parser.Timezone_offsetContext): + def visitTimezone_offset(self, ctx: udunits2Parser.Timezone_offsetContext): return self.visitChildren(ctx) - -del udunits2Parser \ No newline at end of file +del udunits2Parser