From 7aaeef6858c0bef23e2e7d9052f3989fe89370be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Bl=C3=A4sing?= Date: Mon, 29 Dec 2025 20:08:13 +0100 Subject: [PATCH 1/2] Enable multiview for rust files --- .../rust/grammar/RustLanguageConfig.java | 17 ----------------- .../rust/sources/rs/RustFileDataObject.java | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/RustLanguageConfig.java b/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/RustLanguageConfig.java index 939c10d0a024..e8b6cf564901 100644 --- a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/RustLanguageConfig.java +++ b/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/RustLanguageConfig.java @@ -20,16 +20,11 @@ import org.netbeans.modules.rust.grammar.structure.RustStructureScanner; import org.netbeans.api.lexer.Language; -import org.netbeans.core.spi.multiview.MultiViewElement; -import org.netbeans.core.spi.multiview.text.MultiViewEditorElement; import org.netbeans.modules.csl.api.DeclarationFinder; import org.netbeans.modules.csl.api.StructureScanner; import org.netbeans.modules.csl.spi.DefaultLanguageConfig; import org.netbeans.modules.csl.spi.LanguageRegistration; import org.netbeans.modules.parsing.spi.Parser; -import org.openide.util.Lookup; -import org.openide.util.NbBundle; -import org.openide.windows.TopComponent; /** * @@ -74,16 +69,4 @@ public DeclarationFinder getDeclarationFinder() { return new RustDeclarationFinder(); } - @NbBundle.Messages("Source=&Source") - @MultiViewElement.Registration( - displayName = "#Source", - persistenceType = TopComponent.PERSISTENCE_ONLY_OPENED, - mimeType = "text/x-rust", - preferredID = "rust.source", - position = 100 - ) - public static MultiViewEditorElement createMultiViewEditorElement(Lookup context) { - return new MultiViewEditorElement(context); - } - } diff --git a/rust/rust.sources/src/org/netbeans/modules/rust/sources/rs/RustFileDataObject.java b/rust/rust.sources/src/org/netbeans/modules/rust/sources/rs/RustFileDataObject.java index 7a1277b49277..816d17c8666e 100644 --- a/rust/rust.sources/src/org/netbeans/modules/rust/sources/rs/RustFileDataObject.java +++ b/rust/rust.sources/src/org/netbeans/modules/rust/sources/rs/RustFileDataObject.java @@ -19,6 +19,8 @@ package org.netbeans.modules.rust.sources.rs; import java.io.IOException; +import org.netbeans.core.spi.multiview.MultiViewElement; +import org.netbeans.core.spi.multiview.text.MultiViewEditorElement; import org.openide.awt.ActionID; import org.openide.awt.ActionReference; import org.openide.awt.ActionReferences; @@ -28,7 +30,9 @@ import org.openide.loaders.DataObjectExistsException; import org.openide.loaders.MultiDataObject; import org.openide.loaders.MultiFileLoader; +import org.openide.util.Lookup; import org.openide.util.NbBundle.Messages; +import org.openide.windows.TopComponent; @Messages({ "LBL_RustFile_LOADER=Rust files" @@ -102,7 +106,7 @@ public class RustFileDataObject extends MultiDataObject { public RustFileDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException { super(pf, loader); - registerEditor("text/x-rust", false); + registerEditor("text/x-rust", true); } @Override @@ -110,4 +114,16 @@ protected int associateLookup() { return 1; } + @Messages("Source=&Source") + @MultiViewElement.Registration( + displayName = "#Source", + iconBase = "org/netbeans/modules/rust/sources/rs/templates/rust-file.png", + persistenceType = TopComponent.PERSISTENCE_ONLY_OPENED, + mimeType = "text/x-rust", + preferredID = "rust.source", + position = 100 + ) + public static MultiViewEditorElement createEditor(Lookup lkp) { + return new MultiViewEditorElement(lkp); + } } From 8690c0e83b64c4b67fe61cacfe4ed2d38bd3f899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Bl=C3=A4sing?= Date: Mon, 29 Dec 2025 20:21:20 +0100 Subject: [PATCH 2/2] Rust grammar: Remove generated files from version control This prevents the generated files to show up as modified on each build. The files are still generated, but not committed anymore to version control. --- .../modules/rust/grammar/antlr4/.gitignore | 5 + .../rust/grammar/antlr4/RustLexer.java | 1220 -- .../rust/grammar/antlr4/RustParser.java | 17984 ---------------- .../grammar/antlr4/RustParserBaseVisitor.java | 1642 -- .../grammar/antlr4/RustParserVisitor.java | 1445 -- 5 files changed, 5 insertions(+), 22291 deletions(-) create mode 100644 rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/.gitignore delete mode 100644 rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustLexer.java delete mode 100644 rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParser.java delete mode 100644 rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParserBaseVisitor.java delete mode 100644 rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParserVisitor.java diff --git a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/.gitignore b/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/.gitignore new file mode 100644 index 000000000000..af0414392d4a --- /dev/null +++ b/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/.gitignore @@ -0,0 +1,5 @@ +# Files are generated by the build process +RustLexer.java +RustParser.java +RustParserBaseVisitor.java +RustParserVisitor.java diff --git a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustLexer.java b/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustLexer.java deleted file mode 100644 index ce501bde1c99..000000000000 --- a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustLexer.java +++ /dev/null @@ -1,1220 +0,0 @@ -// Generated from java-escape by ANTLR 4.11.1 -package org.netbeans.modules.rust.grammar.antlr4; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -// DO NOT MODIFY THIS FILE! -// This file is generated file from RustLexer.g4 at compile time! - - -import org.antlr.v4.runtime.Lexer; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.TokenStream; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.*; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) -public class RustLexer extends RustLexerBase { - static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - KW_AS=1, KW_BREAK=2, KW_CONST=3, KW_CONTINUE=4, KW_CRATE=5, KW_ELSE=6, - KW_ENUM=7, KW_EXTERN=8, KW_FALSE=9, KW_FN=10, KW_FOR=11, KW_IF=12, KW_IMPL=13, - KW_IN=14, KW_LET=15, KW_LOOP=16, KW_MATCH=17, KW_MOD=18, KW_MOVE=19, KW_MUT=20, - KW_PUB=21, KW_REF=22, KW_RETURN=23, KW_SELFVALUE=24, KW_SELFTYPE=25, KW_STATIC=26, - KW_STRUCT=27, KW_SUPER=28, KW_TRAIT=29, KW_TRUE=30, KW_TYPE=31, KW_UNSAFE=32, - KW_USE=33, KW_WHERE=34, KW_WHILE=35, KW_ASYNC=36, KW_AWAIT=37, KW_DYN=38, - KW_ABSTRACT=39, KW_BECOME=40, KW_BOX=41, KW_DO=42, KW_FINAL=43, KW_MACRO=44, - KW_OVERRIDE=45, KW_PRIV=46, KW_TYPEOF=47, KW_UNSIZED=48, KW_VIRTUAL=49, - KW_YIELD=50, KW_TRY=51, KW_UNION=52, KW_STATICLIFETIME=53, KW_MACRORULES=54, - KW_UNDERLINELIFETIME=55, KW_DOLLARCRATE=56, NON_KEYWORD_IDENTIFIER=57, - RAW_IDENTIFIER=58, LINE_COMMENT=59, INNER_BLOCK_DOC=60, BLOCK_COMMENT=61, - INNER_LINE_DOC=62, OUTER_LINE_DOC=63, SHEBANG=64, WHITESPACE=65, NEWLINE=66, - CHAR_LITERAL=67, STRING_LITERAL=68, RAW_STRING_LITERAL=69, BYTE_LITERAL=70, - BYTE_STRING_LITERAL=71, RAW_BYTE_STRING_LITERAL=72, INTEGER_LITERAL=73, - DEC_LITERAL=74, HEX_LITERAL=75, OCT_LITERAL=76, BIN_LITERAL=77, FLOAT_LITERAL=78, - LIFETIME_OR_LABEL=79, PLUS=80, MINUS=81, STAR=82, SLASH=83, PERCENT=84, - CARET=85, NOT=86, AND=87, OR=88, ANDAND=89, OROR=90, PLUSEQ=91, MINUSEQ=92, - STAREQ=93, SLASHEQ=94, PERCENTEQ=95, CARETEQ=96, ANDEQ=97, OREQ=98, SHLEQ=99, - SHREQ=100, EQ=101, EQEQ=102, NE=103, GT=104, LT=105, GE=106, LE=107, AT=108, - UNDERSCORE=109, DOT=110, DOTDOT=111, DOTDOTDOT=112, DOTDOTEQ=113, COMMA=114, - SEMI=115, COLON=116, PATHSEP=117, RARROW=118, FATARROW=119, POUND=120, - DOLLAR=121, QUESTION=122, LCURLYBRACE=123, RCURLYBRACE=124, LSQUAREBRACKET=125, - RSQUAREBRACKET=126, LPAREN=127, RPAREN=128, SINGLEQUOTE=129, DOUBLEQUOTE=130, - BACKSLASH=131; - public static final int - CHANNEL_COMMENT=2; - public static String[] channelNames = { - "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "CHANNEL_COMMENT" - }; - - public static String[] modeNames = { - "DEFAULT_MODE" - }; - - private static String[] makeRuleNames() { - return new String[] { - "KW_AS", "KW_BREAK", "KW_CONST", "KW_CONTINUE", "KW_CRATE", "KW_ELSE", - "KW_ENUM", "KW_EXTERN", "KW_FALSE", "KW_FN", "KW_FOR", "KW_IF", "KW_IMPL", - "KW_IN", "KW_LET", "KW_LOOP", "KW_MATCH", "KW_MOD", "KW_MOVE", "KW_MUT", - "KW_PUB", "KW_REF", "KW_RETURN", "KW_SELFVALUE", "KW_SELFTYPE", "KW_STATIC", - "KW_STRUCT", "KW_SUPER", "KW_TRAIT", "KW_TRUE", "KW_TYPE", "KW_UNSAFE", - "KW_USE", "KW_WHERE", "KW_WHILE", "KW_ASYNC", "KW_AWAIT", "KW_DYN", "KW_ABSTRACT", - "KW_BECOME", "KW_BOX", "KW_DO", "KW_FINAL", "KW_MACRO", "KW_OVERRIDE", - "KW_PRIV", "KW_TYPEOF", "KW_UNSIZED", "KW_VIRTUAL", "KW_YIELD", "KW_TRY", - "KW_UNION", "KW_STATICLIFETIME", "KW_MACRORULES", "KW_UNDERLINELIFETIME", - "KW_DOLLARCRATE", "NON_KEYWORD_IDENTIFIER", "XID_Start", "XID_Continue", - "UNICODE_OIDS", "UNICODE_OIDC", "RAW_IDENTIFIER", "LINE_COMMENT", "INNER_BLOCK_DOC", - "BLOCK_COMMENT", "INNER_LINE_DOC", "OUTER_LINE_DOC", "SHEBANG", "WHITESPACE", - "NEWLINE", "CHAR_LITERAL", "STRING_LITERAL", "RAW_STRING_LITERAL", "RAW_STRING_CONTENT", - "BYTE_LITERAL", "BYTE_STRING_LITERAL", "RAW_BYTE_STRING_LITERAL", "ASCII_ESCAPE", - "BYTE_ESCAPE", "COMMON_ESCAPE", "UNICODE_ESCAPE", "QUOTE_ESCAPE", "INTEGER_LITERAL", - "DEC_LITERAL", "HEX_LITERAL", "OCT_LITERAL", "BIN_LITERAL", "FLOAT_LITERAL", - "INTEGER_SUFFIX", "FLOAT_SUFFIX", "FLOAT_EXPONENT", "OCT_DIGIT", "DEC_DIGIT", - "HEX_DIGIT", "LIFETIME_OR_LABEL", "PLUS", "MINUS", "STAR", "SLASH", "PERCENT", - "CARET", "NOT", "AND", "OR", "ANDAND", "OROR", "PLUSEQ", "MINUSEQ", "STAREQ", - "SLASHEQ", "PERCENTEQ", "CARETEQ", "ANDEQ", "OREQ", "SHLEQ", "SHREQ", - "EQ", "EQEQ", "NE", "GT", "LT", "GE", "LE", "AT", "UNDERSCORE", "DOT", - "DOTDOT", "DOTDOTDOT", "DOTDOTEQ", "COMMA", "SEMI", "COLON", "PATHSEP", - "RARROW", "FATARROW", "POUND", "DOLLAR", "QUESTION", "LCURLYBRACE", "RCURLYBRACE", - "LSQUAREBRACKET", "RSQUAREBRACKET", "LPAREN", "RPAREN", "SINGLEQUOTE", - "DOUBLEQUOTE", "BACKSLASH" - }; - } - public static final String[] ruleNames = makeRuleNames(); - - private static String[] makeLiteralNames() { - return new String[] { - null, "'as'", "'break'", "'const'", "'continue'", "'crate'", "'else'", - "'enum'", "'extern'", "'false'", "'fn'", "'for'", "'if'", "'impl'", "'in'", - "'let'", "'loop'", "'match'", "'mod'", "'move'", "'mut'", "'pub'", "'ref'", - "'return'", "'self'", "'Self'", "'static'", "'struct'", "'super'", "'trait'", - "'true'", "'type'", "'unsafe'", "'use'", "'where'", "'while'", "'async'", - "'await'", "'dyn'", "'abstract'", "'become'", "'box'", "'do'", "'final'", - "'macro'", "'override'", "'priv'", "'typeof'", "'unsized'", "'virtual'", - "'yield'", "'try'", "'union'", "''static'", "'macro_rules'", "''_'", - "'$crate'", null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "'!'", "'&'", "'|'", - "'&&'", "'||'", "'+='", "'-='", "'*='", "'/='", "'%='", "'^='", "'&='", - "'|='", "'<<='", "'>>='", "'='", "'=='", "'!='", "'>'", "'<'", "'>='", - "'<='", "'@'", "'_'", "'.'", "'..'", "'...'", "'..='", "','", "';'", - "':'", "'::'", "'->'", "'=>'", "'#'", "'$'", "'?'", "'{'", "'}'", "'['", - "']'", "'('", "')'", "'''", "'\"'", "'\\'" - }; - } - private static final String[] _LITERAL_NAMES = makeLiteralNames(); - private static String[] makeSymbolicNames() { - return new String[] { - null, "KW_AS", "KW_BREAK", "KW_CONST", "KW_CONTINUE", "KW_CRATE", "KW_ELSE", - "KW_ENUM", "KW_EXTERN", "KW_FALSE", "KW_FN", "KW_FOR", "KW_IF", "KW_IMPL", - "KW_IN", "KW_LET", "KW_LOOP", "KW_MATCH", "KW_MOD", "KW_MOVE", "KW_MUT", - "KW_PUB", "KW_REF", "KW_RETURN", "KW_SELFVALUE", "KW_SELFTYPE", "KW_STATIC", - "KW_STRUCT", "KW_SUPER", "KW_TRAIT", "KW_TRUE", "KW_TYPE", "KW_UNSAFE", - "KW_USE", "KW_WHERE", "KW_WHILE", "KW_ASYNC", "KW_AWAIT", "KW_DYN", "KW_ABSTRACT", - "KW_BECOME", "KW_BOX", "KW_DO", "KW_FINAL", "KW_MACRO", "KW_OVERRIDE", - "KW_PRIV", "KW_TYPEOF", "KW_UNSIZED", "KW_VIRTUAL", "KW_YIELD", "KW_TRY", - "KW_UNION", "KW_STATICLIFETIME", "KW_MACRORULES", "KW_UNDERLINELIFETIME", - "KW_DOLLARCRATE", "NON_KEYWORD_IDENTIFIER", "RAW_IDENTIFIER", "LINE_COMMENT", - "INNER_BLOCK_DOC", "BLOCK_COMMENT", "INNER_LINE_DOC", "OUTER_LINE_DOC", - "SHEBANG", "WHITESPACE", "NEWLINE", "CHAR_LITERAL", "STRING_LITERAL", - "RAW_STRING_LITERAL", "BYTE_LITERAL", "BYTE_STRING_LITERAL", "RAW_BYTE_STRING_LITERAL", - "INTEGER_LITERAL", "DEC_LITERAL", "HEX_LITERAL", "OCT_LITERAL", "BIN_LITERAL", - "FLOAT_LITERAL", "LIFETIME_OR_LABEL", "PLUS", "MINUS", "STAR", "SLASH", - "PERCENT", "CARET", "NOT", "AND", "OR", "ANDAND", "OROR", "PLUSEQ", "MINUSEQ", - "STAREQ", "SLASHEQ", "PERCENTEQ", "CARETEQ", "ANDEQ", "OREQ", "SHLEQ", - "SHREQ", "EQ", "EQEQ", "NE", "GT", "LT", "GE", "LE", "AT", "UNDERSCORE", - "DOT", "DOTDOT", "DOTDOTDOT", "DOTDOTEQ", "COMMA", "SEMI", "COLON", "PATHSEP", - "RARROW", "FATARROW", "POUND", "DOLLAR", "QUESTION", "LCURLYBRACE", "RCURLYBRACE", - "LSQUAREBRACKET", "RSQUAREBRACKET", "LPAREN", "RPAREN", "SINGLEQUOTE", - "DOUBLEQUOTE", "BACKSLASH" - }; - } - private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - - public RustLexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - - @Override - public String getGrammarFileName() { return "RustLexer.g4"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public String[] getChannelNames() { return channelNames; } - - @Override - public String[] getModeNames() { return modeNames; } - - @Override - public ATN getATN() { return _ATN; } - - @Override - public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 67: - return SHEBANG_sempred((RuleContext)_localctx, predIndex); - case 87: - return FLOAT_LITERAL_sempred((RuleContext)_localctx, predIndex); - } - return true; - } - private boolean SHEBANG_sempred(RuleContext _localctx, int predIndex) { - switch (predIndex) { - case 0: - return this.SOF(); - } - return true; - } - private boolean FLOAT_LITERAL_sempred(RuleContext _localctx, int predIndex) { - switch (predIndex) { - case 1: - return this.floatLiteralPossible(); - case 2: - return this.floatDotPossible(); - } - return true; - } - - public static final String _serializedATN = - "\u0004\u0000\u0083\u047f\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ - "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ - "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ - "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ - "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ - "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ - "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ - "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ - "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ - "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ - "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ - "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ - "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ - "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ - "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ - "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ - ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ - "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ - "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ - "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ - "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ - "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ - "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ - "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ - "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ - "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ - "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ - "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ - "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ - "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ - "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ - "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ - "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ - "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ - "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ - "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ - "\u0002\u0092\u0007\u0092\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0001"+ - "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002"+ - "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0003"+ - "\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+ - "\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ - "\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005"+ - "\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006"+ - "\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007"+ - "\u0001\u0007\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\t\u0001"+ - "\t\u0001\t\u0001\n\u0001\n\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001"+ - "\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r"+ - "\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f"+ - "\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010"+ - "\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0011"+ - "\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012"+ - "\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0014\u0001\u0014"+ - "\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015"+ - "\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016"+ - "\u0001\u0016\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017"+ - "\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0019"+ - "\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ - "\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a"+ - "\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b"+ - "\u0001\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"+ - "\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d"+ - "\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001f"+ - "\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f"+ - "\u0001 \u0001 \u0001 \u0001 \u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+ - "!\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001#\u0001#\u0001"+ - "#\u0001#\u0001#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001"+ - "%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+ - "&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001"+ - "\'\u0001(\u0001(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001*\u0001*\u0001"+ - "*\u0001*\u0001*\u0001*\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001"+ - ",\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001-\u0001"+ - "-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001"+ - ".\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u0001/\u00010\u0001"+ - "0\u00010\u00010\u00010\u00010\u00010\u00010\u00011\u00011\u00011\u0001"+ - "1\u00011\u00011\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u0001"+ - "3\u00013\u00013\u00014\u00014\u00014\u00014\u00014\u00014\u00014\u0001"+ - "4\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u0001"+ - "5\u00015\u00015\u00016\u00016\u00016\u00017\u00017\u00017\u00017\u0001"+ - "7\u00017\u00017\u00018\u00018\u00058\u0267\b8\n8\f8\u026a\t8\u00018\u0001"+ - "8\u00048\u026e\b8\u000b8\f8\u026f\u00038\u0272\b8\u00019\u00019\u0003"+ - "9\u0276\b9\u0001:\u0001:\u0001:\u0003:\u027b\b:\u0001;\u0001;\u0001<\u0001"+ - "<\u0001=\u0001=\u0001=\u0001=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001"+ - ">\u0001>\u0003>\u028c\b>\u0001>\u0005>\u028f\b>\n>\f>\u0292\t>\u0001>"+ - "\u0001>\u0003>\u0296\b>\u0001>\u0001>\u0001?\u0001?\u0001?\u0001?\u0001"+ - "?\u0001?\u0005?\u02a0\b?\n?\f?\u02a3\t?\u0001?\u0001?\u0001?\u0001?\u0001"+ - "?\u0001@\u0001@\u0001@\u0001@\u0001@\u0005@\u02af\b@\n@\f@\u02b2\t@\u0001"+ - "@\u0001@\u0001@\u0001@\u0001@\u0001A\u0001A\u0001A\u0001A\u0001A\u0005"+ - "A\u02be\bA\nA\fA\u02c1\tA\u0001A\u0001A\u0001B\u0001B\u0001B\u0001B\u0001"+ - "B\u0001B\u0005B\u02cb\bB\nB\fB\u02ce\tB\u0003B\u02d0\bB\u0001B\u0001B"+ - "\u0001C\u0001C\u0003C\u02d6\bC\u0001C\u0001C\u0001C\u0001C\u0005C\u02dc"+ - "\bC\nC\fC\u02df\tC\u0001C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001E\u0001"+ - "E\u0001E\u0003E\u02ea\bE\u0001E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001"+ - "F\u0003F\u02f3\bF\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ - "G\u0001G\u0001G\u0005G\u02ff\bG\nG\fG\u0302\tG\u0001G\u0003G\u0305\bG"+ - "\u0001H\u0001H\u0001H\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0005"+ - "I\u0310\bI\nI\fI\u0313\tI\u0001I\u0003I\u0316\bI\u0001J\u0001J\u0001J"+ - "\u0001J\u0001J\u0001J\u0003J\u031e\bJ\u0001J\u0001J\u0001K\u0001K\u0001"+ - "K\u0001K\u0001K\u0001K\u0005K\u0328\bK\nK\fK\u032b\tK\u0001K\u0001K\u0001"+ - "L\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0003M\u033b\bM\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001"+ - "N\u0003N\u0344\bN\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001"+ - "P\u0001P\u0003P\u034f\bP\u0001P\u0003P\u0352\bP\u0001P\u0003P\u0355\b"+ - "P\u0001P\u0003P\u0358\bP\u0001P\u0003P\u035b\bP\u0001P\u0001P\u0001Q\u0001"+ - "Q\u0001Q\u0001R\u0001R\u0001R\u0001R\u0003R\u0366\bR\u0001R\u0003R\u0369"+ - "\bR\u0001S\u0001S\u0001S\u0005S\u036e\bS\nS\fS\u0371\tS\u0001T\u0001T"+ - "\u0001T\u0001T\u0005T\u0377\bT\nT\fT\u037a\tT\u0001T\u0001T\u0001T\u0005"+ - "T\u037f\bT\nT\fT\u0382\tT\u0001U\u0001U\u0001U\u0001U\u0005U\u0388\bU"+ - "\nU\fU\u038b\tU\u0001U\u0001U\u0001U\u0005U\u0390\bU\nU\fU\u0393\tU\u0001"+ - "V\u0001V\u0001V\u0001V\u0005V\u0399\bV\nV\fV\u039c\tV\u0001V\u0001V\u0005"+ - "V\u03a0\bV\nV\fV\u03a3\tV\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001"+ - "W\u0001W\u0003W\u03ad\bW\u0001W\u0003W\u03b0\bW\u0001W\u0003W\u03b3\b"+ - "W\u0003W\u03b5\bW\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ - "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ - "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ - "X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+ - "X\u0001X\u0001X\u0003X\u03df\bX\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ - "Y\u0003Y\u03e7\bY\u0001Z\u0001Z\u0003Z\u03eb\bZ\u0001Z\u0005Z\u03ee\b"+ - "Z\nZ\fZ\u03f1\tZ\u0001Z\u0001Z\u0001[\u0001[\u0001\\\u0001\\\u0001]\u0001"+ - "]\u0001^\u0001^\u0001^\u0001_\u0001_\u0001`\u0001`\u0001a\u0001a\u0001"+ - "b\u0001b\u0001c\u0001c\u0001d\u0001d\u0001e\u0001e\u0001f\u0001f\u0001"+ - "g\u0001g\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001j\u0001j\u0001"+ - "j\u0001k\u0001k\u0001k\u0001l\u0001l\u0001l\u0001m\u0001m\u0001m\u0001"+ - "n\u0001n\u0001n\u0001o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001q\u0001"+ - "q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001s\u0001s\u0001s\u0001s\u0001"+ - "t\u0001t\u0001u\u0001u\u0001u\u0001v\u0001v\u0001v\u0001w\u0001w\u0001"+ - "x\u0001x\u0001y\u0001y\u0001y\u0001z\u0001z\u0001z\u0001{\u0001{\u0001"+ - "|\u0001|\u0001}\u0001}\u0001~\u0001~\u0001~\u0001\u007f\u0001\u007f\u0001"+ - "\u007f\u0001\u007f\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001"+ - "\u0081\u0001\u0081\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083\u0001"+ - "\u0084\u0001\u0084\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0001"+ - "\u0086\u0001\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0088\u0001"+ - "\u0088\u0001\u0089\u0001\u0089\u0001\u008a\u0001\u008a\u0001\u008b\u0001"+ - "\u008b\u0001\u008c\u0001\u008c\u0001\u008d\u0001\u008d\u0001\u008e\u0001"+ - "\u008e\u0001\u008f\u0001\u008f\u0001\u0090\u0001\u0090\u0001\u0091\u0001"+ - "\u0091\u0001\u0092\u0001\u0092\u0004\u02a1\u02b0\u0300\u0311\u0000\u0093"+ - "\u0001\u0001\u0003\u0002\u0005\u0003\u0007\u0004\t\u0005\u000b\u0006\r"+ - "\u0007\u000f\b\u0011\t\u0013\n\u0015\u000b\u0017\f\u0019\r\u001b\u000e"+ - "\u001d\u000f\u001f\u0010!\u0011#\u0012%\u0013\'\u0014)\u0015+\u0016-\u0017"+ - "/\u00181\u00193\u001a5\u001b7\u001c9\u001d;\u001e=\u001f? A!C\"E#G$I%"+ - "K&M\'O(Q)S*U+W,Y-[.]/_0a1c2e3g4i5k6m7o8q9s\u0000u\u0000w\u0000y\u0000"+ - "{:};\u007f<\u0081=\u0083>\u0085?\u0087@\u0089A\u008bB\u008dC\u008fD\u0091"+ - "E\u0093\u0000\u0095F\u0097G\u0099H\u009b\u0000\u009d\u0000\u009f\u0000"+ - "\u00a1\u0000\u00a3\u0000\u00a5I\u00a7J\u00a9K\u00abL\u00adM\u00afN\u00b1"+ - "\u0000\u00b3\u0000\u00b5\u0000\u00b7\u0000\u00b9\u0000\u00bb\u0000\u00bd"+ - "O\u00bfP\u00c1Q\u00c3R\u00c5S\u00c7T\u00c9U\u00cbV\u00cdW\u00cfX\u00d1"+ - "Y\u00d3Z\u00d5[\u00d7\\\u00d9]\u00db^\u00dd_\u00df`\u00e1a\u00e3b\u00e5"+ - "c\u00e7d\u00e9e\u00ebf\u00edg\u00efh\u00f1i\u00f3j\u00f5k\u00f7l\u00f9"+ - "m\u00fbn\u00fdo\u00ffp\u0101q\u0103r\u0105s\u0107t\u0109u\u010bv\u010d"+ - "w\u010fx\u0111y\u0113z\u0115{\u0117|\u0119}\u011b~\u011d\u007f\u011f\u0080"+ - "\u0121\u0081\u0123\u0082\u0125\u0083\u0001\u0000\u0013\u028b\u0000AZa"+ - "z\u00aa\u00aa\u00b5\u00b5\u00ba\u00ba\u00c0\u00d6\u00d8\u00f6\u00f8\u02c1"+ - "\u02c6\u02d1\u02e0\u02e4\u02ec\u02ec\u02ee\u02ee\u0370\u0374\u0376\u0377"+ - "\u037a\u037d\u037f\u037f\u0386\u0386\u0388\u038a\u038c\u038c\u038e\u03a1"+ - "\u03a3\u03f5\u03f7\u0481\u048a\u052f\u0531\u0556\u0559\u0559\u0560\u0588"+ - "\u05d0\u05ea\u05ef\u05f2\u0620\u064a\u066e\u066f\u0671\u06d3\u06d5\u06d5"+ - "\u06e5\u06e6\u06ee\u06ef\u06fa\u06fc\u06ff\u06ff\u0710\u0710\u0712\u072f"+ - "\u074d\u07a5\u07b1\u07b1\u07ca\u07ea\u07f4\u07f5\u07fa\u07fa\u0800\u0815"+ - "\u081a\u081a\u0824\u0824\u0828\u0828\u0840\u0858\u0860\u086a\u0870\u0887"+ - "\u0889\u088e\u08a0\u08c9\u0904\u0939\u093d\u093d\u0950\u0950\u0958\u0961"+ - "\u0971\u0980\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2"+ - "\u09b6\u09b9\u09bd\u09bd\u09ce\u09ce\u09dc\u09dd\u09df\u09e1\u09f0\u09f1"+ - "\u09fc\u09fc\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33"+ - "\u0a35\u0a36\u0a38\u0a39\u0a59\u0a5c\u0a5e\u0a5e\u0a72\u0a74\u0a85\u0a8d"+ - "\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abd\u0abd"+ - "\u0ad0\u0ad0\u0ae0\u0ae1\u0af9\u0af9\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28"+ - "\u0b2a\u0b30\u0b32\u0b33\u0b35\u0b39\u0b3d\u0b3d\u0b5c\u0b5d\u0b5f\u0b61"+ - "\u0b71\u0b71\u0b83\u0b83\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a"+ - "\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb9\u0bd0\u0bd0"+ - "\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c39\u0c3d\u0c3d\u0c58\u0c5a"+ - "\u0c5d\u0c5d\u0c60\u0c61\u0c80\u0c80\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8"+ - "\u0caa\u0cb3\u0cb5\u0cb9\u0cbd\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2"+ - "\u0d04\u0d0c\u0d0e\u0d10\u0d12\u0d3a\u0d3d\u0d3d\u0d4e\u0d4e\u0d54\u0d56"+ - "\u0d5f\u0d61\u0d7a\u0d7f\u0d85\u0d96\u0d9a\u0db1\u0db3\u0dbb\u0dbd\u0dbd"+ - "\u0dc0\u0dc6\u0e01\u0e30\u0e32\u0e33\u0e40\u0e46\u0e81\u0e82\u0e84\u0e84"+ - "\u0e86\u0e8a\u0e8c\u0ea3\u0ea5\u0ea5\u0ea7\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd"+ - "\u0ec0\u0ec4\u0ec6\u0ec6\u0edc\u0edf\u0f00\u0f00\u0f40\u0f47\u0f49\u0f6c"+ - "\u0f88\u0f8c\u1000\u102a\u103f\u103f\u1050\u1055\u105a\u105d\u1061\u1061"+ - "\u1065\u1066\u106e\u1070\u1075\u1081\u108e\u108e\u10a0\u10c5\u10c7\u10c7"+ - "\u10cd\u10cd\u10d0\u10fa\u10fc\u1248\u124a\u124d\u1250\u1256\u1258\u1258"+ - "\u125a\u125d\u1260\u1288\u128a\u128d\u1290\u12b0\u12b2\u12b5\u12b8\u12be"+ - "\u12c0\u12c0\u12c2\u12c5\u12c8\u12d6\u12d8\u1310\u1312\u1315\u1318\u135a"+ - "\u1380\u138f\u13a0\u13f5\u13f8\u13fd\u1401\u166c\u166f\u167f\u1681\u169a"+ - "\u16a0\u16ea\u16ee\u16f8\u1700\u1711\u171f\u1731\u1740\u1751\u1760\u176c"+ - "\u176e\u1770\u1780\u17b3\u17d7\u17d7\u17dc\u17dc\u1820\u1878\u1880\u1884"+ - "\u1887\u18a8\u18aa\u18aa\u18b0\u18f5\u1900\u191e\u1950\u196d\u1970\u1974"+ - "\u1980\u19ab\u19b0\u19c9\u1a00\u1a16\u1a20\u1a54\u1aa7\u1aa7\u1b05\u1b33"+ - "\u1b45\u1b4c\u1b83\u1ba0\u1bae\u1baf\u1bba\u1be5\u1c00\u1c23\u1c4d\u1c4f"+ - "\u1c5a\u1c7d\u1c80\u1c88\u1c90\u1cba\u1cbd\u1cbf\u1ce9\u1cec\u1cee\u1cf3"+ - "\u1cf5\u1cf6\u1cfa\u1cfa\u1d00\u1dbf\u1e00\u1f15\u1f18\u1f1d\u1f20\u1f45"+ - "\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d"+ - "\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3"+ - "\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u2071\u2071\u207f\u207f"+ - "\u2090\u209c\u2102\u2102\u2107\u2107\u210a\u2113\u2115\u2115\u2119\u211d"+ - "\u2124\u2124\u2126\u2126\u2128\u2128\u212a\u212d\u212f\u2139\u213c\u213f"+ - "\u2145\u2149\u214e\u214e\u2160\u2188\u2c00\u2ce4\u2ceb\u2cee\u2cf2\u2cf3"+ - "\u2d00\u2d25\u2d27\u2d27\u2d2d\u2d2d\u2d30\u2d67\u2d6f\u2d6f\u2d80\u2d96"+ - "\u2da0\u2da6\u2da8\u2dae\u2db0\u2db6\u2db8\u2dbe\u2dc0\u2dc6\u2dc8\u2dce"+ - "\u2dd0\u2dd6\u2dd8\u2dde\u2e2f\u2e2f\u3005\u3007\u3021\u3029\u3031\u3035"+ - "\u3038\u303c\u3041\u3096\u309d\u309f\u30a1\u30fa\u30fc\u30ff\u3105\u312f"+ - "\u3131\u318e\u31a0\u31bf\u31f0\u31ff\u3400\u4dbf\u4e00\u8000\ua48c\u8000"+ - "\ua4d0\u8000\ua4fd\u8000\ua500\u8000\ua60c\u8000\ua610\u8000\ua61f\u8000"+ - "\ua62a\u8000\ua62b\u8000\ua640\u8000\ua66e\u8000\ua67f\u8000\ua69d\u8000"+ - "\ua6a0\u8000\ua6ef\u8000\ua717\u8000\ua71f\u8000\ua722\u8000\ua788\u8000"+ - "\ua78b\u8000\ua7ca\u8000\ua7d0\u8000\ua7d1\u8000\ua7d3\u8000\ua7d3\u8000"+ - "\ua7d5\u8000\ua7d9\u8000\ua7f2\u8000\ua801\u8000\ua803\u8000\ua805\u8000"+ - "\ua807\u8000\ua80a\u8000\ua80c\u8000\ua822\u8000\ua840\u8000\ua873\u8000"+ - "\ua882\u8000\ua8b3\u8000\ua8f2\u8000\ua8f7\u8000\ua8fb\u8000\ua8fb\u8000"+ - "\ua8fd\u8000\ua8fe\u8000\ua90a\u8000\ua925\u8000\ua930\u8000\ua946\u8000"+ - "\ua960\u8000\ua97c\u8000\ua984\u8000\ua9b2\u8000\ua9cf\u8000\ua9cf\u8000"+ - "\ua9e0\u8000\ua9e4\u8000\ua9e6\u8000\ua9ef\u8000\ua9fa\u8000\ua9fe\u8000"+ - "\uaa00\u8000\uaa28\u8000\uaa40\u8000\uaa42\u8000\uaa44\u8000\uaa4b\u8000"+ - "\uaa60\u8000\uaa76\u8000\uaa7a\u8000\uaa7a\u8000\uaa7e\u8000\uaaaf\u8000"+ - "\uaab1\u8000\uaab1\u8000\uaab5\u8000\uaab6\u8000\uaab9\u8000\uaabd\u8000"+ - "\uaac0\u8000\uaac0\u8000\uaac2\u8000\uaac2\u8000\uaadb\u8000\uaadd\u8000"+ - "\uaae0\u8000\uaaea\u8000\uaaf2\u8000\uaaf4\u8000\uab01\u8000\uab06\u8000"+ - "\uab09\u8000\uab0e\u8000\uab11\u8000\uab16\u8000\uab20\u8000\uab26\u8000"+ - "\uab28\u8000\uab2e\u8000\uab30\u8000\uab5a\u8000\uab5c\u8000\uab69\u8000"+ - "\uab70\u8000\uabe2\u8000\uac00\u8000\ud7a3\u8000\ud7b0\u8000\ud7c6\u8000"+ - "\ud7cb\u8000\ud7fb\u8000\uf900\u8000\ufa6d\u8000\ufa70\u8000\ufad9\u8000"+ - "\ufb00\u8000\ufb06\u8000\ufb13\u8000\ufb17\u8000\ufb1d\u8000\ufb1d\u8000"+ - "\ufb1f\u8000\ufb28\u8000\ufb2a\u8000\ufb36\u8000\ufb38\u8000\ufb3c\u8000"+ - "\ufb3e\u8000\ufb3e\u8000\ufb40\u8000\ufb41\u8000\ufb43\u8000\ufb44\u8000"+ - "\ufb46\u8000\ufbb1\u8000\ufbd3\u8000\ufd3d\u8000\ufd50\u8000\ufd8f\u8000"+ - "\ufd92\u8000\ufdc7\u8000\ufdf0\u8000\ufdfb\u8000\ufe70\u8000\ufe74\u8000"+ - "\ufe76\u8000\ufefc\u8000\uff21\u8000\uff3a\u8000\uff41\u8000\uff5a\u8000"+ - "\uff66\u8000\uffbe\u8000\uffc2\u8000\uffc7\u8000\uffca\u8000\uffcf\u8000"+ - "\uffd2\u8000\uffd7\u8000\uffda\u8000\uffdc\u8001\u0000\u8001\u000b\u8001"+ - "\r\u8001&\u8001(\u8001:\u8001<\u8001=\u8001?\u8001M\u8001P\u8001]\u8001"+ - "\u0080\u8001\u00fa\u8001\u0140\u8001\u0174\u8001\u0280\u8001\u029c\u8001"+ - "\u02a0\u8001\u02d0\u8001\u0300\u8001\u031f\u8001\u032d\u8001\u034a\u8001"+ - "\u0350\u8001\u0375\u8001\u0380\u8001\u039d\u8001\u03a0\u8001\u03c3\u8001"+ - "\u03c8\u8001\u03cf\u8001\u03d1\u8001\u03d5\u8001\u0400\u8001\u049d\u8001"+ - "\u04b0\u8001\u04d3\u8001\u04d8\u8001\u04fb\u8001\u0500\u8001\u0527\u8001"+ - "\u0530\u8001\u0563\u8001\u0570\u8001\u057a\u8001\u057c\u8001\u058a\u8001"+ - "\u058c\u8001\u0592\u8001\u0594\u8001\u0595\u8001\u0597\u8001\u05a1\u8001"+ - "\u05a3\u8001\u05b1\u8001\u05b3\u8001\u05b9\u8001\u05bb\u8001\u05bc\u8001"+ - "\u0600\u8001\u0736\u8001\u0740\u8001\u0755\u8001\u0760\u8001\u0767\u8001"+ - "\u0780\u8001\u0785\u8001\u0787\u8001\u07b0\u8001\u07b2\u8001\u07ba\u8001"+ - "\u0800\u8001\u0805\u8001\u0808\u8001\u0808\u8001\u080a\u8001\u0835\u8001"+ - "\u0837\u8001\u0838\u8001\u083c\u8001\u083c\u8001\u083f\u8001\u0855\u8001"+ - "\u0860\u8001\u0876\u8001\u0880\u8001\u089e\u8001\u08e0\u8001\u08f2\u8001"+ - "\u08f4\u8001\u08f5\u8001\u0900\u8001\u0915\u8001\u0920\u8001\u0939\u8001"+ - "\u0980\u8001\u09b7\u8001\u09be\u8001\u09bf\u8001\u0a00\u8001\u0a00\u8001"+ - "\u0a10\u8001\u0a13\u8001\u0a15\u8001\u0a17\u8001\u0a19\u8001\u0a35\u8001"+ - "\u0a60\u8001\u0a7c\u8001\u0a80\u8001\u0a9c\u8001\u0ac0\u8001\u0ac7\u8001"+ - "\u0ac9\u8001\u0ae4\u8001\u0b00\u8001\u0b35\u8001\u0b40\u8001\u0b55\u8001"+ - "\u0b60\u8001\u0b72\u8001\u0b80\u8001\u0b91\u8001\u0c00\u8001\u0c48\u8001"+ - "\u0c80\u8001\u0cb2\u8001\u0cc0\u8001\u0cf2\u8001\u0d00\u8001\u0d23\u8001"+ - "\u0e80\u8001\u0ea9\u8001\u0eb0\u8001\u0eb1\u8001\u0f00\u8001\u0f1c\u8001"+ - "\u0f27\u8001\u0f27\u8001\u0f30\u8001\u0f45\u8001\u0f70\u8001\u0f81\u8001"+ - "\u0fb0\u8001\u0fc4\u8001\u0fe0\u8001\u0ff6\u8001\u1003\u8001\u1037\u8001"+ - "\u1071\u8001\u1072\u8001\u1075\u8001\u1075\u8001\u1083\u8001\u10af\u8001"+ - "\u10d0\u8001\u10e8\u8001\u1103\u8001\u1126\u8001\u1144\u8001\u1144\u8001"+ - "\u1147\u8001\u1147\u8001\u1150\u8001\u1172\u8001\u1176\u8001\u1176\u8001"+ - "\u1183\u8001\u11b2\u8001\u11c1\u8001\u11c4\u8001\u11da\u8001\u11da\u8001"+ - "\u11dc\u8001\u11dc\u8001\u1200\u8001\u1211\u8001\u1213\u8001\u122b\u8001"+ - "\u1280\u8001\u1286\u8001\u1288\u8001\u1288\u8001\u128a\u8001\u128d\u8001"+ - "\u128f\u8001\u129d\u8001\u129f\u8001\u12a8\u8001\u12b0\u8001\u12de\u8001"+ - "\u1305\u8001\u130c\u8001\u130f\u8001\u1310\u8001\u1313\u8001\u1328\u8001"+ - "\u132a\u8001\u1330\u8001\u1332\u8001\u1333\u8001\u1335\u8001\u1339\u8001"+ - "\u133d\u8001\u133d\u8001\u1350\u8001\u1350\u8001\u135d\u8001\u1361\u8001"+ - "\u1400\u8001\u1434\u8001\u1447\u8001\u144a\u8001\u145f\u8001\u1461\u8001"+ - "\u1480\u8001\u14af\u8001\u14c4\u8001\u14c5\u8001\u14c7\u8001\u14c7\u8001"+ - "\u1580\u8001\u15ae\u8001\u15d8\u8001\u15db\u8001\u1600\u8001\u162f\u8001"+ - "\u1644\u8001\u1644\u8001\u1680\u8001\u16aa\u8001\u16b8\u8001\u16b8\u8001"+ - "\u1700\u8001\u171a\u8001\u1740\u8001\u1746\u8001\u1800\u8001\u182b\u8001"+ - "\u18a0\u8001\u18df\u8001\u18ff\u8001\u1906\u8001\u1909\u8001\u1909\u8001"+ - "\u190c\u8001\u1913\u8001\u1915\u8001\u1916\u8001\u1918\u8001\u192f\u8001"+ - "\u193f\u8001\u193f\u8001\u1941\u8001\u1941\u8001\u19a0\u8001\u19a7\u8001"+ - "\u19aa\u8001\u19d0\u8001\u19e1\u8001\u19e1\u8001\u19e3\u8001\u19e3\u8001"+ - "\u1a00\u8001\u1a00\u8001\u1a0b\u8001\u1a32\u8001\u1a3a\u8001\u1a3a\u8001"+ - "\u1a50\u8001\u1a50\u8001\u1a5c\u8001\u1a89\u8001\u1a9d\u8001\u1a9d\u8001"+ - "\u1ab0\u8001\u1af8\u8001\u1c00\u8001\u1c08\u8001\u1c0a\u8001\u1c2e\u8001"+ - "\u1c40\u8001\u1c40\u8001\u1c72\u8001\u1c8f\u8001\u1d00\u8001\u1d06\u8001"+ - "\u1d08\u8001\u1d09\u8001\u1d0b\u8001\u1d30\u8001\u1d46\u8001\u1d46\u8001"+ - "\u1d60\u8001\u1d65\u8001\u1d67\u8001\u1d68\u8001\u1d6a\u8001\u1d89\u8001"+ - "\u1d98\u8001\u1d98\u8001\u1ee0\u8001\u1ef2\u8001\u1fb0\u8001\u1fb0\u8001"+ - "\u2000\u8001\u2399\u8001\u2400\u8001\u246e\u8001\u2480\u8001\u2543\u8001"+ - "\u2f90\u8001\u2ff0\u8001\u3000\u8001\u342e\u8001\u4400\u8001\u4646\u8001"+ - "\u6800\u8001\u6a38\u8001\u6a40\u8001\u6a5e\u8001\u6a70\u8001\u6abe\u8001"+ - "\u6ad0\u8001\u6aed\u8001\u6b00\u8001\u6b2f\u8001\u6b40\u8001\u6b43\u8001"+ - "\u6b63\u8001\u6b77\u8001\u6b7d\u8001\u6b8f\u8001\u6e40\u8001\u6e7f\u8001"+ - "\u6f00\u8001\u6f4a\u8001\u6f50\u8001\u6f50\u8001\u6f93\u8001\u6f9f\u8001"+ - "\u6fe0\u8001\u6fe1\u8001\u6fe3\u8001\u6fe3\u8001\u7000\u8001\u87f7\u8001"+ - "\u8800\u8001\u8cd5\u8001\u8d00\u8001\u8d08\u8001\uaff0\u8001\uaff3\u8001"+ - "\uaff5\u8001\uaffb\u8001\uaffd\u8001\uaffe\u8001\ub000\u8001\ub122\u8001"+ - "\ub150\u8001\ub152\u8001\ub164\u8001\ub167\u8001\ub170\u8001\ub2fb\u8001"+ - "\ubc00\u8001\ubc6a\u8001\ubc70\u8001\ubc7c\u8001\ubc80\u8001\ubc88\u8001"+ - "\ubc90\u8001\ubc99\u8001\ud400\u8001\ud454\u8001\ud456\u8001\ud49c\u8001"+ - "\ud49e\u8001\ud49f\u8001\ud4a2\u8001\ud4a2\u8001\ud4a5\u8001\ud4a6\u8001"+ - "\ud4a9\u8001\ud4ac\u8001\ud4ae\u8001\ud4b9\u8001\ud4bb\u8001\ud4bb\u8001"+ - "\ud4bd\u8001\ud4c3\u8001\ud4c5\u8001\ud505\u8001\ud507\u8001\ud50a\u8001"+ - "\ud50d\u8001\ud514\u8001\ud516\u8001\ud51c\u8001\ud51e\u8001\ud539\u8001"+ - "\ud53b\u8001\ud53e\u8001\ud540\u8001\ud544\u8001\ud546\u8001\ud546\u8001"+ - "\ud54a\u8001\ud550\u8001\ud552\u8001\ud6a5\u8001\ud6a8\u8001\ud6c0\u8001"+ - "\ud6c2\u8001\ud6da\u8001\ud6dc\u8001\ud6fa\u8001\ud6fc\u8001\ud714\u8001"+ - "\ud716\u8001\ud734\u8001\ud736\u8001\ud74e\u8001\ud750\u8001\ud76e\u8001"+ - "\ud770\u8001\ud788\u8001\ud78a\u8001\ud7a8\u8001\ud7aa\u8001\ud7c2\u8001"+ - "\ud7c4\u8001\ud7cb\u8001\udf00\u8001\udf1e\u8001\ue100\u8001\ue12c\u8001"+ - "\ue137\u8001\ue13d\u8001\ue14e\u8001\ue14e\u8001\ue290\u8001\ue2ad\u8001"+ - "\ue2c0\u8001\ue2eb\u8001\ue7e0\u8001\ue7e6\u8001\ue7e8\u8001\ue7eb\u8001"+ - "\ue7ed\u8001\ue7ee\u8001\ue7f0\u8001\ue7fe\u8001\ue800\u8001\ue8c4\u8001"+ - "\ue900\u8001\ue943\u8001\ue94b\u8001\ue94b\u8001\uee00\u8001\uee03\u8001"+ - "\uee05\u8001\uee1f\u8001\uee21\u8001\uee22\u8001\uee24\u8001\uee24\u8001"+ - "\uee27\u8001\uee27\u8001\uee29\u8001\uee32\u8001\uee34\u8001\uee37\u8001"+ - "\uee39\u8001\uee39\u8001\uee3b\u8001\uee3b\u8001\uee42\u8001\uee42\u8001"+ - "\uee47\u8001\uee47\u8001\uee49\u8001\uee49\u8001\uee4b\u8001\uee4b\u8001"+ - "\uee4d\u8001\uee4f\u8001\uee51\u8001\uee52\u8001\uee54\u8001\uee54\u8001"+ - "\uee57\u8001\uee57\u8001\uee59\u8001\uee59\u8001\uee5b\u8001\uee5b\u8001"+ - "\uee5d\u8001\uee5d\u8001\uee5f\u8001\uee5f\u8001\uee61\u8001\uee62\u8001"+ - "\uee64\u8001\uee64\u8001\uee67\u8001\uee6a\u8001\uee6c\u8001\uee72\u8001"+ - "\uee74\u8001\uee77\u8001\uee79\u8001\uee7c\u8001\uee7e\u8001\uee7e\u8001"+ - "\uee80\u8001\uee89\u8001\uee8b\u8001\uee9b\u8001\ueea1\u8001\ueea3\u8001"+ - "\ueea5\u8001\ueea9\u8001\ueeab\u8001\ueebb\u8002\u0000\u8002\ua6df\u8002"+ - "\ua700\u8002\ub738\u8002\ub740\u8002\ub81d\u8002\ub820\u8002\ucea1\u8002"+ - "\uceb0\u8002\uebe0\u8002\uf800\u8002\ufa1d\u8003\u0000\u8003\u134a\u0168"+ - "\u000009__\u0300\u036f\u0483\u0487\u0591\u05bd\u05bf\u05bf\u05c1\u05c2"+ - "\u05c4\u05c5\u05c7\u05c7\u0610\u061a\u064b\u0669\u0670\u0670\u06d6\u06dc"+ - "\u06df\u06e4\u06e7\u06e8\u06ea\u06ed\u06f0\u06f9\u0711\u0711\u0730\u074a"+ - "\u07a6\u07b0\u07c0\u07c9\u07eb\u07f3\u07fd\u07fd\u0816\u0819\u081b\u0823"+ - "\u0825\u0827\u0829\u082d\u0859\u085b\u0898\u089f\u08ca\u08e1\u08e3\u0903"+ - "\u093a\u093c\u093e\u094f\u0951\u0957\u0962\u0963\u0966\u096f\u0981\u0983"+ - "\u09bc\u09bc\u09be\u09c4\u09c7\u09c8\u09cb\u09cd\u09d7\u09d7\u09e2\u09e3"+ - "\u09e6\u09ef\u09fe\u09fe\u0a01\u0a03\u0a3c\u0a3c\u0a3e\u0a42\u0a47\u0a48"+ - "\u0a4b\u0a4d\u0a51\u0a51\u0a66\u0a71\u0a75\u0a75\u0a81\u0a83\u0abc\u0abc"+ - "\u0abe\u0ac5\u0ac7\u0ac9\u0acb\u0acd\u0ae2\u0ae3\u0ae6\u0aef\u0afa\u0aff"+ - "\u0b01\u0b03\u0b3c\u0b3c\u0b3e\u0b44\u0b47\u0b48\u0b4b\u0b4d\u0b55\u0b57"+ - "\u0b62\u0b63\u0b66\u0b6f\u0b82\u0b82\u0bbe\u0bc2\u0bc6\u0bc8\u0bca\u0bcd"+ - "\u0bd7\u0bd7\u0be6\u0bef\u0c00\u0c04\u0c3c\u0c3c\u0c3e\u0c44\u0c46\u0c48"+ - "\u0c4a\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66\u0c6f\u0c81\u0c83\u0cbc\u0cbc"+ - "\u0cbe\u0cc4\u0cc6\u0cc8\u0cca\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6\u0cef"+ - "\u0d00\u0d03\u0d3b\u0d3c\u0d3e\u0d44\u0d46\u0d48\u0d4a\u0d4d\u0d57\u0d57"+ - "\u0d62\u0d63\u0d66\u0d6f\u0d81\u0d83\u0dca\u0dca\u0dcf\u0dd4\u0dd6\u0dd6"+ - "\u0dd8\u0ddf\u0de6\u0def\u0df2\u0df3\u0e31\u0e31\u0e34\u0e3a\u0e47\u0e4e"+ - "\u0e50\u0e59\u0eb1\u0eb1\u0eb4\u0ebc\u0ec8\u0ecd\u0ed0\u0ed9\u0f18\u0f19"+ - "\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39\u0f39\u0f3e\u0f3f\u0f71\u0f84"+ - "\u0f86\u0f87\u0f8d\u0f97\u0f99\u0fbc\u0fc6\u0fc6\u102b\u103e\u1040\u1049"+ - "\u1056\u1059\u105e\u1060\u1062\u1064\u1067\u106d\u1071\u1074\u1082\u108d"+ - "\u108f\u109d\u135d\u135f\u1712\u1715\u1732\u1734\u1752\u1753\u1772\u1773"+ - "\u17b4\u17d3\u17dd\u17dd\u17e0\u17e9\u180b\u180d\u180f\u1819\u1885\u1886"+ - "\u18a9\u18a9\u1920\u192b\u1930\u193b\u1946\u194f\u19d0\u19d9\u1a17\u1a1b"+ - "\u1a55\u1a5e\u1a60\u1a7c\u1a7f\u1a89\u1a90\u1a99\u1ab0\u1abd\u1abf\u1ace"+ - "\u1b00\u1b04\u1b34\u1b44\u1b50\u1b59\u1b6b\u1b73\u1b80\u1b82\u1ba1\u1bad"+ - "\u1bb0\u1bb9\u1be6\u1bf3\u1c24\u1c37\u1c40\u1c49\u1c50\u1c59\u1cd0\u1cd2"+ - "\u1cd4\u1ce8\u1ced\u1ced\u1cf4\u1cf4\u1cf7\u1cf9\u1dc0\u1dff\u203f\u2040"+ - "\u2054\u2054\u20d0\u20dc\u20e1\u20e1\u20e5\u20f0\u2cef\u2cf1\u2d7f\u2d7f"+ - "\u2de0\u2dff\u302a\u302f\u3099\u309a\u8000\ua620\u8000\ua629\u8000\ua66f"+ - "\u8000\ua66f\u8000\ua674\u8000\ua67d\u8000\ua69e\u8000\ua69f\u8000\ua6f0"+ - "\u8000\ua6f1\u8000\ua802\u8000\ua802\u8000\ua806\u8000\ua806\u8000\ua80b"+ - "\u8000\ua80b\u8000\ua823\u8000\ua827\u8000\ua82c\u8000\ua82c\u8000\ua880"+ - "\u8000\ua881\u8000\ua8b4\u8000\ua8c5\u8000\ua8d0\u8000\ua8d9\u8000\ua8e0"+ - "\u8000\ua8f1\u8000\ua8ff\u8000\ua909\u8000\ua926\u8000\ua92d\u8000\ua947"+ - "\u8000\ua953\u8000\ua980\u8000\ua983\u8000\ua9b3\u8000\ua9c0\u8000\ua9d0"+ - "\u8000\ua9d9\u8000\ua9e5\u8000\ua9e5\u8000\ua9f0\u8000\ua9f9\u8000\uaa29"+ - "\u8000\uaa36\u8000\uaa43\u8000\uaa43\u8000\uaa4c\u8000\uaa4d\u8000\uaa50"+ - "\u8000\uaa59\u8000\uaa7b\u8000\uaa7d\u8000\uaab0\u8000\uaab0\u8000\uaab2"+ - "\u8000\uaab4\u8000\uaab7\u8000\uaab8\u8000\uaabe\u8000\uaabf\u8000\uaac1"+ - "\u8000\uaac1\u8000\uaaeb\u8000\uaaef\u8000\uaaf5\u8000\uaaf6\u8000\uabe3"+ - "\u8000\uabea\u8000\uabec\u8000\uabed\u8000\uabf0\u8000\uabf9\u8000\ufb1e"+ - "\u8000\ufb1e\u8000\ufe00\u8000\ufe0f\u8000\ufe20\u8000\ufe2f\u8000\ufe33"+ - "\u8000\ufe34\u8000\ufe4d\u8000\ufe4f\u8000\uff10\u8000\uff19\u8000\uff3f"+ - "\u8000\uff3f\u8001\u01fd\u8001\u01fd\u8001\u02e0\u8001\u02e0\u8001\u0376"+ - "\u8001\u037a\u8001\u04a0\u8001\u04a9\u8001\u0a01\u8001\u0a03\u8001\u0a05"+ - "\u8001\u0a06\u8001\u0a0c\u8001\u0a0f\u8001\u0a38\u8001\u0a3a\u8001\u0a3f"+ - "\u8001\u0a3f\u8001\u0ae5\u8001\u0ae6\u8001\u0d24\u8001\u0d27\u8001\u0d30"+ - "\u8001\u0d39\u8001\u0eab\u8001\u0eac\u8001\u0f46\u8001\u0f50\u8001\u0f82"+ - "\u8001\u0f85\u8001\u1000\u8001\u1002\u8001\u1038\u8001\u1046\u8001\u1066"+ - "\u8001\u1070\u8001\u1073\u8001\u1074\u8001\u107f\u8001\u1082\u8001\u10b0"+ - "\u8001\u10ba\u8001\u10c2\u8001\u10c2\u8001\u10f0\u8001\u10f9\u8001\u1100"+ - "\u8001\u1102\u8001\u1127\u8001\u1134\u8001\u1136\u8001\u113f\u8001\u1145"+ - "\u8001\u1146\u8001\u1173\u8001\u1173\u8001\u1180\u8001\u1182\u8001\u11b3"+ - "\u8001\u11c0\u8001\u11c9\u8001\u11cc\u8001\u11ce\u8001\u11d9\u8001\u122c"+ - "\u8001\u1237\u8001\u123e\u8001\u123e\u8001\u12df\u8001\u12ea\u8001\u12f0"+ - "\u8001\u12f9\u8001\u1300\u8001\u1303\u8001\u133b\u8001\u133c\u8001\u133e"+ - "\u8001\u1344\u8001\u1347\u8001\u1348\u8001\u134b\u8001\u134d\u8001\u1357"+ - "\u8001\u1357\u8001\u1362\u8001\u1363\u8001\u1366\u8001\u136c\u8001\u1370"+ - "\u8001\u1374\u8001\u1435\u8001\u1446\u8001\u1450\u8001\u1459\u8001\u145e"+ - "\u8001\u145e\u8001\u14b0\u8001\u14c3\u8001\u14d0\u8001\u14d9\u8001\u15af"+ - "\u8001\u15b5\u8001\u15b8\u8001\u15c0\u8001\u15dc\u8001\u15dd\u8001\u1630"+ - "\u8001\u1640\u8001\u1650\u8001\u1659\u8001\u16ab\u8001\u16b7\u8001\u16c0"+ - "\u8001\u16c9\u8001\u171d\u8001\u172b\u8001\u1730\u8001\u1739\u8001\u182c"+ - "\u8001\u183a\u8001\u18e0\u8001\u18e9\u8001\u1930\u8001\u1935\u8001\u1937"+ - "\u8001\u1938\u8001\u193b\u8001\u193e\u8001\u1940\u8001\u1940\u8001\u1942"+ - "\u8001\u1943\u8001\u1950\u8001\u1959\u8001\u19d1\u8001\u19d7\u8001\u19da"+ - "\u8001\u19e0\u8001\u19e4\u8001\u19e4\u8001\u1a01\u8001\u1a0a\u8001\u1a33"+ - "\u8001\u1a39\u8001\u1a3b\u8001\u1a3e\u8001\u1a47\u8001\u1a47\u8001\u1a51"+ - "\u8001\u1a5b\u8001\u1a8a\u8001\u1a99\u8001\u1c2f\u8001\u1c36\u8001\u1c38"+ - "\u8001\u1c3f\u8001\u1c50\u8001\u1c59\u8001\u1c92\u8001\u1ca7\u8001\u1ca9"+ - "\u8001\u1cb6\u8001\u1d31\u8001\u1d36\u8001\u1d3a\u8001\u1d3a\u8001\u1d3c"+ - "\u8001\u1d3d\u8001\u1d3f\u8001\u1d45\u8001\u1d47\u8001\u1d47\u8001\u1d50"+ - "\u8001\u1d59\u8001\u1d8a\u8001\u1d8e\u8001\u1d90\u8001\u1d91\u8001\u1d93"+ - "\u8001\u1d97\u8001\u1da0\u8001\u1da9\u8001\u1ef3\u8001\u1ef6\u8001\u6a60"+ - "\u8001\u6a69\u8001\u6ac0\u8001\u6ac9\u8001\u6af0\u8001\u6af4\u8001\u6b30"+ - "\u8001\u6b36\u8001\u6b50\u8001\u6b59\u8001\u6f4f\u8001\u6f4f\u8001\u6f51"+ - "\u8001\u6f87\u8001\u6f8f\u8001\u6f92\u8001\u6fe4\u8001\u6fe4\u8001\u6ff0"+ - "\u8001\u6ff1\u8001\ubc9d\u8001\ubc9e\u8001\ucf00\u8001\ucf2d\u8001\ucf30"+ - "\u8001\ucf46\u8001\ud165\u8001\ud169\u8001\ud16d\u8001\ud172\u8001\ud17b"+ - "\u8001\ud182\u8001\ud185\u8001\ud18b\u8001\ud1aa\u8001\ud1ad\u8001\ud242"+ - "\u8001\ud244\u8001\ud7ce\u8001\ud7ff\u8001\uda00\u8001\uda36\u8001\uda3b"+ - "\u8001\uda6c\u8001\uda75\u8001\uda75\u8001\uda84\u8001\uda84\u8001\uda9b"+ - "\u8001\uda9f\u8001\udaa1\u8001\udaaf\u8001\ue000\u8001\ue006\u8001\ue008"+ - "\u8001\ue018\u8001\ue01b\u8001\ue021\u8001\ue023\u8001\ue024\u8001\ue026"+ - "\u8001\ue02a\u8001\ue130\u8001\ue136\u8001\ue140\u8001\ue149\u8001\ue2ae"+ - "\u8001\ue2ae\u8001\ue2ec\u8001\ue2f9\u8001\ue8d0\u8001\ue8d6\u8001\ue944"+ - "\u8001\ue94a\u8001\ue950\u8001\ue959\u8001\ufbf0\u8001\ufbf9\u800e\u0100"+ - "\u800e\u01ef\u0004\u0000\u1885\u1886\u2118\u2118\u212e\u212e\u309b\u309c"+ - "\u0004\u0000\u00b7\u00b7\u0387\u0387\u1369\u1371\u19da\u19da\u0002\u0000"+ - "!!//\u0002\u0000\n\n\r\r\u0001\u0000//\u0007\u0000 \u00a0\u00a0\u1680"+ - "\u1680\u2000\u200a\u202f\u202f\u205f\u205f\u3000\u3000\u0004\u0000\t\n"+ - "\r\r\'\'\\\\\u0001\u0000\"\"\u0005\u000000\\\\nnrrtt\u0002\u0000\"\"\'"+ - "\'\u0001\u000001\u0002\u000001__\u0002\u0000EEee\u0002\u0000++--\u0001"+ - "\u000007\u0001\u000009\u0003\u000009AFaf\u04b5\u0000\u0001\u0001\u0000"+ - "\u0000\u0000\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000"+ - "\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000"+ - "\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000"+ - "\u0000\u000f\u0001\u0000\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000"+ - "\u0000\u0013\u0001\u0000\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000"+ - "\u0000\u0017\u0001\u0000\u0000\u0000\u0000\u0019\u0001\u0000\u0000\u0000"+ - "\u0000\u001b\u0001\u0000\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000"+ - "\u0000\u001f\u0001\u0000\u0000\u0000\u0000!\u0001\u0000\u0000\u0000\u0000"+ - "#\u0001\u0000\u0000\u0000\u0000%\u0001\u0000\u0000\u0000\u0000\'\u0001"+ - "\u0000\u0000\u0000\u0000)\u0001\u0000\u0000\u0000\u0000+\u0001\u0000\u0000"+ - "\u0000\u0000-\u0001\u0000\u0000\u0000\u0000/\u0001\u0000\u0000\u0000\u0000"+ - "1\u0001\u0000\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u00005\u0001"+ - "\u0000\u0000\u0000\u00007\u0001\u0000\u0000\u0000\u00009\u0001\u0000\u0000"+ - "\u0000\u0000;\u0001\u0000\u0000\u0000\u0000=\u0001\u0000\u0000\u0000\u0000"+ - "?\u0001\u0000\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000C\u0001"+ - "\u0000\u0000\u0000\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000"+ - "\u0000\u0000I\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000\u0000\u0000"+ - "M\u0001\u0000\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000Q\u0001"+ - "\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001\u0000\u0000"+ - "\u0000\u0000W\u0001\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000\u0000\u0000"+ - "[\u0001\u0000\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001"+ - "\u0000\u0000\u0000\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000"+ - "\u0000\u0000e\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000"+ - "i\u0001\u0000\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001"+ - "\u0000\u0000\u0000\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000"+ - "\u0000\u0000{\u0001\u0000\u0000\u0000\u0000}\u0001\u0000\u0000\u0000\u0000"+ - "\u007f\u0001\u0000\u0000\u0000\u0000\u0081\u0001\u0000\u0000\u0000\u0000"+ - "\u0083\u0001\u0000\u0000\u0000\u0000\u0085\u0001\u0000\u0000\u0000\u0000"+ - "\u0087\u0001\u0000\u0000\u0000\u0000\u0089\u0001\u0000\u0000\u0000\u0000"+ - "\u008b\u0001\u0000\u0000\u0000\u0000\u008d\u0001\u0000\u0000\u0000\u0000"+ - "\u008f\u0001\u0000\u0000\u0000\u0000\u0091\u0001\u0000\u0000\u0000\u0000"+ - "\u0095\u0001\u0000\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000"+ - "\u0099\u0001\u0000\u0000\u0000\u0000\u00a5\u0001\u0000\u0000\u0000\u0000"+ - "\u00a7\u0001\u0000\u0000\u0000\u0000\u00a9\u0001\u0000\u0000\u0000\u0000"+ - "\u00ab\u0001\u0000\u0000\u0000\u0000\u00ad\u0001\u0000\u0000\u0000\u0000"+ - "\u00af\u0001\u0000\u0000\u0000\u0000\u00bd\u0001\u0000\u0000\u0000\u0000"+ - "\u00bf\u0001\u0000\u0000\u0000\u0000\u00c1\u0001\u0000\u0000\u0000\u0000"+ - "\u00c3\u0001\u0000\u0000\u0000\u0000\u00c5\u0001\u0000\u0000\u0000\u0000"+ - "\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9\u0001\u0000\u0000\u0000\u0000"+ - "\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd\u0001\u0000\u0000\u0000\u0000"+ - "\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1\u0001\u0000\u0000\u0000\u0000"+ - "\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5\u0001\u0000\u0000\u0000\u0000"+ - "\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9\u0001\u0000\u0000\u0000\u0000"+ - "\u00db\u0001\u0000\u0000\u0000\u0000\u00dd\u0001\u0000\u0000\u0000\u0000"+ - "\u00df\u0001\u0000\u0000\u0000\u0000\u00e1\u0001\u0000\u0000\u0000\u0000"+ - "\u00e3\u0001\u0000\u0000\u0000\u0000\u00e5\u0001\u0000\u0000\u0000\u0000"+ - "\u00e7\u0001\u0000\u0000\u0000\u0000\u00e9\u0001\u0000\u0000\u0000\u0000"+ - "\u00eb\u0001\u0000\u0000\u0000\u0000\u00ed\u0001\u0000\u0000\u0000\u0000"+ - "\u00ef\u0001\u0000\u0000\u0000\u0000\u00f1\u0001\u0000\u0000\u0000\u0000"+ - "\u00f3\u0001\u0000\u0000\u0000\u0000\u00f5\u0001\u0000\u0000\u0000\u0000"+ - "\u00f7\u0001\u0000\u0000\u0000\u0000\u00f9\u0001\u0000\u0000\u0000\u0000"+ - "\u00fb\u0001\u0000\u0000\u0000\u0000\u00fd\u0001\u0000\u0000\u0000\u0000"+ - "\u00ff\u0001\u0000\u0000\u0000\u0000\u0101\u0001\u0000\u0000\u0000\u0000"+ - "\u0103\u0001\u0000\u0000\u0000\u0000\u0105\u0001\u0000\u0000\u0000\u0000"+ - "\u0107\u0001\u0000\u0000\u0000\u0000\u0109\u0001\u0000\u0000\u0000\u0000"+ - "\u010b\u0001\u0000\u0000\u0000\u0000\u010d\u0001\u0000\u0000\u0000\u0000"+ - "\u010f\u0001\u0000\u0000\u0000\u0000\u0111\u0001\u0000\u0000\u0000\u0000"+ - "\u0113\u0001\u0000\u0000\u0000\u0000\u0115\u0001\u0000\u0000\u0000\u0000"+ - "\u0117\u0001\u0000\u0000\u0000\u0000\u0119\u0001\u0000\u0000\u0000\u0000"+ - "\u011b\u0001\u0000\u0000\u0000\u0000\u011d\u0001\u0000\u0000\u0000\u0000"+ - "\u011f\u0001\u0000\u0000\u0000\u0000\u0121\u0001\u0000\u0000\u0000\u0000"+ - "\u0123\u0001\u0000\u0000\u0000\u0000\u0125\u0001\u0000\u0000\u0000\u0001"+ - "\u0127\u0001\u0000\u0000\u0000\u0003\u012a\u0001\u0000\u0000\u0000\u0005"+ - "\u0130\u0001\u0000\u0000\u0000\u0007\u0136\u0001\u0000\u0000\u0000\t\u013f"+ - "\u0001\u0000\u0000\u0000\u000b\u0145\u0001\u0000\u0000\u0000\r\u014a\u0001"+ - "\u0000\u0000\u0000\u000f\u014f\u0001\u0000\u0000\u0000\u0011\u0156\u0001"+ - "\u0000\u0000\u0000\u0013\u015c\u0001\u0000\u0000\u0000\u0015\u015f\u0001"+ - "\u0000\u0000\u0000\u0017\u0163\u0001\u0000\u0000\u0000\u0019\u0166\u0001"+ - "\u0000\u0000\u0000\u001b\u016b\u0001\u0000\u0000\u0000\u001d\u016e\u0001"+ - "\u0000\u0000\u0000\u001f\u0172\u0001\u0000\u0000\u0000!\u0177\u0001\u0000"+ - "\u0000\u0000#\u017d\u0001\u0000\u0000\u0000%\u0181\u0001\u0000\u0000\u0000"+ - "\'\u0186\u0001\u0000\u0000\u0000)\u018a\u0001\u0000\u0000\u0000+\u018e"+ - "\u0001\u0000\u0000\u0000-\u0192\u0001\u0000\u0000\u0000/\u0199\u0001\u0000"+ - "\u0000\u00001\u019e\u0001\u0000\u0000\u00003\u01a3\u0001\u0000\u0000\u0000"+ - "5\u01aa\u0001\u0000\u0000\u00007\u01b1\u0001\u0000\u0000\u00009\u01b7"+ - "\u0001\u0000\u0000\u0000;\u01bd\u0001\u0000\u0000\u0000=\u01c2\u0001\u0000"+ - "\u0000\u0000?\u01c7\u0001\u0000\u0000\u0000A\u01ce\u0001\u0000\u0000\u0000"+ - "C\u01d2\u0001\u0000\u0000\u0000E\u01d8\u0001\u0000\u0000\u0000G\u01de"+ - "\u0001\u0000\u0000\u0000I\u01e4\u0001\u0000\u0000\u0000K\u01ea\u0001\u0000"+ - "\u0000\u0000M\u01ee\u0001\u0000\u0000\u0000O\u01f7\u0001\u0000\u0000\u0000"+ - "Q\u01fe\u0001\u0000\u0000\u0000S\u0202\u0001\u0000\u0000\u0000U\u0205"+ - "\u0001\u0000\u0000\u0000W\u020b\u0001\u0000\u0000\u0000Y\u0211\u0001\u0000"+ - "\u0000\u0000[\u021a\u0001\u0000\u0000\u0000]\u021f\u0001\u0000\u0000\u0000"+ - "_\u0226\u0001\u0000\u0000\u0000a\u022e\u0001\u0000\u0000\u0000c\u0236"+ - "\u0001\u0000\u0000\u0000e\u023c\u0001\u0000\u0000\u0000g\u0240\u0001\u0000"+ - "\u0000\u0000i\u0246\u0001\u0000\u0000\u0000k\u024e\u0001\u0000\u0000\u0000"+ - "m\u025a\u0001\u0000\u0000\u0000o\u025d\u0001\u0000\u0000\u0000q\u0271"+ - "\u0001\u0000\u0000\u0000s\u0275\u0001\u0000\u0000\u0000u\u027a\u0001\u0000"+ - "\u0000\u0000w\u027c\u0001\u0000\u0000\u0000y\u027e\u0001\u0000\u0000\u0000"+ - "{\u0280\u0001\u0000\u0000\u0000}\u0295\u0001\u0000\u0000\u0000\u007f\u0299"+ - "\u0001\u0000\u0000\u0000\u0081\u02a9\u0001\u0000\u0000\u0000\u0083\u02b8"+ - "\u0001\u0000\u0000\u0000\u0085\u02c4\u0001\u0000\u0000\u0000\u0087\u02d3"+ - "\u0001\u0000\u0000\u0000\u0089\u02e2\u0001\u0000\u0000\u0000\u008b\u02e9"+ - "\u0001\u0000\u0000\u0000\u008d\u02ed\u0001\u0000\u0000\u0000\u008f\u0304"+ - "\u0001\u0000\u0000\u0000\u0091\u0306\u0001\u0000\u0000\u0000\u0093\u0315"+ - "\u0001\u0000\u0000\u0000\u0095\u0317\u0001\u0000\u0000\u0000\u0097\u0321"+ - "\u0001\u0000\u0000\u0000\u0099\u032e\u0001\u0000\u0000\u0000\u009b\u033a"+ - "\u0001\u0000\u0000\u0000\u009d\u0343\u0001\u0000\u0000\u0000\u009f\u0345"+ - "\u0001\u0000\u0000\u0000\u00a1\u0348\u0001\u0000\u0000\u0000\u00a3\u035e"+ - "\u0001\u0000\u0000\u0000\u00a5\u0365\u0001\u0000\u0000\u0000\u00a7\u036a"+ - "\u0001\u0000\u0000\u0000\u00a9\u0372\u0001\u0000\u0000\u0000\u00ab\u0383"+ - "\u0001\u0000\u0000\u0000\u00ad\u0394\u0001\u0000\u0000\u0000\u00af\u03a4"+ - "\u0001\u0000\u0000\u0000\u00b1\u03de\u0001\u0000\u0000\u0000\u00b3\u03e6"+ - "\u0001\u0000\u0000\u0000\u00b5\u03e8\u0001\u0000\u0000\u0000\u00b7\u03f4"+ - "\u0001\u0000\u0000\u0000\u00b9\u03f6\u0001\u0000\u0000\u0000\u00bb\u03f8"+ - "\u0001\u0000\u0000\u0000\u00bd\u03fa\u0001\u0000\u0000\u0000\u00bf\u03fd"+ - "\u0001\u0000\u0000\u0000\u00c1\u03ff\u0001\u0000\u0000\u0000\u00c3\u0401"+ - "\u0001\u0000\u0000\u0000\u00c5\u0403\u0001\u0000\u0000\u0000\u00c7\u0405"+ - "\u0001\u0000\u0000\u0000\u00c9\u0407\u0001\u0000\u0000\u0000\u00cb\u0409"+ - "\u0001\u0000\u0000\u0000\u00cd\u040b\u0001\u0000\u0000\u0000\u00cf\u040d"+ - "\u0001\u0000\u0000\u0000\u00d1\u040f\u0001\u0000\u0000\u0000\u00d3\u0412"+ - "\u0001\u0000\u0000\u0000\u00d5\u0415\u0001\u0000\u0000\u0000\u00d7\u0418"+ - "\u0001\u0000\u0000\u0000\u00d9\u041b\u0001\u0000\u0000\u0000\u00db\u041e"+ - "\u0001\u0000\u0000\u0000\u00dd\u0421\u0001\u0000\u0000\u0000\u00df\u0424"+ - "\u0001\u0000\u0000\u0000\u00e1\u0427\u0001\u0000\u0000\u0000\u00e3\u042a"+ - "\u0001\u0000\u0000\u0000\u00e5\u042d\u0001\u0000\u0000\u0000\u00e7\u0431"+ - "\u0001\u0000\u0000\u0000\u00e9\u0435\u0001\u0000\u0000\u0000\u00eb\u0437"+ - "\u0001\u0000\u0000\u0000\u00ed\u043a\u0001\u0000\u0000\u0000\u00ef\u043d"+ - "\u0001\u0000\u0000\u0000\u00f1\u043f\u0001\u0000\u0000\u0000\u00f3\u0441"+ - "\u0001\u0000\u0000\u0000\u00f5\u0444\u0001\u0000\u0000\u0000\u00f7\u0447"+ - "\u0001\u0000\u0000\u0000\u00f9\u0449\u0001\u0000\u0000\u0000\u00fb\u044b"+ - "\u0001\u0000\u0000\u0000\u00fd\u044d\u0001\u0000\u0000\u0000\u00ff\u0450"+ - "\u0001\u0000\u0000\u0000\u0101\u0454\u0001\u0000\u0000\u0000\u0103\u0458"+ - "\u0001\u0000\u0000\u0000\u0105\u045a\u0001\u0000\u0000\u0000\u0107\u045c"+ - "\u0001\u0000\u0000\u0000\u0109\u045e\u0001\u0000\u0000\u0000\u010b\u0461"+ - "\u0001\u0000\u0000\u0000\u010d\u0464\u0001\u0000\u0000\u0000\u010f\u0467"+ - "\u0001\u0000\u0000\u0000\u0111\u0469\u0001\u0000\u0000\u0000\u0113\u046b"+ - "\u0001\u0000\u0000\u0000\u0115\u046d\u0001\u0000\u0000\u0000\u0117\u046f"+ - "\u0001\u0000\u0000\u0000\u0119\u0471\u0001\u0000\u0000\u0000\u011b\u0473"+ - "\u0001\u0000\u0000\u0000\u011d\u0475\u0001\u0000\u0000\u0000\u011f\u0477"+ - "\u0001\u0000\u0000\u0000\u0121\u0479\u0001\u0000\u0000\u0000\u0123\u047b"+ - "\u0001\u0000\u0000\u0000\u0125\u047d\u0001\u0000\u0000\u0000\u0127\u0128"+ - "\u0005a\u0000\u0000\u0128\u0129\u0005s\u0000\u0000\u0129\u0002\u0001\u0000"+ - "\u0000\u0000\u012a\u012b\u0005b\u0000\u0000\u012b\u012c\u0005r\u0000\u0000"+ - "\u012c\u012d\u0005e\u0000\u0000\u012d\u012e\u0005a\u0000\u0000\u012e\u012f"+ - "\u0005k\u0000\u0000\u012f\u0004\u0001\u0000\u0000\u0000\u0130\u0131\u0005"+ - "c\u0000\u0000\u0131\u0132\u0005o\u0000\u0000\u0132\u0133\u0005n\u0000"+ - "\u0000\u0133\u0134\u0005s\u0000\u0000\u0134\u0135\u0005t\u0000\u0000\u0135"+ - "\u0006\u0001\u0000\u0000\u0000\u0136\u0137\u0005c\u0000\u0000\u0137\u0138"+ - "\u0005o\u0000\u0000\u0138\u0139\u0005n\u0000\u0000\u0139\u013a\u0005t"+ - "\u0000\u0000\u013a\u013b\u0005i\u0000\u0000\u013b\u013c\u0005n\u0000\u0000"+ - "\u013c\u013d\u0005u\u0000\u0000\u013d\u013e\u0005e\u0000\u0000\u013e\b"+ - "\u0001\u0000\u0000\u0000\u013f\u0140\u0005c\u0000\u0000\u0140\u0141\u0005"+ - "r\u0000\u0000\u0141\u0142\u0005a\u0000\u0000\u0142\u0143\u0005t\u0000"+ - "\u0000\u0143\u0144\u0005e\u0000\u0000\u0144\n\u0001\u0000\u0000\u0000"+ - "\u0145\u0146\u0005e\u0000\u0000\u0146\u0147\u0005l\u0000\u0000\u0147\u0148"+ - "\u0005s\u0000\u0000\u0148\u0149\u0005e\u0000\u0000\u0149\f\u0001\u0000"+ - "\u0000\u0000\u014a\u014b\u0005e\u0000\u0000\u014b\u014c\u0005n\u0000\u0000"+ - "\u014c\u014d\u0005u\u0000\u0000\u014d\u014e\u0005m\u0000\u0000\u014e\u000e"+ - "\u0001\u0000\u0000\u0000\u014f\u0150\u0005e\u0000\u0000\u0150\u0151\u0005"+ - "x\u0000\u0000\u0151\u0152\u0005t\u0000\u0000\u0152\u0153\u0005e\u0000"+ - "\u0000\u0153\u0154\u0005r\u0000\u0000\u0154\u0155\u0005n\u0000\u0000\u0155"+ - "\u0010\u0001\u0000\u0000\u0000\u0156\u0157\u0005f\u0000\u0000\u0157\u0158"+ - "\u0005a\u0000\u0000\u0158\u0159\u0005l\u0000\u0000\u0159\u015a\u0005s"+ - "\u0000\u0000\u015a\u015b\u0005e\u0000\u0000\u015b\u0012\u0001\u0000\u0000"+ - "\u0000\u015c\u015d\u0005f\u0000\u0000\u015d\u015e\u0005n\u0000\u0000\u015e"+ - "\u0014\u0001\u0000\u0000\u0000\u015f\u0160\u0005f\u0000\u0000\u0160\u0161"+ - "\u0005o\u0000\u0000\u0161\u0162\u0005r\u0000\u0000\u0162\u0016\u0001\u0000"+ - "\u0000\u0000\u0163\u0164\u0005i\u0000\u0000\u0164\u0165\u0005f\u0000\u0000"+ - "\u0165\u0018\u0001\u0000\u0000\u0000\u0166\u0167\u0005i\u0000\u0000\u0167"+ - "\u0168\u0005m\u0000\u0000\u0168\u0169\u0005p\u0000\u0000\u0169\u016a\u0005"+ - "l\u0000\u0000\u016a\u001a\u0001\u0000\u0000\u0000\u016b\u016c\u0005i\u0000"+ - "\u0000\u016c\u016d\u0005n\u0000\u0000\u016d\u001c\u0001\u0000\u0000\u0000"+ - "\u016e\u016f\u0005l\u0000\u0000\u016f\u0170\u0005e\u0000\u0000\u0170\u0171"+ - "\u0005t\u0000\u0000\u0171\u001e\u0001\u0000\u0000\u0000\u0172\u0173\u0005"+ - "l\u0000\u0000\u0173\u0174\u0005o\u0000\u0000\u0174\u0175\u0005o\u0000"+ - "\u0000\u0175\u0176\u0005p\u0000\u0000\u0176 \u0001\u0000\u0000\u0000\u0177"+ - "\u0178\u0005m\u0000\u0000\u0178\u0179\u0005a\u0000\u0000\u0179\u017a\u0005"+ - "t\u0000\u0000\u017a\u017b\u0005c\u0000\u0000\u017b\u017c\u0005h\u0000"+ - "\u0000\u017c\"\u0001\u0000\u0000\u0000\u017d\u017e\u0005m\u0000\u0000"+ - "\u017e\u017f\u0005o\u0000\u0000\u017f\u0180\u0005d\u0000\u0000\u0180$"+ - "\u0001\u0000\u0000\u0000\u0181\u0182\u0005m\u0000\u0000\u0182\u0183\u0005"+ - "o\u0000\u0000\u0183\u0184\u0005v\u0000\u0000\u0184\u0185\u0005e\u0000"+ - "\u0000\u0185&\u0001\u0000\u0000\u0000\u0186\u0187\u0005m\u0000\u0000\u0187"+ - "\u0188\u0005u\u0000\u0000\u0188\u0189\u0005t\u0000\u0000\u0189(\u0001"+ - "\u0000\u0000\u0000\u018a\u018b\u0005p\u0000\u0000\u018b\u018c\u0005u\u0000"+ - "\u0000\u018c\u018d\u0005b\u0000\u0000\u018d*\u0001\u0000\u0000\u0000\u018e"+ - "\u018f\u0005r\u0000\u0000\u018f\u0190\u0005e\u0000\u0000\u0190\u0191\u0005"+ - "f\u0000\u0000\u0191,\u0001\u0000\u0000\u0000\u0192\u0193\u0005r\u0000"+ - "\u0000\u0193\u0194\u0005e\u0000\u0000\u0194\u0195\u0005t\u0000\u0000\u0195"+ - "\u0196\u0005u\u0000\u0000\u0196\u0197\u0005r\u0000\u0000\u0197\u0198\u0005"+ - "n\u0000\u0000\u0198.\u0001\u0000\u0000\u0000\u0199\u019a\u0005s\u0000"+ - "\u0000\u019a\u019b\u0005e\u0000\u0000\u019b\u019c\u0005l\u0000\u0000\u019c"+ - "\u019d\u0005f\u0000\u0000\u019d0\u0001\u0000\u0000\u0000\u019e\u019f\u0005"+ - "S\u0000\u0000\u019f\u01a0\u0005e\u0000\u0000\u01a0\u01a1\u0005l\u0000"+ - "\u0000\u01a1\u01a2\u0005f\u0000\u0000\u01a22\u0001\u0000\u0000\u0000\u01a3"+ - "\u01a4\u0005s\u0000\u0000\u01a4\u01a5\u0005t\u0000\u0000\u01a5\u01a6\u0005"+ - "a\u0000\u0000\u01a6\u01a7\u0005t\u0000\u0000\u01a7\u01a8\u0005i\u0000"+ - "\u0000\u01a8\u01a9\u0005c\u0000\u0000\u01a94\u0001\u0000\u0000\u0000\u01aa"+ - "\u01ab\u0005s\u0000\u0000\u01ab\u01ac\u0005t\u0000\u0000\u01ac\u01ad\u0005"+ - "r\u0000\u0000\u01ad\u01ae\u0005u\u0000\u0000\u01ae\u01af\u0005c\u0000"+ - "\u0000\u01af\u01b0\u0005t\u0000\u0000\u01b06\u0001\u0000\u0000\u0000\u01b1"+ - "\u01b2\u0005s\u0000\u0000\u01b2\u01b3\u0005u\u0000\u0000\u01b3\u01b4\u0005"+ - "p\u0000\u0000\u01b4\u01b5\u0005e\u0000\u0000\u01b5\u01b6\u0005r\u0000"+ - "\u0000\u01b68\u0001\u0000\u0000\u0000\u01b7\u01b8\u0005t\u0000\u0000\u01b8"+ - "\u01b9\u0005r\u0000\u0000\u01b9\u01ba\u0005a\u0000\u0000\u01ba\u01bb\u0005"+ - "i\u0000\u0000\u01bb\u01bc\u0005t\u0000\u0000\u01bc:\u0001\u0000\u0000"+ - "\u0000\u01bd\u01be\u0005t\u0000\u0000\u01be\u01bf\u0005r\u0000\u0000\u01bf"+ - "\u01c0\u0005u\u0000\u0000\u01c0\u01c1\u0005e\u0000\u0000\u01c1<\u0001"+ - "\u0000\u0000\u0000\u01c2\u01c3\u0005t\u0000\u0000\u01c3\u01c4\u0005y\u0000"+ - "\u0000\u01c4\u01c5\u0005p\u0000\u0000\u01c5\u01c6\u0005e\u0000\u0000\u01c6"+ - ">\u0001\u0000\u0000\u0000\u01c7\u01c8\u0005u\u0000\u0000\u01c8\u01c9\u0005"+ - "n\u0000\u0000\u01c9\u01ca\u0005s\u0000\u0000\u01ca\u01cb\u0005a\u0000"+ - "\u0000\u01cb\u01cc\u0005f\u0000\u0000\u01cc\u01cd\u0005e\u0000\u0000\u01cd"+ - "@\u0001\u0000\u0000\u0000\u01ce\u01cf\u0005u\u0000\u0000\u01cf\u01d0\u0005"+ - "s\u0000\u0000\u01d0\u01d1\u0005e\u0000\u0000\u01d1B\u0001\u0000\u0000"+ - "\u0000\u01d2\u01d3\u0005w\u0000\u0000\u01d3\u01d4\u0005h\u0000\u0000\u01d4"+ - "\u01d5\u0005e\u0000\u0000\u01d5\u01d6\u0005r\u0000\u0000\u01d6\u01d7\u0005"+ - "e\u0000\u0000\u01d7D\u0001\u0000\u0000\u0000\u01d8\u01d9\u0005w\u0000"+ - "\u0000\u01d9\u01da\u0005h\u0000\u0000\u01da\u01db\u0005i\u0000\u0000\u01db"+ - "\u01dc\u0005l\u0000\u0000\u01dc\u01dd\u0005e\u0000\u0000\u01ddF\u0001"+ - "\u0000\u0000\u0000\u01de\u01df\u0005a\u0000\u0000\u01df\u01e0\u0005s\u0000"+ - "\u0000\u01e0\u01e1\u0005y\u0000\u0000\u01e1\u01e2\u0005n\u0000\u0000\u01e2"+ - "\u01e3\u0005c\u0000\u0000\u01e3H\u0001\u0000\u0000\u0000\u01e4\u01e5\u0005"+ - "a\u0000\u0000\u01e5\u01e6\u0005w\u0000\u0000\u01e6\u01e7\u0005a\u0000"+ - "\u0000\u01e7\u01e8\u0005i\u0000\u0000\u01e8\u01e9\u0005t\u0000\u0000\u01e9"+ - "J\u0001\u0000\u0000\u0000\u01ea\u01eb\u0005d\u0000\u0000\u01eb\u01ec\u0005"+ - "y\u0000\u0000\u01ec\u01ed\u0005n\u0000\u0000\u01edL\u0001\u0000\u0000"+ - "\u0000\u01ee\u01ef\u0005a\u0000\u0000\u01ef\u01f0\u0005b\u0000\u0000\u01f0"+ - "\u01f1\u0005s\u0000\u0000\u01f1\u01f2\u0005t\u0000\u0000\u01f2\u01f3\u0005"+ - "r\u0000\u0000\u01f3\u01f4\u0005a\u0000\u0000\u01f4\u01f5\u0005c\u0000"+ - "\u0000\u01f5\u01f6\u0005t\u0000\u0000\u01f6N\u0001\u0000\u0000\u0000\u01f7"+ - "\u01f8\u0005b\u0000\u0000\u01f8\u01f9\u0005e\u0000\u0000\u01f9\u01fa\u0005"+ - "c\u0000\u0000\u01fa\u01fb\u0005o\u0000\u0000\u01fb\u01fc\u0005m\u0000"+ - "\u0000\u01fc\u01fd\u0005e\u0000\u0000\u01fdP\u0001\u0000\u0000\u0000\u01fe"+ - "\u01ff\u0005b\u0000\u0000\u01ff\u0200\u0005o\u0000\u0000\u0200\u0201\u0005"+ - "x\u0000\u0000\u0201R\u0001\u0000\u0000\u0000\u0202\u0203\u0005d\u0000"+ - "\u0000\u0203\u0204\u0005o\u0000\u0000\u0204T\u0001\u0000\u0000\u0000\u0205"+ - "\u0206\u0005f\u0000\u0000\u0206\u0207\u0005i\u0000\u0000\u0207\u0208\u0005"+ - "n\u0000\u0000\u0208\u0209\u0005a\u0000\u0000\u0209\u020a\u0005l\u0000"+ - "\u0000\u020aV\u0001\u0000\u0000\u0000\u020b\u020c\u0005m\u0000\u0000\u020c"+ - "\u020d\u0005a\u0000\u0000\u020d\u020e\u0005c\u0000\u0000\u020e\u020f\u0005"+ - "r\u0000\u0000\u020f\u0210\u0005o\u0000\u0000\u0210X\u0001\u0000\u0000"+ - "\u0000\u0211\u0212\u0005o\u0000\u0000\u0212\u0213\u0005v\u0000\u0000\u0213"+ - "\u0214\u0005e\u0000\u0000\u0214\u0215\u0005r\u0000\u0000\u0215\u0216\u0005"+ - "r\u0000\u0000\u0216\u0217\u0005i\u0000\u0000\u0217\u0218\u0005d\u0000"+ - "\u0000\u0218\u0219\u0005e\u0000\u0000\u0219Z\u0001\u0000\u0000\u0000\u021a"+ - "\u021b\u0005p\u0000\u0000\u021b\u021c\u0005r\u0000\u0000\u021c\u021d\u0005"+ - "i\u0000\u0000\u021d\u021e\u0005v\u0000\u0000\u021e\\\u0001\u0000\u0000"+ - "\u0000\u021f\u0220\u0005t\u0000\u0000\u0220\u0221\u0005y\u0000\u0000\u0221"+ - "\u0222\u0005p\u0000\u0000\u0222\u0223\u0005e\u0000\u0000\u0223\u0224\u0005"+ - "o\u0000\u0000\u0224\u0225\u0005f\u0000\u0000\u0225^\u0001\u0000\u0000"+ - "\u0000\u0226\u0227\u0005u\u0000\u0000\u0227\u0228\u0005n\u0000\u0000\u0228"+ - "\u0229\u0005s\u0000\u0000\u0229\u022a\u0005i\u0000\u0000\u022a\u022b\u0005"+ - "z\u0000\u0000\u022b\u022c\u0005e\u0000\u0000\u022c\u022d\u0005d\u0000"+ - "\u0000\u022d`\u0001\u0000\u0000\u0000\u022e\u022f\u0005v\u0000\u0000\u022f"+ - "\u0230\u0005i\u0000\u0000\u0230\u0231\u0005r\u0000\u0000\u0231\u0232\u0005"+ - "t\u0000\u0000\u0232\u0233\u0005u\u0000\u0000\u0233\u0234\u0005a\u0000"+ - "\u0000\u0234\u0235\u0005l\u0000\u0000\u0235b\u0001\u0000\u0000\u0000\u0236"+ - "\u0237\u0005y\u0000\u0000\u0237\u0238\u0005i\u0000\u0000\u0238\u0239\u0005"+ - "e\u0000\u0000\u0239\u023a\u0005l\u0000\u0000\u023a\u023b\u0005d\u0000"+ - "\u0000\u023bd\u0001\u0000\u0000\u0000\u023c\u023d\u0005t\u0000\u0000\u023d"+ - "\u023e\u0005r\u0000\u0000\u023e\u023f\u0005y\u0000\u0000\u023ff\u0001"+ - "\u0000\u0000\u0000\u0240\u0241\u0005u\u0000\u0000\u0241\u0242\u0005n\u0000"+ - "\u0000\u0242\u0243\u0005i\u0000\u0000\u0243\u0244\u0005o\u0000\u0000\u0244"+ - "\u0245\u0005n\u0000\u0000\u0245h\u0001\u0000\u0000\u0000\u0246\u0247\u0005"+ - "\'\u0000\u0000\u0247\u0248\u0005s\u0000\u0000\u0248\u0249\u0005t\u0000"+ - "\u0000\u0249\u024a\u0005a\u0000\u0000\u024a\u024b\u0005t\u0000\u0000\u024b"+ - "\u024c\u0005i\u0000\u0000\u024c\u024d\u0005c\u0000\u0000\u024dj\u0001"+ - "\u0000\u0000\u0000\u024e\u024f\u0005m\u0000\u0000\u024f\u0250\u0005a\u0000"+ - "\u0000\u0250\u0251\u0005c\u0000\u0000\u0251\u0252\u0005r\u0000\u0000\u0252"+ - "\u0253\u0005o\u0000\u0000\u0253\u0254\u0005_\u0000\u0000\u0254\u0255\u0005"+ - "r\u0000\u0000\u0255\u0256\u0005u\u0000\u0000\u0256\u0257\u0005l\u0000"+ - "\u0000\u0257\u0258\u0005e\u0000\u0000\u0258\u0259\u0005s\u0000\u0000\u0259"+ - "l\u0001\u0000\u0000\u0000\u025a\u025b\u0005\'\u0000\u0000\u025b\u025c"+ - "\u0005_\u0000\u0000\u025cn\u0001\u0000\u0000\u0000\u025d\u025e\u0005$"+ - "\u0000\u0000\u025e\u025f\u0005c\u0000\u0000\u025f\u0260\u0005r\u0000\u0000"+ - "\u0260\u0261\u0005a\u0000\u0000\u0261\u0262\u0005t\u0000\u0000\u0262\u0263"+ - "\u0005e\u0000\u0000\u0263p\u0001\u0000\u0000\u0000\u0264\u0268\u0003s"+ - "9\u0000\u0265\u0267\u0003u:\u0000\u0266\u0265\u0001\u0000\u0000\u0000"+ - "\u0267\u026a\u0001\u0000\u0000\u0000\u0268\u0266\u0001\u0000\u0000\u0000"+ - "\u0268\u0269\u0001\u0000\u0000\u0000\u0269\u0272\u0001\u0000\u0000\u0000"+ - "\u026a\u0268\u0001\u0000\u0000\u0000\u026b\u026d\u0005_\u0000\u0000\u026c"+ - "\u026e\u0003u:\u0000\u026d\u026c\u0001\u0000\u0000\u0000\u026e\u026f\u0001"+ - "\u0000\u0000\u0000\u026f\u026d\u0001\u0000\u0000\u0000\u026f\u0270\u0001"+ - "\u0000\u0000\u0000\u0270\u0272\u0001\u0000\u0000\u0000\u0271\u0264\u0001"+ - "\u0000\u0000\u0000\u0271\u026b\u0001\u0000\u0000\u0000\u0272r\u0001\u0000"+ - "\u0000\u0000\u0273\u0276\u0007\u0000\u0000\u0000\u0274\u0276\u0003w;\u0000"+ - "\u0275\u0273\u0001\u0000\u0000\u0000\u0275\u0274\u0001\u0000\u0000\u0000"+ - "\u0276t\u0001\u0000\u0000\u0000\u0277\u027b\u0003s9\u0000\u0278\u027b"+ - "\u0007\u0001\u0000\u0000\u0279\u027b\u0003y<\u0000\u027a\u0277\u0001\u0000"+ - "\u0000\u0000\u027a\u0278\u0001\u0000\u0000\u0000\u027a\u0279\u0001\u0000"+ - "\u0000\u0000\u027bv\u0001\u0000\u0000\u0000\u027c\u027d\u0007\u0002\u0000"+ - "\u0000\u027dx\u0001\u0000\u0000\u0000\u027e\u027f\u0007\u0003\u0000\u0000"+ - "\u027fz\u0001\u0000\u0000\u0000\u0280\u0281\u0005r\u0000\u0000\u0281\u0282"+ - "\u0005#\u0000\u0000\u0282\u0283\u0001\u0000\u0000\u0000\u0283\u0284\u0003"+ - "q8\u0000\u0284|\u0001\u0000\u0000\u0000\u0285\u0286\u0005/\u0000\u0000"+ - "\u0286\u0287\u0005/\u0000\u0000\u0287\u028b\u0001\u0000\u0000\u0000\u0288"+ - "\u028c\b\u0004\u0000\u0000\u0289\u028a\u0005/\u0000\u0000\u028a\u028c"+ - "\u0005/\u0000\u0000\u028b\u0288\u0001\u0000\u0000\u0000\u028b\u0289\u0001"+ - "\u0000\u0000\u0000\u028c\u0290\u0001\u0000\u0000\u0000\u028d\u028f\b\u0005"+ - "\u0000\u0000\u028e\u028d\u0001\u0000\u0000\u0000\u028f\u0292\u0001\u0000"+ - "\u0000\u0000\u0290\u028e\u0001\u0000\u0000\u0000\u0290\u0291\u0001\u0000"+ - "\u0000\u0000\u0291\u0296\u0001\u0000\u0000\u0000\u0292\u0290\u0001\u0000"+ - "\u0000\u0000\u0293\u0294\u0005/\u0000\u0000\u0294\u0296\u0005/\u0000\u0000"+ - "\u0295\u0285\u0001\u0000\u0000\u0000\u0295\u0293\u0001\u0000\u0000\u0000"+ - "\u0296\u0297\u0001\u0000\u0000\u0000\u0297\u0298\u0006>\u0000\u0000\u0298"+ - "~\u0001\u0000\u0000\u0000\u0299\u029a\u0005/\u0000\u0000\u029a\u029b\u0005"+ - "*\u0000\u0000\u029b\u029c\u0005!\u0000\u0000\u029c\u02a1\u0001\u0000\u0000"+ - "\u0000\u029d\u02a0\u0003\u0081@\u0000\u029e\u02a0\t\u0000\u0000\u0000"+ - "\u029f\u029d\u0001\u0000\u0000\u0000\u029f\u029e\u0001\u0000\u0000\u0000"+ - "\u02a0\u02a3\u0001\u0000\u0000\u0000\u02a1\u02a2\u0001\u0000\u0000\u0000"+ - "\u02a1\u029f\u0001\u0000\u0000\u0000\u02a2\u02a4\u0001\u0000\u0000\u0000"+ - "\u02a3\u02a1\u0001\u0000\u0000\u0000\u02a4\u02a5\u0005*\u0000\u0000\u02a5"+ - "\u02a6\u0005/\u0000\u0000\u02a6\u02a7\u0001\u0000\u0000\u0000\u02a7\u02a8"+ - "\u0006?\u0000\u0000\u02a8\u0080\u0001\u0000\u0000\u0000\u02a9\u02aa\u0005"+ - "/\u0000\u0000\u02aa\u02ab\u0005*\u0000\u0000\u02ab\u02b0\u0001\u0000\u0000"+ - "\u0000\u02ac\u02af\u0003\u0081@\u0000\u02ad\u02af\t\u0000\u0000\u0000"+ - "\u02ae\u02ac\u0001\u0000\u0000\u0000\u02ae\u02ad\u0001\u0000\u0000\u0000"+ - "\u02af\u02b2\u0001\u0000\u0000\u0000\u02b0\u02b1\u0001\u0000\u0000\u0000"+ - "\u02b0\u02ae\u0001\u0000\u0000\u0000\u02b1\u02b3\u0001\u0000\u0000\u0000"+ - "\u02b2\u02b0\u0001\u0000\u0000\u0000\u02b3\u02b4\u0005*\u0000\u0000\u02b4"+ - "\u02b5\u0005/\u0000\u0000\u02b5\u02b6\u0001\u0000\u0000\u0000\u02b6\u02b7"+ - "\u0006@\u0000\u0000\u02b7\u0082\u0001\u0000\u0000\u0000\u02b8\u02b9\u0005"+ - "/\u0000\u0000\u02b9\u02ba\u0005/\u0000\u0000\u02ba\u02bb\u0005!\u0000"+ - "\u0000\u02bb\u02bf\u0001\u0000\u0000\u0000\u02bc\u02be\b\u0005\u0000\u0000"+ - "\u02bd\u02bc\u0001\u0000\u0000\u0000\u02be\u02c1\u0001\u0000\u0000\u0000"+ - "\u02bf\u02bd\u0001\u0000\u0000\u0000\u02bf\u02c0\u0001\u0000\u0000\u0000"+ - "\u02c0\u02c2\u0001\u0000\u0000\u0000\u02c1\u02bf\u0001\u0000\u0000\u0000"+ - "\u02c2\u02c3\u0006A\u0000\u0000\u02c3\u0084\u0001\u0000\u0000\u0000\u02c4"+ - "\u02c5\u0005/\u0000\u0000\u02c5\u02c6\u0005/\u0000\u0000\u02c6\u02c7\u0005"+ - "/\u0000\u0000\u02c7\u02cf\u0001\u0000\u0000\u0000\u02c8\u02cc\b\u0006"+ - "\u0000\u0000\u02c9\u02cb\b\u0005\u0000\u0000\u02ca\u02c9\u0001\u0000\u0000"+ - "\u0000\u02cb\u02ce\u0001\u0000\u0000\u0000\u02cc\u02ca\u0001\u0000\u0000"+ - "\u0000\u02cc\u02cd\u0001\u0000\u0000\u0000\u02cd\u02d0\u0001\u0000\u0000"+ - "\u0000\u02ce\u02cc\u0001\u0000\u0000\u0000\u02cf\u02c8\u0001\u0000\u0000"+ - "\u0000\u02cf\u02d0\u0001\u0000\u0000\u0000\u02d0\u02d1\u0001\u0000\u0000"+ - "\u0000\u02d1\u02d2\u0006B\u0000\u0000\u02d2\u0086\u0001\u0000\u0000\u0000"+ - "\u02d3\u02d5\u0004C\u0000\u0000\u02d4\u02d6\u0005\u8000\ufeff\u0000\u0000"+ - "\u02d5\u02d4\u0001\u0000\u0000\u0000\u02d5\u02d6\u0001\u0000\u0000\u0000"+ - "\u02d6\u02d7\u0001\u0000\u0000\u0000\u02d7\u02d8\u0005#\u0000\u0000\u02d8"+ - "\u02d9\u0005!\u0000\u0000\u02d9\u02dd\u0001\u0000\u0000\u0000\u02da\u02dc"+ - "\b\u0005\u0000\u0000\u02db\u02da\u0001\u0000\u0000\u0000\u02dc\u02df\u0001"+ - "\u0000\u0000\u0000\u02dd\u02db\u0001\u0000\u0000\u0000\u02dd\u02de\u0001"+ - "\u0000\u0000\u0000\u02de\u02e0\u0001\u0000\u0000\u0000\u02df\u02dd\u0001"+ - "\u0000\u0000\u0000\u02e0\u02e1\u0006C\u0000\u0000\u02e1\u0088\u0001\u0000"+ - "\u0000\u0000\u02e2\u02e3\u0007\u0007\u0000\u0000\u02e3\u02e4\u0001\u0000"+ - "\u0000\u0000\u02e4\u02e5\u0006D\u0001\u0000\u02e5\u008a\u0001\u0000\u0000"+ - "\u0000\u02e6\u02e7\u0005\r\u0000\u0000\u02e7\u02ea\u0005\n\u0000\u0000"+ - "\u02e8\u02ea\u0007\u0005\u0000\u0000\u02e9\u02e6\u0001\u0000\u0000\u0000"+ - "\u02e9\u02e8\u0001\u0000\u0000\u0000\u02ea\u02eb\u0001\u0000\u0000\u0000"+ - "\u02eb\u02ec\u0006E\u0001\u0000\u02ec\u008c\u0001\u0000\u0000\u0000\u02ed"+ - "\u02f2\u0005\'\u0000\u0000\u02ee\u02f3\b\b\u0000\u0000\u02ef\u02f3\u0003"+ - "\u00a3Q\u0000\u02f0\u02f3\u0003\u009bM\u0000\u02f1\u02f3\u0003\u00a1P"+ - "\u0000\u02f2\u02ee\u0001\u0000\u0000\u0000\u02f2\u02ef\u0001\u0000\u0000"+ - "\u0000\u02f2\u02f0\u0001\u0000\u0000\u0000\u02f2\u02f1\u0001\u0000\u0000"+ - "\u0000\u02f3\u02f4\u0001\u0000\u0000\u0000\u02f4\u02f5\u0005\'\u0000\u0000"+ - "\u02f5\u008e\u0001\u0000\u0000\u0000\u02f6\u02f7\u0005\"\u0000\u0000\u02f7"+ - "\u02f8\u0005\\\u0000\u0000\u02f8\u02f9\u0005\\\u0000\u0000\u02f9\u0305"+ - "\u0005\"\u0000\u0000\u02fa\u0300\u0005\"\u0000\u0000\u02fb\u02fc\u0005"+ - "\\\u0000\u0000\u02fc\u02ff\u0005\"\u0000\u0000\u02fd\u02ff\b\t\u0000\u0000"+ - "\u02fe\u02fb\u0001\u0000\u0000\u0000\u02fe\u02fd\u0001\u0000\u0000\u0000"+ - "\u02ff\u0302\u0001\u0000\u0000\u0000\u0300\u0301\u0001\u0000\u0000\u0000"+ - "\u0300\u02fe\u0001\u0000\u0000\u0000\u0301\u0303\u0001\u0000\u0000\u0000"+ - "\u0302\u0300\u0001\u0000\u0000\u0000\u0303\u0305\u0005\"\u0000\u0000\u0304"+ - "\u02f6\u0001\u0000\u0000\u0000\u0304\u02fa\u0001\u0000\u0000\u0000\u0305"+ - "\u0090\u0001\u0000\u0000\u0000\u0306\u0307\u0005r\u0000\u0000\u0307\u0308"+ - "\u0003\u0093I\u0000\u0308\u0092\u0001\u0000\u0000\u0000\u0309\u030a\u0005"+ - "#\u0000\u0000\u030a\u030b\u0003\u0093I\u0000\u030b\u030c\u0005#\u0000"+ - "\u0000\u030c\u0316\u0001\u0000\u0000\u0000\u030d\u0311\u0005\"\u0000\u0000"+ - "\u030e\u0310\t\u0000\u0000\u0000\u030f\u030e\u0001\u0000\u0000\u0000\u0310"+ - "\u0313\u0001\u0000\u0000\u0000\u0311\u0312\u0001\u0000\u0000\u0000\u0311"+ - "\u030f\u0001\u0000\u0000\u0000\u0312\u0314\u0001\u0000\u0000\u0000\u0313"+ - "\u0311\u0001\u0000\u0000\u0000\u0314\u0316\u0005\"\u0000\u0000\u0315\u0309"+ - "\u0001\u0000\u0000\u0000\u0315\u030d\u0001\u0000\u0000\u0000\u0316\u0094"+ - "\u0001\u0000\u0000\u0000\u0317\u0318\u0005b\u0000\u0000\u0318\u0319\u0005"+ - "\'\u0000\u0000\u0319\u031d\u0001\u0000\u0000\u0000\u031a\u031e\t\u0000"+ - "\u0000\u0000\u031b\u031e\u0003\u00a3Q\u0000\u031c\u031e\u0003\u009dN\u0000"+ - "\u031d\u031a\u0001\u0000\u0000\u0000\u031d\u031b\u0001\u0000\u0000\u0000"+ - "\u031d\u031c\u0001\u0000\u0000\u0000\u031e\u031f\u0001\u0000\u0000\u0000"+ - "\u031f\u0320\u0005\'\u0000\u0000\u0320\u0096\u0001\u0000\u0000\u0000\u0321"+ - "\u0322\u0005b\u0000\u0000\u0322\u0323\u0005\"\u0000\u0000\u0323\u0329"+ - "\u0001\u0000\u0000\u0000\u0324\u0328\b\t\u0000\u0000\u0325\u0328\u0003"+ - "\u00a3Q\u0000\u0326\u0328\u0003\u009dN\u0000\u0327\u0324\u0001\u0000\u0000"+ - "\u0000\u0327\u0325\u0001\u0000\u0000\u0000\u0327\u0326\u0001\u0000\u0000"+ - "\u0000\u0328\u032b\u0001\u0000\u0000\u0000\u0329\u0327\u0001\u0000\u0000"+ - "\u0000\u0329\u032a\u0001\u0000\u0000\u0000\u032a\u032c\u0001\u0000\u0000"+ - "\u0000\u032b\u0329\u0001\u0000\u0000\u0000\u032c\u032d\u0005\"\u0000\u0000"+ - "\u032d\u0098\u0001\u0000\u0000\u0000\u032e\u032f\u0005b\u0000\u0000\u032f"+ - "\u0330\u0005r\u0000\u0000\u0330\u0331\u0001\u0000\u0000\u0000\u0331\u0332"+ - "\u0003\u0093I\u0000\u0332\u009a\u0001\u0000\u0000\u0000\u0333\u0334\u0005"+ - "\\\u0000\u0000\u0334\u0335\u0005x\u0000\u0000\u0335\u0336\u0001\u0000"+ - "\u0000\u0000\u0336\u0337\u0003\u00b7[\u0000\u0337\u0338\u0003\u00bb]\u0000"+ - "\u0338\u033b\u0001\u0000\u0000\u0000\u0339\u033b\u0003\u009fO\u0000\u033a"+ - "\u0333\u0001\u0000\u0000\u0000\u033a\u0339\u0001\u0000\u0000\u0000\u033b"+ - "\u009c\u0001\u0000\u0000\u0000\u033c\u033d\u0005\\\u0000\u0000\u033d\u033e"+ - "\u0005x\u0000\u0000\u033e\u033f\u0001\u0000\u0000\u0000\u033f\u0340\u0003"+ - "\u00bb]\u0000\u0340\u0341\u0003\u00bb]\u0000\u0341\u0344\u0001\u0000\u0000"+ - "\u0000\u0342\u0344\u0003\u009fO\u0000\u0343\u033c\u0001\u0000\u0000\u0000"+ - "\u0343\u0342\u0001\u0000\u0000\u0000\u0344\u009e\u0001\u0000\u0000\u0000"+ - "\u0345\u0346\u0005\\\u0000\u0000\u0346\u0347\u0007\n\u0000\u0000\u0347"+ - "\u00a0\u0001\u0000\u0000\u0000\u0348\u0349\u0005\\\u0000\u0000\u0349\u034a"+ - "\u0005u\u0000\u0000\u034a\u034b\u0005{\u0000\u0000\u034b\u034c\u0001\u0000"+ - "\u0000\u0000\u034c\u034e\u0003\u00bb]\u0000\u034d\u034f\u0003\u00bb]\u0000"+ - "\u034e\u034d\u0001\u0000\u0000\u0000\u034e\u034f\u0001\u0000\u0000\u0000"+ - "\u034f\u0351\u0001\u0000\u0000\u0000\u0350\u0352\u0003\u00bb]\u0000\u0351"+ - "\u0350\u0001\u0000\u0000\u0000\u0351\u0352\u0001\u0000\u0000\u0000\u0352"+ - "\u0354\u0001\u0000\u0000\u0000\u0353\u0355\u0003\u00bb]\u0000\u0354\u0353"+ - "\u0001\u0000\u0000\u0000\u0354\u0355\u0001\u0000\u0000\u0000\u0355\u0357"+ - "\u0001\u0000\u0000\u0000\u0356\u0358\u0003\u00bb]\u0000\u0357\u0356\u0001"+ - "\u0000\u0000\u0000\u0357\u0358\u0001\u0000\u0000\u0000\u0358\u035a\u0001"+ - "\u0000\u0000\u0000\u0359\u035b\u0003\u00bb]\u0000\u035a\u0359\u0001\u0000"+ - "\u0000\u0000\u035a\u035b\u0001\u0000\u0000\u0000\u035b\u035c\u0001\u0000"+ - "\u0000\u0000\u035c\u035d\u0005}\u0000\u0000\u035d\u00a2\u0001\u0000\u0000"+ - "\u0000\u035e\u035f\u0005\\\u0000\u0000\u035f\u0360\u0007\u000b\u0000\u0000"+ - "\u0360\u00a4\u0001\u0000\u0000\u0000\u0361\u0366\u0003\u00a7S\u0000\u0362"+ - "\u0366\u0003\u00adV\u0000\u0363\u0366\u0003\u00abU\u0000\u0364\u0366\u0003"+ - "\u00a9T\u0000\u0365\u0361\u0001\u0000\u0000\u0000\u0365\u0362\u0001\u0000"+ - "\u0000\u0000\u0365\u0363\u0001\u0000\u0000\u0000\u0365\u0364\u0001\u0000"+ - "\u0000\u0000\u0366\u0368\u0001\u0000\u0000\u0000\u0367\u0369\u0003\u00b1"+ - "X\u0000\u0368\u0367\u0001\u0000\u0000\u0000\u0368\u0369\u0001\u0000\u0000"+ - "\u0000\u0369\u00a6\u0001\u0000\u0000\u0000\u036a\u036f\u0003\u00b9\\\u0000"+ - "\u036b\u036e\u0003\u00b9\\\u0000\u036c\u036e\u0005_\u0000\u0000\u036d"+ - "\u036b\u0001\u0000\u0000\u0000\u036d\u036c\u0001\u0000\u0000\u0000\u036e"+ - "\u0371\u0001\u0000\u0000\u0000\u036f\u036d\u0001\u0000\u0000\u0000\u036f"+ - "\u0370\u0001\u0000\u0000\u0000\u0370\u00a8\u0001\u0000\u0000\u0000\u0371"+ - "\u036f\u0001\u0000\u0000\u0000\u0372\u0373\u00050\u0000\u0000\u0373\u0374"+ - "\u0005x\u0000\u0000\u0374\u0378\u0001\u0000\u0000\u0000\u0375\u0377\u0005"+ - "_\u0000\u0000\u0376\u0375\u0001\u0000\u0000\u0000\u0377\u037a\u0001\u0000"+ - "\u0000\u0000\u0378\u0376\u0001\u0000\u0000\u0000\u0378\u0379\u0001\u0000"+ - "\u0000\u0000\u0379\u037b\u0001\u0000\u0000\u0000\u037a\u0378\u0001\u0000"+ - "\u0000\u0000\u037b\u0380\u0003\u00bb]\u0000\u037c\u037f\u0003\u00bb]\u0000"+ - "\u037d\u037f\u0005_\u0000\u0000\u037e\u037c\u0001\u0000\u0000\u0000\u037e"+ - "\u037d\u0001\u0000\u0000\u0000\u037f\u0382\u0001\u0000\u0000\u0000\u0380"+ - "\u037e\u0001\u0000\u0000\u0000\u0380\u0381\u0001\u0000\u0000\u0000\u0381"+ - "\u00aa\u0001\u0000\u0000\u0000\u0382\u0380\u0001\u0000\u0000\u0000\u0383"+ - "\u0384\u00050\u0000\u0000\u0384\u0385\u0005o\u0000\u0000\u0385\u0389\u0001"+ - "\u0000\u0000\u0000\u0386\u0388\u0005_\u0000\u0000\u0387\u0386\u0001\u0000"+ - "\u0000\u0000\u0388\u038b\u0001\u0000\u0000\u0000\u0389\u0387\u0001\u0000"+ - "\u0000\u0000\u0389\u038a\u0001\u0000\u0000\u0000\u038a\u038c\u0001\u0000"+ - "\u0000\u0000\u038b\u0389\u0001\u0000\u0000\u0000\u038c\u0391\u0003\u00b7"+ - "[\u0000\u038d\u0390\u0003\u00b7[\u0000\u038e\u0390\u0005_\u0000\u0000"+ - "\u038f\u038d\u0001\u0000\u0000\u0000\u038f\u038e\u0001\u0000\u0000\u0000"+ - "\u0390\u0393\u0001\u0000\u0000\u0000\u0391\u038f\u0001\u0000\u0000\u0000"+ - "\u0391\u0392\u0001\u0000\u0000\u0000\u0392\u00ac\u0001\u0000\u0000\u0000"+ - "\u0393\u0391\u0001\u0000\u0000\u0000\u0394\u0395\u00050\u0000\u0000\u0395"+ - "\u0396\u0005b\u0000\u0000\u0396\u039a\u0001\u0000\u0000\u0000\u0397\u0399"+ - "\u0005_\u0000\u0000\u0398\u0397\u0001\u0000\u0000\u0000\u0399\u039c\u0001"+ - "\u0000\u0000\u0000\u039a\u0398\u0001\u0000\u0000\u0000\u039a\u039b\u0001"+ - "\u0000\u0000\u0000\u039b\u039d\u0001\u0000\u0000\u0000\u039c\u039a\u0001"+ - "\u0000\u0000\u0000\u039d\u03a1\u0007\f\u0000\u0000\u039e\u03a0\u0007\r"+ - "\u0000\u0000\u039f\u039e\u0001\u0000\u0000\u0000\u03a0\u03a3\u0001\u0000"+ - "\u0000\u0000\u03a1\u039f\u0001\u0000\u0000\u0000\u03a1\u03a2\u0001\u0000"+ - "\u0000\u0000\u03a2\u00ae\u0001\u0000\u0000\u0000\u03a3\u03a1\u0001\u0000"+ - "\u0000\u0000\u03a4\u03b4\u0004W\u0001\u0000\u03a5\u03a6\u0003\u00a7S\u0000"+ - "\u03a6\u03a7\u0005.\u0000\u0000\u03a7\u03a8\u0004W\u0002\u0000\u03a8\u03b5"+ - "\u0001\u0000\u0000\u0000\u03a9\u03ac\u0003\u00a7S\u0000\u03aa\u03ab\u0005"+ - ".\u0000\u0000\u03ab\u03ad\u0003\u00a7S\u0000\u03ac\u03aa\u0001\u0000\u0000"+ - "\u0000\u03ac\u03ad\u0001\u0000\u0000\u0000\u03ad\u03af\u0001\u0000\u0000"+ - "\u0000\u03ae\u03b0\u0003\u00b5Z\u0000\u03af\u03ae\u0001\u0000\u0000\u0000"+ - "\u03af\u03b0\u0001\u0000\u0000\u0000\u03b0\u03b2\u0001\u0000\u0000\u0000"+ - "\u03b1\u03b3\u0003\u00b3Y\u0000\u03b2\u03b1\u0001\u0000\u0000\u0000\u03b2"+ - "\u03b3\u0001\u0000\u0000\u0000\u03b3\u03b5\u0001\u0000\u0000\u0000\u03b4"+ - "\u03a5\u0001\u0000\u0000\u0000\u03b4\u03a9\u0001\u0000\u0000\u0000\u03b5"+ - "\u00b0\u0001\u0000\u0000\u0000\u03b6\u03b7\u0005u\u0000\u0000\u03b7\u03df"+ - "\u00058\u0000\u0000\u03b8\u03b9\u0005u\u0000\u0000\u03b9\u03ba\u00051"+ - "\u0000\u0000\u03ba\u03df\u00056\u0000\u0000\u03bb\u03bc\u0005u\u0000\u0000"+ - "\u03bc\u03bd\u00053\u0000\u0000\u03bd\u03df\u00052\u0000\u0000\u03be\u03bf"+ - "\u0005u\u0000\u0000\u03bf\u03c0\u00056\u0000\u0000\u03c0\u03df\u00054"+ - "\u0000\u0000\u03c1\u03c2\u0005u\u0000\u0000\u03c2\u03c3\u00051\u0000\u0000"+ - "\u03c3\u03c4\u00052\u0000\u0000\u03c4\u03df\u00058\u0000\u0000\u03c5\u03c6"+ - "\u0005u\u0000\u0000\u03c6\u03c7\u0005s\u0000\u0000\u03c7\u03c8\u0005i"+ - "\u0000\u0000\u03c8\u03c9\u0005z\u0000\u0000\u03c9\u03df\u0005e\u0000\u0000"+ - "\u03ca\u03cb\u0005i\u0000\u0000\u03cb\u03df\u00058\u0000\u0000\u03cc\u03cd"+ - "\u0005i\u0000\u0000\u03cd\u03ce\u00051\u0000\u0000\u03ce\u03df\u00056"+ - "\u0000\u0000\u03cf\u03d0\u0005i\u0000\u0000\u03d0\u03d1\u00053\u0000\u0000"+ - "\u03d1\u03df\u00052\u0000\u0000\u03d2\u03d3\u0005i\u0000\u0000\u03d3\u03d4"+ - "\u00056\u0000\u0000\u03d4\u03df\u00054\u0000\u0000\u03d5\u03d6\u0005i"+ - "\u0000\u0000\u03d6\u03d7\u00051\u0000\u0000\u03d7\u03d8\u00052\u0000\u0000"+ - "\u03d8\u03df\u00058\u0000\u0000\u03d9\u03da\u0005i\u0000\u0000\u03da\u03db"+ - "\u0005s\u0000\u0000\u03db\u03dc\u0005i\u0000\u0000\u03dc\u03dd\u0005z"+ - "\u0000\u0000\u03dd\u03df\u0005e\u0000\u0000\u03de\u03b6\u0001\u0000\u0000"+ - "\u0000\u03de\u03b8\u0001\u0000\u0000\u0000\u03de\u03bb\u0001\u0000\u0000"+ - "\u0000\u03de\u03be\u0001\u0000\u0000\u0000\u03de\u03c1\u0001\u0000\u0000"+ - "\u0000\u03de\u03c5\u0001\u0000\u0000\u0000\u03de\u03ca\u0001\u0000\u0000"+ - "\u0000\u03de\u03cc\u0001\u0000\u0000\u0000\u03de\u03cf\u0001\u0000\u0000"+ - "\u0000\u03de\u03d2\u0001\u0000\u0000\u0000\u03de\u03d5\u0001\u0000\u0000"+ - "\u0000\u03de\u03d9\u0001\u0000\u0000\u0000\u03df\u00b2\u0001\u0000\u0000"+ - "\u0000\u03e0\u03e1\u0005f\u0000\u0000\u03e1\u03e2\u00053\u0000\u0000\u03e2"+ - "\u03e7\u00052\u0000\u0000\u03e3\u03e4\u0005f\u0000\u0000\u03e4\u03e5\u0005"+ - "6\u0000\u0000\u03e5\u03e7\u00054\u0000\u0000\u03e6\u03e0\u0001\u0000\u0000"+ - "\u0000\u03e6\u03e3\u0001\u0000\u0000\u0000\u03e7\u00b4\u0001\u0000\u0000"+ - "\u0000\u03e8\u03ea\u0007\u000e\u0000\u0000\u03e9\u03eb\u0007\u000f\u0000"+ - "\u0000\u03ea\u03e9\u0001\u0000\u0000\u0000\u03ea\u03eb\u0001\u0000\u0000"+ - "\u0000\u03eb\u03ef\u0001\u0000\u0000\u0000\u03ec\u03ee\u0005_\u0000\u0000"+ - "\u03ed\u03ec\u0001\u0000\u0000\u0000\u03ee\u03f1\u0001\u0000\u0000\u0000"+ - "\u03ef\u03ed\u0001\u0000\u0000\u0000\u03ef\u03f0\u0001\u0000\u0000\u0000"+ - "\u03f0\u03f2\u0001\u0000\u0000\u0000\u03f1\u03ef\u0001\u0000\u0000\u0000"+ - "\u03f2\u03f3\u0003\u00a7S\u0000\u03f3\u00b6\u0001\u0000\u0000\u0000\u03f4"+ - "\u03f5\u0007\u0010\u0000\u0000\u03f5\u00b8\u0001\u0000\u0000\u0000\u03f6"+ - "\u03f7\u0007\u0011\u0000\u0000\u03f7\u00ba\u0001\u0000\u0000\u0000\u03f8"+ - "\u03f9\u0007\u0012\u0000\u0000\u03f9\u00bc\u0001\u0000\u0000\u0000\u03fa"+ - "\u03fb\u0005\'\u0000\u0000\u03fb\u03fc\u0003q8\u0000\u03fc\u00be\u0001"+ - "\u0000\u0000\u0000\u03fd\u03fe\u0005+\u0000\u0000\u03fe\u00c0\u0001\u0000"+ - "\u0000\u0000\u03ff\u0400\u0005-\u0000\u0000\u0400\u00c2\u0001\u0000\u0000"+ - "\u0000\u0401\u0402\u0005*\u0000\u0000\u0402\u00c4\u0001\u0000\u0000\u0000"+ - "\u0403\u0404\u0005/\u0000\u0000\u0404\u00c6\u0001\u0000\u0000\u0000\u0405"+ - "\u0406\u0005%\u0000\u0000\u0406\u00c8\u0001\u0000\u0000\u0000\u0407\u0408"+ - "\u0005^\u0000\u0000\u0408\u00ca\u0001\u0000\u0000\u0000\u0409\u040a\u0005"+ - "!\u0000\u0000\u040a\u00cc\u0001\u0000\u0000\u0000\u040b\u040c\u0005&\u0000"+ - "\u0000\u040c\u00ce\u0001\u0000\u0000\u0000\u040d\u040e\u0005|\u0000\u0000"+ - "\u040e\u00d0\u0001\u0000\u0000\u0000\u040f\u0410\u0005&\u0000\u0000\u0410"+ - "\u0411\u0005&\u0000\u0000\u0411\u00d2\u0001\u0000\u0000\u0000\u0412\u0413"+ - "\u0005|\u0000\u0000\u0413\u0414\u0005|\u0000\u0000\u0414\u00d4\u0001\u0000"+ - "\u0000\u0000\u0415\u0416\u0005+\u0000\u0000\u0416\u0417\u0005=\u0000\u0000"+ - "\u0417\u00d6\u0001\u0000\u0000\u0000\u0418\u0419\u0005-\u0000\u0000\u0419"+ - "\u041a\u0005=\u0000\u0000\u041a\u00d8\u0001\u0000\u0000\u0000\u041b\u041c"+ - "\u0005*\u0000\u0000\u041c\u041d\u0005=\u0000\u0000\u041d\u00da\u0001\u0000"+ - "\u0000\u0000\u041e\u041f\u0005/\u0000\u0000\u041f\u0420\u0005=\u0000\u0000"+ - "\u0420\u00dc\u0001\u0000\u0000\u0000\u0421\u0422\u0005%\u0000\u0000\u0422"+ - "\u0423\u0005=\u0000\u0000\u0423\u00de\u0001\u0000\u0000\u0000\u0424\u0425"+ - "\u0005^\u0000\u0000\u0425\u0426\u0005=\u0000\u0000\u0426\u00e0\u0001\u0000"+ - "\u0000\u0000\u0427\u0428\u0005&\u0000\u0000\u0428\u0429\u0005=\u0000\u0000"+ - "\u0429\u00e2\u0001\u0000\u0000\u0000\u042a\u042b\u0005|\u0000\u0000\u042b"+ - "\u042c\u0005=\u0000\u0000\u042c\u00e4\u0001\u0000\u0000\u0000\u042d\u042e"+ - "\u0005<\u0000\u0000\u042e\u042f\u0005<\u0000\u0000\u042f\u0430\u0005="+ - "\u0000\u0000\u0430\u00e6\u0001\u0000\u0000\u0000\u0431\u0432\u0005>\u0000"+ - "\u0000\u0432\u0433\u0005>\u0000\u0000\u0433\u0434\u0005=\u0000\u0000\u0434"+ - "\u00e8\u0001\u0000\u0000\u0000\u0435\u0436\u0005=\u0000\u0000\u0436\u00ea"+ - "\u0001\u0000\u0000\u0000\u0437\u0438\u0005=\u0000\u0000\u0438\u0439\u0005"+ - "=\u0000\u0000\u0439\u00ec\u0001\u0000\u0000\u0000\u043a\u043b\u0005!\u0000"+ - "\u0000\u043b\u043c\u0005=\u0000\u0000\u043c\u00ee\u0001\u0000\u0000\u0000"+ - "\u043d\u043e\u0005>\u0000\u0000\u043e\u00f0\u0001\u0000\u0000\u0000\u043f"+ - "\u0440\u0005<\u0000\u0000\u0440\u00f2\u0001\u0000\u0000\u0000\u0441\u0442"+ - "\u0005>\u0000\u0000\u0442\u0443\u0005=\u0000\u0000\u0443\u00f4\u0001\u0000"+ - "\u0000\u0000\u0444\u0445\u0005<\u0000\u0000\u0445\u0446\u0005=\u0000\u0000"+ - "\u0446\u00f6\u0001\u0000\u0000\u0000\u0447\u0448\u0005@\u0000\u0000\u0448"+ - "\u00f8\u0001\u0000\u0000\u0000\u0449\u044a\u0005_\u0000\u0000\u044a\u00fa"+ - "\u0001\u0000\u0000\u0000\u044b\u044c\u0005.\u0000\u0000\u044c\u00fc\u0001"+ - "\u0000\u0000\u0000\u044d\u044e\u0005.\u0000\u0000\u044e\u044f\u0005.\u0000"+ - "\u0000\u044f\u00fe\u0001\u0000\u0000\u0000\u0450\u0451\u0005.\u0000\u0000"+ - "\u0451\u0452\u0005.\u0000\u0000\u0452\u0453\u0005.\u0000\u0000\u0453\u0100"+ - "\u0001\u0000\u0000\u0000\u0454\u0455\u0005.\u0000\u0000\u0455\u0456\u0005"+ - ".\u0000\u0000\u0456\u0457\u0005=\u0000\u0000\u0457\u0102\u0001\u0000\u0000"+ - "\u0000\u0458\u0459\u0005,\u0000\u0000\u0459\u0104\u0001\u0000\u0000\u0000"+ - "\u045a\u045b\u0005;\u0000\u0000\u045b\u0106\u0001\u0000\u0000\u0000\u045c"+ - "\u045d\u0005:\u0000\u0000\u045d\u0108\u0001\u0000\u0000\u0000\u045e\u045f"+ - "\u0005:\u0000\u0000\u045f\u0460\u0005:\u0000\u0000\u0460\u010a\u0001\u0000"+ - "\u0000\u0000\u0461\u0462\u0005-\u0000\u0000\u0462\u0463\u0005>\u0000\u0000"+ - "\u0463\u010c\u0001\u0000\u0000\u0000\u0464\u0465\u0005=\u0000\u0000\u0465"+ - "\u0466\u0005>\u0000\u0000\u0466\u010e\u0001\u0000\u0000\u0000\u0467\u0468"+ - "\u0005#\u0000\u0000\u0468\u0110\u0001\u0000\u0000\u0000\u0469\u046a\u0005"+ - "$\u0000\u0000\u046a\u0112\u0001\u0000\u0000\u0000\u046b\u046c\u0005?\u0000"+ - "\u0000\u046c\u0114\u0001\u0000\u0000\u0000\u046d\u046e\u0005{\u0000\u0000"+ - "\u046e\u0116\u0001\u0000\u0000\u0000\u046f\u0470\u0005}\u0000\u0000\u0470"+ - "\u0118\u0001\u0000\u0000\u0000\u0471\u0472\u0005[\u0000\u0000\u0472\u011a"+ - "\u0001\u0000\u0000\u0000\u0473\u0474\u0005]\u0000\u0000\u0474\u011c\u0001"+ - "\u0000\u0000\u0000\u0475\u0476\u0005(\u0000\u0000\u0476\u011e\u0001\u0000"+ - "\u0000\u0000\u0477\u0478\u0005)\u0000\u0000\u0478\u0120\u0001\u0000\u0000"+ - "\u0000\u0479\u047a\u0005\'\u0000\u0000\u047a\u0122\u0001\u0000\u0000\u0000"+ - "\u047b\u047c\u0005\"\u0000\u0000\u047c\u0124\u0001\u0000\u0000\u0000\u047d"+ - "\u047e\u0005\\\u0000\u0000\u047e\u0126\u0001\u0000\u0000\u00007\u0000"+ - "\u0268\u026f\u0271\u0275\u027a\u028b\u0290\u0295\u029f\u02a1\u02ae\u02b0"+ - "\u02bf\u02cc\u02cf\u02d5\u02dd\u02e9\u02f2\u02fe\u0300\u0304\u0311\u0315"+ - "\u031d\u0327\u0329\u033a\u0343\u034e\u0351\u0354\u0357\u035a\u0365\u0368"+ - "\u036d\u036f\u0378\u037e\u0380\u0389\u038f\u0391\u039a\u03a1\u03ac\u03af"+ - "\u03b2\u03b4\u03de\u03e6\u03ea\u03ef\u0002\u0000\u0002\u0000\u0000\u0001"+ - "\u0000"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParser.java b/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParser.java deleted file mode 100644 index 58d79d88847f..000000000000 --- a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParser.java +++ /dev/null @@ -1,17984 +0,0 @@ -// Generated from java-escape by ANTLR 4.11.1 -package org.netbeans.modules.rust.grammar.antlr4; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -// DO NOT MODIFY THIS FILE! -// This file is generated file from RustParser.g4 at compile time! - - -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.misc.*; -import org.antlr.v4.runtime.tree.*; -import java.util.List; -import java.util.Iterator; -import java.util.ArrayList; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) -public class RustParser extends RustParserBase { - static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - KW_AS=1, KW_BREAK=2, KW_CONST=3, KW_CONTINUE=4, KW_CRATE=5, KW_ELSE=6, - KW_ENUM=7, KW_EXTERN=8, KW_FALSE=9, KW_FN=10, KW_FOR=11, KW_IF=12, KW_IMPL=13, - KW_IN=14, KW_LET=15, KW_LOOP=16, KW_MATCH=17, KW_MOD=18, KW_MOVE=19, KW_MUT=20, - KW_PUB=21, KW_REF=22, KW_RETURN=23, KW_SELFVALUE=24, KW_SELFTYPE=25, KW_STATIC=26, - KW_STRUCT=27, KW_SUPER=28, KW_TRAIT=29, KW_TRUE=30, KW_TYPE=31, KW_UNSAFE=32, - KW_USE=33, KW_WHERE=34, KW_WHILE=35, KW_ASYNC=36, KW_AWAIT=37, KW_DYN=38, - KW_ABSTRACT=39, KW_BECOME=40, KW_BOX=41, KW_DO=42, KW_FINAL=43, KW_MACRO=44, - KW_OVERRIDE=45, KW_PRIV=46, KW_TYPEOF=47, KW_UNSIZED=48, KW_VIRTUAL=49, - KW_YIELD=50, KW_TRY=51, KW_UNION=52, KW_STATICLIFETIME=53, KW_MACRORULES=54, - KW_UNDERLINELIFETIME=55, KW_DOLLARCRATE=56, NON_KEYWORD_IDENTIFIER=57, - RAW_IDENTIFIER=58, LINE_COMMENT=59, INNER_BLOCK_DOC=60, BLOCK_COMMENT=61, - INNER_LINE_DOC=62, OUTER_LINE_DOC=63, SHEBANG=64, WHITESPACE=65, NEWLINE=66, - CHAR_LITERAL=67, STRING_LITERAL=68, RAW_STRING_LITERAL=69, BYTE_LITERAL=70, - BYTE_STRING_LITERAL=71, RAW_BYTE_STRING_LITERAL=72, INTEGER_LITERAL=73, - DEC_LITERAL=74, HEX_LITERAL=75, OCT_LITERAL=76, BIN_LITERAL=77, FLOAT_LITERAL=78, - LIFETIME_OR_LABEL=79, PLUS=80, MINUS=81, STAR=82, SLASH=83, PERCENT=84, - CARET=85, NOT=86, AND=87, OR=88, ANDAND=89, OROR=90, PLUSEQ=91, MINUSEQ=92, - STAREQ=93, SLASHEQ=94, PERCENTEQ=95, CARETEQ=96, ANDEQ=97, OREQ=98, SHLEQ=99, - SHREQ=100, EQ=101, EQEQ=102, NE=103, GT=104, LT=105, GE=106, LE=107, AT=108, - UNDERSCORE=109, DOT=110, DOTDOT=111, DOTDOTDOT=112, DOTDOTEQ=113, COMMA=114, - SEMI=115, COLON=116, PATHSEP=117, RARROW=118, FATARROW=119, POUND=120, - DOLLAR=121, QUESTION=122, LCURLYBRACE=123, RCURLYBRACE=124, LSQUAREBRACKET=125, - RSQUAREBRACKET=126, LPAREN=127, RPAREN=128, SINGLEQUOTE=129, DOUBLEQUOTE=130, - BACKSLASH=131; - public static final int - RULE_crate = 0, RULE_macroInvocation = 1, RULE_delimTokenTree = 2, RULE_tokenTree = 3, - RULE_tokenTreeToken = 4, RULE_macroInvocationSemi = 5, RULE_macroRulesDefinition = 6, - RULE_macroRulesDef = 7, RULE_macroRules = 8, RULE_macroRule = 9, RULE_macroMatcher = 10, - RULE_macroMatch = 11, RULE_macroMatchToken = 12, RULE_macroFragSpec = 13, - RULE_macroRepSep = 14, RULE_macroRepOp = 15, RULE_macroTranscriber = 16, - RULE_item = 17, RULE_visItem = 18, RULE_macroItem = 19, RULE_module = 20, - RULE_externCrate = 21, RULE_crateRef = 22, RULE_asClause = 23, RULE_useDeclaration = 24, - RULE_useTree = 25, RULE_function_ = 26, RULE_functionQualifiers = 27, - RULE_abi = 28, RULE_functionParameters = 29, RULE_selfParam = 30, RULE_shorthandSelf = 31, - RULE_typedSelf = 32, RULE_functionParam = 33, RULE_functionParamPattern = 34, - RULE_functionReturnType = 35, RULE_typeAlias = 36, RULE_struct_ = 37, - RULE_structStruct = 38, RULE_tupleStruct = 39, RULE_structFields = 40, - RULE_structField = 41, RULE_tupleFields = 42, RULE_tupleField = 43, RULE_enumeration = 44, - RULE_enumItems = 45, RULE_enumItem = 46, RULE_enumItemTuple = 47, RULE_enumItemStruct = 48, - RULE_enumItemDiscriminant = 49, RULE_union_ = 50, RULE_constantItem = 51, - RULE_staticItem = 52, RULE_trait_ = 53, RULE_implementation = 54, RULE_inherentImpl = 55, - RULE_traitImpl = 56, RULE_externBlock = 57, RULE_externalItem = 58, RULE_genericParams = 59, - RULE_genericParam = 60, RULE_lifetimeParam = 61, RULE_typeParam = 62, - RULE_constParam = 63, RULE_whereClause = 64, RULE_whereClauseItem = 65, - RULE_lifetimeWhereClauseItem = 66, RULE_typeBoundWhereClauseItem = 67, - RULE_forLifetimes = 68, RULE_associatedItem = 69, RULE_innerAttribute = 70, - RULE_outerAttribute = 71, RULE_attr = 72, RULE_attrInput = 73, RULE_statement = 74, - RULE_letStatement = 75, RULE_expressionStatement = 76, RULE_expression = 77, - RULE_shiftOperator = 78, RULE_comparisonOperator = 79, RULE_compoundAssignOperator = 80, - RULE_expressionWithBlock = 81, RULE_literalExpression = 82, RULE_pathExpression = 83, - RULE_blockExpression = 84, RULE_statements = 85, RULE_asyncBlockExpression = 86, - RULE_unsafeBlockExpression = 87, RULE_arrayElements = 88, RULE_tupleElements = 89, - RULE_tupleIndex = 90, RULE_structExpression = 91, RULE_structExprStruct = 92, - RULE_structExprFields = 93, RULE_structExprField = 94, RULE_structBase = 95, - RULE_structExprTuple = 96, RULE_structExprUnit = 97, RULE_enumerationVariantExpression = 98, - RULE_enumExprStruct = 99, RULE_enumExprFields = 100, RULE_enumExprField = 101, - RULE_enumExprTuple = 102, RULE_enumExprFieldless = 103, RULE_callParams = 104, - RULE_closureExpression = 105, RULE_closureParameters = 106, RULE_closureParam = 107, - RULE_loopExpression = 108, RULE_infiniteLoopExpression = 109, RULE_predicateLoopExpression = 110, - RULE_predicatePatternLoopExpression = 111, RULE_iteratorLoopExpression = 112, - RULE_loopLabel = 113, RULE_ifExpression = 114, RULE_ifLetExpression = 115, - RULE_matchExpression = 116, RULE_matchArms = 117, RULE_matchArmExpression = 118, - RULE_matchArm = 119, RULE_matchArmGuard = 120, RULE_pattern = 121, RULE_patternNoTopAlt = 122, - RULE_patternWithoutRange = 123, RULE_literalPattern = 124, RULE_identifierPattern = 125, - RULE_wildcardPattern = 126, RULE_restPattern = 127, RULE_rangePattern = 128, - RULE_rangePatternBound = 129, RULE_referencePattern = 130, RULE_structPattern = 131, - RULE_structPatternElements = 132, RULE_structPatternFields = 133, RULE_structPatternField = 134, - RULE_structPatternEtCetera = 135, RULE_tupleStructPattern = 136, RULE_tupleStructItems = 137, - RULE_tuplePattern = 138, RULE_tuplePatternItems = 139, RULE_groupedPattern = 140, - RULE_slicePattern = 141, RULE_slicePatternItems = 142, RULE_pathPattern = 143, - RULE_type_ = 144, RULE_typeNoBounds = 145, RULE_parenthesizedType = 146, - RULE_neverType = 147, RULE_tupleType = 148, RULE_arrayType = 149, RULE_sliceType = 150, - RULE_referenceType = 151, RULE_rawPointerType = 152, RULE_bareFunctionType = 153, - RULE_functionTypeQualifiers = 154, RULE_bareFunctionReturnType = 155, - RULE_functionParametersMaybeNamedVariadic = 156, RULE_maybeNamedFunctionParameters = 157, - RULE_maybeNamedParam = 158, RULE_maybeNamedFunctionParametersVariadic = 159, - RULE_traitObjectType = 160, RULE_traitObjectTypeOneBound = 161, RULE_implTraitType = 162, - RULE_implTraitTypeOneBound = 163, RULE_inferredType = 164, RULE_typeParamBounds = 165, - RULE_typeParamBound = 166, RULE_traitBound = 167, RULE_lifetimeBounds = 168, - RULE_lifetime = 169, RULE_simplePath = 170, RULE_simplePathSegment = 171, - RULE_pathInExpression = 172, RULE_pathExprSegment = 173, RULE_pathIdentSegment = 174, - RULE_genericArgs = 175, RULE_genericArg = 176, RULE_genericArgsConst = 177, - RULE_genericArgsLifetimes = 178, RULE_genericArgsTypes = 179, RULE_genericArgsBindings = 180, - RULE_genericArgsBinding = 181, RULE_qualifiedPathInExpression = 182, RULE_qualifiedPathType = 183, - RULE_qualifiedPathInType = 184, RULE_typePath = 185, RULE_typePathSegment = 186, - RULE_typePathFn = 187, RULE_typePathInputs = 188, RULE_visibility = 189, - RULE_identifier = 190, RULE_keyword = 191, RULE_macroIdentifierLikeToken = 192, - RULE_macroLiteralToken = 193, RULE_macroPunctuationToken = 194, RULE_shl = 195, - RULE_shr = 196; - private static String[] makeRuleNames() { - return new String[] { - "crate", "macroInvocation", "delimTokenTree", "tokenTree", "tokenTreeToken", - "macroInvocationSemi", "macroRulesDefinition", "macroRulesDef", "macroRules", - "macroRule", "macroMatcher", "macroMatch", "macroMatchToken", "macroFragSpec", - "macroRepSep", "macroRepOp", "macroTranscriber", "item", "visItem", "macroItem", - "module", "externCrate", "crateRef", "asClause", "useDeclaration", "useTree", - "function_", "functionQualifiers", "abi", "functionParameters", "selfParam", - "shorthandSelf", "typedSelf", "functionParam", "functionParamPattern", - "functionReturnType", "typeAlias", "struct_", "structStruct", "tupleStruct", - "structFields", "structField", "tupleFields", "tupleField", "enumeration", - "enumItems", "enumItem", "enumItemTuple", "enumItemStruct", "enumItemDiscriminant", - "union_", "constantItem", "staticItem", "trait_", "implementation", "inherentImpl", - "traitImpl", "externBlock", "externalItem", "genericParams", "genericParam", - "lifetimeParam", "typeParam", "constParam", "whereClause", "whereClauseItem", - "lifetimeWhereClauseItem", "typeBoundWhereClauseItem", "forLifetimes", - "associatedItem", "innerAttribute", "outerAttribute", "attr", "attrInput", - "statement", "letStatement", "expressionStatement", "expression", "shiftOperator", - "comparisonOperator", "compoundAssignOperator", "expressionWithBlock", - "literalExpression", "pathExpression", "blockExpression", "statements", - "asyncBlockExpression", "unsafeBlockExpression", "arrayElements", "tupleElements", - "tupleIndex", "structExpression", "structExprStruct", "structExprFields", - "structExprField", "structBase", "structExprTuple", "structExprUnit", - "enumerationVariantExpression", "enumExprStruct", "enumExprFields", "enumExprField", - "enumExprTuple", "enumExprFieldless", "callParams", "closureExpression", - "closureParameters", "closureParam", "loopExpression", "infiniteLoopExpression", - "predicateLoopExpression", "predicatePatternLoopExpression", "iteratorLoopExpression", - "loopLabel", "ifExpression", "ifLetExpression", "matchExpression", "matchArms", - "matchArmExpression", "matchArm", "matchArmGuard", "pattern", "patternNoTopAlt", - "patternWithoutRange", "literalPattern", "identifierPattern", "wildcardPattern", - "restPattern", "rangePattern", "rangePatternBound", "referencePattern", - "structPattern", "structPatternElements", "structPatternFields", "structPatternField", - "structPatternEtCetera", "tupleStructPattern", "tupleStructItems", "tuplePattern", - "tuplePatternItems", "groupedPattern", "slicePattern", "slicePatternItems", - "pathPattern", "type_", "typeNoBounds", "parenthesizedType", "neverType", - "tupleType", "arrayType", "sliceType", "referenceType", "rawPointerType", - "bareFunctionType", "functionTypeQualifiers", "bareFunctionReturnType", - "functionParametersMaybeNamedVariadic", "maybeNamedFunctionParameters", - "maybeNamedParam", "maybeNamedFunctionParametersVariadic", "traitObjectType", - "traitObjectTypeOneBound", "implTraitType", "implTraitTypeOneBound", - "inferredType", "typeParamBounds", "typeParamBound", "traitBound", "lifetimeBounds", - "lifetime", "simplePath", "simplePathSegment", "pathInExpression", "pathExprSegment", - "pathIdentSegment", "genericArgs", "genericArg", "genericArgsConst", - "genericArgsLifetimes", "genericArgsTypes", "genericArgsBindings", "genericArgsBinding", - "qualifiedPathInExpression", "qualifiedPathType", "qualifiedPathInType", - "typePath", "typePathSegment", "typePathFn", "typePathInputs", "visibility", - "identifier", "keyword", "macroIdentifierLikeToken", "macroLiteralToken", - "macroPunctuationToken", "shl", "shr" - }; - } - public static final String[] ruleNames = makeRuleNames(); - - private static String[] makeLiteralNames() { - return new String[] { - null, "'as'", "'break'", "'const'", "'continue'", "'crate'", "'else'", - "'enum'", "'extern'", "'false'", "'fn'", "'for'", "'if'", "'impl'", "'in'", - "'let'", "'loop'", "'match'", "'mod'", "'move'", "'mut'", "'pub'", "'ref'", - "'return'", "'self'", "'Self'", "'static'", "'struct'", "'super'", "'trait'", - "'true'", "'type'", "'unsafe'", "'use'", "'where'", "'while'", "'async'", - "'await'", "'dyn'", "'abstract'", "'become'", "'box'", "'do'", "'final'", - "'macro'", "'override'", "'priv'", "'typeof'", "'unsized'", "'virtual'", - "'yield'", "'try'", "'union'", "''static'", "'macro_rules'", "''_'", - "'$crate'", null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, - null, "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "'!'", "'&'", "'|'", - "'&&'", "'||'", "'+='", "'-='", "'*='", "'/='", "'%='", "'^='", "'&='", - "'|='", "'<<='", "'>>='", "'='", "'=='", "'!='", "'>'", "'<'", "'>='", - "'<='", "'@'", "'_'", "'.'", "'..'", "'...'", "'..='", "','", "';'", - "':'", "'::'", "'->'", "'=>'", "'#'", "'$'", "'?'", "'{'", "'}'", "'['", - "']'", "'('", "')'", "'''", "'\"'", "'\\'" - }; - } - private static final String[] _LITERAL_NAMES = makeLiteralNames(); - private static String[] makeSymbolicNames() { - return new String[] { - null, "KW_AS", "KW_BREAK", "KW_CONST", "KW_CONTINUE", "KW_CRATE", "KW_ELSE", - "KW_ENUM", "KW_EXTERN", "KW_FALSE", "KW_FN", "KW_FOR", "KW_IF", "KW_IMPL", - "KW_IN", "KW_LET", "KW_LOOP", "KW_MATCH", "KW_MOD", "KW_MOVE", "KW_MUT", - "KW_PUB", "KW_REF", "KW_RETURN", "KW_SELFVALUE", "KW_SELFTYPE", "KW_STATIC", - "KW_STRUCT", "KW_SUPER", "KW_TRAIT", "KW_TRUE", "KW_TYPE", "KW_UNSAFE", - "KW_USE", "KW_WHERE", "KW_WHILE", "KW_ASYNC", "KW_AWAIT", "KW_DYN", "KW_ABSTRACT", - "KW_BECOME", "KW_BOX", "KW_DO", "KW_FINAL", "KW_MACRO", "KW_OVERRIDE", - "KW_PRIV", "KW_TYPEOF", "KW_UNSIZED", "KW_VIRTUAL", "KW_YIELD", "KW_TRY", - "KW_UNION", "KW_STATICLIFETIME", "KW_MACRORULES", "KW_UNDERLINELIFETIME", - "KW_DOLLARCRATE", "NON_KEYWORD_IDENTIFIER", "RAW_IDENTIFIER", "LINE_COMMENT", - "INNER_BLOCK_DOC", "BLOCK_COMMENT", "INNER_LINE_DOC", "OUTER_LINE_DOC", - "SHEBANG", "WHITESPACE", "NEWLINE", "CHAR_LITERAL", "STRING_LITERAL", - "RAW_STRING_LITERAL", "BYTE_LITERAL", "BYTE_STRING_LITERAL", "RAW_BYTE_STRING_LITERAL", - "INTEGER_LITERAL", "DEC_LITERAL", "HEX_LITERAL", "OCT_LITERAL", "BIN_LITERAL", - "FLOAT_LITERAL", "LIFETIME_OR_LABEL", "PLUS", "MINUS", "STAR", "SLASH", - "PERCENT", "CARET", "NOT", "AND", "OR", "ANDAND", "OROR", "PLUSEQ", "MINUSEQ", - "STAREQ", "SLASHEQ", "PERCENTEQ", "CARETEQ", "ANDEQ", "OREQ", "SHLEQ", - "SHREQ", "EQ", "EQEQ", "NE", "GT", "LT", "GE", "LE", "AT", "UNDERSCORE", - "DOT", "DOTDOT", "DOTDOTDOT", "DOTDOTEQ", "COMMA", "SEMI", "COLON", "PATHSEP", - "RARROW", "FATARROW", "POUND", "DOLLAR", "QUESTION", "LCURLYBRACE", "RCURLYBRACE", - "LSQUAREBRACKET", "RSQUAREBRACKET", "LPAREN", "RPAREN", "SINGLEQUOTE", - "DOUBLEQUOTE", "BACKSLASH" - }; - } - private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - @Override - public String getGrammarFileName() { return "java-escape"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public ATN getATN() { return _ATN; } - - public RustParser(TokenStream input) { - super(input); - _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - - @SuppressWarnings("CheckReturnValue") - public static class CrateContext extends ParserRuleContext { - public TerminalNode EOF() { return getToken(RustParser.EOF, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public List item() { - return getRuleContexts(ItemContext.class); - } - public ItemContext item(int i) { - return getRuleContext(ItemContext.class,i); - } - public CrateContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_crate; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitCrate(this); - else return visitor.visitChildren(this); - } - } - - public final CrateContext crate() throws RecognitionException { - CrateContext _localctx = new CrateContext(_ctx, getState()); - enterRule(_localctx, 0, RULE_crate); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(397); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,0,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(394); - innerAttribute(); - } - } - } - setState(399); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,0,_ctx); - } - setState(403); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 526921241179989416L) != 0 || _la==PATHSEP || _la==POUND) { - { - { - setState(400); - item(); - } - } - setState(405); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(406); - match(EOF); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroInvocationContext extends ParserRuleContext { - public SimplePathContext simplePath() { - return getRuleContext(SimplePathContext.class,0); - } - public TerminalNode NOT() { return getToken(RustParser.NOT, 0); } - public DelimTokenTreeContext delimTokenTree() { - return getRuleContext(DelimTokenTreeContext.class,0); - } - public MacroInvocationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroInvocation; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroInvocation(this); - else return visitor.visitChildren(this); - } - } - - public final MacroInvocationContext macroInvocation() throws RecognitionException { - MacroInvocationContext _localctx = new MacroInvocationContext(_ctx, getState()); - enterRule(_localctx, 2, RULE_macroInvocation); - try { - enterOuterAlt(_localctx, 1); - { - setState(408); - simplePath(); - setState(409); - match(NOT); - setState(410); - delimTokenTree(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class DelimTokenTreeContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public List tokenTree() { - return getRuleContexts(TokenTreeContext.class); - } - public TokenTreeContext tokenTree(int i) { - return getRuleContext(TokenTreeContext.class,i); - } - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public DelimTokenTreeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_delimTokenTree; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitDelimTokenTree(this); - else return visitor.visitChildren(this); - } - } - - public final DelimTokenTreeContext delimTokenTree() throws RecognitionException { - DelimTokenTreeContext _localctx = new DelimTokenTreeContext(_ctx, getState()); - enterRule(_localctx, 4, RULE_delimTokenTree); - int _la; - try { - setState(436); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LPAREN: - enterOuterAlt(_localctx, 1); - { - setState(412); - match(LPAREN); - setState(416); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(413); - tokenTree(); - } - } - setState(418); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(419); - match(RPAREN); - } - break; - case LSQUAREBRACKET: - enterOuterAlt(_localctx, 2); - { - setState(420); - match(LSQUAREBRACKET); - setState(424); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(421); - tokenTree(); - } - } - setState(426); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(427); - match(RSQUAREBRACKET); - } - break; - case LCURLYBRACE: - enterOuterAlt(_localctx, 3); - { - setState(428); - match(LCURLYBRACE); - setState(432); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(429); - tokenTree(); - } - } - setState(434); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(435); - match(RCURLYBRACE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TokenTreeContext extends ParserRuleContext { - public List tokenTreeToken() { - return getRuleContexts(TokenTreeTokenContext.class); - } - public TokenTreeTokenContext tokenTreeToken(int i) { - return getRuleContext(TokenTreeTokenContext.class,i); - } - public DelimTokenTreeContext delimTokenTree() { - return getRuleContext(DelimTokenTreeContext.class,0); - } - public TokenTreeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tokenTree; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTokenTree(this); - else return visitor.visitChildren(this); - } - } - - public final TokenTreeContext tokenTree() throws RecognitionException { - TokenTreeContext _localctx = new TokenTreeContext(_ctx, getState()); - enterRule(_localctx, 6, RULE_tokenTree); - try { - int _alt; - setState(444); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_AS: - case KW_BREAK: - case KW_CONST: - case KW_CONTINUE: - case KW_CRATE: - case KW_ELSE: - case KW_ENUM: - case KW_EXTERN: - case KW_FALSE: - case KW_FN: - case KW_FOR: - case KW_IF: - case KW_IMPL: - case KW_IN: - case KW_LET: - case KW_LOOP: - case KW_MATCH: - case KW_MOD: - case KW_MOVE: - case KW_MUT: - case KW_PUB: - case KW_REF: - case KW_RETURN: - case KW_SELFVALUE: - case KW_SELFTYPE: - case KW_STATIC: - case KW_STRUCT: - case KW_SUPER: - case KW_TRAIT: - case KW_TRUE: - case KW_TYPE: - case KW_UNSAFE: - case KW_USE: - case KW_WHERE: - case KW_WHILE: - case KW_ASYNC: - case KW_AWAIT: - case KW_DYN: - case KW_ABSTRACT: - case KW_BECOME: - case KW_BOX: - case KW_DO: - case KW_FINAL: - case KW_MACRO: - case KW_OVERRIDE: - case KW_PRIV: - case KW_TYPEOF: - case KW_UNSIZED: - case KW_VIRTUAL: - case KW_YIELD: - case KW_TRY: - case KW_UNION: - case KW_STATICLIFETIME: - case KW_MACRORULES: - case KW_UNDERLINELIFETIME: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case CHAR_LITERAL: - case STRING_LITERAL: - case RAW_STRING_LITERAL: - case BYTE_LITERAL: - case BYTE_STRING_LITERAL: - case RAW_BYTE_STRING_LITERAL: - case INTEGER_LITERAL: - case FLOAT_LITERAL: - case LIFETIME_OR_LABEL: - case PLUS: - case MINUS: - case STAR: - case SLASH: - case PERCENT: - case CARET: - case NOT: - case AND: - case OR: - case ANDAND: - case OROR: - case PLUSEQ: - case MINUSEQ: - case STAREQ: - case SLASHEQ: - case PERCENTEQ: - case CARETEQ: - case ANDEQ: - case OREQ: - case SHLEQ: - case SHREQ: - case EQ: - case EQEQ: - case NE: - case GT: - case LT: - case GE: - case LE: - case AT: - case UNDERSCORE: - case DOT: - case DOTDOT: - case DOTDOTDOT: - case DOTDOTEQ: - case COMMA: - case SEMI: - case COLON: - case PATHSEP: - case RARROW: - case FATARROW: - case POUND: - case DOLLAR: - case QUESTION: - enterOuterAlt(_localctx, 1); - { - setState(439); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(438); - tokenTreeToken(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(441); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,6,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - } - break; - case LCURLYBRACE: - case LSQUAREBRACKET: - case LPAREN: - enterOuterAlt(_localctx, 2); - { - setState(443); - delimTokenTree(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TokenTreeTokenContext extends ParserRuleContext { - public MacroIdentifierLikeTokenContext macroIdentifierLikeToken() { - return getRuleContext(MacroIdentifierLikeTokenContext.class,0); - } - public MacroLiteralTokenContext macroLiteralToken() { - return getRuleContext(MacroLiteralTokenContext.class,0); - } - public MacroPunctuationTokenContext macroPunctuationToken() { - return getRuleContext(MacroPunctuationTokenContext.class,0); - } - public MacroRepOpContext macroRepOp() { - return getRuleContext(MacroRepOpContext.class,0); - } - public TerminalNode DOLLAR() { return getToken(RustParser.DOLLAR, 0); } - public TokenTreeTokenContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tokenTreeToken; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTokenTreeToken(this); - else return visitor.visitChildren(this); - } - } - - public final TokenTreeTokenContext tokenTreeToken() throws RecognitionException { - TokenTreeTokenContext _localctx = new TokenTreeTokenContext(_ctx, getState()); - enterRule(_localctx, 8, RULE_tokenTreeToken); - try { - setState(451); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,8,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(446); - macroIdentifierLikeToken(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(447); - macroLiteralToken(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(448); - macroPunctuationToken(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(449); - macroRepOp(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(450); - match(DOLLAR); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroInvocationSemiContext extends ParserRuleContext { - public SimplePathContext simplePath() { - return getRuleContext(SimplePathContext.class,0); - } - public TerminalNode NOT() { return getToken(RustParser.NOT, 0); } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public List tokenTree() { - return getRuleContexts(TokenTreeContext.class); - } - public TokenTreeContext tokenTree(int i) { - return getRuleContext(TokenTreeContext.class,i); - } - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public MacroInvocationSemiContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroInvocationSemi; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroInvocationSemi(this); - else return visitor.visitChildren(this); - } - } - - public final MacroInvocationSemiContext macroInvocationSemi() throws RecognitionException { - MacroInvocationSemiContext _localctx = new MacroInvocationSemiContext(_ctx, getState()); - enterRule(_localctx, 10, RULE_macroInvocationSemi); - int _la; - try { - setState(488); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(453); - simplePath(); - setState(454); - match(NOT); - setState(455); - match(LPAREN); - setState(459); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(456); - tokenTree(); - } - } - setState(461); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(462); - match(RPAREN); - setState(463); - match(SEMI); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(465); - simplePath(); - setState(466); - match(NOT); - setState(467); - match(LSQUAREBRACKET); - setState(471); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(468); - tokenTree(); - } - } - setState(473); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(474); - match(RSQUAREBRACKET); - setState(475); - match(SEMI); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(477); - simplePath(); - setState(478); - match(NOT); - setState(479); - match(LCURLYBRACE); - setState(483); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(480); - tokenTree(); - } - } - setState(485); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(486); - match(RCURLYBRACE); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroRulesDefinitionContext extends ParserRuleContext { - public TerminalNode KW_MACRORULES() { return getToken(RustParser.KW_MACRORULES, 0); } - public TerminalNode NOT() { return getToken(RustParser.NOT, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public MacroRulesDefContext macroRulesDef() { - return getRuleContext(MacroRulesDefContext.class,0); - } - public MacroRulesDefinitionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroRulesDefinition; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroRulesDefinition(this); - else return visitor.visitChildren(this); - } - } - - public final MacroRulesDefinitionContext macroRulesDefinition() throws RecognitionException { - MacroRulesDefinitionContext _localctx = new MacroRulesDefinitionContext(_ctx, getState()); - enterRule(_localctx, 12, RULE_macroRulesDefinition); - try { - enterOuterAlt(_localctx, 1); - { - setState(490); - match(KW_MACRORULES); - setState(491); - match(NOT); - setState(492); - identifier(); - setState(493); - macroRulesDef(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroRulesDefContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public MacroRulesContext macroRules() { - return getRuleContext(MacroRulesContext.class,0); - } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public MacroRulesDefContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroRulesDef; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroRulesDef(this); - else return visitor.visitChildren(this); - } - } - - public final MacroRulesDefContext macroRulesDef() throws RecognitionException { - MacroRulesDefContext _localctx = new MacroRulesDefContext(_ctx, getState()); - enterRule(_localctx, 14, RULE_macroRulesDef); - try { - setState(509); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LPAREN: - enterOuterAlt(_localctx, 1); - { - setState(495); - match(LPAREN); - setState(496); - macroRules(); - setState(497); - match(RPAREN); - setState(498); - match(SEMI); - } - break; - case LSQUAREBRACKET: - enterOuterAlt(_localctx, 2); - { - setState(500); - match(LSQUAREBRACKET); - setState(501); - macroRules(); - setState(502); - match(RSQUAREBRACKET); - setState(503); - match(SEMI); - } - break; - case LCURLYBRACE: - enterOuterAlt(_localctx, 3); - { - setState(505); - match(LCURLYBRACE); - setState(506); - macroRules(); - setState(507); - match(RCURLYBRACE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroRulesContext extends ParserRuleContext { - public List macroRule() { - return getRuleContexts(MacroRuleContext.class); - } - public MacroRuleContext macroRule(int i) { - return getRuleContext(MacroRuleContext.class,i); - } - public List SEMI() { return getTokens(RustParser.SEMI); } - public TerminalNode SEMI(int i) { - return getToken(RustParser.SEMI, i); - } - public MacroRulesContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroRules; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroRules(this); - else return visitor.visitChildren(this); - } - } - - public final MacroRulesContext macroRules() throws RecognitionException { - MacroRulesContext _localctx = new MacroRulesContext(_ctx, getState()); - enterRule(_localctx, 16, RULE_macroRules); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(511); - macroRule(); - setState(516); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,14,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(512); - match(SEMI); - setState(513); - macroRule(); - } - } - } - setState(518); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,14,_ctx); - } - setState(520); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==SEMI) { - { - setState(519); - match(SEMI); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroRuleContext extends ParserRuleContext { - public MacroMatcherContext macroMatcher() { - return getRuleContext(MacroMatcherContext.class,0); - } - public TerminalNode FATARROW() { return getToken(RustParser.FATARROW, 0); } - public MacroTranscriberContext macroTranscriber() { - return getRuleContext(MacroTranscriberContext.class,0); - } - public MacroRuleContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroRule; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroRule(this); - else return visitor.visitChildren(this); - } - } - - public final MacroRuleContext macroRule() throws RecognitionException { - MacroRuleContext _localctx = new MacroRuleContext(_ctx, getState()); - enterRule(_localctx, 18, RULE_macroRule); - try { - enterOuterAlt(_localctx, 1); - { - setState(522); - macroMatcher(); - setState(523); - match(FATARROW); - setState(524); - macroTranscriber(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroMatcherContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public List macroMatch() { - return getRuleContexts(MacroMatchContext.class); - } - public MacroMatchContext macroMatch(int i) { - return getRuleContext(MacroMatchContext.class,i); - } - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public MacroMatcherContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroMatcher; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroMatcher(this); - else return visitor.visitChildren(this); - } - } - - public final MacroMatcherContext macroMatcher() throws RecognitionException { - MacroMatcherContext _localctx = new MacroMatcherContext(_ctx, getState()); - enterRule(_localctx, 20, RULE_macroMatcher); - int _la; - try { - setState(550); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LPAREN: - enterOuterAlt(_localctx, 1); - { - setState(526); - match(LPAREN); - setState(530); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(527); - macroMatch(); - } - } - setState(532); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(533); - match(RPAREN); - } - break; - case LSQUAREBRACKET: - enterOuterAlt(_localctx, 2); - { - setState(534); - match(LSQUAREBRACKET); - setState(538); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(535); - macroMatch(); - } - } - setState(540); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(541); - match(RSQUAREBRACKET); - } - break; - case LCURLYBRACE: - enterOuterAlt(_localctx, 3); - { - setState(542); - match(LCURLYBRACE); - setState(546); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0) { - { - { - setState(543); - macroMatch(); - } - } - setState(548); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(549); - match(RCURLYBRACE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroMatchContext extends ParserRuleContext { - public List macroMatchToken() { - return getRuleContexts(MacroMatchTokenContext.class); - } - public MacroMatchTokenContext macroMatchToken(int i) { - return getRuleContext(MacroMatchTokenContext.class,i); - } - public MacroMatcherContext macroMatcher() { - return getRuleContext(MacroMatcherContext.class,0); - } - public TerminalNode DOLLAR() { return getToken(RustParser.DOLLAR, 0); } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public MacroFragSpecContext macroFragSpec() { - return getRuleContext(MacroFragSpecContext.class,0); - } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode KW_SELFVALUE() { return getToken(RustParser.KW_SELFVALUE, 0); } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public MacroRepOpContext macroRepOp() { - return getRuleContext(MacroRepOpContext.class,0); - } - public List macroMatch() { - return getRuleContexts(MacroMatchContext.class); - } - public MacroMatchContext macroMatch(int i) { - return getRuleContext(MacroMatchContext.class,i); - } - public MacroRepSepContext macroRepSep() { - return getRuleContext(MacroRepSepContext.class,0); - } - public MacroMatchContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroMatch; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroMatch(this); - else return visitor.visitChildren(this); - } - } - - public final MacroMatchContext macroMatch() throws RecognitionException { - MacroMatchContext _localctx = new MacroMatchContext(_ctx, getState()); - enterRule(_localctx, 22, RULE_macroMatch); - int _la; - try { - int _alt; - setState(578); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(553); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(552); - macroMatchToken(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(555); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,20,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(557); - macroMatcher(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(558); - match(DOLLAR); - setState(561); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - { - setState(559); - identifier(); - } - break; - case KW_SELFVALUE: - { - setState(560); - match(KW_SELFVALUE); - } - break; - default: - throw new NoViableAltException(this); - } - setState(563); - match(COLON); - setState(564); - macroFragSpec(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(565); - match(DOLLAR); - setState(566); - match(LPAREN); - setState(568); - _errHandler.sync(this); - _la = _input.LA(1); - do { - { - { - setState(567); - macroMatch(); - } - } - setState(570); - _errHandler.sync(this); - _la = _input.LA(1); - } while ( ((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1585267068834412671L) != 0 ); - setState(572); - match(RPAREN); - setState(574); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 576460752303423486L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 36028797018921087L) != 0) { - { - setState(573); - macroRepSep(); - } - } - - setState(576); - macroRepOp(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroMatchTokenContext extends ParserRuleContext { - public MacroIdentifierLikeTokenContext macroIdentifierLikeToken() { - return getRuleContext(MacroIdentifierLikeTokenContext.class,0); - } - public MacroLiteralTokenContext macroLiteralToken() { - return getRuleContext(MacroLiteralTokenContext.class,0); - } - public MacroPunctuationTokenContext macroPunctuationToken() { - return getRuleContext(MacroPunctuationTokenContext.class,0); - } - public MacroRepOpContext macroRepOp() { - return getRuleContext(MacroRepOpContext.class,0); - } - public MacroMatchTokenContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroMatchToken; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroMatchToken(this); - else return visitor.visitChildren(this); - } - } - - public final MacroMatchTokenContext macroMatchToken() throws RecognitionException { - MacroMatchTokenContext _localctx = new MacroMatchTokenContext(_ctx, getState()); - enterRule(_localctx, 24, RULE_macroMatchToken); - try { - setState(584); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(580); - macroIdentifierLikeToken(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(581); - macroLiteralToken(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(582); - macroPunctuationToken(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(583); - macroRepOp(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroFragSpecContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public MacroFragSpecContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroFragSpec; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroFragSpec(this); - else return visitor.visitChildren(this); - } - } - - public final MacroFragSpecContext macroFragSpec() throws RecognitionException { - MacroFragSpecContext _localctx = new MacroFragSpecContext(_ctx, getState()); - enterRule(_localctx, 26, RULE_macroFragSpec); - try { - enterOuterAlt(_localctx, 1); - { - setState(586); - identifier(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroRepSepContext extends ParserRuleContext { - public MacroIdentifierLikeTokenContext macroIdentifierLikeToken() { - return getRuleContext(MacroIdentifierLikeTokenContext.class,0); - } - public MacroLiteralTokenContext macroLiteralToken() { - return getRuleContext(MacroLiteralTokenContext.class,0); - } - public MacroPunctuationTokenContext macroPunctuationToken() { - return getRuleContext(MacroPunctuationTokenContext.class,0); - } - public TerminalNode DOLLAR() { return getToken(RustParser.DOLLAR, 0); } - public MacroRepSepContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroRepSep; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroRepSep(this); - else return visitor.visitChildren(this); - } - } - - public final MacroRepSepContext macroRepSep() throws RecognitionException { - MacroRepSepContext _localctx = new MacroRepSepContext(_ctx, getState()); - enterRule(_localctx, 28, RULE_macroRepSep); - try { - setState(592); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(588); - macroIdentifierLikeToken(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(589); - macroLiteralToken(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(590); - macroPunctuationToken(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(591); - match(DOLLAR); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroRepOpContext extends ParserRuleContext { - public TerminalNode STAR() { return getToken(RustParser.STAR, 0); } - public TerminalNode PLUS() { return getToken(RustParser.PLUS, 0); } - public TerminalNode QUESTION() { return getToken(RustParser.QUESTION, 0); } - public MacroRepOpContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroRepOp; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroRepOp(this); - else return visitor.visitChildren(this); - } - } - - public final MacroRepOpContext macroRepOp() throws RecognitionException { - MacroRepOpContext _localctx = new MacroRepOpContext(_ctx, getState()); - enterRule(_localctx, 30, RULE_macroRepOp); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(594); - _la = _input.LA(1); - if ( !((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & 4398046511109L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroTranscriberContext extends ParserRuleContext { - public DelimTokenTreeContext delimTokenTree() { - return getRuleContext(DelimTokenTreeContext.class,0); - } - public MacroTranscriberContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroTranscriber; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroTranscriber(this); - else return visitor.visitChildren(this); - } - } - - public final MacroTranscriberContext macroTranscriber() throws RecognitionException { - MacroTranscriberContext _localctx = new MacroTranscriberContext(_ctx, getState()); - enterRule(_localctx, 32, RULE_macroTranscriber); - try { - enterOuterAlt(_localctx, 1); - { - setState(596); - delimTokenTree(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ItemContext extends ParserRuleContext { - public VisItemContext visItem() { - return getRuleContext(VisItemContext.class,0); - } - public MacroItemContext macroItem() { - return getRuleContext(MacroItemContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public ItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_item; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitItem(this); - else return visitor.visitChildren(this); - } - } - - public final ItemContext item() throws RecognitionException { - ItemContext _localctx = new ItemContext(_ctx, getState()); - enterRule(_localctx, 34, RULE_item); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(601); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(598); - outerAttribute(); - } - } - setState(603); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(606); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_CONST: - case KW_ENUM: - case KW_EXTERN: - case KW_FN: - case KW_IMPL: - case KW_MOD: - case KW_PUB: - case KW_STATIC: - case KW_STRUCT: - case KW_TRAIT: - case KW_TYPE: - case KW_UNSAFE: - case KW_USE: - case KW_ASYNC: - case KW_UNION: - { - setState(604); - visItem(); - } - break; - case KW_CRATE: - case KW_SELFVALUE: - case KW_SUPER: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case PATHSEP: - { - setState(605); - macroItem(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class VisItemContext extends ParserRuleContext { - public ModuleContext module() { - return getRuleContext(ModuleContext.class,0); - } - public ExternCrateContext externCrate() { - return getRuleContext(ExternCrateContext.class,0); - } - public UseDeclarationContext useDeclaration() { - return getRuleContext(UseDeclarationContext.class,0); - } - public Function_Context function_() { - return getRuleContext(Function_Context.class,0); - } - public TypeAliasContext typeAlias() { - return getRuleContext(TypeAliasContext.class,0); - } - public Struct_Context struct_() { - return getRuleContext(Struct_Context.class,0); - } - public EnumerationContext enumeration() { - return getRuleContext(EnumerationContext.class,0); - } - public Union_Context union_() { - return getRuleContext(Union_Context.class,0); - } - public ConstantItemContext constantItem() { - return getRuleContext(ConstantItemContext.class,0); - } - public StaticItemContext staticItem() { - return getRuleContext(StaticItemContext.class,0); - } - public Trait_Context trait_() { - return getRuleContext(Trait_Context.class,0); - } - public ImplementationContext implementation() { - return getRuleContext(ImplementationContext.class,0); - } - public ExternBlockContext externBlock() { - return getRuleContext(ExternBlockContext.class,0); - } - public VisibilityContext visibility() { - return getRuleContext(VisibilityContext.class,0); - } - public VisItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_visItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitVisItem(this); - else return visitor.visitChildren(this); - } - } - - public final VisItemContext visItem() throws RecognitionException { - VisItemContext _localctx = new VisItemContext(_ctx, getState()); - enterRule(_localctx, 36, RULE_visItem); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(609); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_PUB) { - { - setState(608); - visibility(); - } - } - - setState(624); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,30,_ctx) ) { - case 1: - { - setState(611); - module(); - } - break; - case 2: - { - setState(612); - externCrate(); - } - break; - case 3: - { - setState(613); - useDeclaration(); - } - break; - case 4: - { - setState(614); - function_(); - } - break; - case 5: - { - setState(615); - typeAlias(); - } - break; - case 6: - { - setState(616); - struct_(); - } - break; - case 7: - { - setState(617); - enumeration(); - } - break; - case 8: - { - setState(618); - union_(); - } - break; - case 9: - { - setState(619); - constantItem(); - } - break; - case 10: - { - setState(620); - staticItem(); - } - break; - case 11: - { - setState(621); - trait_(); - } - break; - case 12: - { - setState(622); - implementation(); - } - break; - case 13: - { - setState(623); - externBlock(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroItemContext extends ParserRuleContext { - public MacroInvocationSemiContext macroInvocationSemi() { - return getRuleContext(MacroInvocationSemiContext.class,0); - } - public MacroRulesDefinitionContext macroRulesDefinition() { - return getRuleContext(MacroRulesDefinitionContext.class,0); - } - public MacroItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroItem(this); - else return visitor.visitChildren(this); - } - } - - public final MacroItemContext macroItem() throws RecognitionException { - MacroItemContext _localctx = new MacroItemContext(_ctx, getState()); - enterRule(_localctx, 38, RULE_macroItem); - try { - setState(628); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(626); - macroInvocationSemi(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(627); - macroRulesDefinition(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ModuleContext extends ParserRuleContext { - public TerminalNode KW_MOD() { return getToken(RustParser.KW_MOD, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public TerminalNode KW_UNSAFE() { return getToken(RustParser.KW_UNSAFE, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public List item() { - return getRuleContexts(ItemContext.class); - } - public ItemContext item(int i) { - return getRuleContext(ItemContext.class,i); - } - public ModuleContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_module; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitModule(this); - else return visitor.visitChildren(this); - } - } - - public final ModuleContext module() throws RecognitionException { - ModuleContext _localctx = new ModuleContext(_ctx, getState()); - enterRule(_localctx, 40, RULE_module); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(631); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_UNSAFE) { - { - setState(630); - match(KW_UNSAFE); - } - } - - setState(633); - match(KW_MOD); - setState(634); - identifier(); - setState(650); - _errHandler.sync(this); - switch (_input.LA(1)) { - case SEMI: - { - setState(635); - match(SEMI); - } - break; - case LCURLYBRACE: - { - setState(636); - match(LCURLYBRACE); - setState(640); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,33,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(637); - innerAttribute(); - } - } - } - setState(642); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,33,_ctx); - } - setState(646); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 526921241179989416L) != 0 || _la==PATHSEP || _la==POUND) { - { - { - setState(643); - item(); - } - } - setState(648); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(649); - match(RCURLYBRACE); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ExternCrateContext extends ParserRuleContext { - public TerminalNode KW_EXTERN() { return getToken(RustParser.KW_EXTERN, 0); } - public TerminalNode KW_CRATE() { return getToken(RustParser.KW_CRATE, 0); } - public CrateRefContext crateRef() { - return getRuleContext(CrateRefContext.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public AsClauseContext asClause() { - return getRuleContext(AsClauseContext.class,0); - } - public ExternCrateContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_externCrate; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitExternCrate(this); - else return visitor.visitChildren(this); - } - } - - public final ExternCrateContext externCrate() throws RecognitionException { - ExternCrateContext _localctx = new ExternCrateContext(_ctx, getState()); - enterRule(_localctx, 42, RULE_externCrate); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(652); - match(KW_EXTERN); - setState(653); - match(KW_CRATE); - setState(654); - crateRef(); - setState(656); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_AS) { - { - setState(655); - asClause(); - } - } - - setState(658); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class CrateRefContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode KW_SELFVALUE() { return getToken(RustParser.KW_SELFVALUE, 0); } - public CrateRefContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_crateRef; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitCrateRef(this); - else return visitor.visitChildren(this); - } - } - - public final CrateRefContext crateRef() throws RecognitionException { - CrateRefContext _localctx = new CrateRefContext(_ctx, getState()); - enterRule(_localctx, 44, RULE_crateRef); - try { - setState(662); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - enterOuterAlt(_localctx, 1); - { - setState(660); - identifier(); - } - break; - case KW_SELFVALUE: - enterOuterAlt(_localctx, 2); - { - setState(661); - match(KW_SELFVALUE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class AsClauseContext extends ParserRuleContext { - public TerminalNode KW_AS() { return getToken(RustParser.KW_AS, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode UNDERSCORE() { return getToken(RustParser.UNDERSCORE, 0); } - public AsClauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_asClause; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAsClause(this); - else return visitor.visitChildren(this); - } - } - - public final AsClauseContext asClause() throws RecognitionException { - AsClauseContext _localctx = new AsClauseContext(_ctx, getState()); - enterRule(_localctx, 46, RULE_asClause); - try { - enterOuterAlt(_localctx, 1); - { - setState(664); - match(KW_AS); - setState(667); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - { - setState(665); - identifier(); - } - break; - case UNDERSCORE: - { - setState(666); - match(UNDERSCORE); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class UseDeclarationContext extends ParserRuleContext { - public TerminalNode KW_USE() { return getToken(RustParser.KW_USE, 0); } - public UseTreeContext useTree() { - return getRuleContext(UseTreeContext.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public UseDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_useDeclaration; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitUseDeclaration(this); - else return visitor.visitChildren(this); - } - } - - public final UseDeclarationContext useDeclaration() throws RecognitionException { - UseDeclarationContext _localctx = new UseDeclarationContext(_ctx, getState()); - enterRule(_localctx, 48, RULE_useDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(669); - match(KW_USE); - setState(670); - useTree(); - setState(671); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class UseTreeContext extends ParserRuleContext { - public TerminalNode STAR() { return getToken(RustParser.STAR, 0); } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public TerminalNode PATHSEP() { return getToken(RustParser.PATHSEP, 0); } - public List useTree() { - return getRuleContexts(UseTreeContext.class); - } - public UseTreeContext useTree(int i) { - return getRuleContext(UseTreeContext.class,i); - } - public SimplePathContext simplePath() { - return getRuleContext(SimplePathContext.class,0); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public TerminalNode KW_AS() { return getToken(RustParser.KW_AS, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode UNDERSCORE() { return getToken(RustParser.UNDERSCORE, 0); } - public UseTreeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_useTree; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitUseTree(this); - else return visitor.visitChildren(this); - } - } - - public final UseTreeContext useTree() throws RecognitionException { - UseTreeContext _localctx = new UseTreeContext(_ctx, getState()); - enterRule(_localctx, 50, RULE_useTree); - int _la; - try { - int _alt; - setState(705); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,47,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(677); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417557060190240L) != 0 || _la==PATHSEP) { - { - setState(674); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,39,_ctx) ) { - case 1: - { - setState(673); - simplePath(); - } - break; - } - setState(676); - match(PATHSEP); - } - } - - setState(695); - _errHandler.sync(this); - switch (_input.LA(1)) { - case STAR: - { - setState(679); - match(STAR); - } - break; - case LCURLYBRACE: - { - setState(680); - match(LCURLYBRACE); - setState(692); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417557060190240L) != 0 || (((_la - 82)) & ~0x3f) == 0 && ((1L << (_la - 82)) & 2233382993921L) != 0) { - { - setState(681); - useTree(); - setState(686); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,41,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(682); - match(COMMA); - setState(683); - useTree(); - } - } - } - setState(688); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,41,_ctx); - } - setState(690); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(689); - match(COMMA); - } - } - - } - } - - setState(694); - match(RCURLYBRACE); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(697); - simplePath(); - setState(703); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_AS) { - { - setState(698); - match(KW_AS); - setState(701); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - { - setState(699); - identifier(); - } - break; - case UNDERSCORE: - { - setState(700); - match(UNDERSCORE); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class Function_Context extends ParserRuleContext { - public FunctionQualifiersContext functionQualifiers() { - return getRuleContext(FunctionQualifiersContext.class,0); - } - public TerminalNode KW_FN() { return getToken(RustParser.KW_FN, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public FunctionParametersContext functionParameters() { - return getRuleContext(FunctionParametersContext.class,0); - } - public FunctionReturnTypeContext functionReturnType() { - return getRuleContext(FunctionReturnTypeContext.class,0); - } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public Function_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_function_; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFunction_(this); - else return visitor.visitChildren(this); - } - } - - public final Function_Context function_() throws RecognitionException { - Function_Context _localctx = new Function_Context(_ctx, getState()); - enterRule(_localctx, 52, RULE_function_); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(707); - functionQualifiers(); - setState(708); - match(KW_FN); - setState(709); - identifier(); - setState(711); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(710); - genericParams(); - } - } - - setState(713); - match(LPAREN); - setState(715); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453833619320608L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1487371226429577343L) != 0) { - { - setState(714); - functionParameters(); - } - } - - setState(717); - match(RPAREN); - setState(719); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==RARROW) { - { - setState(718); - functionReturnType(); - } - } - - setState(722); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(721); - whereClause(); - } - } - - setState(726); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LCURLYBRACE: - { - setState(724); - blockExpression(); - } - break; - case SEMI: - { - setState(725); - match(SEMI); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class FunctionQualifiersContext extends ParserRuleContext { - public TerminalNode KW_CONST() { return getToken(RustParser.KW_CONST, 0); } - public TerminalNode KW_ASYNC() { return getToken(RustParser.KW_ASYNC, 0); } - public TerminalNode KW_UNSAFE() { return getToken(RustParser.KW_UNSAFE, 0); } - public TerminalNode KW_EXTERN() { return getToken(RustParser.KW_EXTERN, 0); } - public AbiContext abi() { - return getRuleContext(AbiContext.class,0); - } - public FunctionQualifiersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_functionQualifiers; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFunctionQualifiers(this); - else return visitor.visitChildren(this); - } - } - - public final FunctionQualifiersContext functionQualifiers() throws RecognitionException { - FunctionQualifiersContext _localctx = new FunctionQualifiersContext(_ctx, getState()); - enterRule(_localctx, 54, RULE_functionQualifiers); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(729); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_CONST) { - { - setState(728); - match(KW_CONST); - } - } - - setState(732); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_ASYNC) { - { - setState(731); - match(KW_ASYNC); - } - } - - setState(735); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_UNSAFE) { - { - setState(734); - match(KW_UNSAFE); - } - } - - setState(741); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_EXTERN) { - { - setState(737); - match(KW_EXTERN); - setState(739); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==STRING_LITERAL || _la==RAW_STRING_LITERAL) { - { - setState(738); - abi(); - } - } - - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class AbiContext extends ParserRuleContext { - public TerminalNode STRING_LITERAL() { return getToken(RustParser.STRING_LITERAL, 0); } - public TerminalNode RAW_STRING_LITERAL() { return getToken(RustParser.RAW_STRING_LITERAL, 0); } - public AbiContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_abi; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAbi(this); - else return visitor.visitChildren(this); - } - } - - public final AbiContext abi() throws RecognitionException { - AbiContext _localctx = new AbiContext(_ctx, getState()); - enterRule(_localctx, 56, RULE_abi); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(743); - _la = _input.LA(1); - if ( !(_la==STRING_LITERAL || _la==RAW_STRING_LITERAL) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class FunctionParametersContext extends ParserRuleContext { - public SelfParamContext selfParam() { - return getRuleContext(SelfParamContext.class,0); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public List functionParam() { - return getRuleContexts(FunctionParamContext.class); - } - public FunctionParamContext functionParam(int i) { - return getRuleContext(FunctionParamContext.class,i); - } - public FunctionParametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_functionParameters; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFunctionParameters(this); - else return visitor.visitChildren(this); - } - } - - public final FunctionParametersContext functionParameters() throws RecognitionException { - FunctionParametersContext _localctx = new FunctionParametersContext(_ctx, getState()); - enterRule(_localctx, 58, RULE_functionParameters); - int _la; - try { - int _alt; - setState(765); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(745); - selfParam(); - setState(747); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(746); - match(COMMA); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(752); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) { - case 1: - { - setState(749); - selfParam(); - setState(750); - match(COMMA); - } - break; - } - setState(754); - functionParam(); - setState(759); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,60,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(755); - match(COMMA); - setState(756); - functionParam(); - } - } - } - setState(761); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,60,_ctx); - } - setState(763); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(762); - match(COMMA); - } - } - - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class SelfParamContext extends ParserRuleContext { - public ShorthandSelfContext shorthandSelf() { - return getRuleContext(ShorthandSelfContext.class,0); - } - public TypedSelfContext typedSelf() { - return getRuleContext(TypedSelfContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public SelfParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_selfParam; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitSelfParam(this); - else return visitor.visitChildren(this); - } - } - - public final SelfParamContext selfParam() throws RecognitionException { - SelfParamContext _localctx = new SelfParamContext(_ctx, getState()); - enterRule(_localctx, 60, RULE_selfParam); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(770); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(767); - outerAttribute(); - } - } - setState(772); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(775); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) { - case 1: - { - setState(773); - shorthandSelf(); - } - break; - case 2: - { - setState(774); - typedSelf(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ShorthandSelfContext extends ParserRuleContext { - public TerminalNode KW_SELFVALUE() { return getToken(RustParser.KW_SELFVALUE, 0); } - public TerminalNode AND() { return getToken(RustParser.AND, 0); } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public LifetimeContext lifetime() { - return getRuleContext(LifetimeContext.class,0); - } - public ShorthandSelfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_shorthandSelf; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitShorthandSelf(this); - else return visitor.visitChildren(this); - } - } - - public final ShorthandSelfContext shorthandSelf() throws RecognitionException { - ShorthandSelfContext _localctx = new ShorthandSelfContext(_ctx, getState()); - enterRule(_localctx, 62, RULE_shorthandSelf); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(781); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==AND) { - { - setState(777); - match(AND); - setState(779); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la - 53)) & ~0x3f) == 0 && ((1L << (_la - 53)) & 67108869L) != 0) { - { - setState(778); - lifetime(); - } - } - - } - } - - setState(784); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MUT) { - { - setState(783); - match(KW_MUT); - } - } - - setState(786); - match(KW_SELFVALUE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypedSelfContext extends ParserRuleContext { - public TerminalNode KW_SELFVALUE() { return getToken(RustParser.KW_SELFVALUE, 0); } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public TypedSelfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typedSelf; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypedSelf(this); - else return visitor.visitChildren(this); - } - } - - public final TypedSelfContext typedSelf() throws RecognitionException { - TypedSelfContext _localctx = new TypedSelfContext(_ctx, getState()); - enterRule(_localctx, 64, RULE_typedSelf); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(789); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MUT) { - { - setState(788); - match(KW_MUT); - } - } - - setState(791); - match(KW_SELFVALUE); - setState(792); - match(COLON); - setState(793); - type_(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class FunctionParamContext extends ParserRuleContext { - public FunctionParamPatternContext functionParamPattern() { - return getRuleContext(FunctionParamPatternContext.class,0); - } - public TerminalNode DOTDOTDOT() { return getToken(RustParser.DOTDOTDOT, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public FunctionParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_functionParam; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFunctionParam(this); - else return visitor.visitChildren(this); - } - } - - public final FunctionParamContext functionParam() throws RecognitionException { - FunctionParamContext _localctx = new FunctionParamContext(_ctx, getState()); - enterRule(_localctx, 66, RULE_functionParam); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(798); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(795); - outerAttribute(); - } - } - setState(800); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(804); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,70,_ctx) ) { - case 1: - { - setState(801); - functionParamPattern(); - } - break; - case 2: - { - setState(802); - match(DOTDOTDOT); - } - break; - case 3: - { - setState(803); - type_(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class FunctionParamPatternContext extends ParserRuleContext { - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode DOTDOTDOT() { return getToken(RustParser.DOTDOTDOT, 0); } - public FunctionParamPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_functionParamPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFunctionParamPattern(this); - else return visitor.visitChildren(this); - } - } - - public final FunctionParamPatternContext functionParamPattern() throws RecognitionException { - FunctionParamPatternContext _localctx = new FunctionParamPatternContext(_ctx, getState()); - enterRule(_localctx, 68, RULE_functionParamPattern); - try { - enterOuterAlt(_localctx, 1); - { - setState(806); - pattern(); - setState(807); - match(COLON); - setState(810); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_CRATE: - case KW_EXTERN: - case KW_FN: - case KW_FOR: - case KW_IMPL: - case KW_SELFVALUE: - case KW_SELFTYPE: - case KW_SUPER: - case KW_UNSAFE: - case KW_DYN: - case KW_STATICLIFETIME: - case KW_MACRORULES: - case KW_UNDERLINELIFETIME: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case LIFETIME_OR_LABEL: - case STAR: - case NOT: - case AND: - case LT: - case UNDERSCORE: - case PATHSEP: - case QUESTION: - case LSQUAREBRACKET: - case LPAREN: - { - setState(808); - type_(); - } - break; - case DOTDOTDOT: - { - setState(809); - match(DOTDOTDOT); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class FunctionReturnTypeContext extends ParserRuleContext { - public TerminalNode RARROW() { return getToken(RustParser.RARROW, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public FunctionReturnTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_functionReturnType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFunctionReturnType(this); - else return visitor.visitChildren(this); - } - } - - public final FunctionReturnTypeContext functionReturnType() throws RecognitionException { - FunctionReturnTypeContext _localctx = new FunctionReturnTypeContext(_ctx, getState()); - enterRule(_localctx, 70, RULE_functionReturnType); - try { - enterOuterAlt(_localctx, 1); - { - setState(812); - match(RARROW); - setState(813); - type_(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypeAliasContext extends ParserRuleContext { - public TerminalNode KW_TYPE() { return getToken(RustParser.KW_TYPE, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TypeAliasContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeAlias; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypeAlias(this); - else return visitor.visitChildren(this); - } - } - - public final TypeAliasContext typeAlias() throws RecognitionException { - TypeAliasContext _localctx = new TypeAliasContext(_ctx, getState()); - enterRule(_localctx, 72, RULE_typeAlias); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(815); - match(KW_TYPE); - setState(816); - identifier(); - setState(818); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(817); - genericParams(); - } - } - - setState(821); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(820); - whereClause(); - } - } - - setState(825); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EQ) { - { - setState(823); - match(EQ); - setState(824); - type_(); - } - } - - setState(827); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class Struct_Context extends ParserRuleContext { - public StructStructContext structStruct() { - return getRuleContext(StructStructContext.class,0); - } - public TupleStructContext tupleStruct() { - return getRuleContext(TupleStructContext.class,0); - } - public Struct_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_struct_; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStruct_(this); - else return visitor.visitChildren(this); - } - } - - public final Struct_Context struct_() throws RecognitionException { - Struct_Context _localctx = new Struct_Context(_ctx, getState()); - enterRule(_localctx, 74, RULE_struct_); - try { - setState(831); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,75,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(829); - structStruct(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(830); - tupleStruct(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructStructContext extends ParserRuleContext { - public TerminalNode KW_STRUCT() { return getToken(RustParser.KW_STRUCT, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public StructFieldsContext structFields() { - return getRuleContext(StructFieldsContext.class,0); - } - public StructStructContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structStruct; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructStruct(this); - else return visitor.visitChildren(this); - } - } - - public final StructStructContext structStruct() throws RecognitionException { - StructStructContext _localctx = new StructStructContext(_ctx, getState()); - enterRule(_localctx, 76, RULE_structStruct); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(833); - match(KW_STRUCT); - setState(834); - identifier(); - setState(836); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(835); - genericParams(); - } - } - - setState(839); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(838); - whereClause(); - } - } - - setState(847); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LCURLYBRACE: - { - setState(841); - match(LCURLYBRACE); - setState(843); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 450359962739146752L) != 0 || _la==POUND) { - { - setState(842); - structFields(); - } - } - - setState(845); - match(RCURLYBRACE); - } - break; - case SEMI: - { - setState(846); - match(SEMI); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TupleStructContext extends ParserRuleContext { - public TerminalNode KW_STRUCT() { return getToken(RustParser.KW_STRUCT, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public TupleFieldsContext tupleFields() { - return getRuleContext(TupleFieldsContext.class,0); - } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public TupleStructContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tupleStruct; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleStruct(this); - else return visitor.visitChildren(this); - } - } - - public final TupleStructContext tupleStruct() throws RecognitionException { - TupleStructContext _localctx = new TupleStructContext(_ctx, getState()); - enterRule(_localctx, 78, RULE_tupleStruct); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(849); - match(KW_STRUCT); - setState(850); - identifier(); - setState(852); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(851); - genericParams(); - } - } - - setState(854); - match(LPAREN); - setState(856); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453832542432544L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 363114855924105L) != 0) { - { - setState(855); - tupleFields(); - } - } - - setState(858); - match(RPAREN); - setState(860); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(859); - whereClause(); - } - } - - setState(862); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructFieldsContext extends ParserRuleContext { - public List structField() { - return getRuleContexts(StructFieldContext.class); - } - public StructFieldContext structField(int i) { - return getRuleContext(StructFieldContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public StructFieldsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structFields; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructFields(this); - else return visitor.visitChildren(this); - } - } - - public final StructFieldsContext structFields() throws RecognitionException { - StructFieldsContext _localctx = new StructFieldsContext(_ctx, getState()); - enterRule(_localctx, 80, RULE_structFields); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(864); - structField(); - setState(869); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,83,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(865); - match(COMMA); - setState(866); - structField(); - } - } - } - setState(871); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,83,_ctx); - } - setState(873); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(872); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructFieldContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public VisibilityContext visibility() { - return getRuleContext(VisibilityContext.class,0); - } - public StructFieldContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structField; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructField(this); - else return visitor.visitChildren(this); - } - } - - public final StructFieldContext structField() throws RecognitionException { - StructFieldContext _localctx = new StructFieldContext(_ctx, getState()); - enterRule(_localctx, 82, RULE_structField); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(878); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(875); - outerAttribute(); - } - } - setState(880); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(882); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_PUB) { - { - setState(881); - visibility(); - } - } - - setState(884); - identifier(); - setState(885); - match(COLON); - setState(886); - type_(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TupleFieldsContext extends ParserRuleContext { - public List tupleField() { - return getRuleContexts(TupleFieldContext.class); - } - public TupleFieldContext tupleField(int i) { - return getRuleContext(TupleFieldContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public TupleFieldsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tupleFields; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleFields(this); - else return visitor.visitChildren(this); - } - } - - public final TupleFieldsContext tupleFields() throws RecognitionException { - TupleFieldsContext _localctx = new TupleFieldsContext(_ctx, getState()); - enterRule(_localctx, 84, RULE_tupleFields); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(888); - tupleField(); - setState(893); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,87,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(889); - match(COMMA); - setState(890); - tupleField(); - } - } - } - setState(895); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,87,_ctx); - } - setState(897); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(896); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TupleFieldContext extends ParserRuleContext { - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public VisibilityContext visibility() { - return getRuleContext(VisibilityContext.class,0); - } - public TupleFieldContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tupleField; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleField(this); - else return visitor.visitChildren(this); - } - } - - public final TupleFieldContext tupleField() throws RecognitionException { - TupleFieldContext _localctx = new TupleFieldContext(_ctx, getState()); - enterRule(_localctx, 86, RULE_tupleField); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(902); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(899); - outerAttribute(); - } - } - setState(904); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(906); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_PUB) { - { - setState(905); - visibility(); - } - } - - setState(908); - type_(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumerationContext extends ParserRuleContext { - public TerminalNode KW_ENUM() { return getToken(RustParser.KW_ENUM, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public EnumItemsContext enumItems() { - return getRuleContext(EnumItemsContext.class,0); - } - public EnumerationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumeration; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumeration(this); - else return visitor.visitChildren(this); - } - } - - public final EnumerationContext enumeration() throws RecognitionException { - EnumerationContext _localctx = new EnumerationContext(_ctx, getState()); - enterRule(_localctx, 88, RULE_enumeration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(910); - match(KW_ENUM); - setState(911); - identifier(); - setState(913); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(912); - genericParams(); - } - } - - setState(916); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(915); - whereClause(); - } - } - - setState(918); - match(LCURLYBRACE); - setState(920); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 450359962739146752L) != 0 || _la==POUND) { - { - setState(919); - enumItems(); - } - } - - setState(922); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumItemsContext extends ParserRuleContext { - public List enumItem() { - return getRuleContexts(EnumItemContext.class); - } - public EnumItemContext enumItem(int i) { - return getRuleContext(EnumItemContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public EnumItemsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumItems; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumItems(this); - else return visitor.visitChildren(this); - } - } - - public final EnumItemsContext enumItems() throws RecognitionException { - EnumItemsContext _localctx = new EnumItemsContext(_ctx, getState()); - enterRule(_localctx, 90, RULE_enumItems); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(924); - enumItem(); - setState(929); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,94,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(925); - match(COMMA); - setState(926); - enumItem(); - } - } - } - setState(931); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,94,_ctx); - } - setState(933); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(932); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumItemContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public VisibilityContext visibility() { - return getRuleContext(VisibilityContext.class,0); - } - public EnumItemTupleContext enumItemTuple() { - return getRuleContext(EnumItemTupleContext.class,0); - } - public EnumItemStructContext enumItemStruct() { - return getRuleContext(EnumItemStructContext.class,0); - } - public EnumItemDiscriminantContext enumItemDiscriminant() { - return getRuleContext(EnumItemDiscriminantContext.class,0); - } - public EnumItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumItem(this); - else return visitor.visitChildren(this); - } - } - - public final EnumItemContext enumItem() throws RecognitionException { - EnumItemContext _localctx = new EnumItemContext(_ctx, getState()); - enterRule(_localctx, 92, RULE_enumItem); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(938); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(935); - outerAttribute(); - } - } - setState(940); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(942); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_PUB) { - { - setState(941); - visibility(); - } - } - - setState(944); - identifier(); - setState(948); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LPAREN: - { - setState(945); - enumItemTuple(); - } - break; - case LCURLYBRACE: - { - setState(946); - enumItemStruct(); - } - break; - case EQ: - { - setState(947); - enumItemDiscriminant(); - } - break; - case COMMA: - case RCURLYBRACE: - break; - default: - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumItemTupleContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TupleFieldsContext tupleFields() { - return getRuleContext(TupleFieldsContext.class,0); - } - public EnumItemTupleContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumItemTuple; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumItemTuple(this); - else return visitor.visitChildren(this); - } - } - - public final EnumItemTupleContext enumItemTuple() throws RecognitionException { - EnumItemTupleContext _localctx = new EnumItemTupleContext(_ctx, getState()); - enterRule(_localctx, 94, RULE_enumItemTuple); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(950); - match(LPAREN); - setState(952); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453832542432544L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 363114855924105L) != 0) { - { - setState(951); - tupleFields(); - } - } - - setState(954); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumItemStructContext extends ParserRuleContext { - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public StructFieldsContext structFields() { - return getRuleContext(StructFieldsContext.class,0); - } - public EnumItemStructContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumItemStruct; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumItemStruct(this); - else return visitor.visitChildren(this); - } - } - - public final EnumItemStructContext enumItemStruct() throws RecognitionException { - EnumItemStructContext _localctx = new EnumItemStructContext(_ctx, getState()); - enterRule(_localctx, 96, RULE_enumItemStruct); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(956); - match(LCURLYBRACE); - setState(958); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 450359962739146752L) != 0 || _la==POUND) { - { - setState(957); - structFields(); - } - } - - setState(960); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumItemDiscriminantContext extends ParserRuleContext { - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public EnumItemDiscriminantContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumItemDiscriminant; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumItemDiscriminant(this); - else return visitor.visitChildren(this); - } - } - - public final EnumItemDiscriminantContext enumItemDiscriminant() throws RecognitionException { - EnumItemDiscriminantContext _localctx = new EnumItemDiscriminantContext(_ctx, getState()); - enterRule(_localctx, 98, RULE_enumItemDiscriminant); - try { - enterOuterAlt(_localctx, 1); - { - setState(962); - match(EQ); - setState(963); - expression(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class Union_Context extends ParserRuleContext { - public TerminalNode KW_UNION() { return getToken(RustParser.KW_UNION, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public StructFieldsContext structFields() { - return getRuleContext(StructFieldsContext.class,0); - } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public Union_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_union_; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitUnion_(this); - else return visitor.visitChildren(this); - } - } - - public final Union_Context union_() throws RecognitionException { - Union_Context _localctx = new Union_Context(_ctx, getState()); - enterRule(_localctx, 100, RULE_union_); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(965); - match(KW_UNION); - setState(966); - identifier(); - setState(968); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(967); - genericParams(); - } - } - - setState(971); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(970); - whereClause(); - } - } - - setState(973); - match(LCURLYBRACE); - setState(974); - structFields(); - setState(975); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ConstantItemContext extends ParserRuleContext { - public TerminalNode KW_CONST() { return getToken(RustParser.KW_CONST, 0); } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode UNDERSCORE() { return getToken(RustParser.UNDERSCORE, 0); } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ConstantItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constantItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitConstantItem(this); - else return visitor.visitChildren(this); - } - } - - public final ConstantItemContext constantItem() throws RecognitionException { - ConstantItemContext _localctx = new ConstantItemContext(_ctx, getState()); - enterRule(_localctx, 102, RULE_constantItem); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(977); - match(KW_CONST); - setState(980); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - { - setState(978); - identifier(); - } - break; - case UNDERSCORE: - { - setState(979); - match(UNDERSCORE); - } - break; - default: - throw new NoViableAltException(this); - } - setState(982); - match(COLON); - setState(983); - type_(); - setState(986); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EQ) { - { - setState(984); - match(EQ); - setState(985); - expression(0); - } - } - - setState(988); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StaticItemContext extends ParserRuleContext { - public TerminalNode KW_STATIC() { return getToken(RustParser.KW_STATIC, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StaticItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_staticItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStaticItem(this); - else return visitor.visitChildren(this); - } - } - - public final StaticItemContext staticItem() throws RecognitionException { - StaticItemContext _localctx = new StaticItemContext(_ctx, getState()); - enterRule(_localctx, 104, RULE_staticItem); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(990); - match(KW_STATIC); - setState(992); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MUT) { - { - setState(991); - match(KW_MUT); - } - } - - setState(994); - identifier(); - setState(995); - match(COLON); - setState(996); - type_(); - setState(999); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EQ) { - { - setState(997); - match(EQ); - setState(998); - expression(0); - } - } - - setState(1001); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class Trait_Context extends ParserRuleContext { - public TerminalNode KW_TRAIT() { return getToken(RustParser.KW_TRAIT, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public TerminalNode KW_UNSAFE() { return getToken(RustParser.KW_UNSAFE, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public List associatedItem() { - return getRuleContexts(AssociatedItemContext.class); - } - public AssociatedItemContext associatedItem(int i) { - return getRuleContext(AssociatedItemContext.class,i); - } - public TypeParamBoundsContext typeParamBounds() { - return getRuleContext(TypeParamBoundsContext.class,0); - } - public Trait_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_trait_; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTrait_(this); - else return visitor.visitChildren(this); - } - } - - public final Trait_Context trait_() throws RecognitionException { - Trait_Context _localctx = new Trait_Context(_ctx, getState()); - enterRule(_localctx, 106, RULE_trait_); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1004); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_UNSAFE) { - { - setState(1003); - match(KW_UNSAFE); - } - } - - setState(1006); - match(KW_TRAIT); - setState(1007); - identifier(); - setState(1009); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1008); - genericParams(); - } - } - - setState(1015); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COLON) { - { - setState(1011); - match(COLON); - setState(1013); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453553367451680L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 290545947639809L) != 0) { - { - setState(1012); - typeParamBounds(); - } - } - - } - } - - setState(1018); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(1017); - whereClause(); - } - } - - setState(1020); - match(LCURLYBRACE); - setState(1024); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,112,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1021); - innerAttribute(); - } - } - } - setState(1026); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,112,_ctx); - } - setState(1030); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417632224216360L) != 0 || _la==PATHSEP || _la==POUND) { - { - { - setState(1027); - associatedItem(); - } - } - setState(1032); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1033); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ImplementationContext extends ParserRuleContext { - public InherentImplContext inherentImpl() { - return getRuleContext(InherentImplContext.class,0); - } - public TraitImplContext traitImpl() { - return getRuleContext(TraitImplContext.class,0); - } - public ImplementationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_implementation; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitImplementation(this); - else return visitor.visitChildren(this); - } - } - - public final ImplementationContext implementation() throws RecognitionException { - ImplementationContext _localctx = new ImplementationContext(_ctx, getState()); - enterRule(_localctx, 108, RULE_implementation); - try { - setState(1037); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,114,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1035); - inherentImpl(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1036); - traitImpl(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class InherentImplContext extends ParserRuleContext { - public TerminalNode KW_IMPL() { return getToken(RustParser.KW_IMPL, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public List associatedItem() { - return getRuleContexts(AssociatedItemContext.class); - } - public AssociatedItemContext associatedItem(int i) { - return getRuleContext(AssociatedItemContext.class,i); - } - public InherentImplContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_inherentImpl; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitInherentImpl(this); - else return visitor.visitChildren(this); - } - } - - public final InherentImplContext inherentImpl() throws RecognitionException { - InherentImplContext _localctx = new InherentImplContext(_ctx, getState()); - enterRule(_localctx, 110, RULE_inherentImpl); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1039); - match(KW_IMPL); - setState(1041); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,115,_ctx) ) { - case 1: - { - setState(1040); - genericParams(); - } - break; - } - setState(1043); - type_(); - setState(1045); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(1044); - whereClause(); - } - } - - setState(1047); - match(LCURLYBRACE); - setState(1051); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,117,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1048); - innerAttribute(); - } - } - } - setState(1053); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,117,_ctx); - } - setState(1057); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417632224216360L) != 0 || _la==PATHSEP || _la==POUND) { - { - { - setState(1054); - associatedItem(); - } - } - setState(1059); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1060); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TraitImplContext extends ParserRuleContext { - public TerminalNode KW_IMPL() { return getToken(RustParser.KW_IMPL, 0); } - public TypePathContext typePath() { - return getRuleContext(TypePathContext.class,0); - } - public TerminalNode KW_FOR() { return getToken(RustParser.KW_FOR, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public TerminalNode KW_UNSAFE() { return getToken(RustParser.KW_UNSAFE, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public TerminalNode NOT() { return getToken(RustParser.NOT, 0); } - public WhereClauseContext whereClause() { - return getRuleContext(WhereClauseContext.class,0); - } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public List associatedItem() { - return getRuleContexts(AssociatedItemContext.class); - } - public AssociatedItemContext associatedItem(int i) { - return getRuleContext(AssociatedItemContext.class,i); - } - public TraitImplContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_traitImpl; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTraitImpl(this); - else return visitor.visitChildren(this); - } - } - - public final TraitImplContext traitImpl() throws RecognitionException { - TraitImplContext _localctx = new TraitImplContext(_ctx, getState()); - enterRule(_localctx, 112, RULE_traitImpl); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1063); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_UNSAFE) { - { - setState(1062); - match(KW_UNSAFE); - } - } - - setState(1065); - match(KW_IMPL); - setState(1067); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1066); - genericParams(); - } - } - - setState(1070); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==NOT) { - { - setState(1069); - match(NOT); - } - } - - setState(1072); - typePath(); - setState(1073); - match(KW_FOR); - setState(1074); - type_(); - setState(1076); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_WHERE) { - { - setState(1075); - whereClause(); - } - } - - setState(1078); - match(LCURLYBRACE); - setState(1082); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,123,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1079); - innerAttribute(); - } - } - } - setState(1084); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,123,_ctx); - } - setState(1088); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417632224216360L) != 0 || _la==PATHSEP || _la==POUND) { - { - { - setState(1085); - associatedItem(); - } - } - setState(1090); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1091); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ExternBlockContext extends ParserRuleContext { - public TerminalNode KW_EXTERN() { return getToken(RustParser.KW_EXTERN, 0); } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public TerminalNode KW_UNSAFE() { return getToken(RustParser.KW_UNSAFE, 0); } - public AbiContext abi() { - return getRuleContext(AbiContext.class,0); - } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public List externalItem() { - return getRuleContexts(ExternalItemContext.class); - } - public ExternalItemContext externalItem(int i) { - return getRuleContext(ExternalItemContext.class,i); - } - public ExternBlockContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_externBlock; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitExternBlock(this); - else return visitor.visitChildren(this); - } - } - - public final ExternBlockContext externBlock() throws RecognitionException { - ExternBlockContext _localctx = new ExternBlockContext(_ctx, getState()); - enterRule(_localctx, 114, RULE_externBlock); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1094); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_UNSAFE) { - { - setState(1093); - match(KW_UNSAFE); - } - } - - setState(1096); - match(KW_EXTERN); - setState(1098); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==STRING_LITERAL || _la==RAW_STRING_LITERAL) { - { - setState(1097); - abi(); - } - } - - setState(1100); - match(LCURLYBRACE); - setState(1104); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,127,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1101); - innerAttribute(); - } - } - } - setState(1106); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,127,_ctx); - } - setState(1110); - _errHandler.sync(this); - _la = _input.LA(1); - while (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417630143841576L) != 0 || _la==PATHSEP || _la==POUND) { - { - { - setState(1107); - externalItem(); - } - } - setState(1112); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1113); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ExternalItemContext extends ParserRuleContext { - public MacroInvocationSemiContext macroInvocationSemi() { - return getRuleContext(MacroInvocationSemiContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public StaticItemContext staticItem() { - return getRuleContext(StaticItemContext.class,0); - } - public Function_Context function_() { - return getRuleContext(Function_Context.class,0); - } - public VisibilityContext visibility() { - return getRuleContext(VisibilityContext.class,0); - } - public ExternalItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_externalItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitExternalItem(this); - else return visitor.visitChildren(this); - } - } - - public final ExternalItemContext externalItem() throws RecognitionException { - ExternalItemContext _localctx = new ExternalItemContext(_ctx, getState()); - enterRule(_localctx, 116, RULE_externalItem); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1118); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(1115); - outerAttribute(); - } - } - setState(1120); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1129); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_CRATE: - case KW_SELFVALUE: - case KW_SUPER: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case PATHSEP: - { - setState(1121); - macroInvocationSemi(); - } - break; - case KW_CONST: - case KW_EXTERN: - case KW_FN: - case KW_PUB: - case KW_STATIC: - case KW_UNSAFE: - case KW_ASYNC: - { - setState(1123); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_PUB) { - { - setState(1122); - visibility(); - } - } - - setState(1127); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_STATIC: - { - setState(1125); - staticItem(); - } - break; - case KW_CONST: - case KW_EXTERN: - case KW_FN: - case KW_UNSAFE: - case KW_ASYNC: - { - setState(1126); - function_(); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericParamsContext extends ParserRuleContext { - public TerminalNode LT() { return getToken(RustParser.LT, 0); } - public TerminalNode GT() { return getToken(RustParser.GT, 0); } - public List genericParam() { - return getRuleContexts(GenericParamContext.class); - } - public GenericParamContext genericParam(int i) { - return getRuleContext(GenericParamContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public GenericParamsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericParams; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericParams(this); - else return visitor.visitChildren(this); - } - } - - public final GenericParamsContext genericParams() throws RecognitionException { - GenericParamsContext _localctx = new GenericParamsContext(_ctx, getState()); - enterRule(_localctx, 118, RULE_genericParams); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1131); - match(LT); - setState(1144); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 450359962737049608L) != 0 || _la==LIFETIME_OR_LABEL || _la==POUND) { - { - setState(1137); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,133,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1132); - genericParam(); - setState(1133); - match(COMMA); - } - } - } - setState(1139); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,133,_ctx); - } - setState(1140); - genericParam(); - setState(1142); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1141); - match(COMMA); - } - } - - } - } - - setState(1146); - match(GT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericParamContext extends ParserRuleContext { - public LifetimeParamContext lifetimeParam() { - return getRuleContext(LifetimeParamContext.class,0); - } - public TypeParamContext typeParam() { - return getRuleContext(TypeParamContext.class,0); - } - public ConstParamContext constParam() { - return getRuleContext(ConstParamContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public GenericParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericParam; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericParam(this); - else return visitor.visitChildren(this); - } - } - - public final GenericParamContext genericParam() throws RecognitionException { - GenericParamContext _localctx = new GenericParamContext(_ctx, getState()); - enterRule(_localctx, 120, RULE_genericParam); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1151); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,136,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1148); - outerAttribute(); - } - } - } - setState(1153); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,136,_ctx); - } - setState(1157); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,137,_ctx) ) { - case 1: - { - setState(1154); - lifetimeParam(); - } - break; - case 2: - { - setState(1155); - typeParam(); - } - break; - case 3: - { - setState(1156); - constParam(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LifetimeParamContext extends ParserRuleContext { - public TerminalNode LIFETIME_OR_LABEL() { return getToken(RustParser.LIFETIME_OR_LABEL, 0); } - public OuterAttributeContext outerAttribute() { - return getRuleContext(OuterAttributeContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public LifetimeBoundsContext lifetimeBounds() { - return getRuleContext(LifetimeBoundsContext.class,0); - } - public LifetimeParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lifetimeParam; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLifetimeParam(this); - else return visitor.visitChildren(this); - } - } - - public final LifetimeParamContext lifetimeParam() throws RecognitionException { - LifetimeParamContext _localctx = new LifetimeParamContext(_ctx, getState()); - enterRule(_localctx, 122, RULE_lifetimeParam); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1160); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==POUND) { - { - setState(1159); - outerAttribute(); - } - } - - setState(1162); - match(LIFETIME_OR_LABEL); - setState(1165); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COLON) { - { - setState(1163); - match(COLON); - setState(1164); - lifetimeBounds(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypeParamContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public OuterAttributeContext outerAttribute() { - return getRuleContext(OuterAttributeContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TypeParamBoundsContext typeParamBounds() { - return getRuleContext(TypeParamBoundsContext.class,0); - } - public TypeParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParam; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypeParam(this); - else return visitor.visitChildren(this); - } - } - - public final TypeParamContext typeParam() throws RecognitionException { - TypeParamContext _localctx = new TypeParamContext(_ctx, getState()); - enterRule(_localctx, 124, RULE_typeParam); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1168); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==POUND) { - { - setState(1167); - outerAttribute(); - } - } - - setState(1170); - identifier(); - setState(1175); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COLON) { - { - setState(1171); - match(COLON); - setState(1173); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453553367451680L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 290545947639809L) != 0) { - { - setState(1172); - typeParamBounds(); - } - } - - } - } - - setState(1179); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EQ) { - { - setState(1177); - match(EQ); - setState(1178); - type_(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ConstParamContext extends ParserRuleContext { - public TerminalNode KW_CONST() { return getToken(RustParser.KW_CONST, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public ConstParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constParam; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitConstParam(this); - else return visitor.visitChildren(this); - } - } - - public final ConstParamContext constParam() throws RecognitionException { - ConstParamContext _localctx = new ConstParamContext(_ctx, getState()); - enterRule(_localctx, 126, RULE_constParam); - try { - enterOuterAlt(_localctx, 1); - { - setState(1181); - match(KW_CONST); - setState(1182); - identifier(); - setState(1183); - match(COLON); - setState(1184); - type_(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class WhereClauseContext extends ParserRuleContext { - public TerminalNode KW_WHERE() { return getToken(RustParser.KW_WHERE, 0); } - public List whereClauseItem() { - return getRuleContexts(WhereClauseItemContext.class); - } - public WhereClauseItemContext whereClauseItem(int i) { - return getRuleContext(WhereClauseItemContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public WhereClauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_whereClause; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitWhereClause(this); - else return visitor.visitChildren(this); - } - } - - public final WhereClauseContext whereClause() throws RecognitionException { - WhereClauseContext _localctx = new WhereClauseContext(_ctx, getState()); - enterRule(_localctx, 128, RULE_whereClause); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1186); - match(KW_WHERE); - setState(1192); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,144,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1187); - whereClauseItem(); - setState(1188); - match(COMMA); - } - } - } - setState(1194); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,144,_ctx); - } - setState(1196); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453832540335392L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 360915832668553L) != 0) { - { - setState(1195); - whereClauseItem(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class WhereClauseItemContext extends ParserRuleContext { - public LifetimeWhereClauseItemContext lifetimeWhereClauseItem() { - return getRuleContext(LifetimeWhereClauseItemContext.class,0); - } - public TypeBoundWhereClauseItemContext typeBoundWhereClauseItem() { - return getRuleContext(TypeBoundWhereClauseItemContext.class,0); - } - public WhereClauseItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_whereClauseItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitWhereClauseItem(this); - else return visitor.visitChildren(this); - } - } - - public final WhereClauseItemContext whereClauseItem() throws RecognitionException { - WhereClauseItemContext _localctx = new WhereClauseItemContext(_ctx, getState()); - enterRule(_localctx, 130, RULE_whereClauseItem); - try { - setState(1200); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1198); - lifetimeWhereClauseItem(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1199); - typeBoundWhereClauseItem(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LifetimeWhereClauseItemContext extends ParserRuleContext { - public LifetimeContext lifetime() { - return getRuleContext(LifetimeContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public LifetimeBoundsContext lifetimeBounds() { - return getRuleContext(LifetimeBoundsContext.class,0); - } - public LifetimeWhereClauseItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lifetimeWhereClauseItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLifetimeWhereClauseItem(this); - else return visitor.visitChildren(this); - } - } - - public final LifetimeWhereClauseItemContext lifetimeWhereClauseItem() throws RecognitionException { - LifetimeWhereClauseItemContext _localctx = new LifetimeWhereClauseItemContext(_ctx, getState()); - enterRule(_localctx, 132, RULE_lifetimeWhereClauseItem); - try { - enterOuterAlt(_localctx, 1); - { - setState(1202); - lifetime(); - setState(1203); - match(COLON); - setState(1204); - lifetimeBounds(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypeBoundWhereClauseItemContext extends ParserRuleContext { - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public ForLifetimesContext forLifetimes() { - return getRuleContext(ForLifetimesContext.class,0); - } - public TypeParamBoundsContext typeParamBounds() { - return getRuleContext(TypeParamBoundsContext.class,0); - } - public TypeBoundWhereClauseItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeBoundWhereClauseItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypeBoundWhereClauseItem(this); - else return visitor.visitChildren(this); - } - } - - public final TypeBoundWhereClauseItemContext typeBoundWhereClauseItem() throws RecognitionException { - TypeBoundWhereClauseItemContext _localctx = new TypeBoundWhereClauseItemContext(_ctx, getState()); - enterRule(_localctx, 134, RULE_typeBoundWhereClauseItem); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1207); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,147,_ctx) ) { - case 1: - { - setState(1206); - forLifetimes(); - } - break; - } - setState(1209); - type_(); - setState(1210); - match(COLON); - setState(1212); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453553367451680L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 290545947639809L) != 0) { - { - setState(1211); - typeParamBounds(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ForLifetimesContext extends ParserRuleContext { - public TerminalNode KW_FOR() { return getToken(RustParser.KW_FOR, 0); } - public GenericParamsContext genericParams() { - return getRuleContext(GenericParamsContext.class,0); - } - public ForLifetimesContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forLifetimes; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitForLifetimes(this); - else return visitor.visitChildren(this); - } - } - - public final ForLifetimesContext forLifetimes() throws RecognitionException { - ForLifetimesContext _localctx = new ForLifetimesContext(_ctx, getState()); - enterRule(_localctx, 136, RULE_forLifetimes); - try { - enterOuterAlt(_localctx, 1); - { - setState(1214); - match(KW_FOR); - setState(1215); - genericParams(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class AssociatedItemContext extends ParserRuleContext { - public MacroInvocationSemiContext macroInvocationSemi() { - return getRuleContext(MacroInvocationSemiContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public TypeAliasContext typeAlias() { - return getRuleContext(TypeAliasContext.class,0); - } - public ConstantItemContext constantItem() { - return getRuleContext(ConstantItemContext.class,0); - } - public Function_Context function_() { - return getRuleContext(Function_Context.class,0); - } - public VisibilityContext visibility() { - return getRuleContext(VisibilityContext.class,0); - } - public AssociatedItemContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_associatedItem; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAssociatedItem(this); - else return visitor.visitChildren(this); - } - } - - public final AssociatedItemContext associatedItem() throws RecognitionException { - AssociatedItemContext _localctx = new AssociatedItemContext(_ctx, getState()); - enterRule(_localctx, 138, RULE_associatedItem); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1220); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(1217); - outerAttribute(); - } - } - setState(1222); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1232); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_CRATE: - case KW_SELFVALUE: - case KW_SUPER: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case PATHSEP: - { - setState(1223); - macroInvocationSemi(); - } - break; - case KW_CONST: - case KW_EXTERN: - case KW_FN: - case KW_PUB: - case KW_TYPE: - case KW_UNSAFE: - case KW_ASYNC: - { - setState(1225); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_PUB) { - { - setState(1224); - visibility(); - } - } - - setState(1230); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,151,_ctx) ) { - case 1: - { - setState(1227); - typeAlias(); - } - break; - case 2: - { - setState(1228); - constantItem(); - } - break; - case 3: - { - setState(1229); - function_(); - } - break; - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class InnerAttributeContext extends ParserRuleContext { - public TerminalNode POUND() { return getToken(RustParser.POUND, 0); } - public TerminalNode NOT() { return getToken(RustParser.NOT, 0); } - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public AttrContext attr() { - return getRuleContext(AttrContext.class,0); - } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public InnerAttributeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_innerAttribute; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitInnerAttribute(this); - else return visitor.visitChildren(this); - } - } - - public final InnerAttributeContext innerAttribute() throws RecognitionException { - InnerAttributeContext _localctx = new InnerAttributeContext(_ctx, getState()); - enterRule(_localctx, 140, RULE_innerAttribute); - try { - enterOuterAlt(_localctx, 1); - { - setState(1234); - match(POUND); - setState(1235); - match(NOT); - setState(1236); - match(LSQUAREBRACKET); - setState(1237); - attr(); - setState(1238); - match(RSQUAREBRACKET); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class OuterAttributeContext extends ParserRuleContext { - public TerminalNode POUND() { return getToken(RustParser.POUND, 0); } - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public AttrContext attr() { - return getRuleContext(AttrContext.class,0); - } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public OuterAttributeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_outerAttribute; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitOuterAttribute(this); - else return visitor.visitChildren(this); - } - } - - public final OuterAttributeContext outerAttribute() throws RecognitionException { - OuterAttributeContext _localctx = new OuterAttributeContext(_ctx, getState()); - enterRule(_localctx, 142, RULE_outerAttribute); - try { - enterOuterAlt(_localctx, 1); - { - setState(1240); - match(POUND); - setState(1241); - match(LSQUAREBRACKET); - setState(1242); - attr(); - setState(1243); - match(RSQUAREBRACKET); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class AttrContext extends ParserRuleContext { - public SimplePathContext simplePath() { - return getRuleContext(SimplePathContext.class,0); - } - public AttrInputContext attrInput() { - return getRuleContext(AttrInputContext.class,0); - } - public AttrContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_attr; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAttr(this); - else return visitor.visitChildren(this); - } - } - - public final AttrContext attr() throws RecognitionException { - AttrContext _localctx = new AttrContext(_ctx, getState()); - enterRule(_localctx, 144, RULE_attr); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1245); - simplePath(); - setState(1247); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la - 101)) & ~0x3f) == 0 && ((1L << (_la - 101)) & 88080385L) != 0) { - { - setState(1246); - attrInput(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class AttrInputContext extends ParserRuleContext { - public DelimTokenTreeContext delimTokenTree() { - return getRuleContext(DelimTokenTreeContext.class,0); - } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public LiteralExpressionContext literalExpression() { - return getRuleContext(LiteralExpressionContext.class,0); - } - public AttrInputContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_attrInput; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAttrInput(this); - else return visitor.visitChildren(this); - } - } - - public final AttrInputContext attrInput() throws RecognitionException { - AttrInputContext _localctx = new AttrInputContext(_ctx, getState()); - enterRule(_localctx, 146, RULE_attrInput); - try { - setState(1252); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LCURLYBRACE: - case LSQUAREBRACKET: - case LPAREN: - enterOuterAlt(_localctx, 1); - { - setState(1249); - delimTokenTree(); - } - break; - case EQ: - enterOuterAlt(_localctx, 2); - { - setState(1250); - match(EQ); - setState(1251); - literalExpression(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StatementContext extends ParserRuleContext { - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public ItemContext item() { - return getRuleContext(ItemContext.class,0); - } - public LetStatementContext letStatement() { - return getRuleContext(LetStatementContext.class,0); - } - public ExpressionStatementContext expressionStatement() { - return getRuleContext(ExpressionStatementContext.class,0); - } - public MacroInvocationSemiContext macroInvocationSemi() { - return getRuleContext(MacroInvocationSemiContext.class,0); - } - public StatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statement; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStatement(this); - else return visitor.visitChildren(this); - } - } - - public final StatementContext statement() throws RecognitionException { - StatementContext _localctx = new StatementContext(_ctx, getState()); - enterRule(_localctx, 148, RULE_statement); - try { - setState(1259); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,155,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1254); - match(SEMI); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1255); - item(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1256); - letStatement(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1257); - expressionStatement(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1258); - macroInvocationSemi(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LetStatementContext extends ParserRuleContext { - public TerminalNode KW_LET() { return getToken(RustParser.KW_LET, 0); } - public PatternNoTopAltContext patternNoTopAlt() { - return getRuleContext(PatternNoTopAltContext.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public LetStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_letStatement; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLetStatement(this); - else return visitor.visitChildren(this); - } - } - - public final LetStatementContext letStatement() throws RecognitionException { - LetStatementContext _localctx = new LetStatementContext(_ctx, getState()); - enterRule(_localctx, 150, RULE_letStatement); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1264); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(1261); - outerAttribute(); - } - } - setState(1266); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1267); - match(KW_LET); - setState(1268); - patternNoTopAlt(); - setState(1271); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COLON) { - { - setState(1269); - match(COLON); - setState(1270); - type_(); - } - } - - setState(1275); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EQ) { - { - setState(1273); - match(EQ); - setState(1274); - expression(0); - } - } - - setState(1277); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ExpressionStatementContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public ExpressionWithBlockContext expressionWithBlock() { - return getRuleContext(ExpressionWithBlockContext.class,0); - } - public ExpressionStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expressionStatement; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitExpressionStatement(this); - else return visitor.visitChildren(this); - } - } - - public final ExpressionStatementContext expressionStatement() throws RecognitionException { - ExpressionStatementContext _localctx = new ExpressionStatementContext(_ctx, getState()); - enterRule(_localctx, 152, RULE_expressionStatement); - try { - setState(1286); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,160,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1279); - expression(0); - setState(1280); - match(SEMI); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1282); - expressionWithBlock(); - setState(1284); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,159,_ctx) ) { - case 1: - { - setState(1283); - match(SEMI); - } - break; - } - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ExpressionContext extends ParserRuleContext { - public ExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expression; } - - public ExpressionContext() { } - public void copyFrom(ExpressionContext ctx) { - super.copyFrom(ctx); - } - } - @SuppressWarnings("CheckReturnValue") - public static class TypeCastExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode KW_AS() { return getToken(RustParser.KW_AS, 0); } - public TypeNoBoundsContext typeNoBounds() { - return getRuleContext(TypeNoBoundsContext.class,0); - } - public TypeCastExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypeCastExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class PathExpression_Context extends ExpressionContext { - public PathExpressionContext pathExpression() { - return getRuleContext(PathExpressionContext.class,0); - } - public PathExpression_Context(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPathExpression_(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class TupleExpressionContext extends ExpressionContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public TupleElementsContext tupleElements() { - return getRuleContext(TupleElementsContext.class,0); - } - public TupleExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class IndexExpressionContext extends ExpressionContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public IndexExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitIndexExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class RangeExpressionContext extends ExpressionContext { - public TerminalNode DOTDOT() { return getToken(RustParser.DOTDOT, 0); } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public TerminalNode DOTDOTEQ() { return getToken(RustParser.DOTDOTEQ, 0); } - public RangeExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitRangeExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class MacroInvocationAsExpressionContext extends ExpressionContext { - public MacroInvocationContext macroInvocation() { - return getRuleContext(MacroInvocationContext.class,0); - } - public MacroInvocationAsExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroInvocationAsExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ReturnExpressionContext extends ExpressionContext { - public TerminalNode KW_RETURN() { return getToken(RustParser.KW_RETURN, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ReturnExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitReturnExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class AwaitExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode DOT() { return getToken(RustParser.DOT, 0); } - public TerminalNode KW_AWAIT() { return getToken(RustParser.KW_AWAIT, 0); } - public AwaitExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAwaitExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ErrorPropagationExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode QUESTION() { return getToken(RustParser.QUESTION, 0); } - public ErrorPropagationExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitErrorPropagationExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ContinueExpressionContext extends ExpressionContext { - public TerminalNode KW_CONTINUE() { return getToken(RustParser.KW_CONTINUE, 0); } - public TerminalNode LIFETIME_OR_LABEL() { return getToken(RustParser.LIFETIME_OR_LABEL, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ContinueExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitContinueExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class AssignmentExpressionContext extends ExpressionContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public AssignmentExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAssignmentExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class MethodCallExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode DOT() { return getToken(RustParser.DOT, 0); } - public PathExprSegmentContext pathExprSegment() { - return getRuleContext(PathExprSegmentContext.class,0); - } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public CallParamsContext callParams() { - return getRuleContext(CallParamsContext.class,0); - } - public MethodCallExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMethodCallExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class LiteralExpression_Context extends ExpressionContext { - public LiteralExpressionContext literalExpression() { - return getRuleContext(LiteralExpressionContext.class,0); - } - public LiteralExpression_Context(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLiteralExpression_(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class StructExpression_Context extends ExpressionContext { - public StructExpressionContext structExpression() { - return getRuleContext(StructExpressionContext.class,0); - } - public StructExpression_Context(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructExpression_(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class TupleIndexingExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode DOT() { return getToken(RustParser.DOT, 0); } - public TupleIndexContext tupleIndex() { - return getRuleContext(TupleIndexContext.class,0); - } - public TupleIndexingExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleIndexingExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class NegationExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode MINUS() { return getToken(RustParser.MINUS, 0); } - public TerminalNode NOT() { return getToken(RustParser.NOT, 0); } - public NegationExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitNegationExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class CallExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public CallParamsContext callParams() { - return getRuleContext(CallParamsContext.class,0); - } - public CallExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitCallExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class LazyBooleanExpressionContext extends ExpressionContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public TerminalNode ANDAND() { return getToken(RustParser.ANDAND, 0); } - public TerminalNode OROR() { return getToken(RustParser.OROR, 0); } - public LazyBooleanExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLazyBooleanExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class DereferenceExpressionContext extends ExpressionContext { - public TerminalNode STAR() { return getToken(RustParser.STAR, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public DereferenceExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitDereferenceExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ExpressionWithBlock_Context extends ExpressionContext { - public ExpressionWithBlockContext expressionWithBlock() { - return getRuleContext(ExpressionWithBlockContext.class,0); - } - public ExpressionWithBlock_Context(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitExpressionWithBlock_(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class GroupedExpressionContext extends ExpressionContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public GroupedExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGroupedExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class BreakExpressionContext extends ExpressionContext { - public TerminalNode KW_BREAK() { return getToken(RustParser.KW_BREAK, 0); } - public TerminalNode LIFETIME_OR_LABEL() { return getToken(RustParser.LIFETIME_OR_LABEL, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BreakExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitBreakExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ArithmeticOrLogicalExpressionContext extends ExpressionContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public TerminalNode STAR() { return getToken(RustParser.STAR, 0); } - public TerminalNode SLASH() { return getToken(RustParser.SLASH, 0); } - public TerminalNode PERCENT() { return getToken(RustParser.PERCENT, 0); } - public TerminalNode PLUS() { return getToken(RustParser.PLUS, 0); } - public TerminalNode MINUS() { return getToken(RustParser.MINUS, 0); } - public TerminalNode AND() { return getToken(RustParser.AND, 0); } - public TerminalNode CARET() { return getToken(RustParser.CARET, 0); } - public TerminalNode OR() { return getToken(RustParser.OR, 0); } - public ShiftOperatorContext shiftOperator() { - return getRuleContext(ShiftOperatorContext.class,0); - } - public ArithmeticOrLogicalExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitArithmeticOrLogicalExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class FieldExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode DOT() { return getToken(RustParser.DOT, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public FieldExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFieldExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class EnumerationVariantExpression_Context extends ExpressionContext { - public EnumerationVariantExpressionContext enumerationVariantExpression() { - return getRuleContext(EnumerationVariantExpressionContext.class,0); - } - public EnumerationVariantExpression_Context(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumerationVariantExpression_(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ComparisonExpressionContext extends ExpressionContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ComparisonOperatorContext comparisonOperator() { - return getRuleContext(ComparisonOperatorContext.class,0); - } - public ComparisonExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitComparisonExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class AttributedExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public AttributedExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAttributedExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class BorrowExpressionContext extends ExpressionContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode AND() { return getToken(RustParser.AND, 0); } - public TerminalNode ANDAND() { return getToken(RustParser.ANDAND, 0); } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public BorrowExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitBorrowExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class CompoundAssignmentExpressionContext extends ExpressionContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public CompoundAssignOperatorContext compoundAssignOperator() { - return getRuleContext(CompoundAssignOperatorContext.class,0); - } - public CompoundAssignmentExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitCompoundAssignmentExpression(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ClosureExpression_Context extends ExpressionContext { - public ClosureExpressionContext closureExpression() { - return getRuleContext(ClosureExpressionContext.class,0); - } - public ClosureExpression_Context(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitClosureExpression_(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ArrayExpressionContext extends ExpressionContext { - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public ArrayElementsContext arrayElements() { - return getRuleContext(ArrayElementsContext.class,0); - } - public ArrayExpressionContext(ExpressionContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitArrayExpression(this); - else return visitor.visitChildren(this); - } - } - - public final ExpressionContext expression() throws RecognitionException { - return expression(0); - } - - private ExpressionContext expression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState); - ExpressionContext _prevctx = _localctx; - int _startState = 154; - enterRecursionRule(_localctx, 154, RULE_expression, _p); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1368); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,174,_ctx) ) { - case 1: - { - _localctx = new AttributedExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - - setState(1290); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(1289); - outerAttribute(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(1292); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,161,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - setState(1294); - expression(40); - } - break; - case 2: - { - _localctx = new LiteralExpression_Context(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1296); - literalExpression(); - } - break; - case 3: - { - _localctx = new PathExpression_Context(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1297); - pathExpression(); - } - break; - case 4: - { - _localctx = new BorrowExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1298); - _la = _input.LA(1); - if ( !(_la==AND || _la==ANDAND) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(1300); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MUT) { - { - setState(1299); - match(KW_MUT); - } - } - - setState(1302); - expression(30); - } - break; - case 5: - { - _localctx = new DereferenceExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1303); - match(STAR); - setState(1304); - expression(29); - } - break; - case 6: - { - _localctx = new NegationExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1305); - _la = _input.LA(1); - if ( !(_la==MINUS || _la==NOT) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(1306); - expression(28); - } - break; - case 7: - { - _localctx = new RangeExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1307); - match(DOTDOT); - setState(1309); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) { - case 1: - { - setState(1308); - expression(0); - } - break; - } - } - break; - case 8: - { - _localctx = new RangeExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1311); - match(DOTDOTEQ); - setState(1312); - expression(15); - } - break; - case 9: - { - _localctx = new ContinueExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1313); - match(KW_CONTINUE); - setState(1315); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,164,_ctx) ) { - case 1: - { - setState(1314); - match(LIFETIME_OR_LABEL); - } - break; - } - setState(1318); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) { - case 1: - { - setState(1317); - expression(0); - } - break; - } - } - break; - case 10: - { - _localctx = new BreakExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1320); - match(KW_BREAK); - setState(1322); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,166,_ctx) ) { - case 1: - { - setState(1321); - match(LIFETIME_OR_LABEL); - } - break; - } - setState(1325); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,167,_ctx) ) { - case 1: - { - setState(1324); - expression(0); - } - break; - } - } - break; - case 11: - { - _localctx = new ReturnExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1327); - match(KW_RETURN); - setState(1329); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,168,_ctx) ) { - case 1: - { - setState(1328); - expression(0); - } - break; - } - } - break; - case 12: - { - _localctx = new GroupedExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1331); - match(LPAREN); - setState(1335); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,169,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1332); - innerAttribute(); - } - } - } - setState(1337); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,169,_ctx); - } - setState(1338); - expression(0); - setState(1339); - match(RPAREN); - } - break; - case 13: - { - _localctx = new ArrayExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1341); - match(LSQUAREBRACKET); - setState(1345); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,170,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1342); - innerAttribute(); - } - } - } - setState(1347); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,170,_ctx); - } - setState(1349); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417665550785076L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523430809782507647L) != 0) { - { - setState(1348); - arrayElements(); - } - } - - setState(1351); - match(RSQUAREBRACKET); - } - break; - case 14: - { - _localctx = new TupleExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1352); - match(LPAREN); - setState(1356); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,172,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1353); - innerAttribute(); - } - } - } - setState(1358); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,172,_ctx); - } - setState(1360); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417665550785076L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523430809782507647L) != 0) { - { - setState(1359); - tupleElements(); - } - } - - setState(1362); - match(RPAREN); - } - break; - case 15: - { - _localctx = new StructExpression_Context(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1363); - structExpression(); - } - break; - case 16: - { - _localctx = new EnumerationVariantExpression_Context(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1364); - enumerationVariantExpression(); - } - break; - case 17: - { - _localctx = new ClosureExpression_Context(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1365); - closureExpression(); - } - break; - case 18: - { - _localctx = new ExpressionWithBlock_Context(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1366); - expressionWithBlock(); - } - break; - case 19: - { - _localctx = new MacroInvocationAsExpressionContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(1367); - macroInvocation(); - } - break; - } - _ctx.stop = _input.LT(-1); - setState(1450); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,179,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(1448); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { - case 1: - { - _localctx = new ArithmeticOrLogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1370); - if (!(precpred(_ctx, 26))) throw new FailedPredicateException(this, "precpred(_ctx, 26)"); - setState(1371); - _la = _input.LA(1); - if ( !((((_la - 82)) & ~0x3f) == 0 && ((1L << (_la - 82)) & 7L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(1372); - expression(27); - } - break; - case 2: - { - _localctx = new ArithmeticOrLogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1373); - if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)"); - setState(1374); - _la = _input.LA(1); - if ( !(_la==PLUS || _la==MINUS) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(1375); - expression(26); - } - break; - case 3: - { - _localctx = new ArithmeticOrLogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1376); - if (!(precpred(_ctx, 24))) throw new FailedPredicateException(this, "precpred(_ctx, 24)"); - setState(1377); - match(AND); - setState(1378); - expression(25); - } - break; - case 4: - { - _localctx = new ArithmeticOrLogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1379); - if (!(precpred(_ctx, 23))) throw new FailedPredicateException(this, "precpred(_ctx, 23)"); - setState(1380); - match(CARET); - setState(1381); - expression(24); - } - break; - case 5: - { - _localctx = new ArithmeticOrLogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1382); - if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)"); - setState(1383); - match(OR); - setState(1384); - expression(23); - } - break; - case 6: - { - _localctx = new ArithmeticOrLogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1385); - if (!(precpred(_ctx, 21))) throw new FailedPredicateException(this, "precpred(_ctx, 21)"); - setState(1386); - shiftOperator(); - setState(1387); - expression(22); - } - break; - case 7: - { - _localctx = new ComparisonExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1389); - if (!(precpred(_ctx, 20))) throw new FailedPredicateException(this, "precpred(_ctx, 20)"); - setState(1390); - comparisonOperator(); - setState(1391); - expression(21); - } - break; - case 8: - { - _localctx = new LazyBooleanExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1393); - if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)"); - setState(1394); - match(ANDAND); - setState(1395); - expression(20); - } - break; - case 9: - { - _localctx = new LazyBooleanExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1396); - if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)"); - setState(1397); - match(OROR); - setState(1398); - expression(19); - } - break; - case 10: - { - _localctx = new RangeExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1399); - if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)"); - setState(1400); - match(DOTDOTEQ); - setState(1401); - expression(15); - } - break; - case 11: - { - _localctx = new AssignmentExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1402); - if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)"); - setState(1403); - match(EQ); - setState(1404); - expression(14); - } - break; - case 12: - { - _localctx = new CompoundAssignmentExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1405); - if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)"); - setState(1406); - compoundAssignOperator(); - setState(1407); - expression(13); - } - break; - case 13: - { - _localctx = new MethodCallExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1409); - if (!(precpred(_ctx, 37))) throw new FailedPredicateException(this, "precpred(_ctx, 37)"); - setState(1410); - match(DOT); - setState(1411); - pathExprSegment(); - setState(1412); - match(LPAREN); - setState(1414); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417665550785076L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523430809782507647L) != 0) { - { - setState(1413); - callParams(); - } - } - - setState(1416); - match(RPAREN); - } - break; - case 14: - { - _localctx = new FieldExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1418); - if (!(precpred(_ctx, 36))) throw new FailedPredicateException(this, "precpred(_ctx, 36)"); - setState(1419); - match(DOT); - setState(1420); - identifier(); - } - break; - case 15: - { - _localctx = new TupleIndexingExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1421); - if (!(precpred(_ctx, 35))) throw new FailedPredicateException(this, "precpred(_ctx, 35)"); - setState(1422); - match(DOT); - setState(1423); - tupleIndex(); - } - break; - case 16: - { - _localctx = new AwaitExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1424); - if (!(precpred(_ctx, 34))) throw new FailedPredicateException(this, "precpred(_ctx, 34)"); - setState(1425); - match(DOT); - setState(1426); - match(KW_AWAIT); - } - break; - case 17: - { - _localctx = new CallExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1427); - if (!(precpred(_ctx, 33))) throw new FailedPredicateException(this, "precpred(_ctx, 33)"); - setState(1428); - match(LPAREN); - setState(1430); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417665550785076L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523430809782507647L) != 0) { - { - setState(1429); - callParams(); - } - } - - setState(1432); - match(RPAREN); - } - break; - case 18: - { - _localctx = new IndexExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1433); - if (!(precpred(_ctx, 32))) throw new FailedPredicateException(this, "precpred(_ctx, 32)"); - setState(1434); - match(LSQUAREBRACKET); - setState(1435); - expression(0); - setState(1436); - match(RSQUAREBRACKET); - } - break; - case 19: - { - _localctx = new ErrorPropagationExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1438); - if (!(precpred(_ctx, 31))) throw new FailedPredicateException(this, "precpred(_ctx, 31)"); - setState(1439); - match(QUESTION); - } - break; - case 20: - { - _localctx = new TypeCastExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1440); - if (!(precpred(_ctx, 27))) throw new FailedPredicateException(this, "precpred(_ctx, 27)"); - setState(1441); - match(KW_AS); - setState(1442); - typeNoBounds(); - } - break; - case 21: - { - _localctx = new RangeExpressionContext(new ExpressionContext(_parentctx, _parentState)); - pushNewRecursionContext(_localctx, _startState, RULE_expression); - setState(1443); - if (!(precpred(_ctx, 17))) throw new FailedPredicateException(this, "precpred(_ctx, 17)"); - setState(1444); - match(DOTDOT); - setState(1446); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) { - case 1: - { - setState(1445); - expression(0); - } - break; - } - } - break; - } - } - } - setState(1452); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,179,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ShiftOperatorContext extends ParserRuleContext { - public List GT() { return getTokens(RustParser.GT); } - public TerminalNode GT(int i) { - return getToken(RustParser.GT, i); - } - public List LT() { return getTokens(RustParser.LT); } - public TerminalNode LT(int i) { - return getToken(RustParser.LT, i); - } - public ShiftOperatorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_shiftOperator; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitShiftOperator(this); - else return visitor.visitChildren(this); - } - } - - public final ShiftOperatorContext shiftOperator() throws RecognitionException { - ShiftOperatorContext _localctx = new ShiftOperatorContext(_ctx, getState()); - enterRule(_localctx, 156, RULE_shiftOperator); - try { - setState(1457); - _errHandler.sync(this); - switch (_input.LA(1)) { - case GT: - enterOuterAlt(_localctx, 1); - { - setState(1453); - match(GT); - setState(1454); - match(GT); - } - break; - case LT: - enterOuterAlt(_localctx, 2); - { - setState(1455); - match(LT); - setState(1456); - match(LT); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ComparisonOperatorContext extends ParserRuleContext { - public TerminalNode EQEQ() { return getToken(RustParser.EQEQ, 0); } - public TerminalNode NE() { return getToken(RustParser.NE, 0); } - public TerminalNode GT() { return getToken(RustParser.GT, 0); } - public TerminalNode LT() { return getToken(RustParser.LT, 0); } - public TerminalNode GE() { return getToken(RustParser.GE, 0); } - public TerminalNode LE() { return getToken(RustParser.LE, 0); } - public ComparisonOperatorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_comparisonOperator; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitComparisonOperator(this); - else return visitor.visitChildren(this); - } - } - - public final ComparisonOperatorContext comparisonOperator() throws RecognitionException { - ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, getState()); - enterRule(_localctx, 158, RULE_comparisonOperator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1459); - _la = _input.LA(1); - if ( !((((_la - 102)) & ~0x3f) == 0 && ((1L << (_la - 102)) & 63L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class CompoundAssignOperatorContext extends ParserRuleContext { - public TerminalNode PLUSEQ() { return getToken(RustParser.PLUSEQ, 0); } - public TerminalNode MINUSEQ() { return getToken(RustParser.MINUSEQ, 0); } - public TerminalNode STAREQ() { return getToken(RustParser.STAREQ, 0); } - public TerminalNode SLASHEQ() { return getToken(RustParser.SLASHEQ, 0); } - public TerminalNode PERCENTEQ() { return getToken(RustParser.PERCENTEQ, 0); } - public TerminalNode ANDEQ() { return getToken(RustParser.ANDEQ, 0); } - public TerminalNode OREQ() { return getToken(RustParser.OREQ, 0); } - public TerminalNode CARETEQ() { return getToken(RustParser.CARETEQ, 0); } - public TerminalNode SHLEQ() { return getToken(RustParser.SHLEQ, 0); } - public TerminalNode SHREQ() { return getToken(RustParser.SHREQ, 0); } - public CompoundAssignOperatorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_compoundAssignOperator; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitCompoundAssignOperator(this); - else return visitor.visitChildren(this); - } - } - - public final CompoundAssignOperatorContext compoundAssignOperator() throws RecognitionException { - CompoundAssignOperatorContext _localctx = new CompoundAssignOperatorContext(_ctx, getState()); - enterRule(_localctx, 160, RULE_compoundAssignOperator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1461); - _la = _input.LA(1); - if ( !((((_la - 91)) & ~0x3f) == 0 && ((1L << (_la - 91)) & 1023L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ExpressionWithBlockContext extends ParserRuleContext { - public ExpressionWithBlockContext expressionWithBlock() { - return getRuleContext(ExpressionWithBlockContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public AsyncBlockExpressionContext asyncBlockExpression() { - return getRuleContext(AsyncBlockExpressionContext.class,0); - } - public UnsafeBlockExpressionContext unsafeBlockExpression() { - return getRuleContext(UnsafeBlockExpressionContext.class,0); - } - public LoopExpressionContext loopExpression() { - return getRuleContext(LoopExpressionContext.class,0); - } - public IfExpressionContext ifExpression() { - return getRuleContext(IfExpressionContext.class,0); - } - public IfLetExpressionContext ifLetExpression() { - return getRuleContext(IfLetExpressionContext.class,0); - } - public MatchExpressionContext matchExpression() { - return getRuleContext(MatchExpressionContext.class,0); - } - public ExpressionWithBlockContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expressionWithBlock; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitExpressionWithBlock(this); - else return visitor.visitChildren(this); - } - } - - public final ExpressionWithBlockContext expressionWithBlock() throws RecognitionException { - ExpressionWithBlockContext _localctx = new ExpressionWithBlockContext(_ctx, getState()); - enterRule(_localctx, 162, RULE_expressionWithBlock); - try { - int _alt; - setState(1477); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,182,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1464); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(1463); - outerAttribute(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(1466); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,181,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - setState(1468); - expressionWithBlock(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1470); - blockExpression(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1471); - asyncBlockExpression(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1472); - unsafeBlockExpression(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1473); - loopExpression(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1474); - ifExpression(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1475); - ifLetExpression(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1476); - matchExpression(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LiteralExpressionContext extends ParserRuleContext { - public TerminalNode CHAR_LITERAL() { return getToken(RustParser.CHAR_LITERAL, 0); } - public TerminalNode STRING_LITERAL() { return getToken(RustParser.STRING_LITERAL, 0); } - public TerminalNode RAW_STRING_LITERAL() { return getToken(RustParser.RAW_STRING_LITERAL, 0); } - public TerminalNode BYTE_LITERAL() { return getToken(RustParser.BYTE_LITERAL, 0); } - public TerminalNode BYTE_STRING_LITERAL() { return getToken(RustParser.BYTE_STRING_LITERAL, 0); } - public TerminalNode RAW_BYTE_STRING_LITERAL() { return getToken(RustParser.RAW_BYTE_STRING_LITERAL, 0); } - public TerminalNode INTEGER_LITERAL() { return getToken(RustParser.INTEGER_LITERAL, 0); } - public TerminalNode FLOAT_LITERAL() { return getToken(RustParser.FLOAT_LITERAL, 0); } - public TerminalNode KW_TRUE() { return getToken(RustParser.KW_TRUE, 0); } - public TerminalNode KW_FALSE() { return getToken(RustParser.KW_FALSE, 0); } - public LiteralExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_literalExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLiteralExpression(this); - else return visitor.visitChildren(this); - } - } - - public final LiteralExpressionContext literalExpression() throws RecognitionException { - LiteralExpressionContext _localctx = new LiteralExpressionContext(_ctx, getState()); - enterRule(_localctx, 164, RULE_literalExpression); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1479); - _la = _input.LA(1); - if ( !(_la==KW_FALSE || _la==KW_TRUE || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2175L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PathExpressionContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public QualifiedPathInExpressionContext qualifiedPathInExpression() { - return getRuleContext(QualifiedPathInExpressionContext.class,0); - } - public PathExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_pathExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPathExpression(this); - else return visitor.visitChildren(this); - } - } - - public final PathExpressionContext pathExpression() throws RecognitionException { - PathExpressionContext _localctx = new PathExpressionContext(_ctx, getState()); - enterRule(_localctx, 166, RULE_pathExpression); - try { - setState(1483); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_CRATE: - case KW_SELFVALUE: - case KW_SELFTYPE: - case KW_SUPER: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case PATHSEP: - enterOuterAlt(_localctx, 1); - { - setState(1481); - pathInExpression(); - } - break; - case LT: - enterOuterAlt(_localctx, 2); - { - setState(1482); - qualifiedPathInExpression(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class BlockExpressionContext extends ParserRuleContext { - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public StatementsContext statements() { - return getRuleContext(StatementsContext.class,0); - } - public BlockExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_blockExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitBlockExpression(this); - else return visitor.visitChildren(this); - } - } - - public final BlockExpressionContext blockExpression() throws RecognitionException { - BlockExpressionContext _localctx = new BlockExpressionContext(_ctx, getState()); - enterRule(_localctx, 168, RULE_blockExpression); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1485); - match(LCURLYBRACE); - setState(1489); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,184,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1486); - innerAttribute(); - } - } - } - setState(1491); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,184,_ctx); - } - setState(1493); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 526921276656172988L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523712284759218303L) != 0) { - { - setState(1492); - statements(); - } - } - - setState(1495); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StatementsContext extends ParserRuleContext { - public List statement() { - return getRuleContexts(StatementContext.class); - } - public StatementContext statement(int i) { - return getRuleContext(StatementContext.class,i); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StatementsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statements; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStatements(this); - else return visitor.visitChildren(this); - } - } - - public final StatementsContext statements() throws RecognitionException { - StatementsContext _localctx = new StatementsContext(_ctx, getState()); - enterRule(_localctx, 170, RULE_statements); - int _la; - try { - int _alt; - setState(1506); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,188,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1498); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(1497); - statement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(1500); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,186,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - setState(1503); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417665550785076L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523430809782507647L) != 0) { - { - setState(1502); - expression(0); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1505); - expression(0); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class AsyncBlockExpressionContext extends ParserRuleContext { - public TerminalNode KW_ASYNC() { return getToken(RustParser.KW_ASYNC, 0); } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public TerminalNode KW_MOVE() { return getToken(RustParser.KW_MOVE, 0); } - public AsyncBlockExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_asyncBlockExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitAsyncBlockExpression(this); - else return visitor.visitChildren(this); - } - } - - public final AsyncBlockExpressionContext asyncBlockExpression() throws RecognitionException { - AsyncBlockExpressionContext _localctx = new AsyncBlockExpressionContext(_ctx, getState()); - enterRule(_localctx, 172, RULE_asyncBlockExpression); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1508); - match(KW_ASYNC); - setState(1510); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MOVE) { - { - setState(1509); - match(KW_MOVE); - } - } - - setState(1512); - blockExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class UnsafeBlockExpressionContext extends ParserRuleContext { - public TerminalNode KW_UNSAFE() { return getToken(RustParser.KW_UNSAFE, 0); } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public UnsafeBlockExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unsafeBlockExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitUnsafeBlockExpression(this); - else return visitor.visitChildren(this); - } - } - - public final UnsafeBlockExpressionContext unsafeBlockExpression() throws RecognitionException { - UnsafeBlockExpressionContext _localctx = new UnsafeBlockExpressionContext(_ctx, getState()); - enterRule(_localctx, 174, RULE_unsafeBlockExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1514); - match(KW_UNSAFE); - setState(1515); - blockExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ArrayElementsContext extends ParserRuleContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public ArrayElementsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayElements; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitArrayElements(this); - else return visitor.visitChildren(this); - } - } - - public final ArrayElementsContext arrayElements() throws RecognitionException { - ArrayElementsContext _localctx = new ArrayElementsContext(_ctx, getState()); - enterRule(_localctx, 176, RULE_arrayElements); - int _la; - try { - int _alt; - setState(1532); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1517); - expression(0); - setState(1522); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,190,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1518); - match(COMMA); - setState(1519); - expression(0); - } - } - } - setState(1524); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,190,_ctx); - } - setState(1526); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1525); - match(COMMA); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1528); - expression(0); - setState(1529); - match(SEMI); - setState(1530); - expression(0); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TupleElementsContext extends ParserRuleContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public TupleElementsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tupleElements; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleElements(this); - else return visitor.visitChildren(this); - } - } - - public final TupleElementsContext tupleElements() throws RecognitionException { - TupleElementsContext _localctx = new TupleElementsContext(_ctx, getState()); - enterRule(_localctx, 178, RULE_tupleElements); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1537); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(1534); - expression(0); - setState(1535); - match(COMMA); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(1539); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,193,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - setState(1542); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417665550785076L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523430809782507647L) != 0) { - { - setState(1541); - expression(0); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TupleIndexContext extends ParserRuleContext { - public TerminalNode INTEGER_LITERAL() { return getToken(RustParser.INTEGER_LITERAL, 0); } - public TupleIndexContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tupleIndex; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleIndex(this); - else return visitor.visitChildren(this); - } - } - - public final TupleIndexContext tupleIndex() throws RecognitionException { - TupleIndexContext _localctx = new TupleIndexContext(_ctx, getState()); - enterRule(_localctx, 180, RULE_tupleIndex); - try { - enterOuterAlt(_localctx, 1); - { - setState(1544); - match(INTEGER_LITERAL); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructExpressionContext extends ParserRuleContext { - public StructExprStructContext structExprStruct() { - return getRuleContext(StructExprStructContext.class,0); - } - public StructExprTupleContext structExprTuple() { - return getRuleContext(StructExprTupleContext.class,0); - } - public StructExprUnitContext structExprUnit() { - return getRuleContext(StructExprUnitContext.class,0); - } - public StructExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructExpression(this); - else return visitor.visitChildren(this); - } - } - - public final StructExpressionContext structExpression() throws RecognitionException { - StructExpressionContext _localctx = new StructExpressionContext(_ctx, getState()); - enterRule(_localctx, 182, RULE_structExpression); - try { - setState(1549); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1546); - structExprStruct(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1547); - structExprTuple(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1548); - structExprUnit(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructExprStructContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public StructExprFieldsContext structExprFields() { - return getRuleContext(StructExprFieldsContext.class,0); - } - public StructBaseContext structBase() { - return getRuleContext(StructBaseContext.class,0); - } - public StructExprStructContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structExprStruct; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructExprStruct(this); - else return visitor.visitChildren(this); - } - } - - public final StructExprStructContext structExprStruct() throws RecognitionException { - StructExprStructContext _localctx = new StructExprStructContext(_ctx, getState()); - enterRule(_localctx, 184, RULE_structExprStruct); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1551); - pathInExpression(); - setState(1552); - match(LCURLYBRACE); - setState(1556); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,196,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1553); - innerAttribute(); - } - } - } - setState(1558); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,196,_ctx); - } - setState(1561); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case INTEGER_LITERAL: - case POUND: - { - setState(1559); - structExprFields(); - } - break; - case DOTDOT: - { - setState(1560); - structBase(); - } - break; - case RCURLYBRACE: - break; - default: - break; - } - setState(1563); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructExprFieldsContext extends ParserRuleContext { - public List structExprField() { - return getRuleContexts(StructExprFieldContext.class); - } - public StructExprFieldContext structExprField(int i) { - return getRuleContext(StructExprFieldContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public StructBaseContext structBase() { - return getRuleContext(StructBaseContext.class,0); - } - public StructExprFieldsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structExprFields; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructExprFields(this); - else return visitor.visitChildren(this); - } - } - - public final StructExprFieldsContext structExprFields() throws RecognitionException { - StructExprFieldsContext _localctx = new StructExprFieldsContext(_ctx, getState()); - enterRule(_localctx, 186, RULE_structExprFields); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1565); - structExprField(); - setState(1570); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,198,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1566); - match(COMMA); - setState(1567); - structExprField(); - } - } - } - setState(1572); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,198,_ctx); - } - setState(1578); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { - case 1: - { - setState(1573); - match(COMMA); - setState(1574); - structBase(); - } - break; - case 2: - { - setState(1576); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1575); - match(COMMA); - } - } - - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructExprFieldContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public TupleIndexContext tupleIndex() { - return getRuleContext(TupleIndexContext.class,0); - } - public StructExprFieldContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structExprField; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructExprField(this); - else return visitor.visitChildren(this); - } - } - - public final StructExprFieldContext structExprField() throws RecognitionException { - StructExprFieldContext _localctx = new StructExprFieldContext(_ctx, getState()); - enterRule(_localctx, 188, RULE_structExprField); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1583); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(1580); - outerAttribute(); - } - } - setState(1585); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1594); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,203,_ctx) ) { - case 1: - { - setState(1586); - identifier(); - } - break; - case 2: - { - setState(1589); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - { - setState(1587); - identifier(); - } - break; - case INTEGER_LITERAL: - { - setState(1588); - tupleIndex(); - } - break; - default: - throw new NoViableAltException(this); - } - setState(1591); - match(COLON); - setState(1592); - expression(0); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructBaseContext extends ParserRuleContext { - public TerminalNode DOTDOT() { return getToken(RustParser.DOTDOT, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StructBaseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structBase; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructBase(this); - else return visitor.visitChildren(this); - } - } - - public final StructBaseContext structBase() throws RecognitionException { - StructBaseContext _localctx = new StructBaseContext(_ctx, getState()); - enterRule(_localctx, 190, RULE_structBase); - try { - enterOuterAlt(_localctx, 1); - { - setState(1596); - match(DOTDOT); - setState(1597); - expression(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructExprTupleContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public StructExprTupleContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structExprTuple; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructExprTuple(this); - else return visitor.visitChildren(this); - } - } - - public final StructExprTupleContext structExprTuple() throws RecognitionException { - StructExprTupleContext _localctx = new StructExprTupleContext(_ctx, getState()); - enterRule(_localctx, 192, RULE_structExprTuple); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1599); - pathInExpression(); - setState(1600); - match(LPAREN); - setState(1604); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,204,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1601); - innerAttribute(); - } - } - } - setState(1606); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,204,_ctx); - } - setState(1618); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417665550785076L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523430809782507647L) != 0) { - { - setState(1607); - expression(0); - setState(1612); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,205,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1608); - match(COMMA); - setState(1609); - expression(0); - } - } - } - setState(1614); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,205,_ctx); - } - setState(1616); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1615); - match(COMMA); - } - } - - } - } - - setState(1620); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructExprUnitContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public StructExprUnitContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structExprUnit; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructExprUnit(this); - else return visitor.visitChildren(this); - } - } - - public final StructExprUnitContext structExprUnit() throws RecognitionException { - StructExprUnitContext _localctx = new StructExprUnitContext(_ctx, getState()); - enterRule(_localctx, 194, RULE_structExprUnit); - try { - enterOuterAlt(_localctx, 1); - { - setState(1622); - pathInExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumerationVariantExpressionContext extends ParserRuleContext { - public EnumExprStructContext enumExprStruct() { - return getRuleContext(EnumExprStructContext.class,0); - } - public EnumExprTupleContext enumExprTuple() { - return getRuleContext(EnumExprTupleContext.class,0); - } - public EnumExprFieldlessContext enumExprFieldless() { - return getRuleContext(EnumExprFieldlessContext.class,0); - } - public EnumerationVariantExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumerationVariantExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumerationVariantExpression(this); - else return visitor.visitChildren(this); - } - } - - public final EnumerationVariantExpressionContext enumerationVariantExpression() throws RecognitionException { - EnumerationVariantExpressionContext _localctx = new EnumerationVariantExpressionContext(_ctx, getState()); - enterRule(_localctx, 196, RULE_enumerationVariantExpression); - try { - setState(1627); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1624); - enumExprStruct(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1625); - enumExprTuple(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1626); - enumExprFieldless(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumExprStructContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public EnumExprFieldsContext enumExprFields() { - return getRuleContext(EnumExprFieldsContext.class,0); - } - public EnumExprStructContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumExprStruct; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumExprStruct(this); - else return visitor.visitChildren(this); - } - } - - public final EnumExprStructContext enumExprStruct() throws RecognitionException { - EnumExprStructContext _localctx = new EnumExprStructContext(_ctx, getState()); - enterRule(_localctx, 198, RULE_enumExprStruct); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1629); - pathInExpression(); - setState(1630); - match(LCURLYBRACE); - setState(1632); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la - 54)) & ~0x3f) == 0 && ((1L << (_la - 54)) & 524313L) != 0) { - { - setState(1631); - enumExprFields(); - } - } - - setState(1634); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumExprFieldsContext extends ParserRuleContext { - public List enumExprField() { - return getRuleContexts(EnumExprFieldContext.class); - } - public EnumExprFieldContext enumExprField(int i) { - return getRuleContext(EnumExprFieldContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public EnumExprFieldsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumExprFields; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumExprFields(this); - else return visitor.visitChildren(this); - } - } - - public final EnumExprFieldsContext enumExprFields() throws RecognitionException { - EnumExprFieldsContext _localctx = new EnumExprFieldsContext(_ctx, getState()); - enterRule(_localctx, 200, RULE_enumExprFields); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1636); - enumExprField(); - setState(1641); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,210,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1637); - match(COMMA); - setState(1638); - enumExprField(); - } - } - } - setState(1643); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,210,_ctx); - } - setState(1645); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1644); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumExprFieldContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TupleIndexContext tupleIndex() { - return getRuleContext(TupleIndexContext.class,0); - } - public EnumExprFieldContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumExprField; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumExprField(this); - else return visitor.visitChildren(this); - } - } - - public final EnumExprFieldContext enumExprField() throws RecognitionException { - EnumExprFieldContext _localctx = new EnumExprFieldContext(_ctx, getState()); - enterRule(_localctx, 202, RULE_enumExprField); - try { - setState(1655); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,213,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1647); - identifier(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1650); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - { - setState(1648); - identifier(); - } - break; - case INTEGER_LITERAL: - { - setState(1649); - tupleIndex(); - } - break; - default: - throw new NoViableAltException(this); - } - setState(1652); - match(COLON); - setState(1653); - expression(0); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumExprTupleContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public EnumExprTupleContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumExprTuple; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumExprTuple(this); - else return visitor.visitChildren(this); - } - } - - public final EnumExprTupleContext enumExprTuple() throws RecognitionException { - EnumExprTupleContext _localctx = new EnumExprTupleContext(_ctx, getState()); - enterRule(_localctx, 204, RULE_enumExprTuple); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1657); - pathInExpression(); - setState(1658); - match(LPAREN); - setState(1670); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417665550785076L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1523430809782507647L) != 0) { - { - setState(1659); - expression(0); - setState(1664); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,214,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1660); - match(COMMA); - setState(1661); - expression(0); - } - } - } - setState(1666); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,214,_ctx); - } - setState(1668); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1667); - match(COMMA); - } - } - - } - } - - setState(1672); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class EnumExprFieldlessContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public EnumExprFieldlessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumExprFieldless; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitEnumExprFieldless(this); - else return visitor.visitChildren(this); - } - } - - public final EnumExprFieldlessContext enumExprFieldless() throws RecognitionException { - EnumExprFieldlessContext _localctx = new EnumExprFieldlessContext(_ctx, getState()); - enterRule(_localctx, 206, RULE_enumExprFieldless); - try { - enterOuterAlt(_localctx, 1); - { - setState(1674); - pathInExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class CallParamsContext extends ParserRuleContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public CallParamsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_callParams; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitCallParams(this); - else return visitor.visitChildren(this); - } - } - - public final CallParamsContext callParams() throws RecognitionException { - CallParamsContext _localctx = new CallParamsContext(_ctx, getState()); - enterRule(_localctx, 208, RULE_callParams); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1676); - expression(0); - setState(1681); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,217,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1677); - match(COMMA); - setState(1678); - expression(0); - } - } - } - setState(1683); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,217,_ctx); - } - setState(1685); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1684); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ClosureExpressionContext extends ParserRuleContext { - public TerminalNode OROR() { return getToken(RustParser.OROR, 0); } - public List OR() { return getTokens(RustParser.OR); } - public TerminalNode OR(int i) { - return getToken(RustParser.OR, i); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode RARROW() { return getToken(RustParser.RARROW, 0); } - public TypeNoBoundsContext typeNoBounds() { - return getRuleContext(TypeNoBoundsContext.class,0); - } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public TerminalNode KW_MOVE() { return getToken(RustParser.KW_MOVE, 0); } - public ClosureParametersContext closureParameters() { - return getRuleContext(ClosureParametersContext.class,0); - } - public ClosureExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_closureExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitClosureExpression(this); - else return visitor.visitChildren(this); - } - } - - public final ClosureExpressionContext closureExpression() throws RecognitionException { - ClosureExpressionContext _localctx = new ClosureExpressionContext(_ctx, getState()); - enterRule(_localctx, 210, RULE_closureExpression); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1688); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MOVE) { - { - setState(1687); - match(KW_MOVE); - } - } - - setState(1696); - _errHandler.sync(this); - switch (_input.LA(1)) { - case OROR: - { - setState(1690); - match(OROR); - } - break; - case OR: - { - setState(1691); - match(OR); - setState(1693); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,220,_ctx) ) { - case 1: - { - setState(1692); - closureParameters(); - } - break; - } - setState(1695); - match(OR); - } - break; - default: - throw new NoViableAltException(this); - } - setState(1703); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_BREAK: - case KW_CONTINUE: - case KW_CRATE: - case KW_FALSE: - case KW_FOR: - case KW_IF: - case KW_LOOP: - case KW_MATCH: - case KW_MOVE: - case KW_RETURN: - case KW_SELFVALUE: - case KW_SELFTYPE: - case KW_SUPER: - case KW_TRUE: - case KW_UNSAFE: - case KW_WHILE: - case KW_ASYNC: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case CHAR_LITERAL: - case STRING_LITERAL: - case RAW_STRING_LITERAL: - case BYTE_LITERAL: - case BYTE_STRING_LITERAL: - case RAW_BYTE_STRING_LITERAL: - case INTEGER_LITERAL: - case FLOAT_LITERAL: - case LIFETIME_OR_LABEL: - case MINUS: - case STAR: - case NOT: - case AND: - case OR: - case ANDAND: - case OROR: - case LT: - case DOTDOT: - case DOTDOTEQ: - case PATHSEP: - case POUND: - case LCURLYBRACE: - case LSQUAREBRACKET: - case LPAREN: - { - setState(1698); - expression(0); - } - break; - case RARROW: - { - setState(1699); - match(RARROW); - setState(1700); - typeNoBounds(); - setState(1701); - blockExpression(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ClosureParametersContext extends ParserRuleContext { - public List closureParam() { - return getRuleContexts(ClosureParamContext.class); - } - public ClosureParamContext closureParam(int i) { - return getRuleContext(ClosureParamContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public ClosureParametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_closureParameters; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitClosureParameters(this); - else return visitor.visitChildren(this); - } - } - - public final ClosureParametersContext closureParameters() throws RecognitionException { - ClosureParametersContext _localctx = new ClosureParametersContext(_ctx, getState()); - enterRule(_localctx, 212, RULE_closureParameters); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1705); - closureParam(); - setState(1710); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,223,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1706); - match(COMMA); - setState(1707); - closureParam(); - } - } - } - setState(1712); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,223,_ctx); - } - setState(1714); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1713); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ClosureParamContext extends ParserRuleContext { - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public ClosureParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_closureParam; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitClosureParam(this); - else return visitor.visitChildren(this); - } - } - - public final ClosureParamContext closureParam() throws RecognitionException { - ClosureParamContext _localctx = new ClosureParamContext(_ctx, getState()); - enterRule(_localctx, 214, RULE_closureParam); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1719); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(1716); - outerAttribute(); - } - } - setState(1721); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1722); - pattern(); - setState(1725); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COLON) { - { - setState(1723); - match(COLON); - setState(1724); - type_(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LoopExpressionContext extends ParserRuleContext { - public InfiniteLoopExpressionContext infiniteLoopExpression() { - return getRuleContext(InfiniteLoopExpressionContext.class,0); - } - public PredicateLoopExpressionContext predicateLoopExpression() { - return getRuleContext(PredicateLoopExpressionContext.class,0); - } - public PredicatePatternLoopExpressionContext predicatePatternLoopExpression() { - return getRuleContext(PredicatePatternLoopExpressionContext.class,0); - } - public IteratorLoopExpressionContext iteratorLoopExpression() { - return getRuleContext(IteratorLoopExpressionContext.class,0); - } - public LoopLabelContext loopLabel() { - return getRuleContext(LoopLabelContext.class,0); - } - public LoopExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_loopExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLoopExpression(this); - else return visitor.visitChildren(this); - } - } - - public final LoopExpressionContext loopExpression() throws RecognitionException { - LoopExpressionContext _localctx = new LoopExpressionContext(_ctx, getState()); - enterRule(_localctx, 216, RULE_loopExpression); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1728); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LIFETIME_OR_LABEL) { - { - setState(1727); - loopLabel(); - } - } - - setState(1734); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,228,_ctx) ) { - case 1: - { - setState(1730); - infiniteLoopExpression(); - } - break; - case 2: - { - setState(1731); - predicateLoopExpression(); - } - break; - case 3: - { - setState(1732); - predicatePatternLoopExpression(); - } - break; - case 4: - { - setState(1733); - iteratorLoopExpression(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class InfiniteLoopExpressionContext extends ParserRuleContext { - public TerminalNode KW_LOOP() { return getToken(RustParser.KW_LOOP, 0); } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public InfiniteLoopExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_infiniteLoopExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitInfiniteLoopExpression(this); - else return visitor.visitChildren(this); - } - } - - public final InfiniteLoopExpressionContext infiniteLoopExpression() throws RecognitionException { - InfiniteLoopExpressionContext _localctx = new InfiniteLoopExpressionContext(_ctx, getState()); - enterRule(_localctx, 218, RULE_infiniteLoopExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1736); - match(KW_LOOP); - setState(1737); - blockExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PredicateLoopExpressionContext extends ParserRuleContext { - public TerminalNode KW_WHILE() { return getToken(RustParser.KW_WHILE, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public PredicateLoopExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_predicateLoopExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPredicateLoopExpression(this); - else return visitor.visitChildren(this); - } - } - - public final PredicateLoopExpressionContext predicateLoopExpression() throws RecognitionException { - PredicateLoopExpressionContext _localctx = new PredicateLoopExpressionContext(_ctx, getState()); - enterRule(_localctx, 220, RULE_predicateLoopExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1739); - match(KW_WHILE); - setState(1740); - expression(0); - setState(1741); - blockExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PredicatePatternLoopExpressionContext extends ParserRuleContext { - public TerminalNode KW_WHILE() { return getToken(RustParser.KW_WHILE, 0); } - public TerminalNode KW_LET() { return getToken(RustParser.KW_LET, 0); } - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public PredicatePatternLoopExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_predicatePatternLoopExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPredicatePatternLoopExpression(this); - else return visitor.visitChildren(this); - } - } - - public final PredicatePatternLoopExpressionContext predicatePatternLoopExpression() throws RecognitionException { - PredicatePatternLoopExpressionContext _localctx = new PredicatePatternLoopExpressionContext(_ctx, getState()); - enterRule(_localctx, 222, RULE_predicatePatternLoopExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1743); - match(KW_WHILE); - setState(1744); - match(KW_LET); - setState(1745); - pattern(); - setState(1746); - match(EQ); - setState(1747); - expression(0); - setState(1748); - blockExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class IteratorLoopExpressionContext extends ParserRuleContext { - public TerminalNode KW_FOR() { return getToken(RustParser.KW_FOR, 0); } - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public TerminalNode KW_IN() { return getToken(RustParser.KW_IN, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public IteratorLoopExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_iteratorLoopExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitIteratorLoopExpression(this); - else return visitor.visitChildren(this); - } - } - - public final IteratorLoopExpressionContext iteratorLoopExpression() throws RecognitionException { - IteratorLoopExpressionContext _localctx = new IteratorLoopExpressionContext(_ctx, getState()); - enterRule(_localctx, 224, RULE_iteratorLoopExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1750); - match(KW_FOR); - setState(1751); - pattern(); - setState(1752); - match(KW_IN); - setState(1753); - expression(0); - setState(1754); - blockExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LoopLabelContext extends ParserRuleContext { - public TerminalNode LIFETIME_OR_LABEL() { return getToken(RustParser.LIFETIME_OR_LABEL, 0); } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public LoopLabelContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_loopLabel; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLoopLabel(this); - else return visitor.visitChildren(this); - } - } - - public final LoopLabelContext loopLabel() throws RecognitionException { - LoopLabelContext _localctx = new LoopLabelContext(_ctx, getState()); - enterRule(_localctx, 226, RULE_loopLabel); - try { - enterOuterAlt(_localctx, 1); - { - setState(1756); - match(LIFETIME_OR_LABEL); - setState(1757); - match(COLON); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class IfExpressionContext extends ParserRuleContext { - public TerminalNode KW_IF() { return getToken(RustParser.KW_IF, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public List blockExpression() { - return getRuleContexts(BlockExpressionContext.class); - } - public BlockExpressionContext blockExpression(int i) { - return getRuleContext(BlockExpressionContext.class,i); - } - public TerminalNode KW_ELSE() { return getToken(RustParser.KW_ELSE, 0); } - public IfExpressionContext ifExpression() { - return getRuleContext(IfExpressionContext.class,0); - } - public IfLetExpressionContext ifLetExpression() { - return getRuleContext(IfLetExpressionContext.class,0); - } - public IfExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_ifExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitIfExpression(this); - else return visitor.visitChildren(this); - } - } - - public final IfExpressionContext ifExpression() throws RecognitionException { - IfExpressionContext _localctx = new IfExpressionContext(_ctx, getState()); - enterRule(_localctx, 228, RULE_ifExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1759); - match(KW_IF); - setState(1760); - expression(0); - setState(1761); - blockExpression(); - setState(1768); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,230,_ctx) ) { - case 1: - { - setState(1762); - match(KW_ELSE); - setState(1766); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,229,_ctx) ) { - case 1: - { - setState(1763); - blockExpression(); - } - break; - case 2: - { - setState(1764); - ifExpression(); - } - break; - case 3: - { - setState(1765); - ifLetExpression(); - } - break; - } - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class IfLetExpressionContext extends ParserRuleContext { - public TerminalNode KW_IF() { return getToken(RustParser.KW_IF, 0); } - public TerminalNode KW_LET() { return getToken(RustParser.KW_LET, 0); } - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public List blockExpression() { - return getRuleContexts(BlockExpressionContext.class); - } - public BlockExpressionContext blockExpression(int i) { - return getRuleContext(BlockExpressionContext.class,i); - } - public TerminalNode KW_ELSE() { return getToken(RustParser.KW_ELSE, 0); } - public IfExpressionContext ifExpression() { - return getRuleContext(IfExpressionContext.class,0); - } - public IfLetExpressionContext ifLetExpression() { - return getRuleContext(IfLetExpressionContext.class,0); - } - public IfLetExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_ifLetExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitIfLetExpression(this); - else return visitor.visitChildren(this); - } - } - - public final IfLetExpressionContext ifLetExpression() throws RecognitionException { - IfLetExpressionContext _localctx = new IfLetExpressionContext(_ctx, getState()); - enterRule(_localctx, 230, RULE_ifLetExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(1770); - match(KW_IF); - setState(1771); - match(KW_LET); - setState(1772); - pattern(); - setState(1773); - match(EQ); - setState(1774); - expression(0); - setState(1775); - blockExpression(); - setState(1782); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,232,_ctx) ) { - case 1: - { - setState(1776); - match(KW_ELSE); - setState(1780); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) { - case 1: - { - setState(1777); - blockExpression(); - } - break; - case 2: - { - setState(1778); - ifExpression(); - } - break; - case 3: - { - setState(1779); - ifLetExpression(); - } - break; - } - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MatchExpressionContext extends ParserRuleContext { - public TerminalNode KW_MATCH() { return getToken(RustParser.KW_MATCH, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public List innerAttribute() { - return getRuleContexts(InnerAttributeContext.class); - } - public InnerAttributeContext innerAttribute(int i) { - return getRuleContext(InnerAttributeContext.class,i); - } - public MatchArmsContext matchArms() { - return getRuleContext(MatchArmsContext.class,0); - } - public MatchExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_matchExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMatchExpression(this); - else return visitor.visitChildren(this); - } - } - - public final MatchExpressionContext matchExpression() throws RecognitionException { - MatchExpressionContext _localctx = new MatchExpressionContext(_ctx, getState()); - enterRule(_localctx, 232, RULE_matchExpression); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1784); - match(KW_MATCH); - setState(1785); - expression(0); - setState(1786); - match(LCURLYBRACE); - setState(1790); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,233,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1787); - innerAttribute(); - } - } - } - setState(1792); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,233,_ctx); - } - setState(1794); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417558172729888L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1451307245037963391L) != 0) { - { - setState(1793); - matchArms(); - } - } - - setState(1796); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MatchArmsContext extends ParserRuleContext { - public List matchArm() { - return getRuleContexts(MatchArmContext.class); - } - public MatchArmContext matchArm(int i) { - return getRuleContext(MatchArmContext.class,i); - } - public List FATARROW() { return getTokens(RustParser.FATARROW); } - public TerminalNode FATARROW(int i) { - return getToken(RustParser.FATARROW, i); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public List matchArmExpression() { - return getRuleContexts(MatchArmExpressionContext.class); - } - public MatchArmExpressionContext matchArmExpression(int i) { - return getRuleContext(MatchArmExpressionContext.class,i); - } - public TerminalNode COMMA() { return getToken(RustParser.COMMA, 0); } - public MatchArmsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_matchArms; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMatchArms(this); - else return visitor.visitChildren(this); - } - } - - public final MatchArmsContext matchArms() throws RecognitionException { - MatchArmsContext _localctx = new MatchArmsContext(_ctx, getState()); - enterRule(_localctx, 234, RULE_matchArms); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1804); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,235,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1798); - matchArm(); - setState(1799); - match(FATARROW); - setState(1800); - matchArmExpression(); - } - } - } - setState(1806); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,235,_ctx); - } - setState(1807); - matchArm(); - setState(1808); - match(FATARROW); - setState(1809); - expression(0); - setState(1811); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1810); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MatchArmExpressionContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode COMMA() { return getToken(RustParser.COMMA, 0); } - public ExpressionWithBlockContext expressionWithBlock() { - return getRuleContext(ExpressionWithBlockContext.class,0); - } - public MatchArmExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_matchArmExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMatchArmExpression(this); - else return visitor.visitChildren(this); - } - } - - public final MatchArmExpressionContext matchArmExpression() throws RecognitionException { - MatchArmExpressionContext _localctx = new MatchArmExpressionContext(_ctx, getState()); - enterRule(_localctx, 236, RULE_matchArmExpression); - int _la; - try { - setState(1820); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1813); - expression(0); - setState(1814); - match(COMMA); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1816); - expressionWithBlock(); - setState(1818); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1817); - match(COMMA); - } - } - - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MatchArmContext extends ParserRuleContext { - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public MatchArmGuardContext matchArmGuard() { - return getRuleContext(MatchArmGuardContext.class,0); - } - public MatchArmContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_matchArm; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMatchArm(this); - else return visitor.visitChildren(this); - } - } - - public final MatchArmContext matchArm() throws RecognitionException { - MatchArmContext _localctx = new MatchArmContext(_ctx, getState()); - enterRule(_localctx, 238, RULE_matchArm); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1825); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(1822); - outerAttribute(); - } - } - setState(1827); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1828); - pattern(); - setState(1830); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_IF) { - { - setState(1829); - matchArmGuard(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MatchArmGuardContext extends ParserRuleContext { - public TerminalNode KW_IF() { return getToken(RustParser.KW_IF, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public MatchArmGuardContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_matchArmGuard; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMatchArmGuard(this); - else return visitor.visitChildren(this); - } - } - - public final MatchArmGuardContext matchArmGuard() throws RecognitionException { - MatchArmGuardContext _localctx = new MatchArmGuardContext(_ctx, getState()); - enterRule(_localctx, 240, RULE_matchArmGuard); - try { - enterOuterAlt(_localctx, 1); - { - setState(1832); - match(KW_IF); - setState(1833); - expression(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PatternContext extends ParserRuleContext { - public List patternNoTopAlt() { - return getRuleContexts(PatternNoTopAltContext.class); - } - public PatternNoTopAltContext patternNoTopAlt(int i) { - return getRuleContext(PatternNoTopAltContext.class,i); - } - public List OR() { return getTokens(RustParser.OR); } - public TerminalNode OR(int i) { - return getToken(RustParser.OR, i); - } - public PatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_pattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPattern(this); - else return visitor.visitChildren(this); - } - } - - public final PatternContext pattern() throws RecognitionException { - PatternContext _localctx = new PatternContext(_ctx, getState()); - enterRule(_localctx, 242, RULE_pattern); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1836); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==OR) { - { - setState(1835); - match(OR); - } - } - - setState(1838); - patternNoTopAlt(); - setState(1843); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,242,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1839); - match(OR); - setState(1840); - patternNoTopAlt(); - } - } - } - setState(1845); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,242,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PatternNoTopAltContext extends ParserRuleContext { - public PatternWithoutRangeContext patternWithoutRange() { - return getRuleContext(PatternWithoutRangeContext.class,0); - } - public RangePatternContext rangePattern() { - return getRuleContext(RangePatternContext.class,0); - } - public PatternNoTopAltContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_patternNoTopAlt; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPatternNoTopAlt(this); - else return visitor.visitChildren(this); - } - } - - public final PatternNoTopAltContext patternNoTopAlt() throws RecognitionException { - PatternNoTopAltContext _localctx = new PatternNoTopAltContext(_ctx, getState()); - enterRule(_localctx, 244, RULE_patternNoTopAlt); - try { - setState(1848); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1846); - patternWithoutRange(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1847); - rangePattern(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PatternWithoutRangeContext extends ParserRuleContext { - public LiteralPatternContext literalPattern() { - return getRuleContext(LiteralPatternContext.class,0); - } - public IdentifierPatternContext identifierPattern() { - return getRuleContext(IdentifierPatternContext.class,0); - } - public WildcardPatternContext wildcardPattern() { - return getRuleContext(WildcardPatternContext.class,0); - } - public RestPatternContext restPattern() { - return getRuleContext(RestPatternContext.class,0); - } - public ReferencePatternContext referencePattern() { - return getRuleContext(ReferencePatternContext.class,0); - } - public StructPatternContext structPattern() { - return getRuleContext(StructPatternContext.class,0); - } - public TupleStructPatternContext tupleStructPattern() { - return getRuleContext(TupleStructPatternContext.class,0); - } - public TuplePatternContext tuplePattern() { - return getRuleContext(TuplePatternContext.class,0); - } - public GroupedPatternContext groupedPattern() { - return getRuleContext(GroupedPatternContext.class,0); - } - public SlicePatternContext slicePattern() { - return getRuleContext(SlicePatternContext.class,0); - } - public PathPatternContext pathPattern() { - return getRuleContext(PathPatternContext.class,0); - } - public MacroInvocationContext macroInvocation() { - return getRuleContext(MacroInvocationContext.class,0); - } - public PatternWithoutRangeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_patternWithoutRange; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPatternWithoutRange(this); - else return visitor.visitChildren(this); - } - } - - public final PatternWithoutRangeContext patternWithoutRange() throws RecognitionException { - PatternWithoutRangeContext _localctx = new PatternWithoutRangeContext(_ctx, getState()); - enterRule(_localctx, 246, RULE_patternWithoutRange); - try { - setState(1862); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,244,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1850); - literalPattern(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1851); - identifierPattern(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1852); - wildcardPattern(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1853); - restPattern(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1854); - referencePattern(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1855); - structPattern(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1856); - tupleStructPattern(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1857); - tuplePattern(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(1858); - groupedPattern(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(1859); - slicePattern(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(1860); - pathPattern(); - } - break; - case 12: - enterOuterAlt(_localctx, 12); - { - setState(1861); - macroInvocation(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LiteralPatternContext extends ParserRuleContext { - public TerminalNode KW_TRUE() { return getToken(RustParser.KW_TRUE, 0); } - public TerminalNode KW_FALSE() { return getToken(RustParser.KW_FALSE, 0); } - public TerminalNode CHAR_LITERAL() { return getToken(RustParser.CHAR_LITERAL, 0); } - public TerminalNode BYTE_LITERAL() { return getToken(RustParser.BYTE_LITERAL, 0); } - public TerminalNode STRING_LITERAL() { return getToken(RustParser.STRING_LITERAL, 0); } - public TerminalNode RAW_STRING_LITERAL() { return getToken(RustParser.RAW_STRING_LITERAL, 0); } - public TerminalNode BYTE_STRING_LITERAL() { return getToken(RustParser.BYTE_STRING_LITERAL, 0); } - public TerminalNode RAW_BYTE_STRING_LITERAL() { return getToken(RustParser.RAW_BYTE_STRING_LITERAL, 0); } - public TerminalNode INTEGER_LITERAL() { return getToken(RustParser.INTEGER_LITERAL, 0); } - public TerminalNode MINUS() { return getToken(RustParser.MINUS, 0); } - public TerminalNode FLOAT_LITERAL() { return getToken(RustParser.FLOAT_LITERAL, 0); } - public LiteralPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_literalPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLiteralPattern(this); - else return visitor.visitChildren(this); - } - } - - public final LiteralPatternContext literalPattern() throws RecognitionException { - LiteralPatternContext _localctx = new LiteralPatternContext(_ctx, getState()); - enterRule(_localctx, 248, RULE_literalPattern); - int _la; - try { - setState(1880); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,247,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1864); - match(KW_TRUE); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1865); - match(KW_FALSE); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1866); - match(CHAR_LITERAL); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1867); - match(BYTE_LITERAL); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1868); - match(STRING_LITERAL); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1869); - match(RAW_STRING_LITERAL); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1870); - match(BYTE_STRING_LITERAL); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1871); - match(RAW_BYTE_STRING_LITERAL); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(1873); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==MINUS) { - { - setState(1872); - match(MINUS); - } - } - - setState(1875); - match(INTEGER_LITERAL); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(1877); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==MINUS) { - { - setState(1876); - match(MINUS); - } - } - - setState(1879); - match(FLOAT_LITERAL); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class IdentifierPatternContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode KW_REF() { return getToken(RustParser.KW_REF, 0); } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public TerminalNode AT() { return getToken(RustParser.AT, 0); } - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public IdentifierPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_identifierPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitIdentifierPattern(this); - else return visitor.visitChildren(this); - } - } - - public final IdentifierPatternContext identifierPattern() throws RecognitionException { - IdentifierPatternContext _localctx = new IdentifierPatternContext(_ctx, getState()); - enterRule(_localctx, 250, RULE_identifierPattern); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1883); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_REF) { - { - setState(1882); - match(KW_REF); - } - } - - setState(1886); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MUT) { - { - setState(1885); - match(KW_MUT); - } - } - - setState(1888); - identifier(); - setState(1891); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==AT) { - { - setState(1889); - match(AT); - setState(1890); - pattern(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class WildcardPatternContext extends ParserRuleContext { - public TerminalNode UNDERSCORE() { return getToken(RustParser.UNDERSCORE, 0); } - public WildcardPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_wildcardPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitWildcardPattern(this); - else return visitor.visitChildren(this); - } - } - - public final WildcardPatternContext wildcardPattern() throws RecognitionException { - WildcardPatternContext _localctx = new WildcardPatternContext(_ctx, getState()); - enterRule(_localctx, 252, RULE_wildcardPattern); - try { - enterOuterAlt(_localctx, 1); - { - setState(1893); - match(UNDERSCORE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class RestPatternContext extends ParserRuleContext { - public TerminalNode DOTDOT() { return getToken(RustParser.DOTDOT, 0); } - public RestPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_restPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitRestPattern(this); - else return visitor.visitChildren(this); - } - } - - public final RestPatternContext restPattern() throws RecognitionException { - RestPatternContext _localctx = new RestPatternContext(_ctx, getState()); - enterRule(_localctx, 254, RULE_restPattern); - try { - enterOuterAlt(_localctx, 1); - { - setState(1895); - match(DOTDOT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class RangePatternContext extends ParserRuleContext { - public RangePatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_rangePattern; } - - public RangePatternContext() { } - public void copyFrom(RangePatternContext ctx) { - super.copyFrom(ctx); - } - } - @SuppressWarnings("CheckReturnValue") - public static class InclusiveRangePatternContext extends RangePatternContext { - public List rangePatternBound() { - return getRuleContexts(RangePatternBoundContext.class); - } - public RangePatternBoundContext rangePatternBound(int i) { - return getRuleContext(RangePatternBoundContext.class,i); - } - public TerminalNode DOTDOTEQ() { return getToken(RustParser.DOTDOTEQ, 0); } - public InclusiveRangePatternContext(RangePatternContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitInclusiveRangePattern(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class ObsoleteRangePatternContext extends RangePatternContext { - public List rangePatternBound() { - return getRuleContexts(RangePatternBoundContext.class); - } - public RangePatternBoundContext rangePatternBound(int i) { - return getRuleContext(RangePatternBoundContext.class,i); - } - public TerminalNode DOTDOTDOT() { return getToken(RustParser.DOTDOTDOT, 0); } - public ObsoleteRangePatternContext(RangePatternContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitObsoleteRangePattern(this); - else return visitor.visitChildren(this); - } - } - @SuppressWarnings("CheckReturnValue") - public static class HalfOpenRangePatternContext extends RangePatternContext { - public RangePatternBoundContext rangePatternBound() { - return getRuleContext(RangePatternBoundContext.class,0); - } - public TerminalNode DOTDOT() { return getToken(RustParser.DOTDOT, 0); } - public HalfOpenRangePatternContext(RangePatternContext ctx) { copyFrom(ctx); } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitHalfOpenRangePattern(this); - else return visitor.visitChildren(this); - } - } - - public final RangePatternContext rangePattern() throws RecognitionException { - RangePatternContext _localctx = new RangePatternContext(_ctx, getState()); - enterRule(_localctx, 256, RULE_rangePattern); - try { - setState(1908); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,251,_ctx) ) { - case 1: - _localctx = new InclusiveRangePatternContext(_localctx); - enterOuterAlt(_localctx, 1); - { - setState(1897); - rangePatternBound(); - setState(1898); - match(DOTDOTEQ); - setState(1899); - rangePatternBound(); - } - break; - case 2: - _localctx = new HalfOpenRangePatternContext(_localctx); - enterOuterAlt(_localctx, 2); - { - setState(1901); - rangePatternBound(); - setState(1902); - match(DOTDOT); - } - break; - case 3: - _localctx = new ObsoleteRangePatternContext(_localctx); - enterOuterAlt(_localctx, 3); - { - setState(1904); - rangePatternBound(); - setState(1905); - match(DOTDOTDOT); - setState(1906); - rangePatternBound(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class RangePatternBoundContext extends ParserRuleContext { - public TerminalNode CHAR_LITERAL() { return getToken(RustParser.CHAR_LITERAL, 0); } - public TerminalNode BYTE_LITERAL() { return getToken(RustParser.BYTE_LITERAL, 0); } - public TerminalNode INTEGER_LITERAL() { return getToken(RustParser.INTEGER_LITERAL, 0); } - public TerminalNode MINUS() { return getToken(RustParser.MINUS, 0); } - public TerminalNode FLOAT_LITERAL() { return getToken(RustParser.FLOAT_LITERAL, 0); } - public PathPatternContext pathPattern() { - return getRuleContext(PathPatternContext.class,0); - } - public RangePatternBoundContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_rangePatternBound; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitRangePatternBound(this); - else return visitor.visitChildren(this); - } - } - - public final RangePatternBoundContext rangePatternBound() throws RecognitionException { - RangePatternBoundContext _localctx = new RangePatternBoundContext(_ctx, getState()); - enterRule(_localctx, 258, RULE_rangePatternBound); - int _la; - try { - setState(1921); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,254,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1910); - match(CHAR_LITERAL); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1911); - match(BYTE_LITERAL); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1913); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==MINUS) { - { - setState(1912); - match(MINUS); - } - } - - setState(1915); - match(INTEGER_LITERAL); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1917); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==MINUS) { - { - setState(1916); - match(MINUS); - } - } - - setState(1919); - match(FLOAT_LITERAL); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1920); - pathPattern(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ReferencePatternContext extends ParserRuleContext { - public PatternWithoutRangeContext patternWithoutRange() { - return getRuleContext(PatternWithoutRangeContext.class,0); - } - public TerminalNode AND() { return getToken(RustParser.AND, 0); } - public TerminalNode ANDAND() { return getToken(RustParser.ANDAND, 0); } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public ReferencePatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_referencePattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitReferencePattern(this); - else return visitor.visitChildren(this); - } - } - - public final ReferencePatternContext referencePattern() throws RecognitionException { - ReferencePatternContext _localctx = new ReferencePatternContext(_ctx, getState()); - enterRule(_localctx, 260, RULE_referencePattern); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1923); - _la = _input.LA(1); - if ( !(_la==AND || _la==ANDAND) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(1925); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,255,_ctx) ) { - case 1: - { - setState(1924); - match(KW_MUT); - } - break; - } - setState(1927); - patternWithoutRange(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructPatternContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public TerminalNode LCURLYBRACE() { return getToken(RustParser.LCURLYBRACE, 0); } - public TerminalNode RCURLYBRACE() { return getToken(RustParser.RCURLYBRACE, 0); } - public StructPatternElementsContext structPatternElements() { - return getRuleContext(StructPatternElementsContext.class,0); - } - public StructPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructPattern(this); - else return visitor.visitChildren(this); - } - } - - public final StructPatternContext structPattern() throws RecognitionException { - StructPatternContext _localctx = new StructPatternContext(_ctx, getState()); - enterRule(_localctx, 262, RULE_structPattern); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1929); - pathInExpression(); - setState(1930); - match(LCURLYBRACE); - setState(1932); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 450359962742292480L) != 0 || (((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & 141012366262273L) != 0) { - { - setState(1931); - structPatternElements(); - } - } - - setState(1934); - match(RCURLYBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructPatternElementsContext extends ParserRuleContext { - public StructPatternFieldsContext structPatternFields() { - return getRuleContext(StructPatternFieldsContext.class,0); - } - public TerminalNode COMMA() { return getToken(RustParser.COMMA, 0); } - public StructPatternEtCeteraContext structPatternEtCetera() { - return getRuleContext(StructPatternEtCeteraContext.class,0); - } - public StructPatternElementsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structPatternElements; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructPatternElements(this); - else return visitor.visitChildren(this); - } - } - - public final StructPatternElementsContext structPatternElements() throws RecognitionException { - StructPatternElementsContext _localctx = new StructPatternElementsContext(_ctx, getState()); - enterRule(_localctx, 264, RULE_structPatternElements); - int _la; - try { - setState(1944); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,259,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1936); - structPatternFields(); - setState(1941); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1937); - match(COMMA); - setState(1939); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==DOTDOT || _la==POUND) { - { - setState(1938); - structPatternEtCetera(); - } - } - - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1943); - structPatternEtCetera(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructPatternFieldsContext extends ParserRuleContext { - public List structPatternField() { - return getRuleContexts(StructPatternFieldContext.class); - } - public StructPatternFieldContext structPatternField(int i) { - return getRuleContext(StructPatternFieldContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public StructPatternFieldsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structPatternFields; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructPatternFields(this); - else return visitor.visitChildren(this); - } - } - - public final StructPatternFieldsContext structPatternFields() throws RecognitionException { - StructPatternFieldsContext _localctx = new StructPatternFieldsContext(_ctx, getState()); - enterRule(_localctx, 266, RULE_structPatternFields); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1946); - structPatternField(); - setState(1951); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,260,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1947); - match(COMMA); - setState(1948); - structPatternField(); - } - } - } - setState(1953); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,260,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructPatternFieldContext extends ParserRuleContext { - public TupleIndexContext tupleIndex() { - return getRuleContext(TupleIndexContext.class,0); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public TerminalNode KW_REF() { return getToken(RustParser.KW_REF, 0); } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public StructPatternFieldContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structPatternField; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructPatternField(this); - else return visitor.visitChildren(this); - } - } - - public final StructPatternFieldContext structPatternField() throws RecognitionException { - StructPatternFieldContext _localctx = new StructPatternFieldContext(_ctx, getState()); - enterRule(_localctx, 268, RULE_structPatternField); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1957); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(1954); - outerAttribute(); - } - } - setState(1959); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1975); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,264,_ctx) ) { - case 1: - { - setState(1960); - tupleIndex(); - setState(1961); - match(COLON); - setState(1962); - pattern(); - } - break; - case 2: - { - setState(1964); - identifier(); - setState(1965); - match(COLON); - setState(1966); - pattern(); - } - break; - case 3: - { - setState(1969); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_REF) { - { - setState(1968); - match(KW_REF); - } - } - - setState(1972); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MUT) { - { - setState(1971); - match(KW_MUT); - } - } - - setState(1974); - identifier(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class StructPatternEtCeteraContext extends ParserRuleContext { - public TerminalNode DOTDOT() { return getToken(RustParser.DOTDOT, 0); } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public StructPatternEtCeteraContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_structPatternEtCetera; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitStructPatternEtCetera(this); - else return visitor.visitChildren(this); - } - } - - public final StructPatternEtCeteraContext structPatternEtCetera() throws RecognitionException { - StructPatternEtCeteraContext _localctx = new StructPatternEtCeteraContext(_ctx, getState()); - enterRule(_localctx, 270, RULE_structPatternEtCetera); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1980); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(1977); - outerAttribute(); - } - } - setState(1982); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1983); - match(DOTDOT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TupleStructPatternContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TupleStructItemsContext tupleStructItems() { - return getRuleContext(TupleStructItemsContext.class,0); - } - public TupleStructPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tupleStructPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleStructPattern(this); - else return visitor.visitChildren(this); - } - } - - public final TupleStructPatternContext tupleStructPattern() throws RecognitionException { - TupleStructPatternContext _localctx = new TupleStructPatternContext(_ctx, getState()); - enterRule(_localctx, 272, RULE_tupleStructPattern); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1985); - pathInExpression(); - setState(1986); - match(LPAREN); - setState(1988); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417558172729888L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1442300045783222399L) != 0) { - { - setState(1987); - tupleStructItems(); - } - } - - setState(1990); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TupleStructItemsContext extends ParserRuleContext { - public List pattern() { - return getRuleContexts(PatternContext.class); - } - public PatternContext pattern(int i) { - return getRuleContext(PatternContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public TupleStructItemsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tupleStructItems; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleStructItems(this); - else return visitor.visitChildren(this); - } - } - - public final TupleStructItemsContext tupleStructItems() throws RecognitionException { - TupleStructItemsContext _localctx = new TupleStructItemsContext(_ctx, getState()); - enterRule(_localctx, 274, RULE_tupleStructItems); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1992); - pattern(); - setState(1997); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,267,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1993); - match(COMMA); - setState(1994); - pattern(); - } - } - } - setState(1999); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,267,_ctx); - } - setState(2001); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(2000); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TuplePatternContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TuplePatternItemsContext tuplePatternItems() { - return getRuleContext(TuplePatternItemsContext.class,0); - } - public TuplePatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tuplePattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTuplePattern(this); - else return visitor.visitChildren(this); - } - } - - public final TuplePatternContext tuplePattern() throws RecognitionException { - TuplePatternContext _localctx = new TuplePatternContext(_ctx, getState()); - enterRule(_localctx, 276, RULE_tuplePattern); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2003); - match(LPAREN); - setState(2005); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417558172729888L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1442300045783222399L) != 0) { - { - setState(2004); - tuplePatternItems(); - } - } - - setState(2007); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TuplePatternItemsContext extends ParserRuleContext { - public List pattern() { - return getRuleContexts(PatternContext.class); - } - public PatternContext pattern(int i) { - return getRuleContext(PatternContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public RestPatternContext restPattern() { - return getRuleContext(RestPatternContext.class,0); - } - public TuplePatternItemsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tuplePatternItems; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTuplePatternItems(this); - else return visitor.visitChildren(this); - } - } - - public final TuplePatternItemsContext tuplePatternItems() throws RecognitionException { - TuplePatternItemsContext _localctx = new TuplePatternItemsContext(_ctx, getState()); - enterRule(_localctx, 278, RULE_tuplePatternItems); - int _la; - try { - int _alt; - setState(2023); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,272,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2009); - pattern(); - setState(2010); - match(COMMA); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2012); - restPattern(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2013); - pattern(); - setState(2016); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(2014); - match(COMMA); - setState(2015); - pattern(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(2018); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,270,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - setState(2021); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(2020); - match(COMMA); - } - } - - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GroupedPatternContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public PatternContext pattern() { - return getRuleContext(PatternContext.class,0); - } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public GroupedPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_groupedPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGroupedPattern(this); - else return visitor.visitChildren(this); - } - } - - public final GroupedPatternContext groupedPattern() throws RecognitionException { - GroupedPatternContext _localctx = new GroupedPatternContext(_ctx, getState()); - enterRule(_localctx, 280, RULE_groupedPattern); - try { - enterOuterAlt(_localctx, 1); - { - setState(2025); - match(LPAREN); - setState(2026); - pattern(); - setState(2027); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class SlicePatternContext extends ParserRuleContext { - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public SlicePatternItemsContext slicePatternItems() { - return getRuleContext(SlicePatternItemsContext.class,0); - } - public SlicePatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_slicePattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitSlicePattern(this); - else return visitor.visitChildren(this); - } - } - - public final SlicePatternContext slicePattern() throws RecognitionException { - SlicePatternContext _localctx = new SlicePatternContext(_ctx, getState()); - enterRule(_localctx, 282, RULE_slicePattern); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2029); - match(LSQUAREBRACKET); - setState(2031); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 522417558172729888L) != 0 || (((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 1442300045783222399L) != 0) { - { - setState(2030); - slicePatternItems(); - } - } - - setState(2033); - match(RSQUAREBRACKET); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class SlicePatternItemsContext extends ParserRuleContext { - public List pattern() { - return getRuleContexts(PatternContext.class); - } - public PatternContext pattern(int i) { - return getRuleContext(PatternContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public SlicePatternItemsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_slicePatternItems; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitSlicePatternItems(this); - else return visitor.visitChildren(this); - } - } - - public final SlicePatternItemsContext slicePatternItems() throws RecognitionException { - SlicePatternItemsContext _localctx = new SlicePatternItemsContext(_ctx, getState()); - enterRule(_localctx, 284, RULE_slicePatternItems); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2035); - pattern(); - setState(2040); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,274,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2036); - match(COMMA); - setState(2037); - pattern(); - } - } - } - setState(2042); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,274,_ctx); - } - setState(2044); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(2043); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PathPatternContext extends ParserRuleContext { - public PathInExpressionContext pathInExpression() { - return getRuleContext(PathInExpressionContext.class,0); - } - public QualifiedPathInExpressionContext qualifiedPathInExpression() { - return getRuleContext(QualifiedPathInExpressionContext.class,0); - } - public PathPatternContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_pathPattern; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPathPattern(this); - else return visitor.visitChildren(this); - } - } - - public final PathPatternContext pathPattern() throws RecognitionException { - PathPatternContext _localctx = new PathPatternContext(_ctx, getState()); - enterRule(_localctx, 286, RULE_pathPattern); - try { - setState(2048); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_CRATE: - case KW_SELFVALUE: - case KW_SELFTYPE: - case KW_SUPER: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case PATHSEP: - enterOuterAlt(_localctx, 1); - { - setState(2046); - pathInExpression(); - } - break; - case LT: - enterOuterAlt(_localctx, 2); - { - setState(2047); - qualifiedPathInExpression(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class Type_Context extends ParserRuleContext { - public TypeNoBoundsContext typeNoBounds() { - return getRuleContext(TypeNoBoundsContext.class,0); - } - public ImplTraitTypeContext implTraitType() { - return getRuleContext(ImplTraitTypeContext.class,0); - } - public TraitObjectTypeContext traitObjectType() { - return getRuleContext(TraitObjectTypeContext.class,0); - } - public Type_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_type_; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitType_(this); - else return visitor.visitChildren(this); - } - } - - public final Type_Context type_() throws RecognitionException { - Type_Context _localctx = new Type_Context(_ctx, getState()); - enterRule(_localctx, 288, RULE_type_); - try { - setState(2053); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,277,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2050); - typeNoBounds(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2051); - implTraitType(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2052); - traitObjectType(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypeNoBoundsContext extends ParserRuleContext { - public ParenthesizedTypeContext parenthesizedType() { - return getRuleContext(ParenthesizedTypeContext.class,0); - } - public ImplTraitTypeOneBoundContext implTraitTypeOneBound() { - return getRuleContext(ImplTraitTypeOneBoundContext.class,0); - } - public TraitObjectTypeOneBoundContext traitObjectTypeOneBound() { - return getRuleContext(TraitObjectTypeOneBoundContext.class,0); - } - public TypePathContext typePath() { - return getRuleContext(TypePathContext.class,0); - } - public TupleTypeContext tupleType() { - return getRuleContext(TupleTypeContext.class,0); - } - public NeverTypeContext neverType() { - return getRuleContext(NeverTypeContext.class,0); - } - public RawPointerTypeContext rawPointerType() { - return getRuleContext(RawPointerTypeContext.class,0); - } - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public ArrayTypeContext arrayType() { - return getRuleContext(ArrayTypeContext.class,0); - } - public SliceTypeContext sliceType() { - return getRuleContext(SliceTypeContext.class,0); - } - public InferredTypeContext inferredType() { - return getRuleContext(InferredTypeContext.class,0); - } - public QualifiedPathInTypeContext qualifiedPathInType() { - return getRuleContext(QualifiedPathInTypeContext.class,0); - } - public BareFunctionTypeContext bareFunctionType() { - return getRuleContext(BareFunctionTypeContext.class,0); - } - public MacroInvocationContext macroInvocation() { - return getRuleContext(MacroInvocationContext.class,0); - } - public TypeNoBoundsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeNoBounds; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypeNoBounds(this); - else return visitor.visitChildren(this); - } - } - - public final TypeNoBoundsContext typeNoBounds() throws RecognitionException { - TypeNoBoundsContext _localctx = new TypeNoBoundsContext(_ctx, getState()); - enterRule(_localctx, 290, RULE_typeNoBounds); - try { - setState(2069); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,278,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2055); - parenthesizedType(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2056); - implTraitTypeOneBound(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2057); - traitObjectTypeOneBound(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2058); - typePath(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(2059); - tupleType(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(2060); - neverType(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(2061); - rawPointerType(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(2062); - referenceType(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(2063); - arrayType(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(2064); - sliceType(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(2065); - inferredType(); - } - break; - case 12: - enterOuterAlt(_localctx, 12); - { - setState(2066); - qualifiedPathInType(); - } - break; - case 13: - enterOuterAlt(_localctx, 13); - { - setState(2067); - bareFunctionType(); - } - break; - case 14: - enterOuterAlt(_localctx, 14); - { - setState(2068); - macroInvocation(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ParenthesizedTypeContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public ParenthesizedTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_parenthesizedType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitParenthesizedType(this); - else return visitor.visitChildren(this); - } - } - - public final ParenthesizedTypeContext parenthesizedType() throws RecognitionException { - ParenthesizedTypeContext _localctx = new ParenthesizedTypeContext(_ctx, getState()); - enterRule(_localctx, 292, RULE_parenthesizedType); - try { - enterOuterAlt(_localctx, 1); - { - setState(2071); - match(LPAREN); - setState(2072); - type_(); - setState(2073); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class NeverTypeContext extends ParserRuleContext { - public TerminalNode NOT() { return getToken(RustParser.NOT, 0); } - public NeverTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_neverType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitNeverType(this); - else return visitor.visitChildren(this); - } - } - - public final NeverTypeContext neverType() throws RecognitionException { - NeverTypeContext _localctx = new NeverTypeContext(_ctx, getState()); - enterRule(_localctx, 294, RULE_neverType); - try { - enterOuterAlt(_localctx, 1); - { - setState(2075); - match(NOT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TupleTypeContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public List type_() { - return getRuleContexts(Type_Context.class); - } - public Type_Context type_(int i) { - return getRuleContext(Type_Context.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public TupleTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tupleType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTupleType(this); - else return visitor.visitChildren(this); - } - } - - public final TupleTypeContext tupleType() throws RecognitionException { - TupleTypeContext _localctx = new TupleTypeContext(_ctx, getState()); - enterRule(_localctx, 296, RULE_tupleType); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2077); - match(LPAREN); - setState(2088); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453832540335392L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 360915832668553L) != 0) { - { - setState(2081); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(2078); - type_(); - setState(2079); - match(COMMA); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(2083); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,279,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - setState(2086); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453832540335392L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 360915832668553L) != 0) { - { - setState(2085); - type_(); - } - } - - } - } - - setState(2090); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ArrayTypeContext extends ParserRuleContext { - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public ArrayTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitArrayType(this); - else return visitor.visitChildren(this); - } - } - - public final ArrayTypeContext arrayType() throws RecognitionException { - ArrayTypeContext _localctx = new ArrayTypeContext(_ctx, getState()); - enterRule(_localctx, 298, RULE_arrayType); - try { - enterOuterAlt(_localctx, 1); - { - setState(2092); - match(LSQUAREBRACKET); - setState(2093); - type_(); - setState(2094); - match(SEMI); - setState(2095); - expression(0); - setState(2096); - match(RSQUAREBRACKET); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class SliceTypeContext extends ParserRuleContext { - public TerminalNode LSQUAREBRACKET() { return getToken(RustParser.LSQUAREBRACKET, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode RSQUAREBRACKET() { return getToken(RustParser.RSQUAREBRACKET, 0); } - public SliceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_sliceType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitSliceType(this); - else return visitor.visitChildren(this); - } - } - - public final SliceTypeContext sliceType() throws RecognitionException { - SliceTypeContext _localctx = new SliceTypeContext(_ctx, getState()); - enterRule(_localctx, 300, RULE_sliceType); - try { - enterOuterAlt(_localctx, 1); - { - setState(2098); - match(LSQUAREBRACKET); - setState(2099); - type_(); - setState(2100); - match(RSQUAREBRACKET); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ReferenceTypeContext extends ParserRuleContext { - public TerminalNode AND() { return getToken(RustParser.AND, 0); } - public TypeNoBoundsContext typeNoBounds() { - return getRuleContext(TypeNoBoundsContext.class,0); - } - public LifetimeContext lifetime() { - return getRuleContext(LifetimeContext.class,0); - } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public ReferenceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_referenceType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitReferenceType(this); - else return visitor.visitChildren(this); - } - } - - public final ReferenceTypeContext referenceType() throws RecognitionException { - ReferenceTypeContext _localctx = new ReferenceTypeContext(_ctx, getState()); - enterRule(_localctx, 302, RULE_referenceType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2102); - match(AND); - setState(2104); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la - 53)) & ~0x3f) == 0 && ((1L << (_la - 53)) & 67108869L) != 0) { - { - setState(2103); - lifetime(); - } - } - - setState(2107); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_MUT) { - { - setState(2106); - match(KW_MUT); - } - } - - setState(2109); - typeNoBounds(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class RawPointerTypeContext extends ParserRuleContext { - public TerminalNode STAR() { return getToken(RustParser.STAR, 0); } - public TypeNoBoundsContext typeNoBounds() { - return getRuleContext(TypeNoBoundsContext.class,0); - } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public TerminalNode KW_CONST() { return getToken(RustParser.KW_CONST, 0); } - public RawPointerTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_rawPointerType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitRawPointerType(this); - else return visitor.visitChildren(this); - } - } - - public final RawPointerTypeContext rawPointerType() throws RecognitionException { - RawPointerTypeContext _localctx = new RawPointerTypeContext(_ctx, getState()); - enterRule(_localctx, 304, RULE_rawPointerType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2111); - match(STAR); - setState(2112); - _la = _input.LA(1); - if ( !(_la==KW_CONST || _la==KW_MUT) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(2113); - typeNoBounds(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class BareFunctionTypeContext extends ParserRuleContext { - public FunctionTypeQualifiersContext functionTypeQualifiers() { - return getRuleContext(FunctionTypeQualifiersContext.class,0); - } - public TerminalNode KW_FN() { return getToken(RustParser.KW_FN, 0); } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public ForLifetimesContext forLifetimes() { - return getRuleContext(ForLifetimesContext.class,0); - } - public FunctionParametersMaybeNamedVariadicContext functionParametersMaybeNamedVariadic() { - return getRuleContext(FunctionParametersMaybeNamedVariadicContext.class,0); - } - public BareFunctionReturnTypeContext bareFunctionReturnType() { - return getRuleContext(BareFunctionReturnTypeContext.class,0); - } - public BareFunctionTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_bareFunctionType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitBareFunctionType(this); - else return visitor.visitChildren(this); - } - } - - public final BareFunctionTypeContext bareFunctionType() throws RecognitionException { - BareFunctionTypeContext _localctx = new BareFunctionTypeContext(_ctx, getState()); - enterRule(_localctx, 306, RULE_bareFunctionType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2116); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_FOR) { - { - setState(2115); - forLifetimes(); - } - } - - setState(2118); - functionTypeQualifiers(); - setState(2119); - match(KW_FN); - setState(2120); - match(LPAREN); - setState(2122); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453832540335392L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 363114855924105L) != 0) { - { - setState(2121); - functionParametersMaybeNamedVariadic(); - } - } - - setState(2124); - match(RPAREN); - setState(2126); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,286,_ctx) ) { - case 1: - { - setState(2125); - bareFunctionReturnType(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class FunctionTypeQualifiersContext extends ParserRuleContext { - public TerminalNode KW_UNSAFE() { return getToken(RustParser.KW_UNSAFE, 0); } - public TerminalNode KW_EXTERN() { return getToken(RustParser.KW_EXTERN, 0); } - public AbiContext abi() { - return getRuleContext(AbiContext.class,0); - } - public FunctionTypeQualifiersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_functionTypeQualifiers; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFunctionTypeQualifiers(this); - else return visitor.visitChildren(this); - } - } - - public final FunctionTypeQualifiersContext functionTypeQualifiers() throws RecognitionException { - FunctionTypeQualifiersContext _localctx = new FunctionTypeQualifiersContext(_ctx, getState()); - enterRule(_localctx, 308, RULE_functionTypeQualifiers); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2129); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_UNSAFE) { - { - setState(2128); - match(KW_UNSAFE); - } - } - - setState(2135); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_EXTERN) { - { - setState(2131); - match(KW_EXTERN); - setState(2133); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==STRING_LITERAL || _la==RAW_STRING_LITERAL) { - { - setState(2132); - abi(); - } - } - - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class BareFunctionReturnTypeContext extends ParserRuleContext { - public TerminalNode RARROW() { return getToken(RustParser.RARROW, 0); } - public TypeNoBoundsContext typeNoBounds() { - return getRuleContext(TypeNoBoundsContext.class,0); - } - public BareFunctionReturnTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_bareFunctionReturnType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitBareFunctionReturnType(this); - else return visitor.visitChildren(this); - } - } - - public final BareFunctionReturnTypeContext bareFunctionReturnType() throws RecognitionException { - BareFunctionReturnTypeContext _localctx = new BareFunctionReturnTypeContext(_ctx, getState()); - enterRule(_localctx, 310, RULE_bareFunctionReturnType); - try { - enterOuterAlt(_localctx, 1); - { - setState(2137); - match(RARROW); - setState(2138); - typeNoBounds(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class FunctionParametersMaybeNamedVariadicContext extends ParserRuleContext { - public MaybeNamedFunctionParametersContext maybeNamedFunctionParameters() { - return getRuleContext(MaybeNamedFunctionParametersContext.class,0); - } - public MaybeNamedFunctionParametersVariadicContext maybeNamedFunctionParametersVariadic() { - return getRuleContext(MaybeNamedFunctionParametersVariadicContext.class,0); - } - public FunctionParametersMaybeNamedVariadicContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_functionParametersMaybeNamedVariadic; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitFunctionParametersMaybeNamedVariadic(this); - else return visitor.visitChildren(this); - } - } - - public final FunctionParametersMaybeNamedVariadicContext functionParametersMaybeNamedVariadic() throws RecognitionException { - FunctionParametersMaybeNamedVariadicContext _localctx = new FunctionParametersMaybeNamedVariadicContext(_ctx, getState()); - enterRule(_localctx, 312, RULE_functionParametersMaybeNamedVariadic); - try { - setState(2142); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,290,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2140); - maybeNamedFunctionParameters(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2141); - maybeNamedFunctionParametersVariadic(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MaybeNamedFunctionParametersContext extends ParserRuleContext { - public List maybeNamedParam() { - return getRuleContexts(MaybeNamedParamContext.class); - } - public MaybeNamedParamContext maybeNamedParam(int i) { - return getRuleContext(MaybeNamedParamContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public MaybeNamedFunctionParametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_maybeNamedFunctionParameters; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMaybeNamedFunctionParameters(this); - else return visitor.visitChildren(this); - } - } - - public final MaybeNamedFunctionParametersContext maybeNamedFunctionParameters() throws RecognitionException { - MaybeNamedFunctionParametersContext _localctx = new MaybeNamedFunctionParametersContext(_ctx, getState()); - enterRule(_localctx, 314, RULE_maybeNamedFunctionParameters); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2144); - maybeNamedParam(); - setState(2149); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,291,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2145); - match(COMMA); - setState(2146); - maybeNamedParam(); - } - } - } - setState(2151); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,291,_ctx); - } - setState(2153); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(2152); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MaybeNamedParamContext extends ParserRuleContext { - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode UNDERSCORE() { return getToken(RustParser.UNDERSCORE, 0); } - public MaybeNamedParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_maybeNamedParam; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMaybeNamedParam(this); - else return visitor.visitChildren(this); - } - } - - public final MaybeNamedParamContext maybeNamedParam() throws RecognitionException { - MaybeNamedParamContext _localctx = new MaybeNamedParamContext(_ctx, getState()); - enterRule(_localctx, 316, RULE_maybeNamedParam); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2158); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(2155); - outerAttribute(); - } - } - setState(2160); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2166); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,295,_ctx) ) { - case 1: - { - setState(2163); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - { - setState(2161); - identifier(); - } - break; - case UNDERSCORE: - { - setState(2162); - match(UNDERSCORE); - } - break; - default: - throw new NoViableAltException(this); - } - setState(2165); - match(COLON); - } - break; - } - setState(2168); - type_(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MaybeNamedFunctionParametersVariadicContext extends ParserRuleContext { - public List maybeNamedParam() { - return getRuleContexts(MaybeNamedParamContext.class); - } - public MaybeNamedParamContext maybeNamedParam(int i) { - return getRuleContext(MaybeNamedParamContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public TerminalNode DOTDOTDOT() { return getToken(RustParser.DOTDOTDOT, 0); } - public List outerAttribute() { - return getRuleContexts(OuterAttributeContext.class); - } - public OuterAttributeContext outerAttribute(int i) { - return getRuleContext(OuterAttributeContext.class,i); - } - public MaybeNamedFunctionParametersVariadicContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_maybeNamedFunctionParametersVariadic; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMaybeNamedFunctionParametersVariadic(this); - else return visitor.visitChildren(this); - } - } - - public final MaybeNamedFunctionParametersVariadicContext maybeNamedFunctionParametersVariadic() throws RecognitionException { - MaybeNamedFunctionParametersVariadicContext _localctx = new MaybeNamedFunctionParametersVariadicContext(_ctx, getState()); - enterRule(_localctx, 318, RULE_maybeNamedFunctionParametersVariadic); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2175); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,296,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2170); - maybeNamedParam(); - setState(2171); - match(COMMA); - } - } - } - setState(2177); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,296,_ctx); - } - setState(2178); - maybeNamedParam(); - setState(2179); - match(COMMA); - setState(2183); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==POUND) { - { - { - setState(2180); - outerAttribute(); - } - } - setState(2185); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2186); - match(DOTDOTDOT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TraitObjectTypeContext extends ParserRuleContext { - public TypeParamBoundsContext typeParamBounds() { - return getRuleContext(TypeParamBoundsContext.class,0); - } - public TerminalNode KW_DYN() { return getToken(RustParser.KW_DYN, 0); } - public TraitObjectTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_traitObjectType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTraitObjectType(this); - else return visitor.visitChildren(this); - } - } - - public final TraitObjectTypeContext traitObjectType() throws RecognitionException { - TraitObjectTypeContext _localctx = new TraitObjectTypeContext(_ctx, getState()); - enterRule(_localctx, 320, RULE_traitObjectType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2189); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_DYN) { - { - setState(2188); - match(KW_DYN); - } - } - - setState(2191); - typeParamBounds(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TraitObjectTypeOneBoundContext extends ParserRuleContext { - public TraitBoundContext traitBound() { - return getRuleContext(TraitBoundContext.class,0); - } - public TerminalNode KW_DYN() { return getToken(RustParser.KW_DYN, 0); } - public TraitObjectTypeOneBoundContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_traitObjectTypeOneBound; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTraitObjectTypeOneBound(this); - else return visitor.visitChildren(this); - } - } - - public final TraitObjectTypeOneBoundContext traitObjectTypeOneBound() throws RecognitionException { - TraitObjectTypeOneBoundContext _localctx = new TraitObjectTypeOneBoundContext(_ctx, getState()); - enterRule(_localctx, 322, RULE_traitObjectTypeOneBound); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2194); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_DYN) { - { - setState(2193); - match(KW_DYN); - } - } - - setState(2196); - traitBound(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ImplTraitTypeContext extends ParserRuleContext { - public TerminalNode KW_IMPL() { return getToken(RustParser.KW_IMPL, 0); } - public TypeParamBoundsContext typeParamBounds() { - return getRuleContext(TypeParamBoundsContext.class,0); - } - public ImplTraitTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_implTraitType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitImplTraitType(this); - else return visitor.visitChildren(this); - } - } - - public final ImplTraitTypeContext implTraitType() throws RecognitionException { - ImplTraitTypeContext _localctx = new ImplTraitTypeContext(_ctx, getState()); - enterRule(_localctx, 324, RULE_implTraitType); - try { - enterOuterAlt(_localctx, 1); - { - setState(2198); - match(KW_IMPL); - setState(2199); - typeParamBounds(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ImplTraitTypeOneBoundContext extends ParserRuleContext { - public TerminalNode KW_IMPL() { return getToken(RustParser.KW_IMPL, 0); } - public TraitBoundContext traitBound() { - return getRuleContext(TraitBoundContext.class,0); - } - public ImplTraitTypeOneBoundContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_implTraitTypeOneBound; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitImplTraitTypeOneBound(this); - else return visitor.visitChildren(this); - } - } - - public final ImplTraitTypeOneBoundContext implTraitTypeOneBound() throws RecognitionException { - ImplTraitTypeOneBoundContext _localctx = new ImplTraitTypeOneBoundContext(_ctx, getState()); - enterRule(_localctx, 326, RULE_implTraitTypeOneBound); - try { - enterOuterAlt(_localctx, 1); - { - setState(2201); - match(KW_IMPL); - setState(2202); - traitBound(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class InferredTypeContext extends ParserRuleContext { - public TerminalNode UNDERSCORE() { return getToken(RustParser.UNDERSCORE, 0); } - public InferredTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_inferredType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitInferredType(this); - else return visitor.visitChildren(this); - } - } - - public final InferredTypeContext inferredType() throws RecognitionException { - InferredTypeContext _localctx = new InferredTypeContext(_ctx, getState()); - enterRule(_localctx, 328, RULE_inferredType); - try { - enterOuterAlt(_localctx, 1); - { - setState(2204); - match(UNDERSCORE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypeParamBoundsContext extends ParserRuleContext { - public List typeParamBound() { - return getRuleContexts(TypeParamBoundContext.class); - } - public TypeParamBoundContext typeParamBound(int i) { - return getRuleContext(TypeParamBoundContext.class,i); - } - public List PLUS() { return getTokens(RustParser.PLUS); } - public TerminalNode PLUS(int i) { - return getToken(RustParser.PLUS, i); - } - public TypeParamBoundsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParamBounds; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypeParamBounds(this); - else return visitor.visitChildren(this); - } - } - - public final TypeParamBoundsContext typeParamBounds() throws RecognitionException { - TypeParamBoundsContext _localctx = new TypeParamBoundsContext(_ctx, getState()); - enterRule(_localctx, 330, RULE_typeParamBounds); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2206); - typeParamBound(); - setState(2211); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,300,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2207); - match(PLUS); - setState(2208); - typeParamBound(); - } - } - } - setState(2213); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,300,_ctx); - } - setState(2215); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,301,_ctx) ) { - case 1: - { - setState(2214); - match(PLUS); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypeParamBoundContext extends ParserRuleContext { - public LifetimeContext lifetime() { - return getRuleContext(LifetimeContext.class,0); - } - public TraitBoundContext traitBound() { - return getRuleContext(TraitBoundContext.class,0); - } - public TypeParamBoundContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParamBound; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypeParamBound(this); - else return visitor.visitChildren(this); - } - } - - public final TypeParamBoundContext typeParamBound() throws RecognitionException { - TypeParamBoundContext _localctx = new TypeParamBoundContext(_ctx, getState()); - enterRule(_localctx, 332, RULE_typeParamBound); - try { - setState(2219); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_STATICLIFETIME: - case KW_UNDERLINELIFETIME: - case LIFETIME_OR_LABEL: - enterOuterAlt(_localctx, 1); - { - setState(2217); - lifetime(); - } - break; - case KW_CRATE: - case KW_FOR: - case KW_SELFVALUE: - case KW_SELFTYPE: - case KW_SUPER: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case PATHSEP: - case QUESTION: - case LPAREN: - enterOuterAlt(_localctx, 2); - { - setState(2218); - traitBound(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TraitBoundContext extends ParserRuleContext { - public TypePathContext typePath() { - return getRuleContext(TypePathContext.class,0); - } - public TerminalNode QUESTION() { return getToken(RustParser.QUESTION, 0); } - public ForLifetimesContext forLifetimes() { - return getRuleContext(ForLifetimesContext.class,0); - } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TraitBoundContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_traitBound; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTraitBound(this); - else return visitor.visitChildren(this); - } - } - - public final TraitBoundContext traitBound() throws RecognitionException { - TraitBoundContext _localctx = new TraitBoundContext(_ctx, getState()); - enterRule(_localctx, 334, RULE_traitBound); - int _la; - try { - setState(2238); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_CRATE: - case KW_FOR: - case KW_SELFVALUE: - case KW_SELFTYPE: - case KW_SUPER: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - case PATHSEP: - case QUESTION: - enterOuterAlt(_localctx, 1); - { - setState(2222); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==QUESTION) { - { - setState(2221); - match(QUESTION); - } - } - - setState(2225); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_FOR) { - { - setState(2224); - forLifetimes(); - } - } - - setState(2227); - typePath(); - } - break; - case LPAREN: - enterOuterAlt(_localctx, 2); - { - setState(2228); - match(LPAREN); - setState(2230); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==QUESTION) { - { - setState(2229); - match(QUESTION); - } - } - - setState(2233); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_FOR) { - { - setState(2232); - forLifetimes(); - } - } - - setState(2235); - typePath(); - setState(2236); - match(RPAREN); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LifetimeBoundsContext extends ParserRuleContext { - public List lifetime() { - return getRuleContexts(LifetimeContext.class); - } - public LifetimeContext lifetime(int i) { - return getRuleContext(LifetimeContext.class,i); - } - public List PLUS() { return getTokens(RustParser.PLUS); } - public TerminalNode PLUS(int i) { - return getToken(RustParser.PLUS, i); - } - public LifetimeBoundsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lifetimeBounds; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLifetimeBounds(this); - else return visitor.visitChildren(this); - } - } - - public final LifetimeBoundsContext lifetimeBounds() throws RecognitionException { - LifetimeBoundsContext _localctx = new LifetimeBoundsContext(_ctx, getState()); - enterRule(_localctx, 336, RULE_lifetimeBounds); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2245); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,308,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2240); - lifetime(); - setState(2241); - match(PLUS); - } - } - } - setState(2247); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,308,_ctx); - } - setState(2249); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la - 53)) & ~0x3f) == 0 && ((1L << (_la - 53)) & 67108869L) != 0) { - { - setState(2248); - lifetime(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class LifetimeContext extends ParserRuleContext { - public TerminalNode LIFETIME_OR_LABEL() { return getToken(RustParser.LIFETIME_OR_LABEL, 0); } - public TerminalNode KW_STATICLIFETIME() { return getToken(RustParser.KW_STATICLIFETIME, 0); } - public TerminalNode KW_UNDERLINELIFETIME() { return getToken(RustParser.KW_UNDERLINELIFETIME, 0); } - public LifetimeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lifetime; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitLifetime(this); - else return visitor.visitChildren(this); - } - } - - public final LifetimeContext lifetime() throws RecognitionException { - LifetimeContext _localctx = new LifetimeContext(_ctx, getState()); - enterRule(_localctx, 338, RULE_lifetime); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2251); - _la = _input.LA(1); - if ( !((((_la - 53)) & ~0x3f) == 0 && ((1L << (_la - 53)) & 67108869L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class SimplePathContext extends ParserRuleContext { - public List simplePathSegment() { - return getRuleContexts(SimplePathSegmentContext.class); - } - public SimplePathSegmentContext simplePathSegment(int i) { - return getRuleContext(SimplePathSegmentContext.class,i); - } - public List PATHSEP() { return getTokens(RustParser.PATHSEP); } - public TerminalNode PATHSEP(int i) { - return getToken(RustParser.PATHSEP, i); - } - public SimplePathContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_simplePath; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitSimplePath(this); - else return visitor.visitChildren(this); - } - } - - public final SimplePathContext simplePath() throws RecognitionException { - SimplePathContext _localctx = new SimplePathContext(_ctx, getState()); - enterRule(_localctx, 340, RULE_simplePath); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2254); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==PATHSEP) { - { - setState(2253); - match(PATHSEP); - } - } - - setState(2256); - simplePathSegment(); - setState(2261); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,311,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2257); - match(PATHSEP); - setState(2258); - simplePathSegment(); - } - } - } - setState(2263); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,311,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class SimplePathSegmentContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode KW_SUPER() { return getToken(RustParser.KW_SUPER, 0); } - public TerminalNode KW_SELFVALUE() { return getToken(RustParser.KW_SELFVALUE, 0); } - public TerminalNode KW_CRATE() { return getToken(RustParser.KW_CRATE, 0); } - public TerminalNode KW_DOLLARCRATE() { return getToken(RustParser.KW_DOLLARCRATE, 0); } - public SimplePathSegmentContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_simplePathSegment; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitSimplePathSegment(this); - else return visitor.visitChildren(this); - } - } - - public final SimplePathSegmentContext simplePathSegment() throws RecognitionException { - SimplePathSegmentContext _localctx = new SimplePathSegmentContext(_ctx, getState()); - enterRule(_localctx, 342, RULE_simplePathSegment); - try { - setState(2269); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - enterOuterAlt(_localctx, 1); - { - setState(2264); - identifier(); - } - break; - case KW_SUPER: - enterOuterAlt(_localctx, 2); - { - setState(2265); - match(KW_SUPER); - } - break; - case KW_SELFVALUE: - enterOuterAlt(_localctx, 3); - { - setState(2266); - match(KW_SELFVALUE); - } - break; - case KW_CRATE: - enterOuterAlt(_localctx, 4); - { - setState(2267); - match(KW_CRATE); - } - break; - case KW_DOLLARCRATE: - enterOuterAlt(_localctx, 5); - { - setState(2268); - match(KW_DOLLARCRATE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PathInExpressionContext extends ParserRuleContext { - public List pathExprSegment() { - return getRuleContexts(PathExprSegmentContext.class); - } - public PathExprSegmentContext pathExprSegment(int i) { - return getRuleContext(PathExprSegmentContext.class,i); - } - public List PATHSEP() { return getTokens(RustParser.PATHSEP); } - public TerminalNode PATHSEP(int i) { - return getToken(RustParser.PATHSEP, i); - } - public PathInExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_pathInExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPathInExpression(this); - else return visitor.visitChildren(this); - } - } - - public final PathInExpressionContext pathInExpression() throws RecognitionException { - PathInExpressionContext _localctx = new PathInExpressionContext(_ctx, getState()); - enterRule(_localctx, 344, RULE_pathInExpression); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2272); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==PATHSEP) { - { - setState(2271); - match(PATHSEP); - } - } - - setState(2274); - pathExprSegment(); - setState(2279); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,314,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2275); - match(PATHSEP); - setState(2276); - pathExprSegment(); - } - } - } - setState(2281); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,314,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PathExprSegmentContext extends ParserRuleContext { - public PathIdentSegmentContext pathIdentSegment() { - return getRuleContext(PathIdentSegmentContext.class,0); - } - public TerminalNode PATHSEP() { return getToken(RustParser.PATHSEP, 0); } - public GenericArgsContext genericArgs() { - return getRuleContext(GenericArgsContext.class,0); - } - public PathExprSegmentContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_pathExprSegment; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPathExprSegment(this); - else return visitor.visitChildren(this); - } - } - - public final PathExprSegmentContext pathExprSegment() throws RecognitionException { - PathExprSegmentContext _localctx = new PathExprSegmentContext(_ctx, getState()); - enterRule(_localctx, 346, RULE_pathExprSegment); - try { - enterOuterAlt(_localctx, 1); - { - setState(2282); - pathIdentSegment(); - setState(2285); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,315,_ctx) ) { - case 1: - { - setState(2283); - match(PATHSEP); - setState(2284); - genericArgs(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class PathIdentSegmentContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode KW_SUPER() { return getToken(RustParser.KW_SUPER, 0); } - public TerminalNode KW_SELFVALUE() { return getToken(RustParser.KW_SELFVALUE, 0); } - public TerminalNode KW_SELFTYPE() { return getToken(RustParser.KW_SELFTYPE, 0); } - public TerminalNode KW_CRATE() { return getToken(RustParser.KW_CRATE, 0); } - public TerminalNode KW_DOLLARCRATE() { return getToken(RustParser.KW_DOLLARCRATE, 0); } - public PathIdentSegmentContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_pathIdentSegment; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitPathIdentSegment(this); - else return visitor.visitChildren(this); - } - } - - public final PathIdentSegmentContext pathIdentSegment() throws RecognitionException { - PathIdentSegmentContext _localctx = new PathIdentSegmentContext(_ctx, getState()); - enterRule(_localctx, 348, RULE_pathIdentSegment); - try { - setState(2293); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_MACRORULES: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - enterOuterAlt(_localctx, 1); - { - setState(2287); - identifier(); - } - break; - case KW_SUPER: - enterOuterAlt(_localctx, 2); - { - setState(2288); - match(KW_SUPER); - } - break; - case KW_SELFVALUE: - enterOuterAlt(_localctx, 3); - { - setState(2289); - match(KW_SELFVALUE); - } - break; - case KW_SELFTYPE: - enterOuterAlt(_localctx, 4); - { - setState(2290); - match(KW_SELFTYPE); - } - break; - case KW_CRATE: - enterOuterAlt(_localctx, 5); - { - setState(2291); - match(KW_CRATE); - } - break; - case KW_DOLLARCRATE: - enterOuterAlt(_localctx, 6); - { - setState(2292); - match(KW_DOLLARCRATE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericArgsContext extends ParserRuleContext { - public TerminalNode LT() { return getToken(RustParser.LT, 0); } - public TerminalNode GT() { return getToken(RustParser.GT, 0); } - public GenericArgsLifetimesContext genericArgsLifetimes() { - return getRuleContext(GenericArgsLifetimesContext.class,0); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public GenericArgsTypesContext genericArgsTypes() { - return getRuleContext(GenericArgsTypesContext.class,0); - } - public GenericArgsBindingsContext genericArgsBindings() { - return getRuleContext(GenericArgsBindingsContext.class,0); - } - public List genericArg() { - return getRuleContexts(GenericArgContext.class); - } - public GenericArgContext genericArg(int i) { - return getRuleContext(GenericArgContext.class,i); - } - public GenericArgsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericArgs; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericArgs(this); - else return visitor.visitChildren(this); - } - } - - public final GenericArgsContext genericArgs() throws RecognitionException { - GenericArgsContext _localctx = new GenericArgsContext(_ctx, getState()); - enterRule(_localctx, 350, RULE_genericArgs); - int _la; - try { - int _alt; - setState(2338); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,324,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2295); - match(LT); - setState(2296); - match(GT); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2297); - match(LT); - setState(2298); - genericArgsLifetimes(); - setState(2301); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,317,_ctx) ) { - case 1: - { - setState(2299); - match(COMMA); - setState(2300); - genericArgsTypes(); - } - break; - } - setState(2305); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,318,_ctx) ) { - case 1: - { - setState(2303); - match(COMMA); - setState(2304); - genericArgsBindings(); - } - break; - } - setState(2308); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(2307); - match(COMMA); - } - } - - setState(2310); - match(GT); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2312); - match(LT); - setState(2313); - genericArgsTypes(); - setState(2316); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,320,_ctx) ) { - case 1: - { - setState(2314); - match(COMMA); - setState(2315); - genericArgsBindings(); - } - break; - } - setState(2319); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(2318); - match(COMMA); - } - } - - setState(2321); - match(GT); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2323); - match(LT); - setState(2329); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,322,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2324); - genericArg(); - setState(2325); - match(COMMA); - } - } - } - setState(2331); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,322,_ctx); - } - setState(2332); - genericArg(); - setState(2334); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(2333); - match(COMMA); - } - } - - setState(2336); - match(GT); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericArgContext extends ParserRuleContext { - public LifetimeContext lifetime() { - return getRuleContext(LifetimeContext.class,0); - } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public GenericArgsConstContext genericArgsConst() { - return getRuleContext(GenericArgsConstContext.class,0); - } - public GenericArgsBindingContext genericArgsBinding() { - return getRuleContext(GenericArgsBindingContext.class,0); - } - public GenericArgContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericArg; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericArg(this); - else return visitor.visitChildren(this); - } - } - - public final GenericArgContext genericArg() throws RecognitionException { - GenericArgContext _localctx = new GenericArgContext(_ctx, getState()); - enterRule(_localctx, 352, RULE_genericArg); - try { - setState(2344); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,325,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2340); - lifetime(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2341); - type_(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2342); - genericArgsConst(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2343); - genericArgsBinding(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericArgsConstContext extends ParserRuleContext { - public BlockExpressionContext blockExpression() { - return getRuleContext(BlockExpressionContext.class,0); - } - public LiteralExpressionContext literalExpression() { - return getRuleContext(LiteralExpressionContext.class,0); - } - public TerminalNode MINUS() { return getToken(RustParser.MINUS, 0); } - public SimplePathSegmentContext simplePathSegment() { - return getRuleContext(SimplePathSegmentContext.class,0); - } - public GenericArgsConstContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericArgsConst; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericArgsConst(this); - else return visitor.visitChildren(this); - } - } - - public final GenericArgsConstContext genericArgsConst() throws RecognitionException { - GenericArgsConstContext _localctx = new GenericArgsConstContext(_ctx, getState()); - enterRule(_localctx, 354, RULE_genericArgsConst); - int _la; - try { - setState(2352); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LCURLYBRACE: - enterOuterAlt(_localctx, 1); - { - setState(2346); - blockExpression(); - } - break; - case KW_FALSE: - case KW_TRUE: - case CHAR_LITERAL: - case STRING_LITERAL: - case RAW_STRING_LITERAL: - case BYTE_LITERAL: - case BYTE_STRING_LITERAL: - case RAW_BYTE_STRING_LITERAL: - case INTEGER_LITERAL: - case FLOAT_LITERAL: - case MINUS: - enterOuterAlt(_localctx, 2); - { - setState(2348); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==MINUS) { - { - setState(2347); - match(MINUS); - } - } - - setState(2350); - literalExpression(); - } - break; - case KW_CRATE: - case KW_SELFVALUE: - case KW_SUPER: - case KW_MACRORULES: - case KW_DOLLARCRATE: - case NON_KEYWORD_IDENTIFIER: - case RAW_IDENTIFIER: - enterOuterAlt(_localctx, 3); - { - setState(2351); - simplePathSegment(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericArgsLifetimesContext extends ParserRuleContext { - public List lifetime() { - return getRuleContexts(LifetimeContext.class); - } - public LifetimeContext lifetime(int i) { - return getRuleContext(LifetimeContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public GenericArgsLifetimesContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericArgsLifetimes; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericArgsLifetimes(this); - else return visitor.visitChildren(this); - } - } - - public final GenericArgsLifetimesContext genericArgsLifetimes() throws RecognitionException { - GenericArgsLifetimesContext _localctx = new GenericArgsLifetimesContext(_ctx, getState()); - enterRule(_localctx, 356, RULE_genericArgsLifetimes); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2354); - lifetime(); - setState(2359); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,328,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2355); - match(COMMA); - setState(2356); - lifetime(); - } - } - } - setState(2361); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,328,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericArgsTypesContext extends ParserRuleContext { - public List type_() { - return getRuleContexts(Type_Context.class); - } - public Type_Context type_(int i) { - return getRuleContext(Type_Context.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public GenericArgsTypesContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericArgsTypes; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericArgsTypes(this); - else return visitor.visitChildren(this); - } - } - - public final GenericArgsTypesContext genericArgsTypes() throws RecognitionException { - GenericArgsTypesContext _localctx = new GenericArgsTypesContext(_ctx, getState()); - enterRule(_localctx, 358, RULE_genericArgsTypes); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2362); - type_(); - setState(2367); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,329,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2363); - match(COMMA); - setState(2364); - type_(); - } - } - } - setState(2369); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,329,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericArgsBindingsContext extends ParserRuleContext { - public List genericArgsBinding() { - return getRuleContexts(GenericArgsBindingContext.class); - } - public GenericArgsBindingContext genericArgsBinding(int i) { - return getRuleContext(GenericArgsBindingContext.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public GenericArgsBindingsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericArgsBindings; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericArgsBindings(this); - else return visitor.visitChildren(this); - } - } - - public final GenericArgsBindingsContext genericArgsBindings() throws RecognitionException { - GenericArgsBindingsContext _localctx = new GenericArgsBindingsContext(_ctx, getState()); - enterRule(_localctx, 360, RULE_genericArgsBindings); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2370); - genericArgsBinding(); - setState(2375); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,330,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2371); - match(COMMA); - setState(2372); - genericArgsBinding(); - } - } - } - setState(2377); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,330,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class GenericArgsBindingContext extends ParserRuleContext { - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public GenericArgsBindingContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_genericArgsBinding; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitGenericArgsBinding(this); - else return visitor.visitChildren(this); - } - } - - public final GenericArgsBindingContext genericArgsBinding() throws RecognitionException { - GenericArgsBindingContext _localctx = new GenericArgsBindingContext(_ctx, getState()); - enterRule(_localctx, 362, RULE_genericArgsBinding); - try { - enterOuterAlt(_localctx, 1); - { - setState(2378); - identifier(); - setState(2379); - match(EQ); - setState(2380); - type_(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class QualifiedPathInExpressionContext extends ParserRuleContext { - public QualifiedPathTypeContext qualifiedPathType() { - return getRuleContext(QualifiedPathTypeContext.class,0); - } - public List PATHSEP() { return getTokens(RustParser.PATHSEP); } - public TerminalNode PATHSEP(int i) { - return getToken(RustParser.PATHSEP, i); - } - public List pathExprSegment() { - return getRuleContexts(PathExprSegmentContext.class); - } - public PathExprSegmentContext pathExprSegment(int i) { - return getRuleContext(PathExprSegmentContext.class,i); - } - public QualifiedPathInExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_qualifiedPathInExpression; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitQualifiedPathInExpression(this); - else return visitor.visitChildren(this); - } - } - - public final QualifiedPathInExpressionContext qualifiedPathInExpression() throws RecognitionException { - QualifiedPathInExpressionContext _localctx = new QualifiedPathInExpressionContext(_ctx, getState()); - enterRule(_localctx, 364, RULE_qualifiedPathInExpression); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2382); - qualifiedPathType(); - setState(2385); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(2383); - match(PATHSEP); - setState(2384); - pathExprSegment(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(2387); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,331,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class QualifiedPathTypeContext extends ParserRuleContext { - public TerminalNode LT() { return getToken(RustParser.LT, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TerminalNode GT() { return getToken(RustParser.GT, 0); } - public TerminalNode KW_AS() { return getToken(RustParser.KW_AS, 0); } - public TypePathContext typePath() { - return getRuleContext(TypePathContext.class,0); - } - public QualifiedPathTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_qualifiedPathType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitQualifiedPathType(this); - else return visitor.visitChildren(this); - } - } - - public final QualifiedPathTypeContext qualifiedPathType() throws RecognitionException { - QualifiedPathTypeContext _localctx = new QualifiedPathTypeContext(_ctx, getState()); - enterRule(_localctx, 366, RULE_qualifiedPathType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2389); - match(LT); - setState(2390); - type_(); - setState(2393); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==KW_AS) { - { - setState(2391); - match(KW_AS); - setState(2392); - typePath(); - } - } - - setState(2395); - match(GT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class QualifiedPathInTypeContext extends ParserRuleContext { - public QualifiedPathTypeContext qualifiedPathType() { - return getRuleContext(QualifiedPathTypeContext.class,0); - } - public List PATHSEP() { return getTokens(RustParser.PATHSEP); } - public TerminalNode PATHSEP(int i) { - return getToken(RustParser.PATHSEP, i); - } - public List typePathSegment() { - return getRuleContexts(TypePathSegmentContext.class); - } - public TypePathSegmentContext typePathSegment(int i) { - return getRuleContext(TypePathSegmentContext.class,i); - } - public QualifiedPathInTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_qualifiedPathInType; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitQualifiedPathInType(this); - else return visitor.visitChildren(this); - } - } - - public final QualifiedPathInTypeContext qualifiedPathInType() throws RecognitionException { - QualifiedPathInTypeContext _localctx = new QualifiedPathInTypeContext(_ctx, getState()); - enterRule(_localctx, 368, RULE_qualifiedPathInType); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2397); - qualifiedPathType(); - setState(2400); - _errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - setState(2398); - match(PATHSEP); - setState(2399); - typePathSegment(); - } - } - break; - default: - throw new NoViableAltException(this); - } - setState(2402); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,333,_ctx); - } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypePathContext extends ParserRuleContext { - public List typePathSegment() { - return getRuleContexts(TypePathSegmentContext.class); - } - public TypePathSegmentContext typePathSegment(int i) { - return getRuleContext(TypePathSegmentContext.class,i); - } - public List PATHSEP() { return getTokens(RustParser.PATHSEP); } - public TerminalNode PATHSEP(int i) { - return getToken(RustParser.PATHSEP, i); - } - public TypePathContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typePath; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypePath(this); - else return visitor.visitChildren(this); - } - } - - public final TypePathContext typePath() throws RecognitionException { - TypePathContext _localctx = new TypePathContext(_ctx, getState()); - enterRule(_localctx, 370, RULE_typePath); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2405); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==PATHSEP) { - { - setState(2404); - match(PATHSEP); - } - } - - setState(2407); - typePathSegment(); - setState(2412); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,335,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2408); - match(PATHSEP); - setState(2409); - typePathSegment(); - } - } - } - setState(2414); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,335,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypePathSegmentContext extends ParserRuleContext { - public PathIdentSegmentContext pathIdentSegment() { - return getRuleContext(PathIdentSegmentContext.class,0); - } - public TerminalNode PATHSEP() { return getToken(RustParser.PATHSEP, 0); } - public GenericArgsContext genericArgs() { - return getRuleContext(GenericArgsContext.class,0); - } - public TypePathFnContext typePathFn() { - return getRuleContext(TypePathFnContext.class,0); - } - public TypePathSegmentContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typePathSegment; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypePathSegment(this); - else return visitor.visitChildren(this); - } - } - - public final TypePathSegmentContext typePathSegment() throws RecognitionException { - TypePathSegmentContext _localctx = new TypePathSegmentContext(_ctx, getState()); - enterRule(_localctx, 372, RULE_typePathSegment); - try { - enterOuterAlt(_localctx, 1); - { - setState(2415); - pathIdentSegment(); - setState(2417); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,336,_ctx) ) { - case 1: - { - setState(2416); - match(PATHSEP); - } - break; - } - setState(2421); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,337,_ctx) ) { - case 1: - { - setState(2419); - genericArgs(); - } - break; - case 2: - { - setState(2420); - typePathFn(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypePathFnContext extends ParserRuleContext { - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TypePathInputsContext typePathInputs() { - return getRuleContext(TypePathInputsContext.class,0); - } - public TerminalNode RARROW() { return getToken(RustParser.RARROW, 0); } - public Type_Context type_() { - return getRuleContext(Type_Context.class,0); - } - public TypePathFnContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typePathFn; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypePathFn(this); - else return visitor.visitChildren(this); - } - } - - public final TypePathFnContext typePathFn() throws RecognitionException { - TypePathFnContext _localctx = new TypePathFnContext(_ctx, getState()); - enterRule(_localctx, 374, RULE_typePathFn); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2423); - match(LPAREN); - setState(2425); - _errHandler.sync(this); - _la = _input.LA(1); - if (((_la) & ~0x3f) == 0 && ((1L << _la) & 567453832540335392L) != 0 || (((_la - 79)) & ~0x3f) == 0 && ((1L << (_la - 79)) & 360915832668553L) != 0) { - { - setState(2424); - typePathInputs(); - } - } - - setState(2427); - match(RPAREN); - setState(2430); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,339,_ctx) ) { - case 1: - { - setState(2428); - match(RARROW); - setState(2429); - type_(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class TypePathInputsContext extends ParserRuleContext { - public List type_() { - return getRuleContexts(Type_Context.class); - } - public Type_Context type_(int i) { - return getRuleContext(Type_Context.class,i); - } - public List COMMA() { return getTokens(RustParser.COMMA); } - public TerminalNode COMMA(int i) { - return getToken(RustParser.COMMA, i); - } - public TypePathInputsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typePathInputs; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitTypePathInputs(this); - else return visitor.visitChildren(this); - } - } - - public final TypePathInputsContext typePathInputs() throws RecognitionException { - TypePathInputsContext _localctx = new TypePathInputsContext(_ctx, getState()); - enterRule(_localctx, 376, RULE_typePathInputs); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2432); - type_(); - setState(2437); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,340,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2433); - match(COMMA); - setState(2434); - type_(); - } - } - } - setState(2439); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,340,_ctx); - } - setState(2441); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(2440); - match(COMMA); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class VisibilityContext extends ParserRuleContext { - public TerminalNode KW_PUB() { return getToken(RustParser.KW_PUB, 0); } - public TerminalNode LPAREN() { return getToken(RustParser.LPAREN, 0); } - public TerminalNode RPAREN() { return getToken(RustParser.RPAREN, 0); } - public TerminalNode KW_CRATE() { return getToken(RustParser.KW_CRATE, 0); } - public TerminalNode KW_SELFVALUE() { return getToken(RustParser.KW_SELFVALUE, 0); } - public TerminalNode KW_SUPER() { return getToken(RustParser.KW_SUPER, 0); } - public TerminalNode KW_IN() { return getToken(RustParser.KW_IN, 0); } - public SimplePathContext simplePath() { - return getRuleContext(SimplePathContext.class,0); - } - public VisibilityContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_visibility; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitVisibility(this); - else return visitor.visitChildren(this); - } - } - - public final VisibilityContext visibility() throws RecognitionException { - VisibilityContext _localctx = new VisibilityContext(_ctx, getState()); - enterRule(_localctx, 378, RULE_visibility); - try { - enterOuterAlt(_localctx, 1); - { - setState(2443); - match(KW_PUB); - setState(2453); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,343,_ctx) ) { - case 1: - { - setState(2444); - match(LPAREN); - setState(2450); - _errHandler.sync(this); - switch (_input.LA(1)) { - case KW_CRATE: - { - setState(2445); - match(KW_CRATE); - } - break; - case KW_SELFVALUE: - { - setState(2446); - match(KW_SELFVALUE); - } - break; - case KW_SUPER: - { - setState(2447); - match(KW_SUPER); - } - break; - case KW_IN: - { - setState(2448); - match(KW_IN); - setState(2449); - simplePath(); - } - break; - default: - throw new NoViableAltException(this); - } - setState(2452); - match(RPAREN); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class IdentifierContext extends ParserRuleContext { - public TerminalNode NON_KEYWORD_IDENTIFIER() { return getToken(RustParser.NON_KEYWORD_IDENTIFIER, 0); } - public TerminalNode RAW_IDENTIFIER() { return getToken(RustParser.RAW_IDENTIFIER, 0); } - public TerminalNode KW_MACRORULES() { return getToken(RustParser.KW_MACRORULES, 0); } - public IdentifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_identifier; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitIdentifier(this); - else return visitor.visitChildren(this); - } - } - - public final IdentifierContext identifier() throws RecognitionException { - IdentifierContext _localctx = new IdentifierContext(_ctx, getState()); - enterRule(_localctx, 380, RULE_identifier); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2455); - _la = _input.LA(1); - if ( !(((_la) & ~0x3f) == 0 && ((1L << _la) & 450359962737049600L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class KeywordContext extends ParserRuleContext { - public TerminalNode KW_AS() { return getToken(RustParser.KW_AS, 0); } - public TerminalNode KW_BREAK() { return getToken(RustParser.KW_BREAK, 0); } - public TerminalNode KW_CONST() { return getToken(RustParser.KW_CONST, 0); } - public TerminalNode KW_CONTINUE() { return getToken(RustParser.KW_CONTINUE, 0); } - public TerminalNode KW_CRATE() { return getToken(RustParser.KW_CRATE, 0); } - public TerminalNode KW_ELSE() { return getToken(RustParser.KW_ELSE, 0); } - public TerminalNode KW_ENUM() { return getToken(RustParser.KW_ENUM, 0); } - public TerminalNode KW_EXTERN() { return getToken(RustParser.KW_EXTERN, 0); } - public TerminalNode KW_FALSE() { return getToken(RustParser.KW_FALSE, 0); } - public TerminalNode KW_FN() { return getToken(RustParser.KW_FN, 0); } - public TerminalNode KW_FOR() { return getToken(RustParser.KW_FOR, 0); } - public TerminalNode KW_IF() { return getToken(RustParser.KW_IF, 0); } - public TerminalNode KW_IMPL() { return getToken(RustParser.KW_IMPL, 0); } - public TerminalNode KW_IN() { return getToken(RustParser.KW_IN, 0); } - public TerminalNode KW_LET() { return getToken(RustParser.KW_LET, 0); } - public TerminalNode KW_LOOP() { return getToken(RustParser.KW_LOOP, 0); } - public TerminalNode KW_MATCH() { return getToken(RustParser.KW_MATCH, 0); } - public TerminalNode KW_MOD() { return getToken(RustParser.KW_MOD, 0); } - public TerminalNode KW_MOVE() { return getToken(RustParser.KW_MOVE, 0); } - public TerminalNode KW_MUT() { return getToken(RustParser.KW_MUT, 0); } - public TerminalNode KW_PUB() { return getToken(RustParser.KW_PUB, 0); } - public TerminalNode KW_REF() { return getToken(RustParser.KW_REF, 0); } - public TerminalNode KW_RETURN() { return getToken(RustParser.KW_RETURN, 0); } - public TerminalNode KW_SELFVALUE() { return getToken(RustParser.KW_SELFVALUE, 0); } - public TerminalNode KW_SELFTYPE() { return getToken(RustParser.KW_SELFTYPE, 0); } - public TerminalNode KW_STATIC() { return getToken(RustParser.KW_STATIC, 0); } - public TerminalNode KW_STRUCT() { return getToken(RustParser.KW_STRUCT, 0); } - public TerminalNode KW_SUPER() { return getToken(RustParser.KW_SUPER, 0); } - public TerminalNode KW_TRAIT() { return getToken(RustParser.KW_TRAIT, 0); } - public TerminalNode KW_TRUE() { return getToken(RustParser.KW_TRUE, 0); } - public TerminalNode KW_TYPE() { return getToken(RustParser.KW_TYPE, 0); } - public TerminalNode KW_UNSAFE() { return getToken(RustParser.KW_UNSAFE, 0); } - public TerminalNode KW_USE() { return getToken(RustParser.KW_USE, 0); } - public TerminalNode KW_WHERE() { return getToken(RustParser.KW_WHERE, 0); } - public TerminalNode KW_WHILE() { return getToken(RustParser.KW_WHILE, 0); } - public TerminalNode KW_ASYNC() { return getToken(RustParser.KW_ASYNC, 0); } - public TerminalNode KW_AWAIT() { return getToken(RustParser.KW_AWAIT, 0); } - public TerminalNode KW_DYN() { return getToken(RustParser.KW_DYN, 0); } - public TerminalNode KW_ABSTRACT() { return getToken(RustParser.KW_ABSTRACT, 0); } - public TerminalNode KW_BECOME() { return getToken(RustParser.KW_BECOME, 0); } - public TerminalNode KW_BOX() { return getToken(RustParser.KW_BOX, 0); } - public TerminalNode KW_DO() { return getToken(RustParser.KW_DO, 0); } - public TerminalNode KW_FINAL() { return getToken(RustParser.KW_FINAL, 0); } - public TerminalNode KW_MACRO() { return getToken(RustParser.KW_MACRO, 0); } - public TerminalNode KW_OVERRIDE() { return getToken(RustParser.KW_OVERRIDE, 0); } - public TerminalNode KW_PRIV() { return getToken(RustParser.KW_PRIV, 0); } - public TerminalNode KW_TYPEOF() { return getToken(RustParser.KW_TYPEOF, 0); } - public TerminalNode KW_UNSIZED() { return getToken(RustParser.KW_UNSIZED, 0); } - public TerminalNode KW_VIRTUAL() { return getToken(RustParser.KW_VIRTUAL, 0); } - public TerminalNode KW_YIELD() { return getToken(RustParser.KW_YIELD, 0); } - public TerminalNode KW_TRY() { return getToken(RustParser.KW_TRY, 0); } - public TerminalNode KW_UNION() { return getToken(RustParser.KW_UNION, 0); } - public TerminalNode KW_STATICLIFETIME() { return getToken(RustParser.KW_STATICLIFETIME, 0); } - public KeywordContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_keyword; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitKeyword(this); - else return visitor.visitChildren(this); - } - } - - public final KeywordContext keyword() throws RecognitionException { - KeywordContext _localctx = new KeywordContext(_ctx, getState()); - enterRule(_localctx, 382, RULE_keyword); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2457); - _la = _input.LA(1); - if ( !(((_la) & ~0x3f) == 0 && ((1L << _la) & 18014398509481982L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroIdentifierLikeTokenContext extends ParserRuleContext { - public KeywordContext keyword() { - return getRuleContext(KeywordContext.class,0); - } - public IdentifierContext identifier() { - return getRuleContext(IdentifierContext.class,0); - } - public TerminalNode KW_MACRORULES() { return getToken(RustParser.KW_MACRORULES, 0); } - public TerminalNode KW_UNDERLINELIFETIME() { return getToken(RustParser.KW_UNDERLINELIFETIME, 0); } - public TerminalNode KW_DOLLARCRATE() { return getToken(RustParser.KW_DOLLARCRATE, 0); } - public TerminalNode LIFETIME_OR_LABEL() { return getToken(RustParser.LIFETIME_OR_LABEL, 0); } - public MacroIdentifierLikeTokenContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroIdentifierLikeToken; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroIdentifierLikeToken(this); - else return visitor.visitChildren(this); - } - } - - public final MacroIdentifierLikeTokenContext macroIdentifierLikeToken() throws RecognitionException { - MacroIdentifierLikeTokenContext _localctx = new MacroIdentifierLikeTokenContext(_ctx, getState()); - enterRule(_localctx, 384, RULE_macroIdentifierLikeToken); - try { - setState(2465); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,344,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2459); - keyword(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2460); - identifier(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2461); - match(KW_MACRORULES); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2462); - match(KW_UNDERLINELIFETIME); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(2463); - match(KW_DOLLARCRATE); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(2464); - match(LIFETIME_OR_LABEL); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroLiteralTokenContext extends ParserRuleContext { - public LiteralExpressionContext literalExpression() { - return getRuleContext(LiteralExpressionContext.class,0); - } - public MacroLiteralTokenContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroLiteralToken; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroLiteralToken(this); - else return visitor.visitChildren(this); - } - } - - public final MacroLiteralTokenContext macroLiteralToken() throws RecognitionException { - MacroLiteralTokenContext _localctx = new MacroLiteralTokenContext(_ctx, getState()); - enterRule(_localctx, 386, RULE_macroLiteralToken); - try { - enterOuterAlt(_localctx, 1); - { - setState(2467); - literalExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class MacroPunctuationTokenContext extends ParserRuleContext { - public TerminalNode MINUS() { return getToken(RustParser.MINUS, 0); } - public TerminalNode SLASH() { return getToken(RustParser.SLASH, 0); } - public TerminalNode PERCENT() { return getToken(RustParser.PERCENT, 0); } - public TerminalNode CARET() { return getToken(RustParser.CARET, 0); } - public TerminalNode NOT() { return getToken(RustParser.NOT, 0); } - public TerminalNode AND() { return getToken(RustParser.AND, 0); } - public TerminalNode OR() { return getToken(RustParser.OR, 0); } - public TerminalNode ANDAND() { return getToken(RustParser.ANDAND, 0); } - public TerminalNode OROR() { return getToken(RustParser.OROR, 0); } - public TerminalNode PLUSEQ() { return getToken(RustParser.PLUSEQ, 0); } - public TerminalNode MINUSEQ() { return getToken(RustParser.MINUSEQ, 0); } - public TerminalNode STAREQ() { return getToken(RustParser.STAREQ, 0); } - public TerminalNode SLASHEQ() { return getToken(RustParser.SLASHEQ, 0); } - public TerminalNode PERCENTEQ() { return getToken(RustParser.PERCENTEQ, 0); } - public TerminalNode CARETEQ() { return getToken(RustParser.CARETEQ, 0); } - public TerminalNode ANDEQ() { return getToken(RustParser.ANDEQ, 0); } - public TerminalNode OREQ() { return getToken(RustParser.OREQ, 0); } - public TerminalNode SHLEQ() { return getToken(RustParser.SHLEQ, 0); } - public TerminalNode SHREQ() { return getToken(RustParser.SHREQ, 0); } - public TerminalNode EQ() { return getToken(RustParser.EQ, 0); } - public TerminalNode EQEQ() { return getToken(RustParser.EQEQ, 0); } - public TerminalNode NE() { return getToken(RustParser.NE, 0); } - public TerminalNode GT() { return getToken(RustParser.GT, 0); } - public TerminalNode LT() { return getToken(RustParser.LT, 0); } - public TerminalNode GE() { return getToken(RustParser.GE, 0); } - public TerminalNode LE() { return getToken(RustParser.LE, 0); } - public TerminalNode AT() { return getToken(RustParser.AT, 0); } - public TerminalNode UNDERSCORE() { return getToken(RustParser.UNDERSCORE, 0); } - public TerminalNode DOT() { return getToken(RustParser.DOT, 0); } - public TerminalNode DOTDOT() { return getToken(RustParser.DOTDOT, 0); } - public TerminalNode DOTDOTDOT() { return getToken(RustParser.DOTDOTDOT, 0); } - public TerminalNode DOTDOTEQ() { return getToken(RustParser.DOTDOTEQ, 0); } - public TerminalNode COMMA() { return getToken(RustParser.COMMA, 0); } - public TerminalNode SEMI() { return getToken(RustParser.SEMI, 0); } - public TerminalNode COLON() { return getToken(RustParser.COLON, 0); } - public TerminalNode PATHSEP() { return getToken(RustParser.PATHSEP, 0); } - public TerminalNode RARROW() { return getToken(RustParser.RARROW, 0); } - public TerminalNode FATARROW() { return getToken(RustParser.FATARROW, 0); } - public TerminalNode POUND() { return getToken(RustParser.POUND, 0); } - public MacroPunctuationTokenContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_macroPunctuationToken; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitMacroPunctuationToken(this); - else return visitor.visitChildren(this); - } - } - - public final MacroPunctuationTokenContext macroPunctuationToken() throws RecognitionException { - MacroPunctuationTokenContext _localctx = new MacroPunctuationTokenContext(_ctx, getState()); - enterRule(_localctx, 388, RULE_macroPunctuationToken); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2469); - _la = _input.LA(1); - if ( !((((_la - 81)) & ~0x3f) == 0 && ((1L << (_la - 81)) & 1099511627773L) != 0) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ShlContext extends ParserRuleContext { - public List LT() { return getTokens(RustParser.LT); } - public TerminalNode LT(int i) { - return getToken(RustParser.LT, i); - } - public ShlContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_shl; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitShl(this); - else return visitor.visitChildren(this); - } - } - - public final ShlContext shl() throws RecognitionException { - ShlContext _localctx = new ShlContext(_ctx, getState()); - enterRule(_localctx, 390, RULE_shl); - try { - enterOuterAlt(_localctx, 1); - { - setState(2471); - match(LT); - setState(2472); - if (!(this.next('<'))) throw new FailedPredicateException(this, "this.next('<')"); - setState(2473); - match(LT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - @SuppressWarnings("CheckReturnValue") - public static class ShrContext extends ParserRuleContext { - public List GT() { return getTokens(RustParser.GT); } - public TerminalNode GT(int i) { - return getToken(RustParser.GT, i); - } - public ShrContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_shr; } - @Override - public T accept(ParseTreeVisitor visitor) { - if ( visitor instanceof RustParserVisitor ) return ((RustParserVisitor)visitor).visitShr(this); - else return visitor.visitChildren(this); - } - } - - public final ShrContext shr() throws RecognitionException { - ShrContext _localctx = new ShrContext(_ctx, getState()); - enterRule(_localctx, 392, RULE_shr); - try { - enterOuterAlt(_localctx, 1); - { - setState(2475); - match(GT); - setState(2476); - if (!(this.next('>'))) throw new FailedPredicateException(this, "this.next('>')"); - setState(2477); - match(GT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 77: - return expression_sempred((ExpressionContext)_localctx, predIndex); - case 195: - return shl_sempred((ShlContext)_localctx, predIndex); - case 196: - return shr_sempred((ShrContext)_localctx, predIndex); - } - return true; - } - private boolean expression_sempred(ExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 0: - return precpred(_ctx, 26); - case 1: - return precpred(_ctx, 25); - case 2: - return precpred(_ctx, 24); - case 3: - return precpred(_ctx, 23); - case 4: - return precpred(_ctx, 22); - case 5: - return precpred(_ctx, 21); - case 6: - return precpred(_ctx, 20); - case 7: - return precpred(_ctx, 19); - case 8: - return precpred(_ctx, 18); - case 9: - return precpred(_ctx, 14); - case 10: - return precpred(_ctx, 13); - case 11: - return precpred(_ctx, 12); - case 12: - return precpred(_ctx, 37); - case 13: - return precpred(_ctx, 36); - case 14: - return precpred(_ctx, 35); - case 15: - return precpred(_ctx, 34); - case 16: - return precpred(_ctx, 33); - case 17: - return precpred(_ctx, 32); - case 18: - return precpred(_ctx, 31); - case 19: - return precpred(_ctx, 27); - case 20: - return precpred(_ctx, 17); - } - return true; - } - private boolean shl_sempred(ShlContext _localctx, int predIndex) { - switch (predIndex) { - case 21: - return this.next('<'); - } - return true; - } - private boolean shr_sempred(ShrContext _localctx, int predIndex) { - switch (predIndex) { - case 22: - return this.next('>'); - } - return true; - } - - private static final String _serializedATNSegment0 = - "\u0004\u0001\u0083\u09b0\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001"+ - "\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004"+ - "\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007"+ - "\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b"+ - "\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007"+ - "\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007"+ - "\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007"+ - "\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007"+ - "\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007"+ - "\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007"+ - "\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007"+ - "\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007"+ - "\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007"+ - ",\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u0007"+ - "1\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u0007"+ - "6\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007"+ - ";\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007"+ - "@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007"+ - "E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007"+ - "J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007"+ - "O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007"+ - "T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007"+ - "Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007"+ - "^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007"+ - "c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007"+ - "h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007"+ - "m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007q\u0002r\u0007"+ - "r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007v\u0002w\u0007"+ - "w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007{\u0002|\u0007"+ - "|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002\u0080\u0007"+ - "\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002\u0083\u0007"+ - "\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002\u0086\u0007"+ - "\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002\u0089\u0007"+ - "\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b\u0002\u008c\u0007"+ - "\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e\u0002\u008f\u0007"+ - "\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091\u0002\u0092\u0007"+ - "\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094\u0002\u0095\u0007"+ - "\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097\u0002\u0098\u0007"+ - "\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a\u0002\u009b\u0007"+ - "\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d\u0002\u009e\u0007"+ - "\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0\u0002\u00a1\u0007"+ - "\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3\u0002\u00a4\u0007"+ - "\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6\u0002\u00a7\u0007"+ - "\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9\u0002\u00aa\u0007"+ - "\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac\u0002\u00ad\u0007"+ - "\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af\u0002\u00b0\u0007"+ - "\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2\u0002\u00b3\u0007"+ - "\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5\u0002\u00b6\u0007"+ - "\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8\u0002\u00b9\u0007"+ - "\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb\u0002\u00bc\u0007"+ - "\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be\u0002\u00bf\u0007"+ - "\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1\u0002\u00c2\u0007"+ - "\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4\u0001\u0000\u0005"+ - "\u0000\u018c\b\u0000\n\u0000\f\u0000\u018f\t\u0000\u0001\u0000\u0005\u0000"+ - "\u0192\b\u0000\n\u0000\f\u0000\u0195\t\u0000\u0001\u0000\u0001\u0000\u0001"+ - "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0005"+ - "\u0002\u019f\b\u0002\n\u0002\f\u0002\u01a2\t\u0002\u0001\u0002\u0001\u0002"+ - "\u0001\u0002\u0005\u0002\u01a7\b\u0002\n\u0002\f\u0002\u01aa\t\u0002\u0001"+ - "\u0002\u0001\u0002\u0001\u0002\u0005\u0002\u01af\b\u0002\n\u0002\f\u0002"+ - "\u01b2\t\u0002\u0001\u0002\u0003\u0002\u01b5\b\u0002\u0001\u0003\u0004"+ - "\u0003\u01b8\b\u0003\u000b\u0003\f\u0003\u01b9\u0001\u0003\u0003\u0003"+ - "\u01bd\b\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ - "\u0003\u0004\u01c4\b\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005"+ - "\u0005\u0005\u01ca\b\u0005\n\u0005\f\u0005\u01cd\t\u0005\u0001\u0005\u0001"+ - "\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0005"+ - "\u0005\u01d6\b\u0005\n\u0005\f\u0005\u01d9\t\u0005\u0001\u0005\u0001\u0005"+ - "\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0005\u0005"+ - "\u01e2\b\u0005\n\u0005\f\u0005\u01e5\t\u0005\u0001\u0005\u0001\u0005\u0003"+ - "\u0005\u01e9\b\u0005\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001"+ - "\u0006\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001"+ - "\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001"+ - "\u0007\u0001\u0007\u0001\u0007\u0003\u0007\u01fe\b\u0007\u0001\b\u0001"+ - "\b\u0001\b\u0005\b\u0203\b\b\n\b\f\b\u0206\t\b\u0001\b\u0003\b\u0209\b"+ - "\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001\n\u0001\n\u0005\n\u0211\b\n\n"+ - "\n\f\n\u0214\t\n\u0001\n\u0001\n\u0001\n\u0005\n\u0219\b\n\n\n\f\n\u021c"+ - "\t\n\u0001\n\u0001\n\u0001\n\u0005\n\u0221\b\n\n\n\f\n\u0224\t\n\u0001"+ - "\n\u0003\n\u0227\b\n\u0001\u000b\u0004\u000b\u022a\b\u000b\u000b\u000b"+ - "\f\u000b\u022b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0003\u000b"+ - "\u0232\b\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ - "\u0004\u000b\u0239\b\u000b\u000b\u000b\f\u000b\u023a\u0001\u000b\u0001"+ - "\u000b\u0003\u000b\u023f\b\u000b\u0001\u000b\u0001\u000b\u0003\u000b\u0243"+ - "\b\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0003\f\u0249\b\f\u0001\r\u0001"+ - "\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0003\u000e\u0251\b"+ - "\u000e\u0001\u000f\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0011\u0005"+ - "\u0011\u0258\b\u0011\n\u0011\f\u0011\u025b\t\u0011\u0001\u0011\u0001\u0011"+ - "\u0003\u0011\u025f\b\u0011\u0001\u0012\u0003\u0012\u0262\b\u0012\u0001"+ - "\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001"+ - "\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001"+ - "\u0012\u0003\u0012\u0271\b\u0012\u0001\u0013\u0001\u0013\u0003\u0013\u0275"+ - "\b\u0013\u0001\u0014\u0003\u0014\u0278\b\u0014\u0001\u0014\u0001\u0014"+ - "\u0001\u0014\u0001\u0014\u0001\u0014\u0005\u0014\u027f\b\u0014\n\u0014"+ - "\f\u0014\u0282\t\u0014\u0001\u0014\u0005\u0014\u0285\b\u0014\n\u0014\f"+ - "\u0014\u0288\t\u0014\u0001\u0014\u0003\u0014\u028b\b\u0014\u0001\u0015"+ - "\u0001\u0015\u0001\u0015\u0001\u0015\u0003\u0015\u0291\b\u0015\u0001\u0015"+ - "\u0001\u0015\u0001\u0016\u0001\u0016\u0003\u0016\u0297\b\u0016\u0001\u0017"+ - "\u0001\u0017\u0001\u0017\u0003\u0017\u029c\b\u0017\u0001\u0018\u0001\u0018"+ - "\u0001\u0018\u0001\u0018\u0001\u0019\u0003\u0019\u02a3\b\u0019\u0001\u0019"+ - "\u0003\u0019\u02a6\b\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ - "\u0001\u0019\u0005\u0019\u02ad\b\u0019\n\u0019\f\u0019\u02b0\t\u0019\u0001"+ - "\u0019\u0003\u0019\u02b3\b\u0019\u0003\u0019\u02b5\b\u0019\u0001\u0019"+ - "\u0003\u0019\u02b8\b\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+ - "\u0003\u0019\u02be\b\u0019\u0003\u0019\u02c0\b\u0019\u0003\u0019\u02c2"+ - "\b\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u02c8"+ - "\b\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u02cc\b\u001a\u0001\u001a"+ - "\u0001\u001a\u0003\u001a\u02d0\b\u001a\u0001\u001a\u0003\u001a\u02d3\b"+ - "\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u02d7\b\u001a\u0001\u001b\u0003"+ - "\u001b\u02da\b\u001b\u0001\u001b\u0003\u001b\u02dd\b\u001b\u0001\u001b"+ - "\u0003\u001b\u02e0\b\u001b\u0001\u001b\u0001\u001b\u0003\u001b\u02e4\b"+ - "\u001b\u0003\u001b\u02e6\b\u001b\u0001\u001c\u0001\u001c\u0001\u001d\u0001"+ - "\u001d\u0003\u001d\u02ec\b\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0003"+ - "\u001d\u02f1\b\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0005\u001d\u02f6"+ - "\b\u001d\n\u001d\f\u001d\u02f9\t\u001d\u0001\u001d\u0003\u001d\u02fc\b"+ - "\u001d\u0003\u001d\u02fe\b\u001d\u0001\u001e\u0005\u001e\u0301\b\u001e"+ - "\n\u001e\f\u001e\u0304\t\u001e\u0001\u001e\u0001\u001e\u0003\u001e\u0308"+ - "\b\u001e\u0001\u001f\u0001\u001f\u0003\u001f\u030c\b\u001f\u0003\u001f"+ - "\u030e\b\u001f\u0001\u001f\u0003\u001f\u0311\b\u001f\u0001\u001f\u0001"+ - "\u001f\u0001 \u0003 \u0316\b \u0001 \u0001 \u0001 \u0001 \u0001!\u0005"+ - "!\u031d\b!\n!\f!\u0320\t!\u0001!\u0001!\u0001!\u0003!\u0325\b!\u0001\""+ - "\u0001\"\u0001\"\u0001\"\u0003\"\u032b\b\"\u0001#\u0001#\u0001#\u0001"+ - "$\u0001$\u0001$\u0003$\u0333\b$\u0001$\u0003$\u0336\b$\u0001$\u0001$\u0003"+ - "$\u033a\b$\u0001$\u0001$\u0001%\u0001%\u0003%\u0340\b%\u0001&\u0001&\u0001"+ - "&\u0003&\u0345\b&\u0001&\u0003&\u0348\b&\u0001&\u0001&\u0003&\u034c\b"+ - "&\u0001&\u0001&\u0003&\u0350\b&\u0001\'\u0001\'\u0001\'\u0003\'\u0355"+ - "\b\'\u0001\'\u0001\'\u0003\'\u0359\b\'\u0001\'\u0001\'\u0003\'\u035d\b"+ - "\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0005(\u0364\b(\n(\f(\u0367\t"+ - "(\u0001(\u0003(\u036a\b(\u0001)\u0005)\u036d\b)\n)\f)\u0370\t)\u0001)"+ - "\u0003)\u0373\b)\u0001)\u0001)\u0001)\u0001)\u0001*\u0001*\u0001*\u0005"+ - "*\u037c\b*\n*\f*\u037f\t*\u0001*\u0003*\u0382\b*\u0001+\u0005+\u0385\b"+ - "+\n+\f+\u0388\t+\u0001+\u0003+\u038b\b+\u0001+\u0001+\u0001,\u0001,\u0001"+ - ",\u0003,\u0392\b,\u0001,\u0003,\u0395\b,\u0001,\u0001,\u0003,\u0399\b"+ - ",\u0001,\u0001,\u0001-\u0001-\u0001-\u0005-\u03a0\b-\n-\f-\u03a3\t-\u0001"+ - "-\u0003-\u03a6\b-\u0001.\u0005.\u03a9\b.\n.\f.\u03ac\t.\u0001.\u0003."+ - "\u03af\b.\u0001.\u0001.\u0001.\u0001.\u0003.\u03b5\b.\u0001/\u0001/\u0003"+ - "/\u03b9\b/\u0001/\u0001/\u00010\u00010\u00030\u03bf\b0\u00010\u00010\u0001"+ - "1\u00011\u00011\u00012\u00012\u00012\u00032\u03c9\b2\u00012\u00032\u03cc"+ - "\b2\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00033\u03d5\b3\u0001"+ - "3\u00013\u00013\u00013\u00033\u03db\b3\u00013\u00013\u00014\u00014\u0003"+ - "4\u03e1\b4\u00014\u00014\u00014\u00014\u00014\u00034\u03e8\b4\u00014\u0001"+ - "4\u00015\u00035\u03ed\b5\u00015\u00015\u00015\u00035\u03f2\b5\u00015\u0001"+ - "5\u00035\u03f6\b5\u00035\u03f8\b5\u00015\u00035\u03fb\b5\u00015\u0001"+ - "5\u00055\u03ff\b5\n5\f5\u0402\t5\u00015\u00055\u0405\b5\n5\f5\u0408\t"+ - "5\u00015\u00015\u00016\u00016\u00036\u040e\b6\u00017\u00017\u00037\u0412"+ - "\b7\u00017\u00017\u00037\u0416\b7\u00017\u00017\u00057\u041a\b7\n7\f7"+ - "\u041d\t7\u00017\u00057\u0420\b7\n7\f7\u0423\t7\u00017\u00017\u00018\u0003"+ - "8\u0428\b8\u00018\u00018\u00038\u042c\b8\u00018\u00038\u042f\b8\u0001"+ - "8\u00018\u00018\u00018\u00038\u0435\b8\u00018\u00018\u00058\u0439\b8\n"+ - "8\f8\u043c\t8\u00018\u00058\u043f\b8\n8\f8\u0442\t8\u00018\u00018\u0001"+ - "9\u00039\u0447\b9\u00019\u00019\u00039\u044b\b9\u00019\u00019\u00059\u044f"+ - "\b9\n9\f9\u0452\t9\u00019\u00059\u0455\b9\n9\f9\u0458\t9\u00019\u0001"+ - "9\u0001:\u0005:\u045d\b:\n:\f:\u0460\t:\u0001:\u0001:\u0003:\u0464\b:"+ - "\u0001:\u0001:\u0003:\u0468\b:\u0003:\u046a\b:\u0001;\u0001;\u0001;\u0001"+ - ";\u0005;\u0470\b;\n;\f;\u0473\t;\u0001;\u0001;\u0003;\u0477\b;\u0003;"+ - "\u0479\b;\u0001;\u0001;\u0001<\u0005<\u047e\b<\n<\f<\u0481\t<\u0001<\u0001"+ - "<\u0001<\u0003<\u0486\b<\u0001=\u0003=\u0489\b=\u0001=\u0001=\u0001=\u0003"+ - "=\u048e\b=\u0001>\u0003>\u0491\b>\u0001>\u0001>\u0001>\u0003>\u0496\b"+ - ">\u0003>\u0498\b>\u0001>\u0001>\u0003>\u049c\b>\u0001?\u0001?\u0001?\u0001"+ - "?\u0001?\u0001@\u0001@\u0001@\u0001@\u0005@\u04a7\b@\n@\f@\u04aa\t@\u0001"+ - "@\u0003@\u04ad\b@\u0001A\u0001A\u0003A\u04b1\bA\u0001B\u0001B\u0001B\u0001"+ - "B\u0001C\u0003C\u04b8\bC\u0001C\u0001C\u0001C\u0003C\u04bd\bC\u0001D\u0001"+ - "D\u0001D\u0001E\u0005E\u04c3\bE\nE\fE\u04c6\tE\u0001E\u0001E\u0003E\u04ca"+ - "\bE\u0001E\u0001E\u0001E\u0003E\u04cf\bE\u0003E\u04d1\bE\u0001F\u0001"+ - "F\u0001F\u0001F\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ - "H\u0001H\u0003H\u04e0\bH\u0001I\u0001I\u0001I\u0003I\u04e5\bI\u0001J\u0001"+ - "J\u0001J\u0001J\u0001J\u0003J\u04ec\bJ\u0001K\u0005K\u04ef\bK\nK\fK\u04f2"+ - "\tK\u0001K\u0001K\u0001K\u0001K\u0003K\u04f8\bK\u0001K\u0001K\u0003K\u04fc"+ - "\bK\u0001K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001L\u0003L\u0505\bL\u0003"+ - "L\u0507\bL\u0001M\u0001M\u0004M\u050b\bM\u000bM\fM\u050c\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0001M\u0003M\u0515\bM\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0003M\u051e\bM\u0001M\u0001M\u0001M\u0001M\u0003"+ - "M\u0524\bM\u0001M\u0003M\u0527\bM\u0001M\u0001M\u0003M\u052b\bM\u0001"+ - "M\u0003M\u052e\bM\u0001M\u0001M\u0003M\u0532\bM\u0001M\u0001M\u0005M\u0536"+ - "\bM\nM\fM\u0539\tM\u0001M\u0001M\u0001M\u0001M\u0001M\u0005M\u0540\bM"+ - "\nM\fM\u0543\tM\u0001M\u0003M\u0546\bM\u0001M\u0001M\u0001M\u0005M\u054b"+ - "\bM\nM\fM\u054e\tM\u0001M\u0003M\u0551\bM\u0001M\u0001M\u0001M\u0001M"+ - "\u0001M\u0001M\u0003M\u0559\bM\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0003M\u0587"+ - "\bM\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0001M\u0003M\u0597\bM\u0001M\u0001M\u0001M\u0001"+ - "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ - "M\u0003M\u05a7\bM\u0005M\u05a9\bM\nM\fM\u05ac\tM\u0001N\u0001N\u0001N"+ - "\u0001N\u0003N\u05b2\bN\u0001O\u0001O\u0001P\u0001P\u0001Q\u0004Q\u05b9"+ - "\bQ\u000bQ\fQ\u05ba\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001"+ - "Q\u0001Q\u0003Q\u05c6\bQ\u0001R\u0001R\u0001S\u0001S\u0003S\u05cc\bS\u0001"+ - "T\u0001T\u0005T\u05d0\bT\nT\fT\u05d3\tT\u0001T\u0003T\u05d6\bT\u0001T"+ - "\u0001T\u0001U\u0004U\u05db\bU\u000bU\fU\u05dc\u0001U\u0003U\u05e0\bU"+ - "\u0001U\u0003U\u05e3\bU\u0001V\u0001V\u0003V\u05e7\bV\u0001V\u0001V\u0001"+ - "W\u0001W\u0001W\u0001X\u0001X\u0001X\u0005X\u05f1\bX\nX\fX\u05f4\tX\u0001"+ - "X\u0003X\u05f7\bX\u0001X\u0001X\u0001X\u0001X\u0003X\u05fd\bX\u0001Y\u0001"+ - "Y\u0001Y\u0004Y\u0602\bY\u000bY\fY\u0603\u0001Y\u0003Y\u0607\bY\u0001"+ - "Z\u0001Z\u0001[\u0001[\u0001[\u0003[\u060e\b[\u0001\\\u0001\\\u0001\\"+ - "\u0005\\\u0613\b\\\n\\\f\\\u0616\t\\\u0001\\\u0001\\\u0003\\\u061a\b\\"+ - "\u0001\\\u0001\\\u0001]\u0001]\u0001]\u0005]\u0621\b]\n]\f]\u0624\t]\u0001"+ - "]\u0001]\u0001]\u0003]\u0629\b]\u0003]\u062b\b]\u0001^\u0005^\u062e\b"+ - "^\n^\f^\u0631\t^\u0001^\u0001^\u0001^\u0003^\u0636\b^\u0001^\u0001^\u0001"+ - "^\u0003^\u063b\b^\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0005`\u0643"+ - "\b`\n`\f`\u0646\t`\u0001`\u0001`\u0001`\u0005`\u064b\b`\n`\f`\u064e\t"+ - "`\u0001`\u0003`\u0651\b`\u0003`\u0653\b`\u0001`\u0001`\u0001a\u0001a\u0001"+ - "b\u0001b\u0001b\u0003b\u065c\bb\u0001c\u0001c\u0001c\u0003c\u0661\bc\u0001"+ - "c\u0001c\u0001d\u0001d\u0001d\u0005d\u0668\bd\nd\fd\u066b\td\u0001d\u0003"+ - "d\u066e\bd\u0001e\u0001e\u0001e\u0003e\u0673\be\u0001e\u0001e\u0001e\u0003"+ - "e\u0678\be\u0001f\u0001f\u0001f\u0001f\u0001f\u0005f\u067f\bf\nf\ff\u0682"+ - "\tf\u0001f\u0003f\u0685\bf\u0003f\u0687\bf\u0001f\u0001f\u0001g\u0001"+ - "g\u0001h\u0001h\u0001h\u0005h\u0690\bh\nh\fh\u0693\th\u0001h\u0003h\u0696"+ - "\bh\u0001i\u0003i\u0699\bi\u0001i\u0001i\u0001i\u0003i\u069e\bi\u0001"+ - "i\u0003i\u06a1\bi\u0001i\u0001i\u0001i\u0001i\u0001i\u0003i\u06a8\bi\u0001"+ - "j\u0001j\u0001j\u0005j\u06ad\bj\nj\fj\u06b0\tj\u0001j\u0003j\u06b3\bj"+ - "\u0001k\u0005k\u06b6\bk\nk\fk\u06b9\tk\u0001k\u0001k\u0001k\u0003k\u06be"+ - "\bk\u0001l\u0003l\u06c1\bl\u0001l\u0001l\u0001l\u0001l\u0003l\u06c7\b"+ - "l\u0001m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0001o\u0001o\u0001"+ - "o\u0001o\u0001o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001p\u0001p\u0001"+ - "p\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001"+ - "r\u0003r\u06e7\br\u0003r\u06e9\br\u0001s\u0001s\u0001s\u0001s\u0001s\u0001"+ - "s\u0001s\u0001s\u0001s\u0001s\u0003s\u06f5\bs\u0003s\u06f7\bs\u0001t\u0001"+ - "t\u0001t\u0001t\u0005t\u06fd\bt\nt\ft\u0700\tt\u0001t\u0003t\u0703\bt"+ - "\u0001t\u0001t\u0001u\u0001u\u0001u\u0001u\u0005u\u070b\bu\nu\fu\u070e"+ - "\tu\u0001u\u0001u\u0001u\u0001u\u0003u\u0714\bu\u0001v\u0001v\u0001v\u0001"+ - "v\u0001v\u0003v\u071b\bv\u0003v\u071d\bv\u0001w\u0005w\u0720\bw\nw\fw"+ - "\u0723\tw\u0001w\u0001w\u0003w\u0727\bw\u0001x\u0001x\u0001x\u0001y\u0003"+ - "y\u072d\by\u0001y\u0001y\u0001y\u0005y\u0732\by\ny\fy\u0735\ty\u0001z"+ - "\u0001z\u0003z\u0739\bz\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001"+ - "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0003{\u0747\b{\u0001|\u0001|\u0001"+ - "|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001|\u0003|\u0752\b|\u0001|\u0001"+ - "|\u0003|\u0756\b|\u0001|\u0003|\u0759\b|\u0001}\u0003}\u075c\b}\u0001"+ - "}\u0003}\u075f\b}\u0001}\u0001}\u0001}\u0003}\u0764\b}\u0001~\u0001~\u0001"+ - "\u007f\u0001\u007f\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001"+ - "\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001"+ - "\u0080\u0003\u0080\u0775\b\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0003"+ - "\u0081\u077a\b\u0081\u0001\u0081\u0001\u0081\u0003\u0081\u077e\b\u0081"+ - "\u0001\u0081\u0001\u0081\u0003\u0081\u0782\b\u0081\u0001\u0082\u0001\u0082"+ - "\u0003\u0082\u0786\b\u0082\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083"+ - "\u0001\u0083\u0003\u0083\u078d\b\u0083\u0001\u0083\u0001\u0083\u0001\u0084"+ - "\u0001\u0084\u0001\u0084\u0003\u0084\u0794\b\u0084\u0003\u0084\u0796\b"+ - "\u0084\u0001\u0084\u0003\u0084\u0799\b\u0084\u0001\u0085\u0001\u0085\u0001"+ - "\u0085\u0005\u0085\u079e\b\u0085\n\u0085\f\u0085\u07a1\t\u0085\u0001\u0086"+ - "\u0005\u0086\u07a4\b\u0086\n\u0086\f\u0086\u07a7\t\u0086\u0001\u0086\u0001"+ - "\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001"+ - "\u0086\u0001\u0086\u0003\u0086\u07b2\b\u0086\u0001\u0086\u0003\u0086\u07b5"+ - "\b\u0086\u0001\u0086\u0003\u0086\u07b8\b\u0086\u0001\u0087\u0005\u0087"+ - "\u07bb\b\u0087\n\u0087\f\u0087\u07be\t\u0087\u0001\u0087\u0001\u0087\u0001"+ - "\u0088\u0001\u0088\u0001\u0088\u0003\u0088\u07c5\b\u0088\u0001\u0088\u0001"+ - "\u0088\u0001\u0089\u0001\u0089\u0001\u0089\u0005\u0089\u07cc\b\u0089\n"+ - "\u0089\f\u0089\u07cf\t\u0089\u0001\u0089\u0003\u0089\u07d2\b\u0089\u0001"+ - "\u008a\u0001\u008a\u0003\u008a\u07d6\b\u008a\u0001\u008a\u0001\u008a\u0001"+ - "\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001"+ - "\u008b\u0004\u008b\u07e1\b\u008b\u000b\u008b\f\u008b\u07e2\u0001\u008b"+ - "\u0003\u008b\u07e6\b\u008b\u0003\u008b\u07e8\b\u008b\u0001\u008c\u0001"+ - "\u008c\u0001\u008c\u0001\u008c\u0001\u008d\u0001\u008d\u0003\u008d\u07f0"+ - "\b\u008d\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e\u0005"+ - "\u008e\u07f7\b\u008e\n\u008e\f\u008e\u07fa\t\u008e\u0001\u008e\u0003\u008e"+ - "\u07fd\b\u008e\u0001\u008f\u0001\u008f\u0003\u008f\u0801\b\u008f\u0001"+ - "\u0090\u0001\u0090\u0001\u0090\u0003\u0090\u0806\b\u0090\u0001\u0091\u0001"+ - "\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001"+ - "\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001"+ - "\u0091\u0003\u0091\u0816\b\u0091\u0001\u0092\u0001\u0092\u0001\u0092\u0001"+ - "\u0092\u0001\u0093\u0001\u0093\u0001\u0094\u0001\u0094\u0001\u0094\u0001"+ - "\u0094\u0004\u0094\u0822\b\u0094\u000b\u0094\f\u0094\u0823\u0001\u0094"+ - "\u0003\u0094\u0827\b\u0094\u0003\u0094\u0829\b\u0094\u0001\u0094\u0001"+ - "\u0094\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001"+ - "\u0095\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001"+ - "\u0097\u0003\u0097\u0839\b\u0097\u0001\u0097\u0003\u0097\u083c\b\u0097"+ - "\u0001\u0097\u0001\u0097\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0098"+ - "\u0001\u0099\u0003\u0099\u0845\b\u0099\u0001\u0099\u0001\u0099\u0001\u0099"+ - "\u0001\u0099\u0003\u0099\u084b\b\u0099\u0001\u0099\u0001\u0099\u0003\u0099"+ - "\u084f\b\u0099\u0001\u009a\u0003\u009a\u0852\b\u009a\u0001\u009a\u0001"+ - "\u009a\u0003\u009a\u0856\b\u009a\u0003\u009a\u0858\b\u009a\u0001\u009b"+ - "\u0001\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0003\u009c\u085f\b\u009c"+ - "\u0001\u009d\u0001\u009d\u0001\u009d\u0005\u009d\u0864\b\u009d\n\u009d"+ - "\f\u009d\u0867\t\u009d\u0001\u009d\u0003\u009d\u086a\b\u009d\u0001\u009e"+ - "\u0005\u009e\u086d\b\u009e\n\u009e\f\u009e\u0870\t\u009e\u0001\u009e\u0001"+ - "\u009e\u0003\u009e\u0874\b\u009e\u0001\u009e\u0003\u009e\u0877\b\u009e"+ - "\u0001\u009e\u0001\u009e\u0001\u009f\u0001\u009f\u0001\u009f\u0005\u009f"+ - "\u087e\b\u009f\n\u009f\f\u009f\u0881\t\u009f\u0001\u009f\u0001\u009f\u0001"+ - "\u009f\u0005\u009f\u0886\b\u009f\n\u009f\f\u009f\u0889\t\u009f\u0001\u009f"+ - "\u0001\u009f\u0001\u00a0\u0003\u00a0\u088e\b\u00a0\u0001\u00a0\u0001\u00a0"+ - "\u0001\u00a1\u0003\u00a1\u0893\b\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a2"+ - "\u0001\u00a2\u0001\u00a2\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a4"+ - "\u0001\u00a4\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0005\u00a5\u08a2\b\u00a5"+ - "\n\u00a5\f\u00a5\u08a5\t\u00a5\u0001\u00a5\u0003\u00a5\u08a8\b\u00a5\u0001"+ - "\u00a6\u0001\u00a6\u0003\u00a6\u08ac\b\u00a6\u0001\u00a7\u0003\u00a7\u08af"+ - "\b\u00a7\u0001\u00a7\u0003\u00a7\u08b2\b\u00a7\u0001\u00a7\u0001\u00a7"+ - "\u0001\u00a7\u0003\u00a7\u08b7\b\u00a7\u0001\u00a7\u0003\u00a7\u08ba\b"+ - "\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0003\u00a7\u08bf\b\u00a7\u0001"+ - "\u00a8\u0001\u00a8\u0001\u00a8\u0005\u00a8\u08c4\b\u00a8\n\u00a8\f\u00a8"+ - "\u08c7\t\u00a8\u0001\u00a8\u0003\u00a8\u08ca\b\u00a8\u0001\u00a9\u0001"+ - "\u00a9\u0001\u00aa\u0003\u00aa\u08cf\b\u00aa\u0001\u00aa\u0001\u00aa\u0001"+ - "\u00aa\u0005\u00aa\u08d4\b\u00aa\n\u00aa\f\u00aa\u08d7\t\u00aa\u0001\u00ab"+ - "\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0003\u00ab\u08de\b\u00ab"+ - "\u0001\u00ac\u0003\u00ac\u08e1\b\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+ - "\u0005\u00ac\u08e6\b\u00ac\n\u00ac\f\u00ac\u08e9\t\u00ac\u0001\u00ad\u0001"+ - "\u00ad\u0001\u00ad\u0003\u00ad\u08ee\b\u00ad\u0001\u00ae\u0001\u00ae\u0001"+ - "\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0003\u00ae\u08f6\b\u00ae\u0001"+ - "\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0003"+ - "\u00af\u08fe\b\u00af\u0001\u00af\u0001\u00af\u0003\u00af\u0902\b\u00af"+ - "\u0001\u00af\u0003\u00af\u0905\b\u00af\u0001\u00af\u0001\u00af\u0001\u00af"+ - "\u0001\u00af\u0001\u00af\u0001\u00af\u0003\u00af\u090d\b\u00af\u0001\u00af"+ - "\u0003\u00af\u0910\b\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af"+ - "\u0001\u00af\u0001\u00af\u0005\u00af\u0918\b\u00af\n\u00af\f\u00af\u091b"+ - "\t\u00af\u0001\u00af\u0001\u00af\u0003\u00af\u091f\b\u00af\u0001\u00af"+ - "\u0001\u00af\u0003\u00af\u0923\b\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b0"+ - "\u0001\u00b0\u0003\u00b0\u0929\b\u00b0\u0001\u00b1\u0001\u00b1\u0003\u00b1"+ - "\u092d\b\u00b1\u0001\u00b1\u0001\u00b1\u0003\u00b1\u0931\b\u00b1\u0001"+ - "\u00b2\u0001\u00b2\u0001\u00b2\u0005\u00b2\u0936\b\u00b2\n\u00b2\f\u00b2"+ - "\u0939\t\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0005\u00b3\u093e\b"+ - "\u00b3\n\u00b3\f\u00b3\u0941\t\u00b3\u0001\u00b4\u0001\u00b4\u0001\u00b4"+ - "\u0005\u00b4\u0946\b\u00b4\n\u00b4\f\u00b4\u0949\t\u00b4\u0001\u00b5\u0001"+ - "\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0004"+ - "\u00b6\u0952\b\u00b6\u000b\u00b6\f\u00b6\u0953\u0001\u00b7\u0001\u00b7"+ - "\u0001\u00b7\u0001\u00b7\u0003\u00b7\u095a\b\u00b7\u0001\u00b7\u0001\u00b7"+ - "\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0004\u00b8\u0961\b\u00b8\u000b\u00b8"+ - "\f\u00b8\u0962\u0001\u00b9\u0003\u00b9\u0966\b\u00b9\u0001\u00b9\u0001"+ - "\u00b9\u0001\u00b9\u0005\u00b9\u096b\b\u00b9\n\u00b9\f\u00b9\u096e\t\u00b9"+ - "\u0001\u00ba\u0001\u00ba\u0003\u00ba\u0972\b\u00ba\u0001\u00ba\u0001\u00ba"+ - "\u0003\u00ba\u0976\b\u00ba\u0001\u00bb\u0001\u00bb\u0003\u00bb\u097a\b"+ - "\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0003\u00bb\u097f\b\u00bb\u0001"+ - "\u00bc\u0001\u00bc\u0001\u00bc\u0005\u00bc\u0984\b\u00bc\n\u00bc\f\u00bc"+ - "\u0987\t\u00bc\u0001\u00bc\u0003\u00bc\u098a\b\u00bc\u0001\u00bd\u0001"+ - "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0003"+ - "\u00bd\u0993\b\u00bd\u0001\u00bd\u0003\u00bd\u0996\b\u00bd\u0001\u00be"+ - "\u0001\u00be\u0001\u00bf\u0001\u00bf\u0001\u00c0\u0001\u00c0\u0001\u00c0"+ - "\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0003\u00c0\u09a2\b\u00c0\u0001\u00c1"+ - "\u0001\u00c1\u0001\u00c2\u0001\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3"+ - "\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c4"+ - "\u0000\u0001\u009a\u00c5\u0000\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012"+ - "\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\"+ - "^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090"+ - "\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8"+ - "\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0"+ - "\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8"+ - "\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0"+ - "\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108"+ - "\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120"+ - "\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138"+ - "\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150"+ - "\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168"+ - "\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180"+ - "\u0182\u0184\u0186\u0188\u0000\u000e\u0003\u0000PPRRzz\u0001\u0000DE\u0002"+ - "\u0000WWYY\u0002\u0000QQVV\u0001\u0000RT\u0001\u0000PQ\u0001\u0000fk\u0001"+ - "\u0000[d\u0004\u0000\t\t\u001e\u001eCINN\u0002\u0000\u0003\u0003\u0014"+ - "\u0014\u0003\u00005577OO\u0002\u0000669:\u0001\u0000\u00015\u0002\u0000"+ - "QQSx\u0acc\u0000\u018d\u0001\u0000\u0000\u0000\u0002\u0198\u0001\u0000"+ - "\u0000\u0000\u0004\u01b4\u0001\u0000\u0000\u0000\u0006\u01bc\u0001\u0000"+ - "\u0000\u0000\b\u01c3\u0001\u0000\u0000\u0000\n\u01e8\u0001\u0000\u0000"+ - "\u0000\f\u01ea\u0001\u0000\u0000\u0000\u000e\u01fd\u0001\u0000\u0000\u0000"+ - "\u0010\u01ff\u0001\u0000\u0000\u0000\u0012\u020a\u0001\u0000\u0000\u0000"+ - "\u0014\u0226\u0001\u0000\u0000\u0000\u0016\u0242\u0001\u0000\u0000\u0000"+ - "\u0018\u0248\u0001\u0000\u0000\u0000\u001a\u024a\u0001\u0000\u0000\u0000"+ - "\u001c\u0250\u0001\u0000\u0000\u0000\u001e\u0252\u0001\u0000\u0000\u0000"+ - " \u0254\u0001\u0000\u0000\u0000\"\u0259\u0001\u0000\u0000\u0000$\u0261"+ - "\u0001\u0000\u0000\u0000&\u0274\u0001\u0000\u0000\u0000(\u0277\u0001\u0000"+ - "\u0000\u0000*\u028c\u0001\u0000\u0000\u0000,\u0296\u0001\u0000\u0000\u0000"+ - ".\u0298\u0001\u0000\u0000\u00000\u029d\u0001\u0000\u0000\u00002\u02c1"+ - "\u0001\u0000\u0000\u00004\u02c3\u0001\u0000\u0000\u00006\u02d9\u0001\u0000"+ - "\u0000\u00008\u02e7\u0001\u0000\u0000\u0000:\u02fd\u0001\u0000\u0000\u0000"+ - "<\u0302\u0001\u0000\u0000\u0000>\u030d\u0001\u0000\u0000\u0000@\u0315"+ - "\u0001\u0000\u0000\u0000B\u031e\u0001\u0000\u0000\u0000D\u0326\u0001\u0000"+ - "\u0000\u0000F\u032c\u0001\u0000\u0000\u0000H\u032f\u0001\u0000\u0000\u0000"+ - "J\u033f\u0001\u0000\u0000\u0000L\u0341\u0001\u0000\u0000\u0000N\u0351"+ - "\u0001\u0000\u0000\u0000P\u0360\u0001\u0000\u0000\u0000R\u036e\u0001\u0000"+ - "\u0000\u0000T\u0378\u0001\u0000\u0000\u0000V\u0386\u0001\u0000\u0000\u0000"+ - "X\u038e\u0001\u0000\u0000\u0000Z\u039c\u0001\u0000\u0000\u0000\\\u03aa"+ - "\u0001\u0000\u0000\u0000^\u03b6\u0001\u0000\u0000\u0000`\u03bc\u0001\u0000"+ - "\u0000\u0000b\u03c2\u0001\u0000\u0000\u0000d\u03c5\u0001\u0000\u0000\u0000"+ - "f\u03d1\u0001\u0000\u0000\u0000h\u03de\u0001\u0000\u0000\u0000j\u03ec"+ - "\u0001\u0000\u0000\u0000l\u040d\u0001\u0000\u0000\u0000n\u040f\u0001\u0000"+ - "\u0000\u0000p\u0427\u0001\u0000\u0000\u0000r\u0446\u0001\u0000\u0000\u0000"+ - "t\u045e\u0001\u0000\u0000\u0000v\u046b\u0001\u0000\u0000\u0000x\u047f"+ - "\u0001\u0000\u0000\u0000z\u0488\u0001\u0000\u0000\u0000|\u0490\u0001\u0000"+ - "\u0000\u0000~\u049d\u0001\u0000\u0000\u0000\u0080\u04a2\u0001\u0000\u0000"+ - "\u0000\u0082\u04b0\u0001\u0000\u0000\u0000\u0084\u04b2\u0001\u0000\u0000"+ - "\u0000\u0086\u04b7\u0001\u0000\u0000\u0000\u0088\u04be\u0001\u0000\u0000"+ - "\u0000\u008a\u04c4\u0001\u0000\u0000\u0000\u008c\u04d2\u0001\u0000\u0000"+ - "\u0000\u008e\u04d8\u0001\u0000\u0000\u0000\u0090\u04dd\u0001\u0000\u0000"+ - "\u0000\u0092\u04e4\u0001\u0000\u0000\u0000\u0094\u04eb\u0001\u0000\u0000"+ - "\u0000\u0096\u04f0\u0001\u0000\u0000\u0000\u0098\u0506\u0001\u0000\u0000"+ - "\u0000\u009a\u0558\u0001\u0000\u0000\u0000\u009c\u05b1\u0001\u0000\u0000"+ - "\u0000\u009e\u05b3\u0001\u0000\u0000\u0000\u00a0\u05b5\u0001\u0000\u0000"+ - "\u0000\u00a2\u05c5\u0001\u0000\u0000\u0000\u00a4\u05c7\u0001\u0000\u0000"+ - "\u0000\u00a6\u05cb\u0001\u0000\u0000\u0000\u00a8\u05cd\u0001\u0000\u0000"+ - "\u0000\u00aa\u05e2\u0001\u0000\u0000\u0000\u00ac\u05e4\u0001\u0000\u0000"+ - "\u0000\u00ae\u05ea\u0001\u0000\u0000\u0000\u00b0\u05fc\u0001\u0000\u0000"+ - "\u0000\u00b2\u0601\u0001\u0000\u0000\u0000\u00b4\u0608\u0001\u0000\u0000"+ - "\u0000\u00b6\u060d\u0001\u0000\u0000\u0000\u00b8\u060f\u0001\u0000\u0000"+ - "\u0000\u00ba\u061d\u0001\u0000\u0000\u0000\u00bc\u062f\u0001\u0000\u0000"+ - "\u0000\u00be\u063c\u0001\u0000\u0000\u0000\u00c0\u063f\u0001\u0000\u0000"+ - "\u0000\u00c2\u0656\u0001\u0000\u0000\u0000\u00c4\u065b\u0001\u0000\u0000"+ - "\u0000\u00c6\u065d\u0001\u0000\u0000\u0000\u00c8\u0664\u0001\u0000\u0000"+ - "\u0000\u00ca\u0677\u0001\u0000\u0000\u0000\u00cc\u0679\u0001\u0000\u0000"+ - "\u0000\u00ce\u068a\u0001\u0000\u0000\u0000\u00d0\u068c\u0001\u0000\u0000"+ - "\u0000\u00d2\u0698\u0001\u0000\u0000\u0000\u00d4\u06a9\u0001\u0000\u0000"+ - "\u0000\u00d6\u06b7\u0001\u0000\u0000\u0000\u00d8\u06c0\u0001\u0000\u0000"+ - "\u0000\u00da\u06c8\u0001\u0000\u0000\u0000\u00dc\u06cb\u0001\u0000\u0000"+ - "\u0000\u00de\u06cf\u0001\u0000\u0000\u0000\u00e0\u06d6\u0001\u0000\u0000"+ - "\u0000\u00e2\u06dc\u0001\u0000\u0000\u0000\u00e4\u06df\u0001\u0000\u0000"+ - "\u0000\u00e6\u06ea\u0001\u0000\u0000\u0000\u00e8\u06f8\u0001\u0000\u0000"+ - "\u0000\u00ea\u070c\u0001\u0000\u0000\u0000\u00ec\u071c\u0001\u0000\u0000"+ - "\u0000\u00ee\u0721\u0001\u0000\u0000\u0000\u00f0\u0728\u0001\u0000\u0000"+ - "\u0000\u00f2\u072c\u0001\u0000\u0000\u0000\u00f4\u0738\u0001\u0000\u0000"+ - "\u0000\u00f6\u0746\u0001\u0000\u0000\u0000\u00f8\u0758\u0001\u0000\u0000"+ - "\u0000\u00fa\u075b\u0001\u0000\u0000\u0000\u00fc\u0765\u0001\u0000\u0000"+ - "\u0000\u00fe\u0767\u0001\u0000\u0000\u0000\u0100\u0774\u0001\u0000\u0000"+ - "\u0000\u0102\u0781\u0001\u0000\u0000\u0000\u0104\u0783\u0001\u0000\u0000"+ - "\u0000\u0106\u0789\u0001\u0000\u0000\u0000\u0108\u0798\u0001\u0000\u0000"+ - "\u0000\u010a\u079a\u0001\u0000\u0000\u0000\u010c\u07a5\u0001\u0000\u0000"+ - "\u0000\u010e\u07bc\u0001\u0000\u0000\u0000\u0110\u07c1\u0001\u0000\u0000"+ - "\u0000\u0112\u07c8\u0001\u0000\u0000\u0000\u0114\u07d3\u0001\u0000\u0000"+ - "\u0000\u0116\u07e7\u0001\u0000\u0000\u0000\u0118\u07e9\u0001\u0000\u0000"+ - "\u0000\u011a\u07ed\u0001\u0000\u0000\u0000\u011c\u07f3\u0001\u0000\u0000"+ - "\u0000\u011e\u0800\u0001\u0000\u0000\u0000\u0120\u0805\u0001\u0000\u0000"+ - "\u0000\u0122\u0815\u0001\u0000\u0000\u0000\u0124\u0817\u0001\u0000\u0000"+ - "\u0000\u0126\u081b\u0001\u0000\u0000\u0000\u0128\u081d\u0001\u0000\u0000"+ - "\u0000\u012a\u082c\u0001\u0000\u0000\u0000\u012c\u0832\u0001\u0000\u0000"+ - "\u0000\u012e\u0836\u0001\u0000\u0000\u0000\u0130\u083f\u0001\u0000\u0000"+ - "\u0000\u0132\u0844\u0001\u0000\u0000\u0000\u0134\u0851\u0001\u0000\u0000"+ - "\u0000\u0136\u0859\u0001\u0000\u0000\u0000\u0138\u085e\u0001\u0000\u0000"+ - "\u0000\u013a\u0860\u0001\u0000\u0000\u0000\u013c\u086e\u0001\u0000\u0000"+ - "\u0000\u013e\u087f\u0001\u0000\u0000\u0000\u0140\u088d\u0001\u0000\u0000"+ - "\u0000\u0142\u0892\u0001\u0000\u0000\u0000\u0144\u0896\u0001\u0000\u0000"+ - "\u0000\u0146\u0899\u0001\u0000\u0000\u0000\u0148\u089c\u0001\u0000\u0000"+ - "\u0000\u014a\u089e\u0001\u0000\u0000\u0000\u014c\u08ab\u0001\u0000\u0000"+ - "\u0000\u014e\u08be\u0001\u0000\u0000\u0000\u0150\u08c5\u0001\u0000\u0000"+ - "\u0000\u0152\u08cb\u0001\u0000\u0000\u0000\u0154\u08ce\u0001\u0000\u0000"+ - "\u0000\u0156\u08dd\u0001\u0000\u0000\u0000\u0158\u08e0\u0001\u0000\u0000"+ - "\u0000\u015a\u08ea\u0001\u0000\u0000\u0000\u015c\u08f5\u0001\u0000\u0000"+ - "\u0000\u015e\u0922\u0001\u0000\u0000\u0000\u0160\u0928\u0001\u0000\u0000"+ - "\u0000\u0162\u0930\u0001\u0000\u0000\u0000\u0164\u0932\u0001\u0000\u0000"+ - "\u0000\u0166\u093a\u0001\u0000\u0000\u0000\u0168\u0942\u0001\u0000\u0000"+ - "\u0000\u016a\u094a\u0001\u0000\u0000\u0000\u016c\u094e\u0001\u0000\u0000"+ - "\u0000\u016e\u0955\u0001\u0000\u0000\u0000\u0170\u095d\u0001\u0000\u0000"+ - "\u0000\u0172\u0965\u0001\u0000\u0000\u0000\u0174\u096f\u0001\u0000\u0000"+ - "\u0000\u0176\u0977\u0001\u0000\u0000\u0000\u0178\u0980\u0001\u0000\u0000"+ - "\u0000\u017a\u098b\u0001\u0000\u0000\u0000\u017c\u0997\u0001\u0000\u0000"+ - "\u0000\u017e\u0999\u0001\u0000\u0000\u0000\u0180\u09a1\u0001\u0000\u0000"+ - "\u0000\u0182\u09a3\u0001\u0000\u0000\u0000\u0184\u09a5\u0001\u0000\u0000"+ - "\u0000\u0186\u09a7\u0001\u0000\u0000\u0000\u0188\u09ab\u0001\u0000\u0000"+ - "\u0000\u018a\u018c\u0003\u008cF\u0000\u018b\u018a\u0001\u0000\u0000\u0000"+ - "\u018c\u018f\u0001\u0000\u0000\u0000\u018d\u018b\u0001\u0000\u0000\u0000"+ - "\u018d\u018e\u0001\u0000\u0000\u0000\u018e\u0193\u0001\u0000\u0000\u0000"+ - "\u018f\u018d\u0001\u0000\u0000\u0000\u0190\u0192\u0003\"\u0011\u0000\u0191"+ - "\u0190\u0001\u0000\u0000\u0000\u0192\u0195\u0001\u0000\u0000\u0000\u0193"+ - "\u0191\u0001\u0000\u0000\u0000\u0193\u0194\u0001\u0000\u0000\u0000\u0194"+ - "\u0196\u0001\u0000\u0000\u0000\u0195\u0193\u0001\u0000\u0000\u0000\u0196"+ - "\u0197\u0005\u0000\u0000\u0001\u0197\u0001\u0001\u0000\u0000\u0000\u0198"+ - "\u0199\u0003\u0154\u00aa\u0000\u0199\u019a\u0005V\u0000\u0000\u019a\u019b"+ - "\u0003\u0004\u0002\u0000\u019b\u0003\u0001\u0000\u0000\u0000\u019c\u01a0"+ - "\u0005\u007f\u0000\u0000\u019d\u019f\u0003\u0006\u0003\u0000\u019e\u019d"+ - "\u0001\u0000\u0000\u0000\u019f\u01a2\u0001\u0000\u0000\u0000\u01a0\u019e"+ - "\u0001\u0000\u0000\u0000\u01a0\u01a1\u0001\u0000\u0000\u0000\u01a1\u01a3"+ - "\u0001\u0000\u0000\u0000\u01a2\u01a0\u0001\u0000\u0000\u0000\u01a3\u01b5"+ - "\u0005\u0080\u0000\u0000\u01a4\u01a8\u0005}\u0000\u0000\u01a5\u01a7\u0003"+ - "\u0006\u0003\u0000\u01a6\u01a5\u0001\u0000\u0000\u0000\u01a7\u01aa\u0001"+ - "\u0000\u0000\u0000\u01a8\u01a6\u0001\u0000\u0000\u0000\u01a8\u01a9\u0001"+ - "\u0000\u0000\u0000\u01a9\u01ab\u0001\u0000\u0000\u0000\u01aa\u01a8\u0001"+ - "\u0000\u0000\u0000\u01ab\u01b5\u0005~\u0000\u0000\u01ac\u01b0\u0005{\u0000"+ - "\u0000\u01ad\u01af\u0003\u0006\u0003\u0000\u01ae\u01ad\u0001\u0000\u0000"+ - "\u0000\u01af\u01b2\u0001\u0000\u0000\u0000\u01b0\u01ae\u0001\u0000\u0000"+ - "\u0000\u01b0\u01b1\u0001\u0000\u0000\u0000\u01b1\u01b3\u0001\u0000\u0000"+ - "\u0000\u01b2\u01b0\u0001\u0000\u0000\u0000\u01b3\u01b5\u0005|\u0000\u0000"+ - "\u01b4\u019c\u0001\u0000\u0000\u0000\u01b4\u01a4\u0001\u0000\u0000\u0000"+ - "\u01b4\u01ac\u0001\u0000\u0000\u0000\u01b5\u0005\u0001\u0000\u0000\u0000"+ - "\u01b6\u01b8\u0003\b\u0004\u0000\u01b7\u01b6\u0001\u0000\u0000\u0000\u01b8"+ - "\u01b9\u0001\u0000\u0000\u0000\u01b9\u01b7\u0001\u0000\u0000\u0000\u01b9"+ - "\u01ba\u0001\u0000\u0000\u0000\u01ba\u01bd\u0001\u0000\u0000\u0000\u01bb"+ - "\u01bd\u0003\u0004\u0002\u0000\u01bc\u01b7\u0001\u0000\u0000\u0000\u01bc"+ - "\u01bb\u0001\u0000\u0000\u0000\u01bd\u0007\u0001\u0000\u0000\u0000\u01be"+ - "\u01c4\u0003\u0180\u00c0\u0000\u01bf\u01c4\u0003\u0182\u00c1\u0000\u01c0"+ - "\u01c4\u0003\u0184\u00c2\u0000\u01c1\u01c4\u0003\u001e\u000f\u0000\u01c2"+ - "\u01c4\u0005y\u0000\u0000\u01c3\u01be\u0001\u0000\u0000\u0000\u01c3\u01bf"+ - "\u0001\u0000\u0000\u0000\u01c3\u01c0\u0001\u0000\u0000\u0000\u01c3\u01c1"+ - "\u0001\u0000\u0000\u0000\u01c3\u01c2\u0001\u0000\u0000\u0000\u01c4\t\u0001"+ - "\u0000\u0000\u0000\u01c5\u01c6\u0003\u0154\u00aa\u0000\u01c6\u01c7\u0005"+ - "V\u0000\u0000\u01c7\u01cb\u0005\u007f\u0000\u0000\u01c8\u01ca\u0003\u0006"+ - "\u0003\u0000\u01c9\u01c8\u0001\u0000\u0000\u0000\u01ca\u01cd\u0001\u0000"+ - "\u0000\u0000\u01cb\u01c9\u0001\u0000\u0000\u0000\u01cb\u01cc\u0001\u0000"+ - "\u0000\u0000\u01cc\u01ce\u0001\u0000\u0000\u0000\u01cd\u01cb\u0001\u0000"+ - "\u0000\u0000\u01ce\u01cf\u0005\u0080\u0000\u0000\u01cf\u01d0\u0005s\u0000"+ - "\u0000\u01d0\u01e9\u0001\u0000\u0000\u0000\u01d1\u01d2\u0003\u0154\u00aa"+ - "\u0000\u01d2\u01d3\u0005V\u0000\u0000\u01d3\u01d7\u0005}\u0000\u0000\u01d4"+ - "\u01d6\u0003\u0006\u0003\u0000\u01d5\u01d4\u0001\u0000\u0000\u0000\u01d6"+ - "\u01d9\u0001\u0000\u0000\u0000\u01d7\u01d5\u0001\u0000\u0000\u0000\u01d7"+ - "\u01d8\u0001\u0000\u0000\u0000\u01d8\u01da\u0001\u0000\u0000\u0000\u01d9"+ - "\u01d7\u0001\u0000\u0000\u0000\u01da\u01db\u0005~\u0000\u0000\u01db\u01dc"+ - "\u0005s\u0000\u0000\u01dc\u01e9\u0001\u0000\u0000\u0000\u01dd\u01de\u0003"+ - "\u0154\u00aa\u0000\u01de\u01df\u0005V\u0000\u0000\u01df\u01e3\u0005{\u0000"+ - "\u0000\u01e0\u01e2\u0003\u0006\u0003\u0000\u01e1\u01e0\u0001\u0000\u0000"+ - "\u0000\u01e2\u01e5\u0001\u0000\u0000\u0000\u01e3\u01e1\u0001\u0000\u0000"+ - "\u0000\u01e3\u01e4\u0001\u0000\u0000\u0000\u01e4\u01e6\u0001\u0000\u0000"+ - "\u0000\u01e5\u01e3\u0001\u0000\u0000\u0000\u01e6\u01e7\u0005|\u0000\u0000"+ - "\u01e7\u01e9\u0001\u0000\u0000\u0000\u01e8\u01c5\u0001\u0000\u0000\u0000"+ - "\u01e8\u01d1\u0001\u0000\u0000\u0000\u01e8\u01dd\u0001\u0000\u0000\u0000"+ - "\u01e9\u000b\u0001\u0000\u0000\u0000\u01ea\u01eb\u00056\u0000\u0000\u01eb"+ - "\u01ec\u0005V\u0000\u0000\u01ec\u01ed\u0003\u017c\u00be\u0000\u01ed\u01ee"+ - "\u0003\u000e\u0007\u0000\u01ee\r\u0001\u0000\u0000\u0000\u01ef\u01f0\u0005"+ - "\u007f\u0000\u0000\u01f0\u01f1\u0003\u0010\b\u0000\u01f1\u01f2\u0005\u0080"+ - "\u0000\u0000\u01f2\u01f3\u0005s\u0000\u0000\u01f3\u01fe\u0001\u0000\u0000"+ - "\u0000\u01f4\u01f5\u0005}\u0000\u0000\u01f5\u01f6\u0003\u0010\b\u0000"+ - "\u01f6\u01f7\u0005~\u0000\u0000\u01f7\u01f8\u0005s\u0000\u0000\u01f8\u01fe"+ - "\u0001\u0000\u0000\u0000\u01f9\u01fa\u0005{\u0000\u0000\u01fa\u01fb\u0003"+ - "\u0010\b\u0000\u01fb\u01fc\u0005|\u0000\u0000\u01fc\u01fe\u0001\u0000"+ - "\u0000\u0000\u01fd\u01ef\u0001\u0000\u0000\u0000\u01fd\u01f4\u0001\u0000"+ - "\u0000\u0000\u01fd\u01f9\u0001\u0000\u0000\u0000\u01fe\u000f\u0001\u0000"+ - "\u0000\u0000\u01ff\u0204\u0003\u0012\t\u0000\u0200\u0201\u0005s\u0000"+ - "\u0000\u0201\u0203\u0003\u0012\t\u0000\u0202\u0200\u0001\u0000\u0000\u0000"+ - "\u0203\u0206\u0001\u0000\u0000\u0000\u0204\u0202\u0001\u0000\u0000\u0000"+ - "\u0204\u0205\u0001\u0000\u0000\u0000\u0205\u0208\u0001\u0000\u0000\u0000"+ - "\u0206\u0204\u0001\u0000\u0000\u0000\u0207\u0209\u0005s\u0000\u0000\u0208"+ - "\u0207\u0001\u0000\u0000\u0000\u0208\u0209\u0001\u0000\u0000\u0000\u0209"+ - "\u0011\u0001\u0000\u0000\u0000\u020a\u020b\u0003\u0014\n\u0000\u020b\u020c"+ - "\u0005w\u0000\u0000\u020c\u020d\u0003 \u0010\u0000\u020d\u0013\u0001\u0000"+ - "\u0000\u0000\u020e\u0212\u0005\u007f\u0000\u0000\u020f\u0211\u0003\u0016"+ - "\u000b\u0000\u0210\u020f\u0001\u0000\u0000\u0000\u0211\u0214\u0001\u0000"+ - "\u0000\u0000\u0212\u0210\u0001\u0000\u0000\u0000\u0212\u0213\u0001\u0000"+ - "\u0000\u0000\u0213\u0215\u0001\u0000\u0000\u0000\u0214\u0212\u0001\u0000"+ - "\u0000\u0000\u0215\u0227\u0005\u0080\u0000\u0000\u0216\u021a\u0005}\u0000"+ - "\u0000\u0217\u0219\u0003\u0016\u000b\u0000\u0218\u0217\u0001\u0000\u0000"+ - "\u0000\u0219\u021c\u0001\u0000\u0000\u0000\u021a\u0218\u0001\u0000\u0000"+ - "\u0000\u021a\u021b\u0001\u0000\u0000\u0000\u021b\u021d\u0001\u0000\u0000"+ - "\u0000\u021c\u021a\u0001\u0000\u0000\u0000\u021d\u0227\u0005~\u0000\u0000"+ - "\u021e\u0222\u0005{\u0000\u0000\u021f\u0221\u0003\u0016\u000b\u0000\u0220"+ - "\u021f\u0001\u0000\u0000\u0000\u0221\u0224\u0001\u0000\u0000\u0000\u0222"+ - "\u0220\u0001\u0000\u0000\u0000\u0222\u0223\u0001\u0000\u0000\u0000\u0223"+ - "\u0225\u0001\u0000\u0000\u0000\u0224\u0222\u0001\u0000\u0000\u0000\u0225"+ - "\u0227\u0005|\u0000\u0000\u0226\u020e\u0001\u0000\u0000\u0000\u0226\u0216"+ - "\u0001\u0000\u0000\u0000\u0226\u021e\u0001\u0000\u0000\u0000\u0227\u0015"+ - "\u0001\u0000\u0000\u0000\u0228\u022a\u0003\u0018\f\u0000\u0229\u0228\u0001"+ - "\u0000\u0000\u0000\u022a\u022b\u0001\u0000\u0000\u0000\u022b\u0229\u0001"+ - "\u0000\u0000\u0000\u022b\u022c\u0001\u0000\u0000\u0000\u022c\u0243\u0001"+ - "\u0000\u0000\u0000\u022d\u0243\u0003\u0014\n\u0000\u022e\u0231\u0005y"+ - "\u0000\u0000\u022f\u0232\u0003\u017c\u00be\u0000\u0230\u0232\u0005\u0018"+ - "\u0000\u0000\u0231\u022f\u0001\u0000\u0000\u0000\u0231\u0230\u0001\u0000"+ - "\u0000\u0000\u0232\u0233\u0001\u0000\u0000\u0000\u0233\u0234\u0005t\u0000"+ - "\u0000\u0234\u0243\u0003\u001a\r\u0000\u0235\u0236\u0005y\u0000\u0000"+ - "\u0236\u0238\u0005\u007f\u0000\u0000\u0237\u0239\u0003\u0016\u000b\u0000"+ - "\u0238\u0237\u0001\u0000\u0000\u0000\u0239\u023a\u0001\u0000\u0000\u0000"+ - "\u023a\u0238\u0001\u0000\u0000\u0000\u023a\u023b\u0001\u0000\u0000\u0000"+ - "\u023b\u023c\u0001\u0000\u0000\u0000\u023c\u023e\u0005\u0080\u0000\u0000"+ - "\u023d\u023f\u0003\u001c\u000e\u0000\u023e\u023d\u0001\u0000\u0000\u0000"+ - "\u023e\u023f\u0001\u0000\u0000\u0000\u023f\u0240\u0001\u0000\u0000\u0000"+ - "\u0240\u0241\u0003\u001e\u000f\u0000\u0241\u0243\u0001\u0000\u0000\u0000"+ - "\u0242\u0229\u0001\u0000\u0000\u0000\u0242\u022d\u0001\u0000\u0000\u0000"+ - "\u0242\u022e\u0001\u0000\u0000\u0000\u0242\u0235\u0001\u0000\u0000\u0000"+ - "\u0243\u0017\u0001\u0000\u0000\u0000\u0244\u0249\u0003\u0180\u00c0\u0000"+ - "\u0245\u0249\u0003\u0182\u00c1\u0000\u0246\u0249\u0003\u0184\u00c2\u0000"+ - "\u0247\u0249\u0003\u001e\u000f\u0000\u0248\u0244\u0001\u0000\u0000\u0000"+ - "\u0248\u0245\u0001\u0000\u0000\u0000\u0248\u0246\u0001\u0000\u0000\u0000"+ - "\u0248\u0247\u0001\u0000\u0000\u0000\u0249\u0019\u0001\u0000\u0000\u0000"+ - "\u024a\u024b\u0003\u017c\u00be\u0000\u024b\u001b\u0001\u0000\u0000\u0000"+ - "\u024c\u0251\u0003\u0180\u00c0\u0000\u024d\u0251\u0003\u0182\u00c1\u0000"+ - "\u024e\u0251\u0003\u0184\u00c2\u0000\u024f\u0251\u0005y\u0000\u0000\u0250"+ - "\u024c\u0001\u0000\u0000\u0000\u0250\u024d\u0001\u0000\u0000\u0000\u0250"+ - "\u024e\u0001\u0000\u0000\u0000\u0250\u024f\u0001\u0000\u0000\u0000\u0251"+ - "\u001d\u0001\u0000\u0000\u0000\u0252\u0253\u0007\u0000\u0000\u0000\u0253"+ - "\u001f\u0001\u0000\u0000\u0000\u0254\u0255\u0003\u0004\u0002\u0000\u0255"+ - "!\u0001\u0000\u0000\u0000\u0256\u0258\u0003\u008eG\u0000\u0257\u0256\u0001"+ - "\u0000\u0000\u0000\u0258\u025b\u0001\u0000\u0000\u0000\u0259\u0257\u0001"+ - "\u0000\u0000\u0000\u0259\u025a\u0001\u0000\u0000\u0000\u025a\u025e\u0001"+ - "\u0000\u0000\u0000\u025b\u0259\u0001\u0000\u0000\u0000\u025c\u025f\u0003"+ - "$\u0012\u0000\u025d\u025f\u0003&\u0013\u0000\u025e\u025c\u0001\u0000\u0000"+ - "\u0000\u025e\u025d\u0001\u0000\u0000\u0000\u025f#\u0001\u0000\u0000\u0000"+ - "\u0260\u0262\u0003\u017a\u00bd\u0000\u0261\u0260\u0001\u0000\u0000\u0000"+ - "\u0261\u0262\u0001\u0000\u0000\u0000\u0262\u0270\u0001\u0000\u0000\u0000"+ - "\u0263\u0271\u0003(\u0014\u0000\u0264\u0271\u0003*\u0015\u0000\u0265\u0271"+ - "\u00030\u0018\u0000\u0266\u0271\u00034\u001a\u0000\u0267\u0271\u0003H"+ - "$\u0000\u0268\u0271\u0003J%\u0000\u0269\u0271\u0003X,\u0000\u026a\u0271"+ - "\u0003d2\u0000\u026b\u0271\u0003f3\u0000\u026c\u0271\u0003h4\u0000\u026d"+ - "\u0271\u0003j5\u0000\u026e\u0271\u0003l6\u0000\u026f\u0271\u0003r9\u0000"+ - "\u0270\u0263\u0001\u0000\u0000\u0000\u0270\u0264\u0001\u0000\u0000\u0000"+ - "\u0270\u0265\u0001\u0000\u0000\u0000\u0270\u0266\u0001\u0000\u0000\u0000"+ - "\u0270\u0267\u0001\u0000\u0000\u0000\u0270\u0268\u0001\u0000\u0000\u0000"+ - "\u0270\u0269\u0001\u0000\u0000\u0000\u0270\u026a\u0001\u0000\u0000\u0000"+ - "\u0270\u026b\u0001\u0000\u0000\u0000\u0270\u026c\u0001\u0000\u0000\u0000"+ - "\u0270\u026d\u0001\u0000\u0000\u0000\u0270\u026e\u0001\u0000\u0000\u0000"+ - "\u0270\u026f\u0001\u0000\u0000\u0000\u0271%\u0001\u0000\u0000\u0000\u0272"+ - "\u0275\u0003\n\u0005\u0000\u0273\u0275\u0003\f\u0006\u0000\u0274\u0272"+ - "\u0001\u0000\u0000\u0000\u0274\u0273\u0001\u0000\u0000\u0000\u0275\'\u0001"+ - "\u0000\u0000\u0000\u0276\u0278\u0005 \u0000\u0000\u0277\u0276\u0001\u0000"+ - "\u0000\u0000\u0277\u0278\u0001\u0000\u0000\u0000\u0278\u0279\u0001\u0000"+ - "\u0000\u0000\u0279\u027a\u0005\u0012\u0000\u0000\u027a\u028a\u0003\u017c"+ - "\u00be\u0000\u027b\u028b\u0005s\u0000\u0000\u027c\u0280\u0005{\u0000\u0000"+ - "\u027d\u027f\u0003\u008cF\u0000\u027e\u027d\u0001\u0000\u0000\u0000\u027f"+ - "\u0282\u0001\u0000\u0000\u0000\u0280\u027e\u0001\u0000\u0000\u0000\u0280"+ - "\u0281\u0001\u0000\u0000\u0000\u0281\u0286\u0001\u0000\u0000\u0000\u0282"+ - "\u0280\u0001\u0000\u0000\u0000\u0283\u0285\u0003\"\u0011\u0000\u0284\u0283"+ - "\u0001\u0000\u0000\u0000\u0285\u0288\u0001\u0000\u0000\u0000\u0286\u0284"+ - "\u0001\u0000\u0000\u0000\u0286\u0287\u0001\u0000\u0000\u0000\u0287\u0289"+ - "\u0001\u0000\u0000\u0000\u0288\u0286\u0001\u0000\u0000\u0000\u0289\u028b"+ - "\u0005|\u0000\u0000\u028a\u027b\u0001\u0000\u0000\u0000\u028a\u027c\u0001"+ - "\u0000\u0000\u0000\u028b)\u0001\u0000\u0000\u0000\u028c\u028d\u0005\b"+ - "\u0000\u0000\u028d\u028e\u0005\u0005\u0000\u0000\u028e\u0290\u0003,\u0016"+ - "\u0000\u028f\u0291\u0003.\u0017\u0000\u0290\u028f\u0001\u0000\u0000\u0000"+ - "\u0290\u0291\u0001\u0000\u0000\u0000\u0291\u0292\u0001\u0000\u0000\u0000"+ - "\u0292\u0293\u0005s\u0000\u0000\u0293+\u0001\u0000\u0000\u0000\u0294\u0297"+ - "\u0003\u017c\u00be\u0000\u0295\u0297\u0005\u0018\u0000\u0000\u0296\u0294"+ - "\u0001\u0000\u0000\u0000\u0296\u0295\u0001\u0000\u0000\u0000\u0297-\u0001"+ - "\u0000\u0000\u0000\u0298\u029b\u0005\u0001\u0000\u0000\u0299\u029c\u0003"+ - "\u017c\u00be\u0000\u029a\u029c\u0005m\u0000\u0000\u029b\u0299\u0001\u0000"+ - "\u0000\u0000\u029b\u029a\u0001\u0000\u0000\u0000\u029c/\u0001\u0000\u0000"+ - "\u0000\u029d\u029e\u0005!\u0000\u0000\u029e\u029f\u00032\u0019\u0000\u029f"+ - "\u02a0\u0005s\u0000\u0000\u02a01\u0001\u0000\u0000\u0000\u02a1\u02a3\u0003"+ - "\u0154\u00aa\u0000\u02a2\u02a1\u0001\u0000\u0000\u0000\u02a2\u02a3\u0001"+ - "\u0000\u0000\u0000\u02a3\u02a4\u0001\u0000\u0000\u0000\u02a4\u02a6\u0005"+ - "u\u0000\u0000\u02a5\u02a2\u0001\u0000\u0000\u0000\u02a5\u02a6\u0001\u0000"+ - "\u0000\u0000\u02a6\u02b7\u0001\u0000\u0000\u0000\u02a7\u02b8\u0005R\u0000"+ - "\u0000\u02a8\u02b4\u0005{\u0000\u0000\u02a9\u02ae\u00032\u0019\u0000\u02aa"+ - "\u02ab\u0005r\u0000\u0000\u02ab\u02ad\u00032\u0019\u0000\u02ac\u02aa\u0001"+ - "\u0000\u0000\u0000\u02ad\u02b0\u0001\u0000\u0000\u0000\u02ae\u02ac\u0001"+ - "\u0000\u0000\u0000\u02ae\u02af\u0001\u0000\u0000\u0000\u02af\u02b2\u0001"+ - "\u0000\u0000\u0000\u02b0\u02ae\u0001\u0000\u0000\u0000\u02b1\u02b3\u0005"+ - "r\u0000\u0000\u02b2\u02b1\u0001\u0000\u0000\u0000\u02b2\u02b3\u0001\u0000"+ - "\u0000\u0000\u02b3\u02b5\u0001\u0000\u0000\u0000\u02b4\u02a9\u0001\u0000"+ - "\u0000\u0000\u02b4\u02b5\u0001\u0000\u0000\u0000\u02b5\u02b6\u0001\u0000"+ - "\u0000\u0000\u02b6\u02b8\u0005|\u0000\u0000\u02b7\u02a7\u0001\u0000\u0000"+ - "\u0000\u02b7\u02a8\u0001\u0000\u0000\u0000\u02b8\u02c2\u0001\u0000\u0000"+ - "\u0000\u02b9\u02bf\u0003\u0154\u00aa\u0000\u02ba\u02bd\u0005\u0001\u0000"+ - "\u0000\u02bb\u02be\u0003\u017c\u00be\u0000\u02bc\u02be\u0005m\u0000\u0000"+ - "\u02bd\u02bb\u0001\u0000\u0000\u0000\u02bd\u02bc\u0001\u0000\u0000\u0000"+ - "\u02be\u02c0\u0001\u0000\u0000\u0000\u02bf\u02ba\u0001\u0000\u0000\u0000"+ - "\u02bf\u02c0\u0001\u0000\u0000\u0000\u02c0\u02c2\u0001\u0000\u0000\u0000"+ - "\u02c1\u02a5\u0001\u0000\u0000\u0000\u02c1\u02b9\u0001\u0000\u0000\u0000"+ - "\u02c23\u0001\u0000\u0000\u0000\u02c3\u02c4\u00036\u001b\u0000\u02c4\u02c5"+ - "\u0005\n\u0000\u0000\u02c5\u02c7\u0003\u017c\u00be\u0000\u02c6\u02c8\u0003"+ - "v;\u0000\u02c7\u02c6\u0001\u0000\u0000\u0000\u02c7\u02c8\u0001\u0000\u0000"+ - "\u0000\u02c8\u02c9\u0001\u0000\u0000\u0000\u02c9\u02cb\u0005\u007f\u0000"+ - "\u0000\u02ca\u02cc\u0003:\u001d\u0000\u02cb\u02ca\u0001\u0000\u0000\u0000"+ - "\u02cb\u02cc\u0001\u0000\u0000\u0000\u02cc\u02cd\u0001\u0000\u0000\u0000"+ - "\u02cd\u02cf\u0005\u0080\u0000\u0000\u02ce\u02d0\u0003F#\u0000\u02cf\u02ce"+ - "\u0001\u0000\u0000\u0000\u02cf\u02d0\u0001\u0000\u0000\u0000\u02d0\u02d2"+ - "\u0001\u0000\u0000\u0000\u02d1\u02d3\u0003\u0080@\u0000\u02d2\u02d1\u0001"+ - "\u0000\u0000\u0000\u02d2\u02d3\u0001\u0000\u0000\u0000\u02d3\u02d6\u0001"+ - "\u0000\u0000\u0000\u02d4\u02d7\u0003\u00a8T\u0000\u02d5\u02d7\u0005s\u0000"+ - "\u0000\u02d6\u02d4\u0001\u0000\u0000\u0000\u02d6\u02d5\u0001\u0000\u0000"+ - "\u0000\u02d75\u0001\u0000\u0000\u0000\u02d8\u02da\u0005\u0003\u0000\u0000"+ - "\u02d9\u02d8\u0001\u0000\u0000\u0000\u02d9\u02da\u0001\u0000\u0000\u0000"+ - "\u02da\u02dc\u0001\u0000\u0000\u0000\u02db\u02dd\u0005$\u0000\u0000\u02dc"+ - "\u02db\u0001\u0000\u0000\u0000\u02dc\u02dd\u0001\u0000\u0000\u0000\u02dd"+ - "\u02df\u0001\u0000\u0000\u0000\u02de\u02e0\u0005 \u0000\u0000\u02df\u02de"+ - "\u0001\u0000\u0000\u0000\u02df\u02e0\u0001\u0000\u0000\u0000\u02e0\u02e5"+ - "\u0001\u0000\u0000\u0000\u02e1\u02e3\u0005\b\u0000\u0000\u02e2\u02e4\u0003"+ - "8\u001c\u0000\u02e3\u02e2\u0001\u0000\u0000\u0000\u02e3\u02e4\u0001\u0000"+ - "\u0000\u0000\u02e4\u02e6\u0001\u0000\u0000\u0000\u02e5\u02e1\u0001\u0000"+ - "\u0000\u0000\u02e5\u02e6\u0001\u0000\u0000\u0000\u02e67\u0001\u0000\u0000"+ - "\u0000\u02e7\u02e8\u0007\u0001\u0000\u0000\u02e89\u0001\u0000\u0000\u0000"+ - "\u02e9\u02eb\u0003<\u001e\u0000\u02ea\u02ec\u0005r\u0000\u0000\u02eb\u02ea"+ - "\u0001\u0000\u0000\u0000\u02eb\u02ec\u0001\u0000\u0000\u0000\u02ec\u02fe"+ - "\u0001\u0000\u0000\u0000\u02ed\u02ee\u0003<\u001e\u0000\u02ee\u02ef\u0005"+ - "r\u0000\u0000\u02ef\u02f1\u0001\u0000\u0000\u0000\u02f0\u02ed\u0001\u0000"+ - "\u0000\u0000\u02f0\u02f1\u0001\u0000\u0000\u0000\u02f1\u02f2\u0001\u0000"+ - "\u0000\u0000\u02f2\u02f7\u0003B!\u0000\u02f3\u02f4\u0005r\u0000\u0000"+ - "\u02f4\u02f6\u0003B!\u0000\u02f5\u02f3\u0001\u0000\u0000\u0000\u02f6\u02f9"+ - "\u0001\u0000\u0000\u0000\u02f7\u02f5\u0001\u0000\u0000\u0000\u02f7\u02f8"+ - "\u0001\u0000\u0000\u0000\u02f8\u02fb\u0001\u0000\u0000\u0000\u02f9\u02f7"+ - "\u0001\u0000\u0000\u0000\u02fa\u02fc\u0005r\u0000\u0000\u02fb\u02fa\u0001"+ - "\u0000\u0000\u0000\u02fb\u02fc\u0001\u0000\u0000\u0000\u02fc\u02fe\u0001"+ - "\u0000\u0000\u0000\u02fd\u02e9\u0001\u0000\u0000\u0000\u02fd\u02f0\u0001"+ - "\u0000\u0000\u0000\u02fe;\u0001\u0000\u0000\u0000\u02ff\u0301\u0003\u008e"+ - "G\u0000\u0300\u02ff\u0001\u0000\u0000\u0000\u0301\u0304\u0001\u0000\u0000"+ - "\u0000\u0302\u0300\u0001\u0000\u0000\u0000\u0302\u0303\u0001\u0000\u0000"+ - "\u0000\u0303\u0307\u0001\u0000\u0000\u0000\u0304\u0302\u0001\u0000\u0000"+ - "\u0000\u0305\u0308\u0003>\u001f\u0000\u0306\u0308\u0003@ \u0000\u0307"+ - "\u0305\u0001\u0000\u0000\u0000\u0307\u0306\u0001\u0000\u0000\u0000\u0308"+ - "=\u0001\u0000\u0000\u0000\u0309\u030b\u0005W\u0000\u0000\u030a\u030c\u0003"+ - "\u0152\u00a9\u0000\u030b\u030a\u0001\u0000\u0000\u0000\u030b\u030c\u0001"+ - "\u0000\u0000\u0000\u030c\u030e\u0001\u0000\u0000\u0000\u030d\u0309\u0001"+ - "\u0000\u0000\u0000\u030d\u030e\u0001\u0000\u0000\u0000\u030e\u0310\u0001"+ - "\u0000\u0000\u0000\u030f\u0311\u0005\u0014\u0000\u0000\u0310\u030f\u0001"+ - "\u0000\u0000\u0000\u0310\u0311\u0001\u0000\u0000\u0000\u0311\u0312\u0001"+ - "\u0000\u0000\u0000\u0312\u0313\u0005\u0018\u0000\u0000\u0313?\u0001\u0000"+ - "\u0000\u0000\u0314\u0316\u0005\u0014\u0000\u0000\u0315\u0314\u0001\u0000"+ - "\u0000\u0000\u0315\u0316\u0001\u0000\u0000\u0000\u0316\u0317\u0001\u0000"+ - "\u0000\u0000\u0317\u0318\u0005\u0018\u0000\u0000\u0318\u0319\u0005t\u0000"+ - "\u0000\u0319\u031a\u0003\u0120\u0090\u0000\u031aA\u0001\u0000\u0000\u0000"+ - "\u031b\u031d\u0003\u008eG\u0000\u031c\u031b\u0001\u0000\u0000\u0000\u031d"+ - "\u0320\u0001\u0000\u0000\u0000\u031e\u031c\u0001\u0000\u0000\u0000\u031e"+ - "\u031f\u0001\u0000\u0000\u0000\u031f\u0324\u0001\u0000\u0000\u0000\u0320"+ - "\u031e\u0001\u0000\u0000\u0000\u0321\u0325\u0003D\"\u0000\u0322\u0325"+ - "\u0005p\u0000\u0000\u0323\u0325\u0003\u0120\u0090\u0000\u0324\u0321\u0001"+ - "\u0000\u0000\u0000\u0324\u0322\u0001\u0000\u0000\u0000\u0324\u0323\u0001"+ - "\u0000\u0000\u0000\u0325C\u0001\u0000\u0000\u0000\u0326\u0327\u0003\u00f2"+ - "y\u0000\u0327\u032a\u0005t\u0000\u0000\u0328\u032b\u0003\u0120\u0090\u0000"+ - "\u0329\u032b\u0005p\u0000\u0000\u032a\u0328\u0001\u0000\u0000\u0000\u032a"+ - "\u0329\u0001\u0000\u0000\u0000\u032bE\u0001\u0000\u0000\u0000\u032c\u032d"+ - "\u0005v\u0000\u0000\u032d\u032e\u0003\u0120\u0090\u0000\u032eG\u0001\u0000"+ - "\u0000\u0000\u032f\u0330\u0005\u001f\u0000\u0000\u0330\u0332\u0003\u017c"+ - "\u00be\u0000\u0331\u0333\u0003v;\u0000\u0332\u0331\u0001\u0000\u0000\u0000"+ - "\u0332\u0333\u0001\u0000\u0000\u0000\u0333\u0335\u0001\u0000\u0000\u0000"+ - "\u0334\u0336\u0003\u0080@\u0000\u0335\u0334\u0001\u0000\u0000\u0000\u0335"+ - "\u0336\u0001\u0000\u0000\u0000\u0336\u0339\u0001\u0000\u0000\u0000\u0337"+ - "\u0338\u0005e\u0000\u0000\u0338\u033a\u0003\u0120\u0090\u0000\u0339\u0337"+ - "\u0001\u0000\u0000\u0000\u0339\u033a\u0001\u0000\u0000\u0000\u033a\u033b"+ - "\u0001\u0000\u0000\u0000\u033b\u033c\u0005s\u0000\u0000\u033cI\u0001\u0000"+ - "\u0000\u0000\u033d\u0340\u0003L&\u0000\u033e\u0340\u0003N\'\u0000\u033f"+ - "\u033d\u0001\u0000\u0000\u0000\u033f\u033e\u0001\u0000\u0000\u0000\u0340"+ - "K\u0001\u0000\u0000\u0000\u0341\u0342\u0005\u001b\u0000\u0000\u0342\u0344"+ - "\u0003\u017c\u00be\u0000\u0343\u0345\u0003v;\u0000\u0344\u0343\u0001\u0000"+ - "\u0000\u0000\u0344\u0345\u0001\u0000\u0000\u0000\u0345\u0347\u0001\u0000"+ - "\u0000\u0000\u0346\u0348\u0003\u0080@\u0000\u0347\u0346\u0001\u0000\u0000"+ - "\u0000\u0347\u0348\u0001\u0000\u0000\u0000\u0348\u034f\u0001\u0000\u0000"+ - "\u0000\u0349\u034b\u0005{\u0000\u0000\u034a\u034c\u0003P(\u0000\u034b"+ - "\u034a\u0001\u0000\u0000\u0000\u034b\u034c\u0001\u0000\u0000\u0000\u034c"+ - "\u034d\u0001\u0000\u0000\u0000\u034d\u0350\u0005|\u0000\u0000\u034e\u0350"+ - "\u0005s\u0000\u0000\u034f\u0349\u0001\u0000\u0000\u0000\u034f\u034e\u0001"+ - "\u0000\u0000\u0000\u0350M\u0001\u0000\u0000\u0000\u0351\u0352\u0005\u001b"+ - "\u0000\u0000\u0352\u0354\u0003\u017c\u00be\u0000\u0353\u0355\u0003v;\u0000"+ - "\u0354\u0353\u0001\u0000\u0000\u0000\u0354\u0355\u0001\u0000\u0000\u0000"+ - "\u0355\u0356\u0001\u0000\u0000\u0000\u0356\u0358\u0005\u007f\u0000\u0000"+ - "\u0357\u0359\u0003T*\u0000\u0358\u0357\u0001\u0000\u0000\u0000\u0358\u0359"+ - "\u0001\u0000\u0000\u0000\u0359\u035a\u0001\u0000\u0000\u0000\u035a\u035c"+ - "\u0005\u0080\u0000\u0000\u035b\u035d\u0003\u0080@\u0000\u035c\u035b\u0001"+ - "\u0000\u0000\u0000\u035c\u035d\u0001\u0000\u0000\u0000\u035d\u035e\u0001"+ - "\u0000\u0000\u0000\u035e\u035f\u0005s\u0000\u0000\u035fO\u0001\u0000\u0000"+ - "\u0000\u0360\u0365\u0003R)\u0000\u0361\u0362\u0005r\u0000\u0000\u0362"+ - "\u0364\u0003R)\u0000\u0363\u0361\u0001\u0000\u0000\u0000\u0364\u0367\u0001"+ - "\u0000\u0000\u0000\u0365\u0363\u0001\u0000\u0000\u0000\u0365\u0366\u0001"+ - "\u0000\u0000\u0000\u0366\u0369\u0001\u0000\u0000\u0000\u0367\u0365\u0001"+ - "\u0000\u0000\u0000\u0368\u036a\u0005r\u0000\u0000\u0369\u0368\u0001\u0000"+ - "\u0000\u0000\u0369\u036a\u0001\u0000\u0000\u0000\u036aQ\u0001\u0000\u0000"+ - "\u0000\u036b\u036d\u0003\u008eG\u0000\u036c\u036b\u0001\u0000\u0000\u0000"+ - "\u036d\u0370\u0001\u0000\u0000\u0000\u036e\u036c\u0001\u0000\u0000\u0000"+ - "\u036e\u036f\u0001\u0000\u0000\u0000\u036f\u0372\u0001\u0000\u0000\u0000"+ - "\u0370\u036e\u0001\u0000\u0000\u0000\u0371\u0373\u0003\u017a\u00bd\u0000"+ - "\u0372\u0371\u0001\u0000\u0000\u0000\u0372\u0373\u0001\u0000\u0000\u0000"+ - "\u0373\u0374\u0001\u0000\u0000\u0000\u0374\u0375\u0003\u017c\u00be\u0000"+ - "\u0375\u0376\u0005t\u0000\u0000\u0376\u0377\u0003\u0120\u0090\u0000\u0377"+ - "S\u0001\u0000\u0000\u0000\u0378\u037d\u0003V+\u0000\u0379\u037a\u0005"+ - "r\u0000\u0000\u037a\u037c\u0003V+\u0000\u037b\u0379\u0001\u0000\u0000"+ - "\u0000\u037c\u037f\u0001\u0000\u0000\u0000\u037d\u037b\u0001\u0000\u0000"+ - "\u0000\u037d\u037e\u0001\u0000\u0000\u0000\u037e\u0381\u0001\u0000\u0000"+ - "\u0000\u037f\u037d\u0001\u0000\u0000\u0000\u0380\u0382\u0005r\u0000\u0000"+ - "\u0381\u0380\u0001\u0000\u0000\u0000\u0381\u0382\u0001\u0000\u0000\u0000"+ - "\u0382U\u0001\u0000\u0000\u0000\u0383\u0385\u0003\u008eG\u0000\u0384\u0383"+ - "\u0001\u0000\u0000\u0000\u0385\u0388\u0001\u0000\u0000\u0000\u0386\u0384"+ - "\u0001\u0000\u0000\u0000\u0386\u0387\u0001\u0000\u0000\u0000\u0387\u038a"+ - "\u0001\u0000\u0000\u0000\u0388\u0386\u0001\u0000\u0000\u0000\u0389\u038b"+ - "\u0003\u017a\u00bd\u0000\u038a\u0389\u0001\u0000\u0000\u0000\u038a\u038b"+ - "\u0001\u0000\u0000\u0000\u038b\u038c\u0001\u0000\u0000\u0000\u038c\u038d"+ - "\u0003\u0120\u0090\u0000\u038dW\u0001\u0000\u0000\u0000\u038e\u038f\u0005"+ - "\u0007\u0000\u0000\u038f\u0391\u0003\u017c\u00be\u0000\u0390\u0392\u0003"+ - "v;\u0000\u0391\u0390\u0001\u0000\u0000\u0000\u0391\u0392\u0001\u0000\u0000"+ - "\u0000\u0392\u0394\u0001\u0000\u0000\u0000\u0393\u0395\u0003\u0080@\u0000"+ - "\u0394\u0393\u0001\u0000\u0000\u0000\u0394\u0395\u0001\u0000\u0000\u0000"+ - "\u0395\u0396\u0001\u0000\u0000\u0000\u0396\u0398\u0005{\u0000\u0000\u0397"+ - "\u0399\u0003Z-\u0000\u0398\u0397\u0001\u0000\u0000\u0000\u0398\u0399\u0001"+ - "\u0000\u0000\u0000\u0399\u039a\u0001\u0000\u0000\u0000\u039a\u039b\u0005"+ - "|\u0000\u0000\u039bY\u0001\u0000\u0000\u0000\u039c\u03a1\u0003\\.\u0000"+ - "\u039d\u039e\u0005r\u0000\u0000\u039e\u03a0\u0003\\.\u0000\u039f\u039d"+ - "\u0001\u0000\u0000\u0000\u03a0\u03a3\u0001\u0000\u0000\u0000\u03a1\u039f"+ - "\u0001\u0000\u0000\u0000\u03a1\u03a2\u0001\u0000\u0000\u0000\u03a2\u03a5"+ - "\u0001\u0000\u0000\u0000\u03a3\u03a1\u0001\u0000\u0000\u0000\u03a4\u03a6"+ - "\u0005r\u0000\u0000\u03a5\u03a4\u0001\u0000\u0000\u0000\u03a5\u03a6\u0001"+ - "\u0000\u0000\u0000\u03a6[\u0001\u0000\u0000\u0000\u03a7\u03a9\u0003\u008e"+ - "G\u0000\u03a8\u03a7\u0001\u0000\u0000\u0000\u03a9\u03ac\u0001\u0000\u0000"+ - "\u0000\u03aa\u03a8\u0001\u0000\u0000\u0000\u03aa\u03ab\u0001\u0000\u0000"+ - "\u0000\u03ab\u03ae\u0001\u0000\u0000\u0000\u03ac\u03aa\u0001\u0000\u0000"+ - "\u0000\u03ad\u03af\u0003\u017a\u00bd\u0000\u03ae\u03ad\u0001\u0000\u0000"+ - "\u0000\u03ae\u03af\u0001\u0000\u0000\u0000\u03af\u03b0\u0001\u0000\u0000"+ - "\u0000\u03b0\u03b4\u0003\u017c\u00be\u0000\u03b1\u03b5\u0003^/\u0000\u03b2"+ - "\u03b5\u0003`0\u0000\u03b3\u03b5\u0003b1\u0000\u03b4\u03b1\u0001\u0000"+ - "\u0000\u0000\u03b4\u03b2\u0001\u0000\u0000\u0000\u03b4\u03b3\u0001\u0000"+ - "\u0000\u0000\u03b4\u03b5\u0001\u0000\u0000\u0000\u03b5]\u0001\u0000\u0000"+ - "\u0000\u03b6\u03b8\u0005\u007f\u0000\u0000\u03b7\u03b9\u0003T*\u0000\u03b8"+ - "\u03b7\u0001\u0000\u0000\u0000\u03b8\u03b9\u0001\u0000\u0000\u0000\u03b9"+ - "\u03ba\u0001\u0000\u0000\u0000\u03ba\u03bb\u0005\u0080\u0000\u0000\u03bb"+ - "_\u0001\u0000\u0000\u0000\u03bc\u03be\u0005{\u0000\u0000\u03bd\u03bf\u0003"+ - "P(\u0000\u03be\u03bd\u0001\u0000\u0000\u0000\u03be\u03bf\u0001\u0000\u0000"+ - "\u0000\u03bf\u03c0\u0001\u0000\u0000\u0000\u03c0\u03c1\u0005|\u0000\u0000"+ - "\u03c1a\u0001\u0000\u0000\u0000\u03c2\u03c3\u0005e\u0000\u0000\u03c3\u03c4"+ - "\u0003\u009aM\u0000\u03c4c\u0001\u0000\u0000\u0000\u03c5\u03c6\u00054"+ - "\u0000\u0000\u03c6\u03c8\u0003\u017c\u00be\u0000\u03c7\u03c9\u0003v;\u0000"+ - "\u03c8\u03c7\u0001\u0000\u0000\u0000\u03c8\u03c9\u0001\u0000\u0000\u0000"+ - "\u03c9\u03cb\u0001\u0000\u0000\u0000\u03ca\u03cc\u0003\u0080@\u0000\u03cb"+ - "\u03ca\u0001\u0000\u0000\u0000\u03cb\u03cc\u0001\u0000\u0000\u0000\u03cc"+ - "\u03cd\u0001\u0000\u0000\u0000\u03cd\u03ce\u0005{\u0000\u0000\u03ce\u03cf"+ - "\u0003P(\u0000\u03cf\u03d0\u0005|\u0000\u0000\u03d0e\u0001\u0000\u0000"+ - "\u0000\u03d1\u03d4\u0005\u0003\u0000\u0000\u03d2\u03d5\u0003\u017c\u00be"+ - "\u0000\u03d3\u03d5\u0005m\u0000\u0000\u03d4\u03d2\u0001\u0000\u0000\u0000"+ - "\u03d4\u03d3\u0001\u0000\u0000\u0000\u03d5\u03d6\u0001\u0000\u0000\u0000"+ - "\u03d6\u03d7\u0005t\u0000\u0000\u03d7\u03da\u0003\u0120\u0090\u0000\u03d8"+ - "\u03d9\u0005e\u0000\u0000\u03d9\u03db\u0003\u009aM\u0000\u03da\u03d8\u0001"+ - "\u0000\u0000\u0000\u03da\u03db\u0001\u0000\u0000\u0000\u03db\u03dc\u0001"+ - "\u0000\u0000\u0000\u03dc\u03dd\u0005s\u0000\u0000\u03ddg\u0001\u0000\u0000"+ - "\u0000\u03de\u03e0\u0005\u001a\u0000\u0000\u03df\u03e1\u0005\u0014\u0000"+ - "\u0000\u03e0\u03df\u0001\u0000\u0000\u0000\u03e0\u03e1\u0001\u0000\u0000"+ - "\u0000\u03e1\u03e2\u0001\u0000\u0000\u0000\u03e2\u03e3\u0003\u017c\u00be"+ - "\u0000\u03e3\u03e4\u0005t\u0000\u0000\u03e4\u03e7\u0003\u0120\u0090\u0000"+ - "\u03e5\u03e6\u0005e\u0000\u0000\u03e6\u03e8\u0003\u009aM\u0000\u03e7\u03e5"+ - "\u0001\u0000\u0000\u0000\u03e7\u03e8\u0001\u0000\u0000\u0000\u03e8\u03e9"+ - "\u0001\u0000\u0000\u0000\u03e9\u03ea\u0005s\u0000\u0000\u03eai\u0001\u0000"+ - "\u0000\u0000\u03eb\u03ed\u0005 \u0000\u0000\u03ec\u03eb\u0001\u0000\u0000"+ - "\u0000\u03ec\u03ed\u0001\u0000\u0000\u0000\u03ed\u03ee\u0001\u0000\u0000"+ - "\u0000\u03ee\u03ef\u0005\u001d\u0000\u0000\u03ef\u03f1\u0003\u017c\u00be"+ - "\u0000\u03f0\u03f2\u0003v;\u0000\u03f1\u03f0\u0001\u0000\u0000\u0000\u03f1"+ - "\u03f2\u0001\u0000\u0000\u0000\u03f2\u03f7\u0001\u0000\u0000\u0000\u03f3"+ - "\u03f5\u0005t\u0000\u0000\u03f4\u03f6\u0003\u014a\u00a5\u0000\u03f5\u03f4"+ - "\u0001\u0000\u0000\u0000\u03f5\u03f6\u0001\u0000\u0000\u0000\u03f6\u03f8"+ - "\u0001\u0000\u0000\u0000\u03f7\u03f3\u0001\u0000\u0000\u0000\u03f7\u03f8"+ - "\u0001\u0000\u0000\u0000\u03f8\u03fa\u0001\u0000\u0000\u0000\u03f9\u03fb"+ - "\u0003\u0080@\u0000\u03fa\u03f9\u0001\u0000\u0000\u0000\u03fa\u03fb\u0001"+ - "\u0000\u0000\u0000\u03fb\u03fc\u0001\u0000\u0000\u0000\u03fc\u0400\u0005"+ - "{\u0000\u0000\u03fd\u03ff\u0003\u008cF\u0000\u03fe\u03fd\u0001\u0000\u0000"+ - "\u0000\u03ff\u0402\u0001\u0000\u0000\u0000\u0400\u03fe\u0001\u0000\u0000"+ - "\u0000\u0400\u0401\u0001\u0000\u0000\u0000\u0401\u0406\u0001\u0000\u0000"+ - "\u0000\u0402\u0400\u0001\u0000\u0000\u0000\u0403\u0405\u0003\u008aE\u0000"+ - "\u0404\u0403\u0001\u0000\u0000\u0000\u0405\u0408\u0001\u0000\u0000\u0000"+ - "\u0406\u0404\u0001\u0000\u0000\u0000\u0406\u0407\u0001\u0000\u0000\u0000"+ - "\u0407\u0409\u0001\u0000\u0000\u0000\u0408\u0406\u0001\u0000\u0000\u0000"+ - "\u0409\u040a\u0005|\u0000\u0000\u040ak\u0001\u0000\u0000\u0000\u040b\u040e"+ - "\u0003n7\u0000\u040c\u040e\u0003p8\u0000\u040d\u040b\u0001\u0000\u0000"+ - "\u0000\u040d\u040c\u0001\u0000\u0000\u0000\u040em\u0001\u0000\u0000\u0000"+ - "\u040f\u0411\u0005\r\u0000\u0000\u0410\u0412\u0003v;\u0000\u0411\u0410"+ - "\u0001\u0000\u0000\u0000\u0411\u0412\u0001\u0000\u0000\u0000\u0412\u0413"+ - "\u0001\u0000\u0000\u0000\u0413\u0415\u0003\u0120\u0090\u0000\u0414\u0416"+ - "\u0003\u0080@\u0000\u0415\u0414\u0001\u0000\u0000\u0000\u0415\u0416\u0001"+ - "\u0000\u0000\u0000\u0416\u0417\u0001\u0000\u0000\u0000\u0417\u041b\u0005"+ - "{\u0000\u0000\u0418\u041a\u0003\u008cF\u0000\u0419\u0418\u0001\u0000\u0000"+ - "\u0000\u041a\u041d\u0001\u0000\u0000\u0000\u041b\u0419\u0001\u0000\u0000"+ - "\u0000\u041b\u041c\u0001\u0000\u0000\u0000\u041c\u0421\u0001\u0000\u0000"+ - "\u0000\u041d\u041b\u0001\u0000\u0000\u0000\u041e\u0420\u0003\u008aE\u0000"+ - "\u041f\u041e\u0001\u0000\u0000\u0000\u0420\u0423\u0001\u0000\u0000\u0000"+ - "\u0421\u041f\u0001\u0000\u0000\u0000\u0421\u0422\u0001\u0000\u0000\u0000"+ - "\u0422\u0424\u0001\u0000\u0000\u0000\u0423\u0421\u0001\u0000\u0000\u0000"+ - "\u0424\u0425\u0005|\u0000\u0000\u0425o\u0001\u0000\u0000\u0000\u0426\u0428"+ - "\u0005 \u0000\u0000\u0427\u0426\u0001\u0000\u0000\u0000\u0427\u0428\u0001"+ - "\u0000\u0000\u0000\u0428\u0429\u0001\u0000\u0000\u0000\u0429\u042b\u0005"+ - "\r\u0000\u0000\u042a\u042c\u0003v;\u0000\u042b\u042a\u0001\u0000\u0000"+ - "\u0000\u042b\u042c\u0001\u0000\u0000\u0000\u042c\u042e\u0001\u0000\u0000"+ - "\u0000\u042d\u042f\u0005V\u0000\u0000\u042e\u042d\u0001\u0000\u0000\u0000"+ - "\u042e\u042f\u0001\u0000\u0000\u0000\u042f\u0430\u0001\u0000\u0000\u0000"+ - "\u0430\u0431\u0003\u0172\u00b9\u0000\u0431\u0432\u0005\u000b\u0000\u0000"+ - "\u0432\u0434\u0003\u0120\u0090\u0000\u0433\u0435\u0003\u0080@\u0000\u0434"+ - "\u0433\u0001\u0000\u0000\u0000\u0434\u0435\u0001\u0000\u0000\u0000\u0435"+ - "\u0436\u0001\u0000\u0000\u0000\u0436\u043a\u0005{\u0000\u0000\u0437\u0439"+ - "\u0003\u008cF\u0000\u0438\u0437\u0001\u0000\u0000\u0000\u0439\u043c\u0001"+ - "\u0000\u0000\u0000\u043a\u0438\u0001\u0000\u0000\u0000\u043a\u043b\u0001"+ - "\u0000\u0000\u0000\u043b\u0440\u0001\u0000\u0000\u0000\u043c\u043a\u0001"+ - "\u0000\u0000\u0000\u043d\u043f\u0003\u008aE\u0000\u043e\u043d\u0001\u0000"+ - "\u0000\u0000\u043f\u0442\u0001\u0000\u0000\u0000\u0440\u043e\u0001\u0000"+ - "\u0000\u0000\u0440\u0441\u0001\u0000\u0000\u0000\u0441\u0443\u0001\u0000"+ - "\u0000\u0000\u0442\u0440\u0001\u0000\u0000\u0000\u0443\u0444\u0005|\u0000"+ - "\u0000\u0444q\u0001\u0000\u0000\u0000\u0445\u0447\u0005 \u0000\u0000\u0446"+ - "\u0445\u0001\u0000\u0000\u0000\u0446\u0447\u0001\u0000\u0000\u0000\u0447"+ - "\u0448\u0001\u0000\u0000\u0000\u0448\u044a\u0005\b\u0000\u0000\u0449\u044b"+ - "\u00038\u001c\u0000\u044a\u0449\u0001\u0000\u0000\u0000\u044a\u044b\u0001"+ - "\u0000\u0000\u0000\u044b\u044c\u0001\u0000\u0000\u0000\u044c\u0450\u0005"+ - "{\u0000\u0000\u044d\u044f\u0003\u008cF\u0000\u044e\u044d\u0001\u0000\u0000"+ - "\u0000\u044f\u0452\u0001\u0000\u0000\u0000\u0450\u044e\u0001\u0000\u0000"+ - "\u0000\u0450\u0451\u0001\u0000\u0000\u0000\u0451\u0456\u0001\u0000\u0000"+ - "\u0000\u0452\u0450\u0001\u0000\u0000\u0000\u0453\u0455\u0003t:\u0000\u0454"+ - "\u0453\u0001\u0000\u0000\u0000\u0455\u0458\u0001\u0000\u0000\u0000\u0456"+ - "\u0454\u0001\u0000\u0000\u0000\u0456\u0457\u0001\u0000\u0000\u0000\u0457"+ - "\u0459\u0001\u0000\u0000\u0000\u0458\u0456\u0001\u0000\u0000\u0000\u0459"+ - "\u045a\u0005|\u0000\u0000\u045as\u0001\u0000\u0000\u0000\u045b\u045d\u0003"+ - "\u008eG\u0000\u045c\u045b\u0001\u0000\u0000\u0000\u045d\u0460\u0001\u0000"+ - "\u0000\u0000\u045e\u045c\u0001\u0000\u0000\u0000\u045e\u045f\u0001\u0000"+ - "\u0000\u0000\u045f\u0469\u0001\u0000\u0000\u0000\u0460\u045e\u0001\u0000"+ - "\u0000\u0000\u0461\u046a\u0003\n\u0005\u0000\u0462\u0464\u0003\u017a\u00bd"+ - "\u0000\u0463\u0462\u0001\u0000\u0000\u0000\u0463\u0464\u0001\u0000\u0000"+ - "\u0000\u0464\u0467\u0001\u0000\u0000\u0000\u0465\u0468\u0003h4\u0000\u0466"+ - "\u0468\u00034\u001a\u0000\u0467\u0465\u0001\u0000\u0000\u0000\u0467\u0466"+ - "\u0001\u0000\u0000\u0000\u0468\u046a\u0001\u0000\u0000\u0000\u0469\u0461"+ - "\u0001\u0000\u0000\u0000\u0469\u0463\u0001\u0000\u0000\u0000\u046au\u0001"+ - "\u0000\u0000\u0000\u046b\u0478\u0005i\u0000\u0000\u046c\u046d\u0003x<"+ - "\u0000\u046d\u046e\u0005r\u0000\u0000\u046e\u0470\u0001\u0000\u0000\u0000"+ - "\u046f\u046c\u0001\u0000\u0000\u0000\u0470\u0473\u0001\u0000\u0000\u0000"+ - "\u0471\u046f\u0001\u0000\u0000\u0000\u0471\u0472\u0001\u0000\u0000\u0000"+ - "\u0472\u0474\u0001\u0000\u0000\u0000\u0473\u0471\u0001\u0000\u0000\u0000"+ - "\u0474\u0476\u0003x<\u0000\u0475\u0477\u0005r\u0000\u0000\u0476\u0475"+ - "\u0001\u0000\u0000\u0000\u0476\u0477\u0001\u0000\u0000\u0000\u0477\u0479"+ - "\u0001\u0000\u0000\u0000\u0478\u0471\u0001\u0000\u0000\u0000\u0478\u0479"+ - "\u0001\u0000\u0000\u0000\u0479\u047a\u0001\u0000\u0000\u0000\u047a\u047b"+ - "\u0005h\u0000\u0000\u047bw\u0001\u0000\u0000\u0000\u047c\u047e\u0003\u008e"+ - "G\u0000\u047d\u047c\u0001\u0000\u0000\u0000\u047e\u0481\u0001\u0000\u0000"+ - "\u0000\u047f\u047d\u0001\u0000\u0000\u0000\u047f\u0480\u0001\u0000\u0000"+ - "\u0000\u0480\u0485\u0001\u0000\u0000\u0000\u0481\u047f\u0001\u0000\u0000"+ - "\u0000\u0482\u0486\u0003z=\u0000\u0483\u0486\u0003|>\u0000\u0484\u0486"+ - "\u0003~?\u0000\u0485\u0482\u0001\u0000\u0000\u0000\u0485\u0483\u0001\u0000"+ - "\u0000\u0000\u0485\u0484\u0001\u0000\u0000\u0000\u0486y\u0001\u0000\u0000"+ - "\u0000\u0487\u0489\u0003\u008eG\u0000\u0488\u0487\u0001\u0000\u0000\u0000"+ - "\u0488\u0489\u0001\u0000\u0000\u0000\u0489\u048a\u0001\u0000\u0000\u0000"+ - "\u048a\u048d\u0005O\u0000\u0000\u048b\u048c\u0005t\u0000\u0000\u048c\u048e"+ - "\u0003\u0150\u00a8\u0000\u048d\u048b\u0001\u0000\u0000\u0000\u048d\u048e"+ - "\u0001\u0000\u0000\u0000\u048e{\u0001\u0000\u0000\u0000\u048f\u0491\u0003"+ - "\u008eG\u0000\u0490\u048f\u0001\u0000\u0000\u0000\u0490\u0491\u0001\u0000"+ - "\u0000\u0000\u0491\u0492\u0001\u0000\u0000\u0000\u0492\u0497\u0003\u017c"+ - "\u00be\u0000\u0493\u0495\u0005t\u0000\u0000\u0494\u0496\u0003\u014a\u00a5"+ - "\u0000\u0495\u0494\u0001\u0000\u0000\u0000\u0495\u0496\u0001\u0000\u0000"+ - "\u0000\u0496\u0498\u0001\u0000\u0000\u0000\u0497\u0493\u0001\u0000\u0000"+ - "\u0000\u0497\u0498\u0001\u0000\u0000\u0000\u0498\u049b\u0001\u0000\u0000"+ - "\u0000\u0499\u049a\u0005e\u0000\u0000\u049a\u049c\u0003\u0120\u0090\u0000"+ - "\u049b\u0499\u0001\u0000\u0000\u0000\u049b\u049c\u0001\u0000\u0000\u0000"+ - "\u049c}\u0001\u0000\u0000\u0000\u049d\u049e\u0005\u0003\u0000\u0000\u049e"+ - "\u049f\u0003\u017c\u00be\u0000\u049f\u04a0\u0005t\u0000\u0000\u04a0\u04a1"+ - "\u0003\u0120\u0090\u0000\u04a1\u007f\u0001\u0000\u0000\u0000\u04a2\u04a8"+ - "\u0005\"\u0000\u0000\u04a3\u04a4\u0003\u0082A\u0000\u04a4\u04a5\u0005"+ - "r\u0000\u0000\u04a5\u04a7\u0001\u0000\u0000\u0000\u04a6\u04a3\u0001\u0000"+ - "\u0000\u0000\u04a7\u04aa\u0001\u0000\u0000\u0000\u04a8\u04a6\u0001\u0000"+ - "\u0000\u0000\u04a8\u04a9\u0001\u0000\u0000\u0000\u04a9\u04ac\u0001\u0000"+ - "\u0000\u0000\u04aa\u04a8\u0001\u0000\u0000\u0000\u04ab\u04ad\u0003\u0082"+ - "A\u0000\u04ac\u04ab\u0001\u0000\u0000\u0000\u04ac\u04ad\u0001\u0000\u0000"+ - "\u0000\u04ad\u0081\u0001\u0000\u0000\u0000\u04ae\u04b1\u0003\u0084B\u0000"+ - "\u04af\u04b1\u0003\u0086C\u0000\u04b0\u04ae\u0001\u0000\u0000\u0000\u04b0"+ - "\u04af\u0001\u0000\u0000\u0000\u04b1\u0083\u0001\u0000\u0000\u0000\u04b2"+ - "\u04b3\u0003\u0152\u00a9\u0000\u04b3\u04b4\u0005t\u0000\u0000\u04b4\u04b5"+ - "\u0003\u0150\u00a8\u0000\u04b5\u0085\u0001\u0000\u0000\u0000\u04b6\u04b8"+ - "\u0003\u0088D\u0000\u04b7\u04b6\u0001\u0000\u0000\u0000\u04b7\u04b8\u0001"+ - "\u0000\u0000\u0000\u04b8\u04b9\u0001\u0000\u0000\u0000\u04b9\u04ba\u0003"+ - "\u0120\u0090\u0000\u04ba\u04bc\u0005t\u0000\u0000\u04bb\u04bd\u0003\u014a"+ - "\u00a5\u0000\u04bc\u04bb\u0001\u0000\u0000\u0000\u04bc\u04bd\u0001\u0000"+ - "\u0000\u0000\u04bd\u0087\u0001\u0000\u0000\u0000\u04be\u04bf\u0005\u000b"+ - "\u0000\u0000\u04bf\u04c0\u0003v;\u0000\u04c0\u0089\u0001\u0000\u0000\u0000"+ - "\u04c1\u04c3\u0003\u008eG\u0000\u04c2\u04c1\u0001\u0000\u0000\u0000\u04c3"+ - "\u04c6\u0001\u0000\u0000\u0000\u04c4\u04c2\u0001\u0000\u0000\u0000\u04c4"+ - "\u04c5\u0001\u0000\u0000\u0000\u04c5\u04d0\u0001\u0000\u0000\u0000\u04c6"+ - "\u04c4\u0001\u0000\u0000\u0000\u04c7\u04d1\u0003\n\u0005\u0000\u04c8\u04ca"+ - "\u0003\u017a\u00bd\u0000\u04c9\u04c8\u0001\u0000\u0000\u0000\u04c9\u04ca"+ - "\u0001\u0000\u0000\u0000\u04ca\u04ce\u0001\u0000\u0000\u0000\u04cb\u04cf"+ - "\u0003H$\u0000\u04cc\u04cf\u0003f3\u0000\u04cd\u04cf\u00034\u001a\u0000"+ - "\u04ce\u04cb\u0001\u0000\u0000\u0000\u04ce\u04cc\u0001\u0000\u0000\u0000"+ - "\u04ce\u04cd\u0001\u0000\u0000\u0000\u04cf\u04d1\u0001\u0000\u0000\u0000"+ - "\u04d0\u04c7\u0001\u0000\u0000\u0000\u04d0\u04c9\u0001\u0000\u0000\u0000"+ - "\u04d1\u008b\u0001\u0000\u0000\u0000\u04d2\u04d3\u0005x\u0000\u0000\u04d3"+ - "\u04d4\u0005V\u0000\u0000\u04d4\u04d5\u0005}\u0000\u0000\u04d5\u04d6\u0003"+ - "\u0090H\u0000\u04d6\u04d7\u0005~\u0000\u0000\u04d7\u008d\u0001\u0000\u0000"+ - "\u0000\u04d8\u04d9\u0005x\u0000\u0000\u04d9\u04da\u0005}\u0000\u0000\u04da"+ - "\u04db\u0003\u0090H\u0000\u04db\u04dc\u0005~\u0000\u0000\u04dc\u008f\u0001"+ - "\u0000\u0000\u0000\u04dd\u04df\u0003\u0154\u00aa\u0000\u04de\u04e0\u0003"+ - "\u0092I\u0000\u04df\u04de\u0001\u0000\u0000\u0000\u04df\u04e0\u0001\u0000"+ - "\u0000\u0000\u04e0\u0091\u0001\u0000\u0000\u0000\u04e1\u04e5\u0003\u0004"+ - "\u0002\u0000\u04e2\u04e3\u0005e\u0000\u0000\u04e3\u04e5\u0003\u00a4R\u0000"+ - "\u04e4\u04e1\u0001\u0000\u0000\u0000\u04e4\u04e2\u0001\u0000\u0000\u0000"+ - "\u04e5\u0093\u0001\u0000\u0000\u0000\u04e6\u04ec\u0005s\u0000\u0000\u04e7"+ - "\u04ec\u0003\"\u0011\u0000\u04e8\u04ec\u0003\u0096K\u0000\u04e9\u04ec"+ - "\u0003\u0098L\u0000\u04ea\u04ec\u0003\n\u0005\u0000\u04eb\u04e6\u0001"+ - "\u0000\u0000\u0000\u04eb\u04e7\u0001\u0000\u0000\u0000\u04eb\u04e8\u0001"+ - "\u0000\u0000\u0000\u04eb\u04e9\u0001\u0000\u0000\u0000\u04eb\u04ea\u0001"+ - "\u0000\u0000\u0000\u04ec\u0095\u0001\u0000\u0000\u0000\u04ed\u04ef\u0003"+ - "\u008eG\u0000\u04ee\u04ed\u0001\u0000\u0000\u0000\u04ef\u04f2\u0001\u0000"+ - "\u0000\u0000\u04f0\u04ee\u0001\u0000\u0000\u0000\u04f0\u04f1\u0001\u0000"+ - "\u0000\u0000\u04f1\u04f3\u0001\u0000\u0000\u0000\u04f2\u04f0\u0001\u0000"+ - "\u0000\u0000\u04f3\u04f4\u0005\u000f\u0000\u0000\u04f4\u04f7\u0003\u00f4"+ - "z\u0000\u04f5\u04f6\u0005t\u0000\u0000\u04f6\u04f8\u0003\u0120\u0090\u0000"+ - "\u04f7\u04f5\u0001\u0000\u0000\u0000\u04f7\u04f8\u0001\u0000\u0000\u0000"+ - "\u04f8\u04fb\u0001\u0000\u0000\u0000\u04f9\u04fa\u0005e\u0000\u0000\u04fa"+ - "\u04fc\u0003\u009aM\u0000\u04fb\u04f9\u0001\u0000\u0000\u0000\u04fb\u04fc"+ - "\u0001\u0000\u0000\u0000\u04fc\u04fd\u0001\u0000\u0000\u0000\u04fd\u04fe"+ - "\u0005s\u0000\u0000\u04fe\u0097\u0001\u0000\u0000\u0000\u04ff\u0500\u0003"+ - "\u009aM\u0000\u0500\u0501\u0005s\u0000\u0000\u0501\u0507\u0001\u0000\u0000"+ - "\u0000\u0502\u0504\u0003\u00a2Q\u0000\u0503\u0505\u0005s\u0000\u0000\u0504"+ - "\u0503\u0001\u0000\u0000\u0000\u0504\u0505\u0001\u0000\u0000\u0000\u0505"+ - "\u0507\u0001\u0000\u0000\u0000\u0506\u04ff\u0001\u0000\u0000\u0000\u0506"+ - "\u0502\u0001\u0000\u0000\u0000\u0507\u0099\u0001\u0000\u0000\u0000\u0508"+ - "\u050a\u0006M\uffff\uffff\u0000\u0509\u050b\u0003\u008eG\u0000\u050a\u0509"+ - "\u0001\u0000\u0000\u0000\u050b\u050c\u0001\u0000\u0000\u0000\u050c\u050a"+ - "\u0001\u0000\u0000\u0000\u050c\u050d\u0001\u0000\u0000\u0000\u050d\u050e"+ - "\u0001\u0000\u0000\u0000\u050e\u050f\u0003\u009aM(\u050f\u0559\u0001\u0000"+ - "\u0000\u0000\u0510\u0559\u0003\u00a4R\u0000\u0511\u0559\u0003\u00a6S\u0000"+ - "\u0512\u0514\u0007\u0002\u0000\u0000\u0513\u0515\u0005\u0014\u0000\u0000"+ - "\u0514\u0513\u0001\u0000\u0000\u0000\u0514\u0515\u0001\u0000\u0000\u0000"+ - "\u0515\u0516\u0001\u0000\u0000\u0000\u0516\u0559\u0003\u009aM\u001e\u0517"+ - "\u0518\u0005R\u0000\u0000\u0518\u0559\u0003\u009aM\u001d\u0519\u051a\u0007"+ - "\u0003\u0000\u0000\u051a\u0559\u0003\u009aM\u001c\u051b\u051d\u0005o\u0000"+ - "\u0000\u051c\u051e\u0003\u009aM\u0000\u051d\u051c\u0001\u0000\u0000\u0000"+ - "\u051d\u051e\u0001\u0000\u0000\u0000\u051e\u0559\u0001\u0000\u0000\u0000"+ - "\u051f\u0520\u0005q\u0000\u0000\u0520\u0559\u0003\u009aM\u000f\u0521\u0523"+ - "\u0005\u0004\u0000\u0000\u0522\u0524\u0005O\u0000\u0000\u0523\u0522\u0001"+ - "\u0000\u0000\u0000\u0523\u0524\u0001\u0000\u0000\u0000\u0524\u0526\u0001"+ - "\u0000\u0000\u0000\u0525\u0527\u0003\u009aM\u0000\u0526\u0525\u0001\u0000"+ - "\u0000\u0000\u0526\u0527\u0001\u0000\u0000\u0000\u0527\u0559\u0001\u0000"+ - "\u0000\u0000\u0528\u052a\u0005\u0002\u0000\u0000\u0529\u052b\u0005O\u0000"+ - "\u0000\u052a\u0529\u0001\u0000\u0000\u0000\u052a\u052b\u0001\u0000\u0000"+ - "\u0000\u052b\u052d\u0001\u0000\u0000\u0000\u052c\u052e\u0003\u009aM\u0000"+ - "\u052d\u052c\u0001\u0000\u0000\u0000\u052d\u052e\u0001\u0000\u0000\u0000"+ - "\u052e\u0559\u0001\u0000\u0000\u0000\u052f\u0531\u0005\u0017\u0000\u0000"+ - "\u0530\u0532\u0003\u009aM\u0000\u0531\u0530\u0001\u0000\u0000\u0000\u0531"+ - "\u0532\u0001\u0000\u0000\u0000\u0532\u0559\u0001\u0000\u0000\u0000\u0533"+ - "\u0537\u0005\u007f\u0000\u0000\u0534\u0536\u0003\u008cF\u0000\u0535\u0534"+ - "\u0001\u0000\u0000\u0000\u0536\u0539\u0001\u0000\u0000\u0000\u0537\u0535"+ - "\u0001\u0000\u0000\u0000\u0537\u0538\u0001\u0000\u0000\u0000\u0538\u053a"+ - "\u0001\u0000\u0000\u0000\u0539\u0537\u0001\u0000\u0000\u0000\u053a\u053b"+ - "\u0003\u009aM\u0000\u053b\u053c\u0005\u0080\u0000\u0000\u053c\u0559\u0001"+ - "\u0000\u0000\u0000\u053d\u0541\u0005}\u0000\u0000\u053e\u0540\u0003\u008c"+ - "F\u0000\u053f\u053e\u0001\u0000\u0000\u0000\u0540\u0543\u0001\u0000\u0000"+ - "\u0000\u0541\u053f\u0001\u0000\u0000\u0000\u0541\u0542\u0001\u0000\u0000"+ - "\u0000\u0542\u0545\u0001\u0000\u0000\u0000\u0543\u0541\u0001\u0000\u0000"+ - "\u0000\u0544\u0546\u0003\u00b0X\u0000\u0545\u0544\u0001\u0000\u0000\u0000"+ - "\u0545\u0546\u0001\u0000\u0000\u0000\u0546\u0547\u0001\u0000\u0000\u0000"+ - "\u0547\u0559\u0005~\u0000\u0000\u0548\u054c\u0005\u007f\u0000\u0000\u0549"+ - "\u054b\u0003\u008cF\u0000\u054a\u0549\u0001\u0000\u0000\u0000\u054b\u054e"+ - "\u0001\u0000\u0000\u0000\u054c\u054a\u0001\u0000\u0000\u0000\u054c\u054d"+ - "\u0001\u0000\u0000\u0000\u054d\u0550\u0001\u0000\u0000\u0000\u054e\u054c"+ - "\u0001\u0000\u0000\u0000\u054f\u0551\u0003\u00b2Y\u0000\u0550\u054f\u0001"+ - "\u0000\u0000\u0000\u0550\u0551\u0001\u0000\u0000\u0000\u0551\u0552\u0001"+ - "\u0000\u0000\u0000\u0552\u0559\u0005\u0080\u0000\u0000\u0553\u0559\u0003"+ - "\u00b6[\u0000\u0554\u0559\u0003\u00c4b\u0000\u0555\u0559\u0003\u00d2i"+ - "\u0000\u0556\u0559\u0003\u00a2Q\u0000\u0557\u0559\u0003\u0002\u0001\u0000"+ - "\u0558\u0508\u0001\u0000\u0000\u0000\u0558\u0510\u0001\u0000\u0000\u0000"+ - "\u0558\u0511\u0001\u0000\u0000\u0000\u0558\u0512\u0001\u0000\u0000\u0000"+ - "\u0558\u0517\u0001\u0000\u0000\u0000\u0558\u0519\u0001\u0000\u0000\u0000"+ - "\u0558\u051b\u0001\u0000\u0000\u0000\u0558\u051f\u0001\u0000\u0000\u0000"+ - "\u0558\u0521\u0001\u0000\u0000\u0000\u0558\u0528\u0001\u0000\u0000\u0000"+ - "\u0558\u052f\u0001\u0000\u0000\u0000\u0558\u0533\u0001\u0000\u0000\u0000"+ - "\u0558\u053d\u0001\u0000\u0000\u0000\u0558\u0548\u0001\u0000\u0000\u0000"+ - "\u0558\u0553\u0001\u0000\u0000\u0000\u0558\u0554\u0001\u0000\u0000\u0000"+ - "\u0558\u0555\u0001\u0000\u0000\u0000\u0558\u0556\u0001\u0000\u0000\u0000"+ - "\u0558\u0557\u0001\u0000\u0000\u0000\u0559\u05aa\u0001\u0000\u0000\u0000"+ - "\u055a\u055b\n\u001a\u0000\u0000\u055b\u055c\u0007\u0004\u0000\u0000\u055c"+ - "\u05a9\u0003\u009aM\u001b\u055d\u055e\n\u0019\u0000\u0000\u055e\u055f"+ - "\u0007\u0005\u0000\u0000\u055f\u05a9\u0003\u009aM\u001a\u0560\u0561\n"+ - "\u0018\u0000\u0000\u0561\u0562\u0005W\u0000\u0000\u0562\u05a9\u0003\u009a"+ - "M\u0019\u0563\u0564\n\u0017\u0000\u0000\u0564\u0565\u0005U\u0000\u0000"+ - "\u0565\u05a9\u0003\u009aM\u0018\u0566\u0567\n\u0016\u0000\u0000\u0567"+ - "\u0568\u0005X\u0000\u0000\u0568\u05a9\u0003\u009aM\u0017\u0569\u056a\n"+ - "\u0015\u0000\u0000\u056a\u056b\u0003\u009cN\u0000\u056b\u056c\u0003\u009a"+ - "M\u0016\u056c\u05a9\u0001\u0000\u0000\u0000\u056d\u056e\n\u0014\u0000"+ - "\u0000\u056e\u056f\u0003\u009eO\u0000\u056f\u0570\u0003\u009aM\u0015\u0570"+ - "\u05a9\u0001\u0000\u0000\u0000\u0571\u0572\n\u0013\u0000\u0000\u0572\u0573"+ - "\u0005Y\u0000\u0000\u0573\u05a9\u0003\u009aM\u0014\u0574\u0575\n\u0012"+ - "\u0000\u0000\u0575\u0576\u0005Z\u0000\u0000\u0576\u05a9\u0003\u009aM\u0013"+ - "\u0577\u0578\n\u000e\u0000\u0000\u0578\u0579\u0005q\u0000\u0000\u0579"+ - "\u05a9\u0003\u009aM\u000f\u057a\u057b\n\r\u0000\u0000\u057b\u057c\u0005"+ - "e\u0000\u0000\u057c\u05a9\u0003\u009aM\u000e\u057d\u057e\n\f\u0000\u0000"+ - "\u057e\u057f\u0003\u00a0P\u0000\u057f\u0580\u0003\u009aM\r\u0580\u05a9"+ - "\u0001\u0000\u0000\u0000\u0581\u0582\n%\u0000\u0000\u0582\u0583\u0005"+ - "n\u0000\u0000\u0583\u0584\u0003\u015a\u00ad\u0000\u0584\u0586\u0005\u007f"+ - "\u0000\u0000\u0585\u0587\u0003\u00d0h\u0000\u0586\u0585\u0001\u0000\u0000"+ - "\u0000\u0586\u0587\u0001\u0000\u0000\u0000\u0587\u0588\u0001\u0000\u0000"+ - "\u0000\u0588\u0589\u0005\u0080\u0000\u0000\u0589\u05a9\u0001\u0000\u0000"+ - "\u0000\u058a\u058b\n$\u0000\u0000\u058b\u058c\u0005n\u0000\u0000\u058c"+ - "\u05a9\u0003\u017c\u00be\u0000\u058d\u058e\n#\u0000\u0000\u058e\u058f"+ - "\u0005n\u0000\u0000\u058f\u05a9\u0003\u00b4Z\u0000\u0590\u0591\n\"\u0000"+ - "\u0000\u0591\u0592\u0005n\u0000\u0000\u0592\u05a9\u0005%\u0000\u0000\u0593"+ - "\u0594\n!\u0000\u0000\u0594\u0596\u0005\u007f\u0000\u0000\u0595\u0597"+ - "\u0003\u00d0h\u0000\u0596\u0595\u0001\u0000\u0000\u0000\u0596\u0597\u0001"+ - "\u0000\u0000\u0000\u0597\u0598\u0001\u0000\u0000\u0000\u0598\u05a9\u0005"+ - "\u0080\u0000\u0000\u0599\u059a\n \u0000\u0000\u059a\u059b\u0005}\u0000"+ - "\u0000\u059b\u059c\u0003\u009aM\u0000\u059c\u059d\u0005~\u0000\u0000\u059d"+ - "\u05a9\u0001\u0000\u0000\u0000\u059e\u059f\n\u001f\u0000\u0000\u059f\u05a9"+ - "\u0005z\u0000\u0000\u05a0\u05a1\n\u001b\u0000\u0000\u05a1\u05a2\u0005"+ - "\u0001\u0000\u0000\u05a2\u05a9\u0003\u0122\u0091\u0000\u05a3\u05a4\n\u0011"+ - "\u0000\u0000\u05a4\u05a6\u0005o\u0000\u0000\u05a5\u05a7\u0003\u009aM\u0000"+ - "\u05a6\u05a5\u0001\u0000\u0000\u0000\u05a6\u05a7\u0001\u0000\u0000\u0000"+ - "\u05a7\u05a9\u0001\u0000\u0000\u0000\u05a8\u055a\u0001\u0000\u0000\u0000"+ - "\u05a8\u055d\u0001\u0000\u0000\u0000\u05a8\u0560\u0001\u0000\u0000\u0000"+ - "\u05a8\u0563\u0001\u0000\u0000\u0000\u05a8\u0566\u0001\u0000\u0000\u0000"+ - "\u05a8\u0569\u0001\u0000\u0000\u0000\u05a8\u056d\u0001\u0000\u0000\u0000"+ - "\u05a8\u0571\u0001\u0000\u0000\u0000\u05a8\u0574\u0001\u0000\u0000\u0000"+ - "\u05a8\u0577\u0001\u0000\u0000\u0000\u05a8\u057a\u0001\u0000\u0000\u0000"+ - "\u05a8\u057d\u0001\u0000\u0000\u0000\u05a8\u0581\u0001\u0000\u0000\u0000"+ - "\u05a8\u058a\u0001\u0000\u0000\u0000\u05a8\u058d\u0001\u0000\u0000\u0000"+ - "\u05a8\u0590\u0001\u0000\u0000\u0000\u05a8\u0593\u0001\u0000\u0000\u0000"+ - "\u05a8\u0599\u0001\u0000\u0000\u0000\u05a8\u059e\u0001\u0000\u0000\u0000"+ - "\u05a8\u05a0\u0001\u0000\u0000\u0000\u05a8\u05a3\u0001\u0000\u0000\u0000"+ - "\u05a9\u05ac\u0001\u0000\u0000\u0000\u05aa\u05a8\u0001\u0000\u0000\u0000"+ - "\u05aa\u05ab\u0001\u0000\u0000\u0000\u05ab\u009b\u0001\u0000\u0000\u0000"+ - "\u05ac\u05aa\u0001\u0000\u0000\u0000\u05ad\u05ae\u0005h\u0000\u0000\u05ae"+ - "\u05b2\u0005h\u0000\u0000\u05af\u05b0\u0005i\u0000\u0000\u05b0\u05b2\u0005"+ - "i\u0000\u0000\u05b1\u05ad\u0001\u0000\u0000\u0000\u05b1\u05af\u0001\u0000"+ - "\u0000\u0000\u05b2\u009d\u0001\u0000\u0000\u0000\u05b3\u05b4\u0007\u0006"+ - "\u0000\u0000\u05b4\u009f\u0001\u0000\u0000\u0000\u05b5\u05b6\u0007\u0007"+ - "\u0000\u0000\u05b6\u00a1\u0001\u0000\u0000\u0000\u05b7\u05b9\u0003\u008e"+ - "G\u0000\u05b8\u05b7\u0001\u0000\u0000\u0000\u05b9\u05ba\u0001\u0000\u0000"+ - "\u0000\u05ba\u05b8\u0001\u0000\u0000\u0000\u05ba\u05bb\u0001\u0000\u0000"+ - "\u0000\u05bb\u05bc\u0001\u0000\u0000\u0000\u05bc\u05bd\u0003\u00a2Q\u0000"+ - "\u05bd\u05c6\u0001\u0000\u0000\u0000\u05be\u05c6\u0003\u00a8T\u0000\u05bf"+ - "\u05c6\u0003\u00acV\u0000\u05c0\u05c6\u0003\u00aeW\u0000\u05c1\u05c6\u0003"+ - "\u00d8l\u0000\u05c2\u05c6\u0003\u00e4r\u0000\u05c3\u05c6\u0003\u00e6s"+ - "\u0000\u05c4\u05c6\u0003\u00e8t\u0000\u05c5\u05b8\u0001\u0000\u0000\u0000"+ - "\u05c5\u05be\u0001\u0000\u0000\u0000\u05c5\u05bf\u0001\u0000\u0000\u0000"+ - "\u05c5\u05c0\u0001\u0000\u0000\u0000\u05c5\u05c1\u0001\u0000\u0000\u0000"+ - "\u05c5\u05c2\u0001\u0000\u0000\u0000\u05c5\u05c3\u0001\u0000\u0000\u0000"+ - "\u05c5\u05c4\u0001\u0000\u0000\u0000\u05c6\u00a3\u0001\u0000\u0000\u0000"+ - "\u05c7\u05c8\u0007\b\u0000\u0000\u05c8\u00a5\u0001\u0000\u0000\u0000\u05c9"+ - "\u05cc\u0003\u0158\u00ac\u0000\u05ca\u05cc\u0003\u016c\u00b6\u0000\u05cb"+ - "\u05c9\u0001\u0000\u0000\u0000\u05cb\u05ca\u0001\u0000\u0000\u0000\u05cc"+ - "\u00a7\u0001\u0000\u0000\u0000\u05cd\u05d1\u0005{\u0000\u0000\u05ce\u05d0"+ - "\u0003\u008cF\u0000\u05cf\u05ce\u0001\u0000\u0000\u0000\u05d0\u05d3\u0001"+ - "\u0000\u0000\u0000\u05d1\u05cf\u0001\u0000\u0000\u0000\u05d1\u05d2\u0001"+ - "\u0000\u0000\u0000\u05d2\u05d5\u0001\u0000\u0000\u0000\u05d3\u05d1\u0001"+ - "\u0000\u0000\u0000\u05d4\u05d6\u0003\u00aaU\u0000\u05d5\u05d4\u0001\u0000"+ - "\u0000\u0000\u05d5\u05d6\u0001\u0000\u0000\u0000\u05d6\u05d7\u0001\u0000"+ - "\u0000\u0000\u05d7\u05d8\u0005|\u0000\u0000\u05d8\u00a9\u0001\u0000\u0000"+ - "\u0000\u05d9\u05db\u0003\u0094J\u0000\u05da\u05d9\u0001\u0000\u0000\u0000"+ - "\u05db\u05dc\u0001\u0000\u0000\u0000\u05dc\u05da\u0001\u0000\u0000\u0000"+ - "\u05dc\u05dd\u0001\u0000\u0000\u0000\u05dd\u05df\u0001\u0000\u0000\u0000"+ - "\u05de\u05e0\u0003\u009aM\u0000\u05df\u05de\u0001\u0000\u0000\u0000\u05df"+ - "\u05e0\u0001\u0000\u0000\u0000\u05e0\u05e3\u0001\u0000\u0000\u0000\u05e1"+ - "\u05e3\u0003\u009aM\u0000\u05e2\u05da\u0001\u0000\u0000\u0000\u05e2\u05e1"+ - "\u0001\u0000\u0000\u0000\u05e3\u00ab\u0001\u0000\u0000\u0000\u05e4\u05e6"+ - "\u0005$\u0000\u0000\u05e5\u05e7\u0005\u0013\u0000\u0000\u05e6\u05e5\u0001"+ - "\u0000\u0000\u0000\u05e6\u05e7\u0001\u0000\u0000\u0000\u05e7\u05e8\u0001"+ - "\u0000\u0000\u0000\u05e8\u05e9\u0003\u00a8T\u0000\u05e9\u00ad\u0001\u0000"+ - "\u0000\u0000\u05ea\u05eb\u0005 \u0000\u0000\u05eb\u05ec\u0003\u00a8T\u0000"+ - "\u05ec\u00af\u0001\u0000\u0000\u0000\u05ed\u05f2\u0003\u009aM\u0000\u05ee"+ - "\u05ef\u0005r\u0000\u0000\u05ef\u05f1\u0003\u009aM\u0000\u05f0\u05ee\u0001"+ - "\u0000\u0000\u0000\u05f1\u05f4\u0001\u0000\u0000\u0000\u05f2\u05f0\u0001"+ - "\u0000\u0000\u0000\u05f2\u05f3\u0001\u0000\u0000\u0000\u05f3\u05f6\u0001"+ - "\u0000\u0000\u0000\u05f4\u05f2\u0001\u0000\u0000\u0000\u05f5\u05f7\u0005"+ - "r\u0000\u0000\u05f6\u05f5\u0001\u0000\u0000\u0000\u05f6\u05f7\u0001\u0000"+ - "\u0000\u0000\u05f7\u05fd\u0001\u0000\u0000\u0000\u05f8\u05f9\u0003\u009a"+ - "M\u0000\u05f9\u05fa\u0005s\u0000\u0000\u05fa\u05fb\u0003\u009aM\u0000"+ - "\u05fb\u05fd\u0001\u0000\u0000\u0000\u05fc\u05ed\u0001\u0000\u0000\u0000"+ - "\u05fc\u05f8\u0001\u0000\u0000\u0000\u05fd\u00b1\u0001\u0000\u0000\u0000"+ - "\u05fe\u05ff\u0003\u009aM\u0000\u05ff\u0600\u0005r\u0000\u0000\u0600\u0602"+ - "\u0001\u0000\u0000\u0000\u0601\u05fe\u0001\u0000\u0000\u0000\u0602\u0603"+ - "\u0001\u0000\u0000\u0000\u0603\u0601\u0001\u0000\u0000\u0000\u0603\u0604"+ - "\u0001\u0000\u0000\u0000\u0604\u0606\u0001\u0000\u0000\u0000\u0605\u0607"+ - "\u0003\u009aM\u0000\u0606\u0605\u0001\u0000\u0000\u0000\u0606\u0607\u0001"+ - "\u0000\u0000\u0000\u0607\u00b3\u0001\u0000\u0000\u0000\u0608\u0609\u0005"+ - "I\u0000\u0000\u0609\u00b5\u0001\u0000\u0000\u0000\u060a\u060e\u0003\u00b8"+ - "\\\u0000\u060b\u060e\u0003\u00c0`\u0000\u060c\u060e\u0003\u00c2a\u0000"+ - "\u060d\u060a\u0001\u0000\u0000\u0000\u060d\u060b\u0001\u0000\u0000\u0000"+ - "\u060d\u060c\u0001\u0000\u0000\u0000\u060e\u00b7\u0001\u0000\u0000\u0000"+ - "\u060f\u0610\u0003\u0158\u00ac\u0000\u0610\u0614\u0005{\u0000\u0000\u0611"+ - "\u0613\u0003\u008cF\u0000\u0612\u0611\u0001\u0000\u0000\u0000\u0613\u0616"+ - "\u0001\u0000\u0000\u0000\u0614\u0612\u0001\u0000\u0000\u0000\u0614\u0615"+ - "\u0001\u0000\u0000\u0000\u0615\u0619\u0001\u0000\u0000\u0000\u0616\u0614"+ - "\u0001\u0000\u0000\u0000\u0617\u061a\u0003\u00ba]\u0000\u0618\u061a\u0003"+ - "\u00be_\u0000\u0619\u0617\u0001\u0000\u0000\u0000\u0619\u0618\u0001\u0000"+ - "\u0000\u0000\u0619\u061a\u0001\u0000\u0000\u0000\u061a\u061b\u0001\u0000"+ - "\u0000\u0000\u061b\u061c\u0005|\u0000\u0000\u061c\u00b9\u0001\u0000\u0000"+ - "\u0000\u061d\u0622\u0003\u00bc^\u0000\u061e\u061f\u0005r\u0000\u0000\u061f"+ - "\u0621\u0003\u00bc^\u0000\u0620\u061e\u0001\u0000\u0000\u0000\u0621\u0624"+ - "\u0001\u0000\u0000\u0000\u0622\u0620\u0001\u0000\u0000\u0000\u0622\u0623"+ - "\u0001\u0000\u0000\u0000\u0623\u062a\u0001\u0000\u0000\u0000\u0624\u0622"+ - "\u0001\u0000\u0000\u0000\u0625\u0626\u0005r\u0000\u0000\u0626\u062b\u0003"+ - "\u00be_\u0000\u0627\u0629\u0005r\u0000\u0000\u0628\u0627\u0001\u0000\u0000"+ - "\u0000\u0628\u0629\u0001\u0000\u0000\u0000\u0629\u062b\u0001\u0000\u0000"+ - "\u0000\u062a\u0625\u0001\u0000\u0000\u0000\u062a\u0628\u0001\u0000\u0000"+ - "\u0000\u062b\u00bb\u0001\u0000\u0000\u0000\u062c\u062e\u0003\u008eG\u0000"+ - "\u062d\u062c\u0001\u0000\u0000\u0000\u062e\u0631\u0001\u0000\u0000\u0000"+ - "\u062f\u062d\u0001\u0000\u0000\u0000\u062f\u0630\u0001\u0000\u0000\u0000"+ - "\u0630\u063a\u0001\u0000\u0000\u0000\u0631\u062f\u0001\u0000\u0000\u0000"+ - "\u0632\u063b\u0003\u017c\u00be\u0000\u0633\u0636\u0003\u017c\u00be\u0000"+ - "\u0634\u0636\u0003\u00b4Z\u0000\u0635\u0633\u0001\u0000\u0000\u0000\u0635"+ - "\u0634\u0001\u0000\u0000\u0000\u0636\u0637\u0001\u0000\u0000\u0000\u0637"+ - "\u0638\u0005t\u0000\u0000\u0638\u0639\u0003\u009aM\u0000\u0639\u063b\u0001"+ - "\u0000\u0000\u0000\u063a\u0632\u0001\u0000\u0000\u0000\u063a\u0635\u0001"+ - "\u0000\u0000\u0000\u063b\u00bd\u0001\u0000\u0000\u0000\u063c\u063d\u0005"+ - "o\u0000\u0000\u063d\u063e\u0003\u009aM\u0000\u063e\u00bf\u0001\u0000\u0000"+ - "\u0000\u063f\u0640\u0003\u0158\u00ac\u0000\u0640\u0644\u0005\u007f\u0000"+ - "\u0000\u0641\u0643\u0003\u008cF\u0000\u0642\u0641\u0001\u0000\u0000\u0000"+ - "\u0643\u0646\u0001\u0000\u0000\u0000\u0644\u0642\u0001\u0000\u0000\u0000"+ - "\u0644\u0645\u0001\u0000\u0000\u0000\u0645\u0652\u0001\u0000\u0000\u0000"+ - "\u0646\u0644\u0001\u0000\u0000\u0000\u0647\u064c\u0003\u009aM\u0000\u0648"+ - "\u0649\u0005r\u0000\u0000\u0649\u064b\u0003\u009aM\u0000\u064a\u0648\u0001"+ - "\u0000\u0000\u0000\u064b\u064e\u0001\u0000\u0000\u0000\u064c\u064a\u0001"+ - "\u0000\u0000\u0000\u064c\u064d\u0001\u0000\u0000\u0000\u064d\u0650\u0001"+ - "\u0000\u0000\u0000\u064e\u064c\u0001\u0000\u0000\u0000\u064f\u0651\u0005"+ - "r\u0000\u0000\u0650\u064f\u0001\u0000\u0000\u0000\u0650\u0651\u0001\u0000"+ - "\u0000\u0000\u0651\u0653\u0001\u0000\u0000\u0000\u0652\u0647\u0001\u0000"+ - "\u0000\u0000\u0652\u0653\u0001\u0000\u0000\u0000\u0653\u0654\u0001\u0000"+ - "\u0000\u0000\u0654\u0655\u0005\u0080\u0000\u0000\u0655\u00c1\u0001\u0000"+ - "\u0000\u0000\u0656\u0657\u0003\u0158\u00ac\u0000\u0657\u00c3\u0001\u0000"+ - "\u0000\u0000\u0658\u065c\u0003\u00c6c\u0000\u0659\u065c\u0003\u00ccf\u0000"+ - "\u065a\u065c\u0003\u00ceg\u0000\u065b\u0658\u0001\u0000\u0000\u0000\u065b"+ - "\u0659\u0001\u0000\u0000\u0000\u065b\u065a\u0001\u0000\u0000\u0000\u065c"+ - "\u00c5\u0001\u0000\u0000\u0000\u065d\u065e\u0003\u0158\u00ac\u0000\u065e"+ - "\u0660\u0005{\u0000\u0000\u065f\u0661\u0003\u00c8d\u0000\u0660\u065f\u0001"+ - "\u0000\u0000\u0000\u0660\u0661\u0001\u0000\u0000\u0000\u0661\u0662\u0001"+ - "\u0000\u0000\u0000\u0662\u0663\u0005|\u0000\u0000\u0663\u00c7\u0001\u0000"+ - "\u0000\u0000\u0664\u0669\u0003\u00cae\u0000\u0665\u0666\u0005r\u0000\u0000"+ - "\u0666\u0668\u0003\u00cae\u0000\u0667\u0665\u0001\u0000\u0000\u0000\u0668"+ - "\u066b\u0001\u0000\u0000\u0000\u0669\u0667\u0001\u0000\u0000\u0000\u0669"+ - "\u066a\u0001\u0000\u0000\u0000\u066a\u066d\u0001\u0000\u0000\u0000\u066b"+ - "\u0669\u0001\u0000\u0000\u0000\u066c\u066e\u0005r\u0000\u0000\u066d\u066c"+ - "\u0001\u0000\u0000\u0000\u066d\u066e\u0001\u0000\u0000\u0000\u066e\u00c9"+ - "\u0001\u0000\u0000\u0000\u066f\u0678\u0003\u017c\u00be\u0000\u0670\u0673"+ - "\u0003\u017c\u00be\u0000\u0671\u0673\u0003\u00b4Z\u0000\u0672\u0670\u0001"+ - "\u0000\u0000\u0000\u0672\u0671\u0001\u0000\u0000\u0000\u0673\u0674\u0001"+ - "\u0000\u0000\u0000\u0674\u0675\u0005t\u0000\u0000\u0675\u0676\u0003\u009a"+ - "M\u0000\u0676\u0678\u0001\u0000\u0000\u0000\u0677\u066f\u0001\u0000\u0000"+ - "\u0000\u0677\u0672\u0001\u0000\u0000\u0000\u0678\u00cb\u0001\u0000\u0000"+ - "\u0000\u0679\u067a\u0003\u0158\u00ac\u0000\u067a\u0686\u0005\u007f\u0000"+ - "\u0000\u067b\u0680\u0003\u009aM\u0000\u067c\u067d\u0005r\u0000\u0000\u067d"+ - "\u067f\u0003\u009aM\u0000\u067e\u067c\u0001\u0000\u0000\u0000\u067f\u0682"+ - "\u0001\u0000\u0000\u0000\u0680\u067e\u0001\u0000\u0000\u0000\u0680\u0681"+ - "\u0001\u0000\u0000\u0000\u0681\u0684\u0001\u0000\u0000\u0000\u0682\u0680"+ - "\u0001\u0000\u0000\u0000\u0683\u0685\u0005r\u0000\u0000\u0684\u0683\u0001"+ - "\u0000\u0000\u0000\u0684\u0685\u0001\u0000\u0000\u0000\u0685\u0687\u0001"+ - "\u0000\u0000\u0000\u0686\u067b\u0001\u0000\u0000\u0000\u0686\u0687\u0001"+ - "\u0000\u0000\u0000\u0687\u0688\u0001\u0000\u0000\u0000\u0688\u0689\u0005"+ - "\u0080\u0000\u0000\u0689\u00cd\u0001\u0000\u0000\u0000\u068a\u068b\u0003"+ - "\u0158\u00ac\u0000\u068b\u00cf\u0001\u0000\u0000\u0000\u068c\u0691\u0003"+ - "\u009aM\u0000\u068d\u068e\u0005r\u0000\u0000\u068e\u0690\u0003\u009aM"+ - "\u0000\u068f\u068d\u0001\u0000\u0000\u0000\u0690\u0693\u0001\u0000\u0000"+ - "\u0000\u0691\u068f\u0001\u0000\u0000\u0000\u0691\u0692\u0001\u0000\u0000"+ - "\u0000\u0692\u0695\u0001\u0000\u0000\u0000\u0693\u0691\u0001\u0000\u0000"+ - "\u0000\u0694\u0696\u0005r\u0000\u0000\u0695\u0694\u0001\u0000\u0000\u0000"+ - "\u0695\u0696\u0001\u0000\u0000\u0000\u0696\u00d1\u0001\u0000\u0000\u0000"+ - "\u0697\u0699\u0005\u0013\u0000\u0000\u0698\u0697\u0001\u0000\u0000\u0000"+ - "\u0698\u0699\u0001\u0000\u0000\u0000\u0699\u06a0\u0001\u0000\u0000\u0000"+ - "\u069a\u06a1\u0005Z\u0000\u0000\u069b\u069d\u0005X\u0000\u0000\u069c\u069e"+ - "\u0003\u00d4j\u0000\u069d\u069c\u0001\u0000\u0000\u0000\u069d\u069e\u0001"+ - "\u0000\u0000\u0000\u069e\u069f\u0001\u0000\u0000\u0000\u069f\u06a1\u0005"+ - "X\u0000\u0000\u06a0\u069a\u0001\u0000\u0000\u0000\u06a0\u069b\u0001\u0000"+ - "\u0000\u0000\u06a1\u06a7\u0001\u0000\u0000\u0000\u06a2\u06a8\u0003\u009a"+ - "M\u0000\u06a3\u06a4\u0005v\u0000\u0000\u06a4\u06a5\u0003\u0122\u0091\u0000"+ - "\u06a5\u06a6\u0003\u00a8T\u0000\u06a6\u06a8\u0001\u0000\u0000\u0000\u06a7"+ - "\u06a2\u0001\u0000\u0000\u0000\u06a7\u06a3\u0001\u0000\u0000\u0000\u06a8"+ - "\u00d3\u0001\u0000\u0000\u0000\u06a9\u06ae\u0003\u00d6k\u0000\u06aa\u06ab"+ - "\u0005r\u0000\u0000\u06ab\u06ad\u0003\u00d6k\u0000\u06ac\u06aa\u0001\u0000"+ - "\u0000\u0000\u06ad\u06b0\u0001\u0000\u0000\u0000\u06ae\u06ac\u0001\u0000"+ - "\u0000\u0000\u06ae\u06af\u0001\u0000\u0000\u0000\u06af\u06b2\u0001\u0000"+ - "\u0000\u0000\u06b0\u06ae\u0001\u0000\u0000\u0000\u06b1\u06b3\u0005r\u0000"+ - "\u0000\u06b2\u06b1\u0001\u0000\u0000\u0000\u06b2\u06b3\u0001\u0000\u0000"+ - "\u0000\u06b3\u00d5\u0001\u0000\u0000\u0000\u06b4\u06b6\u0003\u008eG\u0000"+ - "\u06b5\u06b4\u0001\u0000\u0000\u0000\u06b6\u06b9\u0001\u0000\u0000\u0000"+ - "\u06b7\u06b5\u0001\u0000\u0000\u0000\u06b7\u06b8\u0001\u0000\u0000\u0000"+ - "\u06b8\u06ba\u0001\u0000\u0000\u0000\u06b9\u06b7\u0001\u0000\u0000\u0000"+ - "\u06ba\u06bd\u0003\u00f2y\u0000\u06bb\u06bc\u0005t\u0000\u0000\u06bc\u06be"+ - "\u0003\u0120\u0090\u0000\u06bd\u06bb\u0001\u0000\u0000\u0000\u06bd\u06be"+ - "\u0001\u0000\u0000\u0000\u06be\u00d7\u0001\u0000\u0000\u0000\u06bf\u06c1"+ - "\u0003\u00e2q\u0000\u06c0\u06bf\u0001\u0000\u0000\u0000\u06c0\u06c1\u0001"+ - "\u0000\u0000\u0000\u06c1\u06c6\u0001\u0000\u0000\u0000\u06c2\u06c7\u0003"+ - "\u00dam\u0000\u06c3\u06c7\u0003\u00dcn\u0000\u06c4\u06c7\u0003\u00deo"+ - "\u0000\u06c5\u06c7\u0003\u00e0p\u0000\u06c6\u06c2\u0001\u0000\u0000\u0000"+ - "\u06c6\u06c3\u0001\u0000\u0000\u0000\u06c6\u06c4\u0001\u0000\u0000\u0000"+ - "\u06c6\u06c5\u0001\u0000\u0000\u0000\u06c7\u00d9\u0001\u0000\u0000\u0000"+ - "\u06c8\u06c9\u0005\u0010\u0000\u0000\u06c9\u06ca\u0003\u00a8T\u0000\u06ca"+ - "\u00db\u0001\u0000\u0000\u0000\u06cb\u06cc\u0005#\u0000\u0000\u06cc\u06cd"+ - "\u0003\u009aM\u0000\u06cd\u06ce\u0003\u00a8T\u0000\u06ce\u00dd\u0001\u0000"+ - "\u0000\u0000\u06cf\u06d0\u0005#\u0000\u0000\u06d0\u06d1\u0005\u000f\u0000"+ - "\u0000\u06d1\u06d2\u0003\u00f2y\u0000\u06d2\u06d3\u0005e\u0000\u0000\u06d3"+ - "\u06d4\u0003\u009aM\u0000\u06d4\u06d5\u0003\u00a8T\u0000\u06d5\u00df\u0001"+ - "\u0000\u0000\u0000\u06d6\u06d7\u0005\u000b\u0000\u0000\u06d7\u06d8\u0003"+ - "\u00f2y\u0000\u06d8\u06d9\u0005\u000e\u0000\u0000\u06d9\u06da\u0003\u009a"+ - "M\u0000\u06da\u06db\u0003\u00a8T\u0000\u06db\u00e1\u0001\u0000\u0000\u0000"+ - "\u06dc\u06dd\u0005O\u0000\u0000\u06dd\u06de\u0005t\u0000\u0000\u06de\u00e3"+ - "\u0001\u0000\u0000\u0000\u06df\u06e0\u0005\f\u0000\u0000\u06e0\u06e1\u0003"+ - "\u009aM\u0000\u06e1\u06e8\u0003\u00a8T\u0000\u06e2\u06e6\u0005\u0006\u0000"+ - "\u0000\u06e3\u06e7\u0003\u00a8T\u0000\u06e4\u06e7\u0003\u00e4r\u0000\u06e5"+ - "\u06e7\u0003\u00e6s\u0000\u06e6\u06e3\u0001\u0000\u0000\u0000\u06e6\u06e4"+ - "\u0001\u0000\u0000\u0000\u06e6\u06e5\u0001\u0000\u0000\u0000\u06e7\u06e9"+ - "\u0001\u0000\u0000\u0000\u06e8\u06e2\u0001\u0000\u0000\u0000\u06e8\u06e9"+ - "\u0001\u0000\u0000\u0000\u06e9\u00e5\u0001\u0000\u0000\u0000\u06ea\u06eb"+ - "\u0005\f\u0000\u0000\u06eb\u06ec\u0005\u000f\u0000\u0000\u06ec\u06ed\u0003"+ - "\u00f2y\u0000\u06ed\u06ee\u0005e\u0000\u0000\u06ee\u06ef\u0003\u009aM"+ - "\u0000\u06ef\u06f6\u0003\u00a8T\u0000\u06f0\u06f4\u0005\u0006\u0000\u0000"+ - "\u06f1\u06f5\u0003\u00a8T\u0000\u06f2\u06f5\u0003\u00e4r\u0000\u06f3\u06f5"+ - "\u0003\u00e6s\u0000\u06f4\u06f1\u0001\u0000\u0000\u0000\u06f4\u06f2\u0001"+ - "\u0000\u0000\u0000\u06f4\u06f3\u0001\u0000\u0000\u0000\u06f5\u06f7\u0001"+ - "\u0000\u0000\u0000\u06f6\u06f0\u0001\u0000\u0000\u0000\u06f6\u06f7\u0001"+ - "\u0000\u0000\u0000\u06f7\u00e7\u0001\u0000\u0000\u0000\u06f8\u06f9\u0005"+ - "\u0011\u0000\u0000\u06f9\u06fa\u0003\u009aM\u0000\u06fa\u06fe\u0005{\u0000"+ - "\u0000\u06fb\u06fd\u0003\u008cF\u0000\u06fc\u06fb\u0001\u0000\u0000\u0000"+ - "\u06fd\u0700\u0001\u0000\u0000\u0000\u06fe\u06fc\u0001\u0000\u0000\u0000"+ - "\u06fe\u06ff\u0001\u0000\u0000\u0000\u06ff\u0702\u0001\u0000\u0000\u0000"+ - "\u0700\u06fe\u0001\u0000\u0000\u0000\u0701\u0703\u0003\u00eau\u0000\u0702"+ - "\u0701\u0001\u0000\u0000\u0000\u0702\u0703\u0001\u0000\u0000\u0000\u0703"+ - "\u0704\u0001\u0000\u0000\u0000\u0704\u0705\u0005|\u0000\u0000\u0705\u00e9"+ - "\u0001\u0000\u0000\u0000\u0706\u0707\u0003\u00eew\u0000\u0707\u0708\u0005"+ - "w\u0000\u0000\u0708\u0709\u0003\u00ecv\u0000\u0709\u070b\u0001\u0000\u0000"+ - "\u0000\u070a\u0706\u0001\u0000\u0000\u0000\u070b\u070e\u0001\u0000\u0000"+ - "\u0000\u070c\u070a\u0001\u0000\u0000\u0000\u070c\u070d\u0001\u0000\u0000"+ - "\u0000\u070d\u070f\u0001\u0000\u0000\u0000\u070e\u070c\u0001\u0000\u0000"+ - "\u0000\u070f\u0710\u0003\u00eew\u0000\u0710\u0711\u0005w\u0000\u0000\u0711"+ - "\u0713\u0003\u009aM\u0000\u0712\u0714\u0005r\u0000\u0000\u0713\u0712\u0001"+ - "\u0000\u0000\u0000\u0713\u0714\u0001\u0000\u0000\u0000\u0714\u00eb\u0001"+ - "\u0000\u0000\u0000\u0715\u0716\u0003\u009aM\u0000\u0716\u0717\u0005r\u0000"+ - "\u0000\u0717\u071d\u0001\u0000\u0000\u0000\u0718\u071a\u0003\u00a2Q\u0000"+ - "\u0719\u071b\u0005r\u0000\u0000\u071a\u0719\u0001\u0000\u0000\u0000\u071a"+ - "\u071b\u0001\u0000\u0000\u0000\u071b\u071d\u0001\u0000\u0000\u0000\u071c"+ - "\u0715\u0001\u0000\u0000\u0000\u071c\u0718\u0001\u0000\u0000\u0000\u071d"+ - "\u00ed\u0001\u0000\u0000\u0000\u071e\u0720\u0003\u008eG\u0000\u071f\u071e"+ - "\u0001\u0000\u0000\u0000\u0720\u0723\u0001\u0000\u0000\u0000\u0721\u071f"+ - "\u0001\u0000\u0000\u0000\u0721\u0722\u0001\u0000\u0000\u0000\u0722\u0724"+ - "\u0001\u0000\u0000\u0000\u0723\u0721\u0001\u0000\u0000\u0000\u0724\u0726"+ - "\u0003\u00f2y\u0000\u0725\u0727\u0003\u00f0x\u0000\u0726\u0725\u0001\u0000"+ - "\u0000\u0000\u0726\u0727\u0001\u0000\u0000\u0000\u0727\u00ef\u0001\u0000"+ - "\u0000\u0000\u0728\u0729\u0005\f\u0000\u0000\u0729\u072a\u0003\u009aM"+ - "\u0000\u072a\u00f1\u0001\u0000\u0000\u0000\u072b\u072d\u0005X\u0000\u0000"+ - "\u072c\u072b\u0001\u0000\u0000\u0000\u072c\u072d\u0001\u0000\u0000\u0000"+ - "\u072d\u072e\u0001\u0000\u0000\u0000\u072e\u0733\u0003\u00f4z\u0000\u072f"+ - "\u0730\u0005X\u0000\u0000\u0730\u0732\u0003\u00f4z\u0000\u0731\u072f\u0001"+ - "\u0000\u0000\u0000\u0732\u0735\u0001\u0000\u0000\u0000\u0733\u0731\u0001"+ - "\u0000\u0000\u0000\u0733\u0734\u0001\u0000\u0000\u0000\u0734\u00f3\u0001"+ - "\u0000\u0000\u0000\u0735\u0733\u0001\u0000\u0000\u0000\u0736\u0739\u0003"+ - "\u00f6{\u0000\u0737\u0739\u0003\u0100\u0080\u0000\u0738\u0736\u0001\u0000"+ - "\u0000\u0000\u0738\u0737\u0001\u0000\u0000\u0000\u0739\u00f5\u0001\u0000"+ - "\u0000\u0000\u073a\u0747\u0003\u00f8|\u0000\u073b\u0747\u0003\u00fa}\u0000"+ - "\u073c\u0747\u0003\u00fc~\u0000\u073d\u0747\u0003\u00fe\u007f\u0000\u073e"+ - "\u0747\u0003\u0104\u0082\u0000\u073f\u0747\u0003\u0106\u0083\u0000\u0740"+ - "\u0747\u0003\u0110\u0088\u0000\u0741\u0747\u0003\u0114\u008a\u0000\u0742"+ - "\u0747\u0003\u0118\u008c\u0000\u0743\u0747\u0003\u011a\u008d\u0000\u0744"+ - "\u0747\u0003\u011e\u008f\u0000\u0745\u0747\u0003\u0002\u0001\u0000\u0746"+ - "\u073a\u0001\u0000\u0000\u0000\u0746\u073b\u0001\u0000\u0000\u0000\u0746"+ - "\u073c\u0001\u0000\u0000\u0000\u0746\u073d\u0001\u0000\u0000\u0000\u0746"+ - "\u073e\u0001\u0000\u0000\u0000\u0746\u073f\u0001\u0000\u0000\u0000\u0746"+ - "\u0740\u0001\u0000\u0000\u0000\u0746\u0741\u0001\u0000\u0000\u0000\u0746"+ - "\u0742\u0001\u0000\u0000\u0000\u0746\u0743\u0001\u0000\u0000\u0000\u0746"+ - "\u0744\u0001\u0000\u0000\u0000\u0746\u0745\u0001\u0000\u0000\u0000\u0747"+ - "\u00f7\u0001\u0000\u0000\u0000\u0748\u0759\u0005\u001e\u0000\u0000\u0749"+ - "\u0759\u0005\t\u0000\u0000\u074a\u0759\u0005C\u0000\u0000\u074b\u0759"+ - "\u0005F\u0000\u0000\u074c\u0759\u0005D\u0000\u0000\u074d\u0759\u0005E"+ - "\u0000\u0000\u074e\u0759\u0005G\u0000\u0000\u074f\u0759\u0005H\u0000\u0000"+ - "\u0750\u0752\u0005Q\u0000\u0000\u0751\u0750\u0001\u0000\u0000\u0000\u0751"+ - "\u0752\u0001\u0000\u0000\u0000\u0752\u0753\u0001\u0000\u0000\u0000\u0753"+ - "\u0759\u0005I\u0000\u0000\u0754\u0756\u0005Q\u0000\u0000\u0755\u0754\u0001"+ - "\u0000\u0000\u0000\u0755\u0756\u0001\u0000\u0000\u0000\u0756\u0757\u0001"+ - "\u0000\u0000\u0000\u0757\u0759\u0005N\u0000\u0000\u0758\u0748\u0001\u0000"+ - "\u0000\u0000\u0758\u0749\u0001\u0000\u0000\u0000\u0758\u074a\u0001\u0000"+ - "\u0000\u0000\u0758\u074b\u0001\u0000\u0000\u0000\u0758\u074c\u0001\u0000"+ - "\u0000\u0000\u0758\u074d\u0001\u0000\u0000\u0000\u0758\u074e\u0001\u0000"+ - "\u0000\u0000\u0758\u074f\u0001\u0000\u0000\u0000\u0758\u0751\u0001\u0000"+ - "\u0000\u0000\u0758\u0755\u0001\u0000\u0000\u0000\u0759\u00f9\u0001\u0000"+ - "\u0000\u0000\u075a\u075c\u0005\u0016\u0000\u0000\u075b\u075a\u0001\u0000"+ - "\u0000\u0000\u075b\u075c\u0001\u0000\u0000\u0000\u075c\u075e\u0001\u0000"+ - "\u0000\u0000\u075d\u075f\u0005\u0014\u0000\u0000\u075e\u075d\u0001\u0000"+ - "\u0000\u0000\u075e\u075f\u0001\u0000\u0000\u0000\u075f\u0760\u0001\u0000"+ - "\u0000\u0000\u0760\u0763\u0003\u017c\u00be\u0000\u0761\u0762\u0005l\u0000"+ - "\u0000\u0762\u0764\u0003\u00f2y\u0000\u0763\u0761\u0001\u0000\u0000\u0000"+ - "\u0763\u0764\u0001\u0000\u0000\u0000\u0764\u00fb\u0001\u0000\u0000\u0000"+ - "\u0765\u0766\u0005m\u0000\u0000\u0766\u00fd\u0001\u0000\u0000\u0000\u0767"+ - "\u0768\u0005o\u0000\u0000\u0768\u00ff\u0001\u0000\u0000\u0000\u0769\u076a"+ - "\u0003\u0102\u0081\u0000\u076a\u076b\u0005q\u0000\u0000\u076b\u076c\u0003"+ - "\u0102\u0081\u0000\u076c\u0775\u0001\u0000\u0000\u0000\u076d\u076e\u0003"+ - "\u0102\u0081\u0000\u076e\u076f\u0005o\u0000\u0000\u076f\u0775\u0001\u0000"+ - "\u0000\u0000\u0770\u0771\u0003\u0102\u0081\u0000\u0771\u0772\u0005p\u0000"+ - "\u0000\u0772\u0773\u0003\u0102\u0081\u0000\u0773\u0775\u0001\u0000\u0000"+ - "\u0000\u0774\u0769\u0001\u0000\u0000\u0000\u0774\u076d\u0001\u0000\u0000"+ - "\u0000\u0774\u0770\u0001\u0000\u0000\u0000\u0775\u0101\u0001\u0000\u0000"+ - "\u0000\u0776\u0782\u0005C\u0000\u0000\u0777\u0782\u0005F\u0000\u0000\u0778"+ - "\u077a\u0005Q\u0000\u0000\u0779\u0778\u0001\u0000\u0000\u0000\u0779\u077a"+ - "\u0001\u0000\u0000\u0000\u077a\u077b\u0001\u0000\u0000\u0000\u077b\u0782"+ - "\u0005I\u0000\u0000\u077c\u077e\u0005Q\u0000\u0000\u077d\u077c\u0001\u0000"+ - "\u0000\u0000\u077d\u077e\u0001\u0000\u0000\u0000\u077e\u077f\u0001\u0000"+ - "\u0000\u0000\u077f\u0782\u0005N\u0000\u0000\u0780\u0782\u0003\u011e\u008f"+ - "\u0000\u0781\u0776\u0001\u0000\u0000\u0000\u0781\u0777\u0001\u0000\u0000"+ - "\u0000\u0781\u0779\u0001\u0000\u0000\u0000\u0781\u077d\u0001\u0000\u0000"+ - "\u0000\u0781\u0780\u0001\u0000\u0000\u0000\u0782\u0103\u0001\u0000\u0000"+ - "\u0000\u0783\u0785\u0007\u0002\u0000\u0000\u0784\u0786\u0005\u0014\u0000"+ - "\u0000\u0785\u0784\u0001\u0000\u0000\u0000\u0785\u0786\u0001\u0000\u0000"+ - "\u0000\u0786\u0787\u0001\u0000\u0000\u0000\u0787\u0788\u0003\u00f6{\u0000"+ - "\u0788\u0105\u0001\u0000\u0000\u0000\u0789\u078a\u0003\u0158\u00ac\u0000"+ - "\u078a\u078c\u0005{\u0000\u0000\u078b\u078d\u0003\u0108\u0084\u0000\u078c"+ - "\u078b\u0001\u0000\u0000\u0000\u078c\u078d\u0001\u0000\u0000\u0000\u078d"+ - "\u078e\u0001\u0000\u0000\u0000\u078e\u078f\u0005|\u0000\u0000\u078f\u0107"+ - "\u0001\u0000\u0000\u0000\u0790\u0795\u0003\u010a\u0085\u0000\u0791\u0793"+ - "\u0005r\u0000\u0000\u0792\u0794\u0003\u010e\u0087\u0000\u0793\u0792\u0001"+ - "\u0000\u0000\u0000\u0793\u0794\u0001\u0000\u0000\u0000\u0794\u0796\u0001"+ - "\u0000\u0000\u0000\u0795\u0791\u0001\u0000\u0000\u0000\u0795\u0796\u0001"+ - "\u0000\u0000\u0000\u0796\u0799\u0001\u0000\u0000\u0000\u0797\u0799\u0003"+ - "\u010e\u0087\u0000\u0798\u0790\u0001\u0000\u0000\u0000\u0798\u0797\u0001"+ - "\u0000\u0000\u0000\u0799\u0109\u0001\u0000\u0000\u0000\u079a\u079f\u0003"+ - "\u010c\u0086\u0000\u079b\u079c\u0005r\u0000\u0000\u079c\u079e\u0003\u010c"+ - "\u0086\u0000\u079d\u079b\u0001\u0000\u0000\u0000\u079e\u07a1\u0001\u0000"+ - "\u0000\u0000\u079f\u079d\u0001\u0000\u0000\u0000\u079f\u07a0\u0001\u0000"+ - "\u0000\u0000\u07a0\u010b\u0001\u0000\u0000\u0000\u07a1\u079f\u0001\u0000"+ - "\u0000\u0000\u07a2\u07a4\u0003\u008eG\u0000\u07a3\u07a2\u0001\u0000\u0000"+ - "\u0000\u07a4\u07a7\u0001\u0000\u0000\u0000\u07a5\u07a3\u0001\u0000\u0000"+ - "\u0000\u07a5\u07a6\u0001\u0000\u0000\u0000\u07a6\u07b7\u0001\u0000\u0000"+ - "\u0000\u07a7\u07a5\u0001\u0000\u0000\u0000\u07a8\u07a9\u0003\u00b4Z\u0000"+ - "\u07a9\u07aa\u0005t\u0000\u0000\u07aa\u07ab\u0003\u00f2y\u0000\u07ab\u07b8"+ - "\u0001\u0000\u0000\u0000\u07ac\u07ad\u0003\u017c\u00be\u0000\u07ad\u07ae"+ - "\u0005t\u0000\u0000\u07ae\u07af\u0003\u00f2y\u0000\u07af\u07b8\u0001\u0000"+ - "\u0000\u0000\u07b0\u07b2\u0005\u0016\u0000\u0000\u07b1\u07b0\u0001\u0000"+ - "\u0000\u0000\u07b1\u07b2\u0001\u0000\u0000\u0000\u07b2\u07b4\u0001\u0000"+ - "\u0000\u0000\u07b3\u07b5\u0005\u0014\u0000\u0000\u07b4\u07b3\u0001\u0000"+ - "\u0000\u0000\u07b4\u07b5\u0001\u0000\u0000\u0000\u07b5\u07b6\u0001\u0000"+ - "\u0000\u0000\u07b6\u07b8\u0003\u017c\u00be\u0000\u07b7\u07a8\u0001\u0000"+ - "\u0000\u0000\u07b7\u07ac\u0001\u0000\u0000\u0000\u07b7\u07b1\u0001\u0000"+ - "\u0000\u0000\u07b8\u010d\u0001\u0000\u0000\u0000\u07b9\u07bb\u0003\u008e"+ - "G\u0000\u07ba\u07b9\u0001\u0000\u0000\u0000\u07bb\u07be\u0001\u0000\u0000"+ - "\u0000\u07bc\u07ba\u0001\u0000\u0000\u0000\u07bc\u07bd\u0001\u0000\u0000"+ - "\u0000\u07bd\u07bf\u0001\u0000\u0000\u0000\u07be\u07bc\u0001\u0000\u0000"+ - "\u0000\u07bf\u07c0\u0005o\u0000\u0000\u07c0\u010f\u0001\u0000\u0000\u0000"+ - "\u07c1\u07c2\u0003\u0158\u00ac\u0000\u07c2\u07c4\u0005\u007f\u0000\u0000"+ - "\u07c3\u07c5\u0003\u0112\u0089\u0000\u07c4\u07c3\u0001\u0000\u0000\u0000"+ - "\u07c4\u07c5\u0001\u0000\u0000\u0000\u07c5\u07c6\u0001\u0000\u0000\u0000"+ - "\u07c6\u07c7\u0005\u0080\u0000\u0000\u07c7\u0111\u0001\u0000\u0000\u0000"+ - "\u07c8\u07cd\u0003\u00f2y\u0000\u07c9\u07ca\u0005r\u0000\u0000\u07ca\u07cc"+ - "\u0003\u00f2y\u0000\u07cb\u07c9\u0001\u0000\u0000\u0000\u07cc\u07cf\u0001"+ - "\u0000\u0000\u0000\u07cd\u07cb\u0001\u0000\u0000\u0000\u07cd\u07ce\u0001"+ - "\u0000\u0000\u0000\u07ce\u07d1\u0001\u0000\u0000\u0000\u07cf\u07cd\u0001"+ - "\u0000\u0000\u0000\u07d0\u07d2\u0005r\u0000\u0000\u07d1\u07d0\u0001\u0000"+ - "\u0000\u0000\u07d1\u07d2\u0001\u0000\u0000\u0000\u07d2\u0113\u0001\u0000"+ - "\u0000\u0000\u07d3\u07d5\u0005\u007f\u0000\u0000\u07d4\u07d6\u0003\u0116"+ - "\u008b\u0000\u07d5\u07d4\u0001\u0000\u0000\u0000\u07d5\u07d6\u0001\u0000"+ - "\u0000\u0000\u07d6\u07d7\u0001\u0000\u0000\u0000\u07d7\u07d8\u0005\u0080"+ - "\u0000\u0000\u07d8\u0115\u0001\u0000\u0000\u0000\u07d9\u07da\u0003\u00f2"+ - "y\u0000\u07da\u07db\u0005r\u0000\u0000\u07db\u07e8\u0001\u0000\u0000\u0000"+ - "\u07dc\u07e8\u0003\u00fe\u007f\u0000\u07dd\u07e0\u0003\u00f2y\u0000\u07de"+ - "\u07df\u0005r\u0000\u0000\u07df\u07e1\u0003\u00f2y\u0000\u07e0\u07de\u0001"+ - "\u0000\u0000\u0000\u07e1\u07e2\u0001\u0000\u0000\u0000\u07e2\u07e0\u0001"+ - "\u0000\u0000\u0000\u07e2\u07e3\u0001\u0000\u0000\u0000\u07e3\u07e5\u0001"+ - "\u0000\u0000\u0000\u07e4\u07e6\u0005r\u0000\u0000\u07e5\u07e4\u0001\u0000"+ - "\u0000\u0000\u07e5\u07e6\u0001\u0000\u0000\u0000\u07e6\u07e8\u0001\u0000"+ - "\u0000\u0000\u07e7\u07d9\u0001\u0000\u0000\u0000\u07e7\u07dc\u0001\u0000"+ - "\u0000\u0000\u07e7\u07dd\u0001\u0000\u0000\u0000\u07e8\u0117\u0001\u0000"+ - "\u0000\u0000\u07e9\u07ea\u0005\u007f\u0000\u0000\u07ea\u07eb\u0003\u00f2"+ - "y\u0000\u07eb\u07ec\u0005\u0080\u0000\u0000\u07ec\u0119\u0001\u0000\u0000"+ - "\u0000\u07ed\u07ef\u0005}\u0000\u0000\u07ee\u07f0\u0003\u011c\u008e\u0000"+ - "\u07ef\u07ee\u0001\u0000\u0000\u0000\u07ef\u07f0\u0001\u0000\u0000\u0000"+ - "\u07f0\u07f1\u0001\u0000\u0000\u0000\u07f1\u07f2\u0005~\u0000\u0000\u07f2"+ - "\u011b\u0001\u0000\u0000\u0000\u07f3\u07f8\u0003\u00f2y\u0000\u07f4\u07f5"+ - "\u0005r\u0000\u0000\u07f5\u07f7\u0003\u00f2y\u0000\u07f6\u07f4\u0001\u0000"+ - "\u0000\u0000\u07f7\u07fa\u0001\u0000\u0000\u0000\u07f8\u07f6\u0001\u0000"+ - "\u0000\u0000\u07f8\u07f9\u0001\u0000\u0000\u0000\u07f9\u07fc\u0001\u0000"+ - "\u0000\u0000\u07fa\u07f8\u0001\u0000\u0000\u0000\u07fb\u07fd\u0005r\u0000"+ - "\u0000\u07fc\u07fb\u0001\u0000\u0000\u0000\u07fc\u07fd\u0001\u0000\u0000"+ - "\u0000\u07fd\u011d\u0001\u0000\u0000\u0000\u07fe\u0801\u0003\u0158\u00ac"+ - "\u0000\u07ff\u0801\u0003\u016c\u00b6\u0000\u0800\u07fe\u0001\u0000\u0000"+ - "\u0000\u0800\u07ff\u0001\u0000\u0000\u0000\u0801\u011f\u0001\u0000\u0000"+ - "\u0000\u0802\u0806\u0003\u0122\u0091\u0000\u0803\u0806\u0003\u0144\u00a2"+ - "\u0000\u0804\u0806\u0003\u0140\u00a0\u0000\u0805\u0802\u0001\u0000\u0000"+ - "\u0000\u0805\u0803\u0001\u0000\u0000\u0000\u0805\u0804\u0001\u0000\u0000"+ - "\u0000\u0806\u0121\u0001\u0000\u0000\u0000\u0807\u0816\u0003\u0124\u0092"+ - "\u0000\u0808\u0816\u0003\u0146\u00a3\u0000\u0809\u0816\u0003\u0142\u00a1"+ - "\u0000\u080a\u0816\u0003\u0172\u00b9\u0000\u080b\u0816\u0003\u0128\u0094"+ - "\u0000\u080c\u0816\u0003\u0126\u0093\u0000\u080d\u0816\u0003\u0130\u0098"+ - "\u0000\u080e\u0816\u0003\u012e\u0097\u0000\u080f\u0816\u0003\u012a\u0095"+ - "\u0000\u0810\u0816\u0003\u012c\u0096\u0000\u0811\u0816\u0003\u0148\u00a4"+ - "\u0000\u0812\u0816\u0003\u0170\u00b8\u0000\u0813\u0816\u0003\u0132\u0099"+ - "\u0000\u0814\u0816\u0003\u0002\u0001\u0000\u0815\u0807\u0001\u0000\u0000"+ - "\u0000\u0815\u0808\u0001\u0000\u0000\u0000\u0815\u0809\u0001\u0000\u0000"+ - "\u0000\u0815\u080a\u0001\u0000\u0000\u0000\u0815\u080b\u0001\u0000\u0000"+ - "\u0000\u0815\u080c\u0001\u0000\u0000\u0000\u0815\u080d\u0001\u0000\u0000"+ - "\u0000\u0815\u080e\u0001\u0000\u0000\u0000\u0815\u080f\u0001\u0000\u0000"+ - "\u0000\u0815\u0810\u0001\u0000\u0000\u0000\u0815\u0811\u0001\u0000\u0000"+ - "\u0000\u0815\u0812\u0001\u0000\u0000\u0000\u0815\u0813\u0001\u0000\u0000"+ - "\u0000\u0815\u0814\u0001\u0000\u0000\u0000\u0816\u0123\u0001\u0000\u0000"+ - "\u0000\u0817\u0818\u0005\u007f\u0000\u0000\u0818\u0819\u0003\u0120\u0090"+ - "\u0000\u0819\u081a\u0005\u0080\u0000\u0000\u081a\u0125\u0001\u0000\u0000"+ - "\u0000\u081b\u081c\u0005V\u0000\u0000\u081c\u0127\u0001\u0000\u0000\u0000"+ - "\u081d\u0828\u0005\u007f\u0000\u0000\u081e\u081f\u0003\u0120\u0090\u0000"+ - "\u081f\u0820\u0005r\u0000\u0000\u0820\u0822\u0001\u0000\u0000\u0000\u0821"+ - "\u081e\u0001\u0000\u0000\u0000\u0822\u0823\u0001\u0000\u0000\u0000\u0823"+ - "\u0821\u0001\u0000\u0000\u0000\u0823\u0824\u0001\u0000\u0000\u0000\u0824"+ - "\u0826\u0001\u0000\u0000\u0000\u0825\u0827\u0003\u0120\u0090\u0000\u0826"+ - "\u0825\u0001\u0000\u0000\u0000\u0826\u0827\u0001\u0000\u0000\u0000\u0827"+ - "\u0829\u0001\u0000\u0000\u0000\u0828\u0821\u0001\u0000\u0000\u0000\u0828"+ - "\u0829\u0001\u0000\u0000\u0000\u0829\u082a\u0001\u0000\u0000\u0000\u082a"+ - "\u082b\u0005\u0080\u0000\u0000\u082b\u0129\u0001\u0000\u0000\u0000\u082c"+ - "\u082d\u0005}\u0000\u0000\u082d\u082e\u0003\u0120\u0090\u0000\u082e\u082f"+ - "\u0005s\u0000\u0000\u082f\u0830\u0003\u009aM\u0000\u0830\u0831\u0005~"+ - "\u0000\u0000\u0831\u012b\u0001\u0000\u0000\u0000\u0832\u0833\u0005}\u0000"+ - "\u0000\u0833\u0834\u0003\u0120\u0090\u0000\u0834\u0835\u0005~\u0000\u0000"+ - "\u0835\u012d\u0001\u0000\u0000\u0000\u0836\u0838\u0005W\u0000\u0000\u0837"+ - "\u0839\u0003\u0152\u00a9\u0000\u0838\u0837\u0001\u0000\u0000\u0000\u0838"+ - "\u0839\u0001\u0000\u0000\u0000\u0839\u083b\u0001\u0000\u0000\u0000\u083a"+ - "\u083c\u0005\u0014\u0000\u0000\u083b\u083a\u0001\u0000\u0000\u0000\u083b"+ - "\u083c\u0001\u0000\u0000\u0000\u083c\u083d\u0001\u0000\u0000\u0000\u083d"+ - "\u083e\u0003\u0122\u0091\u0000\u083e\u012f\u0001\u0000\u0000\u0000\u083f"+ - "\u0840\u0005R\u0000\u0000\u0840\u0841\u0007\t\u0000\u0000\u0841\u0842"+ - "\u0003\u0122\u0091\u0000\u0842\u0131\u0001\u0000\u0000\u0000\u0843\u0845"+ - "\u0003\u0088D\u0000\u0844\u0843\u0001\u0000\u0000\u0000\u0844\u0845\u0001"+ - "\u0000\u0000\u0000\u0845\u0846\u0001\u0000\u0000\u0000\u0846\u0847\u0003"+ - "\u0134\u009a\u0000\u0847\u0848\u0005\n\u0000\u0000\u0848\u084a\u0005\u007f"+ - "\u0000\u0000\u0849\u084b\u0003\u0138\u009c\u0000\u084a\u0849\u0001\u0000"+ - "\u0000\u0000\u084a\u084b\u0001\u0000\u0000\u0000\u084b\u084c\u0001\u0000"+ - "\u0000\u0000\u084c\u084e\u0005\u0080\u0000\u0000\u084d\u084f\u0003\u0136"+ - "\u009b\u0000\u084e\u084d\u0001\u0000\u0000\u0000\u084e\u084f\u0001\u0000"+ - "\u0000\u0000\u084f\u0133\u0001\u0000\u0000\u0000\u0850\u0852\u0005 \u0000"+ - "\u0000\u0851\u0850\u0001\u0000\u0000\u0000\u0851\u0852\u0001\u0000\u0000"+ - "\u0000\u0852\u0857\u0001\u0000\u0000\u0000\u0853\u0855\u0005\b\u0000\u0000"+ - "\u0854\u0856\u00038\u001c\u0000\u0855\u0854\u0001\u0000\u0000\u0000\u0855"+ - "\u0856\u0001\u0000\u0000\u0000\u0856\u0858\u0001\u0000\u0000\u0000\u0857"+ - "\u0853\u0001\u0000\u0000\u0000\u0857\u0858\u0001\u0000\u0000\u0000\u0858"+ - "\u0135\u0001\u0000\u0000\u0000\u0859\u085a\u0005v\u0000\u0000\u085a\u085b"+ - "\u0003\u0122\u0091\u0000\u085b\u0137\u0001\u0000\u0000\u0000\u085c\u085f"+ - "\u0003\u013a\u009d\u0000\u085d\u085f\u0003\u013e\u009f\u0000\u085e\u085c"+ - "\u0001\u0000\u0000\u0000\u085e\u085d\u0001\u0000\u0000\u0000\u085f\u0139"+ - "\u0001\u0000\u0000\u0000\u0860\u0865\u0003\u013c\u009e\u0000\u0861\u0862"+ - "\u0005r\u0000\u0000\u0862\u0864\u0003\u013c\u009e\u0000\u0863\u0861\u0001"+ - "\u0000\u0000\u0000\u0864\u0867\u0001\u0000\u0000\u0000\u0865\u0863\u0001"+ - "\u0000\u0000\u0000\u0865\u0866\u0001\u0000\u0000\u0000\u0866\u0869\u0001"+ - "\u0000\u0000\u0000\u0867\u0865\u0001\u0000\u0000\u0000\u0868\u086a\u0005"+ - "r\u0000\u0000\u0869\u0868\u0001\u0000\u0000\u0000\u0869\u086a\u0001\u0000"+ - "\u0000\u0000\u086a\u013b\u0001\u0000\u0000\u0000\u086b\u086d\u0003\u008e"+ - "G\u0000\u086c\u086b\u0001\u0000\u0000\u0000\u086d\u0870\u0001\u0000\u0000"+ - "\u0000\u086e\u086c\u0001\u0000\u0000\u0000\u086e\u086f\u0001\u0000\u0000"+ - "\u0000\u086f\u0876\u0001\u0000\u0000\u0000\u0870\u086e\u0001\u0000\u0000"+ - "\u0000\u0871\u0874\u0003\u017c\u00be\u0000\u0872\u0874\u0005m\u0000\u0000"+ - "\u0873\u0871\u0001\u0000\u0000\u0000\u0873\u0872\u0001\u0000\u0000\u0000"+ - "\u0874\u0875\u0001\u0000\u0000\u0000\u0875\u0877\u0005t\u0000\u0000\u0876"+ - "\u0873\u0001\u0000\u0000\u0000\u0876\u0877\u0001\u0000\u0000\u0000\u0877"+ - "\u0878\u0001\u0000\u0000\u0000\u0878\u0879\u0003\u0120\u0090\u0000\u0879"+ - "\u013d\u0001\u0000\u0000\u0000\u087a\u087b\u0003\u013c\u009e\u0000\u087b"+ - "\u087c\u0005r\u0000\u0000\u087c\u087e\u0001\u0000\u0000\u0000\u087d\u087a"+ - "\u0001\u0000\u0000\u0000\u087e\u0881\u0001\u0000\u0000\u0000\u087f\u087d"+ - "\u0001\u0000\u0000\u0000\u087f\u0880\u0001\u0000\u0000\u0000\u0880\u0882"+ - "\u0001\u0000\u0000\u0000\u0881\u087f\u0001\u0000\u0000\u0000\u0882\u0883"+ - "\u0003\u013c\u009e\u0000\u0883\u0887\u0005r\u0000\u0000\u0884\u0886\u0003"+ - "\u008eG\u0000\u0885\u0884\u0001\u0000\u0000\u0000\u0886\u0889\u0001\u0000"+ - "\u0000\u0000\u0887\u0885\u0001\u0000\u0000\u0000\u0887\u0888\u0001\u0000"+ - "\u0000\u0000\u0888\u088a\u0001\u0000\u0000\u0000\u0889\u0887\u0001\u0000"+ - "\u0000\u0000\u088a\u088b\u0005p\u0000\u0000\u088b\u013f\u0001\u0000\u0000"+ - "\u0000\u088c\u088e\u0005&\u0000\u0000\u088d\u088c\u0001\u0000\u0000\u0000"+ - "\u088d\u088e\u0001\u0000\u0000\u0000\u088e\u088f\u0001\u0000\u0000\u0000"+ - "\u088f\u0890\u0003\u014a\u00a5\u0000\u0890\u0141\u0001\u0000\u0000\u0000"+ - "\u0891\u0893\u0005&\u0000\u0000\u0892\u0891\u0001\u0000\u0000\u0000\u0892"+ - "\u0893\u0001\u0000\u0000\u0000\u0893\u0894\u0001\u0000\u0000\u0000\u0894"+ - "\u0895\u0003\u014e\u00a7\u0000\u0895\u0143\u0001\u0000\u0000\u0000\u0896"+ - "\u0897\u0005\r\u0000\u0000\u0897\u0898\u0003\u014a\u00a5\u0000\u0898\u0145"+ - "\u0001\u0000\u0000\u0000\u0899\u089a\u0005\r\u0000\u0000\u089a\u089b\u0003"+ - "\u014e\u00a7\u0000\u089b\u0147\u0001\u0000\u0000\u0000\u089c\u089d\u0005"+ - "m\u0000\u0000\u089d\u0149\u0001\u0000\u0000\u0000\u089e\u08a3\u0003\u014c"+ - "\u00a6\u0000\u089f\u08a0\u0005P\u0000\u0000\u08a0\u08a2\u0003\u014c\u00a6"+ - "\u0000\u08a1\u089f\u0001\u0000\u0000\u0000\u08a2\u08a5\u0001\u0000\u0000"+ - "\u0000\u08a3\u08a1\u0001\u0000\u0000\u0000\u08a3\u08a4\u0001\u0000\u0000"+ - "\u0000\u08a4\u08a7\u0001\u0000\u0000\u0000\u08a5\u08a3\u0001\u0000\u0000"+ - "\u0000\u08a6\u08a8\u0005P\u0000\u0000\u08a7\u08a6\u0001\u0000\u0000\u0000"+ - "\u08a7\u08a8\u0001\u0000\u0000\u0000\u08a8\u014b\u0001\u0000\u0000\u0000"+ - "\u08a9\u08ac\u0003\u0152\u00a9\u0000\u08aa\u08ac\u0003\u014e\u00a7\u0000"+ - "\u08ab\u08a9\u0001\u0000\u0000\u0000\u08ab\u08aa\u0001\u0000\u0000\u0000"+ - "\u08ac\u014d\u0001\u0000\u0000\u0000\u08ad\u08af\u0005z\u0000\u0000\u08ae"+ - "\u08ad\u0001\u0000\u0000\u0000\u08ae\u08af\u0001\u0000\u0000\u0000\u08af"+ - "\u08b1\u0001\u0000\u0000\u0000\u08b0\u08b2\u0003\u0088D\u0000\u08b1\u08b0"+ - "\u0001\u0000\u0000\u0000\u08b1\u08b2\u0001\u0000\u0000\u0000\u08b2\u08b3"+ - "\u0001\u0000\u0000\u0000\u08b3\u08bf\u0003\u0172\u00b9\u0000\u08b4\u08b6"+ - "\u0005\u007f\u0000\u0000\u08b5\u08b7\u0005z\u0000\u0000\u08b6\u08b5\u0001"+ - "\u0000\u0000\u0000\u08b6\u08b7\u0001\u0000\u0000\u0000\u08b7\u08b9\u0001"+ - "\u0000\u0000\u0000\u08b8\u08ba\u0003\u0088D\u0000\u08b9\u08b8\u0001\u0000"+ - "\u0000\u0000\u08b9\u08ba\u0001\u0000\u0000\u0000\u08ba\u08bb\u0001\u0000"+ - "\u0000\u0000\u08bb\u08bc\u0003\u0172\u00b9\u0000\u08bc\u08bd\u0005\u0080"+ - "\u0000\u0000\u08bd\u08bf\u0001\u0000\u0000\u0000\u08be\u08ae\u0001\u0000"+ - "\u0000\u0000\u08be\u08b4\u0001\u0000\u0000\u0000\u08bf\u014f\u0001\u0000"+ - "\u0000\u0000\u08c0\u08c1\u0003\u0152\u00a9\u0000\u08c1\u08c2\u0005P\u0000"+ - "\u0000\u08c2\u08c4\u0001\u0000\u0000\u0000\u08c3\u08c0\u0001\u0000\u0000"+ - "\u0000\u08c4\u08c7\u0001\u0000\u0000\u0000\u08c5\u08c3\u0001\u0000\u0000"+ - "\u0000\u08c5\u08c6\u0001\u0000\u0000\u0000\u08c6\u08c9\u0001\u0000\u0000"+ - "\u0000\u08c7\u08c5\u0001\u0000\u0000\u0000\u08c8\u08ca\u0003\u0152\u00a9"+ - "\u0000\u08c9\u08c8\u0001\u0000\u0000\u0000\u08c9\u08ca\u0001\u0000\u0000"+ - "\u0000\u08ca\u0151\u0001\u0000\u0000\u0000\u08cb\u08cc\u0007\n\u0000\u0000"+ - "\u08cc\u0153\u0001\u0000\u0000\u0000\u08cd\u08cf\u0005u\u0000\u0000\u08ce"+ - "\u08cd\u0001\u0000\u0000\u0000\u08ce\u08cf\u0001\u0000\u0000\u0000\u08cf"+ - "\u08d0\u0001\u0000\u0000\u0000\u08d0\u08d5\u0003\u0156\u00ab\u0000\u08d1"+ - "\u08d2\u0005u\u0000\u0000\u08d2\u08d4\u0003\u0156\u00ab\u0000\u08d3\u08d1"+ - "\u0001\u0000\u0000\u0000\u08d4\u08d7\u0001\u0000\u0000\u0000\u08d5\u08d3"+ - "\u0001\u0000\u0000\u0000\u08d5\u08d6\u0001\u0000\u0000\u0000\u08d6\u0155"+ - "\u0001\u0000\u0000\u0000\u08d7\u08d5\u0001\u0000\u0000\u0000\u08d8\u08de"+ - "\u0003\u017c\u00be\u0000\u08d9\u08de\u0005\u001c\u0000\u0000\u08da\u08de"+ - "\u0005\u0018\u0000\u0000\u08db\u08de\u0005\u0005\u0000\u0000\u08dc\u08de"+ - "\u00058\u0000\u0000\u08dd\u08d8\u0001\u0000\u0000\u0000\u08dd\u08d9\u0001"+ - "\u0000\u0000\u0000\u08dd\u08da\u0001\u0000\u0000\u0000\u08dd\u08db\u0001"+ - "\u0000\u0000\u0000\u08dd\u08dc\u0001\u0000\u0000\u0000\u08de\u0157\u0001"+ - "\u0000\u0000\u0000\u08df\u08e1\u0005u\u0000\u0000\u08e0\u08df\u0001\u0000"+ - "\u0000\u0000\u08e0\u08e1\u0001\u0000\u0000\u0000\u08e1\u08e2\u0001\u0000"+ - "\u0000\u0000\u08e2\u08e7\u0003\u015a\u00ad\u0000\u08e3\u08e4\u0005u\u0000"+ - "\u0000\u08e4\u08e6\u0003\u015a\u00ad\u0000\u08e5\u08e3\u0001\u0000\u0000"+ - "\u0000\u08e6\u08e9\u0001\u0000\u0000\u0000\u08e7\u08e5\u0001\u0000\u0000"+ - "\u0000\u08e7\u08e8\u0001\u0000\u0000\u0000\u08e8\u0159\u0001\u0000\u0000"+ - "\u0000\u08e9\u08e7\u0001\u0000\u0000\u0000\u08ea\u08ed\u0003\u015c\u00ae"+ - "\u0000\u08eb\u08ec\u0005u\u0000\u0000\u08ec\u08ee\u0003\u015e\u00af\u0000"+ - "\u08ed\u08eb\u0001\u0000\u0000\u0000\u08ed\u08ee\u0001\u0000\u0000\u0000"+ - "\u08ee\u015b\u0001\u0000\u0000\u0000\u08ef\u08f6\u0003\u017c\u00be\u0000"+ - "\u08f0\u08f6\u0005\u001c\u0000\u0000\u08f1\u08f6\u0005\u0018\u0000\u0000"+ - "\u08f2\u08f6\u0005\u0019\u0000\u0000\u08f3\u08f6\u0005\u0005\u0000\u0000"+ - "\u08f4\u08f6\u00058\u0000\u0000\u08f5\u08ef\u0001\u0000\u0000\u0000\u08f5"+ - "\u08f0\u0001\u0000\u0000\u0000\u08f5\u08f1\u0001\u0000\u0000\u0000\u08f5"+ - "\u08f2\u0001\u0000\u0000\u0000\u08f5\u08f3\u0001\u0000\u0000\u0000\u08f5"+ - "\u08f4\u0001\u0000\u0000\u0000\u08f6\u015d\u0001\u0000\u0000\u0000\u08f7"+ - "\u08f8\u0005i\u0000\u0000\u08f8\u0923\u0005h\u0000\u0000\u08f9\u08fa\u0005"+ - "i\u0000\u0000\u08fa\u08fd\u0003\u0164\u00b2\u0000\u08fb\u08fc\u0005r\u0000"+ - "\u0000\u08fc\u08fe\u0003\u0166\u00b3\u0000\u08fd\u08fb\u0001\u0000\u0000"+ - "\u0000\u08fd\u08fe\u0001\u0000\u0000\u0000\u08fe\u0901\u0001\u0000\u0000"+ - "\u0000\u08ff\u0900\u0005r\u0000\u0000\u0900\u0902\u0003\u0168\u00b4\u0000"+ - "\u0901\u08ff\u0001\u0000\u0000\u0000\u0901\u0902\u0001\u0000\u0000\u0000"+ - "\u0902\u0904\u0001\u0000\u0000\u0000\u0903\u0905\u0005r\u0000\u0000\u0904"+ - "\u0903\u0001\u0000\u0000\u0000\u0904\u0905\u0001\u0000\u0000\u0000\u0905"+ - "\u0906\u0001\u0000\u0000\u0000\u0906\u0907\u0005h\u0000\u0000\u0907\u0923"+ - "\u0001\u0000\u0000\u0000\u0908\u0909\u0005i\u0000\u0000\u0909\u090c\u0003"+ - "\u0166\u00b3\u0000\u090a\u090b\u0005r\u0000\u0000\u090b\u090d\u0003\u0168"+ - "\u00b4\u0000\u090c\u090a\u0001\u0000\u0000\u0000\u090c\u090d\u0001\u0000"+ - "\u0000\u0000\u090d\u090f\u0001\u0000\u0000\u0000\u090e\u0910\u0005r\u0000"+ - "\u0000\u090f\u090e\u0001\u0000\u0000\u0000\u090f\u0910\u0001\u0000\u0000"+ - "\u0000\u0910\u0911\u0001\u0000\u0000\u0000\u0911\u0912\u0005h\u0000\u0000"+ - "\u0912\u0923\u0001\u0000\u0000\u0000\u0913\u0919\u0005i\u0000\u0000\u0914"+ - "\u0915\u0003\u0160\u00b0\u0000\u0915\u0916\u0005r\u0000\u0000\u0916\u0918"+ - "\u0001\u0000\u0000\u0000\u0917\u0914\u0001\u0000\u0000\u0000\u0918\u091b"+ - "\u0001\u0000\u0000\u0000\u0919\u0917\u0001\u0000\u0000\u0000\u0919\u091a"+ - "\u0001\u0000\u0000\u0000\u091a\u091c\u0001\u0000\u0000\u0000\u091b\u0919"+ - "\u0001\u0000\u0000\u0000\u091c\u091e\u0003\u0160\u00b0\u0000\u091d\u091f"+ - "\u0005r\u0000\u0000\u091e\u091d\u0001\u0000\u0000\u0000\u091e\u091f\u0001"+ - "\u0000\u0000\u0000\u091f\u0920\u0001\u0000\u0000\u0000\u0920\u0921\u0005"+ - "h\u0000\u0000\u0921\u0923\u0001\u0000\u0000\u0000\u0922\u08f7\u0001\u0000"+ - "\u0000\u0000\u0922\u08f9\u0001\u0000\u0000\u0000\u0922\u0908\u0001\u0000"+ - "\u0000\u0000\u0922\u0913\u0001\u0000\u0000\u0000\u0923\u015f\u0001\u0000"+ - "\u0000\u0000\u0924\u0929\u0003\u0152\u00a9\u0000\u0925\u0929\u0003\u0120"+ - "\u0090\u0000\u0926\u0929\u0003\u0162\u00b1\u0000\u0927\u0929\u0003\u016a"+ - "\u00b5\u0000\u0928\u0924\u0001\u0000\u0000\u0000\u0928\u0925\u0001\u0000"+ - "\u0000\u0000\u0928\u0926\u0001\u0000\u0000\u0000\u0928\u0927\u0001\u0000"+ - "\u0000\u0000\u0929\u0161\u0001\u0000\u0000\u0000\u092a\u0931\u0003\u00a8"+ - "T\u0000\u092b\u092d\u0005Q\u0000\u0000\u092c\u092b\u0001\u0000\u0000\u0000"+ - "\u092c\u092d\u0001\u0000\u0000\u0000\u092d\u092e\u0001\u0000\u0000\u0000"+ - "\u092e\u0931\u0003\u00a4R\u0000\u092f\u0931\u0003\u0156\u00ab\u0000\u0930"+ - "\u092a\u0001\u0000\u0000\u0000\u0930\u092c\u0001\u0000\u0000\u0000\u0930"+ - "\u092f\u0001\u0000\u0000\u0000\u0931\u0163\u0001\u0000\u0000\u0000\u0932"+ - "\u0937\u0003\u0152\u00a9\u0000\u0933\u0934\u0005r\u0000\u0000\u0934\u0936"+ - "\u0003\u0152\u00a9\u0000\u0935\u0933\u0001\u0000\u0000\u0000\u0936\u0939"+ - "\u0001\u0000\u0000\u0000\u0937\u0935\u0001\u0000\u0000\u0000\u0937\u0938"+ - "\u0001\u0000\u0000\u0000\u0938\u0165\u0001\u0000\u0000\u0000\u0939\u0937"+ - "\u0001\u0000\u0000\u0000\u093a\u093f\u0003\u0120\u0090\u0000\u093b\u093c"+ - "\u0005r\u0000\u0000\u093c\u093e\u0003\u0120\u0090\u0000\u093d\u093b\u0001"+ - "\u0000\u0000\u0000\u093e\u0941\u0001\u0000\u0000\u0000\u093f\u093d\u0001"+ - "\u0000\u0000\u0000\u093f\u0940\u0001\u0000\u0000\u0000\u0940\u0167\u0001"+ - "\u0000\u0000\u0000\u0941\u093f\u0001\u0000\u0000\u0000\u0942\u0947\u0003"+ - "\u016a\u00b5\u0000\u0943\u0944\u0005r\u0000\u0000\u0944\u0946\u0003\u016a"+ - "\u00b5\u0000\u0945\u0943\u0001\u0000\u0000\u0000\u0946\u0949\u0001\u0000"+ - "\u0000\u0000\u0947\u0945\u0001\u0000\u0000\u0000\u0947\u0948\u0001\u0000"+ - "\u0000\u0000\u0948\u0169\u0001\u0000\u0000\u0000\u0949\u0947\u0001\u0000"+ - "\u0000\u0000\u094a\u094b\u0003\u017c\u00be\u0000\u094b\u094c\u0005e\u0000"+ - "\u0000\u094c\u094d\u0003\u0120\u0090\u0000\u094d\u016b\u0001\u0000\u0000"+ - "\u0000\u094e\u0951\u0003\u016e\u00b7\u0000\u094f\u0950\u0005u\u0000\u0000"+ - "\u0950\u0952\u0003\u015a\u00ad\u0000\u0951\u094f\u0001\u0000\u0000\u0000"+ - "\u0952\u0953\u0001\u0000\u0000\u0000\u0953\u0951\u0001\u0000\u0000\u0000"+ - "\u0953\u0954\u0001\u0000\u0000\u0000\u0954\u016d\u0001\u0000\u0000\u0000"+ - "\u0955\u0956\u0005i\u0000\u0000\u0956\u0959\u0003\u0120\u0090\u0000\u0957"+ - "\u0958\u0005\u0001\u0000\u0000\u0958\u095a\u0003\u0172\u00b9\u0000\u0959"+ - "\u0957\u0001\u0000\u0000\u0000\u0959\u095a\u0001\u0000\u0000\u0000\u095a"+ - "\u095b\u0001\u0000\u0000\u0000\u095b\u095c\u0005h\u0000\u0000\u095c\u016f"+ - "\u0001\u0000\u0000\u0000\u095d\u0960\u0003\u016e\u00b7\u0000\u095e\u095f"+ - "\u0005u\u0000\u0000\u095f\u0961\u0003\u0174\u00ba\u0000\u0960\u095e\u0001"+ - "\u0000\u0000\u0000\u0961\u0962\u0001\u0000\u0000\u0000\u0962\u0960\u0001"+ - "\u0000\u0000\u0000\u0962\u0963\u0001\u0000\u0000\u0000\u0963\u0171\u0001"+ - "\u0000\u0000\u0000\u0964\u0966\u0005u\u0000\u0000\u0965\u0964\u0001\u0000"+ - "\u0000\u0000\u0965\u0966\u0001\u0000\u0000\u0000\u0966\u0967\u0001\u0000"+ - "\u0000\u0000\u0967\u096c\u0003\u0174\u00ba\u0000\u0968\u0969\u0005u\u0000"+ - "\u0000\u0969\u096b\u0003\u0174\u00ba\u0000\u096a\u0968\u0001\u0000\u0000"+ - "\u0000\u096b\u096e\u0001\u0000\u0000\u0000\u096c\u096a\u0001\u0000\u0000"+ - "\u0000\u096c\u096d\u0001\u0000\u0000\u0000\u096d\u0173\u0001\u0000\u0000"+ - "\u0000\u096e\u096c\u0001\u0000\u0000\u0000\u096f\u0971\u0003\u015c\u00ae"+ - "\u0000\u0970\u0972\u0005u\u0000\u0000\u0971\u0970\u0001\u0000\u0000\u0000"+ - "\u0971\u0972\u0001\u0000\u0000\u0000\u0972\u0975\u0001\u0000\u0000\u0000"+ - "\u0973\u0976\u0003\u015e\u00af\u0000\u0974\u0976\u0003\u0176\u00bb\u0000"+ - "\u0975\u0973\u0001\u0000\u0000\u0000\u0975\u0974\u0001\u0000\u0000\u0000"+ - "\u0975\u0976\u0001\u0000\u0000"; - private static final String _serializedATNSegment1 = - "\u0000\u0976\u0175\u0001\u0000\u0000\u0000\u0977\u0979\u0005\u007f\u0000"+ - "\u0000\u0978\u097a\u0003\u0178\u00bc\u0000\u0979\u0978\u0001\u0000\u0000"+ - "\u0000\u0979\u097a\u0001\u0000\u0000\u0000\u097a\u097b\u0001\u0000\u0000"+ - "\u0000\u097b\u097e\u0005\u0080\u0000\u0000\u097c\u097d\u0005v\u0000\u0000"+ - "\u097d\u097f\u0003\u0120\u0090\u0000\u097e\u097c\u0001\u0000\u0000\u0000"+ - "\u097e\u097f\u0001\u0000\u0000\u0000\u097f\u0177\u0001\u0000\u0000\u0000"+ - "\u0980\u0985\u0003\u0120\u0090\u0000\u0981\u0982\u0005r\u0000\u0000\u0982"+ - "\u0984\u0003\u0120\u0090\u0000\u0983\u0981\u0001\u0000\u0000\u0000\u0984"+ - "\u0987\u0001\u0000\u0000\u0000\u0985\u0983\u0001\u0000\u0000\u0000\u0985"+ - "\u0986\u0001\u0000\u0000\u0000\u0986\u0989\u0001\u0000\u0000\u0000\u0987"+ - "\u0985\u0001\u0000\u0000\u0000\u0988\u098a\u0005r\u0000\u0000\u0989\u0988"+ - "\u0001\u0000\u0000\u0000\u0989\u098a\u0001\u0000\u0000\u0000\u098a\u0179"+ - "\u0001\u0000\u0000\u0000\u098b\u0995\u0005\u0015\u0000\u0000\u098c\u0992"+ - "\u0005\u007f\u0000\u0000\u098d\u0993\u0005\u0005\u0000\u0000\u098e\u0993"+ - "\u0005\u0018\u0000\u0000\u098f\u0993\u0005\u001c\u0000\u0000\u0990\u0991"+ - "\u0005\u000e\u0000\u0000\u0991\u0993\u0003\u0154\u00aa\u0000\u0992\u098d"+ - "\u0001\u0000\u0000\u0000\u0992\u098e\u0001\u0000\u0000\u0000\u0992\u098f"+ - "\u0001\u0000\u0000\u0000\u0992\u0990\u0001\u0000\u0000\u0000\u0993\u0994"+ - "\u0001\u0000\u0000\u0000\u0994\u0996\u0005\u0080\u0000\u0000\u0995\u098c"+ - "\u0001\u0000\u0000\u0000\u0995\u0996\u0001\u0000\u0000\u0000\u0996\u017b"+ - "\u0001\u0000\u0000\u0000\u0997\u0998\u0007\u000b\u0000\u0000\u0998\u017d"+ - "\u0001\u0000\u0000\u0000\u0999\u099a\u0007\f\u0000\u0000\u099a\u017f\u0001"+ - "\u0000\u0000\u0000\u099b\u09a2\u0003\u017e\u00bf\u0000\u099c\u09a2\u0003"+ - "\u017c\u00be\u0000\u099d\u09a2\u00056\u0000\u0000\u099e\u09a2\u00057\u0000"+ - "\u0000\u099f\u09a2\u00058\u0000\u0000\u09a0\u09a2\u0005O\u0000\u0000\u09a1"+ - "\u099b\u0001\u0000\u0000\u0000\u09a1\u099c\u0001\u0000\u0000\u0000\u09a1"+ - "\u099d\u0001\u0000\u0000\u0000\u09a1\u099e\u0001\u0000\u0000\u0000\u09a1"+ - "\u099f\u0001\u0000\u0000\u0000\u09a1\u09a0\u0001\u0000\u0000\u0000\u09a2"+ - "\u0181\u0001\u0000\u0000\u0000\u09a3\u09a4\u0003\u00a4R\u0000\u09a4\u0183"+ - "\u0001\u0000\u0000\u0000\u09a5\u09a6\u0007\r\u0000\u0000\u09a6\u0185\u0001"+ - "\u0000\u0000\u0000\u09a7\u09a8\u0005i\u0000\u0000\u09a8\u09a9\u0004\u00c3"+ - "\u0015\u0000\u09a9\u09aa\u0005i\u0000\u0000\u09aa\u0187\u0001\u0000\u0000"+ - "\u0000\u09ab\u09ac\u0005h\u0000\u0000\u09ac\u09ad\u0004\u00c4\u0016\u0000"+ - "\u09ad\u09ae\u0005h\u0000\u0000\u09ae\u0189\u0001\u0000\u0000\u0000\u0159"+ - "\u018d\u0193\u01a0\u01a8\u01b0\u01b4\u01b9\u01bc\u01c3\u01cb\u01d7\u01e3"+ - "\u01e8\u01fd\u0204\u0208\u0212\u021a\u0222\u0226\u022b\u0231\u023a\u023e"+ - "\u0242\u0248\u0250\u0259\u025e\u0261\u0270\u0274\u0277\u0280\u0286\u028a"+ - "\u0290\u0296\u029b\u02a2\u02a5\u02ae\u02b2\u02b4\u02b7\u02bd\u02bf\u02c1"+ - "\u02c7\u02cb\u02cf\u02d2\u02d6\u02d9\u02dc\u02df\u02e3\u02e5\u02eb\u02f0"+ - "\u02f7\u02fb\u02fd\u0302\u0307\u030b\u030d\u0310\u0315\u031e\u0324\u032a"+ - "\u0332\u0335\u0339\u033f\u0344\u0347\u034b\u034f\u0354\u0358\u035c\u0365"+ - "\u0369\u036e\u0372\u037d\u0381\u0386\u038a\u0391\u0394\u0398\u03a1\u03a5"+ - "\u03aa\u03ae\u03b4\u03b8\u03be\u03c8\u03cb\u03d4\u03da\u03e0\u03e7\u03ec"+ - "\u03f1\u03f5\u03f7\u03fa\u0400\u0406\u040d\u0411\u0415\u041b\u0421\u0427"+ - "\u042b\u042e\u0434\u043a\u0440\u0446\u044a\u0450\u0456\u045e\u0463\u0467"+ - "\u0469\u0471\u0476\u0478\u047f\u0485\u0488\u048d\u0490\u0495\u0497\u049b"+ - "\u04a8\u04ac\u04b0\u04b7\u04bc\u04c4\u04c9\u04ce\u04d0\u04df\u04e4\u04eb"+ - "\u04f0\u04f7\u04fb\u0504\u0506\u050c\u0514\u051d\u0523\u0526\u052a\u052d"+ - "\u0531\u0537\u0541\u0545\u054c\u0550\u0558\u0586\u0596\u05a6\u05a8\u05aa"+ - "\u05b1\u05ba\u05c5\u05cb\u05d1\u05d5\u05dc\u05df\u05e2\u05e6\u05f2\u05f6"+ - "\u05fc\u0603\u0606\u060d\u0614\u0619\u0622\u0628\u062a\u062f\u0635\u063a"+ - "\u0644\u064c\u0650\u0652\u065b\u0660\u0669\u066d\u0672\u0677\u0680\u0684"+ - "\u0686\u0691\u0695\u0698\u069d\u06a0\u06a7\u06ae\u06b2\u06b7\u06bd\u06c0"+ - "\u06c6\u06e6\u06e8\u06f4\u06f6\u06fe\u0702\u070c\u0713\u071a\u071c\u0721"+ - "\u0726\u072c\u0733\u0738\u0746\u0751\u0755\u0758\u075b\u075e\u0763\u0774"+ - "\u0779\u077d\u0781\u0785\u078c\u0793\u0795\u0798\u079f\u07a5\u07b1\u07b4"+ - "\u07b7\u07bc\u07c4\u07cd\u07d1\u07d5\u07e2\u07e5\u07e7\u07ef\u07f8\u07fc"+ - "\u0800\u0805\u0815\u0823\u0826\u0828\u0838\u083b\u0844\u084a\u084e\u0851"+ - "\u0855\u0857\u085e\u0865\u0869\u086e\u0873\u0876\u087f\u0887\u088d\u0892"+ - "\u08a3\u08a7\u08ab\u08ae\u08b1\u08b6\u08b9\u08be\u08c5\u08c9\u08ce\u08d5"+ - "\u08dd\u08e0\u08e7\u08ed\u08f5\u08fd\u0901\u0904\u090c\u090f\u0919\u091e"+ - "\u0922\u0928\u092c\u0930\u0937\u093f\u0947\u0953\u0959\u0962\u0965\u096c"+ - "\u0971\u0975\u0979\u097e\u0985\u0989\u0992\u0995\u09a1"; - public static final String _serializedATN = Utils.join( - new String[] { - _serializedATNSegment0, - _serializedATNSegment1 - }, - "" - ); - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParserBaseVisitor.java b/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParserBaseVisitor.java deleted file mode 100644 index cd77f94ccb89..000000000000 --- a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParserBaseVisitor.java +++ /dev/null @@ -1,1642 +0,0 @@ -// Generated from java-escape by ANTLR 4.11.1 -package org.netbeans.modules.rust.grammar.antlr4; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -// DO NOT MODIFY THIS FILE! -// This file is generated file from RustParser.g4 at compile time! - - -import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; - -/** - * This class provides an empty implementation of {@link RustParserVisitor}, - * which can be extended to create a visitor which only needs to handle a subset - * of the available methods. - * - * @param The return type of the visit operation. Use {@link Void} for - * operations with no return type. - */ -@SuppressWarnings("CheckReturnValue") -public class RustParserBaseVisitor extends AbstractParseTreeVisitor implements RustParserVisitor { - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitCrate(RustParser.CrateContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroInvocation(RustParser.MacroInvocationContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitDelimTokenTree(RustParser.DelimTokenTreeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTokenTree(RustParser.TokenTreeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTokenTreeToken(RustParser.TokenTreeTokenContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroInvocationSemi(RustParser.MacroInvocationSemiContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroRulesDefinition(RustParser.MacroRulesDefinitionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroRulesDef(RustParser.MacroRulesDefContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroRules(RustParser.MacroRulesContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroRule(RustParser.MacroRuleContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroMatcher(RustParser.MacroMatcherContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroMatch(RustParser.MacroMatchContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroMatchToken(RustParser.MacroMatchTokenContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroFragSpec(RustParser.MacroFragSpecContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroRepSep(RustParser.MacroRepSepContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroRepOp(RustParser.MacroRepOpContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroTranscriber(RustParser.MacroTranscriberContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitItem(RustParser.ItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitVisItem(RustParser.VisItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroItem(RustParser.MacroItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitModule(RustParser.ModuleContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitExternCrate(RustParser.ExternCrateContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitCrateRef(RustParser.CrateRefContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAsClause(RustParser.AsClauseContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitUseDeclaration(RustParser.UseDeclarationContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitUseTree(RustParser.UseTreeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFunction_(RustParser.Function_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFunctionQualifiers(RustParser.FunctionQualifiersContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAbi(RustParser.AbiContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFunctionParameters(RustParser.FunctionParametersContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitSelfParam(RustParser.SelfParamContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitShorthandSelf(RustParser.ShorthandSelfContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypedSelf(RustParser.TypedSelfContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFunctionParam(RustParser.FunctionParamContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFunctionParamPattern(RustParser.FunctionParamPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFunctionReturnType(RustParser.FunctionReturnTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypeAlias(RustParser.TypeAliasContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStruct_(RustParser.Struct_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructStruct(RustParser.StructStructContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleStruct(RustParser.TupleStructContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructFields(RustParser.StructFieldsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructField(RustParser.StructFieldContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleFields(RustParser.TupleFieldsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleField(RustParser.TupleFieldContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumeration(RustParser.EnumerationContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumItems(RustParser.EnumItemsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumItem(RustParser.EnumItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumItemTuple(RustParser.EnumItemTupleContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumItemStruct(RustParser.EnumItemStructContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumItemDiscriminant(RustParser.EnumItemDiscriminantContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitUnion_(RustParser.Union_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitConstantItem(RustParser.ConstantItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStaticItem(RustParser.StaticItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTrait_(RustParser.Trait_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitImplementation(RustParser.ImplementationContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitInherentImpl(RustParser.InherentImplContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTraitImpl(RustParser.TraitImplContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitExternBlock(RustParser.ExternBlockContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitExternalItem(RustParser.ExternalItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericParams(RustParser.GenericParamsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericParam(RustParser.GenericParamContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLifetimeParam(RustParser.LifetimeParamContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypeParam(RustParser.TypeParamContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitConstParam(RustParser.ConstParamContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitWhereClause(RustParser.WhereClauseContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitWhereClauseItem(RustParser.WhereClauseItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLifetimeWhereClauseItem(RustParser.LifetimeWhereClauseItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypeBoundWhereClauseItem(RustParser.TypeBoundWhereClauseItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitForLifetimes(RustParser.ForLifetimesContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAssociatedItem(RustParser.AssociatedItemContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitInnerAttribute(RustParser.InnerAttributeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitOuterAttribute(RustParser.OuterAttributeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAttr(RustParser.AttrContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAttrInput(RustParser.AttrInputContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStatement(RustParser.StatementContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLetStatement(RustParser.LetStatementContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitExpressionStatement(RustParser.ExpressionStatementContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypeCastExpression(RustParser.TypeCastExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPathExpression_(RustParser.PathExpression_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleExpression(RustParser.TupleExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitIndexExpression(RustParser.IndexExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitRangeExpression(RustParser.RangeExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroInvocationAsExpression(RustParser.MacroInvocationAsExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitReturnExpression(RustParser.ReturnExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAwaitExpression(RustParser.AwaitExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitErrorPropagationExpression(RustParser.ErrorPropagationExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitContinueExpression(RustParser.ContinueExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAssignmentExpression(RustParser.AssignmentExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMethodCallExpression(RustParser.MethodCallExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLiteralExpression_(RustParser.LiteralExpression_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructExpression_(RustParser.StructExpression_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleIndexingExpression(RustParser.TupleIndexingExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitNegationExpression(RustParser.NegationExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitCallExpression(RustParser.CallExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLazyBooleanExpression(RustParser.LazyBooleanExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitDereferenceExpression(RustParser.DereferenceExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitExpressionWithBlock_(RustParser.ExpressionWithBlock_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGroupedExpression(RustParser.GroupedExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitBreakExpression(RustParser.BreakExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitArithmeticOrLogicalExpression(RustParser.ArithmeticOrLogicalExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFieldExpression(RustParser.FieldExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumerationVariantExpression_(RustParser.EnumerationVariantExpression_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitComparisonExpression(RustParser.ComparisonExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAttributedExpression(RustParser.AttributedExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitBorrowExpression(RustParser.BorrowExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitCompoundAssignmentExpression(RustParser.CompoundAssignmentExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitClosureExpression_(RustParser.ClosureExpression_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitArrayExpression(RustParser.ArrayExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitShiftOperator(RustParser.ShiftOperatorContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitComparisonOperator(RustParser.ComparisonOperatorContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitCompoundAssignOperator(RustParser.CompoundAssignOperatorContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitExpressionWithBlock(RustParser.ExpressionWithBlockContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLiteralExpression(RustParser.LiteralExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPathExpression(RustParser.PathExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitBlockExpression(RustParser.BlockExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStatements(RustParser.StatementsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitAsyncBlockExpression(RustParser.AsyncBlockExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitUnsafeBlockExpression(RustParser.UnsafeBlockExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitArrayElements(RustParser.ArrayElementsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleElements(RustParser.TupleElementsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleIndex(RustParser.TupleIndexContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructExpression(RustParser.StructExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructExprStruct(RustParser.StructExprStructContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructExprFields(RustParser.StructExprFieldsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructExprField(RustParser.StructExprFieldContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructBase(RustParser.StructBaseContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructExprTuple(RustParser.StructExprTupleContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructExprUnit(RustParser.StructExprUnitContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumerationVariantExpression(RustParser.EnumerationVariantExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumExprStruct(RustParser.EnumExprStructContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumExprFields(RustParser.EnumExprFieldsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumExprField(RustParser.EnumExprFieldContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumExprTuple(RustParser.EnumExprTupleContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitEnumExprFieldless(RustParser.EnumExprFieldlessContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitCallParams(RustParser.CallParamsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitClosureExpression(RustParser.ClosureExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitClosureParameters(RustParser.ClosureParametersContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitClosureParam(RustParser.ClosureParamContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLoopExpression(RustParser.LoopExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitInfiniteLoopExpression(RustParser.InfiniteLoopExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPredicateLoopExpression(RustParser.PredicateLoopExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPredicatePatternLoopExpression(RustParser.PredicatePatternLoopExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitIteratorLoopExpression(RustParser.IteratorLoopExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLoopLabel(RustParser.LoopLabelContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitIfExpression(RustParser.IfExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitIfLetExpression(RustParser.IfLetExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMatchExpression(RustParser.MatchExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMatchArms(RustParser.MatchArmsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMatchArmExpression(RustParser.MatchArmExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMatchArm(RustParser.MatchArmContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMatchArmGuard(RustParser.MatchArmGuardContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPattern(RustParser.PatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPatternNoTopAlt(RustParser.PatternNoTopAltContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPatternWithoutRange(RustParser.PatternWithoutRangeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLiteralPattern(RustParser.LiteralPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitIdentifierPattern(RustParser.IdentifierPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitWildcardPattern(RustParser.WildcardPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitRestPattern(RustParser.RestPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitInclusiveRangePattern(RustParser.InclusiveRangePatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitHalfOpenRangePattern(RustParser.HalfOpenRangePatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitObsoleteRangePattern(RustParser.ObsoleteRangePatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitRangePatternBound(RustParser.RangePatternBoundContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitReferencePattern(RustParser.ReferencePatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructPattern(RustParser.StructPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructPatternElements(RustParser.StructPatternElementsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructPatternFields(RustParser.StructPatternFieldsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructPatternField(RustParser.StructPatternFieldContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitStructPatternEtCetera(RustParser.StructPatternEtCeteraContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleStructPattern(RustParser.TupleStructPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleStructItems(RustParser.TupleStructItemsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTuplePattern(RustParser.TuplePatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTuplePatternItems(RustParser.TuplePatternItemsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGroupedPattern(RustParser.GroupedPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitSlicePattern(RustParser.SlicePatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitSlicePatternItems(RustParser.SlicePatternItemsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPathPattern(RustParser.PathPatternContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitType_(RustParser.Type_Context ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypeNoBounds(RustParser.TypeNoBoundsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitParenthesizedType(RustParser.ParenthesizedTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitNeverType(RustParser.NeverTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTupleType(RustParser.TupleTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitArrayType(RustParser.ArrayTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitSliceType(RustParser.SliceTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitReferenceType(RustParser.ReferenceTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitRawPointerType(RustParser.RawPointerTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitBareFunctionType(RustParser.BareFunctionTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFunctionTypeQualifiers(RustParser.FunctionTypeQualifiersContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitBareFunctionReturnType(RustParser.BareFunctionReturnTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitFunctionParametersMaybeNamedVariadic(RustParser.FunctionParametersMaybeNamedVariadicContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMaybeNamedFunctionParameters(RustParser.MaybeNamedFunctionParametersContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMaybeNamedParam(RustParser.MaybeNamedParamContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMaybeNamedFunctionParametersVariadic(RustParser.MaybeNamedFunctionParametersVariadicContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTraitObjectType(RustParser.TraitObjectTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTraitObjectTypeOneBound(RustParser.TraitObjectTypeOneBoundContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitImplTraitType(RustParser.ImplTraitTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitImplTraitTypeOneBound(RustParser.ImplTraitTypeOneBoundContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitInferredType(RustParser.InferredTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypeParamBounds(RustParser.TypeParamBoundsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypeParamBound(RustParser.TypeParamBoundContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTraitBound(RustParser.TraitBoundContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLifetimeBounds(RustParser.LifetimeBoundsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitLifetime(RustParser.LifetimeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitSimplePath(RustParser.SimplePathContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitSimplePathSegment(RustParser.SimplePathSegmentContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPathInExpression(RustParser.PathInExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPathExprSegment(RustParser.PathExprSegmentContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitPathIdentSegment(RustParser.PathIdentSegmentContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericArgs(RustParser.GenericArgsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericArg(RustParser.GenericArgContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericArgsConst(RustParser.GenericArgsConstContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericArgsLifetimes(RustParser.GenericArgsLifetimesContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericArgsTypes(RustParser.GenericArgsTypesContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericArgsBindings(RustParser.GenericArgsBindingsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitGenericArgsBinding(RustParser.GenericArgsBindingContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitQualifiedPathInExpression(RustParser.QualifiedPathInExpressionContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitQualifiedPathType(RustParser.QualifiedPathTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitQualifiedPathInType(RustParser.QualifiedPathInTypeContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypePath(RustParser.TypePathContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypePathSegment(RustParser.TypePathSegmentContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypePathFn(RustParser.TypePathFnContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitTypePathInputs(RustParser.TypePathInputsContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitVisibility(RustParser.VisibilityContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitIdentifier(RustParser.IdentifierContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitKeyword(RustParser.KeywordContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroIdentifierLikeToken(RustParser.MacroIdentifierLikeTokenContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroLiteralToken(RustParser.MacroLiteralTokenContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitMacroPunctuationToken(RustParser.MacroPunctuationTokenContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitShl(RustParser.ShlContext ctx) { return visitChildren(ctx); } - /** - * {@inheritDoc} - * - *

The default implementation returns the result of calling - * {@link #visitChildren} on {@code ctx}.

- */ - @Override public T visitShr(RustParser.ShrContext ctx) { return visitChildren(ctx); } -} \ No newline at end of file diff --git a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParserVisitor.java b/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParserVisitor.java deleted file mode 100644 index 7d47054bd142..000000000000 --- a/rust/rust.grammar/src/org/netbeans/modules/rust/grammar/antlr4/RustParserVisitor.java +++ /dev/null @@ -1,1445 +0,0 @@ -// Generated from java-escape by ANTLR 4.11.1 -package org.netbeans.modules.rust.grammar.antlr4; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -// DO NOT MODIFY THIS FILE! -// This file is generated file from RustParser.g4 at compile time! - - -import org.antlr.v4.runtime.tree.ParseTreeVisitor; - -/** - * This interface defines a complete generic visitor for a parse tree produced - * by {@link RustParser}. - * - * @param The return type of the visit operation. Use {@link Void} for - * operations with no return type. - */ -public interface RustParserVisitor extends ParseTreeVisitor { - /** - * Visit a parse tree produced by {@link RustParser#crate}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitCrate(RustParser.CrateContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroInvocation}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroInvocation(RustParser.MacroInvocationContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#delimTokenTree}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitDelimTokenTree(RustParser.DelimTokenTreeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tokenTree}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTokenTree(RustParser.TokenTreeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tokenTreeToken}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTokenTreeToken(RustParser.TokenTreeTokenContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroInvocationSemi}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroInvocationSemi(RustParser.MacroInvocationSemiContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroRulesDefinition}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroRulesDefinition(RustParser.MacroRulesDefinitionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroRulesDef}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroRulesDef(RustParser.MacroRulesDefContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroRules}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroRules(RustParser.MacroRulesContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroRule}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroRule(RustParser.MacroRuleContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroMatcher}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroMatcher(RustParser.MacroMatcherContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroMatch}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroMatch(RustParser.MacroMatchContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroMatchToken}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroMatchToken(RustParser.MacroMatchTokenContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroFragSpec}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroFragSpec(RustParser.MacroFragSpecContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroRepSep}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroRepSep(RustParser.MacroRepSepContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroRepOp}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroRepOp(RustParser.MacroRepOpContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroTranscriber}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroTranscriber(RustParser.MacroTranscriberContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#item}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitItem(RustParser.ItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#visItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitVisItem(RustParser.VisItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroItem(RustParser.MacroItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#module}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitModule(RustParser.ModuleContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#externCrate}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitExternCrate(RustParser.ExternCrateContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#crateRef}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitCrateRef(RustParser.CrateRefContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#asClause}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAsClause(RustParser.AsClauseContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#useDeclaration}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitUseDeclaration(RustParser.UseDeclarationContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#useTree}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitUseTree(RustParser.UseTreeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#function_}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunction_(RustParser.Function_Context ctx); - /** - * Visit a parse tree produced by {@link RustParser#functionQualifiers}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunctionQualifiers(RustParser.FunctionQualifiersContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#abi}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAbi(RustParser.AbiContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#functionParameters}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunctionParameters(RustParser.FunctionParametersContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#selfParam}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitSelfParam(RustParser.SelfParamContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#shorthandSelf}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitShorthandSelf(RustParser.ShorthandSelfContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typedSelf}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypedSelf(RustParser.TypedSelfContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#functionParam}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunctionParam(RustParser.FunctionParamContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#functionParamPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunctionParamPattern(RustParser.FunctionParamPatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#functionReturnType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunctionReturnType(RustParser.FunctionReturnTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typeAlias}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypeAlias(RustParser.TypeAliasContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#struct_}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStruct_(RustParser.Struct_Context ctx); - /** - * Visit a parse tree produced by {@link RustParser#structStruct}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructStruct(RustParser.StructStructContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tupleStruct}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleStruct(RustParser.TupleStructContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structFields}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructFields(RustParser.StructFieldsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structField}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructField(RustParser.StructFieldContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tupleFields}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleFields(RustParser.TupleFieldsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tupleField}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleField(RustParser.TupleFieldContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumeration}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumeration(RustParser.EnumerationContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumItems}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumItems(RustParser.EnumItemsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumItem(RustParser.EnumItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumItemTuple}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumItemTuple(RustParser.EnumItemTupleContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumItemStruct}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumItemStruct(RustParser.EnumItemStructContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumItemDiscriminant}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumItemDiscriminant(RustParser.EnumItemDiscriminantContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#union_}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitUnion_(RustParser.Union_Context ctx); - /** - * Visit a parse tree produced by {@link RustParser#constantItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitConstantItem(RustParser.ConstantItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#staticItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStaticItem(RustParser.StaticItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#trait_}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTrait_(RustParser.Trait_Context ctx); - /** - * Visit a parse tree produced by {@link RustParser#implementation}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitImplementation(RustParser.ImplementationContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#inherentImpl}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitInherentImpl(RustParser.InherentImplContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#traitImpl}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTraitImpl(RustParser.TraitImplContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#externBlock}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitExternBlock(RustParser.ExternBlockContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#externalItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitExternalItem(RustParser.ExternalItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericParams}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericParams(RustParser.GenericParamsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericParam}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericParam(RustParser.GenericParamContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#lifetimeParam}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLifetimeParam(RustParser.LifetimeParamContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typeParam}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypeParam(RustParser.TypeParamContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#constParam}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitConstParam(RustParser.ConstParamContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#whereClause}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitWhereClause(RustParser.WhereClauseContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#whereClauseItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitWhereClauseItem(RustParser.WhereClauseItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#lifetimeWhereClauseItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLifetimeWhereClauseItem(RustParser.LifetimeWhereClauseItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typeBoundWhereClauseItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypeBoundWhereClauseItem(RustParser.TypeBoundWhereClauseItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#forLifetimes}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitForLifetimes(RustParser.ForLifetimesContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#associatedItem}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAssociatedItem(RustParser.AssociatedItemContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#innerAttribute}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitInnerAttribute(RustParser.InnerAttributeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#outerAttribute}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitOuterAttribute(RustParser.OuterAttributeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#attr}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAttr(RustParser.AttrContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#attrInput}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAttrInput(RustParser.AttrInputContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#statement}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStatement(RustParser.StatementContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#letStatement}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLetStatement(RustParser.LetStatementContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#expressionStatement}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitExpressionStatement(RustParser.ExpressionStatementContext ctx); - /** - * Visit a parse tree produced by the {@code TypeCastExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypeCastExpression(RustParser.TypeCastExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code PathExpression_} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPathExpression_(RustParser.PathExpression_Context ctx); - /** - * Visit a parse tree produced by the {@code TupleExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleExpression(RustParser.TupleExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code IndexExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitIndexExpression(RustParser.IndexExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code RangeExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitRangeExpression(RustParser.RangeExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code MacroInvocationAsExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroInvocationAsExpression(RustParser.MacroInvocationAsExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code ReturnExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitReturnExpression(RustParser.ReturnExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code AwaitExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAwaitExpression(RustParser.AwaitExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code ErrorPropagationExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitErrorPropagationExpression(RustParser.ErrorPropagationExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code ContinueExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitContinueExpression(RustParser.ContinueExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code AssignmentExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAssignmentExpression(RustParser.AssignmentExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code MethodCallExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMethodCallExpression(RustParser.MethodCallExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code LiteralExpression_} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLiteralExpression_(RustParser.LiteralExpression_Context ctx); - /** - * Visit a parse tree produced by the {@code StructExpression_} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructExpression_(RustParser.StructExpression_Context ctx); - /** - * Visit a parse tree produced by the {@code TupleIndexingExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleIndexingExpression(RustParser.TupleIndexingExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code NegationExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitNegationExpression(RustParser.NegationExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code CallExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitCallExpression(RustParser.CallExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code LazyBooleanExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLazyBooleanExpression(RustParser.LazyBooleanExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code DereferenceExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitDereferenceExpression(RustParser.DereferenceExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code ExpressionWithBlock_} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitExpressionWithBlock_(RustParser.ExpressionWithBlock_Context ctx); - /** - * Visit a parse tree produced by the {@code GroupedExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGroupedExpression(RustParser.GroupedExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code BreakExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitBreakExpression(RustParser.BreakExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code ArithmeticOrLogicalExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitArithmeticOrLogicalExpression(RustParser.ArithmeticOrLogicalExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code FieldExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFieldExpression(RustParser.FieldExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code EnumerationVariantExpression_} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumerationVariantExpression_(RustParser.EnumerationVariantExpression_Context ctx); - /** - * Visit a parse tree produced by the {@code ComparisonExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitComparisonExpression(RustParser.ComparisonExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code AttributedExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAttributedExpression(RustParser.AttributedExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code BorrowExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitBorrowExpression(RustParser.BorrowExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code CompoundAssignmentExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitCompoundAssignmentExpression(RustParser.CompoundAssignmentExpressionContext ctx); - /** - * Visit a parse tree produced by the {@code ClosureExpression_} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitClosureExpression_(RustParser.ClosureExpression_Context ctx); - /** - * Visit a parse tree produced by the {@code ArrayExpression} - * labeled alternative in {@link RustParser#expression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitArrayExpression(RustParser.ArrayExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#shiftOperator}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitShiftOperator(RustParser.ShiftOperatorContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#comparisonOperator}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitComparisonOperator(RustParser.ComparisonOperatorContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#compoundAssignOperator}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitCompoundAssignOperator(RustParser.CompoundAssignOperatorContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#expressionWithBlock}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitExpressionWithBlock(RustParser.ExpressionWithBlockContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#literalExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLiteralExpression(RustParser.LiteralExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#pathExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPathExpression(RustParser.PathExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#blockExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitBlockExpression(RustParser.BlockExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#statements}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStatements(RustParser.StatementsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#asyncBlockExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitAsyncBlockExpression(RustParser.AsyncBlockExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#unsafeBlockExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitUnsafeBlockExpression(RustParser.UnsafeBlockExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#arrayElements}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitArrayElements(RustParser.ArrayElementsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tupleElements}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleElements(RustParser.TupleElementsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tupleIndex}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleIndex(RustParser.TupleIndexContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructExpression(RustParser.StructExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structExprStruct}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructExprStruct(RustParser.StructExprStructContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structExprFields}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructExprFields(RustParser.StructExprFieldsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structExprField}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructExprField(RustParser.StructExprFieldContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structBase}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructBase(RustParser.StructBaseContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structExprTuple}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructExprTuple(RustParser.StructExprTupleContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structExprUnit}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructExprUnit(RustParser.StructExprUnitContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumerationVariantExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumerationVariantExpression(RustParser.EnumerationVariantExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumExprStruct}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumExprStruct(RustParser.EnumExprStructContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumExprFields}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumExprFields(RustParser.EnumExprFieldsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumExprField}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumExprField(RustParser.EnumExprFieldContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumExprTuple}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumExprTuple(RustParser.EnumExprTupleContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#enumExprFieldless}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitEnumExprFieldless(RustParser.EnumExprFieldlessContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#callParams}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitCallParams(RustParser.CallParamsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#closureExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitClosureExpression(RustParser.ClosureExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#closureParameters}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitClosureParameters(RustParser.ClosureParametersContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#closureParam}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitClosureParam(RustParser.ClosureParamContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#loopExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLoopExpression(RustParser.LoopExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#infiniteLoopExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitInfiniteLoopExpression(RustParser.InfiniteLoopExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#predicateLoopExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPredicateLoopExpression(RustParser.PredicateLoopExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#predicatePatternLoopExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPredicatePatternLoopExpression(RustParser.PredicatePatternLoopExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#iteratorLoopExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitIteratorLoopExpression(RustParser.IteratorLoopExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#loopLabel}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLoopLabel(RustParser.LoopLabelContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#ifExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitIfExpression(RustParser.IfExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#ifLetExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitIfLetExpression(RustParser.IfLetExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#matchExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMatchExpression(RustParser.MatchExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#matchArms}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMatchArms(RustParser.MatchArmsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#matchArmExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMatchArmExpression(RustParser.MatchArmExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#matchArm}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMatchArm(RustParser.MatchArmContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#matchArmGuard}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMatchArmGuard(RustParser.MatchArmGuardContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#pattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPattern(RustParser.PatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#patternNoTopAlt}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPatternNoTopAlt(RustParser.PatternNoTopAltContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#patternWithoutRange}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPatternWithoutRange(RustParser.PatternWithoutRangeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#literalPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLiteralPattern(RustParser.LiteralPatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#identifierPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitIdentifierPattern(RustParser.IdentifierPatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#wildcardPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitWildcardPattern(RustParser.WildcardPatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#restPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitRestPattern(RustParser.RestPatternContext ctx); - /** - * Visit a parse tree produced by the {@code InclusiveRangePattern} - * labeled alternative in {@link RustParser#rangePattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitInclusiveRangePattern(RustParser.InclusiveRangePatternContext ctx); - /** - * Visit a parse tree produced by the {@code HalfOpenRangePattern} - * labeled alternative in {@link RustParser#rangePattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitHalfOpenRangePattern(RustParser.HalfOpenRangePatternContext ctx); - /** - * Visit a parse tree produced by the {@code ObsoleteRangePattern} - * labeled alternative in {@link RustParser#rangePattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitObsoleteRangePattern(RustParser.ObsoleteRangePatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#rangePatternBound}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitRangePatternBound(RustParser.RangePatternBoundContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#referencePattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitReferencePattern(RustParser.ReferencePatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructPattern(RustParser.StructPatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structPatternElements}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructPatternElements(RustParser.StructPatternElementsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structPatternFields}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructPatternFields(RustParser.StructPatternFieldsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structPatternField}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructPatternField(RustParser.StructPatternFieldContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#structPatternEtCetera}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitStructPatternEtCetera(RustParser.StructPatternEtCeteraContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tupleStructPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleStructPattern(RustParser.TupleStructPatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tupleStructItems}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleStructItems(RustParser.TupleStructItemsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tuplePattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTuplePattern(RustParser.TuplePatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tuplePatternItems}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTuplePatternItems(RustParser.TuplePatternItemsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#groupedPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGroupedPattern(RustParser.GroupedPatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#slicePattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitSlicePattern(RustParser.SlicePatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#slicePatternItems}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitSlicePatternItems(RustParser.SlicePatternItemsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#pathPattern}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPathPattern(RustParser.PathPatternContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#type_}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitType_(RustParser.Type_Context ctx); - /** - * Visit a parse tree produced by {@link RustParser#typeNoBounds}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypeNoBounds(RustParser.TypeNoBoundsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#parenthesizedType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitParenthesizedType(RustParser.ParenthesizedTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#neverType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitNeverType(RustParser.NeverTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#tupleType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTupleType(RustParser.TupleTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#arrayType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitArrayType(RustParser.ArrayTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#sliceType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitSliceType(RustParser.SliceTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#referenceType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitReferenceType(RustParser.ReferenceTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#rawPointerType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitRawPointerType(RustParser.RawPointerTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#bareFunctionType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitBareFunctionType(RustParser.BareFunctionTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#functionTypeQualifiers}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunctionTypeQualifiers(RustParser.FunctionTypeQualifiersContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#bareFunctionReturnType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitBareFunctionReturnType(RustParser.BareFunctionReturnTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#functionParametersMaybeNamedVariadic}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitFunctionParametersMaybeNamedVariadic(RustParser.FunctionParametersMaybeNamedVariadicContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#maybeNamedFunctionParameters}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMaybeNamedFunctionParameters(RustParser.MaybeNamedFunctionParametersContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#maybeNamedParam}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMaybeNamedParam(RustParser.MaybeNamedParamContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#maybeNamedFunctionParametersVariadic}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMaybeNamedFunctionParametersVariadic(RustParser.MaybeNamedFunctionParametersVariadicContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#traitObjectType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTraitObjectType(RustParser.TraitObjectTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#traitObjectTypeOneBound}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTraitObjectTypeOneBound(RustParser.TraitObjectTypeOneBoundContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#implTraitType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitImplTraitType(RustParser.ImplTraitTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#implTraitTypeOneBound}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitImplTraitTypeOneBound(RustParser.ImplTraitTypeOneBoundContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#inferredType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitInferredType(RustParser.InferredTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typeParamBounds}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypeParamBounds(RustParser.TypeParamBoundsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typeParamBound}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypeParamBound(RustParser.TypeParamBoundContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#traitBound}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTraitBound(RustParser.TraitBoundContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#lifetimeBounds}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLifetimeBounds(RustParser.LifetimeBoundsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#lifetime}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitLifetime(RustParser.LifetimeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#simplePath}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitSimplePath(RustParser.SimplePathContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#simplePathSegment}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitSimplePathSegment(RustParser.SimplePathSegmentContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#pathInExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPathInExpression(RustParser.PathInExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#pathExprSegment}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPathExprSegment(RustParser.PathExprSegmentContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#pathIdentSegment}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitPathIdentSegment(RustParser.PathIdentSegmentContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericArgs}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericArgs(RustParser.GenericArgsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericArg}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericArg(RustParser.GenericArgContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericArgsConst}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericArgsConst(RustParser.GenericArgsConstContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericArgsLifetimes}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericArgsLifetimes(RustParser.GenericArgsLifetimesContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericArgsTypes}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericArgsTypes(RustParser.GenericArgsTypesContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericArgsBindings}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericArgsBindings(RustParser.GenericArgsBindingsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#genericArgsBinding}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitGenericArgsBinding(RustParser.GenericArgsBindingContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#qualifiedPathInExpression}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitQualifiedPathInExpression(RustParser.QualifiedPathInExpressionContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#qualifiedPathType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitQualifiedPathType(RustParser.QualifiedPathTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#qualifiedPathInType}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitQualifiedPathInType(RustParser.QualifiedPathInTypeContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typePath}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypePath(RustParser.TypePathContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typePathSegment}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypePathSegment(RustParser.TypePathSegmentContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typePathFn}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypePathFn(RustParser.TypePathFnContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#typePathInputs}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitTypePathInputs(RustParser.TypePathInputsContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#visibility}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitVisibility(RustParser.VisibilityContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#identifier}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitIdentifier(RustParser.IdentifierContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#keyword}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitKeyword(RustParser.KeywordContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroIdentifierLikeToken}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroIdentifierLikeToken(RustParser.MacroIdentifierLikeTokenContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroLiteralToken}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroLiteralToken(RustParser.MacroLiteralTokenContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#macroPunctuationToken}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitMacroPunctuationToken(RustParser.MacroPunctuationTokenContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#shl}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitShl(RustParser.ShlContext ctx); - /** - * Visit a parse tree produced by {@link RustParser#shr}. - * @param ctx the parse tree - * @return the visitor result - */ - T visitShr(RustParser.ShrContext ctx); -} \ No newline at end of file