From 04080432adce2f3425c4d1c8731662943d3ab4a8 Mon Sep 17 00:00:00 2001 From: CREAsTIVE <62616308+CREAsTIVE@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:42:31 +0500 Subject: [PATCH] refactor: .gitignore update + submodule version + remove trash files --- .gitignore | 74 +- .gitmodules | 7 +- Plugins/SungearEngineEditor/.idea/.gitignore | 8 - .../.idea/SungearEngineEditor.iml | 2 - Plugins/SungearEngineEditor/.idea/editor.xml | 578 - Plugins/SungearEngineEditor/.idea/misc.xml | 12 - Plugins/SungearEngineEditor/.idea/modules.xml | 8 - Plugins/SungearEngineEditor/.idea/vcs.xml | 10 - .../UI/ANTLR4CSS3Generated/css3Lexer.cpp | 686 - .../SGCore/UI/ANTLR4CSS3Generated/css3Lexer.h | 65 - .../UI/ANTLR4CSS3Generated/css3Lexer.interp | 265 - .../UI/ANTLR4CSS3Generated/css3Lexer.tokens | 98 - .../UI/ANTLR4CSS3Generated/css3Parser.cpp | 10920 ---------------- .../UI/ANTLR4CSS3Generated/css3Parser.h | 2096 --- .../UI/ANTLR4CSS3Generated/css3Parser.interp | 227 - .../UI/ANTLR4CSS3Generated/css3Parser.tokens | 98 - .../css3ParserBaseListener.cpp | 7 - .../css3ParserBaseListener.h | 305 - .../css3ParserBaseVisitor.cpp | 7 - .../css3ParserBaseVisitor.h | 392 - .../css3ParserListener.cpp | 7 - .../ANTLR4CSS3Generated/css3ParserListener.h | 298 - .../ANTLR4CSS3Generated/css3ParserVisitor.cpp | 7 - .../ANTLR4CSS3Generated/css3ParserVisitor.h | 210 - vcpkg | 2 +- 25 files changed, 21 insertions(+), 16368 deletions(-) delete mode 100644 Plugins/SungearEngineEditor/.idea/.gitignore delete mode 100644 Plugins/SungearEngineEditor/.idea/SungearEngineEditor.iml delete mode 100644 Plugins/SungearEngineEditor/.idea/editor.xml delete mode 100644 Plugins/SungearEngineEditor/.idea/misc.xml delete mode 100644 Plugins/SungearEngineEditor/.idea/modules.xml delete mode 100644 Plugins/SungearEngineEditor/.idea/vcs.xml delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.cpp delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.h delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.interp delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.tokens delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.cpp delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.h delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.interp delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.tokens delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.cpp delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.h delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.cpp delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.h delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.cpp delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.h delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.cpp delete mode 100644 Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.h diff --git a/.gitignore b/.gitignore index 407fef495..589d5b8f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,68 +1,24 @@ -cmake-build-debug -cmake-build-release -release-test -out -.vs - # SOURCES --------------- -Sources/cmake-build-debug -Sources/SGCore/cmake-build-debug -Sources/SGConsole/cmake-build-debug -Sources/SGEntry/cmake-build-debug -Tests/Physics/cmake-build-debug -Tests/Physics/cmake-build-release -Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.cpp -Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.h -Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.cpp -Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.h -Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.cpp -Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.h -Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.cpp -Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.h -Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.cpp -Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.h -Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.cpp -Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.h +Sources/SGCore/UI/*Generated/ +.SG_GENERATED # ----------------------- -# RESOURCES ------------- -SGResources/cmake-build-debug -Resources/SGResources/models/test/sponza -Resources/SGResources/models/test/sponza_new -Resources/SGResources/models/test/trees -Resources/SGResources/models/test/btr_80 -Resources/SGResources/models/test/stalker -Resources/SGResources/models/test/ak74m -Resources/SGResources/models/test/lenin -Resources/SGResources/models/test/train_ep20 - -Resources/SGResources/models/test/gaz-66.mtl -Resources/SGResources/models/test/gaz-66.obj -Resources/SGResources/models/test/plane.obj -Resources/SGResources/models/test/T34.obj -Resources/SGResources/models/test/T_34_85.obj -Resources/SGResources/models/test/Tiger1.obj +# BUILD --------------- +**/cmake-build-debug/ +**/cmake-build-release/ +**/release-test/ +# --------------------- +# RESOURCES ------------- Resources/SGResources/models/test # ----------------------- -Games - -CMakeSettings.json - -build - -.vscode +# EDITOR --------------- +.vs .idea +.vscode +# ----------------------- -ports - -SDK - -.SG_GENERATED - -Projects - -Models - -installed +# CMAKE ----------------- +CMakeSettings.json +# ----------------------- diff --git a/.gitmodules b/.gitmodules index 3302c5674..1862f4776 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,8 +1,11 @@ [submodule "vcpkg"] path = vcpkg - url = https://github.com/microsoft/vcpkg + url = https://github.com/microsoft/vcpkg/tree/d5a87c6bcc5d3cb3f5627bfeff977280097c719c [submodule "msdf-atlas-gen"] path = Externals/msdf-atlas-gen url = https://github.com/Chlumsky/msdf-atlas-gen - branch = v1.3 \ No newline at end of file + branch = v1.3 +[submodule ".\\Externals\\msdf-atlas-gen\\"] + path = .\\Externals\\msdf-atlas-gen\\ + url = https://github.com/Chlumsky/msdf-atlas-gen/tree/c27de5988d7ecfbc9936ee5f936429e2dbc077b9 diff --git a/Plugins/SungearEngineEditor/.idea/.gitignore b/Plugins/SungearEngineEditor/.idea/.gitignore deleted file mode 100644 index 13566b81b..000000000 --- a/Plugins/SungearEngineEditor/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/Plugins/SungearEngineEditor/.idea/SungearEngineEditor.iml b/Plugins/SungearEngineEditor/.idea/SungearEngineEditor.iml deleted file mode 100644 index f08604bb6..000000000 --- a/Plugins/SungearEngineEditor/.idea/SungearEngineEditor.iml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/Plugins/SungearEngineEditor/.idea/editor.xml b/Plugins/SungearEngineEditor/.idea/editor.xml deleted file mode 100644 index a94e5a5af..000000000 --- a/Plugins/SungearEngineEditor/.idea/editor.xml +++ /dev/null @@ -1,578 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Plugins/SungearEngineEditor/.idea/misc.xml b/Plugins/SungearEngineEditor/.idea/misc.xml deleted file mode 100644 index 6f52ba1e6..000000000 --- a/Plugins/SungearEngineEditor/.idea/misc.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Plugins/SungearEngineEditor/.idea/modules.xml b/Plugins/SungearEngineEditor/.idea/modules.xml deleted file mode 100644 index 0a2fddb36..000000000 --- a/Plugins/SungearEngineEditor/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Plugins/SungearEngineEditor/.idea/vcs.xml b/Plugins/SungearEngineEditor/.idea/vcs.xml deleted file mode 100644 index e2f14ea4d..000000000 --- a/Plugins/SungearEngineEditor/.idea/vcs.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.cpp b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.cpp deleted file mode 100644 index eb7235a2d..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.cpp +++ /dev/null @@ -1,686 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Lexer.g4 by ANTLR 4.13.1 - - -#include "css3Lexer.h" - - -using namespace antlr4; - - - -using namespace antlr4; - -namespace { - -struct Css3LexerStaticData final { - Css3LexerStaticData(std::vector ruleNames, - std::vector channelNames, - std::vector modeNames, - std::vector literalNames, - std::vector symbolicNames) - : ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)), - modeNames(std::move(modeNames)), literalNames(std::move(literalNames)), - symbolicNames(std::move(symbolicNames)), - vocabulary(this->literalNames, this->symbolicNames) {} - - Css3LexerStaticData(const Css3LexerStaticData&) = delete; - Css3LexerStaticData(Css3LexerStaticData&&) = delete; - Css3LexerStaticData& operator=(const Css3LexerStaticData&) = delete; - Css3LexerStaticData& operator=(Css3LexerStaticData&&) = delete; - - std::vector decisionToDFA; - antlr4::atn::PredictionContextCache sharedContextCache; - const std::vector ruleNames; - const std::vector channelNames; - const std::vector modeNames; - const std::vector literalNames; - const std::vector symbolicNames; - const antlr4::dfa::Vocabulary vocabulary; - antlr4::atn::SerializedATNView serializedATN; - std::unique_ptr atn; -}; - -::antlr4::internal::OnceFlag css3lexerLexerOnceFlag; -#if ANTLR4_USE_THREAD_LOCAL_CACHE -static thread_local -#endif -Css3LexerStaticData *css3lexerLexerStaticData = nullptr; - -void css3lexerLexerInitialize() { -#if ANTLR4_USE_THREAD_LOCAL_CACHE - if (css3lexerLexerStaticData != nullptr) { - return; - } -#else - assert(css3lexerLexerStaticData == nullptr); -#endif - auto staticData = std::make_unique( - std::vector{ - "OpenBracket", "CloseBracket", "OpenParen", "CloseParen", "OpenBrace", - "CloseBrace", "SemiColon", "Equal", "Colon", "Dot", "Multiply", "Divide", - "Pipe", "Underscore", "At", "Hex", "NewlineOrSpace", "Unicode", "Escape", - "Nmstart", "Nmchar", "Comment", "Name", "Url", "Space", "Whitespace", - "Newline", "ZeroToFourZeros", "A", "B", "C", "D", "E", "F", "G", "H", - "I", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", - "X", "Y", "Z", "DashChar", "Cdo", "Cdc", "Includes", "DashMatch", - "Hash", "Import", "Page", "Media", "Namespace", "Charset", "Important", - "FontRelative", "ViewportRelative", "AbsLength", "Angle", "Time", - "Freq", "Percentage", "Url_", "UnicodeRange", "MediaOnly", "Not", - "And", "Resolution", "Length", "Dimension", "UnknownDimension", "Nonascii", - "Plus", "Minus", "Greater", "Comma", "Tilde", "PseudoNot", "Number", - "String_", "PrefixMatch", "SuffixMatch", "SubstringMatch", "FontFace", - "Supports", "Or", "VendorPrefix", "Keyframes", "From", "To", "Calc", - "Rgb", "Rgba", "Viewport", "CounterStyle", "FontFeatureValues", "DxImageTransform", - "AtKeyword", "Variable", "Var", "Ident", "Function_", "UnexpectedCharacter" - }, - std::vector{ - "DEFAULT_TOKEN_CHANNEL", "HIDDEN" - }, - std::vector{ - "DEFAULT_MODE" - }, - std::vector{ - "", "'['", "']'", "'('", "')'", "'{'", "'}'", "';'", "'='", "':'", - "'.'", "'*'", "'/'", "'|'", "'_'", "", "", "", "''", - "'~='", "'|='", "", "", "", "", "", "'@charset '", "", "", "'url('", - "", "", "", "", "", "", "'+'", "'-'", "'>'", "','", "'~'", "", "", - "", "'^='", "'$='", "'*='", "", "", "", "", "", "", "'calc('", "'rgb('", - "'rgba('", "", "", "", "", "", "", "'var('" - }, - std::vector{ - "", "OpenBracket", "CloseBracket", "OpenParen", "CloseParen", "OpenBrace", - "CloseBrace", "SemiColon", "Equal", "Colon", "Dot", "Multiply", "Divide", - "Pipe", "Underscore", "Comment", "Url", "Space", "Cdo", "Cdc", "Includes", - "DashMatch", "Hash", "Import", "Page", "Media", "Namespace", "Charset", - "Important", "Percentage", "Url_", "UnicodeRange", "MediaOnly", "Not", - "And", "Dimension", "UnknownDimension", "Plus", "Minus", "Greater", - "Comma", "Tilde", "PseudoNot", "Number", "String_", "PrefixMatch", - "SuffixMatch", "SubstringMatch", "FontFace", "Supports", "Or", "Keyframes", - "From", "To", "Calc", "Rgb", "Rgba", "Viewport", "CounterStyle", "FontFeatureValues", - "DxImageTransform", "AtKeyword", "Variable", "Var", "Ident", "Function_", - "UnexpectedCharacter" - } - ); - static const int32_t serializedATNSegment[] = { - 4,0,66,1403,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, - 7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2, - 14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2, - 21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2, - 28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2, - 35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2, - 42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2, - 49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2, - 56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2, - 63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2, - 70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2, - 77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2, - 84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2, - 91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2, - 98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104, - 7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110, - 7,110,2,111,7,111,2,112,7,112,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4, - 1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,11,1,11,1,12,1,12, - 1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,16,1,16,3,16,264,8,16,1,17, - 1,17,1,17,3,17,269,8,17,1,17,3,17,272,8,17,1,17,3,17,275,8,17,1,17,3, - 17,278,8,17,1,17,3,17,281,8,17,1,17,1,17,1,18,1,18,1,18,3,18,288,8,18, - 1,19,1,19,1,19,3,19,293,8,19,1,20,1,20,1,20,3,20,298,8,20,1,21,1,21,1, - 21,1,21,5,21,304,8,21,10,21,12,21,307,9,21,1,21,4,21,310,8,21,11,21,12, - 21,311,1,21,1,21,5,21,316,8,21,10,21,12,21,319,9,21,1,21,4,21,322,8,21, - 11,21,12,21,323,5,21,326,8,21,10,21,12,21,329,9,21,1,21,1,21,1,22,4,22, - 334,8,22,11,22,12,22,335,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,5,23, - 346,8,23,10,23,12,23,349,9,23,1,23,1,23,1,23,1,24,4,24,355,8,24,11,24, - 12,24,356,1,25,1,25,3,25,361,8,25,1,26,1,26,1,26,1,26,3,26,367,8,26,1, - 27,3,27,370,8,27,1,27,3,27,373,8,27,1,27,3,27,376,8,27,1,27,3,27,379, - 8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,3,28,388,8,28,1,28,1,28,3,28, - 392,8,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,401,8,29,1,29,1,29,3, - 29,405,8,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,414,8,30,1,30,1,30, - 3,30,418,8,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,3,31,427,8,31,1,31,1, - 31,3,31,431,8,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,3,32,440,8,32,1,32, - 1,32,3,32,444,8,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,3,33,453,8,33,1, - 33,1,33,3,33,457,8,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,3,34,466,8,34, - 1,34,1,34,1,34,1,34,1,34,1,34,3,34,474,8,34,1,35,1,35,1,35,1,35,1,35, - 1,35,1,35,3,35,483,8,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,491,8,35,1, - 36,1,36,1,36,1,36,1,36,1,36,1,36,3,36,500,8,36,1,36,1,36,1,36,1,36,1, - 36,1,36,3,36,508,8,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,3,37,517,8,37, - 1,37,1,37,1,37,1,37,1,37,1,37,3,37,525,8,37,1,38,1,38,1,38,1,38,1,38, - 1,38,1,38,3,38,534,8,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,542,8,38,1, - 39,1,39,1,39,1,39,1,39,1,39,1,39,3,39,551,8,39,1,39,1,39,1,39,1,39,1, - 39,1,39,3,39,559,8,39,1,40,1,40,1,40,1,40,1,40,1,40,1,40,3,40,568,8,40, - 1,40,1,40,1,40,1,40,1,40,1,40,3,40,576,8,40,1,41,1,41,1,41,1,41,1,41, - 1,41,1,41,3,41,585,8,41,1,41,1,41,1,41,1,41,1,41,1,41,3,41,593,8,41,1, - 42,1,42,1,42,1,42,1,42,1,42,1,42,3,42,602,8,42,1,42,1,42,1,42,1,42,1, - 42,1,42,3,42,610,8,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,3,43,619,8,43, - 1,43,1,43,1,43,1,43,1,43,1,43,3,43,627,8,43,1,44,1,44,1,44,1,44,1,44, - 1,44,1,44,3,44,636,8,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,644,8,44,1, - 45,1,45,1,45,1,45,1,45,1,45,1,45,3,45,653,8,45,1,45,1,45,1,45,1,45,1, - 45,1,45,3,45,661,8,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,670,8,46, - 1,46,1,46,1,46,1,46,1,46,1,46,3,46,678,8,46,1,47,1,47,1,47,1,47,1,47, - 1,47,1,47,3,47,687,8,47,1,47,1,47,1,47,1,47,1,47,1,47,3,47,695,8,47,1, - 48,1,48,1,48,1,48,1,48,1,48,1,48,3,48,704,8,48,1,48,1,48,1,48,1,48,1, - 48,1,48,3,48,712,8,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,3,49,721,8,49, - 1,49,1,49,1,49,1,49,1,49,1,49,3,49,729,8,49,1,50,1,50,1,50,1,50,1,50, - 1,50,1,50,3,50,738,8,50,1,50,1,50,1,50,1,50,1,50,1,50,3,50,746,8,50,1, - 51,1,51,1,51,1,51,1,51,1,51,1,51,3,51,755,8,51,1,51,1,51,1,51,1,51,1, - 51,1,51,3,51,763,8,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,3,52,772,8,52, - 1,52,1,52,1,52,1,52,1,52,1,52,3,52,780,8,52,1,53,1,53,1,53,1,53,1,53, - 1,53,1,53,1,53,3,53,790,8,53,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55, - 1,55,1,56,1,56,1,56,1,57,1,57,1,57,1,58,1,58,1,58,1,59,1,59,1,59,1,59, - 1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61, - 1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62, - 1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,5,64, - 855,8,64,10,64,12,64,858,9,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64, - 1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65, - 1,65,1,65,1,65,1,65,1,65,3,65,887,8,65,1,66,1,66,1,66,1,66,1,66,1,66, - 1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66, - 3,66,909,8,66,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67, - 1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67, - 1,67,1,67,3,67,938,8,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68, - 1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,3,68, - 962,8,68,1,69,1,69,1,69,1,69,1,69,1,69,1,69,3,69,971,8,69,1,70,1,70,1, - 70,1,70,1,70,1,70,1,70,1,70,1,70,3,70,982,8,70,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,3,73,997,8,73,1,73,3,73,1000, - 8,73,1,73,3,73,1003,8,73,1,73,3,73,1006,8,73,1,73,3,73,1009,8,73,1,73, - 1,73,1,73,1,73,3,73,1015,8,73,1,73,3,73,1018,8,73,1,73,3,73,1021,8,73, - 1,73,3,73,1024,8,73,1,73,3,73,1027,8,73,1,73,1,73,1,73,1,73,1,73,3,73, - 1034,8,73,1,73,3,73,1037,8,73,1,73,3,73,1040,8,73,1,73,3,73,1043,8,73, - 1,73,1,73,1,73,1,73,1,73,1,73,3,73,1051,8,73,1,73,3,73,1054,8,73,1,73, - 3,73,1057,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,1066,8,73,1,73, - 3,73,1069,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,1079,8,73, - 3,73,1081,8,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,76,1,76, - 1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77, - 1,77,1,77,1,77,1,77,1,77,3,77,1113,8,77,1,78,1,78,1,78,3,78,1118,8,78, - 1,79,1,79,1,79,1,79,1,79,3,79,1125,8,79,1,80,1,80,1,80,1,81,1,81,1,82, - 1,82,1,83,1,83,1,84,1,84,1,85,1,85,1,86,1,86,1,87,1,87,1,87,1,87,1,87, - 1,87,1,88,4,88,1149,8,88,11,88,12,88,1150,1,88,5,88,1154,8,88,10,88,12, - 88,1157,9,88,1,88,1,88,4,88,1161,8,88,11,88,12,88,1162,3,88,1165,8,88, - 1,89,1,89,1,89,1,89,1,89,1,89,5,89,1173,8,89,10,89,12,89,1176,9,89,1, - 89,1,89,1,89,1,89,1,89,1,89,1,89,5,89,1185,8,89,10,89,12,89,1188,9,89, - 1,89,3,89,1191,8,89,1,90,1,90,1,90,1,91,1,91,1,91,1,92,1,92,1,92,1,93, - 1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94, - 1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96, - 1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96, - 3,96,1245,8,96,1,97,1,97,3,97,1249,8,97,1,97,1,97,1,97,1,97,1,97,1,97, - 1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,100,1,100, - 1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102, - 1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103, - 1,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104, - 1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105, - 1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105, - 1,105,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106, - 1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106, - 1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106, - 1,106,1,106,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,5,108,1377, - 8,108,10,108,12,108,1380,9,108,1,109,1,109,1,109,1,109,1,109,1,110,3, - 110,1388,8,110,1,110,1,110,5,110,1392,8,110,10,110,12,110,1395,9,110, - 1,111,1,111,1,111,1,112,1,112,1,112,1,112,0,0,113,1,1,3,2,5,3,7,4,9,5, - 11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,0,31,0,33,0,35,0, - 37,0,39,0,41,0,43,15,45,0,47,16,49,17,51,0,53,0,55,0,57,0,59,0,61,0,63, - 0,65,0,67,0,69,0,71,0,73,0,75,0,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,18,111,19,113,20,115, - 21,117,22,119,23,121,24,123,25,125,26,127,27,129,28,131,0,133,0,135,0, - 137,0,139,0,141,0,143,29,145,30,147,31,149,32,151,33,153,34,155,0,157, - 0,159,35,161,36,163,0,165,37,167,38,169,39,171,40,173,41,175,42,177,43, - 179,44,181,45,183,46,185,47,187,48,189,49,191,50,193,0,195,51,197,52, - 199,53,201,54,203,55,205,56,207,57,209,58,211,59,213,60,215,61,217,62, - 219,63,221,64,223,65,225,66,1,0,38,3,0,48,57,65,70,97,102,3,0,9,10,12, - 13,32,32,5,0,10,10,12,13,48,57,65,70,97,102,3,0,65,90,95,95,97,122,5, - 0,45,45,48,57,65,90,95,95,97,122,1,0,42,42,2,0,42,42,47,47,3,0,33,33, - 35,38,42,126,2,0,65,65,97,97,2,0,66,66,98,98,2,0,67,67,99,99,2,0,68,68, - 100,100,2,0,69,69,101,101,2,0,70,70,102,102,2,0,71,71,103,103,2,0,72, - 72,104,104,2,0,73,73,105,105,2,0,75,75,107,107,2,0,76,76,108,108,2,0, - 77,77,109,109,2,0,78,78,110,110,2,0,79,79,111,111,2,0,80,80,112,112,2, - 0,81,81,113,113,2,0,82,82,114,114,2,0,83,83,115,115,2,0,84,84,116,116, - 2,0,85,85,117,117,2,0,86,86,118,118,2,0,87,87,119,119,2,0,88,88,120,120, - 2,0,89,89,121,121,2,0,90,90,122,122,3,0,85,85,117,117,124,124,1,0,0,127, - 1,0,48,57,4,0,10,10,12,13,34,34,92,92,4,0,10,10,12,13,39,39,92,92,1544, - 0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0, - 0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0, - 0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,43,1,0,0,0,0,47,1,0,0,0,0,49, - 1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117, - 1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127, - 1,0,0,0,0,129,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149, - 1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,165, - 1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175, - 1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185, - 1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,195,1,0,0,0,0,197, - 1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207, - 1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217, - 1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,1,227, - 1,0,0,0,3,229,1,0,0,0,5,231,1,0,0,0,7,233,1,0,0,0,9,235,1,0,0,0,11,237, - 1,0,0,0,13,239,1,0,0,0,15,241,1,0,0,0,17,243,1,0,0,0,19,245,1,0,0,0,21, - 247,1,0,0,0,23,249,1,0,0,0,25,251,1,0,0,0,27,253,1,0,0,0,29,255,1,0,0, - 0,31,257,1,0,0,0,33,263,1,0,0,0,35,265,1,0,0,0,37,287,1,0,0,0,39,292, - 1,0,0,0,41,297,1,0,0,0,43,299,1,0,0,0,45,333,1,0,0,0,47,337,1,0,0,0,49, - 354,1,0,0,0,51,360,1,0,0,0,53,366,1,0,0,0,55,369,1,0,0,0,57,391,1,0,0, - 0,59,404,1,0,0,0,61,417,1,0,0,0,63,430,1,0,0,0,65,443,1,0,0,0,67,456, - 1,0,0,0,69,473,1,0,0,0,71,490,1,0,0,0,73,507,1,0,0,0,75,524,1,0,0,0,77, - 541,1,0,0,0,79,558,1,0,0,0,81,575,1,0,0,0,83,592,1,0,0,0,85,609,1,0,0, - 0,87,626,1,0,0,0,89,643,1,0,0,0,91,660,1,0,0,0,93,677,1,0,0,0,95,694, - 1,0,0,0,97,711,1,0,0,0,99,728,1,0,0,0,101,745,1,0,0,0,103,762,1,0,0,0, - 105,779,1,0,0,0,107,789,1,0,0,0,109,791,1,0,0,0,111,796,1,0,0,0,113,800, - 1,0,0,0,115,803,1,0,0,0,117,806,1,0,0,0,119,809,1,0,0,0,121,817,1,0,0, - 0,123,823,1,0,0,0,125,830,1,0,0,0,127,841,1,0,0,0,129,851,1,0,0,0,131, - 886,1,0,0,0,133,908,1,0,0,0,135,937,1,0,0,0,137,961,1,0,0,0,139,970,1, - 0,0,0,141,981,1,0,0,0,143,983,1,0,0,0,145,986,1,0,0,0,147,1080,1,0,0, - 0,149,1082,1,0,0,0,151,1087,1,0,0,0,153,1091,1,0,0,0,155,1112,1,0,0,0, - 157,1117,1,0,0,0,159,1124,1,0,0,0,161,1126,1,0,0,0,163,1129,1,0,0,0,165, - 1131,1,0,0,0,167,1133,1,0,0,0,169,1135,1,0,0,0,171,1137,1,0,0,0,173,1139, - 1,0,0,0,175,1141,1,0,0,0,177,1164,1,0,0,0,179,1190,1,0,0,0,181,1192,1, - 0,0,0,183,1195,1,0,0,0,185,1198,1,0,0,0,187,1201,1,0,0,0,189,1212,1,0, - 0,0,191,1222,1,0,0,0,193,1244,1,0,0,0,195,1246,1,0,0,0,197,1260,1,0,0, - 0,199,1265,1,0,0,0,201,1268,1,0,0,0,203,1274,1,0,0,0,205,1279,1,0,0,0, - 207,1285,1,0,0,0,209,1295,1,0,0,0,211,1310,1,0,0,0,213,1331,1,0,0,0,215, - 1368,1,0,0,0,217,1371,1,0,0,0,219,1381,1,0,0,0,221,1387,1,0,0,0,223,1396, - 1,0,0,0,225,1399,1,0,0,0,227,228,5,91,0,0,228,2,1,0,0,0,229,230,5,93, - 0,0,230,4,1,0,0,0,231,232,5,40,0,0,232,6,1,0,0,0,233,234,5,41,0,0,234, - 8,1,0,0,0,235,236,5,123,0,0,236,10,1,0,0,0,237,238,5,125,0,0,238,12,1, - 0,0,0,239,240,5,59,0,0,240,14,1,0,0,0,241,242,5,61,0,0,242,16,1,0,0,0, - 243,244,5,58,0,0,244,18,1,0,0,0,245,246,5,46,0,0,246,20,1,0,0,0,247,248, - 5,42,0,0,248,22,1,0,0,0,249,250,5,47,0,0,250,24,1,0,0,0,251,252,5,124, - 0,0,252,26,1,0,0,0,253,254,5,95,0,0,254,28,1,0,0,0,255,256,5,64,0,0,256, - 30,1,0,0,0,257,258,7,0,0,0,258,32,1,0,0,0,259,260,5,13,0,0,260,264,5, - 10,0,0,261,264,7,1,0,0,262,264,1,0,0,0,263,259,1,0,0,0,263,261,1,0,0, - 0,263,262,1,0,0,0,264,34,1,0,0,0,265,266,5,92,0,0,266,268,3,31,15,0,267, - 269,3,31,15,0,268,267,1,0,0,0,268,269,1,0,0,0,269,271,1,0,0,0,270,272, - 3,31,15,0,271,270,1,0,0,0,271,272,1,0,0,0,272,274,1,0,0,0,273,275,3,31, - 15,0,274,273,1,0,0,0,274,275,1,0,0,0,275,277,1,0,0,0,276,278,3,31,15, - 0,277,276,1,0,0,0,277,278,1,0,0,0,278,280,1,0,0,0,279,281,3,31,15,0,280, - 279,1,0,0,0,280,281,1,0,0,0,281,282,1,0,0,0,282,283,3,33,16,0,283,36, - 1,0,0,0,284,288,3,35,17,0,285,286,5,92,0,0,286,288,8,2,0,0,287,284,1, - 0,0,0,287,285,1,0,0,0,288,38,1,0,0,0,289,293,7,3,0,0,290,293,3,163,81, - 0,291,293,3,37,18,0,292,289,1,0,0,0,292,290,1,0,0,0,292,291,1,0,0,0,293, - 40,1,0,0,0,294,298,7,4,0,0,295,298,3,163,81,0,296,298,3,37,18,0,297,294, - 1,0,0,0,297,295,1,0,0,0,297,296,1,0,0,0,298,42,1,0,0,0,299,300,5,47,0, - 0,300,301,5,42,0,0,301,305,1,0,0,0,302,304,8,5,0,0,303,302,1,0,0,0,304, - 307,1,0,0,0,305,303,1,0,0,0,305,306,1,0,0,0,306,309,1,0,0,0,307,305,1, - 0,0,0,308,310,5,42,0,0,309,308,1,0,0,0,310,311,1,0,0,0,311,309,1,0,0, - 0,311,312,1,0,0,0,312,327,1,0,0,0,313,317,8,6,0,0,314,316,8,5,0,0,315, - 314,1,0,0,0,316,319,1,0,0,0,317,315,1,0,0,0,317,318,1,0,0,0,318,321,1, - 0,0,0,319,317,1,0,0,0,320,322,5,42,0,0,321,320,1,0,0,0,322,323,1,0,0, - 0,323,321,1,0,0,0,323,324,1,0,0,0,324,326,1,0,0,0,325,313,1,0,0,0,326, - 329,1,0,0,0,327,325,1,0,0,0,327,328,1,0,0,0,328,330,1,0,0,0,329,327,1, - 0,0,0,330,331,5,47,0,0,331,44,1,0,0,0,332,334,3,41,20,0,333,332,1,0,0, - 0,334,335,1,0,0,0,335,333,1,0,0,0,335,336,1,0,0,0,336,46,1,0,0,0,337, - 338,3,95,47,0,338,339,3,89,44,0,339,340,3,77,38,0,340,341,5,40,0,0,341, - 347,3,51,25,0,342,346,7,7,0,0,343,346,3,163,81,0,344,346,3,37,18,0,345, - 342,1,0,0,0,345,343,1,0,0,0,345,344,1,0,0,0,346,349,1,0,0,0,347,345,1, - 0,0,0,347,348,1,0,0,0,348,350,1,0,0,0,349,347,1,0,0,0,350,351,3,51,25, - 0,351,352,5,41,0,0,352,48,1,0,0,0,353,355,7,1,0,0,354,353,1,0,0,0,355, - 356,1,0,0,0,356,354,1,0,0,0,356,357,1,0,0,0,357,50,1,0,0,0,358,361,3, - 49,24,0,359,361,1,0,0,0,360,358,1,0,0,0,360,359,1,0,0,0,361,52,1,0,0, - 0,362,367,5,10,0,0,363,364,5,13,0,0,364,367,5,10,0,0,365,367,2,12,13, - 0,366,362,1,0,0,0,366,363,1,0,0,0,366,365,1,0,0,0,367,54,1,0,0,0,368, - 370,5,48,0,0,369,368,1,0,0,0,369,370,1,0,0,0,370,372,1,0,0,0,371,373, - 5,48,0,0,372,371,1,0,0,0,372,373,1,0,0,0,373,375,1,0,0,0,374,376,5,48, - 0,0,375,374,1,0,0,0,375,376,1,0,0,0,376,378,1,0,0,0,377,379,5,48,0,0, - 378,377,1,0,0,0,378,379,1,0,0,0,379,56,1,0,0,0,380,392,7,8,0,0,381,382, - 5,92,0,0,382,387,3,55,27,0,383,384,5,52,0,0,384,388,5,49,0,0,385,386, - 5,54,0,0,386,388,5,49,0,0,387,383,1,0,0,0,387,385,1,0,0,0,388,389,1,0, - 0,0,389,390,3,33,16,0,390,392,1,0,0,0,391,380,1,0,0,0,391,381,1,0,0,0, - 392,58,1,0,0,0,393,405,7,9,0,0,394,395,5,92,0,0,395,400,3,55,27,0,396, - 397,5,52,0,0,397,401,5,50,0,0,398,399,5,54,0,0,399,401,5,50,0,0,400,396, - 1,0,0,0,400,398,1,0,0,0,401,402,1,0,0,0,402,403,3,33,16,0,403,405,1,0, - 0,0,404,393,1,0,0,0,404,394,1,0,0,0,405,60,1,0,0,0,406,418,7,10,0,0,407, - 408,5,92,0,0,408,413,3,55,27,0,409,410,5,52,0,0,410,414,5,51,0,0,411, - 412,5,54,0,0,412,414,5,51,0,0,413,409,1,0,0,0,413,411,1,0,0,0,414,415, - 1,0,0,0,415,416,3,33,16,0,416,418,1,0,0,0,417,406,1,0,0,0,417,407,1,0, - 0,0,418,62,1,0,0,0,419,431,7,11,0,0,420,421,5,92,0,0,421,426,3,55,27, - 0,422,423,5,52,0,0,423,427,5,52,0,0,424,425,5,54,0,0,425,427,5,52,0,0, - 426,422,1,0,0,0,426,424,1,0,0,0,427,428,1,0,0,0,428,429,3,33,16,0,429, - 431,1,0,0,0,430,419,1,0,0,0,430,420,1,0,0,0,431,64,1,0,0,0,432,444,7, - 12,0,0,433,434,5,92,0,0,434,439,3,55,27,0,435,436,5,52,0,0,436,440,5, - 53,0,0,437,438,5,54,0,0,438,440,5,53,0,0,439,435,1,0,0,0,439,437,1,0, - 0,0,440,441,1,0,0,0,441,442,3,33,16,0,442,444,1,0,0,0,443,432,1,0,0,0, - 443,433,1,0,0,0,444,66,1,0,0,0,445,457,7,13,0,0,446,447,5,92,0,0,447, - 452,3,55,27,0,448,449,5,52,0,0,449,453,5,54,0,0,450,451,5,54,0,0,451, - 453,5,54,0,0,452,448,1,0,0,0,452,450,1,0,0,0,453,454,1,0,0,0,454,455, - 3,33,16,0,455,457,1,0,0,0,456,445,1,0,0,0,456,446,1,0,0,0,457,68,1,0, - 0,0,458,474,7,14,0,0,459,460,5,92,0,0,460,465,3,55,27,0,461,462,5,52, - 0,0,462,466,5,55,0,0,463,464,5,54,0,0,464,466,5,55,0,0,465,461,1,0,0, - 0,465,463,1,0,0,0,466,467,1,0,0,0,467,468,3,33,16,0,468,474,1,0,0,0,469, - 470,5,92,0,0,470,474,5,103,0,0,471,472,5,92,0,0,472,474,5,71,0,0,473, - 458,1,0,0,0,473,459,1,0,0,0,473,469,1,0,0,0,473,471,1,0,0,0,474,70,1, - 0,0,0,475,491,7,15,0,0,476,477,5,92,0,0,477,482,3,55,27,0,478,479,5,52, - 0,0,479,483,5,56,0,0,480,481,5,54,0,0,481,483,5,56,0,0,482,478,1,0,0, - 0,482,480,1,0,0,0,483,484,1,0,0,0,484,485,3,33,16,0,485,491,1,0,0,0,486, - 487,5,92,0,0,487,491,5,104,0,0,488,489,5,92,0,0,489,491,5,72,0,0,490, - 475,1,0,0,0,490,476,1,0,0,0,490,486,1,0,0,0,490,488,1,0,0,0,491,72,1, - 0,0,0,492,508,7,16,0,0,493,494,5,92,0,0,494,499,3,55,27,0,495,496,5,52, - 0,0,496,500,5,57,0,0,497,498,5,54,0,0,498,500,5,57,0,0,499,495,1,0,0, - 0,499,497,1,0,0,0,500,501,1,0,0,0,501,502,3,33,16,0,502,508,1,0,0,0,503, - 504,5,92,0,0,504,508,5,105,0,0,505,506,5,92,0,0,506,508,5,73,0,0,507, - 492,1,0,0,0,507,493,1,0,0,0,507,503,1,0,0,0,507,505,1,0,0,0,508,74,1, - 0,0,0,509,525,7,17,0,0,510,511,5,92,0,0,511,516,3,55,27,0,512,513,5,52, - 0,0,513,517,5,98,0,0,514,515,5,54,0,0,515,517,5,98,0,0,516,512,1,0,0, - 0,516,514,1,0,0,0,517,518,1,0,0,0,518,519,3,33,16,0,519,525,1,0,0,0,520, - 521,5,92,0,0,521,525,5,107,0,0,522,523,5,92,0,0,523,525,5,75,0,0,524, - 509,1,0,0,0,524,510,1,0,0,0,524,520,1,0,0,0,524,522,1,0,0,0,525,76,1, - 0,0,0,526,542,7,18,0,0,527,528,5,92,0,0,528,533,3,55,27,0,529,530,5,52, - 0,0,530,534,5,99,0,0,531,532,5,54,0,0,532,534,5,99,0,0,533,529,1,0,0, - 0,533,531,1,0,0,0,534,535,1,0,0,0,535,536,3,33,16,0,536,542,1,0,0,0,537, - 538,5,92,0,0,538,542,5,108,0,0,539,540,5,92,0,0,540,542,5,76,0,0,541, - 526,1,0,0,0,541,527,1,0,0,0,541,537,1,0,0,0,541,539,1,0,0,0,542,78,1, - 0,0,0,543,559,7,19,0,0,544,545,5,92,0,0,545,550,3,55,27,0,546,547,5,52, - 0,0,547,551,5,100,0,0,548,549,5,54,0,0,549,551,5,100,0,0,550,546,1,0, - 0,0,550,548,1,0,0,0,551,552,1,0,0,0,552,553,3,33,16,0,553,559,1,0,0,0, - 554,555,5,92,0,0,555,559,5,109,0,0,556,557,5,92,0,0,557,559,5,77,0,0, - 558,543,1,0,0,0,558,544,1,0,0,0,558,554,1,0,0,0,558,556,1,0,0,0,559,80, - 1,0,0,0,560,576,7,20,0,0,561,562,5,92,0,0,562,567,3,55,27,0,563,564,5, - 52,0,0,564,568,5,101,0,0,565,566,5,54,0,0,566,568,5,101,0,0,567,563,1, - 0,0,0,567,565,1,0,0,0,568,569,1,0,0,0,569,570,3,33,16,0,570,576,1,0,0, - 0,571,572,5,92,0,0,572,576,5,110,0,0,573,574,5,92,0,0,574,576,5,78,0, - 0,575,560,1,0,0,0,575,561,1,0,0,0,575,571,1,0,0,0,575,573,1,0,0,0,576, - 82,1,0,0,0,577,593,7,21,0,0,578,579,5,92,0,0,579,584,3,55,27,0,580,581, - 5,52,0,0,581,585,5,102,0,0,582,583,5,54,0,0,583,585,5,102,0,0,584,580, - 1,0,0,0,584,582,1,0,0,0,585,586,1,0,0,0,586,587,3,33,16,0,587,593,1,0, - 0,0,588,589,5,92,0,0,589,593,5,111,0,0,590,591,5,92,0,0,591,593,5,79, - 0,0,592,577,1,0,0,0,592,578,1,0,0,0,592,588,1,0,0,0,592,590,1,0,0,0,593, - 84,1,0,0,0,594,610,7,22,0,0,595,596,5,92,0,0,596,601,3,55,27,0,597,598, - 5,53,0,0,598,602,5,48,0,0,599,600,5,55,0,0,600,602,5,48,0,0,601,597,1, - 0,0,0,601,599,1,0,0,0,602,603,1,0,0,0,603,604,3,33,16,0,604,610,1,0,0, - 0,605,606,5,92,0,0,606,610,5,112,0,0,607,608,5,92,0,0,608,610,5,80,0, - 0,609,594,1,0,0,0,609,595,1,0,0,0,609,605,1,0,0,0,609,607,1,0,0,0,610, - 86,1,0,0,0,611,627,7,23,0,0,612,613,5,92,0,0,613,618,3,55,27,0,614,615, - 5,53,0,0,615,619,5,49,0,0,616,617,5,55,0,0,617,619,5,49,0,0,618,614,1, - 0,0,0,618,616,1,0,0,0,619,620,1,0,0,0,620,621,3,33,16,0,621,627,1,0,0, - 0,622,623,5,92,0,0,623,627,5,113,0,0,624,625,5,92,0,0,625,627,5,81,0, - 0,626,611,1,0,0,0,626,612,1,0,0,0,626,622,1,0,0,0,626,624,1,0,0,0,627, - 88,1,0,0,0,628,644,7,24,0,0,629,630,5,92,0,0,630,635,3,55,27,0,631,632, - 5,53,0,0,632,636,5,50,0,0,633,634,5,55,0,0,634,636,5,50,0,0,635,631,1, - 0,0,0,635,633,1,0,0,0,636,637,1,0,0,0,637,638,3,33,16,0,638,644,1,0,0, - 0,639,640,5,92,0,0,640,644,5,114,0,0,641,642,5,92,0,0,642,644,5,82,0, - 0,643,628,1,0,0,0,643,629,1,0,0,0,643,639,1,0,0,0,643,641,1,0,0,0,644, - 90,1,0,0,0,645,661,7,25,0,0,646,647,5,92,0,0,647,652,3,55,27,0,648,649, - 5,53,0,0,649,653,5,51,0,0,650,651,5,55,0,0,651,653,5,51,0,0,652,648,1, - 0,0,0,652,650,1,0,0,0,653,654,1,0,0,0,654,655,3,33,16,0,655,661,1,0,0, - 0,656,657,5,92,0,0,657,661,5,115,0,0,658,659,5,92,0,0,659,661,5,83,0, - 0,660,645,1,0,0,0,660,646,1,0,0,0,660,656,1,0,0,0,660,658,1,0,0,0,661, - 92,1,0,0,0,662,678,7,26,0,0,663,664,5,92,0,0,664,669,3,55,27,0,665,666, - 5,53,0,0,666,670,5,52,0,0,667,668,5,55,0,0,668,670,5,52,0,0,669,665,1, - 0,0,0,669,667,1,0,0,0,670,671,1,0,0,0,671,672,3,33,16,0,672,678,1,0,0, - 0,673,674,5,92,0,0,674,678,5,116,0,0,675,676,5,92,0,0,676,678,5,84,0, - 0,677,662,1,0,0,0,677,663,1,0,0,0,677,673,1,0,0,0,677,675,1,0,0,0,678, - 94,1,0,0,0,679,695,7,27,0,0,680,681,5,92,0,0,681,686,3,55,27,0,682,683, - 5,53,0,0,683,687,5,53,0,0,684,685,5,55,0,0,685,687,5,53,0,0,686,682,1, - 0,0,0,686,684,1,0,0,0,687,688,1,0,0,0,688,689,3,33,16,0,689,695,1,0,0, - 0,690,691,5,92,0,0,691,695,5,117,0,0,692,693,5,92,0,0,693,695,5,85,0, - 0,694,679,1,0,0,0,694,680,1,0,0,0,694,690,1,0,0,0,694,692,1,0,0,0,695, - 96,1,0,0,0,696,712,7,28,0,0,697,698,5,92,0,0,698,703,3,55,27,0,699,700, - 5,53,0,0,700,704,5,54,0,0,701,702,5,55,0,0,702,704,5,54,0,0,703,699,1, - 0,0,0,703,701,1,0,0,0,704,705,1,0,0,0,705,706,3,33,16,0,706,712,1,0,0, - 0,707,708,5,92,0,0,708,712,5,118,0,0,709,710,5,92,0,0,710,712,5,86,0, - 0,711,696,1,0,0,0,711,697,1,0,0,0,711,707,1,0,0,0,711,709,1,0,0,0,712, - 98,1,0,0,0,713,729,7,29,0,0,714,715,5,92,0,0,715,720,3,55,27,0,716,717, - 5,53,0,0,717,721,5,55,0,0,718,719,5,55,0,0,719,721,5,55,0,0,720,716,1, - 0,0,0,720,718,1,0,0,0,721,722,1,0,0,0,722,723,3,33,16,0,723,729,1,0,0, - 0,724,725,5,92,0,0,725,729,5,119,0,0,726,727,5,92,0,0,727,729,5,87,0, - 0,728,713,1,0,0,0,728,714,1,0,0,0,728,724,1,0,0,0,728,726,1,0,0,0,729, - 100,1,0,0,0,730,746,7,30,0,0,731,732,5,92,0,0,732,737,3,55,27,0,733,734, - 5,53,0,0,734,738,5,56,0,0,735,736,5,55,0,0,736,738,5,56,0,0,737,733,1, - 0,0,0,737,735,1,0,0,0,738,739,1,0,0,0,739,740,3,33,16,0,740,746,1,0,0, - 0,741,742,5,92,0,0,742,746,5,120,0,0,743,744,5,92,0,0,744,746,5,88,0, - 0,745,730,1,0,0,0,745,731,1,0,0,0,745,741,1,0,0,0,745,743,1,0,0,0,746, - 102,1,0,0,0,747,763,7,31,0,0,748,749,5,92,0,0,749,754,3,55,27,0,750,751, - 5,53,0,0,751,755,5,57,0,0,752,753,5,55,0,0,753,755,5,57,0,0,754,750,1, - 0,0,0,754,752,1,0,0,0,755,756,1,0,0,0,756,757,3,33,16,0,757,763,1,0,0, - 0,758,759,5,92,0,0,759,763,5,121,0,0,760,761,5,92,0,0,761,763,5,89,0, - 0,762,747,1,0,0,0,762,748,1,0,0,0,762,758,1,0,0,0,762,760,1,0,0,0,763, - 104,1,0,0,0,764,780,7,32,0,0,765,766,5,92,0,0,766,771,3,55,27,0,767,768, - 5,53,0,0,768,772,5,97,0,0,769,770,5,55,0,0,770,772,5,97,0,0,771,767,1, - 0,0,0,771,769,1,0,0,0,772,773,1,0,0,0,773,774,3,33,16,0,774,780,1,0,0, - 0,775,776,5,92,0,0,776,780,5,122,0,0,777,778,5,92,0,0,778,780,5,90,0, - 0,779,764,1,0,0,0,779,765,1,0,0,0,779,775,1,0,0,0,779,777,1,0,0,0,780, - 106,1,0,0,0,781,790,5,45,0,0,782,783,5,92,0,0,783,784,3,55,27,0,784,785, - 5,50,0,0,785,786,5,100,0,0,786,787,1,0,0,0,787,788,3,33,16,0,788,790, - 1,0,0,0,789,781,1,0,0,0,789,782,1,0,0,0,790,108,1,0,0,0,791,792,5,60, - 0,0,792,793,5,33,0,0,793,794,5,45,0,0,794,795,5,45,0,0,795,110,1,0,0, - 0,796,797,5,45,0,0,797,798,5,45,0,0,798,799,5,62,0,0,799,112,1,0,0,0, - 800,801,5,126,0,0,801,802,5,61,0,0,802,114,1,0,0,0,803,804,5,124,0,0, - 804,805,5,61,0,0,805,116,1,0,0,0,806,807,5,35,0,0,807,808,3,45,22,0,808, - 118,1,0,0,0,809,810,3,29,14,0,810,811,3,73,36,0,811,812,3,79,39,0,812, - 813,3,85,42,0,813,814,3,83,41,0,814,815,3,89,44,0,815,816,3,93,46,0,816, - 120,1,0,0,0,817,818,3,29,14,0,818,819,3,85,42,0,819,820,3,57,28,0,820, - 821,3,69,34,0,821,822,3,65,32,0,822,122,1,0,0,0,823,824,3,29,14,0,824, - 825,3,79,39,0,825,826,3,65,32,0,826,827,3,63,31,0,827,828,3,73,36,0,828, - 829,3,57,28,0,829,124,1,0,0,0,830,831,3,29,14,0,831,832,3,81,40,0,832, - 833,3,57,28,0,833,834,3,79,39,0,834,835,3,65,32,0,835,836,3,91,45,0,836, - 837,3,85,42,0,837,838,3,57,28,0,838,839,3,61,30,0,839,840,3,65,32,0,840, - 126,1,0,0,0,841,842,5,64,0,0,842,843,5,99,0,0,843,844,5,104,0,0,844,845, - 5,97,0,0,845,846,5,114,0,0,846,847,5,115,0,0,847,848,5,101,0,0,848,849, - 5,116,0,0,849,850,5,32,0,0,850,128,1,0,0,0,851,856,5,33,0,0,852,855,3, - 49,24,0,853,855,3,43,21,0,854,852,1,0,0,0,854,853,1,0,0,0,855,858,1,0, - 0,0,856,854,1,0,0,0,856,857,1,0,0,0,857,859,1,0,0,0,858,856,1,0,0,0,859, - 860,3,73,36,0,860,861,3,79,39,0,861,862,3,85,42,0,862,863,3,83,41,0,863, - 864,3,89,44,0,864,865,3,93,46,0,865,866,3,57,28,0,866,867,3,81,40,0,867, - 868,3,93,46,0,868,130,1,0,0,0,869,870,3,177,88,0,870,871,3,65,32,0,871, - 872,3,79,39,0,872,887,1,0,0,0,873,874,3,177,88,0,874,875,3,65,32,0,875, - 876,3,101,50,0,876,887,1,0,0,0,877,878,3,177,88,0,878,879,3,61,30,0,879, - 880,3,71,35,0,880,887,1,0,0,0,881,882,3,177,88,0,882,883,3,89,44,0,883, - 884,3,65,32,0,884,885,3,79,39,0,885,887,1,0,0,0,886,869,1,0,0,0,886,873, - 1,0,0,0,886,877,1,0,0,0,886,881,1,0,0,0,887,132,1,0,0,0,888,889,3,177, - 88,0,889,890,3,97,48,0,890,891,3,99,49,0,891,909,1,0,0,0,892,893,3,177, - 88,0,893,894,3,97,48,0,894,895,3,71,35,0,895,909,1,0,0,0,896,897,3,177, - 88,0,897,898,3,97,48,0,898,899,3,79,39,0,899,900,3,73,36,0,900,901,3, - 81,40,0,901,909,1,0,0,0,902,903,3,177,88,0,903,904,3,97,48,0,904,905, - 3,79,39,0,905,906,3,57,28,0,906,907,3,101,50,0,907,909,1,0,0,0,908,888, - 1,0,0,0,908,892,1,0,0,0,908,896,1,0,0,0,908,902,1,0,0,0,909,134,1,0,0, - 0,910,911,3,177,88,0,911,912,3,85,42,0,912,913,3,101,50,0,913,938,1,0, - 0,0,914,915,3,177,88,0,915,916,3,61,30,0,916,917,3,79,39,0,917,938,1, - 0,0,0,918,919,3,177,88,0,919,920,3,79,39,0,920,921,3,79,39,0,921,938, - 1,0,0,0,922,923,3,177,88,0,923,924,3,73,36,0,924,925,3,81,40,0,925,938, - 1,0,0,0,926,927,3,177,88,0,927,928,3,85,42,0,928,929,3,93,46,0,929,938, - 1,0,0,0,930,931,3,177,88,0,931,932,3,85,42,0,932,933,3,61,30,0,933,938, - 1,0,0,0,934,935,3,177,88,0,935,936,3,87,43,0,936,938,1,0,0,0,937,910, - 1,0,0,0,937,914,1,0,0,0,937,918,1,0,0,0,937,922,1,0,0,0,937,926,1,0,0, - 0,937,930,1,0,0,0,937,934,1,0,0,0,938,136,1,0,0,0,939,940,3,177,88,0, - 940,941,3,63,31,0,941,942,3,65,32,0,942,943,3,69,34,0,943,962,1,0,0,0, - 944,945,3,177,88,0,945,946,3,89,44,0,946,947,3,57,28,0,947,948,3,63,31, - 0,948,962,1,0,0,0,949,950,3,177,88,0,950,951,3,69,34,0,951,952,3,89,44, - 0,952,953,3,57,28,0,953,954,3,63,31,0,954,962,1,0,0,0,955,956,3,177,88, - 0,956,957,3,93,46,0,957,958,3,95,47,0,958,959,3,89,44,0,959,960,3,81, - 40,0,960,962,1,0,0,0,961,939,1,0,0,0,961,944,1,0,0,0,961,949,1,0,0,0, - 961,955,1,0,0,0,962,138,1,0,0,0,963,964,3,177,88,0,964,965,3,79,39,0, - 965,966,3,91,45,0,966,971,1,0,0,0,967,968,3,177,88,0,968,969,3,91,45, - 0,969,971,1,0,0,0,970,963,1,0,0,0,970,967,1,0,0,0,971,140,1,0,0,0,972, - 973,3,177,88,0,973,974,3,71,35,0,974,975,3,105,52,0,975,982,1,0,0,0,976, - 977,3,177,88,0,977,978,3,75,37,0,978,979,3,71,35,0,979,980,3,105,52,0, - 980,982,1,0,0,0,981,972,1,0,0,0,981,976,1,0,0,0,982,142,1,0,0,0,983,984, - 3,177,88,0,984,985,5,37,0,0,985,144,1,0,0,0,986,987,5,117,0,0,987,988, - 5,114,0,0,988,989,5,108,0,0,989,990,5,40,0,0,990,146,1,0,0,0,991,992, - 7,33,0,0,992,993,5,43,0,0,993,994,5,63,0,0,994,996,1,0,0,0,995,997,5, - 63,0,0,996,995,1,0,0,0,996,997,1,0,0,0,997,999,1,0,0,0,998,1000,5,63, - 0,0,999,998,1,0,0,0,999,1000,1,0,0,0,1000,1002,1,0,0,0,1001,1003,5,63, - 0,0,1002,1001,1,0,0,0,1002,1003,1,0,0,0,1003,1005,1,0,0,0,1004,1006,5, - 63,0,0,1005,1004,1,0,0,0,1005,1006,1,0,0,0,1006,1008,1,0,0,0,1007,1009, - 5,63,0,0,1008,1007,1,0,0,0,1008,1009,1,0,0,0,1009,1081,1,0,0,0,1010,1011, - 7,33,0,0,1011,1012,5,43,0,0,1012,1014,3,31,15,0,1013,1015,5,63,0,0,1014, - 1013,1,0,0,0,1014,1015,1,0,0,0,1015,1017,1,0,0,0,1016,1018,5,63,0,0,1017, - 1016,1,0,0,0,1017,1018,1,0,0,0,1018,1020,1,0,0,0,1019,1021,5,63,0,0,1020, - 1019,1,0,0,0,1020,1021,1,0,0,0,1021,1023,1,0,0,0,1022,1024,5,63,0,0,1023, - 1022,1,0,0,0,1023,1024,1,0,0,0,1024,1026,1,0,0,0,1025,1027,5,63,0,0,1026, - 1025,1,0,0,0,1026,1027,1,0,0,0,1027,1081,1,0,0,0,1028,1029,7,33,0,0,1029, - 1030,5,43,0,0,1030,1031,3,31,15,0,1031,1033,3,31,15,0,1032,1034,5,63, - 0,0,1033,1032,1,0,0,0,1033,1034,1,0,0,0,1034,1036,1,0,0,0,1035,1037,5, - 63,0,0,1036,1035,1,0,0,0,1036,1037,1,0,0,0,1037,1039,1,0,0,0,1038,1040, - 5,63,0,0,1039,1038,1,0,0,0,1039,1040,1,0,0,0,1040,1042,1,0,0,0,1041,1043, - 5,63,0,0,1042,1041,1,0,0,0,1042,1043,1,0,0,0,1043,1081,1,0,0,0,1044,1045, - 7,33,0,0,1045,1046,5,43,0,0,1046,1047,3,31,15,0,1047,1048,3,31,15,0,1048, - 1050,3,31,15,0,1049,1051,5,63,0,0,1050,1049,1,0,0,0,1050,1051,1,0,0,0, - 1051,1053,1,0,0,0,1052,1054,5,63,0,0,1053,1052,1,0,0,0,1053,1054,1,0, - 0,0,1054,1056,1,0,0,0,1055,1057,5,63,0,0,1056,1055,1,0,0,0,1056,1057, - 1,0,0,0,1057,1081,1,0,0,0,1058,1059,7,33,0,0,1059,1060,5,43,0,0,1060, - 1061,3,31,15,0,1061,1062,3,31,15,0,1062,1063,3,31,15,0,1063,1065,3,31, - 15,0,1064,1066,5,63,0,0,1065,1064,1,0,0,0,1065,1066,1,0,0,0,1066,1068, - 1,0,0,0,1067,1069,5,63,0,0,1068,1067,1,0,0,0,1068,1069,1,0,0,0,1069,1081, - 1,0,0,0,1070,1071,7,33,0,0,1071,1072,5,43,0,0,1072,1073,3,31,15,0,1073, - 1074,3,31,15,0,1074,1075,3,31,15,0,1075,1076,3,31,15,0,1076,1078,3,31, - 15,0,1077,1079,5,63,0,0,1078,1077,1,0,0,0,1078,1079,1,0,0,0,1079,1081, - 1,0,0,0,1080,991,1,0,0,0,1080,1010,1,0,0,0,1080,1028,1,0,0,0,1080,1044, - 1,0,0,0,1080,1058,1,0,0,0,1080,1070,1,0,0,0,1081,148,1,0,0,0,1082,1083, - 3,83,41,0,1083,1084,3,81,40,0,1084,1085,3,77,38,0,1085,1086,3,103,51, - 0,1086,150,1,0,0,0,1087,1088,3,81,40,0,1088,1089,3,83,41,0,1089,1090, - 3,93,46,0,1090,152,1,0,0,0,1091,1092,3,57,28,0,1092,1093,3,81,40,0,1093, - 1094,3,63,31,0,1094,154,1,0,0,0,1095,1096,3,177,88,0,1096,1097,3,63,31, - 0,1097,1098,3,85,42,0,1098,1099,3,73,36,0,1099,1113,1,0,0,0,1100,1101, - 3,177,88,0,1101,1102,3,63,31,0,1102,1103,3,85,42,0,1103,1104,3,61,30, - 0,1104,1105,3,79,39,0,1105,1113,1,0,0,0,1106,1107,3,177,88,0,1107,1108, - 3,63,31,0,1108,1109,3,85,42,0,1109,1110,3,85,42,0,1110,1111,3,101,50, - 0,1111,1113,1,0,0,0,1112,1095,1,0,0,0,1112,1100,1,0,0,0,1112,1106,1,0, - 0,0,1113,156,1,0,0,0,1114,1118,3,135,67,0,1115,1118,3,131,65,0,1116,1118, - 3,133,66,0,1117,1114,1,0,0,0,1117,1115,1,0,0,0,1117,1116,1,0,0,0,1118, - 158,1,0,0,0,1119,1125,3,157,78,0,1120,1125,3,139,69,0,1121,1125,3,141, - 70,0,1122,1125,3,155,77,0,1123,1125,3,137,68,0,1124,1119,1,0,0,0,1124, - 1120,1,0,0,0,1124,1121,1,0,0,0,1124,1122,1,0,0,0,1124,1123,1,0,0,0,1125, - 160,1,0,0,0,1126,1127,3,177,88,0,1127,1128,3,221,110,0,1128,162,1,0,0, - 0,1129,1130,8,34,0,0,1130,164,1,0,0,0,1131,1132,5,43,0,0,1132,166,1,0, - 0,0,1133,1134,5,45,0,0,1134,168,1,0,0,0,1135,1136,5,62,0,0,1136,170,1, - 0,0,0,1137,1138,5,44,0,0,1138,172,1,0,0,0,1139,1140,5,126,0,0,1140,174, - 1,0,0,0,1141,1142,5,58,0,0,1142,1143,3,81,40,0,1143,1144,3,83,41,0,1144, - 1145,3,93,46,0,1145,1146,5,40,0,0,1146,176,1,0,0,0,1147,1149,7,35,0,0, - 1148,1147,1,0,0,0,1149,1150,1,0,0,0,1150,1148,1,0,0,0,1150,1151,1,0,0, - 0,1151,1165,1,0,0,0,1152,1154,7,35,0,0,1153,1152,1,0,0,0,1154,1157,1, - 0,0,0,1155,1153,1,0,0,0,1155,1156,1,0,0,0,1156,1158,1,0,0,0,1157,1155, - 1,0,0,0,1158,1160,5,46,0,0,1159,1161,7,35,0,0,1160,1159,1,0,0,0,1161, - 1162,1,0,0,0,1162,1160,1,0,0,0,1162,1163,1,0,0,0,1163,1165,1,0,0,0,1164, - 1148,1,0,0,0,1164,1155,1,0,0,0,1165,178,1,0,0,0,1166,1174,5,34,0,0,1167, - 1173,8,36,0,0,1168,1169,5,92,0,0,1169,1173,3,53,26,0,1170,1173,3,163, - 81,0,1171,1173,3,37,18,0,1172,1167,1,0,0,0,1172,1168,1,0,0,0,1172,1170, - 1,0,0,0,1172,1171,1,0,0,0,1173,1176,1,0,0,0,1174,1172,1,0,0,0,1174,1175, - 1,0,0,0,1175,1177,1,0,0,0,1176,1174,1,0,0,0,1177,1191,5,34,0,0,1178,1186, - 5,39,0,0,1179,1185,8,37,0,0,1180,1181,5,92,0,0,1181,1185,3,53,26,0,1182, - 1185,3,163,81,0,1183,1185,3,37,18,0,1184,1179,1,0,0,0,1184,1180,1,0,0, - 0,1184,1182,1,0,0,0,1184,1183,1,0,0,0,1185,1188,1,0,0,0,1186,1184,1,0, - 0,0,1186,1187,1,0,0,0,1187,1189,1,0,0,0,1188,1186,1,0,0,0,1189,1191,5, - 39,0,0,1190,1166,1,0,0,0,1190,1178,1,0,0,0,1191,180,1,0,0,0,1192,1193, - 5,94,0,0,1193,1194,5,61,0,0,1194,182,1,0,0,0,1195,1196,5,36,0,0,1196, - 1197,5,61,0,0,1197,184,1,0,0,0,1198,1199,5,42,0,0,1199,1200,5,61,0,0, - 1200,186,1,0,0,0,1201,1202,3,29,14,0,1202,1203,3,67,33,0,1203,1204,3, - 83,41,0,1204,1205,3,81,40,0,1205,1206,3,93,46,0,1206,1207,3,107,53,0, - 1207,1208,3,67,33,0,1208,1209,3,57,28,0,1209,1210,3,61,30,0,1210,1211, - 3,65,32,0,1211,188,1,0,0,0,1212,1213,3,29,14,0,1213,1214,3,91,45,0,1214, - 1215,3,95,47,0,1215,1216,3,85,42,0,1216,1217,3,85,42,0,1217,1218,3,83, - 41,0,1218,1219,3,89,44,0,1219,1220,3,93,46,0,1220,1221,3,91,45,0,1221, - 190,1,0,0,0,1222,1223,3,83,41,0,1223,1224,3,89,44,0,1224,192,1,0,0,0, - 1225,1226,5,45,0,0,1226,1227,3,79,39,0,1227,1228,3,83,41,0,1228,1229, - 3,105,52,0,1229,1230,5,45,0,0,1230,1245,1,0,0,0,1231,1232,5,45,0,0,1232, - 1233,3,99,49,0,1233,1234,3,65,32,0,1234,1235,3,59,29,0,1235,1236,3,75, - 37,0,1236,1237,3,73,36,0,1237,1238,3,93,46,0,1238,1239,5,45,0,0,1239, - 1245,1,0,0,0,1240,1241,5,45,0,0,1241,1242,3,83,41,0,1242,1243,5,45,0, - 0,1243,1245,1,0,0,0,1244,1225,1,0,0,0,1244,1231,1,0,0,0,1244,1240,1,0, - 0,0,1245,194,1,0,0,0,1246,1248,3,29,14,0,1247,1249,3,193,96,0,1248,1247, - 1,0,0,0,1248,1249,1,0,0,0,1249,1250,1,0,0,0,1250,1251,3,75,37,0,1251, - 1252,3,65,32,0,1252,1253,3,103,51,0,1253,1254,3,67,33,0,1254,1255,3,89, - 44,0,1255,1256,3,57,28,0,1256,1257,3,79,39,0,1257,1258,3,65,32,0,1258, - 1259,3,91,45,0,1259,196,1,0,0,0,1260,1261,3,67,33,0,1261,1262,3,89,44, - 0,1262,1263,3,83,41,0,1263,1264,3,79,39,0,1264,198,1,0,0,0,1265,1266, - 3,93,46,0,1266,1267,3,83,41,0,1267,200,1,0,0,0,1268,1269,5,99,0,0,1269, - 1270,5,97,0,0,1270,1271,5,108,0,0,1271,1272,5,99,0,0,1272,1273,5,40,0, - 0,1273,202,1,0,0,0,1274,1275,5,114,0,0,1275,1276,5,103,0,0,1276,1277, - 5,98,0,0,1277,1278,5,40,0,0,1278,204,1,0,0,0,1279,1280,5,114,0,0,1280, - 1281,5,103,0,0,1281,1282,5,98,0,0,1282,1283,5,97,0,0,1283,1284,5,40,0, - 0,1284,206,1,0,0,0,1285,1286,3,29,14,0,1286,1287,3,97,48,0,1287,1288, - 3,73,36,0,1288,1289,3,65,32,0,1289,1290,3,99,49,0,1290,1291,3,85,42,0, - 1291,1292,3,83,41,0,1292,1293,3,89,44,0,1293,1294,3,93,46,0,1294,208, - 1,0,0,0,1295,1296,3,29,14,0,1296,1297,3,61,30,0,1297,1298,3,83,41,0,1298, - 1299,3,95,47,0,1299,1300,3,81,40,0,1300,1301,3,93,46,0,1301,1302,3,65, - 32,0,1302,1303,3,89,44,0,1303,1304,3,107,53,0,1304,1305,3,91,45,0,1305, - 1306,3,93,46,0,1306,1307,3,103,51,0,1307,1308,3,77,38,0,1308,1309,3,65, - 32,0,1309,210,1,0,0,0,1310,1311,3,29,14,0,1311,1312,3,67,33,0,1312,1313, - 3,83,41,0,1313,1314,3,81,40,0,1314,1315,3,93,46,0,1315,1316,3,107,53, - 0,1316,1317,3,67,33,0,1317,1318,3,65,32,0,1318,1319,3,57,28,0,1319,1320, - 3,93,46,0,1320,1321,3,95,47,0,1321,1322,3,89,44,0,1322,1323,3,65,32,0, - 1323,1324,3,107,53,0,1324,1325,3,97,48,0,1325,1326,3,57,28,0,1326,1327, - 3,77,38,0,1327,1328,3,95,47,0,1328,1329,3,65,32,0,1329,1330,3,91,45,0, - 1330,212,1,0,0,0,1331,1332,5,112,0,0,1332,1333,5,114,0,0,1333,1334,5, - 111,0,0,1334,1335,5,103,0,0,1335,1336,5,105,0,0,1336,1337,5,100,0,0,1337, - 1338,5,58,0,0,1338,1339,5,68,0,0,1339,1340,5,88,0,0,1340,1341,5,73,0, - 0,1341,1342,5,109,0,0,1342,1343,5,97,0,0,1343,1344,5,103,0,0,1344,1345, - 5,101,0,0,1345,1346,5,84,0,0,1346,1347,5,114,0,0,1347,1348,5,97,0,0,1348, - 1349,5,110,0,0,1349,1350,5,115,0,0,1350,1351,5,102,0,0,1351,1352,5,111, - 0,0,1352,1353,5,114,0,0,1353,1354,5,109,0,0,1354,1355,5,46,0,0,1355,1356, - 5,77,0,0,1356,1357,5,105,0,0,1357,1358,5,99,0,0,1358,1359,5,114,0,0,1359, - 1360,5,111,0,0,1360,1361,5,115,0,0,1361,1362,5,111,0,0,1362,1363,5,102, - 0,0,1363,1364,5,116,0,0,1364,1365,5,46,0,0,1365,1366,1,0,0,0,1366,1367, - 3,223,111,0,1367,214,1,0,0,0,1368,1369,3,29,14,0,1369,1370,3,221,110, - 0,1370,216,1,0,0,0,1371,1372,5,45,0,0,1372,1373,5,45,0,0,1373,1374,1, - 0,0,0,1374,1378,3,39,19,0,1375,1377,3,41,20,0,1376,1375,1,0,0,0,1377, - 1380,1,0,0,0,1378,1376,1,0,0,0,1378,1379,1,0,0,0,1379,218,1,0,0,0,1380, - 1378,1,0,0,0,1381,1382,5,118,0,0,1382,1383,5,97,0,0,1383,1384,5,114,0, - 0,1384,1385,5,40,0,0,1385,220,1,0,0,0,1386,1388,5,45,0,0,1387,1386,1, - 0,0,0,1387,1388,1,0,0,0,1388,1389,1,0,0,0,1389,1393,3,39,19,0,1390,1392, - 3,41,20,0,1391,1390,1,0,0,0,1392,1395,1,0,0,0,1393,1391,1,0,0,0,1393, - 1394,1,0,0,0,1394,222,1,0,0,0,1395,1393,1,0,0,0,1396,1397,3,221,110,0, - 1397,1398,5,40,0,0,1398,224,1,0,0,0,1399,1400,9,0,0,0,1400,1401,1,0,0, - 0,1401,1402,6,112,0,0,1402,226,1,0,0,0,122,0,263,268,271,274,277,280, - 287,292,297,305,311,317,323,327,335,345,347,356,360,366,369,372,375,378, - 387,391,400,404,413,417,426,430,439,443,452,456,465,473,482,490,499,507, - 516,524,533,541,550,558,567,575,584,592,601,609,618,626,635,643,652,660, - 669,677,686,694,703,711,720,728,737,745,754,762,771,779,789,854,856,886, - 908,937,961,970,981,996,999,1002,1005,1008,1014,1017,1020,1023,1026,1033, - 1036,1039,1042,1050,1053,1056,1065,1068,1078,1080,1112,1117,1124,1150, - 1155,1162,1164,1172,1174,1184,1186,1190,1244,1248,1378,1387,1393,1,0, - 2,0 - }; - staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); - - antlr4::atn::ATNDeserializer deserializer; - staticData->atn = deserializer.deserialize(staticData->serializedATN); - - const size_t count = staticData->atn->getNumberOfDecisions(); - staticData->decisionToDFA.reserve(count); - for (size_t i = 0; i < count; i++) { - staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); - } - css3lexerLexerStaticData = staticData.release(); -} - -} - -css3Lexer::css3Lexer(CharStream *input) : Lexer(input) { - css3Lexer::initialize(); - _interpreter = new atn::LexerATNSimulator(this, *css3lexerLexerStaticData->atn, css3lexerLexerStaticData->decisionToDFA, css3lexerLexerStaticData->sharedContextCache); -} - -css3Lexer::~css3Lexer() { - delete _interpreter; -} - -std::string css3Lexer::getGrammarFileName() const { - return "css3Lexer.g4"; -} - -const std::vector& css3Lexer::getRuleNames() const { - return css3lexerLexerStaticData->ruleNames; -} - -const std::vector& css3Lexer::getChannelNames() const { - return css3lexerLexerStaticData->channelNames; -} - -const std::vector& css3Lexer::getModeNames() const { - return css3lexerLexerStaticData->modeNames; -} - -const dfa::Vocabulary& css3Lexer::getVocabulary() const { - return css3lexerLexerStaticData->vocabulary; -} - -antlr4::atn::SerializedATNView css3Lexer::getSerializedATN() const { - return css3lexerLexerStaticData->serializedATN; -} - -const atn::ATN& css3Lexer::getATN() const { - return *css3lexerLexerStaticData->atn; -} - - - - -void css3Lexer::initialize() { -#if ANTLR4_USE_THREAD_LOCAL_CACHE - css3lexerLexerInitialize(); -#else - ::antlr4::internal::call_once(css3lexerLexerOnceFlag, css3lexerLexerInitialize); -#endif -} diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.h b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.h deleted file mode 100644 index 77cd7f2ee..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.h +++ /dev/null @@ -1,65 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Lexer.g4 by ANTLR 4.13.1 - -#pragma once - - -#include "antlr4-runtime.h" - - - - -class css3Lexer : public antlr4::Lexer { -public: - enum { - OpenBracket = 1, CloseBracket = 2, OpenParen = 3, CloseParen = 4, OpenBrace = 5, - CloseBrace = 6, SemiColon = 7, Equal = 8, Colon = 9, Dot = 10, Multiply = 11, - Divide = 12, Pipe = 13, Underscore = 14, Comment = 15, Url = 16, Space = 17, - Cdo = 18, Cdc = 19, Includes = 20, DashMatch = 21, Hash = 22, Import = 23, - Page = 24, Media = 25, Namespace = 26, Charset = 27, Important = 28, - Percentage = 29, Url_ = 30, UnicodeRange = 31, MediaOnly = 32, Not = 33, - And = 34, Dimension = 35, UnknownDimension = 36, Plus = 37, Minus = 38, - Greater = 39, Comma = 40, Tilde = 41, PseudoNot = 42, Number = 43, String_ = 44, - PrefixMatch = 45, SuffixMatch = 46, SubstringMatch = 47, FontFace = 48, - Supports = 49, Or = 50, Keyframes = 51, From = 52, To = 53, Calc = 54, - Rgb = 55, Rgba = 56, Viewport = 57, CounterStyle = 58, FontFeatureValues = 59, - DxImageTransform = 60, AtKeyword = 61, Variable = 62, Var = 63, Ident = 64, - Function_ = 65, UnexpectedCharacter = 66 - }; - - enum { - ERROR = 2 - }; - - explicit css3Lexer(antlr4::CharStream *input); - - ~css3Lexer() override; - - - std::string getGrammarFileName() const override; - - const std::vector& getRuleNames() const override; - - const std::vector& getChannelNames() const override; - - const std::vector& getModeNames() const override; - - const antlr4::dfa::Vocabulary& getVocabulary() const override; - - antlr4::atn::SerializedATNView getSerializedATN() const override; - - const antlr4::atn::ATN& getATN() const override; - - // By default the static state used to implement the lexer is lazily initialized during the first - // call to the constructor. You can call this function if you wish to initialize the static state - // ahead of time. - static void initialize(); - -private: - - // Individual action functions triggered by action() above. - - // Individual semantic predicate functions triggered by sempred() above. - -}; - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.interp b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.interp deleted file mode 100644 index ae7812a7b..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.interp +++ /dev/null @@ -1,265 +0,0 @@ -token literal names: -null -'[' -']' -'(' -')' -'{' -'}' -';' -'=' -':' -'.' -'*' -'/' -'|' -'_' -null -null -null -'' -'~=' -'|=' -null -null -null -null -null -'@charset ' -null -null -'url(' -null -null -null -null -null -null -'+' -'-' -'>' -',' -'~' -null -null -null -'^=' -'$=' -'*=' -null -null -null -null -null -null -'calc(' -'rgb(' -'rgba(' -null -null -null -null -null -null -'var(' -null -null -null - -token symbolic names: -null -OpenBracket -CloseBracket -OpenParen -CloseParen -OpenBrace -CloseBrace -SemiColon -Equal -Colon -Dot -Multiply -Divide -Pipe -Underscore -Comment -Url -Space -Cdo -Cdc -Includes -DashMatch -Hash -Import -Page -Media -Namespace -Charset -Important -Percentage -Url_ -UnicodeRange -MediaOnly -Not -And -Dimension -UnknownDimension -Plus -Minus -Greater -Comma -Tilde -PseudoNot -Number -String_ -PrefixMatch -SuffixMatch -SubstringMatch -FontFace -Supports -Or -Keyframes -From -To -Calc -Rgb -Rgba -Viewport -CounterStyle -FontFeatureValues -DxImageTransform -AtKeyword -Variable -Var -Ident -Function_ -UnexpectedCharacter - -rule names: -OpenBracket -CloseBracket -OpenParen -CloseParen -OpenBrace -CloseBrace -SemiColon -Equal -Colon -Dot -Multiply -Divide -Pipe -Underscore -At -Hex -NewlineOrSpace -Unicode -Escape -Nmstart -Nmchar -Comment -Name -Url -Space -Whitespace -Newline -ZeroToFourZeros -A -B -C -D -E -F -G -H -I -K -L -M -N -O -P -Q -R -S -T -U -V -W -X -Y -Z -DashChar -Cdo -Cdc -Includes -DashMatch -Hash -Import -Page -Media -Namespace -Charset -Important -FontRelative -ViewportRelative -AbsLength -Angle -Time -Freq -Percentage -Url_ -UnicodeRange -MediaOnly -Not -And -Resolution -Length -Dimension -UnknownDimension -Nonascii -Plus -Minus -Greater -Comma -Tilde -PseudoNot -Number -String_ -PrefixMatch -SuffixMatch -SubstringMatch -FontFace -Supports -Or -VendorPrefix -Keyframes -From -To -Calc -Rgb -Rgba -Viewport -CounterStyle -FontFeatureValues -DxImageTransform -AtKeyword -Variable -Var -Ident -Function_ -UnexpectedCharacter - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN -null -null -ERROR - -mode names: -DEFAULT_MODE - -atn: -[4, 0, 66, 1403, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 264, 8, 16, 1, 17, 1, 17, 1, 17, 3, 17, 269, 8, 17, 1, 17, 3, 17, 272, 8, 17, 1, 17, 3, 17, 275, 8, 17, 1, 17, 3, 17, 278, 8, 17, 1, 17, 3, 17, 281, 8, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 3, 18, 288, 8, 18, 1, 19, 1, 19, 1, 19, 3, 19, 293, 8, 19, 1, 20, 1, 20, 1, 20, 3, 20, 298, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 304, 8, 21, 10, 21, 12, 21, 307, 9, 21, 1, 21, 4, 21, 310, 8, 21, 11, 21, 12, 21, 311, 1, 21, 1, 21, 5, 21, 316, 8, 21, 10, 21, 12, 21, 319, 9, 21, 1, 21, 4, 21, 322, 8, 21, 11, 21, 12, 21, 323, 5, 21, 326, 8, 21, 10, 21, 12, 21, 329, 9, 21, 1, 21, 1, 21, 1, 22, 4, 22, 334, 8, 22, 11, 22, 12, 22, 335, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 346, 8, 23, 10, 23, 12, 23, 349, 9, 23, 1, 23, 1, 23, 1, 23, 1, 24, 4, 24, 355, 8, 24, 11, 24, 12, 24, 356, 1, 25, 1, 25, 3, 25, 361, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 367, 8, 26, 1, 27, 3, 27, 370, 8, 27, 1, 27, 3, 27, 373, 8, 27, 1, 27, 3, 27, 376, 8, 27, 1, 27, 3, 27, 379, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 388, 8, 28, 1, 28, 1, 28, 3, 28, 392, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 401, 8, 29, 1, 29, 1, 29, 3, 29, 405, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 414, 8, 30, 1, 30, 1, 30, 3, 30, 418, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 427, 8, 31, 1, 31, 1, 31, 3, 31, 431, 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 440, 8, 32, 1, 32, 1, 32, 3, 32, 444, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 453, 8, 33, 1, 33, 1, 33, 3, 33, 457, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 466, 8, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 474, 8, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 483, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 491, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 500, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 508, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 517, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 525, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 534, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 542, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 551, 8, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 559, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 568, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 576, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 585, 8, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 593, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 602, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 610, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 619, 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 627, 8, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 636, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 644, 8, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 653, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 661, 8, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 670, 8, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 678, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 687, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 695, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 704, 8, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 712, 8, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 721, 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 729, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 738, 8, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 746, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 755, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 763, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 772, 8, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 780, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 790, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 5, 64, 855, 8, 64, 10, 64, 12, 64, 858, 9, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 887, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 909, 8, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 938, 8, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 962, 8, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 971, 8, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 982, 8, 70, 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, 3, 73, 997, 8, 73, 1, 73, 3, 73, 1000, 8, 73, 1, 73, 3, 73, 1003, 8, 73, 1, 73, 3, 73, 1006, 8, 73, 1, 73, 3, 73, 1009, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 1015, 8, 73, 1, 73, 3, 73, 1018, 8, 73, 1, 73, 3, 73, 1021, 8, 73, 1, 73, 3, 73, 1024, 8, 73, 1, 73, 3, 73, 1027, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 1034, 8, 73, 1, 73, 3, 73, 1037, 8, 73, 1, 73, 3, 73, 1040, 8, 73, 1, 73, 3, 73, 1043, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 1051, 8, 73, 1, 73, 3, 73, 1054, 8, 73, 1, 73, 3, 73, 1057, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 1066, 8, 73, 1, 73, 3, 73, 1069, 8, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 1079, 8, 73, 3, 73, 1081, 8, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 3, 77, 1113, 8, 77, 1, 78, 1, 78, 1, 78, 3, 78, 1118, 8, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 3, 79, 1125, 8, 79, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 82, 1, 82, 1, 83, 1, 83, 1, 84, 1, 84, 1, 85, 1, 85, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 4, 88, 1149, 8, 88, 11, 88, 12, 88, 1150, 1, 88, 5, 88, 1154, 8, 88, 10, 88, 12, 88, 1157, 9, 88, 1, 88, 1, 88, 4, 88, 1161, 8, 88, 11, 88, 12, 88, 1162, 3, 88, 1165, 8, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 5, 89, 1173, 8, 89, 10, 89, 12, 89, 1176, 9, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 5, 89, 1185, 8, 89, 10, 89, 12, 89, 1188, 9, 89, 1, 89, 3, 89, 1191, 8, 89, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 1245, 8, 96, 1, 97, 1, 97, 3, 97, 1249, 8, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 5, 108, 1377, 8, 108, 10, 108, 12, 108, 1380, 9, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 3, 110, 1388, 8, 110, 1, 110, 1, 110, 5, 110, 1392, 8, 110, 10, 110, 12, 110, 1395, 9, 110, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 0, 0, 113, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 15, 45, 0, 47, 16, 49, 17, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 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, 18, 111, 19, 113, 20, 115, 21, 117, 22, 119, 23, 121, 24, 123, 25, 125, 26, 127, 27, 129, 28, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 29, 145, 30, 147, 31, 149, 32, 151, 33, 153, 34, 155, 0, 157, 0, 159, 35, 161, 36, 163, 0, 165, 37, 167, 38, 169, 39, 171, 40, 173, 41, 175, 42, 177, 43, 179, 44, 181, 45, 183, 46, 185, 47, 187, 48, 189, 49, 191, 50, 193, 0, 195, 51, 197, 52, 199, 53, 201, 54, 203, 55, 205, 56, 207, 57, 209, 58, 211, 59, 213, 60, 215, 61, 217, 62, 219, 63, 221, 64, 223, 65, 225, 66, 1, 0, 38, 3, 0, 48, 57, 65, 70, 97, 102, 3, 0, 9, 10, 12, 13, 32, 32, 5, 0, 10, 10, 12, 13, 48, 57, 65, 70, 97, 102, 3, 0, 65, 90, 95, 95, 97, 122, 5, 0, 45, 45, 48, 57, 65, 90, 95, 95, 97, 122, 1, 0, 42, 42, 2, 0, 42, 42, 47, 47, 3, 0, 33, 33, 35, 38, 42, 126, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 69, 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 3, 0, 85, 85, 117, 117, 124, 124, 1, 0, 0, 127, 1, 0, 48, 57, 4, 0, 10, 10, 12, 13, 34, 34, 92, 92, 4, 0, 10, 10, 12, 13, 39, 39, 92, 92, 1544, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 1, 227, 1, 0, 0, 0, 3, 229, 1, 0, 0, 0, 5, 231, 1, 0, 0, 0, 7, 233, 1, 0, 0, 0, 9, 235, 1, 0, 0, 0, 11, 237, 1, 0, 0, 0, 13, 239, 1, 0, 0, 0, 15, 241, 1, 0, 0, 0, 17, 243, 1, 0, 0, 0, 19, 245, 1, 0, 0, 0, 21, 247, 1, 0, 0, 0, 23, 249, 1, 0, 0, 0, 25, 251, 1, 0, 0, 0, 27, 253, 1, 0, 0, 0, 29, 255, 1, 0, 0, 0, 31, 257, 1, 0, 0, 0, 33, 263, 1, 0, 0, 0, 35, 265, 1, 0, 0, 0, 37, 287, 1, 0, 0, 0, 39, 292, 1, 0, 0, 0, 41, 297, 1, 0, 0, 0, 43, 299, 1, 0, 0, 0, 45, 333, 1, 0, 0, 0, 47, 337, 1, 0, 0, 0, 49, 354, 1, 0, 0, 0, 51, 360, 1, 0, 0, 0, 53, 366, 1, 0, 0, 0, 55, 369, 1, 0, 0, 0, 57, 391, 1, 0, 0, 0, 59, 404, 1, 0, 0, 0, 61, 417, 1, 0, 0, 0, 63, 430, 1, 0, 0, 0, 65, 443, 1, 0, 0, 0, 67, 456, 1, 0, 0, 0, 69, 473, 1, 0, 0, 0, 71, 490, 1, 0, 0, 0, 73, 507, 1, 0, 0, 0, 75, 524, 1, 0, 0, 0, 77, 541, 1, 0, 0, 0, 79, 558, 1, 0, 0, 0, 81, 575, 1, 0, 0, 0, 83, 592, 1, 0, 0, 0, 85, 609, 1, 0, 0, 0, 87, 626, 1, 0, 0, 0, 89, 643, 1, 0, 0, 0, 91, 660, 1, 0, 0, 0, 93, 677, 1, 0, 0, 0, 95, 694, 1, 0, 0, 0, 97, 711, 1, 0, 0, 0, 99, 728, 1, 0, 0, 0, 101, 745, 1, 0, 0, 0, 103, 762, 1, 0, 0, 0, 105, 779, 1, 0, 0, 0, 107, 789, 1, 0, 0, 0, 109, 791, 1, 0, 0, 0, 111, 796, 1, 0, 0, 0, 113, 800, 1, 0, 0, 0, 115, 803, 1, 0, 0, 0, 117, 806, 1, 0, 0, 0, 119, 809, 1, 0, 0, 0, 121, 817, 1, 0, 0, 0, 123, 823, 1, 0, 0, 0, 125, 830, 1, 0, 0, 0, 127, 841, 1, 0, 0, 0, 129, 851, 1, 0, 0, 0, 131, 886, 1, 0, 0, 0, 133, 908, 1, 0, 0, 0, 135, 937, 1, 0, 0, 0, 137, 961, 1, 0, 0, 0, 139, 970, 1, 0, 0, 0, 141, 981, 1, 0, 0, 0, 143, 983, 1, 0, 0, 0, 145, 986, 1, 0, 0, 0, 147, 1080, 1, 0, 0, 0, 149, 1082, 1, 0, 0, 0, 151, 1087, 1, 0, 0, 0, 153, 1091, 1, 0, 0, 0, 155, 1112, 1, 0, 0, 0, 157, 1117, 1, 0, 0, 0, 159, 1124, 1, 0, 0, 0, 161, 1126, 1, 0, 0, 0, 163, 1129, 1, 0, 0, 0, 165, 1131, 1, 0, 0, 0, 167, 1133, 1, 0, 0, 0, 169, 1135, 1, 0, 0, 0, 171, 1137, 1, 0, 0, 0, 173, 1139, 1, 0, 0, 0, 175, 1141, 1, 0, 0, 0, 177, 1164, 1, 0, 0, 0, 179, 1190, 1, 0, 0, 0, 181, 1192, 1, 0, 0, 0, 183, 1195, 1, 0, 0, 0, 185, 1198, 1, 0, 0, 0, 187, 1201, 1, 0, 0, 0, 189, 1212, 1, 0, 0, 0, 191, 1222, 1, 0, 0, 0, 193, 1244, 1, 0, 0, 0, 195, 1246, 1, 0, 0, 0, 197, 1260, 1, 0, 0, 0, 199, 1265, 1, 0, 0, 0, 201, 1268, 1, 0, 0, 0, 203, 1274, 1, 0, 0, 0, 205, 1279, 1, 0, 0, 0, 207, 1285, 1, 0, 0, 0, 209, 1295, 1, 0, 0, 0, 211, 1310, 1, 0, 0, 0, 213, 1331, 1, 0, 0, 0, 215, 1368, 1, 0, 0, 0, 217, 1371, 1, 0, 0, 0, 219, 1381, 1, 0, 0, 0, 221, 1387, 1, 0, 0, 0, 223, 1396, 1, 0, 0, 0, 225, 1399, 1, 0, 0, 0, 227, 228, 5, 91, 0, 0, 228, 2, 1, 0, 0, 0, 229, 230, 5, 93, 0, 0, 230, 4, 1, 0, 0, 0, 231, 232, 5, 40, 0, 0, 232, 6, 1, 0, 0, 0, 233, 234, 5, 41, 0, 0, 234, 8, 1, 0, 0, 0, 235, 236, 5, 123, 0, 0, 236, 10, 1, 0, 0, 0, 237, 238, 5, 125, 0, 0, 238, 12, 1, 0, 0, 0, 239, 240, 5, 59, 0, 0, 240, 14, 1, 0, 0, 0, 241, 242, 5, 61, 0, 0, 242, 16, 1, 0, 0, 0, 243, 244, 5, 58, 0, 0, 244, 18, 1, 0, 0, 0, 245, 246, 5, 46, 0, 0, 246, 20, 1, 0, 0, 0, 247, 248, 5, 42, 0, 0, 248, 22, 1, 0, 0, 0, 249, 250, 5, 47, 0, 0, 250, 24, 1, 0, 0, 0, 251, 252, 5, 124, 0, 0, 252, 26, 1, 0, 0, 0, 253, 254, 5, 95, 0, 0, 254, 28, 1, 0, 0, 0, 255, 256, 5, 64, 0, 0, 256, 30, 1, 0, 0, 0, 257, 258, 7, 0, 0, 0, 258, 32, 1, 0, 0, 0, 259, 260, 5, 13, 0, 0, 260, 264, 5, 10, 0, 0, 261, 264, 7, 1, 0, 0, 262, 264, 1, 0, 0, 0, 263, 259, 1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 263, 262, 1, 0, 0, 0, 264, 34, 1, 0, 0, 0, 265, 266, 5, 92, 0, 0, 266, 268, 3, 31, 15, 0, 267, 269, 3, 31, 15, 0, 268, 267, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 271, 1, 0, 0, 0, 270, 272, 3, 31, 15, 0, 271, 270, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 274, 1, 0, 0, 0, 273, 275, 3, 31, 15, 0, 274, 273, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 277, 1, 0, 0, 0, 276, 278, 3, 31, 15, 0, 277, 276, 1, 0, 0, 0, 277, 278, 1, 0, 0, 0, 278, 280, 1, 0, 0, 0, 279, 281, 3, 31, 15, 0, 280, 279, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 283, 3, 33, 16, 0, 283, 36, 1, 0, 0, 0, 284, 288, 3, 35, 17, 0, 285, 286, 5, 92, 0, 0, 286, 288, 8, 2, 0, 0, 287, 284, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 288, 38, 1, 0, 0, 0, 289, 293, 7, 3, 0, 0, 290, 293, 3, 163, 81, 0, 291, 293, 3, 37, 18, 0, 292, 289, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 291, 1, 0, 0, 0, 293, 40, 1, 0, 0, 0, 294, 298, 7, 4, 0, 0, 295, 298, 3, 163, 81, 0, 296, 298, 3, 37, 18, 0, 297, 294, 1, 0, 0, 0, 297, 295, 1, 0, 0, 0, 297, 296, 1, 0, 0, 0, 298, 42, 1, 0, 0, 0, 299, 300, 5, 47, 0, 0, 300, 301, 5, 42, 0, 0, 301, 305, 1, 0, 0, 0, 302, 304, 8, 5, 0, 0, 303, 302, 1, 0, 0, 0, 304, 307, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 309, 1, 0, 0, 0, 307, 305, 1, 0, 0, 0, 308, 310, 5, 42, 0, 0, 309, 308, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 327, 1, 0, 0, 0, 313, 317, 8, 6, 0, 0, 314, 316, 8, 5, 0, 0, 315, 314, 1, 0, 0, 0, 316, 319, 1, 0, 0, 0, 317, 315, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 321, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 320, 322, 5, 42, 0, 0, 321, 320, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 324, 326, 1, 0, 0, 0, 325, 313, 1, 0, 0, 0, 326, 329, 1, 0, 0, 0, 327, 325, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 330, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 330, 331, 5, 47, 0, 0, 331, 44, 1, 0, 0, 0, 332, 334, 3, 41, 20, 0, 333, 332, 1, 0, 0, 0, 334, 335, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 335, 336, 1, 0, 0, 0, 336, 46, 1, 0, 0, 0, 337, 338, 3, 95, 47, 0, 338, 339, 3, 89, 44, 0, 339, 340, 3, 77, 38, 0, 340, 341, 5, 40, 0, 0, 341, 347, 3, 51, 25, 0, 342, 346, 7, 7, 0, 0, 343, 346, 3, 163, 81, 0, 344, 346, 3, 37, 18, 0, 345, 342, 1, 0, 0, 0, 345, 343, 1, 0, 0, 0, 345, 344, 1, 0, 0, 0, 346, 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 350, 1, 0, 0, 0, 349, 347, 1, 0, 0, 0, 350, 351, 3, 51, 25, 0, 351, 352, 5, 41, 0, 0, 352, 48, 1, 0, 0, 0, 353, 355, 7, 1, 0, 0, 354, 353, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0, 356, 354, 1, 0, 0, 0, 356, 357, 1, 0, 0, 0, 357, 50, 1, 0, 0, 0, 358, 361, 3, 49, 24, 0, 359, 361, 1, 0, 0, 0, 360, 358, 1, 0, 0, 0, 360, 359, 1, 0, 0, 0, 361, 52, 1, 0, 0, 0, 362, 367, 5, 10, 0, 0, 363, 364, 5, 13, 0, 0, 364, 367, 5, 10, 0, 0, 365, 367, 2, 12, 13, 0, 366, 362, 1, 0, 0, 0, 366, 363, 1, 0, 0, 0, 366, 365, 1, 0, 0, 0, 367, 54, 1, 0, 0, 0, 368, 370, 5, 48, 0, 0, 369, 368, 1, 0, 0, 0, 369, 370, 1, 0, 0, 0, 370, 372, 1, 0, 0, 0, 371, 373, 5, 48, 0, 0, 372, 371, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 375, 1, 0, 0, 0, 374, 376, 5, 48, 0, 0, 375, 374, 1, 0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 378, 1, 0, 0, 0, 377, 379, 5, 48, 0, 0, 378, 377, 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, 56, 1, 0, 0, 0, 380, 392, 7, 8, 0, 0, 381, 382, 5, 92, 0, 0, 382, 387, 3, 55, 27, 0, 383, 384, 5, 52, 0, 0, 384, 388, 5, 49, 0, 0, 385, 386, 5, 54, 0, 0, 386, 388, 5, 49, 0, 0, 387, 383, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 388, 389, 1, 0, 0, 0, 389, 390, 3, 33, 16, 0, 390, 392, 1, 0, 0, 0, 391, 380, 1, 0, 0, 0, 391, 381, 1, 0, 0, 0, 392, 58, 1, 0, 0, 0, 393, 405, 7, 9, 0, 0, 394, 395, 5, 92, 0, 0, 395, 400, 3, 55, 27, 0, 396, 397, 5, 52, 0, 0, 397, 401, 5, 50, 0, 0, 398, 399, 5, 54, 0, 0, 399, 401, 5, 50, 0, 0, 400, 396, 1, 0, 0, 0, 400, 398, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 403, 3, 33, 16, 0, 403, 405, 1, 0, 0, 0, 404, 393, 1, 0, 0, 0, 404, 394, 1, 0, 0, 0, 405, 60, 1, 0, 0, 0, 406, 418, 7, 10, 0, 0, 407, 408, 5, 92, 0, 0, 408, 413, 3, 55, 27, 0, 409, 410, 5, 52, 0, 0, 410, 414, 5, 51, 0, 0, 411, 412, 5, 54, 0, 0, 412, 414, 5, 51, 0, 0, 413, 409, 1, 0, 0, 0, 413, 411, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 416, 3, 33, 16, 0, 416, 418, 1, 0, 0, 0, 417, 406, 1, 0, 0, 0, 417, 407, 1, 0, 0, 0, 418, 62, 1, 0, 0, 0, 419, 431, 7, 11, 0, 0, 420, 421, 5, 92, 0, 0, 421, 426, 3, 55, 27, 0, 422, 423, 5, 52, 0, 0, 423, 427, 5, 52, 0, 0, 424, 425, 5, 54, 0, 0, 425, 427, 5, 52, 0, 0, 426, 422, 1, 0, 0, 0, 426, 424, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 429, 3, 33, 16, 0, 429, 431, 1, 0, 0, 0, 430, 419, 1, 0, 0, 0, 430, 420, 1, 0, 0, 0, 431, 64, 1, 0, 0, 0, 432, 444, 7, 12, 0, 0, 433, 434, 5, 92, 0, 0, 434, 439, 3, 55, 27, 0, 435, 436, 5, 52, 0, 0, 436, 440, 5, 53, 0, 0, 437, 438, 5, 54, 0, 0, 438, 440, 5, 53, 0, 0, 439, 435, 1, 0, 0, 0, 439, 437, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 442, 3, 33, 16, 0, 442, 444, 1, 0, 0, 0, 443, 432, 1, 0, 0, 0, 443, 433, 1, 0, 0, 0, 444, 66, 1, 0, 0, 0, 445, 457, 7, 13, 0, 0, 446, 447, 5, 92, 0, 0, 447, 452, 3, 55, 27, 0, 448, 449, 5, 52, 0, 0, 449, 453, 5, 54, 0, 0, 450, 451, 5, 54, 0, 0, 451, 453, 5, 54, 0, 0, 452, 448, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 455, 3, 33, 16, 0, 455, 457, 1, 0, 0, 0, 456, 445, 1, 0, 0, 0, 456, 446, 1, 0, 0, 0, 457, 68, 1, 0, 0, 0, 458, 474, 7, 14, 0, 0, 459, 460, 5, 92, 0, 0, 460, 465, 3, 55, 27, 0, 461, 462, 5, 52, 0, 0, 462, 466, 5, 55, 0, 0, 463, 464, 5, 54, 0, 0, 464, 466, 5, 55, 0, 0, 465, 461, 1, 0, 0, 0, 465, 463, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 468, 3, 33, 16, 0, 468, 474, 1, 0, 0, 0, 469, 470, 5, 92, 0, 0, 470, 474, 5, 103, 0, 0, 471, 472, 5, 92, 0, 0, 472, 474, 5, 71, 0, 0, 473, 458, 1, 0, 0, 0, 473, 459, 1, 0, 0, 0, 473, 469, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 474, 70, 1, 0, 0, 0, 475, 491, 7, 15, 0, 0, 476, 477, 5, 92, 0, 0, 477, 482, 3, 55, 27, 0, 478, 479, 5, 52, 0, 0, 479, 483, 5, 56, 0, 0, 480, 481, 5, 54, 0, 0, 481, 483, 5, 56, 0, 0, 482, 478, 1, 0, 0, 0, 482, 480, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 485, 3, 33, 16, 0, 485, 491, 1, 0, 0, 0, 486, 487, 5, 92, 0, 0, 487, 491, 5, 104, 0, 0, 488, 489, 5, 92, 0, 0, 489, 491, 5, 72, 0, 0, 490, 475, 1, 0, 0, 0, 490, 476, 1, 0, 0, 0, 490, 486, 1, 0, 0, 0, 490, 488, 1, 0, 0, 0, 491, 72, 1, 0, 0, 0, 492, 508, 7, 16, 0, 0, 493, 494, 5, 92, 0, 0, 494, 499, 3, 55, 27, 0, 495, 496, 5, 52, 0, 0, 496, 500, 5, 57, 0, 0, 497, 498, 5, 54, 0, 0, 498, 500, 5, 57, 0, 0, 499, 495, 1, 0, 0, 0, 499, 497, 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 502, 3, 33, 16, 0, 502, 508, 1, 0, 0, 0, 503, 504, 5, 92, 0, 0, 504, 508, 5, 105, 0, 0, 505, 506, 5, 92, 0, 0, 506, 508, 5, 73, 0, 0, 507, 492, 1, 0, 0, 0, 507, 493, 1, 0, 0, 0, 507, 503, 1, 0, 0, 0, 507, 505, 1, 0, 0, 0, 508, 74, 1, 0, 0, 0, 509, 525, 7, 17, 0, 0, 510, 511, 5, 92, 0, 0, 511, 516, 3, 55, 27, 0, 512, 513, 5, 52, 0, 0, 513, 517, 5, 98, 0, 0, 514, 515, 5, 54, 0, 0, 515, 517, 5, 98, 0, 0, 516, 512, 1, 0, 0, 0, 516, 514, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 3, 33, 16, 0, 519, 525, 1, 0, 0, 0, 520, 521, 5, 92, 0, 0, 521, 525, 5, 107, 0, 0, 522, 523, 5, 92, 0, 0, 523, 525, 5, 75, 0, 0, 524, 509, 1, 0, 0, 0, 524, 510, 1, 0, 0, 0, 524, 520, 1, 0, 0, 0, 524, 522, 1, 0, 0, 0, 525, 76, 1, 0, 0, 0, 526, 542, 7, 18, 0, 0, 527, 528, 5, 92, 0, 0, 528, 533, 3, 55, 27, 0, 529, 530, 5, 52, 0, 0, 530, 534, 5, 99, 0, 0, 531, 532, 5, 54, 0, 0, 532, 534, 5, 99, 0, 0, 533, 529, 1, 0, 0, 0, 533, 531, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 536, 3, 33, 16, 0, 536, 542, 1, 0, 0, 0, 537, 538, 5, 92, 0, 0, 538, 542, 5, 108, 0, 0, 539, 540, 5, 92, 0, 0, 540, 542, 5, 76, 0, 0, 541, 526, 1, 0, 0, 0, 541, 527, 1, 0, 0, 0, 541, 537, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 542, 78, 1, 0, 0, 0, 543, 559, 7, 19, 0, 0, 544, 545, 5, 92, 0, 0, 545, 550, 3, 55, 27, 0, 546, 547, 5, 52, 0, 0, 547, 551, 5, 100, 0, 0, 548, 549, 5, 54, 0, 0, 549, 551, 5, 100, 0, 0, 550, 546, 1, 0, 0, 0, 550, 548, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 3, 33, 16, 0, 553, 559, 1, 0, 0, 0, 554, 555, 5, 92, 0, 0, 555, 559, 5, 109, 0, 0, 556, 557, 5, 92, 0, 0, 557, 559, 5, 77, 0, 0, 558, 543, 1, 0, 0, 0, 558, 544, 1, 0, 0, 0, 558, 554, 1, 0, 0, 0, 558, 556, 1, 0, 0, 0, 559, 80, 1, 0, 0, 0, 560, 576, 7, 20, 0, 0, 561, 562, 5, 92, 0, 0, 562, 567, 3, 55, 27, 0, 563, 564, 5, 52, 0, 0, 564, 568, 5, 101, 0, 0, 565, 566, 5, 54, 0, 0, 566, 568, 5, 101, 0, 0, 567, 563, 1, 0, 0, 0, 567, 565, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 3, 33, 16, 0, 570, 576, 1, 0, 0, 0, 571, 572, 5, 92, 0, 0, 572, 576, 5, 110, 0, 0, 573, 574, 5, 92, 0, 0, 574, 576, 5, 78, 0, 0, 575, 560, 1, 0, 0, 0, 575, 561, 1, 0, 0, 0, 575, 571, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 576, 82, 1, 0, 0, 0, 577, 593, 7, 21, 0, 0, 578, 579, 5, 92, 0, 0, 579, 584, 3, 55, 27, 0, 580, 581, 5, 52, 0, 0, 581, 585, 5, 102, 0, 0, 582, 583, 5, 54, 0, 0, 583, 585, 5, 102, 0, 0, 584, 580, 1, 0, 0, 0, 584, 582, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 3, 33, 16, 0, 587, 593, 1, 0, 0, 0, 588, 589, 5, 92, 0, 0, 589, 593, 5, 111, 0, 0, 590, 591, 5, 92, 0, 0, 591, 593, 5, 79, 0, 0, 592, 577, 1, 0, 0, 0, 592, 578, 1, 0, 0, 0, 592, 588, 1, 0, 0, 0, 592, 590, 1, 0, 0, 0, 593, 84, 1, 0, 0, 0, 594, 610, 7, 22, 0, 0, 595, 596, 5, 92, 0, 0, 596, 601, 3, 55, 27, 0, 597, 598, 5, 53, 0, 0, 598, 602, 5, 48, 0, 0, 599, 600, 5, 55, 0, 0, 600, 602, 5, 48, 0, 0, 601, 597, 1, 0, 0, 0, 601, 599, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 604, 3, 33, 16, 0, 604, 610, 1, 0, 0, 0, 605, 606, 5, 92, 0, 0, 606, 610, 5, 112, 0, 0, 607, 608, 5, 92, 0, 0, 608, 610, 5, 80, 0, 0, 609, 594, 1, 0, 0, 0, 609, 595, 1, 0, 0, 0, 609, 605, 1, 0, 0, 0, 609, 607, 1, 0, 0, 0, 610, 86, 1, 0, 0, 0, 611, 627, 7, 23, 0, 0, 612, 613, 5, 92, 0, 0, 613, 618, 3, 55, 27, 0, 614, 615, 5, 53, 0, 0, 615, 619, 5, 49, 0, 0, 616, 617, 5, 55, 0, 0, 617, 619, 5, 49, 0, 0, 618, 614, 1, 0, 0, 0, 618, 616, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 621, 3, 33, 16, 0, 621, 627, 1, 0, 0, 0, 622, 623, 5, 92, 0, 0, 623, 627, 5, 113, 0, 0, 624, 625, 5, 92, 0, 0, 625, 627, 5, 81, 0, 0, 626, 611, 1, 0, 0, 0, 626, 612, 1, 0, 0, 0, 626, 622, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 627, 88, 1, 0, 0, 0, 628, 644, 7, 24, 0, 0, 629, 630, 5, 92, 0, 0, 630, 635, 3, 55, 27, 0, 631, 632, 5, 53, 0, 0, 632, 636, 5, 50, 0, 0, 633, 634, 5, 55, 0, 0, 634, 636, 5, 50, 0, 0, 635, 631, 1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 636, 637, 1, 0, 0, 0, 637, 638, 3, 33, 16, 0, 638, 644, 1, 0, 0, 0, 639, 640, 5, 92, 0, 0, 640, 644, 5, 114, 0, 0, 641, 642, 5, 92, 0, 0, 642, 644, 5, 82, 0, 0, 643, 628, 1, 0, 0, 0, 643, 629, 1, 0, 0, 0, 643, 639, 1, 0, 0, 0, 643, 641, 1, 0, 0, 0, 644, 90, 1, 0, 0, 0, 645, 661, 7, 25, 0, 0, 646, 647, 5, 92, 0, 0, 647, 652, 3, 55, 27, 0, 648, 649, 5, 53, 0, 0, 649, 653, 5, 51, 0, 0, 650, 651, 5, 55, 0, 0, 651, 653, 5, 51, 0, 0, 652, 648, 1, 0, 0, 0, 652, 650, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 655, 3, 33, 16, 0, 655, 661, 1, 0, 0, 0, 656, 657, 5, 92, 0, 0, 657, 661, 5, 115, 0, 0, 658, 659, 5, 92, 0, 0, 659, 661, 5, 83, 0, 0, 660, 645, 1, 0, 0, 0, 660, 646, 1, 0, 0, 0, 660, 656, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 661, 92, 1, 0, 0, 0, 662, 678, 7, 26, 0, 0, 663, 664, 5, 92, 0, 0, 664, 669, 3, 55, 27, 0, 665, 666, 5, 53, 0, 0, 666, 670, 5, 52, 0, 0, 667, 668, 5, 55, 0, 0, 668, 670, 5, 52, 0, 0, 669, 665, 1, 0, 0, 0, 669, 667, 1, 0, 0, 0, 670, 671, 1, 0, 0, 0, 671, 672, 3, 33, 16, 0, 672, 678, 1, 0, 0, 0, 673, 674, 5, 92, 0, 0, 674, 678, 5, 116, 0, 0, 675, 676, 5, 92, 0, 0, 676, 678, 5, 84, 0, 0, 677, 662, 1, 0, 0, 0, 677, 663, 1, 0, 0, 0, 677, 673, 1, 0, 0, 0, 677, 675, 1, 0, 0, 0, 678, 94, 1, 0, 0, 0, 679, 695, 7, 27, 0, 0, 680, 681, 5, 92, 0, 0, 681, 686, 3, 55, 27, 0, 682, 683, 5, 53, 0, 0, 683, 687, 5, 53, 0, 0, 684, 685, 5, 55, 0, 0, 685, 687, 5, 53, 0, 0, 686, 682, 1, 0, 0, 0, 686, 684, 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 688, 689, 3, 33, 16, 0, 689, 695, 1, 0, 0, 0, 690, 691, 5, 92, 0, 0, 691, 695, 5, 117, 0, 0, 692, 693, 5, 92, 0, 0, 693, 695, 5, 85, 0, 0, 694, 679, 1, 0, 0, 0, 694, 680, 1, 0, 0, 0, 694, 690, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 695, 96, 1, 0, 0, 0, 696, 712, 7, 28, 0, 0, 697, 698, 5, 92, 0, 0, 698, 703, 3, 55, 27, 0, 699, 700, 5, 53, 0, 0, 700, 704, 5, 54, 0, 0, 701, 702, 5, 55, 0, 0, 702, 704, 5, 54, 0, 0, 703, 699, 1, 0, 0, 0, 703, 701, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 706, 3, 33, 16, 0, 706, 712, 1, 0, 0, 0, 707, 708, 5, 92, 0, 0, 708, 712, 5, 118, 0, 0, 709, 710, 5, 92, 0, 0, 710, 712, 5, 86, 0, 0, 711, 696, 1, 0, 0, 0, 711, 697, 1, 0, 0, 0, 711, 707, 1, 0, 0, 0, 711, 709, 1, 0, 0, 0, 712, 98, 1, 0, 0, 0, 713, 729, 7, 29, 0, 0, 714, 715, 5, 92, 0, 0, 715, 720, 3, 55, 27, 0, 716, 717, 5, 53, 0, 0, 717, 721, 5, 55, 0, 0, 718, 719, 5, 55, 0, 0, 719, 721, 5, 55, 0, 0, 720, 716, 1, 0, 0, 0, 720, 718, 1, 0, 0, 0, 721, 722, 1, 0, 0, 0, 722, 723, 3, 33, 16, 0, 723, 729, 1, 0, 0, 0, 724, 725, 5, 92, 0, 0, 725, 729, 5, 119, 0, 0, 726, 727, 5, 92, 0, 0, 727, 729, 5, 87, 0, 0, 728, 713, 1, 0, 0, 0, 728, 714, 1, 0, 0, 0, 728, 724, 1, 0, 0, 0, 728, 726, 1, 0, 0, 0, 729, 100, 1, 0, 0, 0, 730, 746, 7, 30, 0, 0, 731, 732, 5, 92, 0, 0, 732, 737, 3, 55, 27, 0, 733, 734, 5, 53, 0, 0, 734, 738, 5, 56, 0, 0, 735, 736, 5, 55, 0, 0, 736, 738, 5, 56, 0, 0, 737, 733, 1, 0, 0, 0, 737, 735, 1, 0, 0, 0, 738, 739, 1, 0, 0, 0, 739, 740, 3, 33, 16, 0, 740, 746, 1, 0, 0, 0, 741, 742, 5, 92, 0, 0, 742, 746, 5, 120, 0, 0, 743, 744, 5, 92, 0, 0, 744, 746, 5, 88, 0, 0, 745, 730, 1, 0, 0, 0, 745, 731, 1, 0, 0, 0, 745, 741, 1, 0, 0, 0, 745, 743, 1, 0, 0, 0, 746, 102, 1, 0, 0, 0, 747, 763, 7, 31, 0, 0, 748, 749, 5, 92, 0, 0, 749, 754, 3, 55, 27, 0, 750, 751, 5, 53, 0, 0, 751, 755, 5, 57, 0, 0, 752, 753, 5, 55, 0, 0, 753, 755, 5, 57, 0, 0, 754, 750, 1, 0, 0, 0, 754, 752, 1, 0, 0, 0, 755, 756, 1, 0, 0, 0, 756, 757, 3, 33, 16, 0, 757, 763, 1, 0, 0, 0, 758, 759, 5, 92, 0, 0, 759, 763, 5, 121, 0, 0, 760, 761, 5, 92, 0, 0, 761, 763, 5, 89, 0, 0, 762, 747, 1, 0, 0, 0, 762, 748, 1, 0, 0, 0, 762, 758, 1, 0, 0, 0, 762, 760, 1, 0, 0, 0, 763, 104, 1, 0, 0, 0, 764, 780, 7, 32, 0, 0, 765, 766, 5, 92, 0, 0, 766, 771, 3, 55, 27, 0, 767, 768, 5, 53, 0, 0, 768, 772, 5, 97, 0, 0, 769, 770, 5, 55, 0, 0, 770, 772, 5, 97, 0, 0, 771, 767, 1, 0, 0, 0, 771, 769, 1, 0, 0, 0, 772, 773, 1, 0, 0, 0, 773, 774, 3, 33, 16, 0, 774, 780, 1, 0, 0, 0, 775, 776, 5, 92, 0, 0, 776, 780, 5, 122, 0, 0, 777, 778, 5, 92, 0, 0, 778, 780, 5, 90, 0, 0, 779, 764, 1, 0, 0, 0, 779, 765, 1, 0, 0, 0, 779, 775, 1, 0, 0, 0, 779, 777, 1, 0, 0, 0, 780, 106, 1, 0, 0, 0, 781, 790, 5, 45, 0, 0, 782, 783, 5, 92, 0, 0, 783, 784, 3, 55, 27, 0, 784, 785, 5, 50, 0, 0, 785, 786, 5, 100, 0, 0, 786, 787, 1, 0, 0, 0, 787, 788, 3, 33, 16, 0, 788, 790, 1, 0, 0, 0, 789, 781, 1, 0, 0, 0, 789, 782, 1, 0, 0, 0, 790, 108, 1, 0, 0, 0, 791, 792, 5, 60, 0, 0, 792, 793, 5, 33, 0, 0, 793, 794, 5, 45, 0, 0, 794, 795, 5, 45, 0, 0, 795, 110, 1, 0, 0, 0, 796, 797, 5, 45, 0, 0, 797, 798, 5, 45, 0, 0, 798, 799, 5, 62, 0, 0, 799, 112, 1, 0, 0, 0, 800, 801, 5, 126, 0, 0, 801, 802, 5, 61, 0, 0, 802, 114, 1, 0, 0, 0, 803, 804, 5, 124, 0, 0, 804, 805, 5, 61, 0, 0, 805, 116, 1, 0, 0, 0, 806, 807, 5, 35, 0, 0, 807, 808, 3, 45, 22, 0, 808, 118, 1, 0, 0, 0, 809, 810, 3, 29, 14, 0, 810, 811, 3, 73, 36, 0, 811, 812, 3, 79, 39, 0, 812, 813, 3, 85, 42, 0, 813, 814, 3, 83, 41, 0, 814, 815, 3, 89, 44, 0, 815, 816, 3, 93, 46, 0, 816, 120, 1, 0, 0, 0, 817, 818, 3, 29, 14, 0, 818, 819, 3, 85, 42, 0, 819, 820, 3, 57, 28, 0, 820, 821, 3, 69, 34, 0, 821, 822, 3, 65, 32, 0, 822, 122, 1, 0, 0, 0, 823, 824, 3, 29, 14, 0, 824, 825, 3, 79, 39, 0, 825, 826, 3, 65, 32, 0, 826, 827, 3, 63, 31, 0, 827, 828, 3, 73, 36, 0, 828, 829, 3, 57, 28, 0, 829, 124, 1, 0, 0, 0, 830, 831, 3, 29, 14, 0, 831, 832, 3, 81, 40, 0, 832, 833, 3, 57, 28, 0, 833, 834, 3, 79, 39, 0, 834, 835, 3, 65, 32, 0, 835, 836, 3, 91, 45, 0, 836, 837, 3, 85, 42, 0, 837, 838, 3, 57, 28, 0, 838, 839, 3, 61, 30, 0, 839, 840, 3, 65, 32, 0, 840, 126, 1, 0, 0, 0, 841, 842, 5, 64, 0, 0, 842, 843, 5, 99, 0, 0, 843, 844, 5, 104, 0, 0, 844, 845, 5, 97, 0, 0, 845, 846, 5, 114, 0, 0, 846, 847, 5, 115, 0, 0, 847, 848, 5, 101, 0, 0, 848, 849, 5, 116, 0, 0, 849, 850, 5, 32, 0, 0, 850, 128, 1, 0, 0, 0, 851, 856, 5, 33, 0, 0, 852, 855, 3, 49, 24, 0, 853, 855, 3, 43, 21, 0, 854, 852, 1, 0, 0, 0, 854, 853, 1, 0, 0, 0, 855, 858, 1, 0, 0, 0, 856, 854, 1, 0, 0, 0, 856, 857, 1, 0, 0, 0, 857, 859, 1, 0, 0, 0, 858, 856, 1, 0, 0, 0, 859, 860, 3, 73, 36, 0, 860, 861, 3, 79, 39, 0, 861, 862, 3, 85, 42, 0, 862, 863, 3, 83, 41, 0, 863, 864, 3, 89, 44, 0, 864, 865, 3, 93, 46, 0, 865, 866, 3, 57, 28, 0, 866, 867, 3, 81, 40, 0, 867, 868, 3, 93, 46, 0, 868, 130, 1, 0, 0, 0, 869, 870, 3, 177, 88, 0, 870, 871, 3, 65, 32, 0, 871, 872, 3, 79, 39, 0, 872, 887, 1, 0, 0, 0, 873, 874, 3, 177, 88, 0, 874, 875, 3, 65, 32, 0, 875, 876, 3, 101, 50, 0, 876, 887, 1, 0, 0, 0, 877, 878, 3, 177, 88, 0, 878, 879, 3, 61, 30, 0, 879, 880, 3, 71, 35, 0, 880, 887, 1, 0, 0, 0, 881, 882, 3, 177, 88, 0, 882, 883, 3, 89, 44, 0, 883, 884, 3, 65, 32, 0, 884, 885, 3, 79, 39, 0, 885, 887, 1, 0, 0, 0, 886, 869, 1, 0, 0, 0, 886, 873, 1, 0, 0, 0, 886, 877, 1, 0, 0, 0, 886, 881, 1, 0, 0, 0, 887, 132, 1, 0, 0, 0, 888, 889, 3, 177, 88, 0, 889, 890, 3, 97, 48, 0, 890, 891, 3, 99, 49, 0, 891, 909, 1, 0, 0, 0, 892, 893, 3, 177, 88, 0, 893, 894, 3, 97, 48, 0, 894, 895, 3, 71, 35, 0, 895, 909, 1, 0, 0, 0, 896, 897, 3, 177, 88, 0, 897, 898, 3, 97, 48, 0, 898, 899, 3, 79, 39, 0, 899, 900, 3, 73, 36, 0, 900, 901, 3, 81, 40, 0, 901, 909, 1, 0, 0, 0, 902, 903, 3, 177, 88, 0, 903, 904, 3, 97, 48, 0, 904, 905, 3, 79, 39, 0, 905, 906, 3, 57, 28, 0, 906, 907, 3, 101, 50, 0, 907, 909, 1, 0, 0, 0, 908, 888, 1, 0, 0, 0, 908, 892, 1, 0, 0, 0, 908, 896, 1, 0, 0, 0, 908, 902, 1, 0, 0, 0, 909, 134, 1, 0, 0, 0, 910, 911, 3, 177, 88, 0, 911, 912, 3, 85, 42, 0, 912, 913, 3, 101, 50, 0, 913, 938, 1, 0, 0, 0, 914, 915, 3, 177, 88, 0, 915, 916, 3, 61, 30, 0, 916, 917, 3, 79, 39, 0, 917, 938, 1, 0, 0, 0, 918, 919, 3, 177, 88, 0, 919, 920, 3, 79, 39, 0, 920, 921, 3, 79, 39, 0, 921, 938, 1, 0, 0, 0, 922, 923, 3, 177, 88, 0, 923, 924, 3, 73, 36, 0, 924, 925, 3, 81, 40, 0, 925, 938, 1, 0, 0, 0, 926, 927, 3, 177, 88, 0, 927, 928, 3, 85, 42, 0, 928, 929, 3, 93, 46, 0, 929, 938, 1, 0, 0, 0, 930, 931, 3, 177, 88, 0, 931, 932, 3, 85, 42, 0, 932, 933, 3, 61, 30, 0, 933, 938, 1, 0, 0, 0, 934, 935, 3, 177, 88, 0, 935, 936, 3, 87, 43, 0, 936, 938, 1, 0, 0, 0, 937, 910, 1, 0, 0, 0, 937, 914, 1, 0, 0, 0, 937, 918, 1, 0, 0, 0, 937, 922, 1, 0, 0, 0, 937, 926, 1, 0, 0, 0, 937, 930, 1, 0, 0, 0, 937, 934, 1, 0, 0, 0, 938, 136, 1, 0, 0, 0, 939, 940, 3, 177, 88, 0, 940, 941, 3, 63, 31, 0, 941, 942, 3, 65, 32, 0, 942, 943, 3, 69, 34, 0, 943, 962, 1, 0, 0, 0, 944, 945, 3, 177, 88, 0, 945, 946, 3, 89, 44, 0, 946, 947, 3, 57, 28, 0, 947, 948, 3, 63, 31, 0, 948, 962, 1, 0, 0, 0, 949, 950, 3, 177, 88, 0, 950, 951, 3, 69, 34, 0, 951, 952, 3, 89, 44, 0, 952, 953, 3, 57, 28, 0, 953, 954, 3, 63, 31, 0, 954, 962, 1, 0, 0, 0, 955, 956, 3, 177, 88, 0, 956, 957, 3, 93, 46, 0, 957, 958, 3, 95, 47, 0, 958, 959, 3, 89, 44, 0, 959, 960, 3, 81, 40, 0, 960, 962, 1, 0, 0, 0, 961, 939, 1, 0, 0, 0, 961, 944, 1, 0, 0, 0, 961, 949, 1, 0, 0, 0, 961, 955, 1, 0, 0, 0, 962, 138, 1, 0, 0, 0, 963, 964, 3, 177, 88, 0, 964, 965, 3, 79, 39, 0, 965, 966, 3, 91, 45, 0, 966, 971, 1, 0, 0, 0, 967, 968, 3, 177, 88, 0, 968, 969, 3, 91, 45, 0, 969, 971, 1, 0, 0, 0, 970, 963, 1, 0, 0, 0, 970, 967, 1, 0, 0, 0, 971, 140, 1, 0, 0, 0, 972, 973, 3, 177, 88, 0, 973, 974, 3, 71, 35, 0, 974, 975, 3, 105, 52, 0, 975, 982, 1, 0, 0, 0, 976, 977, 3, 177, 88, 0, 977, 978, 3, 75, 37, 0, 978, 979, 3, 71, 35, 0, 979, 980, 3, 105, 52, 0, 980, 982, 1, 0, 0, 0, 981, 972, 1, 0, 0, 0, 981, 976, 1, 0, 0, 0, 982, 142, 1, 0, 0, 0, 983, 984, 3, 177, 88, 0, 984, 985, 5, 37, 0, 0, 985, 144, 1, 0, 0, 0, 986, 987, 5, 117, 0, 0, 987, 988, 5, 114, 0, 0, 988, 989, 5, 108, 0, 0, 989, 990, 5, 40, 0, 0, 990, 146, 1, 0, 0, 0, 991, 992, 7, 33, 0, 0, 992, 993, 5, 43, 0, 0, 993, 994, 5, 63, 0, 0, 994, 996, 1, 0, 0, 0, 995, 997, 5, 63, 0, 0, 996, 995, 1, 0, 0, 0, 996, 997, 1, 0, 0, 0, 997, 999, 1, 0, 0, 0, 998, 1000, 5, 63, 0, 0, 999, 998, 1, 0, 0, 0, 999, 1000, 1, 0, 0, 0, 1000, 1002, 1, 0, 0, 0, 1001, 1003, 5, 63, 0, 0, 1002, 1001, 1, 0, 0, 0, 1002, 1003, 1, 0, 0, 0, 1003, 1005, 1, 0, 0, 0, 1004, 1006, 5, 63, 0, 0, 1005, 1004, 1, 0, 0, 0, 1005, 1006, 1, 0, 0, 0, 1006, 1008, 1, 0, 0, 0, 1007, 1009, 5, 63, 0, 0, 1008, 1007, 1, 0, 0, 0, 1008, 1009, 1, 0, 0, 0, 1009, 1081, 1, 0, 0, 0, 1010, 1011, 7, 33, 0, 0, 1011, 1012, 5, 43, 0, 0, 1012, 1014, 3, 31, 15, 0, 1013, 1015, 5, 63, 0, 0, 1014, 1013, 1, 0, 0, 0, 1014, 1015, 1, 0, 0, 0, 1015, 1017, 1, 0, 0, 0, 1016, 1018, 5, 63, 0, 0, 1017, 1016, 1, 0, 0, 0, 1017, 1018, 1, 0, 0, 0, 1018, 1020, 1, 0, 0, 0, 1019, 1021, 5, 63, 0, 0, 1020, 1019, 1, 0, 0, 0, 1020, 1021, 1, 0, 0, 0, 1021, 1023, 1, 0, 0, 0, 1022, 1024, 5, 63, 0, 0, 1023, 1022, 1, 0, 0, 0, 1023, 1024, 1, 0, 0, 0, 1024, 1026, 1, 0, 0, 0, 1025, 1027, 5, 63, 0, 0, 1026, 1025, 1, 0, 0, 0, 1026, 1027, 1, 0, 0, 0, 1027, 1081, 1, 0, 0, 0, 1028, 1029, 7, 33, 0, 0, 1029, 1030, 5, 43, 0, 0, 1030, 1031, 3, 31, 15, 0, 1031, 1033, 3, 31, 15, 0, 1032, 1034, 5, 63, 0, 0, 1033, 1032, 1, 0, 0, 0, 1033, 1034, 1, 0, 0, 0, 1034, 1036, 1, 0, 0, 0, 1035, 1037, 5, 63, 0, 0, 1036, 1035, 1, 0, 0, 0, 1036, 1037, 1, 0, 0, 0, 1037, 1039, 1, 0, 0, 0, 1038, 1040, 5, 63, 0, 0, 1039, 1038, 1, 0, 0, 0, 1039, 1040, 1, 0, 0, 0, 1040, 1042, 1, 0, 0, 0, 1041, 1043, 5, 63, 0, 0, 1042, 1041, 1, 0, 0, 0, 1042, 1043, 1, 0, 0, 0, 1043, 1081, 1, 0, 0, 0, 1044, 1045, 7, 33, 0, 0, 1045, 1046, 5, 43, 0, 0, 1046, 1047, 3, 31, 15, 0, 1047, 1048, 3, 31, 15, 0, 1048, 1050, 3, 31, 15, 0, 1049, 1051, 5, 63, 0, 0, 1050, 1049, 1, 0, 0, 0, 1050, 1051, 1, 0, 0, 0, 1051, 1053, 1, 0, 0, 0, 1052, 1054, 5, 63, 0, 0, 1053, 1052, 1, 0, 0, 0, 1053, 1054, 1, 0, 0, 0, 1054, 1056, 1, 0, 0, 0, 1055, 1057, 5, 63, 0, 0, 1056, 1055, 1, 0, 0, 0, 1056, 1057, 1, 0, 0, 0, 1057, 1081, 1, 0, 0, 0, 1058, 1059, 7, 33, 0, 0, 1059, 1060, 5, 43, 0, 0, 1060, 1061, 3, 31, 15, 0, 1061, 1062, 3, 31, 15, 0, 1062, 1063, 3, 31, 15, 0, 1063, 1065, 3, 31, 15, 0, 1064, 1066, 5, 63, 0, 0, 1065, 1064, 1, 0, 0, 0, 1065, 1066, 1, 0, 0, 0, 1066, 1068, 1, 0, 0, 0, 1067, 1069, 5, 63, 0, 0, 1068, 1067, 1, 0, 0, 0, 1068, 1069, 1, 0, 0, 0, 1069, 1081, 1, 0, 0, 0, 1070, 1071, 7, 33, 0, 0, 1071, 1072, 5, 43, 0, 0, 1072, 1073, 3, 31, 15, 0, 1073, 1074, 3, 31, 15, 0, 1074, 1075, 3, 31, 15, 0, 1075, 1076, 3, 31, 15, 0, 1076, 1078, 3, 31, 15, 0, 1077, 1079, 5, 63, 0, 0, 1078, 1077, 1, 0, 0, 0, 1078, 1079, 1, 0, 0, 0, 1079, 1081, 1, 0, 0, 0, 1080, 991, 1, 0, 0, 0, 1080, 1010, 1, 0, 0, 0, 1080, 1028, 1, 0, 0, 0, 1080, 1044, 1, 0, 0, 0, 1080, 1058, 1, 0, 0, 0, 1080, 1070, 1, 0, 0, 0, 1081, 148, 1, 0, 0, 0, 1082, 1083, 3, 83, 41, 0, 1083, 1084, 3, 81, 40, 0, 1084, 1085, 3, 77, 38, 0, 1085, 1086, 3, 103, 51, 0, 1086, 150, 1, 0, 0, 0, 1087, 1088, 3, 81, 40, 0, 1088, 1089, 3, 83, 41, 0, 1089, 1090, 3, 93, 46, 0, 1090, 152, 1, 0, 0, 0, 1091, 1092, 3, 57, 28, 0, 1092, 1093, 3, 81, 40, 0, 1093, 1094, 3, 63, 31, 0, 1094, 154, 1, 0, 0, 0, 1095, 1096, 3, 177, 88, 0, 1096, 1097, 3, 63, 31, 0, 1097, 1098, 3, 85, 42, 0, 1098, 1099, 3, 73, 36, 0, 1099, 1113, 1, 0, 0, 0, 1100, 1101, 3, 177, 88, 0, 1101, 1102, 3, 63, 31, 0, 1102, 1103, 3, 85, 42, 0, 1103, 1104, 3, 61, 30, 0, 1104, 1105, 3, 79, 39, 0, 1105, 1113, 1, 0, 0, 0, 1106, 1107, 3, 177, 88, 0, 1107, 1108, 3, 63, 31, 0, 1108, 1109, 3, 85, 42, 0, 1109, 1110, 3, 85, 42, 0, 1110, 1111, 3, 101, 50, 0, 1111, 1113, 1, 0, 0, 0, 1112, 1095, 1, 0, 0, 0, 1112, 1100, 1, 0, 0, 0, 1112, 1106, 1, 0, 0, 0, 1113, 156, 1, 0, 0, 0, 1114, 1118, 3, 135, 67, 0, 1115, 1118, 3, 131, 65, 0, 1116, 1118, 3, 133, 66, 0, 1117, 1114, 1, 0, 0, 0, 1117, 1115, 1, 0, 0, 0, 1117, 1116, 1, 0, 0, 0, 1118, 158, 1, 0, 0, 0, 1119, 1125, 3, 157, 78, 0, 1120, 1125, 3, 139, 69, 0, 1121, 1125, 3, 141, 70, 0, 1122, 1125, 3, 155, 77, 0, 1123, 1125, 3, 137, 68, 0, 1124, 1119, 1, 0, 0, 0, 1124, 1120, 1, 0, 0, 0, 1124, 1121, 1, 0, 0, 0, 1124, 1122, 1, 0, 0, 0, 1124, 1123, 1, 0, 0, 0, 1125, 160, 1, 0, 0, 0, 1126, 1127, 3, 177, 88, 0, 1127, 1128, 3, 221, 110, 0, 1128, 162, 1, 0, 0, 0, 1129, 1130, 8, 34, 0, 0, 1130, 164, 1, 0, 0, 0, 1131, 1132, 5, 43, 0, 0, 1132, 166, 1, 0, 0, 0, 1133, 1134, 5, 45, 0, 0, 1134, 168, 1, 0, 0, 0, 1135, 1136, 5, 62, 0, 0, 1136, 170, 1, 0, 0, 0, 1137, 1138, 5, 44, 0, 0, 1138, 172, 1, 0, 0, 0, 1139, 1140, 5, 126, 0, 0, 1140, 174, 1, 0, 0, 0, 1141, 1142, 5, 58, 0, 0, 1142, 1143, 3, 81, 40, 0, 1143, 1144, 3, 83, 41, 0, 1144, 1145, 3, 93, 46, 0, 1145, 1146, 5, 40, 0, 0, 1146, 176, 1, 0, 0, 0, 1147, 1149, 7, 35, 0, 0, 1148, 1147, 1, 0, 0, 0, 1149, 1150, 1, 0, 0, 0, 1150, 1148, 1, 0, 0, 0, 1150, 1151, 1, 0, 0, 0, 1151, 1165, 1, 0, 0, 0, 1152, 1154, 7, 35, 0, 0, 1153, 1152, 1, 0, 0, 0, 1154, 1157, 1, 0, 0, 0, 1155, 1153, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1158, 1, 0, 0, 0, 1157, 1155, 1, 0, 0, 0, 1158, 1160, 5, 46, 0, 0, 1159, 1161, 7, 35, 0, 0, 1160, 1159, 1, 0, 0, 0, 1161, 1162, 1, 0, 0, 0, 1162, 1160, 1, 0, 0, 0, 1162, 1163, 1, 0, 0, 0, 1163, 1165, 1, 0, 0, 0, 1164, 1148, 1, 0, 0, 0, 1164, 1155, 1, 0, 0, 0, 1165, 178, 1, 0, 0, 0, 1166, 1174, 5, 34, 0, 0, 1167, 1173, 8, 36, 0, 0, 1168, 1169, 5, 92, 0, 0, 1169, 1173, 3, 53, 26, 0, 1170, 1173, 3, 163, 81, 0, 1171, 1173, 3, 37, 18, 0, 1172, 1167, 1, 0, 0, 0, 1172, 1168, 1, 0, 0, 0, 1172, 1170, 1, 0, 0, 0, 1172, 1171, 1, 0, 0, 0, 1173, 1176, 1, 0, 0, 0, 1174, 1172, 1, 0, 0, 0, 1174, 1175, 1, 0, 0, 0, 1175, 1177, 1, 0, 0, 0, 1176, 1174, 1, 0, 0, 0, 1177, 1191, 5, 34, 0, 0, 1178, 1186, 5, 39, 0, 0, 1179, 1185, 8, 37, 0, 0, 1180, 1181, 5, 92, 0, 0, 1181, 1185, 3, 53, 26, 0, 1182, 1185, 3, 163, 81, 0, 1183, 1185, 3, 37, 18, 0, 1184, 1179, 1, 0, 0, 0, 1184, 1180, 1, 0, 0, 0, 1184, 1182, 1, 0, 0, 0, 1184, 1183, 1, 0, 0, 0, 1185, 1188, 1, 0, 0, 0, 1186, 1184, 1, 0, 0, 0, 1186, 1187, 1, 0, 0, 0, 1187, 1189, 1, 0, 0, 0, 1188, 1186, 1, 0, 0, 0, 1189, 1191, 5, 39, 0, 0, 1190, 1166, 1, 0, 0, 0, 1190, 1178, 1, 0, 0, 0, 1191, 180, 1, 0, 0, 0, 1192, 1193, 5, 94, 0, 0, 1193, 1194, 5, 61, 0, 0, 1194, 182, 1, 0, 0, 0, 1195, 1196, 5, 36, 0, 0, 1196, 1197, 5, 61, 0, 0, 1197, 184, 1, 0, 0, 0, 1198, 1199, 5, 42, 0, 0, 1199, 1200, 5, 61, 0, 0, 1200, 186, 1, 0, 0, 0, 1201, 1202, 3, 29, 14, 0, 1202, 1203, 3, 67, 33, 0, 1203, 1204, 3, 83, 41, 0, 1204, 1205, 3, 81, 40, 0, 1205, 1206, 3, 93, 46, 0, 1206, 1207, 3, 107, 53, 0, 1207, 1208, 3, 67, 33, 0, 1208, 1209, 3, 57, 28, 0, 1209, 1210, 3, 61, 30, 0, 1210, 1211, 3, 65, 32, 0, 1211, 188, 1, 0, 0, 0, 1212, 1213, 3, 29, 14, 0, 1213, 1214, 3, 91, 45, 0, 1214, 1215, 3, 95, 47, 0, 1215, 1216, 3, 85, 42, 0, 1216, 1217, 3, 85, 42, 0, 1217, 1218, 3, 83, 41, 0, 1218, 1219, 3, 89, 44, 0, 1219, 1220, 3, 93, 46, 0, 1220, 1221, 3, 91, 45, 0, 1221, 190, 1, 0, 0, 0, 1222, 1223, 3, 83, 41, 0, 1223, 1224, 3, 89, 44, 0, 1224, 192, 1, 0, 0, 0, 1225, 1226, 5, 45, 0, 0, 1226, 1227, 3, 79, 39, 0, 1227, 1228, 3, 83, 41, 0, 1228, 1229, 3, 105, 52, 0, 1229, 1230, 5, 45, 0, 0, 1230, 1245, 1, 0, 0, 0, 1231, 1232, 5, 45, 0, 0, 1232, 1233, 3, 99, 49, 0, 1233, 1234, 3, 65, 32, 0, 1234, 1235, 3, 59, 29, 0, 1235, 1236, 3, 75, 37, 0, 1236, 1237, 3, 73, 36, 0, 1237, 1238, 3, 93, 46, 0, 1238, 1239, 5, 45, 0, 0, 1239, 1245, 1, 0, 0, 0, 1240, 1241, 5, 45, 0, 0, 1241, 1242, 3, 83, 41, 0, 1242, 1243, 5, 45, 0, 0, 1243, 1245, 1, 0, 0, 0, 1244, 1225, 1, 0, 0, 0, 1244, 1231, 1, 0, 0, 0, 1244, 1240, 1, 0, 0, 0, 1245, 194, 1, 0, 0, 0, 1246, 1248, 3, 29, 14, 0, 1247, 1249, 3, 193, 96, 0, 1248, 1247, 1, 0, 0, 0, 1248, 1249, 1, 0, 0, 0, 1249, 1250, 1, 0, 0, 0, 1250, 1251, 3, 75, 37, 0, 1251, 1252, 3, 65, 32, 0, 1252, 1253, 3, 103, 51, 0, 1253, 1254, 3, 67, 33, 0, 1254, 1255, 3, 89, 44, 0, 1255, 1256, 3, 57, 28, 0, 1256, 1257, 3, 79, 39, 0, 1257, 1258, 3, 65, 32, 0, 1258, 1259, 3, 91, 45, 0, 1259, 196, 1, 0, 0, 0, 1260, 1261, 3, 67, 33, 0, 1261, 1262, 3, 89, 44, 0, 1262, 1263, 3, 83, 41, 0, 1263, 1264, 3, 79, 39, 0, 1264, 198, 1, 0, 0, 0, 1265, 1266, 3, 93, 46, 0, 1266, 1267, 3, 83, 41, 0, 1267, 200, 1, 0, 0, 0, 1268, 1269, 5, 99, 0, 0, 1269, 1270, 5, 97, 0, 0, 1270, 1271, 5, 108, 0, 0, 1271, 1272, 5, 99, 0, 0, 1272, 1273, 5, 40, 0, 0, 1273, 202, 1, 0, 0, 0, 1274, 1275, 5, 114, 0, 0, 1275, 1276, 5, 103, 0, 0, 1276, 1277, 5, 98, 0, 0, 1277, 1278, 5, 40, 0, 0, 1278, 204, 1, 0, 0, 0, 1279, 1280, 5, 114, 0, 0, 1280, 1281, 5, 103, 0, 0, 1281, 1282, 5, 98, 0, 0, 1282, 1283, 5, 97, 0, 0, 1283, 1284, 5, 40, 0, 0, 1284, 206, 1, 0, 0, 0, 1285, 1286, 3, 29, 14, 0, 1286, 1287, 3, 97, 48, 0, 1287, 1288, 3, 73, 36, 0, 1288, 1289, 3, 65, 32, 0, 1289, 1290, 3, 99, 49, 0, 1290, 1291, 3, 85, 42, 0, 1291, 1292, 3, 83, 41, 0, 1292, 1293, 3, 89, 44, 0, 1293, 1294, 3, 93, 46, 0, 1294, 208, 1, 0, 0, 0, 1295, 1296, 3, 29, 14, 0, 1296, 1297, 3, 61, 30, 0, 1297, 1298, 3, 83, 41, 0, 1298, 1299, 3, 95, 47, 0, 1299, 1300, 3, 81, 40, 0, 1300, 1301, 3, 93, 46, 0, 1301, 1302, 3, 65, 32, 0, 1302, 1303, 3, 89, 44, 0, 1303, 1304, 3, 107, 53, 0, 1304, 1305, 3, 91, 45, 0, 1305, 1306, 3, 93, 46, 0, 1306, 1307, 3, 103, 51, 0, 1307, 1308, 3, 77, 38, 0, 1308, 1309, 3, 65, 32, 0, 1309, 210, 1, 0, 0, 0, 1310, 1311, 3, 29, 14, 0, 1311, 1312, 3, 67, 33, 0, 1312, 1313, 3, 83, 41, 0, 1313, 1314, 3, 81, 40, 0, 1314, 1315, 3, 93, 46, 0, 1315, 1316, 3, 107, 53, 0, 1316, 1317, 3, 67, 33, 0, 1317, 1318, 3, 65, 32, 0, 1318, 1319, 3, 57, 28, 0, 1319, 1320, 3, 93, 46, 0, 1320, 1321, 3, 95, 47, 0, 1321, 1322, 3, 89, 44, 0, 1322, 1323, 3, 65, 32, 0, 1323, 1324, 3, 107, 53, 0, 1324, 1325, 3, 97, 48, 0, 1325, 1326, 3, 57, 28, 0, 1326, 1327, 3, 77, 38, 0, 1327, 1328, 3, 95, 47, 0, 1328, 1329, 3, 65, 32, 0, 1329, 1330, 3, 91, 45, 0, 1330, 212, 1, 0, 0, 0, 1331, 1332, 5, 112, 0, 0, 1332, 1333, 5, 114, 0, 0, 1333, 1334, 5, 111, 0, 0, 1334, 1335, 5, 103, 0, 0, 1335, 1336, 5, 105, 0, 0, 1336, 1337, 5, 100, 0, 0, 1337, 1338, 5, 58, 0, 0, 1338, 1339, 5, 68, 0, 0, 1339, 1340, 5, 88, 0, 0, 1340, 1341, 5, 73, 0, 0, 1341, 1342, 5, 109, 0, 0, 1342, 1343, 5, 97, 0, 0, 1343, 1344, 5, 103, 0, 0, 1344, 1345, 5, 101, 0, 0, 1345, 1346, 5, 84, 0, 0, 1346, 1347, 5, 114, 0, 0, 1347, 1348, 5, 97, 0, 0, 1348, 1349, 5, 110, 0, 0, 1349, 1350, 5, 115, 0, 0, 1350, 1351, 5, 102, 0, 0, 1351, 1352, 5, 111, 0, 0, 1352, 1353, 5, 114, 0, 0, 1353, 1354, 5, 109, 0, 0, 1354, 1355, 5, 46, 0, 0, 1355, 1356, 5, 77, 0, 0, 1356, 1357, 5, 105, 0, 0, 1357, 1358, 5, 99, 0, 0, 1358, 1359, 5, 114, 0, 0, 1359, 1360, 5, 111, 0, 0, 1360, 1361, 5, 115, 0, 0, 1361, 1362, 5, 111, 0, 0, 1362, 1363, 5, 102, 0, 0, 1363, 1364, 5, 116, 0, 0, 1364, 1365, 5, 46, 0, 0, 1365, 1366, 1, 0, 0, 0, 1366, 1367, 3, 223, 111, 0, 1367, 214, 1, 0, 0, 0, 1368, 1369, 3, 29, 14, 0, 1369, 1370, 3, 221, 110, 0, 1370, 216, 1, 0, 0, 0, 1371, 1372, 5, 45, 0, 0, 1372, 1373, 5, 45, 0, 0, 1373, 1374, 1, 0, 0, 0, 1374, 1378, 3, 39, 19, 0, 1375, 1377, 3, 41, 20, 0, 1376, 1375, 1, 0, 0, 0, 1377, 1380, 1, 0, 0, 0, 1378, 1376, 1, 0, 0, 0, 1378, 1379, 1, 0, 0, 0, 1379, 218, 1, 0, 0, 0, 1380, 1378, 1, 0, 0, 0, 1381, 1382, 5, 118, 0, 0, 1382, 1383, 5, 97, 0, 0, 1383, 1384, 5, 114, 0, 0, 1384, 1385, 5, 40, 0, 0, 1385, 220, 1, 0, 0, 0, 1386, 1388, 5, 45, 0, 0, 1387, 1386, 1, 0, 0, 0, 1387, 1388, 1, 0, 0, 0, 1388, 1389, 1, 0, 0, 0, 1389, 1393, 3, 39, 19, 0, 1390, 1392, 3, 41, 20, 0, 1391, 1390, 1, 0, 0, 0, 1392, 1395, 1, 0, 0, 0, 1393, 1391, 1, 0, 0, 0, 1393, 1394, 1, 0, 0, 0, 1394, 222, 1, 0, 0, 0, 1395, 1393, 1, 0, 0, 0, 1396, 1397, 3, 221, 110, 0, 1397, 1398, 5, 40, 0, 0, 1398, 224, 1, 0, 0, 0, 1399, 1400, 9, 0, 0, 0, 1400, 1401, 1, 0, 0, 0, 1401, 1402, 6, 112, 0, 0, 1402, 226, 1, 0, 0, 0, 122, 0, 263, 268, 271, 274, 277, 280, 287, 292, 297, 305, 311, 317, 323, 327, 335, 345, 347, 356, 360, 366, 369, 372, 375, 378, 387, 391, 400, 404, 413, 417, 426, 430, 439, 443, 452, 456, 465, 473, 482, 490, 499, 507, 516, 524, 533, 541, 550, 558, 567, 575, 584, 592, 601, 609, 618, 626, 635, 643, 652, 660, 669, 677, 686, 694, 703, 711, 720, 728, 737, 745, 754, 762, 771, 779, 789, 854, 856, 886, 908, 937, 961, 970, 981, 996, 999, 1002, 1005, 1008, 1014, 1017, 1020, 1023, 1026, 1033, 1036, 1039, 1042, 1050, 1053, 1056, 1065, 1068, 1078, 1080, 1112, 1117, 1124, 1150, 1155, 1162, 1164, 1172, 1174, 1184, 1186, 1190, 1244, 1248, 1378, 1387, 1393, 1, 0, 2, 0] \ No newline at end of file diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.tokens b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.tokens deleted file mode 100644 index fbcc31ef9..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Lexer.tokens +++ /dev/null @@ -1,98 +0,0 @@ -OpenBracket=1 -CloseBracket=2 -OpenParen=3 -CloseParen=4 -OpenBrace=5 -CloseBrace=6 -SemiColon=7 -Equal=8 -Colon=9 -Dot=10 -Multiply=11 -Divide=12 -Pipe=13 -Underscore=14 -Comment=15 -Url=16 -Space=17 -Cdo=18 -Cdc=19 -Includes=20 -DashMatch=21 -Hash=22 -Import=23 -Page=24 -Media=25 -Namespace=26 -Charset=27 -Important=28 -Percentage=29 -Url_=30 -UnicodeRange=31 -MediaOnly=32 -Not=33 -And=34 -Dimension=35 -UnknownDimension=36 -Plus=37 -Minus=38 -Greater=39 -Comma=40 -Tilde=41 -PseudoNot=42 -Number=43 -String_=44 -PrefixMatch=45 -SuffixMatch=46 -SubstringMatch=47 -FontFace=48 -Supports=49 -Or=50 -Keyframes=51 -From=52 -To=53 -Calc=54 -Rgb=55 -Rgba=56 -Viewport=57 -CounterStyle=58 -FontFeatureValues=59 -DxImageTransform=60 -AtKeyword=61 -Variable=62 -Var=63 -Ident=64 -Function_=65 -UnexpectedCharacter=66 -'['=1 -']'=2 -'('=3 -')'=4 -'{'=5 -'}'=6 -';'=7 -'='=8 -':'=9 -'.'=10 -'*'=11 -'/'=12 -'|'=13 -'_'=14 -''=19 -'~='=20 -'|='=21 -'@charset '=27 -'url('=30 -'+'=37 -'-'=38 -'>'=39 -','=40 -'~'=41 -'^='=45 -'$='=46 -'*='=47 -'calc('=54 -'rgb('=55 -'rgba('=56 -'var('=63 diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.cpp b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.cpp deleted file mode 100644 index ce3624f97..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.cpp +++ /dev/null @@ -1,10920 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - - -#include "css3ParserListener.h" -#include "css3ParserVisitor.h" - -#include "css3Parser.h" - - -using namespace antlrcpp; - -using namespace antlr4; - -namespace { - -struct Css3ParserStaticData final { - Css3ParserStaticData(std::vector ruleNames, - std::vector literalNames, - std::vector symbolicNames) - : ruleNames(std::move(ruleNames)), literalNames(std::move(literalNames)), - symbolicNames(std::move(symbolicNames)), - vocabulary(this->literalNames, this->symbolicNames) {} - - Css3ParserStaticData(const Css3ParserStaticData&) = delete; - Css3ParserStaticData(Css3ParserStaticData&&) = delete; - Css3ParserStaticData& operator=(const Css3ParserStaticData&) = delete; - Css3ParserStaticData& operator=(Css3ParserStaticData&&) = delete; - - std::vector decisionToDFA; - antlr4::atn::PredictionContextCache sharedContextCache; - const std::vector ruleNames; - const std::vector literalNames; - const std::vector symbolicNames; - const antlr4::dfa::Vocabulary vocabulary; - antlr4::atn::SerializedATNView serializedATN; - std::unique_ptr atn; -}; - -::antlr4::internal::OnceFlag css3parserParserOnceFlag; -#if ANTLR4_USE_THREAD_LOCAL_CACHE -static thread_local -#endif -Css3ParserStaticData *css3parserParserStaticData = nullptr; - -void css3parserParserInitialize() { -#if ANTLR4_USE_THREAD_LOCAL_CACHE - if (css3parserParserStaticData != nullptr) { - return; - } -#else - assert(css3parserParserStaticData == nullptr); -#endif - auto staticData = std::make_unique( - std::vector{ - "stylesheet", "charset", "imports", "namespace_", "namespacePrefix", - "media", "mediaQueryList", "mediaQuery", "mediaType", "mediaExpression", - "mediaFeature", "page", "pseudoPage", "selectorGroup", "selector", - "combinator", "simpleSelectorSequence", "typeSelector", "typeNamespacePrefix", - "elementName", "universal", "className", "attrib", "pseudo", "functionalPseudo", - "expression", "negation", "negationArg", "operator_", "property_", - "ruleset", "declarationList", "declaration", "prio", "value", "expr", - "term", "function_", "dxImageTransform", "hexcolor", "number", "percentage", - "dimension", "unknownDimension", "any_", "atRule", "unused", "block", - "nestedStatement", "groupRuleBody", "supportsRule", "supportsCondition", - "supportsConditionInParens", "supportsNegation", "supportsConjunction", - "supportsDisjunction", "supportsDeclarationCondition", "generalEnclosed", - "url", "var_", "calc", "calcOperand", "calcSign", "calcExpr", "calcNestedValue", - "calcValue", "fontFaceRule", "fontFaceDeclaration", "keyframesRule", - "keyframeBlock", "keyframeSelector", "viewport", "counterStyle", "fontFeatureValuesRule", - "fontFamilyNameList", "fontFamilyName", "featureValueBlock", "featureType", - "featureValueDefinition", "ident", "ws", "color", "color_alpha", "color_component" - }, - std::vector{ - "", "'['", "']'", "'('", "')'", "'{'", "'}'", "';'", "'='", "':'", - "'.'", "'*'", "'/'", "'|'", "'_'", "", "", "", "''", - "'~='", "'|='", "", "", "", "", "", "'@charset '", "", "", "'url('", - "", "", "", "", "", "", "'+'", "'-'", "'>'", "','", "'~'", "", "", - "", "'^='", "'$='", "'*='", "", "", "", "", "", "", "'calc('", "'rgb('", - "'rgba('", "", "", "", "", "", "", "'var('" - }, - std::vector{ - "", "OpenBracket", "CloseBracket", "OpenParen", "CloseParen", "OpenBrace", - "CloseBrace", "SemiColon", "Equal", "Colon", "Dot", "Multiply", "Divide", - "Pipe", "Underscore", "Comment", "Url", "Space", "Cdo", "Cdc", "Includes", - "DashMatch", "Hash", "Import", "Page", "Media", "Namespace", "Charset", - "Important", "Percentage", "Url_", "UnicodeRange", "MediaOnly", "Not", - "And", "Dimension", "UnknownDimension", "Plus", "Minus", "Greater", - "Comma", "Tilde", "PseudoNot", "Number", "String_", "PrefixMatch", - "SuffixMatch", "SubstringMatch", "FontFace", "Supports", "Or", "Keyframes", - "From", "To", "Calc", "Rgb", "Rgba", "Viewport", "CounterStyle", "FontFeatureValues", - "DxImageTransform", "AtKeyword", "Variable", "Var", "Ident", "Function_", - "UnexpectedCharacter" - } - ); - static const int32_t serializedATNSegment[] = { - 4,1,66,1191,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2, - 7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7, - 14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7, - 21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7, - 28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7, - 35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7, - 42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7, - 49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7, - 56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7, - 63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7, - 70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7, - 77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,1,0,1, - 0,1,0,5,0,172,8,0,10,0,12,0,175,9,0,5,0,177,8,0,10,0,12,0,180,9,0,1,0, - 1,0,5,0,184,8,0,10,0,12,0,187,9,0,5,0,189,8,0,10,0,12,0,192,9,0,1,0,1, - 0,5,0,196,8,0,10,0,12,0,199,9,0,5,0,201,8,0,10,0,12,0,204,9,0,1,0,1,0, - 5,0,208,8,0,10,0,12,0,211,9,0,5,0,213,8,0,10,0,12,0,216,9,0,1,0,1,0,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,232,8,1,1,2,1,2,1,2, - 1,2,3,2,238,8,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,249,8,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,259,8,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2, - 268,8,2,1,2,1,2,3,2,272,8,2,1,3,1,3,1,3,1,3,1,3,3,3,279,8,3,1,3,1,3,3, - 3,283,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,294,8,3,1,3,1,3,3,3, - 298,8,3,1,3,1,3,3,3,302,8,3,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1, - 6,1,6,1,6,5,6,317,8,6,10,6,12,6,320,9,6,3,6,322,8,6,1,6,1,6,1,7,3,7,327, - 8,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,5,7,336,8,7,10,7,12,7,339,9,7,1,7,1,7, - 1,7,1,7,1,7,5,7,346,8,7,10,7,12,7,349,9,7,3,7,351,8,7,1,8,1,8,1,9,1,9, - 1,9,1,9,1,9,1,9,1,9,3,9,362,8,9,1,9,1,9,1,9,1,10,1,10,1,10,1,11,1,11, - 1,11,3,11,373,8,11,1,11,1,11,1,11,3,11,378,8,11,1,11,1,11,1,11,3,11,383, - 8,11,5,11,385,8,11,10,11,12,11,388,9,11,1,11,1,11,1,11,1,12,1,12,1,12, - 1,12,1,13,1,13,1,13,1,13,1,13,5,13,402,8,13,10,13,12,13,405,9,13,1,14, - 1,14,1,14,1,14,1,14,1,14,5,14,413,8,14,10,14,12,14,416,9,14,1,15,1,15, - 1,15,1,15,1,15,1,15,1,15,1,15,3,15,426,8,15,1,16,1,16,3,16,430,8,16,1, - 16,1,16,1,16,1,16,1,16,5,16,437,8,16,10,16,12,16,440,9,16,1,16,1,16,1, - 16,1,16,1,16,4,16,447,8,16,11,16,12,16,448,3,16,451,8,16,1,17,3,17,454, - 8,17,1,17,1,17,1,18,1,18,3,18,460,8,18,1,18,1,18,1,19,1,19,1,20,3,20, - 467,8,20,1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,22,3,22,477,8,22,1,22,1, - 22,1,22,1,22,1,22,1,22,3,22,485,8,22,1,22,1,22,3,22,489,8,22,1,22,1,22, - 1,23,1,23,3,23,495,8,23,1,23,1,23,3,23,499,8,23,1,24,1,24,1,24,1,24,1, - 24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,3,25,513,8,25,1,25,4,25,516,8,25, - 11,25,12,25,517,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27, - 1,27,3,27,532,8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,3,28,542,8, - 28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,553,8,29,1,30,1, - 30,1,30,1,30,3,30,559,8,30,1,30,1,30,1,30,1,30,5,30,565,8,30,10,30,12, - 30,568,9,30,1,30,1,30,1,30,3,30,573,8,30,1,30,1,30,1,30,3,30,578,8,30, - 1,31,1,31,5,31,582,8,31,10,31,12,31,585,9,31,1,31,1,31,1,31,1,31,1,31, - 3,31,592,8,31,5,31,594,8,31,10,31,12,31,597,9,31,1,32,1,32,1,32,1,32, - 1,32,3,32,604,8,32,1,32,1,32,1,32,1,32,1,32,3,32,611,8,32,1,33,1,33,1, - 33,1,34,1,34,1,34,1,34,4,34,620,8,34,11,34,12,34,621,1,35,1,35,3,35,626, - 8,35,1,35,5,35,629,8,35,10,35,12,35,632,9,35,1,36,1,36,1,36,1,36,1,36, - 1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36, - 1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,3,36,662,8,36,1,37,1,37, - 1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,40, - 3,40,680,8,40,1,40,1,40,1,41,3,41,685,8,41,1,41,1,41,1,42,3,42,690,8, - 42,1,42,1,42,1,43,3,43,695,8,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1, - 44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1, - 44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1, - 44,5,44,733,8,44,10,44,12,44,736,9,44,1,44,1,44,1,44,1,44,1,44,1,44,1, - 44,5,44,745,8,44,10,44,12,44,748,9,44,1,44,1,44,1,44,1,44,1,44,1,44,1, - 44,5,44,757,8,44,10,44,12,44,760,9,44,1,44,1,44,1,44,3,44,765,8,44,1, - 45,1,45,1,45,5,45,770,8,45,10,45,12,45,773,9,45,1,45,1,45,1,45,3,45,778, - 8,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,789,8,46,1,47, - 1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,5,47,801,8,47,10,47,12,47, - 804,9,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48, - 1,48,3,48,819,8,48,1,49,1,49,1,49,5,49,824,8,49,10,49,12,49,827,9,49, - 1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,3,51, - 842,8,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,3,52,852,8,52,1,53,1, - 53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1, - 54,4,54,870,8,54,11,54,12,54,871,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1, - 55,1,55,1,55,4,55,884,8,55,11,55,12,55,885,1,56,1,56,1,56,1,56,1,56,1, - 57,1,57,1,57,5,57,896,8,57,10,57,12,57,899,9,57,1,57,1,57,1,58,1,58,1, - 58,1,58,1,58,1,58,1,58,3,58,910,8,58,1,59,1,59,1,59,1,59,1,59,1,59,1, - 59,1,60,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,62,1,62,1,63,1,63,1,63,1, - 63,1,63,1,63,1,63,1,63,5,63,937,8,63,10,63,12,63,940,9,63,1,63,1,63,1, - 64,3,64,945,8,64,1,64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1, - 65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,3, - 65,971,8,65,1,66,1,66,1,66,1,66,1,66,3,66,978,8,66,1,66,1,66,1,66,3,66, - 983,8,66,5,66,985,8,66,10,66,12,66,988,9,66,1,66,1,66,1,66,1,67,1,67, - 1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,3,67,1003,8,67,1,68,1,68,1,68, - 1,68,1,68,1,68,1,68,1,68,1,68,5,68,1014,8,68,10,68,12,68,1017,9,68,1, - 68,1,68,1,68,1,69,1,69,1,69,1,69,3,69,1026,8,69,1,69,1,69,1,69,1,70,1, - 70,1,70,1,70,1,70,1,70,1,70,5,70,1038,8,70,10,70,12,70,1041,9,70,1,71, - 1,71,1,71,1,71,1,71,3,71,1048,8,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72, - 1,72,1,72,1,72,3,72,1060,8,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73, - 1,73,1,73,5,73,1072,8,73,10,73,12,73,1075,9,73,1,73,1,73,1,73,1,74,1, - 74,1,74,1,74,1,74,1,74,5,74,1086,8,74,10,74,12,74,1089,9,74,1,75,1,75, - 1,75,1,75,1,75,5,75,1096,8,75,10,75,12,75,1099,9,75,3,75,1101,8,75,1, - 76,1,76,1,76,1,76,1,76,3,76,1108,8,76,1,76,1,76,1,76,1,76,3,76,1114,8, - 76,5,76,1116,8,76,10,76,12,76,1119,9,76,1,76,1,76,1,76,1,77,1,77,1,78, - 1,78,1,78,1,78,1,78,1,78,1,78,1,78,5,78,1134,8,78,10,78,12,78,1137,9, - 78,1,79,1,79,1,80,5,80,1142,8,80,10,80,12,80,1145,9,80,1,81,1,81,1,81, - 1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,3,81,1160,8,81,1,81, - 1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,3,81, - 1176,8,81,1,81,1,81,1,81,3,81,1181,8,81,1,82,1,82,3,82,1185,8,82,1,83, - 1,83,3,83,1189,8,83,1,83,0,0,84,0,2,4,6,8,10,12,14,16,18,20,22,24,26, - 28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72, - 74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114, - 116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150, - 152,154,156,158,160,162,164,166,0,10,2,0,15,15,17,19,1,0,32,33,3,0,8, - 8,20,21,45,47,1,0,37,38,2,0,3,3,65,65,2,0,11,12,37,38,2,0,29,29,52,53, - 4,0,32,34,50,50,52,53,64,64,2,0,15,15,17,17,1,0,55,56,1295,0,168,1,0, - 0,0,2,231,1,0,0,0,4,271,1,0,0,0,6,301,1,0,0,0,8,303,1,0,0,0,10,305,1, - 0,0,0,12,321,1,0,0,0,14,350,1,0,0,0,16,352,1,0,0,0,18,354,1,0,0,0,20, - 366,1,0,0,0,22,369,1,0,0,0,24,392,1,0,0,0,26,396,1,0,0,0,28,406,1,0,0, - 0,30,425,1,0,0,0,32,450,1,0,0,0,34,453,1,0,0,0,36,459,1,0,0,0,38,463, - 1,0,0,0,40,466,1,0,0,0,42,470,1,0,0,0,44,473,1,0,0,0,46,492,1,0,0,0,48, - 500,1,0,0,0,50,515,1,0,0,0,52,519,1,0,0,0,54,531,1,0,0,0,56,541,1,0,0, - 0,58,552,1,0,0,0,60,577,1,0,0,0,62,583,1,0,0,0,64,610,1,0,0,0,66,612, - 1,0,0,0,68,619,1,0,0,0,70,623,1,0,0,0,72,661,1,0,0,0,74,663,1,0,0,0,76, - 669,1,0,0,0,78,675,1,0,0,0,80,679,1,0,0,0,82,684,1,0,0,0,84,689,1,0,0, - 0,86,694,1,0,0,0,88,764,1,0,0,0,90,766,1,0,0,0,92,788,1,0,0,0,94,790, - 1,0,0,0,96,818,1,0,0,0,98,820,1,0,0,0,100,831,1,0,0,0,102,841,1,0,0,0, - 104,851,1,0,0,0,106,853,1,0,0,0,108,859,1,0,0,0,110,873,1,0,0,0,112,887, - 1,0,0,0,114,892,1,0,0,0,116,909,1,0,0,0,118,911,1,0,0,0,120,918,1,0,0, - 0,122,924,1,0,0,0,124,926,1,0,0,0,126,928,1,0,0,0,128,944,1,0,0,0,130, - 970,1,0,0,0,132,972,1,0,0,0,134,1002,1,0,0,0,136,1004,1,0,0,0,138,1021, - 1,0,0,0,140,1030,1,0,0,0,142,1042,1,0,0,0,144,1052,1,0,0,0,146,1064,1, - 0,0,0,148,1079,1,0,0,0,150,1100,1,0,0,0,152,1102,1,0,0,0,154,1123,1,0, - 0,0,156,1125,1,0,0,0,158,1138,1,0,0,0,160,1143,1,0,0,0,162,1180,1,0,0, - 0,164,1184,1,0,0,0,166,1188,1,0,0,0,168,178,3,160,80,0,169,173,3,2,1, - 0,170,172,7,0,0,0,171,170,1,0,0,0,172,175,1,0,0,0,173,171,1,0,0,0,173, - 174,1,0,0,0,174,177,1,0,0,0,175,173,1,0,0,0,176,169,1,0,0,0,177,180,1, - 0,0,0,178,176,1,0,0,0,178,179,1,0,0,0,179,190,1,0,0,0,180,178,1,0,0,0, - 181,185,3,4,2,0,182,184,7,0,0,0,183,182,1,0,0,0,184,187,1,0,0,0,185,183, - 1,0,0,0,185,186,1,0,0,0,186,189,1,0,0,0,187,185,1,0,0,0,188,181,1,0,0, - 0,189,192,1,0,0,0,190,188,1,0,0,0,190,191,1,0,0,0,191,202,1,0,0,0,192, - 190,1,0,0,0,193,197,3,6,3,0,194,196,7,0,0,0,195,194,1,0,0,0,196,199,1, - 0,0,0,197,195,1,0,0,0,197,198,1,0,0,0,198,201,1,0,0,0,199,197,1,0,0,0, - 200,193,1,0,0,0,201,204,1,0,0,0,202,200,1,0,0,0,202,203,1,0,0,0,203,214, - 1,0,0,0,204,202,1,0,0,0,205,209,3,96,48,0,206,208,7,0,0,0,207,206,1,0, - 0,0,208,211,1,0,0,0,209,207,1,0,0,0,209,210,1,0,0,0,210,213,1,0,0,0,211, - 209,1,0,0,0,212,205,1,0,0,0,213,216,1,0,0,0,214,212,1,0,0,0,214,215,1, - 0,0,0,215,217,1,0,0,0,216,214,1,0,0,0,217,218,5,0,0,1,218,1,1,0,0,0,219, - 220,5,27,0,0,220,221,3,160,80,0,221,222,5,44,0,0,222,223,3,160,80,0,223, - 224,5,7,0,0,224,225,3,160,80,0,225,232,1,0,0,0,226,227,5,27,0,0,227,228, - 3,160,80,0,228,229,5,44,0,0,229,230,3,160,80,0,230,232,1,0,0,0,231,219, - 1,0,0,0,231,226,1,0,0,0,232,3,1,0,0,0,233,234,5,23,0,0,234,237,3,160, - 80,0,235,238,5,44,0,0,236,238,3,116,58,0,237,235,1,0,0,0,237,236,1,0, - 0,0,238,239,1,0,0,0,239,240,3,160,80,0,240,241,3,12,6,0,241,242,5,7,0, - 0,242,243,3,160,80,0,243,272,1,0,0,0,244,245,5,23,0,0,245,248,3,160,80, - 0,246,249,5,44,0,0,247,249,3,116,58,0,248,246,1,0,0,0,248,247,1,0,0,0, - 249,250,1,0,0,0,250,251,3,160,80,0,251,252,5,7,0,0,252,253,3,160,80,0, - 253,272,1,0,0,0,254,255,5,23,0,0,255,258,3,160,80,0,256,259,5,44,0,0, - 257,259,3,116,58,0,258,256,1,0,0,0,258,257,1,0,0,0,259,260,1,0,0,0,260, - 261,3,160,80,0,261,262,3,12,6,0,262,272,1,0,0,0,263,264,5,23,0,0,264, - 267,3,160,80,0,265,268,5,44,0,0,266,268,3,116,58,0,267,265,1,0,0,0,267, - 266,1,0,0,0,268,269,1,0,0,0,269,270,3,160,80,0,270,272,1,0,0,0,271,233, - 1,0,0,0,271,244,1,0,0,0,271,254,1,0,0,0,271,263,1,0,0,0,272,5,1,0,0,0, - 273,274,5,26,0,0,274,278,3,160,80,0,275,276,3,8,4,0,276,277,3,160,80, - 0,277,279,1,0,0,0,278,275,1,0,0,0,278,279,1,0,0,0,279,282,1,0,0,0,280, - 283,5,44,0,0,281,283,3,116,58,0,282,280,1,0,0,0,282,281,1,0,0,0,283,284, - 1,0,0,0,284,285,3,160,80,0,285,286,5,7,0,0,286,287,3,160,80,0,287,302, - 1,0,0,0,288,289,5,26,0,0,289,293,3,160,80,0,290,291,3,8,4,0,291,292,3, - 160,80,0,292,294,1,0,0,0,293,290,1,0,0,0,293,294,1,0,0,0,294,297,1,0, - 0,0,295,298,5,44,0,0,296,298,3,116,58,0,297,295,1,0,0,0,297,296,1,0,0, - 0,298,299,1,0,0,0,299,300,3,160,80,0,300,302,1,0,0,0,301,273,1,0,0,0, - 301,288,1,0,0,0,302,7,1,0,0,0,303,304,3,158,79,0,304,9,1,0,0,0,305,306, - 5,25,0,0,306,307,3,160,80,0,307,308,3,12,6,0,308,309,3,98,49,0,309,310, - 3,160,80,0,310,11,1,0,0,0,311,318,3,14,7,0,312,313,5,40,0,0,313,314,3, - 160,80,0,314,315,3,14,7,0,315,317,1,0,0,0,316,312,1,0,0,0,317,320,1,0, - 0,0,318,316,1,0,0,0,318,319,1,0,0,0,319,322,1,0,0,0,320,318,1,0,0,0,321, - 311,1,0,0,0,321,322,1,0,0,0,322,323,1,0,0,0,323,324,3,160,80,0,324,13, - 1,0,0,0,325,327,7,1,0,0,326,325,1,0,0,0,326,327,1,0,0,0,327,328,1,0,0, - 0,328,329,3,160,80,0,329,330,3,16,8,0,330,337,3,160,80,0,331,332,5,34, - 0,0,332,333,3,160,80,0,333,334,3,18,9,0,334,336,1,0,0,0,335,331,1,0,0, - 0,336,339,1,0,0,0,337,335,1,0,0,0,337,338,1,0,0,0,338,351,1,0,0,0,339, - 337,1,0,0,0,340,347,3,18,9,0,341,342,5,34,0,0,342,343,3,160,80,0,343, - 344,3,18,9,0,344,346,1,0,0,0,345,341,1,0,0,0,346,349,1,0,0,0,347,345, - 1,0,0,0,347,348,1,0,0,0,348,351,1,0,0,0,349,347,1,0,0,0,350,326,1,0,0, - 0,350,340,1,0,0,0,351,15,1,0,0,0,352,353,3,158,79,0,353,17,1,0,0,0,354, - 355,5,3,0,0,355,356,3,160,80,0,356,361,3,20,10,0,357,358,5,9,0,0,358, - 359,3,160,80,0,359,360,3,70,35,0,360,362,1,0,0,0,361,357,1,0,0,0,361, - 362,1,0,0,0,362,363,1,0,0,0,363,364,5,4,0,0,364,365,3,160,80,0,365,19, - 1,0,0,0,366,367,3,158,79,0,367,368,3,160,80,0,368,21,1,0,0,0,369,370, - 5,24,0,0,370,372,3,160,80,0,371,373,3,24,12,0,372,371,1,0,0,0,372,373, - 1,0,0,0,373,374,1,0,0,0,374,375,5,5,0,0,375,377,3,160,80,0,376,378,3, - 64,32,0,377,376,1,0,0,0,377,378,1,0,0,0,378,386,1,0,0,0,379,380,5,7,0, - 0,380,382,3,160,80,0,381,383,3,64,32,0,382,381,1,0,0,0,382,383,1,0,0, - 0,383,385,1,0,0,0,384,379,1,0,0,0,385,388,1,0,0,0,386,384,1,0,0,0,386, - 387,1,0,0,0,387,389,1,0,0,0,388,386,1,0,0,0,389,390,5,6,0,0,390,391,3, - 160,80,0,391,23,1,0,0,0,392,393,5,9,0,0,393,394,3,158,79,0,394,395,3, - 160,80,0,395,25,1,0,0,0,396,403,3,28,14,0,397,398,5,40,0,0,398,399,3, - 160,80,0,399,400,3,28,14,0,400,402,1,0,0,0,401,397,1,0,0,0,402,405,1, - 0,0,0,403,401,1,0,0,0,403,404,1,0,0,0,404,27,1,0,0,0,405,403,1,0,0,0, - 406,407,3,32,16,0,407,414,3,160,80,0,408,409,3,30,15,0,409,410,3,32,16, - 0,410,411,3,160,80,0,411,413,1,0,0,0,412,408,1,0,0,0,413,416,1,0,0,0, - 414,412,1,0,0,0,414,415,1,0,0,0,415,29,1,0,0,0,416,414,1,0,0,0,417,418, - 5,37,0,0,418,426,3,160,80,0,419,420,5,39,0,0,420,426,3,160,80,0,421,422, - 5,41,0,0,422,426,3,160,80,0,423,424,5,17,0,0,424,426,3,160,80,0,425,417, - 1,0,0,0,425,419,1,0,0,0,425,421,1,0,0,0,425,423,1,0,0,0,426,31,1,0,0, - 0,427,430,3,34,17,0,428,430,3,40,20,0,429,427,1,0,0,0,429,428,1,0,0,0, - 430,438,1,0,0,0,431,437,5,22,0,0,432,437,3,42,21,0,433,437,3,44,22,0, - 434,437,3,46,23,0,435,437,3,52,26,0,436,431,1,0,0,0,436,432,1,0,0,0,436, - 433,1,0,0,0,436,434,1,0,0,0,436,435,1,0,0,0,437,440,1,0,0,0,438,436,1, - 0,0,0,438,439,1,0,0,0,439,451,1,0,0,0,440,438,1,0,0,0,441,447,5,22,0, - 0,442,447,3,42,21,0,443,447,3,44,22,0,444,447,3,46,23,0,445,447,3,52, - 26,0,446,441,1,0,0,0,446,442,1,0,0,0,446,443,1,0,0,0,446,444,1,0,0,0, - 446,445,1,0,0,0,447,448,1,0,0,0,448,446,1,0,0,0,448,449,1,0,0,0,449,451, - 1,0,0,0,450,429,1,0,0,0,450,446,1,0,0,0,451,33,1,0,0,0,452,454,3,36,18, - 0,453,452,1,0,0,0,453,454,1,0,0,0,454,455,1,0,0,0,455,456,3,38,19,0,456, - 35,1,0,0,0,457,460,3,158,79,0,458,460,5,11,0,0,459,457,1,0,0,0,459,458, - 1,0,0,0,459,460,1,0,0,0,460,461,1,0,0,0,461,462,5,13,0,0,462,37,1,0,0, - 0,463,464,3,158,79,0,464,39,1,0,0,0,465,467,3,36,18,0,466,465,1,0,0,0, - 466,467,1,0,0,0,467,468,1,0,0,0,468,469,5,11,0,0,469,41,1,0,0,0,470,471, - 5,10,0,0,471,472,3,158,79,0,472,43,1,0,0,0,473,474,5,1,0,0,474,476,3, - 160,80,0,475,477,3,36,18,0,476,475,1,0,0,0,476,477,1,0,0,0,477,478,1, - 0,0,0,478,479,3,158,79,0,479,488,3,160,80,0,480,481,7,2,0,0,481,484,3, - 160,80,0,482,485,3,158,79,0,483,485,5,44,0,0,484,482,1,0,0,0,484,483, - 1,0,0,0,485,486,1,0,0,0,486,487,3,160,80,0,487,489,1,0,0,0,488,480,1, - 0,0,0,488,489,1,0,0,0,489,490,1,0,0,0,490,491,5,2,0,0,491,45,1,0,0,0, - 492,494,5,9,0,0,493,495,5,9,0,0,494,493,1,0,0,0,494,495,1,0,0,0,495,498, - 1,0,0,0,496,499,3,158,79,0,497,499,3,48,24,0,498,496,1,0,0,0,498,497, - 1,0,0,0,499,47,1,0,0,0,500,501,5,65,0,0,501,502,3,160,80,0,502,503,3, - 50,25,0,503,504,5,4,0,0,504,49,1,0,0,0,505,513,5,37,0,0,506,513,5,38, - 0,0,507,513,5,35,0,0,508,513,5,36,0,0,509,513,5,43,0,0,510,513,5,44,0, - 0,511,513,3,158,79,0,512,505,1,0,0,0,512,506,1,0,0,0,512,507,1,0,0,0, - 512,508,1,0,0,0,512,509,1,0,0,0,512,510,1,0,0,0,512,511,1,0,0,0,513,514, - 1,0,0,0,514,516,3,160,80,0,515,512,1,0,0,0,516,517,1,0,0,0,517,515,1, - 0,0,0,517,518,1,0,0,0,518,51,1,0,0,0,519,520,5,42,0,0,520,521,3,160,80, - 0,521,522,3,54,27,0,522,523,3,160,80,0,523,524,5,4,0,0,524,53,1,0,0,0, - 525,532,3,34,17,0,526,532,3,40,20,0,527,532,5,22,0,0,528,532,3,42,21, - 0,529,532,3,44,22,0,530,532,3,46,23,0,531,525,1,0,0,0,531,526,1,0,0,0, - 531,527,1,0,0,0,531,528,1,0,0,0,531,529,1,0,0,0,531,530,1,0,0,0,532,55, - 1,0,0,0,533,534,5,12,0,0,534,542,3,160,80,0,535,536,5,40,0,0,536,542, - 3,160,80,0,537,538,5,17,0,0,538,542,3,160,80,0,539,540,5,8,0,0,540,542, - 3,160,80,0,541,533,1,0,0,0,541,535,1,0,0,0,541,537,1,0,0,0,541,539,1, - 0,0,0,542,57,1,0,0,0,543,544,3,158,79,0,544,545,3,160,80,0,545,553,1, - 0,0,0,546,547,5,62,0,0,547,553,3,160,80,0,548,549,5,11,0,0,549,553,3, - 158,79,0,550,551,5,14,0,0,551,553,3,158,79,0,552,543,1,0,0,0,552,546, - 1,0,0,0,552,548,1,0,0,0,552,550,1,0,0,0,553,59,1,0,0,0,554,555,3,26,13, - 0,555,556,5,5,0,0,556,558,3,160,80,0,557,559,3,62,31,0,558,557,1,0,0, - 0,558,559,1,0,0,0,559,560,1,0,0,0,560,561,5,6,0,0,561,562,3,160,80,0, - 562,578,1,0,0,0,563,565,3,88,44,0,564,563,1,0,0,0,565,568,1,0,0,0,566, - 564,1,0,0,0,566,567,1,0,0,0,567,569,1,0,0,0,568,566,1,0,0,0,569,570,5, - 5,0,0,570,572,3,160,80,0,571,573,3,62,31,0,572,571,1,0,0,0,572,573,1, - 0,0,0,573,574,1,0,0,0,574,575,5,6,0,0,575,576,3,160,80,0,576,578,1,0, - 0,0,577,554,1,0,0,0,577,566,1,0,0,0,578,61,1,0,0,0,579,580,5,7,0,0,580, - 582,3,160,80,0,581,579,1,0,0,0,582,585,1,0,0,0,583,581,1,0,0,0,583,584, - 1,0,0,0,584,586,1,0,0,0,585,583,1,0,0,0,586,587,3,64,32,0,587,595,3,160, - 80,0,588,589,5,7,0,0,589,591,3,160,80,0,590,592,3,64,32,0,591,590,1,0, - 0,0,591,592,1,0,0,0,592,594,1,0,0,0,593,588,1,0,0,0,594,597,1,0,0,0,595, - 593,1,0,0,0,595,596,1,0,0,0,596,63,1,0,0,0,597,595,1,0,0,0,598,599,3, - 58,29,0,599,600,5,9,0,0,600,601,3,160,80,0,601,603,3,70,35,0,602,604, - 3,66,33,0,603,602,1,0,0,0,603,604,1,0,0,0,604,611,1,0,0,0,605,606,3,58, - 29,0,606,607,5,9,0,0,607,608,3,160,80,0,608,609,3,68,34,0,609,611,1,0, - 0,0,610,598,1,0,0,0,610,605,1,0,0,0,611,65,1,0,0,0,612,613,5,28,0,0,613, - 614,3,160,80,0,614,67,1,0,0,0,615,620,3,88,44,0,616,620,3,94,47,0,617, - 618,5,61,0,0,618,620,3,160,80,0,619,615,1,0,0,0,619,616,1,0,0,0,619,617, - 1,0,0,0,620,621,1,0,0,0,621,619,1,0,0,0,621,622,1,0,0,0,622,69,1,0,0, - 0,623,630,3,72,36,0,624,626,3,56,28,0,625,624,1,0,0,0,625,626,1,0,0,0, - 626,627,1,0,0,0,627,629,3,72,36,0,628,625,1,0,0,0,629,632,1,0,0,0,630, - 628,1,0,0,0,630,631,1,0,0,0,631,71,1,0,0,0,632,630,1,0,0,0,633,634,3, - 80,40,0,634,635,3,160,80,0,635,662,1,0,0,0,636,637,3,82,41,0,637,638, - 3,160,80,0,638,662,1,0,0,0,639,640,3,84,42,0,640,641,3,160,80,0,641,662, - 1,0,0,0,642,643,5,44,0,0,643,662,3,160,80,0,644,645,5,31,0,0,645,662, - 3,160,80,0,646,647,3,158,79,0,647,648,3,160,80,0,648,662,1,0,0,0,649, - 662,3,118,59,0,650,651,3,116,58,0,651,652,3,160,80,0,652,662,1,0,0,0, - 653,662,3,78,39,0,654,662,3,120,60,0,655,662,3,74,37,0,656,662,3,162, - 81,0,657,658,3,86,43,0,658,659,3,160,80,0,659,662,1,0,0,0,660,662,3,76, - 38,0,661,633,1,0,0,0,661,636,1,0,0,0,661,639,1,0,0,0,661,642,1,0,0,0, - 661,644,1,0,0,0,661,646,1,0,0,0,661,649,1,0,0,0,661,650,1,0,0,0,661,653, - 1,0,0,0,661,654,1,0,0,0,661,655,1,0,0,0,661,656,1,0,0,0,661,657,1,0,0, - 0,661,660,1,0,0,0,662,73,1,0,0,0,663,664,5,65,0,0,664,665,3,160,80,0, - 665,666,3,70,35,0,666,667,5,4,0,0,667,668,3,160,80,0,668,75,1,0,0,0,669, - 670,5,60,0,0,670,671,3,160,80,0,671,672,3,70,35,0,672,673,5,4,0,0,673, - 674,3,160,80,0,674,77,1,0,0,0,675,676,5,22,0,0,676,677,3,160,80,0,677, - 79,1,0,0,0,678,680,7,3,0,0,679,678,1,0,0,0,679,680,1,0,0,0,680,681,1, - 0,0,0,681,682,5,43,0,0,682,81,1,0,0,0,683,685,7,3,0,0,684,683,1,0,0,0, - 684,685,1,0,0,0,685,686,1,0,0,0,686,687,5,29,0,0,687,83,1,0,0,0,688,690, - 7,3,0,0,689,688,1,0,0,0,689,690,1,0,0,0,690,691,1,0,0,0,691,692,5,35, - 0,0,692,85,1,0,0,0,693,695,7,3,0,0,694,693,1,0,0,0,694,695,1,0,0,0,695, - 696,1,0,0,0,696,697,5,36,0,0,697,87,1,0,0,0,698,699,3,158,79,0,699,700, - 3,160,80,0,700,765,1,0,0,0,701,702,3,80,40,0,702,703,3,160,80,0,703,765, - 1,0,0,0,704,705,3,82,41,0,705,706,3,160,80,0,706,765,1,0,0,0,707,708, - 3,84,42,0,708,709,3,160,80,0,709,765,1,0,0,0,710,711,3,86,43,0,711,712, - 3,160,80,0,712,765,1,0,0,0,713,714,5,44,0,0,714,765,3,160,80,0,715,716, - 3,116,58,0,716,717,3,160,80,0,717,765,1,0,0,0,718,719,5,22,0,0,719,765, - 3,160,80,0,720,721,5,31,0,0,721,765,3,160,80,0,722,723,5,20,0,0,723,765, - 3,160,80,0,724,725,5,21,0,0,725,765,3,160,80,0,726,727,5,9,0,0,727,765, - 3,160,80,0,728,729,5,65,0,0,729,734,3,160,80,0,730,733,3,88,44,0,731, - 733,3,92,46,0,732,730,1,0,0,0,732,731,1,0,0,0,733,736,1,0,0,0,734,732, - 1,0,0,0,734,735,1,0,0,0,735,737,1,0,0,0,736,734,1,0,0,0,737,738,5,4,0, - 0,738,739,3,160,80,0,739,765,1,0,0,0,740,741,5,3,0,0,741,746,3,160,80, - 0,742,745,3,88,44,0,743,745,3,92,46,0,744,742,1,0,0,0,744,743,1,0,0,0, - 745,748,1,0,0,0,746,744,1,0,0,0,746,747,1,0,0,0,747,749,1,0,0,0,748,746, - 1,0,0,0,749,750,5,4,0,0,750,751,3,160,80,0,751,765,1,0,0,0,752,753,5, - 1,0,0,753,758,3,160,80,0,754,757,3,88,44,0,755,757,3,92,46,0,756,754, - 1,0,0,0,756,755,1,0,0,0,757,760,1,0,0,0,758,756,1,0,0,0,758,759,1,0,0, - 0,759,761,1,0,0,0,760,758,1,0,0,0,761,762,5,2,0,0,762,763,3,160,80,0, - 763,765,1,0,0,0,764,698,1,0,0,0,764,701,1,0,0,0,764,704,1,0,0,0,764,707, - 1,0,0,0,764,710,1,0,0,0,764,713,1,0,0,0,764,715,1,0,0,0,764,718,1,0,0, - 0,764,720,1,0,0,0,764,722,1,0,0,0,764,724,1,0,0,0,764,726,1,0,0,0,764, - 728,1,0,0,0,764,740,1,0,0,0,764,752,1,0,0,0,765,89,1,0,0,0,766,767,5, - 61,0,0,767,771,3,160,80,0,768,770,3,88,44,0,769,768,1,0,0,0,770,773,1, - 0,0,0,771,769,1,0,0,0,771,772,1,0,0,0,772,777,1,0,0,0,773,771,1,0,0,0, - 774,778,3,94,47,0,775,776,5,7,0,0,776,778,3,160,80,0,777,774,1,0,0,0, - 777,775,1,0,0,0,778,91,1,0,0,0,779,789,3,94,47,0,780,781,5,61,0,0,781, - 789,3,160,80,0,782,783,5,7,0,0,783,789,3,160,80,0,784,785,5,18,0,0,785, - 789,3,160,80,0,786,787,5,19,0,0,787,789,3,160,80,0,788,779,1,0,0,0,788, - 780,1,0,0,0,788,782,1,0,0,0,788,784,1,0,0,0,788,786,1,0,0,0,789,93,1, - 0,0,0,790,791,5,5,0,0,791,802,3,160,80,0,792,801,3,62,31,0,793,801,3, - 96,48,0,794,801,3,88,44,0,795,801,3,94,47,0,796,797,5,61,0,0,797,801, - 3,160,80,0,798,799,5,7,0,0,799,801,3,160,80,0,800,792,1,0,0,0,800,793, - 1,0,0,0,800,794,1,0,0,0,800,795,1,0,0,0,800,796,1,0,0,0,800,798,1,0,0, - 0,801,804,1,0,0,0,802,800,1,0,0,0,802,803,1,0,0,0,803,805,1,0,0,0,804, - 802,1,0,0,0,805,806,5,6,0,0,806,807,3,160,80,0,807,95,1,0,0,0,808,819, - 3,60,30,0,809,819,3,10,5,0,810,819,3,22,11,0,811,819,3,132,66,0,812,819, - 3,136,68,0,813,819,3,100,50,0,814,819,3,142,71,0,815,819,3,144,72,0,816, - 819,3,146,73,0,817,819,3,90,45,0,818,808,1,0,0,0,818,809,1,0,0,0,818, - 810,1,0,0,0,818,811,1,0,0,0,818,812,1,0,0,0,818,813,1,0,0,0,818,814,1, - 0,0,0,818,815,1,0,0,0,818,816,1,0,0,0,818,817,1,0,0,0,819,97,1,0,0,0, - 820,821,5,5,0,0,821,825,3,160,80,0,822,824,3,96,48,0,823,822,1,0,0,0, - 824,827,1,0,0,0,825,823,1,0,0,0,825,826,1,0,0,0,826,828,1,0,0,0,827,825, - 1,0,0,0,828,829,5,6,0,0,829,830,3,160,80,0,830,99,1,0,0,0,831,832,5,49, - 0,0,832,833,3,160,80,0,833,834,3,102,51,0,834,835,3,160,80,0,835,836, - 3,98,49,0,836,101,1,0,0,0,837,842,3,106,53,0,838,842,3,108,54,0,839,842, - 3,110,55,0,840,842,3,104,52,0,841,837,1,0,0,0,841,838,1,0,0,0,841,839, - 1,0,0,0,841,840,1,0,0,0,842,103,1,0,0,0,843,844,5,3,0,0,844,845,3,160, - 80,0,845,846,3,102,51,0,846,847,3,160,80,0,847,848,5,4,0,0,848,852,1, - 0,0,0,849,852,3,112,56,0,850,852,3,114,57,0,851,843,1,0,0,0,851,849,1, - 0,0,0,851,850,1,0,0,0,852,105,1,0,0,0,853,854,5,33,0,0,854,855,3,160, - 80,0,855,856,5,17,0,0,856,857,3,160,80,0,857,858,3,104,52,0,858,107,1, - 0,0,0,859,869,3,104,52,0,860,861,3,160,80,0,861,862,5,17,0,0,862,863, - 3,160,80,0,863,864,5,34,0,0,864,865,3,160,80,0,865,866,5,17,0,0,866,867, - 3,160,80,0,867,868,3,104,52,0,868,870,1,0,0,0,869,860,1,0,0,0,870,871, - 1,0,0,0,871,869,1,0,0,0,871,872,1,0,0,0,872,109,1,0,0,0,873,883,3,104, - 52,0,874,875,3,160,80,0,875,876,5,17,0,0,876,877,3,160,80,0,877,878,5, - 50,0,0,878,879,3,160,80,0,879,880,5,17,0,0,880,881,3,160,80,0,881,882, - 3,104,52,0,882,884,1,0,0,0,883,874,1,0,0,0,884,885,1,0,0,0,885,883,1, - 0,0,0,885,886,1,0,0,0,886,111,1,0,0,0,887,888,5,3,0,0,888,889,3,160,80, - 0,889,890,3,64,32,0,890,891,5,4,0,0,891,113,1,0,0,0,892,897,7,4,0,0,893, - 896,3,88,44,0,894,896,3,92,46,0,895,893,1,0,0,0,895,894,1,0,0,0,896,899, - 1,0,0,0,897,895,1,0,0,0,897,898,1,0,0,0,898,900,1,0,0,0,899,897,1,0,0, - 0,900,901,5,4,0,0,901,115,1,0,0,0,902,903,5,30,0,0,903,904,3,160,80,0, - 904,905,5,44,0,0,905,906,3,160,80,0,906,907,5,4,0,0,907,910,1,0,0,0,908, - 910,5,16,0,0,909,902,1,0,0,0,909,908,1,0,0,0,910,117,1,0,0,0,911,912, - 5,63,0,0,912,913,3,160,80,0,913,914,5,62,0,0,914,915,3,160,80,0,915,916, - 5,4,0,0,916,917,3,160,80,0,917,119,1,0,0,0,918,919,5,54,0,0,919,920,3, - 160,80,0,920,921,3,126,63,0,921,922,5,4,0,0,922,923,3,160,80,0,923,121, - 1,0,0,0,924,925,3,130,65,0,925,123,1,0,0,0,926,927,7,5,0,0,927,125,1, - 0,0,0,928,938,3,122,61,0,929,930,5,17,0,0,930,931,3,160,80,0,931,932, - 3,124,62,0,932,933,5,17,0,0,933,934,3,160,80,0,934,935,3,122,61,0,935, - 937,1,0,0,0,936,929,1,0,0,0,937,940,1,0,0,0,938,936,1,0,0,0,938,939,1, - 0,0,0,939,941,1,0,0,0,940,938,1,0,0,0,941,942,3,160,80,0,942,127,1,0, - 0,0,943,945,7,3,0,0,944,943,1,0,0,0,944,945,1,0,0,0,945,946,1,0,0,0,946, - 947,5,3,0,0,947,948,3,160,80,0,948,949,3,126,63,0,949,950,5,4,0,0,950, - 951,3,160,80,0,951,129,1,0,0,0,952,953,3,80,40,0,953,954,3,160,80,0,954, - 971,1,0,0,0,955,956,3,84,42,0,956,957,3,160,80,0,957,971,1,0,0,0,958, - 959,3,86,43,0,959,960,3,160,80,0,960,971,1,0,0,0,961,962,3,82,41,0,962, - 963,3,160,80,0,963,971,1,0,0,0,964,965,3,128,64,0,965,966,3,160,80,0, - 966,971,1,0,0,0,967,968,3,120,60,0,968,969,3,160,80,0,969,971,1,0,0,0, - 970,952,1,0,0,0,970,955,1,0,0,0,970,958,1,0,0,0,970,961,1,0,0,0,970,964, - 1,0,0,0,970,967,1,0,0,0,971,131,1,0,0,0,972,973,5,48,0,0,973,974,3,160, - 80,0,974,975,5,5,0,0,975,977,3,160,80,0,976,978,3,134,67,0,977,976,1, - 0,0,0,977,978,1,0,0,0,978,986,1,0,0,0,979,980,5,7,0,0,980,982,3,160,80, - 0,981,983,3,134,67,0,982,981,1,0,0,0,982,983,1,0,0,0,983,985,1,0,0,0, - 984,979,1,0,0,0,985,988,1,0,0,0,986,984,1,0,0,0,986,987,1,0,0,0,987,989, - 1,0,0,0,988,986,1,0,0,0,989,990,5,6,0,0,990,991,3,160,80,0,991,133,1, - 0,0,0,992,993,3,58,29,0,993,994,5,9,0,0,994,995,3,160,80,0,995,996,3, - 70,35,0,996,1003,1,0,0,0,997,998,3,58,29,0,998,999,5,9,0,0,999,1000,3, - 160,80,0,1000,1001,3,68,34,0,1001,1003,1,0,0,0,1002,992,1,0,0,0,1002, - 997,1,0,0,0,1003,135,1,0,0,0,1004,1005,5,51,0,0,1005,1006,3,160,80,0, - 1006,1007,5,17,0,0,1007,1008,3,160,80,0,1008,1009,3,158,79,0,1009,1010, - 3,160,80,0,1010,1011,5,5,0,0,1011,1015,3,160,80,0,1012,1014,3,138,69, - 0,1013,1012,1,0,0,0,1014,1017,1,0,0,0,1015,1013,1,0,0,0,1015,1016,1,0, - 0,0,1016,1018,1,0,0,0,1017,1015,1,0,0,0,1018,1019,5,6,0,0,1019,1020,3, - 160,80,0,1020,137,1,0,0,0,1021,1022,3,140,70,0,1022,1023,5,5,0,0,1023, - 1025,3,160,80,0,1024,1026,3,62,31,0,1025,1024,1,0,0,0,1025,1026,1,0,0, - 0,1026,1027,1,0,0,0,1027,1028,5,6,0,0,1028,1029,3,160,80,0,1029,139,1, - 0,0,0,1030,1031,7,6,0,0,1031,1039,3,160,80,0,1032,1033,5,40,0,0,1033, - 1034,3,160,80,0,1034,1035,7,6,0,0,1035,1036,3,160,80,0,1036,1038,1,0, - 0,0,1037,1032,1,0,0,0,1038,1041,1,0,0,0,1039,1037,1,0,0,0,1039,1040,1, - 0,0,0,1040,141,1,0,0,0,1041,1039,1,0,0,0,1042,1043,5,57,0,0,1043,1044, - 3,160,80,0,1044,1045,5,5,0,0,1045,1047,3,160,80,0,1046,1048,3,62,31,0, - 1047,1046,1,0,0,0,1047,1048,1,0,0,0,1048,1049,1,0,0,0,1049,1050,5,6,0, - 0,1050,1051,3,160,80,0,1051,143,1,0,0,0,1052,1053,5,58,0,0,1053,1054, - 3,160,80,0,1054,1055,3,158,79,0,1055,1056,3,160,80,0,1056,1057,5,5,0, - 0,1057,1059,3,160,80,0,1058,1060,3,62,31,0,1059,1058,1,0,0,0,1059,1060, - 1,0,0,0,1060,1061,1,0,0,0,1061,1062,5,6,0,0,1062,1063,3,160,80,0,1063, - 145,1,0,0,0,1064,1065,5,59,0,0,1065,1066,3,160,80,0,1066,1067,3,148,74, - 0,1067,1068,3,160,80,0,1068,1069,5,5,0,0,1069,1073,3,160,80,0,1070,1072, - 3,152,76,0,1071,1070,1,0,0,0,1072,1075,1,0,0,0,1073,1071,1,0,0,0,1073, - 1074,1,0,0,0,1074,1076,1,0,0,0,1075,1073,1,0,0,0,1076,1077,5,6,0,0,1077, - 1078,3,160,80,0,1078,147,1,0,0,0,1079,1087,3,150,75,0,1080,1081,3,160, - 80,0,1081,1082,5,40,0,0,1082,1083,3,160,80,0,1083,1084,3,150,75,0,1084, - 1086,1,0,0,0,1085,1080,1,0,0,0,1086,1089,1,0,0,0,1087,1085,1,0,0,0,1087, - 1088,1,0,0,0,1088,149,1,0,0,0,1089,1087,1,0,0,0,1090,1101,5,44,0,0,1091, - 1097,3,158,79,0,1092,1093,3,160,80,0,1093,1094,3,158,79,0,1094,1096,1, - 0,0,0,1095,1092,1,0,0,0,1096,1099,1,0,0,0,1097,1095,1,0,0,0,1097,1098, - 1,0,0,0,1098,1101,1,0,0,0,1099,1097,1,0,0,0,1100,1090,1,0,0,0,1100,1091, - 1,0,0,0,1101,151,1,0,0,0,1102,1103,3,154,77,0,1103,1104,3,160,80,0,1104, - 1105,5,5,0,0,1105,1107,3,160,80,0,1106,1108,3,156,78,0,1107,1106,1,0, - 0,0,1107,1108,1,0,0,0,1108,1117,1,0,0,0,1109,1110,3,160,80,0,1110,1111, - 5,7,0,0,1111,1113,3,160,80,0,1112,1114,3,156,78,0,1113,1112,1,0,0,0,1113, - 1114,1,0,0,0,1114,1116,1,0,0,0,1115,1109,1,0,0,0,1116,1119,1,0,0,0,1117, - 1115,1,0,0,0,1117,1118,1,0,0,0,1118,1120,1,0,0,0,1119,1117,1,0,0,0,1120, - 1121,5,6,0,0,1121,1122,3,160,80,0,1122,153,1,0,0,0,1123,1124,5,61,0,0, - 1124,155,1,0,0,0,1125,1126,3,158,79,0,1126,1127,3,160,80,0,1127,1128, - 5,9,0,0,1128,1129,3,160,80,0,1129,1135,3,80,40,0,1130,1131,3,160,80,0, - 1131,1132,3,80,40,0,1132,1134,1,0,0,0,1133,1130,1,0,0,0,1134,1137,1,0, - 0,0,1135,1133,1,0,0,0,1135,1136,1,0,0,0,1136,157,1,0,0,0,1137,1135,1, - 0,0,0,1138,1139,7,7,0,0,1139,159,1,0,0,0,1140,1142,7,8,0,0,1141,1140, - 1,0,0,0,1142,1145,1,0,0,0,1143,1141,1,0,0,0,1143,1144,1,0,0,0,1144,161, - 1,0,0,0,1145,1143,1,0,0,0,1146,1147,7,9,0,0,1147,1148,3,160,80,0,1148, - 1149,3,166,83,0,1149,1150,5,40,0,0,1150,1151,3,160,80,0,1151,1152,3,166, - 83,0,1152,1153,5,40,0,0,1153,1154,3,160,80,0,1154,1159,3,166,83,0,1155, - 1156,5,40,0,0,1156,1157,3,160,80,0,1157,1158,3,164,82,0,1158,1160,1,0, - 0,0,1159,1155,1,0,0,0,1159,1160,1,0,0,0,1160,1161,1,0,0,0,1161,1162,5, - 4,0,0,1162,1163,3,160,80,0,1163,1181,1,0,0,0,1164,1165,7,9,0,0,1165,1166, - 3,160,80,0,1166,1167,3,166,83,0,1167,1168,3,160,80,0,1168,1169,3,166, - 83,0,1169,1170,3,160,80,0,1170,1175,3,166,83,0,1171,1172,5,12,0,0,1172, - 1173,3,160,80,0,1173,1174,3,164,82,0,1174,1176,1,0,0,0,1175,1171,1,0, - 0,0,1175,1176,1,0,0,0,1176,1177,1,0,0,0,1177,1178,5,4,0,0,1178,1179,3, - 160,80,0,1179,1181,1,0,0,0,1180,1146,1,0,0,0,1180,1164,1,0,0,0,1181,163, - 1,0,0,0,1182,1185,3,130,65,0,1183,1185,3,120,60,0,1184,1182,1,0,0,0,1184, - 1183,1,0,0,0,1185,165,1,0,0,0,1186,1189,3,130,65,0,1187,1189,3,120,60, - 0,1188,1186,1,0,0,0,1188,1187,1,0,0,0,1189,167,1,0,0,0,117,173,178,185, - 190,197,202,209,214,231,237,248,258,267,271,278,282,293,297,301,318,321, - 326,337,347,350,361,372,377,382,386,403,414,425,429,436,438,446,448,450, - 453,459,466,476,484,488,494,498,512,517,531,541,552,558,566,572,577,583, - 591,595,603,610,619,621,625,630,661,679,684,689,694,732,734,744,746,756, - 758,764,771,777,788,800,802,818,825,841,851,871,885,895,897,909,938,944, - 970,977,982,986,1002,1015,1025,1039,1047,1059,1073,1087,1097,1100,1107, - 1113,1117,1135,1143,1159,1175,1180,1184,1188 - }; - staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); - - antlr4::atn::ATNDeserializer deserializer; - staticData->atn = deserializer.deserialize(staticData->serializedATN); - - const size_t count = staticData->atn->getNumberOfDecisions(); - staticData->decisionToDFA.reserve(count); - for (size_t i = 0; i < count; i++) { - staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); - } - css3parserParserStaticData = staticData.release(); -} - -} - -css3Parser::css3Parser(TokenStream *input) : css3Parser(input, antlr4::atn::ParserATNSimulatorOptions()) {} - -css3Parser::css3Parser(TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options) : Parser(input) { - css3Parser::initialize(); - _interpreter = new atn::ParserATNSimulator(this, *css3parserParserStaticData->atn, css3parserParserStaticData->decisionToDFA, css3parserParserStaticData->sharedContextCache, options); -} - -css3Parser::~css3Parser() { - delete _interpreter; -} - -const atn::ATN& css3Parser::getATN() const { - return *css3parserParserStaticData->atn; -} - -std::string css3Parser::getGrammarFileName() const { - return "css3Parser.g4"; -} - -const std::vector& css3Parser::getRuleNames() const { - return css3parserParserStaticData->ruleNames; -} - -const dfa::Vocabulary& css3Parser::getVocabulary() const { - return css3parserParserStaticData->vocabulary; -} - -antlr4::atn::SerializedATNView css3Parser::getSerializedATN() const { - return css3parserParserStaticData->serializedATN; -} - - -//----------------- StylesheetContext ------------------------------------------------------------------ - -css3Parser::StylesheetContext::StylesheetContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::WsContext* css3Parser::StylesheetContext::ws() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::StylesheetContext::EOF() { - return getToken(css3Parser::EOF, 0); -} - -std::vector css3Parser::StylesheetContext::charset() { - return getRuleContexts(); -} - -css3Parser::CharsetContext* css3Parser::StylesheetContext::charset(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::StylesheetContext::imports() { - return getRuleContexts(); -} - -css3Parser::ImportsContext* css3Parser::StylesheetContext::imports(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::StylesheetContext::namespace_() { - return getRuleContexts(); -} - -css3Parser::Namespace_Context* css3Parser::StylesheetContext::namespace_(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::StylesheetContext::nestedStatement() { - return getRuleContexts(); -} - -css3Parser::NestedStatementContext* css3Parser::StylesheetContext::nestedStatement(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::StylesheetContext::Comment() { - return getTokens(css3Parser::Comment); -} - -tree::TerminalNode* css3Parser::StylesheetContext::Comment(size_t i) { - return getToken(css3Parser::Comment, i); -} - -std::vector css3Parser::StylesheetContext::Space() { - return getTokens(css3Parser::Space); -} - -tree::TerminalNode* css3Parser::StylesheetContext::Space(size_t i) { - return getToken(css3Parser::Space, i); -} - -std::vector css3Parser::StylesheetContext::Cdo() { - return getTokens(css3Parser::Cdo); -} - -tree::TerminalNode* css3Parser::StylesheetContext::Cdo(size_t i) { - return getToken(css3Parser::Cdo, i); -} - -std::vector css3Parser::StylesheetContext::Cdc() { - return getTokens(css3Parser::Cdc); -} - -tree::TerminalNode* css3Parser::StylesheetContext::Cdc(size_t i) { - return getToken(css3Parser::Cdc, i); -} - - -size_t css3Parser::StylesheetContext::getRuleIndex() const { - return css3Parser::RuleStylesheet; -} - -void css3Parser::StylesheetContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterStylesheet(this); -} - -void css3Parser::StylesheetContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitStylesheet(this); -} - - -std::any css3Parser::StylesheetContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitStylesheet(this); - else - return visitor->visitChildren(this); -} - -css3Parser::StylesheetContext* css3Parser::stylesheet() { - StylesheetContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 0, css3Parser::RuleStylesheet); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(168); - ws(); - setState(178); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::Charset) { - setState(169); - charset(); - setState(173); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 950272) != 0)) { - setState(170); - _la = _input->LA(1); - if (!((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 950272) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(175); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(180); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(190); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::Import) { - setState(181); - imports(); - setState(185); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 950272) != 0)) { - setState(182); - _la = _input->LA(1); - if (!((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 950272) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(187); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(192); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(202); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::Namespace) { - setState(193); - namespace_(); - setState(197); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 950272) != 0)) { - setState(194); - _la = _input->LA(1); - if (!((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 950272) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(199); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(204); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(214); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 3332413584879726122) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(205); - nestedStatement(); - setState(209); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 950272) != 0)) { - setState(206); - _la = _input->LA(1); - if (!((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 950272) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(211); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(216); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(217); - match(css3Parser::EOF); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CharsetContext ------------------------------------------------------------------ - -css3Parser::CharsetContext::CharsetContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::CharsetContext::getRuleIndex() const { - return css3Parser::RuleCharset; -} - -void css3Parser::CharsetContext::copyFrom(CharsetContext *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- BadCharsetContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::BadCharsetContext::Charset() { - return getToken(css3Parser::Charset, 0); -} - -std::vector css3Parser::BadCharsetContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::BadCharsetContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::BadCharsetContext::String_() { - return getToken(css3Parser::String_, 0); -} - -css3Parser::BadCharsetContext::BadCharsetContext(CharsetContext *ctx) { copyFrom(ctx); } - -void css3Parser::BadCharsetContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBadCharset(this); -} -void css3Parser::BadCharsetContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBadCharset(this); -} - -std::any css3Parser::BadCharsetContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBadCharset(this); - else - return visitor->visitChildren(this); -} -//----------------- GoodCharsetContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::GoodCharsetContext::Charset() { - return getToken(css3Parser::Charset, 0); -} - -std::vector css3Parser::GoodCharsetContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::GoodCharsetContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::GoodCharsetContext::String_() { - return getToken(css3Parser::String_, 0); -} - -tree::TerminalNode* css3Parser::GoodCharsetContext::SemiColon() { - return getToken(css3Parser::SemiColon, 0); -} - -css3Parser::GoodCharsetContext::GoodCharsetContext(CharsetContext *ctx) { copyFrom(ctx); } - -void css3Parser::GoodCharsetContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGoodCharset(this); -} -void css3Parser::GoodCharsetContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGoodCharset(this); -} - -std::any css3Parser::GoodCharsetContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGoodCharset(this); - else - return visitor->visitChildren(this); -} -css3Parser::CharsetContext* css3Parser::charset() { - CharsetContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 2, css3Parser::RuleCharset); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(231); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 8, _ctx)) { - case 1: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(219); - match(css3Parser::Charset); - setState(220); - ws(); - setState(221); - match(css3Parser::String_); - setState(222); - ws(); - setState(223); - match(css3Parser::SemiColon); - setState(224); - ws(); - break; - } - - case 2: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(226); - match(css3Parser::Charset); - setState(227); - ws(); - setState(228); - match(css3Parser::String_); - setState(229); - ws(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ImportsContext ------------------------------------------------------------------ - -css3Parser::ImportsContext::ImportsContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::ImportsContext::getRuleIndex() const { - return css3Parser::RuleImports; -} - -void css3Parser::ImportsContext::copyFrom(ImportsContext *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- BadImportContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::BadImportContext::Import() { - return getToken(css3Parser::Import, 0); -} - -std::vector css3Parser::BadImportContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::BadImportContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::MediaQueryListContext* css3Parser::BadImportContext::mediaQueryList() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::BadImportContext::String_() { - return getToken(css3Parser::String_, 0); -} - -css3Parser::UrlContext* css3Parser::BadImportContext::url() { - return getRuleContext(0); -} - -css3Parser::BadImportContext::BadImportContext(ImportsContext *ctx) { copyFrom(ctx); } - -void css3Parser::BadImportContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBadImport(this); -} -void css3Parser::BadImportContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBadImport(this); -} - -std::any css3Parser::BadImportContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBadImport(this); - else - return visitor->visitChildren(this); -} -//----------------- GoodImportContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::GoodImportContext::Import() { - return getToken(css3Parser::Import, 0); -} - -std::vector css3Parser::GoodImportContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::GoodImportContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::MediaQueryListContext* css3Parser::GoodImportContext::mediaQueryList() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::GoodImportContext::SemiColon() { - return getToken(css3Parser::SemiColon, 0); -} - -tree::TerminalNode* css3Parser::GoodImportContext::String_() { - return getToken(css3Parser::String_, 0); -} - -css3Parser::UrlContext* css3Parser::GoodImportContext::url() { - return getRuleContext(0); -} - -css3Parser::GoodImportContext::GoodImportContext(ImportsContext *ctx) { copyFrom(ctx); } - -void css3Parser::GoodImportContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGoodImport(this); -} -void css3Parser::GoodImportContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGoodImport(this); -} - -std::any css3Parser::GoodImportContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGoodImport(this); - else - return visitor->visitChildren(this); -} -css3Parser::ImportsContext* css3Parser::imports() { - ImportsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 4, css3Parser::RuleImports); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(271); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 13, _ctx)) { - case 1: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(233); - match(css3Parser::Import); - setState(234); - ws(); - setState(237); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::String_: { - setState(235); - match(css3Parser::String_); - break; - } - - case css3Parser::Url: - case css3Parser::Url_: { - setState(236); - url(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(239); - ws(); - setState(240); - mediaQueryList(); - setState(241); - match(css3Parser::SemiColon); - setState(242); - ws(); - break; - } - - case 2: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(244); - match(css3Parser::Import); - setState(245); - ws(); - setState(248); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::String_: { - setState(246); - match(css3Parser::String_); - break; - } - - case css3Parser::Url: - case css3Parser::Url_: { - setState(247); - url(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(250); - ws(); - setState(251); - match(css3Parser::SemiColon); - setState(252); - ws(); - break; - } - - case 3: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 3); - setState(254); - match(css3Parser::Import); - setState(255); - ws(); - setState(258); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::String_: { - setState(256); - match(css3Parser::String_); - break; - } - - case css3Parser::Url: - case css3Parser::Url_: { - setState(257); - url(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(260); - ws(); - setState(261); - mediaQueryList(); - break; - } - - case 4: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 4); - setState(263); - match(css3Parser::Import); - setState(264); - ws(); - setState(267); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::String_: { - setState(265); - match(css3Parser::String_); - break; - } - - case css3Parser::Url: - case css3Parser::Url_: { - setState(266); - url(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(269); - ws(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Namespace_Context ------------------------------------------------------------------ - -css3Parser::Namespace_Context::Namespace_Context(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::Namespace_Context::getRuleIndex() const { - return css3Parser::RuleNamespace_; -} - -void css3Parser::Namespace_Context::copyFrom(Namespace_Context *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- GoodNamespaceContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::GoodNamespaceContext::Namespace() { - return getToken(css3Parser::Namespace, 0); -} - -std::vector css3Parser::GoodNamespaceContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::GoodNamespaceContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::GoodNamespaceContext::SemiColon() { - return getToken(css3Parser::SemiColon, 0); -} - -tree::TerminalNode* css3Parser::GoodNamespaceContext::String_() { - return getToken(css3Parser::String_, 0); -} - -css3Parser::UrlContext* css3Parser::GoodNamespaceContext::url() { - return getRuleContext(0); -} - -css3Parser::NamespacePrefixContext* css3Parser::GoodNamespaceContext::namespacePrefix() { - return getRuleContext(0); -} - -css3Parser::GoodNamespaceContext::GoodNamespaceContext(Namespace_Context *ctx) { copyFrom(ctx); } - -void css3Parser::GoodNamespaceContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGoodNamespace(this); -} -void css3Parser::GoodNamespaceContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGoodNamespace(this); -} - -std::any css3Parser::GoodNamespaceContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGoodNamespace(this); - else - return visitor->visitChildren(this); -} -//----------------- BadNamespaceContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::BadNamespaceContext::Namespace() { - return getToken(css3Parser::Namespace, 0); -} - -std::vector css3Parser::BadNamespaceContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::BadNamespaceContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::BadNamespaceContext::String_() { - return getToken(css3Parser::String_, 0); -} - -css3Parser::UrlContext* css3Parser::BadNamespaceContext::url() { - return getRuleContext(0); -} - -css3Parser::NamespacePrefixContext* css3Parser::BadNamespaceContext::namespacePrefix() { - return getRuleContext(0); -} - -css3Parser::BadNamespaceContext::BadNamespaceContext(Namespace_Context *ctx) { copyFrom(ctx); } - -void css3Parser::BadNamespaceContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBadNamespace(this); -} -void css3Parser::BadNamespaceContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBadNamespace(this); -} - -std::any css3Parser::BadNamespaceContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBadNamespace(this); - else - return visitor->visitChildren(this); -} -css3Parser::Namespace_Context* css3Parser::namespace_() { - Namespace_Context *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 6, css3Parser::RuleNamespace_); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(301); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 18, _ctx)) { - case 1: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(273); - match(css3Parser::Namespace); - setState(274); - ws(); - setState(278); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 32) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 32)) & 4298375175) != 0)) { - setState(275); - namespacePrefix(); - setState(276); - ws(); - } - setState(282); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::String_: { - setState(280); - match(css3Parser::String_); - break; - } - - case css3Parser::Url: - case css3Parser::Url_: { - setState(281); - url(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(284); - ws(); - setState(285); - match(css3Parser::SemiColon); - setState(286); - ws(); - break; - } - - case 2: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(288); - match(css3Parser::Namespace); - setState(289); - ws(); - setState(293); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 32) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 32)) & 4298375175) != 0)) { - setState(290); - namespacePrefix(); - setState(291); - ws(); - } - setState(297); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::String_: { - setState(295); - match(css3Parser::String_); - break; - } - - case css3Parser::Url: - case css3Parser::Url_: { - setState(296); - url(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(299); - ws(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- NamespacePrefixContext ------------------------------------------------------------------ - -css3Parser::NamespacePrefixContext::NamespacePrefixContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::IdentContext* css3Parser::NamespacePrefixContext::ident() { - return getRuleContext(0); -} - - -size_t css3Parser::NamespacePrefixContext::getRuleIndex() const { - return css3Parser::RuleNamespacePrefix; -} - -void css3Parser::NamespacePrefixContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNamespacePrefix(this); -} - -void css3Parser::NamespacePrefixContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNamespacePrefix(this); -} - - -std::any css3Parser::NamespacePrefixContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNamespacePrefix(this); - else - return visitor->visitChildren(this); -} - -css3Parser::NamespacePrefixContext* css3Parser::namespacePrefix() { - NamespacePrefixContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 8, css3Parser::RuleNamespacePrefix); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(303); - ident(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- MediaContext ------------------------------------------------------------------ - -css3Parser::MediaContext::MediaContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::MediaContext::Media() { - return getToken(css3Parser::Media, 0); -} - -std::vector css3Parser::MediaContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::MediaContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::MediaQueryListContext* css3Parser::MediaContext::mediaQueryList() { - return getRuleContext(0); -} - -css3Parser::GroupRuleBodyContext* css3Parser::MediaContext::groupRuleBody() { - return getRuleContext(0); -} - - -size_t css3Parser::MediaContext::getRuleIndex() const { - return css3Parser::RuleMedia; -} - -void css3Parser::MediaContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterMedia(this); -} - -void css3Parser::MediaContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitMedia(this); -} - - -std::any css3Parser::MediaContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitMedia(this); - else - return visitor->visitChildren(this); -} - -css3Parser::MediaContext* css3Parser::media() { - MediaContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 10, css3Parser::RuleMedia); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(305); - match(css3Parser::Media); - setState(306); - ws(); - setState(307); - mediaQueryList(); - setState(308); - groupRuleBody(); - setState(309); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- MediaQueryListContext ------------------------------------------------------------------ - -css3Parser::MediaQueryListContext::MediaQueryListContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::MediaQueryListContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::MediaQueryListContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::MediaQueryListContext::mediaQuery() { - return getRuleContexts(); -} - -css3Parser::MediaQueryContext* css3Parser::MediaQueryListContext::mediaQuery(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::MediaQueryListContext::Comma() { - return getTokens(css3Parser::Comma); -} - -tree::TerminalNode* css3Parser::MediaQueryListContext::Comma(size_t i) { - return getToken(css3Parser::Comma, i); -} - - -size_t css3Parser::MediaQueryListContext::getRuleIndex() const { - return css3Parser::RuleMediaQueryList; -} - -void css3Parser::MediaQueryListContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterMediaQueryList(this); -} - -void css3Parser::MediaQueryListContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitMediaQueryList(this); -} - - -std::any css3Parser::MediaQueryListContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitMediaQueryList(this); - else - return visitor->visitChildren(this); -} - -css3Parser::MediaQueryListContext* css3Parser::mediaQueryList() { - MediaQueryListContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 12, css3Parser::RuleMediaQueryList); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(321); - _errHandler->sync(this); - - switch (getInterpreter()->adaptivePredict(_input, 20, _ctx)) { - case 1: { - setState(311); - mediaQuery(); - setState(318); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::Comma) { - setState(312); - match(css3Parser::Comma); - setState(313); - ws(); - setState(314); - mediaQuery(); - setState(320); - _errHandler->sync(this); - _la = _input->LA(1); - } - break; - } - - default: - break; - } - setState(323); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- MediaQueryContext ------------------------------------------------------------------ - -css3Parser::MediaQueryContext::MediaQueryContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::MediaQueryContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::MediaQueryContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::MediaTypeContext* css3Parser::MediaQueryContext::mediaType() { - return getRuleContext(0); -} - -std::vector css3Parser::MediaQueryContext::And() { - return getTokens(css3Parser::And); -} - -tree::TerminalNode* css3Parser::MediaQueryContext::And(size_t i) { - return getToken(css3Parser::And, i); -} - -std::vector css3Parser::MediaQueryContext::mediaExpression() { - return getRuleContexts(); -} - -css3Parser::MediaExpressionContext* css3Parser::MediaQueryContext::mediaExpression(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::MediaQueryContext::MediaOnly() { - return getToken(css3Parser::MediaOnly, 0); -} - -tree::TerminalNode* css3Parser::MediaQueryContext::Not() { - return getToken(css3Parser::Not, 0); -} - - -size_t css3Parser::MediaQueryContext::getRuleIndex() const { - return css3Parser::RuleMediaQuery; -} - -void css3Parser::MediaQueryContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterMediaQuery(this); -} - -void css3Parser::MediaQueryContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitMediaQuery(this); -} - - -std::any css3Parser::MediaQueryContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitMediaQuery(this); - else - return visitor->visitChildren(this); -} - -css3Parser::MediaQueryContext* css3Parser::mediaQuery() { - MediaQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 14, css3Parser::RuleMediaQuery); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - setState(350); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::Comment: - case css3Parser::Space: - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: { - enterOuterAlt(_localctx, 1); - setState(326); - _errHandler->sync(this); - - switch (getInterpreter()->adaptivePredict(_input, 21, _ctx)) { - case 1: { - setState(325); - _la = _input->LA(1); - if (!(_la == css3Parser::MediaOnly - - || _la == css3Parser::Not)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - break; - } - - default: - break; - } - setState(328); - ws(); - setState(329); - mediaType(); - setState(330); - ws(); - setState(337); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 22, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(331); - match(css3Parser::And); - setState(332); - ws(); - setState(333); - mediaExpression(); - } - setState(339); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 22, _ctx); - } - break; - } - - case css3Parser::OpenParen: { - enterOuterAlt(_localctx, 2); - setState(340); - mediaExpression(); - setState(347); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 23, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(341); - match(css3Parser::And); - setState(342); - ws(); - setState(343); - mediaExpression(); - } - setState(349); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 23, _ctx); - } - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- MediaTypeContext ------------------------------------------------------------------ - -css3Parser::MediaTypeContext::MediaTypeContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::IdentContext* css3Parser::MediaTypeContext::ident() { - return getRuleContext(0); -} - - -size_t css3Parser::MediaTypeContext::getRuleIndex() const { - return css3Parser::RuleMediaType; -} - -void css3Parser::MediaTypeContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterMediaType(this); -} - -void css3Parser::MediaTypeContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitMediaType(this); -} - - -std::any css3Parser::MediaTypeContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitMediaType(this); - else - return visitor->visitChildren(this); -} - -css3Parser::MediaTypeContext* css3Parser::mediaType() { - MediaTypeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 16, css3Parser::RuleMediaType); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(352); - ident(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- MediaExpressionContext ------------------------------------------------------------------ - -css3Parser::MediaExpressionContext::MediaExpressionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::MediaExpressionContext::OpenParen() { - return getToken(css3Parser::OpenParen, 0); -} - -std::vector css3Parser::MediaExpressionContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::MediaExpressionContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::MediaFeatureContext* css3Parser::MediaExpressionContext::mediaFeature() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::MediaExpressionContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - -tree::TerminalNode* css3Parser::MediaExpressionContext::Colon() { - return getToken(css3Parser::Colon, 0); -} - -css3Parser::ExprContext* css3Parser::MediaExpressionContext::expr() { - return getRuleContext(0); -} - - -size_t css3Parser::MediaExpressionContext::getRuleIndex() const { - return css3Parser::RuleMediaExpression; -} - -void css3Parser::MediaExpressionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterMediaExpression(this); -} - -void css3Parser::MediaExpressionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitMediaExpression(this); -} - - -std::any css3Parser::MediaExpressionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitMediaExpression(this); - else - return visitor->visitChildren(this); -} - -css3Parser::MediaExpressionContext* css3Parser::mediaExpression() { - MediaExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 18, css3Parser::RuleMediaExpression); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(354); - match(css3Parser::OpenParen); - setState(355); - ws(); - setState(356); - mediaFeature(); - setState(361); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Colon) { - setState(357); - match(css3Parser::Colon); - setState(358); - ws(); - setState(359); - expr(); - } - setState(363); - match(css3Parser::CloseParen); - setState(364); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- MediaFeatureContext ------------------------------------------------------------------ - -css3Parser::MediaFeatureContext::MediaFeatureContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::IdentContext* css3Parser::MediaFeatureContext::ident() { - return getRuleContext(0); -} - -css3Parser::WsContext* css3Parser::MediaFeatureContext::ws() { - return getRuleContext(0); -} - - -size_t css3Parser::MediaFeatureContext::getRuleIndex() const { - return css3Parser::RuleMediaFeature; -} - -void css3Parser::MediaFeatureContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterMediaFeature(this); -} - -void css3Parser::MediaFeatureContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitMediaFeature(this); -} - - -std::any css3Parser::MediaFeatureContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitMediaFeature(this); - else - return visitor->visitChildren(this); -} - -css3Parser::MediaFeatureContext* css3Parser::mediaFeature() { - MediaFeatureContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 20, css3Parser::RuleMediaFeature); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(366); - ident(); - setState(367); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- PageContext ------------------------------------------------------------------ - -css3Parser::PageContext::PageContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::PageContext::Page() { - return getToken(css3Parser::Page, 0); -} - -std::vector css3Parser::PageContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::PageContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::PageContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -tree::TerminalNode* css3Parser::PageContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -css3Parser::PseudoPageContext* css3Parser::PageContext::pseudoPage() { - return getRuleContext(0); -} - -std::vector css3Parser::PageContext::declaration() { - return getRuleContexts(); -} - -css3Parser::DeclarationContext* css3Parser::PageContext::declaration(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::PageContext::SemiColon() { - return getTokens(css3Parser::SemiColon); -} - -tree::TerminalNode* css3Parser::PageContext::SemiColon(size_t i) { - return getToken(css3Parser::SemiColon, i); -} - - -size_t css3Parser::PageContext::getRuleIndex() const { - return css3Parser::RulePage; -} - -void css3Parser::PageContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPage(this); -} - -void css3Parser::PageContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPage(this); -} - - -std::any css3Parser::PageContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPage(this); - else - return visitor->visitChildren(this); -} - -css3Parser::PageContext* css3Parser::page() { - PageContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 22, css3Parser::RulePage); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(369); - match(css3Parser::Page); - setState(370); - ws(); - setState(372); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Colon) { - setState(371); - pseudoPage(); - } - setState(374); - match(css3Parser::OpenBrace); - setState(375); - ws(); - setState(377); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 11) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 11)) & 11266145908686857) != 0)) { - setState(376); - declaration(); - } - setState(386); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::SemiColon) { - setState(379); - match(css3Parser::SemiColon); - setState(380); - ws(); - setState(382); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 11) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 11)) & 11266145908686857) != 0)) { - setState(381); - declaration(); - } - setState(388); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(389); - match(css3Parser::CloseBrace); - setState(390); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- PseudoPageContext ------------------------------------------------------------------ - -css3Parser::PseudoPageContext::PseudoPageContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::PseudoPageContext::Colon() { - return getToken(css3Parser::Colon, 0); -} - -css3Parser::IdentContext* css3Parser::PseudoPageContext::ident() { - return getRuleContext(0); -} - -css3Parser::WsContext* css3Parser::PseudoPageContext::ws() { - return getRuleContext(0); -} - - -size_t css3Parser::PseudoPageContext::getRuleIndex() const { - return css3Parser::RulePseudoPage; -} - -void css3Parser::PseudoPageContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPseudoPage(this); -} - -void css3Parser::PseudoPageContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPseudoPage(this); -} - - -std::any css3Parser::PseudoPageContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPseudoPage(this); - else - return visitor->visitChildren(this); -} - -css3Parser::PseudoPageContext* css3Parser::pseudoPage() { - PseudoPageContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 24, css3Parser::RulePseudoPage); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(392); - match(css3Parser::Colon); - setState(393); - ident(); - setState(394); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SelectorGroupContext ------------------------------------------------------------------ - -css3Parser::SelectorGroupContext::SelectorGroupContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::SelectorGroupContext::selector() { - return getRuleContexts(); -} - -css3Parser::SelectorContext* css3Parser::SelectorGroupContext::selector(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SelectorGroupContext::Comma() { - return getTokens(css3Parser::Comma); -} - -tree::TerminalNode* css3Parser::SelectorGroupContext::Comma(size_t i) { - return getToken(css3Parser::Comma, i); -} - -std::vector css3Parser::SelectorGroupContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::SelectorGroupContext::ws(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::SelectorGroupContext::getRuleIndex() const { - return css3Parser::RuleSelectorGroup; -} - -void css3Parser::SelectorGroupContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSelectorGroup(this); -} - -void css3Parser::SelectorGroupContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSelectorGroup(this); -} - - -std::any css3Parser::SelectorGroupContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSelectorGroup(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SelectorGroupContext* css3Parser::selectorGroup() { - SelectorGroupContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 26, css3Parser::RuleSelectorGroup); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(396); - selector(); - setState(403); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::Comma) { - setState(397); - match(css3Parser::Comma); - setState(398); - ws(); - setState(399); - selector(); - setState(405); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SelectorContext ------------------------------------------------------------------ - -css3Parser::SelectorContext::SelectorContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::SelectorContext::simpleSelectorSequence() { - return getRuleContexts(); -} - -css3Parser::SimpleSelectorSequenceContext* css3Parser::SelectorContext::simpleSelectorSequence(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SelectorContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::SelectorContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SelectorContext::combinator() { - return getRuleContexts(); -} - -css3Parser::CombinatorContext* css3Parser::SelectorContext::combinator(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::SelectorContext::getRuleIndex() const { - return css3Parser::RuleSelector; -} - -void css3Parser::SelectorContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSelector(this); -} - -void css3Parser::SelectorContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSelector(this); -} - - -std::any css3Parser::SelectorContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSelector(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SelectorContext* css3Parser::selector() { - SelectorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 28, css3Parser::RuleSelector); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(406); - simpleSelectorSequence(); - setState(407); - ws(); - setState(414); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 2886218153984) != 0)) { - setState(408); - combinator(); - setState(409); - simpleSelectorSequence(); - setState(410); - ws(); - setState(416); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CombinatorContext ------------------------------------------------------------------ - -css3Parser::CombinatorContext::CombinatorContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::CombinatorContext::Plus() { - return getToken(css3Parser::Plus, 0); -} - -css3Parser::WsContext* css3Parser::CombinatorContext::ws() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::CombinatorContext::Greater() { - return getToken(css3Parser::Greater, 0); -} - -tree::TerminalNode* css3Parser::CombinatorContext::Tilde() { - return getToken(css3Parser::Tilde, 0); -} - -tree::TerminalNode* css3Parser::CombinatorContext::Space() { - return getToken(css3Parser::Space, 0); -} - - -size_t css3Parser::CombinatorContext::getRuleIndex() const { - return css3Parser::RuleCombinator; -} - -void css3Parser::CombinatorContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCombinator(this); -} - -void css3Parser::CombinatorContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCombinator(this); -} - - -std::any css3Parser::CombinatorContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCombinator(this); - else - return visitor->visitChildren(this); -} - -css3Parser::CombinatorContext* css3Parser::combinator() { - CombinatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 30, css3Parser::RuleCombinator); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(425); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::Plus: { - enterOuterAlt(_localctx, 1); - setState(417); - match(css3Parser::Plus); - setState(418); - ws(); - break; - } - - case css3Parser::Greater: { - enterOuterAlt(_localctx, 2); - setState(419); - match(css3Parser::Greater); - setState(420); - ws(); - break; - } - - case css3Parser::Tilde: { - enterOuterAlt(_localctx, 3); - setState(421); - match(css3Parser::Tilde); - setState(422); - ws(); - break; - } - - case css3Parser::Space: { - enterOuterAlt(_localctx, 4); - setState(423); - match(css3Parser::Space); - setState(424); - ws(); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SimpleSelectorSequenceContext ------------------------------------------------------------------ - -css3Parser::SimpleSelectorSequenceContext::SimpleSelectorSequenceContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::TypeSelectorContext* css3Parser::SimpleSelectorSequenceContext::typeSelector() { - return getRuleContext(0); -} - -css3Parser::UniversalContext* css3Parser::SimpleSelectorSequenceContext::universal() { - return getRuleContext(0); -} - -std::vector css3Parser::SimpleSelectorSequenceContext::Hash() { - return getTokens(css3Parser::Hash); -} - -tree::TerminalNode* css3Parser::SimpleSelectorSequenceContext::Hash(size_t i) { - return getToken(css3Parser::Hash, i); -} - -std::vector css3Parser::SimpleSelectorSequenceContext::className() { - return getRuleContexts(); -} - -css3Parser::ClassNameContext* css3Parser::SimpleSelectorSequenceContext::className(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SimpleSelectorSequenceContext::attrib() { - return getRuleContexts(); -} - -css3Parser::AttribContext* css3Parser::SimpleSelectorSequenceContext::attrib(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SimpleSelectorSequenceContext::pseudo() { - return getRuleContexts(); -} - -css3Parser::PseudoContext* css3Parser::SimpleSelectorSequenceContext::pseudo(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SimpleSelectorSequenceContext::negation() { - return getRuleContexts(); -} - -css3Parser::NegationContext* css3Parser::SimpleSelectorSequenceContext::negation(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::SimpleSelectorSequenceContext::getRuleIndex() const { - return css3Parser::RuleSimpleSelectorSequence; -} - -void css3Parser::SimpleSelectorSequenceContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSimpleSelectorSequence(this); -} - -void css3Parser::SimpleSelectorSequenceContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSimpleSelectorSequence(this); -} - - -std::any css3Parser::SimpleSelectorSequenceContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSimpleSelectorSequence(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SimpleSelectorSequenceContext* css3Parser::simpleSelectorSequence() { - SimpleSelectorSequenceContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 32, css3Parser::RuleSimpleSelectorSequence); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(450); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::Multiply: - case css3Parser::Pipe: - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: { - enterOuterAlt(_localctx, 1); - setState(429); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 33, _ctx)) { - case 1: { - setState(427); - typeSelector(); - break; - } - - case 2: { - setState(428); - universal(); - break; - } - - default: - break; - } - setState(438); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 4398050706946) != 0)) { - setState(436); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::Hash: { - setState(431); - match(css3Parser::Hash); - break; - } - - case css3Parser::Dot: { - setState(432); - className(); - break; - } - - case css3Parser::OpenBracket: { - setState(433); - attrib(); - break; - } - - case css3Parser::Colon: { - setState(434); - pseudo(); - break; - } - - case css3Parser::PseudoNot: { - setState(435); - negation(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(440); - _errHandler->sync(this); - _la = _input->LA(1); - } - break; - } - - case css3Parser::OpenBracket: - case css3Parser::Colon: - case css3Parser::Dot: - case css3Parser::Hash: - case css3Parser::PseudoNot: { - enterOuterAlt(_localctx, 2); - setState(446); - _errHandler->sync(this); - _la = _input->LA(1); - do { - setState(446); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::Hash: { - setState(441); - match(css3Parser::Hash); - break; - } - - case css3Parser::Dot: { - setState(442); - className(); - break; - } - - case css3Parser::OpenBracket: { - setState(443); - attrib(); - break; - } - - case css3Parser::Colon: { - setState(444); - pseudo(); - break; - } - - case css3Parser::PseudoNot: { - setState(445); - negation(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(448); - _errHandler->sync(this); - _la = _input->LA(1); - } while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 4398050706946) != 0)); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- TypeSelectorContext ------------------------------------------------------------------ - -css3Parser::TypeSelectorContext::TypeSelectorContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::ElementNameContext* css3Parser::TypeSelectorContext::elementName() { - return getRuleContext(0); -} - -css3Parser::TypeNamespacePrefixContext* css3Parser::TypeSelectorContext::typeNamespacePrefix() { - return getRuleContext(0); -} - - -size_t css3Parser::TypeSelectorContext::getRuleIndex() const { - return css3Parser::RuleTypeSelector; -} - -void css3Parser::TypeSelectorContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterTypeSelector(this); -} - -void css3Parser::TypeSelectorContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitTypeSelector(this); -} - - -std::any css3Parser::TypeSelectorContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitTypeSelector(this); - else - return visitor->visitChildren(this); -} - -css3Parser::TypeSelectorContext* css3Parser::typeSelector() { - TypeSelectorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 34, css3Parser::RuleTypeSelector); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(453); - _errHandler->sync(this); - - switch (getInterpreter()->adaptivePredict(_input, 39, _ctx)) { - case 1: { - setState(452); - typeNamespacePrefix(); - break; - } - - default: - break; - } - setState(455); - elementName(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- TypeNamespacePrefixContext ------------------------------------------------------------------ - -css3Parser::TypeNamespacePrefixContext::TypeNamespacePrefixContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::TypeNamespacePrefixContext::Pipe() { - return getToken(css3Parser::Pipe, 0); -} - -css3Parser::IdentContext* css3Parser::TypeNamespacePrefixContext::ident() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::TypeNamespacePrefixContext::Multiply() { - return getToken(css3Parser::Multiply, 0); -} - - -size_t css3Parser::TypeNamespacePrefixContext::getRuleIndex() const { - return css3Parser::RuleTypeNamespacePrefix; -} - -void css3Parser::TypeNamespacePrefixContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterTypeNamespacePrefix(this); -} - -void css3Parser::TypeNamespacePrefixContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitTypeNamespacePrefix(this); -} - - -std::any css3Parser::TypeNamespacePrefixContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitTypeNamespacePrefix(this); - else - return visitor->visitChildren(this); -} - -css3Parser::TypeNamespacePrefixContext* css3Parser::typeNamespacePrefix() { - TypeNamespacePrefixContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 36, css3Parser::RuleTypeNamespacePrefix); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(459); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: { - setState(457); - ident(); - break; - } - - case css3Parser::Multiply: { - setState(458); - match(css3Parser::Multiply); - break; - } - - case css3Parser::Pipe: { - break; - } - - default: - break; - } - setState(461); - match(css3Parser::Pipe); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ElementNameContext ------------------------------------------------------------------ - -css3Parser::ElementNameContext::ElementNameContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::IdentContext* css3Parser::ElementNameContext::ident() { - return getRuleContext(0); -} - - -size_t css3Parser::ElementNameContext::getRuleIndex() const { - return css3Parser::RuleElementName; -} - -void css3Parser::ElementNameContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterElementName(this); -} - -void css3Parser::ElementNameContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitElementName(this); -} - - -std::any css3Parser::ElementNameContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitElementName(this); - else - return visitor->visitChildren(this); -} - -css3Parser::ElementNameContext* css3Parser::elementName() { - ElementNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 38, css3Parser::RuleElementName); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(463); - ident(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- UniversalContext ------------------------------------------------------------------ - -css3Parser::UniversalContext::UniversalContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::UniversalContext::Multiply() { - return getToken(css3Parser::Multiply, 0); -} - -css3Parser::TypeNamespacePrefixContext* css3Parser::UniversalContext::typeNamespacePrefix() { - return getRuleContext(0); -} - - -size_t css3Parser::UniversalContext::getRuleIndex() const { - return css3Parser::RuleUniversal; -} - -void css3Parser::UniversalContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterUniversal(this); -} - -void css3Parser::UniversalContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitUniversal(this); -} - - -std::any css3Parser::UniversalContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitUniversal(this); - else - return visitor->visitChildren(this); -} - -css3Parser::UniversalContext* css3Parser::universal() { - UniversalContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 40, css3Parser::RuleUniversal); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(466); - _errHandler->sync(this); - - switch (getInterpreter()->adaptivePredict(_input, 41, _ctx)) { - case 1: { - setState(465); - typeNamespacePrefix(); - break; - } - - default: - break; - } - setState(468); - match(css3Parser::Multiply); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ClassNameContext ------------------------------------------------------------------ - -css3Parser::ClassNameContext::ClassNameContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::ClassNameContext::Dot() { - return getToken(css3Parser::Dot, 0); -} - -css3Parser::IdentContext* css3Parser::ClassNameContext::ident() { - return getRuleContext(0); -} - - -size_t css3Parser::ClassNameContext::getRuleIndex() const { - return css3Parser::RuleClassName; -} - -void css3Parser::ClassNameContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterClassName(this); -} - -void css3Parser::ClassNameContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitClassName(this); -} - - -std::any css3Parser::ClassNameContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitClassName(this); - else - return visitor->visitChildren(this); -} - -css3Parser::ClassNameContext* css3Parser::className() { - ClassNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 42, css3Parser::RuleClassName); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(470); - match(css3Parser::Dot); - setState(471); - ident(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- AttribContext ------------------------------------------------------------------ - -css3Parser::AttribContext::AttribContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::AttribContext::OpenBracket() { - return getToken(css3Parser::OpenBracket, 0); -} - -std::vector css3Parser::AttribContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::AttribContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::AttribContext::ident() { - return getRuleContexts(); -} - -css3Parser::IdentContext* css3Parser::AttribContext::ident(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::AttribContext::CloseBracket() { - return getToken(css3Parser::CloseBracket, 0); -} - -css3Parser::TypeNamespacePrefixContext* css3Parser::AttribContext::typeNamespacePrefix() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::AttribContext::PrefixMatch() { - return getToken(css3Parser::PrefixMatch, 0); -} - -tree::TerminalNode* css3Parser::AttribContext::SuffixMatch() { - return getToken(css3Parser::SuffixMatch, 0); -} - -tree::TerminalNode* css3Parser::AttribContext::SubstringMatch() { - return getToken(css3Parser::SubstringMatch, 0); -} - -tree::TerminalNode* css3Parser::AttribContext::Equal() { - return getToken(css3Parser::Equal, 0); -} - -tree::TerminalNode* css3Parser::AttribContext::Includes() { - return getToken(css3Parser::Includes, 0); -} - -tree::TerminalNode* css3Parser::AttribContext::DashMatch() { - return getToken(css3Parser::DashMatch, 0); -} - -tree::TerminalNode* css3Parser::AttribContext::String_() { - return getToken(css3Parser::String_, 0); -} - - -size_t css3Parser::AttribContext::getRuleIndex() const { - return css3Parser::RuleAttrib; -} - -void css3Parser::AttribContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterAttrib(this); -} - -void css3Parser::AttribContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitAttrib(this); -} - - -std::any css3Parser::AttribContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitAttrib(this); - else - return visitor->visitChildren(this); -} - -css3Parser::AttribContext* css3Parser::attrib() { - AttribContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 44, css3Parser::RuleAttrib); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(473); - match(css3Parser::OpenBracket); - setState(474); - ws(); - setState(476); - _errHandler->sync(this); - - switch (getInterpreter()->adaptivePredict(_input, 42, _ctx)) { - case 1: { - setState(475); - typeNamespacePrefix(); - break; - } - - default: - break; - } - setState(478); - ident(); - setState(479); - ws(); - setState(488); - _errHandler->sync(this); - - _la = _input->LA(1); - if ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 246290607767808) != 0)) { - setState(480); - _la = _input->LA(1); - if (!((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 246290607767808) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(481); - ws(); - setState(484); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: { - setState(482); - ident(); - break; - } - - case css3Parser::String_: { - setState(483); - match(css3Parser::String_); - break; - } - - default: - throw NoViableAltException(this); - } - setState(486); - ws(); - } - setState(490); - match(css3Parser::CloseBracket); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- PseudoContext ------------------------------------------------------------------ - -css3Parser::PseudoContext::PseudoContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::PseudoContext::Colon() { - return getTokens(css3Parser::Colon); -} - -tree::TerminalNode* css3Parser::PseudoContext::Colon(size_t i) { - return getToken(css3Parser::Colon, i); -} - -css3Parser::IdentContext* css3Parser::PseudoContext::ident() { - return getRuleContext(0); -} - -css3Parser::FunctionalPseudoContext* css3Parser::PseudoContext::functionalPseudo() { - return getRuleContext(0); -} - - -size_t css3Parser::PseudoContext::getRuleIndex() const { - return css3Parser::RulePseudo; -} - -void css3Parser::PseudoContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPseudo(this); -} - -void css3Parser::PseudoContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPseudo(this); -} - - -std::any css3Parser::PseudoContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPseudo(this); - else - return visitor->visitChildren(this); -} - -css3Parser::PseudoContext* css3Parser::pseudo() { - PseudoContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 46, css3Parser::RulePseudo); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(492); - match(css3Parser::Colon); - setState(494); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Colon) { - setState(493); - match(css3Parser::Colon); - } - setState(498); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: { - setState(496); - ident(); - break; - } - - case css3Parser::Function_: { - setState(497); - functionalPseudo(); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FunctionalPseudoContext ------------------------------------------------------------------ - -css3Parser::FunctionalPseudoContext::FunctionalPseudoContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::FunctionalPseudoContext::Function_() { - return getToken(css3Parser::Function_, 0); -} - -css3Parser::WsContext* css3Parser::FunctionalPseudoContext::ws() { - return getRuleContext(0); -} - -css3Parser::ExpressionContext* css3Parser::FunctionalPseudoContext::expression() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::FunctionalPseudoContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - - -size_t css3Parser::FunctionalPseudoContext::getRuleIndex() const { - return css3Parser::RuleFunctionalPseudo; -} - -void css3Parser::FunctionalPseudoContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFunctionalPseudo(this); -} - -void css3Parser::FunctionalPseudoContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFunctionalPseudo(this); -} - - -std::any css3Parser::FunctionalPseudoContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFunctionalPseudo(this); - else - return visitor->visitChildren(this); -} - -css3Parser::FunctionalPseudoContext* css3Parser::functionalPseudo() { - FunctionalPseudoContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 48, css3Parser::RuleFunctionalPseudo); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(500); - match(css3Parser::Function_); - setState(501); - ws(); - setState(502); - expression(); - setState(503); - match(css3Parser::CloseParen); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ExpressionContext ------------------------------------------------------------------ - -css3Parser::ExpressionContext::ExpressionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::ExpressionContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::ExpressionContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::ExpressionContext::Plus() { - return getTokens(css3Parser::Plus); -} - -tree::TerminalNode* css3Parser::ExpressionContext::Plus(size_t i) { - return getToken(css3Parser::Plus, i); -} - -std::vector css3Parser::ExpressionContext::Minus() { - return getTokens(css3Parser::Minus); -} - -tree::TerminalNode* css3Parser::ExpressionContext::Minus(size_t i) { - return getToken(css3Parser::Minus, i); -} - -std::vector css3Parser::ExpressionContext::Dimension() { - return getTokens(css3Parser::Dimension); -} - -tree::TerminalNode* css3Parser::ExpressionContext::Dimension(size_t i) { - return getToken(css3Parser::Dimension, i); -} - -std::vector css3Parser::ExpressionContext::UnknownDimension() { - return getTokens(css3Parser::UnknownDimension); -} - -tree::TerminalNode* css3Parser::ExpressionContext::UnknownDimension(size_t i) { - return getToken(css3Parser::UnknownDimension, i); -} - -std::vector css3Parser::ExpressionContext::Number() { - return getTokens(css3Parser::Number); -} - -tree::TerminalNode* css3Parser::ExpressionContext::Number(size_t i) { - return getToken(css3Parser::Number, i); -} - -std::vector css3Parser::ExpressionContext::String_() { - return getTokens(css3Parser::String_); -} - -tree::TerminalNode* css3Parser::ExpressionContext::String_(size_t i) { - return getToken(css3Parser::String_, i); -} - -std::vector css3Parser::ExpressionContext::ident() { - return getRuleContexts(); -} - -css3Parser::IdentContext* css3Parser::ExpressionContext::ident(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::ExpressionContext::getRuleIndex() const { - return css3Parser::RuleExpression; -} - -void css3Parser::ExpressionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterExpression(this); -} - -void css3Parser::ExpressionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitExpression(this); -} - - -std::any css3Parser::ExpressionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitExpression(this); - else - return visitor->visitChildren(this); -} - -css3Parser::ExpressionContext* css3Parser::expression() { - ExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 50, css3Parser::RuleExpression); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(515); - _errHandler->sync(this); - _la = _input->LA(1); - do { - setState(512); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::Plus: { - setState(505); - match(css3Parser::Plus); - break; - } - - case css3Parser::Minus: { - setState(506); - match(css3Parser::Minus); - break; - } - - case css3Parser::Dimension: { - setState(507); - match(css3Parser::Dimension); - break; - } - - case css3Parser::UnknownDimension: { - setState(508); - match(css3Parser::UnknownDimension); - break; - } - - case css3Parser::Number: { - setState(509); - match(css3Parser::Number); - break; - } - - case css3Parser::String_: { - setState(510); - match(css3Parser::String_); - break; - } - - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: { - setState(511); - ident(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(514); - ws(); - setState(517); - _errHandler->sync(this); - _la = _input->LA(1); - } while (((((_la - 32) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 32)) & 4298381439) != 0)); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- NegationContext ------------------------------------------------------------------ - -css3Parser::NegationContext::NegationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::NegationContext::PseudoNot() { - return getToken(css3Parser::PseudoNot, 0); -} - -std::vector css3Parser::NegationContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::NegationContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::NegationArgContext* css3Parser::NegationContext::negationArg() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::NegationContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - - -size_t css3Parser::NegationContext::getRuleIndex() const { - return css3Parser::RuleNegation; -} - -void css3Parser::NegationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNegation(this); -} - -void css3Parser::NegationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNegation(this); -} - - -std::any css3Parser::NegationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNegation(this); - else - return visitor->visitChildren(this); -} - -css3Parser::NegationContext* css3Parser::negation() { - NegationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 52, css3Parser::RuleNegation); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(519); - match(css3Parser::PseudoNot); - setState(520); - ws(); - setState(521); - negationArg(); - setState(522); - ws(); - setState(523); - match(css3Parser::CloseParen); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- NegationArgContext ------------------------------------------------------------------ - -css3Parser::NegationArgContext::NegationArgContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::TypeSelectorContext* css3Parser::NegationArgContext::typeSelector() { - return getRuleContext(0); -} - -css3Parser::UniversalContext* css3Parser::NegationArgContext::universal() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::NegationArgContext::Hash() { - return getToken(css3Parser::Hash, 0); -} - -css3Parser::ClassNameContext* css3Parser::NegationArgContext::className() { - return getRuleContext(0); -} - -css3Parser::AttribContext* css3Parser::NegationArgContext::attrib() { - return getRuleContext(0); -} - -css3Parser::PseudoContext* css3Parser::NegationArgContext::pseudo() { - return getRuleContext(0); -} - - -size_t css3Parser::NegationArgContext::getRuleIndex() const { - return css3Parser::RuleNegationArg; -} - -void css3Parser::NegationArgContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNegationArg(this); -} - -void css3Parser::NegationArgContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNegationArg(this); -} - - -std::any css3Parser::NegationArgContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNegationArg(this); - else - return visitor->visitChildren(this); -} - -css3Parser::NegationArgContext* css3Parser::negationArg() { - NegationArgContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 54, css3Parser::RuleNegationArg); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(531); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 49, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(525); - typeSelector(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(526); - universal(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(527); - match(css3Parser::Hash); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(528); - className(); - break; - } - - case 5: { - enterOuterAlt(_localctx, 5); - setState(529); - attrib(); - break; - } - - case 6: { - enterOuterAlt(_localctx, 6); - setState(530); - pseudo(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Operator_Context ------------------------------------------------------------------ - -css3Parser::Operator_Context::Operator_Context(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::Operator_Context::getRuleIndex() const { - return css3Parser::RuleOperator_; -} - -void css3Parser::Operator_Context::copyFrom(Operator_Context *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- BadOperatorContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::BadOperatorContext::Equal() { - return getToken(css3Parser::Equal, 0); -} - -css3Parser::WsContext* css3Parser::BadOperatorContext::ws() { - return getRuleContext(0); -} - -css3Parser::BadOperatorContext::BadOperatorContext(Operator_Context *ctx) { copyFrom(ctx); } - -void css3Parser::BadOperatorContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBadOperator(this); -} -void css3Parser::BadOperatorContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBadOperator(this); -} - -std::any css3Parser::BadOperatorContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBadOperator(this); - else - return visitor->visitChildren(this); -} -//----------------- GoodOperatorContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::GoodOperatorContext::Divide() { - return getToken(css3Parser::Divide, 0); -} - -css3Parser::WsContext* css3Parser::GoodOperatorContext::ws() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::GoodOperatorContext::Comma() { - return getToken(css3Parser::Comma, 0); -} - -tree::TerminalNode* css3Parser::GoodOperatorContext::Space() { - return getToken(css3Parser::Space, 0); -} - -css3Parser::GoodOperatorContext::GoodOperatorContext(Operator_Context *ctx) { copyFrom(ctx); } - -void css3Parser::GoodOperatorContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGoodOperator(this); -} -void css3Parser::GoodOperatorContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGoodOperator(this); -} - -std::any css3Parser::GoodOperatorContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGoodOperator(this); - else - return visitor->visitChildren(this); -} -css3Parser::Operator_Context* css3Parser::operator_() { - Operator_Context *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 56, css3Parser::RuleOperator_); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(541); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::Divide: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(533); - match(css3Parser::Divide); - setState(534); - ws(); - break; - } - - case css3Parser::Comma: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(535); - match(css3Parser::Comma); - setState(536); - ws(); - break; - } - - case css3Parser::Space: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 3); - setState(537); - match(css3Parser::Space); - setState(538); - ws(); - break; - } - - case css3Parser::Equal: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 4); - setState(539); - match(css3Parser::Equal); - setState(540); - ws(); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Property_Context ------------------------------------------------------------------ - -css3Parser::Property_Context::Property_Context(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::Property_Context::getRuleIndex() const { - return css3Parser::RuleProperty_; -} - -void css3Parser::Property_Context::copyFrom(Property_Context *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- BadPropertyContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::BadPropertyContext::Multiply() { - return getToken(css3Parser::Multiply, 0); -} - -css3Parser::IdentContext* css3Parser::BadPropertyContext::ident() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::BadPropertyContext::Underscore() { - return getToken(css3Parser::Underscore, 0); -} - -css3Parser::BadPropertyContext::BadPropertyContext(Property_Context *ctx) { copyFrom(ctx); } - -void css3Parser::BadPropertyContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBadProperty(this); -} -void css3Parser::BadPropertyContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBadProperty(this); -} - -std::any css3Parser::BadPropertyContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBadProperty(this); - else - return visitor->visitChildren(this); -} -//----------------- GoodPropertyContext ------------------------------------------------------------------ - -css3Parser::IdentContext* css3Parser::GoodPropertyContext::ident() { - return getRuleContext(0); -} - -css3Parser::WsContext* css3Parser::GoodPropertyContext::ws() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::GoodPropertyContext::Variable() { - return getToken(css3Parser::Variable, 0); -} - -css3Parser::GoodPropertyContext::GoodPropertyContext(Property_Context *ctx) { copyFrom(ctx); } - -void css3Parser::GoodPropertyContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGoodProperty(this); -} -void css3Parser::GoodPropertyContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGoodProperty(this); -} - -std::any css3Parser::GoodPropertyContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGoodProperty(this); - else - return visitor->visitChildren(this); -} -css3Parser::Property_Context* css3Parser::property_() { - Property_Context *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 58, css3Parser::RuleProperty_); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(552); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(543); - ident(); - setState(544); - ws(); - break; - } - - case css3Parser::Variable: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(546); - match(css3Parser::Variable); - setState(547); - ws(); - break; - } - - case css3Parser::Multiply: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 3); - setState(548); - match(css3Parser::Multiply); - setState(549); - ident(); - break; - } - - case css3Parser::Underscore: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 4); - setState(550); - match(css3Parser::Underscore); - setState(551); - ident(); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- RulesetContext ------------------------------------------------------------------ - -css3Parser::RulesetContext::RulesetContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::RulesetContext::getRuleIndex() const { - return css3Parser::RuleRuleset; -} - -void css3Parser::RulesetContext::copyFrom(RulesetContext *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- UnknownRulesetContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::UnknownRulesetContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -std::vector css3Parser::UnknownRulesetContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::UnknownRulesetContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::UnknownRulesetContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -std::vector css3Parser::UnknownRulesetContext::any_() { - return getRuleContexts(); -} - -css3Parser::Any_Context* css3Parser::UnknownRulesetContext::any_(size_t i) { - return getRuleContext(i); -} - -css3Parser::DeclarationListContext* css3Parser::UnknownRulesetContext::declarationList() { - return getRuleContext(0); -} - -css3Parser::UnknownRulesetContext::UnknownRulesetContext(RulesetContext *ctx) { copyFrom(ctx); } - -void css3Parser::UnknownRulesetContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterUnknownRuleset(this); -} -void css3Parser::UnknownRulesetContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitUnknownRuleset(this); -} - -std::any css3Parser::UnknownRulesetContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitUnknownRuleset(this); - else - return visitor->visitChildren(this); -} -//----------------- KnownRulesetContext ------------------------------------------------------------------ - -css3Parser::SelectorGroupContext* css3Parser::KnownRulesetContext::selectorGroup() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::KnownRulesetContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -std::vector css3Parser::KnownRulesetContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::KnownRulesetContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::KnownRulesetContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -css3Parser::DeclarationListContext* css3Parser::KnownRulesetContext::declarationList() { - return getRuleContext(0); -} - -css3Parser::KnownRulesetContext::KnownRulesetContext(RulesetContext *ctx) { copyFrom(ctx); } - -void css3Parser::KnownRulesetContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterKnownRuleset(this); -} -void css3Parser::KnownRulesetContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitKnownRuleset(this); -} - -std::any css3Parser::KnownRulesetContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitKnownRuleset(this); - else - return visitor->visitChildren(this); -} -css3Parser::RulesetContext* css3Parser::ruleset() { - RulesetContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 60, css3Parser::RuleRuleset); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(577); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 55, _ctx)) { - case 1: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(554); - selectorGroup(); - setState(555); - match(css3Parser::OpenBrace); - setState(556); - ws(); - setState(558); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 7) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 7)) & 180258334538989713) != 0)) { - setState(557); - declarationList(); - } - setState(560); - match(css3Parser::CloseBrace); - setState(561); - ws(); - break; - } - - case 2: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(566); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 14663636294369802) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(563); - any_(); - setState(568); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(569); - match(css3Parser::OpenBrace); - setState(570); - ws(); - setState(572); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 7) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 7)) & 180258334538989713) != 0)) { - setState(571); - declarationList(); - } - setState(574); - match(css3Parser::CloseBrace); - setState(575); - ws(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- DeclarationListContext ------------------------------------------------------------------ - -css3Parser::DeclarationListContext::DeclarationListContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::DeclarationListContext::declaration() { - return getRuleContexts(); -} - -css3Parser::DeclarationContext* css3Parser::DeclarationListContext::declaration(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::DeclarationListContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::DeclarationListContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::DeclarationListContext::SemiColon() { - return getTokens(css3Parser::SemiColon); -} - -tree::TerminalNode* css3Parser::DeclarationListContext::SemiColon(size_t i) { - return getToken(css3Parser::SemiColon, i); -} - - -size_t css3Parser::DeclarationListContext::getRuleIndex() const { - return css3Parser::RuleDeclarationList; -} - -void css3Parser::DeclarationListContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterDeclarationList(this); -} - -void css3Parser::DeclarationListContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitDeclarationList(this); -} - - -std::any css3Parser::DeclarationListContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitDeclarationList(this); - else - return visitor->visitChildren(this); -} - -css3Parser::DeclarationListContext* css3Parser::declarationList() { - DeclarationListContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 62, css3Parser::RuleDeclarationList); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(583); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::SemiColon) { - setState(579); - match(css3Parser::SemiColon); - setState(580); - ws(); - setState(585); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(586); - declaration(); - setState(587); - ws(); - setState(595); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 58, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(588); - match(css3Parser::SemiColon); - setState(589); - ws(); - setState(591); - _errHandler->sync(this); - - switch (getInterpreter()->adaptivePredict(_input, 57, _ctx)) { - case 1: { - setState(590); - declaration(); - break; - } - - default: - break; - } - } - setState(597); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 58, _ctx); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- DeclarationContext ------------------------------------------------------------------ - -css3Parser::DeclarationContext::DeclarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::DeclarationContext::getRuleIndex() const { - return css3Parser::RuleDeclaration; -} - -void css3Parser::DeclarationContext::copyFrom(DeclarationContext *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- UnknownDeclarationContext ------------------------------------------------------------------ - -css3Parser::Property_Context* css3Parser::UnknownDeclarationContext::property_() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::UnknownDeclarationContext::Colon() { - return getToken(css3Parser::Colon, 0); -} - -css3Parser::WsContext* css3Parser::UnknownDeclarationContext::ws() { - return getRuleContext(0); -} - -css3Parser::ValueContext* css3Parser::UnknownDeclarationContext::value() { - return getRuleContext(0); -} - -css3Parser::UnknownDeclarationContext::UnknownDeclarationContext(DeclarationContext *ctx) { copyFrom(ctx); } - -void css3Parser::UnknownDeclarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterUnknownDeclaration(this); -} -void css3Parser::UnknownDeclarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitUnknownDeclaration(this); -} - -std::any css3Parser::UnknownDeclarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitUnknownDeclaration(this); - else - return visitor->visitChildren(this); -} -//----------------- KnownDeclarationContext ------------------------------------------------------------------ - -css3Parser::Property_Context* css3Parser::KnownDeclarationContext::property_() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::KnownDeclarationContext::Colon() { - return getToken(css3Parser::Colon, 0); -} - -css3Parser::WsContext* css3Parser::KnownDeclarationContext::ws() { - return getRuleContext(0); -} - -css3Parser::ExprContext* css3Parser::KnownDeclarationContext::expr() { - return getRuleContext(0); -} - -css3Parser::PrioContext* css3Parser::KnownDeclarationContext::prio() { - return getRuleContext(0); -} - -css3Parser::KnownDeclarationContext::KnownDeclarationContext(DeclarationContext *ctx) { copyFrom(ctx); } - -void css3Parser::KnownDeclarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterKnownDeclaration(this); -} -void css3Parser::KnownDeclarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitKnownDeclaration(this); -} - -std::any css3Parser::KnownDeclarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitKnownDeclaration(this); - else - return visitor->visitChildren(this); -} -css3Parser::DeclarationContext* css3Parser::declaration() { - DeclarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 64, css3Parser::RuleDeclaration); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(610); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 60, _ctx)) { - case 1: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(598); - property_(); - setState(599); - match(css3Parser::Colon); - setState(600); - ws(); - setState(601); - expr(); - setState(603); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Important) { - setState(602); - prio(); - } - break; - } - - case 2: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(605); - property_(); - setState(606); - match(css3Parser::Colon); - setState(607); - ws(); - setState(608); - value(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- PrioContext ------------------------------------------------------------------ - -css3Parser::PrioContext::PrioContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::PrioContext::Important() { - return getToken(css3Parser::Important, 0); -} - -css3Parser::WsContext* css3Parser::PrioContext::ws() { - return getRuleContext(0); -} - - -size_t css3Parser::PrioContext::getRuleIndex() const { - return css3Parser::RulePrio; -} - -void css3Parser::PrioContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPrio(this); -} - -void css3Parser::PrioContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPrio(this); -} - - -std::any css3Parser::PrioContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPrio(this); - else - return visitor->visitChildren(this); -} - -css3Parser::PrioContext* css3Parser::prio() { - PrioContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 66, css3Parser::RulePrio); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(612); - match(css3Parser::Important); - setState(613); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ValueContext ------------------------------------------------------------------ - -css3Parser::ValueContext::ValueContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::ValueContext::any_() { - return getRuleContexts(); -} - -css3Parser::Any_Context* css3Parser::ValueContext::any_(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::ValueContext::block() { - return getRuleContexts(); -} - -css3Parser::BlockContext* css3Parser::ValueContext::block(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::ValueContext::AtKeyword() { - return getTokens(css3Parser::AtKeyword); -} - -tree::TerminalNode* css3Parser::ValueContext::AtKeyword(size_t i) { - return getToken(css3Parser::AtKeyword, i); -} - -std::vector css3Parser::ValueContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::ValueContext::ws(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::ValueContext::getRuleIndex() const { - return css3Parser::RuleValue; -} - -void css3Parser::ValueContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterValue(this); -} - -void css3Parser::ValueContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitValue(this); -} - - -std::any css3Parser::ValueContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitValue(this); - else - return visitor->visitChildren(this); -} - -css3Parser::ValueContext* css3Parser::value() { - ValueContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 68, css3Parser::RuleValue); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(619); - _errHandler->sync(this); - alt = 1; - do { - switch (alt) { - case 1: { - setState(619); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::OpenBracket: - case css3Parser::OpenParen: - case css3Parser::Colon: - case css3Parser::Url: - case css3Parser::Includes: - case css3Parser::DashMatch: - case css3Parser::Hash: - case css3Parser::Percentage: - case css3Parser::Url_: - case css3Parser::UnicodeRange: - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Dimension: - case css3Parser::UnknownDimension: - case css3Parser::Plus: - case css3Parser::Minus: - case css3Parser::Number: - case css3Parser::String_: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: - case css3Parser::Function_: { - setState(615); - any_(); - break; - } - - case css3Parser::OpenBrace: { - setState(616); - block(); - break; - } - - case css3Parser::AtKeyword: { - setState(617); - match(css3Parser::AtKeyword); - setState(618); - ws(); - break; - } - - default: - throw NoViableAltException(this); - } - break; - } - - default: - throw NoViableAltException(this); - } - setState(621); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 62, _ctx); - } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ExprContext ------------------------------------------------------------------ - -css3Parser::ExprContext::ExprContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::ExprContext::term() { - return getRuleContexts(); -} - -css3Parser::TermContext* css3Parser::ExprContext::term(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::ExprContext::operator_() { - return getRuleContexts(); -} - -css3Parser::Operator_Context* css3Parser::ExprContext::operator_(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::ExprContext::getRuleIndex() const { - return css3Parser::RuleExpr; -} - -void css3Parser::ExprContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterExpr(this); -} - -void css3Parser::ExprContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitExpr(this); -} - - -std::any css3Parser::ExprContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitExpr(this); - else - return visitor->visitChildren(this); -} - -css3Parser::ExprContext* css3Parser::expr() { - ExprContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 70, css3Parser::RuleExpr); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(623); - term(); - setState(630); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 64, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(625); - _errHandler->sync(this); - - _la = _input->LA(1); - if ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 1099511763200) != 0)) { - setState(624); - operator_(); - } - setState(627); - term(); - } - setState(632); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 64, _ctx); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- TermContext ------------------------------------------------------------------ - -css3Parser::TermContext::TermContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::TermContext::getRuleIndex() const { - return css3Parser::RuleTerm; -} - -void css3Parser::TermContext::copyFrom(TermContext *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- BadTermContext ------------------------------------------------------------------ - -css3Parser::UnknownDimensionContext* css3Parser::BadTermContext::unknownDimension() { - return getRuleContext(0); -} - -css3Parser::WsContext* css3Parser::BadTermContext::ws() { - return getRuleContext(0); -} - -css3Parser::DxImageTransformContext* css3Parser::BadTermContext::dxImageTransform() { - return getRuleContext(0); -} - -css3Parser::BadTermContext::BadTermContext(TermContext *ctx) { copyFrom(ctx); } - -void css3Parser::BadTermContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBadTerm(this); -} -void css3Parser::BadTermContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBadTerm(this); -} - -std::any css3Parser::BadTermContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBadTerm(this); - else - return visitor->visitChildren(this); -} -//----------------- KnownTermContext ------------------------------------------------------------------ - -css3Parser::NumberContext* css3Parser::KnownTermContext::number() { - return getRuleContext(0); -} - -css3Parser::WsContext* css3Parser::KnownTermContext::ws() { - return getRuleContext(0); -} - -css3Parser::PercentageContext* css3Parser::KnownTermContext::percentage() { - return getRuleContext(0); -} - -css3Parser::DimensionContext* css3Parser::KnownTermContext::dimension() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::KnownTermContext::String_() { - return getToken(css3Parser::String_, 0); -} - -tree::TerminalNode* css3Parser::KnownTermContext::UnicodeRange() { - return getToken(css3Parser::UnicodeRange, 0); -} - -css3Parser::IdentContext* css3Parser::KnownTermContext::ident() { - return getRuleContext(0); -} - -css3Parser::Var_Context* css3Parser::KnownTermContext::var_() { - return getRuleContext(0); -} - -css3Parser::UrlContext* css3Parser::KnownTermContext::url() { - return getRuleContext(0); -} - -css3Parser::HexcolorContext* css3Parser::KnownTermContext::hexcolor() { - return getRuleContext(0); -} - -css3Parser::CalcContext* css3Parser::KnownTermContext::calc() { - return getRuleContext(0); -} - -css3Parser::Function_Context* css3Parser::KnownTermContext::function_() { - return getRuleContext(0); -} - -css3Parser::ColorContext* css3Parser::KnownTermContext::color() { - return getRuleContext(0); -} - -css3Parser::KnownTermContext::KnownTermContext(TermContext *ctx) { copyFrom(ctx); } - -void css3Parser::KnownTermContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterKnownTerm(this); -} -void css3Parser::KnownTermContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitKnownTerm(this); -} - -std::any css3Parser::KnownTermContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitKnownTerm(this); - else - return visitor->visitChildren(this); -} -css3Parser::TermContext* css3Parser::term() { - TermContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 72, css3Parser::RuleTerm); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(661); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 65, _ctx)) { - case 1: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(633); - number(); - setState(634); - ws(); - break; - } - - case 2: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(636); - percentage(); - setState(637); - ws(); - break; - } - - case 3: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 3); - setState(639); - dimension(); - setState(640); - ws(); - break; - } - - case 4: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 4); - setState(642); - match(css3Parser::String_); - setState(643); - ws(); - break; - } - - case 5: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 5); - setState(644); - match(css3Parser::UnicodeRange); - setState(645); - ws(); - break; - } - - case 6: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 6); - setState(646); - ident(); - setState(647); - ws(); - break; - } - - case 7: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 7); - setState(649); - var_(); - break; - } - - case 8: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 8); - setState(650); - url(); - setState(651); - ws(); - break; - } - - case 9: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 9); - setState(653); - hexcolor(); - break; - } - - case 10: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 10); - setState(654); - calc(); - break; - } - - case 11: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 11); - setState(655); - function_(); - break; - } - - case 12: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 12); - setState(656); - color(); - break; - } - - case 13: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 13); - setState(657); - unknownDimension(); - setState(658); - ws(); - break; - } - - case 14: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 14); - setState(660); - dxImageTransform(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Function_Context ------------------------------------------------------------------ - -css3Parser::Function_Context::Function_Context(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::Function_Context::Function_() { - return getToken(css3Parser::Function_, 0); -} - -std::vector css3Parser::Function_Context::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::Function_Context::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::ExprContext* css3Parser::Function_Context::expr() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::Function_Context::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - - -size_t css3Parser::Function_Context::getRuleIndex() const { - return css3Parser::RuleFunction_; -} - -void css3Parser::Function_Context::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFunction_(this); -} - -void css3Parser::Function_Context::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFunction_(this); -} - - -std::any css3Parser::Function_Context::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFunction_(this); - else - return visitor->visitChildren(this); -} - -css3Parser::Function_Context* css3Parser::function_() { - Function_Context *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 74, css3Parser::RuleFunction_); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(663); - match(css3Parser::Function_); - setState(664); - ws(); - setState(665); - expr(); - setState(666); - match(css3Parser::CloseParen); - setState(667); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- DxImageTransformContext ------------------------------------------------------------------ - -css3Parser::DxImageTransformContext::DxImageTransformContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::DxImageTransformContext::DxImageTransform() { - return getToken(css3Parser::DxImageTransform, 0); -} - -std::vector css3Parser::DxImageTransformContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::DxImageTransformContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::ExprContext* css3Parser::DxImageTransformContext::expr() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::DxImageTransformContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - - -size_t css3Parser::DxImageTransformContext::getRuleIndex() const { - return css3Parser::RuleDxImageTransform; -} - -void css3Parser::DxImageTransformContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterDxImageTransform(this); -} - -void css3Parser::DxImageTransformContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitDxImageTransform(this); -} - - -std::any css3Parser::DxImageTransformContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitDxImageTransform(this); - else - return visitor->visitChildren(this); -} - -css3Parser::DxImageTransformContext* css3Parser::dxImageTransform() { - DxImageTransformContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 76, css3Parser::RuleDxImageTransform); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(669); - match(css3Parser::DxImageTransform); - setState(670); - ws(); - setState(671); - expr(); - setState(672); - match(css3Parser::CloseParen); - setState(673); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- HexcolorContext ------------------------------------------------------------------ - -css3Parser::HexcolorContext::HexcolorContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::HexcolorContext::Hash() { - return getToken(css3Parser::Hash, 0); -} - -css3Parser::WsContext* css3Parser::HexcolorContext::ws() { - return getRuleContext(0); -} - - -size_t css3Parser::HexcolorContext::getRuleIndex() const { - return css3Parser::RuleHexcolor; -} - -void css3Parser::HexcolorContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterHexcolor(this); -} - -void css3Parser::HexcolorContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitHexcolor(this); -} - - -std::any css3Parser::HexcolorContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitHexcolor(this); - else - return visitor->visitChildren(this); -} - -css3Parser::HexcolorContext* css3Parser::hexcolor() { - HexcolorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 78, css3Parser::RuleHexcolor); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(675); - match(css3Parser::Hash); - setState(676); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- NumberContext ------------------------------------------------------------------ - -css3Parser::NumberContext::NumberContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::NumberContext::Number() { - return getToken(css3Parser::Number, 0); -} - -tree::TerminalNode* css3Parser::NumberContext::Plus() { - return getToken(css3Parser::Plus, 0); -} - -tree::TerminalNode* css3Parser::NumberContext::Minus() { - return getToken(css3Parser::Minus, 0); -} - - -size_t css3Parser::NumberContext::getRuleIndex() const { - return css3Parser::RuleNumber; -} - -void css3Parser::NumberContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNumber(this); -} - -void css3Parser::NumberContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNumber(this); -} - - -std::any css3Parser::NumberContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNumber(this); - else - return visitor->visitChildren(this); -} - -css3Parser::NumberContext* css3Parser::number() { - NumberContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 80, css3Parser::RuleNumber); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(679); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Plus - - || _la == css3Parser::Minus) { - setState(678); - _la = _input->LA(1); - if (!(_la == css3Parser::Plus - - || _la == css3Parser::Minus)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - } - setState(681); - match(css3Parser::Number); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- PercentageContext ------------------------------------------------------------------ - -css3Parser::PercentageContext::PercentageContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::PercentageContext::Percentage() { - return getToken(css3Parser::Percentage, 0); -} - -tree::TerminalNode* css3Parser::PercentageContext::Plus() { - return getToken(css3Parser::Plus, 0); -} - -tree::TerminalNode* css3Parser::PercentageContext::Minus() { - return getToken(css3Parser::Minus, 0); -} - - -size_t css3Parser::PercentageContext::getRuleIndex() const { - return css3Parser::RulePercentage; -} - -void css3Parser::PercentageContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPercentage(this); -} - -void css3Parser::PercentageContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPercentage(this); -} - - -std::any css3Parser::PercentageContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPercentage(this); - else - return visitor->visitChildren(this); -} - -css3Parser::PercentageContext* css3Parser::percentage() { - PercentageContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 82, css3Parser::RulePercentage); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(684); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Plus - - || _la == css3Parser::Minus) { - setState(683); - _la = _input->LA(1); - if (!(_la == css3Parser::Plus - - || _la == css3Parser::Minus)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - } - setState(686); - match(css3Parser::Percentage); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- DimensionContext ------------------------------------------------------------------ - -css3Parser::DimensionContext::DimensionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::DimensionContext::Dimension() { - return getToken(css3Parser::Dimension, 0); -} - -tree::TerminalNode* css3Parser::DimensionContext::Plus() { - return getToken(css3Parser::Plus, 0); -} - -tree::TerminalNode* css3Parser::DimensionContext::Minus() { - return getToken(css3Parser::Minus, 0); -} - - -size_t css3Parser::DimensionContext::getRuleIndex() const { - return css3Parser::RuleDimension; -} - -void css3Parser::DimensionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterDimension(this); -} - -void css3Parser::DimensionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitDimension(this); -} - - -std::any css3Parser::DimensionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitDimension(this); - else - return visitor->visitChildren(this); -} - -css3Parser::DimensionContext* css3Parser::dimension() { - DimensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 84, css3Parser::RuleDimension); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(689); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Plus - - || _la == css3Parser::Minus) { - setState(688); - _la = _input->LA(1); - if (!(_la == css3Parser::Plus - - || _la == css3Parser::Minus)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - } - setState(691); - match(css3Parser::Dimension); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- UnknownDimensionContext ------------------------------------------------------------------ - -css3Parser::UnknownDimensionContext::UnknownDimensionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::UnknownDimensionContext::UnknownDimension() { - return getToken(css3Parser::UnknownDimension, 0); -} - -tree::TerminalNode* css3Parser::UnknownDimensionContext::Plus() { - return getToken(css3Parser::Plus, 0); -} - -tree::TerminalNode* css3Parser::UnknownDimensionContext::Minus() { - return getToken(css3Parser::Minus, 0); -} - - -size_t css3Parser::UnknownDimensionContext::getRuleIndex() const { - return css3Parser::RuleUnknownDimension; -} - -void css3Parser::UnknownDimensionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterUnknownDimension(this); -} - -void css3Parser::UnknownDimensionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitUnknownDimension(this); -} - - -std::any css3Parser::UnknownDimensionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitUnknownDimension(this); - else - return visitor->visitChildren(this); -} - -css3Parser::UnknownDimensionContext* css3Parser::unknownDimension() { - UnknownDimensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 86, css3Parser::RuleUnknownDimension); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(694); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Plus - - || _la == css3Parser::Minus) { - setState(693); - _la = _input->LA(1); - if (!(_la == css3Parser::Plus - - || _la == css3Parser::Minus)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - } - setState(696); - match(css3Parser::UnknownDimension); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Any_Context ------------------------------------------------------------------ - -css3Parser::Any_Context::Any_Context(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::IdentContext* css3Parser::Any_Context::ident() { - return getRuleContext(0); -} - -std::vector css3Parser::Any_Context::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::Any_Context::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::NumberContext* css3Parser::Any_Context::number() { - return getRuleContext(0); -} - -css3Parser::PercentageContext* css3Parser::Any_Context::percentage() { - return getRuleContext(0); -} - -css3Parser::DimensionContext* css3Parser::Any_Context::dimension() { - return getRuleContext(0); -} - -css3Parser::UnknownDimensionContext* css3Parser::Any_Context::unknownDimension() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::Any_Context::String_() { - return getToken(css3Parser::String_, 0); -} - -css3Parser::UrlContext* css3Parser::Any_Context::url() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::Any_Context::Hash() { - return getToken(css3Parser::Hash, 0); -} - -tree::TerminalNode* css3Parser::Any_Context::UnicodeRange() { - return getToken(css3Parser::UnicodeRange, 0); -} - -tree::TerminalNode* css3Parser::Any_Context::Includes() { - return getToken(css3Parser::Includes, 0); -} - -tree::TerminalNode* css3Parser::Any_Context::DashMatch() { - return getToken(css3Parser::DashMatch, 0); -} - -tree::TerminalNode* css3Parser::Any_Context::Colon() { - return getToken(css3Parser::Colon, 0); -} - -tree::TerminalNode* css3Parser::Any_Context::Function_() { - return getToken(css3Parser::Function_, 0); -} - -tree::TerminalNode* css3Parser::Any_Context::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - -std::vector css3Parser::Any_Context::any_() { - return getRuleContexts(); -} - -css3Parser::Any_Context* css3Parser::Any_Context::any_(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::Any_Context::unused() { - return getRuleContexts(); -} - -css3Parser::UnusedContext* css3Parser::Any_Context::unused(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::Any_Context::OpenParen() { - return getToken(css3Parser::OpenParen, 0); -} - -tree::TerminalNode* css3Parser::Any_Context::OpenBracket() { - return getToken(css3Parser::OpenBracket, 0); -} - -tree::TerminalNode* css3Parser::Any_Context::CloseBracket() { - return getToken(css3Parser::CloseBracket, 0); -} - - -size_t css3Parser::Any_Context::getRuleIndex() const { - return css3Parser::RuleAny_; -} - -void css3Parser::Any_Context::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterAny_(this); -} - -void css3Parser::Any_Context::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitAny_(this); -} - - -std::any css3Parser::Any_Context::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitAny_(this); - else - return visitor->visitChildren(this); -} - -css3Parser::Any_Context* css3Parser::any_() { - Any_Context *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 88, css3Parser::RuleAny_); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(764); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 76, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(698); - ident(); - setState(699); - ws(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(701); - number(); - setState(702); - ws(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(704); - percentage(); - setState(705); - ws(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(707); - dimension(); - setState(708); - ws(); - break; - } - - case 5: { - enterOuterAlt(_localctx, 5); - setState(710); - unknownDimension(); - setState(711); - ws(); - break; - } - - case 6: { - enterOuterAlt(_localctx, 6); - setState(713); - match(css3Parser::String_); - setState(714); - ws(); - break; - } - - case 7: { - enterOuterAlt(_localctx, 7); - setState(715); - url(); - setState(716); - ws(); - break; - } - - case 8: { - enterOuterAlt(_localctx, 8); - setState(718); - match(css3Parser::Hash); - setState(719); - ws(); - break; - } - - case 9: { - enterOuterAlt(_localctx, 9); - setState(720); - match(css3Parser::UnicodeRange); - setState(721); - ws(); - break; - } - - case 10: { - enterOuterAlt(_localctx, 10); - setState(722); - match(css3Parser::Includes); - setState(723); - ws(); - break; - } - - case 11: { - enterOuterAlt(_localctx, 11); - setState(724); - match(css3Parser::DashMatch); - setState(725); - ws(); - break; - } - - case 12: { - enterOuterAlt(_localctx, 12); - setState(726); - match(css3Parser::Colon); - setState(727); - ws(); - break; - } - - case 13: { - enterOuterAlt(_localctx, 13); - setState(728); - match(css3Parser::Function_); - setState(729); - ws(); - setState(734); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 2320506645508850346) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(732); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::OpenBracket: - case css3Parser::OpenParen: - case css3Parser::Colon: - case css3Parser::Url: - case css3Parser::Includes: - case css3Parser::DashMatch: - case css3Parser::Hash: - case css3Parser::Percentage: - case css3Parser::Url_: - case css3Parser::UnicodeRange: - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Dimension: - case css3Parser::UnknownDimension: - case css3Parser::Plus: - case css3Parser::Minus: - case css3Parser::Number: - case css3Parser::String_: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: - case css3Parser::Function_: { - setState(730); - any_(); - break; - } - - case css3Parser::OpenBrace: - case css3Parser::SemiColon: - case css3Parser::Cdo: - case css3Parser::Cdc: - case css3Parser::AtKeyword: { - setState(731); - unused(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(736); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(737); - match(css3Parser::CloseParen); - setState(738); - ws(); - break; - } - - case 14: { - enterOuterAlt(_localctx, 14); - setState(740); - match(css3Parser::OpenParen); - setState(741); - ws(); - setState(746); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 2320506645508850346) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(744); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::OpenBracket: - case css3Parser::OpenParen: - case css3Parser::Colon: - case css3Parser::Url: - case css3Parser::Includes: - case css3Parser::DashMatch: - case css3Parser::Hash: - case css3Parser::Percentage: - case css3Parser::Url_: - case css3Parser::UnicodeRange: - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Dimension: - case css3Parser::UnknownDimension: - case css3Parser::Plus: - case css3Parser::Minus: - case css3Parser::Number: - case css3Parser::String_: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: - case css3Parser::Function_: { - setState(742); - any_(); - break; - } - - case css3Parser::OpenBrace: - case css3Parser::SemiColon: - case css3Parser::Cdo: - case css3Parser::Cdc: - case css3Parser::AtKeyword: { - setState(743); - unused(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(748); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(749); - match(css3Parser::CloseParen); - setState(750); - ws(); - break; - } - - case 15: { - enterOuterAlt(_localctx, 15); - setState(752); - match(css3Parser::OpenBracket); - setState(753); - ws(); - setState(758); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 2320506645508850346) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(756); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::OpenBracket: - case css3Parser::OpenParen: - case css3Parser::Colon: - case css3Parser::Url: - case css3Parser::Includes: - case css3Parser::DashMatch: - case css3Parser::Hash: - case css3Parser::Percentage: - case css3Parser::Url_: - case css3Parser::UnicodeRange: - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Dimension: - case css3Parser::UnknownDimension: - case css3Parser::Plus: - case css3Parser::Minus: - case css3Parser::Number: - case css3Parser::String_: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: - case css3Parser::Function_: { - setState(754); - any_(); - break; - } - - case css3Parser::OpenBrace: - case css3Parser::SemiColon: - case css3Parser::Cdo: - case css3Parser::Cdc: - case css3Parser::AtKeyword: { - setState(755); - unused(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(760); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(761); - match(css3Parser::CloseBracket); - setState(762); - ws(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- AtRuleContext ------------------------------------------------------------------ - -css3Parser::AtRuleContext::AtRuleContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::AtRuleContext::getRuleIndex() const { - return css3Parser::RuleAtRule; -} - -void css3Parser::AtRuleContext::copyFrom(AtRuleContext *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- UnknownAtRuleContext ------------------------------------------------------------------ - -tree::TerminalNode* css3Parser::UnknownAtRuleContext::AtKeyword() { - return getToken(css3Parser::AtKeyword, 0); -} - -std::vector css3Parser::UnknownAtRuleContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::UnknownAtRuleContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::BlockContext* css3Parser::UnknownAtRuleContext::block() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::UnknownAtRuleContext::SemiColon() { - return getToken(css3Parser::SemiColon, 0); -} - -std::vector css3Parser::UnknownAtRuleContext::any_() { - return getRuleContexts(); -} - -css3Parser::Any_Context* css3Parser::UnknownAtRuleContext::any_(size_t i) { - return getRuleContext(i); -} - -css3Parser::UnknownAtRuleContext::UnknownAtRuleContext(AtRuleContext *ctx) { copyFrom(ctx); } - -void css3Parser::UnknownAtRuleContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterUnknownAtRule(this); -} -void css3Parser::UnknownAtRuleContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitUnknownAtRule(this); -} - -std::any css3Parser::UnknownAtRuleContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitUnknownAtRule(this); - else - return visitor->visitChildren(this); -} -css3Parser::AtRuleContext* css3Parser::atRule() { - AtRuleContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 90, css3Parser::RuleAtRule); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(766); - match(css3Parser::AtKeyword); - setState(767); - ws(); - setState(771); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 14663636294369802) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(768); - any_(); - setState(773); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(777); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::OpenBrace: { - setState(774); - block(); - break; - } - - case css3Parser::SemiColon: { - setState(775); - match(css3Parser::SemiColon); - setState(776); - ws(); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- UnusedContext ------------------------------------------------------------------ - -css3Parser::UnusedContext::UnusedContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::BlockContext* css3Parser::UnusedContext::block() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::UnusedContext::AtKeyword() { - return getToken(css3Parser::AtKeyword, 0); -} - -css3Parser::WsContext* css3Parser::UnusedContext::ws() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::UnusedContext::SemiColon() { - return getToken(css3Parser::SemiColon, 0); -} - -tree::TerminalNode* css3Parser::UnusedContext::Cdo() { - return getToken(css3Parser::Cdo, 0); -} - -tree::TerminalNode* css3Parser::UnusedContext::Cdc() { - return getToken(css3Parser::Cdc, 0); -} - - -size_t css3Parser::UnusedContext::getRuleIndex() const { - return css3Parser::RuleUnused; -} - -void css3Parser::UnusedContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterUnused(this); -} - -void css3Parser::UnusedContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitUnused(this); -} - - -std::any css3Parser::UnusedContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitUnused(this); - else - return visitor->visitChildren(this); -} - -css3Parser::UnusedContext* css3Parser::unused() { - UnusedContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 92, css3Parser::RuleUnused); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(788); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::OpenBrace: { - enterOuterAlt(_localctx, 1); - setState(779); - block(); - break; - } - - case css3Parser::AtKeyword: { - enterOuterAlt(_localctx, 2); - setState(780); - match(css3Parser::AtKeyword); - setState(781); - ws(); - break; - } - - case css3Parser::SemiColon: { - enterOuterAlt(_localctx, 3); - setState(782); - match(css3Parser::SemiColon); - setState(783); - ws(); - break; - } - - case css3Parser::Cdo: { - enterOuterAlt(_localctx, 4); - setState(784); - match(css3Parser::Cdo); - setState(785); - ws(); - break; - } - - case css3Parser::Cdc: { - enterOuterAlt(_localctx, 5); - setState(786); - match(css3Parser::Cdc); - setState(787); - ws(); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- BlockContext ------------------------------------------------------------------ - -css3Parser::BlockContext::BlockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::BlockContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -std::vector css3Parser::BlockContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::BlockContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::BlockContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -std::vector css3Parser::BlockContext::declarationList() { - return getRuleContexts(); -} - -css3Parser::DeclarationListContext* css3Parser::BlockContext::declarationList(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::BlockContext::nestedStatement() { - return getRuleContexts(); -} - -css3Parser::NestedStatementContext* css3Parser::BlockContext::nestedStatement(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::BlockContext::any_() { - return getRuleContexts(); -} - -css3Parser::Any_Context* css3Parser::BlockContext::any_(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::BlockContext::block() { - return getRuleContexts(); -} - -css3Parser::BlockContext* css3Parser::BlockContext::block(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::BlockContext::AtKeyword() { - return getTokens(css3Parser::AtKeyword); -} - -tree::TerminalNode* css3Parser::BlockContext::AtKeyword(size_t i) { - return getToken(css3Parser::AtKeyword, i); -} - -std::vector css3Parser::BlockContext::SemiColon() { - return getTokens(css3Parser::SemiColon); -} - -tree::TerminalNode* css3Parser::BlockContext::SemiColon(size_t i) { - return getToken(css3Parser::SemiColon, i); -} - - -size_t css3Parser::BlockContext::getRuleIndex() const { - return css3Parser::RuleBlock; -} - -void css3Parser::BlockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBlock(this); -} - -void css3Parser::BlockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBlock(this); -} - - -std::any css3Parser::BlockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBlock(this); - else - return visitor->visitChildren(this); -} - -css3Parser::BlockContext* css3Parser::block() { - BlockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 94, css3Parser::RuleBlock); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(790); - match(css3Parser::OpenBrace); - setState(791); - ws(); - setState(802); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 7944099603307130538) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(800); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 80, _ctx)) { - case 1: { - setState(792); - declarationList(); - break; - } - - case 2: { - setState(793); - nestedStatement(); - break; - } - - case 3: { - setState(794); - any_(); - break; - } - - case 4: { - setState(795); - block(); - break; - } - - case 5: { - setState(796); - match(css3Parser::AtKeyword); - setState(797); - ws(); - break; - } - - case 6: { - setState(798); - match(css3Parser::SemiColon); - setState(799); - ws(); - break; - } - - default: - break; - } - setState(804); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(805); - match(css3Parser::CloseBrace); - setState(806); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- NestedStatementContext ------------------------------------------------------------------ - -css3Parser::NestedStatementContext::NestedStatementContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::RulesetContext* css3Parser::NestedStatementContext::ruleset() { - return getRuleContext(0); -} - -css3Parser::MediaContext* css3Parser::NestedStatementContext::media() { - return getRuleContext(0); -} - -css3Parser::PageContext* css3Parser::NestedStatementContext::page() { - return getRuleContext(0); -} - -css3Parser::FontFaceRuleContext* css3Parser::NestedStatementContext::fontFaceRule() { - return getRuleContext(0); -} - -css3Parser::KeyframesRuleContext* css3Parser::NestedStatementContext::keyframesRule() { - return getRuleContext(0); -} - -css3Parser::SupportsRuleContext* css3Parser::NestedStatementContext::supportsRule() { - return getRuleContext(0); -} - -css3Parser::ViewportContext* css3Parser::NestedStatementContext::viewport() { - return getRuleContext(0); -} - -css3Parser::CounterStyleContext* css3Parser::NestedStatementContext::counterStyle() { - return getRuleContext(0); -} - -css3Parser::FontFeatureValuesRuleContext* css3Parser::NestedStatementContext::fontFeatureValuesRule() { - return getRuleContext(0); -} - -css3Parser::AtRuleContext* css3Parser::NestedStatementContext::atRule() { - return getRuleContext(0); -} - - -size_t css3Parser::NestedStatementContext::getRuleIndex() const { - return css3Parser::RuleNestedStatement; -} - -void css3Parser::NestedStatementContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNestedStatement(this); -} - -void css3Parser::NestedStatementContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNestedStatement(this); -} - - -std::any css3Parser::NestedStatementContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNestedStatement(this); - else - return visitor->visitChildren(this); -} - -css3Parser::NestedStatementContext* css3Parser::nestedStatement() { - NestedStatementContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 96, css3Parser::RuleNestedStatement); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(818); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::OpenBracket: - case css3Parser::OpenParen: - case css3Parser::OpenBrace: - case css3Parser::Colon: - case css3Parser::Dot: - case css3Parser::Multiply: - case css3Parser::Pipe: - case css3Parser::Url: - case css3Parser::Includes: - case css3Parser::DashMatch: - case css3Parser::Hash: - case css3Parser::Percentage: - case css3Parser::Url_: - case css3Parser::UnicodeRange: - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Dimension: - case css3Parser::UnknownDimension: - case css3Parser::Plus: - case css3Parser::Minus: - case css3Parser::PseudoNot: - case css3Parser::Number: - case css3Parser::String_: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: - case css3Parser::Function_: { - enterOuterAlt(_localctx, 1); - setState(808); - ruleset(); - break; - } - - case css3Parser::Media: { - enterOuterAlt(_localctx, 2); - setState(809); - media(); - break; - } - - case css3Parser::Page: { - enterOuterAlt(_localctx, 3); - setState(810); - page(); - break; - } - - case css3Parser::FontFace: { - enterOuterAlt(_localctx, 4); - setState(811); - fontFaceRule(); - break; - } - - case css3Parser::Keyframes: { - enterOuterAlt(_localctx, 5); - setState(812); - keyframesRule(); - break; - } - - case css3Parser::Supports: { - enterOuterAlt(_localctx, 6); - setState(813); - supportsRule(); - break; - } - - case css3Parser::Viewport: { - enterOuterAlt(_localctx, 7); - setState(814); - viewport(); - break; - } - - case css3Parser::CounterStyle: { - enterOuterAlt(_localctx, 8); - setState(815); - counterStyle(); - break; - } - - case css3Parser::FontFeatureValues: { - enterOuterAlt(_localctx, 9); - setState(816); - fontFeatureValuesRule(); - break; - } - - case css3Parser::AtKeyword: { - enterOuterAlt(_localctx, 10); - setState(817); - atRule(); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- GroupRuleBodyContext ------------------------------------------------------------------ - -css3Parser::GroupRuleBodyContext::GroupRuleBodyContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::GroupRuleBodyContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -std::vector css3Parser::GroupRuleBodyContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::GroupRuleBodyContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::GroupRuleBodyContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -std::vector css3Parser::GroupRuleBodyContext::nestedStatement() { - return getRuleContexts(); -} - -css3Parser::NestedStatementContext* css3Parser::GroupRuleBodyContext::nestedStatement(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::GroupRuleBodyContext::getRuleIndex() const { - return css3Parser::RuleGroupRuleBody; -} - -void css3Parser::GroupRuleBodyContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGroupRuleBody(this); -} - -void css3Parser::GroupRuleBodyContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGroupRuleBody(this); -} - - -std::any css3Parser::GroupRuleBodyContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGroupRuleBody(this); - else - return visitor->visitChildren(this); -} - -css3Parser::GroupRuleBodyContext* css3Parser::groupRuleBody() { - GroupRuleBodyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 98, css3Parser::RuleGroupRuleBody); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(820); - match(css3Parser::OpenBrace); - setState(821); - ws(); - setState(825); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 3332413584879726122) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(822); - nestedStatement(); - setState(827); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(828); - match(css3Parser::CloseBrace); - setState(829); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SupportsRuleContext ------------------------------------------------------------------ - -css3Parser::SupportsRuleContext::SupportsRuleContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::SupportsRuleContext::Supports() { - return getToken(css3Parser::Supports, 0); -} - -std::vector css3Parser::SupportsRuleContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::SupportsRuleContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::SupportsConditionContext* css3Parser::SupportsRuleContext::supportsCondition() { - return getRuleContext(0); -} - -css3Parser::GroupRuleBodyContext* css3Parser::SupportsRuleContext::groupRuleBody() { - return getRuleContext(0); -} - - -size_t css3Parser::SupportsRuleContext::getRuleIndex() const { - return css3Parser::RuleSupportsRule; -} - -void css3Parser::SupportsRuleContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSupportsRule(this); -} - -void css3Parser::SupportsRuleContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSupportsRule(this); -} - - -std::any css3Parser::SupportsRuleContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSupportsRule(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SupportsRuleContext* css3Parser::supportsRule() { - SupportsRuleContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 100, css3Parser::RuleSupportsRule); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(831); - match(css3Parser::Supports); - setState(832); - ws(); - setState(833); - supportsCondition(); - setState(834); - ws(); - setState(835); - groupRuleBody(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SupportsConditionContext ------------------------------------------------------------------ - -css3Parser::SupportsConditionContext::SupportsConditionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::SupportsNegationContext* css3Parser::SupportsConditionContext::supportsNegation() { - return getRuleContext(0); -} - -css3Parser::SupportsConjunctionContext* css3Parser::SupportsConditionContext::supportsConjunction() { - return getRuleContext(0); -} - -css3Parser::SupportsDisjunctionContext* css3Parser::SupportsConditionContext::supportsDisjunction() { - return getRuleContext(0); -} - -css3Parser::SupportsConditionInParensContext* css3Parser::SupportsConditionContext::supportsConditionInParens() { - return getRuleContext(0); -} - - -size_t css3Parser::SupportsConditionContext::getRuleIndex() const { - return css3Parser::RuleSupportsCondition; -} - -void css3Parser::SupportsConditionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSupportsCondition(this); -} - -void css3Parser::SupportsConditionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSupportsCondition(this); -} - - -std::any css3Parser::SupportsConditionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSupportsCondition(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SupportsConditionContext* css3Parser::supportsCondition() { - SupportsConditionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 102, css3Parser::RuleSupportsCondition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(841); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 84, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(837); - supportsNegation(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(838); - supportsConjunction(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(839); - supportsDisjunction(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(840); - supportsConditionInParens(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SupportsConditionInParensContext ------------------------------------------------------------------ - -css3Parser::SupportsConditionInParensContext::SupportsConditionInParensContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::SupportsConditionInParensContext::OpenParen() { - return getToken(css3Parser::OpenParen, 0); -} - -std::vector css3Parser::SupportsConditionInParensContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::SupportsConditionInParensContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::SupportsConditionContext* css3Parser::SupportsConditionInParensContext::supportsCondition() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::SupportsConditionInParensContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - -css3Parser::SupportsDeclarationConditionContext* css3Parser::SupportsConditionInParensContext::supportsDeclarationCondition() { - return getRuleContext(0); -} - -css3Parser::GeneralEnclosedContext* css3Parser::SupportsConditionInParensContext::generalEnclosed() { - return getRuleContext(0); -} - - -size_t css3Parser::SupportsConditionInParensContext::getRuleIndex() const { - return css3Parser::RuleSupportsConditionInParens; -} - -void css3Parser::SupportsConditionInParensContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSupportsConditionInParens(this); -} - -void css3Parser::SupportsConditionInParensContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSupportsConditionInParens(this); -} - - -std::any css3Parser::SupportsConditionInParensContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSupportsConditionInParens(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SupportsConditionInParensContext* css3Parser::supportsConditionInParens() { - SupportsConditionInParensContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 104, css3Parser::RuleSupportsConditionInParens); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(851); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 85, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(843); - match(css3Parser::OpenParen); - setState(844); - ws(); - setState(845); - supportsCondition(); - setState(846); - ws(); - setState(847); - match(css3Parser::CloseParen); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(849); - supportsDeclarationCondition(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(850); - generalEnclosed(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SupportsNegationContext ------------------------------------------------------------------ - -css3Parser::SupportsNegationContext::SupportsNegationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::SupportsNegationContext::Not() { - return getToken(css3Parser::Not, 0); -} - -std::vector css3Parser::SupportsNegationContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::SupportsNegationContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::SupportsNegationContext::Space() { - return getToken(css3Parser::Space, 0); -} - -css3Parser::SupportsConditionInParensContext* css3Parser::SupportsNegationContext::supportsConditionInParens() { - return getRuleContext(0); -} - - -size_t css3Parser::SupportsNegationContext::getRuleIndex() const { - return css3Parser::RuleSupportsNegation; -} - -void css3Parser::SupportsNegationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSupportsNegation(this); -} - -void css3Parser::SupportsNegationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSupportsNegation(this); -} - - -std::any css3Parser::SupportsNegationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSupportsNegation(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SupportsNegationContext* css3Parser::supportsNegation() { - SupportsNegationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 106, css3Parser::RuleSupportsNegation); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(853); - match(css3Parser::Not); - setState(854); - ws(); - setState(855); - match(css3Parser::Space); - setState(856); - ws(); - setState(857); - supportsConditionInParens(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SupportsConjunctionContext ------------------------------------------------------------------ - -css3Parser::SupportsConjunctionContext::SupportsConjunctionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::SupportsConjunctionContext::supportsConditionInParens() { - return getRuleContexts(); -} - -css3Parser::SupportsConditionInParensContext* css3Parser::SupportsConjunctionContext::supportsConditionInParens(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SupportsConjunctionContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::SupportsConjunctionContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SupportsConjunctionContext::Space() { - return getTokens(css3Parser::Space); -} - -tree::TerminalNode* css3Parser::SupportsConjunctionContext::Space(size_t i) { - return getToken(css3Parser::Space, i); -} - -std::vector css3Parser::SupportsConjunctionContext::And() { - return getTokens(css3Parser::And); -} - -tree::TerminalNode* css3Parser::SupportsConjunctionContext::And(size_t i) { - return getToken(css3Parser::And, i); -} - - -size_t css3Parser::SupportsConjunctionContext::getRuleIndex() const { - return css3Parser::RuleSupportsConjunction; -} - -void css3Parser::SupportsConjunctionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSupportsConjunction(this); -} - -void css3Parser::SupportsConjunctionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSupportsConjunction(this); -} - - -std::any css3Parser::SupportsConjunctionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSupportsConjunction(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SupportsConjunctionContext* css3Parser::supportsConjunction() { - SupportsConjunctionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 108, css3Parser::RuleSupportsConjunction); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(859); - supportsConditionInParens(); - setState(869); - _errHandler->sync(this); - alt = 1; - do { - switch (alt) { - case 1: { - setState(860); - ws(); - setState(861); - match(css3Parser::Space); - setState(862); - ws(); - setState(863); - match(css3Parser::And); - setState(864); - ws(); - setState(865); - match(css3Parser::Space); - setState(866); - ws(); - setState(867); - supportsConditionInParens(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(871); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 86, _ctx); - } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SupportsDisjunctionContext ------------------------------------------------------------------ - -css3Parser::SupportsDisjunctionContext::SupportsDisjunctionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::SupportsDisjunctionContext::supportsConditionInParens() { - return getRuleContexts(); -} - -css3Parser::SupportsConditionInParensContext* css3Parser::SupportsDisjunctionContext::supportsConditionInParens(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SupportsDisjunctionContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::SupportsDisjunctionContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::SupportsDisjunctionContext::Space() { - return getTokens(css3Parser::Space); -} - -tree::TerminalNode* css3Parser::SupportsDisjunctionContext::Space(size_t i) { - return getToken(css3Parser::Space, i); -} - -std::vector css3Parser::SupportsDisjunctionContext::Or() { - return getTokens(css3Parser::Or); -} - -tree::TerminalNode* css3Parser::SupportsDisjunctionContext::Or(size_t i) { - return getToken(css3Parser::Or, i); -} - - -size_t css3Parser::SupportsDisjunctionContext::getRuleIndex() const { - return css3Parser::RuleSupportsDisjunction; -} - -void css3Parser::SupportsDisjunctionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSupportsDisjunction(this); -} - -void css3Parser::SupportsDisjunctionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSupportsDisjunction(this); -} - - -std::any css3Parser::SupportsDisjunctionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSupportsDisjunction(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SupportsDisjunctionContext* css3Parser::supportsDisjunction() { - SupportsDisjunctionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 110, css3Parser::RuleSupportsDisjunction); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(873); - supportsConditionInParens(); - setState(883); - _errHandler->sync(this); - alt = 1; - do { - switch (alt) { - case 1: { - setState(874); - ws(); - setState(875); - match(css3Parser::Space); - setState(876); - ws(); - setState(877); - match(css3Parser::Or); - setState(878); - ws(); - setState(879); - match(css3Parser::Space); - setState(880); - ws(); - setState(881); - supportsConditionInParens(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(885); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 87, _ctx); - } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- SupportsDeclarationConditionContext ------------------------------------------------------------------ - -css3Parser::SupportsDeclarationConditionContext::SupportsDeclarationConditionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::SupportsDeclarationConditionContext::OpenParen() { - return getToken(css3Parser::OpenParen, 0); -} - -css3Parser::WsContext* css3Parser::SupportsDeclarationConditionContext::ws() { - return getRuleContext(0); -} - -css3Parser::DeclarationContext* css3Parser::SupportsDeclarationConditionContext::declaration() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::SupportsDeclarationConditionContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - - -size_t css3Parser::SupportsDeclarationConditionContext::getRuleIndex() const { - return css3Parser::RuleSupportsDeclarationCondition; -} - -void css3Parser::SupportsDeclarationConditionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSupportsDeclarationCondition(this); -} - -void css3Parser::SupportsDeclarationConditionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSupportsDeclarationCondition(this); -} - - -std::any css3Parser::SupportsDeclarationConditionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSupportsDeclarationCondition(this); - else - return visitor->visitChildren(this); -} - -css3Parser::SupportsDeclarationConditionContext* css3Parser::supportsDeclarationCondition() { - SupportsDeclarationConditionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 112, css3Parser::RuleSupportsDeclarationCondition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(887); - match(css3Parser::OpenParen); - setState(888); - ws(); - setState(889); - declaration(); - setState(890); - match(css3Parser::CloseParen); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- GeneralEnclosedContext ------------------------------------------------------------------ - -css3Parser::GeneralEnclosedContext::GeneralEnclosedContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::GeneralEnclosedContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - -tree::TerminalNode* css3Parser::GeneralEnclosedContext::Function_() { - return getToken(css3Parser::Function_, 0); -} - -tree::TerminalNode* css3Parser::GeneralEnclosedContext::OpenParen() { - return getToken(css3Parser::OpenParen, 0); -} - -std::vector css3Parser::GeneralEnclosedContext::any_() { - return getRuleContexts(); -} - -css3Parser::Any_Context* css3Parser::GeneralEnclosedContext::any_(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::GeneralEnclosedContext::unused() { - return getRuleContexts(); -} - -css3Parser::UnusedContext* css3Parser::GeneralEnclosedContext::unused(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::GeneralEnclosedContext::getRuleIndex() const { - return css3Parser::RuleGeneralEnclosed; -} - -void css3Parser::GeneralEnclosedContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGeneralEnclosed(this); -} - -void css3Parser::GeneralEnclosedContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGeneralEnclosed(this); -} - - -std::any css3Parser::GeneralEnclosedContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGeneralEnclosed(this); - else - return visitor->visitChildren(this); -} - -css3Parser::GeneralEnclosedContext* css3Parser::generalEnclosed() { - GeneralEnclosedContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 114, css3Parser::RuleGeneralEnclosed); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(892); - _la = _input->LA(1); - if (!(_la == css3Parser::OpenParen - - || _la == css3Parser::Function_)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(897); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 2320506645508850346) != 0) || _la == css3Parser::Ident - - || _la == css3Parser::Function_) { - setState(895); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::OpenBracket: - case css3Parser::OpenParen: - case css3Parser::Colon: - case css3Parser::Url: - case css3Parser::Includes: - case css3Parser::DashMatch: - case css3Parser::Hash: - case css3Parser::Percentage: - case css3Parser::Url_: - case css3Parser::UnicodeRange: - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Dimension: - case css3Parser::UnknownDimension: - case css3Parser::Plus: - case css3Parser::Minus: - case css3Parser::Number: - case css3Parser::String_: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: - case css3Parser::Function_: { - setState(893); - any_(); - break; - } - - case css3Parser::OpenBrace: - case css3Parser::SemiColon: - case css3Parser::Cdo: - case css3Parser::Cdc: - case css3Parser::AtKeyword: { - setState(894); - unused(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(899); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(900); - match(css3Parser::CloseParen); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- UrlContext ------------------------------------------------------------------ - -css3Parser::UrlContext::UrlContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::UrlContext::Url_() { - return getToken(css3Parser::Url_, 0); -} - -std::vector css3Parser::UrlContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::UrlContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::UrlContext::String_() { - return getToken(css3Parser::String_, 0); -} - -tree::TerminalNode* css3Parser::UrlContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - -tree::TerminalNode* css3Parser::UrlContext::Url() { - return getToken(css3Parser::Url, 0); -} - - -size_t css3Parser::UrlContext::getRuleIndex() const { - return css3Parser::RuleUrl; -} - -void css3Parser::UrlContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterUrl(this); -} - -void css3Parser::UrlContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitUrl(this); -} - - -std::any css3Parser::UrlContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitUrl(this); - else - return visitor->visitChildren(this); -} - -css3Parser::UrlContext* css3Parser::url() { - UrlContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 116, css3Parser::RuleUrl); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(909); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::Url_: { - enterOuterAlt(_localctx, 1); - setState(902); - match(css3Parser::Url_); - setState(903); - ws(); - setState(904); - match(css3Parser::String_); - setState(905); - ws(); - setState(906); - match(css3Parser::CloseParen); - break; - } - - case css3Parser::Url: { - enterOuterAlt(_localctx, 2); - setState(908); - match(css3Parser::Url); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Var_Context ------------------------------------------------------------------ - -css3Parser::Var_Context::Var_Context(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::Var_Context::Var() { - return getToken(css3Parser::Var, 0); -} - -std::vector css3Parser::Var_Context::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::Var_Context::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::Var_Context::Variable() { - return getToken(css3Parser::Variable, 0); -} - -tree::TerminalNode* css3Parser::Var_Context::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - - -size_t css3Parser::Var_Context::getRuleIndex() const { - return css3Parser::RuleVar_; -} - -void css3Parser::Var_Context::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterVar_(this); -} - -void css3Parser::Var_Context::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitVar_(this); -} - - -std::any css3Parser::Var_Context::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitVar_(this); - else - return visitor->visitChildren(this); -} - -css3Parser::Var_Context* css3Parser::var_() { - Var_Context *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 118, css3Parser::RuleVar_); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(911); - match(css3Parser::Var); - setState(912); - ws(); - setState(913); - match(css3Parser::Variable); - setState(914); - ws(); - setState(915); - match(css3Parser::CloseParen); - setState(916); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CalcContext ------------------------------------------------------------------ - -css3Parser::CalcContext::CalcContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::CalcContext::Calc() { - return getToken(css3Parser::Calc, 0); -} - -std::vector css3Parser::CalcContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::CalcContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::CalcExprContext* css3Parser::CalcContext::calcExpr() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::CalcContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - - -size_t css3Parser::CalcContext::getRuleIndex() const { - return css3Parser::RuleCalc; -} - -void css3Parser::CalcContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCalc(this); -} - -void css3Parser::CalcContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCalc(this); -} - - -std::any css3Parser::CalcContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCalc(this); - else - return visitor->visitChildren(this); -} - -css3Parser::CalcContext* css3Parser::calc() { - CalcContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 120, css3Parser::RuleCalc); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(918); - match(css3Parser::Calc); - setState(919); - ws(); - setState(920); - calcExpr(); - setState(921); - match(css3Parser::CloseParen); - setState(922); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CalcOperandContext ------------------------------------------------------------------ - -css3Parser::CalcOperandContext::CalcOperandContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::CalcValueContext* css3Parser::CalcOperandContext::calcValue() { - return getRuleContext(0); -} - - -size_t css3Parser::CalcOperandContext::getRuleIndex() const { - return css3Parser::RuleCalcOperand; -} - -void css3Parser::CalcOperandContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCalcOperand(this); -} - -void css3Parser::CalcOperandContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCalcOperand(this); -} - - -std::any css3Parser::CalcOperandContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCalcOperand(this); - else - return visitor->visitChildren(this); -} - -css3Parser::CalcOperandContext* css3Parser::calcOperand() { - CalcOperandContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 122, css3Parser::RuleCalcOperand); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(924); - calcValue(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CalcSignContext ------------------------------------------------------------------ - -css3Parser::CalcSignContext::CalcSignContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::CalcSignContext::Plus() { - return getToken(css3Parser::Plus, 0); -} - -tree::TerminalNode* css3Parser::CalcSignContext::Minus() { - return getToken(css3Parser::Minus, 0); -} - -tree::TerminalNode* css3Parser::CalcSignContext::Divide() { - return getToken(css3Parser::Divide, 0); -} - -tree::TerminalNode* css3Parser::CalcSignContext::Multiply() { - return getToken(css3Parser::Multiply, 0); -} - - -size_t css3Parser::CalcSignContext::getRuleIndex() const { - return css3Parser::RuleCalcSign; -} - -void css3Parser::CalcSignContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCalcSign(this); -} - -void css3Parser::CalcSignContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCalcSign(this); -} - - -std::any css3Parser::CalcSignContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCalcSign(this); - else - return visitor->visitChildren(this); -} - -css3Parser::CalcSignContext* css3Parser::calcSign() { - CalcSignContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 124, css3Parser::RuleCalcSign); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(926); - _la = _input->LA(1); - if (!((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 412316866560) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CalcExprContext ------------------------------------------------------------------ - -css3Parser::CalcExprContext::CalcExprContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::CalcExprContext::calcOperand() { - return getRuleContexts(); -} - -css3Parser::CalcOperandContext* css3Parser::CalcExprContext::calcOperand(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::CalcExprContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::CalcExprContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::CalcExprContext::Space() { - return getTokens(css3Parser::Space); -} - -tree::TerminalNode* css3Parser::CalcExprContext::Space(size_t i) { - return getToken(css3Parser::Space, i); -} - -std::vector css3Parser::CalcExprContext::calcSign() { - return getRuleContexts(); -} - -css3Parser::CalcSignContext* css3Parser::CalcExprContext::calcSign(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::CalcExprContext::getRuleIndex() const { - return css3Parser::RuleCalcExpr; -} - -void css3Parser::CalcExprContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCalcExpr(this); -} - -void css3Parser::CalcExprContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCalcExpr(this); -} - - -std::any css3Parser::CalcExprContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCalcExpr(this); - else - return visitor->visitChildren(this); -} - -css3Parser::CalcExprContext* css3Parser::calcExpr() { - CalcExprContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 126, css3Parser::RuleCalcExpr); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(928); - calcOperand(); - setState(938); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 91, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(929); - match(css3Parser::Space); - setState(930); - ws(); - setState(931); - calcSign(); - setState(932); - match(css3Parser::Space); - setState(933); - ws(); - setState(934); - calcOperand(); - } - setState(940); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 91, _ctx); - } - setState(941); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CalcNestedValueContext ------------------------------------------------------------------ - -css3Parser::CalcNestedValueContext::CalcNestedValueContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::CalcNestedValueContext::OpenParen() { - return getToken(css3Parser::OpenParen, 0); -} - -std::vector css3Parser::CalcNestedValueContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::CalcNestedValueContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::CalcExprContext* css3Parser::CalcNestedValueContext::calcExpr() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::CalcNestedValueContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - -tree::TerminalNode* css3Parser::CalcNestedValueContext::Minus() { - return getToken(css3Parser::Minus, 0); -} - -tree::TerminalNode* css3Parser::CalcNestedValueContext::Plus() { - return getToken(css3Parser::Plus, 0); -} - - -size_t css3Parser::CalcNestedValueContext::getRuleIndex() const { - return css3Parser::RuleCalcNestedValue; -} - -void css3Parser::CalcNestedValueContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCalcNestedValue(this); -} - -void css3Parser::CalcNestedValueContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCalcNestedValue(this); -} - - -std::any css3Parser::CalcNestedValueContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCalcNestedValue(this); - else - return visitor->visitChildren(this); -} - -css3Parser::CalcNestedValueContext* css3Parser::calcNestedValue() { - CalcNestedValueContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 128, css3Parser::RuleCalcNestedValue); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(944); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Plus - - || _la == css3Parser::Minus) { - setState(943); - _la = _input->LA(1); - if (!(_la == css3Parser::Plus - - || _la == css3Parser::Minus)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - } - setState(946); - match(css3Parser::OpenParen); - setState(947); - ws(); - setState(948); - calcExpr(); - setState(949); - match(css3Parser::CloseParen); - setState(950); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CalcValueContext ------------------------------------------------------------------ - -css3Parser::CalcValueContext::CalcValueContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::NumberContext* css3Parser::CalcValueContext::number() { - return getRuleContext(0); -} - -css3Parser::WsContext* css3Parser::CalcValueContext::ws() { - return getRuleContext(0); -} - -css3Parser::DimensionContext* css3Parser::CalcValueContext::dimension() { - return getRuleContext(0); -} - -css3Parser::UnknownDimensionContext* css3Parser::CalcValueContext::unknownDimension() { - return getRuleContext(0); -} - -css3Parser::PercentageContext* css3Parser::CalcValueContext::percentage() { - return getRuleContext(0); -} - -css3Parser::CalcNestedValueContext* css3Parser::CalcValueContext::calcNestedValue() { - return getRuleContext(0); -} - -css3Parser::CalcContext* css3Parser::CalcValueContext::calc() { - return getRuleContext(0); -} - - -size_t css3Parser::CalcValueContext::getRuleIndex() const { - return css3Parser::RuleCalcValue; -} - -void css3Parser::CalcValueContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCalcValue(this); -} - -void css3Parser::CalcValueContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCalcValue(this); -} - - -std::any css3Parser::CalcValueContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCalcValue(this); - else - return visitor->visitChildren(this); -} - -css3Parser::CalcValueContext* css3Parser::calcValue() { - CalcValueContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 130, css3Parser::RuleCalcValue); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(970); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 93, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(952); - number(); - setState(953); - ws(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(955); - dimension(); - setState(956); - ws(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(958); - unknownDimension(); - setState(959); - ws(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(961); - percentage(); - setState(962); - ws(); - break; - } - - case 5: { - enterOuterAlt(_localctx, 5); - setState(964); - calcNestedValue(); - setState(965); - ws(); - break; - } - - case 6: { - enterOuterAlt(_localctx, 6); - setState(967); - calc(); - setState(968); - ws(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FontFaceRuleContext ------------------------------------------------------------------ - -css3Parser::FontFaceRuleContext::FontFaceRuleContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::FontFaceRuleContext::FontFace() { - return getToken(css3Parser::FontFace, 0); -} - -std::vector css3Parser::FontFaceRuleContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::FontFaceRuleContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::FontFaceRuleContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -tree::TerminalNode* css3Parser::FontFaceRuleContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -std::vector css3Parser::FontFaceRuleContext::fontFaceDeclaration() { - return getRuleContexts(); -} - -css3Parser::FontFaceDeclarationContext* css3Parser::FontFaceRuleContext::fontFaceDeclaration(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::FontFaceRuleContext::SemiColon() { - return getTokens(css3Parser::SemiColon); -} - -tree::TerminalNode* css3Parser::FontFaceRuleContext::SemiColon(size_t i) { - return getToken(css3Parser::SemiColon, i); -} - - -size_t css3Parser::FontFaceRuleContext::getRuleIndex() const { - return css3Parser::RuleFontFaceRule; -} - -void css3Parser::FontFaceRuleContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFontFaceRule(this); -} - -void css3Parser::FontFaceRuleContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFontFaceRule(this); -} - - -std::any css3Parser::FontFaceRuleContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFontFaceRule(this); - else - return visitor->visitChildren(this); -} - -css3Parser::FontFaceRuleContext* css3Parser::fontFaceRule() { - FontFaceRuleContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 132, css3Parser::RuleFontFaceRule); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(972); - match(css3Parser::FontFace); - setState(973); - ws(); - setState(974); - match(css3Parser::OpenBrace); - setState(975); - ws(); - setState(977); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 11) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 11)) & 11266145908686857) != 0)) { - setState(976); - fontFaceDeclaration(); - } - setState(986); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::SemiColon) { - setState(979); - match(css3Parser::SemiColon); - setState(980); - ws(); - setState(982); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 11) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 11)) & 11266145908686857) != 0)) { - setState(981); - fontFaceDeclaration(); - } - setState(988); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(989); - match(css3Parser::CloseBrace); - setState(990); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FontFaceDeclarationContext ------------------------------------------------------------------ - -css3Parser::FontFaceDeclarationContext::FontFaceDeclarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t css3Parser::FontFaceDeclarationContext::getRuleIndex() const { - return css3Parser::RuleFontFaceDeclaration; -} - -void css3Parser::FontFaceDeclarationContext::copyFrom(FontFaceDeclarationContext *ctx) { - ParserRuleContext::copyFrom(ctx); -} - -//----------------- KnownFontFaceDeclarationContext ------------------------------------------------------------------ - -css3Parser::Property_Context* css3Parser::KnownFontFaceDeclarationContext::property_() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::KnownFontFaceDeclarationContext::Colon() { - return getToken(css3Parser::Colon, 0); -} - -css3Parser::WsContext* css3Parser::KnownFontFaceDeclarationContext::ws() { - return getRuleContext(0); -} - -css3Parser::ExprContext* css3Parser::KnownFontFaceDeclarationContext::expr() { - return getRuleContext(0); -} - -css3Parser::KnownFontFaceDeclarationContext::KnownFontFaceDeclarationContext(FontFaceDeclarationContext *ctx) { copyFrom(ctx); } - -void css3Parser::KnownFontFaceDeclarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterKnownFontFaceDeclaration(this); -} -void css3Parser::KnownFontFaceDeclarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitKnownFontFaceDeclaration(this); -} - -std::any css3Parser::KnownFontFaceDeclarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitKnownFontFaceDeclaration(this); - else - return visitor->visitChildren(this); -} -//----------------- UnknownFontFaceDeclarationContext ------------------------------------------------------------------ - -css3Parser::Property_Context* css3Parser::UnknownFontFaceDeclarationContext::property_() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::UnknownFontFaceDeclarationContext::Colon() { - return getToken(css3Parser::Colon, 0); -} - -css3Parser::WsContext* css3Parser::UnknownFontFaceDeclarationContext::ws() { - return getRuleContext(0); -} - -css3Parser::ValueContext* css3Parser::UnknownFontFaceDeclarationContext::value() { - return getRuleContext(0); -} - -css3Parser::UnknownFontFaceDeclarationContext::UnknownFontFaceDeclarationContext(FontFaceDeclarationContext *ctx) { copyFrom(ctx); } - -void css3Parser::UnknownFontFaceDeclarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterUnknownFontFaceDeclaration(this); -} -void css3Parser::UnknownFontFaceDeclarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitUnknownFontFaceDeclaration(this); -} - -std::any css3Parser::UnknownFontFaceDeclarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitUnknownFontFaceDeclaration(this); - else - return visitor->visitChildren(this); -} -css3Parser::FontFaceDeclarationContext* css3Parser::fontFaceDeclaration() { - FontFaceDeclarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 134, css3Parser::RuleFontFaceDeclaration); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(1002); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 97, _ctx)) { - case 1: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 1); - setState(992); - property_(); - setState(993); - match(css3Parser::Colon); - setState(994); - ws(); - setState(995); - expr(); - break; - } - - case 2: { - _localctx = _tracker.createInstance(_localctx); - enterOuterAlt(_localctx, 2); - setState(997); - property_(); - setState(998); - match(css3Parser::Colon); - setState(999); - ws(); - setState(1000); - value(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- KeyframesRuleContext ------------------------------------------------------------------ - -css3Parser::KeyframesRuleContext::KeyframesRuleContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::KeyframesRuleContext::Keyframes() { - return getToken(css3Parser::Keyframes, 0); -} - -std::vector css3Parser::KeyframesRuleContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::KeyframesRuleContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::KeyframesRuleContext::Space() { - return getToken(css3Parser::Space, 0); -} - -css3Parser::IdentContext* css3Parser::KeyframesRuleContext::ident() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::KeyframesRuleContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -tree::TerminalNode* css3Parser::KeyframesRuleContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -std::vector css3Parser::KeyframesRuleContext::keyframeBlock() { - return getRuleContexts(); -} - -css3Parser::KeyframeBlockContext* css3Parser::KeyframesRuleContext::keyframeBlock(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::KeyframesRuleContext::getRuleIndex() const { - return css3Parser::RuleKeyframesRule; -} - -void css3Parser::KeyframesRuleContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterKeyframesRule(this); -} - -void css3Parser::KeyframesRuleContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitKeyframesRule(this); -} - - -std::any css3Parser::KeyframesRuleContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitKeyframesRule(this); - else - return visitor->visitChildren(this); -} - -css3Parser::KeyframesRuleContext* css3Parser::keyframesRule() { - KeyframesRuleContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 136, css3Parser::RuleKeyframesRule); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1004); - match(css3Parser::Keyframes); - setState(1005); - ws(); - setState(1006); - match(css3Parser::Space); - setState(1007); - ws(); - setState(1008); - ident(); - setState(1009); - ws(); - setState(1010); - match(css3Parser::OpenBrace); - setState(1011); - ws(); - setState(1015); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 13510799418982400) != 0)) { - setState(1012); - keyframeBlock(); - setState(1017); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(1018); - match(css3Parser::CloseBrace); - setState(1019); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- KeyframeBlockContext ------------------------------------------------------------------ - -css3Parser::KeyframeBlockContext::KeyframeBlockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::KeyframeSelectorContext* css3Parser::KeyframeBlockContext::keyframeSelector() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::KeyframeBlockContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -std::vector css3Parser::KeyframeBlockContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::KeyframeBlockContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::KeyframeBlockContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -css3Parser::DeclarationListContext* css3Parser::KeyframeBlockContext::declarationList() { - return getRuleContext(0); -} - - -size_t css3Parser::KeyframeBlockContext::getRuleIndex() const { - return css3Parser::RuleKeyframeBlock; -} - -void css3Parser::KeyframeBlockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterKeyframeBlock(this); -} - -void css3Parser::KeyframeBlockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitKeyframeBlock(this); -} - - -std::any css3Parser::KeyframeBlockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitKeyframeBlock(this); - else - return visitor->visitChildren(this); -} - -css3Parser::KeyframeBlockContext* css3Parser::keyframeBlock() { - KeyframeBlockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 138, css3Parser::RuleKeyframeBlock); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1021); - keyframeSelector(); - setState(1022); - match(css3Parser::OpenBrace); - setState(1023); - ws(); - setState(1025); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 7) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 7)) & 180258334538989713) != 0)) { - setState(1024); - declarationList(); - } - setState(1027); - match(css3Parser::CloseBrace); - setState(1028); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- KeyframeSelectorContext ------------------------------------------------------------------ - -css3Parser::KeyframeSelectorContext::KeyframeSelectorContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::KeyframeSelectorContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::KeyframeSelectorContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::KeyframeSelectorContext::From() { - return getTokens(css3Parser::From); -} - -tree::TerminalNode* css3Parser::KeyframeSelectorContext::From(size_t i) { - return getToken(css3Parser::From, i); -} - -std::vector css3Parser::KeyframeSelectorContext::To() { - return getTokens(css3Parser::To); -} - -tree::TerminalNode* css3Parser::KeyframeSelectorContext::To(size_t i) { - return getToken(css3Parser::To, i); -} - -std::vector css3Parser::KeyframeSelectorContext::Percentage() { - return getTokens(css3Parser::Percentage); -} - -tree::TerminalNode* css3Parser::KeyframeSelectorContext::Percentage(size_t i) { - return getToken(css3Parser::Percentage, i); -} - -std::vector css3Parser::KeyframeSelectorContext::Comma() { - return getTokens(css3Parser::Comma); -} - -tree::TerminalNode* css3Parser::KeyframeSelectorContext::Comma(size_t i) { - return getToken(css3Parser::Comma, i); -} - - -size_t css3Parser::KeyframeSelectorContext::getRuleIndex() const { - return css3Parser::RuleKeyframeSelector; -} - -void css3Parser::KeyframeSelectorContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterKeyframeSelector(this); -} - -void css3Parser::KeyframeSelectorContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitKeyframeSelector(this); -} - - -std::any css3Parser::KeyframeSelectorContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitKeyframeSelector(this); - else - return visitor->visitChildren(this); -} - -css3Parser::KeyframeSelectorContext* css3Parser::keyframeSelector() { - KeyframeSelectorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 140, css3Parser::RuleKeyframeSelector); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1030); - _la = _input->LA(1); - if (!((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 13510799418982400) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(1031); - ws(); - setState(1039); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::Comma) { - setState(1032); - match(css3Parser::Comma); - setState(1033); - ws(); - setState(1034); - _la = _input->LA(1); - if (!((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 13510799418982400) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(1035); - ws(); - setState(1041); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ViewportContext ------------------------------------------------------------------ - -css3Parser::ViewportContext::ViewportContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::ViewportContext::Viewport() { - return getToken(css3Parser::Viewport, 0); -} - -std::vector css3Parser::ViewportContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::ViewportContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::ViewportContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -tree::TerminalNode* css3Parser::ViewportContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -css3Parser::DeclarationListContext* css3Parser::ViewportContext::declarationList() { - return getRuleContext(0); -} - - -size_t css3Parser::ViewportContext::getRuleIndex() const { - return css3Parser::RuleViewport; -} - -void css3Parser::ViewportContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterViewport(this); -} - -void css3Parser::ViewportContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitViewport(this); -} - - -std::any css3Parser::ViewportContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitViewport(this); - else - return visitor->visitChildren(this); -} - -css3Parser::ViewportContext* css3Parser::viewport() { - ViewportContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 142, css3Parser::RuleViewport); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1042); - match(css3Parser::Viewport); - setState(1043); - ws(); - setState(1044); - match(css3Parser::OpenBrace); - setState(1045); - ws(); - setState(1047); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 7) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 7)) & 180258334538989713) != 0)) { - setState(1046); - declarationList(); - } - setState(1049); - match(css3Parser::CloseBrace); - setState(1050); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CounterStyleContext ------------------------------------------------------------------ - -css3Parser::CounterStyleContext::CounterStyleContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::CounterStyleContext::CounterStyle() { - return getToken(css3Parser::CounterStyle, 0); -} - -std::vector css3Parser::CounterStyleContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::CounterStyleContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::IdentContext* css3Parser::CounterStyleContext::ident() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::CounterStyleContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -tree::TerminalNode* css3Parser::CounterStyleContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -css3Parser::DeclarationListContext* css3Parser::CounterStyleContext::declarationList() { - return getRuleContext(0); -} - - -size_t css3Parser::CounterStyleContext::getRuleIndex() const { - return css3Parser::RuleCounterStyle; -} - -void css3Parser::CounterStyleContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCounterStyle(this); -} - -void css3Parser::CounterStyleContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCounterStyle(this); -} - - -std::any css3Parser::CounterStyleContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCounterStyle(this); - else - return visitor->visitChildren(this); -} - -css3Parser::CounterStyleContext* css3Parser::counterStyle() { - CounterStyleContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 144, css3Parser::RuleCounterStyle); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1052); - match(css3Parser::CounterStyle); - setState(1053); - ws(); - setState(1054); - ident(); - setState(1055); - ws(); - setState(1056); - match(css3Parser::OpenBrace); - setState(1057); - ws(); - setState(1059); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 7) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 7)) & 180258334538989713) != 0)) { - setState(1058); - declarationList(); - } - setState(1061); - match(css3Parser::CloseBrace); - setState(1062); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FontFeatureValuesRuleContext ------------------------------------------------------------------ - -css3Parser::FontFeatureValuesRuleContext::FontFeatureValuesRuleContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::FontFeatureValuesRuleContext::FontFeatureValues() { - return getToken(css3Parser::FontFeatureValues, 0); -} - -std::vector css3Parser::FontFeatureValuesRuleContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::FontFeatureValuesRuleContext::ws(size_t i) { - return getRuleContext(i); -} - -css3Parser::FontFamilyNameListContext* css3Parser::FontFeatureValuesRuleContext::fontFamilyNameList() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::FontFeatureValuesRuleContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -tree::TerminalNode* css3Parser::FontFeatureValuesRuleContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -std::vector css3Parser::FontFeatureValuesRuleContext::featureValueBlock() { - return getRuleContexts(); -} - -css3Parser::FeatureValueBlockContext* css3Parser::FontFeatureValuesRuleContext::featureValueBlock(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::FontFeatureValuesRuleContext::getRuleIndex() const { - return css3Parser::RuleFontFeatureValuesRule; -} - -void css3Parser::FontFeatureValuesRuleContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFontFeatureValuesRule(this); -} - -void css3Parser::FontFeatureValuesRuleContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFontFeatureValuesRule(this); -} - - -std::any css3Parser::FontFeatureValuesRuleContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFontFeatureValuesRule(this); - else - return visitor->visitChildren(this); -} - -css3Parser::FontFeatureValuesRuleContext* css3Parser::fontFeatureValuesRule() { - FontFeatureValuesRuleContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 146, css3Parser::RuleFontFeatureValuesRule); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1064); - match(css3Parser::FontFeatureValues); - setState(1065); - ws(); - setState(1066); - fontFamilyNameList(); - setState(1067); - ws(); - setState(1068); - match(css3Parser::OpenBrace); - setState(1069); - ws(); - setState(1073); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == css3Parser::AtKeyword) { - setState(1070); - featureValueBlock(); - setState(1075); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(1076); - match(css3Parser::CloseBrace); - setState(1077); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FontFamilyNameListContext ------------------------------------------------------------------ - -css3Parser::FontFamilyNameListContext::FontFamilyNameListContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::FontFamilyNameListContext::fontFamilyName() { - return getRuleContexts(); -} - -css3Parser::FontFamilyNameContext* css3Parser::FontFamilyNameListContext::fontFamilyName(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::FontFamilyNameListContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::FontFamilyNameListContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::FontFamilyNameListContext::Comma() { - return getTokens(css3Parser::Comma); -} - -tree::TerminalNode* css3Parser::FontFamilyNameListContext::Comma(size_t i) { - return getToken(css3Parser::Comma, i); -} - - -size_t css3Parser::FontFamilyNameListContext::getRuleIndex() const { - return css3Parser::RuleFontFamilyNameList; -} - -void css3Parser::FontFamilyNameListContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFontFamilyNameList(this); -} - -void css3Parser::FontFamilyNameListContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFontFamilyNameList(this); -} - - -std::any css3Parser::FontFamilyNameListContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFontFamilyNameList(this); - else - return visitor->visitChildren(this); -} - -css3Parser::FontFamilyNameListContext* css3Parser::fontFamilyNameList() { - FontFamilyNameListContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 148, css3Parser::RuleFontFamilyNameList); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(1079); - fontFamilyName(); - setState(1087); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 104, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(1080); - ws(); - setState(1081); - match(css3Parser::Comma); - setState(1082); - ws(); - setState(1083); - fontFamilyName(); - } - setState(1089); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 104, _ctx); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FontFamilyNameContext ------------------------------------------------------------------ - -css3Parser::FontFamilyNameContext::FontFamilyNameContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::FontFamilyNameContext::String_() { - return getToken(css3Parser::String_, 0); -} - -std::vector css3Parser::FontFamilyNameContext::ident() { - return getRuleContexts(); -} - -css3Parser::IdentContext* css3Parser::FontFamilyNameContext::ident(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::FontFamilyNameContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::FontFamilyNameContext::ws(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::FontFamilyNameContext::getRuleIndex() const { - return css3Parser::RuleFontFamilyName; -} - -void css3Parser::FontFamilyNameContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFontFamilyName(this); -} - -void css3Parser::FontFamilyNameContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFontFamilyName(this); -} - - -std::any css3Parser::FontFamilyNameContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFontFamilyName(this); - else - return visitor->visitChildren(this); -} - -css3Parser::FontFamilyNameContext* css3Parser::fontFamilyName() { - FontFamilyNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 150, css3Parser::RuleFontFamilyName); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - setState(1100); - _errHandler->sync(this); - switch (_input->LA(1)) { - case css3Parser::String_: { - enterOuterAlt(_localctx, 1); - setState(1090); - match(css3Parser::String_); - break; - } - - case css3Parser::MediaOnly: - case css3Parser::Not: - case css3Parser::And: - case css3Parser::Or: - case css3Parser::From: - case css3Parser::To: - case css3Parser::Ident: { - enterOuterAlt(_localctx, 2); - setState(1091); - ident(); - setState(1097); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 105, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(1092); - ws(); - setState(1093); - ident(); - } - setState(1099); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 105, _ctx); - } - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FeatureValueBlockContext ------------------------------------------------------------------ - -css3Parser::FeatureValueBlockContext::FeatureValueBlockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::FeatureTypeContext* css3Parser::FeatureValueBlockContext::featureType() { - return getRuleContext(0); -} - -std::vector css3Parser::FeatureValueBlockContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::FeatureValueBlockContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::FeatureValueBlockContext::OpenBrace() { - return getToken(css3Parser::OpenBrace, 0); -} - -tree::TerminalNode* css3Parser::FeatureValueBlockContext::CloseBrace() { - return getToken(css3Parser::CloseBrace, 0); -} - -std::vector css3Parser::FeatureValueBlockContext::featureValueDefinition() { - return getRuleContexts(); -} - -css3Parser::FeatureValueDefinitionContext* css3Parser::FeatureValueBlockContext::featureValueDefinition(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::FeatureValueBlockContext::SemiColon() { - return getTokens(css3Parser::SemiColon); -} - -tree::TerminalNode* css3Parser::FeatureValueBlockContext::SemiColon(size_t i) { - return getToken(css3Parser::SemiColon, i); -} - - -size_t css3Parser::FeatureValueBlockContext::getRuleIndex() const { - return css3Parser::RuleFeatureValueBlock; -} - -void css3Parser::FeatureValueBlockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFeatureValueBlock(this); -} - -void css3Parser::FeatureValueBlockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFeatureValueBlock(this); -} - - -std::any css3Parser::FeatureValueBlockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFeatureValueBlock(this); - else - return visitor->visitChildren(this); -} - -css3Parser::FeatureValueBlockContext* css3Parser::featureValueBlock() { - FeatureValueBlockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 152, css3Parser::RuleFeatureValueBlock); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1102); - featureType(); - setState(1103); - ws(); - setState(1104); - match(css3Parser::OpenBrace); - setState(1105); - ws(); - setState(1107); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 32) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 32)) & 4298375175) != 0)) { - setState(1106); - featureValueDefinition(); - } - setState(1117); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 163968) != 0)) { - setState(1109); - ws(); - setState(1110); - match(css3Parser::SemiColon); - setState(1111); - ws(); - setState(1113); - _errHandler->sync(this); - - _la = _input->LA(1); - if (((((_la - 32) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 32)) & 4298375175) != 0)) { - setState(1112); - featureValueDefinition(); - } - setState(1119); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(1120); - match(css3Parser::CloseBrace); - setState(1121); - ws(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FeatureTypeContext ------------------------------------------------------------------ - -css3Parser::FeatureTypeContext::FeatureTypeContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::FeatureTypeContext::AtKeyword() { - return getToken(css3Parser::AtKeyword, 0); -} - - -size_t css3Parser::FeatureTypeContext::getRuleIndex() const { - return css3Parser::RuleFeatureType; -} - -void css3Parser::FeatureTypeContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFeatureType(this); -} - -void css3Parser::FeatureTypeContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFeatureType(this); -} - - -std::any css3Parser::FeatureTypeContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFeatureType(this); - else - return visitor->visitChildren(this); -} - -css3Parser::FeatureTypeContext* css3Parser::featureType() { - FeatureTypeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 154, css3Parser::RuleFeatureType); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1123); - match(css3Parser::AtKeyword); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- FeatureValueDefinitionContext ------------------------------------------------------------------ - -css3Parser::FeatureValueDefinitionContext::FeatureValueDefinitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::IdentContext* css3Parser::FeatureValueDefinitionContext::ident() { - return getRuleContext(0); -} - -std::vector css3Parser::FeatureValueDefinitionContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::FeatureValueDefinitionContext::ws(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* css3Parser::FeatureValueDefinitionContext::Colon() { - return getToken(css3Parser::Colon, 0); -} - -std::vector css3Parser::FeatureValueDefinitionContext::number() { - return getRuleContexts(); -} - -css3Parser::NumberContext* css3Parser::FeatureValueDefinitionContext::number(size_t i) { - return getRuleContext(i); -} - - -size_t css3Parser::FeatureValueDefinitionContext::getRuleIndex() const { - return css3Parser::RuleFeatureValueDefinition; -} - -void css3Parser::FeatureValueDefinitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFeatureValueDefinition(this); -} - -void css3Parser::FeatureValueDefinitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFeatureValueDefinition(this); -} - - -std::any css3Parser::FeatureValueDefinitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFeatureValueDefinition(this); - else - return visitor->visitChildren(this); -} - -css3Parser::FeatureValueDefinitionContext* css3Parser::featureValueDefinition() { - FeatureValueDefinitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 156, css3Parser::RuleFeatureValueDefinition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(1125); - ident(); - setState(1126); - ws(); - setState(1127); - match(css3Parser::Colon); - setState(1128); - ws(); - setState(1129); - number(); - setState(1135); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 110, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(1130); - ws(); - setState(1131); - number(); - } - setState(1137); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 110, _ctx); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- IdentContext ------------------------------------------------------------------ - -css3Parser::IdentContext::IdentContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* css3Parser::IdentContext::Ident() { - return getToken(css3Parser::Ident, 0); -} - -tree::TerminalNode* css3Parser::IdentContext::MediaOnly() { - return getToken(css3Parser::MediaOnly, 0); -} - -tree::TerminalNode* css3Parser::IdentContext::Not() { - return getToken(css3Parser::Not, 0); -} - -tree::TerminalNode* css3Parser::IdentContext::And() { - return getToken(css3Parser::And, 0); -} - -tree::TerminalNode* css3Parser::IdentContext::Or() { - return getToken(css3Parser::Or, 0); -} - -tree::TerminalNode* css3Parser::IdentContext::From() { - return getToken(css3Parser::From, 0); -} - -tree::TerminalNode* css3Parser::IdentContext::To() { - return getToken(css3Parser::To, 0); -} - - -size_t css3Parser::IdentContext::getRuleIndex() const { - return css3Parser::RuleIdent; -} - -void css3Parser::IdentContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterIdent(this); -} - -void css3Parser::IdentContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitIdent(this); -} - - -std::any css3Parser::IdentContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitIdent(this); - else - return visitor->visitChildren(this); -} - -css3Parser::IdentContext* css3Parser::ident() { - IdentContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 158, css3Parser::RuleIdent); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(1138); - _la = _input->LA(1); - if (!(((((_la - 32) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 32)) & 4298375175) != 0))) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- WsContext ------------------------------------------------------------------ - -css3Parser::WsContext::WsContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::WsContext::Comment() { - return getTokens(css3Parser::Comment); -} - -tree::TerminalNode* css3Parser::WsContext::Comment(size_t i) { - return getToken(css3Parser::Comment, i); -} - -std::vector css3Parser::WsContext::Space() { - return getTokens(css3Parser::Space); -} - -tree::TerminalNode* css3Parser::WsContext::Space(size_t i) { - return getToken(css3Parser::Space, i); -} - - -size_t css3Parser::WsContext::getRuleIndex() const { - return css3Parser::RuleWs; -} - -void css3Parser::WsContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterWs(this); -} - -void css3Parser::WsContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitWs(this); -} - - -std::any css3Parser::WsContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitWs(this); - else - return visitor->visitChildren(this); -} - -css3Parser::WsContext* css3Parser::ws() { - WsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 160, css3Parser::RuleWs); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(1143); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 111, _ctx); - while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1) { - setState(1140); - _la = _input->LA(1); - if (!(_la == css3Parser::Comment - - || _la == css3Parser::Space)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - } - setState(1145); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 111, _ctx); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ColorContext ------------------------------------------------------------------ - -css3Parser::ColorContext::ColorContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector css3Parser::ColorContext::ws() { - return getRuleContexts(); -} - -css3Parser::WsContext* css3Parser::ColorContext::ws(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::ColorContext::color_component() { - return getRuleContexts(); -} - -css3Parser::Color_componentContext* css3Parser::ColorContext::color_component(size_t i) { - return getRuleContext(i); -} - -std::vector css3Parser::ColorContext::Comma() { - return getTokens(css3Parser::Comma); -} - -tree::TerminalNode* css3Parser::ColorContext::Comma(size_t i) { - return getToken(css3Parser::Comma, i); -} - -tree::TerminalNode* css3Parser::ColorContext::CloseParen() { - return getToken(css3Parser::CloseParen, 0); -} - -tree::TerminalNode* css3Parser::ColorContext::Rgb() { - return getToken(css3Parser::Rgb, 0); -} - -tree::TerminalNode* css3Parser::ColorContext::Rgba() { - return getToken(css3Parser::Rgba, 0); -} - -css3Parser::Color_alphaContext* css3Parser::ColorContext::color_alpha() { - return getRuleContext(0); -} - -tree::TerminalNode* css3Parser::ColorContext::Divide() { - return getToken(css3Parser::Divide, 0); -} - - -size_t css3Parser::ColorContext::getRuleIndex() const { - return css3Parser::RuleColor; -} - -void css3Parser::ColorContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterColor(this); -} - -void css3Parser::ColorContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitColor(this); -} - - -std::any css3Parser::ColorContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitColor(this); - else - return visitor->visitChildren(this); -} - -css3Parser::ColorContext* css3Parser::color() { - ColorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 162, css3Parser::RuleColor); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(1180); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 114, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(1146); - _la = _input->LA(1); - if (!(_la == css3Parser::Rgb - - || _la == css3Parser::Rgba)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(1147); - ws(); - setState(1148); - color_component(); - setState(1149); - match(css3Parser::Comma); - setState(1150); - ws(); - setState(1151); - color_component(); - setState(1152); - match(css3Parser::Comma); - setState(1153); - ws(); - setState(1154); - color_component(); - setState(1159); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Comma) { - setState(1155); - match(css3Parser::Comma); - setState(1156); - ws(); - setState(1157); - color_alpha(); - } - setState(1161); - match(css3Parser::CloseParen); - setState(1162); - ws(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(1164); - _la = _input->LA(1); - if (!(_la == css3Parser::Rgb - - || _la == css3Parser::Rgba)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - setState(1165); - ws(); - setState(1166); - color_component(); - setState(1167); - ws(); - setState(1168); - color_component(); - setState(1169); - ws(); - setState(1170); - color_component(); - setState(1175); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == css3Parser::Divide) { - setState(1171); - match(css3Parser::Divide); - setState(1172); - ws(); - setState(1173); - color_alpha(); - } - setState(1177); - match(css3Parser::CloseParen); - setState(1178); - ws(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Color_alphaContext ------------------------------------------------------------------ - -css3Parser::Color_alphaContext::Color_alphaContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::CalcValueContext* css3Parser::Color_alphaContext::calcValue() { - return getRuleContext(0); -} - -css3Parser::CalcContext* css3Parser::Color_alphaContext::calc() { - return getRuleContext(0); -} - - -size_t css3Parser::Color_alphaContext::getRuleIndex() const { - return css3Parser::RuleColor_alpha; -} - -void css3Parser::Color_alphaContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterColor_alpha(this); -} - -void css3Parser::Color_alphaContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitColor_alpha(this); -} - - -std::any css3Parser::Color_alphaContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitColor_alpha(this); - else - return visitor->visitChildren(this); -} - -css3Parser::Color_alphaContext* css3Parser::color_alpha() { - Color_alphaContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 164, css3Parser::RuleColor_alpha); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(1184); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 115, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(1182); - calcValue(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(1183); - calc(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Color_componentContext ------------------------------------------------------------------ - -css3Parser::Color_componentContext::Color_componentContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -css3Parser::CalcValueContext* css3Parser::Color_componentContext::calcValue() { - return getRuleContext(0); -} - -css3Parser::CalcContext* css3Parser::Color_componentContext::calc() { - return getRuleContext(0); -} - - -size_t css3Parser::Color_componentContext::getRuleIndex() const { - return css3Parser::RuleColor_component; -} - -void css3Parser::Color_componentContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterColor_component(this); -} - -void css3Parser::Color_componentContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitColor_component(this); -} - - -std::any css3Parser::Color_componentContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitColor_component(this); - else - return visitor->visitChildren(this); -} - -css3Parser::Color_componentContext* css3Parser::color_component() { - Color_componentContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 166, css3Parser::RuleColor_component); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(1188); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 116, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(1186); - calcValue(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(1187); - calc(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -void css3Parser::initialize() { -#if ANTLR4_USE_THREAD_LOCAL_CACHE - css3parserParserInitialize(); -#else - ::antlr4::internal::call_once(css3parserParserOnceFlag, css3parserParserInitialize); -#endif -} diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.h b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.h deleted file mode 100644 index 5beabf812..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.h +++ /dev/null @@ -1,2096 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - -#pragma once - - -#include "antlr4-runtime.h" - - - - -class css3Parser : public antlr4::Parser { -public: - enum { - OpenBracket = 1, CloseBracket = 2, OpenParen = 3, CloseParen = 4, OpenBrace = 5, - CloseBrace = 6, SemiColon = 7, Equal = 8, Colon = 9, Dot = 10, Multiply = 11, - Divide = 12, Pipe = 13, Underscore = 14, Comment = 15, Url = 16, Space = 17, - Cdo = 18, Cdc = 19, Includes = 20, DashMatch = 21, Hash = 22, Import = 23, - Page = 24, Media = 25, Namespace = 26, Charset = 27, Important = 28, - Percentage = 29, Url_ = 30, UnicodeRange = 31, MediaOnly = 32, Not = 33, - And = 34, Dimension = 35, UnknownDimension = 36, Plus = 37, Minus = 38, - Greater = 39, Comma = 40, Tilde = 41, PseudoNot = 42, Number = 43, String_ = 44, - PrefixMatch = 45, SuffixMatch = 46, SubstringMatch = 47, FontFace = 48, - Supports = 49, Or = 50, Keyframes = 51, From = 52, To = 53, Calc = 54, - Rgb = 55, Rgba = 56, Viewport = 57, CounterStyle = 58, FontFeatureValues = 59, - DxImageTransform = 60, AtKeyword = 61, Variable = 62, Var = 63, Ident = 64, - Function_ = 65, UnexpectedCharacter = 66 - }; - - enum { - RuleStylesheet = 0, RuleCharset = 1, RuleImports = 2, RuleNamespace_ = 3, - RuleNamespacePrefix = 4, RuleMedia = 5, RuleMediaQueryList = 6, RuleMediaQuery = 7, - RuleMediaType = 8, RuleMediaExpression = 9, RuleMediaFeature = 10, RulePage = 11, - RulePseudoPage = 12, RuleSelectorGroup = 13, RuleSelector = 14, RuleCombinator = 15, - RuleSimpleSelectorSequence = 16, RuleTypeSelector = 17, RuleTypeNamespacePrefix = 18, - RuleElementName = 19, RuleUniversal = 20, RuleClassName = 21, RuleAttrib = 22, - RulePseudo = 23, RuleFunctionalPseudo = 24, RuleExpression = 25, RuleNegation = 26, - RuleNegationArg = 27, RuleOperator_ = 28, RuleProperty_ = 29, RuleRuleset = 30, - RuleDeclarationList = 31, RuleDeclaration = 32, RulePrio = 33, RuleValue = 34, - RuleExpr = 35, RuleTerm = 36, RuleFunction_ = 37, RuleDxImageTransform = 38, - RuleHexcolor = 39, RuleNumber = 40, RulePercentage = 41, RuleDimension = 42, - RuleUnknownDimension = 43, RuleAny_ = 44, RuleAtRule = 45, RuleUnused = 46, - RuleBlock = 47, RuleNestedStatement = 48, RuleGroupRuleBody = 49, RuleSupportsRule = 50, - RuleSupportsCondition = 51, RuleSupportsConditionInParens = 52, RuleSupportsNegation = 53, - RuleSupportsConjunction = 54, RuleSupportsDisjunction = 55, RuleSupportsDeclarationCondition = 56, - RuleGeneralEnclosed = 57, RuleUrl = 58, RuleVar_ = 59, RuleCalc = 60, - RuleCalcOperand = 61, RuleCalcSign = 62, RuleCalcExpr = 63, RuleCalcNestedValue = 64, - RuleCalcValue = 65, RuleFontFaceRule = 66, RuleFontFaceDeclaration = 67, - RuleKeyframesRule = 68, RuleKeyframeBlock = 69, RuleKeyframeSelector = 70, - RuleViewport = 71, RuleCounterStyle = 72, RuleFontFeatureValuesRule = 73, - RuleFontFamilyNameList = 74, RuleFontFamilyName = 75, RuleFeatureValueBlock = 76, - RuleFeatureType = 77, RuleFeatureValueDefinition = 78, RuleIdent = 79, - RuleWs = 80, RuleColor = 81, RuleColor_alpha = 82, RuleColor_component = 83 - }; - - explicit css3Parser(antlr4::TokenStream *input); - - css3Parser(antlr4::TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options); - - ~css3Parser() override; - - std::string getGrammarFileName() const override; - - const antlr4::atn::ATN& getATN() const override; - - const std::vector& getRuleNames() const override; - - const antlr4::dfa::Vocabulary& getVocabulary() const override; - - antlr4::atn::SerializedATNView getSerializedATN() const override; - - - class StylesheetContext; - class CharsetContext; - class ImportsContext; - class Namespace_Context; - class NamespacePrefixContext; - class MediaContext; - class MediaQueryListContext; - class MediaQueryContext; - class MediaTypeContext; - class MediaExpressionContext; - class MediaFeatureContext; - class PageContext; - class PseudoPageContext; - class SelectorGroupContext; - class SelectorContext; - class CombinatorContext; - class SimpleSelectorSequenceContext; - class TypeSelectorContext; - class TypeNamespacePrefixContext; - class ElementNameContext; - class UniversalContext; - class ClassNameContext; - class AttribContext; - class PseudoContext; - class FunctionalPseudoContext; - class ExpressionContext; - class NegationContext; - class NegationArgContext; - class Operator_Context; - class Property_Context; - class RulesetContext; - class DeclarationListContext; - class DeclarationContext; - class PrioContext; - class ValueContext; - class ExprContext; - class TermContext; - class Function_Context; - class DxImageTransformContext; - class HexcolorContext; - class NumberContext; - class PercentageContext; - class DimensionContext; - class UnknownDimensionContext; - class Any_Context; - class AtRuleContext; - class UnusedContext; - class BlockContext; - class NestedStatementContext; - class GroupRuleBodyContext; - class SupportsRuleContext; - class SupportsConditionContext; - class SupportsConditionInParensContext; - class SupportsNegationContext; - class SupportsConjunctionContext; - class SupportsDisjunctionContext; - class SupportsDeclarationConditionContext; - class GeneralEnclosedContext; - class UrlContext; - class Var_Context; - class CalcContext; - class CalcOperandContext; - class CalcSignContext; - class CalcExprContext; - class CalcNestedValueContext; - class CalcValueContext; - class FontFaceRuleContext; - class FontFaceDeclarationContext; - class KeyframesRuleContext; - class KeyframeBlockContext; - class KeyframeSelectorContext; - class ViewportContext; - class CounterStyleContext; - class FontFeatureValuesRuleContext; - class FontFamilyNameListContext; - class FontFamilyNameContext; - class FeatureValueBlockContext; - class FeatureTypeContext; - class FeatureValueDefinitionContext; - class IdentContext; - class WsContext; - class ColorContext; - class Color_alphaContext; - class Color_componentContext; - - class StylesheetContext : public antlr4::ParserRuleContext { - public: - StylesheetContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - WsContext *ws(); - antlr4::tree::TerminalNode *EOF(); - std::vector charset(); - CharsetContext* charset(size_t i); - std::vector imports(); - ImportsContext* imports(size_t i); - std::vector namespace_(); - Namespace_Context* namespace_(size_t i); - std::vector nestedStatement(); - NestedStatementContext* nestedStatement(size_t i); - std::vector Comment(); - antlr4::tree::TerminalNode* Comment(size_t i); - std::vector Space(); - antlr4::tree::TerminalNode* Space(size_t i); - std::vector Cdo(); - antlr4::tree::TerminalNode* Cdo(size_t i); - std::vector Cdc(); - antlr4::tree::TerminalNode* Cdc(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - StylesheetContext* stylesheet(); - - class CharsetContext : public antlr4::ParserRuleContext { - public: - CharsetContext(antlr4::ParserRuleContext *parent, size_t invokingState); - - CharsetContext() = default; - void copyFrom(CharsetContext *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class BadCharsetContext : public CharsetContext { - public: - BadCharsetContext(CharsetContext *ctx); - - antlr4::tree::TerminalNode *Charset(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *String_(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class GoodCharsetContext : public CharsetContext { - public: - GoodCharsetContext(CharsetContext *ctx); - - antlr4::tree::TerminalNode *Charset(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *String_(); - antlr4::tree::TerminalNode *SemiColon(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - CharsetContext* charset(); - - class ImportsContext : public antlr4::ParserRuleContext { - public: - ImportsContext(antlr4::ParserRuleContext *parent, size_t invokingState); - - ImportsContext() = default; - void copyFrom(ImportsContext *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class BadImportContext : public ImportsContext { - public: - BadImportContext(ImportsContext *ctx); - - antlr4::tree::TerminalNode *Import(); - std::vector ws(); - WsContext* ws(size_t i); - MediaQueryListContext *mediaQueryList(); - antlr4::tree::TerminalNode *String_(); - UrlContext *url(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class GoodImportContext : public ImportsContext { - public: - GoodImportContext(ImportsContext *ctx); - - antlr4::tree::TerminalNode *Import(); - std::vector ws(); - WsContext* ws(size_t i); - MediaQueryListContext *mediaQueryList(); - antlr4::tree::TerminalNode *SemiColon(); - antlr4::tree::TerminalNode *String_(); - UrlContext *url(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - ImportsContext* imports(); - - class Namespace_Context : public antlr4::ParserRuleContext { - public: - Namespace_Context(antlr4::ParserRuleContext *parent, size_t invokingState); - - Namespace_Context() = default; - void copyFrom(Namespace_Context *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class GoodNamespaceContext : public Namespace_Context { - public: - GoodNamespaceContext(Namespace_Context *ctx); - - antlr4::tree::TerminalNode *Namespace(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *SemiColon(); - antlr4::tree::TerminalNode *String_(); - UrlContext *url(); - NamespacePrefixContext *namespacePrefix(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class BadNamespaceContext : public Namespace_Context { - public: - BadNamespaceContext(Namespace_Context *ctx); - - antlr4::tree::TerminalNode *Namespace(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *String_(); - UrlContext *url(); - NamespacePrefixContext *namespacePrefix(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - Namespace_Context* namespace_(); - - class NamespacePrefixContext : public antlr4::ParserRuleContext { - public: - NamespacePrefixContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - IdentContext *ident(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - NamespacePrefixContext* namespacePrefix(); - - class MediaContext : public antlr4::ParserRuleContext { - public: - MediaContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Media(); - std::vector ws(); - WsContext* ws(size_t i); - MediaQueryListContext *mediaQueryList(); - GroupRuleBodyContext *groupRuleBody(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - MediaContext* media(); - - class MediaQueryListContext : public antlr4::ParserRuleContext { - public: - MediaQueryListContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector ws(); - WsContext* ws(size_t i); - std::vector mediaQuery(); - MediaQueryContext* mediaQuery(size_t i); - std::vector Comma(); - antlr4::tree::TerminalNode* Comma(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - MediaQueryListContext* mediaQueryList(); - - class MediaQueryContext : public antlr4::ParserRuleContext { - public: - MediaQueryContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector ws(); - WsContext* ws(size_t i); - MediaTypeContext *mediaType(); - std::vector And(); - antlr4::tree::TerminalNode* And(size_t i); - std::vector mediaExpression(); - MediaExpressionContext* mediaExpression(size_t i); - antlr4::tree::TerminalNode *MediaOnly(); - antlr4::tree::TerminalNode *Not(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - MediaQueryContext* mediaQuery(); - - class MediaTypeContext : public antlr4::ParserRuleContext { - public: - MediaTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - IdentContext *ident(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - MediaTypeContext* mediaType(); - - class MediaExpressionContext : public antlr4::ParserRuleContext { - public: - MediaExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OpenParen(); - std::vector ws(); - WsContext* ws(size_t i); - MediaFeatureContext *mediaFeature(); - antlr4::tree::TerminalNode *CloseParen(); - antlr4::tree::TerminalNode *Colon(); - ExprContext *expr(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - MediaExpressionContext* mediaExpression(); - - class MediaFeatureContext : public antlr4::ParserRuleContext { - public: - MediaFeatureContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - IdentContext *ident(); - WsContext *ws(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - MediaFeatureContext* mediaFeature(); - - class PageContext : public antlr4::ParserRuleContext { - public: - PageContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Page(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *OpenBrace(); - antlr4::tree::TerminalNode *CloseBrace(); - PseudoPageContext *pseudoPage(); - std::vector declaration(); - DeclarationContext* declaration(size_t i); - std::vector SemiColon(); - antlr4::tree::TerminalNode* SemiColon(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - PageContext* page(); - - class PseudoPageContext : public antlr4::ParserRuleContext { - public: - PseudoPageContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Colon(); - IdentContext *ident(); - WsContext *ws(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - PseudoPageContext* pseudoPage(); - - class SelectorGroupContext : public antlr4::ParserRuleContext { - public: - SelectorGroupContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector selector(); - SelectorContext* selector(size_t i); - std::vector Comma(); - antlr4::tree::TerminalNode* Comma(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SelectorGroupContext* selectorGroup(); - - class SelectorContext : public antlr4::ParserRuleContext { - public: - SelectorContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector simpleSelectorSequence(); - SimpleSelectorSequenceContext* simpleSelectorSequence(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - std::vector combinator(); - CombinatorContext* combinator(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SelectorContext* selector(); - - class CombinatorContext : public antlr4::ParserRuleContext { - public: - CombinatorContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Plus(); - WsContext *ws(); - antlr4::tree::TerminalNode *Greater(); - antlr4::tree::TerminalNode *Tilde(); - antlr4::tree::TerminalNode *Space(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CombinatorContext* combinator(); - - class SimpleSelectorSequenceContext : public antlr4::ParserRuleContext { - public: - SimpleSelectorSequenceContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - TypeSelectorContext *typeSelector(); - UniversalContext *universal(); - std::vector Hash(); - antlr4::tree::TerminalNode* Hash(size_t i); - std::vector className(); - ClassNameContext* className(size_t i); - std::vector attrib(); - AttribContext* attrib(size_t i); - std::vector pseudo(); - PseudoContext* pseudo(size_t i); - std::vector negation(); - NegationContext* negation(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SimpleSelectorSequenceContext* simpleSelectorSequence(); - - class TypeSelectorContext : public antlr4::ParserRuleContext { - public: - TypeSelectorContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - ElementNameContext *elementName(); - TypeNamespacePrefixContext *typeNamespacePrefix(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - TypeSelectorContext* typeSelector(); - - class TypeNamespacePrefixContext : public antlr4::ParserRuleContext { - public: - TypeNamespacePrefixContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Pipe(); - IdentContext *ident(); - antlr4::tree::TerminalNode *Multiply(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - TypeNamespacePrefixContext* typeNamespacePrefix(); - - class ElementNameContext : public antlr4::ParserRuleContext { - public: - ElementNameContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - IdentContext *ident(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ElementNameContext* elementName(); - - class UniversalContext : public antlr4::ParserRuleContext { - public: - UniversalContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Multiply(); - TypeNamespacePrefixContext *typeNamespacePrefix(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - UniversalContext* universal(); - - class ClassNameContext : public antlr4::ParserRuleContext { - public: - ClassNameContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Dot(); - IdentContext *ident(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ClassNameContext* className(); - - class AttribContext : public antlr4::ParserRuleContext { - public: - AttribContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OpenBracket(); - std::vector ws(); - WsContext* ws(size_t i); - std::vector ident(); - IdentContext* ident(size_t i); - antlr4::tree::TerminalNode *CloseBracket(); - TypeNamespacePrefixContext *typeNamespacePrefix(); - antlr4::tree::TerminalNode *PrefixMatch(); - antlr4::tree::TerminalNode *SuffixMatch(); - antlr4::tree::TerminalNode *SubstringMatch(); - antlr4::tree::TerminalNode *Equal(); - antlr4::tree::TerminalNode *Includes(); - antlr4::tree::TerminalNode *DashMatch(); - antlr4::tree::TerminalNode *String_(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - AttribContext* attrib(); - - class PseudoContext : public antlr4::ParserRuleContext { - public: - PseudoContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector Colon(); - antlr4::tree::TerminalNode* Colon(size_t i); - IdentContext *ident(); - FunctionalPseudoContext *functionalPseudo(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - PseudoContext* pseudo(); - - class FunctionalPseudoContext : public antlr4::ParserRuleContext { - public: - FunctionalPseudoContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Function_(); - WsContext *ws(); - ExpressionContext *expression(); - antlr4::tree::TerminalNode *CloseParen(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - FunctionalPseudoContext* functionalPseudo(); - - class ExpressionContext : public antlr4::ParserRuleContext { - public: - ExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector ws(); - WsContext* ws(size_t i); - std::vector Plus(); - antlr4::tree::TerminalNode* Plus(size_t i); - std::vector Minus(); - antlr4::tree::TerminalNode* Minus(size_t i); - std::vector Dimension(); - antlr4::tree::TerminalNode* Dimension(size_t i); - std::vector UnknownDimension(); - antlr4::tree::TerminalNode* UnknownDimension(size_t i); - std::vector Number(); - antlr4::tree::TerminalNode* Number(size_t i); - std::vector String_(); - antlr4::tree::TerminalNode* String_(size_t i); - std::vector ident(); - IdentContext* ident(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ExpressionContext* expression(); - - class NegationContext : public antlr4::ParserRuleContext { - public: - NegationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *PseudoNot(); - std::vector ws(); - WsContext* ws(size_t i); - NegationArgContext *negationArg(); - antlr4::tree::TerminalNode *CloseParen(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - NegationContext* negation(); - - class NegationArgContext : public antlr4::ParserRuleContext { - public: - NegationArgContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - TypeSelectorContext *typeSelector(); - UniversalContext *universal(); - antlr4::tree::TerminalNode *Hash(); - ClassNameContext *className(); - AttribContext *attrib(); - PseudoContext *pseudo(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - NegationArgContext* negationArg(); - - class Operator_Context : public antlr4::ParserRuleContext { - public: - Operator_Context(antlr4::ParserRuleContext *parent, size_t invokingState); - - Operator_Context() = default; - void copyFrom(Operator_Context *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class BadOperatorContext : public Operator_Context { - public: - BadOperatorContext(Operator_Context *ctx); - - antlr4::tree::TerminalNode *Equal(); - WsContext *ws(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class GoodOperatorContext : public Operator_Context { - public: - GoodOperatorContext(Operator_Context *ctx); - - antlr4::tree::TerminalNode *Divide(); - WsContext *ws(); - antlr4::tree::TerminalNode *Comma(); - antlr4::tree::TerminalNode *Space(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - Operator_Context* operator_(); - - class Property_Context : public antlr4::ParserRuleContext { - public: - Property_Context(antlr4::ParserRuleContext *parent, size_t invokingState); - - Property_Context() = default; - void copyFrom(Property_Context *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class BadPropertyContext : public Property_Context { - public: - BadPropertyContext(Property_Context *ctx); - - antlr4::tree::TerminalNode *Multiply(); - IdentContext *ident(); - antlr4::tree::TerminalNode *Underscore(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class GoodPropertyContext : public Property_Context { - public: - GoodPropertyContext(Property_Context *ctx); - - IdentContext *ident(); - WsContext *ws(); - antlr4::tree::TerminalNode *Variable(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - Property_Context* property_(); - - class RulesetContext : public antlr4::ParserRuleContext { - public: - RulesetContext(antlr4::ParserRuleContext *parent, size_t invokingState); - - RulesetContext() = default; - void copyFrom(RulesetContext *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class UnknownRulesetContext : public RulesetContext { - public: - UnknownRulesetContext(RulesetContext *ctx); - - antlr4::tree::TerminalNode *OpenBrace(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *CloseBrace(); - std::vector any_(); - Any_Context* any_(size_t i); - DeclarationListContext *declarationList(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class KnownRulesetContext : public RulesetContext { - public: - KnownRulesetContext(RulesetContext *ctx); - - SelectorGroupContext *selectorGroup(); - antlr4::tree::TerminalNode *OpenBrace(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *CloseBrace(); - DeclarationListContext *declarationList(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - RulesetContext* ruleset(); - - class DeclarationListContext : public antlr4::ParserRuleContext { - public: - DeclarationListContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector declaration(); - DeclarationContext* declaration(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - std::vector SemiColon(); - antlr4::tree::TerminalNode* SemiColon(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - DeclarationListContext* declarationList(); - - class DeclarationContext : public antlr4::ParserRuleContext { - public: - DeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - - DeclarationContext() = default; - void copyFrom(DeclarationContext *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class UnknownDeclarationContext : public DeclarationContext { - public: - UnknownDeclarationContext(DeclarationContext *ctx); - - Property_Context *property_(); - antlr4::tree::TerminalNode *Colon(); - WsContext *ws(); - ValueContext *value(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class KnownDeclarationContext : public DeclarationContext { - public: - KnownDeclarationContext(DeclarationContext *ctx); - - Property_Context *property_(); - antlr4::tree::TerminalNode *Colon(); - WsContext *ws(); - ExprContext *expr(); - PrioContext *prio(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - DeclarationContext* declaration(); - - class PrioContext : public antlr4::ParserRuleContext { - public: - PrioContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Important(); - WsContext *ws(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - PrioContext* prio(); - - class ValueContext : public antlr4::ParserRuleContext { - public: - ValueContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector any_(); - Any_Context* any_(size_t i); - std::vector block(); - BlockContext* block(size_t i); - std::vector AtKeyword(); - antlr4::tree::TerminalNode* AtKeyword(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ValueContext* value(); - - class ExprContext : public antlr4::ParserRuleContext { - public: - ExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector term(); - TermContext* term(size_t i); - std::vector operator_(); - Operator_Context* operator_(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ExprContext* expr(); - - class TermContext : public antlr4::ParserRuleContext { - public: - TermContext(antlr4::ParserRuleContext *parent, size_t invokingState); - - TermContext() = default; - void copyFrom(TermContext *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class BadTermContext : public TermContext { - public: - BadTermContext(TermContext *ctx); - - UnknownDimensionContext *unknownDimension(); - WsContext *ws(); - DxImageTransformContext *dxImageTransform(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class KnownTermContext : public TermContext { - public: - KnownTermContext(TermContext *ctx); - - NumberContext *number(); - WsContext *ws(); - PercentageContext *percentage(); - DimensionContext *dimension(); - antlr4::tree::TerminalNode *String_(); - antlr4::tree::TerminalNode *UnicodeRange(); - IdentContext *ident(); - Var_Context *var_(); - UrlContext *url(); - HexcolorContext *hexcolor(); - CalcContext *calc(); - Function_Context *function_(); - ColorContext *color(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - TermContext* term(); - - class Function_Context : public antlr4::ParserRuleContext { - public: - Function_Context(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Function_(); - std::vector ws(); - WsContext* ws(size_t i); - ExprContext *expr(); - antlr4::tree::TerminalNode *CloseParen(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Function_Context* function_(); - - class DxImageTransformContext : public antlr4::ParserRuleContext { - public: - DxImageTransformContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *DxImageTransform(); - std::vector ws(); - WsContext* ws(size_t i); - ExprContext *expr(); - antlr4::tree::TerminalNode *CloseParen(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - DxImageTransformContext* dxImageTransform(); - - class HexcolorContext : public antlr4::ParserRuleContext { - public: - HexcolorContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Hash(); - WsContext *ws(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - HexcolorContext* hexcolor(); - - class NumberContext : public antlr4::ParserRuleContext { - public: - NumberContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Number(); - antlr4::tree::TerminalNode *Plus(); - antlr4::tree::TerminalNode *Minus(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - NumberContext* number(); - - class PercentageContext : public antlr4::ParserRuleContext { - public: - PercentageContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Percentage(); - antlr4::tree::TerminalNode *Plus(); - antlr4::tree::TerminalNode *Minus(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - PercentageContext* percentage(); - - class DimensionContext : public antlr4::ParserRuleContext { - public: - DimensionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Dimension(); - antlr4::tree::TerminalNode *Plus(); - antlr4::tree::TerminalNode *Minus(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - DimensionContext* dimension(); - - class UnknownDimensionContext : public antlr4::ParserRuleContext { - public: - UnknownDimensionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *UnknownDimension(); - antlr4::tree::TerminalNode *Plus(); - antlr4::tree::TerminalNode *Minus(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - UnknownDimensionContext* unknownDimension(); - - class Any_Context : public antlr4::ParserRuleContext { - public: - Any_Context(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - IdentContext *ident(); - std::vector ws(); - WsContext* ws(size_t i); - NumberContext *number(); - PercentageContext *percentage(); - DimensionContext *dimension(); - UnknownDimensionContext *unknownDimension(); - antlr4::tree::TerminalNode *String_(); - UrlContext *url(); - antlr4::tree::TerminalNode *Hash(); - antlr4::tree::TerminalNode *UnicodeRange(); - antlr4::tree::TerminalNode *Includes(); - antlr4::tree::TerminalNode *DashMatch(); - antlr4::tree::TerminalNode *Colon(); - antlr4::tree::TerminalNode *Function_(); - antlr4::tree::TerminalNode *CloseParen(); - std::vector any_(); - Any_Context* any_(size_t i); - std::vector unused(); - UnusedContext* unused(size_t i); - antlr4::tree::TerminalNode *OpenParen(); - antlr4::tree::TerminalNode *OpenBracket(); - antlr4::tree::TerminalNode *CloseBracket(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Any_Context* any_(); - - class AtRuleContext : public antlr4::ParserRuleContext { - public: - AtRuleContext(antlr4::ParserRuleContext *parent, size_t invokingState); - - AtRuleContext() = default; - void copyFrom(AtRuleContext *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class UnknownAtRuleContext : public AtRuleContext { - public: - UnknownAtRuleContext(AtRuleContext *ctx); - - antlr4::tree::TerminalNode *AtKeyword(); - std::vector ws(); - WsContext* ws(size_t i); - BlockContext *block(); - antlr4::tree::TerminalNode *SemiColon(); - std::vector any_(); - Any_Context* any_(size_t i); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - AtRuleContext* atRule(); - - class UnusedContext : public antlr4::ParserRuleContext { - public: - UnusedContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - BlockContext *block(); - antlr4::tree::TerminalNode *AtKeyword(); - WsContext *ws(); - antlr4::tree::TerminalNode *SemiColon(); - antlr4::tree::TerminalNode *Cdo(); - antlr4::tree::TerminalNode *Cdc(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - UnusedContext* unused(); - - class BlockContext : public antlr4::ParserRuleContext { - public: - BlockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OpenBrace(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *CloseBrace(); - std::vector declarationList(); - DeclarationListContext* declarationList(size_t i); - std::vector nestedStatement(); - NestedStatementContext* nestedStatement(size_t i); - std::vector any_(); - Any_Context* any_(size_t i); - std::vector block(); - BlockContext* block(size_t i); - std::vector AtKeyword(); - antlr4::tree::TerminalNode* AtKeyword(size_t i); - std::vector SemiColon(); - antlr4::tree::TerminalNode* SemiColon(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - BlockContext* block(); - - class NestedStatementContext : public antlr4::ParserRuleContext { - public: - NestedStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - RulesetContext *ruleset(); - MediaContext *media(); - PageContext *page(); - FontFaceRuleContext *fontFaceRule(); - KeyframesRuleContext *keyframesRule(); - SupportsRuleContext *supportsRule(); - ViewportContext *viewport(); - CounterStyleContext *counterStyle(); - FontFeatureValuesRuleContext *fontFeatureValuesRule(); - AtRuleContext *atRule(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - NestedStatementContext* nestedStatement(); - - class GroupRuleBodyContext : public antlr4::ParserRuleContext { - public: - GroupRuleBodyContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OpenBrace(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *CloseBrace(); - std::vector nestedStatement(); - NestedStatementContext* nestedStatement(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - GroupRuleBodyContext* groupRuleBody(); - - class SupportsRuleContext : public antlr4::ParserRuleContext { - public: - SupportsRuleContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Supports(); - std::vector ws(); - WsContext* ws(size_t i); - SupportsConditionContext *supportsCondition(); - GroupRuleBodyContext *groupRuleBody(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SupportsRuleContext* supportsRule(); - - class SupportsConditionContext : public antlr4::ParserRuleContext { - public: - SupportsConditionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - SupportsNegationContext *supportsNegation(); - SupportsConjunctionContext *supportsConjunction(); - SupportsDisjunctionContext *supportsDisjunction(); - SupportsConditionInParensContext *supportsConditionInParens(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SupportsConditionContext* supportsCondition(); - - class SupportsConditionInParensContext : public antlr4::ParserRuleContext { - public: - SupportsConditionInParensContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OpenParen(); - std::vector ws(); - WsContext* ws(size_t i); - SupportsConditionContext *supportsCondition(); - antlr4::tree::TerminalNode *CloseParen(); - SupportsDeclarationConditionContext *supportsDeclarationCondition(); - GeneralEnclosedContext *generalEnclosed(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SupportsConditionInParensContext* supportsConditionInParens(); - - class SupportsNegationContext : public antlr4::ParserRuleContext { - public: - SupportsNegationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Not(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *Space(); - SupportsConditionInParensContext *supportsConditionInParens(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SupportsNegationContext* supportsNegation(); - - class SupportsConjunctionContext : public antlr4::ParserRuleContext { - public: - SupportsConjunctionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector supportsConditionInParens(); - SupportsConditionInParensContext* supportsConditionInParens(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - std::vector Space(); - antlr4::tree::TerminalNode* Space(size_t i); - std::vector And(); - antlr4::tree::TerminalNode* And(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SupportsConjunctionContext* supportsConjunction(); - - class SupportsDisjunctionContext : public antlr4::ParserRuleContext { - public: - SupportsDisjunctionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector supportsConditionInParens(); - SupportsConditionInParensContext* supportsConditionInParens(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - std::vector Space(); - antlr4::tree::TerminalNode* Space(size_t i); - std::vector Or(); - antlr4::tree::TerminalNode* Or(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SupportsDisjunctionContext* supportsDisjunction(); - - class SupportsDeclarationConditionContext : public antlr4::ParserRuleContext { - public: - SupportsDeclarationConditionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OpenParen(); - WsContext *ws(); - DeclarationContext *declaration(); - antlr4::tree::TerminalNode *CloseParen(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - SupportsDeclarationConditionContext* supportsDeclarationCondition(); - - class GeneralEnclosedContext : public antlr4::ParserRuleContext { - public: - GeneralEnclosedContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *CloseParen(); - antlr4::tree::TerminalNode *Function_(); - antlr4::tree::TerminalNode *OpenParen(); - std::vector any_(); - Any_Context* any_(size_t i); - std::vector unused(); - UnusedContext* unused(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - GeneralEnclosedContext* generalEnclosed(); - - class UrlContext : public antlr4::ParserRuleContext { - public: - UrlContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Url_(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *String_(); - antlr4::tree::TerminalNode *CloseParen(); - antlr4::tree::TerminalNode *Url(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - UrlContext* url(); - - class Var_Context : public antlr4::ParserRuleContext { - public: - Var_Context(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Var(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *Variable(); - antlr4::tree::TerminalNode *CloseParen(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Var_Context* var_(); - - class CalcContext : public antlr4::ParserRuleContext { - public: - CalcContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Calc(); - std::vector ws(); - WsContext* ws(size_t i); - CalcExprContext *calcExpr(); - antlr4::tree::TerminalNode *CloseParen(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CalcContext* calc(); - - class CalcOperandContext : public antlr4::ParserRuleContext { - public: - CalcOperandContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - CalcValueContext *calcValue(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CalcOperandContext* calcOperand(); - - class CalcSignContext : public antlr4::ParserRuleContext { - public: - CalcSignContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Plus(); - antlr4::tree::TerminalNode *Minus(); - antlr4::tree::TerminalNode *Divide(); - antlr4::tree::TerminalNode *Multiply(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CalcSignContext* calcSign(); - - class CalcExprContext : public antlr4::ParserRuleContext { - public: - CalcExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector calcOperand(); - CalcOperandContext* calcOperand(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - std::vector Space(); - antlr4::tree::TerminalNode* Space(size_t i); - std::vector calcSign(); - CalcSignContext* calcSign(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CalcExprContext* calcExpr(); - - class CalcNestedValueContext : public antlr4::ParserRuleContext { - public: - CalcNestedValueContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OpenParen(); - std::vector ws(); - WsContext* ws(size_t i); - CalcExprContext *calcExpr(); - antlr4::tree::TerminalNode *CloseParen(); - antlr4::tree::TerminalNode *Minus(); - antlr4::tree::TerminalNode *Plus(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CalcNestedValueContext* calcNestedValue(); - - class CalcValueContext : public antlr4::ParserRuleContext { - public: - CalcValueContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - NumberContext *number(); - WsContext *ws(); - DimensionContext *dimension(); - UnknownDimensionContext *unknownDimension(); - PercentageContext *percentage(); - CalcNestedValueContext *calcNestedValue(); - CalcContext *calc(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CalcValueContext* calcValue(); - - class FontFaceRuleContext : public antlr4::ParserRuleContext { - public: - FontFaceRuleContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *FontFace(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *OpenBrace(); - antlr4::tree::TerminalNode *CloseBrace(); - std::vector fontFaceDeclaration(); - FontFaceDeclarationContext* fontFaceDeclaration(size_t i); - std::vector SemiColon(); - antlr4::tree::TerminalNode* SemiColon(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - FontFaceRuleContext* fontFaceRule(); - - class FontFaceDeclarationContext : public antlr4::ParserRuleContext { - public: - FontFaceDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - - FontFaceDeclarationContext() = default; - void copyFrom(FontFaceDeclarationContext *context); - using antlr4::ParserRuleContext::copyFrom; - - virtual size_t getRuleIndex() const override; - - - }; - - class KnownFontFaceDeclarationContext : public FontFaceDeclarationContext { - public: - KnownFontFaceDeclarationContext(FontFaceDeclarationContext *ctx); - - Property_Context *property_(); - antlr4::tree::TerminalNode *Colon(); - WsContext *ws(); - ExprContext *expr(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - class UnknownFontFaceDeclarationContext : public FontFaceDeclarationContext { - public: - UnknownFontFaceDeclarationContext(FontFaceDeclarationContext *ctx); - - Property_Context *property_(); - antlr4::tree::TerminalNode *Colon(); - WsContext *ws(); - ValueContext *value(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - }; - - FontFaceDeclarationContext* fontFaceDeclaration(); - - class KeyframesRuleContext : public antlr4::ParserRuleContext { - public: - KeyframesRuleContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Keyframes(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *Space(); - IdentContext *ident(); - antlr4::tree::TerminalNode *OpenBrace(); - antlr4::tree::TerminalNode *CloseBrace(); - std::vector keyframeBlock(); - KeyframeBlockContext* keyframeBlock(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - KeyframesRuleContext* keyframesRule(); - - class KeyframeBlockContext : public antlr4::ParserRuleContext { - public: - KeyframeBlockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - KeyframeSelectorContext *keyframeSelector(); - antlr4::tree::TerminalNode *OpenBrace(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *CloseBrace(); - DeclarationListContext *declarationList(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - KeyframeBlockContext* keyframeBlock(); - - class KeyframeSelectorContext : public antlr4::ParserRuleContext { - public: - KeyframeSelectorContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector ws(); - WsContext* ws(size_t i); - std::vector From(); - antlr4::tree::TerminalNode* From(size_t i); - std::vector To(); - antlr4::tree::TerminalNode* To(size_t i); - std::vector Percentage(); - antlr4::tree::TerminalNode* Percentage(size_t i); - std::vector Comma(); - antlr4::tree::TerminalNode* Comma(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - KeyframeSelectorContext* keyframeSelector(); - - class ViewportContext : public antlr4::ParserRuleContext { - public: - ViewportContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Viewport(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *OpenBrace(); - antlr4::tree::TerminalNode *CloseBrace(); - DeclarationListContext *declarationList(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ViewportContext* viewport(); - - class CounterStyleContext : public antlr4::ParserRuleContext { - public: - CounterStyleContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *CounterStyle(); - std::vector ws(); - WsContext* ws(size_t i); - IdentContext *ident(); - antlr4::tree::TerminalNode *OpenBrace(); - antlr4::tree::TerminalNode *CloseBrace(); - DeclarationListContext *declarationList(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CounterStyleContext* counterStyle(); - - class FontFeatureValuesRuleContext : public antlr4::ParserRuleContext { - public: - FontFeatureValuesRuleContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *FontFeatureValues(); - std::vector ws(); - WsContext* ws(size_t i); - FontFamilyNameListContext *fontFamilyNameList(); - antlr4::tree::TerminalNode *OpenBrace(); - antlr4::tree::TerminalNode *CloseBrace(); - std::vector featureValueBlock(); - FeatureValueBlockContext* featureValueBlock(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - FontFeatureValuesRuleContext* fontFeatureValuesRule(); - - class FontFamilyNameListContext : public antlr4::ParserRuleContext { - public: - FontFamilyNameListContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector fontFamilyName(); - FontFamilyNameContext* fontFamilyName(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - std::vector Comma(); - antlr4::tree::TerminalNode* Comma(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - FontFamilyNameListContext* fontFamilyNameList(); - - class FontFamilyNameContext : public antlr4::ParserRuleContext { - public: - FontFamilyNameContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *String_(); - std::vector ident(); - IdentContext* ident(size_t i); - std::vector ws(); - WsContext* ws(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - FontFamilyNameContext* fontFamilyName(); - - class FeatureValueBlockContext : public antlr4::ParserRuleContext { - public: - FeatureValueBlockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - FeatureTypeContext *featureType(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *OpenBrace(); - antlr4::tree::TerminalNode *CloseBrace(); - std::vector featureValueDefinition(); - FeatureValueDefinitionContext* featureValueDefinition(size_t i); - std::vector SemiColon(); - antlr4::tree::TerminalNode* SemiColon(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - FeatureValueBlockContext* featureValueBlock(); - - class FeatureTypeContext : public antlr4::ParserRuleContext { - public: - FeatureTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *AtKeyword(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - FeatureTypeContext* featureType(); - - class FeatureValueDefinitionContext : public antlr4::ParserRuleContext { - public: - FeatureValueDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - IdentContext *ident(); - std::vector ws(); - WsContext* ws(size_t i); - antlr4::tree::TerminalNode *Colon(); - std::vector number(); - NumberContext* number(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - FeatureValueDefinitionContext* featureValueDefinition(); - - class IdentContext : public antlr4::ParserRuleContext { - public: - IdentContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *Ident(); - antlr4::tree::TerminalNode *MediaOnly(); - antlr4::tree::TerminalNode *Not(); - antlr4::tree::TerminalNode *And(); - antlr4::tree::TerminalNode *Or(); - antlr4::tree::TerminalNode *From(); - antlr4::tree::TerminalNode *To(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - IdentContext* ident(); - - class WsContext : public antlr4::ParserRuleContext { - public: - WsContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector Comment(); - antlr4::tree::TerminalNode* Comment(size_t i); - std::vector Space(); - antlr4::tree::TerminalNode* Space(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - WsContext* ws(); - - class ColorContext : public antlr4::ParserRuleContext { - public: - ColorContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector ws(); - WsContext* ws(size_t i); - std::vector color_component(); - Color_componentContext* color_component(size_t i); - std::vector Comma(); - antlr4::tree::TerminalNode* Comma(size_t i); - antlr4::tree::TerminalNode *CloseParen(); - antlr4::tree::TerminalNode *Rgb(); - antlr4::tree::TerminalNode *Rgba(); - Color_alphaContext *color_alpha(); - antlr4::tree::TerminalNode *Divide(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ColorContext* color(); - - class Color_alphaContext : public antlr4::ParserRuleContext { - public: - Color_alphaContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - CalcValueContext *calcValue(); - CalcContext *calc(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Color_alphaContext* color_alpha(); - - class Color_componentContext : public antlr4::ParserRuleContext { - public: - Color_componentContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - CalcValueContext *calcValue(); - CalcContext *calc(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Color_componentContext* color_component(); - - - // By default the static state used to implement the parser is lazily initialized during the first - // call to the constructor. You can call this function if you wish to initialize the static state - // ahead of time. - static void initialize(); - -private: -}; - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.interp b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.interp deleted file mode 100644 index c33e22305..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.interp +++ /dev/null @@ -1,227 +0,0 @@ -token literal names: -null -'[' -']' -'(' -')' -'{' -'}' -';' -'=' -':' -'.' -'*' -'/' -'|' -'_' -null -null -null -'' -'~=' -'|=' -null -null -null -null -null -'@charset ' -null -null -'url(' -null -null -null -null -null -null -'+' -'-' -'>' -',' -'~' -null -null -null -'^=' -'$=' -'*=' -null -null -null -null -null -null -'calc(' -'rgb(' -'rgba(' -null -null -null -null -null -null -'var(' -null -null -null - -token symbolic names: -null -OpenBracket -CloseBracket -OpenParen -CloseParen -OpenBrace -CloseBrace -SemiColon -Equal -Colon -Dot -Multiply -Divide -Pipe -Underscore -Comment -Url -Space -Cdo -Cdc -Includes -DashMatch -Hash -Import -Page -Media -Namespace -Charset -Important -Percentage -Url_ -UnicodeRange -MediaOnly -Not -And -Dimension -UnknownDimension -Plus -Minus -Greater -Comma -Tilde -PseudoNot -Number -String_ -PrefixMatch -SuffixMatch -SubstringMatch -FontFace -Supports -Or -Keyframes -From -To -Calc -Rgb -Rgba -Viewport -CounterStyle -FontFeatureValues -DxImageTransform -AtKeyword -Variable -Var -Ident -Function_ -UnexpectedCharacter - -rule names: -stylesheet -charset -imports -namespace_ -namespacePrefix -media -mediaQueryList -mediaQuery -mediaType -mediaExpression -mediaFeature -page -pseudoPage -selectorGroup -selector -combinator -simpleSelectorSequence -typeSelector -typeNamespacePrefix -elementName -universal -className -attrib -pseudo -functionalPseudo -expression -negation -negationArg -operator_ -property_ -ruleset -declarationList -declaration -prio -value -expr -term -function_ -dxImageTransform -hexcolor -number -percentage -dimension -unknownDimension -any_ -atRule -unused -block -nestedStatement -groupRuleBody -supportsRule -supportsCondition -supportsConditionInParens -supportsNegation -supportsConjunction -supportsDisjunction -supportsDeclarationCondition -generalEnclosed -url -var_ -calc -calcOperand -calcSign -calcExpr -calcNestedValue -calcValue -fontFaceRule -fontFaceDeclaration -keyframesRule -keyframeBlock -keyframeSelector -viewport -counterStyle -fontFeatureValuesRule -fontFamilyNameList -fontFamilyName -featureValueBlock -featureType -featureValueDefinition -ident -ws -color -color_alpha -color_component - - -atn: -[4, 1, 66, 1191, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 1, 0, 1, 0, 1, 0, 5, 0, 172, 8, 0, 10, 0, 12, 0, 175, 9, 0, 5, 0, 177, 8, 0, 10, 0, 12, 0, 180, 9, 0, 1, 0, 1, 0, 5, 0, 184, 8, 0, 10, 0, 12, 0, 187, 9, 0, 5, 0, 189, 8, 0, 10, 0, 12, 0, 192, 9, 0, 1, 0, 1, 0, 5, 0, 196, 8, 0, 10, 0, 12, 0, 199, 9, 0, 5, 0, 201, 8, 0, 10, 0, 12, 0, 204, 9, 0, 1, 0, 1, 0, 5, 0, 208, 8, 0, 10, 0, 12, 0, 211, 9, 0, 5, 0, 213, 8, 0, 10, 0, 12, 0, 216, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 232, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 238, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 249, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 259, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 268, 8, 2, 1, 2, 1, 2, 3, 2, 272, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 279, 8, 3, 1, 3, 1, 3, 3, 3, 283, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 294, 8, 3, 1, 3, 1, 3, 3, 3, 298, 8, 3, 1, 3, 1, 3, 3, 3, 302, 8, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 317, 8, 6, 10, 6, 12, 6, 320, 9, 6, 3, 6, 322, 8, 6, 1, 6, 1, 6, 1, 7, 3, 7, 327, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 336, 8, 7, 10, 7, 12, 7, 339, 9, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 346, 8, 7, 10, 7, 12, 7, 349, 9, 7, 3, 7, 351, 8, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 362, 8, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 3, 11, 373, 8, 11, 1, 11, 1, 11, 1, 11, 3, 11, 378, 8, 11, 1, 11, 1, 11, 1, 11, 3, 11, 383, 8, 11, 5, 11, 385, 8, 11, 10, 11, 12, 11, 388, 9, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 5, 13, 402, 8, 13, 10, 13, 12, 13, 405, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 413, 8, 14, 10, 14, 12, 14, 416, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 426, 8, 15, 1, 16, 1, 16, 3, 16, 430, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 437, 8, 16, 10, 16, 12, 16, 440, 9, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 4, 16, 447, 8, 16, 11, 16, 12, 16, 448, 3, 16, 451, 8, 16, 1, 17, 3, 17, 454, 8, 17, 1, 17, 1, 17, 1, 18, 1, 18, 3, 18, 460, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 3, 20, 467, 8, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 3, 22, 477, 8, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 485, 8, 22, 1, 22, 1, 22, 3, 22, 489, 8, 22, 1, 22, 1, 22, 1, 23, 1, 23, 3, 23, 495, 8, 23, 1, 23, 1, 23, 3, 23, 499, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 513, 8, 25, 1, 25, 4, 25, 516, 8, 25, 11, 25, 12, 25, 517, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 532, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 542, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 553, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 559, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 565, 8, 30, 10, 30, 12, 30, 568, 9, 30, 1, 30, 1, 30, 1, 30, 3, 30, 573, 8, 30, 1, 30, 1, 30, 1, 30, 3, 30, 578, 8, 30, 1, 31, 1, 31, 5, 31, 582, 8, 31, 10, 31, 12, 31, 585, 9, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 592, 8, 31, 5, 31, 594, 8, 31, 10, 31, 12, 31, 597, 9, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 604, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 611, 8, 32, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 4, 34, 620, 8, 34, 11, 34, 12, 34, 621, 1, 35, 1, 35, 3, 35, 626, 8, 35, 1, 35, 5, 35, 629, 8, 35, 10, 35, 12, 35, 632, 9, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 662, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 40, 3, 40, 680, 8, 40, 1, 40, 1, 40, 1, 41, 3, 41, 685, 8, 41, 1, 41, 1, 41, 1, 42, 3, 42, 690, 8, 42, 1, 42, 1, 42, 1, 43, 3, 43, 695, 8, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 733, 8, 44, 10, 44, 12, 44, 736, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 745, 8, 44, 10, 44, 12, 44, 748, 9, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 5, 44, 757, 8, 44, 10, 44, 12, 44, 760, 9, 44, 1, 44, 1, 44, 1, 44, 3, 44, 765, 8, 44, 1, 45, 1, 45, 1, 45, 5, 45, 770, 8, 45, 10, 45, 12, 45, 773, 9, 45, 1, 45, 1, 45, 1, 45, 3, 45, 778, 8, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 789, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 5, 47, 801, 8, 47, 10, 47, 12, 47, 804, 9, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 819, 8, 48, 1, 49, 1, 49, 1, 49, 5, 49, 824, 8, 49, 10, 49, 12, 49, 827, 9, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 842, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 852, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 4, 54, 870, 8, 54, 11, 54, 12, 54, 871, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 4, 55, 884, 8, 55, 11, 55, 12, 55, 885, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 5, 57, 896, 8, 57, 10, 57, 12, 57, 899, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 910, 8, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 5, 63, 937, 8, 63, 10, 63, 12, 63, 940, 9, 63, 1, 63, 1, 63, 1, 64, 3, 64, 945, 8, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 971, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 978, 8, 66, 1, 66, 1, 66, 1, 66, 3, 66, 983, 8, 66, 5, 66, 985, 8, 66, 10, 66, 12, 66, 988, 9, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 3, 67, 1003, 8, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 5, 68, 1014, 8, 68, 10, 68, 12, 68, 1017, 9, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1026, 8, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 1038, 8, 70, 10, 70, 12, 70, 1041, 9, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 1048, 8, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 1060, 8, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 5, 73, 1072, 8, 73, 10, 73, 12, 73, 1075, 9, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 5, 74, 1086, 8, 74, 10, 74, 12, 74, 1089, 9, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 5, 75, 1096, 8, 75, 10, 75, 12, 75, 1099, 9, 75, 3, 75, 1101, 8, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 3, 76, 1108, 8, 76, 1, 76, 1, 76, 1, 76, 1, 76, 3, 76, 1114, 8, 76, 5, 76, 1116, 8, 76, 10, 76, 12, 76, 1119, 9, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 5, 78, 1134, 8, 78, 10, 78, 12, 78, 1137, 9, 78, 1, 79, 1, 79, 1, 80, 5, 80, 1142, 8, 80, 10, 80, 12, 80, 1145, 9, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 3, 81, 1160, 8, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 3, 81, 1176, 8, 81, 1, 81, 1, 81, 1, 81, 3, 81, 1181, 8, 81, 1, 82, 1, 82, 3, 82, 1185, 8, 82, 1, 83, 1, 83, 3, 83, 1189, 8, 83, 1, 83, 0, 0, 84, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 0, 10, 2, 0, 15, 15, 17, 19, 1, 0, 32, 33, 3, 0, 8, 8, 20, 21, 45, 47, 1, 0, 37, 38, 2, 0, 3, 3, 65, 65, 2, 0, 11, 12, 37, 38, 2, 0, 29, 29, 52, 53, 4, 0, 32, 34, 50, 50, 52, 53, 64, 64, 2, 0, 15, 15, 17, 17, 1, 0, 55, 56, 1295, 0, 168, 1, 0, 0, 0, 2, 231, 1, 0, 0, 0, 4, 271, 1, 0, 0, 0, 6, 301, 1, 0, 0, 0, 8, 303, 1, 0, 0, 0, 10, 305, 1, 0, 0, 0, 12, 321, 1, 0, 0, 0, 14, 350, 1, 0, 0, 0, 16, 352, 1, 0, 0, 0, 18, 354, 1, 0, 0, 0, 20, 366, 1, 0, 0, 0, 22, 369, 1, 0, 0, 0, 24, 392, 1, 0, 0, 0, 26, 396, 1, 0, 0, 0, 28, 406, 1, 0, 0, 0, 30, 425, 1, 0, 0, 0, 32, 450, 1, 0, 0, 0, 34, 453, 1, 0, 0, 0, 36, 459, 1, 0, 0, 0, 38, 463, 1, 0, 0, 0, 40, 466, 1, 0, 0, 0, 42, 470, 1, 0, 0, 0, 44, 473, 1, 0, 0, 0, 46, 492, 1, 0, 0, 0, 48, 500, 1, 0, 0, 0, 50, 515, 1, 0, 0, 0, 52, 519, 1, 0, 0, 0, 54, 531, 1, 0, 0, 0, 56, 541, 1, 0, 0, 0, 58, 552, 1, 0, 0, 0, 60, 577, 1, 0, 0, 0, 62, 583, 1, 0, 0, 0, 64, 610, 1, 0, 0, 0, 66, 612, 1, 0, 0, 0, 68, 619, 1, 0, 0, 0, 70, 623, 1, 0, 0, 0, 72, 661, 1, 0, 0, 0, 74, 663, 1, 0, 0, 0, 76, 669, 1, 0, 0, 0, 78, 675, 1, 0, 0, 0, 80, 679, 1, 0, 0, 0, 82, 684, 1, 0, 0, 0, 84, 689, 1, 0, 0, 0, 86, 694, 1, 0, 0, 0, 88, 764, 1, 0, 0, 0, 90, 766, 1, 0, 0, 0, 92, 788, 1, 0, 0, 0, 94, 790, 1, 0, 0, 0, 96, 818, 1, 0, 0, 0, 98, 820, 1, 0, 0, 0, 100, 831, 1, 0, 0, 0, 102, 841, 1, 0, 0, 0, 104, 851, 1, 0, 0, 0, 106, 853, 1, 0, 0, 0, 108, 859, 1, 0, 0, 0, 110, 873, 1, 0, 0, 0, 112, 887, 1, 0, 0, 0, 114, 892, 1, 0, 0, 0, 116, 909, 1, 0, 0, 0, 118, 911, 1, 0, 0, 0, 120, 918, 1, 0, 0, 0, 122, 924, 1, 0, 0, 0, 124, 926, 1, 0, 0, 0, 126, 928, 1, 0, 0, 0, 128, 944, 1, 0, 0, 0, 130, 970, 1, 0, 0, 0, 132, 972, 1, 0, 0, 0, 134, 1002, 1, 0, 0, 0, 136, 1004, 1, 0, 0, 0, 138, 1021, 1, 0, 0, 0, 140, 1030, 1, 0, 0, 0, 142, 1042, 1, 0, 0, 0, 144, 1052, 1, 0, 0, 0, 146, 1064, 1, 0, 0, 0, 148, 1079, 1, 0, 0, 0, 150, 1100, 1, 0, 0, 0, 152, 1102, 1, 0, 0, 0, 154, 1123, 1, 0, 0, 0, 156, 1125, 1, 0, 0, 0, 158, 1138, 1, 0, 0, 0, 160, 1143, 1, 0, 0, 0, 162, 1180, 1, 0, 0, 0, 164, 1184, 1, 0, 0, 0, 166, 1188, 1, 0, 0, 0, 168, 178, 3, 160, 80, 0, 169, 173, 3, 2, 1, 0, 170, 172, 7, 0, 0, 0, 171, 170, 1, 0, 0, 0, 172, 175, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 177, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 176, 169, 1, 0, 0, 0, 177, 180, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 190, 1, 0, 0, 0, 180, 178, 1, 0, 0, 0, 181, 185, 3, 4, 2, 0, 182, 184, 7, 0, 0, 0, 183, 182, 1, 0, 0, 0, 184, 187, 1, 0, 0, 0, 185, 183, 1, 0, 0, 0, 185, 186, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 188, 181, 1, 0, 0, 0, 189, 192, 1, 0, 0, 0, 190, 188, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 202, 1, 0, 0, 0, 192, 190, 1, 0, 0, 0, 193, 197, 3, 6, 3, 0, 194, 196, 7, 0, 0, 0, 195, 194, 1, 0, 0, 0, 196, 199, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 201, 1, 0, 0, 0, 199, 197, 1, 0, 0, 0, 200, 193, 1, 0, 0, 0, 201, 204, 1, 0, 0, 0, 202, 200, 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 214, 1, 0, 0, 0, 204, 202, 1, 0, 0, 0, 205, 209, 3, 96, 48, 0, 206, 208, 7, 0, 0, 0, 207, 206, 1, 0, 0, 0, 208, 211, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 213, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 212, 205, 1, 0, 0, 0, 213, 216, 1, 0, 0, 0, 214, 212, 1, 0, 0, 0, 214, 215, 1, 0, 0, 0, 215, 217, 1, 0, 0, 0, 216, 214, 1, 0, 0, 0, 217, 218, 5, 0, 0, 1, 218, 1, 1, 0, 0, 0, 219, 220, 5, 27, 0, 0, 220, 221, 3, 160, 80, 0, 221, 222, 5, 44, 0, 0, 222, 223, 3, 160, 80, 0, 223, 224, 5, 7, 0, 0, 224, 225, 3, 160, 80, 0, 225, 232, 1, 0, 0, 0, 226, 227, 5, 27, 0, 0, 227, 228, 3, 160, 80, 0, 228, 229, 5, 44, 0, 0, 229, 230, 3, 160, 80, 0, 230, 232, 1, 0, 0, 0, 231, 219, 1, 0, 0, 0, 231, 226, 1, 0, 0, 0, 232, 3, 1, 0, 0, 0, 233, 234, 5, 23, 0, 0, 234, 237, 3, 160, 80, 0, 235, 238, 5, 44, 0, 0, 236, 238, 3, 116, 58, 0, 237, 235, 1, 0, 0, 0, 237, 236, 1, 0, 0, 0, 238, 239, 1, 0, 0, 0, 239, 240, 3, 160, 80, 0, 240, 241, 3, 12, 6, 0, 241, 242, 5, 7, 0, 0, 242, 243, 3, 160, 80, 0, 243, 272, 1, 0, 0, 0, 244, 245, 5, 23, 0, 0, 245, 248, 3, 160, 80, 0, 246, 249, 5, 44, 0, 0, 247, 249, 3, 116, 58, 0, 248, 246, 1, 0, 0, 0, 248, 247, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 251, 3, 160, 80, 0, 251, 252, 5, 7, 0, 0, 252, 253, 3, 160, 80, 0, 253, 272, 1, 0, 0, 0, 254, 255, 5, 23, 0, 0, 255, 258, 3, 160, 80, 0, 256, 259, 5, 44, 0, 0, 257, 259, 3, 116, 58, 0, 258, 256, 1, 0, 0, 0, 258, 257, 1, 0, 0, 0, 259, 260, 1, 0, 0, 0, 260, 261, 3, 160, 80, 0, 261, 262, 3, 12, 6, 0, 262, 272, 1, 0, 0, 0, 263, 264, 5, 23, 0, 0, 264, 267, 3, 160, 80, 0, 265, 268, 5, 44, 0, 0, 266, 268, 3, 116, 58, 0, 267, 265, 1, 0, 0, 0, 267, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 270, 3, 160, 80, 0, 270, 272, 1, 0, 0, 0, 271, 233, 1, 0, 0, 0, 271, 244, 1, 0, 0, 0, 271, 254, 1, 0, 0, 0, 271, 263, 1, 0, 0, 0, 272, 5, 1, 0, 0, 0, 273, 274, 5, 26, 0, 0, 274, 278, 3, 160, 80, 0, 275, 276, 3, 8, 4, 0, 276, 277, 3, 160, 80, 0, 277, 279, 1, 0, 0, 0, 278, 275, 1, 0, 0, 0, 278, 279, 1, 0, 0, 0, 279, 282, 1, 0, 0, 0, 280, 283, 5, 44, 0, 0, 281, 283, 3, 116, 58, 0, 282, 280, 1, 0, 0, 0, 282, 281, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 285, 3, 160, 80, 0, 285, 286, 5, 7, 0, 0, 286, 287, 3, 160, 80, 0, 287, 302, 1, 0, 0, 0, 288, 289, 5, 26, 0, 0, 289, 293, 3, 160, 80, 0, 290, 291, 3, 8, 4, 0, 291, 292, 3, 160, 80, 0, 292, 294, 1, 0, 0, 0, 293, 290, 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 297, 1, 0, 0, 0, 295, 298, 5, 44, 0, 0, 296, 298, 3, 116, 58, 0, 297, 295, 1, 0, 0, 0, 297, 296, 1, 0, 0, 0, 298, 299, 1, 0, 0, 0, 299, 300, 3, 160, 80, 0, 300, 302, 1, 0, 0, 0, 301, 273, 1, 0, 0, 0, 301, 288, 1, 0, 0, 0, 302, 7, 1, 0, 0, 0, 303, 304, 3, 158, 79, 0, 304, 9, 1, 0, 0, 0, 305, 306, 5, 25, 0, 0, 306, 307, 3, 160, 80, 0, 307, 308, 3, 12, 6, 0, 308, 309, 3, 98, 49, 0, 309, 310, 3, 160, 80, 0, 310, 11, 1, 0, 0, 0, 311, 318, 3, 14, 7, 0, 312, 313, 5, 40, 0, 0, 313, 314, 3, 160, 80, 0, 314, 315, 3, 14, 7, 0, 315, 317, 1, 0, 0, 0, 316, 312, 1, 0, 0, 0, 317, 320, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 318, 319, 1, 0, 0, 0, 319, 322, 1, 0, 0, 0, 320, 318, 1, 0, 0, 0, 321, 311, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 324, 3, 160, 80, 0, 324, 13, 1, 0, 0, 0, 325, 327, 7, 1, 0, 0, 326, 325, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 328, 1, 0, 0, 0, 328, 329, 3, 160, 80, 0, 329, 330, 3, 16, 8, 0, 330, 337, 3, 160, 80, 0, 331, 332, 5, 34, 0, 0, 332, 333, 3, 160, 80, 0, 333, 334, 3, 18, 9, 0, 334, 336, 1, 0, 0, 0, 335, 331, 1, 0, 0, 0, 336, 339, 1, 0, 0, 0, 337, 335, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 351, 1, 0, 0, 0, 339, 337, 1, 0, 0, 0, 340, 347, 3, 18, 9, 0, 341, 342, 5, 34, 0, 0, 342, 343, 3, 160, 80, 0, 343, 344, 3, 18, 9, 0, 344, 346, 1, 0, 0, 0, 345, 341, 1, 0, 0, 0, 346, 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 351, 1, 0, 0, 0, 349, 347, 1, 0, 0, 0, 350, 326, 1, 0, 0, 0, 350, 340, 1, 0, 0, 0, 351, 15, 1, 0, 0, 0, 352, 353, 3, 158, 79, 0, 353, 17, 1, 0, 0, 0, 354, 355, 5, 3, 0, 0, 355, 356, 3, 160, 80, 0, 356, 361, 3, 20, 10, 0, 357, 358, 5, 9, 0, 0, 358, 359, 3, 160, 80, 0, 359, 360, 3, 70, 35, 0, 360, 362, 1, 0, 0, 0, 361, 357, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, 364, 5, 4, 0, 0, 364, 365, 3, 160, 80, 0, 365, 19, 1, 0, 0, 0, 366, 367, 3, 158, 79, 0, 367, 368, 3, 160, 80, 0, 368, 21, 1, 0, 0, 0, 369, 370, 5, 24, 0, 0, 370, 372, 3, 160, 80, 0, 371, 373, 3, 24, 12, 0, 372, 371, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 374, 1, 0, 0, 0, 374, 375, 5, 5, 0, 0, 375, 377, 3, 160, 80, 0, 376, 378, 3, 64, 32, 0, 377, 376, 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 386, 1, 0, 0, 0, 379, 380, 5, 7, 0, 0, 380, 382, 3, 160, 80, 0, 381, 383, 3, 64, 32, 0, 382, 381, 1, 0, 0, 0, 382, 383, 1, 0, 0, 0, 383, 385, 1, 0, 0, 0, 384, 379, 1, 0, 0, 0, 385, 388, 1, 0, 0, 0, 386, 384, 1, 0, 0, 0, 386, 387, 1, 0, 0, 0, 387, 389, 1, 0, 0, 0, 388, 386, 1, 0, 0, 0, 389, 390, 5, 6, 0, 0, 390, 391, 3, 160, 80, 0, 391, 23, 1, 0, 0, 0, 392, 393, 5, 9, 0, 0, 393, 394, 3, 158, 79, 0, 394, 395, 3, 160, 80, 0, 395, 25, 1, 0, 0, 0, 396, 403, 3, 28, 14, 0, 397, 398, 5, 40, 0, 0, 398, 399, 3, 160, 80, 0, 399, 400, 3, 28, 14, 0, 400, 402, 1, 0, 0, 0, 401, 397, 1, 0, 0, 0, 402, 405, 1, 0, 0, 0, 403, 401, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 27, 1, 0, 0, 0, 405, 403, 1, 0, 0, 0, 406, 407, 3, 32, 16, 0, 407, 414, 3, 160, 80, 0, 408, 409, 3, 30, 15, 0, 409, 410, 3, 32, 16, 0, 410, 411, 3, 160, 80, 0, 411, 413, 1, 0, 0, 0, 412, 408, 1, 0, 0, 0, 413, 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 29, 1, 0, 0, 0, 416, 414, 1, 0, 0, 0, 417, 418, 5, 37, 0, 0, 418, 426, 3, 160, 80, 0, 419, 420, 5, 39, 0, 0, 420, 426, 3, 160, 80, 0, 421, 422, 5, 41, 0, 0, 422, 426, 3, 160, 80, 0, 423, 424, 5, 17, 0, 0, 424, 426, 3, 160, 80, 0, 425, 417, 1, 0, 0, 0, 425, 419, 1, 0, 0, 0, 425, 421, 1, 0, 0, 0, 425, 423, 1, 0, 0, 0, 426, 31, 1, 0, 0, 0, 427, 430, 3, 34, 17, 0, 428, 430, 3, 40, 20, 0, 429, 427, 1, 0, 0, 0, 429, 428, 1, 0, 0, 0, 430, 438, 1, 0, 0, 0, 431, 437, 5, 22, 0, 0, 432, 437, 3, 42, 21, 0, 433, 437, 3, 44, 22, 0, 434, 437, 3, 46, 23, 0, 435, 437, 3, 52, 26, 0, 436, 431, 1, 0, 0, 0, 436, 432, 1, 0, 0, 0, 436, 433, 1, 0, 0, 0, 436, 434, 1, 0, 0, 0, 436, 435, 1, 0, 0, 0, 437, 440, 1, 0, 0, 0, 438, 436, 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 451, 1, 0, 0, 0, 440, 438, 1, 0, 0, 0, 441, 447, 5, 22, 0, 0, 442, 447, 3, 42, 21, 0, 443, 447, 3, 44, 22, 0, 444, 447, 3, 46, 23, 0, 445, 447, 3, 52, 26, 0, 446, 441, 1, 0, 0, 0, 446, 442, 1, 0, 0, 0, 446, 443, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 446, 445, 1, 0, 0, 0, 447, 448, 1, 0, 0, 0, 448, 446, 1, 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 451, 1, 0, 0, 0, 450, 429, 1, 0, 0, 0, 450, 446, 1, 0, 0, 0, 451, 33, 1, 0, 0, 0, 452, 454, 3, 36, 18, 0, 453, 452, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 456, 3, 38, 19, 0, 456, 35, 1, 0, 0, 0, 457, 460, 3, 158, 79, 0, 458, 460, 5, 11, 0, 0, 459, 457, 1, 0, 0, 0, 459, 458, 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 462, 5, 13, 0, 0, 462, 37, 1, 0, 0, 0, 463, 464, 3, 158, 79, 0, 464, 39, 1, 0, 0, 0, 465, 467, 3, 36, 18, 0, 466, 465, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 468, 1, 0, 0, 0, 468, 469, 5, 11, 0, 0, 469, 41, 1, 0, 0, 0, 470, 471, 5, 10, 0, 0, 471, 472, 3, 158, 79, 0, 472, 43, 1, 0, 0, 0, 473, 474, 5, 1, 0, 0, 474, 476, 3, 160, 80, 0, 475, 477, 3, 36, 18, 0, 476, 475, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 479, 3, 158, 79, 0, 479, 488, 3, 160, 80, 0, 480, 481, 7, 2, 0, 0, 481, 484, 3, 160, 80, 0, 482, 485, 3, 158, 79, 0, 483, 485, 5, 44, 0, 0, 484, 482, 1, 0, 0, 0, 484, 483, 1, 0, 0, 0, 485, 486, 1, 0, 0, 0, 486, 487, 3, 160, 80, 0, 487, 489, 1, 0, 0, 0, 488, 480, 1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490, 491, 5, 2, 0, 0, 491, 45, 1, 0, 0, 0, 492, 494, 5, 9, 0, 0, 493, 495, 5, 9, 0, 0, 494, 493, 1, 0, 0, 0, 494, 495, 1, 0, 0, 0, 495, 498, 1, 0, 0, 0, 496, 499, 3, 158, 79, 0, 497, 499, 3, 48, 24, 0, 498, 496, 1, 0, 0, 0, 498, 497, 1, 0, 0, 0, 499, 47, 1, 0, 0, 0, 500, 501, 5, 65, 0, 0, 501, 502, 3, 160, 80, 0, 502, 503, 3, 50, 25, 0, 503, 504, 5, 4, 0, 0, 504, 49, 1, 0, 0, 0, 505, 513, 5, 37, 0, 0, 506, 513, 5, 38, 0, 0, 507, 513, 5, 35, 0, 0, 508, 513, 5, 36, 0, 0, 509, 513, 5, 43, 0, 0, 510, 513, 5, 44, 0, 0, 511, 513, 3, 158, 79, 0, 512, 505, 1, 0, 0, 0, 512, 506, 1, 0, 0, 0, 512, 507, 1, 0, 0, 0, 512, 508, 1, 0, 0, 0, 512, 509, 1, 0, 0, 0, 512, 510, 1, 0, 0, 0, 512, 511, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 516, 3, 160, 80, 0, 515, 512, 1, 0, 0, 0, 516, 517, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 51, 1, 0, 0, 0, 519, 520, 5, 42, 0, 0, 520, 521, 3, 160, 80, 0, 521, 522, 3, 54, 27, 0, 522, 523, 3, 160, 80, 0, 523, 524, 5, 4, 0, 0, 524, 53, 1, 0, 0, 0, 525, 532, 3, 34, 17, 0, 526, 532, 3, 40, 20, 0, 527, 532, 5, 22, 0, 0, 528, 532, 3, 42, 21, 0, 529, 532, 3, 44, 22, 0, 530, 532, 3, 46, 23, 0, 531, 525, 1, 0, 0, 0, 531, 526, 1, 0, 0, 0, 531, 527, 1, 0, 0, 0, 531, 528, 1, 0, 0, 0, 531, 529, 1, 0, 0, 0, 531, 530, 1, 0, 0, 0, 532, 55, 1, 0, 0, 0, 533, 534, 5, 12, 0, 0, 534, 542, 3, 160, 80, 0, 535, 536, 5, 40, 0, 0, 536, 542, 3, 160, 80, 0, 537, 538, 5, 17, 0, 0, 538, 542, 3, 160, 80, 0, 539, 540, 5, 8, 0, 0, 540, 542, 3, 160, 80, 0, 541, 533, 1, 0, 0, 0, 541, 535, 1, 0, 0, 0, 541, 537, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 542, 57, 1, 0, 0, 0, 543, 544, 3, 158, 79, 0, 544, 545, 3, 160, 80, 0, 545, 553, 1, 0, 0, 0, 546, 547, 5, 62, 0, 0, 547, 553, 3, 160, 80, 0, 548, 549, 5, 11, 0, 0, 549, 553, 3, 158, 79, 0, 550, 551, 5, 14, 0, 0, 551, 553, 3, 158, 79, 0, 552, 543, 1, 0, 0, 0, 552, 546, 1, 0, 0, 0, 552, 548, 1, 0, 0, 0, 552, 550, 1, 0, 0, 0, 553, 59, 1, 0, 0, 0, 554, 555, 3, 26, 13, 0, 555, 556, 5, 5, 0, 0, 556, 558, 3, 160, 80, 0, 557, 559, 3, 62, 31, 0, 558, 557, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 561, 5, 6, 0, 0, 561, 562, 3, 160, 80, 0, 562, 578, 1, 0, 0, 0, 563, 565, 3, 88, 44, 0, 564, 563, 1, 0, 0, 0, 565, 568, 1, 0, 0, 0, 566, 564, 1, 0, 0, 0, 566, 567, 1, 0, 0, 0, 567, 569, 1, 0, 0, 0, 568, 566, 1, 0, 0, 0, 569, 570, 5, 5, 0, 0, 570, 572, 3, 160, 80, 0, 571, 573, 3, 62, 31, 0, 572, 571, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 574, 1, 0, 0, 0, 574, 575, 5, 6, 0, 0, 575, 576, 3, 160, 80, 0, 576, 578, 1, 0, 0, 0, 577, 554, 1, 0, 0, 0, 577, 566, 1, 0, 0, 0, 578, 61, 1, 0, 0, 0, 579, 580, 5, 7, 0, 0, 580, 582, 3, 160, 80, 0, 581, 579, 1, 0, 0, 0, 582, 585, 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 586, 1, 0, 0, 0, 585, 583, 1, 0, 0, 0, 586, 587, 3, 64, 32, 0, 587, 595, 3, 160, 80, 0, 588, 589, 5, 7, 0, 0, 589, 591, 3, 160, 80, 0, 590, 592, 3, 64, 32, 0, 591, 590, 1, 0, 0, 0, 591, 592, 1, 0, 0, 0, 592, 594, 1, 0, 0, 0, 593, 588, 1, 0, 0, 0, 594, 597, 1, 0, 0, 0, 595, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 63, 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 598, 599, 3, 58, 29, 0, 599, 600, 5, 9, 0, 0, 600, 601, 3, 160, 80, 0, 601, 603, 3, 70, 35, 0, 602, 604, 3, 66, 33, 0, 603, 602, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 611, 1, 0, 0, 0, 605, 606, 3, 58, 29, 0, 606, 607, 5, 9, 0, 0, 607, 608, 3, 160, 80, 0, 608, 609, 3, 68, 34, 0, 609, 611, 1, 0, 0, 0, 610, 598, 1, 0, 0, 0, 610, 605, 1, 0, 0, 0, 611, 65, 1, 0, 0, 0, 612, 613, 5, 28, 0, 0, 613, 614, 3, 160, 80, 0, 614, 67, 1, 0, 0, 0, 615, 620, 3, 88, 44, 0, 616, 620, 3, 94, 47, 0, 617, 618, 5, 61, 0, 0, 618, 620, 3, 160, 80, 0, 619, 615, 1, 0, 0, 0, 619, 616, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 620, 621, 1, 0, 0, 0, 621, 619, 1, 0, 0, 0, 621, 622, 1, 0, 0, 0, 622, 69, 1, 0, 0, 0, 623, 630, 3, 72, 36, 0, 624, 626, 3, 56, 28, 0, 625, 624, 1, 0, 0, 0, 625, 626, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 629, 3, 72, 36, 0, 628, 625, 1, 0, 0, 0, 629, 632, 1, 0, 0, 0, 630, 628, 1, 0, 0, 0, 630, 631, 1, 0, 0, 0, 631, 71, 1, 0, 0, 0, 632, 630, 1, 0, 0, 0, 633, 634, 3, 80, 40, 0, 634, 635, 3, 160, 80, 0, 635, 662, 1, 0, 0, 0, 636, 637, 3, 82, 41, 0, 637, 638, 3, 160, 80, 0, 638, 662, 1, 0, 0, 0, 639, 640, 3, 84, 42, 0, 640, 641, 3, 160, 80, 0, 641, 662, 1, 0, 0, 0, 642, 643, 5, 44, 0, 0, 643, 662, 3, 160, 80, 0, 644, 645, 5, 31, 0, 0, 645, 662, 3, 160, 80, 0, 646, 647, 3, 158, 79, 0, 647, 648, 3, 160, 80, 0, 648, 662, 1, 0, 0, 0, 649, 662, 3, 118, 59, 0, 650, 651, 3, 116, 58, 0, 651, 652, 3, 160, 80, 0, 652, 662, 1, 0, 0, 0, 653, 662, 3, 78, 39, 0, 654, 662, 3, 120, 60, 0, 655, 662, 3, 74, 37, 0, 656, 662, 3, 162, 81, 0, 657, 658, 3, 86, 43, 0, 658, 659, 3, 160, 80, 0, 659, 662, 1, 0, 0, 0, 660, 662, 3, 76, 38, 0, 661, 633, 1, 0, 0, 0, 661, 636, 1, 0, 0, 0, 661, 639, 1, 0, 0, 0, 661, 642, 1, 0, 0, 0, 661, 644, 1, 0, 0, 0, 661, 646, 1, 0, 0, 0, 661, 649, 1, 0, 0, 0, 661, 650, 1, 0, 0, 0, 661, 653, 1, 0, 0, 0, 661, 654, 1, 0, 0, 0, 661, 655, 1, 0, 0, 0, 661, 656, 1, 0, 0, 0, 661, 657, 1, 0, 0, 0, 661, 660, 1, 0, 0, 0, 662, 73, 1, 0, 0, 0, 663, 664, 5, 65, 0, 0, 664, 665, 3, 160, 80, 0, 665, 666, 3, 70, 35, 0, 666, 667, 5, 4, 0, 0, 667, 668, 3, 160, 80, 0, 668, 75, 1, 0, 0, 0, 669, 670, 5, 60, 0, 0, 670, 671, 3, 160, 80, 0, 671, 672, 3, 70, 35, 0, 672, 673, 5, 4, 0, 0, 673, 674, 3, 160, 80, 0, 674, 77, 1, 0, 0, 0, 675, 676, 5, 22, 0, 0, 676, 677, 3, 160, 80, 0, 677, 79, 1, 0, 0, 0, 678, 680, 7, 3, 0, 0, 679, 678, 1, 0, 0, 0, 679, 680, 1, 0, 0, 0, 680, 681, 1, 0, 0, 0, 681, 682, 5, 43, 0, 0, 682, 81, 1, 0, 0, 0, 683, 685, 7, 3, 0, 0, 684, 683, 1, 0, 0, 0, 684, 685, 1, 0, 0, 0, 685, 686, 1, 0, 0, 0, 686, 687, 5, 29, 0, 0, 687, 83, 1, 0, 0, 0, 688, 690, 7, 3, 0, 0, 689, 688, 1, 0, 0, 0, 689, 690, 1, 0, 0, 0, 690, 691, 1, 0, 0, 0, 691, 692, 5, 35, 0, 0, 692, 85, 1, 0, 0, 0, 693, 695, 7, 3, 0, 0, 694, 693, 1, 0, 0, 0, 694, 695, 1, 0, 0, 0, 695, 696, 1, 0, 0, 0, 696, 697, 5, 36, 0, 0, 697, 87, 1, 0, 0, 0, 698, 699, 3, 158, 79, 0, 699, 700, 3, 160, 80, 0, 700, 765, 1, 0, 0, 0, 701, 702, 3, 80, 40, 0, 702, 703, 3, 160, 80, 0, 703, 765, 1, 0, 0, 0, 704, 705, 3, 82, 41, 0, 705, 706, 3, 160, 80, 0, 706, 765, 1, 0, 0, 0, 707, 708, 3, 84, 42, 0, 708, 709, 3, 160, 80, 0, 709, 765, 1, 0, 0, 0, 710, 711, 3, 86, 43, 0, 711, 712, 3, 160, 80, 0, 712, 765, 1, 0, 0, 0, 713, 714, 5, 44, 0, 0, 714, 765, 3, 160, 80, 0, 715, 716, 3, 116, 58, 0, 716, 717, 3, 160, 80, 0, 717, 765, 1, 0, 0, 0, 718, 719, 5, 22, 0, 0, 719, 765, 3, 160, 80, 0, 720, 721, 5, 31, 0, 0, 721, 765, 3, 160, 80, 0, 722, 723, 5, 20, 0, 0, 723, 765, 3, 160, 80, 0, 724, 725, 5, 21, 0, 0, 725, 765, 3, 160, 80, 0, 726, 727, 5, 9, 0, 0, 727, 765, 3, 160, 80, 0, 728, 729, 5, 65, 0, 0, 729, 734, 3, 160, 80, 0, 730, 733, 3, 88, 44, 0, 731, 733, 3, 92, 46, 0, 732, 730, 1, 0, 0, 0, 732, 731, 1, 0, 0, 0, 733, 736, 1, 0, 0, 0, 734, 732, 1, 0, 0, 0, 734, 735, 1, 0, 0, 0, 735, 737, 1, 0, 0, 0, 736, 734, 1, 0, 0, 0, 737, 738, 5, 4, 0, 0, 738, 739, 3, 160, 80, 0, 739, 765, 1, 0, 0, 0, 740, 741, 5, 3, 0, 0, 741, 746, 3, 160, 80, 0, 742, 745, 3, 88, 44, 0, 743, 745, 3, 92, 46, 0, 744, 742, 1, 0, 0, 0, 744, 743, 1, 0, 0, 0, 745, 748, 1, 0, 0, 0, 746, 744, 1, 0, 0, 0, 746, 747, 1, 0, 0, 0, 747, 749, 1, 0, 0, 0, 748, 746, 1, 0, 0, 0, 749, 750, 5, 4, 0, 0, 750, 751, 3, 160, 80, 0, 751, 765, 1, 0, 0, 0, 752, 753, 5, 1, 0, 0, 753, 758, 3, 160, 80, 0, 754, 757, 3, 88, 44, 0, 755, 757, 3, 92, 46, 0, 756, 754, 1, 0, 0, 0, 756, 755, 1, 0, 0, 0, 757, 760, 1, 0, 0, 0, 758, 756, 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 761, 1, 0, 0, 0, 760, 758, 1, 0, 0, 0, 761, 762, 5, 2, 0, 0, 762, 763, 3, 160, 80, 0, 763, 765, 1, 0, 0, 0, 764, 698, 1, 0, 0, 0, 764, 701, 1, 0, 0, 0, 764, 704, 1, 0, 0, 0, 764, 707, 1, 0, 0, 0, 764, 710, 1, 0, 0, 0, 764, 713, 1, 0, 0, 0, 764, 715, 1, 0, 0, 0, 764, 718, 1, 0, 0, 0, 764, 720, 1, 0, 0, 0, 764, 722, 1, 0, 0, 0, 764, 724, 1, 0, 0, 0, 764, 726, 1, 0, 0, 0, 764, 728, 1, 0, 0, 0, 764, 740, 1, 0, 0, 0, 764, 752, 1, 0, 0, 0, 765, 89, 1, 0, 0, 0, 766, 767, 5, 61, 0, 0, 767, 771, 3, 160, 80, 0, 768, 770, 3, 88, 44, 0, 769, 768, 1, 0, 0, 0, 770, 773, 1, 0, 0, 0, 771, 769, 1, 0, 0, 0, 771, 772, 1, 0, 0, 0, 772, 777, 1, 0, 0, 0, 773, 771, 1, 0, 0, 0, 774, 778, 3, 94, 47, 0, 775, 776, 5, 7, 0, 0, 776, 778, 3, 160, 80, 0, 777, 774, 1, 0, 0, 0, 777, 775, 1, 0, 0, 0, 778, 91, 1, 0, 0, 0, 779, 789, 3, 94, 47, 0, 780, 781, 5, 61, 0, 0, 781, 789, 3, 160, 80, 0, 782, 783, 5, 7, 0, 0, 783, 789, 3, 160, 80, 0, 784, 785, 5, 18, 0, 0, 785, 789, 3, 160, 80, 0, 786, 787, 5, 19, 0, 0, 787, 789, 3, 160, 80, 0, 788, 779, 1, 0, 0, 0, 788, 780, 1, 0, 0, 0, 788, 782, 1, 0, 0, 0, 788, 784, 1, 0, 0, 0, 788, 786, 1, 0, 0, 0, 789, 93, 1, 0, 0, 0, 790, 791, 5, 5, 0, 0, 791, 802, 3, 160, 80, 0, 792, 801, 3, 62, 31, 0, 793, 801, 3, 96, 48, 0, 794, 801, 3, 88, 44, 0, 795, 801, 3, 94, 47, 0, 796, 797, 5, 61, 0, 0, 797, 801, 3, 160, 80, 0, 798, 799, 5, 7, 0, 0, 799, 801, 3, 160, 80, 0, 800, 792, 1, 0, 0, 0, 800, 793, 1, 0, 0, 0, 800, 794, 1, 0, 0, 0, 800, 795, 1, 0, 0, 0, 800, 796, 1, 0, 0, 0, 800, 798, 1, 0, 0, 0, 801, 804, 1, 0, 0, 0, 802, 800, 1, 0, 0, 0, 802, 803, 1, 0, 0, 0, 803, 805, 1, 0, 0, 0, 804, 802, 1, 0, 0, 0, 805, 806, 5, 6, 0, 0, 806, 807, 3, 160, 80, 0, 807, 95, 1, 0, 0, 0, 808, 819, 3, 60, 30, 0, 809, 819, 3, 10, 5, 0, 810, 819, 3, 22, 11, 0, 811, 819, 3, 132, 66, 0, 812, 819, 3, 136, 68, 0, 813, 819, 3, 100, 50, 0, 814, 819, 3, 142, 71, 0, 815, 819, 3, 144, 72, 0, 816, 819, 3, 146, 73, 0, 817, 819, 3, 90, 45, 0, 818, 808, 1, 0, 0, 0, 818, 809, 1, 0, 0, 0, 818, 810, 1, 0, 0, 0, 818, 811, 1, 0, 0, 0, 818, 812, 1, 0, 0, 0, 818, 813, 1, 0, 0, 0, 818, 814, 1, 0, 0, 0, 818, 815, 1, 0, 0, 0, 818, 816, 1, 0, 0, 0, 818, 817, 1, 0, 0, 0, 819, 97, 1, 0, 0, 0, 820, 821, 5, 5, 0, 0, 821, 825, 3, 160, 80, 0, 822, 824, 3, 96, 48, 0, 823, 822, 1, 0, 0, 0, 824, 827, 1, 0, 0, 0, 825, 823, 1, 0, 0, 0, 825, 826, 1, 0, 0, 0, 826, 828, 1, 0, 0, 0, 827, 825, 1, 0, 0, 0, 828, 829, 5, 6, 0, 0, 829, 830, 3, 160, 80, 0, 830, 99, 1, 0, 0, 0, 831, 832, 5, 49, 0, 0, 832, 833, 3, 160, 80, 0, 833, 834, 3, 102, 51, 0, 834, 835, 3, 160, 80, 0, 835, 836, 3, 98, 49, 0, 836, 101, 1, 0, 0, 0, 837, 842, 3, 106, 53, 0, 838, 842, 3, 108, 54, 0, 839, 842, 3, 110, 55, 0, 840, 842, 3, 104, 52, 0, 841, 837, 1, 0, 0, 0, 841, 838, 1, 0, 0, 0, 841, 839, 1, 0, 0, 0, 841, 840, 1, 0, 0, 0, 842, 103, 1, 0, 0, 0, 843, 844, 5, 3, 0, 0, 844, 845, 3, 160, 80, 0, 845, 846, 3, 102, 51, 0, 846, 847, 3, 160, 80, 0, 847, 848, 5, 4, 0, 0, 848, 852, 1, 0, 0, 0, 849, 852, 3, 112, 56, 0, 850, 852, 3, 114, 57, 0, 851, 843, 1, 0, 0, 0, 851, 849, 1, 0, 0, 0, 851, 850, 1, 0, 0, 0, 852, 105, 1, 0, 0, 0, 853, 854, 5, 33, 0, 0, 854, 855, 3, 160, 80, 0, 855, 856, 5, 17, 0, 0, 856, 857, 3, 160, 80, 0, 857, 858, 3, 104, 52, 0, 858, 107, 1, 0, 0, 0, 859, 869, 3, 104, 52, 0, 860, 861, 3, 160, 80, 0, 861, 862, 5, 17, 0, 0, 862, 863, 3, 160, 80, 0, 863, 864, 5, 34, 0, 0, 864, 865, 3, 160, 80, 0, 865, 866, 5, 17, 0, 0, 866, 867, 3, 160, 80, 0, 867, 868, 3, 104, 52, 0, 868, 870, 1, 0, 0, 0, 869, 860, 1, 0, 0, 0, 870, 871, 1, 0, 0, 0, 871, 869, 1, 0, 0, 0, 871, 872, 1, 0, 0, 0, 872, 109, 1, 0, 0, 0, 873, 883, 3, 104, 52, 0, 874, 875, 3, 160, 80, 0, 875, 876, 5, 17, 0, 0, 876, 877, 3, 160, 80, 0, 877, 878, 5, 50, 0, 0, 878, 879, 3, 160, 80, 0, 879, 880, 5, 17, 0, 0, 880, 881, 3, 160, 80, 0, 881, 882, 3, 104, 52, 0, 882, 884, 1, 0, 0, 0, 883, 874, 1, 0, 0, 0, 884, 885, 1, 0, 0, 0, 885, 883, 1, 0, 0, 0, 885, 886, 1, 0, 0, 0, 886, 111, 1, 0, 0, 0, 887, 888, 5, 3, 0, 0, 888, 889, 3, 160, 80, 0, 889, 890, 3, 64, 32, 0, 890, 891, 5, 4, 0, 0, 891, 113, 1, 0, 0, 0, 892, 897, 7, 4, 0, 0, 893, 896, 3, 88, 44, 0, 894, 896, 3, 92, 46, 0, 895, 893, 1, 0, 0, 0, 895, 894, 1, 0, 0, 0, 896, 899, 1, 0, 0, 0, 897, 895, 1, 0, 0, 0, 897, 898, 1, 0, 0, 0, 898, 900, 1, 0, 0, 0, 899, 897, 1, 0, 0, 0, 900, 901, 5, 4, 0, 0, 901, 115, 1, 0, 0, 0, 902, 903, 5, 30, 0, 0, 903, 904, 3, 160, 80, 0, 904, 905, 5, 44, 0, 0, 905, 906, 3, 160, 80, 0, 906, 907, 5, 4, 0, 0, 907, 910, 1, 0, 0, 0, 908, 910, 5, 16, 0, 0, 909, 902, 1, 0, 0, 0, 909, 908, 1, 0, 0, 0, 910, 117, 1, 0, 0, 0, 911, 912, 5, 63, 0, 0, 912, 913, 3, 160, 80, 0, 913, 914, 5, 62, 0, 0, 914, 915, 3, 160, 80, 0, 915, 916, 5, 4, 0, 0, 916, 917, 3, 160, 80, 0, 917, 119, 1, 0, 0, 0, 918, 919, 5, 54, 0, 0, 919, 920, 3, 160, 80, 0, 920, 921, 3, 126, 63, 0, 921, 922, 5, 4, 0, 0, 922, 923, 3, 160, 80, 0, 923, 121, 1, 0, 0, 0, 924, 925, 3, 130, 65, 0, 925, 123, 1, 0, 0, 0, 926, 927, 7, 5, 0, 0, 927, 125, 1, 0, 0, 0, 928, 938, 3, 122, 61, 0, 929, 930, 5, 17, 0, 0, 930, 931, 3, 160, 80, 0, 931, 932, 3, 124, 62, 0, 932, 933, 5, 17, 0, 0, 933, 934, 3, 160, 80, 0, 934, 935, 3, 122, 61, 0, 935, 937, 1, 0, 0, 0, 936, 929, 1, 0, 0, 0, 937, 940, 1, 0, 0, 0, 938, 936, 1, 0, 0, 0, 938, 939, 1, 0, 0, 0, 939, 941, 1, 0, 0, 0, 940, 938, 1, 0, 0, 0, 941, 942, 3, 160, 80, 0, 942, 127, 1, 0, 0, 0, 943, 945, 7, 3, 0, 0, 944, 943, 1, 0, 0, 0, 944, 945, 1, 0, 0, 0, 945, 946, 1, 0, 0, 0, 946, 947, 5, 3, 0, 0, 947, 948, 3, 160, 80, 0, 948, 949, 3, 126, 63, 0, 949, 950, 5, 4, 0, 0, 950, 951, 3, 160, 80, 0, 951, 129, 1, 0, 0, 0, 952, 953, 3, 80, 40, 0, 953, 954, 3, 160, 80, 0, 954, 971, 1, 0, 0, 0, 955, 956, 3, 84, 42, 0, 956, 957, 3, 160, 80, 0, 957, 971, 1, 0, 0, 0, 958, 959, 3, 86, 43, 0, 959, 960, 3, 160, 80, 0, 960, 971, 1, 0, 0, 0, 961, 962, 3, 82, 41, 0, 962, 963, 3, 160, 80, 0, 963, 971, 1, 0, 0, 0, 964, 965, 3, 128, 64, 0, 965, 966, 3, 160, 80, 0, 966, 971, 1, 0, 0, 0, 967, 968, 3, 120, 60, 0, 968, 969, 3, 160, 80, 0, 969, 971, 1, 0, 0, 0, 970, 952, 1, 0, 0, 0, 970, 955, 1, 0, 0, 0, 970, 958, 1, 0, 0, 0, 970, 961, 1, 0, 0, 0, 970, 964, 1, 0, 0, 0, 970, 967, 1, 0, 0, 0, 971, 131, 1, 0, 0, 0, 972, 973, 5, 48, 0, 0, 973, 974, 3, 160, 80, 0, 974, 975, 5, 5, 0, 0, 975, 977, 3, 160, 80, 0, 976, 978, 3, 134, 67, 0, 977, 976, 1, 0, 0, 0, 977, 978, 1, 0, 0, 0, 978, 986, 1, 0, 0, 0, 979, 980, 5, 7, 0, 0, 980, 982, 3, 160, 80, 0, 981, 983, 3, 134, 67, 0, 982, 981, 1, 0, 0, 0, 982, 983, 1, 0, 0, 0, 983, 985, 1, 0, 0, 0, 984, 979, 1, 0, 0, 0, 985, 988, 1, 0, 0, 0, 986, 984, 1, 0, 0, 0, 986, 987, 1, 0, 0, 0, 987, 989, 1, 0, 0, 0, 988, 986, 1, 0, 0, 0, 989, 990, 5, 6, 0, 0, 990, 991, 3, 160, 80, 0, 991, 133, 1, 0, 0, 0, 992, 993, 3, 58, 29, 0, 993, 994, 5, 9, 0, 0, 994, 995, 3, 160, 80, 0, 995, 996, 3, 70, 35, 0, 996, 1003, 1, 0, 0, 0, 997, 998, 3, 58, 29, 0, 998, 999, 5, 9, 0, 0, 999, 1000, 3, 160, 80, 0, 1000, 1001, 3, 68, 34, 0, 1001, 1003, 1, 0, 0, 0, 1002, 992, 1, 0, 0, 0, 1002, 997, 1, 0, 0, 0, 1003, 135, 1, 0, 0, 0, 1004, 1005, 5, 51, 0, 0, 1005, 1006, 3, 160, 80, 0, 1006, 1007, 5, 17, 0, 0, 1007, 1008, 3, 160, 80, 0, 1008, 1009, 3, 158, 79, 0, 1009, 1010, 3, 160, 80, 0, 1010, 1011, 5, 5, 0, 0, 1011, 1015, 3, 160, 80, 0, 1012, 1014, 3, 138, 69, 0, 1013, 1012, 1, 0, 0, 0, 1014, 1017, 1, 0, 0, 0, 1015, 1013, 1, 0, 0, 0, 1015, 1016, 1, 0, 0, 0, 1016, 1018, 1, 0, 0, 0, 1017, 1015, 1, 0, 0, 0, 1018, 1019, 5, 6, 0, 0, 1019, 1020, 3, 160, 80, 0, 1020, 137, 1, 0, 0, 0, 1021, 1022, 3, 140, 70, 0, 1022, 1023, 5, 5, 0, 0, 1023, 1025, 3, 160, 80, 0, 1024, 1026, 3, 62, 31, 0, 1025, 1024, 1, 0, 0, 0, 1025, 1026, 1, 0, 0, 0, 1026, 1027, 1, 0, 0, 0, 1027, 1028, 5, 6, 0, 0, 1028, 1029, 3, 160, 80, 0, 1029, 139, 1, 0, 0, 0, 1030, 1031, 7, 6, 0, 0, 1031, 1039, 3, 160, 80, 0, 1032, 1033, 5, 40, 0, 0, 1033, 1034, 3, 160, 80, 0, 1034, 1035, 7, 6, 0, 0, 1035, 1036, 3, 160, 80, 0, 1036, 1038, 1, 0, 0, 0, 1037, 1032, 1, 0, 0, 0, 1038, 1041, 1, 0, 0, 0, 1039, 1037, 1, 0, 0, 0, 1039, 1040, 1, 0, 0, 0, 1040, 141, 1, 0, 0, 0, 1041, 1039, 1, 0, 0, 0, 1042, 1043, 5, 57, 0, 0, 1043, 1044, 3, 160, 80, 0, 1044, 1045, 5, 5, 0, 0, 1045, 1047, 3, 160, 80, 0, 1046, 1048, 3, 62, 31, 0, 1047, 1046, 1, 0, 0, 0, 1047, 1048, 1, 0, 0, 0, 1048, 1049, 1, 0, 0, 0, 1049, 1050, 5, 6, 0, 0, 1050, 1051, 3, 160, 80, 0, 1051, 143, 1, 0, 0, 0, 1052, 1053, 5, 58, 0, 0, 1053, 1054, 3, 160, 80, 0, 1054, 1055, 3, 158, 79, 0, 1055, 1056, 3, 160, 80, 0, 1056, 1057, 5, 5, 0, 0, 1057, 1059, 3, 160, 80, 0, 1058, 1060, 3, 62, 31, 0, 1059, 1058, 1, 0, 0, 0, 1059, 1060, 1, 0, 0, 0, 1060, 1061, 1, 0, 0, 0, 1061, 1062, 5, 6, 0, 0, 1062, 1063, 3, 160, 80, 0, 1063, 145, 1, 0, 0, 0, 1064, 1065, 5, 59, 0, 0, 1065, 1066, 3, 160, 80, 0, 1066, 1067, 3, 148, 74, 0, 1067, 1068, 3, 160, 80, 0, 1068, 1069, 5, 5, 0, 0, 1069, 1073, 3, 160, 80, 0, 1070, 1072, 3, 152, 76, 0, 1071, 1070, 1, 0, 0, 0, 1072, 1075, 1, 0, 0, 0, 1073, 1071, 1, 0, 0, 0, 1073, 1074, 1, 0, 0, 0, 1074, 1076, 1, 0, 0, 0, 1075, 1073, 1, 0, 0, 0, 1076, 1077, 5, 6, 0, 0, 1077, 1078, 3, 160, 80, 0, 1078, 147, 1, 0, 0, 0, 1079, 1087, 3, 150, 75, 0, 1080, 1081, 3, 160, 80, 0, 1081, 1082, 5, 40, 0, 0, 1082, 1083, 3, 160, 80, 0, 1083, 1084, 3, 150, 75, 0, 1084, 1086, 1, 0, 0, 0, 1085, 1080, 1, 0, 0, 0, 1086, 1089, 1, 0, 0, 0, 1087, 1085, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 149, 1, 0, 0, 0, 1089, 1087, 1, 0, 0, 0, 1090, 1101, 5, 44, 0, 0, 1091, 1097, 3, 158, 79, 0, 1092, 1093, 3, 160, 80, 0, 1093, 1094, 3, 158, 79, 0, 1094, 1096, 1, 0, 0, 0, 1095, 1092, 1, 0, 0, 0, 1096, 1099, 1, 0, 0, 0, 1097, 1095, 1, 0, 0, 0, 1097, 1098, 1, 0, 0, 0, 1098, 1101, 1, 0, 0, 0, 1099, 1097, 1, 0, 0, 0, 1100, 1090, 1, 0, 0, 0, 1100, 1091, 1, 0, 0, 0, 1101, 151, 1, 0, 0, 0, 1102, 1103, 3, 154, 77, 0, 1103, 1104, 3, 160, 80, 0, 1104, 1105, 5, 5, 0, 0, 1105, 1107, 3, 160, 80, 0, 1106, 1108, 3, 156, 78, 0, 1107, 1106, 1, 0, 0, 0, 1107, 1108, 1, 0, 0, 0, 1108, 1117, 1, 0, 0, 0, 1109, 1110, 3, 160, 80, 0, 1110, 1111, 5, 7, 0, 0, 1111, 1113, 3, 160, 80, 0, 1112, 1114, 3, 156, 78, 0, 1113, 1112, 1, 0, 0, 0, 1113, 1114, 1, 0, 0, 0, 1114, 1116, 1, 0, 0, 0, 1115, 1109, 1, 0, 0, 0, 1116, 1119, 1, 0, 0, 0, 1117, 1115, 1, 0, 0, 0, 1117, 1118, 1, 0, 0, 0, 1118, 1120, 1, 0, 0, 0, 1119, 1117, 1, 0, 0, 0, 1120, 1121, 5, 6, 0, 0, 1121, 1122, 3, 160, 80, 0, 1122, 153, 1, 0, 0, 0, 1123, 1124, 5, 61, 0, 0, 1124, 155, 1, 0, 0, 0, 1125, 1126, 3, 158, 79, 0, 1126, 1127, 3, 160, 80, 0, 1127, 1128, 5, 9, 0, 0, 1128, 1129, 3, 160, 80, 0, 1129, 1135, 3, 80, 40, 0, 1130, 1131, 3, 160, 80, 0, 1131, 1132, 3, 80, 40, 0, 1132, 1134, 1, 0, 0, 0, 1133, 1130, 1, 0, 0, 0, 1134, 1137, 1, 0, 0, 0, 1135, 1133, 1, 0, 0, 0, 1135, 1136, 1, 0, 0, 0, 1136, 157, 1, 0, 0, 0, 1137, 1135, 1, 0, 0, 0, 1138, 1139, 7, 7, 0, 0, 1139, 159, 1, 0, 0, 0, 1140, 1142, 7, 8, 0, 0, 1141, 1140, 1, 0, 0, 0, 1142, 1145, 1, 0, 0, 0, 1143, 1141, 1, 0, 0, 0, 1143, 1144, 1, 0, 0, 0, 1144, 161, 1, 0, 0, 0, 1145, 1143, 1, 0, 0, 0, 1146, 1147, 7, 9, 0, 0, 1147, 1148, 3, 160, 80, 0, 1148, 1149, 3, 166, 83, 0, 1149, 1150, 5, 40, 0, 0, 1150, 1151, 3, 160, 80, 0, 1151, 1152, 3, 166, 83, 0, 1152, 1153, 5, 40, 0, 0, 1153, 1154, 3, 160, 80, 0, 1154, 1159, 3, 166, 83, 0, 1155, 1156, 5, 40, 0, 0, 1156, 1157, 3, 160, 80, 0, 1157, 1158, 3, 164, 82, 0, 1158, 1160, 1, 0, 0, 0, 1159, 1155, 1, 0, 0, 0, 1159, 1160, 1, 0, 0, 0, 1160, 1161, 1, 0, 0, 0, 1161, 1162, 5, 4, 0, 0, 1162, 1163, 3, 160, 80, 0, 1163, 1181, 1, 0, 0, 0, 1164, 1165, 7, 9, 0, 0, 1165, 1166, 3, 160, 80, 0, 1166, 1167, 3, 166, 83, 0, 1167, 1168, 3, 160, 80, 0, 1168, 1169, 3, 166, 83, 0, 1169, 1170, 3, 160, 80, 0, 1170, 1175, 3, 166, 83, 0, 1171, 1172, 5, 12, 0, 0, 1172, 1173, 3, 160, 80, 0, 1173, 1174, 3, 164, 82, 0, 1174, 1176, 1, 0, 0, 0, 1175, 1171, 1, 0, 0, 0, 1175, 1176, 1, 0, 0, 0, 1176, 1177, 1, 0, 0, 0, 1177, 1178, 5, 4, 0, 0, 1178, 1179, 3, 160, 80, 0, 1179, 1181, 1, 0, 0, 0, 1180, 1146, 1, 0, 0, 0, 1180, 1164, 1, 0, 0, 0, 1181, 163, 1, 0, 0, 0, 1182, 1185, 3, 130, 65, 0, 1183, 1185, 3, 120, 60, 0, 1184, 1182, 1, 0, 0, 0, 1184, 1183, 1, 0, 0, 0, 1185, 165, 1, 0, 0, 0, 1186, 1189, 3, 130, 65, 0, 1187, 1189, 3, 120, 60, 0, 1188, 1186, 1, 0, 0, 0, 1188, 1187, 1, 0, 0, 0, 1189, 167, 1, 0, 0, 0, 117, 173, 178, 185, 190, 197, 202, 209, 214, 231, 237, 248, 258, 267, 271, 278, 282, 293, 297, 301, 318, 321, 326, 337, 347, 350, 361, 372, 377, 382, 386, 403, 414, 425, 429, 436, 438, 446, 448, 450, 453, 459, 466, 476, 484, 488, 494, 498, 512, 517, 531, 541, 552, 558, 566, 572, 577, 583, 591, 595, 603, 610, 619, 621, 625, 630, 661, 679, 684, 689, 694, 732, 734, 744, 746, 756, 758, 764, 771, 777, 788, 800, 802, 818, 825, 841, 851, 871, 885, 895, 897, 909, 938, 944, 970, 977, 982, 986, 1002, 1015, 1025, 1039, 1047, 1059, 1073, 1087, 1097, 1100, 1107, 1113, 1117, 1135, 1143, 1159, 1175, 1180, 1184, 1188] \ No newline at end of file diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.tokens b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.tokens deleted file mode 100644 index fbcc31ef9..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3Parser.tokens +++ /dev/null @@ -1,98 +0,0 @@ -OpenBracket=1 -CloseBracket=2 -OpenParen=3 -CloseParen=4 -OpenBrace=5 -CloseBrace=6 -SemiColon=7 -Equal=8 -Colon=9 -Dot=10 -Multiply=11 -Divide=12 -Pipe=13 -Underscore=14 -Comment=15 -Url=16 -Space=17 -Cdo=18 -Cdc=19 -Includes=20 -DashMatch=21 -Hash=22 -Import=23 -Page=24 -Media=25 -Namespace=26 -Charset=27 -Important=28 -Percentage=29 -Url_=30 -UnicodeRange=31 -MediaOnly=32 -Not=33 -And=34 -Dimension=35 -UnknownDimension=36 -Plus=37 -Minus=38 -Greater=39 -Comma=40 -Tilde=41 -PseudoNot=42 -Number=43 -String_=44 -PrefixMatch=45 -SuffixMatch=46 -SubstringMatch=47 -FontFace=48 -Supports=49 -Or=50 -Keyframes=51 -From=52 -To=53 -Calc=54 -Rgb=55 -Rgba=56 -Viewport=57 -CounterStyle=58 -FontFeatureValues=59 -DxImageTransform=60 -AtKeyword=61 -Variable=62 -Var=63 -Ident=64 -Function_=65 -UnexpectedCharacter=66 -'['=1 -']'=2 -'('=3 -')'=4 -'{'=5 -'}'=6 -';'=7 -'='=8 -':'=9 -'.'=10 -'*'=11 -'/'=12 -'|'=13 -'_'=14 -''=19 -'~='=20 -'|='=21 -'@charset '=27 -'url('=30 -'+'=37 -'-'=38 -'>'=39 -','=40 -'~'=41 -'^='=45 -'$='=46 -'*='=47 -'calc('=54 -'rgb('=55 -'rgba('=56 -'var('=63 diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.cpp b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.cpp deleted file mode 100644 index 29f6f4cac..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.cpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - - -#include "css3ParserBaseListener.h" - - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.h b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.h deleted file mode 100644 index 0cdcb0ea1..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseListener.h +++ /dev/null @@ -1,305 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - -#pragma once - - -#include "antlr4-runtime.h" -#include "css3ParserListener.h" - - -/** - * This class provides an empty implementation of css3ParserListener, - * which can be extended to create a listener which only needs to handle a subset - * of the available methods. - */ -class css3ParserBaseListener : public css3ParserListener { -public: - - virtual void enterStylesheet(css3Parser::StylesheetContext * /*ctx*/) override { } - virtual void exitStylesheet(css3Parser::StylesheetContext * /*ctx*/) override { } - - virtual void enterGoodCharset(css3Parser::GoodCharsetContext * /*ctx*/) override { } - virtual void exitGoodCharset(css3Parser::GoodCharsetContext * /*ctx*/) override { } - - virtual void enterBadCharset(css3Parser::BadCharsetContext * /*ctx*/) override { } - virtual void exitBadCharset(css3Parser::BadCharsetContext * /*ctx*/) override { } - - virtual void enterGoodImport(css3Parser::GoodImportContext * /*ctx*/) override { } - virtual void exitGoodImport(css3Parser::GoodImportContext * /*ctx*/) override { } - - virtual void enterBadImport(css3Parser::BadImportContext * /*ctx*/) override { } - virtual void exitBadImport(css3Parser::BadImportContext * /*ctx*/) override { } - - virtual void enterGoodNamespace(css3Parser::GoodNamespaceContext * /*ctx*/) override { } - virtual void exitGoodNamespace(css3Parser::GoodNamespaceContext * /*ctx*/) override { } - - virtual void enterBadNamespace(css3Parser::BadNamespaceContext * /*ctx*/) override { } - virtual void exitBadNamespace(css3Parser::BadNamespaceContext * /*ctx*/) override { } - - virtual void enterNamespacePrefix(css3Parser::NamespacePrefixContext * /*ctx*/) override { } - virtual void exitNamespacePrefix(css3Parser::NamespacePrefixContext * /*ctx*/) override { } - - virtual void enterMedia(css3Parser::MediaContext * /*ctx*/) override { } - virtual void exitMedia(css3Parser::MediaContext * /*ctx*/) override { } - - virtual void enterMediaQueryList(css3Parser::MediaQueryListContext * /*ctx*/) override { } - virtual void exitMediaQueryList(css3Parser::MediaQueryListContext * /*ctx*/) override { } - - virtual void enterMediaQuery(css3Parser::MediaQueryContext * /*ctx*/) override { } - virtual void exitMediaQuery(css3Parser::MediaQueryContext * /*ctx*/) override { } - - virtual void enterMediaType(css3Parser::MediaTypeContext * /*ctx*/) override { } - virtual void exitMediaType(css3Parser::MediaTypeContext * /*ctx*/) override { } - - virtual void enterMediaExpression(css3Parser::MediaExpressionContext * /*ctx*/) override { } - virtual void exitMediaExpression(css3Parser::MediaExpressionContext * /*ctx*/) override { } - - virtual void enterMediaFeature(css3Parser::MediaFeatureContext * /*ctx*/) override { } - virtual void exitMediaFeature(css3Parser::MediaFeatureContext * /*ctx*/) override { } - - virtual void enterPage(css3Parser::PageContext * /*ctx*/) override { } - virtual void exitPage(css3Parser::PageContext * /*ctx*/) override { } - - virtual void enterPseudoPage(css3Parser::PseudoPageContext * /*ctx*/) override { } - virtual void exitPseudoPage(css3Parser::PseudoPageContext * /*ctx*/) override { } - - virtual void enterSelectorGroup(css3Parser::SelectorGroupContext * /*ctx*/) override { } - virtual void exitSelectorGroup(css3Parser::SelectorGroupContext * /*ctx*/) override { } - - virtual void enterSelector(css3Parser::SelectorContext * /*ctx*/) override { } - virtual void exitSelector(css3Parser::SelectorContext * /*ctx*/) override { } - - virtual void enterCombinator(css3Parser::CombinatorContext * /*ctx*/) override { } - virtual void exitCombinator(css3Parser::CombinatorContext * /*ctx*/) override { } - - virtual void enterSimpleSelectorSequence(css3Parser::SimpleSelectorSequenceContext * /*ctx*/) override { } - virtual void exitSimpleSelectorSequence(css3Parser::SimpleSelectorSequenceContext * /*ctx*/) override { } - - virtual void enterTypeSelector(css3Parser::TypeSelectorContext * /*ctx*/) override { } - virtual void exitTypeSelector(css3Parser::TypeSelectorContext * /*ctx*/) override { } - - virtual void enterTypeNamespacePrefix(css3Parser::TypeNamespacePrefixContext * /*ctx*/) override { } - virtual void exitTypeNamespacePrefix(css3Parser::TypeNamespacePrefixContext * /*ctx*/) override { } - - virtual void enterElementName(css3Parser::ElementNameContext * /*ctx*/) override { } - virtual void exitElementName(css3Parser::ElementNameContext * /*ctx*/) override { } - - virtual void enterUniversal(css3Parser::UniversalContext * /*ctx*/) override { } - virtual void exitUniversal(css3Parser::UniversalContext * /*ctx*/) override { } - - virtual void enterClassName(css3Parser::ClassNameContext * /*ctx*/) override { } - virtual void exitClassName(css3Parser::ClassNameContext * /*ctx*/) override { } - - virtual void enterAttrib(css3Parser::AttribContext * /*ctx*/) override { } - virtual void exitAttrib(css3Parser::AttribContext * /*ctx*/) override { } - - virtual void enterPseudo(css3Parser::PseudoContext * /*ctx*/) override { } - virtual void exitPseudo(css3Parser::PseudoContext * /*ctx*/) override { } - - virtual void enterFunctionalPseudo(css3Parser::FunctionalPseudoContext * /*ctx*/) override { } - virtual void exitFunctionalPseudo(css3Parser::FunctionalPseudoContext * /*ctx*/) override { } - - virtual void enterExpression(css3Parser::ExpressionContext * /*ctx*/) override { } - virtual void exitExpression(css3Parser::ExpressionContext * /*ctx*/) override { } - - virtual void enterNegation(css3Parser::NegationContext * /*ctx*/) override { } - virtual void exitNegation(css3Parser::NegationContext * /*ctx*/) override { } - - virtual void enterNegationArg(css3Parser::NegationArgContext * /*ctx*/) override { } - virtual void exitNegationArg(css3Parser::NegationArgContext * /*ctx*/) override { } - - virtual void enterGoodOperator(css3Parser::GoodOperatorContext * /*ctx*/) override { } - virtual void exitGoodOperator(css3Parser::GoodOperatorContext * /*ctx*/) override { } - - virtual void enterBadOperator(css3Parser::BadOperatorContext * /*ctx*/) override { } - virtual void exitBadOperator(css3Parser::BadOperatorContext * /*ctx*/) override { } - - virtual void enterGoodProperty(css3Parser::GoodPropertyContext * /*ctx*/) override { } - virtual void exitGoodProperty(css3Parser::GoodPropertyContext * /*ctx*/) override { } - - virtual void enterBadProperty(css3Parser::BadPropertyContext * /*ctx*/) override { } - virtual void exitBadProperty(css3Parser::BadPropertyContext * /*ctx*/) override { } - - virtual void enterKnownRuleset(css3Parser::KnownRulesetContext * /*ctx*/) override { } - virtual void exitKnownRuleset(css3Parser::KnownRulesetContext * /*ctx*/) override { } - - virtual void enterUnknownRuleset(css3Parser::UnknownRulesetContext * /*ctx*/) override { } - virtual void exitUnknownRuleset(css3Parser::UnknownRulesetContext * /*ctx*/) override { } - - virtual void enterDeclarationList(css3Parser::DeclarationListContext * /*ctx*/) override { } - virtual void exitDeclarationList(css3Parser::DeclarationListContext * /*ctx*/) override { } - - virtual void enterKnownDeclaration(css3Parser::KnownDeclarationContext * /*ctx*/) override { } - virtual void exitKnownDeclaration(css3Parser::KnownDeclarationContext * /*ctx*/) override { } - - virtual void enterUnknownDeclaration(css3Parser::UnknownDeclarationContext * /*ctx*/) override { } - virtual void exitUnknownDeclaration(css3Parser::UnknownDeclarationContext * /*ctx*/) override { } - - virtual void enterPrio(css3Parser::PrioContext * /*ctx*/) override { } - virtual void exitPrio(css3Parser::PrioContext * /*ctx*/) override { } - - virtual void enterValue(css3Parser::ValueContext * /*ctx*/) override { } - virtual void exitValue(css3Parser::ValueContext * /*ctx*/) override { } - - virtual void enterExpr(css3Parser::ExprContext * /*ctx*/) override { } - virtual void exitExpr(css3Parser::ExprContext * /*ctx*/) override { } - - virtual void enterKnownTerm(css3Parser::KnownTermContext * /*ctx*/) override { } - virtual void exitKnownTerm(css3Parser::KnownTermContext * /*ctx*/) override { } - - virtual void enterBadTerm(css3Parser::BadTermContext * /*ctx*/) override { } - virtual void exitBadTerm(css3Parser::BadTermContext * /*ctx*/) override { } - - virtual void enterFunction_(css3Parser::Function_Context * /*ctx*/) override { } - virtual void exitFunction_(css3Parser::Function_Context * /*ctx*/) override { } - - virtual void enterDxImageTransform(css3Parser::DxImageTransformContext * /*ctx*/) override { } - virtual void exitDxImageTransform(css3Parser::DxImageTransformContext * /*ctx*/) override { } - - virtual void enterHexcolor(css3Parser::HexcolorContext * /*ctx*/) override { } - virtual void exitHexcolor(css3Parser::HexcolorContext * /*ctx*/) override { } - - virtual void enterNumber(css3Parser::NumberContext * /*ctx*/) override { } - virtual void exitNumber(css3Parser::NumberContext * /*ctx*/) override { } - - virtual void enterPercentage(css3Parser::PercentageContext * /*ctx*/) override { } - virtual void exitPercentage(css3Parser::PercentageContext * /*ctx*/) override { } - - virtual void enterDimension(css3Parser::DimensionContext * /*ctx*/) override { } - virtual void exitDimension(css3Parser::DimensionContext * /*ctx*/) override { } - - virtual void enterUnknownDimension(css3Parser::UnknownDimensionContext * /*ctx*/) override { } - virtual void exitUnknownDimension(css3Parser::UnknownDimensionContext * /*ctx*/) override { } - - virtual void enterAny_(css3Parser::Any_Context * /*ctx*/) override { } - virtual void exitAny_(css3Parser::Any_Context * /*ctx*/) override { } - - virtual void enterUnknownAtRule(css3Parser::UnknownAtRuleContext * /*ctx*/) override { } - virtual void exitUnknownAtRule(css3Parser::UnknownAtRuleContext * /*ctx*/) override { } - - virtual void enterUnused(css3Parser::UnusedContext * /*ctx*/) override { } - virtual void exitUnused(css3Parser::UnusedContext * /*ctx*/) override { } - - virtual void enterBlock(css3Parser::BlockContext * /*ctx*/) override { } - virtual void exitBlock(css3Parser::BlockContext * /*ctx*/) override { } - - virtual void enterNestedStatement(css3Parser::NestedStatementContext * /*ctx*/) override { } - virtual void exitNestedStatement(css3Parser::NestedStatementContext * /*ctx*/) override { } - - virtual void enterGroupRuleBody(css3Parser::GroupRuleBodyContext * /*ctx*/) override { } - virtual void exitGroupRuleBody(css3Parser::GroupRuleBodyContext * /*ctx*/) override { } - - virtual void enterSupportsRule(css3Parser::SupportsRuleContext * /*ctx*/) override { } - virtual void exitSupportsRule(css3Parser::SupportsRuleContext * /*ctx*/) override { } - - virtual void enterSupportsCondition(css3Parser::SupportsConditionContext * /*ctx*/) override { } - virtual void exitSupportsCondition(css3Parser::SupportsConditionContext * /*ctx*/) override { } - - virtual void enterSupportsConditionInParens(css3Parser::SupportsConditionInParensContext * /*ctx*/) override { } - virtual void exitSupportsConditionInParens(css3Parser::SupportsConditionInParensContext * /*ctx*/) override { } - - virtual void enterSupportsNegation(css3Parser::SupportsNegationContext * /*ctx*/) override { } - virtual void exitSupportsNegation(css3Parser::SupportsNegationContext * /*ctx*/) override { } - - virtual void enterSupportsConjunction(css3Parser::SupportsConjunctionContext * /*ctx*/) override { } - virtual void exitSupportsConjunction(css3Parser::SupportsConjunctionContext * /*ctx*/) override { } - - virtual void enterSupportsDisjunction(css3Parser::SupportsDisjunctionContext * /*ctx*/) override { } - virtual void exitSupportsDisjunction(css3Parser::SupportsDisjunctionContext * /*ctx*/) override { } - - virtual void enterSupportsDeclarationCondition(css3Parser::SupportsDeclarationConditionContext * /*ctx*/) override { } - virtual void exitSupportsDeclarationCondition(css3Parser::SupportsDeclarationConditionContext * /*ctx*/) override { } - - virtual void enterGeneralEnclosed(css3Parser::GeneralEnclosedContext * /*ctx*/) override { } - virtual void exitGeneralEnclosed(css3Parser::GeneralEnclosedContext * /*ctx*/) override { } - - virtual void enterUrl(css3Parser::UrlContext * /*ctx*/) override { } - virtual void exitUrl(css3Parser::UrlContext * /*ctx*/) override { } - - virtual void enterVar_(css3Parser::Var_Context * /*ctx*/) override { } - virtual void exitVar_(css3Parser::Var_Context * /*ctx*/) override { } - - virtual void enterCalc(css3Parser::CalcContext * /*ctx*/) override { } - virtual void exitCalc(css3Parser::CalcContext * /*ctx*/) override { } - - virtual void enterCalcOperand(css3Parser::CalcOperandContext * /*ctx*/) override { } - virtual void exitCalcOperand(css3Parser::CalcOperandContext * /*ctx*/) override { } - - virtual void enterCalcSign(css3Parser::CalcSignContext * /*ctx*/) override { } - virtual void exitCalcSign(css3Parser::CalcSignContext * /*ctx*/) override { } - - virtual void enterCalcExpr(css3Parser::CalcExprContext * /*ctx*/) override { } - virtual void exitCalcExpr(css3Parser::CalcExprContext * /*ctx*/) override { } - - virtual void enterCalcNestedValue(css3Parser::CalcNestedValueContext * /*ctx*/) override { } - virtual void exitCalcNestedValue(css3Parser::CalcNestedValueContext * /*ctx*/) override { } - - virtual void enterCalcValue(css3Parser::CalcValueContext * /*ctx*/) override { } - virtual void exitCalcValue(css3Parser::CalcValueContext * /*ctx*/) override { } - - virtual void enterFontFaceRule(css3Parser::FontFaceRuleContext * /*ctx*/) override { } - virtual void exitFontFaceRule(css3Parser::FontFaceRuleContext * /*ctx*/) override { } - - virtual void enterKnownFontFaceDeclaration(css3Parser::KnownFontFaceDeclarationContext * /*ctx*/) override { } - virtual void exitKnownFontFaceDeclaration(css3Parser::KnownFontFaceDeclarationContext * /*ctx*/) override { } - - virtual void enterUnknownFontFaceDeclaration(css3Parser::UnknownFontFaceDeclarationContext * /*ctx*/) override { } - virtual void exitUnknownFontFaceDeclaration(css3Parser::UnknownFontFaceDeclarationContext * /*ctx*/) override { } - - virtual void enterKeyframesRule(css3Parser::KeyframesRuleContext * /*ctx*/) override { } - virtual void exitKeyframesRule(css3Parser::KeyframesRuleContext * /*ctx*/) override { } - - virtual void enterKeyframeBlock(css3Parser::KeyframeBlockContext * /*ctx*/) override { } - virtual void exitKeyframeBlock(css3Parser::KeyframeBlockContext * /*ctx*/) override { } - - virtual void enterKeyframeSelector(css3Parser::KeyframeSelectorContext * /*ctx*/) override { } - virtual void exitKeyframeSelector(css3Parser::KeyframeSelectorContext * /*ctx*/) override { } - - virtual void enterViewport(css3Parser::ViewportContext * /*ctx*/) override { } - virtual void exitViewport(css3Parser::ViewportContext * /*ctx*/) override { } - - virtual void enterCounterStyle(css3Parser::CounterStyleContext * /*ctx*/) override { } - virtual void exitCounterStyle(css3Parser::CounterStyleContext * /*ctx*/) override { } - - virtual void enterFontFeatureValuesRule(css3Parser::FontFeatureValuesRuleContext * /*ctx*/) override { } - virtual void exitFontFeatureValuesRule(css3Parser::FontFeatureValuesRuleContext * /*ctx*/) override { } - - virtual void enterFontFamilyNameList(css3Parser::FontFamilyNameListContext * /*ctx*/) override { } - virtual void exitFontFamilyNameList(css3Parser::FontFamilyNameListContext * /*ctx*/) override { } - - virtual void enterFontFamilyName(css3Parser::FontFamilyNameContext * /*ctx*/) override { } - virtual void exitFontFamilyName(css3Parser::FontFamilyNameContext * /*ctx*/) override { } - - virtual void enterFeatureValueBlock(css3Parser::FeatureValueBlockContext * /*ctx*/) override { } - virtual void exitFeatureValueBlock(css3Parser::FeatureValueBlockContext * /*ctx*/) override { } - - virtual void enterFeatureType(css3Parser::FeatureTypeContext * /*ctx*/) override { } - virtual void exitFeatureType(css3Parser::FeatureTypeContext * /*ctx*/) override { } - - virtual void enterFeatureValueDefinition(css3Parser::FeatureValueDefinitionContext * /*ctx*/) override { } - virtual void exitFeatureValueDefinition(css3Parser::FeatureValueDefinitionContext * /*ctx*/) override { } - - virtual void enterIdent(css3Parser::IdentContext * /*ctx*/) override { } - virtual void exitIdent(css3Parser::IdentContext * /*ctx*/) override { } - - virtual void enterWs(css3Parser::WsContext * /*ctx*/) override { } - virtual void exitWs(css3Parser::WsContext * /*ctx*/) override { } - - virtual void enterColor(css3Parser::ColorContext * /*ctx*/) override { } - virtual void exitColor(css3Parser::ColorContext * /*ctx*/) override { } - - virtual void enterColor_alpha(css3Parser::Color_alphaContext * /*ctx*/) override { } - virtual void exitColor_alpha(css3Parser::Color_alphaContext * /*ctx*/) override { } - - virtual void enterColor_component(css3Parser::Color_componentContext * /*ctx*/) override { } - virtual void exitColor_component(css3Parser::Color_componentContext * /*ctx*/) override { } - - - virtual void enterEveryRule(antlr4::ParserRuleContext * /*ctx*/) override { } - virtual void exitEveryRule(antlr4::ParserRuleContext * /*ctx*/) override { } - virtual void visitTerminal(antlr4::tree::TerminalNode * /*node*/) override { } - virtual void visitErrorNode(antlr4::tree::ErrorNode * /*node*/) override { } - -}; - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.cpp b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.cpp deleted file mode 100644 index 8f84b7335..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.cpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - - -#include "css3ParserBaseVisitor.h" - - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.h b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.h deleted file mode 100644 index 82595590d..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserBaseVisitor.h +++ /dev/null @@ -1,392 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - -#pragma once - - -#include "antlr4-runtime.h" -#include "css3ParserVisitor.h" - - -/** - * This class provides an empty implementation of css3ParserVisitor, which can be - * extended to create a visitor which only needs to handle a subset of the available methods. - */ -class css3ParserBaseVisitor : public css3ParserVisitor { -public: - - virtual std::any visitStylesheet(css3Parser::StylesheetContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGoodCharset(css3Parser::GoodCharsetContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBadCharset(css3Parser::BadCharsetContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGoodImport(css3Parser::GoodImportContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBadImport(css3Parser::BadImportContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGoodNamespace(css3Parser::GoodNamespaceContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBadNamespace(css3Parser::BadNamespaceContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNamespacePrefix(css3Parser::NamespacePrefixContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitMedia(css3Parser::MediaContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitMediaQueryList(css3Parser::MediaQueryListContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitMediaQuery(css3Parser::MediaQueryContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitMediaType(css3Parser::MediaTypeContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitMediaExpression(css3Parser::MediaExpressionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitMediaFeature(css3Parser::MediaFeatureContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPage(css3Parser::PageContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPseudoPage(css3Parser::PseudoPageContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSelectorGroup(css3Parser::SelectorGroupContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSelector(css3Parser::SelectorContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCombinator(css3Parser::CombinatorContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSimpleSelectorSequence(css3Parser::SimpleSelectorSequenceContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitTypeSelector(css3Parser::TypeSelectorContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitTypeNamespacePrefix(css3Parser::TypeNamespacePrefixContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitElementName(css3Parser::ElementNameContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitUniversal(css3Parser::UniversalContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitClassName(css3Parser::ClassNameContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitAttrib(css3Parser::AttribContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPseudo(css3Parser::PseudoContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFunctionalPseudo(css3Parser::FunctionalPseudoContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitExpression(css3Parser::ExpressionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNegation(css3Parser::NegationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNegationArg(css3Parser::NegationArgContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGoodOperator(css3Parser::GoodOperatorContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBadOperator(css3Parser::BadOperatorContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGoodProperty(css3Parser::GoodPropertyContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBadProperty(css3Parser::BadPropertyContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitKnownRuleset(css3Parser::KnownRulesetContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitUnknownRuleset(css3Parser::UnknownRulesetContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitDeclarationList(css3Parser::DeclarationListContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitKnownDeclaration(css3Parser::KnownDeclarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitUnknownDeclaration(css3Parser::UnknownDeclarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPrio(css3Parser::PrioContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitValue(css3Parser::ValueContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitExpr(css3Parser::ExprContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitKnownTerm(css3Parser::KnownTermContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBadTerm(css3Parser::BadTermContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFunction_(css3Parser::Function_Context *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitDxImageTransform(css3Parser::DxImageTransformContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitHexcolor(css3Parser::HexcolorContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNumber(css3Parser::NumberContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPercentage(css3Parser::PercentageContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitDimension(css3Parser::DimensionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitUnknownDimension(css3Parser::UnknownDimensionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitAny_(css3Parser::Any_Context *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitUnknownAtRule(css3Parser::UnknownAtRuleContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitUnused(css3Parser::UnusedContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBlock(css3Parser::BlockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNestedStatement(css3Parser::NestedStatementContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGroupRuleBody(css3Parser::GroupRuleBodyContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSupportsRule(css3Parser::SupportsRuleContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSupportsCondition(css3Parser::SupportsConditionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSupportsConditionInParens(css3Parser::SupportsConditionInParensContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSupportsNegation(css3Parser::SupportsNegationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSupportsConjunction(css3Parser::SupportsConjunctionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSupportsDisjunction(css3Parser::SupportsDisjunctionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSupportsDeclarationCondition(css3Parser::SupportsDeclarationConditionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGeneralEnclosed(css3Parser::GeneralEnclosedContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitUrl(css3Parser::UrlContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitVar_(css3Parser::Var_Context *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCalc(css3Parser::CalcContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCalcOperand(css3Parser::CalcOperandContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCalcSign(css3Parser::CalcSignContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCalcExpr(css3Parser::CalcExprContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCalcNestedValue(css3Parser::CalcNestedValueContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCalcValue(css3Parser::CalcValueContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFontFaceRule(css3Parser::FontFaceRuleContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitKnownFontFaceDeclaration(css3Parser::KnownFontFaceDeclarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitUnknownFontFaceDeclaration(css3Parser::UnknownFontFaceDeclarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitKeyframesRule(css3Parser::KeyframesRuleContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitKeyframeBlock(css3Parser::KeyframeBlockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitKeyframeSelector(css3Parser::KeyframeSelectorContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitViewport(css3Parser::ViewportContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCounterStyle(css3Parser::CounterStyleContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFontFeatureValuesRule(css3Parser::FontFeatureValuesRuleContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFontFamilyNameList(css3Parser::FontFamilyNameListContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFontFamilyName(css3Parser::FontFamilyNameContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFeatureValueBlock(css3Parser::FeatureValueBlockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFeatureType(css3Parser::FeatureTypeContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFeatureValueDefinition(css3Parser::FeatureValueDefinitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitIdent(css3Parser::IdentContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitWs(css3Parser::WsContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitColor(css3Parser::ColorContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitColor_alpha(css3Parser::Color_alphaContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitColor_component(css3Parser::Color_componentContext *ctx) override { - return visitChildren(ctx); - } - - -}; - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.cpp b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.cpp deleted file mode 100644 index db1dedb95..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.cpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - - -#include "css3ParserListener.h" - - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.h b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.h deleted file mode 100644 index eb19b395f..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserListener.h +++ /dev/null @@ -1,298 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - -#pragma once - - -#include "antlr4-runtime.h" -#include "css3Parser.h" - - -/** - * This interface defines an abstract listener for a parse tree produced by css3Parser. - */ -class css3ParserListener : public antlr4::tree::ParseTreeListener { -public: - - virtual void enterStylesheet(css3Parser::StylesheetContext *ctx) = 0; - virtual void exitStylesheet(css3Parser::StylesheetContext *ctx) = 0; - - virtual void enterGoodCharset(css3Parser::GoodCharsetContext *ctx) = 0; - virtual void exitGoodCharset(css3Parser::GoodCharsetContext *ctx) = 0; - - virtual void enterBadCharset(css3Parser::BadCharsetContext *ctx) = 0; - virtual void exitBadCharset(css3Parser::BadCharsetContext *ctx) = 0; - - virtual void enterGoodImport(css3Parser::GoodImportContext *ctx) = 0; - virtual void exitGoodImport(css3Parser::GoodImportContext *ctx) = 0; - - virtual void enterBadImport(css3Parser::BadImportContext *ctx) = 0; - virtual void exitBadImport(css3Parser::BadImportContext *ctx) = 0; - - virtual void enterGoodNamespace(css3Parser::GoodNamespaceContext *ctx) = 0; - virtual void exitGoodNamespace(css3Parser::GoodNamespaceContext *ctx) = 0; - - virtual void enterBadNamespace(css3Parser::BadNamespaceContext *ctx) = 0; - virtual void exitBadNamespace(css3Parser::BadNamespaceContext *ctx) = 0; - - virtual void enterNamespacePrefix(css3Parser::NamespacePrefixContext *ctx) = 0; - virtual void exitNamespacePrefix(css3Parser::NamespacePrefixContext *ctx) = 0; - - virtual void enterMedia(css3Parser::MediaContext *ctx) = 0; - virtual void exitMedia(css3Parser::MediaContext *ctx) = 0; - - virtual void enterMediaQueryList(css3Parser::MediaQueryListContext *ctx) = 0; - virtual void exitMediaQueryList(css3Parser::MediaQueryListContext *ctx) = 0; - - virtual void enterMediaQuery(css3Parser::MediaQueryContext *ctx) = 0; - virtual void exitMediaQuery(css3Parser::MediaQueryContext *ctx) = 0; - - virtual void enterMediaType(css3Parser::MediaTypeContext *ctx) = 0; - virtual void exitMediaType(css3Parser::MediaTypeContext *ctx) = 0; - - virtual void enterMediaExpression(css3Parser::MediaExpressionContext *ctx) = 0; - virtual void exitMediaExpression(css3Parser::MediaExpressionContext *ctx) = 0; - - virtual void enterMediaFeature(css3Parser::MediaFeatureContext *ctx) = 0; - virtual void exitMediaFeature(css3Parser::MediaFeatureContext *ctx) = 0; - - virtual void enterPage(css3Parser::PageContext *ctx) = 0; - virtual void exitPage(css3Parser::PageContext *ctx) = 0; - - virtual void enterPseudoPage(css3Parser::PseudoPageContext *ctx) = 0; - virtual void exitPseudoPage(css3Parser::PseudoPageContext *ctx) = 0; - - virtual void enterSelectorGroup(css3Parser::SelectorGroupContext *ctx) = 0; - virtual void exitSelectorGroup(css3Parser::SelectorGroupContext *ctx) = 0; - - virtual void enterSelector(css3Parser::SelectorContext *ctx) = 0; - virtual void exitSelector(css3Parser::SelectorContext *ctx) = 0; - - virtual void enterCombinator(css3Parser::CombinatorContext *ctx) = 0; - virtual void exitCombinator(css3Parser::CombinatorContext *ctx) = 0; - - virtual void enterSimpleSelectorSequence(css3Parser::SimpleSelectorSequenceContext *ctx) = 0; - virtual void exitSimpleSelectorSequence(css3Parser::SimpleSelectorSequenceContext *ctx) = 0; - - virtual void enterTypeSelector(css3Parser::TypeSelectorContext *ctx) = 0; - virtual void exitTypeSelector(css3Parser::TypeSelectorContext *ctx) = 0; - - virtual void enterTypeNamespacePrefix(css3Parser::TypeNamespacePrefixContext *ctx) = 0; - virtual void exitTypeNamespacePrefix(css3Parser::TypeNamespacePrefixContext *ctx) = 0; - - virtual void enterElementName(css3Parser::ElementNameContext *ctx) = 0; - virtual void exitElementName(css3Parser::ElementNameContext *ctx) = 0; - - virtual void enterUniversal(css3Parser::UniversalContext *ctx) = 0; - virtual void exitUniversal(css3Parser::UniversalContext *ctx) = 0; - - virtual void enterClassName(css3Parser::ClassNameContext *ctx) = 0; - virtual void exitClassName(css3Parser::ClassNameContext *ctx) = 0; - - virtual void enterAttrib(css3Parser::AttribContext *ctx) = 0; - virtual void exitAttrib(css3Parser::AttribContext *ctx) = 0; - - virtual void enterPseudo(css3Parser::PseudoContext *ctx) = 0; - virtual void exitPseudo(css3Parser::PseudoContext *ctx) = 0; - - virtual void enterFunctionalPseudo(css3Parser::FunctionalPseudoContext *ctx) = 0; - virtual void exitFunctionalPseudo(css3Parser::FunctionalPseudoContext *ctx) = 0; - - virtual void enterExpression(css3Parser::ExpressionContext *ctx) = 0; - virtual void exitExpression(css3Parser::ExpressionContext *ctx) = 0; - - virtual void enterNegation(css3Parser::NegationContext *ctx) = 0; - virtual void exitNegation(css3Parser::NegationContext *ctx) = 0; - - virtual void enterNegationArg(css3Parser::NegationArgContext *ctx) = 0; - virtual void exitNegationArg(css3Parser::NegationArgContext *ctx) = 0; - - virtual void enterGoodOperator(css3Parser::GoodOperatorContext *ctx) = 0; - virtual void exitGoodOperator(css3Parser::GoodOperatorContext *ctx) = 0; - - virtual void enterBadOperator(css3Parser::BadOperatorContext *ctx) = 0; - virtual void exitBadOperator(css3Parser::BadOperatorContext *ctx) = 0; - - virtual void enterGoodProperty(css3Parser::GoodPropertyContext *ctx) = 0; - virtual void exitGoodProperty(css3Parser::GoodPropertyContext *ctx) = 0; - - virtual void enterBadProperty(css3Parser::BadPropertyContext *ctx) = 0; - virtual void exitBadProperty(css3Parser::BadPropertyContext *ctx) = 0; - - virtual void enterKnownRuleset(css3Parser::KnownRulesetContext *ctx) = 0; - virtual void exitKnownRuleset(css3Parser::KnownRulesetContext *ctx) = 0; - - virtual void enterUnknownRuleset(css3Parser::UnknownRulesetContext *ctx) = 0; - virtual void exitUnknownRuleset(css3Parser::UnknownRulesetContext *ctx) = 0; - - virtual void enterDeclarationList(css3Parser::DeclarationListContext *ctx) = 0; - virtual void exitDeclarationList(css3Parser::DeclarationListContext *ctx) = 0; - - virtual void enterKnownDeclaration(css3Parser::KnownDeclarationContext *ctx) = 0; - virtual void exitKnownDeclaration(css3Parser::KnownDeclarationContext *ctx) = 0; - - virtual void enterUnknownDeclaration(css3Parser::UnknownDeclarationContext *ctx) = 0; - virtual void exitUnknownDeclaration(css3Parser::UnknownDeclarationContext *ctx) = 0; - - virtual void enterPrio(css3Parser::PrioContext *ctx) = 0; - virtual void exitPrio(css3Parser::PrioContext *ctx) = 0; - - virtual void enterValue(css3Parser::ValueContext *ctx) = 0; - virtual void exitValue(css3Parser::ValueContext *ctx) = 0; - - virtual void enterExpr(css3Parser::ExprContext *ctx) = 0; - virtual void exitExpr(css3Parser::ExprContext *ctx) = 0; - - virtual void enterKnownTerm(css3Parser::KnownTermContext *ctx) = 0; - virtual void exitKnownTerm(css3Parser::KnownTermContext *ctx) = 0; - - virtual void enterBadTerm(css3Parser::BadTermContext *ctx) = 0; - virtual void exitBadTerm(css3Parser::BadTermContext *ctx) = 0; - - virtual void enterFunction_(css3Parser::Function_Context *ctx) = 0; - virtual void exitFunction_(css3Parser::Function_Context *ctx) = 0; - - virtual void enterDxImageTransform(css3Parser::DxImageTransformContext *ctx) = 0; - virtual void exitDxImageTransform(css3Parser::DxImageTransformContext *ctx) = 0; - - virtual void enterHexcolor(css3Parser::HexcolorContext *ctx) = 0; - virtual void exitHexcolor(css3Parser::HexcolorContext *ctx) = 0; - - virtual void enterNumber(css3Parser::NumberContext *ctx) = 0; - virtual void exitNumber(css3Parser::NumberContext *ctx) = 0; - - virtual void enterPercentage(css3Parser::PercentageContext *ctx) = 0; - virtual void exitPercentage(css3Parser::PercentageContext *ctx) = 0; - - virtual void enterDimension(css3Parser::DimensionContext *ctx) = 0; - virtual void exitDimension(css3Parser::DimensionContext *ctx) = 0; - - virtual void enterUnknownDimension(css3Parser::UnknownDimensionContext *ctx) = 0; - virtual void exitUnknownDimension(css3Parser::UnknownDimensionContext *ctx) = 0; - - virtual void enterAny_(css3Parser::Any_Context *ctx) = 0; - virtual void exitAny_(css3Parser::Any_Context *ctx) = 0; - - virtual void enterUnknownAtRule(css3Parser::UnknownAtRuleContext *ctx) = 0; - virtual void exitUnknownAtRule(css3Parser::UnknownAtRuleContext *ctx) = 0; - - virtual void enterUnused(css3Parser::UnusedContext *ctx) = 0; - virtual void exitUnused(css3Parser::UnusedContext *ctx) = 0; - - virtual void enterBlock(css3Parser::BlockContext *ctx) = 0; - virtual void exitBlock(css3Parser::BlockContext *ctx) = 0; - - virtual void enterNestedStatement(css3Parser::NestedStatementContext *ctx) = 0; - virtual void exitNestedStatement(css3Parser::NestedStatementContext *ctx) = 0; - - virtual void enterGroupRuleBody(css3Parser::GroupRuleBodyContext *ctx) = 0; - virtual void exitGroupRuleBody(css3Parser::GroupRuleBodyContext *ctx) = 0; - - virtual void enterSupportsRule(css3Parser::SupportsRuleContext *ctx) = 0; - virtual void exitSupportsRule(css3Parser::SupportsRuleContext *ctx) = 0; - - virtual void enterSupportsCondition(css3Parser::SupportsConditionContext *ctx) = 0; - virtual void exitSupportsCondition(css3Parser::SupportsConditionContext *ctx) = 0; - - virtual void enterSupportsConditionInParens(css3Parser::SupportsConditionInParensContext *ctx) = 0; - virtual void exitSupportsConditionInParens(css3Parser::SupportsConditionInParensContext *ctx) = 0; - - virtual void enterSupportsNegation(css3Parser::SupportsNegationContext *ctx) = 0; - virtual void exitSupportsNegation(css3Parser::SupportsNegationContext *ctx) = 0; - - virtual void enterSupportsConjunction(css3Parser::SupportsConjunctionContext *ctx) = 0; - virtual void exitSupportsConjunction(css3Parser::SupportsConjunctionContext *ctx) = 0; - - virtual void enterSupportsDisjunction(css3Parser::SupportsDisjunctionContext *ctx) = 0; - virtual void exitSupportsDisjunction(css3Parser::SupportsDisjunctionContext *ctx) = 0; - - virtual void enterSupportsDeclarationCondition(css3Parser::SupportsDeclarationConditionContext *ctx) = 0; - virtual void exitSupportsDeclarationCondition(css3Parser::SupportsDeclarationConditionContext *ctx) = 0; - - virtual void enterGeneralEnclosed(css3Parser::GeneralEnclosedContext *ctx) = 0; - virtual void exitGeneralEnclosed(css3Parser::GeneralEnclosedContext *ctx) = 0; - - virtual void enterUrl(css3Parser::UrlContext *ctx) = 0; - virtual void exitUrl(css3Parser::UrlContext *ctx) = 0; - - virtual void enterVar_(css3Parser::Var_Context *ctx) = 0; - virtual void exitVar_(css3Parser::Var_Context *ctx) = 0; - - virtual void enterCalc(css3Parser::CalcContext *ctx) = 0; - virtual void exitCalc(css3Parser::CalcContext *ctx) = 0; - - virtual void enterCalcOperand(css3Parser::CalcOperandContext *ctx) = 0; - virtual void exitCalcOperand(css3Parser::CalcOperandContext *ctx) = 0; - - virtual void enterCalcSign(css3Parser::CalcSignContext *ctx) = 0; - virtual void exitCalcSign(css3Parser::CalcSignContext *ctx) = 0; - - virtual void enterCalcExpr(css3Parser::CalcExprContext *ctx) = 0; - virtual void exitCalcExpr(css3Parser::CalcExprContext *ctx) = 0; - - virtual void enterCalcNestedValue(css3Parser::CalcNestedValueContext *ctx) = 0; - virtual void exitCalcNestedValue(css3Parser::CalcNestedValueContext *ctx) = 0; - - virtual void enterCalcValue(css3Parser::CalcValueContext *ctx) = 0; - virtual void exitCalcValue(css3Parser::CalcValueContext *ctx) = 0; - - virtual void enterFontFaceRule(css3Parser::FontFaceRuleContext *ctx) = 0; - virtual void exitFontFaceRule(css3Parser::FontFaceRuleContext *ctx) = 0; - - virtual void enterKnownFontFaceDeclaration(css3Parser::KnownFontFaceDeclarationContext *ctx) = 0; - virtual void exitKnownFontFaceDeclaration(css3Parser::KnownFontFaceDeclarationContext *ctx) = 0; - - virtual void enterUnknownFontFaceDeclaration(css3Parser::UnknownFontFaceDeclarationContext *ctx) = 0; - virtual void exitUnknownFontFaceDeclaration(css3Parser::UnknownFontFaceDeclarationContext *ctx) = 0; - - virtual void enterKeyframesRule(css3Parser::KeyframesRuleContext *ctx) = 0; - virtual void exitKeyframesRule(css3Parser::KeyframesRuleContext *ctx) = 0; - - virtual void enterKeyframeBlock(css3Parser::KeyframeBlockContext *ctx) = 0; - virtual void exitKeyframeBlock(css3Parser::KeyframeBlockContext *ctx) = 0; - - virtual void enterKeyframeSelector(css3Parser::KeyframeSelectorContext *ctx) = 0; - virtual void exitKeyframeSelector(css3Parser::KeyframeSelectorContext *ctx) = 0; - - virtual void enterViewport(css3Parser::ViewportContext *ctx) = 0; - virtual void exitViewport(css3Parser::ViewportContext *ctx) = 0; - - virtual void enterCounterStyle(css3Parser::CounterStyleContext *ctx) = 0; - virtual void exitCounterStyle(css3Parser::CounterStyleContext *ctx) = 0; - - virtual void enterFontFeatureValuesRule(css3Parser::FontFeatureValuesRuleContext *ctx) = 0; - virtual void exitFontFeatureValuesRule(css3Parser::FontFeatureValuesRuleContext *ctx) = 0; - - virtual void enterFontFamilyNameList(css3Parser::FontFamilyNameListContext *ctx) = 0; - virtual void exitFontFamilyNameList(css3Parser::FontFamilyNameListContext *ctx) = 0; - - virtual void enterFontFamilyName(css3Parser::FontFamilyNameContext *ctx) = 0; - virtual void exitFontFamilyName(css3Parser::FontFamilyNameContext *ctx) = 0; - - virtual void enterFeatureValueBlock(css3Parser::FeatureValueBlockContext *ctx) = 0; - virtual void exitFeatureValueBlock(css3Parser::FeatureValueBlockContext *ctx) = 0; - - virtual void enterFeatureType(css3Parser::FeatureTypeContext *ctx) = 0; - virtual void exitFeatureType(css3Parser::FeatureTypeContext *ctx) = 0; - - virtual void enterFeatureValueDefinition(css3Parser::FeatureValueDefinitionContext *ctx) = 0; - virtual void exitFeatureValueDefinition(css3Parser::FeatureValueDefinitionContext *ctx) = 0; - - virtual void enterIdent(css3Parser::IdentContext *ctx) = 0; - virtual void exitIdent(css3Parser::IdentContext *ctx) = 0; - - virtual void enterWs(css3Parser::WsContext *ctx) = 0; - virtual void exitWs(css3Parser::WsContext *ctx) = 0; - - virtual void enterColor(css3Parser::ColorContext *ctx) = 0; - virtual void exitColor(css3Parser::ColorContext *ctx) = 0; - - virtual void enterColor_alpha(css3Parser::Color_alphaContext *ctx) = 0; - virtual void exitColor_alpha(css3Parser::Color_alphaContext *ctx) = 0; - - virtual void enterColor_component(css3Parser::Color_componentContext *ctx) = 0; - virtual void exitColor_component(css3Parser::Color_componentContext *ctx) = 0; - - -}; - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.cpp b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.cpp deleted file mode 100644 index acdedd2c6..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.cpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - - -#include "css3ParserVisitor.h" - - diff --git a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.h b/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.h deleted file mode 100644 index 0cefba067..000000000 --- a/Sources/SGCore/UI/ANTLR4CSS3Generated/css3ParserVisitor.h +++ /dev/null @@ -1,210 +0,0 @@ - -// Generated from /home/creastive/projects/sungear/SungearEngine/Externals/antlr4/css/css3Parser.g4 by ANTLR 4.13.1 - -#pragma once - - -#include "antlr4-runtime.h" -#include "css3Parser.h" - - - -/** - * This class defines an abstract visitor for a parse tree - * produced by css3Parser. - */ -class css3ParserVisitor : public antlr4::tree::AbstractParseTreeVisitor { -public: - - /** - * Visit parse trees produced by css3Parser. - */ - virtual std::any visitStylesheet(css3Parser::StylesheetContext *context) = 0; - - virtual std::any visitGoodCharset(css3Parser::GoodCharsetContext *context) = 0; - - virtual std::any visitBadCharset(css3Parser::BadCharsetContext *context) = 0; - - virtual std::any visitGoodImport(css3Parser::GoodImportContext *context) = 0; - - virtual std::any visitBadImport(css3Parser::BadImportContext *context) = 0; - - virtual std::any visitGoodNamespace(css3Parser::GoodNamespaceContext *context) = 0; - - virtual std::any visitBadNamespace(css3Parser::BadNamespaceContext *context) = 0; - - virtual std::any visitNamespacePrefix(css3Parser::NamespacePrefixContext *context) = 0; - - virtual std::any visitMedia(css3Parser::MediaContext *context) = 0; - - virtual std::any visitMediaQueryList(css3Parser::MediaQueryListContext *context) = 0; - - virtual std::any visitMediaQuery(css3Parser::MediaQueryContext *context) = 0; - - virtual std::any visitMediaType(css3Parser::MediaTypeContext *context) = 0; - - virtual std::any visitMediaExpression(css3Parser::MediaExpressionContext *context) = 0; - - virtual std::any visitMediaFeature(css3Parser::MediaFeatureContext *context) = 0; - - virtual std::any visitPage(css3Parser::PageContext *context) = 0; - - virtual std::any visitPseudoPage(css3Parser::PseudoPageContext *context) = 0; - - virtual std::any visitSelectorGroup(css3Parser::SelectorGroupContext *context) = 0; - - virtual std::any visitSelector(css3Parser::SelectorContext *context) = 0; - - virtual std::any visitCombinator(css3Parser::CombinatorContext *context) = 0; - - virtual std::any visitSimpleSelectorSequence(css3Parser::SimpleSelectorSequenceContext *context) = 0; - - virtual std::any visitTypeSelector(css3Parser::TypeSelectorContext *context) = 0; - - virtual std::any visitTypeNamespacePrefix(css3Parser::TypeNamespacePrefixContext *context) = 0; - - virtual std::any visitElementName(css3Parser::ElementNameContext *context) = 0; - - virtual std::any visitUniversal(css3Parser::UniversalContext *context) = 0; - - virtual std::any visitClassName(css3Parser::ClassNameContext *context) = 0; - - virtual std::any visitAttrib(css3Parser::AttribContext *context) = 0; - - virtual std::any visitPseudo(css3Parser::PseudoContext *context) = 0; - - virtual std::any visitFunctionalPseudo(css3Parser::FunctionalPseudoContext *context) = 0; - - virtual std::any visitExpression(css3Parser::ExpressionContext *context) = 0; - - virtual std::any visitNegation(css3Parser::NegationContext *context) = 0; - - virtual std::any visitNegationArg(css3Parser::NegationArgContext *context) = 0; - - virtual std::any visitGoodOperator(css3Parser::GoodOperatorContext *context) = 0; - - virtual std::any visitBadOperator(css3Parser::BadOperatorContext *context) = 0; - - virtual std::any visitGoodProperty(css3Parser::GoodPropertyContext *context) = 0; - - virtual std::any visitBadProperty(css3Parser::BadPropertyContext *context) = 0; - - virtual std::any visitKnownRuleset(css3Parser::KnownRulesetContext *context) = 0; - - virtual std::any visitUnknownRuleset(css3Parser::UnknownRulesetContext *context) = 0; - - virtual std::any visitDeclarationList(css3Parser::DeclarationListContext *context) = 0; - - virtual std::any visitKnownDeclaration(css3Parser::KnownDeclarationContext *context) = 0; - - virtual std::any visitUnknownDeclaration(css3Parser::UnknownDeclarationContext *context) = 0; - - virtual std::any visitPrio(css3Parser::PrioContext *context) = 0; - - virtual std::any visitValue(css3Parser::ValueContext *context) = 0; - - virtual std::any visitExpr(css3Parser::ExprContext *context) = 0; - - virtual std::any visitKnownTerm(css3Parser::KnownTermContext *context) = 0; - - virtual std::any visitBadTerm(css3Parser::BadTermContext *context) = 0; - - virtual std::any visitFunction_(css3Parser::Function_Context *context) = 0; - - virtual std::any visitDxImageTransform(css3Parser::DxImageTransformContext *context) = 0; - - virtual std::any visitHexcolor(css3Parser::HexcolorContext *context) = 0; - - virtual std::any visitNumber(css3Parser::NumberContext *context) = 0; - - virtual std::any visitPercentage(css3Parser::PercentageContext *context) = 0; - - virtual std::any visitDimension(css3Parser::DimensionContext *context) = 0; - - virtual std::any visitUnknownDimension(css3Parser::UnknownDimensionContext *context) = 0; - - virtual std::any visitAny_(css3Parser::Any_Context *context) = 0; - - virtual std::any visitUnknownAtRule(css3Parser::UnknownAtRuleContext *context) = 0; - - virtual std::any visitUnused(css3Parser::UnusedContext *context) = 0; - - virtual std::any visitBlock(css3Parser::BlockContext *context) = 0; - - virtual std::any visitNestedStatement(css3Parser::NestedStatementContext *context) = 0; - - virtual std::any visitGroupRuleBody(css3Parser::GroupRuleBodyContext *context) = 0; - - virtual std::any visitSupportsRule(css3Parser::SupportsRuleContext *context) = 0; - - virtual std::any visitSupportsCondition(css3Parser::SupportsConditionContext *context) = 0; - - virtual std::any visitSupportsConditionInParens(css3Parser::SupportsConditionInParensContext *context) = 0; - - virtual std::any visitSupportsNegation(css3Parser::SupportsNegationContext *context) = 0; - - virtual std::any visitSupportsConjunction(css3Parser::SupportsConjunctionContext *context) = 0; - - virtual std::any visitSupportsDisjunction(css3Parser::SupportsDisjunctionContext *context) = 0; - - virtual std::any visitSupportsDeclarationCondition(css3Parser::SupportsDeclarationConditionContext *context) = 0; - - virtual std::any visitGeneralEnclosed(css3Parser::GeneralEnclosedContext *context) = 0; - - virtual std::any visitUrl(css3Parser::UrlContext *context) = 0; - - virtual std::any visitVar_(css3Parser::Var_Context *context) = 0; - - virtual std::any visitCalc(css3Parser::CalcContext *context) = 0; - - virtual std::any visitCalcOperand(css3Parser::CalcOperandContext *context) = 0; - - virtual std::any visitCalcSign(css3Parser::CalcSignContext *context) = 0; - - virtual std::any visitCalcExpr(css3Parser::CalcExprContext *context) = 0; - - virtual std::any visitCalcNestedValue(css3Parser::CalcNestedValueContext *context) = 0; - - virtual std::any visitCalcValue(css3Parser::CalcValueContext *context) = 0; - - virtual std::any visitFontFaceRule(css3Parser::FontFaceRuleContext *context) = 0; - - virtual std::any visitKnownFontFaceDeclaration(css3Parser::KnownFontFaceDeclarationContext *context) = 0; - - virtual std::any visitUnknownFontFaceDeclaration(css3Parser::UnknownFontFaceDeclarationContext *context) = 0; - - virtual std::any visitKeyframesRule(css3Parser::KeyframesRuleContext *context) = 0; - - virtual std::any visitKeyframeBlock(css3Parser::KeyframeBlockContext *context) = 0; - - virtual std::any visitKeyframeSelector(css3Parser::KeyframeSelectorContext *context) = 0; - - virtual std::any visitViewport(css3Parser::ViewportContext *context) = 0; - - virtual std::any visitCounterStyle(css3Parser::CounterStyleContext *context) = 0; - - virtual std::any visitFontFeatureValuesRule(css3Parser::FontFeatureValuesRuleContext *context) = 0; - - virtual std::any visitFontFamilyNameList(css3Parser::FontFamilyNameListContext *context) = 0; - - virtual std::any visitFontFamilyName(css3Parser::FontFamilyNameContext *context) = 0; - - virtual std::any visitFeatureValueBlock(css3Parser::FeatureValueBlockContext *context) = 0; - - virtual std::any visitFeatureType(css3Parser::FeatureTypeContext *context) = 0; - - virtual std::any visitFeatureValueDefinition(css3Parser::FeatureValueDefinitionContext *context) = 0; - - virtual std::any visitIdent(css3Parser::IdentContext *context) = 0; - - virtual std::any visitWs(css3Parser::WsContext *context) = 0; - - virtual std::any visitColor(css3Parser::ColorContext *context) = 0; - - virtual std::any visitColor_alpha(css3Parser::Color_alphaContext *context) = 0; - - virtual std::any visitColor_component(css3Parser::Color_componentContext *context) = 0; - - -}; - diff --git a/vcpkg b/vcpkg index d5a87c6bc..e40d24cb1 160000 --- a/vcpkg +++ b/vcpkg @@ -1 +1 @@ -Subproject commit d5a87c6bcc5d3cb3f5627bfeff977280097c719c +Subproject commit e40d24cb149dd138e7c11d490834fa2c81298b32