diff --git a/bin/j2py b/bin/j2py index 6eb1a40..bfc1fbf 100755 --- a/bin/j2py +++ b/bin/j2py @@ -9,7 +9,7 @@ a file, translate it, and write it out. import sys from argparse import ArgumentParser, ArgumentTypeError from collections import defaultdict -from logging import _levelNames as logLevels, exception, warning, info, basicConfig +from logging import _nameToLevel as logLevels, exception, warning, info, basicConfig from os import path, makedirs from time import time @@ -110,15 +110,15 @@ def runTransform(options): source = open(filein).read() else: source = sys.stdin.read() - except (IOError, ), exc: + except (IOError, ) as exc: code, msg = exc.args[0:2] - print 'IOError: %s.' % (msg, ) + print('IOError: %s.' % (msg, )) return code timed['comp'] try: tree = buildAST(source) - except (Exception, ), exc: + except (Exception, ) as exc: exception('exception while parsing') return 1 timed['comp_finish'] @@ -136,22 +136,22 @@ def runTransform(options): timed['visit_finish'] timed['encode'] - source = unicode(module) + source = str(module) timed['encode_finish'] timed['overall_finish'] if options.lexertokens: for idx, tok in enumerate(tree.parser.input.tokens): - print >> sys.stderr, '{0} {1}'.format(idx, tok) - print >> sys.stderr + print('{0} {1}'.format(idx, tok), file=sys.stderr) + print(file=sys.stderr) if options.javaast: tree.dump(sys.stderr) - print >> sys.stderr + print(file=sys.stderr) if options.pytree: module.dumpRepr(sys.stderr) - print >> sys.stderr + print(file=sys.stderr) if not options.skipsource: if fileout == filedefault: @@ -159,12 +159,12 @@ def runTransform(options): else: output = open(fileout, 'w') module.name = path.splitext(filein)[0] if filein != '-' else '' - print >> output, source + print(source, file=output) if not options.skipcompile: try: compile(source, '', 'exec') - except (SyntaxError, ), ex: + except (SyntaxError, ) as ex: warning('Generated source has invalid syntax. %s', ex) else: info('Generated source has valid syntax.') diff --git a/java2python/compiler/__init__.py b/java2python/compiler/__init__.py index 4325201..5ab69cd 100644 --- a/java2python/compiler/__init__.py +++ b/java2python/compiler/__init__.py @@ -7,25 +7,23 @@ # instead of using directly referencing items within the subpackage. from java2python.compiler.block import Module -from java2python.lang import Lexer, Parser, StringStream, TokenStream, TreeAdaptor +from java2python.lang import Lexer, Parser, StringStream, TokenStream def buildAST(source): """ Returns an AST for the given source. """ lexer = Lexer(StringStream(source)) parser = Parser(TokenStream(lexer)) - adapter = TreeAdaptor(lexer, parser) - parser.setTreeAdaptor(adapter) scope = parser.javaSource() return scope.tree def buildJavaDocAST(source): """ Returns an AST for the given javadoc source. """ - from java2python.lang.JavaDocLexer import JavaDocLexer - from java2python.lang.JavaDocParser import JavaDocParser - lexer = JavaDocLexer(StringStream(source)) - parser = JavaDocParser(TokenStream(lexer)) + from java2python.lang.JavadocLexer import JavadocLexer + from java2python.lang.JavadocParser import JavaDocParser + lexer = JavadocLexer(StringStream(source)) + parser = JavadocParser(TokenStream(lexer)) scope = parser.commentBody() return scope.tree diff --git a/java2python/compiler/block.py b/java2python/compiler/block.py index 4cf7b09..7d8c40f 100644 --- a/java2python/compiler/block.py +++ b/java2python/compiler/block.py @@ -16,14 +16,15 @@ from java2python.compiler import template, visitor -def addTypeToModule((className, factoryName)): +def addTypeToModule(xxx_todo_changeme): """ Constructs and adds a new type to this module. """ + (className, factoryName) = xxx_todo_changeme bases = (getattr(template, className), getattr(visitor, className)) newType = type(className, bases, dict(factoryName=factoryName)) setattr(modules[__name__], className, newType) -map(addTypeToModule, ( +list(map(addTypeToModule, ( ('Annotation', 'at'), ('Class', 'klass'), ('Comment', 'comment'), @@ -35,4 +36,4 @@ def addTypeToModule((className, factoryName)): ('Module', 'module'), ('Statement', 'statement'), ) - ) + )) diff --git a/java2python/compiler/template.py b/java2python/compiler/template.py index 4f4dfe1..290f4c3 100644 --- a/java2python/compiler/template.py +++ b/java2python/compiler/template.py @@ -13,12 +13,13 @@ # are usually a sign of a bad design and/or language limitations, and # this case is no exception. -from cStringIO import StringIO +from io import StringIO from functools import partial -from itertools import chain, ifilter, imap +from itertools import chain from java2python.lang import tokens from java2python.lib import FS, colors +from functools import reduce class Factory(object): @@ -74,7 +75,7 @@ def __init__(cls, name, bases, namespace): pass -class Base(object): +class Base(object, metaclass=FactoryTypeDetector): """ Base -> base class for formatting Python output. This class defines a large set of attributes and methods for the @@ -110,7 +111,6 @@ class Base(object): a the template as tree for debugging. """ - __metaclass__ = FactoryTypeDetector isAnnotation = isClass = isComment = isEnum = isExpression = \ isInterface = isMethod = isModule = isStatement = False @@ -155,7 +155,7 @@ def altIdent(self, name): for klass in self.parents(lambda v:v.isClass): if name in klass.variables: try: - method = self.parents(lambda v:v.isMethod).next() + method = next(self.parents(lambda v:v.isMethod)) except (StopIteration, ): return name if name in [p['name'] for p in method.parameters]: @@ -173,20 +173,20 @@ def configHandler(self, part, suffix='Handler', default=None): def configHandlers(self, part, suffix='Handlers'): """ Returns config handlers for this type of template """ name = '{0}{1}{2}'.format(self.typeName, part, suffix) - return imap(self.toIter, chain(*self.config.every(name, []))) + return map(self.toIter, chain(*self.config.every(name, []))) def dump(self, fd, level=0): """ Writes the Python source code for this template to the given file. """ indent, isNotNone = level * self.indent, lambda x:x is not None lineFormat = '{0}{1}\n'.format - for line in ifilter(isNotNone, self.iterPrologue()): + for line in filter(isNotNone, self.iterPrologue()): line = lineFormat(indent, line) fd.write(line if line.strip() else '\n') - for item in ifilter(isNotNone, self.iterHead()): + for item in filter(isNotNone, self.iterHead()): item.dump(fd, level+1) for item in self.iterBody(): item.dump(fd, level+1) - for line in ifilter(isNotNone, self.iterEpilogue()): + for line in filter(isNotNone, self.iterEpilogue()): line = lineFormat(indent, line) fd.write(line if line.strip() else '\n') @@ -200,7 +200,7 @@ def dumpRepr(self, fd, level=0): """ Writes a debug string for this template to the given file. """ indent, default = self.indent, lambda x, y:None fd.write('{0}{1!r}\n'.format(indent*level, self)) - for child in ifilter(None, self.children): + for child in filter(None, self.children): getattr(child, 'dumpRepr', default)(fd, level+1) @property @@ -230,7 +230,7 @@ def iterPrologue(self): def iterHead(self): """ Yields the items in the head of this template. """ items = chain(*(h(self) for h in self.configHandlers('Head'))) - return imap(self.toExpr, items) + return map(self.toExpr, items) def iterBody(self): """ Yields the items in the body of this template. """ @@ -304,10 +304,10 @@ def __init__(self, config, left='', right='', fs=FS.lr, parent=None, tail=''): def __repr__(self): """ Returns the debug string representation of this template. """ parts, parent, showfs = [colors.blue(self.typeName)], self.parent, True - if isinstance(self.left, (basestring, )) and self.left: + if isinstance(self.left, str) and self.left: parts.append(colors.white('left:') + colors.yellow(self.left)) showfs = False - if isinstance(self.right, (basestring, )) and self.right: + if isinstance(self.right, str) and self.right: parts.append(colors.white('right:') + colors.yellow(self.right)) showfs = False if self.modifiers: diff --git a/java2python/compiler/visitor.py b/java2python/compiler/visitor.py index f62e53e..38b6564 100644 --- a/java2python/compiler/visitor.py +++ b/java2python/compiler/visitor.py @@ -13,7 +13,7 @@ from functools import reduce, partial -from itertools import ifilter, ifilterfalse, izip, tee +from itertools import filterfalse, tee from logging import debug, warn from re import compile as recompile, sub as resub @@ -31,7 +31,7 @@ def __init__(self): class Base(object): """ Base -> Parent class for AST visitors. """ - commentSubs = map(recompile, ['^\s*/(\*)+', '(\*)+/\s*$', '^\s*//']) + commentSubs = list(map(recompile, ['^\s*/(\*)+', '(\*)+/\s*$', '^\s*//'])) def accept(self, node, memo): """ Accept a node, possibly creating a child visitor. """ @@ -48,7 +48,7 @@ def insertComments(self, tmpl, tree, index, memo): cache, parser, comTypes = memo.comments, tree.parser, tokens.commentTypes comNew = lambda t:t.type in comTypes and (t.index not in cache) - for tok in ifilter(comNew, parser.input.tokens[memo.last:index]): + for tok in filter(comNew, parser.input.tokens[memo.last:index]): cache.add(tok.index) # loop over parents until we find the top expression @@ -70,7 +70,7 @@ def insertComments(self, tmpl, tree, index, memo): def stripComment(self, text): """ Regex substitutions for comments; removes comment characters. """ subText = lambda value, regex:resub(regex, '', value) - for text in ifilter(unicode.strip, text.split('\n')): + for text in filter(str.strip, text.split('\n')): yield reduce(subText, self.commentSubs, text) def walk(self, tree, memo=None): @@ -95,7 +95,7 @@ def walk(self, tree, memo=None): def zipWalk(self, nodes, visitors, memo): """ Walk the given nodes zipped with the given visitors. """ - for node, visitor in izip(nodes, visitors): + for node, visitor in zip(nodes, visitors): visitor.walk(node, memo) def nodeTypeToString(self, node): @@ -132,7 +132,7 @@ def acceptType(self, node, memo): _acceptInterface = makeAcceptType('interface') def acceptInterface(self, node, memo): - module = self.parents(lambda x:x.isModule).next() + module = next(self.parents(lambda x:x.isModule)) module.needsAbstractHelpers = True return self._acceptInterface(node, memo) @@ -161,9 +161,9 @@ class ModifiersAcceptor(object): def acceptModifierList(self, node, memo): """ Accept and process class and method modifiers. """ isAnno = lambda token:token.type==tokens.AT - for ano in ifilter(isAnno, node.children): + for ano in filter(isAnno, node.children): self.nodesToAnnos(ano, memo) - for mod in ifilterfalse(isAnno, node.children): + for mod in filterfalse(isAnno, node.children): self.nodesToModifiers(mod, node) return self @@ -407,7 +407,7 @@ def acceptCatch(self, node, memo): def acceptContinue(self, node, memo): """ Accept and process a continue statement. """ - parent = node.parents(lambda x: x.type in {tokens.FOR, tokens.FOR_EACH, tokens.DO, tokens.WHILE}).next() + parent = next(node.parents(lambda x: x.type in {tokens.FOR, tokens.FOR_EACH, tokens.DO, tokens.WHILE})) if parent.type == tokens.FOR: updateStat = self.factory.expr(parent=self) updateStat.walk(parent.firstChildOfType(tokens.FOR_UPDATE), memo) @@ -561,7 +561,7 @@ def acceptSwitch(self, node, memo): def acceptSynchronized(self, node, memo): """ Accept and process a synchronized statement (not a modifier). """ - module = self.parents(lambda x:x.isModule).next() + module = next(self.parents(lambda x:x.isModule)) module.needsSyncHelpers = True if node.parent.type == tokens.MODIFIER_LIST: # Skip any synchronized modifier @@ -743,7 +743,7 @@ def acceptPrePost(self, node, memo): name = node.firstChildOfType(tokens.IDENT).text handler = self.configHandler('VariableNaming') rename = handler(name) - block = self.parents(lambda x:x.isMethod).next() + block = next(self.parents(lambda x:x.isMethod)) if pre: left = name else: @@ -768,7 +768,7 @@ def acceptBitShiftRight(self, node, memo): self.fs = 'bsr(' + FS.l + ', ' + FS.r + ')' self.left, self.right = visitors = factory(parent=self), factory() self.zipWalk(node.children, visitors, memo) - module = self.parents(lambda x:x.isModule).next() + module = next(self.parents(lambda x:x.isModule)) module.needsBsrFunc = True def acceptBitShiftRightAssign(self, node, memo): @@ -777,7 +777,7 @@ def acceptBitShiftRightAssign(self, node, memo): self.fs = FS.l + ' = bsr(' + FS.l + ', ' + FS.r + ')' self.left, self.right = visitors = factory(parent=self), factory() self.zipWalk(node.children, visitors, memo) - module = self.parents(lambda x:x.isModule).next() + module = next(self.parents(lambda x:x.isModule)) module.needsBsrFunc = True def acceptClassConstructorCall(self, node, memo): @@ -853,12 +853,12 @@ def acceptStaticArrayCreator(self, node, memo): def acceptSuper(self, node, memo): """ Accept and process a super expression. """ - cls = self.parents(lambda c:c.isClass).next() + cls = next(self.parents(lambda c:c.isClass)) self.right = self.factory.expr(fs='super({name}, self)'.format(name=cls.name)) def acceptSuperConstructorCall(self, node, memo): """ Accept and process a super constructor call. """ - cls = self.parents(lambda c:c.isClass).next() + cls = next(self.parents(lambda c:c.isClass)) fs = 'super(' + FS.l + ', self).__init__(' + FS.r + ')' self.right = self.factory.expr(fs=fs, left=cls.name) return self.right diff --git a/java2python/lang/Java.tokens b/java2python/lang/Java.tokens deleted file mode 100644 index 9adec21..0000000 --- a/java2python/lang/Java.tokens +++ /dev/null @@ -1,280 +0,0 @@ -PACKAGE=84 -EXPONENT=173 -STAR=49 -WHILE=103 -MOD=32 -MOD_ASSIGN=33 -CASE=58 -CHAR=60 -NEW=82 -DO=64 -GENERIC_TYPE_PARAM_LIST=138 -CLASS_INSTANCE_INITIALIZER=121 -ARRAY_ELEMENT_ACCESS=115 -FOR_CONDITION=129 -NOT=34 -VAR_DECLARATION=160 -ANNOTATION_METHOD_DECL=109 -DIV_ASSIGN=14 -LOGICAL_AND=26 -BREAK=56 -UNARY_PLUS=159 -BIT_SHIFT_RIGHT_ASSIGN=9 -TYPE=157 -RPAREN=43 -INC=21 -FINAL=70 -IMPORT=78 -STRING_LITERAL=170 -FOR_UPDATE=132 -FLOATING_POINT_LITERAL=168 -CAST_EXPR=118 -NOT_EQUAL=35 -VOID_METHOD_DECL=163 -THIS=95 -RETURN=88 -DOUBLE=65 -ENUM_TOP_LEVEL_SCOPE=125 -VOID=101 -SUPER=92 -COMMENT=181 -ANNOTATION_INIT_KEY_LIST=107 -JAVA_ID_START=178 -FLOAT_TYPE_SUFFIX=174 -PRE_DEC=149 -RBRACK=41 -IMPLEMENTS_CLAUSE=140 -SWITCH_BLOCK_LABEL_LIST=154 -LINE_COMMENT=182 -PRIVATE=85 -STATIC=90 -BLOCK_SCOPE=117 -ANNOTATION_INIT_DEFAULT_KEY=106 -SWITCH=93 -NULL=83 -VAR_DECLARATOR=161 -MINUS_ASSIGN=31 -ELSE=66 -STRICTFP=91 -CHARACTER_LITERAL=169 -PRE_INC=150 -ANNOTATION_LIST=108 -ELLIPSIS=17 -NATIVE=81 -OCTAL_ESCAPE=177 -UNARY_MINUS=158 -THROWS=97 -LCURLY=23 -INT=79 -FORMAL_PARAM_VARARG_DECL=135 -METHOD_CALL=144 -ASSERT=54 -TRY=100 -INTERFACE_TOP_LEVEL_SCOPE=139 -SHIFT_LEFT=45 -WS=180 -SHIFT_RIGHT=47 -FORMAL_PARAM_STD_DECL=134 -LOCAL_MODIFIER_LIST=142 -OR=36 -LESS_THAN=25 -SHIFT_RIGHT_ASSIGN=48 -EXTENDS_BOUND_LIST=127 -JAVA_SOURCE=143 -CATCH=59 -FALSE=69 -INTEGER_TYPE_SUFFIX=172 -DECIMAL_LITERAL=167 -THROW=96 -FOR_INIT=131 -DEC=12 -PROTECTED=86 -CLASS=61 -LBRACK=22 -BIT_SHIFT_RIGHT=8 -THROWS_CLAUSE=156 -GREATER_OR_EQUAL=19 -FOR=73 -THIS_CONSTRUCTOR_CALL=155 -LOGICAL_NOT=27 -JAVADOC_COMMENT=183 -FLOAT=72 -ABSTRACT=53 -AND=4 -POST_DEC=147 -AND_ASSIGN=5 -STATIC_ARRAY_CREATOR=152 -MODIFIER_LIST=145 -ANNOTATION_SCOPE=110 -LPAREN=29 -IF=74 -AT=7 -ESCAPE_SEQUENCE=175 -CONSTRUCTOR_DECL=124 -LABELED_STATEMENT=141 -UNICODE_ESCAPE=176 -EXPR=126 -SYNCHRONIZED=94 -BOOLEAN=55 -CLASS_TOP_LEVEL_SCOPE=123 -IMPLEMENTS=75 -CONTINUE=62 -COMMA=11 -TRANSIENT=98 -EQUAL=18 -XOR_ASSIGN=52 -LOGICAL_OR=28 -IDENT=164 -QUALIFIED_TYPE_IDENT=151 -ARGUMENT_LIST=112 -PLUS=38 -HEX_LITERAL=165 -ANNOTATION_INIT_BLOCK=105 -DOT=15 -SHIFT_LEFT_ASSIGN=46 -FORMAL_PARAM_LIST=133 -GENERIC_TYPE_ARG_LIST=137 -ANNOTATION_TOP_LEVEL_SCOPE=111 -DOTSTAR=16 -BYTE=57 -XOR=51 -JAVA_ID_PART=179 -GREATER_THAN=20 -VOLATILE=102 -PARENTESIZED_EXPR=146 -CLASS_STATIC_INITIALIZER=122 -ARRAY_DECLARATOR_LIST=114 -LESS_OR_EQUAL=24 -DEFAULT=63 -OCTAL_LITERAL=166 -HEX_DIGIT=171 -SHORT=89 -INSTANCEOF=76 -MINUS=30 -EXTENDS_CLAUSE=128 -TRUE=99 -SEMI=44 -STAR_ASSIGN=50 -VAR_DECLARATOR_LIST=162 -ARRAY_DECLARATOR=113 -COLON=10 -OR_ASSIGN=37 -ENUM=67 -QUESTION=40 -FINALLY=71 -RCURLY=42 -PLUS_ASSIGN=39 -ASSIGN=6 -ANNOTATION_INIT_ARRAY_ELEMENT=104 -FUNCTION_METHOD_DECL=136 -INTERFACE=77 -POST_INC=148 -DIV=13 -CLASS_CONSTRUCTOR_CALL=120 -LONG=80 -FOR_EACH=130 -EXTENDS=68 -PUBLIC=87 -ARRAY_INITIALIZER=116 -CATCH_CLAUSE_LIST=119 -SUPER_CONSTRUCTOR_CALL=153 -'>='=19 -'=='=18 -'implements'=75 -'this'=95 -'volatile'=102 -';'=44 -'return'=88 -'for'=73 -'protected'=86 -'^'=51 -'>>'=47 -'static'=90 -'catch'=59 -'extends'=68 -'{'=23 -'package'=84 -'try'=100 -'&='=5 -'('=29 -':'=10 -'synchronized'=94 -'default'=63 -'public'=87 -'<<='=46 -']'=41 -'>>>'=8 -'enum'=67 -'transient'=98 -'assert'=54 -'finally'=71 -'new'=82 -'|='=37 -'throws'=97 -'.*'=16 -'='=6 -'%'=32 -'super'=92 -'case'=58 -'boolean'=55 -'<<'=45 -'<='=24 -'!='=35 -'continue'=62 -'--'=12 -'<'=25 -'['=22 -'&'=4 -'instanceof'=76 -'~'=34 -'/'=13 -'/='=14 -'switch'=93 -'%='=33 -'>'=20 -'||'=28 -'&&'=26 -'+'=38 -'.'=15 -'byte'=57 -'import'=78 -'++'=21 -'true'=99 -'else'=66 -'final'=70 -'^='=52 -'+='=39 -'native'=81 -'break'=56 -'...'=17 -'>>='=48 -'void'=101 -'>>>='=9 -'?'=40 -'private'=85 -'int'=79 -'if'=74 -'while'=103 -'-'=30 -','=11 -'-='=31 -'short'=89 -'long'=80 -'!'=27 -'|'=36 -'class'=61 -'null'=83 -'@'=7 -'throw'=96 -')'=43 -'*='=50 -'do'=64 -'char'=60 -'strictfp'=91 -'float'=72 -'}'=42 -'abstract'=53 -'double'=65 -'false'=69 -'*'=49 -'interface'=77 diff --git a/java2python/lang/JavaLexer.g4 b/java2python/lang/JavaLexer.g4 new file mode 100644 index 0000000..6919d23 --- /dev/null +++ b/java2python/lang/JavaLexer.g4 @@ -0,0 +1,211 @@ +/* + [The "BSD licence"] + Copyright (c) 2013 Terence Parr, Sam Harwell + Copyright (c) 2017 Ivan Kochurkin (upgrade to Java 8) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +lexer grammar JavaLexer; + +// Keywords + +ABSTRACT: 'abstract'; +ASSERT: 'assert'; +BOOLEAN: 'boolean'; +BREAK: 'break'; +BYTE: 'byte'; +CASE: 'case'; +CATCH: 'catch'; +CHAR: 'char'; +CLASS: 'class'; +CONST: 'const'; +CONTINUE: 'continue'; +DEFAULT: 'default'; +DO: 'do'; +DOUBLE: 'double'; +ELSE: 'else'; +ENUM: 'enum'; +EXTENDS: 'extends'; +FINAL: 'final'; +FINALLY: 'finally'; +FLOAT: 'float'; +FOR: 'for'; +IF: 'if'; +GOTO: 'goto'; +IMPLEMENTS: 'implements'; +IMPORT: 'import'; +INSTANCEOF: 'instanceof'; +INT: 'int'; +INTERFACE: 'interface'; +LONG: 'long'; +NATIVE: 'native'; +NEW: 'new'; +PACKAGE: 'package'; +PRIVATE: 'private'; +PROTECTED: 'protected'; +PUBLIC: 'public'; +RETURN: 'return'; +SHORT: 'short'; +STATIC: 'static'; +STRICTFP: 'strictfp'; +SUPER: 'super'; +SWITCH: 'switch'; +SYNCHRONIZED: 'synchronized'; +THIS: 'this'; +THROW: 'throw'; +THROWS: 'throws'; +TRANSIENT: 'transient'; +TRY: 'try'; +VOID: 'void'; +VOLATILE: 'volatile'; +WHILE: 'while'; + +// Literals + +DECIMAL_LITERAL: ('0' | [1-9] (Digits? | '_'+ Digits)) [lL]?; +HEX_LITERAL: '0' [xX] [0-9a-fA-F] ([0-9a-fA-F_]* [0-9a-fA-F])? [lL]?; +OCT_LITERAL: '0' '_'* [0-7] ([0-7_]* [0-7])? [lL]?; +BINARY_LITERAL: '0' [bB] [01] ([01_]* [01])? [lL]?; + +FLOAT_LITERAL: (Digits '.' Digits? | '.' Digits) ExponentPart? [fFdD]? + | Digits (ExponentPart [fFdD]? | [fFdD]) + ; + +HEX_FLOAT_LITERAL: '0' [xX] (HexDigits '.'? | HexDigits? '.' HexDigits) [pP] [+-]? Digits [fFdD]?; + +BOOL_LITERAL: 'true' + | 'false' + ; + +CHAR_LITERAL: '\'' (~['\\\r\n] | EscapeSequence) '\''; + +STRING_LITERAL: '"' (~["\\\r\n] | EscapeSequence)* '"'; + +NULL_LITERAL: 'null'; + +// Separators + +LPAREN: '('; +RPAREN: ')'; +LBRACE: '{'; +RBRACE: '}'; +LBRACK: '['; +RBRACK: ']'; +SEMI: ';'; +COMMA: ','; +DOT: '.'; + +// Operators + +ASSIGN: '='; +GT: '>'; +LT: '<'; +BANG: '!'; +TILDE: '~'; +QUESTION: '?'; +COLON: ':'; +EQUAL: '=='; +LE: '<='; +GE: '>='; +NOTEQUAL: '!='; +AND: '&&'; +OR: '||'; +INC: '++'; +DEC: '--'; +ADD: '+'; +SUB: '-'; +MUL: '*'; +DIV: '/'; +BITAND: '&'; +BITOR: '|'; +CARET: '^'; +MOD: '%'; + +ADD_ASSIGN: '+='; +SUB_ASSIGN: '-='; +MUL_ASSIGN: '*='; +DIV_ASSIGN: '/='; +AND_ASSIGN: '&='; +OR_ASSIGN: '|='; +XOR_ASSIGN: '^='; +MOD_ASSIGN: '%='; +LSHIFT_ASSIGN: '<<='; +RSHIFT_ASSIGN: '>>='; +URSHIFT_ASSIGN: '>>>='; + +// Java 8 tokens + +ARROW: '->'; +COLONCOLON: '::'; + +// Additional symbols not defined in the lexical specification + +AT: '@'; +ELLIPSIS: '...'; + +// Whitespace and comments + +WS: [ \t\r\n\u000C]+ -> channel(HIDDEN); +COMMENT: '/*' .*? '*/' -> channel(HIDDEN); +LINE_COMMENT: '//' ~[\r\n]* -> channel(HIDDEN); + +// Identifiers + +IDENTIFIER: Letter LetterOrDigit*; + +// Fragment rules + +fragment ExponentPart + : [eE] [+-]? Digits + ; + +fragment EscapeSequence + : '\\' [btnfr"'\\] + | '\\' ([0-3]? [0-7])? [0-7] + | '\\' 'u'+ HexDigit HexDigit HexDigit HexDigit + ; + +fragment HexDigits + : HexDigit ((HexDigit | '_')* HexDigit)? + ; + +fragment HexDigit + : [0-9a-fA-F] + ; + +fragment Digits + : [0-9] ([0-9_]* [0-9])? + ; + +fragment LetterOrDigit + : Letter + | [0-9] + ; + +fragment Letter + : [a-zA-Z$_] // these are the "java letters" below 0x7F + | ~[\u0000-\u007F\uD800-\uDBFF] // covers all characters above 0x7F which are not a surrogate + | [\uD800-\uDBFF] [\uDC00-\uDFFF] // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF + ; diff --git a/java2python/lang/JavaLexer.interp b/java2python/lang/JavaLexer.interp new file mode 100644 index 0000000..f4c75ca --- /dev/null +++ b/java2python/lang/JavaLexer.interp @@ -0,0 +1,357 @@ +token literal names: +null +'abstract' +'assert' +'boolean' +'break' +'byte' +'case' +'catch' +'char' +'class' +'const' +'continue' +'default' +'do' +'double' +'else' +'enum' +'extends' +'final' +'finally' +'float' +'for' +'if' +'goto' +'implements' +'import' +'instanceof' +'int' +'interface' +'long' +'native' +'new' +'package' +'private' +'protected' +'public' +'return' +'short' +'static' +'strictfp' +'super' +'switch' +'synchronized' +'this' +'throw' +'throws' +'transient' +'try' +'void' +'volatile' +'while' +null +null +null +null +null +null +null +null +null +'null' +'(' +')' +'{' +'}' +'[' +']' +';' +',' +'.' +'=' +'>' +'<' +'!' +'~' +'?' +':' +'==' +'<=' +'>=' +'!=' +'&&' +'||' +'++' +'--' +'+' +'-' +'*' +'/' +'&' +'|' +'^' +'%' +'+=' +'-=' +'*=' +'/=' +'&=' +'|=' +'^=' +'%=' +'<<=' +'>>=' +'>>>=' +'->' +'::' +'@' +'...' +null +null +null +null + +token symbolic names: +null +ABSTRACT +ASSERT +BOOLEAN +BREAK +BYTE +CASE +CATCH +CHAR +CLASS +CONST +CONTINUE +DEFAULT +DO +DOUBLE +ELSE +ENUM +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +NATIVE +NEW +PACKAGE +PRIVATE +PROTECTED +PUBLIC +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TRANSIENT +TRY +VOID +VOLATILE +WHILE +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +NULL_LITERAL +LPAREN +RPAREN +LBRACE +RBRACE +LBRACK +RBRACK +SEMI +COMMA +DOT +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +ARROW +COLONCOLON +AT +ELLIPSIS +WS +COMMENT +LINE_COMMENT +IDENTIFIER + +rule names: +ABSTRACT +ASSERT +BOOLEAN +BREAK +BYTE +CASE +CATCH +CHAR +CLASS +CONST +CONTINUE +DEFAULT +DO +DOUBLE +ELSE +ENUM +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +NATIVE +NEW +PACKAGE +PRIVATE +PROTECTED +PUBLIC +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TRANSIENT +TRY +VOID +VOLATILE +WHILE +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +NULL_LITERAL +LPAREN +RPAREN +LBRACE +RBRACE +LBRACK +RBRACK +SEMI +COMMA +DOT +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +ARROW +COLONCOLON +AT +ELLIPSIS +WS +COMMENT +LINE_COMMENT +IDENTIFIER +ExponentPart +EscapeSequence +HexDigits +HexDigit +Digits +LetterOrDigit +Letter + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 113, 947, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 5, 52, 582, 10, 52, 3, 52, 6, 52, 585, 10, 52, 13, 52, 14, 52, 586, 3, 52, 5, 52, 590, 10, 52, 5, 52, 592, 10, 52, 3, 52, 5, 52, 595, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 7, 53, 601, 10, 53, 12, 53, 14, 53, 604, 11, 53, 3, 53, 5, 53, 607, 10, 53, 3, 53, 5, 53, 610, 10, 53, 3, 54, 3, 54, 7, 54, 614, 10, 54, 12, 54, 14, 54, 617, 11, 54, 3, 54, 3, 54, 7, 54, 621, 10, 54, 12, 54, 14, 54, 624, 11, 54, 3, 54, 5, 54, 627, 10, 54, 3, 54, 5, 54, 630, 10, 54, 3, 55, 3, 55, 3, 55, 3, 55, 7, 55, 636, 10, 55, 12, 55, 14, 55, 639, 11, 55, 3, 55, 5, 55, 642, 10, 55, 3, 55, 5, 55, 645, 10, 55, 3, 56, 3, 56, 3, 56, 5, 56, 650, 10, 56, 3, 56, 3, 56, 5, 56, 654, 10, 56, 3, 56, 5, 56, 657, 10, 56, 3, 56, 5, 56, 660, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 665, 10, 56, 3, 56, 5, 56, 668, 10, 56, 5, 56, 670, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 5, 57, 676, 10, 57, 3, 57, 5, 57, 679, 10, 57, 3, 57, 3, 57, 5, 57, 683, 10, 57, 3, 57, 3, 57, 5, 57, 687, 10, 57, 3, 57, 3, 57, 5, 57, 691, 10, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 702, 10, 58, 3, 59, 3, 59, 3, 59, 5, 59, 707, 10, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 7, 60, 714, 10, 60, 12, 60, 14, 60, 717, 11, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 65, 3, 65, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 87, 3, 87, 3, 88, 3, 88, 3, 89, 3, 89, 3, 90, 3, 90, 3, 91, 3, 91, 3, 92, 3, 92, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 6, 109, 848, 10, 109, 13, 109, 14, 109, 849, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 7, 110, 858, 10, 110, 12, 110, 14, 110, 861, 11, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 7, 111, 872, 10, 111, 12, 111, 14, 111, 875, 11, 111, 3, 111, 3, 111, 3, 112, 3, 112, 7, 112, 881, 10, 112, 12, 112, 14, 112, 884, 11, 112, 3, 113, 3, 113, 5, 113, 888, 10, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 5, 114, 896, 10, 114, 3, 114, 5, 114, 899, 10, 114, 3, 114, 3, 114, 3, 114, 6, 114, 904, 10, 114, 13, 114, 14, 114, 905, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 5, 114, 913, 10, 114, 3, 115, 3, 115, 3, 115, 7, 115, 918, 10, 115, 12, 115, 14, 115, 921, 11, 115, 3, 115, 5, 115, 924, 10, 115, 3, 116, 3, 116, 3, 117, 3, 117, 7, 117, 930, 10, 117, 12, 117, 14, 117, 933, 11, 117, 3, 117, 5, 117, 936, 10, 117, 3, 118, 3, 118, 5, 118, 940, 10, 118, 3, 119, 3, 119, 3, 119, 3, 119, 5, 119, 946, 10, 119, 3, 859, 2, 120, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 2, 227, 2, 229, 2, 231, 2, 233, 2, 235, 2, 237, 2, 3, 2, 28, 3, 2, 51, 59, 4, 2, 78, 78, 110, 110, 4, 2, 90, 90, 122, 122, 5, 2, 50, 59, 67, 72, 99, 104, 6, 2, 50, 59, 67, 72, 97, 97, 99, 104, 3, 2, 50, 57, 4, 2, 50, 57, 97, 97, 4, 2, 68, 68, 100, 100, 3, 2, 50, 51, 4, 2, 50, 51, 97, 97, 6, 2, 70, 70, 72, 72, 102, 102, 104, 104, 4, 2, 82, 82, 114, 114, 4, 2, 45, 45, 47, 47, 6, 2, 12, 12, 15, 15, 41, 41, 94, 94, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 5, 2, 11, 12, 14, 15, 34, 34, 4, 2, 12, 12, 15, 15, 4, 2, 71, 71, 103, 103, 10, 2, 36, 36, 41, 41, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 3, 2, 50, 53, 3, 2, 50, 59, 4, 2, 50, 59, 97, 97, 6, 2, 38, 38, 67, 92, 97, 97, 99, 124, 4, 2, 2, 129, 55298, 56321, 3, 2, 55298, 56321, 3, 2, 56322, 57345, 2, 988, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 3, 239, 3, 2, 2, 2, 5, 248, 3, 2, 2, 2, 7, 255, 3, 2, 2, 2, 9, 263, 3, 2, 2, 2, 11, 269, 3, 2, 2, 2, 13, 274, 3, 2, 2, 2, 15, 279, 3, 2, 2, 2, 17, 285, 3, 2, 2, 2, 19, 290, 3, 2, 2, 2, 21, 296, 3, 2, 2, 2, 23, 302, 3, 2, 2, 2, 25, 311, 3, 2, 2, 2, 27, 319, 3, 2, 2, 2, 29, 322, 3, 2, 2, 2, 31, 329, 3, 2, 2, 2, 33, 334, 3, 2, 2, 2, 35, 339, 3, 2, 2, 2, 37, 347, 3, 2, 2, 2, 39, 353, 3, 2, 2, 2, 41, 361, 3, 2, 2, 2, 43, 367, 3, 2, 2, 2, 45, 371, 3, 2, 2, 2, 47, 374, 3, 2, 2, 2, 49, 379, 3, 2, 2, 2, 51, 390, 3, 2, 2, 2, 53, 397, 3, 2, 2, 2, 55, 408, 3, 2, 2, 2, 57, 412, 3, 2, 2, 2, 59, 422, 3, 2, 2, 2, 61, 427, 3, 2, 2, 2, 63, 434, 3, 2, 2, 2, 65, 438, 3, 2, 2, 2, 67, 446, 3, 2, 2, 2, 69, 454, 3, 2, 2, 2, 71, 464, 3, 2, 2, 2, 73, 471, 3, 2, 2, 2, 75, 478, 3, 2, 2, 2, 77, 484, 3, 2, 2, 2, 79, 491, 3, 2, 2, 2, 81, 500, 3, 2, 2, 2, 83, 506, 3, 2, 2, 2, 85, 513, 3, 2, 2, 2, 87, 526, 3, 2, 2, 2, 89, 531, 3, 2, 2, 2, 91, 537, 3, 2, 2, 2, 93, 544, 3, 2, 2, 2, 95, 554, 3, 2, 2, 2, 97, 558, 3, 2, 2, 2, 99, 563, 3, 2, 2, 2, 101, 572, 3, 2, 2, 2, 103, 591, 3, 2, 2, 2, 105, 596, 3, 2, 2, 2, 107, 611, 3, 2, 2, 2, 109, 631, 3, 2, 2, 2, 111, 669, 3, 2, 2, 2, 113, 671, 3, 2, 2, 2, 115, 701, 3, 2, 2, 2, 117, 703, 3, 2, 2, 2, 119, 710, 3, 2, 2, 2, 121, 720, 3, 2, 2, 2, 123, 725, 3, 2, 2, 2, 125, 727, 3, 2, 2, 2, 127, 729, 3, 2, 2, 2, 129, 731, 3, 2, 2, 2, 131, 733, 3, 2, 2, 2, 133, 735, 3, 2, 2, 2, 135, 737, 3, 2, 2, 2, 137, 739, 3, 2, 2, 2, 139, 741, 3, 2, 2, 2, 141, 743, 3, 2, 2, 2, 143, 745, 3, 2, 2, 2, 145, 747, 3, 2, 2, 2, 147, 749, 3, 2, 2, 2, 149, 751, 3, 2, 2, 2, 151, 753, 3, 2, 2, 2, 153, 755, 3, 2, 2, 2, 155, 757, 3, 2, 2, 2, 157, 760, 3, 2, 2, 2, 159, 763, 3, 2, 2, 2, 161, 766, 3, 2, 2, 2, 163, 769, 3, 2, 2, 2, 165, 772, 3, 2, 2, 2, 167, 775, 3, 2, 2, 2, 169, 778, 3, 2, 2, 2, 171, 781, 3, 2, 2, 2, 173, 783, 3, 2, 2, 2, 175, 785, 3, 2, 2, 2, 177, 787, 3, 2, 2, 2, 179, 789, 3, 2, 2, 2, 181, 791, 3, 2, 2, 2, 183, 793, 3, 2, 2, 2, 185, 795, 3, 2, 2, 2, 187, 797, 3, 2, 2, 2, 189, 800, 3, 2, 2, 2, 191, 803, 3, 2, 2, 2, 193, 806, 3, 2, 2, 2, 195, 809, 3, 2, 2, 2, 197, 812, 3, 2, 2, 2, 199, 815, 3, 2, 2, 2, 201, 818, 3, 2, 2, 2, 203, 821, 3, 2, 2, 2, 205, 825, 3, 2, 2, 2, 207, 829, 3, 2, 2, 2, 209, 834, 3, 2, 2, 2, 211, 837, 3, 2, 2, 2, 213, 840, 3, 2, 2, 2, 215, 842, 3, 2, 2, 2, 217, 847, 3, 2, 2, 2, 219, 853, 3, 2, 2, 2, 221, 867, 3, 2, 2, 2, 223, 878, 3, 2, 2, 2, 225, 885, 3, 2, 2, 2, 227, 912, 3, 2, 2, 2, 229, 914, 3, 2, 2, 2, 231, 925, 3, 2, 2, 2, 233, 927, 3, 2, 2, 2, 235, 939, 3, 2, 2, 2, 237, 945, 3, 2, 2, 2, 239, 240, 7, 99, 2, 2, 240, 241, 7, 100, 2, 2, 241, 242, 7, 117, 2, 2, 242, 243, 7, 118, 2, 2, 243, 244, 7, 116, 2, 2, 244, 245, 7, 99, 2, 2, 245, 246, 7, 101, 2, 2, 246, 247, 7, 118, 2, 2, 247, 4, 3, 2, 2, 2, 248, 249, 7, 99, 2, 2, 249, 250, 7, 117, 2, 2, 250, 251, 7, 117, 2, 2, 251, 252, 7, 103, 2, 2, 252, 253, 7, 116, 2, 2, 253, 254, 7, 118, 2, 2, 254, 6, 3, 2, 2, 2, 255, 256, 7, 100, 2, 2, 256, 257, 7, 113, 2, 2, 257, 258, 7, 113, 2, 2, 258, 259, 7, 110, 2, 2, 259, 260, 7, 103, 2, 2, 260, 261, 7, 99, 2, 2, 261, 262, 7, 112, 2, 2, 262, 8, 3, 2, 2, 2, 263, 264, 7, 100, 2, 2, 264, 265, 7, 116, 2, 2, 265, 266, 7, 103, 2, 2, 266, 267, 7, 99, 2, 2, 267, 268, 7, 109, 2, 2, 268, 10, 3, 2, 2, 2, 269, 270, 7, 100, 2, 2, 270, 271, 7, 123, 2, 2, 271, 272, 7, 118, 2, 2, 272, 273, 7, 103, 2, 2, 273, 12, 3, 2, 2, 2, 274, 275, 7, 101, 2, 2, 275, 276, 7, 99, 2, 2, 276, 277, 7, 117, 2, 2, 277, 278, 7, 103, 2, 2, 278, 14, 3, 2, 2, 2, 279, 280, 7, 101, 2, 2, 280, 281, 7, 99, 2, 2, 281, 282, 7, 118, 2, 2, 282, 283, 7, 101, 2, 2, 283, 284, 7, 106, 2, 2, 284, 16, 3, 2, 2, 2, 285, 286, 7, 101, 2, 2, 286, 287, 7, 106, 2, 2, 287, 288, 7, 99, 2, 2, 288, 289, 7, 116, 2, 2, 289, 18, 3, 2, 2, 2, 290, 291, 7, 101, 2, 2, 291, 292, 7, 110, 2, 2, 292, 293, 7, 99, 2, 2, 293, 294, 7, 117, 2, 2, 294, 295, 7, 117, 2, 2, 295, 20, 3, 2, 2, 2, 296, 297, 7, 101, 2, 2, 297, 298, 7, 113, 2, 2, 298, 299, 7, 112, 2, 2, 299, 300, 7, 117, 2, 2, 300, 301, 7, 118, 2, 2, 301, 22, 3, 2, 2, 2, 302, 303, 7, 101, 2, 2, 303, 304, 7, 113, 2, 2, 304, 305, 7, 112, 2, 2, 305, 306, 7, 118, 2, 2, 306, 307, 7, 107, 2, 2, 307, 308, 7, 112, 2, 2, 308, 309, 7, 119, 2, 2, 309, 310, 7, 103, 2, 2, 310, 24, 3, 2, 2, 2, 311, 312, 7, 102, 2, 2, 312, 313, 7, 103, 2, 2, 313, 314, 7, 104, 2, 2, 314, 315, 7, 99, 2, 2, 315, 316, 7, 119, 2, 2, 316, 317, 7, 110, 2, 2, 317, 318, 7, 118, 2, 2, 318, 26, 3, 2, 2, 2, 319, 320, 7, 102, 2, 2, 320, 321, 7, 113, 2, 2, 321, 28, 3, 2, 2, 2, 322, 323, 7, 102, 2, 2, 323, 324, 7, 113, 2, 2, 324, 325, 7, 119, 2, 2, 325, 326, 7, 100, 2, 2, 326, 327, 7, 110, 2, 2, 327, 328, 7, 103, 2, 2, 328, 30, 3, 2, 2, 2, 329, 330, 7, 103, 2, 2, 330, 331, 7, 110, 2, 2, 331, 332, 7, 117, 2, 2, 332, 333, 7, 103, 2, 2, 333, 32, 3, 2, 2, 2, 334, 335, 7, 103, 2, 2, 335, 336, 7, 112, 2, 2, 336, 337, 7, 119, 2, 2, 337, 338, 7, 111, 2, 2, 338, 34, 3, 2, 2, 2, 339, 340, 7, 103, 2, 2, 340, 341, 7, 122, 2, 2, 341, 342, 7, 118, 2, 2, 342, 343, 7, 103, 2, 2, 343, 344, 7, 112, 2, 2, 344, 345, 7, 102, 2, 2, 345, 346, 7, 117, 2, 2, 346, 36, 3, 2, 2, 2, 347, 348, 7, 104, 2, 2, 348, 349, 7, 107, 2, 2, 349, 350, 7, 112, 2, 2, 350, 351, 7, 99, 2, 2, 351, 352, 7, 110, 2, 2, 352, 38, 3, 2, 2, 2, 353, 354, 7, 104, 2, 2, 354, 355, 7, 107, 2, 2, 355, 356, 7, 112, 2, 2, 356, 357, 7, 99, 2, 2, 357, 358, 7, 110, 2, 2, 358, 359, 7, 110, 2, 2, 359, 360, 7, 123, 2, 2, 360, 40, 3, 2, 2, 2, 361, 362, 7, 104, 2, 2, 362, 363, 7, 110, 2, 2, 363, 364, 7, 113, 2, 2, 364, 365, 7, 99, 2, 2, 365, 366, 7, 118, 2, 2, 366, 42, 3, 2, 2, 2, 367, 368, 7, 104, 2, 2, 368, 369, 7, 113, 2, 2, 369, 370, 7, 116, 2, 2, 370, 44, 3, 2, 2, 2, 371, 372, 7, 107, 2, 2, 372, 373, 7, 104, 2, 2, 373, 46, 3, 2, 2, 2, 374, 375, 7, 105, 2, 2, 375, 376, 7, 113, 2, 2, 376, 377, 7, 118, 2, 2, 377, 378, 7, 113, 2, 2, 378, 48, 3, 2, 2, 2, 379, 380, 7, 107, 2, 2, 380, 381, 7, 111, 2, 2, 381, 382, 7, 114, 2, 2, 382, 383, 7, 110, 2, 2, 383, 384, 7, 103, 2, 2, 384, 385, 7, 111, 2, 2, 385, 386, 7, 103, 2, 2, 386, 387, 7, 112, 2, 2, 387, 388, 7, 118, 2, 2, 388, 389, 7, 117, 2, 2, 389, 50, 3, 2, 2, 2, 390, 391, 7, 107, 2, 2, 391, 392, 7, 111, 2, 2, 392, 393, 7, 114, 2, 2, 393, 394, 7, 113, 2, 2, 394, 395, 7, 116, 2, 2, 395, 396, 7, 118, 2, 2, 396, 52, 3, 2, 2, 2, 397, 398, 7, 107, 2, 2, 398, 399, 7, 112, 2, 2, 399, 400, 7, 117, 2, 2, 400, 401, 7, 118, 2, 2, 401, 402, 7, 99, 2, 2, 402, 403, 7, 112, 2, 2, 403, 404, 7, 101, 2, 2, 404, 405, 7, 103, 2, 2, 405, 406, 7, 113, 2, 2, 406, 407, 7, 104, 2, 2, 407, 54, 3, 2, 2, 2, 408, 409, 7, 107, 2, 2, 409, 410, 7, 112, 2, 2, 410, 411, 7, 118, 2, 2, 411, 56, 3, 2, 2, 2, 412, 413, 7, 107, 2, 2, 413, 414, 7, 112, 2, 2, 414, 415, 7, 118, 2, 2, 415, 416, 7, 103, 2, 2, 416, 417, 7, 116, 2, 2, 417, 418, 7, 104, 2, 2, 418, 419, 7, 99, 2, 2, 419, 420, 7, 101, 2, 2, 420, 421, 7, 103, 2, 2, 421, 58, 3, 2, 2, 2, 422, 423, 7, 110, 2, 2, 423, 424, 7, 113, 2, 2, 424, 425, 7, 112, 2, 2, 425, 426, 7, 105, 2, 2, 426, 60, 3, 2, 2, 2, 427, 428, 7, 112, 2, 2, 428, 429, 7, 99, 2, 2, 429, 430, 7, 118, 2, 2, 430, 431, 7, 107, 2, 2, 431, 432, 7, 120, 2, 2, 432, 433, 7, 103, 2, 2, 433, 62, 3, 2, 2, 2, 434, 435, 7, 112, 2, 2, 435, 436, 7, 103, 2, 2, 436, 437, 7, 121, 2, 2, 437, 64, 3, 2, 2, 2, 438, 439, 7, 114, 2, 2, 439, 440, 7, 99, 2, 2, 440, 441, 7, 101, 2, 2, 441, 442, 7, 109, 2, 2, 442, 443, 7, 99, 2, 2, 443, 444, 7, 105, 2, 2, 444, 445, 7, 103, 2, 2, 445, 66, 3, 2, 2, 2, 446, 447, 7, 114, 2, 2, 447, 448, 7, 116, 2, 2, 448, 449, 7, 107, 2, 2, 449, 450, 7, 120, 2, 2, 450, 451, 7, 99, 2, 2, 451, 452, 7, 118, 2, 2, 452, 453, 7, 103, 2, 2, 453, 68, 3, 2, 2, 2, 454, 455, 7, 114, 2, 2, 455, 456, 7, 116, 2, 2, 456, 457, 7, 113, 2, 2, 457, 458, 7, 118, 2, 2, 458, 459, 7, 103, 2, 2, 459, 460, 7, 101, 2, 2, 460, 461, 7, 118, 2, 2, 461, 462, 7, 103, 2, 2, 462, 463, 7, 102, 2, 2, 463, 70, 3, 2, 2, 2, 464, 465, 7, 114, 2, 2, 465, 466, 7, 119, 2, 2, 466, 467, 7, 100, 2, 2, 467, 468, 7, 110, 2, 2, 468, 469, 7, 107, 2, 2, 469, 470, 7, 101, 2, 2, 470, 72, 3, 2, 2, 2, 471, 472, 7, 116, 2, 2, 472, 473, 7, 103, 2, 2, 473, 474, 7, 118, 2, 2, 474, 475, 7, 119, 2, 2, 475, 476, 7, 116, 2, 2, 476, 477, 7, 112, 2, 2, 477, 74, 3, 2, 2, 2, 478, 479, 7, 117, 2, 2, 479, 480, 7, 106, 2, 2, 480, 481, 7, 113, 2, 2, 481, 482, 7, 116, 2, 2, 482, 483, 7, 118, 2, 2, 483, 76, 3, 2, 2, 2, 484, 485, 7, 117, 2, 2, 485, 486, 7, 118, 2, 2, 486, 487, 7, 99, 2, 2, 487, 488, 7, 118, 2, 2, 488, 489, 7, 107, 2, 2, 489, 490, 7, 101, 2, 2, 490, 78, 3, 2, 2, 2, 491, 492, 7, 117, 2, 2, 492, 493, 7, 118, 2, 2, 493, 494, 7, 116, 2, 2, 494, 495, 7, 107, 2, 2, 495, 496, 7, 101, 2, 2, 496, 497, 7, 118, 2, 2, 497, 498, 7, 104, 2, 2, 498, 499, 7, 114, 2, 2, 499, 80, 3, 2, 2, 2, 500, 501, 7, 117, 2, 2, 501, 502, 7, 119, 2, 2, 502, 503, 7, 114, 2, 2, 503, 504, 7, 103, 2, 2, 504, 505, 7, 116, 2, 2, 505, 82, 3, 2, 2, 2, 506, 507, 7, 117, 2, 2, 507, 508, 7, 121, 2, 2, 508, 509, 7, 107, 2, 2, 509, 510, 7, 118, 2, 2, 510, 511, 7, 101, 2, 2, 511, 512, 7, 106, 2, 2, 512, 84, 3, 2, 2, 2, 513, 514, 7, 117, 2, 2, 514, 515, 7, 123, 2, 2, 515, 516, 7, 112, 2, 2, 516, 517, 7, 101, 2, 2, 517, 518, 7, 106, 2, 2, 518, 519, 7, 116, 2, 2, 519, 520, 7, 113, 2, 2, 520, 521, 7, 112, 2, 2, 521, 522, 7, 107, 2, 2, 522, 523, 7, 124, 2, 2, 523, 524, 7, 103, 2, 2, 524, 525, 7, 102, 2, 2, 525, 86, 3, 2, 2, 2, 526, 527, 7, 118, 2, 2, 527, 528, 7, 106, 2, 2, 528, 529, 7, 107, 2, 2, 529, 530, 7, 117, 2, 2, 530, 88, 3, 2, 2, 2, 531, 532, 7, 118, 2, 2, 532, 533, 7, 106, 2, 2, 533, 534, 7, 116, 2, 2, 534, 535, 7, 113, 2, 2, 535, 536, 7, 121, 2, 2, 536, 90, 3, 2, 2, 2, 537, 538, 7, 118, 2, 2, 538, 539, 7, 106, 2, 2, 539, 540, 7, 116, 2, 2, 540, 541, 7, 113, 2, 2, 541, 542, 7, 121, 2, 2, 542, 543, 7, 117, 2, 2, 543, 92, 3, 2, 2, 2, 544, 545, 7, 118, 2, 2, 545, 546, 7, 116, 2, 2, 546, 547, 7, 99, 2, 2, 547, 548, 7, 112, 2, 2, 548, 549, 7, 117, 2, 2, 549, 550, 7, 107, 2, 2, 550, 551, 7, 103, 2, 2, 551, 552, 7, 112, 2, 2, 552, 553, 7, 118, 2, 2, 553, 94, 3, 2, 2, 2, 554, 555, 7, 118, 2, 2, 555, 556, 7, 116, 2, 2, 556, 557, 7, 123, 2, 2, 557, 96, 3, 2, 2, 2, 558, 559, 7, 120, 2, 2, 559, 560, 7, 113, 2, 2, 560, 561, 7, 107, 2, 2, 561, 562, 7, 102, 2, 2, 562, 98, 3, 2, 2, 2, 563, 564, 7, 120, 2, 2, 564, 565, 7, 113, 2, 2, 565, 566, 7, 110, 2, 2, 566, 567, 7, 99, 2, 2, 567, 568, 7, 118, 2, 2, 568, 569, 7, 107, 2, 2, 569, 570, 7, 110, 2, 2, 570, 571, 7, 103, 2, 2, 571, 100, 3, 2, 2, 2, 572, 573, 7, 121, 2, 2, 573, 574, 7, 106, 2, 2, 574, 575, 7, 107, 2, 2, 575, 576, 7, 110, 2, 2, 576, 577, 7, 103, 2, 2, 577, 102, 3, 2, 2, 2, 578, 592, 7, 50, 2, 2, 579, 589, 9, 2, 2, 2, 580, 582, 5, 233, 117, 2, 581, 580, 3, 2, 2, 2, 581, 582, 3, 2, 2, 2, 582, 590, 3, 2, 2, 2, 583, 585, 7, 97, 2, 2, 584, 583, 3, 2, 2, 2, 585, 586, 3, 2, 2, 2, 586, 584, 3, 2, 2, 2, 586, 587, 3, 2, 2, 2, 587, 588, 3, 2, 2, 2, 588, 590, 5, 233, 117, 2, 589, 581, 3, 2, 2, 2, 589, 584, 3, 2, 2, 2, 590, 592, 3, 2, 2, 2, 591, 578, 3, 2, 2, 2, 591, 579, 3, 2, 2, 2, 592, 594, 3, 2, 2, 2, 593, 595, 9, 3, 2, 2, 594, 593, 3, 2, 2, 2, 594, 595, 3, 2, 2, 2, 595, 104, 3, 2, 2, 2, 596, 597, 7, 50, 2, 2, 597, 598, 9, 4, 2, 2, 598, 606, 9, 5, 2, 2, 599, 601, 9, 6, 2, 2, 600, 599, 3, 2, 2, 2, 601, 604, 3, 2, 2, 2, 602, 600, 3, 2, 2, 2, 602, 603, 3, 2, 2, 2, 603, 605, 3, 2, 2, 2, 604, 602, 3, 2, 2, 2, 605, 607, 9, 5, 2, 2, 606, 602, 3, 2, 2, 2, 606, 607, 3, 2, 2, 2, 607, 609, 3, 2, 2, 2, 608, 610, 9, 3, 2, 2, 609, 608, 3, 2, 2, 2, 609, 610, 3, 2, 2, 2, 610, 106, 3, 2, 2, 2, 611, 615, 7, 50, 2, 2, 612, 614, 7, 97, 2, 2, 613, 612, 3, 2, 2, 2, 614, 617, 3, 2, 2, 2, 615, 613, 3, 2, 2, 2, 615, 616, 3, 2, 2, 2, 616, 618, 3, 2, 2, 2, 617, 615, 3, 2, 2, 2, 618, 626, 9, 7, 2, 2, 619, 621, 9, 8, 2, 2, 620, 619, 3, 2, 2, 2, 621, 624, 3, 2, 2, 2, 622, 620, 3, 2, 2, 2, 622, 623, 3, 2, 2, 2, 623, 625, 3, 2, 2, 2, 624, 622, 3, 2, 2, 2, 625, 627, 9, 7, 2, 2, 626, 622, 3, 2, 2, 2, 626, 627, 3, 2, 2, 2, 627, 629, 3, 2, 2, 2, 628, 630, 9, 3, 2, 2, 629, 628, 3, 2, 2, 2, 629, 630, 3, 2, 2, 2, 630, 108, 3, 2, 2, 2, 631, 632, 7, 50, 2, 2, 632, 633, 9, 9, 2, 2, 633, 641, 9, 10, 2, 2, 634, 636, 9, 11, 2, 2, 635, 634, 3, 2, 2, 2, 636, 639, 3, 2, 2, 2, 637, 635, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 640, 3, 2, 2, 2, 639, 637, 3, 2, 2, 2, 640, 642, 9, 10, 2, 2, 641, 637, 3, 2, 2, 2, 641, 642, 3, 2, 2, 2, 642, 644, 3, 2, 2, 2, 643, 645, 9, 3, 2, 2, 644, 643, 3, 2, 2, 2, 644, 645, 3, 2, 2, 2, 645, 110, 3, 2, 2, 2, 646, 647, 5, 233, 117, 2, 647, 649, 7, 48, 2, 2, 648, 650, 5, 233, 117, 2, 649, 648, 3, 2, 2, 2, 649, 650, 3, 2, 2, 2, 650, 654, 3, 2, 2, 2, 651, 652, 7, 48, 2, 2, 652, 654, 5, 233, 117, 2, 653, 646, 3, 2, 2, 2, 653, 651, 3, 2, 2, 2, 654, 656, 3, 2, 2, 2, 655, 657, 5, 225, 113, 2, 656, 655, 3, 2, 2, 2, 656, 657, 3, 2, 2, 2, 657, 659, 3, 2, 2, 2, 658, 660, 9, 12, 2, 2, 659, 658, 3, 2, 2, 2, 659, 660, 3, 2, 2, 2, 660, 670, 3, 2, 2, 2, 661, 667, 5, 233, 117, 2, 662, 664, 5, 225, 113, 2, 663, 665, 9, 12, 2, 2, 664, 663, 3, 2, 2, 2, 664, 665, 3, 2, 2, 2, 665, 668, 3, 2, 2, 2, 666, 668, 9, 12, 2, 2, 667, 662, 3, 2, 2, 2, 667, 666, 3, 2, 2, 2, 668, 670, 3, 2, 2, 2, 669, 653, 3, 2, 2, 2, 669, 661, 3, 2, 2, 2, 670, 112, 3, 2, 2, 2, 671, 672, 7, 50, 2, 2, 672, 682, 9, 4, 2, 2, 673, 675, 5, 229, 115, 2, 674, 676, 7, 48, 2, 2, 675, 674, 3, 2, 2, 2, 675, 676, 3, 2, 2, 2, 676, 683, 3, 2, 2, 2, 677, 679, 5, 229, 115, 2, 678, 677, 3, 2, 2, 2, 678, 679, 3, 2, 2, 2, 679, 680, 3, 2, 2, 2, 680, 681, 7, 48, 2, 2, 681, 683, 5, 229, 115, 2, 682, 673, 3, 2, 2, 2, 682, 678, 3, 2, 2, 2, 683, 684, 3, 2, 2, 2, 684, 686, 9, 13, 2, 2, 685, 687, 9, 14, 2, 2, 686, 685, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 690, 5, 233, 117, 2, 689, 691, 9, 12, 2, 2, 690, 689, 3, 2, 2, 2, 690, 691, 3, 2, 2, 2, 691, 114, 3, 2, 2, 2, 692, 693, 7, 118, 2, 2, 693, 694, 7, 116, 2, 2, 694, 695, 7, 119, 2, 2, 695, 702, 7, 103, 2, 2, 696, 697, 7, 104, 2, 2, 697, 698, 7, 99, 2, 2, 698, 699, 7, 110, 2, 2, 699, 700, 7, 117, 2, 2, 700, 702, 7, 103, 2, 2, 701, 692, 3, 2, 2, 2, 701, 696, 3, 2, 2, 2, 702, 116, 3, 2, 2, 2, 703, 706, 7, 41, 2, 2, 704, 707, 10, 15, 2, 2, 705, 707, 5, 227, 114, 2, 706, 704, 3, 2, 2, 2, 706, 705, 3, 2, 2, 2, 707, 708, 3, 2, 2, 2, 708, 709, 7, 41, 2, 2, 709, 118, 3, 2, 2, 2, 710, 715, 7, 36, 2, 2, 711, 714, 10, 16, 2, 2, 712, 714, 5, 227, 114, 2, 713, 711, 3, 2, 2, 2, 713, 712, 3, 2, 2, 2, 714, 717, 3, 2, 2, 2, 715, 713, 3, 2, 2, 2, 715, 716, 3, 2, 2, 2, 716, 718, 3, 2, 2, 2, 717, 715, 3, 2, 2, 2, 718, 719, 7, 36, 2, 2, 719, 120, 3, 2, 2, 2, 720, 721, 7, 112, 2, 2, 721, 722, 7, 119, 2, 2, 722, 723, 7, 110, 2, 2, 723, 724, 7, 110, 2, 2, 724, 122, 3, 2, 2, 2, 725, 726, 7, 42, 2, 2, 726, 124, 3, 2, 2, 2, 727, 728, 7, 43, 2, 2, 728, 126, 3, 2, 2, 2, 729, 730, 7, 125, 2, 2, 730, 128, 3, 2, 2, 2, 731, 732, 7, 127, 2, 2, 732, 130, 3, 2, 2, 2, 733, 734, 7, 93, 2, 2, 734, 132, 3, 2, 2, 2, 735, 736, 7, 95, 2, 2, 736, 134, 3, 2, 2, 2, 737, 738, 7, 61, 2, 2, 738, 136, 3, 2, 2, 2, 739, 740, 7, 46, 2, 2, 740, 138, 3, 2, 2, 2, 741, 742, 7, 48, 2, 2, 742, 140, 3, 2, 2, 2, 743, 744, 7, 63, 2, 2, 744, 142, 3, 2, 2, 2, 745, 746, 7, 64, 2, 2, 746, 144, 3, 2, 2, 2, 747, 748, 7, 62, 2, 2, 748, 146, 3, 2, 2, 2, 749, 750, 7, 35, 2, 2, 750, 148, 3, 2, 2, 2, 751, 752, 7, 128, 2, 2, 752, 150, 3, 2, 2, 2, 753, 754, 7, 65, 2, 2, 754, 152, 3, 2, 2, 2, 755, 756, 7, 60, 2, 2, 756, 154, 3, 2, 2, 2, 757, 758, 7, 63, 2, 2, 758, 759, 7, 63, 2, 2, 759, 156, 3, 2, 2, 2, 760, 761, 7, 62, 2, 2, 761, 762, 7, 63, 2, 2, 762, 158, 3, 2, 2, 2, 763, 764, 7, 64, 2, 2, 764, 765, 7, 63, 2, 2, 765, 160, 3, 2, 2, 2, 766, 767, 7, 35, 2, 2, 767, 768, 7, 63, 2, 2, 768, 162, 3, 2, 2, 2, 769, 770, 7, 40, 2, 2, 770, 771, 7, 40, 2, 2, 771, 164, 3, 2, 2, 2, 772, 773, 7, 126, 2, 2, 773, 774, 7, 126, 2, 2, 774, 166, 3, 2, 2, 2, 775, 776, 7, 45, 2, 2, 776, 777, 7, 45, 2, 2, 777, 168, 3, 2, 2, 2, 778, 779, 7, 47, 2, 2, 779, 780, 7, 47, 2, 2, 780, 170, 3, 2, 2, 2, 781, 782, 7, 45, 2, 2, 782, 172, 3, 2, 2, 2, 783, 784, 7, 47, 2, 2, 784, 174, 3, 2, 2, 2, 785, 786, 7, 44, 2, 2, 786, 176, 3, 2, 2, 2, 787, 788, 7, 49, 2, 2, 788, 178, 3, 2, 2, 2, 789, 790, 7, 40, 2, 2, 790, 180, 3, 2, 2, 2, 791, 792, 7, 126, 2, 2, 792, 182, 3, 2, 2, 2, 793, 794, 7, 96, 2, 2, 794, 184, 3, 2, 2, 2, 795, 796, 7, 39, 2, 2, 796, 186, 3, 2, 2, 2, 797, 798, 7, 45, 2, 2, 798, 799, 7, 63, 2, 2, 799, 188, 3, 2, 2, 2, 800, 801, 7, 47, 2, 2, 801, 802, 7, 63, 2, 2, 802, 190, 3, 2, 2, 2, 803, 804, 7, 44, 2, 2, 804, 805, 7, 63, 2, 2, 805, 192, 3, 2, 2, 2, 806, 807, 7, 49, 2, 2, 807, 808, 7, 63, 2, 2, 808, 194, 3, 2, 2, 2, 809, 810, 7, 40, 2, 2, 810, 811, 7, 63, 2, 2, 811, 196, 3, 2, 2, 2, 812, 813, 7, 126, 2, 2, 813, 814, 7, 63, 2, 2, 814, 198, 3, 2, 2, 2, 815, 816, 7, 96, 2, 2, 816, 817, 7, 63, 2, 2, 817, 200, 3, 2, 2, 2, 818, 819, 7, 39, 2, 2, 819, 820, 7, 63, 2, 2, 820, 202, 3, 2, 2, 2, 821, 822, 7, 62, 2, 2, 822, 823, 7, 62, 2, 2, 823, 824, 7, 63, 2, 2, 824, 204, 3, 2, 2, 2, 825, 826, 7, 64, 2, 2, 826, 827, 7, 64, 2, 2, 827, 828, 7, 63, 2, 2, 828, 206, 3, 2, 2, 2, 829, 830, 7, 64, 2, 2, 830, 831, 7, 64, 2, 2, 831, 832, 7, 64, 2, 2, 832, 833, 7, 63, 2, 2, 833, 208, 3, 2, 2, 2, 834, 835, 7, 47, 2, 2, 835, 836, 7, 64, 2, 2, 836, 210, 3, 2, 2, 2, 837, 838, 7, 60, 2, 2, 838, 839, 7, 60, 2, 2, 839, 212, 3, 2, 2, 2, 840, 841, 7, 66, 2, 2, 841, 214, 3, 2, 2, 2, 842, 843, 7, 48, 2, 2, 843, 844, 7, 48, 2, 2, 844, 845, 7, 48, 2, 2, 845, 216, 3, 2, 2, 2, 846, 848, 9, 17, 2, 2, 847, 846, 3, 2, 2, 2, 848, 849, 3, 2, 2, 2, 849, 847, 3, 2, 2, 2, 849, 850, 3, 2, 2, 2, 850, 851, 3, 2, 2, 2, 851, 852, 8, 109, 2, 2, 852, 218, 3, 2, 2, 2, 853, 854, 7, 49, 2, 2, 854, 855, 7, 44, 2, 2, 855, 859, 3, 2, 2, 2, 856, 858, 11, 2, 2, 2, 857, 856, 3, 2, 2, 2, 858, 861, 3, 2, 2, 2, 859, 860, 3, 2, 2, 2, 859, 857, 3, 2, 2, 2, 860, 862, 3, 2, 2, 2, 861, 859, 3, 2, 2, 2, 862, 863, 7, 44, 2, 2, 863, 864, 7, 49, 2, 2, 864, 865, 3, 2, 2, 2, 865, 866, 8, 110, 2, 2, 866, 220, 3, 2, 2, 2, 867, 868, 7, 49, 2, 2, 868, 869, 7, 49, 2, 2, 869, 873, 3, 2, 2, 2, 870, 872, 10, 18, 2, 2, 871, 870, 3, 2, 2, 2, 872, 875, 3, 2, 2, 2, 873, 871, 3, 2, 2, 2, 873, 874, 3, 2, 2, 2, 874, 876, 3, 2, 2, 2, 875, 873, 3, 2, 2, 2, 876, 877, 8, 111, 2, 2, 877, 222, 3, 2, 2, 2, 878, 882, 5, 237, 119, 2, 879, 881, 5, 235, 118, 2, 880, 879, 3, 2, 2, 2, 881, 884, 3, 2, 2, 2, 882, 880, 3, 2, 2, 2, 882, 883, 3, 2, 2, 2, 883, 224, 3, 2, 2, 2, 884, 882, 3, 2, 2, 2, 885, 887, 9, 19, 2, 2, 886, 888, 9, 14, 2, 2, 887, 886, 3, 2, 2, 2, 887, 888, 3, 2, 2, 2, 888, 889, 3, 2, 2, 2, 889, 890, 5, 233, 117, 2, 890, 226, 3, 2, 2, 2, 891, 892, 7, 94, 2, 2, 892, 913, 9, 20, 2, 2, 893, 898, 7, 94, 2, 2, 894, 896, 9, 21, 2, 2, 895, 894, 3, 2, 2, 2, 895, 896, 3, 2, 2, 2, 896, 897, 3, 2, 2, 2, 897, 899, 9, 7, 2, 2, 898, 895, 3, 2, 2, 2, 898, 899, 3, 2, 2, 2, 899, 900, 3, 2, 2, 2, 900, 913, 9, 7, 2, 2, 901, 903, 7, 94, 2, 2, 902, 904, 7, 119, 2, 2, 903, 902, 3, 2, 2, 2, 904, 905, 3, 2, 2, 2, 905, 903, 3, 2, 2, 2, 905, 906, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 908, 5, 231, 116, 2, 908, 909, 5, 231, 116, 2, 909, 910, 5, 231, 116, 2, 910, 911, 5, 231, 116, 2, 911, 913, 3, 2, 2, 2, 912, 891, 3, 2, 2, 2, 912, 893, 3, 2, 2, 2, 912, 901, 3, 2, 2, 2, 913, 228, 3, 2, 2, 2, 914, 923, 5, 231, 116, 2, 915, 918, 5, 231, 116, 2, 916, 918, 7, 97, 2, 2, 917, 915, 3, 2, 2, 2, 917, 916, 3, 2, 2, 2, 918, 921, 3, 2, 2, 2, 919, 917, 3, 2, 2, 2, 919, 920, 3, 2, 2, 2, 920, 922, 3, 2, 2, 2, 921, 919, 3, 2, 2, 2, 922, 924, 5, 231, 116, 2, 923, 919, 3, 2, 2, 2, 923, 924, 3, 2, 2, 2, 924, 230, 3, 2, 2, 2, 925, 926, 9, 5, 2, 2, 926, 232, 3, 2, 2, 2, 927, 935, 9, 22, 2, 2, 928, 930, 9, 23, 2, 2, 929, 928, 3, 2, 2, 2, 930, 933, 3, 2, 2, 2, 931, 929, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 934, 3, 2, 2, 2, 933, 931, 3, 2, 2, 2, 934, 936, 9, 22, 2, 2, 935, 931, 3, 2, 2, 2, 935, 936, 3, 2, 2, 2, 936, 234, 3, 2, 2, 2, 937, 940, 5, 237, 119, 2, 938, 940, 9, 22, 2, 2, 939, 937, 3, 2, 2, 2, 939, 938, 3, 2, 2, 2, 940, 236, 3, 2, 2, 2, 941, 946, 9, 24, 2, 2, 942, 946, 10, 25, 2, 2, 943, 944, 9, 26, 2, 2, 944, 946, 9, 27, 2, 2, 945, 941, 3, 2, 2, 2, 945, 942, 3, 2, 2, 2, 945, 943, 3, 2, 2, 2, 946, 238, 3, 2, 2, 2, 50, 2, 581, 586, 589, 591, 594, 602, 606, 609, 615, 622, 626, 629, 637, 641, 644, 649, 653, 656, 659, 664, 667, 669, 675, 678, 682, 686, 690, 701, 706, 713, 715, 849, 859, 873, 882, 887, 895, 898, 905, 912, 917, 919, 923, 931, 935, 939, 945, 3, 2, 3, 2] \ No newline at end of file diff --git a/java2python/lang/JavaLexer.py b/java2python/lang/JavaLexer.py index 9c1725a..4d5150e 100644 --- a/java2python/lang/JavaLexer.py +++ b/java2python/lang/JavaLexer.py @@ -1,5285 +1,630 @@ -# $ANTLR 3.1.3 Mar 18, 2009 10:09:25 Java.g 2012-01-29 13:54:05 - +# Generated from JavaLexer.g4 by ANTLR 4.7.2 +from antlr4 import * +from io import StringIO +from typing.io import TextIO import sys -from antlr3 import * -from antlr3.compat import set, frozenset - -# for convenience in actions -HIDDEN = BaseRecognizer.HIDDEN -# token types -PACKAGE=84 -EXPONENT=173 -STAR=49 -WHILE=103 -MOD=32 -MOD_ASSIGN=33 -CASE=58 -CHAR=60 -NEW=82 -DO=64 -GENERIC_TYPE_PARAM_LIST=138 -CLASS_INSTANCE_INITIALIZER=121 -ARRAY_ELEMENT_ACCESS=115 -FOR_CONDITION=129 -NOT=34 -VAR_DECLARATION=160 -ANNOTATION_METHOD_DECL=109 -EOF=-1 -DIV_ASSIGN=14 -BREAK=56 -LOGICAL_AND=26 -BIT_SHIFT_RIGHT_ASSIGN=9 -UNARY_PLUS=159 -TYPE=157 -FINAL=70 -INC=21 -RPAREN=43 -IMPORT=78 -STRING_LITERAL=170 -FOR_UPDATE=132 -FLOATING_POINT_LITERAL=168 -CAST_EXPR=118 -NOT_EQUAL=35 -VOID_METHOD_DECL=163 -RETURN=88 -THIS=95 -DOUBLE=65 -VOID=101 -ENUM_TOP_LEVEL_SCOPE=125 -SUPER=92 -COMMENT=181 -ANNOTATION_INIT_KEY_LIST=107 -JAVA_ID_START=178 -FLOAT_TYPE_SUFFIX=174 -PRE_DEC=149 -RBRACK=41 -IMPLEMENTS_CLAUSE=140 -SWITCH_BLOCK_LABEL_LIST=154 -LINE_COMMENT=182 -PRIVATE=85 -STATIC=90 -BLOCK_SCOPE=117 -ANNOTATION_INIT_DEFAULT_KEY=106 -SWITCH=93 -NULL=83 -VAR_DECLARATOR=161 -MINUS_ASSIGN=31 -ELSE=66 -STRICTFP=91 -CHARACTER_LITERAL=169 -PRE_INC=150 -ANNOTATION_LIST=108 -ELLIPSIS=17 -NATIVE=81 -OCTAL_ESCAPE=177 -UNARY_MINUS=158 -THROWS=97 -LCURLY=23 -INT=79 -FORMAL_PARAM_VARARG_DECL=135 -METHOD_CALL=144 -ASSERT=54 -TRY=100 -INTERFACE_TOP_LEVEL_SCOPE=139 -SHIFT_LEFT=45 -WS=180 -SHIFT_RIGHT=47 -FORMAL_PARAM_STD_DECL=134 -LOCAL_MODIFIER_LIST=142 -OR=36 -LESS_THAN=25 -SHIFT_RIGHT_ASSIGN=48 -EXTENDS_BOUND_LIST=127 -JAVA_SOURCE=143 -CATCH=59 -FALSE=69 -INTEGER_TYPE_SUFFIX=172 -DECIMAL_LITERAL=167 -THROW=96 -FOR_INIT=131 -PROTECTED=86 -DEC=12 -CLASS=61 -LBRACK=22 -BIT_SHIFT_RIGHT=8 -THROWS_CLAUSE=156 -GREATER_OR_EQUAL=19 -FOR=73 -LOGICAL_NOT=27 -THIS_CONSTRUCTOR_CALL=155 -FLOAT=72 -JAVADOC_COMMENT=183 -ABSTRACT=53 -AND=4 -POST_DEC=147 -AND_ASSIGN=5 -ANNOTATION_SCOPE=110 -MODIFIER_LIST=145 -STATIC_ARRAY_CREATOR=152 -LPAREN=29 -IF=74 -AT=7 -CONSTRUCTOR_DECL=124 -ESCAPE_SEQUENCE=175 -LABELED_STATEMENT=141 -UNICODE_ESCAPE=176 -BOOLEAN=55 -SYNCHRONIZED=94 -EXPR=126 -CLASS_TOP_LEVEL_SCOPE=123 -IMPLEMENTS=75 -CONTINUE=62 -COMMA=11 -TRANSIENT=98 -XOR_ASSIGN=52 -EQUAL=18 -LOGICAL_OR=28 -ARGUMENT_LIST=112 -QUALIFIED_TYPE_IDENT=151 -IDENT=164 -PLUS=38 -ANNOTATION_INIT_BLOCK=105 -HEX_LITERAL=165 -DOT=15 -SHIFT_LEFT_ASSIGN=46 -FORMAL_PARAM_LIST=133 -GENERIC_TYPE_ARG_LIST=137 -DOTSTAR=16 -ANNOTATION_TOP_LEVEL_SCOPE=111 -BYTE=57 -XOR=51 -JAVA_ID_PART=179 -GREATER_THAN=20 -VOLATILE=102 -PARENTESIZED_EXPR=146 -LESS_OR_EQUAL=24 -ARRAY_DECLARATOR_LIST=114 -CLASS_STATIC_INITIALIZER=122 -DEFAULT=63 -OCTAL_LITERAL=166 -HEX_DIGIT=171 -SHORT=89 -INSTANCEOF=76 -MINUS=30 -SEMI=44 -TRUE=99 -EXTENDS_CLAUSE=128 -STAR_ASSIGN=50 -VAR_DECLARATOR_LIST=162 -COLON=10 -ARRAY_DECLARATOR=113 -OR_ASSIGN=37 -ENUM=67 -QUESTION=40 -FINALLY=71 -RCURLY=42 -ASSIGN=6 -PLUS_ASSIGN=39 -ANNOTATION_INIT_ARRAY_ELEMENT=104 -FUNCTION_METHOD_DECL=136 -INTERFACE=77 -DIV=13 -POST_INC=148 -LONG=80 -CLASS_CONSTRUCTOR_CALL=120 -PUBLIC=87 -EXTENDS=68 -FOR_EACH=130 -ARRAY_INITIALIZER=116 -CATCH_CLAUSE_LIST=119 -SUPER_CONSTRUCTOR_CALL=153 +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2q") + buf.write("\u03b3\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") + buf.write("\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r") + buf.write("\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23") + buf.write("\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30") + buf.write("\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36") + buf.write("\t\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%") + buf.write("\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.") + buf.write("\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64") + buf.write("\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:") + buf.write("\4;\t;\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\t") + buf.write("C\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\t") + buf.write("L\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\t") + buf.write("U\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4") + buf.write("^\t^\4_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4") + buf.write("g\tg\4h\th\4i\ti\4j\tj\4k\tk\4l\tl\4m\tm\4n\tn\4o\to\4") + buf.write("p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4w\tw\3\2\3\2") + buf.write("\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3") + buf.write("\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5") + buf.write("\3\5\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3") + buf.write("\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n") + buf.write("\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f") + buf.write("\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16") + buf.write("\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20") + buf.write("\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22") + buf.write("\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23") + buf.write("\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25") + buf.write("\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\30") + buf.write("\3\30\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31") + buf.write("\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32") + buf.write("\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33") + buf.write("\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35") + buf.write("\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37") + buf.write("\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!") + buf.write("\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#") + buf.write("\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3") + buf.write("%\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(") + buf.write("\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3") + buf.write("*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3") + buf.write(",\3,\3,\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3/\3/\3") + buf.write("/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3") + buf.write("\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62") + buf.write("\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\5\64") + buf.write("\u0246\n\64\3\64\6\64\u0249\n\64\r\64\16\64\u024a\3\64") + buf.write("\5\64\u024e\n\64\5\64\u0250\n\64\3\64\5\64\u0253\n\64") + buf.write("\3\65\3\65\3\65\3\65\7\65\u0259\n\65\f\65\16\65\u025c") + buf.write("\13\65\3\65\5\65\u025f\n\65\3\65\5\65\u0262\n\65\3\66") + buf.write("\3\66\7\66\u0266\n\66\f\66\16\66\u0269\13\66\3\66\3\66") + buf.write("\7\66\u026d\n\66\f\66\16\66\u0270\13\66\3\66\5\66\u0273") + buf.write("\n\66\3\66\5\66\u0276\n\66\3\67\3\67\3\67\3\67\7\67\u027c") + buf.write("\n\67\f\67\16\67\u027f\13\67\3\67\5\67\u0282\n\67\3\67") + buf.write("\5\67\u0285\n\67\38\38\38\58\u028a\n8\38\38\58\u028e\n") + buf.write("8\38\58\u0291\n8\38\58\u0294\n8\38\38\38\58\u0299\n8\3") + buf.write("8\58\u029c\n8\58\u029e\n8\39\39\39\39\59\u02a4\n9\39\5") + buf.write("9\u02a7\n9\39\39\59\u02ab\n9\39\39\59\u02af\n9\39\39\5") + buf.write("9\u02b3\n9\3:\3:\3:\3:\3:\3:\3:\3:\3:\5:\u02be\n:\3;\3") + buf.write(";\3;\5;\u02c3\n;\3;\3;\3<\3<\3<\7<\u02ca\n<\f<\16<\u02cd") + buf.write("\13<\3<\3<\3=\3=\3=\3=\3=\3>\3>\3?\3?\3@\3@\3A\3A\3B\3") + buf.write("B\3C\3C\3D\3D\3E\3E\3F\3F\3G\3G\3H\3H\3I\3I\3J\3J\3K\3") + buf.write("K\3L\3L\3M\3M\3N\3N\3N\3O\3O\3O\3P\3P\3P\3Q\3Q\3Q\3R\3") + buf.write("R\3R\3S\3S\3S\3T\3T\3T\3U\3U\3U\3V\3V\3W\3W\3X\3X\3Y\3") + buf.write("Y\3Z\3Z\3[\3[\3\\\3\\\3]\3]\3^\3^\3^\3_\3_\3_\3`\3`\3") + buf.write("`\3a\3a\3a\3b\3b\3b\3c\3c\3c\3d\3d\3d\3e\3e\3e\3f\3f\3") + buf.write("f\3f\3g\3g\3g\3g\3h\3h\3h\3h\3h\3i\3i\3i\3j\3j\3j\3k\3") + buf.write("k\3l\3l\3l\3l\3m\6m\u0350\nm\rm\16m\u0351\3m\3m\3n\3n") + buf.write("\3n\3n\7n\u035a\nn\fn\16n\u035d\13n\3n\3n\3n\3n\3n\3o") + buf.write("\3o\3o\3o\7o\u0368\no\fo\16o\u036b\13o\3o\3o\3p\3p\7p") + buf.write("\u0371\np\fp\16p\u0374\13p\3q\3q\5q\u0378\nq\3q\3q\3r") + buf.write("\3r\3r\3r\5r\u0380\nr\3r\5r\u0383\nr\3r\3r\3r\6r\u0388") + buf.write("\nr\rr\16r\u0389\3r\3r\3r\3r\3r\5r\u0391\nr\3s\3s\3s\7") + buf.write("s\u0396\ns\fs\16s\u0399\13s\3s\5s\u039c\ns\3t\3t\3u\3") + buf.write("u\7u\u03a2\nu\fu\16u\u03a5\13u\3u\5u\u03a8\nu\3v\3v\5") + buf.write("v\u03ac\nv\3w\3w\3w\3w\5w\u03b2\nw\3\u035b\2x\3\3\5\4") + buf.write("\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17") + buf.write("\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63") + buf.write("\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-") + buf.write("Y.[/]\60_\61a\62c\63e\64g\65i\66k\67m8o9q:s;u{?}") + buf.write("@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008d") + buf.write("H\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009d") + buf.write("P\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00ad") + buf.write("X\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd") + buf.write("`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cbg\u00cd") + buf.write("h\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00dd") + buf.write("p\u00dfq\u00e1\2\u00e3\2\u00e5\2\u00e7\2\u00e9\2\u00eb") + buf.write("\2\u00ed\2\3\2\34\3\2\63;\4\2NNnn\4\2ZZzz\5\2\62;CHch") + buf.write("\6\2\62;CHaach\3\2\629\4\2\629aa\4\2DDdd\3\2\62\63\4\2") + buf.write("\62\63aa\6\2FFHHffhh\4\2RRrr\4\2--//\6\2\f\f\17\17))^") + buf.write("^\6\2\f\f\17\17$$^^\5\2\13\f\16\17\"\"\4\2\f\f\17\17\4") + buf.write("\2GGgg\n\2$$))^^ddhhppttvv\3\2\62\65\3\2\62;\4\2\62;a") + buf.write("a\6\2&&C\\aac|\4\2\2\u0081\ud802\udc01\3\2\ud802\udc01") + buf.write("\3\2\udc02\ue001\2\u03dc\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3") + buf.write("\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2") + buf.write("\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2") + buf.write("\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2") + buf.write("!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2") + buf.write("\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3") + buf.write("\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2") + buf.write("\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2") + buf.write("\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2") + buf.write("\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3") + buf.write("\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c") + buf.write("\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2") + buf.write("m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2") + buf.write("\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2") + buf.write("\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2") + buf.write("\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d") + buf.write("\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2") + buf.write("\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2\2\2\u009b") + buf.write("\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2") + buf.write("\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9") + buf.write("\3\2\2\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2") + buf.write("\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7") + buf.write("\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2") + buf.write("\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5") + buf.write("\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2") + buf.write("\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3") + buf.write("\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2") + buf.write("\2\2\u00db\3\2\2\2\2\u00dd\3\2\2\2\2\u00df\3\2\2\2\3\u00ef") + buf.write("\3\2\2\2\5\u00f8\3\2\2\2\7\u00ff\3\2\2\2\t\u0107\3\2\2") + buf.write("\2\13\u010d\3\2\2\2\r\u0112\3\2\2\2\17\u0117\3\2\2\2\21") + buf.write("\u011d\3\2\2\2\23\u0122\3\2\2\2\25\u0128\3\2\2\2\27\u012e") + buf.write("\3\2\2\2\31\u0137\3\2\2\2\33\u013f\3\2\2\2\35\u0142\3") + buf.write("\2\2\2\37\u0149\3\2\2\2!\u014e\3\2\2\2#\u0153\3\2\2\2") + buf.write("%\u015b\3\2\2\2\'\u0161\3\2\2\2)\u0169\3\2\2\2+\u016f") + buf.write("\3\2\2\2-\u0173\3\2\2\2/\u0176\3\2\2\2\61\u017b\3\2\2") + buf.write("\2\63\u0186\3\2\2\2\65\u018d\3\2\2\2\67\u0198\3\2\2\2") + buf.write("9\u019c\3\2\2\2;\u01a6\3\2\2\2=\u01ab\3\2\2\2?\u01b2\3") + buf.write("\2\2\2A\u01b6\3\2\2\2C\u01be\3\2\2\2E\u01c6\3\2\2\2G\u01d0") + buf.write("\3\2\2\2I\u01d7\3\2\2\2K\u01de\3\2\2\2M\u01e4\3\2\2\2") + buf.write("O\u01eb\3\2\2\2Q\u01f4\3\2\2\2S\u01fa\3\2\2\2U\u0201\3") + buf.write("\2\2\2W\u020e\3\2\2\2Y\u0213\3\2\2\2[\u0219\3\2\2\2]\u0220") + buf.write("\3\2\2\2_\u022a\3\2\2\2a\u022e\3\2\2\2c\u0233\3\2\2\2") + buf.write("e\u023c\3\2\2\2g\u024f\3\2\2\2i\u0254\3\2\2\2k\u0263\3") + buf.write("\2\2\2m\u0277\3\2\2\2o\u029d\3\2\2\2q\u029f\3\2\2\2s\u02bd") + buf.write("\3\2\2\2u\u02bf\3\2\2\2w\u02c6\3\2\2\2y\u02d0\3\2\2\2") + buf.write("{\u02d5\3\2\2\2}\u02d7\3\2\2\2\177\u02d9\3\2\2\2\u0081") + buf.write("\u02db\3\2\2\2\u0083\u02dd\3\2\2\2\u0085\u02df\3\2\2\2") + buf.write("\u0087\u02e1\3\2\2\2\u0089\u02e3\3\2\2\2\u008b\u02e5\3") + buf.write("\2\2\2\u008d\u02e7\3\2\2\2\u008f\u02e9\3\2\2\2\u0091\u02eb") + buf.write("\3\2\2\2\u0093\u02ed\3\2\2\2\u0095\u02ef\3\2\2\2\u0097") + buf.write("\u02f1\3\2\2\2\u0099\u02f3\3\2\2\2\u009b\u02f5\3\2\2\2") + buf.write("\u009d\u02f8\3\2\2\2\u009f\u02fb\3\2\2\2\u00a1\u02fe\3") + buf.write("\2\2\2\u00a3\u0301\3\2\2\2\u00a5\u0304\3\2\2\2\u00a7\u0307") + buf.write("\3\2\2\2\u00a9\u030a\3\2\2\2\u00ab\u030d\3\2\2\2\u00ad") + buf.write("\u030f\3\2\2\2\u00af\u0311\3\2\2\2\u00b1\u0313\3\2\2\2") + buf.write("\u00b3\u0315\3\2\2\2\u00b5\u0317\3\2\2\2\u00b7\u0319\3") + buf.write("\2\2\2\u00b9\u031b\3\2\2\2\u00bb\u031d\3\2\2\2\u00bd\u0320") + buf.write("\3\2\2\2\u00bf\u0323\3\2\2\2\u00c1\u0326\3\2\2\2\u00c3") + buf.write("\u0329\3\2\2\2\u00c5\u032c\3\2\2\2\u00c7\u032f\3\2\2\2") + buf.write("\u00c9\u0332\3\2\2\2\u00cb\u0335\3\2\2\2\u00cd\u0339\3") + buf.write("\2\2\2\u00cf\u033d\3\2\2\2\u00d1\u0342\3\2\2\2\u00d3\u0345") + buf.write("\3\2\2\2\u00d5\u0348\3\2\2\2\u00d7\u034a\3\2\2\2\u00d9") + buf.write("\u034f\3\2\2\2\u00db\u0355\3\2\2\2\u00dd\u0363\3\2\2\2") + buf.write("\u00df\u036e\3\2\2\2\u00e1\u0375\3\2\2\2\u00e3\u0390\3") + buf.write("\2\2\2\u00e5\u0392\3\2\2\2\u00e7\u039d\3\2\2\2\u00e9\u039f") + buf.write("\3\2\2\2\u00eb\u03ab\3\2\2\2\u00ed\u03b1\3\2\2\2\u00ef") + buf.write("\u00f0\7c\2\2\u00f0\u00f1\7d\2\2\u00f1\u00f2\7u\2\2\u00f2") + buf.write("\u00f3\7v\2\2\u00f3\u00f4\7t\2\2\u00f4\u00f5\7c\2\2\u00f5") + buf.write("\u00f6\7e\2\2\u00f6\u00f7\7v\2\2\u00f7\4\3\2\2\2\u00f8") + buf.write("\u00f9\7c\2\2\u00f9\u00fa\7u\2\2\u00fa\u00fb\7u\2\2\u00fb") + buf.write("\u00fc\7g\2\2\u00fc\u00fd\7t\2\2\u00fd\u00fe\7v\2\2\u00fe") + buf.write("\6\3\2\2\2\u00ff\u0100\7d\2\2\u0100\u0101\7q\2\2\u0101") + buf.write("\u0102\7q\2\2\u0102\u0103\7n\2\2\u0103\u0104\7g\2\2\u0104") + buf.write("\u0105\7c\2\2\u0105\u0106\7p\2\2\u0106\b\3\2\2\2\u0107") + buf.write("\u0108\7d\2\2\u0108\u0109\7t\2\2\u0109\u010a\7g\2\2\u010a") + buf.write("\u010b\7c\2\2\u010b\u010c\7m\2\2\u010c\n\3\2\2\2\u010d") + buf.write("\u010e\7d\2\2\u010e\u010f\7{\2\2\u010f\u0110\7v\2\2\u0110") + buf.write("\u0111\7g\2\2\u0111\f\3\2\2\2\u0112\u0113\7e\2\2\u0113") + buf.write("\u0114\7c\2\2\u0114\u0115\7u\2\2\u0115\u0116\7g\2\2\u0116") + buf.write("\16\3\2\2\2\u0117\u0118\7e\2\2\u0118\u0119\7c\2\2\u0119") + buf.write("\u011a\7v\2\2\u011a\u011b\7e\2\2\u011b\u011c\7j\2\2\u011c") + buf.write("\20\3\2\2\2\u011d\u011e\7e\2\2\u011e\u011f\7j\2\2\u011f") + buf.write("\u0120\7c\2\2\u0120\u0121\7t\2\2\u0121\22\3\2\2\2\u0122") + buf.write("\u0123\7e\2\2\u0123\u0124\7n\2\2\u0124\u0125\7c\2\2\u0125") + buf.write("\u0126\7u\2\2\u0126\u0127\7u\2\2\u0127\24\3\2\2\2\u0128") + buf.write("\u0129\7e\2\2\u0129\u012a\7q\2\2\u012a\u012b\7p\2\2\u012b") + buf.write("\u012c\7u\2\2\u012c\u012d\7v\2\2\u012d\26\3\2\2\2\u012e") + buf.write("\u012f\7e\2\2\u012f\u0130\7q\2\2\u0130\u0131\7p\2\2\u0131") + buf.write("\u0132\7v\2\2\u0132\u0133\7k\2\2\u0133\u0134\7p\2\2\u0134") + buf.write("\u0135\7w\2\2\u0135\u0136\7g\2\2\u0136\30\3\2\2\2\u0137") + buf.write("\u0138\7f\2\2\u0138\u0139\7g\2\2\u0139\u013a\7h\2\2\u013a") + buf.write("\u013b\7c\2\2\u013b\u013c\7w\2\2\u013c\u013d\7n\2\2\u013d") + buf.write("\u013e\7v\2\2\u013e\32\3\2\2\2\u013f\u0140\7f\2\2\u0140") + buf.write("\u0141\7q\2\2\u0141\34\3\2\2\2\u0142\u0143\7f\2\2\u0143") + buf.write("\u0144\7q\2\2\u0144\u0145\7w\2\2\u0145\u0146\7d\2\2\u0146") + buf.write("\u0147\7n\2\2\u0147\u0148\7g\2\2\u0148\36\3\2\2\2\u0149") + buf.write("\u014a\7g\2\2\u014a\u014b\7n\2\2\u014b\u014c\7u\2\2\u014c") + buf.write("\u014d\7g\2\2\u014d \3\2\2\2\u014e\u014f\7g\2\2\u014f") + buf.write("\u0150\7p\2\2\u0150\u0151\7w\2\2\u0151\u0152\7o\2\2\u0152") + buf.write("\"\3\2\2\2\u0153\u0154\7g\2\2\u0154\u0155\7z\2\2\u0155") + buf.write("\u0156\7v\2\2\u0156\u0157\7g\2\2\u0157\u0158\7p\2\2\u0158") + buf.write("\u0159\7f\2\2\u0159\u015a\7u\2\2\u015a$\3\2\2\2\u015b") + buf.write("\u015c\7h\2\2\u015c\u015d\7k\2\2\u015d\u015e\7p\2\2\u015e") + buf.write("\u015f\7c\2\2\u015f\u0160\7n\2\2\u0160&\3\2\2\2\u0161") + buf.write("\u0162\7h\2\2\u0162\u0163\7k\2\2\u0163\u0164\7p\2\2\u0164") + buf.write("\u0165\7c\2\2\u0165\u0166\7n\2\2\u0166\u0167\7n\2\2\u0167") + buf.write("\u0168\7{\2\2\u0168(\3\2\2\2\u0169\u016a\7h\2\2\u016a") + buf.write("\u016b\7n\2\2\u016b\u016c\7q\2\2\u016c\u016d\7c\2\2\u016d") + buf.write("\u016e\7v\2\2\u016e*\3\2\2\2\u016f\u0170\7h\2\2\u0170") + buf.write("\u0171\7q\2\2\u0171\u0172\7t\2\2\u0172,\3\2\2\2\u0173") + buf.write("\u0174\7k\2\2\u0174\u0175\7h\2\2\u0175.\3\2\2\2\u0176") + buf.write("\u0177\7i\2\2\u0177\u0178\7q\2\2\u0178\u0179\7v\2\2\u0179") + buf.write("\u017a\7q\2\2\u017a\60\3\2\2\2\u017b\u017c\7k\2\2\u017c") + buf.write("\u017d\7o\2\2\u017d\u017e\7r\2\2\u017e\u017f\7n\2\2\u017f") + buf.write("\u0180\7g\2\2\u0180\u0181\7o\2\2\u0181\u0182\7g\2\2\u0182") + buf.write("\u0183\7p\2\2\u0183\u0184\7v\2\2\u0184\u0185\7u\2\2\u0185") + buf.write("\62\3\2\2\2\u0186\u0187\7k\2\2\u0187\u0188\7o\2\2\u0188") + buf.write("\u0189\7r\2\2\u0189\u018a\7q\2\2\u018a\u018b\7t\2\2\u018b") + buf.write("\u018c\7v\2\2\u018c\64\3\2\2\2\u018d\u018e\7k\2\2\u018e") + buf.write("\u018f\7p\2\2\u018f\u0190\7u\2\2\u0190\u0191\7v\2\2\u0191") + buf.write("\u0192\7c\2\2\u0192\u0193\7p\2\2\u0193\u0194\7e\2\2\u0194") + buf.write("\u0195\7g\2\2\u0195\u0196\7q\2\2\u0196\u0197\7h\2\2\u0197") + buf.write("\66\3\2\2\2\u0198\u0199\7k\2\2\u0199\u019a\7p\2\2\u019a") + buf.write("\u019b\7v\2\2\u019b8\3\2\2\2\u019c\u019d\7k\2\2\u019d") + buf.write("\u019e\7p\2\2\u019e\u019f\7v\2\2\u019f\u01a0\7g\2\2\u01a0") + buf.write("\u01a1\7t\2\2\u01a1\u01a2\7h\2\2\u01a2\u01a3\7c\2\2\u01a3") + buf.write("\u01a4\7e\2\2\u01a4\u01a5\7g\2\2\u01a5:\3\2\2\2\u01a6") + buf.write("\u01a7\7n\2\2\u01a7\u01a8\7q\2\2\u01a8\u01a9\7p\2\2\u01a9") + buf.write("\u01aa\7i\2\2\u01aa<\3\2\2\2\u01ab\u01ac\7p\2\2\u01ac") + buf.write("\u01ad\7c\2\2\u01ad\u01ae\7v\2\2\u01ae\u01af\7k\2\2\u01af") + buf.write("\u01b0\7x\2\2\u01b0\u01b1\7g\2\2\u01b1>\3\2\2\2\u01b2") + buf.write("\u01b3\7p\2\2\u01b3\u01b4\7g\2\2\u01b4\u01b5\7y\2\2\u01b5") + buf.write("@\3\2\2\2\u01b6\u01b7\7r\2\2\u01b7\u01b8\7c\2\2\u01b8") + buf.write("\u01b9\7e\2\2\u01b9\u01ba\7m\2\2\u01ba\u01bb\7c\2\2\u01bb") + buf.write("\u01bc\7i\2\2\u01bc\u01bd\7g\2\2\u01bdB\3\2\2\2\u01be") + buf.write("\u01bf\7r\2\2\u01bf\u01c0\7t\2\2\u01c0\u01c1\7k\2\2\u01c1") + buf.write("\u01c2\7x\2\2\u01c2\u01c3\7c\2\2\u01c3\u01c4\7v\2\2\u01c4") + buf.write("\u01c5\7g\2\2\u01c5D\3\2\2\2\u01c6\u01c7\7r\2\2\u01c7") + buf.write("\u01c8\7t\2\2\u01c8\u01c9\7q\2\2\u01c9\u01ca\7v\2\2\u01ca") + buf.write("\u01cb\7g\2\2\u01cb\u01cc\7e\2\2\u01cc\u01cd\7v\2\2\u01cd") + buf.write("\u01ce\7g\2\2\u01ce\u01cf\7f\2\2\u01cfF\3\2\2\2\u01d0") + buf.write("\u01d1\7r\2\2\u01d1\u01d2\7w\2\2\u01d2\u01d3\7d\2\2\u01d3") + buf.write("\u01d4\7n\2\2\u01d4\u01d5\7k\2\2\u01d5\u01d6\7e\2\2\u01d6") + buf.write("H\3\2\2\2\u01d7\u01d8\7t\2\2\u01d8\u01d9\7g\2\2\u01d9") + buf.write("\u01da\7v\2\2\u01da\u01db\7w\2\2\u01db\u01dc\7t\2\2\u01dc") + buf.write("\u01dd\7p\2\2\u01ddJ\3\2\2\2\u01de\u01df\7u\2\2\u01df") + buf.write("\u01e0\7j\2\2\u01e0\u01e1\7q\2\2\u01e1\u01e2\7t\2\2\u01e2") + buf.write("\u01e3\7v\2\2\u01e3L\3\2\2\2\u01e4\u01e5\7u\2\2\u01e5") + buf.write("\u01e6\7v\2\2\u01e6\u01e7\7c\2\2\u01e7\u01e8\7v\2\2\u01e8") + buf.write("\u01e9\7k\2\2\u01e9\u01ea\7e\2\2\u01eaN\3\2\2\2\u01eb") + buf.write("\u01ec\7u\2\2\u01ec\u01ed\7v\2\2\u01ed\u01ee\7t\2\2\u01ee") + buf.write("\u01ef\7k\2\2\u01ef\u01f0\7e\2\2\u01f0\u01f1\7v\2\2\u01f1") + buf.write("\u01f2\7h\2\2\u01f2\u01f3\7r\2\2\u01f3P\3\2\2\2\u01f4") + buf.write("\u01f5\7u\2\2\u01f5\u01f6\7w\2\2\u01f6\u01f7\7r\2\2\u01f7") + buf.write("\u01f8\7g\2\2\u01f8\u01f9\7t\2\2\u01f9R\3\2\2\2\u01fa") + buf.write("\u01fb\7u\2\2\u01fb\u01fc\7y\2\2\u01fc\u01fd\7k\2\2\u01fd") + buf.write("\u01fe\7v\2\2\u01fe\u01ff\7e\2\2\u01ff\u0200\7j\2\2\u0200") + buf.write("T\3\2\2\2\u0201\u0202\7u\2\2\u0202\u0203\7{\2\2\u0203") + buf.write("\u0204\7p\2\2\u0204\u0205\7e\2\2\u0205\u0206\7j\2\2\u0206") + buf.write("\u0207\7t\2\2\u0207\u0208\7q\2\2\u0208\u0209\7p\2\2\u0209") + buf.write("\u020a\7k\2\2\u020a\u020b\7|\2\2\u020b\u020c\7g\2\2\u020c") + buf.write("\u020d\7f\2\2\u020dV\3\2\2\2\u020e\u020f\7v\2\2\u020f") + buf.write("\u0210\7j\2\2\u0210\u0211\7k\2\2\u0211\u0212\7u\2\2\u0212") + buf.write("X\3\2\2\2\u0213\u0214\7v\2\2\u0214\u0215\7j\2\2\u0215") + buf.write("\u0216\7t\2\2\u0216\u0217\7q\2\2\u0217\u0218\7y\2\2\u0218") + buf.write("Z\3\2\2\2\u0219\u021a\7v\2\2\u021a\u021b\7j\2\2\u021b") + buf.write("\u021c\7t\2\2\u021c\u021d\7q\2\2\u021d\u021e\7y\2\2\u021e") + buf.write("\u021f\7u\2\2\u021f\\\3\2\2\2\u0220\u0221\7v\2\2\u0221") + buf.write("\u0222\7t\2\2\u0222\u0223\7c\2\2\u0223\u0224\7p\2\2\u0224") + buf.write("\u0225\7u\2\2\u0225\u0226\7k\2\2\u0226\u0227\7g\2\2\u0227") + buf.write("\u0228\7p\2\2\u0228\u0229\7v\2\2\u0229^\3\2\2\2\u022a") + buf.write("\u022b\7v\2\2\u022b\u022c\7t\2\2\u022c\u022d\7{\2\2\u022d") + buf.write("`\3\2\2\2\u022e\u022f\7x\2\2\u022f\u0230\7q\2\2\u0230") + buf.write("\u0231\7k\2\2\u0231\u0232\7f\2\2\u0232b\3\2\2\2\u0233") + buf.write("\u0234\7x\2\2\u0234\u0235\7q\2\2\u0235\u0236\7n\2\2\u0236") + buf.write("\u0237\7c\2\2\u0237\u0238\7v\2\2\u0238\u0239\7k\2\2\u0239") + buf.write("\u023a\7n\2\2\u023a\u023b\7g\2\2\u023bd\3\2\2\2\u023c") + buf.write("\u023d\7y\2\2\u023d\u023e\7j\2\2\u023e\u023f\7k\2\2\u023f") + buf.write("\u0240\7n\2\2\u0240\u0241\7g\2\2\u0241f\3\2\2\2\u0242") + buf.write("\u0250\7\62\2\2\u0243\u024d\t\2\2\2\u0244\u0246\5\u00e9") + buf.write("u\2\u0245\u0244\3\2\2\2\u0245\u0246\3\2\2\2\u0246\u024e") + buf.write("\3\2\2\2\u0247\u0249\7a\2\2\u0248\u0247\3\2\2\2\u0249") + buf.write("\u024a\3\2\2\2\u024a\u0248\3\2\2\2\u024a\u024b\3\2\2\2") + buf.write("\u024b\u024c\3\2\2\2\u024c\u024e\5\u00e9u\2\u024d\u0245") + buf.write("\3\2\2\2\u024d\u0248\3\2\2\2\u024e\u0250\3\2\2\2\u024f") + buf.write("\u0242\3\2\2\2\u024f\u0243\3\2\2\2\u0250\u0252\3\2\2\2") + buf.write("\u0251\u0253\t\3\2\2\u0252\u0251\3\2\2\2\u0252\u0253\3") + buf.write("\2\2\2\u0253h\3\2\2\2\u0254\u0255\7\62\2\2\u0255\u0256") + buf.write("\t\4\2\2\u0256\u025e\t\5\2\2\u0257\u0259\t\6\2\2\u0258") + buf.write("\u0257\3\2\2\2\u0259\u025c\3\2\2\2\u025a\u0258\3\2\2\2") + buf.write("\u025a\u025b\3\2\2\2\u025b\u025d\3\2\2\2\u025c\u025a\3") + buf.write("\2\2\2\u025d\u025f\t\5\2\2\u025e\u025a\3\2\2\2\u025e\u025f") + buf.write("\3\2\2\2\u025f\u0261\3\2\2\2\u0260\u0262\t\3\2\2\u0261") + buf.write("\u0260\3\2\2\2\u0261\u0262\3\2\2\2\u0262j\3\2\2\2\u0263") + buf.write("\u0267\7\62\2\2\u0264\u0266\7a\2\2\u0265\u0264\3\2\2\2") + buf.write("\u0266\u0269\3\2\2\2\u0267\u0265\3\2\2\2\u0267\u0268\3") + buf.write("\2\2\2\u0268\u026a\3\2\2\2\u0269\u0267\3\2\2\2\u026a\u0272") + buf.write("\t\7\2\2\u026b\u026d\t\b\2\2\u026c\u026b\3\2\2\2\u026d") + buf.write("\u0270\3\2\2\2\u026e\u026c\3\2\2\2\u026e\u026f\3\2\2\2") + buf.write("\u026f\u0271\3\2\2\2\u0270\u026e\3\2\2\2\u0271\u0273\t") + buf.write("\7\2\2\u0272\u026e\3\2\2\2\u0272\u0273\3\2\2\2\u0273\u0275") + buf.write("\3\2\2\2\u0274\u0276\t\3\2\2\u0275\u0274\3\2\2\2\u0275") + buf.write("\u0276\3\2\2\2\u0276l\3\2\2\2\u0277\u0278\7\62\2\2\u0278") + buf.write("\u0279\t\t\2\2\u0279\u0281\t\n\2\2\u027a\u027c\t\13\2") + buf.write("\2\u027b\u027a\3\2\2\2\u027c\u027f\3\2\2\2\u027d\u027b") + buf.write("\3\2\2\2\u027d\u027e\3\2\2\2\u027e\u0280\3\2\2\2\u027f") + buf.write("\u027d\3\2\2\2\u0280\u0282\t\n\2\2\u0281\u027d\3\2\2\2") + buf.write("\u0281\u0282\3\2\2\2\u0282\u0284\3\2\2\2\u0283\u0285\t") + buf.write("\3\2\2\u0284\u0283\3\2\2\2\u0284\u0285\3\2\2\2\u0285n") + buf.write("\3\2\2\2\u0286\u0287\5\u00e9u\2\u0287\u0289\7\60\2\2\u0288") + buf.write("\u028a\5\u00e9u\2\u0289\u0288\3\2\2\2\u0289\u028a\3\2") + buf.write("\2\2\u028a\u028e\3\2\2\2\u028b\u028c\7\60\2\2\u028c\u028e") + buf.write("\5\u00e9u\2\u028d\u0286\3\2\2\2\u028d\u028b\3\2\2\2\u028e") + buf.write("\u0290\3\2\2\2\u028f\u0291\5\u00e1q\2\u0290\u028f\3\2") + buf.write("\2\2\u0290\u0291\3\2\2\2\u0291\u0293\3\2\2\2\u0292\u0294") + buf.write("\t\f\2\2\u0293\u0292\3\2\2\2\u0293\u0294\3\2\2\2\u0294") + buf.write("\u029e\3\2\2\2\u0295\u029b\5\u00e9u\2\u0296\u0298\5\u00e1") + buf.write("q\2\u0297\u0299\t\f\2\2\u0298\u0297\3\2\2\2\u0298\u0299") + buf.write("\3\2\2\2\u0299\u029c\3\2\2\2\u029a\u029c\t\f\2\2\u029b") + buf.write("\u0296\3\2\2\2\u029b\u029a\3\2\2\2\u029c\u029e\3\2\2\2") + buf.write("\u029d\u028d\3\2\2\2\u029d\u0295\3\2\2\2\u029ep\3\2\2") + buf.write("\2\u029f\u02a0\7\62\2\2\u02a0\u02aa\t\4\2\2\u02a1\u02a3") + buf.write("\5\u00e5s\2\u02a2\u02a4\7\60\2\2\u02a3\u02a2\3\2\2\2\u02a3") + buf.write("\u02a4\3\2\2\2\u02a4\u02ab\3\2\2\2\u02a5\u02a7\5\u00e5") + buf.write("s\2\u02a6\u02a5\3\2\2\2\u02a6\u02a7\3\2\2\2\u02a7\u02a8") + buf.write("\3\2\2\2\u02a8\u02a9\7\60\2\2\u02a9\u02ab\5\u00e5s\2\u02aa") + buf.write("\u02a1\3\2\2\2\u02aa\u02a6\3\2\2\2\u02ab\u02ac\3\2\2\2") + buf.write("\u02ac\u02ae\t\r\2\2\u02ad\u02af\t\16\2\2\u02ae\u02ad") + buf.write("\3\2\2\2\u02ae\u02af\3\2\2\2\u02af\u02b0\3\2\2\2\u02b0") + buf.write("\u02b2\5\u00e9u\2\u02b1\u02b3\t\f\2\2\u02b2\u02b1\3\2") + buf.write("\2\2\u02b2\u02b3\3\2\2\2\u02b3r\3\2\2\2\u02b4\u02b5\7") + buf.write("v\2\2\u02b5\u02b6\7t\2\2\u02b6\u02b7\7w\2\2\u02b7\u02be") + buf.write("\7g\2\2\u02b8\u02b9\7h\2\2\u02b9\u02ba\7c\2\2\u02ba\u02bb") + buf.write("\7n\2\2\u02bb\u02bc\7u\2\2\u02bc\u02be\7g\2\2\u02bd\u02b4") + buf.write("\3\2\2\2\u02bd\u02b8\3\2\2\2\u02bet\3\2\2\2\u02bf\u02c2") + buf.write("\7)\2\2\u02c0\u02c3\n\17\2\2\u02c1\u02c3\5\u00e3r\2\u02c2") + buf.write("\u02c0\3\2\2\2\u02c2\u02c1\3\2\2\2\u02c3\u02c4\3\2\2\2") + buf.write("\u02c4\u02c5\7)\2\2\u02c5v\3\2\2\2\u02c6\u02cb\7$\2\2") + buf.write("\u02c7\u02ca\n\20\2\2\u02c8\u02ca\5\u00e3r\2\u02c9\u02c7") + buf.write("\3\2\2\2\u02c9\u02c8\3\2\2\2\u02ca\u02cd\3\2\2\2\u02cb") + buf.write("\u02c9\3\2\2\2\u02cb\u02cc\3\2\2\2\u02cc\u02ce\3\2\2\2") + buf.write("\u02cd\u02cb\3\2\2\2\u02ce\u02cf\7$\2\2\u02cfx\3\2\2\2") + buf.write("\u02d0\u02d1\7p\2\2\u02d1\u02d2\7w\2\2\u02d2\u02d3\7n") + buf.write("\2\2\u02d3\u02d4\7n\2\2\u02d4z\3\2\2\2\u02d5\u02d6\7*") + buf.write("\2\2\u02d6|\3\2\2\2\u02d7\u02d8\7+\2\2\u02d8~\3\2\2\2") + buf.write("\u02d9\u02da\7}\2\2\u02da\u0080\3\2\2\2\u02db\u02dc\7") + buf.write("\177\2\2\u02dc\u0082\3\2\2\2\u02dd\u02de\7]\2\2\u02de") + buf.write("\u0084\3\2\2\2\u02df\u02e0\7_\2\2\u02e0\u0086\3\2\2\2") + buf.write("\u02e1\u02e2\7=\2\2\u02e2\u0088\3\2\2\2\u02e3\u02e4\7") + buf.write(".\2\2\u02e4\u008a\3\2\2\2\u02e5\u02e6\7\60\2\2\u02e6\u008c") + buf.write("\3\2\2\2\u02e7\u02e8\7?\2\2\u02e8\u008e\3\2\2\2\u02e9") + buf.write("\u02ea\7@\2\2\u02ea\u0090\3\2\2\2\u02eb\u02ec\7>\2\2\u02ec") + buf.write("\u0092\3\2\2\2\u02ed\u02ee\7#\2\2\u02ee\u0094\3\2\2\2") + buf.write("\u02ef\u02f0\7\u0080\2\2\u02f0\u0096\3\2\2\2\u02f1\u02f2") + buf.write("\7A\2\2\u02f2\u0098\3\2\2\2\u02f3\u02f4\7<\2\2\u02f4\u009a") + buf.write("\3\2\2\2\u02f5\u02f6\7?\2\2\u02f6\u02f7\7?\2\2\u02f7\u009c") + buf.write("\3\2\2\2\u02f8\u02f9\7>\2\2\u02f9\u02fa\7?\2\2\u02fa\u009e") + buf.write("\3\2\2\2\u02fb\u02fc\7@\2\2\u02fc\u02fd\7?\2\2\u02fd\u00a0") + buf.write("\3\2\2\2\u02fe\u02ff\7#\2\2\u02ff\u0300\7?\2\2\u0300\u00a2") + buf.write("\3\2\2\2\u0301\u0302\7(\2\2\u0302\u0303\7(\2\2\u0303\u00a4") + buf.write("\3\2\2\2\u0304\u0305\7~\2\2\u0305\u0306\7~\2\2\u0306\u00a6") + buf.write("\3\2\2\2\u0307\u0308\7-\2\2\u0308\u0309\7-\2\2\u0309\u00a8") + buf.write("\3\2\2\2\u030a\u030b\7/\2\2\u030b\u030c\7/\2\2\u030c\u00aa") + buf.write("\3\2\2\2\u030d\u030e\7-\2\2\u030e\u00ac\3\2\2\2\u030f") + buf.write("\u0310\7/\2\2\u0310\u00ae\3\2\2\2\u0311\u0312\7,\2\2\u0312") + buf.write("\u00b0\3\2\2\2\u0313\u0314\7\61\2\2\u0314\u00b2\3\2\2") + buf.write("\2\u0315\u0316\7(\2\2\u0316\u00b4\3\2\2\2\u0317\u0318") + buf.write("\7~\2\2\u0318\u00b6\3\2\2\2\u0319\u031a\7`\2\2\u031a\u00b8") + buf.write("\3\2\2\2\u031b\u031c\7\'\2\2\u031c\u00ba\3\2\2\2\u031d") + buf.write("\u031e\7-\2\2\u031e\u031f\7?\2\2\u031f\u00bc\3\2\2\2\u0320") + buf.write("\u0321\7/\2\2\u0321\u0322\7?\2\2\u0322\u00be\3\2\2\2\u0323") + buf.write("\u0324\7,\2\2\u0324\u0325\7?\2\2\u0325\u00c0\3\2\2\2\u0326") + buf.write("\u0327\7\61\2\2\u0327\u0328\7?\2\2\u0328\u00c2\3\2\2\2") + buf.write("\u0329\u032a\7(\2\2\u032a\u032b\7?\2\2\u032b\u00c4\3\2") + buf.write("\2\2\u032c\u032d\7~\2\2\u032d\u032e\7?\2\2\u032e\u00c6") + buf.write("\3\2\2\2\u032f\u0330\7`\2\2\u0330\u0331\7?\2\2\u0331\u00c8") + buf.write("\3\2\2\2\u0332\u0333\7\'\2\2\u0333\u0334\7?\2\2\u0334") + buf.write("\u00ca\3\2\2\2\u0335\u0336\7>\2\2\u0336\u0337\7>\2\2\u0337") + buf.write("\u0338\7?\2\2\u0338\u00cc\3\2\2\2\u0339\u033a\7@\2\2\u033a") + buf.write("\u033b\7@\2\2\u033b\u033c\7?\2\2\u033c\u00ce\3\2\2\2\u033d") + buf.write("\u033e\7@\2\2\u033e\u033f\7@\2\2\u033f\u0340\7@\2\2\u0340") + buf.write("\u0341\7?\2\2\u0341\u00d0\3\2\2\2\u0342\u0343\7/\2\2\u0343") + buf.write("\u0344\7@\2\2\u0344\u00d2\3\2\2\2\u0345\u0346\7<\2\2\u0346") + buf.write("\u0347\7<\2\2\u0347\u00d4\3\2\2\2\u0348\u0349\7B\2\2\u0349") + buf.write("\u00d6\3\2\2\2\u034a\u034b\7\60\2\2\u034b\u034c\7\60\2") + buf.write("\2\u034c\u034d\7\60\2\2\u034d\u00d8\3\2\2\2\u034e\u0350") + buf.write("\t\21\2\2\u034f\u034e\3\2\2\2\u0350\u0351\3\2\2\2\u0351") + buf.write("\u034f\3\2\2\2\u0351\u0352\3\2\2\2\u0352\u0353\3\2\2\2") + buf.write("\u0353\u0354\bm\2\2\u0354\u00da\3\2\2\2\u0355\u0356\7") + buf.write("\61\2\2\u0356\u0357\7,\2\2\u0357\u035b\3\2\2\2\u0358\u035a") + buf.write("\13\2\2\2\u0359\u0358\3\2\2\2\u035a\u035d\3\2\2\2\u035b") + buf.write("\u035c\3\2\2\2\u035b\u0359\3\2\2\2\u035c\u035e\3\2\2\2") + buf.write("\u035d\u035b\3\2\2\2\u035e\u035f\7,\2\2\u035f\u0360\7") + buf.write("\61\2\2\u0360\u0361\3\2\2\2\u0361\u0362\bn\2\2\u0362\u00dc") + buf.write("\3\2\2\2\u0363\u0364\7\61\2\2\u0364\u0365\7\61\2\2\u0365") + buf.write("\u0369\3\2\2\2\u0366\u0368\n\22\2\2\u0367\u0366\3\2\2") + buf.write("\2\u0368\u036b\3\2\2\2\u0369\u0367\3\2\2\2\u0369\u036a") + buf.write("\3\2\2\2\u036a\u036c\3\2\2\2\u036b\u0369\3\2\2\2\u036c") + buf.write("\u036d\bo\2\2\u036d\u00de\3\2\2\2\u036e\u0372\5\u00ed") + buf.write("w\2\u036f\u0371\5\u00ebv\2\u0370\u036f\3\2\2\2\u0371\u0374") + buf.write("\3\2\2\2\u0372\u0370\3\2\2\2\u0372\u0373\3\2\2\2\u0373") + buf.write("\u00e0\3\2\2\2\u0374\u0372\3\2\2\2\u0375\u0377\t\23\2") + buf.write("\2\u0376\u0378\t\16\2\2\u0377\u0376\3\2\2\2\u0377\u0378") + buf.write("\3\2\2\2\u0378\u0379\3\2\2\2\u0379\u037a\5\u00e9u\2\u037a") + buf.write("\u00e2\3\2\2\2\u037b\u037c\7^\2\2\u037c\u0391\t\24\2\2") + buf.write("\u037d\u0382\7^\2\2\u037e\u0380\t\25\2\2\u037f\u037e\3") + buf.write("\2\2\2\u037f\u0380\3\2\2\2\u0380\u0381\3\2\2\2\u0381\u0383") + buf.write("\t\7\2\2\u0382\u037f\3\2\2\2\u0382\u0383\3\2\2\2\u0383") + buf.write("\u0384\3\2\2\2\u0384\u0391\t\7\2\2\u0385\u0387\7^\2\2") + buf.write("\u0386\u0388\7w\2\2\u0387\u0386\3\2\2\2\u0388\u0389\3") + buf.write("\2\2\2\u0389\u0387\3\2\2\2\u0389\u038a\3\2\2\2\u038a\u038b") + buf.write("\3\2\2\2\u038b\u038c\5\u00e7t\2\u038c\u038d\5\u00e7t\2") + buf.write("\u038d\u038e\5\u00e7t\2\u038e\u038f\5\u00e7t\2\u038f\u0391") + buf.write("\3\2\2\2\u0390\u037b\3\2\2\2\u0390\u037d\3\2\2\2\u0390") + buf.write("\u0385\3\2\2\2\u0391\u00e4\3\2\2\2\u0392\u039b\5\u00e7") + buf.write("t\2\u0393\u0396\5\u00e7t\2\u0394\u0396\7a\2\2\u0395\u0393") + buf.write("\3\2\2\2\u0395\u0394\3\2\2\2\u0396\u0399\3\2\2\2\u0397") + buf.write("\u0395\3\2\2\2\u0397\u0398\3\2\2\2\u0398\u039a\3\2\2\2") + buf.write("\u0399\u0397\3\2\2\2\u039a\u039c\5\u00e7t\2\u039b\u0397") + buf.write("\3\2\2\2\u039b\u039c\3\2\2\2\u039c\u00e6\3\2\2\2\u039d") + buf.write("\u039e\t\5\2\2\u039e\u00e8\3\2\2\2\u039f\u03a7\t\26\2") + buf.write("\2\u03a0\u03a2\t\27\2\2\u03a1\u03a0\3\2\2\2\u03a2\u03a5") + buf.write("\3\2\2\2\u03a3\u03a1\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4") + buf.write("\u03a6\3\2\2\2\u03a5\u03a3\3\2\2\2\u03a6\u03a8\t\26\2") + buf.write("\2\u03a7\u03a3\3\2\2\2\u03a7\u03a8\3\2\2\2\u03a8\u00ea") + buf.write("\3\2\2\2\u03a9\u03ac\5\u00edw\2\u03aa\u03ac\t\26\2\2\u03ab") + buf.write("\u03a9\3\2\2\2\u03ab\u03aa\3\2\2\2\u03ac\u00ec\3\2\2\2") + buf.write("\u03ad\u03b2\t\30\2\2\u03ae\u03b2\n\31\2\2\u03af\u03b0") + buf.write("\t\32\2\2\u03b0\u03b2\t\33\2\2\u03b1\u03ad\3\2\2\2\u03b1") + buf.write("\u03ae\3\2\2\2\u03b1\u03af\3\2\2\2\u03b2\u00ee\3\2\2\2") + buf.write("\62\2\u0245\u024a\u024d\u024f\u0252\u025a\u025e\u0261") + buf.write("\u0267\u026e\u0272\u0275\u027d\u0281\u0284\u0289\u028d") + buf.write("\u0290\u0293\u0298\u029b\u029d\u02a3\u02a6\u02aa\u02ae") + buf.write("\u02b2\u02bd\u02c2\u02c9\u02cb\u0351\u035b\u0369\u0372") + buf.write("\u0377\u037f\u0382\u0389\u0390\u0395\u0397\u039b\u03a3") + buf.write("\u03a7\u03ab\u03b1\3\2\3\2") + return buf.getvalue() class JavaLexer(Lexer): - grammarFileName = "Java.g" - antlr_version = version_str_to_tuple("3.1.3 Mar 18, 2009 10:09:25") - antlr_version_str = "3.1.3 Mar 18, 2009 10:09:25" - - def __init__(self, input=None, state=None): - if state is None: - state = RecognizerSharedState() - super(JavaLexer, self).__init__(input, state) - - - self.dfa29 = self.DFA29( - self, 29, - eot = self.DFA29_eot, - eof = self.DFA29_eof, - min = self.DFA29_min, - max = self.DFA29_max, - accept = self.DFA29_accept, - special = self.DFA29_special, - transition = self.DFA29_transition - ) - - - - - - - # $ANTLR start "AND" - def mAND(self, ): - - try: - _type = AND - _channel = DEFAULT_CHANNEL - - # Java.g:7:5: ( '&' ) - # Java.g:7:7: '&' - pass - self.match(38) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "AND" - - - - # $ANTLR start "AND_ASSIGN" - def mAND_ASSIGN(self, ): - - try: - _type = AND_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:8:12: ( '&=' ) - # Java.g:8:14: '&=' - pass - self.match("&=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "AND_ASSIGN" - - - - # $ANTLR start "ASSIGN" - def mASSIGN(self, ): - - try: - _type = ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:9:8: ( '=' ) - # Java.g:9:10: '=' - pass - self.match(61) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ASSIGN" - - - - # $ANTLR start "AT" - def mAT(self, ): - - try: - _type = AT - _channel = DEFAULT_CHANNEL - - # Java.g:10:4: ( '@' ) - # Java.g:10:6: '@' - pass - self.match(64) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "AT" - - - - # $ANTLR start "BIT_SHIFT_RIGHT" - def mBIT_SHIFT_RIGHT(self, ): - - try: - _type = BIT_SHIFT_RIGHT - _channel = DEFAULT_CHANNEL - - # Java.g:11:17: ( '>>>' ) - # Java.g:11:19: '>>>' - pass - self.match(">>>") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BIT_SHIFT_RIGHT" - - - - # $ANTLR start "BIT_SHIFT_RIGHT_ASSIGN" - def mBIT_SHIFT_RIGHT_ASSIGN(self, ): - - try: - _type = BIT_SHIFT_RIGHT_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:12:24: ( '>>>=' ) - # Java.g:12:26: '>>>=' - pass - self.match(">>>=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BIT_SHIFT_RIGHT_ASSIGN" - - - - # $ANTLR start "COLON" - def mCOLON(self, ): - - try: - _type = COLON - _channel = DEFAULT_CHANNEL - - # Java.g:13:7: ( ':' ) - # Java.g:13:9: ':' - pass - self.match(58) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "COLON" - - - - # $ANTLR start "COMMA" - def mCOMMA(self, ): - - try: - _type = COMMA - _channel = DEFAULT_CHANNEL - - # Java.g:14:7: ( ',' ) - # Java.g:14:9: ',' - pass - self.match(44) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "COMMA" - - - - # $ANTLR start "DEC" - def mDEC(self, ): - - try: - _type = DEC - _channel = DEFAULT_CHANNEL - - # Java.g:15:5: ( '--' ) - # Java.g:15:7: '--' - pass - self.match("--") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DEC" - - - - # $ANTLR start "DIV" - def mDIV(self, ): - - try: - _type = DIV - _channel = DEFAULT_CHANNEL - - # Java.g:16:5: ( '/' ) - # Java.g:16:7: '/' - pass - self.match(47) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DIV" - - - - # $ANTLR start "DIV_ASSIGN" - def mDIV_ASSIGN(self, ): - - try: - _type = DIV_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:17:12: ( '/=' ) - # Java.g:17:14: '/=' - pass - self.match("/=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DIV_ASSIGN" - - - - # $ANTLR start "DOT" - def mDOT(self, ): - - try: - _type = DOT - _channel = DEFAULT_CHANNEL - - # Java.g:18:5: ( '.' ) - # Java.g:18:7: '.' - pass - self.match(46) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DOT" - - - - # $ANTLR start "DOTSTAR" - def mDOTSTAR(self, ): - - try: - _type = DOTSTAR - _channel = DEFAULT_CHANNEL - - # Java.g:19:9: ( '.*' ) - # Java.g:19:11: '.*' - pass - self.match(".*") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DOTSTAR" - - - - # $ANTLR start "ELLIPSIS" - def mELLIPSIS(self, ): - - try: - _type = ELLIPSIS - _channel = DEFAULT_CHANNEL - - # Java.g:20:10: ( '...' ) - # Java.g:20:12: '...' - pass - self.match("...") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ELLIPSIS" - - - - # $ANTLR start "EQUAL" - def mEQUAL(self, ): - - try: - _type = EQUAL - _channel = DEFAULT_CHANNEL - - # Java.g:21:7: ( '==' ) - # Java.g:21:9: '==' - pass - self.match("==") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "EQUAL" - - - - # $ANTLR start "GREATER_OR_EQUAL" - def mGREATER_OR_EQUAL(self, ): - - try: - _type = GREATER_OR_EQUAL - _channel = DEFAULT_CHANNEL - - # Java.g:22:18: ( '>=' ) - # Java.g:22:20: '>=' - pass - self.match(">=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "GREATER_OR_EQUAL" - - - - # $ANTLR start "GREATER_THAN" - def mGREATER_THAN(self, ): - - try: - _type = GREATER_THAN - _channel = DEFAULT_CHANNEL - - # Java.g:23:14: ( '>' ) - # Java.g:23:16: '>' - pass - self.match(62) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "GREATER_THAN" - - - - # $ANTLR start "INC" - def mINC(self, ): - - try: - _type = INC - _channel = DEFAULT_CHANNEL - - # Java.g:24:5: ( '++' ) - # Java.g:24:7: '++' - pass - self.match("++") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "INC" - - - - # $ANTLR start "LBRACK" - def mLBRACK(self, ): - - try: - _type = LBRACK - _channel = DEFAULT_CHANNEL - - # Java.g:25:8: ( '[' ) - # Java.g:25:10: '[' - pass - self.match(91) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LBRACK" - - - - # $ANTLR start "LCURLY" - def mLCURLY(self, ): - - try: - _type = LCURLY - _channel = DEFAULT_CHANNEL - - # Java.g:26:8: ( '{' ) - # Java.g:26:10: '{' - pass - self.match(123) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LCURLY" - - - - # $ANTLR start "LESS_OR_EQUAL" - def mLESS_OR_EQUAL(self, ): - - try: - _type = LESS_OR_EQUAL - _channel = DEFAULT_CHANNEL - - # Java.g:27:15: ( '<=' ) - # Java.g:27:17: '<=' - pass - self.match("<=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LESS_OR_EQUAL" - - - - # $ANTLR start "LESS_THAN" - def mLESS_THAN(self, ): - - try: - _type = LESS_THAN - _channel = DEFAULT_CHANNEL - - # Java.g:28:11: ( '<' ) - # Java.g:28:13: '<' - pass - self.match(60) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LESS_THAN" - - - - # $ANTLR start "LOGICAL_AND" - def mLOGICAL_AND(self, ): - - try: - _type = LOGICAL_AND - _channel = DEFAULT_CHANNEL - - # Java.g:29:13: ( '&&' ) - # Java.g:29:15: '&&' - pass - self.match("&&") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LOGICAL_AND" - - - - # $ANTLR start "LOGICAL_NOT" - def mLOGICAL_NOT(self, ): - - try: - _type = LOGICAL_NOT - _channel = DEFAULT_CHANNEL - - # Java.g:30:13: ( '!' ) - # Java.g:30:15: '!' - pass - self.match(33) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LOGICAL_NOT" - - - - # $ANTLR start "LOGICAL_OR" - def mLOGICAL_OR(self, ): - - try: - _type = LOGICAL_OR - _channel = DEFAULT_CHANNEL - - # Java.g:31:12: ( '||' ) - # Java.g:31:14: '||' - pass - self.match("||") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LOGICAL_OR" - - - - # $ANTLR start "LPAREN" - def mLPAREN(self, ): - - try: - _type = LPAREN - _channel = DEFAULT_CHANNEL - - # Java.g:32:8: ( '(' ) - # Java.g:32:10: '(' - pass - self.match(40) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LPAREN" - - - - # $ANTLR start "MINUS" - def mMINUS(self, ): - - try: - _type = MINUS - _channel = DEFAULT_CHANNEL - - # Java.g:33:7: ( '-' ) - # Java.g:33:9: '-' - pass - self.match(45) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "MINUS" - - - - # $ANTLR start "MINUS_ASSIGN" - def mMINUS_ASSIGN(self, ): - - try: - _type = MINUS_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:34:14: ( '-=' ) - # Java.g:34:16: '-=' - pass - self.match("-=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "MINUS_ASSIGN" - - - - # $ANTLR start "MOD" - def mMOD(self, ): - - try: - _type = MOD - _channel = DEFAULT_CHANNEL - - # Java.g:35:5: ( '%' ) - # Java.g:35:7: '%' - pass - self.match(37) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "MOD" - - - - # $ANTLR start "MOD_ASSIGN" - def mMOD_ASSIGN(self, ): - - try: - _type = MOD_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:36:12: ( '%=' ) - # Java.g:36:14: '%=' - pass - self.match("%=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "MOD_ASSIGN" - - - - # $ANTLR start "NOT" - def mNOT(self, ): - - try: - _type = NOT - _channel = DEFAULT_CHANNEL - - # Java.g:37:5: ( '~' ) - # Java.g:37:7: '~' - pass - self.match(126) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NOT" - - - - # $ANTLR start "NOT_EQUAL" - def mNOT_EQUAL(self, ): - - try: - _type = NOT_EQUAL - _channel = DEFAULT_CHANNEL - - # Java.g:38:11: ( '!=' ) - # Java.g:38:13: '!=' - pass - self.match("!=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NOT_EQUAL" - - - - # $ANTLR start "OR" - def mOR(self, ): - - try: - _type = OR - _channel = DEFAULT_CHANNEL - - # Java.g:39:4: ( '|' ) - # Java.g:39:6: '|' - pass - self.match(124) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "OR" - - - - # $ANTLR start "OR_ASSIGN" - def mOR_ASSIGN(self, ): - - try: - _type = OR_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:40:11: ( '|=' ) - # Java.g:40:13: '|=' - pass - self.match("|=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "OR_ASSIGN" - - - - # $ANTLR start "PLUS" - def mPLUS(self, ): - - try: - _type = PLUS - _channel = DEFAULT_CHANNEL - - # Java.g:41:6: ( '+' ) - # Java.g:41:8: '+' - pass - self.match(43) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PLUS" - - - - # $ANTLR start "PLUS_ASSIGN" - def mPLUS_ASSIGN(self, ): - - try: - _type = PLUS_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:42:13: ( '+=' ) - # Java.g:42:15: '+=' - pass - self.match("+=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PLUS_ASSIGN" - - - - # $ANTLR start "QUESTION" - def mQUESTION(self, ): - - try: - _type = QUESTION - _channel = DEFAULT_CHANNEL - - # Java.g:43:10: ( '?' ) - # Java.g:43:12: '?' - pass - self.match(63) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "QUESTION" - - - - # $ANTLR start "RBRACK" - def mRBRACK(self, ): - - try: - _type = RBRACK - _channel = DEFAULT_CHANNEL - - # Java.g:44:8: ( ']' ) - # Java.g:44:10: ']' - pass - self.match(93) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "RBRACK" - - - - # $ANTLR start "RCURLY" - def mRCURLY(self, ): - - try: - _type = RCURLY - _channel = DEFAULT_CHANNEL - - # Java.g:45:8: ( '}' ) - # Java.g:45:10: '}' - pass - self.match(125) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "RCURLY" - - - - # $ANTLR start "RPAREN" - def mRPAREN(self, ): - - try: - _type = RPAREN - _channel = DEFAULT_CHANNEL - - # Java.g:46:8: ( ')' ) - # Java.g:46:10: ')' - pass - self.match(41) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "RPAREN" - - - - # $ANTLR start "SEMI" - def mSEMI(self, ): - - try: - _type = SEMI - _channel = DEFAULT_CHANNEL - - # Java.g:47:6: ( ';' ) - # Java.g:47:8: ';' - pass - self.match(59) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SEMI" - - - - # $ANTLR start "SHIFT_LEFT" - def mSHIFT_LEFT(self, ): - - try: - _type = SHIFT_LEFT - _channel = DEFAULT_CHANNEL - - # Java.g:48:12: ( '<<' ) - # Java.g:48:14: '<<' - pass - self.match("<<") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHIFT_LEFT" - - - - # $ANTLR start "SHIFT_LEFT_ASSIGN" - def mSHIFT_LEFT_ASSIGN(self, ): - - try: - _type = SHIFT_LEFT_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:49:19: ( '<<=' ) - # Java.g:49:21: '<<=' - pass - self.match("<<=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHIFT_LEFT_ASSIGN" - - - - # $ANTLR start "SHIFT_RIGHT" - def mSHIFT_RIGHT(self, ): - - try: - _type = SHIFT_RIGHT - _channel = DEFAULT_CHANNEL - - # Java.g:50:13: ( '>>' ) - # Java.g:50:15: '>>' - pass - self.match(">>") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHIFT_RIGHT" - - - - # $ANTLR start "SHIFT_RIGHT_ASSIGN" - def mSHIFT_RIGHT_ASSIGN(self, ): - - try: - _type = SHIFT_RIGHT_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:51:20: ( '>>=' ) - # Java.g:51:22: '>>=' - pass - self.match(">>=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHIFT_RIGHT_ASSIGN" - - - - # $ANTLR start "STAR" - def mSTAR(self, ): - - try: - _type = STAR - _channel = DEFAULT_CHANNEL - - # Java.g:52:6: ( '*' ) - # Java.g:52:8: '*' - pass - self.match(42) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STAR" - - - - # $ANTLR start "STAR_ASSIGN" - def mSTAR_ASSIGN(self, ): - - try: - _type = STAR_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:53:13: ( '*=' ) - # Java.g:53:15: '*=' - pass - self.match("*=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STAR_ASSIGN" - - - - # $ANTLR start "XOR" - def mXOR(self, ): - - try: - _type = XOR - _channel = DEFAULT_CHANNEL - - # Java.g:54:5: ( '^' ) - # Java.g:54:7: '^' - pass - self.match(94) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "XOR" - - - - # $ANTLR start "XOR_ASSIGN" - def mXOR_ASSIGN(self, ): - - try: - _type = XOR_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:55:12: ( '^=' ) - # Java.g:55:14: '^=' - pass - self.match("^=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "XOR_ASSIGN" - - - - # $ANTLR start "ABSTRACT" - def mABSTRACT(self, ): - - try: - _type = ABSTRACT - _channel = DEFAULT_CHANNEL - - # Java.g:56:10: ( 'abstract' ) - # Java.g:56:12: 'abstract' - pass - self.match("abstract") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ABSTRACT" - - - - # $ANTLR start "ASSERT" - def mASSERT(self, ): - - try: - _type = ASSERT - _channel = DEFAULT_CHANNEL - - # Java.g:57:8: ( 'assert' ) - # Java.g:57:10: 'assert' - pass - self.match("assert") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ASSERT" - - - - # $ANTLR start "BOOLEAN" - def mBOOLEAN(self, ): - - try: - _type = BOOLEAN - _channel = DEFAULT_CHANNEL - - # Java.g:58:9: ( 'boolean' ) - # Java.g:58:11: 'boolean' - pass - self.match("boolean") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BOOLEAN" - - - - # $ANTLR start "BREAK" - def mBREAK(self, ): - - try: - _type = BREAK - _channel = DEFAULT_CHANNEL - - # Java.g:59:7: ( 'break' ) - # Java.g:59:9: 'break' - pass - self.match("break") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BREAK" - - - - # $ANTLR start "BYTE" - def mBYTE(self, ): - - try: - _type = BYTE - _channel = DEFAULT_CHANNEL - - # Java.g:60:6: ( 'byte' ) - # Java.g:60:8: 'byte' - pass - self.match("byte") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BYTE" - - - - # $ANTLR start "CASE" - def mCASE(self, ): - - try: - _type = CASE - _channel = DEFAULT_CHANNEL - - # Java.g:61:6: ( 'case' ) - # Java.g:61:8: 'case' - pass - self.match("case") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CASE" - - - - # $ANTLR start "CATCH" - def mCATCH(self, ): - - try: - _type = CATCH - _channel = DEFAULT_CHANNEL - - # Java.g:62:7: ( 'catch' ) - # Java.g:62:9: 'catch' - pass - self.match("catch") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CATCH" - - - - # $ANTLR start "CHAR" - def mCHAR(self, ): - - try: - _type = CHAR - _channel = DEFAULT_CHANNEL - - # Java.g:63:6: ( 'char' ) - # Java.g:63:8: 'char' - pass - self.match("char") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CHAR" - - - - # $ANTLR start "CLASS" - def mCLASS(self, ): - - try: - _type = CLASS - _channel = DEFAULT_CHANNEL - - # Java.g:64:7: ( 'class' ) - # Java.g:64:9: 'class' - pass - self.match("class") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CLASS" - - - - # $ANTLR start "CONTINUE" - def mCONTINUE(self, ): - - try: - _type = CONTINUE - _channel = DEFAULT_CHANNEL - - # Java.g:65:10: ( 'continue' ) - # Java.g:65:12: 'continue' - pass - self.match("continue") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CONTINUE" - - - - # $ANTLR start "DEFAULT" - def mDEFAULT(self, ): - - try: - _type = DEFAULT - _channel = DEFAULT_CHANNEL - - # Java.g:66:9: ( 'default' ) - # Java.g:66:11: 'default' - pass - self.match("default") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DEFAULT" - - - - # $ANTLR start "DO" - def mDO(self, ): - - try: - _type = DO - _channel = DEFAULT_CHANNEL - - # Java.g:67:4: ( 'do' ) - # Java.g:67:6: 'do' - pass - self.match("do") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DO" - - - - # $ANTLR start "DOUBLE" - def mDOUBLE(self, ): - - try: - _type = DOUBLE - _channel = DEFAULT_CHANNEL - - # Java.g:68:8: ( 'double' ) - # Java.g:68:10: 'double' - pass - self.match("double") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DOUBLE" - - - - # $ANTLR start "ELSE" - def mELSE(self, ): - - try: - _type = ELSE - _channel = DEFAULT_CHANNEL - - # Java.g:69:6: ( 'else' ) - # Java.g:69:8: 'else' - pass - self.match("else") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ELSE" - - - - # $ANTLR start "ENUM" - def mENUM(self, ): - - try: - _type = ENUM - _channel = DEFAULT_CHANNEL - - # Java.g:70:6: ( 'enum' ) - # Java.g:70:8: 'enum' - pass - self.match("enum") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ENUM" - - - - # $ANTLR start "EXTENDS" - def mEXTENDS(self, ): - - try: - _type = EXTENDS - _channel = DEFAULT_CHANNEL - - # Java.g:71:9: ( 'extends' ) - # Java.g:71:11: 'extends' - pass - self.match("extends") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "EXTENDS" - - - - # $ANTLR start "FALSE" - def mFALSE(self, ): - - try: - _type = FALSE - _channel = DEFAULT_CHANNEL - - # Java.g:72:7: ( 'false' ) - # Java.g:72:9: 'false' - pass - self.match("false") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FALSE" - - - - # $ANTLR start "FINAL" - def mFINAL(self, ): - - try: - _type = FINAL - _channel = DEFAULT_CHANNEL - - # Java.g:73:7: ( 'final' ) - # Java.g:73:9: 'final' - pass - self.match("final") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FINAL" - - - - # $ANTLR start "FINALLY" - def mFINALLY(self, ): - - try: - _type = FINALLY - _channel = DEFAULT_CHANNEL - - # Java.g:74:9: ( 'finally' ) - # Java.g:74:11: 'finally' - pass - self.match("finally") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FINALLY" - - - - # $ANTLR start "FLOAT" - def mFLOAT(self, ): - - try: - _type = FLOAT - _channel = DEFAULT_CHANNEL - - # Java.g:75:7: ( 'float' ) - # Java.g:75:9: 'float' - pass - self.match("float") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FLOAT" - - - - # $ANTLR start "FOR" - def mFOR(self, ): - - try: - _type = FOR - _channel = DEFAULT_CHANNEL - - # Java.g:76:5: ( 'for' ) - # Java.g:76:7: 'for' - pass - self.match("for") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FOR" - - - - # $ANTLR start "IF" - def mIF(self, ): - - try: - _type = IF - _channel = DEFAULT_CHANNEL - - # Java.g:77:4: ( 'if' ) - # Java.g:77:6: 'if' - pass - self.match("if") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "IF" - - - - # $ANTLR start "IMPLEMENTS" - def mIMPLEMENTS(self, ): - - try: - _type = IMPLEMENTS - _channel = DEFAULT_CHANNEL - - # Java.g:78:12: ( 'implements' ) - # Java.g:78:14: 'implements' - pass - self.match("implements") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "IMPLEMENTS" - - - - # $ANTLR start "INSTANCEOF" - def mINSTANCEOF(self, ): - - try: - _type = INSTANCEOF - _channel = DEFAULT_CHANNEL - - # Java.g:79:12: ( 'instanceof' ) - # Java.g:79:14: 'instanceof' - pass - self.match("instanceof") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "INSTANCEOF" - - - - # $ANTLR start "INTERFACE" - def mINTERFACE(self, ): - - try: - _type = INTERFACE - _channel = DEFAULT_CHANNEL - - # Java.g:80:11: ( 'interface' ) - # Java.g:80:13: 'interface' - pass - self.match("interface") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "INTERFACE" - - - - # $ANTLR start "IMPORT" - def mIMPORT(self, ): - - try: - _type = IMPORT - _channel = DEFAULT_CHANNEL - - # Java.g:81:8: ( 'import' ) - # Java.g:81:10: 'import' - pass - self.match("import") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "IMPORT" - - - - # $ANTLR start "INT" - def mINT(self, ): - - try: - _type = INT - _channel = DEFAULT_CHANNEL - - # Java.g:82:5: ( 'int' ) - # Java.g:82:7: 'int' - pass - self.match("int") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "INT" - - - - # $ANTLR start "LONG" - def mLONG(self, ): - - try: - _type = LONG - _channel = DEFAULT_CHANNEL - - # Java.g:83:6: ( 'long' ) - # Java.g:83:8: 'long' - pass - self.match("long") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LONG" - - - - # $ANTLR start "NATIVE" - def mNATIVE(self, ): - - try: - _type = NATIVE - _channel = DEFAULT_CHANNEL - - # Java.g:84:8: ( 'native' ) - # Java.g:84:10: 'native' - pass - self.match("native") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NATIVE" - - - - # $ANTLR start "NEW" - def mNEW(self, ): - - try: - _type = NEW - _channel = DEFAULT_CHANNEL - - # Java.g:85:5: ( 'new' ) - # Java.g:85:7: 'new' - pass - self.match("new") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NEW" - - - - # $ANTLR start "NULL" - def mNULL(self, ): - - try: - _type = NULL - _channel = DEFAULT_CHANNEL - - # Java.g:86:6: ( 'null' ) - # Java.g:86:8: 'null' - pass - self.match("null") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NULL" - - - - # $ANTLR start "PACKAGE" - def mPACKAGE(self, ): - - try: - _type = PACKAGE - _channel = DEFAULT_CHANNEL - - # Java.g:87:9: ( 'package' ) - # Java.g:87:11: 'package' - pass - self.match("package") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PACKAGE" - - - - # $ANTLR start "PRIVATE" - def mPRIVATE(self, ): - - try: - _type = PRIVATE - _channel = DEFAULT_CHANNEL - - # Java.g:88:9: ( 'private' ) - # Java.g:88:11: 'private' - pass - self.match("private") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PRIVATE" - - - - # $ANTLR start "PROTECTED" - def mPROTECTED(self, ): - - try: - _type = PROTECTED - _channel = DEFAULT_CHANNEL - - # Java.g:89:11: ( 'protected' ) - # Java.g:89:13: 'protected' - pass - self.match("protected") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PROTECTED" - - - - # $ANTLR start "PUBLIC" - def mPUBLIC(self, ): - - try: - _type = PUBLIC - _channel = DEFAULT_CHANNEL - - # Java.g:90:8: ( 'public' ) - # Java.g:90:10: 'public' - pass - self.match("public") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PUBLIC" - - - - # $ANTLR start "RETURN" - def mRETURN(self, ): - - try: - _type = RETURN - _channel = DEFAULT_CHANNEL - - # Java.g:91:8: ( 'return' ) - # Java.g:91:10: 'return' - pass - self.match("return") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "RETURN" - - - - # $ANTLR start "SHORT" - def mSHORT(self, ): - - try: - _type = SHORT - _channel = DEFAULT_CHANNEL - - # Java.g:92:7: ( 'short' ) - # Java.g:92:9: 'short' - pass - self.match("short") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHORT" - - - - # $ANTLR start "STATIC" - def mSTATIC(self, ): - - try: - _type = STATIC - _channel = DEFAULT_CHANNEL - - # Java.g:93:8: ( 'static' ) - # Java.g:93:10: 'static' - pass - self.match("static") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STATIC" - - - - # $ANTLR start "STRICTFP" - def mSTRICTFP(self, ): - - try: - _type = STRICTFP - _channel = DEFAULT_CHANNEL - - # Java.g:94:10: ( 'strictfp' ) - # Java.g:94:12: 'strictfp' - pass - self.match("strictfp") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STRICTFP" - - - - # $ANTLR start "SUPER" - def mSUPER(self, ): - - try: - _type = SUPER - _channel = DEFAULT_CHANNEL - - # Java.g:95:7: ( 'super' ) - # Java.g:95:9: 'super' - pass - self.match("super") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SUPER" - - - - # $ANTLR start "SWITCH" - def mSWITCH(self, ): - - try: - _type = SWITCH - _channel = DEFAULT_CHANNEL - - # Java.g:96:8: ( 'switch' ) - # Java.g:96:10: 'switch' - pass - self.match("switch") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SWITCH" - - - - # $ANTLR start "SYNCHRONIZED" - def mSYNCHRONIZED(self, ): - - try: - _type = SYNCHRONIZED - _channel = DEFAULT_CHANNEL - - # Java.g:97:14: ( 'synchronized' ) - # Java.g:97:16: 'synchronized' - pass - self.match("synchronized") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SYNCHRONIZED" - - - - # $ANTLR start "THIS" - def mTHIS(self, ): - - try: - _type = THIS - _channel = DEFAULT_CHANNEL - - # Java.g:98:6: ( 'this' ) - # Java.g:98:8: 'this' - pass - self.match("this") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "THIS" - - - - # $ANTLR start "THROW" - def mTHROW(self, ): - - try: - _type = THROW - _channel = DEFAULT_CHANNEL - - # Java.g:99:7: ( 'throw' ) - # Java.g:99:9: 'throw' - pass - self.match("throw") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "THROW" - - - - # $ANTLR start "THROWS" - def mTHROWS(self, ): - - try: - _type = THROWS - _channel = DEFAULT_CHANNEL - - # Java.g:100:8: ( 'throws' ) - # Java.g:100:10: 'throws' - pass - self.match("throws") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "THROWS" - - - - # $ANTLR start "TRANSIENT" - def mTRANSIENT(self, ): - - try: - _type = TRANSIENT - _channel = DEFAULT_CHANNEL - - # Java.g:101:11: ( 'transient' ) - # Java.g:101:13: 'transient' - pass - self.match("transient") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "TRANSIENT" - - - - # $ANTLR start "TRUE" - def mTRUE(self, ): - - try: - _type = TRUE - _channel = DEFAULT_CHANNEL - - # Java.g:102:6: ( 'true' ) - # Java.g:102:8: 'true' - pass - self.match("true") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "TRUE" - - - - # $ANTLR start "TRY" - def mTRY(self, ): - - try: - _type = TRY - _channel = DEFAULT_CHANNEL - - # Java.g:103:5: ( 'try' ) - # Java.g:103:7: 'try' - pass - self.match("try") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "TRY" - - - - # $ANTLR start "VOID" - def mVOID(self, ): - - try: - _type = VOID - _channel = DEFAULT_CHANNEL - - # Java.g:104:6: ( 'void' ) - # Java.g:104:8: 'void' - pass - self.match("void") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "VOID" - - - - # $ANTLR start "VOLATILE" - def mVOLATILE(self, ): - - try: - _type = VOLATILE - _channel = DEFAULT_CHANNEL - - # Java.g:105:10: ( 'volatile' ) - # Java.g:105:12: 'volatile' - pass - self.match("volatile") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "VOLATILE" - - - - # $ANTLR start "WHILE" - def mWHILE(self, ): - - try: - _type = WHILE - _channel = DEFAULT_CHANNEL - - # Java.g:106:7: ( 'while' ) - # Java.g:106:9: 'while' - pass - self.match("while") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "WHILE" - - - - # $ANTLR start "HEX_LITERAL" - def mHEX_LITERAL(self, ): - - try: - _type = HEX_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:985:13: ( '0' ( 'x' | 'X' ) ( HEX_DIGIT )+ ( INTEGER_TYPE_SUFFIX )? ) - # Java.g:985:15: '0' ( 'x' | 'X' ) ( HEX_DIGIT )+ ( INTEGER_TYPE_SUFFIX )? - pass - self.match(48) - if self.input.LA(1) == 88 or self.input.LA(1) == 120: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - # Java.g:985:29: ( HEX_DIGIT )+ - cnt1 = 0 - while True: #loop1 - alt1 = 2 - LA1_0 = self.input.LA(1) - - if ((48 <= LA1_0 <= 57) or (65 <= LA1_0 <= 70) or (97 <= LA1_0 <= 102)) : - alt1 = 1 - - - if alt1 == 1: - # Java.g:985:29: HEX_DIGIT - pass - self.mHEX_DIGIT() - - - else: - if cnt1 >= 1: - break #loop1 - - eee = EarlyExitException(1, self.input) - raise eee - - cnt1 += 1 - # Java.g:985:40: ( INTEGER_TYPE_SUFFIX )? - alt2 = 2 - LA2_0 = self.input.LA(1) - - if (LA2_0 == 76 or LA2_0 == 108) : - alt2 = 1 - if alt2 == 1: - # Java.g:985:40: INTEGER_TYPE_SUFFIX - pass - self.mINTEGER_TYPE_SUFFIX() - - - - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "HEX_LITERAL" - - - - # $ANTLR start "DECIMAL_LITERAL" - def mDECIMAL_LITERAL(self, ): - - try: - _type = DECIMAL_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:987:17: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( INTEGER_TYPE_SUFFIX )? ) - # Java.g:987:19: ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( INTEGER_TYPE_SUFFIX )? - pass - # Java.g:987:19: ( '0' | '1' .. '9' ( '0' .. '9' )* ) - alt4 = 2 - LA4_0 = self.input.LA(1) - - if (LA4_0 == 48) : - alt4 = 1 - elif ((49 <= LA4_0 <= 57)) : - alt4 = 2 - else: - nvae = NoViableAltException("", 4, 0, self.input) - - raise nvae - - if alt4 == 1: - # Java.g:987:20: '0' - pass - self.match(48) - - - elif alt4 == 2: - # Java.g:987:26: '1' .. '9' ( '0' .. '9' )* - pass - self.matchRange(49, 57) - # Java.g:987:35: ( '0' .. '9' )* - while True: #loop3 - alt3 = 2 - LA3_0 = self.input.LA(1) - - if ((48 <= LA3_0 <= 57)) : - alt3 = 1 - - - if alt3 == 1: - # Java.g:987:35: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - break #loop3 - - - - # Java.g:987:46: ( INTEGER_TYPE_SUFFIX )? - alt5 = 2 - LA5_0 = self.input.LA(1) - - if (LA5_0 == 76 or LA5_0 == 108) : - alt5 = 1 - if alt5 == 1: - # Java.g:987:46: INTEGER_TYPE_SUFFIX - pass - self.mINTEGER_TYPE_SUFFIX() - - - - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DECIMAL_LITERAL" - - - - # $ANTLR start "OCTAL_LITERAL" - def mOCTAL_LITERAL(self, ): - - try: - _type = OCTAL_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:989:15: ( '0' ( '0' .. '7' )+ ( INTEGER_TYPE_SUFFIX )? ) - # Java.g:989:17: '0' ( '0' .. '7' )+ ( INTEGER_TYPE_SUFFIX )? - pass - self.match(48) - # Java.g:989:21: ( '0' .. '7' )+ - cnt6 = 0 - while True: #loop6 - alt6 = 2 - LA6_0 = self.input.LA(1) - - if ((48 <= LA6_0 <= 55)) : - alt6 = 1 - - - if alt6 == 1: - # Java.g:989:22: '0' .. '7' - pass - self.matchRange(48, 55) - - - else: - if cnt6 >= 1: - break #loop6 - - eee = EarlyExitException(6, self.input) - raise eee - - cnt6 += 1 - # Java.g:989:33: ( INTEGER_TYPE_SUFFIX )? - alt7 = 2 - LA7_0 = self.input.LA(1) - - if (LA7_0 == 76 or LA7_0 == 108) : - alt7 = 1 - if alt7 == 1: - # Java.g:989:33: INTEGER_TYPE_SUFFIX - pass - self.mINTEGER_TYPE_SUFFIX() - - - - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "OCTAL_LITERAL" - - - - # $ANTLR start "HEX_DIGIT" - def mHEX_DIGIT(self, ): - - try: - # Java.g:992:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ) - # Java.g:992:13: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) - pass - if (48 <= self.input.LA(1) <= 57) or (65 <= self.input.LA(1) <= 70) or (97 <= self.input.LA(1) <= 102): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "HEX_DIGIT" - - - - # $ANTLR start "INTEGER_TYPE_SUFFIX" - def mINTEGER_TYPE_SUFFIX(self, ): - - try: - # Java.g:995:21: ( ( 'l' | 'L' ) ) - # Java.g:995:23: ( 'l' | 'L' ) - pass - if self.input.LA(1) == 76 or self.input.LA(1) == 108: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "INTEGER_TYPE_SUFFIX" - - - - # $ANTLR start "FLOATING_POINT_LITERAL" - def mFLOATING_POINT_LITERAL(self, ): - - try: - _type = FLOATING_POINT_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:998:5: ( ( '0' .. '9' )+ ( DOT ( '0' .. '9' )* ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? | EXPONENT ( FLOAT_TYPE_SUFFIX )? | FLOAT_TYPE_SUFFIX ) | DOT ( '0' .. '9' )+ ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? ) - alt17 = 2 - LA17_0 = self.input.LA(1) - - if ((48 <= LA17_0 <= 57)) : - alt17 = 1 - elif (LA17_0 == 46) : - alt17 = 2 - else: - nvae = NoViableAltException("", 17, 0, self.input) - - raise nvae - - if alt17 == 1: - # Java.g:998:9: ( '0' .. '9' )+ ( DOT ( '0' .. '9' )* ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? | EXPONENT ( FLOAT_TYPE_SUFFIX )? | FLOAT_TYPE_SUFFIX ) - pass - # Java.g:998:9: ( '0' .. '9' )+ - cnt8 = 0 - while True: #loop8 - alt8 = 2 - LA8_0 = self.input.LA(1) - - if ((48 <= LA8_0 <= 57)) : - alt8 = 1 - - - if alt8 == 1: - # Java.g:998:10: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - if cnt8 >= 1: - break #loop8 - - eee = EarlyExitException(8, self.input) - raise eee - - cnt8 += 1 - # Java.g:999:9: ( DOT ( '0' .. '9' )* ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? | EXPONENT ( FLOAT_TYPE_SUFFIX )? | FLOAT_TYPE_SUFFIX ) - alt13 = 3 - LA13 = self.input.LA(1) - if LA13 == 46: - alt13 = 1 - elif LA13 == 69 or LA13 == 101: - alt13 = 2 - elif LA13 == 68 or LA13 == 70 or LA13 == 100 or LA13 == 102: - alt13 = 3 - else: - nvae = NoViableAltException("", 13, 0, self.input) - - raise nvae - - if alt13 == 1: - # Java.g:1000:13: DOT ( '0' .. '9' )* ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? - pass - self.mDOT() - # Java.g:1000:17: ( '0' .. '9' )* - while True: #loop9 - alt9 = 2 - LA9_0 = self.input.LA(1) - - if ((48 <= LA9_0 <= 57)) : - alt9 = 1 - - - if alt9 == 1: - # Java.g:1000:18: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - break #loop9 - # Java.g:1000:29: ( EXPONENT )? - alt10 = 2 - LA10_0 = self.input.LA(1) - - if (LA10_0 == 69 or LA10_0 == 101) : - alt10 = 1 - if alt10 == 1: - # Java.g:1000:29: EXPONENT - pass - self.mEXPONENT() - - - - # Java.g:1000:39: ( FLOAT_TYPE_SUFFIX )? - alt11 = 2 - LA11_0 = self.input.LA(1) - - if (LA11_0 == 68 or LA11_0 == 70 or LA11_0 == 100 or LA11_0 == 102) : - alt11 = 1 - if alt11 == 1: - # Java.g:1000:39: FLOAT_TYPE_SUFFIX - pass - self.mFLOAT_TYPE_SUFFIX() - - - - - - elif alt13 == 2: - # Java.g:1001:13: EXPONENT ( FLOAT_TYPE_SUFFIX )? - pass - self.mEXPONENT() - # Java.g:1001:22: ( FLOAT_TYPE_SUFFIX )? - alt12 = 2 - LA12_0 = self.input.LA(1) - - if (LA12_0 == 68 or LA12_0 == 70 or LA12_0 == 100 or LA12_0 == 102) : - alt12 = 1 - if alt12 == 1: - # Java.g:1001:22: FLOAT_TYPE_SUFFIX - pass - self.mFLOAT_TYPE_SUFFIX() - - - - - - elif alt13 == 3: - # Java.g:1002:13: FLOAT_TYPE_SUFFIX - pass - self.mFLOAT_TYPE_SUFFIX() - - - - - - elif alt17 == 2: - # Java.g:1004:9: DOT ( '0' .. '9' )+ ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? - pass - self.mDOT() - # Java.g:1004:13: ( '0' .. '9' )+ - cnt14 = 0 - while True: #loop14 - alt14 = 2 - LA14_0 = self.input.LA(1) - - if ((48 <= LA14_0 <= 57)) : - alt14 = 1 - - - if alt14 == 1: - # Java.g:1004:14: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - if cnt14 >= 1: - break #loop14 - - eee = EarlyExitException(14, self.input) - raise eee - - cnt14 += 1 - # Java.g:1004:25: ( EXPONENT )? - alt15 = 2 - LA15_0 = self.input.LA(1) - - if (LA15_0 == 69 or LA15_0 == 101) : - alt15 = 1 - if alt15 == 1: - # Java.g:1004:25: EXPONENT - pass - self.mEXPONENT() - - - - # Java.g:1004:35: ( FLOAT_TYPE_SUFFIX )? - alt16 = 2 - LA16_0 = self.input.LA(1) - - if (LA16_0 == 68 or LA16_0 == 70 or LA16_0 == 100 or LA16_0 == 102) : - alt16 = 1 - if alt16 == 1: - # Java.g:1004:35: FLOAT_TYPE_SUFFIX - pass - self.mFLOAT_TYPE_SUFFIX() - - - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FLOATING_POINT_LITERAL" - - - - # $ANTLR start "EXPONENT" - def mEXPONENT(self, ): - - try: - # Java.g:1008:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ ) - # Java.g:1008:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ - pass - if self.input.LA(1) == 69 or self.input.LA(1) == 101: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - # Java.g:1008:22: ( '+' | '-' )? - alt18 = 2 - LA18_0 = self.input.LA(1) - - if (LA18_0 == 43 or LA18_0 == 45) : - alt18 = 1 - if alt18 == 1: - # Java.g: - pass - if self.input.LA(1) == 43 or self.input.LA(1) == 45: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - # Java.g:1008:33: ( '0' .. '9' )+ - cnt19 = 0 - while True: #loop19 - alt19 = 2 - LA19_0 = self.input.LA(1) - - if ((48 <= LA19_0 <= 57)) : - alt19 = 1 - - - if alt19 == 1: - # Java.g:1008:34: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - if cnt19 >= 1: - break #loop19 - - eee = EarlyExitException(19, self.input) - raise eee - - cnt19 += 1 - - - - - finally: - - pass - - # $ANTLR end "EXPONENT" - - - - # $ANTLR start "FLOAT_TYPE_SUFFIX" - def mFLOAT_TYPE_SUFFIX(self, ): - - try: - # Java.g:1011:19: ( ( 'f' | 'F' | 'd' | 'D' ) ) - # Java.g:1011:21: ( 'f' | 'F' | 'd' | 'D' ) - pass - if self.input.LA(1) == 68 or self.input.LA(1) == 70 or self.input.LA(1) == 100 or self.input.LA(1) == 102: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "FLOAT_TYPE_SUFFIX" - - - - # $ANTLR start "CHARACTER_LITERAL" - def mCHARACTER_LITERAL(self, ): - - try: - _type = CHARACTER_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:1014:5: ( '\\'' ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) ) '\\'' ) - # Java.g:1014:9: '\\'' ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) ) '\\'' - pass - self.match(39) - # Java.g:1014:14: ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) ) - alt20 = 2 - LA20_0 = self.input.LA(1) - - if (LA20_0 == 92) : - alt20 = 1 - elif ((0 <= LA20_0 <= 38) or (40 <= LA20_0 <= 91) or (93 <= LA20_0 <= 65535)) : - alt20 = 2 - else: - nvae = NoViableAltException("", 20, 0, self.input) - - raise nvae - - if alt20 == 1: - # Java.g:1014:16: ESCAPE_SEQUENCE - pass - self.mESCAPE_SEQUENCE() - - - elif alt20 == 2: - # Java.g:1014:34: ~ ( '\\'' | '\\\\' ) - pass - if (0 <= self.input.LA(1) <= 38) or (40 <= self.input.LA(1) <= 91) or (93 <= self.input.LA(1) <= 65535): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - self.match(39) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CHARACTER_LITERAL" - - - - # $ANTLR start "STRING_LITERAL" - def mSTRING_LITERAL(self, ): - - try: - _type = STRING_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:1018:5: ( '\"' ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )* '\"' ) - # Java.g:1018:8: '\"' ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )* '\"' - pass - self.match(34) - # Java.g:1018:12: ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )* - while True: #loop21 - alt21 = 3 - LA21_0 = self.input.LA(1) - - if (LA21_0 == 92) : - alt21 = 1 - elif ((0 <= LA21_0 <= 33) or (35 <= LA21_0 <= 91) or (93 <= LA21_0 <= 65535)) : - alt21 = 2 - - - if alt21 == 1: - # Java.g:1018:14: ESCAPE_SEQUENCE - pass - self.mESCAPE_SEQUENCE() - - - elif alt21 == 2: - # Java.g:1018:32: ~ ( '\\\\' | '\"' ) - pass - if (0 <= self.input.LA(1) <= 33) or (35 <= self.input.LA(1) <= 91) or (93 <= self.input.LA(1) <= 65535): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - else: - break #loop21 - self.match(34) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STRING_LITERAL" - - - - # $ANTLR start "ESCAPE_SEQUENCE" - def mESCAPE_SEQUENCE(self, ): - - try: - # Java.g:1023:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESCAPE | OCTAL_ESCAPE ) - alt22 = 3 - LA22_0 = self.input.LA(1) - - if (LA22_0 == 92) : - LA22 = self.input.LA(2) - if LA22 == 34 or LA22 == 39 or LA22 == 92 or LA22 == 98 or LA22 == 102 or LA22 == 110 or LA22 == 114 or LA22 == 116: - alt22 = 1 - elif LA22 == 117: - alt22 = 2 - elif LA22 == 48 or LA22 == 49 or LA22 == 50 or LA22 == 51 or LA22 == 52 or LA22 == 53 or LA22 == 54 or LA22 == 55: - alt22 = 3 - else: - nvae = NoViableAltException("", 22, 1, self.input) - - raise nvae - - else: - nvae = NoViableAltException("", 22, 0, self.input) - - raise nvae - - if alt22 == 1: - # Java.g:1023:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) - pass - self.match(92) - if self.input.LA(1) == 34 or self.input.LA(1) == 39 or self.input.LA(1) == 92 or self.input.LA(1) == 98 or self.input.LA(1) == 102 or self.input.LA(1) == 110 or self.input.LA(1) == 114 or self.input.LA(1) == 116: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - elif alt22 == 2: - # Java.g:1024:9: UNICODE_ESCAPE - pass - self.mUNICODE_ESCAPE() - - - elif alt22 == 3: - # Java.g:1025:9: OCTAL_ESCAPE - pass - self.mOCTAL_ESCAPE() - - - - finally: - - pass - - # $ANTLR end "ESCAPE_SEQUENCE" - - - - # $ANTLR start "OCTAL_ESCAPE" - def mOCTAL_ESCAPE(self, ): - - try: - # Java.g:1030:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ) - alt23 = 3 - LA23_0 = self.input.LA(1) - - if (LA23_0 == 92) : - LA23_1 = self.input.LA(2) - - if ((48 <= LA23_1 <= 51)) : - LA23_2 = self.input.LA(3) - - if ((48 <= LA23_2 <= 55)) : - LA23_4 = self.input.LA(4) - - if ((48 <= LA23_4 <= 55)) : - alt23 = 1 - else: - alt23 = 2 - else: - alt23 = 3 - elif ((52 <= LA23_1 <= 55)) : - LA23_3 = self.input.LA(3) - - if ((48 <= LA23_3 <= 55)) : - alt23 = 2 - else: - alt23 = 3 - else: - nvae = NoViableAltException("", 23, 1, self.input) - - raise nvae - - else: - nvae = NoViableAltException("", 23, 0, self.input) - - raise nvae - - if alt23 == 1: - # Java.g:1030:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) - pass - self.match(92) - # Java.g:1030:14: ( '0' .. '3' ) - # Java.g:1030:15: '0' .. '3' - pass - self.matchRange(48, 51) - - - - # Java.g:1030:25: ( '0' .. '7' ) - # Java.g:1030:26: '0' .. '7' - pass - self.matchRange(48, 55) - - - - # Java.g:1030:36: ( '0' .. '7' ) - # Java.g:1030:37: '0' .. '7' - pass - self.matchRange(48, 55) - - - - - - elif alt23 == 2: - # Java.g:1031:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) - pass - self.match(92) - # Java.g:1031:14: ( '0' .. '7' ) - # Java.g:1031:15: '0' .. '7' - pass - self.matchRange(48, 55) - - - - # Java.g:1031:25: ( '0' .. '7' ) - # Java.g:1031:26: '0' .. '7' - pass - self.matchRange(48, 55) - - - - - - elif alt23 == 3: - # Java.g:1032:9: '\\\\' ( '0' .. '7' ) - pass - self.match(92) - # Java.g:1032:14: ( '0' .. '7' ) - # Java.g:1032:15: '0' .. '7' - pass - self.matchRange(48, 55) - - - - - - - finally: - - pass - - # $ANTLR end "OCTAL_ESCAPE" - - - - # $ANTLR start "UNICODE_ESCAPE" - def mUNICODE_ESCAPE(self, ): - - try: - # Java.g:1037:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT ) - # Java.g:1037:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT - pass - self.match(92) - self.match(117) - self.mHEX_DIGIT() - self.mHEX_DIGIT() - self.mHEX_DIGIT() - self.mHEX_DIGIT() - - - - - finally: - - pass - - # $ANTLR end "UNICODE_ESCAPE" - - - - # $ANTLR start "IDENT" - def mIDENT(self, ): - - try: - _type = IDENT - _channel = DEFAULT_CHANNEL - - # Java.g:1041:5: ( JAVA_ID_START ( JAVA_ID_PART )* ) - # Java.g:1041:9: JAVA_ID_START ( JAVA_ID_PART )* - pass - self.mJAVA_ID_START() - # Java.g:1041:23: ( JAVA_ID_PART )* - while True: #loop24 - alt24 = 2 - LA24_0 = self.input.LA(1) - - if (LA24_0 == 36 or (48 <= LA24_0 <= 57) or (65 <= LA24_0 <= 90) or LA24_0 == 95 or (97 <= LA24_0 <= 122) or (192 <= LA24_0 <= 214) or (216 <= LA24_0 <= 246) or (248 <= LA24_0 <= 8191) or (12352 <= LA24_0 <= 12687) or (13056 <= LA24_0 <= 13183) or (13312 <= LA24_0 <= 15661) or (19968 <= LA24_0 <= 40959) or (63744 <= LA24_0 <= 64255)) : - alt24 = 1 - - - if alt24 == 1: - # Java.g:1041:24: JAVA_ID_PART - pass - self.mJAVA_ID_PART() - - - else: - break #loop24 - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "IDENT" - - - - # $ANTLR start "JAVA_ID_START" - def mJAVA_ID_START(self, ): - - try: - # Java.g:1046:5: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' ) - # Java.g: - pass - if self.input.LA(1) == 36 or (65 <= self.input.LA(1) <= 90) or self.input.LA(1) == 95 or (97 <= self.input.LA(1) <= 122) or (192 <= self.input.LA(1) <= 214) or (216 <= self.input.LA(1) <= 246) or (248 <= self.input.LA(1) <= 8191) or (12352 <= self.input.LA(1) <= 12687) or (13056 <= self.input.LA(1) <= 13183) or (13312 <= self.input.LA(1) <= 15661) or (19968 <= self.input.LA(1) <= 40959) or (63744 <= self.input.LA(1) <= 64255): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "JAVA_ID_START" - - - - # $ANTLR start "JAVA_ID_PART" - def mJAVA_ID_PART(self, ): - - try: - # Java.g:1063:5: ( JAVA_ID_START | '\\u0030' .. '\\u0039' ) - # Java.g: - pass - if self.input.LA(1) == 36 or (48 <= self.input.LA(1) <= 57) or (65 <= self.input.LA(1) <= 90) or self.input.LA(1) == 95 or (97 <= self.input.LA(1) <= 122) or (192 <= self.input.LA(1) <= 214) or (216 <= self.input.LA(1) <= 246) or (248 <= self.input.LA(1) <= 8191) or (12352 <= self.input.LA(1) <= 12687) or (13056 <= self.input.LA(1) <= 13183) or (13312 <= self.input.LA(1) <= 15661) or (19968 <= self.input.LA(1) <= 40959) or (63744 <= self.input.LA(1) <= 64255): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "JAVA_ID_PART" - - - - # $ANTLR start "WS" - def mWS(self, ): - - try: - _type = WS - _channel = DEFAULT_CHANNEL - - # Java.g:1067:5: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) ) - # Java.g:1067:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) - pass - if (9 <= self.input.LA(1) <= 10) or (12 <= self.input.LA(1) <= 13) or self.input.LA(1) == 32: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - #action start - - _channel = HIDDEN - - #action end - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "WS" - - - - # $ANTLR start "COMMENT" - def mCOMMENT(self, ): - - try: - _type = COMMENT - _channel = DEFAULT_CHANNEL - - # Java.g:1074:5: ( '/*' ~ ( '*' ) ( options {greedy=false; } : . )* '*/' ) - # Java.g:1074:9: '/*' ~ ( '*' ) ( options {greedy=false; } : . )* '*/' - pass - self.match("/*") - if (0 <= self.input.LA(1) <= 41) or (43 <= self.input.LA(1) <= 65535): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - # Java.g:1074:21: ( options {greedy=false; } : . )* - while True: #loop25 - alt25 = 2 - LA25_0 = self.input.LA(1) - - if (LA25_0 == 42) : - LA25_1 = self.input.LA(2) - - if (LA25_1 == 47) : - alt25 = 2 - elif ((0 <= LA25_1 <= 46) or (48 <= LA25_1 <= 65535)) : - alt25 = 1 - - - elif ((0 <= LA25_0 <= 41) or (43 <= LA25_0 <= 65535)) : - alt25 = 1 - - - if alt25 == 1: - # Java.g:1074:49: . - pass - self.matchAny() - - - else: - break #loop25 - self.match("*/") - #action start - - _channel = HIDDEN - - #action end - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "COMMENT" - - - - # $ANTLR start "LINE_COMMENT" - def mLINE_COMMENT(self, ): - - try: - _type = LINE_COMMENT - _channel = DEFAULT_CHANNEL - - # Java.g:1081:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' ) - # Java.g:1081:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' - pass - self.match("//") - # Java.g:1081:12: (~ ( '\\n' | '\\r' ) )* - while True: #loop26 - alt26 = 2 - LA26_0 = self.input.LA(1) - - if ((0 <= LA26_0 <= 9) or (11 <= LA26_0 <= 12) or (14 <= LA26_0 <= 65535)) : - alt26 = 1 - - - if alt26 == 1: - # Java.g:1081:12: ~ ( '\\n' | '\\r' ) - pass - if (0 <= self.input.LA(1) <= 9) or (11 <= self.input.LA(1) <= 12) or (14 <= self.input.LA(1) <= 65535): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - else: - break #loop26 - # Java.g:1081:26: ( '\\r' )? - alt27 = 2 - LA27_0 = self.input.LA(1) - - if (LA27_0 == 13) : - alt27 = 1 - if alt27 == 1: - # Java.g:1081:26: '\\r' - pass - self.match(13) - - - - self.match(10) - #action start - - _channel = HIDDEN - - #action end - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LINE_COMMENT" - - - - # $ANTLR start "JAVADOC_COMMENT" - def mJAVADOC_COMMENT(self, ): - - try: - _type = JAVADOC_COMMENT - _channel = DEFAULT_CHANNEL - - # Java.g:1088:5: ( '/**' ( options {greedy=false; } : . )* '*/' ) - # Java.g:1088:9: '/**' ( options {greedy=false; } : . )* '*/' - pass - self.match("/**") - # Java.g:1088:15: ( options {greedy=false; } : . )* - while True: #loop28 - alt28 = 2 - LA28_0 = self.input.LA(1) - - if (LA28_0 == 42) : - LA28_1 = self.input.LA(2) - - if (LA28_1 == 47) : - alt28 = 2 - elif ((0 <= LA28_1 <= 46) or (48 <= LA28_1 <= 65535)) : - alt28 = 1 - - - elif ((0 <= LA28_0 <= 41) or (43 <= LA28_0 <= 65535)) : - alt28 = 1 - - - if alt28 == 1: - # Java.g:1088:43: . - pass - self.matchAny() - - - else: - break #loop28 - self.match("*/") - #action start - - _channel = HIDDEN - - #action end - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "JAVADOC_COMMENT" - - - - def mTokens(self): - # Java.g:1:8: ( AND | AND_ASSIGN | ASSIGN | AT | BIT_SHIFT_RIGHT | BIT_SHIFT_RIGHT_ASSIGN | COLON | COMMA | DEC | DIV | DIV_ASSIGN | DOT | DOTSTAR | ELLIPSIS | EQUAL | GREATER_OR_EQUAL | GREATER_THAN | INC | LBRACK | LCURLY | LESS_OR_EQUAL | LESS_THAN | LOGICAL_AND | LOGICAL_NOT | LOGICAL_OR | LPAREN | MINUS | MINUS_ASSIGN | MOD | MOD_ASSIGN | NOT | NOT_EQUAL | OR | OR_ASSIGN | PLUS | PLUS_ASSIGN | QUESTION | RBRACK | RCURLY | RPAREN | SEMI | SHIFT_LEFT | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT | SHIFT_RIGHT_ASSIGN | STAR | STAR_ASSIGN | XOR | XOR_ASSIGN | ABSTRACT | ASSERT | BOOLEAN | BREAK | BYTE | CASE | CATCH | CHAR | CLASS | CONTINUE | DEFAULT | DO | DOUBLE | ELSE | ENUM | EXTENDS | FALSE | FINAL | FINALLY | FLOAT | FOR | IF | IMPLEMENTS | INSTANCEOF | INTERFACE | IMPORT | INT | LONG | NATIVE | NEW | NULL | PACKAGE | PRIVATE | PROTECTED | PUBLIC | RETURN | SHORT | STATIC | STRICTFP | SUPER | SWITCH | SYNCHRONIZED | THIS | THROW | THROWS | TRANSIENT | TRUE | TRY | VOID | VOLATILE | WHILE | HEX_LITERAL | DECIMAL_LITERAL | OCTAL_LITERAL | FLOATING_POINT_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | IDENT | WS | COMMENT | LINE_COMMENT | JAVADOC_COMMENT ) - alt29 = 111 - alt29 = self.dfa29.predict(self.input) - if alt29 == 1: - # Java.g:1:10: AND - pass - self.mAND() - - - elif alt29 == 2: - # Java.g:1:14: AND_ASSIGN - pass - self.mAND_ASSIGN() - - - elif alt29 == 3: - # Java.g:1:25: ASSIGN - pass - self.mASSIGN() - - - elif alt29 == 4: - # Java.g:1:32: AT - pass - self.mAT() - - - elif alt29 == 5: - # Java.g:1:35: BIT_SHIFT_RIGHT - pass - self.mBIT_SHIFT_RIGHT() - - - elif alt29 == 6: - # Java.g:1:51: BIT_SHIFT_RIGHT_ASSIGN - pass - self.mBIT_SHIFT_RIGHT_ASSIGN() - - - elif alt29 == 7: - # Java.g:1:74: COLON - pass - self.mCOLON() - - - elif alt29 == 8: - # Java.g:1:80: COMMA - pass - self.mCOMMA() - - - elif alt29 == 9: - # Java.g:1:86: DEC - pass - self.mDEC() - - - elif alt29 == 10: - # Java.g:1:90: DIV - pass - self.mDIV() - - - elif alt29 == 11: - # Java.g:1:94: DIV_ASSIGN - pass - self.mDIV_ASSIGN() - - - elif alt29 == 12: - # Java.g:1:105: DOT - pass - self.mDOT() - - - elif alt29 == 13: - # Java.g:1:109: DOTSTAR - pass - self.mDOTSTAR() - - - elif alt29 == 14: - # Java.g:1:117: ELLIPSIS - pass - self.mELLIPSIS() - - - elif alt29 == 15: - # Java.g:1:126: EQUAL - pass - self.mEQUAL() - - - elif alt29 == 16: - # Java.g:1:132: GREATER_OR_EQUAL - pass - self.mGREATER_OR_EQUAL() - - - elif alt29 == 17: - # Java.g:1:149: GREATER_THAN - pass - self.mGREATER_THAN() - - - elif alt29 == 18: - # Java.g:1:162: INC - pass - self.mINC() - - - elif alt29 == 19: - # Java.g:1:166: LBRACK - pass - self.mLBRACK() - - - elif alt29 == 20: - # Java.g:1:173: LCURLY - pass - self.mLCURLY() - - - elif alt29 == 21: - # Java.g:1:180: LESS_OR_EQUAL - pass - self.mLESS_OR_EQUAL() - - - elif alt29 == 22: - # Java.g:1:194: LESS_THAN - pass - self.mLESS_THAN() - - - elif alt29 == 23: - # Java.g:1:204: LOGICAL_AND - pass - self.mLOGICAL_AND() - - - elif alt29 == 24: - # Java.g:1:216: LOGICAL_NOT - pass - self.mLOGICAL_NOT() - - - elif alt29 == 25: - # Java.g:1:228: LOGICAL_OR - pass - self.mLOGICAL_OR() - - - elif alt29 == 26: - # Java.g:1:239: LPAREN - pass - self.mLPAREN() - - - elif alt29 == 27: - # Java.g:1:246: MINUS - pass - self.mMINUS() - - - elif alt29 == 28: - # Java.g:1:252: MINUS_ASSIGN - pass - self.mMINUS_ASSIGN() - - - elif alt29 == 29: - # Java.g:1:265: MOD - pass - self.mMOD() - - - elif alt29 == 30: - # Java.g:1:269: MOD_ASSIGN - pass - self.mMOD_ASSIGN() - - - elif alt29 == 31: - # Java.g:1:280: NOT - pass - self.mNOT() - - - elif alt29 == 32: - # Java.g:1:284: NOT_EQUAL - pass - self.mNOT_EQUAL() - - - elif alt29 == 33: - # Java.g:1:294: OR - pass - self.mOR() - - - elif alt29 == 34: - # Java.g:1:297: OR_ASSIGN - pass - self.mOR_ASSIGN() - - - elif alt29 == 35: - # Java.g:1:307: PLUS - pass - self.mPLUS() - - - elif alt29 == 36: - # Java.g:1:312: PLUS_ASSIGN - pass - self.mPLUS_ASSIGN() - - - elif alt29 == 37: - # Java.g:1:324: QUESTION - pass - self.mQUESTION() - - - elif alt29 == 38: - # Java.g:1:333: RBRACK - pass - self.mRBRACK() - - - elif alt29 == 39: - # Java.g:1:340: RCURLY - pass - self.mRCURLY() - - - elif alt29 == 40: - # Java.g:1:347: RPAREN - pass - self.mRPAREN() - - - elif alt29 == 41: - # Java.g:1:354: SEMI - pass - self.mSEMI() - - - elif alt29 == 42: - # Java.g:1:359: SHIFT_LEFT - pass - self.mSHIFT_LEFT() - - - elif alt29 == 43: - # Java.g:1:370: SHIFT_LEFT_ASSIGN - pass - self.mSHIFT_LEFT_ASSIGN() - - - elif alt29 == 44: - # Java.g:1:388: SHIFT_RIGHT - pass - self.mSHIFT_RIGHT() - - - elif alt29 == 45: - # Java.g:1:400: SHIFT_RIGHT_ASSIGN - pass - self.mSHIFT_RIGHT_ASSIGN() - - - elif alt29 == 46: - # Java.g:1:419: STAR - pass - self.mSTAR() - - - elif alt29 == 47: - # Java.g:1:424: STAR_ASSIGN - pass - self.mSTAR_ASSIGN() - - - elif alt29 == 48: - # Java.g:1:436: XOR - pass - self.mXOR() - - - elif alt29 == 49: - # Java.g:1:440: XOR_ASSIGN - pass - self.mXOR_ASSIGN() - - - elif alt29 == 50: - # Java.g:1:451: ABSTRACT - pass - self.mABSTRACT() - - - elif alt29 == 51: - # Java.g:1:460: ASSERT - pass - self.mASSERT() - - - elif alt29 == 52: - # Java.g:1:467: BOOLEAN - pass - self.mBOOLEAN() - - - elif alt29 == 53: - # Java.g:1:475: BREAK - pass - self.mBREAK() - - - elif alt29 == 54: - # Java.g:1:481: BYTE - pass - self.mBYTE() - - - elif alt29 == 55: - # Java.g:1:486: CASE - pass - self.mCASE() - - - elif alt29 == 56: - # Java.g:1:491: CATCH - pass - self.mCATCH() - - - elif alt29 == 57: - # Java.g:1:497: CHAR - pass - self.mCHAR() - - - elif alt29 == 58: - # Java.g:1:502: CLASS - pass - self.mCLASS() - - - elif alt29 == 59: - # Java.g:1:508: CONTINUE - pass - self.mCONTINUE() - - - elif alt29 == 60: - # Java.g:1:517: DEFAULT - pass - self.mDEFAULT() - - - elif alt29 == 61: - # Java.g:1:525: DO - pass - self.mDO() - - - elif alt29 == 62: - # Java.g:1:528: DOUBLE - pass - self.mDOUBLE() - - - elif alt29 == 63: - # Java.g:1:535: ELSE - pass - self.mELSE() - - - elif alt29 == 64: - # Java.g:1:540: ENUM - pass - self.mENUM() - - - elif alt29 == 65: - # Java.g:1:545: EXTENDS - pass - self.mEXTENDS() - - - elif alt29 == 66: - # Java.g:1:553: FALSE - pass - self.mFALSE() - - - elif alt29 == 67: - # Java.g:1:559: FINAL - pass - self.mFINAL() - - - elif alt29 == 68: - # Java.g:1:565: FINALLY - pass - self.mFINALLY() - - - elif alt29 == 69: - # Java.g:1:573: FLOAT - pass - self.mFLOAT() - - - elif alt29 == 70: - # Java.g:1:579: FOR - pass - self.mFOR() - - - elif alt29 == 71: - # Java.g:1:583: IF - pass - self.mIF() - - - elif alt29 == 72: - # Java.g:1:586: IMPLEMENTS - pass - self.mIMPLEMENTS() - - - elif alt29 == 73: - # Java.g:1:597: INSTANCEOF - pass - self.mINSTANCEOF() - - - elif alt29 == 74: - # Java.g:1:608: INTERFACE - pass - self.mINTERFACE() - - - elif alt29 == 75: - # Java.g:1:618: IMPORT - pass - self.mIMPORT() - - - elif alt29 == 76: - # Java.g:1:625: INT - pass - self.mINT() - - - elif alt29 == 77: - # Java.g:1:629: LONG - pass - self.mLONG() - - - elif alt29 == 78: - # Java.g:1:634: NATIVE - pass - self.mNATIVE() - - - elif alt29 == 79: - # Java.g:1:641: NEW - pass - self.mNEW() - - - elif alt29 == 80: - # Java.g:1:645: NULL - pass - self.mNULL() - - - elif alt29 == 81: - # Java.g:1:650: PACKAGE - pass - self.mPACKAGE() - - - elif alt29 == 82: - # Java.g:1:658: PRIVATE - pass - self.mPRIVATE() - - - elif alt29 == 83: - # Java.g:1:666: PROTECTED - pass - self.mPROTECTED() - - - elif alt29 == 84: - # Java.g:1:676: PUBLIC - pass - self.mPUBLIC() - - - elif alt29 == 85: - # Java.g:1:683: RETURN - pass - self.mRETURN() - - - elif alt29 == 86: - # Java.g:1:690: SHORT - pass - self.mSHORT() - - - elif alt29 == 87: - # Java.g:1:696: STATIC - pass - self.mSTATIC() - - - elif alt29 == 88: - # Java.g:1:703: STRICTFP - pass - self.mSTRICTFP() - - - elif alt29 == 89: - # Java.g:1:712: SUPER - pass - self.mSUPER() - - - elif alt29 == 90: - # Java.g:1:718: SWITCH - pass - self.mSWITCH() - - - elif alt29 == 91: - # Java.g:1:725: SYNCHRONIZED - pass - self.mSYNCHRONIZED() - - - elif alt29 == 92: - # Java.g:1:738: THIS - pass - self.mTHIS() - - - elif alt29 == 93: - # Java.g:1:743: THROW - pass - self.mTHROW() - - - elif alt29 == 94: - # Java.g:1:749: THROWS - pass - self.mTHROWS() - - - elif alt29 == 95: - # Java.g:1:756: TRANSIENT - pass - self.mTRANSIENT() - - - elif alt29 == 96: - # Java.g:1:766: TRUE - pass - self.mTRUE() - - - elif alt29 == 97: - # Java.g:1:771: TRY - pass - self.mTRY() - - - elif alt29 == 98: - # Java.g:1:775: VOID - pass - self.mVOID() - - - elif alt29 == 99: - # Java.g:1:780: VOLATILE - pass - self.mVOLATILE() - - - elif alt29 == 100: - # Java.g:1:789: WHILE - pass - self.mWHILE() - - - elif alt29 == 101: - # Java.g:1:795: HEX_LITERAL - pass - self.mHEX_LITERAL() - - - elif alt29 == 102: - # Java.g:1:807: DECIMAL_LITERAL - pass - self.mDECIMAL_LITERAL() - - - elif alt29 == 103: - # Java.g:1:823: OCTAL_LITERAL - pass - self.mOCTAL_LITERAL() - - - elif alt29 == 104: - # Java.g:1:837: FLOATING_POINT_LITERAL - pass - self.mFLOATING_POINT_LITERAL() - - - elif alt29 == 105: - # Java.g:1:860: CHARACTER_LITERAL - pass - self.mCHARACTER_LITERAL() - - - elif alt29 == 106: - # Java.g:1:878: STRING_LITERAL - pass - self.mSTRING_LITERAL() - - - elif alt29 == 107: - # Java.g:1:893: IDENT - pass - self.mIDENT() - - - elif alt29 == 108: - # Java.g:1:899: WS - pass - self.mWS() - - - elif alt29 == 109: - # Java.g:1:902: COMMENT - pass - self.mCOMMENT() - - - elif alt29 == 110: - # Java.g:1:910: LINE_COMMENT - pass - self.mLINE_COMMENT() - - - elif alt29 == 111: - # Java.g:1:923: JAVADOC_COMMENT - pass - self.mJAVADOC_COMMENT() - - - - - - - - # lookup tables for DFA #29 - - DFA29_eot = DFA.unpack( - u"\1\uffff\1\61\1\63\1\uffff\1\66\2\uffff\1\71\1\75\1\100\1\104\2" - u"\uffff\1\107\1\111\1\114\1\uffff\1\116\6\uffff\1\120\1\122\17\55" - u"\2\173\11\uffff\1\177\21\uffff\1\u0083\14\uffff\12\55\1\u0090\7" - u"\55\1\u0098\23\55\1\uffff\1\u00b3\1\uffff\1\173\1\u00b5\6\uffff" - u"\14\55\1\uffff\6\55\1\u00c8\1\uffff\2\55\1\u00cd\2\55\1\u00d0\20" - u"\55\1\u00e1\3\55\3\uffff\4\55\1\u00e9\1\u00ea\1\55\1\u00ec\4\55" - u"\1\u00f1\1\u00f2\4\55\1\uffff\4\55\1\uffff\1\u00fb\1\55\1\uffff" - u"\1\u00fd\13\55\1\u0109\2\55\1\u010c\1\uffff\1\u010d\5\55\1\u0113" - u"\2\uffff\1\u0114\1\uffff\1\u0115\3\55\2\uffff\1\55\1\u011a\1\u011c" - u"\1\u011d\4\55\1\uffff\1\55\1\uffff\5\55\1\u0128\2\55\1\u012b\2" - u"\55\1\uffff\1\u012f\1\55\2\uffff\1\55\1\u0132\1\55\1\u0134\1\55" - u"\3\uffff\2\55\1\u0138\1\55\1\uffff\1\55\2\uffff\1\55\1\u013c\2" - u"\55\1\u013f\3\55\1\u0143\1\u0144\1\uffff\1\u0145\1\55\1\uffff\1" - u"\u0147\1\55\1\u0149\1\uffff\2\55\1\uffff\1\55\1\uffff\1\u014d\1" - u"\55\1\u014f\1\uffff\1\u0150\1\u0151\1\55\1\uffff\2\55\1\uffff\1" - u"\u0155\1\u0156\1\55\3\uffff\1\55\1\uffff\1\55\1\uffff\2\55\1\u015c" - u"\1\uffff\1\u015d\3\uffff\3\55\2\uffff\1\55\1\u0162\2\55\1\u0165" - u"\2\uffff\2\55\1\u0168\1\u0169\1\uffff\1\55\1\u016b\1\uffff\1\u016c" - u"\1\u016d\2\uffff\1\55\3\uffff\1\55\1\u0170\1\uffff" - ) - - DFA29_eof = DFA.unpack( - u"\u0171\uffff" - ) - - DFA29_min = DFA.unpack( - u"\1\11\1\46\1\75\1\uffff\1\75\2\uffff\1\55\2\52\1\53\2\uffff\1\74" - u"\2\75\1\uffff\1\75\6\uffff\2\75\1\142\1\157\1\141\1\145\1\154\1" - u"\141\1\146\1\157\2\141\1\145\2\150\1\157\1\150\2\56\11\uffff\1" - u"\75\6\uffff\1\0\12\uffff\1\75\14\uffff\2\163\1\157\1\145\1\164" - u"\1\163\2\141\1\156\1\146\1\44\1\163\1\165\1\164\1\154\1\156\1\157" - u"\1\162\1\44\1\160\1\163\1\156\1\164\1\167\1\154\1\143\1\151\1\142" - u"\1\164\1\157\1\141\1\160\1\151\1\156\1\151\1\141\2\151\1\uffff" - u"\1\56\1\uffff\1\56\1\75\6\uffff\1\164\1\145\1\154\1\141\2\145\1" - u"\143\1\162\1\163\1\164\1\141\1\142\1\uffff\1\145\1\155\1\145\1" - u"\163\2\141\1\44\1\uffff\1\154\1\164\1\44\1\147\1\151\1\44\1\154" - u"\1\153\1\166\1\164\1\154\1\165\1\162\1\164\1\151\1\145\1\164\1" - u"\143\1\163\1\157\1\156\1\145\1\44\1\144\1\141\1\154\3\uffff\2\162" - u"\1\145\1\153\2\44\1\150\1\44\1\163\1\151\1\165\1\154\2\44\1\156" - u"\1\145\1\154\1\164\1\uffff\1\145\1\162\1\141\1\162\1\uffff\1\44" - u"\1\166\1\uffff\1\44\2\141\1\145\1\151\1\162\1\164\1\151\1\143\1" - u"\162\1\143\1\150\1\44\1\167\1\163\1\44\1\uffff\1\44\1\164\1\145" - u"\1\141\1\164\1\141\1\44\2\uffff\1\44\1\uffff\1\44\1\156\1\154\1" - u"\145\2\uffff\1\144\3\44\1\155\1\164\1\156\1\146\1\uffff\1\145\1" - u"\uffff\1\147\1\164\2\143\1\156\1\44\1\143\1\164\1\44\1\150\1\162" - u"\1\uffff\1\44\1\151\2\uffff\1\151\1\44\1\143\1\44\1\156\3\uffff" - u"\1\165\1\164\1\44\1\163\1\uffff\1\171\2\uffff\1\145\1\44\1\143" - u"\1\141\1\44\2\145\1\164\2\44\1\uffff\1\44\1\146\1\uffff\1\44\1" - u"\157\1\44\1\uffff\1\145\1\154\1\uffff\1\164\1\uffff\1\44\1\145" - u"\1\44\1\uffff\2\44\1\156\1\uffff\1\145\1\143\1\uffff\2\44\1\145" - u"\3\uffff\1\160\1\uffff\1\156\1\uffff\1\156\1\145\1\44\1\uffff\1" - u"\44\3\uffff\1\164\1\157\1\145\2\uffff\1\144\1\44\1\151\1\164\1" - u"\44\2\uffff\1\163\1\146\2\44\1\uffff\1\172\1\44\1\uffff\2\44\2" - u"\uffff\1\145\3\uffff\1\144\1\44\1\uffff" - ) - - DFA29_max = DFA.unpack( - u"\1\ufaff\2\75\1\uffff\1\76\2\uffff\2\75\1\71\1\75\2\uffff\2\75" - u"\1\174\1\uffff\1\75\6\uffff\2\75\1\163\1\171\2\157\1\170\1\157" - u"\1\156\1\157\2\165\1\145\1\171\1\162\1\157\1\150\1\170\1\146\11" - u"\uffff\1\76\6\uffff\1\uffff\12\uffff\1\75\14\uffff\2\163\1\157" - u"\1\145\2\164\2\141\1\156\1\146\1\ufaff\1\163\1\165\1\164\1\154" - u"\1\156\1\157\1\162\1\ufaff\1\160\1\164\1\156\1\164\1\167\1\154" - u"\1\143\1\157\1\142\1\164\1\157\1\162\1\160\1\151\1\156\1\162\1" - u"\171\1\154\1\151\1\uffff\1\146\1\uffff\1\146\1\75\6\uffff\1\164" - u"\1\145\1\154\1\141\2\145\1\143\1\162\1\163\1\164\1\141\1\142\1" - u"\uffff\1\145\1\155\1\145\1\163\2\141\1\ufaff\1\uffff\1\157\1\164" - u"\1\ufaff\1\147\1\151\1\ufaff\1\154\1\153\1\166\1\164\1\154\1\165" - u"\1\162\1\164\1\151\1\145\1\164\1\143\1\163\1\157\1\156\1\145\1" - u"\ufaff\1\144\1\141\1\154\3\uffff\2\162\1\145\1\153\2\ufaff\1\150" - u"\1\ufaff\1\163\1\151\1\165\1\154\2\ufaff\1\156\1\145\1\154\1\164" - u"\1\uffff\1\145\1\162\1\141\1\162\1\uffff\1\ufaff\1\166\1\uffff" - u"\1\ufaff\2\141\1\145\1\151\1\162\1\164\1\151\1\143\1\162\1\143" - u"\1\150\1\ufaff\1\167\1\163\1\ufaff\1\uffff\1\ufaff\1\164\1\145" - u"\1\141\1\164\1\141\1\ufaff\2\uffff\1\ufaff\1\uffff\1\ufaff\1\156" - u"\1\154\1\145\2\uffff\1\144\3\ufaff\1\155\1\164\1\156\1\146\1\uffff" - u"\1\145\1\uffff\1\147\1\164\2\143\1\156\1\ufaff\1\143\1\164\1\ufaff" - u"\1\150\1\162\1\uffff\1\ufaff\1\151\2\uffff\1\151\1\ufaff\1\143" - u"\1\ufaff\1\156\3\uffff\1\165\1\164\1\ufaff\1\163\1\uffff\1\171" - u"\2\uffff\1\145\1\ufaff\1\143\1\141\1\ufaff\2\145\1\164\2\ufaff" - u"\1\uffff\1\ufaff\1\146\1\uffff\1\ufaff\1\157\1\ufaff\1\uffff\1" - u"\145\1\154\1\uffff\1\164\1\uffff\1\ufaff\1\145\1\ufaff\1\uffff" - u"\2\ufaff\1\156\1\uffff\1\145\1\143\1\uffff\2\ufaff\1\145\3\uffff" - u"\1\160\1\uffff\1\156\1\uffff\1\156\1\145\1\ufaff\1\uffff\1\ufaff" - u"\3\uffff\1\164\1\157\1\145\2\uffff\1\144\1\ufaff\1\151\1\164\1" - u"\ufaff\2\uffff\1\163\1\146\2\ufaff\1\uffff\1\172\1\ufaff\1\uffff" - u"\2\ufaff\2\uffff\1\145\3\uffff\1\144\1\ufaff\1\uffff" - ) - - DFA29_accept = DFA.unpack( - u"\3\uffff\1\4\1\uffff\1\7\1\10\4\uffff\1\23\1\24\3\uffff\1\32\1" - u"\uffff\1\37\1\45\1\46\1\47\1\50\1\51\23\uffff\1\151\1\152\1\153" - u"\1\154\1\2\1\27\1\1\1\17\1\3\1\uffff\1\20\1\21\1\11\1\34\1\33\1" - u"\13\1\uffff\1\156\1\12\1\15\1\16\1\14\1\150\1\22\1\44\1\43\1\25" - u"\1\uffff\1\26\1\40\1\30\1\31\1\42\1\41\1\36\1\35\1\57\1\56\1\61" - u"\1\60\46\uffff\1\145\1\uffff\1\146\2\uffff\1\55\1\54\1\155\1\157" - u"\1\53\1\52\14\uffff\1\75\7\uffff\1\107\32\uffff\1\147\1\6\1\5\22" - u"\uffff\1\106\4\uffff\1\114\2\uffff\1\117\20\uffff\1\141\7\uffff" - u"\1\66\1\67\1\uffff\1\71\4\uffff\1\77\1\100\10\uffff\1\115\1\uffff" - u"\1\120\13\uffff\1\134\2\uffff\1\140\1\142\5\uffff\1\65\1\70\1\72" - u"\4\uffff\1\102\1\uffff\1\103\1\105\12\uffff\1\126\2\uffff\1\131" - u"\3\uffff\1\135\2\uffff\1\144\1\uffff\1\63\3\uffff\1\76\3\uffff" - u"\1\113\2\uffff\1\116\3\uffff\1\124\1\125\1\127\1\uffff\1\132\1" - u"\uffff\1\136\3\uffff\1\64\1\uffff\1\74\1\101\1\104\3\uffff\1\121" - u"\1\122\5\uffff\1\62\1\73\4\uffff\1\130\2\uffff\1\143\2\uffff\1" - u"\112\1\123\1\uffff\1\137\1\110\1\111\2\uffff\1\133" - ) - - DFA29_special = DFA.unpack( - u"\73\uffff\1\0\u0135\uffff" - ) - - - DFA29_transition = [ - DFA.unpack(u"\2\56\1\uffff\2\56\22\uffff\1\56\1\16\1\54\1\uffff\1" - u"\55\1\21\1\1\1\53\1\20\1\26\1\30\1\12\1\6\1\7\1\11\1\10\1\51\11" - u"\52\1\5\1\27\1\15\1\2\1\4\1\23\1\3\32\55\1\13\1\uffff\1\24\1\31" - u"\1\55\1\uffff\1\32\1\33\1\34\1\35\1\36\1\37\2\55\1\40\2\55\1\41" - u"\1\55\1\42\1\55\1\43\1\55\1\44\1\45\1\46\1\55\1\47\1\50\3\55\1" - u"\14\1\17\1\25\1\22\101\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\60\26\uffff\1\57"), - DFA.unpack(u"\1\62"), - DFA.unpack(u""), - DFA.unpack(u"\1\65\1\64"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\67\17\uffff\1\70"), - DFA.unpack(u"\1\73\4\uffff\1\74\15\uffff\1\72"), - DFA.unpack(u"\1\76\3\uffff\1\77\1\uffff\12\101"), - DFA.unpack(u"\1\102\21\uffff\1\103"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\106\1\105"), - DFA.unpack(u"\1\110"), - DFA.unpack(u"\1\113\76\uffff\1\112"), - DFA.unpack(u""), - DFA.unpack(u"\1\115"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\117"), - DFA.unpack(u"\1\121"), - DFA.unpack(u"\1\123\20\uffff\1\124"), - DFA.unpack(u"\1\125\2\uffff\1\126\6\uffff\1\127"), - DFA.unpack(u"\1\130\6\uffff\1\131\3\uffff\1\132\2\uffff\1\133"), - DFA.unpack(u"\1\134\11\uffff\1\135"), - DFA.unpack(u"\1\136\1\uffff\1\137\11\uffff\1\140"), - DFA.unpack(u"\1\141\7\uffff\1\142\2\uffff\1\143\2\uffff\1\144"), - DFA.unpack(u"\1\145\6\uffff\1\146\1\147"), - DFA.unpack(u"\1\150"), - DFA.unpack(u"\1\151\3\uffff\1\152\17\uffff\1\153"), - DFA.unpack(u"\1\154\20\uffff\1\155\2\uffff\1\156"), - DFA.unpack(u"\1\157"), - DFA.unpack(u"\1\160\13\uffff\1\161\1\162\1\uffff\1\163\1\uffff\1" - u"\164"), - DFA.unpack(u"\1\165\11\uffff\1\166"), - DFA.unpack(u"\1\167"), - DFA.unpack(u"\1\170"), - DFA.unpack(u"\1\101\1\uffff\10\172\2\101\12\uffff\3\101\21\uffff" - u"\1\171\13\uffff\3\101\21\uffff\1\171"), - DFA.unpack(u"\1\101\1\uffff\12\174\12\uffff\3\101\35\uffff\3\101"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\176\1\175"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\52\u0080\1\u0081\uffd5\u0080"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0082"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0084"), - DFA.unpack(u"\1\u0085"), - DFA.unpack(u"\1\u0086"), - DFA.unpack(u"\1\u0087"), - DFA.unpack(u"\1\u0088"), - DFA.unpack(u"\1\u0089\1\u008a"), - DFA.unpack(u"\1\u008b"), - DFA.unpack(u"\1\u008c"), - DFA.unpack(u"\1\u008d"), - DFA.unpack(u"\1\u008e"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\24\55\1\u008f\5\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0091"), - DFA.unpack(u"\1\u0092"), - DFA.unpack(u"\1\u0093"), - DFA.unpack(u"\1\u0094"), - DFA.unpack(u"\1\u0095"), - DFA.unpack(u"\1\u0096"), - DFA.unpack(u"\1\u0097"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0099"), - DFA.unpack(u"\1\u009a\1\u009b"), - DFA.unpack(u"\1\u009c"), - DFA.unpack(u"\1\u009d"), - DFA.unpack(u"\1\u009e"), - DFA.unpack(u"\1\u009f"), - DFA.unpack(u"\1\u00a0"), - DFA.unpack(u"\1\u00a1\5\uffff\1\u00a2"), - DFA.unpack(u"\1\u00a3"), - DFA.unpack(u"\1\u00a4"), - DFA.unpack(u"\1\u00a5"), - DFA.unpack(u"\1\u00a6\20\uffff\1\u00a7"), - DFA.unpack(u"\1\u00a8"), - DFA.unpack(u"\1\u00a9"), - DFA.unpack(u"\1\u00aa"), - DFA.unpack(u"\1\u00ab\10\uffff\1\u00ac"), - DFA.unpack(u"\1\u00ad\23\uffff\1\u00ae\3\uffff\1\u00af"), - DFA.unpack(u"\1\u00b0\2\uffff\1\u00b1"), - DFA.unpack(u"\1\u00b2"), - DFA.unpack(u""), - DFA.unpack(u"\1\101\1\uffff\10\172\2\101\12\uffff\3\101\35\uffff" - u"\3\101"), - DFA.unpack(u""), - DFA.unpack(u"\1\101\1\uffff\12\174\12\uffff\3\101\35\uffff\3\101"), - DFA.unpack(u"\1\u00b4"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u00b6"), - DFA.unpack(u"\1\u00b7"), - DFA.unpack(u"\1\u00b8"), - DFA.unpack(u"\1\u00b9"), - DFA.unpack(u"\1\u00ba"), - DFA.unpack(u"\1\u00bb"), - DFA.unpack(u"\1\u00bc"), - DFA.unpack(u"\1\u00bd"), - DFA.unpack(u"\1\u00be"), - DFA.unpack(u"\1\u00bf"), - DFA.unpack(u"\1\u00c0"), - DFA.unpack(u"\1\u00c1"), - DFA.unpack(u""), - DFA.unpack(u"\1\u00c2"), - DFA.unpack(u"\1\u00c3"), - DFA.unpack(u"\1\u00c4"), - DFA.unpack(u"\1\u00c5"), - DFA.unpack(u"\1\u00c6"), - DFA.unpack(u"\1\u00c7"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\u00c9\2\uffff\1\u00ca"), - DFA.unpack(u"\1\u00cb"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\4\55\1\u00cc\25\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00ce"), - DFA.unpack(u"\1\u00cf"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00d1"), - DFA.unpack(u"\1\u00d2"), - DFA.unpack(u"\1\u00d3"), - DFA.unpack(u"\1\u00d4"), - DFA.unpack(u"\1\u00d5"), - DFA.unpack(u"\1\u00d6"), - DFA.unpack(u"\1\u00d7"), - DFA.unpack(u"\1\u00d8"), - DFA.unpack(u"\1\u00d9"), - DFA.unpack(u"\1\u00da"), - DFA.unpack(u"\1\u00db"), - DFA.unpack(u"\1\u00dc"), - DFA.unpack(u"\1\u00dd"), - DFA.unpack(u"\1\u00de"), - DFA.unpack(u"\1\u00df"), - DFA.unpack(u"\1\u00e0"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00e2"), - DFA.unpack(u"\1\u00e3"), - DFA.unpack(u"\1\u00e4"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u00e5"), - DFA.unpack(u"\1\u00e6"), - DFA.unpack(u"\1\u00e7"), - DFA.unpack(u"\1\u00e8"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00eb"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00ed"), - DFA.unpack(u"\1\u00ee"), - DFA.unpack(u"\1\u00ef"), - DFA.unpack(u"\1\u00f0"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00f3"), - DFA.unpack(u"\1\u00f4"), - DFA.unpack(u"\1\u00f5"), - DFA.unpack(u"\1\u00f6"), - DFA.unpack(u""), - DFA.unpack(u"\1\u00f7"), - DFA.unpack(u"\1\u00f8"), - DFA.unpack(u"\1\u00f9"), - DFA.unpack(u"\1\u00fa"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00fc"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00fe"), - DFA.unpack(u"\1\u00ff"), - DFA.unpack(u"\1\u0100"), - DFA.unpack(u"\1\u0101"), - DFA.unpack(u"\1\u0102"), - DFA.unpack(u"\1\u0103"), - DFA.unpack(u"\1\u0104"), - DFA.unpack(u"\1\u0105"), - DFA.unpack(u"\1\u0106"), - DFA.unpack(u"\1\u0107"), - DFA.unpack(u"\1\u0108"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u010a"), - DFA.unpack(u"\1\u010b"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u010e"), - DFA.unpack(u"\1\u010f"), - DFA.unpack(u"\1\u0110"), - DFA.unpack(u"\1\u0111"), - DFA.unpack(u"\1\u0112"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0116"), - DFA.unpack(u"\1\u0117"), - DFA.unpack(u"\1\u0118"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0119"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\13\55\1\u011b\16\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u011e"), - DFA.unpack(u"\1\u011f"), - DFA.unpack(u"\1\u0120"), - DFA.unpack(u"\1\u0121"), - DFA.unpack(u""), - DFA.unpack(u"\1\u0122"), - DFA.unpack(u""), - DFA.unpack(u"\1\u0123"), - DFA.unpack(u"\1\u0124"), - DFA.unpack(u"\1\u0125"), - DFA.unpack(u"\1\u0126"), - DFA.unpack(u"\1\u0127"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0129"), - DFA.unpack(u"\1\u012a"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u012c"), - DFA.unpack(u"\1\u012d"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\22\55\1\u012e\7\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0130"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0131"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0133"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0135"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0136"), - DFA.unpack(u"\1\u0137"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0139"), - DFA.unpack(u""), - DFA.unpack(u"\1\u013a"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u013b"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u013d"), - DFA.unpack(u"\1\u013e"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0140"), - DFA.unpack(u"\1\u0141"), - DFA.unpack(u"\1\u0142"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0146"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0148"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\u014a"), - DFA.unpack(u"\1\u014b"), - DFA.unpack(u""), - DFA.unpack(u"\1\u014c"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u014e"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0152"), - DFA.unpack(u""), - DFA.unpack(u"\1\u0153"), - DFA.unpack(u"\1\u0154"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0157"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0158"), - DFA.unpack(u""), - DFA.unpack(u"\1\u0159"), - DFA.unpack(u""), - DFA.unpack(u"\1\u015a"), - DFA.unpack(u"\1\u015b"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u015e"), - DFA.unpack(u"\1\u015f"), - DFA.unpack(u"\1\u0160"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0161"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0163"), - DFA.unpack(u"\1\u0164"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0166"), - DFA.unpack(u"\1\u0167"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\u016a"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u016e"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u016f"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"") - ] - - # class definition for DFA #29 - - class DFA29(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA29_59 = input.LA(1) - - s = -1 - if ((0 <= LA29_59 <= 41) or (43 <= LA29_59 <= 65535)): - s = 128 - - elif (LA29_59 == 42): - s = 129 - - if s >= 0: - return s - - nvae = NoViableAltException(self_.getDescription(), 29, _s, input) - self_.error(nvae) - raise nvae - - - - -def main(argv, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr): - from antlr3.main import LexerMain - main = LexerMain(JavaLexer) - main.stdin = stdin - main.stdout = stdout - main.stderr = stderr - main.execute(argv) + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + ABSTRACT = 1 + ASSERT = 2 + BOOLEAN = 3 + BREAK = 4 + BYTE = 5 + CASE = 6 + CATCH = 7 + CHAR = 8 + CLASS = 9 + CONST = 10 + CONTINUE = 11 + DEFAULT = 12 + DO = 13 + DOUBLE = 14 + ELSE = 15 + ENUM = 16 + EXTENDS = 17 + FINAL = 18 + FINALLY = 19 + FLOAT = 20 + FOR = 21 + IF = 22 + GOTO = 23 + IMPLEMENTS = 24 + IMPORT = 25 + INSTANCEOF = 26 + INT = 27 + INTERFACE = 28 + LONG = 29 + NATIVE = 30 + NEW = 31 + PACKAGE = 32 + PRIVATE = 33 + PROTECTED = 34 + PUBLIC = 35 + RETURN = 36 + SHORT = 37 + STATIC = 38 + STRICTFP = 39 + SUPER = 40 + SWITCH = 41 + SYNCHRONIZED = 42 + THIS = 43 + THROW = 44 + THROWS = 45 + TRANSIENT = 46 + TRY = 47 + VOID = 48 + VOLATILE = 49 + WHILE = 50 + DECIMAL_LITERAL = 51 + HEX_LITERAL = 52 + OCT_LITERAL = 53 + BINARY_LITERAL = 54 + FLOAT_LITERAL = 55 + HEX_FLOAT_LITERAL = 56 + BOOL_LITERAL = 57 + CHAR_LITERAL = 58 + STRING_LITERAL = 59 + NULL_LITERAL = 60 + LPAREN = 61 + RPAREN = 62 + LBRACE = 63 + RBRACE = 64 + LBRACK = 65 + RBRACK = 66 + SEMI = 67 + COMMA = 68 + DOT = 69 + ASSIGN = 70 + GT = 71 + LT = 72 + BANG = 73 + TILDE = 74 + QUESTION = 75 + COLON = 76 + EQUAL = 77 + LE = 78 + GE = 79 + NOTEQUAL = 80 + AND = 81 + OR = 82 + INC = 83 + DEC = 84 + ADD = 85 + SUB = 86 + MUL = 87 + DIV = 88 + BITAND = 89 + BITOR = 90 + CARET = 91 + MOD = 92 + ADD_ASSIGN = 93 + SUB_ASSIGN = 94 + MUL_ASSIGN = 95 + DIV_ASSIGN = 96 + AND_ASSIGN = 97 + OR_ASSIGN = 98 + XOR_ASSIGN = 99 + MOD_ASSIGN = 100 + LSHIFT_ASSIGN = 101 + RSHIFT_ASSIGN = 102 + URSHIFT_ASSIGN = 103 + ARROW = 104 + COLONCOLON = 105 + AT = 106 + ELLIPSIS = 107 + WS = 108 + COMMENT = 109 + LINE_COMMENT = 110 + IDENTIFIER = 111 + + channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] + + modeNames = [ "DEFAULT_MODE" ] + + literalNames = [ "", + "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", + "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", + "'default'", "'do'", "'double'", "'else'", "'enum'", "'extends'", + "'final'", "'finally'", "'float'", "'for'", "'if'", "'goto'", + "'implements'", "'import'", "'instanceof'", "'int'", "'interface'", + "'long'", "'native'", "'new'", "'package'", "'private'", "'protected'", + "'public'", "'return'", "'short'", "'static'", "'strictfp'", + "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", + "'throws'", "'transient'", "'try'", "'void'", "'volatile'", + "'while'", "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", + "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", + "':'", "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", + "'--'", "'+'", "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", + "'+='", "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", + "'<<='", "'>>='", "'>>>='", "'->'", "'::'", "'@'", "'...'" ] + + symbolicNames = [ "", + "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", + "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", + "ELSE", "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", + "IF", "GOTO", "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", + "LONG", "NATIVE", "NEW", "PACKAGE", "PRIVATE", "PROTECTED", + "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", "SUPER", + "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", + "TRY", "VOID", "VOLATILE", "WHILE", "DECIMAL_LITERAL", "HEX_LITERAL", + "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL", + "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "NULL_LITERAL", + "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", + "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", + "QUESTION", "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", + "OR", "INC", "DEC", "ADD", "SUB", "MUL", "DIV", "BITAND", "BITOR", + "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", + "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", + "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "ARROW", "COLONCOLON", "AT", + "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT", "IDENTIFIER" ] + + ruleNames = [ "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", + "CATCH", "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", + "DO", "DOUBLE", "ELSE", "ENUM", "EXTENDS", "FINAL", "FINALLY", + "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", "IMPORT", + "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", + "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", + "SHORT", "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", + "THIS", "THROW", "THROWS", "TRANSIENT", "TRY", "VOID", + "VOLATILE", "WHILE", "DECIMAL_LITERAL", "HEX_LITERAL", + "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL", + "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "NULL_LITERAL", + "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", + "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", + "TILDE", "QUESTION", "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", + "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL", "DIV", + "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", + "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", + "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", + "URSHIFT_ASSIGN", "ARROW", "COLONCOLON", "AT", "ELLIPSIS", + "WS", "COMMENT", "LINE_COMMENT", "IDENTIFIER", "ExponentPart", + "EscapeSequence", "HexDigits", "HexDigit", "Digits", "LetterOrDigit", + "Letter" ] + + grammarFileName = "JavaLexer.g4" + + def __init__(self, input=None, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) + self._actions = None + self._predicates = None -if __name__ == '__main__': - main(sys.argv) diff --git a/java2python/lang/JavaLexer.tokens b/java2python/lang/JavaLexer.tokens new file mode 100644 index 0000000..c648b8c --- /dev/null +++ b/java2python/lang/JavaLexer.tokens @@ -0,0 +1,209 @@ +ABSTRACT=1 +ASSERT=2 +BOOLEAN=3 +BREAK=4 +BYTE=5 +CASE=6 +CATCH=7 +CHAR=8 +CLASS=9 +CONST=10 +CONTINUE=11 +DEFAULT=12 +DO=13 +DOUBLE=14 +ELSE=15 +ENUM=16 +EXTENDS=17 +FINAL=18 +FINALLY=19 +FLOAT=20 +FOR=21 +IF=22 +GOTO=23 +IMPLEMENTS=24 +IMPORT=25 +INSTANCEOF=26 +INT=27 +INTERFACE=28 +LONG=29 +NATIVE=30 +NEW=31 +PACKAGE=32 +PRIVATE=33 +PROTECTED=34 +PUBLIC=35 +RETURN=36 +SHORT=37 +STATIC=38 +STRICTFP=39 +SUPER=40 +SWITCH=41 +SYNCHRONIZED=42 +THIS=43 +THROW=44 +THROWS=45 +TRANSIENT=46 +TRY=47 +VOID=48 +VOLATILE=49 +WHILE=50 +DECIMAL_LITERAL=51 +HEX_LITERAL=52 +OCT_LITERAL=53 +BINARY_LITERAL=54 +FLOAT_LITERAL=55 +HEX_FLOAT_LITERAL=56 +BOOL_LITERAL=57 +CHAR_LITERAL=58 +STRING_LITERAL=59 +NULL_LITERAL=60 +LPAREN=61 +RPAREN=62 +LBRACE=63 +RBRACE=64 +LBRACK=65 +RBRACK=66 +SEMI=67 +COMMA=68 +DOT=69 +ASSIGN=70 +GT=71 +LT=72 +BANG=73 +TILDE=74 +QUESTION=75 +COLON=76 +EQUAL=77 +LE=78 +GE=79 +NOTEQUAL=80 +AND=81 +OR=82 +INC=83 +DEC=84 +ADD=85 +SUB=86 +MUL=87 +DIV=88 +BITAND=89 +BITOR=90 +CARET=91 +MOD=92 +ADD_ASSIGN=93 +SUB_ASSIGN=94 +MUL_ASSIGN=95 +DIV_ASSIGN=96 +AND_ASSIGN=97 +OR_ASSIGN=98 +XOR_ASSIGN=99 +MOD_ASSIGN=100 +LSHIFT_ASSIGN=101 +RSHIFT_ASSIGN=102 +URSHIFT_ASSIGN=103 +ARROW=104 +COLONCOLON=105 +AT=106 +ELLIPSIS=107 +WS=108 +COMMENT=109 +LINE_COMMENT=110 +IDENTIFIER=111 +'abstract'=1 +'assert'=2 +'boolean'=3 +'break'=4 +'byte'=5 +'case'=6 +'catch'=7 +'char'=8 +'class'=9 +'const'=10 +'continue'=11 +'default'=12 +'do'=13 +'double'=14 +'else'=15 +'enum'=16 +'extends'=17 +'final'=18 +'finally'=19 +'float'=20 +'for'=21 +'if'=22 +'goto'=23 +'implements'=24 +'import'=25 +'instanceof'=26 +'int'=27 +'interface'=28 +'long'=29 +'native'=30 +'new'=31 +'package'=32 +'private'=33 +'protected'=34 +'public'=35 +'return'=36 +'short'=37 +'static'=38 +'strictfp'=39 +'super'=40 +'switch'=41 +'synchronized'=42 +'this'=43 +'throw'=44 +'throws'=45 +'transient'=46 +'try'=47 +'void'=48 +'volatile'=49 +'while'=50 +'null'=60 +'('=61 +')'=62 +'{'=63 +'}'=64 +'['=65 +']'=66 +';'=67 +','=68 +'.'=69 +'='=70 +'>'=71 +'<'=72 +'!'=73 +'~'=74 +'?'=75 +':'=76 +'=='=77 +'<='=78 +'>='=79 +'!='=80 +'&&'=81 +'||'=82 +'++'=83 +'--'=84 +'+'=85 +'-'=86 +'*'=87 +'/'=88 +'&'=89 +'|'=90 +'^'=91 +'%'=92 +'+='=93 +'-='=94 +'*='=95 +'/='=96 +'&='=97 +'|='=98 +'^='=99 +'%='=100 +'<<='=101 +'>>='=102 +'>>>='=103 +'->'=104 +'::'=105 +'@'=106 +'...'=107 diff --git a/java2python/lang/JavaParser.g4 b/java2python/lang/JavaParser.g4 new file mode 100644 index 0000000..49326ef --- /dev/null +++ b/java2python/lang/JavaParser.g4 @@ -0,0 +1,620 @@ +/* + [The "BSD licence"] + Copyright (c) 2013 Terence Parr, Sam Harwell + Copyright (c) 2017 Ivan Kochurkin (upgrade to Java 8) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +parser grammar JavaParser; + +options { tokenVocab=JavaLexer; } + +compilationUnit + : packageDeclaration? importDeclaration* typeDeclaration* EOF + ; + +packageDeclaration + : annotation* PACKAGE qualifiedName ';' + ; + +importDeclaration + : IMPORT STATIC? qualifiedName ('.' '*')? ';' + ; + +typeDeclaration + : classOrInterfaceModifier* + (classDeclaration | enumDeclaration | interfaceDeclaration | annotationTypeDeclaration) + | ';' + ; + +modifier + : classOrInterfaceModifier + | NATIVE + | SYNCHRONIZED + | TRANSIENT + | VOLATILE + ; + +classOrInterfaceModifier + : annotation + | PUBLIC + | PROTECTED + | PRIVATE + | STATIC + | ABSTRACT + | FINAL // FINAL for class only -- does not apply to interfaces + | STRICTFP + ; + +variableModifier + : FINAL + | annotation + ; + +classDeclaration + : CLASS IDENTIFIER typeParameters? + (EXTENDS typeType)? + (IMPLEMENTS typeList)? + classBody + ; + +typeParameters + : '<' typeParameter (',' typeParameter)* '>' + ; + +typeParameter + : annotation* IDENTIFIER (EXTENDS annotation* typeBound)? + ; + +typeBound + : typeType ('&' typeType)* + ; + +enumDeclaration + : ENUM IDENTIFIER (IMPLEMENTS typeList)? '{' enumConstants? ','? enumBodyDeclarations? '}' + ; + +enumConstants + : enumConstant (',' enumConstant)* + ; + +enumConstant + : annotation* IDENTIFIER arguments? classBody? + ; + +enumBodyDeclarations + : ';' classBodyDeclaration* + ; + +interfaceDeclaration + : INTERFACE IDENTIFIER typeParameters? (EXTENDS typeList)? interfaceBody + ; + +classBody + : '{' classBodyDeclaration* '}' + ; + +interfaceBody + : '{' interfaceBodyDeclaration* '}' + ; + +classBodyDeclaration + : ';' + | STATIC? block + | modifier* memberDeclaration + ; + +memberDeclaration + : methodDeclaration + | genericMethodDeclaration + | fieldDeclaration + | constructorDeclaration + | genericConstructorDeclaration + | interfaceDeclaration + | annotationTypeDeclaration + | classDeclaration + | enumDeclaration + ; + +/* We use rule this even for void methods which cannot have [] after parameters. + This simplifies grammar and we can consider void to be a type, which + renders the [] matching as a context-sensitive issue or a semantic check + for invalid return type after parsing. + */ +methodDeclaration + : typeTypeOrVoid IDENTIFIER formalParameters ('[' ']')* + (THROWS qualifiedNameList)? + methodBody + ; + +methodBody + : block + | ';' + ; + +typeTypeOrVoid + : typeType + | VOID + ; + +genericMethodDeclaration + : typeParameters methodDeclaration + ; + +genericConstructorDeclaration + : typeParameters constructorDeclaration + ; + +constructorDeclaration + : IDENTIFIER formalParameters (THROWS qualifiedNameList)? constructorBody=block + ; + +fieldDeclaration + : typeType variableDeclarators ';' + ; + +interfaceBodyDeclaration + : modifier* interfaceMemberDeclaration + | ';' + ; + +interfaceMemberDeclaration + : constDeclaration + | interfaceMethodDeclaration + | genericInterfaceMethodDeclaration + | interfaceDeclaration + | annotationTypeDeclaration + | classDeclaration + | enumDeclaration + ; + +constDeclaration + : typeType constantDeclarator (',' constantDeclarator)* ';' + ; + +constantDeclarator + : IDENTIFIER ('[' ']')* '=' variableInitializer + ; + +// Early versions of Java allows brackets after the method name, eg. +// public int[] return2DArray() [] { ... } +// is the same as +// public int[][] return2DArray() { ... } +interfaceMethodDeclaration + : interfaceMethodModifier* (typeTypeOrVoid | typeParameters annotation* typeTypeOrVoid) + IDENTIFIER formalParameters ('[' ']')* (THROWS qualifiedNameList)? methodBody + ; + +// Java8 +interfaceMethodModifier + : annotation + | PUBLIC + | ABSTRACT + | DEFAULT + | STATIC + | STRICTFP + ; + +genericInterfaceMethodDeclaration + : typeParameters interfaceMethodDeclaration + ; + +variableDeclarators + : variableDeclarator (',' variableDeclarator)* + ; + +variableDeclarator + : variableDeclaratorId ('=' variableInitializer)? + ; + +variableDeclaratorId + : IDENTIFIER ('[' ']')* + ; + +variableInitializer + : arrayInitializer + | expression + ; + +arrayInitializer + : '{' (variableInitializer (',' variableInitializer)* (',')? )? '}' + ; + +classOrInterfaceType + : IDENTIFIER typeArguments? ('.' IDENTIFIER typeArguments?)* + ; + +typeArgument + : typeType + | annotation* '?' ((EXTENDS | SUPER) typeType)? + ; + +qualifiedNameList + : qualifiedName (',' qualifiedName)* + ; + +formalParameters + : '(' formalParameterList? ')' + ; + +formalParameterList + : formalParameter (',' formalParameter)* (',' lastFormalParameter)? + | lastFormalParameter + ; + +formalParameter + : variableModifier* typeType variableDeclaratorId + ; + +lastFormalParameter + : variableModifier* typeType annotation* '...' variableDeclaratorId + ; + +qualifiedName + : IDENTIFIER ('.' IDENTIFIER)* + ; + +literal + : integerLiteral + | floatLiteral + | CHAR_LITERAL + | STRING_LITERAL + | BOOL_LITERAL + | NULL_LITERAL + ; + +integerLiteral + : DECIMAL_LITERAL + | HEX_LITERAL + | OCT_LITERAL + | BINARY_LITERAL + ; + +floatLiteral + : FLOAT_LITERAL + | HEX_FLOAT_LITERAL + ; + +// ANNOTATIONS +altAnnotationQualifiedName + : (IDENTIFIER DOT)* '@' IDENTIFIER + ; + +annotation + : ('@' qualifiedName | altAnnotationQualifiedName) ('(' ( elementValuePairs | elementValue )? ')')? + ; + +elementValuePairs + : elementValuePair (',' elementValuePair)* + ; + +elementValuePair + : IDENTIFIER '=' elementValue + ; + +elementValue + : expression + | annotation + | elementValueArrayInitializer + ; + +elementValueArrayInitializer + : '{' (elementValue (',' elementValue)*)? (',')? '}' + ; + +annotationTypeDeclaration + : '@' INTERFACE IDENTIFIER annotationTypeBody + ; + +annotationTypeBody + : '{' (annotationTypeElementDeclaration)* '}' + ; + +annotationTypeElementDeclaration + : modifier* annotationTypeElementRest + | ';' // this is not allowed by the grammar, but apparently allowed by the actual compiler + ; + +annotationTypeElementRest + : typeType annotationMethodOrConstantRest ';' + | classDeclaration ';'? + | interfaceDeclaration ';'? + | enumDeclaration ';'? + | annotationTypeDeclaration ';'? + ; + +annotationMethodOrConstantRest + : annotationMethodRest + | annotationConstantRest + ; + +annotationMethodRest + : IDENTIFIER '(' ')' defaultValue? + ; + +annotationConstantRest + : variableDeclarators + ; + +defaultValue + : DEFAULT elementValue + ; + +// STATEMENTS / BLOCKS + +block + : '{' blockStatement* '}' + ; + +blockStatement + : localVariableDeclaration ';' + | statement + | localTypeDeclaration + ; + +localVariableDeclaration + : variableModifier* typeType variableDeclarators + ; + +localTypeDeclaration + : classOrInterfaceModifier* + (classDeclaration | interfaceDeclaration) + | ';' + ; + +statement + : blockLabel=block + | ASSERT expression (':' expression)? ';' + | IF parExpression statement (ELSE statement)? + | FOR '(' forControl ')' statement + | WHILE parExpression statement + | DO statement WHILE parExpression ';' + | TRY block (catchClause+ finallyBlock? | finallyBlock) + | TRY resourceSpecification block catchClause* finallyBlock? + | SWITCH parExpression '{' switchBlockStatementGroup* switchLabel* '}' + | SYNCHRONIZED parExpression block + | RETURN expression? ';' + | THROW expression ';' + | BREAK IDENTIFIER? ';' + | CONTINUE IDENTIFIER? ';' + | SEMI + | statementExpression=expression ';' + | identifierLabel=IDENTIFIER ':' statement + ; + +catchClause + : CATCH '(' variableModifier* catchType IDENTIFIER ')' block + ; + +catchType + : qualifiedName ('|' qualifiedName)* + ; + +finallyBlock + : FINALLY block + ; + +resourceSpecification + : '(' resources ';'? ')' + ; + +resources + : resource (';' resource)* + ; + +resource + : variableModifier* classOrInterfaceType variableDeclaratorId '=' expression + ; + +/** Matches cases then statements, both of which are mandatory. + * To handle empty cases at the end, we add switchLabel* to statement. + */ +switchBlockStatementGroup + : switchLabel+ blockStatement+ + ; + +switchLabel + : CASE (constantExpression=expression | enumConstantName=IDENTIFIER) ':' + | DEFAULT ':' + ; + +forControl + : enhancedForControl + | forInit? ';' expression? ';' forUpdate=expressionList? + ; + +forInit + : localVariableDeclaration + | expressionList + ; + +enhancedForControl + : variableModifier* typeType variableDeclaratorId ':' expression + ; + +// EXPRESSIONS + +parExpression + : '(' expression ')' + ; + +expressionList + : expression (',' expression)* + ; + +methodCall + : IDENTIFIER '(' expressionList? ')' + | THIS '(' expressionList? ')' + | SUPER '(' expressionList? ')' + ; + +expression + : primary + | expression bop='.' + ( IDENTIFIER + | methodCall + | THIS + | NEW nonWildcardTypeArguments? innerCreator + | SUPER superSuffix + | explicitGenericInvocation + ) + | expression '[' expression ']' + | methodCall + | NEW creator + | '(' annotation* typeType ('&' typeType)* ')' expression + | expression postfix=('++' | '--') + | prefix=('+'|'-'|'++'|'--') expression + | prefix=('~'|'!') expression + | expression bop=('*'|'/'|'%') expression + | expression bop=('+'|'-') expression + | expression ('<' '<' | '>' '>' '>' | '>' '>') expression + | expression bop=('<=' | '>=' | '>' | '<') expression + | expression bop=INSTANCEOF typeType + | expression bop=('==' | '!=') expression + | expression bop='&' expression + | expression bop='^' expression + | expression bop='|' expression + | expression bop='&&' expression + | expression bop='||' expression + | expression bop='?' expression ':' expression + | expression + bop=('=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '>>=' | '>>>=' | '<<=' | '%=') + expression + | lambdaExpression // Java8 + + // Java 8 methodReference + | expression '::' typeArguments? IDENTIFIER + | typeType '::' (typeArguments? IDENTIFIER | NEW) + | classType '::' typeArguments? NEW + ; + +// Java8 +lambdaExpression + : lambdaParameters '->' lambdaBody + ; + +// Java8 +lambdaParameters + : IDENTIFIER + | '(' formalParameterList? ')' + | '(' IDENTIFIER (',' IDENTIFIER)* ')' + ; + +// Java8 +lambdaBody + : expression + | block + ; + +primary + : '(' expression ')' + | THIS + | SUPER + | literal + | IDENTIFIER + | typeTypeOrVoid '.' CLASS + | nonWildcardTypeArguments (explicitGenericInvocationSuffix | THIS arguments) + ; + +classType + : (classOrInterfaceType '.')? annotation* IDENTIFIER typeArguments? + ; + +creator + : nonWildcardTypeArguments createdName classCreatorRest + | createdName (arrayCreatorRest | classCreatorRest) + ; + +createdName + : IDENTIFIER typeArgumentsOrDiamond? ('.' IDENTIFIER typeArgumentsOrDiamond?)* + | primitiveType + ; + +innerCreator + : IDENTIFIER nonWildcardTypeArgumentsOrDiamond? classCreatorRest + ; + +arrayCreatorRest + : '[' (']' ('[' ']')* arrayInitializer | expression ']' ('[' expression ']')* ('[' ']')*) + ; + +classCreatorRest + : arguments classBody? + ; + +explicitGenericInvocation + : nonWildcardTypeArguments explicitGenericInvocationSuffix + ; + +typeArgumentsOrDiamond + : '<' '>' + | typeArguments + ; + +nonWildcardTypeArgumentsOrDiamond + : '<' '>' + | nonWildcardTypeArguments + ; + +nonWildcardTypeArguments + : '<' typeList '>' + ; + +typeList + : typeType (',' typeType)* + ; + +typeType + : annotation* (classOrInterfaceType | primitiveType) (annotation* '[' ']')* + ; + +primitiveType + : BOOLEAN + | CHAR + | BYTE + | SHORT + | INT + | LONG + | FLOAT + | DOUBLE + ; + +typeArguments + : '<' typeArgument (',' typeArgument)* '>' + ; + +superSuffix + : arguments + | '.' IDENTIFIER arguments? + ; + +explicitGenericInvocationSuffix + : SUPER superSuffix + | IDENTIFIER arguments + ; + +arguments + : '(' expressionList? ')' + ; diff --git a/java2python/lang/JavaParser.interp b/java2python/lang/JavaParser.interp new file mode 100644 index 0000000..9559ee1 --- /dev/null +++ b/java2python/lang/JavaParser.interp @@ -0,0 +1,338 @@ +token literal names: +null +'abstract' +'assert' +'boolean' +'break' +'byte' +'case' +'catch' +'char' +'class' +'const' +'continue' +'default' +'do' +'double' +'else' +'enum' +'extends' +'final' +'finally' +'float' +'for' +'if' +'goto' +'implements' +'import' +'instanceof' +'int' +'interface' +'long' +'native' +'new' +'package' +'private' +'protected' +'public' +'return' +'short' +'static' +'strictfp' +'super' +'switch' +'synchronized' +'this' +'throw' +'throws' +'transient' +'try' +'void' +'volatile' +'while' +null +null +null +null +null +null +null +null +null +'null' +'(' +')' +'{' +'}' +'[' +']' +';' +',' +'.' +'=' +'>' +'<' +'!' +'~' +'?' +':' +'==' +'<=' +'>=' +'!=' +'&&' +'||' +'++' +'--' +'+' +'-' +'*' +'/' +'&' +'|' +'^' +'%' +'+=' +'-=' +'*=' +'/=' +'&=' +'|=' +'^=' +'%=' +'<<=' +'>>=' +'>>>=' +'->' +'::' +'@' +'...' +null +null +null +null + +token symbolic names: +null +ABSTRACT +ASSERT +BOOLEAN +BREAK +BYTE +CASE +CATCH +CHAR +CLASS +CONST +CONTINUE +DEFAULT +DO +DOUBLE +ELSE +ENUM +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +NATIVE +NEW +PACKAGE +PRIVATE +PROTECTED +PUBLIC +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TRANSIENT +TRY +VOID +VOLATILE +WHILE +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +NULL_LITERAL +LPAREN +RPAREN +LBRACE +RBRACE +LBRACK +RBRACK +SEMI +COMMA +DOT +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +ARROW +COLONCOLON +AT +ELLIPSIS +WS +COMMENT +LINE_COMMENT +IDENTIFIER + +rule names: +compilationUnit +packageDeclaration +importDeclaration +typeDeclaration +modifier +classOrInterfaceModifier +variableModifier +classDeclaration +typeParameters +typeParameter +typeBound +enumDeclaration +enumConstants +enumConstant +enumBodyDeclarations +interfaceDeclaration +classBody +interfaceBody +classBodyDeclaration +memberDeclaration +methodDeclaration +methodBody +typeTypeOrVoid +genericMethodDeclaration +genericConstructorDeclaration +constructorDeclaration +fieldDeclaration +interfaceBodyDeclaration +interfaceMemberDeclaration +constDeclaration +constantDeclarator +interfaceMethodDeclaration +interfaceMethodModifier +genericInterfaceMethodDeclaration +variableDeclarators +variableDeclarator +variableDeclaratorId +variableInitializer +arrayInitializer +classOrInterfaceType +typeArgument +qualifiedNameList +formalParameters +formalParameterList +formalParameter +lastFormalParameter +qualifiedName +literal +integerLiteral +floatLiteral +altAnnotationQualifiedName +annotation +elementValuePairs +elementValuePair +elementValue +elementValueArrayInitializer +annotationTypeDeclaration +annotationTypeBody +annotationTypeElementDeclaration +annotationTypeElementRest +annotationMethodOrConstantRest +annotationMethodRest +annotationConstantRest +defaultValue +block +blockStatement +localVariableDeclaration +localTypeDeclaration +statement +catchClause +catchType +finallyBlock +resourceSpecification +resources +resource +switchBlockStatementGroup +switchLabel +forControl +forInit +enhancedForControl +parExpression +expressionList +methodCall +expression +lambdaExpression +lambdaParameters +lambdaBody +primary +classType +creator +createdName +innerCreator +arrayCreatorRest +classCreatorRest +explicitGenericInvocation +typeArgumentsOrDiamond +nonWildcardTypeArgumentsOrDiamond +nonWildcardTypeArguments +typeList +typeType +primitiveType +typeArguments +superSuffix +explicitGenericInvocationSuffix +arguments + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 113, 1439, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 3, 2, 5, 2, 214, 10, 2, 3, 2, 7, 2, 217, 10, 2, 12, 2, 14, 2, 220, 11, 2, 3, 2, 7, 2, 223, 10, 2, 12, 2, 14, 2, 226, 11, 2, 3, 2, 3, 2, 3, 3, 7, 3, 231, 10, 3, 12, 3, 14, 3, 234, 11, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 5, 4, 242, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 247, 10, 4, 3, 4, 3, 4, 3, 5, 7, 5, 252, 10, 5, 12, 5, 14, 5, 255, 11, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 261, 10, 5, 3, 5, 5, 5, 264, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 271, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 281, 10, 7, 3, 8, 3, 8, 5, 8, 285, 10, 8, 3, 9, 3, 9, 3, 9, 5, 9, 290, 10, 9, 3, 9, 3, 9, 5, 9, 294, 10, 9, 3, 9, 3, 9, 5, 9, 298, 10, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 306, 10, 10, 12, 10, 14, 10, 309, 11, 10, 3, 10, 3, 10, 3, 11, 7, 11, 314, 10, 11, 12, 11, 14, 11, 317, 11, 11, 3, 11, 3, 11, 3, 11, 7, 11, 322, 10, 11, 12, 11, 14, 11, 325, 11, 11, 3, 11, 5, 11, 328, 10, 11, 3, 12, 3, 12, 3, 12, 7, 12, 333, 10, 12, 12, 12, 14, 12, 336, 11, 12, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 342, 10, 13, 3, 13, 3, 13, 5, 13, 346, 10, 13, 3, 13, 5, 13, 349, 10, 13, 3, 13, 5, 13, 352, 10, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 7, 14, 359, 10, 14, 12, 14, 14, 14, 362, 11, 14, 3, 15, 7, 15, 365, 10, 15, 12, 15, 14, 15, 368, 11, 15, 3, 15, 3, 15, 5, 15, 372, 10, 15, 3, 15, 5, 15, 375, 10, 15, 3, 16, 3, 16, 7, 16, 379, 10, 16, 12, 16, 14, 16, 382, 11, 16, 3, 17, 3, 17, 3, 17, 5, 17, 387, 10, 17, 3, 17, 3, 17, 5, 17, 391, 10, 17, 3, 17, 3, 17, 3, 18, 3, 18, 7, 18, 397, 10, 18, 12, 18, 14, 18, 400, 11, 18, 3, 18, 3, 18, 3, 19, 3, 19, 7, 19, 406, 10, 19, 12, 19, 14, 19, 409, 11, 19, 3, 19, 3, 19, 3, 20, 3, 20, 5, 20, 415, 10, 20, 3, 20, 3, 20, 7, 20, 419, 10, 20, 12, 20, 14, 20, 422, 11, 20, 3, 20, 5, 20, 425, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 436, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 443, 10, 22, 12, 22, 14, 22, 446, 11, 22, 3, 22, 3, 22, 5, 22, 450, 10, 22, 3, 22, 3, 22, 3, 23, 3, 23, 5, 23, 456, 10, 23, 3, 24, 3, 24, 5, 24, 460, 10, 24, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 472, 10, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 7, 29, 481, 10, 29, 12, 29, 14, 29, 484, 11, 29, 3, 29, 3, 29, 5, 29, 488, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 497, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 503, 10, 31, 12, 31, 14, 31, 506, 11, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 7, 32, 513, 10, 32, 12, 32, 14, 32, 516, 11, 32, 3, 32, 3, 32, 3, 32, 3, 33, 7, 33, 522, 10, 33, 12, 33, 14, 33, 525, 11, 33, 3, 33, 3, 33, 3, 33, 7, 33, 530, 10, 33, 12, 33, 14, 33, 533, 11, 33, 3, 33, 3, 33, 5, 33, 537, 10, 33, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 543, 10, 33, 12, 33, 14, 33, 546, 11, 33, 3, 33, 3, 33, 5, 33, 550, 10, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 560, 10, 34, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 7, 36, 568, 10, 36, 12, 36, 14, 36, 571, 11, 36, 3, 37, 3, 37, 3, 37, 5, 37, 576, 10, 37, 3, 38, 3, 38, 3, 38, 7, 38, 581, 10, 38, 12, 38, 14, 38, 584, 11, 38, 3, 39, 3, 39, 5, 39, 588, 10, 39, 3, 40, 3, 40, 3, 40, 3, 40, 7, 40, 594, 10, 40, 12, 40, 14, 40, 597, 11, 40, 3, 40, 5, 40, 600, 10, 40, 5, 40, 602, 10, 40, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 608, 10, 41, 3, 41, 3, 41, 3, 41, 5, 41, 613, 10, 41, 7, 41, 615, 10, 41, 12, 41, 14, 41, 618, 11, 41, 3, 42, 3, 42, 7, 42, 622, 10, 42, 12, 42, 14, 42, 625, 11, 42, 3, 42, 3, 42, 3, 42, 5, 42, 630, 10, 42, 5, 42, 632, 10, 42, 3, 43, 3, 43, 3, 43, 7, 43, 637, 10, 43, 12, 43, 14, 43, 640, 11, 43, 3, 44, 3, 44, 5, 44, 644, 10, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 7, 45, 651, 10, 45, 12, 45, 14, 45, 654, 11, 45, 3, 45, 3, 45, 5, 45, 658, 10, 45, 3, 45, 5, 45, 661, 10, 45, 3, 46, 7, 46, 664, 10, 46, 12, 46, 14, 46, 667, 11, 46, 3, 46, 3, 46, 3, 46, 3, 47, 7, 47, 673, 10, 47, 12, 47, 14, 47, 676, 11, 47, 3, 47, 3, 47, 7, 47, 680, 10, 47, 12, 47, 14, 47, 683, 11, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 7, 48, 691, 10, 48, 12, 48, 14, 48, 694, 11, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 702, 10, 49, 3, 50, 3, 50, 3, 51, 3, 51, 3, 52, 3, 52, 7, 52, 710, 10, 52, 12, 52, 14, 52, 713, 11, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 5, 53, 721, 10, 53, 3, 53, 3, 53, 3, 53, 5, 53, 726, 10, 53, 3, 53, 5, 53, 729, 10, 53, 3, 54, 3, 54, 3, 54, 7, 54, 734, 10, 54, 12, 54, 14, 54, 737, 11, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 5, 56, 746, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 752, 10, 57, 12, 57, 14, 57, 755, 11, 57, 5, 57, 757, 10, 57, 3, 57, 5, 57, 760, 10, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 7, 59, 771, 10, 59, 12, 59, 14, 59, 774, 11, 59, 3, 59, 3, 59, 3, 60, 7, 60, 779, 10, 60, 12, 60, 14, 60, 782, 11, 60, 3, 60, 3, 60, 5, 60, 786, 10, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 794, 10, 61, 3, 61, 3, 61, 5, 61, 798, 10, 61, 3, 61, 3, 61, 5, 61, 802, 10, 61, 3, 61, 3, 61, 5, 61, 806, 10, 61, 5, 61, 808, 10, 61, 3, 62, 3, 62, 5, 62, 812, 10, 62, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 818, 10, 63, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 7, 66, 827, 10, 66, 12, 66, 14, 66, 830, 11, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 839, 10, 67, 3, 68, 7, 68, 842, 10, 68, 12, 68, 14, 68, 845, 11, 68, 3, 68, 3, 68, 3, 68, 3, 69, 7, 69, 851, 10, 69, 12, 69, 14, 69, 854, 11, 69, 3, 69, 3, 69, 5, 69, 858, 10, 69, 3, 69, 5, 69, 861, 10, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 868, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 877, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 6, 70, 898, 10, 70, 13, 70, 14, 70, 899, 3, 70, 5, 70, 903, 10, 70, 3, 70, 5, 70, 906, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 912, 10, 70, 12, 70, 14, 70, 915, 11, 70, 3, 70, 5, 70, 918, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 924, 10, 70, 12, 70, 14, 70, 927, 11, 70, 3, 70, 7, 70, 930, 10, 70, 12, 70, 14, 70, 933, 11, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 943, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 952, 10, 70, 3, 70, 3, 70, 3, 70, 5, 70, 957, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 967, 10, 70, 3, 71, 3, 71, 3, 71, 7, 71, 972, 10, 71, 12, 71, 14, 71, 975, 11, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 7, 72, 985, 10, 72, 12, 72, 14, 72, 988, 11, 72, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 5, 74, 996, 10, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 7, 75, 1003, 10, 75, 12, 75, 14, 75, 1006, 11, 75, 3, 76, 7, 76, 1009, 10, 76, 12, 76, 14, 76, 1012, 11, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 6, 77, 1020, 10, 77, 13, 77, 14, 77, 1021, 3, 77, 6, 77, 1025, 10, 77, 13, 77, 14, 77, 1026, 3, 78, 3, 78, 3, 78, 5, 78, 1032, 10, 78, 3, 78, 3, 78, 3, 78, 5, 78, 1037, 10, 78, 3, 79, 3, 79, 5, 79, 1041, 10, 79, 3, 79, 3, 79, 5, 79, 1045, 10, 79, 3, 79, 3, 79, 5, 79, 1049, 10, 79, 5, 79, 1051, 10, 79, 3, 80, 3, 80, 5, 80, 1055, 10, 80, 3, 81, 7, 81, 1058, 10, 81, 12, 81, 14, 81, 1061, 11, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 7, 83, 1075, 10, 83, 12, 83, 14, 83, 1078, 11, 83, 3, 84, 3, 84, 3, 84, 5, 84, 1083, 10, 84, 3, 84, 3, 84, 3, 84, 3, 84, 5, 84, 1089, 10, 84, 3, 84, 3, 84, 3, 84, 3, 84, 5, 84, 1095, 10, 84, 3, 84, 5, 84, 1098, 10, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 7, 85, 1107, 10, 85, 12, 85, 14, 85, 1110, 11, 85, 3, 85, 3, 85, 3, 85, 7, 85, 1115, 10, 85, 12, 85, 14, 85, 1118, 11, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1131, 10, 85, 3, 85, 3, 85, 5, 85, 1135, 10, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1140, 10, 85, 3, 85, 3, 85, 5, 85, 1144, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1160, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1200, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1206, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1221, 10, 85, 3, 85, 7, 85, 1224, 10, 85, 12, 85, 14, 85, 1227, 11, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 5, 87, 1236, 10, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 7, 87, 1243, 10, 87, 12, 87, 14, 87, 1246, 11, 87, 3, 87, 5, 87, 1249, 10, 87, 3, 88, 3, 88, 5, 88, 1253, 10, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 5, 89, 1271, 10, 89, 5, 89, 1273, 10, 89, 3, 90, 3, 90, 3, 90, 5, 90, 1278, 10, 90, 3, 90, 7, 90, 1281, 10, 90, 12, 90, 14, 90, 1284, 11, 90, 3, 90, 3, 90, 5, 90, 1288, 10, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 5, 91, 1297, 10, 91, 5, 91, 1299, 10, 91, 3, 92, 3, 92, 5, 92, 1303, 10, 92, 3, 92, 3, 92, 3, 92, 5, 92, 1308, 10, 92, 7, 92, 1310, 10, 92, 12, 92, 14, 92, 1313, 11, 92, 3, 92, 5, 92, 1316, 10, 92, 3, 93, 3, 93, 5, 93, 1320, 10, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 7, 94, 1328, 10, 94, 12, 94, 14, 94, 1331, 11, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 7, 94, 1340, 10, 94, 12, 94, 14, 94, 1343, 11, 94, 3, 94, 3, 94, 7, 94, 1347, 10, 94, 12, 94, 14, 94, 1350, 11, 94, 5, 94, 1352, 10, 94, 3, 95, 3, 95, 5, 95, 1356, 10, 95, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 5, 97, 1364, 10, 97, 3, 98, 3, 98, 3, 98, 5, 98, 1369, 10, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 7, 100, 1378, 10, 100, 12, 100, 14, 100, 1381, 11, 100, 3, 101, 7, 101, 1384, 10, 101, 12, 101, 14, 101, 1387, 11, 101, 3, 101, 3, 101, 5, 101, 1391, 10, 101, 3, 101, 7, 101, 1394, 10, 101, 12, 101, 14, 101, 1397, 11, 101, 3, 101, 3, 101, 7, 101, 1401, 10, 101, 12, 101, 14, 101, 1404, 11, 101, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 7, 103, 1412, 10, 103, 12, 103, 14, 103, 1415, 11, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1423, 10, 104, 5, 104, 1425, 10, 104, 3, 105, 3, 105, 3, 105, 3, 105, 5, 105, 1431, 10, 105, 3, 106, 3, 106, 5, 106, 1435, 10, 106, 3, 106, 3, 106, 3, 106, 2, 3, 168, 107, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 2, 14, 4, 2, 19, 19, 42, 42, 3, 2, 53, 56, 3, 2, 57, 58, 3, 2, 85, 88, 3, 2, 75, 76, 4, 2, 89, 90, 94, 94, 3, 2, 87, 88, 4, 2, 73, 74, 80, 81, 4, 2, 79, 79, 82, 82, 4, 2, 72, 72, 95, 105, 3, 2, 85, 86, 10, 2, 5, 5, 7, 7, 10, 10, 16, 16, 22, 22, 29, 29, 31, 31, 39, 39, 2, 1599, 2, 213, 3, 2, 2, 2, 4, 232, 3, 2, 2, 2, 6, 239, 3, 2, 2, 2, 8, 263, 3, 2, 2, 2, 10, 270, 3, 2, 2, 2, 12, 280, 3, 2, 2, 2, 14, 284, 3, 2, 2, 2, 16, 286, 3, 2, 2, 2, 18, 301, 3, 2, 2, 2, 20, 315, 3, 2, 2, 2, 22, 329, 3, 2, 2, 2, 24, 337, 3, 2, 2, 2, 26, 355, 3, 2, 2, 2, 28, 366, 3, 2, 2, 2, 30, 376, 3, 2, 2, 2, 32, 383, 3, 2, 2, 2, 34, 394, 3, 2, 2, 2, 36, 403, 3, 2, 2, 2, 38, 424, 3, 2, 2, 2, 40, 435, 3, 2, 2, 2, 42, 437, 3, 2, 2, 2, 44, 455, 3, 2, 2, 2, 46, 459, 3, 2, 2, 2, 48, 461, 3, 2, 2, 2, 50, 464, 3, 2, 2, 2, 52, 467, 3, 2, 2, 2, 54, 475, 3, 2, 2, 2, 56, 487, 3, 2, 2, 2, 58, 496, 3, 2, 2, 2, 60, 498, 3, 2, 2, 2, 62, 509, 3, 2, 2, 2, 64, 523, 3, 2, 2, 2, 66, 559, 3, 2, 2, 2, 68, 561, 3, 2, 2, 2, 70, 564, 3, 2, 2, 2, 72, 572, 3, 2, 2, 2, 74, 577, 3, 2, 2, 2, 76, 587, 3, 2, 2, 2, 78, 589, 3, 2, 2, 2, 80, 605, 3, 2, 2, 2, 82, 631, 3, 2, 2, 2, 84, 633, 3, 2, 2, 2, 86, 641, 3, 2, 2, 2, 88, 660, 3, 2, 2, 2, 90, 665, 3, 2, 2, 2, 92, 674, 3, 2, 2, 2, 94, 687, 3, 2, 2, 2, 96, 701, 3, 2, 2, 2, 98, 703, 3, 2, 2, 2, 100, 705, 3, 2, 2, 2, 102, 711, 3, 2, 2, 2, 104, 720, 3, 2, 2, 2, 106, 730, 3, 2, 2, 2, 108, 738, 3, 2, 2, 2, 110, 745, 3, 2, 2, 2, 112, 747, 3, 2, 2, 2, 114, 763, 3, 2, 2, 2, 116, 768, 3, 2, 2, 2, 118, 785, 3, 2, 2, 2, 120, 807, 3, 2, 2, 2, 122, 811, 3, 2, 2, 2, 124, 813, 3, 2, 2, 2, 126, 819, 3, 2, 2, 2, 128, 821, 3, 2, 2, 2, 130, 824, 3, 2, 2, 2, 132, 838, 3, 2, 2, 2, 134, 843, 3, 2, 2, 2, 136, 860, 3, 2, 2, 2, 138, 966, 3, 2, 2, 2, 140, 968, 3, 2, 2, 2, 142, 981, 3, 2, 2, 2, 144, 989, 3, 2, 2, 2, 146, 992, 3, 2, 2, 2, 148, 999, 3, 2, 2, 2, 150, 1010, 3, 2, 2, 2, 152, 1019, 3, 2, 2, 2, 154, 1036, 3, 2, 2, 2, 156, 1050, 3, 2, 2, 2, 158, 1054, 3, 2, 2, 2, 160, 1059, 3, 2, 2, 2, 162, 1067, 3, 2, 2, 2, 164, 1071, 3, 2, 2, 2, 166, 1097, 3, 2, 2, 2, 168, 1143, 3, 2, 2, 2, 170, 1228, 3, 2, 2, 2, 172, 1248, 3, 2, 2, 2, 174, 1252, 3, 2, 2, 2, 176, 1272, 3, 2, 2, 2, 178, 1277, 3, 2, 2, 2, 180, 1298, 3, 2, 2, 2, 182, 1315, 3, 2, 2, 2, 184, 1317, 3, 2, 2, 2, 186, 1323, 3, 2, 2, 2, 188, 1353, 3, 2, 2, 2, 190, 1357, 3, 2, 2, 2, 192, 1363, 3, 2, 2, 2, 194, 1368, 3, 2, 2, 2, 196, 1370, 3, 2, 2, 2, 198, 1374, 3, 2, 2, 2, 200, 1385, 3, 2, 2, 2, 202, 1405, 3, 2, 2, 2, 204, 1407, 3, 2, 2, 2, 206, 1424, 3, 2, 2, 2, 208, 1430, 3, 2, 2, 2, 210, 1432, 3, 2, 2, 2, 212, 214, 5, 4, 3, 2, 213, 212, 3, 2, 2, 2, 213, 214, 3, 2, 2, 2, 214, 218, 3, 2, 2, 2, 215, 217, 5, 6, 4, 2, 216, 215, 3, 2, 2, 2, 217, 220, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 224, 3, 2, 2, 2, 220, 218, 3, 2, 2, 2, 221, 223, 5, 8, 5, 2, 222, 221, 3, 2, 2, 2, 223, 226, 3, 2, 2, 2, 224, 222, 3, 2, 2, 2, 224, 225, 3, 2, 2, 2, 225, 227, 3, 2, 2, 2, 226, 224, 3, 2, 2, 2, 227, 228, 7, 2, 2, 3, 228, 3, 3, 2, 2, 2, 229, 231, 5, 104, 53, 2, 230, 229, 3, 2, 2, 2, 231, 234, 3, 2, 2, 2, 232, 230, 3, 2, 2, 2, 232, 233, 3, 2, 2, 2, 233, 235, 3, 2, 2, 2, 234, 232, 3, 2, 2, 2, 235, 236, 7, 34, 2, 2, 236, 237, 5, 94, 48, 2, 237, 238, 7, 69, 2, 2, 238, 5, 3, 2, 2, 2, 239, 241, 7, 27, 2, 2, 240, 242, 7, 40, 2, 2, 241, 240, 3, 2, 2, 2, 241, 242, 3, 2, 2, 2, 242, 243, 3, 2, 2, 2, 243, 246, 5, 94, 48, 2, 244, 245, 7, 71, 2, 2, 245, 247, 7, 89, 2, 2, 246, 244, 3, 2, 2, 2, 246, 247, 3, 2, 2, 2, 247, 248, 3, 2, 2, 2, 248, 249, 7, 69, 2, 2, 249, 7, 3, 2, 2, 2, 250, 252, 5, 12, 7, 2, 251, 250, 3, 2, 2, 2, 252, 255, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 253, 254, 3, 2, 2, 2, 254, 260, 3, 2, 2, 2, 255, 253, 3, 2, 2, 2, 256, 261, 5, 16, 9, 2, 257, 261, 5, 24, 13, 2, 258, 261, 5, 32, 17, 2, 259, 261, 5, 114, 58, 2, 260, 256, 3, 2, 2, 2, 260, 257, 3, 2, 2, 2, 260, 258, 3, 2, 2, 2, 260, 259, 3, 2, 2, 2, 261, 264, 3, 2, 2, 2, 262, 264, 7, 69, 2, 2, 263, 253, 3, 2, 2, 2, 263, 262, 3, 2, 2, 2, 264, 9, 3, 2, 2, 2, 265, 271, 5, 12, 7, 2, 266, 271, 7, 32, 2, 2, 267, 271, 7, 44, 2, 2, 268, 271, 7, 48, 2, 2, 269, 271, 7, 51, 2, 2, 270, 265, 3, 2, 2, 2, 270, 266, 3, 2, 2, 2, 270, 267, 3, 2, 2, 2, 270, 268, 3, 2, 2, 2, 270, 269, 3, 2, 2, 2, 271, 11, 3, 2, 2, 2, 272, 281, 5, 104, 53, 2, 273, 281, 7, 37, 2, 2, 274, 281, 7, 36, 2, 2, 275, 281, 7, 35, 2, 2, 276, 281, 7, 40, 2, 2, 277, 281, 7, 3, 2, 2, 278, 281, 7, 20, 2, 2, 279, 281, 7, 41, 2, 2, 280, 272, 3, 2, 2, 2, 280, 273, 3, 2, 2, 2, 280, 274, 3, 2, 2, 2, 280, 275, 3, 2, 2, 2, 280, 276, 3, 2, 2, 2, 280, 277, 3, 2, 2, 2, 280, 278, 3, 2, 2, 2, 280, 279, 3, 2, 2, 2, 281, 13, 3, 2, 2, 2, 282, 285, 7, 20, 2, 2, 283, 285, 5, 104, 53, 2, 284, 282, 3, 2, 2, 2, 284, 283, 3, 2, 2, 2, 285, 15, 3, 2, 2, 2, 286, 287, 7, 11, 2, 2, 287, 289, 7, 113, 2, 2, 288, 290, 5, 18, 10, 2, 289, 288, 3, 2, 2, 2, 289, 290, 3, 2, 2, 2, 290, 293, 3, 2, 2, 2, 291, 292, 7, 19, 2, 2, 292, 294, 5, 200, 101, 2, 293, 291, 3, 2, 2, 2, 293, 294, 3, 2, 2, 2, 294, 297, 3, 2, 2, 2, 295, 296, 7, 26, 2, 2, 296, 298, 5, 198, 100, 2, 297, 295, 3, 2, 2, 2, 297, 298, 3, 2, 2, 2, 298, 299, 3, 2, 2, 2, 299, 300, 5, 34, 18, 2, 300, 17, 3, 2, 2, 2, 301, 302, 7, 74, 2, 2, 302, 307, 5, 20, 11, 2, 303, 304, 7, 70, 2, 2, 304, 306, 5, 20, 11, 2, 305, 303, 3, 2, 2, 2, 306, 309, 3, 2, 2, 2, 307, 305, 3, 2, 2, 2, 307, 308, 3, 2, 2, 2, 308, 310, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 310, 311, 7, 73, 2, 2, 311, 19, 3, 2, 2, 2, 312, 314, 5, 104, 53, 2, 313, 312, 3, 2, 2, 2, 314, 317, 3, 2, 2, 2, 315, 313, 3, 2, 2, 2, 315, 316, 3, 2, 2, 2, 316, 318, 3, 2, 2, 2, 317, 315, 3, 2, 2, 2, 318, 327, 7, 113, 2, 2, 319, 323, 7, 19, 2, 2, 320, 322, 5, 104, 53, 2, 321, 320, 3, 2, 2, 2, 322, 325, 3, 2, 2, 2, 323, 321, 3, 2, 2, 2, 323, 324, 3, 2, 2, 2, 324, 326, 3, 2, 2, 2, 325, 323, 3, 2, 2, 2, 326, 328, 5, 22, 12, 2, 327, 319, 3, 2, 2, 2, 327, 328, 3, 2, 2, 2, 328, 21, 3, 2, 2, 2, 329, 334, 5, 200, 101, 2, 330, 331, 7, 91, 2, 2, 331, 333, 5, 200, 101, 2, 332, 330, 3, 2, 2, 2, 333, 336, 3, 2, 2, 2, 334, 332, 3, 2, 2, 2, 334, 335, 3, 2, 2, 2, 335, 23, 3, 2, 2, 2, 336, 334, 3, 2, 2, 2, 337, 338, 7, 18, 2, 2, 338, 341, 7, 113, 2, 2, 339, 340, 7, 26, 2, 2, 340, 342, 5, 198, 100, 2, 341, 339, 3, 2, 2, 2, 341, 342, 3, 2, 2, 2, 342, 343, 3, 2, 2, 2, 343, 345, 7, 65, 2, 2, 344, 346, 5, 26, 14, 2, 345, 344, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346, 348, 3, 2, 2, 2, 347, 349, 7, 70, 2, 2, 348, 347, 3, 2, 2, 2, 348, 349, 3, 2, 2, 2, 349, 351, 3, 2, 2, 2, 350, 352, 5, 30, 16, 2, 351, 350, 3, 2, 2, 2, 351, 352, 3, 2, 2, 2, 352, 353, 3, 2, 2, 2, 353, 354, 7, 66, 2, 2, 354, 25, 3, 2, 2, 2, 355, 360, 5, 28, 15, 2, 356, 357, 7, 70, 2, 2, 357, 359, 5, 28, 15, 2, 358, 356, 3, 2, 2, 2, 359, 362, 3, 2, 2, 2, 360, 358, 3, 2, 2, 2, 360, 361, 3, 2, 2, 2, 361, 27, 3, 2, 2, 2, 362, 360, 3, 2, 2, 2, 363, 365, 5, 104, 53, 2, 364, 363, 3, 2, 2, 2, 365, 368, 3, 2, 2, 2, 366, 364, 3, 2, 2, 2, 366, 367, 3, 2, 2, 2, 367, 369, 3, 2, 2, 2, 368, 366, 3, 2, 2, 2, 369, 371, 7, 113, 2, 2, 370, 372, 5, 210, 106, 2, 371, 370, 3, 2, 2, 2, 371, 372, 3, 2, 2, 2, 372, 374, 3, 2, 2, 2, 373, 375, 5, 34, 18, 2, 374, 373, 3, 2, 2, 2, 374, 375, 3, 2, 2, 2, 375, 29, 3, 2, 2, 2, 376, 380, 7, 69, 2, 2, 377, 379, 5, 38, 20, 2, 378, 377, 3, 2, 2, 2, 379, 382, 3, 2, 2, 2, 380, 378, 3, 2, 2, 2, 380, 381, 3, 2, 2, 2, 381, 31, 3, 2, 2, 2, 382, 380, 3, 2, 2, 2, 383, 384, 7, 30, 2, 2, 384, 386, 7, 113, 2, 2, 385, 387, 5, 18, 10, 2, 386, 385, 3, 2, 2, 2, 386, 387, 3, 2, 2, 2, 387, 390, 3, 2, 2, 2, 388, 389, 7, 19, 2, 2, 389, 391, 5, 198, 100, 2, 390, 388, 3, 2, 2, 2, 390, 391, 3, 2, 2, 2, 391, 392, 3, 2, 2, 2, 392, 393, 5, 36, 19, 2, 393, 33, 3, 2, 2, 2, 394, 398, 7, 65, 2, 2, 395, 397, 5, 38, 20, 2, 396, 395, 3, 2, 2, 2, 397, 400, 3, 2, 2, 2, 398, 396, 3, 2, 2, 2, 398, 399, 3, 2, 2, 2, 399, 401, 3, 2, 2, 2, 400, 398, 3, 2, 2, 2, 401, 402, 7, 66, 2, 2, 402, 35, 3, 2, 2, 2, 403, 407, 7, 65, 2, 2, 404, 406, 5, 56, 29, 2, 405, 404, 3, 2, 2, 2, 406, 409, 3, 2, 2, 2, 407, 405, 3, 2, 2, 2, 407, 408, 3, 2, 2, 2, 408, 410, 3, 2, 2, 2, 409, 407, 3, 2, 2, 2, 410, 411, 7, 66, 2, 2, 411, 37, 3, 2, 2, 2, 412, 425, 7, 69, 2, 2, 413, 415, 7, 40, 2, 2, 414, 413, 3, 2, 2, 2, 414, 415, 3, 2, 2, 2, 415, 416, 3, 2, 2, 2, 416, 425, 5, 130, 66, 2, 417, 419, 5, 10, 6, 2, 418, 417, 3, 2, 2, 2, 419, 422, 3, 2, 2, 2, 420, 418, 3, 2, 2, 2, 420, 421, 3, 2, 2, 2, 421, 423, 3, 2, 2, 2, 422, 420, 3, 2, 2, 2, 423, 425, 5, 40, 21, 2, 424, 412, 3, 2, 2, 2, 424, 414, 3, 2, 2, 2, 424, 420, 3, 2, 2, 2, 425, 39, 3, 2, 2, 2, 426, 436, 5, 42, 22, 2, 427, 436, 5, 48, 25, 2, 428, 436, 5, 54, 28, 2, 429, 436, 5, 52, 27, 2, 430, 436, 5, 50, 26, 2, 431, 436, 5, 32, 17, 2, 432, 436, 5, 114, 58, 2, 433, 436, 5, 16, 9, 2, 434, 436, 5, 24, 13, 2, 435, 426, 3, 2, 2, 2, 435, 427, 3, 2, 2, 2, 435, 428, 3, 2, 2, 2, 435, 429, 3, 2, 2, 2, 435, 430, 3, 2, 2, 2, 435, 431, 3, 2, 2, 2, 435, 432, 3, 2, 2, 2, 435, 433, 3, 2, 2, 2, 435, 434, 3, 2, 2, 2, 436, 41, 3, 2, 2, 2, 437, 438, 5, 46, 24, 2, 438, 439, 7, 113, 2, 2, 439, 444, 5, 86, 44, 2, 440, 441, 7, 67, 2, 2, 441, 443, 7, 68, 2, 2, 442, 440, 3, 2, 2, 2, 443, 446, 3, 2, 2, 2, 444, 442, 3, 2, 2, 2, 444, 445, 3, 2, 2, 2, 445, 449, 3, 2, 2, 2, 446, 444, 3, 2, 2, 2, 447, 448, 7, 47, 2, 2, 448, 450, 5, 84, 43, 2, 449, 447, 3, 2, 2, 2, 449, 450, 3, 2, 2, 2, 450, 451, 3, 2, 2, 2, 451, 452, 5, 44, 23, 2, 452, 43, 3, 2, 2, 2, 453, 456, 5, 130, 66, 2, 454, 456, 7, 69, 2, 2, 455, 453, 3, 2, 2, 2, 455, 454, 3, 2, 2, 2, 456, 45, 3, 2, 2, 2, 457, 460, 5, 200, 101, 2, 458, 460, 7, 50, 2, 2, 459, 457, 3, 2, 2, 2, 459, 458, 3, 2, 2, 2, 460, 47, 3, 2, 2, 2, 461, 462, 5, 18, 10, 2, 462, 463, 5, 42, 22, 2, 463, 49, 3, 2, 2, 2, 464, 465, 5, 18, 10, 2, 465, 466, 5, 52, 27, 2, 466, 51, 3, 2, 2, 2, 467, 468, 7, 113, 2, 2, 468, 471, 5, 86, 44, 2, 469, 470, 7, 47, 2, 2, 470, 472, 5, 84, 43, 2, 471, 469, 3, 2, 2, 2, 471, 472, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 474, 5, 130, 66, 2, 474, 53, 3, 2, 2, 2, 475, 476, 5, 200, 101, 2, 476, 477, 5, 70, 36, 2, 477, 478, 7, 69, 2, 2, 478, 55, 3, 2, 2, 2, 479, 481, 5, 10, 6, 2, 480, 479, 3, 2, 2, 2, 481, 484, 3, 2, 2, 2, 482, 480, 3, 2, 2, 2, 482, 483, 3, 2, 2, 2, 483, 485, 3, 2, 2, 2, 484, 482, 3, 2, 2, 2, 485, 488, 5, 58, 30, 2, 486, 488, 7, 69, 2, 2, 487, 482, 3, 2, 2, 2, 487, 486, 3, 2, 2, 2, 488, 57, 3, 2, 2, 2, 489, 497, 5, 60, 31, 2, 490, 497, 5, 64, 33, 2, 491, 497, 5, 68, 35, 2, 492, 497, 5, 32, 17, 2, 493, 497, 5, 114, 58, 2, 494, 497, 5, 16, 9, 2, 495, 497, 5, 24, 13, 2, 496, 489, 3, 2, 2, 2, 496, 490, 3, 2, 2, 2, 496, 491, 3, 2, 2, 2, 496, 492, 3, 2, 2, 2, 496, 493, 3, 2, 2, 2, 496, 494, 3, 2, 2, 2, 496, 495, 3, 2, 2, 2, 497, 59, 3, 2, 2, 2, 498, 499, 5, 200, 101, 2, 499, 504, 5, 62, 32, 2, 500, 501, 7, 70, 2, 2, 501, 503, 5, 62, 32, 2, 502, 500, 3, 2, 2, 2, 503, 506, 3, 2, 2, 2, 504, 502, 3, 2, 2, 2, 504, 505, 3, 2, 2, 2, 505, 507, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 507, 508, 7, 69, 2, 2, 508, 61, 3, 2, 2, 2, 509, 514, 7, 113, 2, 2, 510, 511, 7, 67, 2, 2, 511, 513, 7, 68, 2, 2, 512, 510, 3, 2, 2, 2, 513, 516, 3, 2, 2, 2, 514, 512, 3, 2, 2, 2, 514, 515, 3, 2, 2, 2, 515, 517, 3, 2, 2, 2, 516, 514, 3, 2, 2, 2, 517, 518, 7, 72, 2, 2, 518, 519, 5, 76, 39, 2, 519, 63, 3, 2, 2, 2, 520, 522, 5, 66, 34, 2, 521, 520, 3, 2, 2, 2, 522, 525, 3, 2, 2, 2, 523, 521, 3, 2, 2, 2, 523, 524, 3, 2, 2, 2, 524, 536, 3, 2, 2, 2, 525, 523, 3, 2, 2, 2, 526, 537, 5, 46, 24, 2, 527, 531, 5, 18, 10, 2, 528, 530, 5, 104, 53, 2, 529, 528, 3, 2, 2, 2, 530, 533, 3, 2, 2, 2, 531, 529, 3, 2, 2, 2, 531, 532, 3, 2, 2, 2, 532, 534, 3, 2, 2, 2, 533, 531, 3, 2, 2, 2, 534, 535, 5, 46, 24, 2, 535, 537, 3, 2, 2, 2, 536, 526, 3, 2, 2, 2, 536, 527, 3, 2, 2, 2, 537, 538, 3, 2, 2, 2, 538, 539, 7, 113, 2, 2, 539, 544, 5, 86, 44, 2, 540, 541, 7, 67, 2, 2, 541, 543, 7, 68, 2, 2, 542, 540, 3, 2, 2, 2, 543, 546, 3, 2, 2, 2, 544, 542, 3, 2, 2, 2, 544, 545, 3, 2, 2, 2, 545, 549, 3, 2, 2, 2, 546, 544, 3, 2, 2, 2, 547, 548, 7, 47, 2, 2, 548, 550, 5, 84, 43, 2, 549, 547, 3, 2, 2, 2, 549, 550, 3, 2, 2, 2, 550, 551, 3, 2, 2, 2, 551, 552, 5, 44, 23, 2, 552, 65, 3, 2, 2, 2, 553, 560, 5, 104, 53, 2, 554, 560, 7, 37, 2, 2, 555, 560, 7, 3, 2, 2, 556, 560, 7, 14, 2, 2, 557, 560, 7, 40, 2, 2, 558, 560, 7, 41, 2, 2, 559, 553, 3, 2, 2, 2, 559, 554, 3, 2, 2, 2, 559, 555, 3, 2, 2, 2, 559, 556, 3, 2, 2, 2, 559, 557, 3, 2, 2, 2, 559, 558, 3, 2, 2, 2, 560, 67, 3, 2, 2, 2, 561, 562, 5, 18, 10, 2, 562, 563, 5, 64, 33, 2, 563, 69, 3, 2, 2, 2, 564, 569, 5, 72, 37, 2, 565, 566, 7, 70, 2, 2, 566, 568, 5, 72, 37, 2, 567, 565, 3, 2, 2, 2, 568, 571, 3, 2, 2, 2, 569, 567, 3, 2, 2, 2, 569, 570, 3, 2, 2, 2, 570, 71, 3, 2, 2, 2, 571, 569, 3, 2, 2, 2, 572, 575, 5, 74, 38, 2, 573, 574, 7, 72, 2, 2, 574, 576, 5, 76, 39, 2, 575, 573, 3, 2, 2, 2, 575, 576, 3, 2, 2, 2, 576, 73, 3, 2, 2, 2, 577, 582, 7, 113, 2, 2, 578, 579, 7, 67, 2, 2, 579, 581, 7, 68, 2, 2, 580, 578, 3, 2, 2, 2, 581, 584, 3, 2, 2, 2, 582, 580, 3, 2, 2, 2, 582, 583, 3, 2, 2, 2, 583, 75, 3, 2, 2, 2, 584, 582, 3, 2, 2, 2, 585, 588, 5, 78, 40, 2, 586, 588, 5, 168, 85, 2, 587, 585, 3, 2, 2, 2, 587, 586, 3, 2, 2, 2, 588, 77, 3, 2, 2, 2, 589, 601, 7, 65, 2, 2, 590, 595, 5, 76, 39, 2, 591, 592, 7, 70, 2, 2, 592, 594, 5, 76, 39, 2, 593, 591, 3, 2, 2, 2, 594, 597, 3, 2, 2, 2, 595, 593, 3, 2, 2, 2, 595, 596, 3, 2, 2, 2, 596, 599, 3, 2, 2, 2, 597, 595, 3, 2, 2, 2, 598, 600, 7, 70, 2, 2, 599, 598, 3, 2, 2, 2, 599, 600, 3, 2, 2, 2, 600, 602, 3, 2, 2, 2, 601, 590, 3, 2, 2, 2, 601, 602, 3, 2, 2, 2, 602, 603, 3, 2, 2, 2, 603, 604, 7, 66, 2, 2, 604, 79, 3, 2, 2, 2, 605, 607, 7, 113, 2, 2, 606, 608, 5, 204, 103, 2, 607, 606, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 616, 3, 2, 2, 2, 609, 610, 7, 71, 2, 2, 610, 612, 7, 113, 2, 2, 611, 613, 5, 204, 103, 2, 612, 611, 3, 2, 2, 2, 612, 613, 3, 2, 2, 2, 613, 615, 3, 2, 2, 2, 614, 609, 3, 2, 2, 2, 615, 618, 3, 2, 2, 2, 616, 614, 3, 2, 2, 2, 616, 617, 3, 2, 2, 2, 617, 81, 3, 2, 2, 2, 618, 616, 3, 2, 2, 2, 619, 632, 5, 200, 101, 2, 620, 622, 5, 104, 53, 2, 621, 620, 3, 2, 2, 2, 622, 625, 3, 2, 2, 2, 623, 621, 3, 2, 2, 2, 623, 624, 3, 2, 2, 2, 624, 626, 3, 2, 2, 2, 625, 623, 3, 2, 2, 2, 626, 629, 7, 77, 2, 2, 627, 628, 9, 2, 2, 2, 628, 630, 5, 200, 101, 2, 629, 627, 3, 2, 2, 2, 629, 630, 3, 2, 2, 2, 630, 632, 3, 2, 2, 2, 631, 619, 3, 2, 2, 2, 631, 623, 3, 2, 2, 2, 632, 83, 3, 2, 2, 2, 633, 638, 5, 94, 48, 2, 634, 635, 7, 70, 2, 2, 635, 637, 5, 94, 48, 2, 636, 634, 3, 2, 2, 2, 637, 640, 3, 2, 2, 2, 638, 636, 3, 2, 2, 2, 638, 639, 3, 2, 2, 2, 639, 85, 3, 2, 2, 2, 640, 638, 3, 2, 2, 2, 641, 643, 7, 63, 2, 2, 642, 644, 5, 88, 45, 2, 643, 642, 3, 2, 2, 2, 643, 644, 3, 2, 2, 2, 644, 645, 3, 2, 2, 2, 645, 646, 7, 64, 2, 2, 646, 87, 3, 2, 2, 2, 647, 652, 5, 90, 46, 2, 648, 649, 7, 70, 2, 2, 649, 651, 5, 90, 46, 2, 650, 648, 3, 2, 2, 2, 651, 654, 3, 2, 2, 2, 652, 650, 3, 2, 2, 2, 652, 653, 3, 2, 2, 2, 653, 657, 3, 2, 2, 2, 654, 652, 3, 2, 2, 2, 655, 656, 7, 70, 2, 2, 656, 658, 5, 92, 47, 2, 657, 655, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 661, 3, 2, 2, 2, 659, 661, 5, 92, 47, 2, 660, 647, 3, 2, 2, 2, 660, 659, 3, 2, 2, 2, 661, 89, 3, 2, 2, 2, 662, 664, 5, 14, 8, 2, 663, 662, 3, 2, 2, 2, 664, 667, 3, 2, 2, 2, 665, 663, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 668, 3, 2, 2, 2, 667, 665, 3, 2, 2, 2, 668, 669, 5, 200, 101, 2, 669, 670, 5, 74, 38, 2, 670, 91, 3, 2, 2, 2, 671, 673, 5, 14, 8, 2, 672, 671, 3, 2, 2, 2, 673, 676, 3, 2, 2, 2, 674, 672, 3, 2, 2, 2, 674, 675, 3, 2, 2, 2, 675, 677, 3, 2, 2, 2, 676, 674, 3, 2, 2, 2, 677, 681, 5, 200, 101, 2, 678, 680, 5, 104, 53, 2, 679, 678, 3, 2, 2, 2, 680, 683, 3, 2, 2, 2, 681, 679, 3, 2, 2, 2, 681, 682, 3, 2, 2, 2, 682, 684, 3, 2, 2, 2, 683, 681, 3, 2, 2, 2, 684, 685, 7, 109, 2, 2, 685, 686, 5, 74, 38, 2, 686, 93, 3, 2, 2, 2, 687, 692, 7, 113, 2, 2, 688, 689, 7, 71, 2, 2, 689, 691, 7, 113, 2, 2, 690, 688, 3, 2, 2, 2, 691, 694, 3, 2, 2, 2, 692, 690, 3, 2, 2, 2, 692, 693, 3, 2, 2, 2, 693, 95, 3, 2, 2, 2, 694, 692, 3, 2, 2, 2, 695, 702, 5, 98, 50, 2, 696, 702, 5, 100, 51, 2, 697, 702, 7, 60, 2, 2, 698, 702, 7, 61, 2, 2, 699, 702, 7, 59, 2, 2, 700, 702, 7, 62, 2, 2, 701, 695, 3, 2, 2, 2, 701, 696, 3, 2, 2, 2, 701, 697, 3, 2, 2, 2, 701, 698, 3, 2, 2, 2, 701, 699, 3, 2, 2, 2, 701, 700, 3, 2, 2, 2, 702, 97, 3, 2, 2, 2, 703, 704, 9, 3, 2, 2, 704, 99, 3, 2, 2, 2, 705, 706, 9, 4, 2, 2, 706, 101, 3, 2, 2, 2, 707, 708, 7, 113, 2, 2, 708, 710, 7, 71, 2, 2, 709, 707, 3, 2, 2, 2, 710, 713, 3, 2, 2, 2, 711, 709, 3, 2, 2, 2, 711, 712, 3, 2, 2, 2, 712, 714, 3, 2, 2, 2, 713, 711, 3, 2, 2, 2, 714, 715, 7, 108, 2, 2, 715, 716, 7, 113, 2, 2, 716, 103, 3, 2, 2, 2, 717, 718, 7, 108, 2, 2, 718, 721, 5, 94, 48, 2, 719, 721, 5, 102, 52, 2, 720, 717, 3, 2, 2, 2, 720, 719, 3, 2, 2, 2, 721, 728, 3, 2, 2, 2, 722, 725, 7, 63, 2, 2, 723, 726, 5, 106, 54, 2, 724, 726, 5, 110, 56, 2, 725, 723, 3, 2, 2, 2, 725, 724, 3, 2, 2, 2, 725, 726, 3, 2, 2, 2, 726, 727, 3, 2, 2, 2, 727, 729, 7, 64, 2, 2, 728, 722, 3, 2, 2, 2, 728, 729, 3, 2, 2, 2, 729, 105, 3, 2, 2, 2, 730, 735, 5, 108, 55, 2, 731, 732, 7, 70, 2, 2, 732, 734, 5, 108, 55, 2, 733, 731, 3, 2, 2, 2, 734, 737, 3, 2, 2, 2, 735, 733, 3, 2, 2, 2, 735, 736, 3, 2, 2, 2, 736, 107, 3, 2, 2, 2, 737, 735, 3, 2, 2, 2, 738, 739, 7, 113, 2, 2, 739, 740, 7, 72, 2, 2, 740, 741, 5, 110, 56, 2, 741, 109, 3, 2, 2, 2, 742, 746, 5, 168, 85, 2, 743, 746, 5, 104, 53, 2, 744, 746, 5, 112, 57, 2, 745, 742, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 745, 744, 3, 2, 2, 2, 746, 111, 3, 2, 2, 2, 747, 756, 7, 65, 2, 2, 748, 753, 5, 110, 56, 2, 749, 750, 7, 70, 2, 2, 750, 752, 5, 110, 56, 2, 751, 749, 3, 2, 2, 2, 752, 755, 3, 2, 2, 2, 753, 751, 3, 2, 2, 2, 753, 754, 3, 2, 2, 2, 754, 757, 3, 2, 2, 2, 755, 753, 3, 2, 2, 2, 756, 748, 3, 2, 2, 2, 756, 757, 3, 2, 2, 2, 757, 759, 3, 2, 2, 2, 758, 760, 7, 70, 2, 2, 759, 758, 3, 2, 2, 2, 759, 760, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 762, 7, 66, 2, 2, 762, 113, 3, 2, 2, 2, 763, 764, 7, 108, 2, 2, 764, 765, 7, 30, 2, 2, 765, 766, 7, 113, 2, 2, 766, 767, 5, 116, 59, 2, 767, 115, 3, 2, 2, 2, 768, 772, 7, 65, 2, 2, 769, 771, 5, 118, 60, 2, 770, 769, 3, 2, 2, 2, 771, 774, 3, 2, 2, 2, 772, 770, 3, 2, 2, 2, 772, 773, 3, 2, 2, 2, 773, 775, 3, 2, 2, 2, 774, 772, 3, 2, 2, 2, 775, 776, 7, 66, 2, 2, 776, 117, 3, 2, 2, 2, 777, 779, 5, 10, 6, 2, 778, 777, 3, 2, 2, 2, 779, 782, 3, 2, 2, 2, 780, 778, 3, 2, 2, 2, 780, 781, 3, 2, 2, 2, 781, 783, 3, 2, 2, 2, 782, 780, 3, 2, 2, 2, 783, 786, 5, 120, 61, 2, 784, 786, 7, 69, 2, 2, 785, 780, 3, 2, 2, 2, 785, 784, 3, 2, 2, 2, 786, 119, 3, 2, 2, 2, 787, 788, 5, 200, 101, 2, 788, 789, 5, 122, 62, 2, 789, 790, 7, 69, 2, 2, 790, 808, 3, 2, 2, 2, 791, 793, 5, 16, 9, 2, 792, 794, 7, 69, 2, 2, 793, 792, 3, 2, 2, 2, 793, 794, 3, 2, 2, 2, 794, 808, 3, 2, 2, 2, 795, 797, 5, 32, 17, 2, 796, 798, 7, 69, 2, 2, 797, 796, 3, 2, 2, 2, 797, 798, 3, 2, 2, 2, 798, 808, 3, 2, 2, 2, 799, 801, 5, 24, 13, 2, 800, 802, 7, 69, 2, 2, 801, 800, 3, 2, 2, 2, 801, 802, 3, 2, 2, 2, 802, 808, 3, 2, 2, 2, 803, 805, 5, 114, 58, 2, 804, 806, 7, 69, 2, 2, 805, 804, 3, 2, 2, 2, 805, 806, 3, 2, 2, 2, 806, 808, 3, 2, 2, 2, 807, 787, 3, 2, 2, 2, 807, 791, 3, 2, 2, 2, 807, 795, 3, 2, 2, 2, 807, 799, 3, 2, 2, 2, 807, 803, 3, 2, 2, 2, 808, 121, 3, 2, 2, 2, 809, 812, 5, 124, 63, 2, 810, 812, 5, 126, 64, 2, 811, 809, 3, 2, 2, 2, 811, 810, 3, 2, 2, 2, 812, 123, 3, 2, 2, 2, 813, 814, 7, 113, 2, 2, 814, 815, 7, 63, 2, 2, 815, 817, 7, 64, 2, 2, 816, 818, 5, 128, 65, 2, 817, 816, 3, 2, 2, 2, 817, 818, 3, 2, 2, 2, 818, 125, 3, 2, 2, 2, 819, 820, 5, 70, 36, 2, 820, 127, 3, 2, 2, 2, 821, 822, 7, 14, 2, 2, 822, 823, 5, 110, 56, 2, 823, 129, 3, 2, 2, 2, 824, 828, 7, 65, 2, 2, 825, 827, 5, 132, 67, 2, 826, 825, 3, 2, 2, 2, 827, 830, 3, 2, 2, 2, 828, 826, 3, 2, 2, 2, 828, 829, 3, 2, 2, 2, 829, 831, 3, 2, 2, 2, 830, 828, 3, 2, 2, 2, 831, 832, 7, 66, 2, 2, 832, 131, 3, 2, 2, 2, 833, 834, 5, 134, 68, 2, 834, 835, 7, 69, 2, 2, 835, 839, 3, 2, 2, 2, 836, 839, 5, 138, 70, 2, 837, 839, 5, 136, 69, 2, 838, 833, 3, 2, 2, 2, 838, 836, 3, 2, 2, 2, 838, 837, 3, 2, 2, 2, 839, 133, 3, 2, 2, 2, 840, 842, 5, 14, 8, 2, 841, 840, 3, 2, 2, 2, 842, 845, 3, 2, 2, 2, 843, 841, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 846, 3, 2, 2, 2, 845, 843, 3, 2, 2, 2, 846, 847, 5, 200, 101, 2, 847, 848, 5, 70, 36, 2, 848, 135, 3, 2, 2, 2, 849, 851, 5, 12, 7, 2, 850, 849, 3, 2, 2, 2, 851, 854, 3, 2, 2, 2, 852, 850, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 857, 3, 2, 2, 2, 854, 852, 3, 2, 2, 2, 855, 858, 5, 16, 9, 2, 856, 858, 5, 32, 17, 2, 857, 855, 3, 2, 2, 2, 857, 856, 3, 2, 2, 2, 858, 861, 3, 2, 2, 2, 859, 861, 7, 69, 2, 2, 860, 852, 3, 2, 2, 2, 860, 859, 3, 2, 2, 2, 861, 137, 3, 2, 2, 2, 862, 967, 5, 130, 66, 2, 863, 864, 7, 4, 2, 2, 864, 867, 5, 168, 85, 2, 865, 866, 7, 78, 2, 2, 866, 868, 5, 168, 85, 2, 867, 865, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 869, 3, 2, 2, 2, 869, 870, 7, 69, 2, 2, 870, 967, 3, 2, 2, 2, 871, 872, 7, 24, 2, 2, 872, 873, 5, 162, 82, 2, 873, 876, 5, 138, 70, 2, 874, 875, 7, 17, 2, 2, 875, 877, 5, 138, 70, 2, 876, 874, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 967, 3, 2, 2, 2, 878, 879, 7, 23, 2, 2, 879, 880, 7, 63, 2, 2, 880, 881, 5, 156, 79, 2, 881, 882, 7, 64, 2, 2, 882, 883, 5, 138, 70, 2, 883, 967, 3, 2, 2, 2, 884, 885, 7, 52, 2, 2, 885, 886, 5, 162, 82, 2, 886, 887, 5, 138, 70, 2, 887, 967, 3, 2, 2, 2, 888, 889, 7, 15, 2, 2, 889, 890, 5, 138, 70, 2, 890, 891, 7, 52, 2, 2, 891, 892, 5, 162, 82, 2, 892, 893, 7, 69, 2, 2, 893, 967, 3, 2, 2, 2, 894, 895, 7, 49, 2, 2, 895, 905, 5, 130, 66, 2, 896, 898, 5, 140, 71, 2, 897, 896, 3, 2, 2, 2, 898, 899, 3, 2, 2, 2, 899, 897, 3, 2, 2, 2, 899, 900, 3, 2, 2, 2, 900, 902, 3, 2, 2, 2, 901, 903, 5, 144, 73, 2, 902, 901, 3, 2, 2, 2, 902, 903, 3, 2, 2, 2, 903, 906, 3, 2, 2, 2, 904, 906, 5, 144, 73, 2, 905, 897, 3, 2, 2, 2, 905, 904, 3, 2, 2, 2, 906, 967, 3, 2, 2, 2, 907, 908, 7, 49, 2, 2, 908, 909, 5, 146, 74, 2, 909, 913, 5, 130, 66, 2, 910, 912, 5, 140, 71, 2, 911, 910, 3, 2, 2, 2, 912, 915, 3, 2, 2, 2, 913, 911, 3, 2, 2, 2, 913, 914, 3, 2, 2, 2, 914, 917, 3, 2, 2, 2, 915, 913, 3, 2, 2, 2, 916, 918, 5, 144, 73, 2, 917, 916, 3, 2, 2, 2, 917, 918, 3, 2, 2, 2, 918, 967, 3, 2, 2, 2, 919, 920, 7, 43, 2, 2, 920, 921, 5, 162, 82, 2, 921, 925, 7, 65, 2, 2, 922, 924, 5, 152, 77, 2, 923, 922, 3, 2, 2, 2, 924, 927, 3, 2, 2, 2, 925, 923, 3, 2, 2, 2, 925, 926, 3, 2, 2, 2, 926, 931, 3, 2, 2, 2, 927, 925, 3, 2, 2, 2, 928, 930, 5, 154, 78, 2, 929, 928, 3, 2, 2, 2, 930, 933, 3, 2, 2, 2, 931, 929, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 934, 3, 2, 2, 2, 933, 931, 3, 2, 2, 2, 934, 935, 7, 66, 2, 2, 935, 967, 3, 2, 2, 2, 936, 937, 7, 44, 2, 2, 937, 938, 5, 162, 82, 2, 938, 939, 5, 130, 66, 2, 939, 967, 3, 2, 2, 2, 940, 942, 7, 38, 2, 2, 941, 943, 5, 168, 85, 2, 942, 941, 3, 2, 2, 2, 942, 943, 3, 2, 2, 2, 943, 944, 3, 2, 2, 2, 944, 967, 7, 69, 2, 2, 945, 946, 7, 46, 2, 2, 946, 947, 5, 168, 85, 2, 947, 948, 7, 69, 2, 2, 948, 967, 3, 2, 2, 2, 949, 951, 7, 6, 2, 2, 950, 952, 7, 113, 2, 2, 951, 950, 3, 2, 2, 2, 951, 952, 3, 2, 2, 2, 952, 953, 3, 2, 2, 2, 953, 967, 7, 69, 2, 2, 954, 956, 7, 13, 2, 2, 955, 957, 7, 113, 2, 2, 956, 955, 3, 2, 2, 2, 956, 957, 3, 2, 2, 2, 957, 958, 3, 2, 2, 2, 958, 967, 7, 69, 2, 2, 959, 967, 7, 69, 2, 2, 960, 961, 5, 168, 85, 2, 961, 962, 7, 69, 2, 2, 962, 967, 3, 2, 2, 2, 963, 964, 7, 113, 2, 2, 964, 965, 7, 78, 2, 2, 965, 967, 5, 138, 70, 2, 966, 862, 3, 2, 2, 2, 966, 863, 3, 2, 2, 2, 966, 871, 3, 2, 2, 2, 966, 878, 3, 2, 2, 2, 966, 884, 3, 2, 2, 2, 966, 888, 3, 2, 2, 2, 966, 894, 3, 2, 2, 2, 966, 907, 3, 2, 2, 2, 966, 919, 3, 2, 2, 2, 966, 936, 3, 2, 2, 2, 966, 940, 3, 2, 2, 2, 966, 945, 3, 2, 2, 2, 966, 949, 3, 2, 2, 2, 966, 954, 3, 2, 2, 2, 966, 959, 3, 2, 2, 2, 966, 960, 3, 2, 2, 2, 966, 963, 3, 2, 2, 2, 967, 139, 3, 2, 2, 2, 968, 969, 7, 9, 2, 2, 969, 973, 7, 63, 2, 2, 970, 972, 5, 14, 8, 2, 971, 970, 3, 2, 2, 2, 972, 975, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 973, 974, 3, 2, 2, 2, 974, 976, 3, 2, 2, 2, 975, 973, 3, 2, 2, 2, 976, 977, 5, 142, 72, 2, 977, 978, 7, 113, 2, 2, 978, 979, 7, 64, 2, 2, 979, 980, 5, 130, 66, 2, 980, 141, 3, 2, 2, 2, 981, 986, 5, 94, 48, 2, 982, 983, 7, 92, 2, 2, 983, 985, 5, 94, 48, 2, 984, 982, 3, 2, 2, 2, 985, 988, 3, 2, 2, 2, 986, 984, 3, 2, 2, 2, 986, 987, 3, 2, 2, 2, 987, 143, 3, 2, 2, 2, 988, 986, 3, 2, 2, 2, 989, 990, 7, 21, 2, 2, 990, 991, 5, 130, 66, 2, 991, 145, 3, 2, 2, 2, 992, 993, 7, 63, 2, 2, 993, 995, 5, 148, 75, 2, 994, 996, 7, 69, 2, 2, 995, 994, 3, 2, 2, 2, 995, 996, 3, 2, 2, 2, 996, 997, 3, 2, 2, 2, 997, 998, 7, 64, 2, 2, 998, 147, 3, 2, 2, 2, 999, 1004, 5, 150, 76, 2, 1000, 1001, 7, 69, 2, 2, 1001, 1003, 5, 150, 76, 2, 1002, 1000, 3, 2, 2, 2, 1003, 1006, 3, 2, 2, 2, 1004, 1002, 3, 2, 2, 2, 1004, 1005, 3, 2, 2, 2, 1005, 149, 3, 2, 2, 2, 1006, 1004, 3, 2, 2, 2, 1007, 1009, 5, 14, 8, 2, 1008, 1007, 3, 2, 2, 2, 1009, 1012, 3, 2, 2, 2, 1010, 1008, 3, 2, 2, 2, 1010, 1011, 3, 2, 2, 2, 1011, 1013, 3, 2, 2, 2, 1012, 1010, 3, 2, 2, 2, 1013, 1014, 5, 80, 41, 2, 1014, 1015, 5, 74, 38, 2, 1015, 1016, 7, 72, 2, 2, 1016, 1017, 5, 168, 85, 2, 1017, 151, 3, 2, 2, 2, 1018, 1020, 5, 154, 78, 2, 1019, 1018, 3, 2, 2, 2, 1020, 1021, 3, 2, 2, 2, 1021, 1019, 3, 2, 2, 2, 1021, 1022, 3, 2, 2, 2, 1022, 1024, 3, 2, 2, 2, 1023, 1025, 5, 132, 67, 2, 1024, 1023, 3, 2, 2, 2, 1025, 1026, 3, 2, 2, 2, 1026, 1024, 3, 2, 2, 2, 1026, 1027, 3, 2, 2, 2, 1027, 153, 3, 2, 2, 2, 1028, 1031, 7, 8, 2, 2, 1029, 1032, 5, 168, 85, 2, 1030, 1032, 7, 113, 2, 2, 1031, 1029, 3, 2, 2, 2, 1031, 1030, 3, 2, 2, 2, 1032, 1033, 3, 2, 2, 2, 1033, 1037, 7, 78, 2, 2, 1034, 1035, 7, 14, 2, 2, 1035, 1037, 7, 78, 2, 2, 1036, 1028, 3, 2, 2, 2, 1036, 1034, 3, 2, 2, 2, 1037, 155, 3, 2, 2, 2, 1038, 1051, 5, 160, 81, 2, 1039, 1041, 5, 158, 80, 2, 1040, 1039, 3, 2, 2, 2, 1040, 1041, 3, 2, 2, 2, 1041, 1042, 3, 2, 2, 2, 1042, 1044, 7, 69, 2, 2, 1043, 1045, 5, 168, 85, 2, 1044, 1043, 3, 2, 2, 2, 1044, 1045, 3, 2, 2, 2, 1045, 1046, 3, 2, 2, 2, 1046, 1048, 7, 69, 2, 2, 1047, 1049, 5, 164, 83, 2, 1048, 1047, 3, 2, 2, 2, 1048, 1049, 3, 2, 2, 2, 1049, 1051, 3, 2, 2, 2, 1050, 1038, 3, 2, 2, 2, 1050, 1040, 3, 2, 2, 2, 1051, 157, 3, 2, 2, 2, 1052, 1055, 5, 134, 68, 2, 1053, 1055, 5, 164, 83, 2, 1054, 1052, 3, 2, 2, 2, 1054, 1053, 3, 2, 2, 2, 1055, 159, 3, 2, 2, 2, 1056, 1058, 5, 14, 8, 2, 1057, 1056, 3, 2, 2, 2, 1058, 1061, 3, 2, 2, 2, 1059, 1057, 3, 2, 2, 2, 1059, 1060, 3, 2, 2, 2, 1060, 1062, 3, 2, 2, 2, 1061, 1059, 3, 2, 2, 2, 1062, 1063, 5, 200, 101, 2, 1063, 1064, 5, 74, 38, 2, 1064, 1065, 7, 78, 2, 2, 1065, 1066, 5, 168, 85, 2, 1066, 161, 3, 2, 2, 2, 1067, 1068, 7, 63, 2, 2, 1068, 1069, 5, 168, 85, 2, 1069, 1070, 7, 64, 2, 2, 1070, 163, 3, 2, 2, 2, 1071, 1076, 5, 168, 85, 2, 1072, 1073, 7, 70, 2, 2, 1073, 1075, 5, 168, 85, 2, 1074, 1072, 3, 2, 2, 2, 1075, 1078, 3, 2, 2, 2, 1076, 1074, 3, 2, 2, 2, 1076, 1077, 3, 2, 2, 2, 1077, 165, 3, 2, 2, 2, 1078, 1076, 3, 2, 2, 2, 1079, 1080, 7, 113, 2, 2, 1080, 1082, 7, 63, 2, 2, 1081, 1083, 5, 164, 83, 2, 1082, 1081, 3, 2, 2, 2, 1082, 1083, 3, 2, 2, 2, 1083, 1084, 3, 2, 2, 2, 1084, 1098, 7, 64, 2, 2, 1085, 1086, 7, 45, 2, 2, 1086, 1088, 7, 63, 2, 2, 1087, 1089, 5, 164, 83, 2, 1088, 1087, 3, 2, 2, 2, 1088, 1089, 3, 2, 2, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1098, 7, 64, 2, 2, 1091, 1092, 7, 42, 2, 2, 1092, 1094, 7, 63, 2, 2, 1093, 1095, 5, 164, 83, 2, 1094, 1093, 3, 2, 2, 2, 1094, 1095, 3, 2, 2, 2, 1095, 1096, 3, 2, 2, 2, 1096, 1098, 7, 64, 2, 2, 1097, 1079, 3, 2, 2, 2, 1097, 1085, 3, 2, 2, 2, 1097, 1091, 3, 2, 2, 2, 1098, 167, 3, 2, 2, 2, 1099, 1100, 8, 85, 1, 2, 1100, 1144, 5, 176, 89, 2, 1101, 1144, 5, 166, 84, 2, 1102, 1103, 7, 33, 2, 2, 1103, 1144, 5, 180, 91, 2, 1104, 1108, 7, 63, 2, 2, 1105, 1107, 5, 104, 53, 2, 1106, 1105, 3, 2, 2, 2, 1107, 1110, 3, 2, 2, 2, 1108, 1106, 3, 2, 2, 2, 1108, 1109, 3, 2, 2, 2, 1109, 1111, 3, 2, 2, 2, 1110, 1108, 3, 2, 2, 2, 1111, 1116, 5, 200, 101, 2, 1112, 1113, 7, 91, 2, 2, 1113, 1115, 5, 200, 101, 2, 1114, 1112, 3, 2, 2, 2, 1115, 1118, 3, 2, 2, 2, 1116, 1114, 3, 2, 2, 2, 1116, 1117, 3, 2, 2, 2, 1117, 1119, 3, 2, 2, 2, 1118, 1116, 3, 2, 2, 2, 1119, 1120, 7, 64, 2, 2, 1120, 1121, 5, 168, 85, 23, 1121, 1144, 3, 2, 2, 2, 1122, 1123, 9, 5, 2, 2, 1123, 1144, 5, 168, 85, 21, 1124, 1125, 9, 6, 2, 2, 1125, 1144, 5, 168, 85, 20, 1126, 1144, 5, 170, 86, 2, 1127, 1128, 5, 200, 101, 2, 1128, 1134, 7, 107, 2, 2, 1129, 1131, 5, 204, 103, 2, 1130, 1129, 3, 2, 2, 2, 1130, 1131, 3, 2, 2, 2, 1131, 1132, 3, 2, 2, 2, 1132, 1135, 7, 113, 2, 2, 1133, 1135, 7, 33, 2, 2, 1134, 1130, 3, 2, 2, 2, 1134, 1133, 3, 2, 2, 2, 1135, 1144, 3, 2, 2, 2, 1136, 1137, 5, 178, 90, 2, 1137, 1139, 7, 107, 2, 2, 1138, 1140, 5, 204, 103, 2, 1139, 1138, 3, 2, 2, 2, 1139, 1140, 3, 2, 2, 2, 1140, 1141, 3, 2, 2, 2, 1141, 1142, 7, 33, 2, 2, 1142, 1144, 3, 2, 2, 2, 1143, 1099, 3, 2, 2, 2, 1143, 1101, 3, 2, 2, 2, 1143, 1102, 3, 2, 2, 2, 1143, 1104, 3, 2, 2, 2, 1143, 1122, 3, 2, 2, 2, 1143, 1124, 3, 2, 2, 2, 1143, 1126, 3, 2, 2, 2, 1143, 1127, 3, 2, 2, 2, 1143, 1136, 3, 2, 2, 2, 1144, 1225, 3, 2, 2, 2, 1145, 1146, 12, 19, 2, 2, 1146, 1147, 9, 7, 2, 2, 1147, 1224, 5, 168, 85, 20, 1148, 1149, 12, 18, 2, 2, 1149, 1150, 9, 8, 2, 2, 1150, 1224, 5, 168, 85, 19, 1151, 1159, 12, 17, 2, 2, 1152, 1153, 7, 74, 2, 2, 1153, 1160, 7, 74, 2, 2, 1154, 1155, 7, 73, 2, 2, 1155, 1156, 7, 73, 2, 2, 1156, 1160, 7, 73, 2, 2, 1157, 1158, 7, 73, 2, 2, 1158, 1160, 7, 73, 2, 2, 1159, 1152, 3, 2, 2, 2, 1159, 1154, 3, 2, 2, 2, 1159, 1157, 3, 2, 2, 2, 1160, 1161, 3, 2, 2, 2, 1161, 1224, 5, 168, 85, 18, 1162, 1163, 12, 16, 2, 2, 1163, 1164, 9, 9, 2, 2, 1164, 1224, 5, 168, 85, 17, 1165, 1166, 12, 14, 2, 2, 1166, 1167, 9, 10, 2, 2, 1167, 1224, 5, 168, 85, 15, 1168, 1169, 12, 13, 2, 2, 1169, 1170, 7, 91, 2, 2, 1170, 1224, 5, 168, 85, 14, 1171, 1172, 12, 12, 2, 2, 1172, 1173, 7, 93, 2, 2, 1173, 1224, 5, 168, 85, 13, 1174, 1175, 12, 11, 2, 2, 1175, 1176, 7, 92, 2, 2, 1176, 1224, 5, 168, 85, 12, 1177, 1178, 12, 10, 2, 2, 1178, 1179, 7, 83, 2, 2, 1179, 1224, 5, 168, 85, 11, 1180, 1181, 12, 9, 2, 2, 1181, 1182, 7, 84, 2, 2, 1182, 1224, 5, 168, 85, 10, 1183, 1184, 12, 8, 2, 2, 1184, 1185, 7, 77, 2, 2, 1185, 1186, 5, 168, 85, 2, 1186, 1187, 7, 78, 2, 2, 1187, 1188, 5, 168, 85, 8, 1188, 1224, 3, 2, 2, 2, 1189, 1190, 12, 7, 2, 2, 1190, 1191, 9, 11, 2, 2, 1191, 1224, 5, 168, 85, 7, 1192, 1193, 12, 27, 2, 2, 1193, 1205, 7, 71, 2, 2, 1194, 1206, 7, 113, 2, 2, 1195, 1206, 5, 166, 84, 2, 1196, 1206, 7, 45, 2, 2, 1197, 1199, 7, 33, 2, 2, 1198, 1200, 5, 196, 99, 2, 1199, 1198, 3, 2, 2, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1201, 3, 2, 2, 2, 1201, 1206, 5, 184, 93, 2, 1202, 1203, 7, 42, 2, 2, 1203, 1206, 5, 206, 104, 2, 1204, 1206, 5, 190, 96, 2, 1205, 1194, 3, 2, 2, 2, 1205, 1195, 3, 2, 2, 2, 1205, 1196, 3, 2, 2, 2, 1205, 1197, 3, 2, 2, 2, 1205, 1202, 3, 2, 2, 2, 1205, 1204, 3, 2, 2, 2, 1206, 1224, 3, 2, 2, 2, 1207, 1208, 12, 26, 2, 2, 1208, 1209, 7, 67, 2, 2, 1209, 1210, 5, 168, 85, 2, 1210, 1211, 7, 68, 2, 2, 1211, 1224, 3, 2, 2, 2, 1212, 1213, 12, 22, 2, 2, 1213, 1224, 9, 12, 2, 2, 1214, 1215, 12, 15, 2, 2, 1215, 1216, 7, 28, 2, 2, 1216, 1224, 5, 200, 101, 2, 1217, 1218, 12, 5, 2, 2, 1218, 1220, 7, 107, 2, 2, 1219, 1221, 5, 204, 103, 2, 1220, 1219, 3, 2, 2, 2, 1220, 1221, 3, 2, 2, 2, 1221, 1222, 3, 2, 2, 2, 1222, 1224, 7, 113, 2, 2, 1223, 1145, 3, 2, 2, 2, 1223, 1148, 3, 2, 2, 2, 1223, 1151, 3, 2, 2, 2, 1223, 1162, 3, 2, 2, 2, 1223, 1165, 3, 2, 2, 2, 1223, 1168, 3, 2, 2, 2, 1223, 1171, 3, 2, 2, 2, 1223, 1174, 3, 2, 2, 2, 1223, 1177, 3, 2, 2, 2, 1223, 1180, 3, 2, 2, 2, 1223, 1183, 3, 2, 2, 2, 1223, 1189, 3, 2, 2, 2, 1223, 1192, 3, 2, 2, 2, 1223, 1207, 3, 2, 2, 2, 1223, 1212, 3, 2, 2, 2, 1223, 1214, 3, 2, 2, 2, 1223, 1217, 3, 2, 2, 2, 1224, 1227, 3, 2, 2, 2, 1225, 1223, 3, 2, 2, 2, 1225, 1226, 3, 2, 2, 2, 1226, 169, 3, 2, 2, 2, 1227, 1225, 3, 2, 2, 2, 1228, 1229, 5, 172, 87, 2, 1229, 1230, 7, 106, 2, 2, 1230, 1231, 5, 174, 88, 2, 1231, 171, 3, 2, 2, 2, 1232, 1249, 7, 113, 2, 2, 1233, 1235, 7, 63, 2, 2, 1234, 1236, 5, 88, 45, 2, 1235, 1234, 3, 2, 2, 2, 1235, 1236, 3, 2, 2, 2, 1236, 1237, 3, 2, 2, 2, 1237, 1249, 7, 64, 2, 2, 1238, 1239, 7, 63, 2, 2, 1239, 1244, 7, 113, 2, 2, 1240, 1241, 7, 70, 2, 2, 1241, 1243, 7, 113, 2, 2, 1242, 1240, 3, 2, 2, 2, 1243, 1246, 3, 2, 2, 2, 1244, 1242, 3, 2, 2, 2, 1244, 1245, 3, 2, 2, 2, 1245, 1247, 3, 2, 2, 2, 1246, 1244, 3, 2, 2, 2, 1247, 1249, 7, 64, 2, 2, 1248, 1232, 3, 2, 2, 2, 1248, 1233, 3, 2, 2, 2, 1248, 1238, 3, 2, 2, 2, 1249, 173, 3, 2, 2, 2, 1250, 1253, 5, 168, 85, 2, 1251, 1253, 5, 130, 66, 2, 1252, 1250, 3, 2, 2, 2, 1252, 1251, 3, 2, 2, 2, 1253, 175, 3, 2, 2, 2, 1254, 1255, 7, 63, 2, 2, 1255, 1256, 5, 168, 85, 2, 1256, 1257, 7, 64, 2, 2, 1257, 1273, 3, 2, 2, 2, 1258, 1273, 7, 45, 2, 2, 1259, 1273, 7, 42, 2, 2, 1260, 1273, 5, 96, 49, 2, 1261, 1273, 7, 113, 2, 2, 1262, 1263, 5, 46, 24, 2, 1263, 1264, 7, 71, 2, 2, 1264, 1265, 7, 11, 2, 2, 1265, 1273, 3, 2, 2, 2, 1266, 1270, 5, 196, 99, 2, 1267, 1271, 5, 208, 105, 2, 1268, 1269, 7, 45, 2, 2, 1269, 1271, 5, 210, 106, 2, 1270, 1267, 3, 2, 2, 2, 1270, 1268, 3, 2, 2, 2, 1271, 1273, 3, 2, 2, 2, 1272, 1254, 3, 2, 2, 2, 1272, 1258, 3, 2, 2, 2, 1272, 1259, 3, 2, 2, 2, 1272, 1260, 3, 2, 2, 2, 1272, 1261, 3, 2, 2, 2, 1272, 1262, 3, 2, 2, 2, 1272, 1266, 3, 2, 2, 2, 1273, 177, 3, 2, 2, 2, 1274, 1275, 5, 80, 41, 2, 1275, 1276, 7, 71, 2, 2, 1276, 1278, 3, 2, 2, 2, 1277, 1274, 3, 2, 2, 2, 1277, 1278, 3, 2, 2, 2, 1278, 1282, 3, 2, 2, 2, 1279, 1281, 5, 104, 53, 2, 1280, 1279, 3, 2, 2, 2, 1281, 1284, 3, 2, 2, 2, 1282, 1280, 3, 2, 2, 2, 1282, 1283, 3, 2, 2, 2, 1283, 1285, 3, 2, 2, 2, 1284, 1282, 3, 2, 2, 2, 1285, 1287, 7, 113, 2, 2, 1286, 1288, 5, 204, 103, 2, 1287, 1286, 3, 2, 2, 2, 1287, 1288, 3, 2, 2, 2, 1288, 179, 3, 2, 2, 2, 1289, 1290, 5, 196, 99, 2, 1290, 1291, 5, 182, 92, 2, 1291, 1292, 5, 188, 95, 2, 1292, 1299, 3, 2, 2, 2, 1293, 1296, 5, 182, 92, 2, 1294, 1297, 5, 186, 94, 2, 1295, 1297, 5, 188, 95, 2, 1296, 1294, 3, 2, 2, 2, 1296, 1295, 3, 2, 2, 2, 1297, 1299, 3, 2, 2, 2, 1298, 1289, 3, 2, 2, 2, 1298, 1293, 3, 2, 2, 2, 1299, 181, 3, 2, 2, 2, 1300, 1302, 7, 113, 2, 2, 1301, 1303, 5, 192, 97, 2, 1302, 1301, 3, 2, 2, 2, 1302, 1303, 3, 2, 2, 2, 1303, 1311, 3, 2, 2, 2, 1304, 1305, 7, 71, 2, 2, 1305, 1307, 7, 113, 2, 2, 1306, 1308, 5, 192, 97, 2, 1307, 1306, 3, 2, 2, 2, 1307, 1308, 3, 2, 2, 2, 1308, 1310, 3, 2, 2, 2, 1309, 1304, 3, 2, 2, 2, 1310, 1313, 3, 2, 2, 2, 1311, 1309, 3, 2, 2, 2, 1311, 1312, 3, 2, 2, 2, 1312, 1316, 3, 2, 2, 2, 1313, 1311, 3, 2, 2, 2, 1314, 1316, 5, 202, 102, 2, 1315, 1300, 3, 2, 2, 2, 1315, 1314, 3, 2, 2, 2, 1316, 183, 3, 2, 2, 2, 1317, 1319, 7, 113, 2, 2, 1318, 1320, 5, 194, 98, 2, 1319, 1318, 3, 2, 2, 2, 1319, 1320, 3, 2, 2, 2, 1320, 1321, 3, 2, 2, 2, 1321, 1322, 5, 188, 95, 2, 1322, 185, 3, 2, 2, 2, 1323, 1351, 7, 67, 2, 2, 1324, 1329, 7, 68, 2, 2, 1325, 1326, 7, 67, 2, 2, 1326, 1328, 7, 68, 2, 2, 1327, 1325, 3, 2, 2, 2, 1328, 1331, 3, 2, 2, 2, 1329, 1327, 3, 2, 2, 2, 1329, 1330, 3, 2, 2, 2, 1330, 1332, 3, 2, 2, 2, 1331, 1329, 3, 2, 2, 2, 1332, 1352, 5, 78, 40, 2, 1333, 1334, 5, 168, 85, 2, 1334, 1341, 7, 68, 2, 2, 1335, 1336, 7, 67, 2, 2, 1336, 1337, 5, 168, 85, 2, 1337, 1338, 7, 68, 2, 2, 1338, 1340, 3, 2, 2, 2, 1339, 1335, 3, 2, 2, 2, 1340, 1343, 3, 2, 2, 2, 1341, 1339, 3, 2, 2, 2, 1341, 1342, 3, 2, 2, 2, 1342, 1348, 3, 2, 2, 2, 1343, 1341, 3, 2, 2, 2, 1344, 1345, 7, 67, 2, 2, 1345, 1347, 7, 68, 2, 2, 1346, 1344, 3, 2, 2, 2, 1347, 1350, 3, 2, 2, 2, 1348, 1346, 3, 2, 2, 2, 1348, 1349, 3, 2, 2, 2, 1349, 1352, 3, 2, 2, 2, 1350, 1348, 3, 2, 2, 2, 1351, 1324, 3, 2, 2, 2, 1351, 1333, 3, 2, 2, 2, 1352, 187, 3, 2, 2, 2, 1353, 1355, 5, 210, 106, 2, 1354, 1356, 5, 34, 18, 2, 1355, 1354, 3, 2, 2, 2, 1355, 1356, 3, 2, 2, 2, 1356, 189, 3, 2, 2, 2, 1357, 1358, 5, 196, 99, 2, 1358, 1359, 5, 208, 105, 2, 1359, 191, 3, 2, 2, 2, 1360, 1361, 7, 74, 2, 2, 1361, 1364, 7, 73, 2, 2, 1362, 1364, 5, 204, 103, 2, 1363, 1360, 3, 2, 2, 2, 1363, 1362, 3, 2, 2, 2, 1364, 193, 3, 2, 2, 2, 1365, 1366, 7, 74, 2, 2, 1366, 1369, 7, 73, 2, 2, 1367, 1369, 5, 196, 99, 2, 1368, 1365, 3, 2, 2, 2, 1368, 1367, 3, 2, 2, 2, 1369, 195, 3, 2, 2, 2, 1370, 1371, 7, 74, 2, 2, 1371, 1372, 5, 198, 100, 2, 1372, 1373, 7, 73, 2, 2, 1373, 197, 3, 2, 2, 2, 1374, 1379, 5, 200, 101, 2, 1375, 1376, 7, 70, 2, 2, 1376, 1378, 5, 200, 101, 2, 1377, 1375, 3, 2, 2, 2, 1378, 1381, 3, 2, 2, 2, 1379, 1377, 3, 2, 2, 2, 1379, 1380, 3, 2, 2, 2, 1380, 199, 3, 2, 2, 2, 1381, 1379, 3, 2, 2, 2, 1382, 1384, 5, 104, 53, 2, 1383, 1382, 3, 2, 2, 2, 1384, 1387, 3, 2, 2, 2, 1385, 1383, 3, 2, 2, 2, 1385, 1386, 3, 2, 2, 2, 1386, 1390, 3, 2, 2, 2, 1387, 1385, 3, 2, 2, 2, 1388, 1391, 5, 80, 41, 2, 1389, 1391, 5, 202, 102, 2, 1390, 1388, 3, 2, 2, 2, 1390, 1389, 3, 2, 2, 2, 1391, 1402, 3, 2, 2, 2, 1392, 1394, 5, 104, 53, 2, 1393, 1392, 3, 2, 2, 2, 1394, 1397, 3, 2, 2, 2, 1395, 1393, 3, 2, 2, 2, 1395, 1396, 3, 2, 2, 2, 1396, 1398, 3, 2, 2, 2, 1397, 1395, 3, 2, 2, 2, 1398, 1399, 7, 67, 2, 2, 1399, 1401, 7, 68, 2, 2, 1400, 1395, 3, 2, 2, 2, 1401, 1404, 3, 2, 2, 2, 1402, 1400, 3, 2, 2, 2, 1402, 1403, 3, 2, 2, 2, 1403, 201, 3, 2, 2, 2, 1404, 1402, 3, 2, 2, 2, 1405, 1406, 9, 13, 2, 2, 1406, 203, 3, 2, 2, 2, 1407, 1408, 7, 74, 2, 2, 1408, 1413, 5, 82, 42, 2, 1409, 1410, 7, 70, 2, 2, 1410, 1412, 5, 82, 42, 2, 1411, 1409, 3, 2, 2, 2, 1412, 1415, 3, 2, 2, 2, 1413, 1411, 3, 2, 2, 2, 1413, 1414, 3, 2, 2, 2, 1414, 1416, 3, 2, 2, 2, 1415, 1413, 3, 2, 2, 2, 1416, 1417, 7, 73, 2, 2, 1417, 205, 3, 2, 2, 2, 1418, 1425, 5, 210, 106, 2, 1419, 1420, 7, 71, 2, 2, 1420, 1422, 7, 113, 2, 2, 1421, 1423, 5, 210, 106, 2, 1422, 1421, 3, 2, 2, 2, 1422, 1423, 3, 2, 2, 2, 1423, 1425, 3, 2, 2, 2, 1424, 1418, 3, 2, 2, 2, 1424, 1419, 3, 2, 2, 2, 1425, 207, 3, 2, 2, 2, 1426, 1427, 7, 42, 2, 2, 1427, 1431, 5, 206, 104, 2, 1428, 1429, 7, 113, 2, 2, 1429, 1431, 5, 210, 106, 2, 1430, 1426, 3, 2, 2, 2, 1430, 1428, 3, 2, 2, 2, 1431, 209, 3, 2, 2, 2, 1432, 1434, 7, 63, 2, 2, 1433, 1435, 5, 164, 83, 2, 1434, 1433, 3, 2, 2, 2, 1434, 1435, 3, 2, 2, 2, 1435, 1436, 3, 2, 2, 2, 1436, 1437, 7, 64, 2, 2, 1437, 211, 3, 2, 2, 2, 181, 213, 218, 224, 232, 241, 246, 253, 260, 263, 270, 280, 284, 289, 293, 297, 307, 315, 323, 327, 334, 341, 345, 348, 351, 360, 366, 371, 374, 380, 386, 390, 398, 407, 414, 420, 424, 435, 444, 449, 455, 459, 471, 482, 487, 496, 504, 514, 523, 531, 536, 544, 549, 559, 569, 575, 582, 587, 595, 599, 601, 607, 612, 616, 623, 629, 631, 638, 643, 652, 657, 660, 665, 674, 681, 692, 701, 711, 720, 725, 728, 735, 745, 753, 756, 759, 772, 780, 785, 793, 797, 801, 805, 807, 811, 817, 828, 838, 843, 852, 857, 860, 867, 876, 899, 902, 905, 913, 917, 925, 931, 942, 951, 956, 966, 973, 986, 995, 1004, 1010, 1021, 1026, 1031, 1036, 1040, 1044, 1048, 1050, 1054, 1059, 1076, 1082, 1088, 1094, 1097, 1108, 1116, 1130, 1134, 1139, 1143, 1159, 1199, 1205, 1220, 1223, 1225, 1235, 1244, 1248, 1252, 1270, 1272, 1277, 1282, 1287, 1296, 1298, 1302, 1307, 1311, 1315, 1319, 1329, 1341, 1348, 1351, 1355, 1363, 1368, 1379, 1385, 1390, 1395, 1402, 1413, 1422, 1424, 1430, 1434] \ No newline at end of file diff --git a/java2python/lang/JavaParser.py b/java2python/lang/JavaParser.py index 28b9c64..6cb2169 100644 --- a/java2python/lang/JavaParser.py +++ b/java2python/lang/JavaParser.py @@ -1,23337 +1,9921 @@ -# $ANTLR 3.1.3 Mar 18, 2009 10:09:25 Java.g 2012-01-29 13:54:04 - +# Generated from JavaParser.g4 by ANTLR 4.7.2 +# encoding: utf-8 +from antlr4 import * +from io import StringIO +from typing.io import TextIO import sys -from antlr3 import * -from antlr3.compat import set, frozenset - -from antlr3.tree import * - - - -# for convenience in actions -HIDDEN = BaseRecognizer.HIDDEN - -# token types -PACKAGE=84 -EXPONENT=173 -STAR=49 -WHILE=103 -MOD=32 -MOD_ASSIGN=33 -CASE=58 -CHAR=60 -NEW=82 -DO=64 -GENERIC_TYPE_PARAM_LIST=138 -CLASS_INSTANCE_INITIALIZER=121 -ARRAY_ELEMENT_ACCESS=115 -FOR_CONDITION=129 -NOT=34 -VAR_DECLARATION=160 -ANNOTATION_METHOD_DECL=109 -EOF=-1 -DIV_ASSIGN=14 -LOGICAL_AND=26 -BREAK=56 -UNARY_PLUS=159 -BIT_SHIFT_RIGHT_ASSIGN=9 -TYPE=157 -RPAREN=43 -INC=21 -FINAL=70 -IMPORT=78 -STRING_LITERAL=170 -FOR_UPDATE=132 -FLOATING_POINT_LITERAL=168 -CAST_EXPR=118 -NOT_EQUAL=35 -VOID_METHOD_DECL=163 -THIS=95 -RETURN=88 -DOUBLE=65 -ENUM_TOP_LEVEL_SCOPE=125 -VOID=101 -SUPER=92 -COMMENT=181 -ANNOTATION_INIT_KEY_LIST=107 -JAVA_ID_START=178 -FLOAT_TYPE_SUFFIX=174 -PRE_DEC=149 -RBRACK=41 -IMPLEMENTS_CLAUSE=140 -SWITCH_BLOCK_LABEL_LIST=154 -LINE_COMMENT=182 -PRIVATE=85 -STATIC=90 -BLOCK_SCOPE=117 -ANNOTATION_INIT_DEFAULT_KEY=106 -SWITCH=93 -NULL=83 -VAR_DECLARATOR=161 -MINUS_ASSIGN=31 -ELSE=66 -STRICTFP=91 -CHARACTER_LITERAL=169 -PRE_INC=150 -ANNOTATION_LIST=108 -ELLIPSIS=17 -NATIVE=81 -OCTAL_ESCAPE=177 -UNARY_MINUS=158 -THROWS=97 -LCURLY=23 -INT=79 -FORMAL_PARAM_VARARG_DECL=135 -METHOD_CALL=144 -ASSERT=54 -TRY=100 -INTERFACE_TOP_LEVEL_SCOPE=139 -SHIFT_LEFT=45 -WS=180 -SHIFT_RIGHT=47 -FORMAL_PARAM_STD_DECL=134 -LOCAL_MODIFIER_LIST=142 -OR=36 -LESS_THAN=25 -SHIFT_RIGHT_ASSIGN=48 -EXTENDS_BOUND_LIST=127 -JAVA_SOURCE=143 -CATCH=59 -FALSE=69 -INTEGER_TYPE_SUFFIX=172 -DECIMAL_LITERAL=167 -THROW=96 -FOR_INIT=131 -DEC=12 -PROTECTED=86 -CLASS=61 -LBRACK=22 -BIT_SHIFT_RIGHT=8 -THROWS_CLAUSE=156 -GREATER_OR_EQUAL=19 -FOR=73 -THIS_CONSTRUCTOR_CALL=155 -LOGICAL_NOT=27 -JAVADOC_COMMENT=183 -FLOAT=72 -ABSTRACT=53 -AND=4 -POST_DEC=147 -AND_ASSIGN=5 -STATIC_ARRAY_CREATOR=152 -MODIFIER_LIST=145 -ANNOTATION_SCOPE=110 -LPAREN=29 -IF=74 -AT=7 -ESCAPE_SEQUENCE=175 -CONSTRUCTOR_DECL=124 -LABELED_STATEMENT=141 -UNICODE_ESCAPE=176 -EXPR=126 -SYNCHRONIZED=94 -BOOLEAN=55 -CLASS_TOP_LEVEL_SCOPE=123 -IMPLEMENTS=75 -CONTINUE=62 -COMMA=11 -TRANSIENT=98 -EQUAL=18 -XOR_ASSIGN=52 -LOGICAL_OR=28 -IDENT=164 -QUALIFIED_TYPE_IDENT=151 -ARGUMENT_LIST=112 -PLUS=38 -HEX_LITERAL=165 -ANNOTATION_INIT_BLOCK=105 -DOT=15 -SHIFT_LEFT_ASSIGN=46 -FORMAL_PARAM_LIST=133 -GENERIC_TYPE_ARG_LIST=137 -ANNOTATION_TOP_LEVEL_SCOPE=111 -DOTSTAR=16 -BYTE=57 -XOR=51 -JAVA_ID_PART=179 -GREATER_THAN=20 -VOLATILE=102 -PARENTESIZED_EXPR=146 -CLASS_STATIC_INITIALIZER=122 -ARRAY_DECLARATOR_LIST=114 -LESS_OR_EQUAL=24 -DEFAULT=63 -OCTAL_LITERAL=166 -HEX_DIGIT=171 -SHORT=89 -INSTANCEOF=76 -MINUS=30 -EXTENDS_CLAUSE=128 -TRUE=99 -SEMI=44 -STAR_ASSIGN=50 -VAR_DECLARATOR_LIST=162 -ARRAY_DECLARATOR=113 -COLON=10 -OR_ASSIGN=37 -ENUM=67 -QUESTION=40 -FINALLY=71 -RCURLY=42 -PLUS_ASSIGN=39 -ASSIGN=6 -ANNOTATION_INIT_ARRAY_ELEMENT=104 -FUNCTION_METHOD_DECL=136 -INTERFACE=77 -POST_INC=148 -DIV=13 -CLASS_CONSTRUCTOR_CALL=120 -LONG=80 -FOR_EACH=130 -EXTENDS=68 -PUBLIC=87 -ARRAY_INITIALIZER=116 -CATCH_CLAUSE_LIST=119 -SUPER_CONSTRUCTOR_CALL=153 - -# token names -tokenNames = [ - "", "", "", "", - "AND", "AND_ASSIGN", "ASSIGN", "AT", "BIT_SHIFT_RIGHT", "BIT_SHIFT_RIGHT_ASSIGN", - "COLON", "COMMA", "DEC", "DIV", "DIV_ASSIGN", "DOT", "DOTSTAR", "ELLIPSIS", - "EQUAL", "GREATER_OR_EQUAL", "GREATER_THAN", "INC", "LBRACK", "LCURLY", - "LESS_OR_EQUAL", "LESS_THAN", "LOGICAL_AND", "LOGICAL_NOT", "LOGICAL_OR", - "LPAREN", "MINUS", "MINUS_ASSIGN", "MOD", "MOD_ASSIGN", "NOT", "NOT_EQUAL", - "OR", "OR_ASSIGN", "PLUS", "PLUS_ASSIGN", "QUESTION", "RBRACK", "RCURLY", - "RPAREN", "SEMI", "SHIFT_LEFT", "SHIFT_LEFT_ASSIGN", "SHIFT_RIGHT", - "SHIFT_RIGHT_ASSIGN", "STAR", "STAR_ASSIGN", "XOR", "XOR_ASSIGN", "ABSTRACT", - "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR", "CLASS", - "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", "EXTENDS", "FALSE", - "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "IMPLEMENTS", "INSTANCEOF", - "INTERFACE", "IMPORT", "INT", "LONG", "NATIVE", "NEW", "NULL", "PACKAGE", - "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", - "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", - "TRUE", "TRY", "VOID", "VOLATILE", "WHILE", "ANNOTATION_INIT_ARRAY_ELEMENT", - "ANNOTATION_INIT_BLOCK", "ANNOTATION_INIT_DEFAULT_KEY", "ANNOTATION_INIT_KEY_LIST", - "ANNOTATION_LIST", "ANNOTATION_METHOD_DECL", "ANNOTATION_SCOPE", "ANNOTATION_TOP_LEVEL_SCOPE", - "ARGUMENT_LIST", "ARRAY_DECLARATOR", "ARRAY_DECLARATOR_LIST", "ARRAY_ELEMENT_ACCESS", - "ARRAY_INITIALIZER", "BLOCK_SCOPE", "CAST_EXPR", "CATCH_CLAUSE_LIST", - "CLASS_CONSTRUCTOR_CALL", "CLASS_INSTANCE_INITIALIZER", "CLASS_STATIC_INITIALIZER", - "CLASS_TOP_LEVEL_SCOPE", "CONSTRUCTOR_DECL", "ENUM_TOP_LEVEL_SCOPE", - "EXPR", "EXTENDS_BOUND_LIST", "EXTENDS_CLAUSE", "FOR_CONDITION", "FOR_EACH", - "FOR_INIT", "FOR_UPDATE", "FORMAL_PARAM_LIST", "FORMAL_PARAM_STD_DECL", - "FORMAL_PARAM_VARARG_DECL", "FUNCTION_METHOD_DECL", "GENERIC_TYPE_ARG_LIST", - "GENERIC_TYPE_PARAM_LIST", "INTERFACE_TOP_LEVEL_SCOPE", "IMPLEMENTS_CLAUSE", - "LABELED_STATEMENT", "LOCAL_MODIFIER_LIST", "JAVA_SOURCE", "METHOD_CALL", - "MODIFIER_LIST", "PARENTESIZED_EXPR", "POST_DEC", "POST_INC", "PRE_DEC", - "PRE_INC", "QUALIFIED_TYPE_IDENT", "STATIC_ARRAY_CREATOR", "SUPER_CONSTRUCTOR_CALL", - "SWITCH_BLOCK_LABEL_LIST", "THIS_CONSTRUCTOR_CALL", "THROWS_CLAUSE", - "TYPE", "UNARY_MINUS", "UNARY_PLUS", "VAR_DECLARATION", "VAR_DECLARATOR", - "VAR_DECLARATOR_LIST", "VOID_METHOD_DECL", "IDENT", "HEX_LITERAL", "OCTAL_LITERAL", - "DECIMAL_LITERAL", "FLOATING_POINT_LITERAL", "CHARACTER_LITERAL", "STRING_LITERAL", - "HEX_DIGIT", "INTEGER_TYPE_SUFFIX", "EXPONENT", "FLOAT_TYPE_SUFFIX", - "ESCAPE_SEQUENCE", "UNICODE_ESCAPE", "OCTAL_ESCAPE", "JAVA_ID_START", - "JAVA_ID_PART", "WS", "COMMENT", "LINE_COMMENT", "JAVADOC_COMMENT" -] - - - - -class JavaParser(Parser): - grammarFileName = "Java.g" - antlr_version = version_str_to_tuple("3.1.3 Mar 18, 2009 10:09:25") - antlr_version_str = "3.1.3 Mar 18, 2009 10:09:25" - tokenNames = tokenNames - - def __init__(self, input, state=None, *args, **kwargs): - if state is None: - state = RecognizerSharedState() - - super(JavaParser, self).__init__(input, state, *args, **kwargs) - - self._state.ruleMemo = {} - self.dfa36 = self.DFA36( - self, 36, - eot = self.DFA36_eot, - eof = self.DFA36_eof, - min = self.DFA36_min, - max = self.DFA36_max, - accept = self.DFA36_accept, - special = self.DFA36_special, - transition = self.DFA36_transition - ) - - self.dfa43 = self.DFA43( - self, 43, - eot = self.DFA43_eot, - eof = self.DFA43_eof, - min = self.DFA43_min, - max = self.DFA43_max, - accept = self.DFA43_accept, - special = self.DFA43_special, - transition = self.DFA43_transition - ) - - self.dfa86 = self.DFA86( - self, 86, - eot = self.DFA86_eot, - eof = self.DFA86_eof, - min = self.DFA86_min, - max = self.DFA86_max, - accept = self.DFA86_accept, - special = self.DFA86_special, - transition = self.DFA86_transition - ) - - self.dfa88 = self.DFA88( - self, 88, - eot = self.DFA88_eot, - eof = self.DFA88_eof, - min = self.DFA88_min, - max = self.DFA88_max, - accept = self.DFA88_accept, - special = self.DFA88_special, - transition = self.DFA88_transition - ) - - self.dfa98 = self.DFA98( - self, 98, - eot = self.DFA98_eot, - eof = self.DFA98_eof, - min = self.DFA98_min, - max = self.DFA98_max, - accept = self.DFA98_accept, - special = self.DFA98_special, - transition = self.DFA98_transition - ) - - self.dfa91 = self.DFA91( - self, 91, - eot = self.DFA91_eot, - eof = self.DFA91_eof, - min = self.DFA91_min, - max = self.DFA91_max, - accept = self.DFA91_accept, - special = self.DFA91_special, - transition = self.DFA91_transition - ) - - self.dfa106 = self.DFA106( - self, 106, - eot = self.DFA106_eot, - eof = self.DFA106_eof, - min = self.DFA106_min, - max = self.DFA106_max, - accept = self.DFA106_accept, - special = self.DFA106_special, - transition = self.DFA106_transition - ) - - self.dfa130 = self.DFA130( - self, 130, - eot = self.DFA130_eot, - eof = self.DFA130_eof, - min = self.DFA130_min, - max = self.DFA130_max, - accept = self.DFA130_accept, - special = self.DFA130_special, - transition = self.DFA130_transition - ) - - self.dfa142 = self.DFA142( - self, 142, - eot = self.DFA142_eot, - eof = self.DFA142_eof, - min = self.DFA142_min, - max = self.DFA142_max, - accept = self.DFA142_accept, - special = self.DFA142_special, - transition = self.DFA142_transition - ) - - self.dfa146 = self.DFA146( - self, 146, - eot = self.DFA146_eot, - eof = self.DFA146_eof, - min = self.DFA146_min, - max = self.DFA146_max, - accept = self.DFA146_accept, - special = self.DFA146_special, - transition = self.DFA146_transition - ) - - self.dfa153 = self.DFA153( - self, 153, - eot = self.DFA153_eot, - eof = self.DFA153_eof, - min = self.DFA153_min, - max = self.DFA153_max, - accept = self.DFA153_accept, - special = self.DFA153_special, - transition = self.DFA153_transition - ) - - - - - - - self._adaptor = None - self.adaptor = CommonTreeAdaptor() - - - - - def getTreeAdaptor(self): - return self._adaptor - - def setTreeAdaptor(self, adaptor): - self._adaptor = adaptor - - adaptor = property(getTreeAdaptor, setTreeAdaptor) - - - class javaSource_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.javaSource_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "javaSource" - # Java.g:222:1: javaSource : compilationUnit -> ^( JAVA_SOURCE compilationUnit ) ; - def javaSource(self, ): - - retval = self.javaSource_return() - retval.start = self.input.LT(1) - javaSource_StartIndex = self.input.index() - root_0 = None - - compilationUnit1 = None +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3q") + buf.write("\u059f\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") + buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") + buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31") + buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36") + buf.write("\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t") + buf.write("&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4") + buf.write("/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t\64") + buf.write("\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t") + buf.write(";\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\t") + buf.write("D\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\tL\4M\t") + buf.write("M\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\tU\4V\t") + buf.write("V\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4") + buf.write("_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4") + buf.write("h\th\4i\ti\4j\tj\3\2\5\2\u00d6\n\2\3\2\7\2\u00d9\n\2\f") + buf.write("\2\16\2\u00dc\13\2\3\2\7\2\u00df\n\2\f\2\16\2\u00e2\13") + buf.write("\2\3\2\3\2\3\3\7\3\u00e7\n\3\f\3\16\3\u00ea\13\3\3\3\3") + buf.write("\3\3\3\3\3\3\4\3\4\5\4\u00f2\n\4\3\4\3\4\3\4\5\4\u00f7") + buf.write("\n\4\3\4\3\4\3\5\7\5\u00fc\n\5\f\5\16\5\u00ff\13\5\3\5") + buf.write("\3\5\3\5\3\5\5\5\u0105\n\5\3\5\5\5\u0108\n\5\3\6\3\6\3") + buf.write("\6\3\6\3\6\5\6\u010f\n\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3") + buf.write("\7\5\7\u0119\n\7\3\b\3\b\5\b\u011d\n\b\3\t\3\t\3\t\5\t") + buf.write("\u0122\n\t\3\t\3\t\5\t\u0126\n\t\3\t\3\t\5\t\u012a\n\t") + buf.write("\3\t\3\t\3\n\3\n\3\n\3\n\7\n\u0132\n\n\f\n\16\n\u0135") + buf.write("\13\n\3\n\3\n\3\13\7\13\u013a\n\13\f\13\16\13\u013d\13") + buf.write("\13\3\13\3\13\3\13\7\13\u0142\n\13\f\13\16\13\u0145\13") + buf.write("\13\3\13\5\13\u0148\n\13\3\f\3\f\3\f\7\f\u014d\n\f\f\f") + buf.write("\16\f\u0150\13\f\3\r\3\r\3\r\3\r\5\r\u0156\n\r\3\r\3\r") + buf.write("\5\r\u015a\n\r\3\r\5\r\u015d\n\r\3\r\5\r\u0160\n\r\3\r") + buf.write("\3\r\3\16\3\16\3\16\7\16\u0167\n\16\f\16\16\16\u016a\13") + buf.write("\16\3\17\7\17\u016d\n\17\f\17\16\17\u0170\13\17\3\17\3") + buf.write("\17\5\17\u0174\n\17\3\17\5\17\u0177\n\17\3\20\3\20\7\20") + buf.write("\u017b\n\20\f\20\16\20\u017e\13\20\3\21\3\21\3\21\5\21") + buf.write("\u0183\n\21\3\21\3\21\5\21\u0187\n\21\3\21\3\21\3\22\3") + buf.write("\22\7\22\u018d\n\22\f\22\16\22\u0190\13\22\3\22\3\22\3") + buf.write("\23\3\23\7\23\u0196\n\23\f\23\16\23\u0199\13\23\3\23\3") + buf.write("\23\3\24\3\24\5\24\u019f\n\24\3\24\3\24\7\24\u01a3\n\24") + buf.write("\f\24\16\24\u01a6\13\24\3\24\5\24\u01a9\n\24\3\25\3\25") + buf.write("\3\25\3\25\3\25\3\25\3\25\3\25\3\25\5\25\u01b4\n\25\3") + buf.write("\26\3\26\3\26\3\26\3\26\7\26\u01bb\n\26\f\26\16\26\u01be") + buf.write("\13\26\3\26\3\26\5\26\u01c2\n\26\3\26\3\26\3\27\3\27\5") + buf.write("\27\u01c8\n\27\3\30\3\30\5\30\u01cc\n\30\3\31\3\31\3\31") + buf.write("\3\32\3\32\3\32\3\33\3\33\3\33\3\33\5\33\u01d8\n\33\3") + buf.write("\33\3\33\3\34\3\34\3\34\3\34\3\35\7\35\u01e1\n\35\f\35") + buf.write("\16\35\u01e4\13\35\3\35\3\35\5\35\u01e8\n\35\3\36\3\36") + buf.write("\3\36\3\36\3\36\3\36\3\36\5\36\u01f1\n\36\3\37\3\37\3") + buf.write("\37\3\37\7\37\u01f7\n\37\f\37\16\37\u01fa\13\37\3\37\3") + buf.write("\37\3 \3 \3 \7 \u0201\n \f \16 \u0204\13 \3 \3 \3 \3!") + buf.write("\7!\u020a\n!\f!\16!\u020d\13!\3!\3!\3!\7!\u0212\n!\f!") + buf.write("\16!\u0215\13!\3!\3!\5!\u0219\n!\3!\3!\3!\3!\7!\u021f") + buf.write("\n!\f!\16!\u0222\13!\3!\3!\5!\u0226\n!\3!\3!\3\"\3\"\3") + buf.write("\"\3\"\3\"\3\"\5\"\u0230\n\"\3#\3#\3#\3$\3$\3$\7$\u0238") + buf.write("\n$\f$\16$\u023b\13$\3%\3%\3%\5%\u0240\n%\3&\3&\3&\7&") + buf.write("\u0245\n&\f&\16&\u0248\13&\3\'\3\'\5\'\u024c\n\'\3(\3") + buf.write("(\3(\3(\7(\u0252\n(\f(\16(\u0255\13(\3(\5(\u0258\n(\5") + buf.write("(\u025a\n(\3(\3(\3)\3)\5)\u0260\n)\3)\3)\3)\5)\u0265\n") + buf.write(")\7)\u0267\n)\f)\16)\u026a\13)\3*\3*\7*\u026e\n*\f*\16") + buf.write("*\u0271\13*\3*\3*\3*\5*\u0276\n*\5*\u0278\n*\3+\3+\3+") + buf.write("\7+\u027d\n+\f+\16+\u0280\13+\3,\3,\5,\u0284\n,\3,\3,") + buf.write("\3-\3-\3-\7-\u028b\n-\f-\16-\u028e\13-\3-\3-\5-\u0292") + buf.write("\n-\3-\5-\u0295\n-\3.\7.\u0298\n.\f.\16.\u029b\13.\3.") + buf.write("\3.\3.\3/\7/\u02a1\n/\f/\16/\u02a4\13/\3/\3/\7/\u02a8") + buf.write("\n/\f/\16/\u02ab\13/\3/\3/\3/\3\60\3\60\3\60\7\60\u02b3") + buf.write("\n\60\f\60\16\60\u02b6\13\60\3\61\3\61\3\61\3\61\3\61") + buf.write("\3\61\5\61\u02be\n\61\3\62\3\62\3\63\3\63\3\64\3\64\7") + buf.write("\64\u02c6\n\64\f\64\16\64\u02c9\13\64\3\64\3\64\3\64\3") + buf.write("\65\3\65\3\65\5\65\u02d1\n\65\3\65\3\65\3\65\5\65\u02d6") + buf.write("\n\65\3\65\5\65\u02d9\n\65\3\66\3\66\3\66\7\66\u02de\n") + buf.write("\66\f\66\16\66\u02e1\13\66\3\67\3\67\3\67\3\67\38\38\3") + buf.write("8\58\u02ea\n8\39\39\39\39\79\u02f0\n9\f9\169\u02f3\13") + buf.write("9\59\u02f5\n9\39\59\u02f8\n9\39\39\3:\3:\3:\3:\3:\3;\3") + buf.write(";\7;\u0303\n;\f;\16;\u0306\13;\3;\3;\3<\7<\u030b\n<\f") + buf.write("<\16<\u030e\13<\3<\3<\5<\u0312\n<\3=\3=\3=\3=\3=\3=\5") + buf.write("=\u031a\n=\3=\3=\5=\u031e\n=\3=\3=\5=\u0322\n=\3=\3=\5") + buf.write("=\u0326\n=\5=\u0328\n=\3>\3>\5>\u032c\n>\3?\3?\3?\3?\5") + buf.write("?\u0332\n?\3@\3@\3A\3A\3A\3B\3B\7B\u033b\nB\fB\16B\u033e") + buf.write("\13B\3B\3B\3C\3C\3C\3C\3C\5C\u0347\nC\3D\7D\u034a\nD\f") + buf.write("D\16D\u034d\13D\3D\3D\3D\3E\7E\u0353\nE\fE\16E\u0356\13") + buf.write("E\3E\3E\5E\u035a\nE\3E\5E\u035d\nE\3F\3F\3F\3F\3F\5F\u0364") + buf.write("\nF\3F\3F\3F\3F\3F\3F\3F\5F\u036d\nF\3F\3F\3F\3F\3F\3") + buf.write("F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\6F\u0382\nF\r") + buf.write("F\16F\u0383\3F\5F\u0387\nF\3F\5F\u038a\nF\3F\3F\3F\3F") + buf.write("\7F\u0390\nF\fF\16F\u0393\13F\3F\5F\u0396\nF\3F\3F\3F") + buf.write("\3F\7F\u039c\nF\fF\16F\u039f\13F\3F\7F\u03a2\nF\fF\16") + buf.write("F\u03a5\13F\3F\3F\3F\3F\3F\3F\3F\3F\5F\u03af\nF\3F\3F") + buf.write("\3F\3F\3F\3F\3F\5F\u03b8\nF\3F\3F\3F\5F\u03bd\nF\3F\3") + buf.write("F\3F\3F\3F\3F\3F\3F\5F\u03c7\nF\3G\3G\3G\7G\u03cc\nG\f") + buf.write("G\16G\u03cf\13G\3G\3G\3G\3G\3G\3H\3H\3H\7H\u03d9\nH\f") + buf.write("H\16H\u03dc\13H\3I\3I\3I\3J\3J\3J\5J\u03e4\nJ\3J\3J\3") + buf.write("K\3K\3K\7K\u03eb\nK\fK\16K\u03ee\13K\3L\7L\u03f1\nL\f") + buf.write("L\16L\u03f4\13L\3L\3L\3L\3L\3L\3M\6M\u03fc\nM\rM\16M\u03fd") + buf.write("\3M\6M\u0401\nM\rM\16M\u0402\3N\3N\3N\5N\u0408\nN\3N\3") + buf.write("N\3N\5N\u040d\nN\3O\3O\5O\u0411\nO\3O\3O\5O\u0415\nO\3") + buf.write("O\3O\5O\u0419\nO\5O\u041b\nO\3P\3P\5P\u041f\nP\3Q\7Q\u0422") + buf.write("\nQ\fQ\16Q\u0425\13Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3S\3S") + buf.write("\3S\7S\u0433\nS\fS\16S\u0436\13S\3T\3T\3T\5T\u043b\nT") + buf.write("\3T\3T\3T\3T\5T\u0441\nT\3T\3T\3T\3T\5T\u0447\nT\3T\5") + buf.write("T\u044a\nT\3U\3U\3U\3U\3U\3U\3U\7U\u0453\nU\fU\16U\u0456") + buf.write("\13U\3U\3U\3U\7U\u045b\nU\fU\16U\u045e\13U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\3U\3U\3U\3U\5U\u046b\nU\3U\3U\5U\u046f\nU\3") + buf.write("U\3U\3U\5U\u0474\nU\3U\3U\5U\u0478\nU\3U\3U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u0488\nU\3U\3U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u04b0\n") + buf.write("U\3U\3U\3U\3U\5U\u04b6\nU\3U\3U\3U\3U\3U\3U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\5U\u04c5\nU\3U\7U\u04c8\nU\fU\16U\u04cb\13") + buf.write("U\3V\3V\3V\3V\3W\3W\3W\5W\u04d4\nW\3W\3W\3W\3W\3W\7W\u04db") + buf.write("\nW\fW\16W\u04de\13W\3W\5W\u04e1\nW\3X\3X\5X\u04e5\nX") + buf.write("\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u04f7") + buf.write("\nY\5Y\u04f9\nY\3Z\3Z\3Z\5Z\u04fe\nZ\3Z\7Z\u0501\nZ\f") + buf.write("Z\16Z\u0504\13Z\3Z\3Z\5Z\u0508\nZ\3[\3[\3[\3[\3[\3[\3") + buf.write("[\5[\u0511\n[\5[\u0513\n[\3\\\3\\\5\\\u0517\n\\\3\\\3") + buf.write("\\\3\\\5\\\u051c\n\\\7\\\u051e\n\\\f\\\16\\\u0521\13\\") + buf.write("\3\\\5\\\u0524\n\\\3]\3]\5]\u0528\n]\3]\3]\3^\3^\3^\3") + buf.write("^\7^\u0530\n^\f^\16^\u0533\13^\3^\3^\3^\3^\3^\3^\3^\7") + buf.write("^\u053c\n^\f^\16^\u053f\13^\3^\3^\7^\u0543\n^\f^\16^\u0546") + buf.write("\13^\5^\u0548\n^\3_\3_\5_\u054c\n_\3`\3`\3`\3a\3a\3a\5") + buf.write("a\u0554\na\3b\3b\3b\5b\u0559\nb\3c\3c\3c\3c\3d\3d\3d\7") + buf.write("d\u0562\nd\fd\16d\u0565\13d\3e\7e\u0568\ne\fe\16e\u056b") + buf.write("\13e\3e\3e\5e\u056f\ne\3e\7e\u0572\ne\fe\16e\u0575\13") + buf.write("e\3e\3e\7e\u0579\ne\fe\16e\u057c\13e\3f\3f\3g\3g\3g\3") + buf.write("g\7g\u0584\ng\fg\16g\u0587\13g\3g\3g\3h\3h\3h\3h\5h\u058f") + buf.write("\nh\5h\u0591\nh\3i\3i\3i\3i\5i\u0597\ni\3j\3j\5j\u059b") + buf.write("\nj\3j\3j\3j\2\3\u00a8k\2\4\6\b\n\f\16\20\22\24\26\30") + buf.write("\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`b") + buf.write("dfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c") + buf.write("\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e") + buf.write("\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0") + buf.write("\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2") + buf.write("\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\2\16") + buf.write("\4\2\23\23**\3\2\658\3\29:\3\2UX\3\2KL\4\2YZ^^\3\2WX\4") + buf.write("\2IJPQ\4\2OORR\4\2HH_i\3\2UV\n\2\5\5\7\7\n\n\20\20\26") + buf.write("\26\35\35\37\37\'\'\2\u063f\2\u00d5\3\2\2\2\4\u00e8\3") + buf.write("\2\2\2\6\u00ef\3\2\2\2\b\u0107\3\2\2\2\n\u010e\3\2\2\2") + buf.write("\f\u0118\3\2\2\2\16\u011c\3\2\2\2\20\u011e\3\2\2\2\22") + buf.write("\u012d\3\2\2\2\24\u013b\3\2\2\2\26\u0149\3\2\2\2\30\u0151") + buf.write("\3\2\2\2\32\u0163\3\2\2\2\34\u016e\3\2\2\2\36\u0178\3") + buf.write("\2\2\2 \u017f\3\2\2\2\"\u018a\3\2\2\2$\u0193\3\2\2\2&") + buf.write("\u01a8\3\2\2\2(\u01b3\3\2\2\2*\u01b5\3\2\2\2,\u01c7\3") + buf.write("\2\2\2.\u01cb\3\2\2\2\60\u01cd\3\2\2\2\62\u01d0\3\2\2") + buf.write("\2\64\u01d3\3\2\2\2\66\u01db\3\2\2\28\u01e7\3\2\2\2:\u01f0") + buf.write("\3\2\2\2<\u01f2\3\2\2\2>\u01fd\3\2\2\2@\u020b\3\2\2\2") + buf.write("B\u022f\3\2\2\2D\u0231\3\2\2\2F\u0234\3\2\2\2H\u023c\3") + buf.write("\2\2\2J\u0241\3\2\2\2L\u024b\3\2\2\2N\u024d\3\2\2\2P\u025d") + buf.write("\3\2\2\2R\u0277\3\2\2\2T\u0279\3\2\2\2V\u0281\3\2\2\2") + buf.write("X\u0294\3\2\2\2Z\u0299\3\2\2\2\\\u02a2\3\2\2\2^\u02af") + buf.write("\3\2\2\2`\u02bd\3\2\2\2b\u02bf\3\2\2\2d\u02c1\3\2\2\2") + buf.write("f\u02c7\3\2\2\2h\u02d0\3\2\2\2j\u02da\3\2\2\2l\u02e2\3") + buf.write("\2\2\2n\u02e9\3\2\2\2p\u02eb\3\2\2\2r\u02fb\3\2\2\2t\u0300") + buf.write("\3\2\2\2v\u0311\3\2\2\2x\u0327\3\2\2\2z\u032b\3\2\2\2") + buf.write("|\u032d\3\2\2\2~\u0333\3\2\2\2\u0080\u0335\3\2\2\2\u0082") + buf.write("\u0338\3\2\2\2\u0084\u0346\3\2\2\2\u0086\u034b\3\2\2\2") + buf.write("\u0088\u035c\3\2\2\2\u008a\u03c6\3\2\2\2\u008c\u03c8\3") + buf.write("\2\2\2\u008e\u03d5\3\2\2\2\u0090\u03dd\3\2\2\2\u0092\u03e0") + buf.write("\3\2\2\2\u0094\u03e7\3\2\2\2\u0096\u03f2\3\2\2\2\u0098") + buf.write("\u03fb\3\2\2\2\u009a\u040c\3\2\2\2\u009c\u041a\3\2\2\2") + buf.write("\u009e\u041e\3\2\2\2\u00a0\u0423\3\2\2\2\u00a2\u042b\3") + buf.write("\2\2\2\u00a4\u042f\3\2\2\2\u00a6\u0449\3\2\2\2\u00a8\u0477") + buf.write("\3\2\2\2\u00aa\u04cc\3\2\2\2\u00ac\u04e0\3\2\2\2\u00ae") + buf.write("\u04e4\3\2\2\2\u00b0\u04f8\3\2\2\2\u00b2\u04fd\3\2\2\2") + buf.write("\u00b4\u0512\3\2\2\2\u00b6\u0523\3\2\2\2\u00b8\u0525\3") + buf.write("\2\2\2\u00ba\u052b\3\2\2\2\u00bc\u0549\3\2\2\2\u00be\u054d") + buf.write("\3\2\2\2\u00c0\u0553\3\2\2\2\u00c2\u0558\3\2\2\2\u00c4") + buf.write("\u055a\3\2\2\2\u00c6\u055e\3\2\2\2\u00c8\u0569\3\2\2\2") + buf.write("\u00ca\u057d\3\2\2\2\u00cc\u057f\3\2\2\2\u00ce\u0590\3") + buf.write("\2\2\2\u00d0\u0596\3\2\2\2\u00d2\u0598\3\2\2\2\u00d4\u00d6") + buf.write("\5\4\3\2\u00d5\u00d4\3\2\2\2\u00d5\u00d6\3\2\2\2\u00d6") + buf.write("\u00da\3\2\2\2\u00d7\u00d9\5\6\4\2\u00d8\u00d7\3\2\2\2") + buf.write("\u00d9\u00dc\3\2\2\2\u00da\u00d8\3\2\2\2\u00da\u00db\3") + buf.write("\2\2\2\u00db\u00e0\3\2\2\2\u00dc\u00da\3\2\2\2\u00dd\u00df") + buf.write("\5\b\5\2\u00de\u00dd\3\2\2\2\u00df\u00e2\3\2\2\2\u00e0") + buf.write("\u00de\3\2\2\2\u00e0\u00e1\3\2\2\2\u00e1\u00e3\3\2\2\2") + buf.write("\u00e2\u00e0\3\2\2\2\u00e3\u00e4\7\2\2\3\u00e4\3\3\2\2") + buf.write("\2\u00e5\u00e7\5h\65\2\u00e6\u00e5\3\2\2\2\u00e7\u00ea") + buf.write("\3\2\2\2\u00e8\u00e6\3\2\2\2\u00e8\u00e9\3\2\2\2\u00e9") + buf.write("\u00eb\3\2\2\2\u00ea\u00e8\3\2\2\2\u00eb\u00ec\7\"\2\2") + buf.write("\u00ec\u00ed\5^\60\2\u00ed\u00ee\7E\2\2\u00ee\5\3\2\2") + buf.write("\2\u00ef\u00f1\7\33\2\2\u00f0\u00f2\7(\2\2\u00f1\u00f0") + buf.write("\3\2\2\2\u00f1\u00f2\3\2\2\2\u00f2\u00f3\3\2\2\2\u00f3") + buf.write("\u00f6\5^\60\2\u00f4\u00f5\7G\2\2\u00f5\u00f7\7Y\2\2\u00f6") + buf.write("\u00f4\3\2\2\2\u00f6\u00f7\3\2\2\2\u00f7\u00f8\3\2\2\2") + buf.write("\u00f8\u00f9\7E\2\2\u00f9\7\3\2\2\2\u00fa\u00fc\5\f\7") + buf.write("\2\u00fb\u00fa\3\2\2\2\u00fc\u00ff\3\2\2\2\u00fd\u00fb") + buf.write("\3\2\2\2\u00fd\u00fe\3\2\2\2\u00fe\u0104\3\2\2\2\u00ff") + buf.write("\u00fd\3\2\2\2\u0100\u0105\5\20\t\2\u0101\u0105\5\30\r") + buf.write("\2\u0102\u0105\5 \21\2\u0103\u0105\5r:\2\u0104\u0100\3") + buf.write("\2\2\2\u0104\u0101\3\2\2\2\u0104\u0102\3\2\2\2\u0104\u0103") + buf.write("\3\2\2\2\u0105\u0108\3\2\2\2\u0106\u0108\7E\2\2\u0107") + buf.write("\u00fd\3\2\2\2\u0107\u0106\3\2\2\2\u0108\t\3\2\2\2\u0109") + buf.write("\u010f\5\f\7\2\u010a\u010f\7 \2\2\u010b\u010f\7,\2\2\u010c") + buf.write("\u010f\7\60\2\2\u010d\u010f\7\63\2\2\u010e\u0109\3\2\2") + buf.write("\2\u010e\u010a\3\2\2\2\u010e\u010b\3\2\2\2\u010e\u010c") + buf.write("\3\2\2\2\u010e\u010d\3\2\2\2\u010f\13\3\2\2\2\u0110\u0119") + buf.write("\5h\65\2\u0111\u0119\7%\2\2\u0112\u0119\7$\2\2\u0113\u0119") + buf.write("\7#\2\2\u0114\u0119\7(\2\2\u0115\u0119\7\3\2\2\u0116\u0119") + buf.write("\7\24\2\2\u0117\u0119\7)\2\2\u0118\u0110\3\2\2\2\u0118") + buf.write("\u0111\3\2\2\2\u0118\u0112\3\2\2\2\u0118\u0113\3\2\2\2") + buf.write("\u0118\u0114\3\2\2\2\u0118\u0115\3\2\2\2\u0118\u0116\3") + buf.write("\2\2\2\u0118\u0117\3\2\2\2\u0119\r\3\2\2\2\u011a\u011d") + buf.write("\7\24\2\2\u011b\u011d\5h\65\2\u011c\u011a\3\2\2\2\u011c") + buf.write("\u011b\3\2\2\2\u011d\17\3\2\2\2\u011e\u011f\7\13\2\2\u011f") + buf.write("\u0121\7q\2\2\u0120\u0122\5\22\n\2\u0121\u0120\3\2\2\2") + buf.write("\u0121\u0122\3\2\2\2\u0122\u0125\3\2\2\2\u0123\u0124\7") + buf.write("\23\2\2\u0124\u0126\5\u00c8e\2\u0125\u0123\3\2\2\2\u0125") + buf.write("\u0126\3\2\2\2\u0126\u0129\3\2\2\2\u0127\u0128\7\32\2") + buf.write("\2\u0128\u012a\5\u00c6d\2\u0129\u0127\3\2\2\2\u0129\u012a") + buf.write("\3\2\2\2\u012a\u012b\3\2\2\2\u012b\u012c\5\"\22\2\u012c") + buf.write("\21\3\2\2\2\u012d\u012e\7J\2\2\u012e\u0133\5\24\13\2\u012f") + buf.write("\u0130\7F\2\2\u0130\u0132\5\24\13\2\u0131\u012f\3\2\2") + buf.write("\2\u0132\u0135\3\2\2\2\u0133\u0131\3\2\2\2\u0133\u0134") + buf.write("\3\2\2\2\u0134\u0136\3\2\2\2\u0135\u0133\3\2\2\2\u0136") + buf.write("\u0137\7I\2\2\u0137\23\3\2\2\2\u0138\u013a\5h\65\2\u0139") + buf.write("\u0138\3\2\2\2\u013a\u013d\3\2\2\2\u013b\u0139\3\2\2\2") + buf.write("\u013b\u013c\3\2\2\2\u013c\u013e\3\2\2\2\u013d\u013b\3") + buf.write("\2\2\2\u013e\u0147\7q\2\2\u013f\u0143\7\23\2\2\u0140\u0142") + buf.write("\5h\65\2\u0141\u0140\3\2\2\2\u0142\u0145\3\2\2\2\u0143") + buf.write("\u0141\3\2\2\2\u0143\u0144\3\2\2\2\u0144\u0146\3\2\2\2") + buf.write("\u0145\u0143\3\2\2\2\u0146\u0148\5\26\f\2\u0147\u013f") + buf.write("\3\2\2\2\u0147\u0148\3\2\2\2\u0148\25\3\2\2\2\u0149\u014e") + buf.write("\5\u00c8e\2\u014a\u014b\7[\2\2\u014b\u014d\5\u00c8e\2") + buf.write("\u014c\u014a\3\2\2\2\u014d\u0150\3\2\2\2\u014e\u014c\3") + buf.write("\2\2\2\u014e\u014f\3\2\2\2\u014f\27\3\2\2\2\u0150\u014e") + buf.write("\3\2\2\2\u0151\u0152\7\22\2\2\u0152\u0155\7q\2\2\u0153") + buf.write("\u0154\7\32\2\2\u0154\u0156\5\u00c6d\2\u0155\u0153\3\2") + buf.write("\2\2\u0155\u0156\3\2\2\2\u0156\u0157\3\2\2\2\u0157\u0159") + buf.write("\7A\2\2\u0158\u015a\5\32\16\2\u0159\u0158\3\2\2\2\u0159") + buf.write("\u015a\3\2\2\2\u015a\u015c\3\2\2\2\u015b\u015d\7F\2\2") + buf.write("\u015c\u015b\3\2\2\2\u015c\u015d\3\2\2\2\u015d\u015f\3") + buf.write("\2\2\2\u015e\u0160\5\36\20\2\u015f\u015e\3\2\2\2\u015f") + buf.write("\u0160\3\2\2\2\u0160\u0161\3\2\2\2\u0161\u0162\7B\2\2") + buf.write("\u0162\31\3\2\2\2\u0163\u0168\5\34\17\2\u0164\u0165\7") + buf.write("F\2\2\u0165\u0167\5\34\17\2\u0166\u0164\3\2\2\2\u0167") + buf.write("\u016a\3\2\2\2\u0168\u0166\3\2\2\2\u0168\u0169\3\2\2\2") + buf.write("\u0169\33\3\2\2\2\u016a\u0168\3\2\2\2\u016b\u016d\5h\65") + buf.write("\2\u016c\u016b\3\2\2\2\u016d\u0170\3\2\2\2\u016e\u016c") + buf.write("\3\2\2\2\u016e\u016f\3\2\2\2\u016f\u0171\3\2\2\2\u0170") + buf.write("\u016e\3\2\2\2\u0171\u0173\7q\2\2\u0172\u0174\5\u00d2") + buf.write("j\2\u0173\u0172\3\2\2\2\u0173\u0174\3\2\2\2\u0174\u0176") + buf.write("\3\2\2\2\u0175\u0177\5\"\22\2\u0176\u0175\3\2\2\2\u0176") + buf.write("\u0177\3\2\2\2\u0177\35\3\2\2\2\u0178\u017c\7E\2\2\u0179") + buf.write("\u017b\5&\24\2\u017a\u0179\3\2\2\2\u017b\u017e\3\2\2\2") + buf.write("\u017c\u017a\3\2\2\2\u017c\u017d\3\2\2\2\u017d\37\3\2") + buf.write("\2\2\u017e\u017c\3\2\2\2\u017f\u0180\7\36\2\2\u0180\u0182") + buf.write("\7q\2\2\u0181\u0183\5\22\n\2\u0182\u0181\3\2\2\2\u0182") + buf.write("\u0183\3\2\2\2\u0183\u0186\3\2\2\2\u0184\u0185\7\23\2") + buf.write("\2\u0185\u0187\5\u00c6d\2\u0186\u0184\3\2\2\2\u0186\u0187") + buf.write("\3\2\2\2\u0187\u0188\3\2\2\2\u0188\u0189\5$\23\2\u0189") + buf.write("!\3\2\2\2\u018a\u018e\7A\2\2\u018b\u018d\5&\24\2\u018c") + buf.write("\u018b\3\2\2\2\u018d\u0190\3\2\2\2\u018e\u018c\3\2\2\2") + buf.write("\u018e\u018f\3\2\2\2\u018f\u0191\3\2\2\2\u0190\u018e\3") + buf.write("\2\2\2\u0191\u0192\7B\2\2\u0192#\3\2\2\2\u0193\u0197\7") + buf.write("A\2\2\u0194\u0196\58\35\2\u0195\u0194\3\2\2\2\u0196\u0199") + buf.write("\3\2\2\2\u0197\u0195\3\2\2\2\u0197\u0198\3\2\2\2\u0198") + buf.write("\u019a\3\2\2\2\u0199\u0197\3\2\2\2\u019a\u019b\7B\2\2") + buf.write("\u019b%\3\2\2\2\u019c\u01a9\7E\2\2\u019d\u019f\7(\2\2") + buf.write("\u019e\u019d\3\2\2\2\u019e\u019f\3\2\2\2\u019f\u01a0\3") + buf.write("\2\2\2\u01a0\u01a9\5\u0082B\2\u01a1\u01a3\5\n\6\2\u01a2") + buf.write("\u01a1\3\2\2\2\u01a3\u01a6\3\2\2\2\u01a4\u01a2\3\2\2\2") + buf.write("\u01a4\u01a5\3\2\2\2\u01a5\u01a7\3\2\2\2\u01a6\u01a4\3") + buf.write("\2\2\2\u01a7\u01a9\5(\25\2\u01a8\u019c\3\2\2\2\u01a8\u019e") + buf.write("\3\2\2\2\u01a8\u01a4\3\2\2\2\u01a9\'\3\2\2\2\u01aa\u01b4") + buf.write("\5*\26\2\u01ab\u01b4\5\60\31\2\u01ac\u01b4\5\66\34\2\u01ad") + buf.write("\u01b4\5\64\33\2\u01ae\u01b4\5\62\32\2\u01af\u01b4\5 ") + buf.write("\21\2\u01b0\u01b4\5r:\2\u01b1\u01b4\5\20\t\2\u01b2\u01b4") + buf.write("\5\30\r\2\u01b3\u01aa\3\2\2\2\u01b3\u01ab\3\2\2\2\u01b3") + buf.write("\u01ac\3\2\2\2\u01b3\u01ad\3\2\2\2\u01b3\u01ae\3\2\2\2") + buf.write("\u01b3\u01af\3\2\2\2\u01b3\u01b0\3\2\2\2\u01b3\u01b1\3") + buf.write("\2\2\2\u01b3\u01b2\3\2\2\2\u01b4)\3\2\2\2\u01b5\u01b6") + buf.write("\5.\30\2\u01b6\u01b7\7q\2\2\u01b7\u01bc\5V,\2\u01b8\u01b9") + buf.write("\7C\2\2\u01b9\u01bb\7D\2\2\u01ba\u01b8\3\2\2\2\u01bb\u01be") + buf.write("\3\2\2\2\u01bc\u01ba\3\2\2\2\u01bc\u01bd\3\2\2\2\u01bd") + buf.write("\u01c1\3\2\2\2\u01be\u01bc\3\2\2\2\u01bf\u01c0\7/\2\2") + buf.write("\u01c0\u01c2\5T+\2\u01c1\u01bf\3\2\2\2\u01c1\u01c2\3\2") + buf.write("\2\2\u01c2\u01c3\3\2\2\2\u01c3\u01c4\5,\27\2\u01c4+\3") + buf.write("\2\2\2\u01c5\u01c8\5\u0082B\2\u01c6\u01c8\7E\2\2\u01c7") + buf.write("\u01c5\3\2\2\2\u01c7\u01c6\3\2\2\2\u01c8-\3\2\2\2\u01c9") + buf.write("\u01cc\5\u00c8e\2\u01ca\u01cc\7\62\2\2\u01cb\u01c9\3\2") + buf.write("\2\2\u01cb\u01ca\3\2\2\2\u01cc/\3\2\2\2\u01cd\u01ce\5") + buf.write("\22\n\2\u01ce\u01cf\5*\26\2\u01cf\61\3\2\2\2\u01d0\u01d1") + buf.write("\5\22\n\2\u01d1\u01d2\5\64\33\2\u01d2\63\3\2\2\2\u01d3") + buf.write("\u01d4\7q\2\2\u01d4\u01d7\5V,\2\u01d5\u01d6\7/\2\2\u01d6") + buf.write("\u01d8\5T+\2\u01d7\u01d5\3\2\2\2\u01d7\u01d8\3\2\2\2\u01d8") + buf.write("\u01d9\3\2\2\2\u01d9\u01da\5\u0082B\2\u01da\65\3\2\2\2") + buf.write("\u01db\u01dc\5\u00c8e\2\u01dc\u01dd\5F$\2\u01dd\u01de") + buf.write("\7E\2\2\u01de\67\3\2\2\2\u01df\u01e1\5\n\6\2\u01e0\u01df") + buf.write("\3\2\2\2\u01e1\u01e4\3\2\2\2\u01e2\u01e0\3\2\2\2\u01e2") + buf.write("\u01e3\3\2\2\2\u01e3\u01e5\3\2\2\2\u01e4\u01e2\3\2\2\2") + buf.write("\u01e5\u01e8\5:\36\2\u01e6\u01e8\7E\2\2\u01e7\u01e2\3") + buf.write("\2\2\2\u01e7\u01e6\3\2\2\2\u01e89\3\2\2\2\u01e9\u01f1") + buf.write("\5<\37\2\u01ea\u01f1\5@!\2\u01eb\u01f1\5D#\2\u01ec\u01f1") + buf.write("\5 \21\2\u01ed\u01f1\5r:\2\u01ee\u01f1\5\20\t\2\u01ef") + buf.write("\u01f1\5\30\r\2\u01f0\u01e9\3\2\2\2\u01f0\u01ea\3\2\2") + buf.write("\2\u01f0\u01eb\3\2\2\2\u01f0\u01ec\3\2\2\2\u01f0\u01ed") + buf.write("\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f0\u01ef\3\2\2\2\u01f1") + buf.write(";\3\2\2\2\u01f2\u01f3\5\u00c8e\2\u01f3\u01f8\5> \2\u01f4") + buf.write("\u01f5\7F\2\2\u01f5\u01f7\5> \2\u01f6\u01f4\3\2\2\2\u01f7") + buf.write("\u01fa\3\2\2\2\u01f8\u01f6\3\2\2\2\u01f8\u01f9\3\2\2\2") + buf.write("\u01f9\u01fb\3\2\2\2\u01fa\u01f8\3\2\2\2\u01fb\u01fc\7") + buf.write("E\2\2\u01fc=\3\2\2\2\u01fd\u0202\7q\2\2\u01fe\u01ff\7") + buf.write("C\2\2\u01ff\u0201\7D\2\2\u0200\u01fe\3\2\2\2\u0201\u0204") + buf.write("\3\2\2\2\u0202\u0200\3\2\2\2\u0202\u0203\3\2\2\2\u0203") + buf.write("\u0205\3\2\2\2\u0204\u0202\3\2\2\2\u0205\u0206\7H\2\2") + buf.write("\u0206\u0207\5L\'\2\u0207?\3\2\2\2\u0208\u020a\5B\"\2") + buf.write("\u0209\u0208\3\2\2\2\u020a\u020d\3\2\2\2\u020b\u0209\3") + buf.write("\2\2\2\u020b\u020c\3\2\2\2\u020c\u0218\3\2\2\2\u020d\u020b") + buf.write("\3\2\2\2\u020e\u0219\5.\30\2\u020f\u0213\5\22\n\2\u0210") + buf.write("\u0212\5h\65\2\u0211\u0210\3\2\2\2\u0212\u0215\3\2\2\2") + buf.write("\u0213\u0211\3\2\2\2\u0213\u0214\3\2\2\2\u0214\u0216\3") + buf.write("\2\2\2\u0215\u0213\3\2\2\2\u0216\u0217\5.\30\2\u0217\u0219") + buf.write("\3\2\2\2\u0218\u020e\3\2\2\2\u0218\u020f\3\2\2\2\u0219") + buf.write("\u021a\3\2\2\2\u021a\u021b\7q\2\2\u021b\u0220\5V,\2\u021c") + buf.write("\u021d\7C\2\2\u021d\u021f\7D\2\2\u021e\u021c\3\2\2\2\u021f") + buf.write("\u0222\3\2\2\2\u0220\u021e\3\2\2\2\u0220\u0221\3\2\2\2") + buf.write("\u0221\u0225\3\2\2\2\u0222\u0220\3\2\2\2\u0223\u0224\7") + buf.write("/\2\2\u0224\u0226\5T+\2\u0225\u0223\3\2\2\2\u0225\u0226") + buf.write("\3\2\2\2\u0226\u0227\3\2\2\2\u0227\u0228\5,\27\2\u0228") + buf.write("A\3\2\2\2\u0229\u0230\5h\65\2\u022a\u0230\7%\2\2\u022b") + buf.write("\u0230\7\3\2\2\u022c\u0230\7\16\2\2\u022d\u0230\7(\2\2") + buf.write("\u022e\u0230\7)\2\2\u022f\u0229\3\2\2\2\u022f\u022a\3") + buf.write("\2\2\2\u022f\u022b\3\2\2\2\u022f\u022c\3\2\2\2\u022f\u022d") + buf.write("\3\2\2\2\u022f\u022e\3\2\2\2\u0230C\3\2\2\2\u0231\u0232") + buf.write("\5\22\n\2\u0232\u0233\5@!\2\u0233E\3\2\2\2\u0234\u0239") + buf.write("\5H%\2\u0235\u0236\7F\2\2\u0236\u0238\5H%\2\u0237\u0235") + buf.write("\3\2\2\2\u0238\u023b\3\2\2\2\u0239\u0237\3\2\2\2\u0239") + buf.write("\u023a\3\2\2\2\u023aG\3\2\2\2\u023b\u0239\3\2\2\2\u023c") + buf.write("\u023f\5J&\2\u023d\u023e\7H\2\2\u023e\u0240\5L\'\2\u023f") + buf.write("\u023d\3\2\2\2\u023f\u0240\3\2\2\2\u0240I\3\2\2\2\u0241") + buf.write("\u0246\7q\2\2\u0242\u0243\7C\2\2\u0243\u0245\7D\2\2\u0244") + buf.write("\u0242\3\2\2\2\u0245\u0248\3\2\2\2\u0246\u0244\3\2\2\2") + buf.write("\u0246\u0247\3\2\2\2\u0247K\3\2\2\2\u0248\u0246\3\2\2") + buf.write("\2\u0249\u024c\5N(\2\u024a\u024c\5\u00a8U\2\u024b\u0249") + buf.write("\3\2\2\2\u024b\u024a\3\2\2\2\u024cM\3\2\2\2\u024d\u0259") + buf.write("\7A\2\2\u024e\u0253\5L\'\2\u024f\u0250\7F\2\2\u0250\u0252") + buf.write("\5L\'\2\u0251\u024f\3\2\2\2\u0252\u0255\3\2\2\2\u0253") + buf.write("\u0251\3\2\2\2\u0253\u0254\3\2\2\2\u0254\u0257\3\2\2\2") + buf.write("\u0255\u0253\3\2\2\2\u0256\u0258\7F\2\2\u0257\u0256\3") + buf.write("\2\2\2\u0257\u0258\3\2\2\2\u0258\u025a\3\2\2\2\u0259\u024e") + buf.write("\3\2\2\2\u0259\u025a\3\2\2\2\u025a\u025b\3\2\2\2\u025b") + buf.write("\u025c\7B\2\2\u025cO\3\2\2\2\u025d\u025f\7q\2\2\u025e") + buf.write("\u0260\5\u00ccg\2\u025f\u025e\3\2\2\2\u025f\u0260\3\2") + buf.write("\2\2\u0260\u0268\3\2\2\2\u0261\u0262\7G\2\2\u0262\u0264") + buf.write("\7q\2\2\u0263\u0265\5\u00ccg\2\u0264\u0263\3\2\2\2\u0264") + buf.write("\u0265\3\2\2\2\u0265\u0267\3\2\2\2\u0266\u0261\3\2\2\2") + buf.write("\u0267\u026a\3\2\2\2\u0268\u0266\3\2\2\2\u0268\u0269\3") + buf.write("\2\2\2\u0269Q\3\2\2\2\u026a\u0268\3\2\2\2\u026b\u0278") + buf.write("\5\u00c8e\2\u026c\u026e\5h\65\2\u026d\u026c\3\2\2\2\u026e") + buf.write("\u0271\3\2\2\2\u026f\u026d\3\2\2\2\u026f\u0270\3\2\2\2") + buf.write("\u0270\u0272\3\2\2\2\u0271\u026f\3\2\2\2\u0272\u0275\7") + buf.write("M\2\2\u0273\u0274\t\2\2\2\u0274\u0276\5\u00c8e\2\u0275") + buf.write("\u0273\3\2\2\2\u0275\u0276\3\2\2\2\u0276\u0278\3\2\2\2") + buf.write("\u0277\u026b\3\2\2\2\u0277\u026f\3\2\2\2\u0278S\3\2\2") + buf.write("\2\u0279\u027e\5^\60\2\u027a\u027b\7F\2\2\u027b\u027d") + buf.write("\5^\60\2\u027c\u027a\3\2\2\2\u027d\u0280\3\2\2\2\u027e") + buf.write("\u027c\3\2\2\2\u027e\u027f\3\2\2\2\u027fU\3\2\2\2\u0280") + buf.write("\u027e\3\2\2\2\u0281\u0283\7?\2\2\u0282\u0284\5X-\2\u0283") + buf.write("\u0282\3\2\2\2\u0283\u0284\3\2\2\2\u0284\u0285\3\2\2\2") + buf.write("\u0285\u0286\7@\2\2\u0286W\3\2\2\2\u0287\u028c\5Z.\2\u0288") + buf.write("\u0289\7F\2\2\u0289\u028b\5Z.\2\u028a\u0288\3\2\2\2\u028b") + buf.write("\u028e\3\2\2\2\u028c\u028a\3\2\2\2\u028c\u028d\3\2\2\2") + buf.write("\u028d\u0291\3\2\2\2\u028e\u028c\3\2\2\2\u028f\u0290\7") + buf.write("F\2\2\u0290\u0292\5\\/\2\u0291\u028f\3\2\2\2\u0291\u0292") + buf.write("\3\2\2\2\u0292\u0295\3\2\2\2\u0293\u0295\5\\/\2\u0294") + buf.write("\u0287\3\2\2\2\u0294\u0293\3\2\2\2\u0295Y\3\2\2\2\u0296") + buf.write("\u0298\5\16\b\2\u0297\u0296\3\2\2\2\u0298\u029b\3\2\2") + buf.write("\2\u0299\u0297\3\2\2\2\u0299\u029a\3\2\2\2\u029a\u029c") + buf.write("\3\2\2\2\u029b\u0299\3\2\2\2\u029c\u029d\5\u00c8e\2\u029d") + buf.write("\u029e\5J&\2\u029e[\3\2\2\2\u029f\u02a1\5\16\b\2\u02a0") + buf.write("\u029f\3\2\2\2\u02a1\u02a4\3\2\2\2\u02a2\u02a0\3\2\2\2") + buf.write("\u02a2\u02a3\3\2\2\2\u02a3\u02a5\3\2\2\2\u02a4\u02a2\3") + buf.write("\2\2\2\u02a5\u02a9\5\u00c8e\2\u02a6\u02a8\5h\65\2\u02a7") + buf.write("\u02a6\3\2\2\2\u02a8\u02ab\3\2\2\2\u02a9\u02a7\3\2\2\2") + buf.write("\u02a9\u02aa\3\2\2\2\u02aa\u02ac\3\2\2\2\u02ab\u02a9\3") + buf.write("\2\2\2\u02ac\u02ad\7m\2\2\u02ad\u02ae\5J&\2\u02ae]\3\2") + buf.write("\2\2\u02af\u02b4\7q\2\2\u02b0\u02b1\7G\2\2\u02b1\u02b3") + buf.write("\7q\2\2\u02b2\u02b0\3\2\2\2\u02b3\u02b6\3\2\2\2\u02b4") + buf.write("\u02b2\3\2\2\2\u02b4\u02b5\3\2\2\2\u02b5_\3\2\2\2\u02b6") + buf.write("\u02b4\3\2\2\2\u02b7\u02be\5b\62\2\u02b8\u02be\5d\63\2") + buf.write("\u02b9\u02be\7<\2\2\u02ba\u02be\7=\2\2\u02bb\u02be\7;") + buf.write("\2\2\u02bc\u02be\7>\2\2\u02bd\u02b7\3\2\2\2\u02bd\u02b8") + buf.write("\3\2\2\2\u02bd\u02b9\3\2\2\2\u02bd\u02ba\3\2\2\2\u02bd") + buf.write("\u02bb\3\2\2\2\u02bd\u02bc\3\2\2\2\u02bea\3\2\2\2\u02bf") + buf.write("\u02c0\t\3\2\2\u02c0c\3\2\2\2\u02c1\u02c2\t\4\2\2\u02c2") + buf.write("e\3\2\2\2\u02c3\u02c4\7q\2\2\u02c4\u02c6\7G\2\2\u02c5") + buf.write("\u02c3\3\2\2\2\u02c6\u02c9\3\2\2\2\u02c7\u02c5\3\2\2\2") + buf.write("\u02c7\u02c8\3\2\2\2\u02c8\u02ca\3\2\2\2\u02c9\u02c7\3") + buf.write("\2\2\2\u02ca\u02cb\7l\2\2\u02cb\u02cc\7q\2\2\u02ccg\3") + buf.write("\2\2\2\u02cd\u02ce\7l\2\2\u02ce\u02d1\5^\60\2\u02cf\u02d1") + buf.write("\5f\64\2\u02d0\u02cd\3\2\2\2\u02d0\u02cf\3\2\2\2\u02d1") + buf.write("\u02d8\3\2\2\2\u02d2\u02d5\7?\2\2\u02d3\u02d6\5j\66\2") + buf.write("\u02d4\u02d6\5n8\2\u02d5\u02d3\3\2\2\2\u02d5\u02d4\3\2") + buf.write("\2\2\u02d5\u02d6\3\2\2\2\u02d6\u02d7\3\2\2\2\u02d7\u02d9") + buf.write("\7@\2\2\u02d8\u02d2\3\2\2\2\u02d8\u02d9\3\2\2\2\u02d9") + buf.write("i\3\2\2\2\u02da\u02df\5l\67\2\u02db\u02dc\7F\2\2\u02dc") + buf.write("\u02de\5l\67\2\u02dd\u02db\3\2\2\2\u02de\u02e1\3\2\2\2") + buf.write("\u02df\u02dd\3\2\2\2\u02df\u02e0\3\2\2\2\u02e0k\3\2\2") + buf.write("\2\u02e1\u02df\3\2\2\2\u02e2\u02e3\7q\2\2\u02e3\u02e4") + buf.write("\7H\2\2\u02e4\u02e5\5n8\2\u02e5m\3\2\2\2\u02e6\u02ea\5") + buf.write("\u00a8U\2\u02e7\u02ea\5h\65\2\u02e8\u02ea\5p9\2\u02e9") + buf.write("\u02e6\3\2\2\2\u02e9\u02e7\3\2\2\2\u02e9\u02e8\3\2\2\2") + buf.write("\u02eao\3\2\2\2\u02eb\u02f4\7A\2\2\u02ec\u02f1\5n8\2\u02ed") + buf.write("\u02ee\7F\2\2\u02ee\u02f0\5n8\2\u02ef\u02ed\3\2\2\2\u02f0") + buf.write("\u02f3\3\2\2\2\u02f1\u02ef\3\2\2\2\u02f1\u02f2\3\2\2\2") + buf.write("\u02f2\u02f5\3\2\2\2\u02f3\u02f1\3\2\2\2\u02f4\u02ec\3") + buf.write("\2\2\2\u02f4\u02f5\3\2\2\2\u02f5\u02f7\3\2\2\2\u02f6\u02f8") + buf.write("\7F\2\2\u02f7\u02f6\3\2\2\2\u02f7\u02f8\3\2\2\2\u02f8") + buf.write("\u02f9\3\2\2\2\u02f9\u02fa\7B\2\2\u02faq\3\2\2\2\u02fb") + buf.write("\u02fc\7l\2\2\u02fc\u02fd\7\36\2\2\u02fd\u02fe\7q\2\2") + buf.write("\u02fe\u02ff\5t;\2\u02ffs\3\2\2\2\u0300\u0304\7A\2\2\u0301") + buf.write("\u0303\5v<\2\u0302\u0301\3\2\2\2\u0303\u0306\3\2\2\2\u0304") + buf.write("\u0302\3\2\2\2\u0304\u0305\3\2\2\2\u0305\u0307\3\2\2\2") + buf.write("\u0306\u0304\3\2\2\2\u0307\u0308\7B\2\2\u0308u\3\2\2\2") + buf.write("\u0309\u030b\5\n\6\2\u030a\u0309\3\2\2\2\u030b\u030e\3") + buf.write("\2\2\2\u030c\u030a\3\2\2\2\u030c\u030d\3\2\2\2\u030d\u030f") + buf.write("\3\2\2\2\u030e\u030c\3\2\2\2\u030f\u0312\5x=\2\u0310\u0312") + buf.write("\7E\2\2\u0311\u030c\3\2\2\2\u0311\u0310\3\2\2\2\u0312") + buf.write("w\3\2\2\2\u0313\u0314\5\u00c8e\2\u0314\u0315\5z>\2\u0315") + buf.write("\u0316\7E\2\2\u0316\u0328\3\2\2\2\u0317\u0319\5\20\t\2") + buf.write("\u0318\u031a\7E\2\2\u0319\u0318\3\2\2\2\u0319\u031a\3") + buf.write("\2\2\2\u031a\u0328\3\2\2\2\u031b\u031d\5 \21\2\u031c\u031e") + buf.write("\7E\2\2\u031d\u031c\3\2\2\2\u031d\u031e\3\2\2\2\u031e") + buf.write("\u0328\3\2\2\2\u031f\u0321\5\30\r\2\u0320\u0322\7E\2\2") + buf.write("\u0321\u0320\3\2\2\2\u0321\u0322\3\2\2\2\u0322\u0328\3") + buf.write("\2\2\2\u0323\u0325\5r:\2\u0324\u0326\7E\2\2\u0325\u0324") + buf.write("\3\2\2\2\u0325\u0326\3\2\2\2\u0326\u0328\3\2\2\2\u0327") + buf.write("\u0313\3\2\2\2\u0327\u0317\3\2\2\2\u0327\u031b\3\2\2\2") + buf.write("\u0327\u031f\3\2\2\2\u0327\u0323\3\2\2\2\u0328y\3\2\2") + buf.write("\2\u0329\u032c\5|?\2\u032a\u032c\5~@\2\u032b\u0329\3\2") + buf.write("\2\2\u032b\u032a\3\2\2\2\u032c{\3\2\2\2\u032d\u032e\7") + buf.write("q\2\2\u032e\u032f\7?\2\2\u032f\u0331\7@\2\2\u0330\u0332") + buf.write("\5\u0080A\2\u0331\u0330\3\2\2\2\u0331\u0332\3\2\2\2\u0332") + buf.write("}\3\2\2\2\u0333\u0334\5F$\2\u0334\177\3\2\2\2\u0335\u0336") + buf.write("\7\16\2\2\u0336\u0337\5n8\2\u0337\u0081\3\2\2\2\u0338") + buf.write("\u033c\7A\2\2\u0339\u033b\5\u0084C\2\u033a\u0339\3\2\2") + buf.write("\2\u033b\u033e\3\2\2\2\u033c\u033a\3\2\2\2\u033c\u033d") + buf.write("\3\2\2\2\u033d\u033f\3\2\2\2\u033e\u033c\3\2\2\2\u033f") + buf.write("\u0340\7B\2\2\u0340\u0083\3\2\2\2\u0341\u0342\5\u0086") + buf.write("D\2\u0342\u0343\7E\2\2\u0343\u0347\3\2\2\2\u0344\u0347") + buf.write("\5\u008aF\2\u0345\u0347\5\u0088E\2\u0346\u0341\3\2\2\2") + buf.write("\u0346\u0344\3\2\2\2\u0346\u0345\3\2\2\2\u0347\u0085\3") + buf.write("\2\2\2\u0348\u034a\5\16\b\2\u0349\u0348\3\2\2\2\u034a") + buf.write("\u034d\3\2\2\2\u034b\u0349\3\2\2\2\u034b\u034c\3\2\2\2") + buf.write("\u034c\u034e\3\2\2\2\u034d\u034b\3\2\2\2\u034e\u034f\5") + buf.write("\u00c8e\2\u034f\u0350\5F$\2\u0350\u0087\3\2\2\2\u0351") + buf.write("\u0353\5\f\7\2\u0352\u0351\3\2\2\2\u0353\u0356\3\2\2\2") + buf.write("\u0354\u0352\3\2\2\2\u0354\u0355\3\2\2\2\u0355\u0359\3") + buf.write("\2\2\2\u0356\u0354\3\2\2\2\u0357\u035a\5\20\t\2\u0358") + buf.write("\u035a\5 \21\2\u0359\u0357\3\2\2\2\u0359\u0358\3\2\2\2") + buf.write("\u035a\u035d\3\2\2\2\u035b\u035d\7E\2\2\u035c\u0354\3") + buf.write("\2\2\2\u035c\u035b\3\2\2\2\u035d\u0089\3\2\2\2\u035e\u03c7") + buf.write("\5\u0082B\2\u035f\u0360\7\4\2\2\u0360\u0363\5\u00a8U\2") + buf.write("\u0361\u0362\7N\2\2\u0362\u0364\5\u00a8U\2\u0363\u0361") + buf.write("\3\2\2\2\u0363\u0364\3\2\2\2\u0364\u0365\3\2\2\2\u0365") + buf.write("\u0366\7E\2\2\u0366\u03c7\3\2\2\2\u0367\u0368\7\30\2\2") + buf.write("\u0368\u0369\5\u00a2R\2\u0369\u036c\5\u008aF\2\u036a\u036b") + buf.write("\7\21\2\2\u036b\u036d\5\u008aF\2\u036c\u036a\3\2\2\2\u036c") + buf.write("\u036d\3\2\2\2\u036d\u03c7\3\2\2\2\u036e\u036f\7\27\2") + buf.write("\2\u036f\u0370\7?\2\2\u0370\u0371\5\u009cO\2\u0371\u0372") + buf.write("\7@\2\2\u0372\u0373\5\u008aF\2\u0373\u03c7\3\2\2\2\u0374") + buf.write("\u0375\7\64\2\2\u0375\u0376\5\u00a2R\2\u0376\u0377\5\u008a") + buf.write("F\2\u0377\u03c7\3\2\2\2\u0378\u0379\7\17\2\2\u0379\u037a") + buf.write("\5\u008aF\2\u037a\u037b\7\64\2\2\u037b\u037c\5\u00a2R") + buf.write("\2\u037c\u037d\7E\2\2\u037d\u03c7\3\2\2\2\u037e\u037f") + buf.write("\7\61\2\2\u037f\u0389\5\u0082B\2\u0380\u0382\5\u008cG") + buf.write("\2\u0381\u0380\3\2\2\2\u0382\u0383\3\2\2\2\u0383\u0381") + buf.write("\3\2\2\2\u0383\u0384\3\2\2\2\u0384\u0386\3\2\2\2\u0385") + buf.write("\u0387\5\u0090I\2\u0386\u0385\3\2\2\2\u0386\u0387\3\2") + buf.write("\2\2\u0387\u038a\3\2\2\2\u0388\u038a\5\u0090I\2\u0389") + buf.write("\u0381\3\2\2\2\u0389\u0388\3\2\2\2\u038a\u03c7\3\2\2\2") + buf.write("\u038b\u038c\7\61\2\2\u038c\u038d\5\u0092J\2\u038d\u0391") + buf.write("\5\u0082B\2\u038e\u0390\5\u008cG\2\u038f\u038e\3\2\2\2") + buf.write("\u0390\u0393\3\2\2\2\u0391\u038f\3\2\2\2\u0391\u0392\3") + buf.write("\2\2\2\u0392\u0395\3\2\2\2\u0393\u0391\3\2\2\2\u0394\u0396") + buf.write("\5\u0090I\2\u0395\u0394\3\2\2\2\u0395\u0396\3\2\2\2\u0396") + buf.write("\u03c7\3\2\2\2\u0397\u0398\7+\2\2\u0398\u0399\5\u00a2") + buf.write("R\2\u0399\u039d\7A\2\2\u039a\u039c\5\u0098M\2\u039b\u039a") + buf.write("\3\2\2\2\u039c\u039f\3\2\2\2\u039d\u039b\3\2\2\2\u039d") + buf.write("\u039e\3\2\2\2\u039e\u03a3\3\2\2\2\u039f\u039d\3\2\2\2") + buf.write("\u03a0\u03a2\5\u009aN\2\u03a1\u03a0\3\2\2\2\u03a2\u03a5") + buf.write("\3\2\2\2\u03a3\u03a1\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4") + buf.write("\u03a6\3\2\2\2\u03a5\u03a3\3\2\2\2\u03a6\u03a7\7B\2\2") + buf.write("\u03a7\u03c7\3\2\2\2\u03a8\u03a9\7,\2\2\u03a9\u03aa\5") + buf.write("\u00a2R\2\u03aa\u03ab\5\u0082B\2\u03ab\u03c7\3\2\2\2\u03ac") + buf.write("\u03ae\7&\2\2\u03ad\u03af\5\u00a8U\2\u03ae\u03ad\3\2\2") + buf.write("\2\u03ae\u03af\3\2\2\2\u03af\u03b0\3\2\2\2\u03b0\u03c7") + buf.write("\7E\2\2\u03b1\u03b2\7.\2\2\u03b2\u03b3\5\u00a8U\2\u03b3") + buf.write("\u03b4\7E\2\2\u03b4\u03c7\3\2\2\2\u03b5\u03b7\7\6\2\2") + buf.write("\u03b6\u03b8\7q\2\2\u03b7\u03b6\3\2\2\2\u03b7\u03b8\3") + buf.write("\2\2\2\u03b8\u03b9\3\2\2\2\u03b9\u03c7\7E\2\2\u03ba\u03bc") + buf.write("\7\r\2\2\u03bb\u03bd\7q\2\2\u03bc\u03bb\3\2\2\2\u03bc") + buf.write("\u03bd\3\2\2\2\u03bd\u03be\3\2\2\2\u03be\u03c7\7E\2\2") + buf.write("\u03bf\u03c7\7E\2\2\u03c0\u03c1\5\u00a8U\2\u03c1\u03c2") + buf.write("\7E\2\2\u03c2\u03c7\3\2\2\2\u03c3\u03c4\7q\2\2\u03c4\u03c5") + buf.write("\7N\2\2\u03c5\u03c7\5\u008aF\2\u03c6\u035e\3\2\2\2\u03c6") + buf.write("\u035f\3\2\2\2\u03c6\u0367\3\2\2\2\u03c6\u036e\3\2\2\2") + buf.write("\u03c6\u0374\3\2\2\2\u03c6\u0378\3\2\2\2\u03c6\u037e\3") + buf.write("\2\2\2\u03c6\u038b\3\2\2\2\u03c6\u0397\3\2\2\2\u03c6\u03a8") + buf.write("\3\2\2\2\u03c6\u03ac\3\2\2\2\u03c6\u03b1\3\2\2\2\u03c6") + buf.write("\u03b5\3\2\2\2\u03c6\u03ba\3\2\2\2\u03c6\u03bf\3\2\2\2") + buf.write("\u03c6\u03c0\3\2\2\2\u03c6\u03c3\3\2\2\2\u03c7\u008b\3") + buf.write("\2\2\2\u03c8\u03c9\7\t\2\2\u03c9\u03cd\7?\2\2\u03ca\u03cc") + buf.write("\5\16\b\2\u03cb\u03ca\3\2\2\2\u03cc\u03cf\3\2\2\2\u03cd") + buf.write("\u03cb\3\2\2\2\u03cd\u03ce\3\2\2\2\u03ce\u03d0\3\2\2\2") + buf.write("\u03cf\u03cd\3\2\2\2\u03d0\u03d1\5\u008eH\2\u03d1\u03d2") + buf.write("\7q\2\2\u03d2\u03d3\7@\2\2\u03d3\u03d4\5\u0082B\2\u03d4") + buf.write("\u008d\3\2\2\2\u03d5\u03da\5^\60\2\u03d6\u03d7\7\\\2\2") + buf.write("\u03d7\u03d9\5^\60\2\u03d8\u03d6\3\2\2\2\u03d9\u03dc\3") + buf.write("\2\2\2\u03da\u03d8\3\2\2\2\u03da\u03db\3\2\2\2\u03db\u008f") + buf.write("\3\2\2\2\u03dc\u03da\3\2\2\2\u03dd\u03de\7\25\2\2\u03de") + buf.write("\u03df\5\u0082B\2\u03df\u0091\3\2\2\2\u03e0\u03e1\7?\2") + buf.write("\2\u03e1\u03e3\5\u0094K\2\u03e2\u03e4\7E\2\2\u03e3\u03e2") + buf.write("\3\2\2\2\u03e3\u03e4\3\2\2\2\u03e4\u03e5\3\2\2\2\u03e5") + buf.write("\u03e6\7@\2\2\u03e6\u0093\3\2\2\2\u03e7\u03ec\5\u0096") + buf.write("L\2\u03e8\u03e9\7E\2\2\u03e9\u03eb\5\u0096L\2\u03ea\u03e8") + buf.write("\3\2\2\2\u03eb\u03ee\3\2\2\2\u03ec\u03ea\3\2\2\2\u03ec") + buf.write("\u03ed\3\2\2\2\u03ed\u0095\3\2\2\2\u03ee\u03ec\3\2\2\2") + buf.write("\u03ef\u03f1\5\16\b\2\u03f0\u03ef\3\2\2\2\u03f1\u03f4") + buf.write("\3\2\2\2\u03f2\u03f0\3\2\2\2\u03f2\u03f3\3\2\2\2\u03f3") + buf.write("\u03f5\3\2\2\2\u03f4\u03f2\3\2\2\2\u03f5\u03f6\5P)\2\u03f6") + buf.write("\u03f7\5J&\2\u03f7\u03f8\7H\2\2\u03f8\u03f9\5\u00a8U\2") + buf.write("\u03f9\u0097\3\2\2\2\u03fa\u03fc\5\u009aN\2\u03fb\u03fa") + buf.write("\3\2\2\2\u03fc\u03fd\3\2\2\2\u03fd\u03fb\3\2\2\2\u03fd") + buf.write("\u03fe\3\2\2\2\u03fe\u0400\3\2\2\2\u03ff\u0401\5\u0084") + buf.write("C\2\u0400\u03ff\3\2\2\2\u0401\u0402\3\2\2\2\u0402\u0400") + buf.write("\3\2\2\2\u0402\u0403\3\2\2\2\u0403\u0099\3\2\2\2\u0404") + buf.write("\u0407\7\b\2\2\u0405\u0408\5\u00a8U\2\u0406\u0408\7q\2") + buf.write("\2\u0407\u0405\3\2\2\2\u0407\u0406\3\2\2\2\u0408\u0409") + buf.write("\3\2\2\2\u0409\u040d\7N\2\2\u040a\u040b\7\16\2\2\u040b") + buf.write("\u040d\7N\2\2\u040c\u0404\3\2\2\2\u040c\u040a\3\2\2\2") + buf.write("\u040d\u009b\3\2\2\2\u040e\u041b\5\u00a0Q\2\u040f\u0411") + buf.write("\5\u009eP\2\u0410\u040f\3\2\2\2\u0410\u0411\3\2\2\2\u0411") + buf.write("\u0412\3\2\2\2\u0412\u0414\7E\2\2\u0413\u0415\5\u00a8") + buf.write("U\2\u0414\u0413\3\2\2\2\u0414\u0415\3\2\2\2\u0415\u0416") + buf.write("\3\2\2\2\u0416\u0418\7E\2\2\u0417\u0419\5\u00a4S\2\u0418") + buf.write("\u0417\3\2\2\2\u0418\u0419\3\2\2\2\u0419\u041b\3\2\2\2") + buf.write("\u041a\u040e\3\2\2\2\u041a\u0410\3\2\2\2\u041b\u009d\3") + buf.write("\2\2\2\u041c\u041f\5\u0086D\2\u041d\u041f\5\u00a4S\2\u041e") + buf.write("\u041c\3\2\2\2\u041e\u041d\3\2\2\2\u041f\u009f\3\2\2\2") + buf.write("\u0420\u0422\5\16\b\2\u0421\u0420\3\2\2\2\u0422\u0425") + buf.write("\3\2\2\2\u0423\u0421\3\2\2\2\u0423\u0424\3\2\2\2\u0424") + buf.write("\u0426\3\2\2\2\u0425\u0423\3\2\2\2\u0426\u0427\5\u00c8") + buf.write("e\2\u0427\u0428\5J&\2\u0428\u0429\7N\2\2\u0429\u042a\5") + buf.write("\u00a8U\2\u042a\u00a1\3\2\2\2\u042b\u042c\7?\2\2\u042c") + buf.write("\u042d\5\u00a8U\2\u042d\u042e\7@\2\2\u042e\u00a3\3\2\2") + buf.write("\2\u042f\u0434\5\u00a8U\2\u0430\u0431\7F\2\2\u0431\u0433") + buf.write("\5\u00a8U\2\u0432\u0430\3\2\2\2\u0433\u0436\3\2\2\2\u0434") + buf.write("\u0432\3\2\2\2\u0434\u0435\3\2\2\2\u0435\u00a5\3\2\2\2") + buf.write("\u0436\u0434\3\2\2\2\u0437\u0438\7q\2\2\u0438\u043a\7") + buf.write("?\2\2\u0439\u043b\5\u00a4S\2\u043a\u0439\3\2\2\2\u043a") + buf.write("\u043b\3\2\2\2\u043b\u043c\3\2\2\2\u043c\u044a\7@\2\2") + buf.write("\u043d\u043e\7-\2\2\u043e\u0440\7?\2\2\u043f\u0441\5\u00a4") + buf.write("S\2\u0440\u043f\3\2\2\2\u0440\u0441\3\2\2\2\u0441\u0442") + buf.write("\3\2\2\2\u0442\u044a\7@\2\2\u0443\u0444\7*\2\2\u0444\u0446") + buf.write("\7?\2\2\u0445\u0447\5\u00a4S\2\u0446\u0445\3\2\2\2\u0446") + buf.write("\u0447\3\2\2\2\u0447\u0448\3\2\2\2\u0448\u044a\7@\2\2") + buf.write("\u0449\u0437\3\2\2\2\u0449\u043d\3\2\2\2\u0449\u0443\3") + buf.write("\2\2\2\u044a\u00a7\3\2\2\2\u044b\u044c\bU\1\2\u044c\u0478") + buf.write("\5\u00b0Y\2\u044d\u0478\5\u00a6T\2\u044e\u044f\7!\2\2") + buf.write("\u044f\u0478\5\u00b4[\2\u0450\u0454\7?\2\2\u0451\u0453") + buf.write("\5h\65\2\u0452\u0451\3\2\2\2\u0453\u0456\3\2\2\2\u0454") + buf.write("\u0452\3\2\2\2\u0454\u0455\3\2\2\2\u0455\u0457\3\2\2\2") + buf.write("\u0456\u0454\3\2\2\2\u0457\u045c\5\u00c8e\2\u0458\u0459") + buf.write("\7[\2\2\u0459\u045b\5\u00c8e\2\u045a\u0458\3\2\2\2\u045b") + buf.write("\u045e\3\2\2\2\u045c\u045a\3\2\2\2\u045c\u045d\3\2\2\2") + buf.write("\u045d\u045f\3\2\2\2\u045e\u045c\3\2\2\2\u045f\u0460\7") + buf.write("@\2\2\u0460\u0461\5\u00a8U\27\u0461\u0478\3\2\2\2\u0462") + buf.write("\u0463\t\5\2\2\u0463\u0478\5\u00a8U\25\u0464\u0465\t\6") + buf.write("\2\2\u0465\u0478\5\u00a8U\24\u0466\u0478\5\u00aaV\2\u0467") + buf.write("\u0468\5\u00c8e\2\u0468\u046e\7k\2\2\u0469\u046b\5\u00cc") + buf.write("g\2\u046a\u0469\3\2\2\2\u046a\u046b\3\2\2\2\u046b\u046c") + buf.write("\3\2\2\2\u046c\u046f\7q\2\2\u046d\u046f\7!\2\2\u046e\u046a") + buf.write("\3\2\2\2\u046e\u046d\3\2\2\2\u046f\u0478\3\2\2\2\u0470") + buf.write("\u0471\5\u00b2Z\2\u0471\u0473\7k\2\2\u0472\u0474\5\u00cc") + buf.write("g\2\u0473\u0472\3\2\2\2\u0473\u0474\3\2\2\2\u0474\u0475") + buf.write("\3\2\2\2\u0475\u0476\7!\2\2\u0476\u0478\3\2\2\2\u0477") + buf.write("\u044b\3\2\2\2\u0477\u044d\3\2\2\2\u0477\u044e\3\2\2\2") + buf.write("\u0477\u0450\3\2\2\2\u0477\u0462\3\2\2\2\u0477\u0464\3") + buf.write("\2\2\2\u0477\u0466\3\2\2\2\u0477\u0467\3\2\2\2\u0477\u0470") + buf.write("\3\2\2\2\u0478\u04c9\3\2\2\2\u0479\u047a\f\23\2\2\u047a") + buf.write("\u047b\t\7\2\2\u047b\u04c8\5\u00a8U\24\u047c\u047d\f\22") + buf.write("\2\2\u047d\u047e\t\b\2\2\u047e\u04c8\5\u00a8U\23\u047f") + buf.write("\u0487\f\21\2\2\u0480\u0481\7J\2\2\u0481\u0488\7J\2\2") + buf.write("\u0482\u0483\7I\2\2\u0483\u0484\7I\2\2\u0484\u0488\7I") + buf.write("\2\2\u0485\u0486\7I\2\2\u0486\u0488\7I\2\2\u0487\u0480") + buf.write("\3\2\2\2\u0487\u0482\3\2\2\2\u0487\u0485\3\2\2\2\u0488") + buf.write("\u0489\3\2\2\2\u0489\u04c8\5\u00a8U\22\u048a\u048b\f\20") + buf.write("\2\2\u048b\u048c\t\t\2\2\u048c\u04c8\5\u00a8U\21\u048d") + buf.write("\u048e\f\16\2\2\u048e\u048f\t\n\2\2\u048f\u04c8\5\u00a8") + buf.write("U\17\u0490\u0491\f\r\2\2\u0491\u0492\7[\2\2\u0492\u04c8") + buf.write("\5\u00a8U\16\u0493\u0494\f\f\2\2\u0494\u0495\7]\2\2\u0495") + buf.write("\u04c8\5\u00a8U\r\u0496\u0497\f\13\2\2\u0497\u0498\7\\") + buf.write("\2\2\u0498\u04c8\5\u00a8U\f\u0499\u049a\f\n\2\2\u049a") + buf.write("\u049b\7S\2\2\u049b\u04c8\5\u00a8U\13\u049c\u049d\f\t") + buf.write("\2\2\u049d\u049e\7T\2\2\u049e\u04c8\5\u00a8U\n\u049f\u04a0") + buf.write("\f\b\2\2\u04a0\u04a1\7M\2\2\u04a1\u04a2\5\u00a8U\2\u04a2") + buf.write("\u04a3\7N\2\2\u04a3\u04a4\5\u00a8U\b\u04a4\u04c8\3\2\2") + buf.write("\2\u04a5\u04a6\f\7\2\2\u04a6\u04a7\t\13\2\2\u04a7\u04c8") + buf.write("\5\u00a8U\7\u04a8\u04a9\f\33\2\2\u04a9\u04b5\7G\2\2\u04aa") + buf.write("\u04b6\7q\2\2\u04ab\u04b6\5\u00a6T\2\u04ac\u04b6\7-\2") + buf.write("\2\u04ad\u04af\7!\2\2\u04ae\u04b0\5\u00c4c\2\u04af\u04ae") + buf.write("\3\2\2\2\u04af\u04b0\3\2\2\2\u04b0\u04b1\3\2\2\2\u04b1") + buf.write("\u04b6\5\u00b8]\2\u04b2\u04b3\7*\2\2\u04b3\u04b6\5\u00ce") + buf.write("h\2\u04b4\u04b6\5\u00be`\2\u04b5\u04aa\3\2\2\2\u04b5\u04ab") + buf.write("\3\2\2\2\u04b5\u04ac\3\2\2\2\u04b5\u04ad\3\2\2\2\u04b5") + buf.write("\u04b2\3\2\2\2\u04b5\u04b4\3\2\2\2\u04b6\u04c8\3\2\2\2") + buf.write("\u04b7\u04b8\f\32\2\2\u04b8\u04b9\7C\2\2\u04b9\u04ba\5") + buf.write("\u00a8U\2\u04ba\u04bb\7D\2\2\u04bb\u04c8\3\2\2\2\u04bc") + buf.write("\u04bd\f\26\2\2\u04bd\u04c8\t\f\2\2\u04be\u04bf\f\17\2") + buf.write("\2\u04bf\u04c0\7\34\2\2\u04c0\u04c8\5\u00c8e\2\u04c1\u04c2") + buf.write("\f\5\2\2\u04c2\u04c4\7k\2\2\u04c3\u04c5\5\u00ccg\2\u04c4") + buf.write("\u04c3\3\2\2\2\u04c4\u04c5\3\2\2\2\u04c5\u04c6\3\2\2\2") + buf.write("\u04c6\u04c8\7q\2\2\u04c7\u0479\3\2\2\2\u04c7\u047c\3") + buf.write("\2\2\2\u04c7\u047f\3\2\2\2\u04c7\u048a\3\2\2\2\u04c7\u048d") + buf.write("\3\2\2\2\u04c7\u0490\3\2\2\2\u04c7\u0493\3\2\2\2\u04c7") + buf.write("\u0496\3\2\2\2\u04c7\u0499\3\2\2\2\u04c7\u049c\3\2\2\2") + buf.write("\u04c7\u049f\3\2\2\2\u04c7\u04a5\3\2\2\2\u04c7\u04a8\3") + buf.write("\2\2\2\u04c7\u04b7\3\2\2\2\u04c7\u04bc\3\2\2\2\u04c7\u04be") + buf.write("\3\2\2\2\u04c7\u04c1\3\2\2\2\u04c8\u04cb\3\2\2\2\u04c9") + buf.write("\u04c7\3\2\2\2\u04c9\u04ca\3\2\2\2\u04ca\u00a9\3\2\2\2") + buf.write("\u04cb\u04c9\3\2\2\2\u04cc\u04cd\5\u00acW\2\u04cd\u04ce") + buf.write("\7j\2\2\u04ce\u04cf\5\u00aeX\2\u04cf\u00ab\3\2\2\2\u04d0") + buf.write("\u04e1\7q\2\2\u04d1\u04d3\7?\2\2\u04d2\u04d4\5X-\2\u04d3") + buf.write("\u04d2\3\2\2\2\u04d3\u04d4\3\2\2\2\u04d4\u04d5\3\2\2\2") + buf.write("\u04d5\u04e1\7@\2\2\u04d6\u04d7\7?\2\2\u04d7\u04dc\7q") + buf.write("\2\2\u04d8\u04d9\7F\2\2\u04d9\u04db\7q\2\2\u04da\u04d8") + buf.write("\3\2\2\2\u04db\u04de\3\2\2\2\u04dc\u04da\3\2\2\2\u04dc") + buf.write("\u04dd\3\2\2\2\u04dd\u04df\3\2\2\2\u04de\u04dc\3\2\2\2") + buf.write("\u04df\u04e1\7@\2\2\u04e0\u04d0\3\2\2\2\u04e0\u04d1\3") + buf.write("\2\2\2\u04e0\u04d6\3\2\2\2\u04e1\u00ad\3\2\2\2\u04e2\u04e5") + buf.write("\5\u00a8U\2\u04e3\u04e5\5\u0082B\2\u04e4\u04e2\3\2\2\2") + buf.write("\u04e4\u04e3\3\2\2\2\u04e5\u00af\3\2\2\2\u04e6\u04e7\7") + buf.write("?\2\2\u04e7\u04e8\5\u00a8U\2\u04e8\u04e9\7@\2\2\u04e9") + buf.write("\u04f9\3\2\2\2\u04ea\u04f9\7-\2\2\u04eb\u04f9\7*\2\2\u04ec") + buf.write("\u04f9\5`\61\2\u04ed\u04f9\7q\2\2\u04ee\u04ef\5.\30\2") + buf.write("\u04ef\u04f0\7G\2\2\u04f0\u04f1\7\13\2\2\u04f1\u04f9\3") + buf.write("\2\2\2\u04f2\u04f6\5\u00c4c\2\u04f3\u04f7\5\u00d0i\2\u04f4") + buf.write("\u04f5\7-\2\2\u04f5\u04f7\5\u00d2j\2\u04f6\u04f3\3\2\2") + buf.write("\2\u04f6\u04f4\3\2\2\2\u04f7\u04f9\3\2\2\2\u04f8\u04e6") + buf.write("\3\2\2\2\u04f8\u04ea\3\2\2\2\u04f8\u04eb\3\2\2\2\u04f8") + buf.write("\u04ec\3\2\2\2\u04f8\u04ed\3\2\2\2\u04f8\u04ee\3\2\2\2") + buf.write("\u04f8\u04f2\3\2\2\2\u04f9\u00b1\3\2\2\2\u04fa\u04fb\5") + buf.write("P)\2\u04fb\u04fc\7G\2\2\u04fc\u04fe\3\2\2\2\u04fd\u04fa") + buf.write("\3\2\2\2\u04fd\u04fe\3\2\2\2\u04fe\u0502\3\2\2\2\u04ff") + buf.write("\u0501\5h\65\2\u0500\u04ff\3\2\2\2\u0501\u0504\3\2\2\2") + buf.write("\u0502\u0500\3\2\2\2\u0502\u0503\3\2\2\2\u0503\u0505\3") + buf.write("\2\2\2\u0504\u0502\3\2\2\2\u0505\u0507\7q\2\2\u0506\u0508") + buf.write("\5\u00ccg\2\u0507\u0506\3\2\2\2\u0507\u0508\3\2\2\2\u0508") + buf.write("\u00b3\3\2\2\2\u0509\u050a\5\u00c4c\2\u050a\u050b\5\u00b6") + buf.write("\\\2\u050b\u050c\5\u00bc_\2\u050c\u0513\3\2\2\2\u050d") + buf.write("\u0510\5\u00b6\\\2\u050e\u0511\5\u00ba^\2\u050f\u0511") + buf.write("\5\u00bc_\2\u0510\u050e\3\2\2\2\u0510\u050f\3\2\2\2\u0511") + buf.write("\u0513\3\2\2\2\u0512\u0509\3\2\2\2\u0512\u050d\3\2\2\2") + buf.write("\u0513\u00b5\3\2\2\2\u0514\u0516\7q\2\2\u0515\u0517\5") + buf.write("\u00c0a\2\u0516\u0515\3\2\2\2\u0516\u0517\3\2\2\2\u0517") + buf.write("\u051f\3\2\2\2\u0518\u0519\7G\2\2\u0519\u051b\7q\2\2\u051a") + buf.write("\u051c\5\u00c0a\2\u051b\u051a\3\2\2\2\u051b\u051c\3\2") + buf.write("\2\2\u051c\u051e\3\2\2\2\u051d\u0518\3\2\2\2\u051e\u0521") + buf.write("\3\2\2\2\u051f\u051d\3\2\2\2\u051f\u0520\3\2\2\2\u0520") + buf.write("\u0524\3\2\2\2\u0521\u051f\3\2\2\2\u0522\u0524\5\u00ca") + buf.write("f\2\u0523\u0514\3\2\2\2\u0523\u0522\3\2\2\2\u0524\u00b7") + buf.write("\3\2\2\2\u0525\u0527\7q\2\2\u0526\u0528\5\u00c2b\2\u0527") + buf.write("\u0526\3\2\2\2\u0527\u0528\3\2\2\2\u0528\u0529\3\2\2\2") + buf.write("\u0529\u052a\5\u00bc_\2\u052a\u00b9\3\2\2\2\u052b\u0547") + buf.write("\7C\2\2\u052c\u0531\7D\2\2\u052d\u052e\7C\2\2\u052e\u0530") + buf.write("\7D\2\2\u052f\u052d\3\2\2\2\u0530\u0533\3\2\2\2\u0531") + buf.write("\u052f\3\2\2\2\u0531\u0532\3\2\2\2\u0532\u0534\3\2\2\2") + buf.write("\u0533\u0531\3\2\2\2\u0534\u0548\5N(\2\u0535\u0536\5\u00a8") + buf.write("U\2\u0536\u053d\7D\2\2\u0537\u0538\7C\2\2\u0538\u0539") + buf.write("\5\u00a8U\2\u0539\u053a\7D\2\2\u053a\u053c\3\2\2\2\u053b") + buf.write("\u0537\3\2\2\2\u053c\u053f\3\2\2\2\u053d\u053b\3\2\2\2") + buf.write("\u053d\u053e\3\2\2\2\u053e\u0544\3\2\2\2\u053f\u053d\3") + buf.write("\2\2\2\u0540\u0541\7C\2\2\u0541\u0543\7D\2\2\u0542\u0540") + buf.write("\3\2\2\2\u0543\u0546\3\2\2\2\u0544\u0542\3\2\2\2\u0544") + buf.write("\u0545\3\2\2\2\u0545\u0548\3\2\2\2\u0546\u0544\3\2\2\2") + buf.write("\u0547\u052c\3\2\2\2\u0547\u0535\3\2\2\2\u0548\u00bb\3") + buf.write("\2\2\2\u0549\u054b\5\u00d2j\2\u054a\u054c\5\"\22\2\u054b") + buf.write("\u054a\3\2\2\2\u054b\u054c\3\2\2\2\u054c\u00bd\3\2\2\2") + buf.write("\u054d\u054e\5\u00c4c\2\u054e\u054f\5\u00d0i\2\u054f\u00bf") + buf.write("\3\2\2\2\u0550\u0551\7J\2\2\u0551\u0554\7I\2\2\u0552\u0554") + buf.write("\5\u00ccg\2\u0553\u0550\3\2\2\2\u0553\u0552\3\2\2\2\u0554") + buf.write("\u00c1\3\2\2\2\u0555\u0556\7J\2\2\u0556\u0559\7I\2\2\u0557") + buf.write("\u0559\5\u00c4c\2\u0558\u0555\3\2\2\2\u0558\u0557\3\2") + buf.write("\2\2\u0559\u00c3\3\2\2\2\u055a\u055b\7J\2\2\u055b\u055c") + buf.write("\5\u00c6d\2\u055c\u055d\7I\2\2\u055d\u00c5\3\2\2\2\u055e") + buf.write("\u0563\5\u00c8e\2\u055f\u0560\7F\2\2\u0560\u0562\5\u00c8") + buf.write("e\2\u0561\u055f\3\2\2\2\u0562\u0565\3\2\2\2\u0563\u0561") + buf.write("\3\2\2\2\u0563\u0564\3\2\2\2\u0564\u00c7\3\2\2\2\u0565") + buf.write("\u0563\3\2\2\2\u0566\u0568\5h\65\2\u0567\u0566\3\2\2\2") + buf.write("\u0568\u056b\3\2\2\2\u0569\u0567\3\2\2\2\u0569\u056a\3") + buf.write("\2\2\2\u056a\u056e\3\2\2\2\u056b\u0569\3\2\2\2\u056c\u056f") + buf.write("\5P)\2\u056d\u056f\5\u00caf\2\u056e\u056c\3\2\2\2\u056e") + buf.write("\u056d\3\2\2\2\u056f\u057a\3\2\2\2\u0570\u0572\5h\65\2") + buf.write("\u0571\u0570\3\2\2\2\u0572\u0575\3\2\2\2\u0573\u0571\3") + buf.write("\2\2\2\u0573\u0574\3\2\2\2\u0574\u0576\3\2\2\2\u0575\u0573") + buf.write("\3\2\2\2\u0576\u0577\7C\2\2\u0577\u0579\7D\2\2\u0578\u0573") + buf.write("\3\2\2\2\u0579\u057c\3\2\2\2\u057a\u0578\3\2\2\2\u057a") + buf.write("\u057b\3\2\2\2\u057b\u00c9\3\2\2\2\u057c\u057a\3\2\2\2") + buf.write("\u057d\u057e\t\r\2\2\u057e\u00cb\3\2\2\2\u057f\u0580\7") + buf.write("J\2\2\u0580\u0585\5R*\2\u0581\u0582\7F\2\2\u0582\u0584") + buf.write("\5R*\2\u0583\u0581\3\2\2\2\u0584\u0587\3\2\2\2\u0585\u0583") + buf.write("\3\2\2\2\u0585\u0586\3\2\2\2\u0586\u0588\3\2\2\2\u0587") + buf.write("\u0585\3\2\2\2\u0588\u0589\7I\2\2\u0589\u00cd\3\2\2\2") + buf.write("\u058a\u0591\5\u00d2j\2\u058b\u058c\7G\2\2\u058c\u058e") + buf.write("\7q\2\2\u058d\u058f\5\u00d2j\2\u058e\u058d\3\2\2\2\u058e") + buf.write("\u058f\3\2\2\2\u058f\u0591\3\2\2\2\u0590\u058a\3\2\2\2") + buf.write("\u0590\u058b\3\2\2\2\u0591\u00cf\3\2\2\2\u0592\u0593\7") + buf.write("*\2\2\u0593\u0597\5\u00ceh\2\u0594\u0595\7q\2\2\u0595") + buf.write("\u0597\5\u00d2j\2\u0596\u0592\3\2\2\2\u0596\u0594\3\2") + buf.write("\2\2\u0597\u00d1\3\2\2\2\u0598\u059a\7?\2\2\u0599\u059b") + buf.write("\5\u00a4S\2\u059a\u0599\3\2\2\2\u059a\u059b\3\2\2\2\u059b") + buf.write("\u059c\3\2\2\2\u059c\u059d\7@\2\2\u059d\u00d3\3\2\2\2") + buf.write("\u00b5\u00d5\u00da\u00e0\u00e8\u00f1\u00f6\u00fd\u0104") + buf.write("\u0107\u010e\u0118\u011c\u0121\u0125\u0129\u0133\u013b") + buf.write("\u0143\u0147\u014e\u0155\u0159\u015c\u015f\u0168\u016e") + buf.write("\u0173\u0176\u017c\u0182\u0186\u018e\u0197\u019e\u01a4") + buf.write("\u01a8\u01b3\u01bc\u01c1\u01c7\u01cb\u01d7\u01e2\u01e7") + buf.write("\u01f0\u01f8\u0202\u020b\u0213\u0218\u0220\u0225\u022f") + buf.write("\u0239\u023f\u0246\u024b\u0253\u0257\u0259\u025f\u0264") + buf.write("\u0268\u026f\u0275\u0277\u027e\u0283\u028c\u0291\u0294") + buf.write("\u0299\u02a2\u02a9\u02b4\u02bd\u02c7\u02d0\u02d5\u02d8") + buf.write("\u02df\u02e9\u02f1\u02f4\u02f7\u0304\u030c\u0311\u0319") + buf.write("\u031d\u0321\u0325\u0327\u032b\u0331\u033c\u0346\u034b") + buf.write("\u0354\u0359\u035c\u0363\u036c\u0383\u0386\u0389\u0391") + buf.write("\u0395\u039d\u03a3\u03ae\u03b7\u03bc\u03c6\u03cd\u03da") + buf.write("\u03e3\u03ec\u03f2\u03fd\u0402\u0407\u040c\u0410\u0414") + buf.write("\u0418\u041a\u041e\u0423\u0434\u043a\u0440\u0446\u0449") + buf.write("\u0454\u045c\u046a\u046e\u0473\u0477\u0487\u04af\u04b5") + buf.write("\u04c4\u04c7\u04c9\u04d3\u04dc\u04e0\u04e4\u04f6\u04f8") + buf.write("\u04fd\u0502\u0507\u0510\u0512\u0516\u051b\u051f\u0523") + buf.write("\u0527\u0531\u053d\u0544\u0547\u054b\u0553\u0558\u0563") + buf.write("\u0569\u056e\u0573\u057a\u0585\u058e\u0590\u0596\u059a") + return buf.getvalue() + + +class JavaParser ( Parser ): + + grammarFileName = "JavaParser.g4" + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + sharedContextCache = PredictionContextCache() + + literalNames = [ "", "'abstract'", "'assert'", "'boolean'", + "'break'", "'byte'", "'case'", "'catch'", "'char'", + "'class'", "'const'", "'continue'", "'default'", "'do'", + "'double'", "'else'", "'enum'", "'extends'", "'final'", + "'finally'", "'float'", "'for'", "'if'", "'goto'", + "'implements'", "'import'", "'instanceof'", "'int'", + "'interface'", "'long'", "'native'", "'new'", "'package'", + "'private'", "'protected'", "'public'", "'return'", + "'short'", "'static'", "'strictfp'", "'super'", "'switch'", + "'synchronized'", "'this'", "'throw'", "'throws'", + "'transient'", "'try'", "'void'", "'volatile'", "'while'", + "", "", "", "", + "", "", "", "", + "", "'null'", "'('", "')'", "'{'", "'}'", + "'['", "']'", "';'", "','", "'.'", "'='", "'>'", "'<'", + "'!'", "'~'", "'?'", "':'", "'=='", "'<='", "'>='", + "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", "'-'", + "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", + "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", + "'>>='", "'>>>='", "'->'", "'::'", "'@'", "'...'" ] + + symbolicNames = [ "", "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", + "BYTE", "CASE", "CATCH", "CHAR", "CLASS", "CONST", + "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", + "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", + "GOTO", "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", + "INTERFACE", "LONG", "NATIVE", "NEW", "PACKAGE", "PRIVATE", + "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", + "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", + "THROW", "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", + "WHILE", "DECIMAL_LITERAL", "HEX_LITERAL", "OCT_LITERAL", + "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL", + "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", + "NULL_LITERAL", "LPAREN", "RPAREN", "LBRACE", "RBRACE", + "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT", "ASSIGN", + "GT", "LT", "BANG", "TILDE", "QUESTION", "COLON", + "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", + "DEC", "ADD", "SUB", "MUL", "DIV", "BITAND", "BITOR", + "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", + "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", + "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", + "ARROW", "COLONCOLON", "AT", "ELLIPSIS", "WS", "COMMENT", + "LINE_COMMENT", "IDENTIFIER" ] + + RULE_compilationUnit = 0 + RULE_packageDeclaration = 1 + RULE_importDeclaration = 2 + RULE_typeDeclaration = 3 + RULE_modifier = 4 + RULE_classOrInterfaceModifier = 5 + RULE_variableModifier = 6 + RULE_classDeclaration = 7 + RULE_typeParameters = 8 + RULE_typeParameter = 9 + RULE_typeBound = 10 + RULE_enumDeclaration = 11 + RULE_enumConstants = 12 + RULE_enumConstant = 13 + RULE_enumBodyDeclarations = 14 + RULE_interfaceDeclaration = 15 + RULE_classBody = 16 + RULE_interfaceBody = 17 + RULE_classBodyDeclaration = 18 + RULE_memberDeclaration = 19 + RULE_methodDeclaration = 20 + RULE_methodBody = 21 + RULE_typeTypeOrVoid = 22 + RULE_genericMethodDeclaration = 23 + RULE_genericConstructorDeclaration = 24 + RULE_constructorDeclaration = 25 + RULE_fieldDeclaration = 26 + RULE_interfaceBodyDeclaration = 27 + RULE_interfaceMemberDeclaration = 28 + RULE_constDeclaration = 29 + RULE_constantDeclarator = 30 + RULE_interfaceMethodDeclaration = 31 + RULE_interfaceMethodModifier = 32 + RULE_genericInterfaceMethodDeclaration = 33 + RULE_variableDeclarators = 34 + RULE_variableDeclarator = 35 + RULE_variableDeclaratorId = 36 + RULE_variableInitializer = 37 + RULE_arrayInitializer = 38 + RULE_classOrInterfaceType = 39 + RULE_typeArgument = 40 + RULE_qualifiedNameList = 41 + RULE_formalParameters = 42 + RULE_formalParameterList = 43 + RULE_formalParameter = 44 + RULE_lastFormalParameter = 45 + RULE_qualifiedName = 46 + RULE_literal = 47 + RULE_integerLiteral = 48 + RULE_floatLiteral = 49 + RULE_altAnnotationQualifiedName = 50 + RULE_annotation = 51 + RULE_elementValuePairs = 52 + RULE_elementValuePair = 53 + RULE_elementValue = 54 + RULE_elementValueArrayInitializer = 55 + RULE_annotationTypeDeclaration = 56 + RULE_annotationTypeBody = 57 + RULE_annotationTypeElementDeclaration = 58 + RULE_annotationTypeElementRest = 59 + RULE_annotationMethodOrConstantRest = 60 + RULE_annotationMethodRest = 61 + RULE_annotationConstantRest = 62 + RULE_defaultValue = 63 + RULE_block = 64 + RULE_blockStatement = 65 + RULE_localVariableDeclaration = 66 + RULE_localTypeDeclaration = 67 + RULE_statement = 68 + RULE_catchClause = 69 + RULE_catchType = 70 + RULE_finallyBlock = 71 + RULE_resourceSpecification = 72 + RULE_resources = 73 + RULE_resource = 74 + RULE_switchBlockStatementGroup = 75 + RULE_switchLabel = 76 + RULE_forControl = 77 + RULE_forInit = 78 + RULE_enhancedForControl = 79 + RULE_parExpression = 80 + RULE_expressionList = 81 + RULE_methodCall = 82 + RULE_expression = 83 + RULE_lambdaExpression = 84 + RULE_lambdaParameters = 85 + RULE_lambdaBody = 86 + RULE_primary = 87 + RULE_classType = 88 + RULE_creator = 89 + RULE_createdName = 90 + RULE_innerCreator = 91 + RULE_arrayCreatorRest = 92 + RULE_classCreatorRest = 93 + RULE_explicitGenericInvocation = 94 + RULE_typeArgumentsOrDiamond = 95 + RULE_nonWildcardTypeArgumentsOrDiamond = 96 + RULE_nonWildcardTypeArguments = 97 + RULE_typeList = 98 + RULE_typeType = 99 + RULE_primitiveType = 100 + RULE_typeArguments = 101 + RULE_superSuffix = 102 + RULE_explicitGenericInvocationSuffix = 103 + RULE_arguments = 104 + + ruleNames = [ "compilationUnit", "packageDeclaration", "importDeclaration", + "typeDeclaration", "modifier", "classOrInterfaceModifier", + "variableModifier", "classDeclaration", "typeParameters", + "typeParameter", "typeBound", "enumDeclaration", "enumConstants", + "enumConstant", "enumBodyDeclarations", "interfaceDeclaration", + "classBody", "interfaceBody", "classBodyDeclaration", + "memberDeclaration", "methodDeclaration", "methodBody", + "typeTypeOrVoid", "genericMethodDeclaration", "genericConstructorDeclaration", + "constructorDeclaration", "fieldDeclaration", "interfaceBodyDeclaration", + "interfaceMemberDeclaration", "constDeclaration", "constantDeclarator", + "interfaceMethodDeclaration", "interfaceMethodModifier", + "genericInterfaceMethodDeclaration", "variableDeclarators", + "variableDeclarator", "variableDeclaratorId", "variableInitializer", + "arrayInitializer", "classOrInterfaceType", "typeArgument", + "qualifiedNameList", "formalParameters", "formalParameterList", + "formalParameter", "lastFormalParameter", "qualifiedName", + "literal", "integerLiteral", "floatLiteral", "altAnnotationQualifiedName", + "annotation", "elementValuePairs", "elementValuePair", + "elementValue", "elementValueArrayInitializer", "annotationTypeDeclaration", + "annotationTypeBody", "annotationTypeElementDeclaration", + "annotationTypeElementRest", "annotationMethodOrConstantRest", + "annotationMethodRest", "annotationConstantRest", "defaultValue", + "block", "blockStatement", "localVariableDeclaration", + "localTypeDeclaration", "statement", "catchClause", "catchType", + "finallyBlock", "resourceSpecification", "resources", + "resource", "switchBlockStatementGroup", "switchLabel", + "forControl", "forInit", "enhancedForControl", "parExpression", + "expressionList", "methodCall", "expression", "lambdaExpression", + "lambdaParameters", "lambdaBody", "primary", "classType", + "creator", "createdName", "innerCreator", "arrayCreatorRest", + "classCreatorRest", "explicitGenericInvocation", "typeArgumentsOrDiamond", + "nonWildcardTypeArgumentsOrDiamond", "nonWildcardTypeArguments", + "typeList", "typeType", "primitiveType", "typeArguments", + "superSuffix", "explicitGenericInvocationSuffix", "arguments" ] + + EOF = Token.EOF + ABSTRACT=1 + ASSERT=2 + BOOLEAN=3 + BREAK=4 + BYTE=5 + CASE=6 + CATCH=7 + CHAR=8 + CLASS=9 + CONST=10 + CONTINUE=11 + DEFAULT=12 + DO=13 + DOUBLE=14 + ELSE=15 + ENUM=16 + EXTENDS=17 + FINAL=18 + FINALLY=19 + FLOAT=20 + FOR=21 + IF=22 + GOTO=23 + IMPLEMENTS=24 + IMPORT=25 + INSTANCEOF=26 + INT=27 + INTERFACE=28 + LONG=29 + NATIVE=30 + NEW=31 + PACKAGE=32 + PRIVATE=33 + PROTECTED=34 + PUBLIC=35 + RETURN=36 + SHORT=37 + STATIC=38 + STRICTFP=39 + SUPER=40 + SWITCH=41 + SYNCHRONIZED=42 + THIS=43 + THROW=44 + THROWS=45 + TRANSIENT=46 + TRY=47 + VOID=48 + VOLATILE=49 + WHILE=50 + DECIMAL_LITERAL=51 + HEX_LITERAL=52 + OCT_LITERAL=53 + BINARY_LITERAL=54 + FLOAT_LITERAL=55 + HEX_FLOAT_LITERAL=56 + BOOL_LITERAL=57 + CHAR_LITERAL=58 + STRING_LITERAL=59 + NULL_LITERAL=60 + LPAREN=61 + RPAREN=62 + LBRACE=63 + RBRACE=64 + LBRACK=65 + RBRACK=66 + SEMI=67 + COMMA=68 + DOT=69 + ASSIGN=70 + GT=71 + LT=72 + BANG=73 + TILDE=74 + QUESTION=75 + COLON=76 + EQUAL=77 + LE=78 + GE=79 + NOTEQUAL=80 + AND=81 + OR=82 + INC=83 + DEC=84 + ADD=85 + SUB=86 + MUL=87 + DIV=88 + BITAND=89 + BITOR=90 + CARET=91 + MOD=92 + ADD_ASSIGN=93 + SUB_ASSIGN=94 + MUL_ASSIGN=95 + DIV_ASSIGN=96 + AND_ASSIGN=97 + OR_ASSIGN=98 + XOR_ASSIGN=99 + MOD_ASSIGN=100 + LSHIFT_ASSIGN=101 + RSHIFT_ASSIGN=102 + URSHIFT_ASSIGN=103 + ARROW=104 + COLONCOLON=105 + AT=106 + ELLIPSIS=107 + WS=108 + COMMENT=109 + LINE_COMMENT=110 + IDENTIFIER=111 + + def __init__(self, input:TokenStream, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) + self._predicates = None + + + + class CompilationUnitContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EOF(self): + return self.getToken(JavaParser.EOF, 0) + + def packageDeclaration(self): + return self.getTypedRuleContext(JavaParser.PackageDeclarationContext,0) + + + def importDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ImportDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.ImportDeclarationContext,i) - stream_compilationUnit = RewriteRuleSubtreeStream(self._adaptor, "rule compilationUnit") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 1): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:223:5: ( compilationUnit -> ^( JAVA_SOURCE compilationUnit ) ) - # Java.g:223:9: compilationUnit - pass - self._state.following.append(self.FOLLOW_compilationUnit_in_javaSource4461) - compilationUnit1 = self.compilationUnit() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_compilationUnit.add(compilationUnit1.tree) - - # AST Rewrite - # elements: compilationUnit - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def typeDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.TypeDeclarationContext,i) - root_0 = self._adaptor.nil() - # 224:9: -> ^( JAVA_SOURCE compilationUnit ) - # Java.g:224:13: ^( JAVA_SOURCE compilationUnit ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(JAVA_SOURCE, "JAVA_SOURCE"), root_1) - self._adaptor.addChild(root_1, stream_compilationUnit.nextTree()) + def getRuleIndex(self): + return JavaParser.RULE_compilationUnit - self._adaptor.addChild(root_0, root_1) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCompilationUnit" ): + listener.enterCompilationUnit(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCompilationUnit" ): + listener.exitCompilationUnit(self) - retval.tree = root_0 + def compilationUnit(self): - retval.stop = self.input.LT(-1) + localctx = JavaParser.CompilationUnitContext(self, self._ctx, self.state) + self.enterRule(localctx, 0, self.RULE_compilationUnit) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 211 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,0,self._ctx) + if la_ == 1: + self.state = 210 + self.packageDeclaration() - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + self.state = 216 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.IMPORT: + self.state = 213 + self.importDeclaration() + self.state = 218 + self._errHandler.sync(self) + _la = self._input.LA(1) + self.state = 222 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.CLASS) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 219 + self.typeDeclaration() + self.state = 224 + self._errHandler.sync(self) + _la = self._input.LA(1) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + self.state = 225 + self.match(JavaParser.EOF) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 1, javaSource_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class PackageDeclarationContext(ParserRuleContext): - # $ANTLR end "javaSource" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class compilationUnit_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.compilationUnit_return, self).__init__() + def PACKAGE(self): + return self.getToken(JavaParser.PACKAGE, 0) - self.tree = None + def qualifiedName(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,0) + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) - # $ANTLR start "compilationUnit" - # Java.g:227:1: compilationUnit : annotationList ( packageDeclaration )? ( importDeclaration )* ( typeDecls )* ; - def compilationUnit(self, ): - retval = self.compilationUnit_return() - retval.start = self.input.LT(1) - compilationUnit_StartIndex = self.input.index() - root_0 = None + def getRuleIndex(self): + return JavaParser.RULE_packageDeclaration - annotationList2 = None + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPackageDeclaration" ): + listener.enterPackageDeclaration(self) - packageDeclaration3 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPackageDeclaration" ): + listener.exitPackageDeclaration(self) - importDeclaration4 = None - typeDecls5 = None + def packageDeclaration(self): - success = False + localctx = JavaParser.PackageDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 2, self.RULE_packageDeclaration) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 2): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:228:5: ( annotationList ( packageDeclaration )? ( importDeclaration )* ( typeDecls )* ) - # Java.g:228:9: annotationList ( packageDeclaration )? ( importDeclaration )* ( typeDecls )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotationList_in_compilationUnit4497) - annotationList2 = self.annotationList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationList2.tree) - # Java.g:229:9: ( packageDeclaration )? - alt1 = 2 - LA1_0 = self.input.LA(1) - - if (LA1_0 == PACKAGE) : - alt1 = 1 - if alt1 == 1: - # Java.g:0:0: packageDeclaration - pass - self._state.following.append(self.FOLLOW_packageDeclaration_in_compilationUnit4507) - packageDeclaration3 = self.packageDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, packageDeclaration3.tree) + self.enterOuterAlt(localctx, 1) + self.state = 230 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 227 + self.annotation() + self.state = 232 + self._errHandler.sync(self) + _la = self._input.LA(1) + self.state = 233 + self.match(JavaParser.PACKAGE) + self.state = 234 + self.qualifiedName() + self.state = 235 + self.match(JavaParser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class ImportDeclarationContext(ParserRuleContext): - # Java.g:230:9: ( importDeclaration )* - while True: #loop2 - alt2 = 2 - LA2_0 = self.input.LA(1) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - if (LA2_0 == IMPORT) : - alt2 = 1 + def IMPORT(self): + return self.getToken(JavaParser.IMPORT, 0) + def qualifiedName(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,0) - if alt2 == 1: - # Java.g:0:0: importDeclaration - pass - self._state.following.append(self.FOLLOW_importDeclaration_in_compilationUnit4518) - importDeclaration4 = self.importDeclaration() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, importDeclaration4.tree) + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + def STATIC(self): + return self.getToken(JavaParser.STATIC, 0) - else: - break #loop2 - # Java.g:231:9: ( typeDecls )* - while True: #loop3 - alt3 = 2 - LA3_0 = self.input.LA(1) + def DOT(self): + return self.getToken(JavaParser.DOT, 0) - if (LA3_0 == AT or LA3_0 == LESS_THAN or LA3_0 == SEMI or LA3_0 == ABSTRACT or LA3_0 == BOOLEAN or LA3_0 == BYTE or (CHAR <= LA3_0 <= CLASS) or LA3_0 == DOUBLE or LA3_0 == ENUM or LA3_0 == FINAL or LA3_0 == FLOAT or LA3_0 == INTERFACE or (INT <= LA3_0 <= NATIVE) or (PRIVATE <= LA3_0 <= PUBLIC) or (SHORT <= LA3_0 <= STRICTFP) or LA3_0 == SYNCHRONIZED or LA3_0 == TRANSIENT or (VOID <= LA3_0 <= VOLATILE) or LA3_0 == IDENT) : - alt3 = 1 + def MUL(self): + return self.getToken(JavaParser.MUL, 0) + def getRuleIndex(self): + return JavaParser.RULE_importDeclaration - if alt3 == 1: - # Java.g:0:0: typeDecls - pass - self._state.following.append(self.FOLLOW_typeDecls_in_compilationUnit4529) - typeDecls5 = self.typeDecls() + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterImportDeclaration" ): + listener.enterImportDeclaration(self) - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDecls5.tree) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitImportDeclaration" ): + listener.exitImportDeclaration(self) - else: - break #loop3 + def importDeclaration(self): - retval.stop = self.input.LT(-1) + localctx = JavaParser.ImportDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 4, self.RULE_importDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 237 + self.match(JavaParser.IMPORT) + self.state = 239 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.STATIC: + self.state = 238 + self.match(JavaParser.STATIC) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + self.state = 241 + self.qualifiedName() + self.state = 244 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.DOT: + self.state = 242 + self.match(JavaParser.DOT) + self.state = 243 + self.match(JavaParser.MUL) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + self.state = 246 + self.match(JavaParser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 2, compilationUnit_StartIndex, success) - - pass - return retval - - # $ANTLR end "compilationUnit" + self.exitRule() + return localctx - class typeDecls_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeDecls_return, self).__init__() + class TypeDeclarationContext(ParserRuleContext): - self.tree = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) + def enumDeclaration(self): + return self.getTypedRuleContext(JavaParser.EnumDeclarationContext,0) - # $ANTLR start "typeDecls" - # Java.g:234:1: typeDecls : ( typeDeclaration | SEMI ); - def typeDecls(self, ): - retval = self.typeDecls_return() - retval.start = self.input.LT(1) - typeDecls_StartIndex = self.input.index() - root_0 = None + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) - SEMI7 = None - typeDeclaration6 = None + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeDeclarationContext,0) - SEMI7_tree = None - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 3): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:235:5: ( typeDeclaration | SEMI ) - alt4 = 2 - LA4_0 = self.input.LA(1) - - if (LA4_0 == AT or LA4_0 == LESS_THAN or LA4_0 == ABSTRACT or LA4_0 == BOOLEAN or LA4_0 == BYTE or (CHAR <= LA4_0 <= CLASS) or LA4_0 == DOUBLE or LA4_0 == ENUM or LA4_0 == FINAL or LA4_0 == FLOAT or LA4_0 == INTERFACE or (INT <= LA4_0 <= NATIVE) or (PRIVATE <= LA4_0 <= PUBLIC) or (SHORT <= LA4_0 <= STRICTFP) or LA4_0 == SYNCHRONIZED or LA4_0 == TRANSIENT or (VOID <= LA4_0 <= VOLATILE) or LA4_0 == IDENT) : - alt4 = 1 - elif (LA4_0 == SEMI) : - alt4 = 2 + def classOrInterfaceModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ClassOrInterfaceModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceModifierContext,i) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_typeDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeDeclaration" ): + listener.enterTypeDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeDeclaration" ): + listener.exitTypeDeclaration(self) + + + + + def typeDeclaration(self): + + localctx = JavaParser.TypeDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 6, self.RULE_typeDeclaration) + try: + self.state = 261 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.CLASS, JavaParser.ENUM, JavaParser.FINAL, JavaParser.INTERFACE, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 251 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,6,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 248 + self.classOrInterfaceModifier() + self.state = 253 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,6,self._ctx) + + self.state = 258 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.CLASS]: + self.state = 254 + self.classDeclaration() + pass + elif token in [JavaParser.ENUM]: + self.state = 255 + self.enumDeclaration() + pass + elif token in [JavaParser.INTERFACE]: + self.state = 256 + self.interfaceDeclaration() + pass + elif token in [JavaParser.AT]: + self.state = 257 + self.annotationTypeDeclaration() + pass else: - if self._state.backtracking > 0: - raise BacktrackingFailed + raise NoViableAltException(self) + + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 260 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) - nvae = NoViableAltException("", 4, 0, self.input) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classOrInterfaceModifier(self): + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceModifierContext,0) + + + def NATIVE(self): + return self.getToken(JavaParser.NATIVE, 0) + + def SYNCHRONIZED(self): + return self.getToken(JavaParser.SYNCHRONIZED, 0) + + def TRANSIENT(self): + return self.getToken(JavaParser.TRANSIENT, 0) + + def VOLATILE(self): + return self.getToken(JavaParser.VOLATILE, 0) + + def getRuleIndex(self): + return JavaParser.RULE_modifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterModifier" ): + listener.enterModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitModifier" ): + listener.exitModifier(self) + + + + + def modifier(self): + + localctx = JavaParser.ModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 8, self.RULE_modifier) + try: + self.state = 268 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.FINAL, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 263 + self.classOrInterfaceModifier() + pass + elif token in [JavaParser.NATIVE]: + self.enterOuterAlt(localctx, 2) + self.state = 264 + self.match(JavaParser.NATIVE) + pass + elif token in [JavaParser.SYNCHRONIZED]: + self.enterOuterAlt(localctx, 3) + self.state = 265 + self.match(JavaParser.SYNCHRONIZED) + pass + elif token in [JavaParser.TRANSIENT]: + self.enterOuterAlt(localctx, 4) + self.state = 266 + self.match(JavaParser.TRANSIENT) + pass + elif token in [JavaParser.VOLATILE]: + self.enterOuterAlt(localctx, 5) + self.state = 267 + self.match(JavaParser.VOLATILE) + pass + else: + raise NoViableAltException(self) - raise nvae + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassOrInterfaceModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(JavaParser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(JavaParser.PUBLIC, 0) + + def PROTECTED(self): + return self.getToken(JavaParser.PROTECTED, 0) + + def PRIVATE(self): + return self.getToken(JavaParser.PRIVATE, 0) + + def STATIC(self): + return self.getToken(JavaParser.STATIC, 0) + + def ABSTRACT(self): + return self.getToken(JavaParser.ABSTRACT, 0) + + def FINAL(self): + return self.getToken(JavaParser.FINAL, 0) + + def STRICTFP(self): + return self.getToken(JavaParser.STRICTFP, 0) + + def getRuleIndex(self): + return JavaParser.RULE_classOrInterfaceModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassOrInterfaceModifier" ): + listener.enterClassOrInterfaceModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassOrInterfaceModifier" ): + listener.exitClassOrInterfaceModifier(self) + + + + + def classOrInterfaceModifier(self): + + localctx = JavaParser.ClassOrInterfaceModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 10, self.RULE_classOrInterfaceModifier) + try: + self.state = 278 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 270 + self.annotation() + pass + elif token in [JavaParser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 271 + self.match(JavaParser.PUBLIC) + pass + elif token in [JavaParser.PROTECTED]: + self.enterOuterAlt(localctx, 3) + self.state = 272 + self.match(JavaParser.PROTECTED) + pass + elif token in [JavaParser.PRIVATE]: + self.enterOuterAlt(localctx, 4) + self.state = 273 + self.match(JavaParser.PRIVATE) + pass + elif token in [JavaParser.STATIC]: + self.enterOuterAlt(localctx, 5) + self.state = 274 + self.match(JavaParser.STATIC) + pass + elif token in [JavaParser.ABSTRACT]: + self.enterOuterAlt(localctx, 6) + self.state = 275 + self.match(JavaParser.ABSTRACT) + pass + elif token in [JavaParser.FINAL]: + self.enterOuterAlt(localctx, 7) + self.state = 276 + self.match(JavaParser.FINAL) + pass + elif token in [JavaParser.STRICTFP]: + self.enterOuterAlt(localctx, 8) + self.state = 277 + self.match(JavaParser.STRICTFP) + pass + else: + raise NoViableAltException(self) - if alt4 == 1: - # Java.g:235:9: typeDeclaration - pass - root_0 = self._adaptor.nil() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - self._state.following.append(self.FOLLOW_typeDeclaration_in_typeDecls4549) - typeDeclaration6 = self.typeDeclaration() + class VariableModifierContext(ParserRuleContext): - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration6.tree) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def FINAL(self): + return self.getToken(JavaParser.FINAL, 0) - elif alt4 == 2: - # Java.g:236:9: SEMI - pass - root_0 = self._adaptor.nil() + def annotation(self): + return self.getTypedRuleContext(JavaParser.AnnotationContext,0) - SEMI7=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_typeDecls4559) + def getRuleIndex(self): + return JavaParser.RULE_variableModifier - retval.stop = self.input.LT(-1) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableModifier" ): + listener.enterVariableModifier(self) - if self._state.backtracking == 0: + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableModifier" ): + listener.exitVariableModifier(self) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 3, typeDecls_StartIndex, success) - pass - return retval + def variableModifier(self): - # $ANTLR end "typeDecls" + localctx = JavaParser.VariableModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 12, self.RULE_variableModifier) + try: + self.state = 282 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.FINAL]: + self.enterOuterAlt(localctx, 1) + self.state = 280 + self.match(JavaParser.FINAL) + pass + elif token in [JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 2) + self.state = 281 + self.annotation() + pass + else: + raise NoViableAltException(self) - class packageDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.packageDeclaration_return, self).__init__() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - self.tree = None + class ClassDeclarationContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def CLASS(self): + return self.getToken(JavaParser.CLASS, 0) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - # $ANTLR start "packageDeclaration" - # Java.g:239:1: packageDeclaration : PACKAGE qualifiedIdentifier SEMI ; - def packageDeclaration(self, ): + def classBody(self): + return self.getTypedRuleContext(JavaParser.ClassBodyContext,0) - retval = self.packageDeclaration_return() - retval.start = self.input.LT(1) - packageDeclaration_StartIndex = self.input.index() - root_0 = None - PACKAGE8 = None - SEMI10 = None - qualifiedIdentifier9 = None + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) - PACKAGE8_tree = None - SEMI10_tree = None + def EXTENDS(self): + return self.getToken(JavaParser.EXTENDS, 0) - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 4): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) - # Java.g:240:5: ( PACKAGE qualifiedIdentifier SEMI ) - # Java.g:240:9: PACKAGE qualifiedIdentifier SEMI - pass - root_0 = self._adaptor.nil() - PACKAGE8=self.match(self.input, PACKAGE, self.FOLLOW_PACKAGE_in_packageDeclaration4579) - if self._state.backtracking == 0: + def IMPLEMENTS(self): + return self.getToken(JavaParser.IMPLEMENTS, 0) - PACKAGE8_tree = self._adaptor.createWithPayload(PACKAGE8) - root_0 = self._adaptor.becomeRoot(PACKAGE8_tree, root_0) + def typeList(self): + return self.getTypedRuleContext(JavaParser.TypeListContext,0) - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_packageDeclaration4582) - qualifiedIdentifier9 = self.qualifiedIdentifier() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier9.tree) - SEMI10=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_packageDeclaration4584) + def getRuleIndex(self): + return JavaParser.RULE_classDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassDeclaration" ): + listener.enterClassDeclaration(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassDeclaration" ): + listener.exitClassDeclaration(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def classDeclaration(self): - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 4, packageDeclaration_StartIndex, success) + localctx = JavaParser.ClassDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 14, self.RULE_classDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 284 + self.match(JavaParser.CLASS) + self.state = 285 + self.match(JavaParser.IDENTIFIER) + self.state = 287 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 286 + self.typeParameters() - pass - return retval - # $ANTLR end "packageDeclaration" + self.state = 291 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.EXTENDS: + self.state = 289 + self.match(JavaParser.EXTENDS) + self.state = 290 + self.typeType() - class importDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.importDeclaration_return, self).__init__() - self.tree = None + self.state = 295 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.IMPLEMENTS: + self.state = 293 + self.match(JavaParser.IMPLEMENTS) + self.state = 294 + self.typeList() + self.state = 297 + self.classBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class TypeParametersContext(ParserRuleContext): - # $ANTLR start "importDeclaration" - # Java.g:243:1: importDeclaration : IMPORT ( STATIC )? qualifiedIdentifier ( DOTSTAR )? SEMI ; - def importDeclaration(self, ): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - retval = self.importDeclaration_return() - retval.start = self.input.LT(1) - importDeclaration_StartIndex = self.input.index() - root_0 = None + def LT(self): + return self.getToken(JavaParser.LT, 0) - IMPORT11 = None - STATIC12 = None - DOTSTAR14 = None - SEMI15 = None - qualifiedIdentifier13 = None + def typeParameter(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeParameterContext) + else: + return self.getTypedRuleContext(JavaParser.TypeParameterContext,i) - IMPORT11_tree = None - STATIC12_tree = None - DOTSTAR14_tree = None - SEMI15_tree = None + def GT(self): + return self.getToken(JavaParser.GT, 0) - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 5): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_typeParameters + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeParameters" ): + listener.enterTypeParameters(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeParameters" ): + listener.exitTypeParameters(self) + + + + + def typeParameters(self): + + localctx = JavaParser.TypeParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 16, self.RULE_typeParameters) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 299 + self.match(JavaParser.LT) + self.state = 300 + self.typeParameter() + self.state = 305 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 301 + self.match(JavaParser.COMMA) + self.state = 302 + self.typeParameter() + self.state = 307 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 308 + self.match(JavaParser.GT) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # Java.g:244:5: ( IMPORT ( STATIC )? qualifiedIdentifier ( DOTSTAR )? SEMI ) - # Java.g:244:9: IMPORT ( STATIC )? qualifiedIdentifier ( DOTSTAR )? SEMI - pass - root_0 = self._adaptor.nil() + class TypeParameterContext(ParserRuleContext): - IMPORT11=self.match(self.input, IMPORT, self.FOLLOW_IMPORT_in_importDeclaration4604) - if self._state.backtracking == 0: + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - IMPORT11_tree = self._adaptor.createWithPayload(IMPORT11) - root_0 = self._adaptor.becomeRoot(IMPORT11_tree, root_0) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - # Java.g:244:17: ( STATIC )? - alt5 = 2 - LA5_0 = self.input.LA(1) + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) - if (LA5_0 == STATIC) : - alt5 = 1 - if alt5 == 1: - # Java.g:0:0: STATIC - pass - STATIC12=self.match(self.input, STATIC, self.FOLLOW_STATIC_in_importDeclaration4607) - if self._state.backtracking == 0: - STATIC12_tree = self._adaptor.createWithPayload(STATIC12) - self._adaptor.addChild(root_0, STATIC12_tree) + def EXTENDS(self): + return self.getToken(JavaParser.EXTENDS, 0) + def typeBound(self): + return self.getTypedRuleContext(JavaParser.TypeBoundContext,0) + def getRuleIndex(self): + return JavaParser.RULE_typeParameter - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_importDeclaration4610) - qualifiedIdentifier13 = self.qualifiedIdentifier() + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeParameter" ): + listener.enterTypeParameter(self) - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier13.tree) - # Java.g:244:45: ( DOTSTAR )? - alt6 = 2 - LA6_0 = self.input.LA(1) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeParameter" ): + listener.exitTypeParameter(self) - if (LA6_0 == DOTSTAR) : - alt6 = 1 - if alt6 == 1: - # Java.g:0:0: DOTSTAR - pass - DOTSTAR14=self.match(self.input, DOTSTAR, self.FOLLOW_DOTSTAR_in_importDeclaration4612) - if self._state.backtracking == 0: - DOTSTAR14_tree = self._adaptor.createWithPayload(DOTSTAR14) - self._adaptor.addChild(root_0, DOTSTAR14_tree) + def typeParameter(self): + localctx = JavaParser.TypeParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 18, self.RULE_typeParameter) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 313 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,16,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 310 + self.annotation() + self.state = 315 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,16,self._ctx) - SEMI15=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_importDeclaration4615) + self.state = 316 + self.match(JavaParser.IDENTIFIER) + self.state = 325 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.EXTENDS: + self.state = 317 + self.match(JavaParser.EXTENDS) + self.state = 321 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,17,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 318 + self.annotation() + self.state = 323 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,17,self._ctx) + self.state = 324 + self.typeBound() - retval.stop = self.input.LT(-1) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - if self._state.backtracking == 0: + class TypeBoundContext(ParserRuleContext): - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def typeType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeTypeContext) + else: + return self.getTypedRuleContext(JavaParser.TypeTypeContext,i) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 5, importDeclaration_StartIndex, success) - pass - return retval + def BITAND(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.BITAND) + else: + return self.getToken(JavaParser.BITAND, i) - # $ANTLR end "importDeclaration" + def getRuleIndex(self): + return JavaParser.RULE_typeBound - class typeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeDeclaration_return, self).__init__() + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeBound" ): + listener.enterTypeBound(self) - self.tree = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeBound" ): + listener.exitTypeBound(self) - # $ANTLR start "typeDeclaration" - # Java.g:247:1: typeDeclaration : modifierList ( classTypeDeclaration[$modifierList.tree] | interfaceTypeDeclaration[$modifierList.tree] | enumTypeDeclaration[$modifierList.tree] | annotationTypeDeclaration[$modifierList.tree] ) ; - def typeDeclaration(self, ): + def typeBound(self): - retval = self.typeDeclaration_return() - retval.start = self.input.LT(1) - typeDeclaration_StartIndex = self.input.index() - root_0 = None + localctx = JavaParser.TypeBoundContext(self, self._ctx, self.state) + self.enterRule(localctx, 20, self.RULE_typeBound) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 327 + self.typeType() + self.state = 332 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.BITAND: + self.state = 328 + self.match(JavaParser.BITAND) + self.state = 329 + self.typeType() + self.state = 334 + self._errHandler.sync(self) + _la = self._input.LA(1) - modifierList16 = None + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - classTypeDeclaration17 = None + class EnumDeclarationContext(ParserRuleContext): - interfaceTypeDeclaration18 = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - enumTypeDeclaration19 = None + def ENUM(self): + return self.getToken(JavaParser.ENUM, 0) - annotationTypeDeclaration20 = None + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 6): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:248:5: ( modifierList ( classTypeDeclaration[$modifierList.tree] | interfaceTypeDeclaration[$modifierList.tree] | enumTypeDeclaration[$modifierList.tree] | annotationTypeDeclaration[$modifierList.tree] ) ) - # Java.g:248:9: modifierList ( classTypeDeclaration[$modifierList.tree] | interfaceTypeDeclaration[$modifierList.tree] | enumTypeDeclaration[$modifierList.tree] | annotationTypeDeclaration[$modifierList.tree] ) - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_modifierList_in_typeDeclaration4635) - modifierList16 = self.modifierList() - - self._state.following.pop() - # Java.g:249:9: ( classTypeDeclaration[$modifierList.tree] | interfaceTypeDeclaration[$modifierList.tree] | enumTypeDeclaration[$modifierList.tree] | annotationTypeDeclaration[$modifierList.tree] ) - alt7 = 4 - LA7 = self.input.LA(1) - if LA7 == CLASS: - alt7 = 1 - elif LA7 == INTERFACE: - alt7 = 2 - elif LA7 == ENUM: - alt7 = 3 - elif LA7 == AT: - alt7 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + def IMPLEMENTS(self): + return self.getToken(JavaParser.IMPLEMENTS, 0) - nvae = NoViableAltException("", 7, 0, self.input) + def typeList(self): + return self.getTypedRuleContext(JavaParser.TypeListContext,0) - raise nvae - if alt7 == 1: - # Java.g:249:13: classTypeDeclaration[$modifierList.tree] - pass - self._state.following.append(self.FOLLOW_classTypeDeclaration_in_typeDeclaration4650) - classTypeDeclaration17 = self.classTypeDeclaration(modifierList16.tree) + def enumConstants(self): + return self.getTypedRuleContext(JavaParser.EnumConstantsContext,0) - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, classTypeDeclaration17.tree) + def COMMA(self): + return self.getToken(JavaParser.COMMA, 0) - elif alt7 == 2: - # Java.g:250:13: interfaceTypeDeclaration[$modifierList.tree] - pass - self._state.following.append(self.FOLLOW_interfaceTypeDeclaration_in_typeDeclaration4665) - interfaceTypeDeclaration18 = self.interfaceTypeDeclaration(modifierList16.tree) + def enumBodyDeclarations(self): + return self.getTypedRuleContext(JavaParser.EnumBodyDeclarationsContext,0) - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, interfaceTypeDeclaration18.tree) + def getRuleIndex(self): + return JavaParser.RULE_enumDeclaration - elif alt7 == 3: - # Java.g:251:13: enumTypeDeclaration[$modifierList.tree] - pass - self._state.following.append(self.FOLLOW_enumTypeDeclaration_in_typeDeclaration4680) - enumTypeDeclaration19 = self.enumTypeDeclaration(modifierList16.tree) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumDeclaration" ): + listener.enterEnumDeclaration(self) - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumTypeDeclaration19.tree) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumDeclaration" ): + listener.exitEnumDeclaration(self) - elif alt7 == 4: - # Java.g:252:13: annotationTypeDeclaration[$modifierList.tree] - pass - self._state.following.append(self.FOLLOW_annotationTypeDeclaration_in_typeDeclaration4695) - annotationTypeDeclaration20 = self.annotationTypeDeclaration(modifierList16.tree) - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationTypeDeclaration20.tree) + def enumDeclaration(self): + localctx = JavaParser.EnumDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 22, self.RULE_enumDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 335 + self.match(JavaParser.ENUM) + self.state = 336 + self.match(JavaParser.IDENTIFIER) + self.state = 339 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.IMPLEMENTS: + self.state = 337 + self.match(JavaParser.IMPLEMENTS) + self.state = 338 + self.typeList() + self.state = 341 + self.match(JavaParser.LBRACE) + self.state = 343 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 342 + self.enumConstants() - retval.stop = self.input.LT(-1) + self.state = 346 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COMMA: + self.state = 345 + self.match(JavaParser.COMMA) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + self.state = 349 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.SEMI: + self.state = 348 + self.enumBodyDeclarations() - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + self.state = 351 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 6, typeDeclaration_StartIndex, success) - - pass - return retval + self.exitRule() + return localctx - # $ANTLR end "typeDeclaration" + class EnumConstantsContext(ParserRuleContext): - class classTypeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classTypeDeclaration_return, self).__init__() - - self.tree = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def enumConstant(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.EnumConstantContext) + else: + return self.getTypedRuleContext(JavaParser.EnumConstantContext,i) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) - # $ANTLR start "classTypeDeclaration" - # Java.g:256:1: classTypeDeclaration[modifiers] : CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody -> ^( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody ) ; - def classTypeDeclaration(self, modifiers): + def getRuleIndex(self): + return JavaParser.RULE_enumConstants - retval = self.classTypeDeclaration_return() - retval.start = self.input.LT(1) - classTypeDeclaration_StartIndex = self.input.index() - root_0 = None + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumConstants" ): + listener.enterEnumConstants(self) - CLASS21 = None - IDENT22 = None - genericTypeParameterList23 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumConstants" ): + listener.exitEnumConstants(self) - classExtendsClause24 = None - implementsClause25 = None - classBody26 = None + def enumConstants(self): - CLASS21_tree = None - IDENT22_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_CLASS = RewriteRuleTokenStream(self._adaptor, "token CLASS") - stream_genericTypeParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameterList") - stream_classExtendsClause = RewriteRuleSubtreeStream(self._adaptor, "rule classExtendsClause") - stream_implementsClause = RewriteRuleSubtreeStream(self._adaptor, "rule implementsClause") - stream_classBody = RewriteRuleSubtreeStream(self._adaptor, "rule classBody") - success = False + localctx = JavaParser.EnumConstantsContext(self, self._ctx, self.state) + self.enterRule(localctx, 24, self.RULE_enumConstants) try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 7): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:257:5: ( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody -> ^( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody ) ) - # Java.g:257:9: CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody - pass - CLASS21=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_classTypeDeclaration4726) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS21) - IDENT22=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_classTypeDeclaration4728) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT22) - # Java.g:257:21: ( genericTypeParameterList )? - alt8 = 2 - LA8_0 = self.input.LA(1) - - if (LA8_0 == LESS_THAN) : - alt8 = 1 - if alt8 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_classTypeDeclaration4730) - genericTypeParameterList23 = self.genericTypeParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameterList.add(genericTypeParameterList23.tree) - - - - # Java.g:257:47: ( classExtendsClause )? - alt9 = 2 - LA9_0 = self.input.LA(1) - - if (LA9_0 == EXTENDS) : - alt9 = 1 - if alt9 == 1: - # Java.g:0:0: classExtendsClause - pass - self._state.following.append(self.FOLLOW_classExtendsClause_in_classTypeDeclaration4733) - classExtendsClause24 = self.classExtendsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classExtendsClause.add(classExtendsClause24.tree) - - - - # Java.g:257:67: ( implementsClause )? - alt10 = 2 - LA10_0 = self.input.LA(1) - - if (LA10_0 == IMPLEMENTS) : - alt10 = 1 - if alt10 == 1: - # Java.g:0:0: implementsClause - pass - self._state.following.append(self.FOLLOW_implementsClause_in_classTypeDeclaration4736) - implementsClause25 = self.implementsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_implementsClause.add(implementsClause25.tree) - - - - self._state.following.append(self.FOLLOW_classBody_in_classTypeDeclaration4739) - classBody26 = self.classBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classBody.add(classBody26.tree) - - # AST Rewrite - # elements: classExtendsClause, IDENT, genericTypeParameterList, implementsClause, classBody, CLASS - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + self.enterOuterAlt(localctx, 1) + self.state = 353 + self.enumConstant() + self.state = 358 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,24,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 354 + self.match(JavaParser.COMMA) + self.state = 355 + self.enumConstant() + self.state = 360 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,24,self._ctx) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - root_0 = self._adaptor.nil() - # 258:9: -> ^( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody ) - # Java.g:258:13: ^( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_CLASS.nextNode(), root_1) - - self._adaptor.addChild(root_1, modifiers) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - # Java.g:258:40: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - + class EnumConstantContext(ParserRuleContext): - stream_genericTypeParameterList.reset(); - # Java.g:258:66: ( classExtendsClause )? - if stream_classExtendsClause.hasNext(): - self._adaptor.addChild(root_1, stream_classExtendsClause.nextTree()) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - stream_classExtendsClause.reset(); - # Java.g:259:15: ( implementsClause )? - if stream_implementsClause.hasNext(): - self._adaptor.addChild(root_1, stream_implementsClause.nextTree()) + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) - stream_implementsClause.reset(); - self._adaptor.addChild(root_1, stream_classBody.nextTree()) + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) - self._adaptor.addChild(root_0, root_1) + def classBody(self): + return self.getTypedRuleContext(JavaParser.ClassBodyContext,0) - retval.tree = root_0 + def getRuleIndex(self): + return JavaParser.RULE_enumConstant + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumConstant" ): + listener.enterEnumConstant(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumConstant" ): + listener.exitEnumConstant(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def enumConstant(self): - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 7, classTypeDeclaration_StartIndex, success) + localctx = JavaParser.EnumConstantContext(self, self._ctx, self.state) + self.enterRule(localctx, 26, self.RULE_enumConstant) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 364 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,25,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 361 + self.annotation() + self.state = 366 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,25,self._ctx) - pass - return retval + self.state = 367 + self.match(JavaParser.IDENTIFIER) + self.state = 369 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LPAREN: + self.state = 368 + self.arguments() - # $ANTLR end "classTypeDeclaration" - class classExtendsClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classExtendsClause_return, self).__init__() + self.state = 372 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LBRACE: + self.state = 371 + self.classBody() - self.tree = None + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class EnumBodyDeclarationsContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - # $ANTLR start "classExtendsClause" - # Java.g:262:1: classExtendsClause : EXTENDS type -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] type ) ; - def classExtendsClause(self, ): + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) - retval = self.classExtendsClause_return() - retval.start = self.input.LT(1) - classExtendsClause_StartIndex = self.input.index() - root_0 = None + def classBodyDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ClassBodyDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.ClassBodyDeclarationContext,i) - EXTENDS27 = None - type28 = None + def getRuleIndex(self): + return JavaParser.RULE_enumBodyDeclarations - EXTENDS27_tree = None - stream_EXTENDS = RewriteRuleTokenStream(self._adaptor, "token EXTENDS") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 8): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:263:5: ( EXTENDS type -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] type ) ) - # Java.g:263:9: EXTENDS type - pass - EXTENDS27=self.match(self.input, EXTENDS, self.FOLLOW_EXTENDS_in_classExtendsClause4802) - if self._state.backtracking == 0: - stream_EXTENDS.add(EXTENDS27) - self._state.following.append(self.FOLLOW_type_in_classExtendsClause4804) - type28 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type28.tree) - - # AST Rewrite - # elements: type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumBodyDeclarations" ): + listener.enterEnumBodyDeclarations(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumBodyDeclarations" ): + listener.exitEnumBodyDeclarations(self) - root_0 = self._adaptor.nil() - # 264:9: -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] type ) - # Java.g:264:13: ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] type ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(EXTENDS_CLAUSE, EXTENDS27, "EXTENDS_CLAUSE"), root_1) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_0, root_1) + def enumBodyDeclarations(self): + localctx = JavaParser.EnumBodyDeclarationsContext(self, self._ctx, self.state) + self.enterRule(localctx, 28, self.RULE_enumBodyDeclarations) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 374 + self.match(JavaParser.SEMI) + self.state = 378 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NATIVE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.TRANSIENT) | (1 << JavaParser.VOID) | (1 << JavaParser.VOLATILE) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 375 + self.classBodyDeclaration() + self.state = 380 + self._errHandler.sync(self) + _la = self._input.LA(1) - retval.tree = root_0 + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class InterfaceDeclarationContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - retval.stop = self.input.LT(-1) + def INTERFACE(self): + return self.getToken(JavaParser.INTERFACE, 0) - if self._state.backtracking == 0: + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def interfaceBody(self): + return self.getTypedRuleContext(JavaParser.InterfaceBodyContext,0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 8, classExtendsClause_StartIndex, success) + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) - pass - return retval - # $ANTLR end "classExtendsClause" + def EXTENDS(self): + return self.getToken(JavaParser.EXTENDS, 0) - class interfaceExtendsClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceExtendsClause_return, self).__init__() + def typeList(self): + return self.getTypedRuleContext(JavaParser.TypeListContext,0) - self.tree = None + def getRuleIndex(self): + return JavaParser.RULE_interfaceDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceDeclaration" ): + listener.enterInterfaceDeclaration(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceDeclaration" ): + listener.exitInterfaceDeclaration(self) - # $ANTLR start "interfaceExtendsClause" - # Java.g:267:1: interfaceExtendsClause : EXTENDS typeList -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] typeList ) ; - def interfaceExtendsClause(self, ): - retval = self.interfaceExtendsClause_return() - retval.start = self.input.LT(1) - interfaceExtendsClause_StartIndex = self.input.index() - root_0 = None - EXTENDS29 = None - typeList30 = None + def interfaceDeclaration(self): - EXTENDS29_tree = None - stream_EXTENDS = RewriteRuleTokenStream(self._adaptor, "token EXTENDS") - stream_typeList = RewriteRuleSubtreeStream(self._adaptor, "rule typeList") - success = False + localctx = JavaParser.InterfaceDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 30, self.RULE_interfaceDeclaration) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 9): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:268:5: ( EXTENDS typeList -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] typeList ) ) - # Java.g:268:9: EXTENDS typeList - pass - EXTENDS29=self.match(self.input, EXTENDS, self.FOLLOW_EXTENDS_in_interfaceExtendsClause4841) - if self._state.backtracking == 0: - stream_EXTENDS.add(EXTENDS29) - self._state.following.append(self.FOLLOW_typeList_in_interfaceExtendsClause4843) - typeList30 = self.typeList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeList.add(typeList30.tree) - - # AST Rewrite - # elements: typeList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - + self.enterOuterAlt(localctx, 1) + self.state = 381 + self.match(JavaParser.INTERFACE) + self.state = 382 + self.match(JavaParser.IDENTIFIER) + self.state = 384 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 383 + self.typeParameters() - root_0 = self._adaptor.nil() - # 269:9: -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] typeList ) - # Java.g:269:13: ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] typeList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(EXTENDS_CLAUSE, EXTENDS29, "EXTENDS_CLAUSE"), root_1) - self._adaptor.addChild(root_1, stream_typeList.nextTree()) - - self._adaptor.addChild(root_0, root_1) + self.state = 388 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.EXTENDS: + self.state = 386 + self.match(JavaParser.EXTENDS) + self.state = 387 + self.typeList() + self.state = 390 + self.interfaceBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - retval.tree = root_0 + class ClassBodyContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) - retval.stop = self.input.LT(-1) + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) - if self._state.backtracking == 0: + def classBodyDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ClassBodyDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.ClassBodyDeclarationContext,i) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def getRuleIndex(self): + return JavaParser.RULE_classBody - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 9, interfaceExtendsClause_StartIndex, success) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassBody" ): + listener.enterClassBody(self) - pass - return retval + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassBody" ): + listener.exitClassBody(self) - # $ANTLR end "interfaceExtendsClause" - class implementsClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.implementsClause_return, self).__init__() - self.tree = None + def classBody(self): + localctx = JavaParser.ClassBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 32, self.RULE_classBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 392 + self.match(JavaParser.LBRACE) + self.state = 396 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NATIVE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.TRANSIENT) | (1 << JavaParser.VOID) | (1 << JavaParser.VOLATILE) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 393 + self.classBodyDeclaration() + self.state = 398 + self._errHandler.sync(self) + _la = self._input.LA(1) + self.state = 399 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # $ANTLR start "implementsClause" - # Java.g:272:1: implementsClause : IMPLEMENTS typeList -> ^( IMPLEMENTS_CLAUSE[$IMPLEMENTS, \"IMPLEMENTS_CLAUSE\"] typeList ) ; - def implementsClause(self, ): + class InterfaceBodyContext(ParserRuleContext): - retval = self.implementsClause_return() - retval.start = self.input.LT(1) - implementsClause_StartIndex = self.input.index() - root_0 = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - IMPLEMENTS31 = None - typeList32 = None + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) - IMPLEMENTS31_tree = None - stream_IMPLEMENTS = RewriteRuleTokenStream(self._adaptor, "token IMPLEMENTS") - stream_typeList = RewriteRuleSubtreeStream(self._adaptor, "rule typeList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 10): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:273:5: ( IMPLEMENTS typeList -> ^( IMPLEMENTS_CLAUSE[$IMPLEMENTS, \"IMPLEMENTS_CLAUSE\"] typeList ) ) - # Java.g:273:9: IMPLEMENTS typeList - pass - IMPLEMENTS31=self.match(self.input, IMPLEMENTS, self.FOLLOW_IMPLEMENTS_in_implementsClause4880) - if self._state.backtracking == 0: - stream_IMPLEMENTS.add(IMPLEMENTS31) - self._state.following.append(self.FOLLOW_typeList_in_implementsClause4882) - typeList32 = self.typeList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeList.add(typeList32.tree) - - # AST Rewrite - # elements: typeList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def interfaceBodyDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.InterfaceBodyDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.InterfaceBodyDeclarationContext,i) - root_0 = self._adaptor.nil() - # 274:9: -> ^( IMPLEMENTS_CLAUSE[$IMPLEMENTS, \"IMPLEMENTS_CLAUSE\"] typeList ) - # Java.g:274:13: ^( IMPLEMENTS_CLAUSE[$IMPLEMENTS, \"IMPLEMENTS_CLAUSE\"] typeList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(IMPLEMENTS_CLAUSE, IMPLEMENTS31, "IMPLEMENTS_CLAUSE"), root_1) + def getRuleIndex(self): + return JavaParser.RULE_interfaceBody - self._adaptor.addChild(root_1, stream_typeList.nextTree()) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceBody" ): + listener.enterInterfaceBody(self) - self._adaptor.addChild(root_0, root_1) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceBody" ): + listener.exitInterfaceBody(self) - retval.tree = root_0 + def interfaceBody(self): + localctx = JavaParser.InterfaceBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 34, self.RULE_interfaceBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 401 + self.match(JavaParser.LBRACE) + self.state = 405 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.DEFAULT) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NATIVE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.TRANSIENT) | (1 << JavaParser.VOID) | (1 << JavaParser.VOLATILE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 402 + self.interfaceBodyDeclaration() + self.state = 407 + self._errHandler.sync(self) + _la = self._input.LA(1) - retval.stop = self.input.LT(-1) + self.state = 408 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - if self._state.backtracking == 0: + class ClassBodyDeclarationContext(ParserRuleContext): - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 10, implementsClause_StartIndex, success) + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) - pass - return retval - # $ANTLR end "implementsClause" + def STATIC(self): + return self.getToken(JavaParser.STATIC, 0) - class genericTypeParameterList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeParameterList_return, self).__init__() + def memberDeclaration(self): + return self.getTypedRuleContext(JavaParser.MemberDeclarationContext,0) - self.tree = None + def modifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ModifierContext,i) + def getRuleIndex(self): + return JavaParser.RULE_classBodyDeclaration - # $ANTLR start "genericTypeParameterList" - # Java.g:277:1: genericTypeParameterList : LESS_THAN genericTypeParameter ( COMMA genericTypeParameter )* genericTypeListClosing -> ^( GENERIC_TYPE_PARAM_LIST[$LESS_THAN, \"GENERIC_TYPE_PARAM_LIST\"] ( genericTypeParameter )+ ) ; - def genericTypeParameterList(self, ): + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassBodyDeclaration" ): + listener.enterClassBodyDeclaration(self) - retval = self.genericTypeParameterList_return() - retval.start = self.input.LT(1) - genericTypeParameterList_StartIndex = self.input.index() - root_0 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassBodyDeclaration" ): + listener.exitClassBodyDeclaration(self) - LESS_THAN33 = None - COMMA35 = None - genericTypeParameter34 = None - genericTypeParameter36 = None - genericTypeListClosing37 = None + def classBodyDeclaration(self): - LESS_THAN33_tree = None - COMMA35_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_LESS_THAN = RewriteRuleTokenStream(self._adaptor, "token LESS_THAN") - stream_genericTypeParameter = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameter") - stream_genericTypeListClosing = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeListClosing") - success = False + localctx = JavaParser.ClassBodyDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 36, self.RULE_classBodyDeclaration) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 11): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:278:5: ( LESS_THAN genericTypeParameter ( COMMA genericTypeParameter )* genericTypeListClosing -> ^( GENERIC_TYPE_PARAM_LIST[$LESS_THAN, \"GENERIC_TYPE_PARAM_LIST\"] ( genericTypeParameter )+ ) ) - # Java.g:278:9: LESS_THAN genericTypeParameter ( COMMA genericTypeParameter )* genericTypeListClosing - pass - LESS_THAN33=self.match(self.input, LESS_THAN, self.FOLLOW_LESS_THAN_in_genericTypeParameterList4919) - if self._state.backtracking == 0: - stream_LESS_THAN.add(LESS_THAN33) - self._state.following.append(self.FOLLOW_genericTypeParameter_in_genericTypeParameterList4921) - genericTypeParameter34 = self.genericTypeParameter() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameter.add(genericTypeParameter34.tree) - # Java.g:278:40: ( COMMA genericTypeParameter )* - while True: #loop11 - alt11 = 2 - LA11_0 = self.input.LA(1) - - if (LA11_0 == COMMA) : - alt11 = 1 - - - if alt11 == 1: - # Java.g:278:41: COMMA genericTypeParameter - pass - COMMA35=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_genericTypeParameterList4924) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA35) - self._state.following.append(self.FOLLOW_genericTypeParameter_in_genericTypeParameterList4926) - genericTypeParameter36 = self.genericTypeParameter() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameter.add(genericTypeParameter36.tree) + self.state = 422 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,35,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 410 + self.match(JavaParser.SEMI) + pass + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 412 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.STATIC: + self.state = 411 + self.match(JavaParser.STATIC) - else: - break #loop11 - self._state.following.append(self.FOLLOW_genericTypeListClosing_in_genericTypeParameterList4930) - genericTypeListClosing37 = self.genericTypeListClosing() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeListClosing.add(genericTypeListClosing37.tree) - - # AST Rewrite - # elements: genericTypeParameter - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + self.state = 414 + self.block() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 418 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 415 + self.modifier() + self.state = 420 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) + + self.state = 421 + self.memberDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - root_0 = self._adaptor.nil() - # 279:9: -> ^( GENERIC_TYPE_PARAM_LIST[$LESS_THAN, \"GENERIC_TYPE_PARAM_LIST\"] ( genericTypeParameter )+ ) - # Java.g:279:13: ^( GENERIC_TYPE_PARAM_LIST[$LESS_THAN, \"GENERIC_TYPE_PARAM_LIST\"] ( genericTypeParameter )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(GENERIC_TYPE_PARAM_LIST, LESS_THAN33, "GENERIC_TYPE_PARAM_LIST"), root_1) + class MemberDeclarationContext(ParserRuleContext): - # Java.g:279:78: ( genericTypeParameter )+ - if not (stream_genericTypeParameter.hasNext()): - raise RewriteEarlyExitException() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - while stream_genericTypeParameter.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameter.nextTree()) + def methodDeclaration(self): + return self.getTypedRuleContext(JavaParser.MethodDeclarationContext,0) - stream_genericTypeParameter.reset() + def genericMethodDeclaration(self): + return self.getTypedRuleContext(JavaParser.GenericMethodDeclarationContext,0) - self._adaptor.addChild(root_0, root_1) + def fieldDeclaration(self): + return self.getTypedRuleContext(JavaParser.FieldDeclarationContext,0) - retval.tree = root_0 + def constructorDeclaration(self): + return self.getTypedRuleContext(JavaParser.ConstructorDeclarationContext,0) + def genericConstructorDeclaration(self): + return self.getTypedRuleContext(JavaParser.GenericConstructorDeclarationContext,0) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeDeclarationContext,0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 11, genericTypeParameterList_StartIndex, success) - pass - return retval + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) - # $ANTLR end "genericTypeParameterList" - class genericTypeListClosing_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeListClosing_return, self).__init__() + def enumDeclaration(self): + return self.getTypedRuleContext(JavaParser.EnumDeclarationContext,0) - self.tree = None + def getRuleIndex(self): + return JavaParser.RULE_memberDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMemberDeclaration" ): + listener.enterMemberDeclaration(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMemberDeclaration" ): + listener.exitMemberDeclaration(self) - # $ANTLR start "genericTypeListClosing" - # Java.g:282:1: genericTypeListClosing : ( GREATER_THAN | SHIFT_RIGHT | BIT_SHIFT_RIGHT | ); - def genericTypeListClosing(self, ): - retval = self.genericTypeListClosing_return() - retval.start = self.input.LT(1) - genericTypeListClosing_StartIndex = self.input.index() - root_0 = None - GREATER_THAN38 = None - SHIFT_RIGHT39 = None - BIT_SHIFT_RIGHT40 = None - GREATER_THAN38_tree = None - SHIFT_RIGHT39_tree = None - BIT_SHIFT_RIGHT40_tree = None + def memberDeclaration(self): - success = False + localctx = JavaParser.MemberDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 38, self.RULE_memberDeclaration) try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 12): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:286:5: ( GREATER_THAN | SHIFT_RIGHT | BIT_SHIFT_RIGHT | ) - alt12 = 4 - LA12 = self.input.LA(1) - if LA12 == GREATER_THAN: - LA12_1 = self.input.LA(2) - - if (self.synpred14_Java()) : - alt12 = 1 - elif (True) : - alt12 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + self.state = 433 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,36,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 424 + self.methodDeclaration() + pass - nvae = NoViableAltException("", 12, 1, self.input) + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 425 + self.genericMethodDeclaration() + pass - raise nvae + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 426 + self.fieldDeclaration() + pass - elif LA12 == SHIFT_RIGHT: - LA12_2 = self.input.LA(2) + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 427 + self.constructorDeclaration() + pass - if (self.synpred15_Java()) : - alt12 = 2 - elif (True) : - alt12 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 428 + self.genericConstructorDeclaration() + pass - nvae = NoViableAltException("", 12, 2, self.input) + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 429 + self.interfaceDeclaration() + pass - raise nvae + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 430 + self.annotationTypeDeclaration() + pass - elif LA12 == BIT_SHIFT_RIGHT: - LA12_3 = self.input.LA(2) + elif la_ == 8: + self.enterOuterAlt(localctx, 8) + self.state = 431 + self.classDeclaration() + pass - if (self.synpred16_Java()) : - alt12 = 3 - elif (True) : - alt12 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + elif la_ == 9: + self.enterOuterAlt(localctx, 9) + self.state = 432 + self.enumDeclaration() + pass - nvae = NoViableAltException("", 12, 3, self.input) - raise nvae + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - elif LA12 == EOF or LA12 == AND or LA12 == AND_ASSIGN or LA12 == ASSIGN or LA12 == BIT_SHIFT_RIGHT_ASSIGN or LA12 == COLON or LA12 == COMMA or LA12 == DIV_ASSIGN or LA12 == DOT or LA12 == ELLIPSIS or LA12 == EQUAL or LA12 == LBRACK or LA12 == LCURLY or LA12 == LOGICAL_AND or LA12 == LOGICAL_OR or LA12 == LPAREN or LA12 == MINUS_ASSIGN or LA12 == MOD_ASSIGN or LA12 == NOT_EQUAL or LA12 == OR or LA12 == OR_ASSIGN or LA12 == PLUS_ASSIGN or LA12 == QUESTION or LA12 == RBRACK or LA12 == RCURLY or LA12 == RPAREN or LA12 == SEMI or LA12 == SHIFT_LEFT_ASSIGN or LA12 == SHIFT_RIGHT_ASSIGN or LA12 == STAR_ASSIGN or LA12 == XOR or LA12 == XOR_ASSIGN or LA12 == BOOLEAN or LA12 == BYTE or LA12 == CHAR or LA12 == DOUBLE or LA12 == EXTENDS or LA12 == FLOAT or LA12 == IMPLEMENTS or LA12 == INT or LA12 == LONG or LA12 == SHORT or LA12 == SUPER or LA12 == THIS or LA12 == VOID or LA12 == IDENT: - alt12 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + class MethodDeclarationContext(ParserRuleContext): - nvae = NoViableAltException("", 12, 0, self.input) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - raise nvae + def typeTypeOrVoid(self): + return self.getTypedRuleContext(JavaParser.TypeTypeOrVoidContext,0) - if alt12 == 1: - # Java.g:286:9: GREATER_THAN - pass - root_0 = self._adaptor.nil() - GREATER_THAN38=self.match(self.input, GREATER_THAN, self.FOLLOW_GREATER_THAN_in_genericTypeListClosing5045) - if self._state.backtracking == 0: + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - GREATER_THAN38_tree = self._adaptor.createWithPayload(GREATER_THAN38) - self._adaptor.addChild(root_0, GREATER_THAN38_tree) + def formalParameters(self): + return self.getTypedRuleContext(JavaParser.FormalParametersContext,0) + def methodBody(self): + return self.getTypedRuleContext(JavaParser.MethodBodyContext,0) - elif alt12 == 2: - # Java.g:287:9: SHIFT_RIGHT - pass - root_0 = self._adaptor.nil() - SHIFT_RIGHT39=self.match(self.input, SHIFT_RIGHT, self.FOLLOW_SHIFT_RIGHT_in_genericTypeListClosing5055) - if self._state.backtracking == 0: + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) - SHIFT_RIGHT39_tree = self._adaptor.createWithPayload(SHIFT_RIGHT39) - self._adaptor.addChild(root_0, SHIFT_RIGHT39_tree) + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def THROWS(self): + return self.getToken(JavaParser.THROWS, 0) + + def qualifiedNameList(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_methodDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodDeclaration" ): + listener.enterMethodDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodDeclaration" ): + listener.exitMethodDeclaration(self) + + + + + def methodDeclaration(self): + + localctx = JavaParser.MethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 40, self.RULE_methodDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 435 + self.typeTypeOrVoid() + self.state = 436 + self.match(JavaParser.IDENTIFIER) + self.state = 437 + self.formalParameters() + self.state = 442 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 438 + self.match(JavaParser.LBRACK) + self.state = 439 + self.match(JavaParser.RBRACK) + self.state = 444 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 447 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.THROWS: + self.state = 445 + self.match(JavaParser.THROWS) + self.state = 446 + self.qualifiedNameList() + + + self.state = 449 + self.methodBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class MethodBodyContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - elif alt12 == 3: - # Java.g:288:9: BIT_SHIFT_RIGHT - pass - root_0 = self._adaptor.nil() + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) - BIT_SHIFT_RIGHT40=self.match(self.input, BIT_SHIFT_RIGHT, self.FOLLOW_BIT_SHIFT_RIGHT_in_genericTypeListClosing5065) - if self._state.backtracking == 0: - BIT_SHIFT_RIGHT40_tree = self._adaptor.createWithPayload(BIT_SHIFT_RIGHT40) - self._adaptor.addChild(root_0, BIT_SHIFT_RIGHT40_tree) + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + def getRuleIndex(self): + return JavaParser.RULE_methodBody + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodBody" ): + listener.enterMethodBody(self) - elif alt12 == 4: - # Java.g:290:5: - pass - root_0 = self._adaptor.nil() + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodBody" ): + listener.exitMethodBody(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def methodBody(self): + localctx = JavaParser.MethodBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 42, self.RULE_methodBody) + try: + self.state = 453 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LBRACE]: + self.enterOuterAlt(localctx, 1) + self.state = 451 + self.block() + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 452 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 12, genericTypeListClosing_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class TypeTypeOrVoidContext(ParserRuleContext): - # $ANTLR end "genericTypeListClosing" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class genericTypeParameter_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeParameter_return, self).__init__() + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) - self.tree = None + def VOID(self): + return self.getToken(JavaParser.VOID, 0) + def getRuleIndex(self): + return JavaParser.RULE_typeTypeOrVoid + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeTypeOrVoid" ): + listener.enterTypeTypeOrVoid(self) - # $ANTLR start "genericTypeParameter" - # Java.g:292:1: genericTypeParameter : IDENT ( bound )? -> ^( IDENT ( bound )? ) ; - def genericTypeParameter(self, ): + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeTypeOrVoid" ): + listener.exitTypeTypeOrVoid(self) - retval = self.genericTypeParameter_return() - retval.start = self.input.LT(1) - genericTypeParameter_StartIndex = self.input.index() - root_0 = None - IDENT41 = None - bound42 = None - IDENT41_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_bound = RewriteRuleSubtreeStream(self._adaptor, "rule bound") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 13): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:293:5: ( IDENT ( bound )? -> ^( IDENT ( bound )? ) ) - # Java.g:293:9: IDENT ( bound )? - pass - IDENT41=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_genericTypeParameter5093) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT41) - # Java.g:293:15: ( bound )? - alt13 = 2 - LA13_0 = self.input.LA(1) - - if (LA13_0 == EXTENDS) : - LA13_1 = self.input.LA(2) - - if (LA13_1 == BOOLEAN or LA13_1 == BYTE or LA13_1 == CHAR or LA13_1 == DOUBLE or LA13_1 == FLOAT or (INT <= LA13_1 <= LONG) or LA13_1 == SHORT) : - LA13_3 = self.input.LA(3) - - if (self.synpred17_Java()) : - alt13 = 1 - elif (LA13_1 == IDENT) : - LA13_4 = self.input.LA(3) - - if (self.synpred17_Java()) : - alt13 = 1 - if alt13 == 1: - # Java.g:0:0: bound - pass - self._state.following.append(self.FOLLOW_bound_in_genericTypeParameter5095) - bound42 = self.bound() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_bound.add(bound42.tree) - - - - - # AST Rewrite - # elements: IDENT, bound - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def typeTypeOrVoid(self): + localctx = JavaParser.TypeTypeOrVoidContext(self, self._ctx, self.state) + self.enterRule(localctx, 44, self.RULE_typeTypeOrVoid) + try: + self.state = 457 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 455 + self.typeType() + pass + elif token in [JavaParser.VOID]: + self.enterOuterAlt(localctx, 2) + self.state = 456 + self.match(JavaParser.VOID) + pass + else: + raise NoViableAltException(self) - root_0 = self._adaptor.nil() - # 294:9: -> ^( IDENT ( bound )? ) - # Java.g:294:13: ^( IDENT ( bound )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_IDENT.nextNode(), root_1) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # Java.g:294:21: ( bound )? - if stream_bound.hasNext(): - self._adaptor.addChild(root_1, stream_bound.nextTree()) + class GenericMethodDeclarationContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - stream_bound.reset(); + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) - self._adaptor.addChild(root_0, root_1) + def methodDeclaration(self): + return self.getTypedRuleContext(JavaParser.MethodDeclarationContext,0) - retval.tree = root_0 + def getRuleIndex(self): + return JavaParser.RULE_genericMethodDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterGenericMethodDeclaration" ): + listener.enterGenericMethodDeclaration(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitGenericMethodDeclaration" ): + listener.exitGenericMethodDeclaration(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def genericMethodDeclaration(self): - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + localctx = JavaParser.GenericMethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 46, self.RULE_genericMethodDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 459 + self.typeParameters() + self.state = 460 + self.methodDeclaration() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 13, genericTypeParameter_StartIndex, success) + self.exitRule() + return localctx + + class GenericConstructorDeclarationContext(ParserRuleContext): - pass - return retval + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - # $ANTLR end "genericTypeParameter" + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) - class bound_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.bound_return, self).__init__() - self.tree = None + def constructorDeclaration(self): + return self.getTypedRuleContext(JavaParser.ConstructorDeclarationContext,0) + def getRuleIndex(self): + return JavaParser.RULE_genericConstructorDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterGenericConstructorDeclaration" ): + listener.enterGenericConstructorDeclaration(self) - # $ANTLR start "bound" - # Java.g:297:1: bound : EXTENDS type ( AND type )* -> ^( EXTENDS_BOUND_LIST[$EXTENDS, \"EXTENDS_BOUND_LIST\"] ( type )+ ) ; - def bound(self, ): + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitGenericConstructorDeclaration" ): + listener.exitGenericConstructorDeclaration(self) - retval = self.bound_return() - retval.start = self.input.LT(1) - bound_StartIndex = self.input.index() - root_0 = None - EXTENDS43 = None - AND45 = None - type44 = None - type46 = None + def genericConstructorDeclaration(self): - EXTENDS43_tree = None - AND45_tree = None - stream_AND = RewriteRuleTokenStream(self._adaptor, "token AND") - stream_EXTENDS = RewriteRuleTokenStream(self._adaptor, "token EXTENDS") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False + localctx = JavaParser.GenericConstructorDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 48, self.RULE_genericConstructorDeclaration) try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 14): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:298:5: ( EXTENDS type ( AND type )* -> ^( EXTENDS_BOUND_LIST[$EXTENDS, \"EXTENDS_BOUND_LIST\"] ( type )+ ) ) - # Java.g:298:9: EXTENDS type ( AND type )* - pass - EXTENDS43=self.match(self.input, EXTENDS, self.FOLLOW_EXTENDS_in_bound5133) - if self._state.backtracking == 0: - stream_EXTENDS.add(EXTENDS43) - self._state.following.append(self.FOLLOW_type_in_bound5135) - type44 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type44.tree) - # Java.g:298:22: ( AND type )* - while True: #loop14 - alt14 = 2 - LA14_0 = self.input.LA(1) - - if (LA14_0 == AND) : - alt14 = 1 - - - if alt14 == 1: - # Java.g:298:23: AND type - pass - AND45=self.match(self.input, AND, self.FOLLOW_AND_in_bound5138) - if self._state.backtracking == 0: - stream_AND.add(AND45) - self._state.following.append(self.FOLLOW_type_in_bound5140) - type46 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type46.tree) + self.enterOuterAlt(localctx, 1) + self.state = 462 + self.typeParameters() + self.state = 463 + self.constructorDeclaration() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class ConstructorDeclarationContext(ParserRuleContext): - else: - break #loop14 + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.constructorBody = None # BlockContext - # AST Rewrite - # elements: type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - retval.tree = root_0 + def formalParameters(self): + return self.getTypedRuleContext(JavaParser.FormalParametersContext,0) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) - root_0 = self._adaptor.nil() - # 299:9: -> ^( EXTENDS_BOUND_LIST[$EXTENDS, \"EXTENDS_BOUND_LIST\"] ( type )+ ) - # Java.g:299:13: ^( EXTENDS_BOUND_LIST[$EXTENDS, \"EXTENDS_BOUND_LIST\"] ( type )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(EXTENDS_BOUND_LIST, EXTENDS43, "EXTENDS_BOUND_LIST"), root_1) - # Java.g:299:66: ( type )+ - if not (stream_type.hasNext()): - raise RewriteEarlyExitException() + def THROWS(self): + return self.getToken(JavaParser.THROWS, 0) - while stream_type.hasNext(): - self._adaptor.addChild(root_1, stream_type.nextTree()) + def qualifiedNameList(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameListContext,0) - stream_type.reset() + def getRuleIndex(self): + return JavaParser.RULE_constructorDeclaration - self._adaptor.addChild(root_0, root_1) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstructorDeclaration" ): + listener.enterConstructorDeclaration(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstructorDeclaration" ): + listener.exitConstructorDeclaration(self) - retval.tree = root_0 + def constructorDeclaration(self): - retval.stop = self.input.LT(-1) + localctx = JavaParser.ConstructorDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 50, self.RULE_constructorDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 465 + self.match(JavaParser.IDENTIFIER) + self.state = 466 + self.formalParameters() + self.state = 469 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.THROWS: + self.state = 467 + self.match(JavaParser.THROWS) + self.state = 468 + self.qualifiedNameList() - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + self.state = 471 + localctx.constructorBody = self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class FieldDeclarationContext(ParserRuleContext): - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 14, bound_StartIndex, success) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - pass - return retval + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) - # $ANTLR end "bound" - class enumTypeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumTypeDeclaration_return, self).__init__() + def variableDeclarators(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorsContext,0) - self.tree = None + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + def getRuleIndex(self): + return JavaParser.RULE_fieldDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFieldDeclaration" ): + listener.enterFieldDeclaration(self) - # $ANTLR start "enumTypeDeclaration" - # Java.g:302:1: enumTypeDeclaration[modifiers] : ENUM IDENT ( implementsClause )? enumBody -> ^( ENUM IDENT ( implementsClause )? enumBody ) ; - def enumTypeDeclaration(self, modifiers): + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFieldDeclaration" ): + listener.exitFieldDeclaration(self) - retval = self.enumTypeDeclaration_return() - retval.start = self.input.LT(1) - enumTypeDeclaration_StartIndex = self.input.index() - root_0 = None - ENUM47 = None - IDENT48 = None - implementsClause49 = None - enumBody50 = None + def fieldDeclaration(self): - ENUM47_tree = None - IDENT48_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_ENUM = RewriteRuleTokenStream(self._adaptor, "token ENUM") - stream_implementsClause = RewriteRuleSubtreeStream(self._adaptor, "rule implementsClause") - stream_enumBody = RewriteRuleSubtreeStream(self._adaptor, "rule enumBody") - success = False + localctx = JavaParser.FieldDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 52, self.RULE_fieldDeclaration) try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 15): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:303:5: ( ENUM IDENT ( implementsClause )? enumBody -> ^( ENUM IDENT ( implementsClause )? enumBody ) ) - # Java.g:303:9: ENUM IDENT ( implementsClause )? enumBody - pass - ENUM47=self.match(self.input, ENUM, self.FOLLOW_ENUM_in_enumTypeDeclaration5181) - if self._state.backtracking == 0: - stream_ENUM.add(ENUM47) - IDENT48=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_enumTypeDeclaration5183) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT48) - # Java.g:303:20: ( implementsClause )? - alt15 = 2 - LA15_0 = self.input.LA(1) - - if (LA15_0 == IMPLEMENTS) : - alt15 = 1 - if alt15 == 1: - # Java.g:0:0: implementsClause - pass - self._state.following.append(self.FOLLOW_implementsClause_in_enumTypeDeclaration5185) - implementsClause49 = self.implementsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_implementsClause.add(implementsClause49.tree) - - - - self._state.following.append(self.FOLLOW_enumBody_in_enumTypeDeclaration5188) - enumBody50 = self.enumBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_enumBody.add(enumBody50.tree) - - # AST Rewrite - # elements: ENUM, IDENT, enumBody, implementsClause - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + self.enterOuterAlt(localctx, 1) + self.state = 473 + self.typeType() + self.state = 474 + self.variableDeclarators() + self.state = 475 + self.match(JavaParser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class InterfaceBodyDeclarationContext(ParserRuleContext): - root_0 = self._adaptor.nil() - # 304:9: -> ^( ENUM IDENT ( implementsClause )? enumBody ) - # Java.g:304:13: ^( ENUM IDENT ( implementsClause )? enumBody ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_ENUM.nextNode(), root_1) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._adaptor.addChild(root_1, modifiers) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - # Java.g:304:39: ( implementsClause )? - if stream_implementsClause.hasNext(): - self._adaptor.addChild(root_1, stream_implementsClause.nextTree()) + def interfaceMemberDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceMemberDeclarationContext,0) - stream_implementsClause.reset(); - self._adaptor.addChild(root_1, stream_enumBody.nextTree()) + def modifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ModifierContext,i) + - self._adaptor.addChild(root_0, root_1) + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + def getRuleIndex(self): + return JavaParser.RULE_interfaceBodyDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceBodyDeclaration" ): + listener.enterInterfaceBodyDeclaration(self) - retval.tree = root_0 + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceBodyDeclaration" ): + listener.exitInterfaceBodyDeclaration(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def interfaceBodyDeclaration(self): - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + localctx = JavaParser.InterfaceBodyDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 54, self.RULE_interfaceBodyDeclaration) + try: + self.state = 485 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.CLASS, JavaParser.DEFAULT, JavaParser.DOUBLE, JavaParser.ENUM, JavaParser.FINAL, JavaParser.FLOAT, JavaParser.INT, JavaParser.INTERFACE, JavaParser.LONG, JavaParser.NATIVE, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.SHORT, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.SYNCHRONIZED, JavaParser.TRANSIENT, JavaParser.VOID, JavaParser.VOLATILE, JavaParser.LT, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 480 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,42,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 477 + self.modifier() + self.state = 482 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,42,self._ctx) + self.state = 483 + self.interfaceMemberDeclaration() + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 484 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 15, enumTypeDeclaration_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class InterfaceMemberDeclarationContext(ParserRuleContext): - # $ANTLR end "enumTypeDeclaration" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class enumBody_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumBody_return, self).__init__() + def constDeclaration(self): + return self.getTypedRuleContext(JavaParser.ConstDeclarationContext,0) - self.tree = None + def interfaceMethodDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceMethodDeclarationContext,0) + def genericInterfaceMethodDeclaration(self): + return self.getTypedRuleContext(JavaParser.GenericInterfaceMethodDeclarationContext,0) - # $ANTLR start "enumBody" - # Java.g:307:1: enumBody : LCURLY enumScopeDeclarations RCURLY -> ^( ENUM_TOP_LEVEL_SCOPE[$LCURLY, \"ENUM_TOP_LEVEL_SCOPE\"] enumScopeDeclarations ) ; - def enumBody(self, ): - retval = self.enumBody_return() - retval.start = self.input.LT(1) - enumBody_StartIndex = self.input.index() - root_0 = None + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) - LCURLY51 = None - RCURLY53 = None - enumScopeDeclarations52 = None + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeDeclarationContext,0) - LCURLY51_tree = None - RCURLY53_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_enumScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule enumScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 16): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:308:5: ( LCURLY enumScopeDeclarations RCURLY -> ^( ENUM_TOP_LEVEL_SCOPE[$LCURLY, \"ENUM_TOP_LEVEL_SCOPE\"] enumScopeDeclarations ) ) - # Java.g:308:9: LCURLY enumScopeDeclarations RCURLY - pass - LCURLY51=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_enumBody5231) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY51) - self._state.following.append(self.FOLLOW_enumScopeDeclarations_in_enumBody5233) - enumScopeDeclarations52 = self.enumScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_enumScopeDeclarations.add(enumScopeDeclarations52.tree) - RCURLY53=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_enumBody5235) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY53) - - # AST Rewrite - # elements: enumScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) - root_0 = self._adaptor.nil() - # 309:9: -> ^( ENUM_TOP_LEVEL_SCOPE[$LCURLY, \"ENUM_TOP_LEVEL_SCOPE\"] enumScopeDeclarations ) - # Java.g:309:13: ^( ENUM_TOP_LEVEL_SCOPE[$LCURLY, \"ENUM_TOP_LEVEL_SCOPE\"] enumScopeDeclarations ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ENUM_TOP_LEVEL_SCOPE, LCURLY51, "ENUM_TOP_LEVEL_SCOPE"), root_1) - self._adaptor.addChild(root_1, stream_enumScopeDeclarations.nextTree()) + def enumDeclaration(self): + return self.getTypedRuleContext(JavaParser.EnumDeclarationContext,0) - self._adaptor.addChild(root_0, root_1) + def getRuleIndex(self): + return JavaParser.RULE_interfaceMemberDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMemberDeclaration" ): + listener.enterInterfaceMemberDeclaration(self) - retval.tree = root_0 + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMemberDeclaration" ): + listener.exitInterfaceMemberDeclaration(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def interfaceMemberDeclaration(self): - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + localctx = JavaParser.InterfaceMemberDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 56, self.RULE_interfaceMemberDeclaration) + try: + self.state = 494 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,44,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 487 + self.constDeclaration() + pass + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 488 + self.interfaceMethodDeclaration() + pass - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 16, enumBody_StartIndex, success) + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 489 + self.genericInterfaceMethodDeclaration() + pass - pass - return retval + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 490 + self.interfaceDeclaration() + pass - # $ANTLR end "enumBody" + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 491 + self.annotationTypeDeclaration() + pass - class enumScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumScopeDeclarations_return, self).__init__() + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 492 + self.classDeclaration() + pass - self.tree = None + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 493 + self.enumDeclaration() + pass + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class ConstDeclarationContext(ParserRuleContext): - # $ANTLR start "enumScopeDeclarations" - # Java.g:312:1: enumScopeDeclarations : enumConstants ( COMMA )? ( enumClassScopeDeclarations )? ; - def enumScopeDeclarations(self, ): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - retval = self.enumScopeDeclarations_return() - retval.start = self.input.LT(1) - enumScopeDeclarations_StartIndex = self.input.index() - root_0 = None + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) - COMMA55 = None - enumConstants54 = None - enumClassScopeDeclarations56 = None + def constantDeclarator(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ConstantDeclaratorContext) + else: + return self.getTypedRuleContext(JavaParser.ConstantDeclaratorContext,i) - COMMA55_tree = None + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 17): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_constDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstDeclaration" ): + listener.enterConstDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstDeclaration" ): + listener.exitConstDeclaration(self) + + + + + def constDeclaration(self): + + localctx = JavaParser.ConstDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 58, self.RULE_constDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 496 + self.typeType() + self.state = 497 + self.constantDeclarator() + self.state = 502 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 498 + self.match(JavaParser.COMMA) + self.state = 499 + self.constantDeclarator() + self.state = 504 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 505 + self.match(JavaParser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # Java.g:313:5: ( enumConstants ( COMMA )? ( enumClassScopeDeclarations )? ) - # Java.g:313:9: enumConstants ( COMMA )? ( enumClassScopeDeclarations )? - pass - root_0 = self._adaptor.nil() + class ConstantDeclaratorContext(ParserRuleContext): - self._state.following.append(self.FOLLOW_enumConstants_in_enumScopeDeclarations5272) - enumConstants54 = self.enumConstants() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumConstants54.tree) - # Java.g:313:23: ( COMMA )? - alt16 = 2 - LA16_0 = self.input.LA(1) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - if (LA16_0 == COMMA) : - alt16 = 1 - if alt16 == 1: - # Java.g:313:24: COMMA - pass - COMMA55=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_enumScopeDeclarations5275) + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) + def variableInitializer(self): + return self.getTypedRuleContext(JavaParser.VariableInitializerContext,0) - # Java.g:313:33: ( enumClassScopeDeclarations )? - alt17 = 2 - LA17_0 = self.input.LA(1) + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) - if (LA17_0 == SEMI) : - alt17 = 1 - if alt17 == 1: - # Java.g:0:0: enumClassScopeDeclarations - pass - self._state.following.append(self.FOLLOW_enumClassScopeDeclarations_in_enumScopeDeclarations5280) - enumClassScopeDeclarations56 = self.enumClassScopeDeclarations() + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def getRuleIndex(self): + return JavaParser.RULE_constantDeclarator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstantDeclarator" ): + listener.enterConstantDeclarator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstantDeclarator" ): + listener.exitConstantDeclarator(self) + + + + + def constantDeclarator(self): + + localctx = JavaParser.ConstantDeclaratorContext(self, self._ctx, self.state) + self.enterRule(localctx, 60, self.RULE_constantDeclarator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 507 + self.match(JavaParser.IDENTIFIER) + self.state = 512 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 508 + self.match(JavaParser.LBRACK) + self.state = 509 + self.match(JavaParser.RBRACK) + self.state = 514 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 515 + self.match(JavaParser.ASSIGN) + self.state = 516 + self.variableInitializer() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumClassScopeDeclarations56.tree) + class InterfaceMethodDeclarationContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + def formalParameters(self): + return self.getTypedRuleContext(JavaParser.FormalParametersContext,0) + def methodBody(self): + return self.getTypedRuleContext(JavaParser.MethodBodyContext,0) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def typeTypeOrVoid(self): + return self.getTypedRuleContext(JavaParser.TypeTypeOrVoidContext,0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 17, enumScopeDeclarations_StartIndex, success) - pass - return retval + def interfaceMethodModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.InterfaceMethodModifierContext) + else: + return self.getTypedRuleContext(JavaParser.InterfaceMethodModifierContext,i) - # $ANTLR end "enumScopeDeclarations" - class enumClassScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumClassScopeDeclarations_return, self).__init__() + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) - self.tree = None + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + def THROWS(self): + return self.getToken(JavaParser.THROWS, 0) + def qualifiedNameList(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameListContext,0) - # $ANTLR start "enumClassScopeDeclarations" - # Java.g:316:1: enumClassScopeDeclarations : SEMI ( classScopeDeclarations )* -> ^( CLASS_TOP_LEVEL_SCOPE[$SEMI, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) ; - def enumClassScopeDeclarations(self, ): + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_interfaceMethodDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMethodDeclaration" ): + listener.enterInterfaceMethodDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMethodDeclaration" ): + listener.exitInterfaceMethodDeclaration(self) + + + + + def interfaceMethodDeclaration(self): + + localctx = JavaParser.InterfaceMethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 62, self.RULE_interfaceMethodDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 521 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,47,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 518 + self.interfaceMethodModifier() + self.state = 523 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,47,self._ctx) + + self.state = 534 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT, JavaParser.VOID, JavaParser.AT, JavaParser.IDENTIFIER]: + self.state = 524 + self.typeTypeOrVoid() + pass + elif token in [JavaParser.LT]: + self.state = 525 + self.typeParameters() + self.state = 529 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,48,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 526 + self.annotation() + self.state = 531 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,48,self._ctx) + + self.state = 532 + self.typeTypeOrVoid() + pass + else: + raise NoViableAltException(self) + + self.state = 536 + self.match(JavaParser.IDENTIFIER) + self.state = 537 + self.formalParameters() + self.state = 542 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 538 + self.match(JavaParser.LBRACK) + self.state = 539 + self.match(JavaParser.RBRACK) + self.state = 544 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 547 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.THROWS: + self.state = 545 + self.match(JavaParser.THROWS) + self.state = 546 + self.qualifiedNameList() + + + self.state = 549 + self.methodBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceMethodModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(JavaParser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(JavaParser.PUBLIC, 0) + + def ABSTRACT(self): + return self.getToken(JavaParser.ABSTRACT, 0) + + def DEFAULT(self): + return self.getToken(JavaParser.DEFAULT, 0) + + def STATIC(self): + return self.getToken(JavaParser.STATIC, 0) + + def STRICTFP(self): + return self.getToken(JavaParser.STRICTFP, 0) + + def getRuleIndex(self): + return JavaParser.RULE_interfaceMethodModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMethodModifier" ): + listener.enterInterfaceMethodModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMethodModifier" ): + listener.exitInterfaceMethodModifier(self) + + + + + def interfaceMethodModifier(self): + + localctx = JavaParser.InterfaceMethodModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 64, self.RULE_interfaceMethodModifier) + try: + self.state = 557 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 551 + self.annotation() + pass + elif token in [JavaParser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 552 + self.match(JavaParser.PUBLIC) + pass + elif token in [JavaParser.ABSTRACT]: + self.enterOuterAlt(localctx, 3) + self.state = 553 + self.match(JavaParser.ABSTRACT) + pass + elif token in [JavaParser.DEFAULT]: + self.enterOuterAlt(localctx, 4) + self.state = 554 + self.match(JavaParser.DEFAULT) + pass + elif token in [JavaParser.STATIC]: + self.enterOuterAlt(localctx, 5) + self.state = 555 + self.match(JavaParser.STATIC) + pass + elif token in [JavaParser.STRICTFP]: + self.enterOuterAlt(localctx, 6) + self.state = 556 + self.match(JavaParser.STRICTFP) + pass + else: + raise NoViableAltException(self) - retval = self.enumClassScopeDeclarations_return() - retval.start = self.input.LT(1) - enumClassScopeDeclarations_StartIndex = self.input.index() - root_0 = None + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - SEMI57 = None - classScopeDeclarations58 = None + class GenericInterfaceMethodDeclarationContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - SEMI57_tree = None - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_classScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule classScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 18): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:317:5: ( SEMI ( classScopeDeclarations )* -> ^( CLASS_TOP_LEVEL_SCOPE[$SEMI, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) ) - # Java.g:317:9: SEMI ( classScopeDeclarations )* - pass - SEMI57=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_enumClassScopeDeclarations5300) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI57) - # Java.g:317:14: ( classScopeDeclarations )* - while True: #loop18 - alt18 = 2 - LA18_0 = self.input.LA(1) - - if (LA18_0 == AT or LA18_0 == LCURLY or LA18_0 == LESS_THAN or LA18_0 == SEMI or LA18_0 == ABSTRACT or LA18_0 == BOOLEAN or LA18_0 == BYTE or (CHAR <= LA18_0 <= CLASS) or LA18_0 == DOUBLE or LA18_0 == ENUM or LA18_0 == FINAL or LA18_0 == FLOAT or LA18_0 == INTERFACE or (INT <= LA18_0 <= NATIVE) or (PRIVATE <= LA18_0 <= PUBLIC) or (SHORT <= LA18_0 <= STRICTFP) or LA18_0 == SYNCHRONIZED or LA18_0 == TRANSIENT or (VOID <= LA18_0 <= VOLATILE) or LA18_0 == IDENT) : - alt18 = 1 - - - if alt18 == 1: - # Java.g:0:0: classScopeDeclarations - pass - self._state.following.append(self.FOLLOW_classScopeDeclarations_in_enumClassScopeDeclarations5302) - classScopeDeclarations58 = self.classScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classScopeDeclarations.add(classScopeDeclarations58.tree) + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) - else: - break #loop18 + def interfaceMethodDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceMethodDeclarationContext,0) - # AST Rewrite - # elements: classScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - retval.tree = root_0 + def getRuleIndex(self): + return JavaParser.RULE_genericInterfaceMethodDeclaration - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterGenericInterfaceMethodDeclaration" ): + listener.enterGenericInterfaceMethodDeclaration(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitGenericInterfaceMethodDeclaration" ): + listener.exitGenericInterfaceMethodDeclaration(self) - root_0 = self._adaptor.nil() - # 318:9: -> ^( CLASS_TOP_LEVEL_SCOPE[$SEMI, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) - # Java.g:318:13: ^( CLASS_TOP_LEVEL_SCOPE[$SEMI, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_TOP_LEVEL_SCOPE, SEMI57, "CLASS_TOP_LEVEL_SCOPE"), root_1) - # Java.g:318:69: ( classScopeDeclarations )* - while stream_classScopeDeclarations.hasNext(): - self._adaptor.addChild(root_1, stream_classScopeDeclarations.nextTree()) - stream_classScopeDeclarations.reset(); + def genericInterfaceMethodDeclaration(self): - self._adaptor.addChild(root_0, root_1) + localctx = JavaParser.GenericInterfaceMethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 66, self.RULE_genericInterfaceMethodDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 559 + self.typeParameters() + self.state = 560 + self.interfaceMethodDeclaration() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class VariableDeclaratorsContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - retval.tree = root_0 + def variableDeclarator(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableDeclaratorContext) + else: + return self.getTypedRuleContext(JavaParser.VariableDeclaratorContext,i) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) - retval.stop = self.input.LT(-1) + def getRuleIndex(self): + return JavaParser.RULE_variableDeclarators - if self._state.backtracking == 0: + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclarators" ): + listener.enterVariableDeclarators(self) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclarators" ): + listener.exitVariableDeclarators(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 18, enumClassScopeDeclarations_StartIndex, success) - pass - return retval - # $ANTLR end "enumClassScopeDeclarations" + def variableDeclarators(self): - class enumConstants_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumConstants_return, self).__init__() + localctx = JavaParser.VariableDeclaratorsContext(self, self._ctx, self.state) + self.enterRule(localctx, 68, self.RULE_variableDeclarators) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 562 + self.variableDeclarator() + self.state = 567 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 563 + self.match(JavaParser.COMMA) + self.state = 564 + self.variableDeclarator() + self.state = 569 + self._errHandler.sync(self) + _la = self._input.LA(1) - self.tree = None + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class VariableDeclaratorContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) - # $ANTLR start "enumConstants" - # Java.g:321:1: enumConstants : enumConstant ( COMMA enumConstant )* ; - def enumConstants(self, ): - retval = self.enumConstants_return() - retval.start = self.input.LT(1) - enumConstants_StartIndex = self.input.index() - root_0 = None + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) - COMMA60 = None - enumConstant59 = None + def variableInitializer(self): + return self.getTypedRuleContext(JavaParser.VariableInitializerContext,0) - enumConstant61 = None + def getRuleIndex(self): + return JavaParser.RULE_variableDeclarator - COMMA60_tree = None + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclarator" ): + listener.enterVariableDeclarator(self) - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 19): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclarator" ): + listener.exitVariableDeclarator(self) - # Java.g:322:5: ( enumConstant ( COMMA enumConstant )* ) - # Java.g:322:9: enumConstant ( COMMA enumConstant )* - pass - root_0 = self._adaptor.nil() - self._state.following.append(self.FOLLOW_enumConstant_in_enumConstants5341) - enumConstant59 = self.enumConstant() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumConstant59.tree) - # Java.g:322:22: ( COMMA enumConstant )* - while True: #loop19 - alt19 = 2 - LA19_0 = self.input.LA(1) - if (LA19_0 == COMMA) : - LA19_1 = self.input.LA(2) + def variableDeclarator(self): - if (LA19_1 == AT or LA19_1 == IDENT) : - alt19 = 1 + localctx = JavaParser.VariableDeclaratorContext(self, self._ctx, self.state) + self.enterRule(localctx, 70, self.RULE_variableDeclarator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 570 + self.variableDeclaratorId() + self.state = 573 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.ASSIGN: + self.state = 571 + self.match(JavaParser.ASSIGN) + self.state = 572 + self.variableInitializer() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class VariableDeclaratorIdContext(ParserRuleContext): - if alt19 == 1: - # Java.g:322:23: COMMA enumConstant - pass - COMMA60=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_enumConstants5344) - self._state.following.append(self.FOLLOW_enumConstant_in_enumConstants5347) - enumConstant61 = self.enumConstant() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumConstant61.tree) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) - else: - break #loop19 + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + def getRuleIndex(self): + return JavaParser.RULE_variableDeclaratorId + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclaratorId" ): + listener.enterVariableDeclaratorId(self) - retval.stop = self.input.LT(-1) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclaratorId" ): + listener.exitVariableDeclaratorId(self) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 19, enumConstants_StartIndex, success) + def variableDeclaratorId(self): + + localctx = JavaParser.VariableDeclaratorIdContext(self, self._ctx, self.state) + self.enterRule(localctx, 72, self.RULE_variableDeclaratorId) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 575 + self.match(JavaParser.IDENTIFIER) + self.state = 580 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 576 + self.match(JavaParser.LBRACK) + self.state = 577 + self.match(JavaParser.RBRACK) + self.state = 582 + self._errHandler.sync(self) + _la = self._input.LA(1) - pass - return retval + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # $ANTLR end "enumConstants" + class VariableInitializerContext(ParserRuleContext): - class enumConstant_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumConstant_return, self).__init__() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self.tree = None + def arrayInitializer(self): + return self.getTypedRuleContext(JavaParser.ArrayInitializerContext,0) + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - # $ANTLR start "enumConstant" - # Java.g:325:1: enumConstant : annotationList IDENT ( arguments )? ( classBody )? ; - def enumConstant(self, ): + def getRuleIndex(self): + return JavaParser.RULE_variableInitializer - retval = self.enumConstant_return() - retval.start = self.input.LT(1) - enumConstant_StartIndex = self.input.index() - root_0 = None + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableInitializer" ): + listener.enterVariableInitializer(self) - IDENT63 = None - annotationList62 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableInitializer" ): + listener.exitVariableInitializer(self) - arguments64 = None - classBody65 = None - IDENT63_tree = None + def variableInitializer(self): - success = False + localctx = JavaParser.VariableInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 74, self.RULE_variableInitializer) try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 20): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + self.state = 585 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LBRACE]: + self.enterOuterAlt(localctx, 1) + self.state = 583 + self.arrayInitializer() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.NEW, JavaParser.SHORT, JavaParser.SUPER, JavaParser.THIS, JavaParser.VOID, JavaParser.DECIMAL_LITERAL, JavaParser.HEX_LITERAL, JavaParser.OCT_LITERAL, JavaParser.BINARY_LITERAL, JavaParser.FLOAT_LITERAL, JavaParser.HEX_FLOAT_LITERAL, JavaParser.BOOL_LITERAL, JavaParser.CHAR_LITERAL, JavaParser.STRING_LITERAL, JavaParser.NULL_LITERAL, JavaParser.LPAREN, JavaParser.LT, JavaParser.BANG, JavaParser.TILDE, JavaParser.INC, JavaParser.DEC, JavaParser.ADD, JavaParser.SUB, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 2) + self.state = 584 + self.expression(0) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # Java.g:326:5: ( annotationList IDENT ( arguments )? ( classBody )? ) - # Java.g:326:9: annotationList IDENT ( arguments )? ( classBody )? - pass - root_0 = self._adaptor.nil() + class ArrayInitializerContext(ParserRuleContext): - self._state.following.append(self.FOLLOW_annotationList_in_enumConstant5368) - annotationList62 = self.annotationList() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationList62.tree) - IDENT63=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_enumConstant5370) - if self._state.backtracking == 0: + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) - IDENT63_tree = self._adaptor.createWithPayload(IDENT63) - root_0 = self._adaptor.becomeRoot(IDENT63_tree, root_0) + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def variableInitializer(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableInitializerContext) + else: + return self.getTypedRuleContext(JavaParser.VariableInitializerContext,i) - # Java.g:326:31: ( arguments )? - alt20 = 2 - LA20_0 = self.input.LA(1) - if (LA20_0 == LPAREN) : - alt20 = 1 - if alt20 == 1: - # Java.g:0:0: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_enumConstant5373) - arguments64 = self.arguments() + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_arrayInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayInitializer" ): + listener.enterArrayInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayInitializer" ): + listener.exitArrayInitializer(self) + + + + + def arrayInitializer(self): + + localctx = JavaParser.ArrayInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 76, self.RULE_arrayInitializer) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 587 + self.match(JavaParser.LBRACE) + self.state = 599 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 588 + self.variableInitializer() + self.state = 593 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,57,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 589 + self.match(JavaParser.COMMA) + self.state = 590 + self.variableInitializer() + self.state = 595 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,57,self._ctx) + + self.state = 597 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COMMA: + self.state = 596 + self.match(JavaParser.COMMA) + + + + + self.state = 601 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arguments64.tree) + class ClassOrInterfaceTypeContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) - # Java.g:326:42: ( classBody )? - alt21 = 2 - LA21_0 = self.input.LA(1) + def typeArguments(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeArgumentsContext) + else: + return self.getTypedRuleContext(JavaParser.TypeArgumentsContext,i) - if (LA21_0 == LCURLY) : - alt21 = 1 - if alt21 == 1: - # Java.g:0:0: classBody - pass - self._state.following.append(self.FOLLOW_classBody_in_enumConstant5376) - classBody65 = self.classBody() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, classBody65.tree) + def DOT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.DOT) + else: + return self.getToken(JavaParser.DOT, i) + + def getRuleIndex(self): + return JavaParser.RULE_classOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassOrInterfaceType" ): + listener.enterClassOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassOrInterfaceType" ): + listener.exitClassOrInterfaceType(self) + + + + + def classOrInterfaceType(self): + + localctx = JavaParser.ClassOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 78, self.RULE_classOrInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 603 + self.match(JavaParser.IDENTIFIER) + self.state = 605 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,60,self._ctx) + if la_ == 1: + self.state = 604 + self.typeArguments() + + + self.state = 614 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,62,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 607 + self.match(JavaParser.DOT) + self.state = 608 + self.match(JavaParser.IDENTIFIER) + self.state = 610 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,61,self._ctx) + if la_ == 1: + self.state = 609 + self.typeArguments() + + + self.state = 616 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,62,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class TypeArgumentContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + def QUESTION(self): + return self.getToken(JavaParser.QUESTION, 0) - retval.stop = self.input.LT(-1) + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def EXTENDS(self): + return self.getToken(JavaParser.EXTENDS, 0) + + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) + + def getRuleIndex(self): + return JavaParser.RULE_typeArgument + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArgument" ): + listener.enterTypeArgument(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArgument" ): + listener.exitTypeArgument(self) + + + + + def typeArgument(self): + + localctx = JavaParser.TypeArgumentContext(self, self._ctx, self.state) + self.enterRule(localctx, 80, self.RULE_typeArgument) + self._la = 0 # Token type + try: + self.state = 629 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,65,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 617 + self.typeType() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 621 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 618 + self.annotation() + self.state = 623 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 624 + self.match(JavaParser.QUESTION) + self.state = 627 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.EXTENDS or _la==JavaParser.SUPER: + self.state = 625 + _la = self._input.LA(1) + if not(_la==JavaParser.EXTENDS or _la==JavaParser.SUPER): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 626 + self.typeType() - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + pass - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 20, enumConstant_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class QualifiedNameListContext(ParserRuleContext): - # $ANTLR end "enumConstant" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class interfaceTypeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceTypeDeclaration_return, self).__init__() - - self.tree = None + def qualifiedName(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.QualifiedNameContext) + else: + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,i) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + def getRuleIndex(self): + return JavaParser.RULE_qualifiedNameList - # $ANTLR start "interfaceTypeDeclaration" - # Java.g:329:1: interfaceTypeDeclaration[modifiers] : INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody -> ^( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody ) ; - def interfaceTypeDeclaration(self, modifiers): + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterQualifiedNameList" ): + listener.enterQualifiedNameList(self) - retval = self.interfaceTypeDeclaration_return() - retval.start = self.input.LT(1) - interfaceTypeDeclaration_StartIndex = self.input.index() - root_0 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitQualifiedNameList" ): + listener.exitQualifiedNameList(self) - INTERFACE66 = None - IDENT67 = None - genericTypeParameterList68 = None - interfaceExtendsClause69 = None - interfaceBody70 = None + def qualifiedNameList(self): - INTERFACE66_tree = None - IDENT67_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_INTERFACE = RewriteRuleTokenStream(self._adaptor, "token INTERFACE") - stream_genericTypeParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameterList") - stream_interfaceBody = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceBody") - stream_interfaceExtendsClause = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceExtendsClause") - success = False + localctx = JavaParser.QualifiedNameListContext(self, self._ctx, self.state) + self.enterRule(localctx, 82, self.RULE_qualifiedNameList) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 21): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:330:5: ( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody -> ^( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody ) ) - # Java.g:330:9: INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody - pass - INTERFACE66=self.match(self.input, INTERFACE, self.FOLLOW_INTERFACE_in_interfaceTypeDeclaration5397) - if self._state.backtracking == 0: - stream_INTERFACE.add(INTERFACE66) - IDENT67=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_interfaceTypeDeclaration5399) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT67) - # Java.g:330:25: ( genericTypeParameterList )? - alt22 = 2 - LA22_0 = self.input.LA(1) - - if (LA22_0 == LESS_THAN) : - alt22 = 1 - if alt22 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_interfaceTypeDeclaration5401) - genericTypeParameterList68 = self.genericTypeParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameterList.add(genericTypeParameterList68.tree) - - - - # Java.g:330:51: ( interfaceExtendsClause )? - alt23 = 2 - LA23_0 = self.input.LA(1) - - if (LA23_0 == EXTENDS) : - alt23 = 1 - if alt23 == 1: - # Java.g:0:0: interfaceExtendsClause - pass - self._state.following.append(self.FOLLOW_interfaceExtendsClause_in_interfaceTypeDeclaration5404) - interfaceExtendsClause69 = self.interfaceExtendsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceExtendsClause.add(interfaceExtendsClause69.tree) - - - - self._state.following.append(self.FOLLOW_interfaceBody_in_interfaceTypeDeclaration5407) - interfaceBody70 = self.interfaceBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceBody.add(interfaceBody70.tree) - - # AST Rewrite - # elements: INTERFACE, genericTypeParameterList, IDENT, interfaceExtendsClause, interfaceBody - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + self.enterOuterAlt(localctx, 1) + self.state = 631 + self.qualifiedName() + self.state = 636 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 632 + self.match(JavaParser.COMMA) + self.state = 633 + self.qualifiedName() + self.state = 638 + self._errHandler.sync(self) + _la = self._input.LA(1) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - root_0 = self._adaptor.nil() - # 331:9: -> ^( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody ) - # Java.g:331:13: ^( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_INTERFACE.nextNode(), root_1) - - self._adaptor.addChild(root_1, modifiers) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - # Java.g:331:44: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) + class FormalParametersContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - stream_genericTypeParameterList.reset(); - # Java.g:331:70: ( interfaceExtendsClause )? - if stream_interfaceExtendsClause.hasNext(): - self._adaptor.addChild(root_1, stream_interfaceExtendsClause.nextTree()) + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) - stream_interfaceExtendsClause.reset(); - self._adaptor.addChild(root_1, stream_interfaceBody.nextTree()) + def formalParameterList(self): + return self.getTypedRuleContext(JavaParser.FormalParameterListContext,0) - self._adaptor.addChild(root_0, root_1) + def getRuleIndex(self): + return JavaParser.RULE_formalParameters + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameters" ): + listener.enterFormalParameters(self) - retval.tree = root_0 + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameters" ): + listener.exitFormalParameters(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def formalParameters(self): - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + localctx = JavaParser.FormalParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 84, self.RULE_formalParameters) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 639 + self.match(JavaParser.LPAREN) + self.state = 641 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.SHORT))) != 0) or _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 640 + self.formalParameterList() - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + self.state = 643 + self.match(JavaParser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 21, interfaceTypeDeclaration_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class FormalParameterListContext(ParserRuleContext): - # $ANTLR end "interfaceTypeDeclaration" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def formalParameter(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.FormalParameterContext) + else: + return self.getTypedRuleContext(JavaParser.FormalParameterContext,i) - class typeList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeList_return, self).__init__() - self.tree = None + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + def lastFormalParameter(self): + return self.getTypedRuleContext(JavaParser.LastFormalParameterContext,0) + def getRuleIndex(self): + return JavaParser.RULE_formalParameterList - # $ANTLR start "typeList" - # Java.g:334:1: typeList : type ( COMMA type )* ; - def typeList(self, ): + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameterList" ): + listener.enterFormalParameterList(self) - retval = self.typeList_return() - retval.start = self.input.LT(1) - typeList_StartIndex = self.input.index() - root_0 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameterList" ): + listener.exitFormalParameterList(self) - COMMA72 = None - type71 = None - type73 = None - COMMA72_tree = None + def formalParameterList(self): - success = False + localctx = JavaParser.FormalParameterListContext(self, self._ctx, self.state) + self.enterRule(localctx, 86, self.RULE_formalParameterList) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 22): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + self.state = 658 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,70,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 645 + self.formalParameter() + self.state = 650 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,68,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 646 + self.match(JavaParser.COMMA) + self.state = 647 + self.formalParameter() + self.state = 652 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,68,self._ctx) - # Java.g:335:5: ( type ( COMMA type )* ) - # Java.g:335:9: type ( COMMA type )* - pass - root_0 = self._adaptor.nil() + self.state = 655 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COMMA: + self.state = 653 + self.match(JavaParser.COMMA) + self.state = 654 + self.lastFormalParameter() - self._state.following.append(self.FOLLOW_type_in_typeList5453) - type71 = self.type() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type71.tree) - # Java.g:335:14: ( COMMA type )* - while True: #loop24 - alt24 = 2 - LA24_0 = self.input.LA(1) + pass - if (LA24_0 == COMMA) : - alt24 = 1 + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 657 + self.lastFormalParameter() + pass - if alt24 == 1: - # Java.g:335:15: COMMA type - pass - COMMA72=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_typeList5456) - self._state.following.append(self.FOLLOW_type_in_typeList5459) - type73 = self.type() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type73.tree) + class FormalParameterContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - else: - break #loop24 + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def getRuleIndex(self): + return JavaParser.RULE_formalParameter - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 22, typeList_StartIndex, success) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameter" ): + listener.enterFormalParameter(self) - pass - return retval + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameter" ): + listener.exitFormalParameter(self) - # $ANTLR end "typeList" - class classBody_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classBody_return, self).__init__() - self.tree = None + def formalParameter(self): + localctx = JavaParser.FormalParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 88, self.RULE_formalParameter) + try: + self.enterOuterAlt(localctx, 1) + self.state = 663 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,71,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 660 + self.variableModifier() + self.state = 665 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,71,self._ctx) + self.state = 666 + self.typeType() + self.state = 667 + self.variableDeclaratorId() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # $ANTLR start "classBody" - # Java.g:338:1: classBody : LCURLY ( classScopeDeclarations )* RCURLY -> ^( CLASS_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) ; - def classBody(self, ): + class LastFormalParameterContext(ParserRuleContext): - retval = self.classBody_return() - retval.start = self.input.LT(1) - classBody_StartIndex = self.input.index() - root_0 = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - LCURLY74 = None - RCURLY76 = None - classScopeDeclarations75 = None + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) - LCURLY74_tree = None - RCURLY76_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_classScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule classScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 23): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:339:5: ( LCURLY ( classScopeDeclarations )* RCURLY -> ^( CLASS_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) ) - # Java.g:339:9: LCURLY ( classScopeDeclarations )* RCURLY - pass - LCURLY74=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_classBody5480) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY74) - # Java.g:339:16: ( classScopeDeclarations )* - while True: #loop25 - alt25 = 2 - LA25_0 = self.input.LA(1) - - if (LA25_0 == AT or LA25_0 == LCURLY or LA25_0 == LESS_THAN or LA25_0 == SEMI or LA25_0 == ABSTRACT or LA25_0 == BOOLEAN or LA25_0 == BYTE or (CHAR <= LA25_0 <= CLASS) or LA25_0 == DOUBLE or LA25_0 == ENUM or LA25_0 == FINAL or LA25_0 == FLOAT or LA25_0 == INTERFACE or (INT <= LA25_0 <= NATIVE) or (PRIVATE <= LA25_0 <= PUBLIC) or (SHORT <= LA25_0 <= STRICTFP) or LA25_0 == SYNCHRONIZED or LA25_0 == TRANSIENT or (VOID <= LA25_0 <= VOLATILE) or LA25_0 == IDENT) : - alt25 = 1 - - - if alt25 == 1: - # Java.g:0:0: classScopeDeclarations - pass - self._state.following.append(self.FOLLOW_classScopeDeclarations_in_classBody5482) - classScopeDeclarations75 = self.classScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classScopeDeclarations.add(classScopeDeclarations75.tree) + def ELLIPSIS(self): + return self.getToken(JavaParser.ELLIPSIS, 0) + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) - else: - break #loop25 - RCURLY76=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_classBody5485) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY76) - - # AST Rewrite - # elements: classScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) - root_0 = self._adaptor.nil() - # 340:9: -> ^( CLASS_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) - # Java.g:340:13: ^( CLASS_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_TOP_LEVEL_SCOPE, LCURLY74, "CLASS_TOP_LEVEL_SCOPE"), root_1) + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_lastFormalParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLastFormalParameter" ): + listener.enterLastFormalParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLastFormalParameter" ): + listener.exitLastFormalParameter(self) + + + + + def lastFormalParameter(self): + + localctx = JavaParser.LastFormalParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 90, self.RULE_lastFormalParameter) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 672 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,72,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 669 + self.variableModifier() + self.state = 674 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,72,self._ctx) + + self.state = 675 + self.typeType() + self.state = 679 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 676 + self.annotation() + self.state = 681 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 682 + self.match(JavaParser.ELLIPSIS) + self.state = 683 + self.variableDeclaratorId() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # Java.g:340:71: ( classScopeDeclarations )* - while stream_classScopeDeclarations.hasNext(): - self._adaptor.addChild(root_1, stream_classScopeDeclarations.nextTree()) + class QualifiedNameContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - stream_classScopeDeclarations.reset(); + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) - self._adaptor.addChild(root_0, root_1) + def DOT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.DOT) + else: + return self.getToken(JavaParser.DOT, i) + def getRuleIndex(self): + return JavaParser.RULE_qualifiedName + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterQualifiedName" ): + listener.enterQualifiedName(self) - retval.tree = root_0 + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitQualifiedName" ): + listener.exitQualifiedName(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def qualifiedName(self): - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + localctx = JavaParser.QualifiedNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 92, self.RULE_qualifiedName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 685 + self.match(JavaParser.IDENTIFIER) + self.state = 690 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,74,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 686 + self.match(JavaParser.DOT) + self.state = 687 + self.match(JavaParser.IDENTIFIER) + self.state = 692 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,74,self._ctx) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LiteralContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def integerLiteral(self): + return self.getTypedRuleContext(JavaParser.IntegerLiteralContext,0) + + + def floatLiteral(self): + return self.getTypedRuleContext(JavaParser.FloatLiteralContext,0) + + + def CHAR_LITERAL(self): + return self.getToken(JavaParser.CHAR_LITERAL, 0) + + def STRING_LITERAL(self): + return self.getToken(JavaParser.STRING_LITERAL, 0) + + def BOOL_LITERAL(self): + return self.getToken(JavaParser.BOOL_LITERAL, 0) + + def NULL_LITERAL(self): + return self.getToken(JavaParser.NULL_LITERAL, 0) + + def getRuleIndex(self): + return JavaParser.RULE_literal + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLiteral" ): + listener.enterLiteral(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLiteral" ): + listener.exitLiteral(self) + + + + + def literal(self): + + localctx = JavaParser.LiteralContext(self, self._ctx, self.state) + self.enterRule(localctx, 94, self.RULE_literal) + try: + self.state = 699 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.DECIMAL_LITERAL, JavaParser.HEX_LITERAL, JavaParser.OCT_LITERAL, JavaParser.BINARY_LITERAL]: + self.enterOuterAlt(localctx, 1) + self.state = 693 + self.integerLiteral() + pass + elif token in [JavaParser.FLOAT_LITERAL, JavaParser.HEX_FLOAT_LITERAL]: + self.enterOuterAlt(localctx, 2) + self.state = 694 + self.floatLiteral() + pass + elif token in [JavaParser.CHAR_LITERAL]: + self.enterOuterAlt(localctx, 3) + self.state = 695 + self.match(JavaParser.CHAR_LITERAL) + pass + elif token in [JavaParser.STRING_LITERAL]: + self.enterOuterAlt(localctx, 4) + self.state = 696 + self.match(JavaParser.STRING_LITERAL) + pass + elif token in [JavaParser.BOOL_LITERAL]: + self.enterOuterAlt(localctx, 5) + self.state = 697 + self.match(JavaParser.BOOL_LITERAL) + pass + elif token in [JavaParser.NULL_LITERAL]: + self.enterOuterAlt(localctx, 6) + self.state = 698 + self.match(JavaParser.NULL_LITERAL) + pass + else: + raise NoViableAltException(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 23, classBody_StartIndex, success) + self.exitRule() + return localctx + + class IntegerLiteralContext(ParserRuleContext): - pass - return retval + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - # $ANTLR end "classBody" + def DECIMAL_LITERAL(self): + return self.getToken(JavaParser.DECIMAL_LITERAL, 0) - class interfaceBody_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceBody_return, self).__init__() + def HEX_LITERAL(self): + return self.getToken(JavaParser.HEX_LITERAL, 0) - self.tree = None + def OCT_LITERAL(self): + return self.getToken(JavaParser.OCT_LITERAL, 0) + def BINARY_LITERAL(self): + return self.getToken(JavaParser.BINARY_LITERAL, 0) + def getRuleIndex(self): + return JavaParser.RULE_integerLiteral + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterIntegerLiteral" ): + listener.enterIntegerLiteral(self) - # $ANTLR start "interfaceBody" - # Java.g:343:1: interfaceBody : LCURLY ( interfaceScopeDeclarations )* RCURLY -> ^( INTERFACE_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( interfaceScopeDeclarations )* ) ; - def interfaceBody(self, ): + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitIntegerLiteral" ): + listener.exitIntegerLiteral(self) - retval = self.interfaceBody_return() - retval.start = self.input.LT(1) - interfaceBody_StartIndex = self.input.index() - root_0 = None - LCURLY77 = None - RCURLY79 = None - interfaceScopeDeclarations78 = None - LCURLY77_tree = None - RCURLY79_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_interfaceScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceScopeDeclarations") - success = False + def integerLiteral(self): + + localctx = JavaParser.IntegerLiteralContext(self, self._ctx, self.state) + self.enterRule(localctx, 96, self.RULE_integerLiteral) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 24): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:344:5: ( LCURLY ( interfaceScopeDeclarations )* RCURLY -> ^( INTERFACE_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( interfaceScopeDeclarations )* ) ) - # Java.g:344:9: LCURLY ( interfaceScopeDeclarations )* RCURLY - pass - LCURLY77=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_interfaceBody5523) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY77) - # Java.g:344:16: ( interfaceScopeDeclarations )* - while True: #loop26 - alt26 = 2 - LA26_0 = self.input.LA(1) - - if (LA26_0 == AT or LA26_0 == LESS_THAN or LA26_0 == SEMI or LA26_0 == ABSTRACT or LA26_0 == BOOLEAN or LA26_0 == BYTE or (CHAR <= LA26_0 <= CLASS) or LA26_0 == DOUBLE or LA26_0 == ENUM or LA26_0 == FINAL or LA26_0 == FLOAT or LA26_0 == INTERFACE or (INT <= LA26_0 <= NATIVE) or (PRIVATE <= LA26_0 <= PUBLIC) or (SHORT <= LA26_0 <= STRICTFP) or LA26_0 == SYNCHRONIZED or LA26_0 == TRANSIENT or (VOID <= LA26_0 <= VOLATILE) or LA26_0 == IDENT) : - alt26 = 1 - - - if alt26 == 1: - # Java.g:0:0: interfaceScopeDeclarations - pass - self._state.following.append(self.FOLLOW_interfaceScopeDeclarations_in_interfaceBody5525) - interfaceScopeDeclarations78 = self.interfaceScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceScopeDeclarations.add(interfaceScopeDeclarations78.tree) + self.enterOuterAlt(localctx, 1) + self.state = 701 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class FloatLiteralContext(ParserRuleContext): - else: - break #loop26 - RCURLY79=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_interfaceBody5528) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY79) - - # AST Rewrite - # elements: interfaceScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def FLOAT_LITERAL(self): + return self.getToken(JavaParser.FLOAT_LITERAL, 0) - root_0 = self._adaptor.nil() - # 345:9: -> ^( INTERFACE_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( interfaceScopeDeclarations )* ) - # Java.g:345:13: ^( INTERFACE_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( interfaceScopeDeclarations )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(INTERFACE_TOP_LEVEL_SCOPE, LCURLY77, "CLASS_TOP_LEVEL_SCOPE"), root_1) + def HEX_FLOAT_LITERAL(self): + return self.getToken(JavaParser.HEX_FLOAT_LITERAL, 0) - # Java.g:345:75: ( interfaceScopeDeclarations )* - while stream_interfaceScopeDeclarations.hasNext(): - self._adaptor.addChild(root_1, stream_interfaceScopeDeclarations.nextTree()) + def getRuleIndex(self): + return JavaParser.RULE_floatLiteral + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFloatLiteral" ): + listener.enterFloatLiteral(self) - stream_interfaceScopeDeclarations.reset(); + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFloatLiteral" ): + listener.exitFloatLiteral(self) - self._adaptor.addChild(root_0, root_1) - retval.tree = root_0 + def floatLiteral(self): + localctx = JavaParser.FloatLiteralContext(self, self._ctx, self.state) + self.enterRule(localctx, 98, self.RULE_floatLiteral) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 703 + _la = self._input.LA(1) + if not(_la==JavaParser.FLOAT_LITERAL or _la==JavaParser.HEX_FLOAT_LITERAL): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class AltAnnotationQualifiedNameContext(ParserRuleContext): - retval.stop = self.input.LT(-1) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - if self._state.backtracking == 0: + def AT(self): + return self.getToken(JavaParser.AT, 0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) + def DOT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.DOT) + else: + return self.getToken(JavaParser.DOT, i) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 24, interfaceBody_StartIndex, success) + def getRuleIndex(self): + return JavaParser.RULE_altAnnotationQualifiedName - pass - return retval + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAltAnnotationQualifiedName" ): + listener.enterAltAnnotationQualifiedName(self) - # $ANTLR end "interfaceBody" + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAltAnnotationQualifiedName" ): + listener.exitAltAnnotationQualifiedName(self) - class classScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classScopeDeclarations_return, self).__init__() - self.tree = None + def altAnnotationQualifiedName(self): + localctx = JavaParser.AltAnnotationQualifiedNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 100, self.RULE_altAnnotationQualifiedName) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 709 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.IDENTIFIER: + self.state = 705 + self.match(JavaParser.IDENTIFIER) + self.state = 706 + self.match(JavaParser.DOT) + self.state = 711 + self._errHandler.sync(self) + _la = self._input.LA(1) - # $ANTLR start "classScopeDeclarations" - # Java.g:348:1: classScopeDeclarations : ( block -> ^( CLASS_INSTANCE_INITIALIZER block ) | STATIC block -> ^( CLASS_STATIC_INITIALIZER[$STATIC, \"CLASS_STATIC_INITIALIZER\"] block ) | modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) | type classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) | typeDeclaration | SEMI ); - def classScopeDeclarations(self, ): + self.state = 712 + self.match(JavaParser.AT) + self.state = 713 + self.match(JavaParser.IDENTIFIER) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - retval = self.classScopeDeclarations_return() - retval.start = self.input.LT(1) - classScopeDeclarations_StartIndex = self.input.index() - root_0 = None + class AnnotationContext(ParserRuleContext): - ident = None - STATIC81 = None - IDENT86 = None - SEMI91 = None - VOID92 = None - IDENT93 = None - SEMI97 = None - SEMI103 = None - SEMI105 = None - block80 = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - block82 = None + def AT(self): + return self.getToken(JavaParser.AT, 0) - modifierList83 = None + def qualifiedName(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,0) - genericTypeParameterList84 = None - type85 = None + def altAnnotationQualifiedName(self): + return self.getTypedRuleContext(JavaParser.AltAnnotationQualifiedNameContext,0) - formalParameterList87 = None - arrayDeclaratorList88 = None + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) - throwsClause89 = None + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) - block90 = None + def elementValuePairs(self): + return self.getTypedRuleContext(JavaParser.ElementValuePairsContext,0) - formalParameterList94 = None - throwsClause95 = None + def elementValue(self): + return self.getTypedRuleContext(JavaParser.ElementValueContext,0) - block96 = None - formalParameterList98 = None + def getRuleIndex(self): + return JavaParser.RULE_annotation - throwsClause99 = None + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotation" ): + listener.enterAnnotation(self) - block100 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotation" ): + listener.exitAnnotation(self) - type101 = None - classFieldDeclaratorList102 = None - typeDeclaration104 = None + def annotation(self): - ident_tree = None - STATIC81_tree = None - IDENT86_tree = None - SEMI91_tree = None - VOID92_tree = None - IDENT93_tree = None - SEMI97_tree = None - SEMI103_tree = None - SEMI105_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_VOID = RewriteRuleTokenStream(self._adaptor, "token VOID") - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_STATIC = RewriteRuleTokenStream(self._adaptor, "token STATIC") - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_throwsClause = RewriteRuleSubtreeStream(self._adaptor, "rule throwsClause") - stream_modifierList = RewriteRuleSubtreeStream(self._adaptor, "rule modifierList") - stream_genericTypeParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameterList") - stream_block = RewriteRuleSubtreeStream(self._adaptor, "rule block") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_classFieldDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule classFieldDeclaratorList") - stream_formalParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule formalParameterList") - success = False + localctx = JavaParser.AnnotationContext(self, self._ctx, self.state) + self.enterRule(localctx, 102, self.RULE_annotation) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 25): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:349:5: ( block -> ^( CLASS_INSTANCE_INITIALIZER block ) | STATIC block -> ^( CLASS_STATIC_INITIALIZER[$STATIC, \"CLASS_STATIC_INITIALIZER\"] block ) | modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) | type classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) | typeDeclaration | SEMI ) - alt36 = 5 - alt36 = self.dfa36.predict(self.input) - if alt36 == 1: - # Java.g:349:9: block - pass - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5566) - block80 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block80.tree) - - # AST Rewrite - # elements: block - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + self.enterOuterAlt(localctx, 1) + self.state = 718 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,77,self._ctx) + if la_ == 1: + self.state = 715 + self.match(JavaParser.AT) + self.state = 716 + self.qualifiedName() + pass + elif la_ == 2: + self.state = 717 + self.altAnnotationQualifiedName() + pass - root_0 = self._adaptor.nil() - # 349:25: -> ^( CLASS_INSTANCE_INITIALIZER block ) - # Java.g:349:29: ^( CLASS_INSTANCE_INITIALIZER block ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(CLASS_INSTANCE_INITIALIZER, "CLASS_INSTANCE_INITIALIZER"), root_1) - self._adaptor.addChild(root_1, stream_block.nextTree()) + self.state = 726 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LPAREN: + self.state = 720 + self.match(JavaParser.LPAREN) + self.state = 723 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,78,self._ctx) + if la_ == 1: + self.state = 721 + self.elementValuePairs() - self._adaptor.addChild(root_0, root_1) + elif la_ == 2: + self.state = 722 + self.elementValue() + self.state = 725 + self.match(JavaParser.RPAREN) - retval.tree = root_0 + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - elif alt36 == 2: - # Java.g:350:9: STATIC block - pass - STATIC81=self.match(self.input, STATIC, self.FOLLOW_STATIC_in_classScopeDeclarations5595) - if self._state.backtracking == 0: - stream_STATIC.add(STATIC81) - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5597) - block82 = self.block() + class ElementValuePairsContext(ParserRuleContext): - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block82.tree) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - # AST Rewrite - # elements: block - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def elementValuePair(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ElementValuePairContext) + else: + return self.getTypedRuleContext(JavaParser.ElementValuePairContext,i) - retval.tree = root_0 - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + def getRuleIndex(self): + return JavaParser.RULE_elementValuePairs - root_0 = self._adaptor.nil() - # 350:25: -> ^( CLASS_STATIC_INITIALIZER[$STATIC, \"CLASS_STATIC_INITIALIZER\"] block ) - # Java.g:350:29: ^( CLASS_STATIC_INITIALIZER[$STATIC, \"CLASS_STATIC_INITIALIZER\"] block ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_STATIC_INITIALIZER, STATIC81, "CLASS_STATIC_INITIALIZER"), root_1) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValuePairs" ): + listener.enterElementValuePairs(self) - self._adaptor.addChild(root_1, stream_block.nextTree()) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValuePairs" ): + listener.exitElementValuePairs(self) - self._adaptor.addChild(root_0, root_1) - retval.tree = root_0 + def elementValuePairs(self): + localctx = JavaParser.ElementValuePairsContext(self, self._ctx, self.state) + self.enterRule(localctx, 104, self.RULE_elementValuePairs) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 728 + self.elementValuePair() + self.state = 733 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 729 + self.match(JavaParser.COMMA) + self.state = 730 + self.elementValuePair() + self.state = 735 + self._errHandler.sync(self) + _la = self._input.LA(1) - elif alt36 == 3: - # Java.g:351:9: modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) | type classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_classScopeDeclarations5620) - modifierList83 = self.modifierList() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - self._state.following.pop() - if self._state.backtracking == 0: - stream_modifierList.add(modifierList83.tree) - # Java.g:352:9: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) | type classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) - alt35 = 2 - LA35 = self.input.LA(1) - if LA35 == LESS_THAN or LA35 == VOID: - alt35 = 1 - elif LA35 == BOOLEAN or LA35 == BYTE or LA35 == CHAR or LA35 == DOUBLE or LA35 == FLOAT or LA35 == INT or LA35 == LONG or LA35 == SHORT: - LA35_2 = self.input.LA(2) + class ElementValuePairContext(ParserRuleContext): - if (self.synpred42_Java()) : - alt35 = 1 - elif (True) : - alt35 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - nvae = NoViableAltException("", 35, 2, self.input) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - raise nvae + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) - elif LA35 == IDENT: - LA35_3 = self.input.LA(2) + def elementValue(self): + return self.getTypedRuleContext(JavaParser.ElementValueContext,0) - if (self.synpred42_Java()) : - alt35 = 1 - elif (True) : - alt35 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - nvae = NoViableAltException("", 35, 3, self.input) + def getRuleIndex(self): + return JavaParser.RULE_elementValuePair - raise nvae + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValuePair" ): + listener.enterElementValuePair(self) - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValuePair" ): + listener.exitElementValuePair(self) - nvae = NoViableAltException("", 35, 0, self.input) - raise nvae - if alt35 == 1: - # Java.g:352:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) - pass - # Java.g:352:13: ( genericTypeParameterList )? - alt27 = 2 - LA27_0 = self.input.LA(1) - if (LA27_0 == LESS_THAN) : - alt27 = 1 - if alt27 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_classScopeDeclarations5634) - genericTypeParameterList84 = self.genericTypeParameterList() + def elementValuePair(self): - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameterList.add(genericTypeParameterList84.tree) + localctx = JavaParser.ElementValuePairContext(self, self._ctx, self.state) + self.enterRule(localctx, 106, self.RULE_elementValuePair) + try: + self.enterOuterAlt(localctx, 1) + self.state = 736 + self.match(JavaParser.IDENTIFIER) + self.state = 737 + self.match(JavaParser.ASSIGN) + self.state = 738 + self.elementValue() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class ElementValueContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - # Java.g:353:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) - alt34 = 3 - LA34 = self.input.LA(1) - if LA34 == BOOLEAN or LA34 == BYTE or LA34 == CHAR or LA34 == DOUBLE or LA34 == FLOAT or LA34 == INT or LA34 == LONG or LA34 == SHORT: - alt34 = 1 - elif LA34 == IDENT: - LA34_2 = self.input.LA(2) + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - if (LA34_2 == LPAREN) : - alt34 = 3 - elif (LA34_2 == DOT or LA34_2 == LBRACK or LA34_2 == LESS_THAN or LA34_2 == IDENT) : - alt34 = 1 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - nvae = NoViableAltException("", 34, 2, self.input) + def annotation(self): + return self.getTypedRuleContext(JavaParser.AnnotationContext,0) - raise nvae - elif LA34 == VOID: - alt34 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + def elementValueArrayInitializer(self): + return self.getTypedRuleContext(JavaParser.ElementValueArrayInitializerContext,0) - nvae = NoViableAltException("", 34, 0, self.input) - raise nvae + def getRuleIndex(self): + return JavaParser.RULE_elementValue - if alt34 == 1: - # Java.g:353:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) - pass - self._state.following.append(self.FOLLOW_type_in_classScopeDeclarations5653) - type85 = self.type() + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValue" ): + listener.enterElementValue(self) - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type85.tree) - IDENT86=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_classScopeDeclarations5655) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT86) - self._state.following.append(self.FOLLOW_formalParameterList_in_classScopeDeclarations5657) - formalParameterList87 = self.formalParameterList() + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValue" ): + listener.exitElementValue(self) - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList87.tree) - # Java.g:353:48: ( arrayDeclaratorList )? - alt28 = 2 - LA28_0 = self.input.LA(1) - if (LA28_0 == LBRACK) : - alt28 = 1 - if alt28 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_classScopeDeclarations5659) - arrayDeclaratorList88 = self.arrayDeclaratorList() - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList88.tree) + def elementValue(self): + localctx = JavaParser.ElementValueContext(self, self._ctx, self.state) + self.enterRule(localctx, 108, self.RULE_elementValue) + try: + self.state = 743 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,81,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 740 + self.expression(0) + pass - # Java.g:353:69: ( throwsClause )? - alt29 = 2 - LA29_0 = self.input.LA(1) + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 741 + self.annotation() + pass - if (LA29_0 == THROWS) : - alt29 = 1 - if alt29 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_classScopeDeclarations5662) - throwsClause89 = self.throwsClause() + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 742 + self.elementValueArrayInitializer() + pass - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause89.tree) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class ElementValueArrayInitializerContext(ParserRuleContext): - # Java.g:353:83: ( block | SEMI ) - alt30 = 2 - LA30_0 = self.input.LA(1) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - if (LA30_0 == LCURLY) : - alt30 = 1 - elif (LA30_0 == SEMI) : - alt30 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) - nvae = NoViableAltException("", 30, 0, self.input) + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) - raise nvae + def elementValue(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ElementValueContext) + else: + return self.getTypedRuleContext(JavaParser.ElementValueContext,i) - if alt30 == 1: - # Java.g:353:84: block - pass - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5666) - block90 = self.block() - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block90.tree) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_elementValueArrayInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValueArrayInitializer" ): + listener.enterElementValueArrayInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValueArrayInitializer" ): + listener.exitElementValueArrayInitializer(self) + + + + + def elementValueArrayInitializer(self): + + localctx = JavaParser.ElementValueArrayInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 110, self.RULE_elementValueArrayInitializer) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 745 + self.match(JavaParser.LBRACE) + self.state = 754 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 746 + self.elementValue() + self.state = 751 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,82,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 747 + self.match(JavaParser.COMMA) + self.state = 748 + self.elementValue() + self.state = 753 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,82,self._ctx) + + + + self.state = 757 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COMMA: + self.state = 756 + self.match(JavaParser.COMMA) + + + self.state = 759 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class AnnotationTypeDeclarationContext(ParserRuleContext): - elif alt30 == 2: - # Java.g:353:92: SEMI - pass - SEMI91=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_classScopeDeclarations5670) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI91) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def AT(self): + return self.getToken(JavaParser.AT, 0) + def INTERFACE(self): + return self.getToken(JavaParser.INTERFACE, 0) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - # AST Rewrite - # elements: arrayDeclaratorList, type, modifierList, block, throwsClause, formalParameterList, IDENT, genericTypeParameterList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def annotationTypeBody(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeBodyContext,0) - retval.tree = root_0 - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def getRuleIndex(self): + return JavaParser.RULE_annotationTypeDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeDeclaration" ): + listener.enterAnnotationTypeDeclaration(self) - root_0 = self._adaptor.nil() - # 354:17: -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) - # Java.g:354:21: ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FUNCTION_METHOD_DECL, "FUNCTION_METHOD_DECL"), root_1) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeDeclaration" ): + listener.exitAnnotationTypeDeclaration(self) - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:354:57: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:354:114: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) + def annotationTypeDeclaration(self): - stream_arrayDeclaratorList.reset(); - # Java.g:354:135: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) + localctx = JavaParser.AnnotationTypeDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 112, self.RULE_annotationTypeDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 761 + self.match(JavaParser.AT) + self.state = 762 + self.match(JavaParser.INTERFACE) + self.state = 763 + self.match(JavaParser.IDENTIFIER) + self.state = 764 + self.annotationTypeBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class AnnotationTypeBodyContext(ParserRuleContext): - stream_throwsClause.reset(); - # Java.g:354:149: ( block )? - if stream_block.hasNext(): - self._adaptor.addChild(root_1, stream_block.nextTree()) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) - stream_block.reset(); + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) - self._adaptor.addChild(root_0, root_1) + def annotationTypeElementDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationTypeElementDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationTypeElementDeclarationContext,i) + def getRuleIndex(self): + return JavaParser.RULE_annotationTypeBody - retval.tree = root_0 + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeBody" ): + listener.enterAnnotationTypeBody(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeBody" ): + listener.exitAnnotationTypeBody(self) - elif alt34 == 2: - # Java.g:355:17: VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) - pass - VOID92=self.match(self.input, VOID, self.FOLLOW_VOID_in_classScopeDeclarations5732) - if self._state.backtracking == 0: - stream_VOID.add(VOID92) - IDENT93=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_classScopeDeclarations5734) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT93) - self._state.following.append(self.FOLLOW_formalParameterList_in_classScopeDeclarations5736) - formalParameterList94 = self.formalParameterList() - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList94.tree) - # Java.g:355:48: ( throwsClause )? - alt31 = 2 - LA31_0 = self.input.LA(1) - if (LA31_0 == THROWS) : - alt31 = 1 - if alt31 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_classScopeDeclarations5738) - throwsClause95 = self.throwsClause() - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause95.tree) + def annotationTypeBody(self): + localctx = JavaParser.AnnotationTypeBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 114, self.RULE_annotationTypeBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 766 + self.match(JavaParser.LBRACE) + self.state = 770 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NATIVE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.TRANSIENT) | (1 << JavaParser.VOLATILE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 767 + self.annotationTypeElementDeclaration() + self.state = 772 + self._errHandler.sync(self) + _la = self._input.LA(1) + self.state = 773 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # Java.g:355:62: ( block | SEMI ) - alt32 = 2 - LA32_0 = self.input.LA(1) + class AnnotationTypeElementDeclarationContext(ParserRuleContext): - if (LA32_0 == LCURLY) : - alt32 = 1 - elif (LA32_0 == SEMI) : - alt32 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - nvae = NoViableAltException("", 32, 0, self.input) + def annotationTypeElementRest(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeElementRestContext,0) - raise nvae - if alt32 == 1: - # Java.g:355:63: block - pass - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5742) - block96 = self.block() + def modifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ModifierContext,i) - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block96.tree) + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) - elif alt32 == 2: - # Java.g:355:71: SEMI - pass - SEMI97=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_classScopeDeclarations5746) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI97) + def getRuleIndex(self): + return JavaParser.RULE_annotationTypeElementDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeElementDeclaration" ): + listener.enterAnnotationTypeElementDeclaration(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeElementDeclaration" ): + listener.exitAnnotationTypeElementDeclaration(self) - # AST Rewrite - # elements: block, genericTypeParameterList, modifierList, formalParameterList, throwsClause, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - retval.tree = root_0 - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def annotationTypeElementDeclaration(self): + localctx = JavaParser.AnnotationTypeElementDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 116, self.RULE_annotationTypeElementDeclaration) + try: + self.state = 783 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.CLASS, JavaParser.DOUBLE, JavaParser.ENUM, JavaParser.FINAL, JavaParser.FLOAT, JavaParser.INT, JavaParser.INTERFACE, JavaParser.LONG, JavaParser.NATIVE, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.SHORT, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.SYNCHRONIZED, JavaParser.TRANSIENT, JavaParser.VOLATILE, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 778 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,86,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 775 + self.modifier() + self.state = 780 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,86,self._ctx) - root_0 = self._adaptor.nil() - # 356:17: -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) - # Java.g:356:21: ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VOID_METHOD_DECL, "VOID_METHOD_DECL"), root_1) + self.state = 781 + self.annotationTypeElementRest() + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 782 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:356:53: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class AnnotationTypeElementRestContext(ParserRuleContext): - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:356:105: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) - stream_throwsClause.reset(); - # Java.g:356:119: ( block )? - if stream_block.hasNext(): - self._adaptor.addChild(root_1, stream_block.nextTree()) + def annotationMethodOrConstantRest(self): + return self.getTypedRuleContext(JavaParser.AnnotationMethodOrConstantRestContext,0) - stream_block.reset(); - self._adaptor.addChild(root_0, root_1) + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) - retval.tree = root_0 + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) - elif alt34 == 3: - # Java.g:357:17: ident= IDENT formalParameterList ( throwsClause )? block - pass - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_classScopeDeclarations5805) - if self._state.backtracking == 0: - stream_IDENT.add(ident) - self._state.following.append(self.FOLLOW_formalParameterList_in_classScopeDeclarations5807) - formalParameterList98 = self.formalParameterList() + def enumDeclaration(self): + return self.getTypedRuleContext(JavaParser.EnumDeclarationContext,0) - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList98.tree) - # Java.g:357:49: ( throwsClause )? - alt33 = 2 - LA33_0 = self.input.LA(1) - if (LA33_0 == THROWS) : - alt33 = 1 - if alt33 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_classScopeDeclarations5809) - throwsClause99 = self.throwsClause() + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeDeclarationContext,0) - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause99.tree) + def getRuleIndex(self): + return JavaParser.RULE_annotationTypeElementRest + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeElementRest" ): + listener.enterAnnotationTypeElementRest(self) - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5812) - block100 = self.block() + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeElementRest" ): + listener.exitAnnotationTypeElementRest(self) - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block100.tree) - # AST Rewrite - # elements: formalParameterList, modifierList, block, throwsClause, genericTypeParameterList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - retval.tree = root_0 - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def annotationTypeElementRest(self): + localctx = JavaParser.AnnotationTypeElementRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 118, self.RULE_annotationTypeElementRest) + try: + self.state = 805 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,92,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 785 + self.typeType() + self.state = 786 + self.annotationMethodOrConstantRest() + self.state = 787 + self.match(JavaParser.SEMI) + pass - root_0 = self._adaptor.nil() - # 358:17: -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) - # Java.g:358:21: ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CONSTRUCTOR_DECL, ident, "CONSTRUCTOR_DECL"), root_1) + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 789 + self.classDeclaration() + self.state = 791 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,88,self._ctx) + if la_ == 1: + self.state = 790 + self.match(JavaParser.SEMI) - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:358:81: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) + pass - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:358:127: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 793 + self.interfaceDeclaration() + self.state = 795 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,89,self._ctx) + if la_ == 1: + self.state = 794 + self.match(JavaParser.SEMI) - stream_throwsClause.reset(); - self._adaptor.addChild(root_1, stream_block.nextTree()) + pass - self._adaptor.addChild(root_0, root_1) + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 797 + self.enumDeclaration() + self.state = 799 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,90,self._ctx) + if la_ == 1: + self.state = 798 + self.match(JavaParser.SEMI) + pass - retval.tree = root_0 + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 801 + self.annotationTypeDeclaration() + self.state = 803 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,91,self._ctx) + if la_ == 1: + self.state = 802 + self.match(JavaParser.SEMI) + pass + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - elif alt35 == 2: - # Java.g:360:13: type classFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_type_in_classScopeDeclarations5876) - type101 = self.type() + class AnnotationMethodOrConstantRestContext(ParserRuleContext): - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type101.tree) - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_classScopeDeclarations5878) - classFieldDeclaratorList102 = self.classFieldDeclaratorList() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclaratorList.add(classFieldDeclaratorList102.tree) - SEMI103=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_classScopeDeclarations5880) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI103) + def annotationMethodRest(self): + return self.getTypedRuleContext(JavaParser.AnnotationMethodRestContext,0) - # AST Rewrite - # elements: type, modifierList, classFieldDeclaratorList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - retval.tree = root_0 + def annotationConstantRest(self): + return self.getTypedRuleContext(JavaParser.AnnotationConstantRestContext,0) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def getRuleIndex(self): + return JavaParser.RULE_annotationMethodOrConstantRest - root_0 = self._adaptor.nil() - # 361:13: -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) - # Java.g:361:17: ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATION, "VAR_DECLARATION"), root_1) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationMethodOrConstantRest" ): + listener.enterAnnotationMethodOrConstantRest(self) - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_classFieldDeclaratorList.nextTree()) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationMethodOrConstantRest" ): + listener.exitAnnotationMethodOrConstantRest(self) - self._adaptor.addChild(root_0, root_1) - retval.tree = root_0 + def annotationMethodOrConstantRest(self): + localctx = JavaParser.AnnotationMethodOrConstantRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 120, self.RULE_annotationMethodOrConstantRest) + try: + self.state = 809 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,93,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 807 + self.annotationMethodRest() + pass + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 808 + self.annotationConstantRest() + pass + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - elif alt36 == 4: - # Java.g:363:9: typeDeclaration - pass - root_0 = self._adaptor.nil() + class AnnotationMethodRestContext(ParserRuleContext): - self._state.following.append(self.FOLLOW_typeDeclaration_in_classScopeDeclarations5925) - typeDeclaration104 = self.typeDeclaration() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration104.tree) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) - elif alt36 == 5: - # Java.g:364:9: SEMI - pass - root_0 = self._adaptor.nil() + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) - SEMI105=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_classScopeDeclarations5935) + def defaultValue(self): + return self.getTypedRuleContext(JavaParser.DefaultValueContext,0) - retval.stop = self.input.LT(-1) + def getRuleIndex(self): + return JavaParser.RULE_annotationMethodRest - if self._state.backtracking == 0: + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationMethodRest" ): + listener.enterAnnotationMethodRest(self) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationMethodRest" ): + listener.exitAnnotationMethodRest(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 25, classScopeDeclarations_StartIndex, success) - pass - return retval - # $ANTLR end "classScopeDeclarations" + def annotationMethodRest(self): - class interfaceScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceScopeDeclarations_return, self).__init__() + localctx = JavaParser.AnnotationMethodRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 122, self.RULE_annotationMethodRest) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 811 + self.match(JavaParser.IDENTIFIER) + self.state = 812 + self.match(JavaParser.LPAREN) + self.state = 813 + self.match(JavaParser.RPAREN) + self.state = 815 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.DEFAULT: + self.state = 814 + self.defaultValue() - self.tree = None + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class AnnotationConstantRestContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - # $ANTLR start "interfaceScopeDeclarations" - # Java.g:367:1: interfaceScopeDeclarations : ( modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) | type interfaceFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) ) | typeDeclaration | SEMI ); - def interfaceScopeDeclarations(self, ): + def variableDeclarators(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorsContext,0) - retval = self.interfaceScopeDeclarations_return() - retval.start = self.input.LT(1) - interfaceScopeDeclarations_StartIndex = self.input.index() - root_0 = None - IDENT109 = None - SEMI113 = None - VOID114 = None - IDENT115 = None - SEMI118 = None - SEMI121 = None - SEMI123 = None - modifierList106 = None + def getRuleIndex(self): + return JavaParser.RULE_annotationConstantRest - genericTypeParameterList107 = None + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationConstantRest" ): + listener.enterAnnotationConstantRest(self) - type108 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationConstantRest" ): + listener.exitAnnotationConstantRest(self) - formalParameterList110 = None - arrayDeclaratorList111 = None - throwsClause112 = None - formalParameterList116 = None + def annotationConstantRest(self): - throwsClause117 = None + localctx = JavaParser.AnnotationConstantRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 124, self.RULE_annotationConstantRest) + try: + self.enterOuterAlt(localctx, 1) + self.state = 817 + self.variableDeclarators() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - type119 = None + class DefaultValueContext(ParserRuleContext): - interfaceFieldDeclaratorList120 = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - typeDeclaration122 = None + def DEFAULT(self): + return self.getToken(JavaParser.DEFAULT, 0) + def elementValue(self): + return self.getTypedRuleContext(JavaParser.ElementValueContext,0) - IDENT109_tree = None - SEMI113_tree = None - VOID114_tree = None - IDENT115_tree = None - SEMI118_tree = None - SEMI121_tree = None - SEMI123_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_VOID = RewriteRuleTokenStream(self._adaptor, "token VOID") - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_throwsClause = RewriteRuleSubtreeStream(self._adaptor, "rule throwsClause") - stream_modifierList = RewriteRuleSubtreeStream(self._adaptor, "rule modifierList") - stream_genericTypeParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameterList") - stream_interfaceFieldDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceFieldDeclaratorList") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_formalParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule formalParameterList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 26): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:368:5: ( modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) | type interfaceFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) ) | typeDeclaration | SEMI ) - alt43 = 3 - alt43 = self.dfa43.predict(self.input) - if alt43 == 1: - # Java.g:368:9: modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) | type interfaceFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_interfaceScopeDeclarations5955) - modifierList106 = self.modifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_modifierList.add(modifierList106.tree) - # Java.g:369:9: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) | type interfaceFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) ) - alt42 = 2 - LA42 = self.input.LA(1) - if LA42 == LESS_THAN or LA42 == VOID: - alt42 = 1 - elif LA42 == BOOLEAN or LA42 == BYTE or LA42 == CHAR or LA42 == DOUBLE or LA42 == FLOAT or LA42 == INT or LA42 == LONG or LA42 == SHORT: - LA42_2 = self.input.LA(2) - - if (self.synpred50_Java()) : - alt42 = 1 - elif (True) : - alt42 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - nvae = NoViableAltException("", 42, 2, self.input) + def getRuleIndex(self): + return JavaParser.RULE_defaultValue - raise nvae + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDefaultValue" ): + listener.enterDefaultValue(self) - elif LA42 == IDENT: - LA42_3 = self.input.LA(2) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDefaultValue" ): + listener.exitDefaultValue(self) - if (self.synpred50_Java()) : - alt42 = 1 - elif (True) : - alt42 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - nvae = NoViableAltException("", 42, 3, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 42, 0, self.input) - - raise nvae - - if alt42 == 1: - # Java.g:369:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) - pass - # Java.g:369:13: ( genericTypeParameterList )? - alt37 = 2 - LA37_0 = self.input.LA(1) - - if (LA37_0 == LESS_THAN) : - alt37 = 1 - if alt37 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_interfaceScopeDeclarations5969) - genericTypeParameterList107 = self.genericTypeParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameterList.add(genericTypeParameterList107.tree) + def defaultValue(self): - # Java.g:370:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) - alt41 = 2 - LA41_0 = self.input.LA(1) - - if (LA41_0 == BOOLEAN or LA41_0 == BYTE or LA41_0 == CHAR or LA41_0 == DOUBLE or LA41_0 == FLOAT or (INT <= LA41_0 <= LONG) or LA41_0 == SHORT or LA41_0 == IDENT) : - alt41 = 1 - elif (LA41_0 == VOID) : - alt41 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + localctx = JavaParser.DefaultValueContext(self, self._ctx, self.state) + self.enterRule(localctx, 126, self.RULE_defaultValue) + try: + self.enterOuterAlt(localctx, 1) + self.state = 819 + self.match(JavaParser.DEFAULT) + self.state = 820 + self.elementValue() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - nvae = NoViableAltException("", 41, 0, self.input) - - raise nvae - - if alt41 == 1: - # Java.g:370:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI - pass - self._state.following.append(self.FOLLOW_type_in_interfaceScopeDeclarations5988) - type108 = self.type() + class BlockContext(ParserRuleContext): - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type108.tree) - IDENT109=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_interfaceScopeDeclarations5990) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT109) - self._state.following.append(self.FOLLOW_formalParameterList_in_interfaceScopeDeclarations5992) - formalParameterList110 = self.formalParameterList() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList110.tree) - # Java.g:370:48: ( arrayDeclaratorList )? - alt38 = 2 - LA38_0 = self.input.LA(1) + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) - if (LA38_0 == LBRACK) : - alt38 = 1 - if alt38 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_interfaceScopeDeclarations5994) - arrayDeclaratorList111 = self.arrayDeclaratorList() + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList111.tree) + def blockStatement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.BlockStatementContext) + else: + return self.getTypedRuleContext(JavaParser.BlockStatementContext,i) + def getRuleIndex(self): + return JavaParser.RULE_block - # Java.g:370:69: ( throwsClause )? - alt39 = 2 - LA39_0 = self.input.LA(1) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlock" ): + listener.enterBlock(self) - if (LA39_0 == THROWS) : - alt39 = 1 - if alt39 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_interfaceScopeDeclarations5997) - throwsClause112 = self.throwsClause() + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlock" ): + listener.exitBlock(self) - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause112.tree) - SEMI113=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_interfaceScopeDeclarations6000) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI113) + def block(self): - # AST Rewrite - # elements: throwsClause, IDENT, arrayDeclaratorList, modifierList, genericTypeParameterList, formalParameterList, type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + localctx = JavaParser.BlockContext(self, self._ctx, self.state) + self.enterRule(localctx, 128, self.RULE_block) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 822 + self.match(JavaParser.LBRACE) + self.state = 826 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.ASSERT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BREAK) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.CONTINUE) | (1 << JavaParser.DO) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.FOR) | (1 << JavaParser.IF) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.RETURN) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SUPER) | (1 << JavaParser.SWITCH) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.THIS) | (1 << JavaParser.THROW) | (1 << JavaParser.TRY) | (1 << JavaParser.VOID) | (1 << JavaParser.WHILE) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.BANG - 67)) | (1 << (JavaParser.TILDE - 67)) | (1 << (JavaParser.INC - 67)) | (1 << (JavaParser.DEC - 67)) | (1 << (JavaParser.ADD - 67)) | (1 << (JavaParser.SUB - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 823 + self.blockStatement() + self.state = 828 + self._errHandler.sync(self) + _la = self._input.LA(1) - retval.tree = root_0 + self.state = 829 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + class BlockStatementContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - root_0 = self._adaptor.nil() - # 371:17: -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) - # Java.g:371:21: ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FUNCTION_METHOD_DECL, "FUNCTION_METHOD_DECL"), root_1) + def localVariableDeclaration(self): + return self.getTypedRuleContext(JavaParser.LocalVariableDeclarationContext,0) - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:371:57: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:371:114: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) + def statement(self): + return self.getTypedRuleContext(JavaParser.StatementContext,0) - stream_arrayDeclaratorList.reset(); - # Java.g:371:135: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) + def localTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.LocalTypeDeclarationContext,0) - stream_throwsClause.reset(); + def getRuleIndex(self): + return JavaParser.RULE_blockStatement - self._adaptor.addChild(root_0, root_1) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockStatement" ): + listener.enterBlockStatement(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockStatement" ): + listener.exitBlockStatement(self) - retval.tree = root_0 - elif alt41 == 2: - # Java.g:372:17: VOID IDENT formalParameterList ( throwsClause )? SEMI - pass - VOID114=self.match(self.input, VOID, self.FOLLOW_VOID_in_interfaceScopeDeclarations6058) - if self._state.backtracking == 0: - stream_VOID.add(VOID114) - IDENT115=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_interfaceScopeDeclarations6060) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT115) - self._state.following.append(self.FOLLOW_formalParameterList_in_interfaceScopeDeclarations6062) - formalParameterList116 = self.formalParameterList() + def blockStatement(self): - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList116.tree) - # Java.g:372:48: ( throwsClause )? - alt40 = 2 - LA40_0 = self.input.LA(1) + localctx = JavaParser.BlockStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 130, self.RULE_blockStatement) + try: + self.state = 836 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,96,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 831 + self.localVariableDeclaration() + self.state = 832 + self.match(JavaParser.SEMI) + pass - if (LA40_0 == THROWS) : - alt40 = 1 - if alt40 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_interfaceScopeDeclarations6064) - throwsClause117 = self.throwsClause() + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 834 + self.statement() + pass - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause117.tree) + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 835 + self.localTypeDeclaration() + pass + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - SEMI118=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_interfaceScopeDeclarations6067) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI118) + class LocalVariableDeclarationContext(ParserRuleContext): - # AST Rewrite - # elements: throwsClause, formalParameterList, IDENT, genericTypeParameterList, modifierList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - retval.tree = root_0 + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def variableDeclarators(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorsContext,0) - root_0 = self._adaptor.nil() - # 373:17: -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) - # Java.g:373:21: ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VOID_METHOD_DECL, "VOID_METHOD_DECL"), root_1) - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:373:53: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:373:105: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) + def getRuleIndex(self): + return JavaParser.RULE_localVariableDeclaration + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLocalVariableDeclaration" ): + listener.enterLocalVariableDeclaration(self) - stream_throwsClause.reset(); + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLocalVariableDeclaration" ): + listener.exitLocalVariableDeclaration(self) - self._adaptor.addChild(root_0, root_1) - retval.tree = root_0 + def localVariableDeclaration(self): + localctx = JavaParser.LocalVariableDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 132, self.RULE_localVariableDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 841 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,97,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 838 + self.variableModifier() + self.state = 843 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,97,self._ctx) + self.state = 844 + self.typeType() + self.state = 845 + self.variableDeclarators() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class LocalTypeDeclarationContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - elif alt42 == 2: - # Java.g:375:13: type interfaceFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_type_in_interfaceScopeDeclarations6130) - type119 = self.type() + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type119.tree) - self._state.following.append(self.FOLLOW_interfaceFieldDeclaratorList_in_interfaceScopeDeclarations6132) - interfaceFieldDeclaratorList120 = self.interfaceFieldDeclaratorList() - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceFieldDeclaratorList.add(interfaceFieldDeclaratorList120.tree) - SEMI121=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_interfaceScopeDeclarations6134) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI121) + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) - # AST Rewrite - # elements: interfaceFieldDeclaratorList, type, modifierList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - retval.tree = root_0 + def classOrInterfaceModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ClassOrInterfaceModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceModifierContext,i) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_localTypeDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLocalTypeDeclaration" ): + listener.enterLocalTypeDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLocalTypeDeclaration" ): + listener.exitLocalTypeDeclaration(self) + + + + + def localTypeDeclaration(self): + + localctx = JavaParser.LocalTypeDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 134, self.RULE_localTypeDeclaration) + self._la = 0 # Token type + try: + self.state = 858 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.CLASS, JavaParser.FINAL, JavaParser.INTERFACE, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 850 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.FINAL) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP))) != 0) or _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 847 + self.classOrInterfaceModifier() + self.state = 852 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 855 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.CLASS]: + self.state = 853 + self.classDeclaration() + pass + elif token in [JavaParser.INTERFACE]: + self.state = 854 + self.interfaceDeclaration() + pass + else: + raise NoViableAltException(self) + + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 857 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class StatementContext(ParserRuleContext): - root_0 = self._adaptor.nil() - # 376:13: -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) - # Java.g:376:17: ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATION, "VAR_DECLARATION"), root_1) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.blockLabel = None # BlockContext + self.statementExpression = None # ExpressionContext + self.identifierLabel = None # Token - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_interfaceFieldDeclaratorList.nextTree()) + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) - self._adaptor.addChild(root_0, root_1) + def ASSERT(self): + return self.getToken(JavaParser.ASSERT, 0) + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ExpressionContext) + else: + return self.getTypedRuleContext(JavaParser.ExpressionContext,i) - retval.tree = root_0 + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + def COLON(self): + return self.getToken(JavaParser.COLON, 0) + def IF(self): + return self.getToken(JavaParser.IF, 0) + def parExpression(self): + return self.getTypedRuleContext(JavaParser.ParExpressionContext,0) - elif alt43 == 2: - # Java.g:378:9: typeDeclaration - pass - root_0 = self._adaptor.nil() - self._state.following.append(self.FOLLOW_typeDeclaration_in_interfaceScopeDeclarations6179) - typeDeclaration122 = self.typeDeclaration() + def statement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.StatementContext) + else: + return self.getTypedRuleContext(JavaParser.StatementContext,i) - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration122.tree) + def ELSE(self): + return self.getToken(JavaParser.ELSE, 0) - elif alt43 == 3: - # Java.g:379:9: SEMI - pass - root_0 = self._adaptor.nil() + def FOR(self): + return self.getToken(JavaParser.FOR, 0) - SEMI123=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_interfaceScopeDeclarations6189) + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + def forControl(self): + return self.getTypedRuleContext(JavaParser.ForControlContext,0) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def WHILE(self): + return self.getToken(JavaParser.WHILE, 0) + def DO(self): + return self.getToken(JavaParser.DO, 0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 26, interfaceScopeDeclarations_StartIndex, success) + def TRY(self): + return self.getToken(JavaParser.TRY, 0) - pass - return retval + def finallyBlock(self): + return self.getTypedRuleContext(JavaParser.FinallyBlockContext,0) - # $ANTLR end "interfaceScopeDeclarations" - class classFieldDeclaratorList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classFieldDeclaratorList_return, self).__init__() + def catchClause(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.CatchClauseContext) + else: + return self.getTypedRuleContext(JavaParser.CatchClauseContext,i) - self.tree = None + def resourceSpecification(self): + return self.getTypedRuleContext(JavaParser.ResourceSpecificationContext,0) + def SWITCH(self): + return self.getToken(JavaParser.SWITCH, 0) - # $ANTLR start "classFieldDeclaratorList" - # Java.g:382:1: classFieldDeclaratorList : classFieldDeclarator ( COMMA classFieldDeclarator )* -> ^( VAR_DECLARATOR_LIST ( classFieldDeclarator )+ ) ; - def classFieldDeclaratorList(self, ): + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) - retval = self.classFieldDeclaratorList_return() - retval.start = self.input.LT(1) - classFieldDeclaratorList_StartIndex = self.input.index() - root_0 = None + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) - COMMA125 = None - classFieldDeclarator124 = None + def switchBlockStatementGroup(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.SwitchBlockStatementGroupContext) + else: + return self.getTypedRuleContext(JavaParser.SwitchBlockStatementGroupContext,i) - classFieldDeclarator126 = None + def switchLabel(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.SwitchLabelContext) + else: + return self.getTypedRuleContext(JavaParser.SwitchLabelContext,i) + + + def SYNCHRONIZED(self): + return self.getToken(JavaParser.SYNCHRONIZED, 0) + + def RETURN(self): + return self.getToken(JavaParser.RETURN, 0) + + def THROW(self): + return self.getToken(JavaParser.THROW, 0) + + def BREAK(self): + return self.getToken(JavaParser.BREAK, 0) + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def CONTINUE(self): + return self.getToken(JavaParser.CONTINUE, 0) + + def getRuleIndex(self): + return JavaParser.RULE_statement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStatement" ): + listener.enterStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStatement" ): + listener.exitStatement(self) + + + + + def statement(self): + + localctx = JavaParser.StatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 136, self.RULE_statement) + self._la = 0 # Token type + try: + self.state = 964 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,113,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 860 + localctx.blockLabel = self.block() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 861 + self.match(JavaParser.ASSERT) + self.state = 862 + self.expression(0) + self.state = 865 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COLON: + self.state = 863 + self.match(JavaParser.COLON) + self.state = 864 + self.expression(0) + + + self.state = 867 + self.match(JavaParser.SEMI) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 869 + self.match(JavaParser.IF) + self.state = 870 + self.parExpression() + self.state = 871 + self.statement() + self.state = 874 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,102,self._ctx) + if la_ == 1: + self.state = 872 + self.match(JavaParser.ELSE) + self.state = 873 + self.statement() + + + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 876 + self.match(JavaParser.FOR) + self.state = 877 + self.match(JavaParser.LPAREN) + self.state = 878 + self.forControl() + self.state = 879 + self.match(JavaParser.RPAREN) + self.state = 880 + self.statement() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 882 + self.match(JavaParser.WHILE) + self.state = 883 + self.parExpression() + self.state = 884 + self.statement() + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 886 + self.match(JavaParser.DO) + self.state = 887 + self.statement() + self.state = 888 + self.match(JavaParser.WHILE) + self.state = 889 + self.parExpression() + self.state = 890 + self.match(JavaParser.SEMI) + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 892 + self.match(JavaParser.TRY) + self.state = 893 + self.block() + self.state = 903 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.CATCH]: + self.state = 895 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 894 + self.catchClause() + self.state = 897 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==JavaParser.CATCH): + break + + self.state = 900 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.FINALLY: + self.state = 899 + self.finallyBlock() + + + pass + elif token in [JavaParser.FINALLY]: + self.state = 902 + self.finallyBlock() + pass + else: + raise NoViableAltException(self) - COMMA125_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_classFieldDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule classFieldDeclarator") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 27): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:383:5: ( classFieldDeclarator ( COMMA classFieldDeclarator )* -> ^( VAR_DECLARATOR_LIST ( classFieldDeclarator )+ ) ) - # Java.g:383:9: classFieldDeclarator ( COMMA classFieldDeclarator )* - pass - self._state.following.append(self.FOLLOW_classFieldDeclarator_in_classFieldDeclaratorList6209) - classFieldDeclarator124 = self.classFieldDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclarator.add(classFieldDeclarator124.tree) - # Java.g:383:30: ( COMMA classFieldDeclarator )* - while True: #loop44 - alt44 = 2 - LA44_0 = self.input.LA(1) - - if (LA44_0 == COMMA) : - alt44 = 1 - - - if alt44 == 1: - # Java.g:383:31: COMMA classFieldDeclarator - pass - COMMA125=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_classFieldDeclaratorList6212) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA125) - self._state.following.append(self.FOLLOW_classFieldDeclarator_in_classFieldDeclaratorList6214) - classFieldDeclarator126 = self.classFieldDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclarator.add(classFieldDeclarator126.tree) + pass + elif la_ == 8: + self.enterOuterAlt(localctx, 8) + self.state = 905 + self.match(JavaParser.TRY) + self.state = 906 + self.resourceSpecification() + self.state = 907 + self.block() + self.state = 911 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.CATCH: + self.state = 908 + self.catchClause() + self.state = 913 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 915 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.FINALLY: + self.state = 914 + self.finallyBlock() + + + pass + + elif la_ == 9: + self.enterOuterAlt(localctx, 9) + self.state = 917 + self.match(JavaParser.SWITCH) + self.state = 918 + self.parExpression() + self.state = 919 + self.match(JavaParser.LBRACE) + self.state = 923 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,108,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 920 + self.switchBlockStatementGroup() + self.state = 925 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,108,self._ctx) + + self.state = 929 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.CASE or _la==JavaParser.DEFAULT: + self.state = 926 + self.switchLabel() + self.state = 931 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 932 + self.match(JavaParser.RBRACE) + pass + + elif la_ == 10: + self.enterOuterAlt(localctx, 10) + self.state = 934 + self.match(JavaParser.SYNCHRONIZED) + self.state = 935 + self.parExpression() + self.state = 936 + self.block() + pass + + elif la_ == 11: + self.enterOuterAlt(localctx, 11) + self.state = 938 + self.match(JavaParser.RETURN) + self.state = 940 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 939 + self.expression(0) + + + self.state = 942 + self.match(JavaParser.SEMI) + pass + + elif la_ == 12: + self.enterOuterAlt(localctx, 12) + self.state = 943 + self.match(JavaParser.THROW) + self.state = 944 + self.expression(0) + self.state = 945 + self.match(JavaParser.SEMI) + pass + + elif la_ == 13: + self.enterOuterAlt(localctx, 13) + self.state = 947 + self.match(JavaParser.BREAK) + self.state = 949 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.IDENTIFIER: + self.state = 948 + self.match(JavaParser.IDENTIFIER) + + + self.state = 951 + self.match(JavaParser.SEMI) + pass + + elif la_ == 14: + self.enterOuterAlt(localctx, 14) + self.state = 952 + self.match(JavaParser.CONTINUE) + self.state = 954 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.IDENTIFIER: + self.state = 953 + self.match(JavaParser.IDENTIFIER) + + + self.state = 956 + self.match(JavaParser.SEMI) + pass + + elif la_ == 15: + self.enterOuterAlt(localctx, 15) + self.state = 957 + self.match(JavaParser.SEMI) + pass + + elif la_ == 16: + self.enterOuterAlt(localctx, 16) + self.state = 958 + localctx.statementExpression = self.expression(0) + self.state = 959 + self.match(JavaParser.SEMI) + pass + + elif la_ == 17: + self.enterOuterAlt(localctx, 17) + self.state = 961 + localctx.identifierLabel = self.match(JavaParser.IDENTIFIER) + self.state = 962 + self.match(JavaParser.COLON) + self.state = 963 + self.statement() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - else: - break #loop44 + class CatchClauseContext(ParserRuleContext): - # AST Rewrite - # elements: classFieldDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - retval.tree = root_0 + def CATCH(self): + return self.getToken(JavaParser.CATCH, 0) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + def catchType(self): + return self.getTypedRuleContext(JavaParser.CatchTypeContext,0) - root_0 = self._adaptor.nil() - # 384:9: -> ^( VAR_DECLARATOR_LIST ( classFieldDeclarator )+ ) - # Java.g:384:13: ^( VAR_DECLARATOR_LIST ( classFieldDeclarator )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATOR_LIST, "VAR_DECLARATOR_LIST"), root_1) - # Java.g:384:35: ( classFieldDeclarator )+ - if not (stream_classFieldDeclarator.hasNext()): - raise RewriteEarlyExitException() + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - while stream_classFieldDeclarator.hasNext(): - self._adaptor.addChild(root_1, stream_classFieldDeclarator.nextTree()) + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) - stream_classFieldDeclarator.reset() - self._adaptor.addChild(root_0, root_1) + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) + def getRuleIndex(self): + return JavaParser.RULE_catchClause - retval.tree = root_0 + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCatchClause" ): + listener.enterCatchClause(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCatchClause" ): + listener.exitCatchClause(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def catchClause(self): + localctx = JavaParser.CatchClauseContext(self, self._ctx, self.state) + self.enterRule(localctx, 138, self.RULE_catchClause) + try: + self.enterOuterAlt(localctx, 1) + self.state = 966 + self.match(JavaParser.CATCH) + self.state = 967 + self.match(JavaParser.LPAREN) + self.state = 971 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,114,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 968 + self.variableModifier() + self.state = 973 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,114,self._ctx) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + self.state = 974 + self.catchType() + self.state = 975 + self.match(JavaParser.IDENTIFIER) + self.state = 976 + self.match(JavaParser.RPAREN) + self.state = 977 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 27, classFieldDeclaratorList_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class CatchTypeContext(ParserRuleContext): - # $ANTLR end "classFieldDeclaratorList" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class classFieldDeclarator_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classFieldDeclarator_return, self).__init__() + def qualifiedName(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.QualifiedNameContext) + else: + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,i) - self.tree = None + def BITOR(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.BITOR) + else: + return self.getToken(JavaParser.BITOR, i) + def getRuleIndex(self): + return JavaParser.RULE_catchType + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCatchType" ): + listener.enterCatchType(self) - # $ANTLR start "classFieldDeclarator" - # Java.g:387:1: classFieldDeclarator : variableDeclaratorId ( ASSIGN variableInitializer )? -> ^( VAR_DECLARATOR variableDeclaratorId ( variableInitializer )? ) ; - def classFieldDeclarator(self, ): + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCatchType" ): + listener.exitCatchType(self) - retval = self.classFieldDeclarator_return() - retval.start = self.input.LT(1) - classFieldDeclarator_StartIndex = self.input.index() - root_0 = None - ASSIGN128 = None - variableDeclaratorId127 = None - variableInitializer129 = None + def catchType(self): - ASSIGN128_tree = None - stream_ASSIGN = RewriteRuleTokenStream(self._adaptor, "token ASSIGN") - stream_variableDeclaratorId = RewriteRuleSubtreeStream(self._adaptor, "rule variableDeclaratorId") - stream_variableInitializer = RewriteRuleSubtreeStream(self._adaptor, "rule variableInitializer") - success = False + localctx = JavaParser.CatchTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 140, self.RULE_catchType) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 28): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:388:5: ( variableDeclaratorId ( ASSIGN variableInitializer )? -> ^( VAR_DECLARATOR variableDeclaratorId ( variableInitializer )? ) ) - # Java.g:388:9: variableDeclaratorId ( ASSIGN variableInitializer )? - pass - self._state.following.append(self.FOLLOW_variableDeclaratorId_in_classFieldDeclarator6253) - variableDeclaratorId127 = self.variableDeclaratorId() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableDeclaratorId.add(variableDeclaratorId127.tree) - # Java.g:388:30: ( ASSIGN variableInitializer )? - alt45 = 2 - LA45_0 = self.input.LA(1) - - if (LA45_0 == ASSIGN) : - alt45 = 1 - if alt45 == 1: - # Java.g:388:31: ASSIGN variableInitializer - pass - ASSIGN128=self.match(self.input, ASSIGN, self.FOLLOW_ASSIGN_in_classFieldDeclarator6256) - if self._state.backtracking == 0: - stream_ASSIGN.add(ASSIGN128) - self._state.following.append(self.FOLLOW_variableInitializer_in_classFieldDeclarator6258) - variableInitializer129 = self.variableInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableInitializer.add(variableInitializer129.tree) - - - - - # AST Rewrite - # elements: variableDeclaratorId, variableInitializer - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + self.enterOuterAlt(localctx, 1) + self.state = 979 + self.qualifiedName() + self.state = 984 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.BITOR: + self.state = 980 + self.match(JavaParser.BITOR) + self.state = 981 + self.qualifiedName() + self.state = 986 + self._errHandler.sync(self) + _la = self._input.LA(1) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - root_0 = self._adaptor.nil() - # 389:9: -> ^( VAR_DECLARATOR variableDeclaratorId ( variableInitializer )? ) - # Java.g:389:13: ^( VAR_DECLARATOR variableDeclaratorId ( variableInitializer )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATOR, "VAR_DECLARATOR"), root_1) - - self._adaptor.addChild(root_1, stream_variableDeclaratorId.nextTree()) - # Java.g:389:51: ( variableInitializer )? - if stream_variableInitializer.hasNext(): - self._adaptor.addChild(root_1, stream_variableInitializer.nextTree()) - + class FinallyBlockContext(ParserRuleContext): - stream_variableInitializer.reset(); + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._adaptor.addChild(root_0, root_1) + def FINALLY(self): + return self.getToken(JavaParser.FINALLY, 0) + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) - retval.tree = root_0 + def getRuleIndex(self): + return JavaParser.RULE_finallyBlock + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFinallyBlock" ): + listener.enterFinallyBlock(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFinallyBlock" ): + listener.exitFinallyBlock(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def finallyBlock(self): - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + localctx = JavaParser.FinallyBlockContext(self, self._ctx, self.state) + self.enterRule(localctx, 142, self.RULE_finallyBlock) + try: + self.enterOuterAlt(localctx, 1) + self.state = 987 + self.match(JavaParser.FINALLY) + self.state = 988 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 28, classFieldDeclarator_StartIndex, success) - - pass - return retval - - # $ANTLR end "classFieldDeclarator" - - class interfaceFieldDeclaratorList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceFieldDeclaratorList_return, self).__init__() + self.exitRule() + return localctx - self.tree = None + class ResourceSpecificationContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + def resources(self): + return self.getTypedRuleContext(JavaParser.ResourcesContext,0) - # $ANTLR start "interfaceFieldDeclaratorList" - # Java.g:392:1: interfaceFieldDeclaratorList : interfaceFieldDeclarator ( COMMA interfaceFieldDeclarator )* -> ^( VAR_DECLARATOR_LIST ( interfaceFieldDeclarator )+ ) ; - def interfaceFieldDeclaratorList(self, ): - retval = self.interfaceFieldDeclaratorList_return() - retval.start = self.input.LT(1) - interfaceFieldDeclaratorList_StartIndex = self.input.index() - root_0 = None + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) - COMMA131 = None - interfaceFieldDeclarator130 = None + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) - interfaceFieldDeclarator132 = None + def getRuleIndex(self): + return JavaParser.RULE_resourceSpecification + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResourceSpecification" ): + listener.enterResourceSpecification(self) - COMMA131_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_interfaceFieldDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceFieldDeclarator") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 29): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:393:5: ( interfaceFieldDeclarator ( COMMA interfaceFieldDeclarator )* -> ^( VAR_DECLARATOR_LIST ( interfaceFieldDeclarator )+ ) ) - # Java.g:393:9: interfaceFieldDeclarator ( COMMA interfaceFieldDeclarator )* - pass - self._state.following.append(self.FOLLOW_interfaceFieldDeclarator_in_interfaceFieldDeclaratorList6299) - interfaceFieldDeclarator130 = self.interfaceFieldDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceFieldDeclarator.add(interfaceFieldDeclarator130.tree) - # Java.g:393:34: ( COMMA interfaceFieldDeclarator )* - while True: #loop46 - alt46 = 2 - LA46_0 = self.input.LA(1) - - if (LA46_0 == COMMA) : - alt46 = 1 - - - if alt46 == 1: - # Java.g:393:35: COMMA interfaceFieldDeclarator - pass - COMMA131=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_interfaceFieldDeclaratorList6302) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA131) - self._state.following.append(self.FOLLOW_interfaceFieldDeclarator_in_interfaceFieldDeclaratorList6304) - interfaceFieldDeclarator132 = self.interfaceFieldDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceFieldDeclarator.add(interfaceFieldDeclarator132.tree) - + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResourceSpecification" ): + listener.exitResourceSpecification(self) - else: - break #loop46 - # AST Rewrite - # elements: interfaceFieldDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - retval.tree = root_0 - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def resourceSpecification(self): + localctx = JavaParser.ResourceSpecificationContext(self, self._ctx, self.state) + self.enterRule(localctx, 144, self.RULE_resourceSpecification) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 990 + self.match(JavaParser.LPAREN) + self.state = 991 + self.resources() + self.state = 993 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.SEMI: + self.state = 992 + self.match(JavaParser.SEMI) - root_0 = self._adaptor.nil() - # 394:9: -> ^( VAR_DECLARATOR_LIST ( interfaceFieldDeclarator )+ ) - # Java.g:394:13: ^( VAR_DECLARATOR_LIST ( interfaceFieldDeclarator )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATOR_LIST, "VAR_DECLARATOR_LIST"), root_1) - # Java.g:394:35: ( interfaceFieldDeclarator )+ - if not (stream_interfaceFieldDeclarator.hasNext()): - raise RewriteEarlyExitException() + self.state = 995 + self.match(JavaParser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - while stream_interfaceFieldDeclarator.hasNext(): - self._adaptor.addChild(root_1, stream_interfaceFieldDeclarator.nextTree()) + class ResourcesContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - stream_interfaceFieldDeclarator.reset() + def resource(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ResourceContext) + else: + return self.getTypedRuleContext(JavaParser.ResourceContext,i) - self._adaptor.addChild(root_0, root_1) + def SEMI(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.SEMI) + else: + return self.getToken(JavaParser.SEMI, i) + def getRuleIndex(self): + return JavaParser.RULE_resources - retval.tree = root_0 + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResources" ): + listener.enterResources(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResources" ): + listener.exitResources(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def resources(self): + localctx = JavaParser.ResourcesContext(self, self._ctx, self.state) + self.enterRule(localctx, 146, self.RULE_resources) + try: + self.enterOuterAlt(localctx, 1) + self.state = 997 + self.resource() + self.state = 1002 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,117,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 998 + self.match(JavaParser.SEMI) + self.state = 999 + self.resource() + self.state = 1004 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,117,self._ctx) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 29, interfaceFieldDeclaratorList_StartIndex, success) - - pass - return retval - - # $ANTLR end "interfaceFieldDeclaratorList" - - class interfaceFieldDeclarator_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceFieldDeclarator_return, self).__init__() + self.exitRule() + return localctx - self.tree = None + class ResourceContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def classOrInterfaceType(self): + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceTypeContext,0) - # $ANTLR start "interfaceFieldDeclarator" - # Java.g:397:1: interfaceFieldDeclarator : variableDeclaratorId ASSIGN variableInitializer -> ^( VAR_DECLARATOR variableDeclaratorId variableInitializer ) ; - def interfaceFieldDeclarator(self, ): + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) - retval = self.interfaceFieldDeclarator_return() - retval.start = self.input.LT(1) - interfaceFieldDeclarator_StartIndex = self.input.index() - root_0 = None - ASSIGN134 = None - variableDeclaratorId133 = None + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) - variableInitializer135 = None + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - ASSIGN134_tree = None - stream_ASSIGN = RewriteRuleTokenStream(self._adaptor, "token ASSIGN") - stream_variableDeclaratorId = RewriteRuleSubtreeStream(self._adaptor, "rule variableDeclaratorId") - stream_variableInitializer = RewriteRuleSubtreeStream(self._adaptor, "rule variableInitializer") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 30): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:398:5: ( variableDeclaratorId ASSIGN variableInitializer -> ^( VAR_DECLARATOR variableDeclaratorId variableInitializer ) ) - # Java.g:398:9: variableDeclaratorId ASSIGN variableInitializer - pass - self._state.following.append(self.FOLLOW_variableDeclaratorId_in_interfaceFieldDeclarator6343) - variableDeclaratorId133 = self.variableDeclaratorId() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableDeclaratorId.add(variableDeclaratorId133.tree) - ASSIGN134=self.match(self.input, ASSIGN, self.FOLLOW_ASSIGN_in_interfaceFieldDeclarator6345) - if self._state.backtracking == 0: - stream_ASSIGN.add(ASSIGN134) - self._state.following.append(self.FOLLOW_variableInitializer_in_interfaceFieldDeclarator6347) - variableInitializer135 = self.variableInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableInitializer.add(variableInitializer135.tree) - - # AST Rewrite - # elements: variableInitializer, variableDeclaratorId - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 399:9: -> ^( VAR_DECLARATOR variableDeclaratorId variableInitializer ) - # Java.g:399:13: ^( VAR_DECLARATOR variableDeclaratorId variableInitializer ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATOR, "VAR_DECLARATOR"), root_1) - - self._adaptor.addChild(root_1, stream_variableDeclaratorId.nextTree()) - self._adaptor.addChild(root_1, stream_variableInitializer.nextTree()) - - self._adaptor.addChild(root_0, root_1) + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) + def getRuleIndex(self): + return JavaParser.RULE_resource - retval.tree = root_0 + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResource" ): + listener.enterResource(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResource" ): + listener.exitResource(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def resource(self): + localctx = JavaParser.ResourceContext(self, self._ctx, self.state) + self.enterRule(localctx, 148, self.RULE_resource) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1008 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,118,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1005 + self.variableModifier() + self.state = 1010 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,118,self._ctx) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + self.state = 1011 + self.classOrInterfaceType() + self.state = 1012 + self.variableDeclaratorId() + self.state = 1013 + self.match(JavaParser.ASSIGN) + self.state = 1014 + self.expression(0) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 30, interfaceFieldDeclarator_StartIndex, success) - - pass - return retval - - # $ANTLR end "interfaceFieldDeclarator" - - class variableDeclaratorId_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.variableDeclaratorId_return, self).__init__() - - self.tree = None + self.exitRule() + return localctx + class SwitchBlockStatementGroupContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def switchLabel(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.SwitchLabelContext) + else: + return self.getTypedRuleContext(JavaParser.SwitchLabelContext,i) - # $ANTLR start "variableDeclaratorId" - # Java.g:402:1: variableDeclaratorId : IDENT ( arrayDeclaratorList )? ; - def variableDeclaratorId(self, ): - retval = self.variableDeclaratorId_return() - retval.start = self.input.LT(1) - variableDeclaratorId_StartIndex = self.input.index() - root_0 = None + def blockStatement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.BlockStatementContext) + else: + return self.getTypedRuleContext(JavaParser.BlockStatementContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_switchBlockStatementGroup + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchBlockStatementGroup" ): + listener.enterSwitchBlockStatementGroup(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchBlockStatementGroup" ): + listener.exitSwitchBlockStatementGroup(self) + + + + + def switchBlockStatementGroup(self): + + localctx = JavaParser.SwitchBlockStatementGroupContext(self, self._ctx, self.state) + self.enterRule(localctx, 150, self.RULE_switchBlockStatementGroup) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1017 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1016 + self.switchLabel() + self.state = 1019 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==JavaParser.CASE or _la==JavaParser.DEFAULT): + break + + self.state = 1022 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1021 + self.blockStatement() + self.state = 1024 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.ASSERT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BREAK) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.CONTINUE) | (1 << JavaParser.DO) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.FOR) | (1 << JavaParser.IF) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.RETURN) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SUPER) | (1 << JavaParser.SWITCH) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.THIS) | (1 << JavaParser.THROW) | (1 << JavaParser.TRY) | (1 << JavaParser.VOID) | (1 << JavaParser.WHILE) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.BANG - 67)) | (1 << (JavaParser.TILDE - 67)) | (1 << (JavaParser.INC - 67)) | (1 << (JavaParser.DEC - 67)) | (1 << (JavaParser.ADD - 67)) | (1 << (JavaParser.SUB - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0)): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - IDENT136 = None - arrayDeclaratorList137 = None + class SwitchLabelContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.constantExpression = None # ExpressionContext + self.enumConstantName = None # Token - IDENT136_tree = None + def CASE(self): + return self.getToken(JavaParser.CASE, 0) - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 31): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + def COLON(self): + return self.getToken(JavaParser.COLON, 0) - # Java.g:403:5: ( IDENT ( arrayDeclaratorList )? ) - # Java.g:403:9: IDENT ( arrayDeclaratorList )? - pass - root_0 = self._adaptor.nil() + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - IDENT136=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_variableDeclaratorId6385) - if self._state.backtracking == 0: - IDENT136_tree = self._adaptor.createWithPayload(IDENT136) - root_0 = self._adaptor.becomeRoot(IDENT136_tree, root_0) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - # Java.g:403:16: ( arrayDeclaratorList )? - alt47 = 2 - LA47_0 = self.input.LA(1) + def DEFAULT(self): + return self.getToken(JavaParser.DEFAULT, 0) - if (LA47_0 == LBRACK) : - alt47 = 1 - if alt47 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_variableDeclaratorId6388) - arrayDeclaratorList137 = self.arrayDeclaratorList() + def getRuleIndex(self): + return JavaParser.RULE_switchLabel - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayDeclaratorList137.tree) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchLabel" ): + listener.enterSwitchLabel(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchLabel" ): + listener.exitSwitchLabel(self) + def switchLabel(self): - retval.stop = self.input.LT(-1) + localctx = JavaParser.SwitchLabelContext(self, self._ctx, self.state) + self.enterRule(localctx, 152, self.RULE_switchLabel) + try: + self.state = 1034 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.CASE]: + self.enterOuterAlt(localctx, 1) + self.state = 1026 + self.match(JavaParser.CASE) + self.state = 1029 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,121,self._ctx) + if la_ == 1: + self.state = 1027 + localctx.constantExpression = self.expression(0) + pass - if self._state.backtracking == 0: + elif la_ == 2: + self.state = 1028 + localctx.enumConstantName = self.match(JavaParser.IDENTIFIER) + pass - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + self.state = 1031 + self.match(JavaParser.COLON) + pass + elif token in [JavaParser.DEFAULT]: + self.enterOuterAlt(localctx, 2) + self.state = 1032 + self.match(JavaParser.DEFAULT) + self.state = 1033 + self.match(JavaParser.COLON) + pass + else: + raise NoViableAltException(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 31, variableDeclaratorId_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class ForControlContext(ParserRuleContext): - # $ANTLR end "variableDeclaratorId" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.forUpdate = None # ExpressionListContext - class variableInitializer_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.variableInitializer_return, self).__init__() - - self.tree = None + def enhancedForControl(self): + return self.getTypedRuleContext(JavaParser.EnhancedForControlContext,0) + def SEMI(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.SEMI) + else: + return self.getToken(JavaParser.SEMI, i) + def forInit(self): + return self.getTypedRuleContext(JavaParser.ForInitContext,0) - # $ANTLR start "variableInitializer" - # Java.g:406:1: variableInitializer : ( arrayInitializer | expression ); - def variableInitializer(self, ): - retval = self.variableInitializer_return() - retval.start = self.input.LT(1) - variableInitializer_StartIndex = self.input.index() - root_0 = None + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - arrayInitializer138 = None - expression139 = None + def expressionList(self): + return self.getTypedRuleContext(JavaParser.ExpressionListContext,0) + def getRuleIndex(self): + return JavaParser.RULE_forControl - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 32): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:407:5: ( arrayInitializer | expression ) - alt48 = 2 - LA48_0 = self.input.LA(1) - - if (LA48_0 == LCURLY) : - alt48 = 1 - elif (LA48_0 == DEC or LA48_0 == INC or LA48_0 == LESS_THAN or LA48_0 == LOGICAL_NOT or (LPAREN <= LA48_0 <= MINUS) or LA48_0 == NOT or LA48_0 == PLUS or LA48_0 == BOOLEAN or LA48_0 == BYTE or LA48_0 == CHAR or LA48_0 == DOUBLE or LA48_0 == FALSE or LA48_0 == FLOAT or (INT <= LA48_0 <= LONG) or (NEW <= LA48_0 <= NULL) or LA48_0 == SHORT or LA48_0 == SUPER or LA48_0 == THIS or LA48_0 == TRUE or LA48_0 == VOID or (IDENT <= LA48_0 <= STRING_LITERAL)) : - alt48 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterForControl" ): + listener.enterForControl(self) - nvae = NoViableAltException("", 48, 0, self.input) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitForControl" ): + listener.exitForControl(self) - raise nvae - if alt48 == 1: - # Java.g:407:9: arrayInitializer - pass - root_0 = self._adaptor.nil() - self._state.following.append(self.FOLLOW_arrayInitializer_in_variableInitializer6408) - arrayInitializer138 = self.arrayInitializer() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayInitializer138.tree) + def forControl(self): + localctx = JavaParser.ForControlContext(self, self._ctx, self.state) + self.enterRule(localctx, 154, self.RULE_forControl) + self._la = 0 # Token type + try: + self.state = 1048 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,126,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1036 + self.enhancedForControl() + pass - elif alt48 == 2: - # Java.g:408:9: expression - pass - root_0 = self._adaptor.nil() + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1038 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1037 + self.forInit() - self._state.following.append(self.FOLLOW_expression_in_variableInitializer6418) - expression139 = self.expression() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression139.tree) + self.state = 1040 + self.match(JavaParser.SEMI) + self.state = 1042 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1041 + self.expression(0) - retval.stop = self.input.LT(-1) + self.state = 1044 + self.match(JavaParser.SEMI) + self.state = 1046 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1045 + localctx.forUpdate = self.expressionList() - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + pass - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 32, variableInitializer_StartIndex, success) - - pass - return retval + self.exitRule() + return localctx - # $ANTLR end "variableInitializer" + class ForInitContext(ParserRuleContext): - class arrayDeclarator_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.arrayDeclarator_return, self).__init__() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self.tree = None + def localVariableDeclaration(self): + return self.getTypedRuleContext(JavaParser.LocalVariableDeclarationContext,0) + def expressionList(self): + return self.getTypedRuleContext(JavaParser.ExpressionListContext,0) - # $ANTLR start "arrayDeclarator" - # Java.g:411:1: arrayDeclarator : LBRACK RBRACK -> ^( ARRAY_DECLARATOR ) ; - def arrayDeclarator(self, ): + def getRuleIndex(self): + return JavaParser.RULE_forInit - retval = self.arrayDeclarator_return() - retval.start = self.input.LT(1) - arrayDeclarator_StartIndex = self.input.index() - root_0 = None + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterForInit" ): + listener.enterForInit(self) - LBRACK140 = None - RBRACK141 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitForInit" ): + listener.exitForInit(self) - LBRACK140_tree = None - RBRACK141_tree = None - stream_RBRACK = RewriteRuleTokenStream(self._adaptor, "token RBRACK") - stream_LBRACK = RewriteRuleTokenStream(self._adaptor, "token LBRACK") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 33): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:412:5: ( LBRACK RBRACK -> ^( ARRAY_DECLARATOR ) ) - # Java.g:412:9: LBRACK RBRACK - pass - LBRACK140=self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_arrayDeclarator6437) - if self._state.backtracking == 0: - stream_LBRACK.add(LBRACK140) - RBRACK141=self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_arrayDeclarator6439) - if self._state.backtracking == 0: - stream_RBRACK.add(RBRACK141) - - # AST Rewrite - # elements: - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - root_0 = self._adaptor.nil() - # 413:9: -> ^( ARRAY_DECLARATOR ) - # Java.g:413:13: ^( ARRAY_DECLARATOR ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ARRAY_DECLARATOR, "ARRAY_DECLARATOR"), root_1) + def forInit(self): - self._adaptor.addChild(root_0, root_1) + localctx = JavaParser.ForInitContext(self, self._ctx, self.state) + self.enterRule(localctx, 156, self.RULE_forInit) + try: + self.state = 1052 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,127,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1050 + self.localVariableDeclaration() + pass + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1051 + self.expressionList() + pass - retval.tree = root_0 + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class EnhancedForControlContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - retval.stop = self.input.LT(-1) + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 33, arrayDeclarator_StartIndex, success) + def COLON(self): + return self.getToken(JavaParser.COLON, 0) - pass - return retval + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - # $ANTLR end "arrayDeclarator" - class arrayDeclaratorList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.arrayDeclaratorList_return, self).__init__() + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) - self.tree = None + def getRuleIndex(self): + return JavaParser.RULE_enhancedForControl + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnhancedForControl" ): + listener.enterEnhancedForControl(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnhancedForControl" ): + listener.exitEnhancedForControl(self) - # $ANTLR start "arrayDeclaratorList" - # Java.g:416:1: arrayDeclaratorList : ( arrayDeclarator )+ -> ^( ARRAY_DECLARATOR_LIST ( arrayDeclarator )+ ) ; - def arrayDeclaratorList(self, ): - retval = self.arrayDeclaratorList_return() - retval.start = self.input.LT(1) - arrayDeclaratorList_StartIndex = self.input.index() - root_0 = None - arrayDeclarator142 = None + def enhancedForControl(self): - stream_arrayDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclarator") - success = False + localctx = JavaParser.EnhancedForControlContext(self, self._ctx, self.state) + self.enterRule(localctx, 158, self.RULE_enhancedForControl) try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 34): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:417:5: ( ( arrayDeclarator )+ -> ^( ARRAY_DECLARATOR_LIST ( arrayDeclarator )+ ) ) - # Java.g:417:9: ( arrayDeclarator )+ - pass - # Java.g:417:9: ( arrayDeclarator )+ - cnt49 = 0 - while True: #loop49 - alt49 = 2 - LA49_0 = self.input.LA(1) - - if (LA49_0 == LBRACK) : - LA49_2 = self.input.LA(2) - - if (self.synpred58_Java()) : - alt49 = 1 + self.enterOuterAlt(localctx, 1) + self.state = 1057 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,128,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1054 + self.variableModifier() + self.state = 1059 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,128,self._ctx) + self.state = 1060 + self.typeType() + self.state = 1061 + self.variableDeclaratorId() + self.state = 1062 + self.match(JavaParser.COLON) + self.state = 1063 + self.expression(0) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class ParExpressionContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - if alt49 == 1: - # Java.g:0:0: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_arrayDeclaratorList6473) - arrayDeclarator142 = self.arrayDeclarator() + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclarator.add(arrayDeclarator142.tree) + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - else: - if cnt49 >= 1: - break #loop49 + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) - if self._state.backtracking > 0: - raise BacktrackingFailed + def getRuleIndex(self): + return JavaParser.RULE_parExpression - eee = EarlyExitException(49, self.input) - raise eee + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterParExpression" ): + listener.enterParExpression(self) - cnt49 += 1 + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitParExpression" ): + listener.exitParExpression(self) - # AST Rewrite - # elements: arrayDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - retval.tree = root_0 - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def parExpression(self): - root_0 = self._adaptor.nil() - # 418:9: -> ^( ARRAY_DECLARATOR_LIST ( arrayDeclarator )+ ) - # Java.g:418:13: ^( ARRAY_DECLARATOR_LIST ( arrayDeclarator )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ARRAY_DECLARATOR_LIST, "ARRAY_DECLARATOR_LIST"), root_1) + localctx = JavaParser.ParExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 160, self.RULE_parExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1065 + self.match(JavaParser.LPAREN) + self.state = 1066 + self.expression(0) + self.state = 1067 + self.match(JavaParser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # Java.g:418:37: ( arrayDeclarator )+ - if not (stream_arrayDeclarator.hasNext()): - raise RewriteEarlyExitException() + class ExpressionListContext(ParserRuleContext): - while stream_arrayDeclarator.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclarator.nextTree()) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ExpressionContext) + else: + return self.getTypedRuleContext(JavaParser.ExpressionContext,i) - stream_arrayDeclarator.reset() - self._adaptor.addChild(root_0, root_1) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + def getRuleIndex(self): + return JavaParser.RULE_expressionList + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExpressionList" ): + listener.enterExpressionList(self) - retval.tree = root_0 + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExpressionList" ): + listener.exitExpressionList(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def expressionList(self): - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + localctx = JavaParser.ExpressionListContext(self, self._ctx, self.state) + self.enterRule(localctx, 162, self.RULE_expressionList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1069 + self.expression(0) + self.state = 1074 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 1070 + self.match(JavaParser.COMMA) + self.state = 1071 + self.expression(0) + self.state = 1076 + self._errHandler.sync(self) + _la = self._input.LA(1) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodCallContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def expressionList(self): + return self.getTypedRuleContext(JavaParser.ExpressionListContext,0) + + + def THIS(self): + return self.getToken(JavaParser.THIS, 0) + + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) + + def getRuleIndex(self): + return JavaParser.RULE_methodCall + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodCall" ): + listener.enterMethodCall(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodCall" ): + listener.exitMethodCall(self) + + + + + def methodCall(self): + + localctx = JavaParser.MethodCallContext(self, self._ctx, self.state) + self.enterRule(localctx, 164, self.RULE_methodCall) + self._la = 0 # Token type + try: + self.state = 1095 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 1077 + self.match(JavaParser.IDENTIFIER) + self.state = 1078 + self.match(JavaParser.LPAREN) + self.state = 1080 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1079 + self.expressionList() + + + self.state = 1082 + self.match(JavaParser.RPAREN) + pass + elif token in [JavaParser.THIS]: + self.enterOuterAlt(localctx, 2) + self.state = 1083 + self.match(JavaParser.THIS) + self.state = 1084 + self.match(JavaParser.LPAREN) + self.state = 1086 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1085 + self.expressionList() + + + self.state = 1088 + self.match(JavaParser.RPAREN) + pass + elif token in [JavaParser.SUPER]: + self.enterOuterAlt(localctx, 3) + self.state = 1089 + self.match(JavaParser.SUPER) + self.state = 1090 + self.match(JavaParser.LPAREN) + self.state = 1092 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1091 + self.expressionList() + + + self.state = 1094 + self.match(JavaParser.RPAREN) + pass + else: + raise NoViableAltException(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 34, arrayDeclaratorList_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class ExpressionContext(ParserRuleContext): - # $ANTLR end "arrayDeclaratorList" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.prefix = None # Token + self.bop = None # Token + self.postfix = None # Token - class arrayInitializer_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.arrayInitializer_return, self).__init__() + def primary(self): + return self.getTypedRuleContext(JavaParser.PrimaryContext,0) - self.tree = None + def methodCall(self): + return self.getTypedRuleContext(JavaParser.MethodCallContext,0) + def NEW(self): + return self.getToken(JavaParser.NEW, 0) - # $ANTLR start "arrayInitializer" - # Java.g:421:1: arrayInitializer : LCURLY ( variableInitializer ( COMMA variableInitializer )* ( COMMA )? )? RCURLY -> ^( ARRAY_INITIALIZER[$LCURLY, \"ARRAY_INITIALIZER\"] ( variableInitializer )* ) ; - def arrayInitializer(self, ): + def creator(self): + return self.getTypedRuleContext(JavaParser.CreatorContext,0) - retval = self.arrayInitializer_return() - retval.start = self.input.LT(1) - arrayInitializer_StartIndex = self.input.index() - root_0 = None - LCURLY143 = None - COMMA145 = None - COMMA147 = None - RCURLY148 = None - variableInitializer144 = None + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) - variableInitializer146 = None + def typeType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeTypeContext) + else: + return self.getTypedRuleContext(JavaParser.TypeTypeContext,i) - LCURLY143_tree = None - COMMA145_tree = None - COMMA147_tree = None - RCURLY148_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_variableInitializer = RewriteRuleSubtreeStream(self._adaptor, "rule variableInitializer") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 35): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:422:5: ( LCURLY ( variableInitializer ( COMMA variableInitializer )* ( COMMA )? )? RCURLY -> ^( ARRAY_INITIALIZER[$LCURLY, \"ARRAY_INITIALIZER\"] ( variableInitializer )* ) ) - # Java.g:422:9: LCURLY ( variableInitializer ( COMMA variableInitializer )* ( COMMA )? )? RCURLY - pass - LCURLY143=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_arrayInitializer6511) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY143) - # Java.g:422:16: ( variableInitializer ( COMMA variableInitializer )* ( COMMA )? )? - alt52 = 2 - LA52_0 = self.input.LA(1) - - if (LA52_0 == DEC or LA52_0 == INC or LA52_0 == LCURLY or LA52_0 == LESS_THAN or LA52_0 == LOGICAL_NOT or (LPAREN <= LA52_0 <= MINUS) or LA52_0 == NOT or LA52_0 == PLUS or LA52_0 == BOOLEAN or LA52_0 == BYTE or LA52_0 == CHAR or LA52_0 == DOUBLE or LA52_0 == FALSE or LA52_0 == FLOAT or (INT <= LA52_0 <= LONG) or (NEW <= LA52_0 <= NULL) or LA52_0 == SHORT or LA52_0 == SUPER or LA52_0 == THIS or LA52_0 == TRUE or LA52_0 == VOID or (IDENT <= LA52_0 <= STRING_LITERAL)) : - alt52 = 1 - if alt52 == 1: - # Java.g:422:17: variableInitializer ( COMMA variableInitializer )* ( COMMA )? - pass - self._state.following.append(self.FOLLOW_variableInitializer_in_arrayInitializer6514) - variableInitializer144 = self.variableInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableInitializer.add(variableInitializer144.tree) - # Java.g:422:37: ( COMMA variableInitializer )* - while True: #loop50 - alt50 = 2 - LA50_0 = self.input.LA(1) - - if (LA50_0 == COMMA) : - LA50_1 = self.input.LA(2) - - if (LA50_1 == DEC or LA50_1 == INC or LA50_1 == LCURLY or LA50_1 == LESS_THAN or LA50_1 == LOGICAL_NOT or (LPAREN <= LA50_1 <= MINUS) or LA50_1 == NOT or LA50_1 == PLUS or LA50_1 == BOOLEAN or LA50_1 == BYTE or LA50_1 == CHAR or LA50_1 == DOUBLE or LA50_1 == FALSE or LA50_1 == FLOAT or (INT <= LA50_1 <= LONG) or (NEW <= LA50_1 <= NULL) or LA50_1 == SHORT or LA50_1 == SUPER or LA50_1 == THIS or LA50_1 == TRUE or LA50_1 == VOID or (IDENT <= LA50_1 <= STRING_LITERAL)) : - alt50 = 1 - - - - - if alt50 == 1: - # Java.g:422:38: COMMA variableInitializer - pass - COMMA145=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_arrayInitializer6517) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA145) - self._state.following.append(self.FOLLOW_variableInitializer_in_arrayInitializer6519) - variableInitializer146 = self.variableInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableInitializer.add(variableInitializer146.tree) + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ExpressionContext) + else: + return self.getTypedRuleContext(JavaParser.ExpressionContext,i) - else: - break #loop50 - # Java.g:422:66: ( COMMA )? - alt51 = 2 - LA51_0 = self.input.LA(1) - if (LA51_0 == COMMA) : - alt51 = 1 - if alt51 == 1: - # Java.g:0:0: COMMA - pass - COMMA147=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_arrayInitializer6523) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA147) + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + def BITAND(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.BITAND) + else: + return self.getToken(JavaParser.BITAND, i) + def ADD(self): + return self.getToken(JavaParser.ADD, 0) + def SUB(self): + return self.getToken(JavaParser.SUB, 0) + def INC(self): + return self.getToken(JavaParser.INC, 0) - RCURLY148=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_arrayInitializer6528) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY148) + def DEC(self): + return self.getToken(JavaParser.DEC, 0) - # AST Rewrite - # elements: variableInitializer - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def TILDE(self): + return self.getToken(JavaParser.TILDE, 0) - retval.tree = root_0 + def BANG(self): + return self.getToken(JavaParser.BANG, 0) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def lambdaExpression(self): + return self.getTypedRuleContext(JavaParser.LambdaExpressionContext,0) - root_0 = self._adaptor.nil() - # 423:9: -> ^( ARRAY_INITIALIZER[$LCURLY, \"ARRAY_INITIALIZER\"] ( variableInitializer )* ) - # Java.g:423:13: ^( ARRAY_INITIALIZER[$LCURLY, \"ARRAY_INITIALIZER\"] ( variableInitializer )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ARRAY_INITIALIZER, LCURLY143, "ARRAY_INITIALIZER"), root_1) + def COLONCOLON(self): + return self.getToken(JavaParser.COLONCOLON, 0) - # Java.g:423:63: ( variableInitializer )* - while stream_variableInitializer.hasNext(): - self._adaptor.addChild(root_1, stream_variableInitializer.nextTree()) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + def typeArguments(self): + return self.getTypedRuleContext(JavaParser.TypeArgumentsContext,0) - stream_variableInitializer.reset(); - self._adaptor.addChild(root_0, root_1) + def classType(self): + return self.getTypedRuleContext(JavaParser.ClassTypeContext,0) + def MUL(self): + return self.getToken(JavaParser.MUL, 0) - retval.tree = root_0 + def DIV(self): + return self.getToken(JavaParser.DIV, 0) + def MOD(self): + return self.getToken(JavaParser.MOD, 0) + def LT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LT) + else: + return self.getToken(JavaParser.LT, i) - retval.stop = self.input.LT(-1) + def GT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.GT) + else: + return self.getToken(JavaParser.GT, i) - if self._state.backtracking == 0: + def LE(self): + return self.getToken(JavaParser.LE, 0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def GE(self): + return self.getToken(JavaParser.GE, 0) + def EQUAL(self): + return self.getToken(JavaParser.EQUAL, 0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 35, arrayInitializer_StartIndex, success) + def NOTEQUAL(self): + return self.getToken(JavaParser.NOTEQUAL, 0) - pass - return retval + def CARET(self): + return self.getToken(JavaParser.CARET, 0) - # $ANTLR end "arrayInitializer" + def BITOR(self): + return self.getToken(JavaParser.BITOR, 0) - class throwsClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.throwsClause_return, self).__init__() + def AND(self): + return self.getToken(JavaParser.AND, 0) - self.tree = None + def OR(self): + return self.getToken(JavaParser.OR, 0) + def COLON(self): + return self.getToken(JavaParser.COLON, 0) + def QUESTION(self): + return self.getToken(JavaParser.QUESTION, 0) + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) - # $ANTLR start "throwsClause" - # Java.g:426:1: throwsClause : THROWS qualifiedIdentList -> ^( THROWS_CLAUSE[$THROWS, \"THROWS_CLAUSE\"] qualifiedIdentList ) ; - def throwsClause(self, ): + def ADD_ASSIGN(self): + return self.getToken(JavaParser.ADD_ASSIGN, 0) - retval = self.throwsClause_return() - retval.start = self.input.LT(1) - throwsClause_StartIndex = self.input.index() - root_0 = None + def SUB_ASSIGN(self): + return self.getToken(JavaParser.SUB_ASSIGN, 0) - THROWS149 = None - qualifiedIdentList150 = None + def MUL_ASSIGN(self): + return self.getToken(JavaParser.MUL_ASSIGN, 0) + def DIV_ASSIGN(self): + return self.getToken(JavaParser.DIV_ASSIGN, 0) - THROWS149_tree = None - stream_THROWS = RewriteRuleTokenStream(self._adaptor, "token THROWS") - stream_qualifiedIdentList = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedIdentList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 36): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:427:5: ( THROWS qualifiedIdentList -> ^( THROWS_CLAUSE[$THROWS, \"THROWS_CLAUSE\"] qualifiedIdentList ) ) - # Java.g:427:9: THROWS qualifiedIdentList - pass - THROWS149=self.match(self.input, THROWS, self.FOLLOW_THROWS_in_throwsClause6566) - if self._state.backtracking == 0: - stream_THROWS.add(THROWS149) - self._state.following.append(self.FOLLOW_qualifiedIdentList_in_throwsClause6568) - qualifiedIdentList150 = self.qualifiedIdentList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedIdentList.add(qualifiedIdentList150.tree) - - # AST Rewrite - # elements: qualifiedIdentList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def AND_ASSIGN(self): + return self.getToken(JavaParser.AND_ASSIGN, 0) + def OR_ASSIGN(self): + return self.getToken(JavaParser.OR_ASSIGN, 0) - root_0 = self._adaptor.nil() - # 428:9: -> ^( THROWS_CLAUSE[$THROWS, \"THROWS_CLAUSE\"] qualifiedIdentList ) - # Java.g:428:13: ^( THROWS_CLAUSE[$THROWS, \"THROWS_CLAUSE\"] qualifiedIdentList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(THROWS_CLAUSE, THROWS149, "THROWS_CLAUSE"), root_1) + def XOR_ASSIGN(self): + return self.getToken(JavaParser.XOR_ASSIGN, 0) - self._adaptor.addChild(root_1, stream_qualifiedIdentList.nextTree()) + def RSHIFT_ASSIGN(self): + return self.getToken(JavaParser.RSHIFT_ASSIGN, 0) - self._adaptor.addChild(root_0, root_1) + def URSHIFT_ASSIGN(self): + return self.getToken(JavaParser.URSHIFT_ASSIGN, 0) + def LSHIFT_ASSIGN(self): + return self.getToken(JavaParser.LSHIFT_ASSIGN, 0) + def MOD_ASSIGN(self): + return self.getToken(JavaParser.MOD_ASSIGN, 0) - retval.tree = root_0 + def DOT(self): + return self.getToken(JavaParser.DOT, 0) + def THIS(self): + return self.getToken(JavaParser.THIS, 0) + def innerCreator(self): + return self.getTypedRuleContext(JavaParser.InnerCreatorContext,0) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def superSuffix(self): + return self.getTypedRuleContext(JavaParser.SuperSuffixContext,0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 36, throwsClause_StartIndex, success) + def explicitGenericInvocation(self): + return self.getTypedRuleContext(JavaParser.ExplicitGenericInvocationContext,0) - pass - return retval - # $ANTLR end "throwsClause" + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) - class modifierList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.modifierList_return, self).__init__() - self.tree = None + def LBRACK(self): + return self.getToken(JavaParser.LBRACK, 0) + def RBRACK(self): + return self.getToken(JavaParser.RBRACK, 0) + def INSTANCEOF(self): + return self.getToken(JavaParser.INSTANCEOF, 0) + def getRuleIndex(self): + return JavaParser.RULE_expression - # $ANTLR start "modifierList" - # Java.g:431:1: modifierList : ( modifier )* -> ^( MODIFIER_LIST ( modifier )* ) ; - def modifierList(self, ): + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExpression" ): + listener.enterExpression(self) - retval = self.modifierList_return() - retval.start = self.input.LT(1) - modifierList_StartIndex = self.input.index() - root_0 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExpression" ): + listener.exitExpression(self) - modifier151 = None - stream_modifier = RewriteRuleSubtreeStream(self._adaptor, "rule modifier") - success = False + def expression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = JavaParser.ExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 166 + self.enterRecursionRule(localctx, 166, self.RULE_expression, _p) + self._la = 0 # Token type try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 37): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + self.enterOuterAlt(localctx, 1) + self.state = 1141 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,139,self._ctx) + if la_ == 1: + self.state = 1098 + self.primary() + pass - # Java.g:432:5: ( ( modifier )* -> ^( MODIFIER_LIST ( modifier )* ) ) - # Java.g:432:9: ( modifier )* - pass - # Java.g:432:9: ( modifier )* - while True: #loop53 - alt53 = 2 - LA53_0 = self.input.LA(1) - - if (LA53_0 == AT) : - LA53_2 = self.input.LA(2) - - if (LA53_2 == IDENT) : - alt53 = 1 - - - elif (LA53_0 == ABSTRACT or LA53_0 == FINAL or LA53_0 == NATIVE or (PRIVATE <= LA53_0 <= PUBLIC) or (STATIC <= LA53_0 <= STRICTFP) or LA53_0 == SYNCHRONIZED or LA53_0 == TRANSIENT or LA53_0 == VOLATILE) : - alt53 = 1 + elif la_ == 2: + self.state = 1099 + self.methodCall() + pass + elif la_ == 3: + self.state = 1100 + self.match(JavaParser.NEW) + self.state = 1101 + self.creator() + pass + + elif la_ == 4: + self.state = 1102 + self.match(JavaParser.LPAREN) + self.state = 1106 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,134,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1103 + self.annotation() + self.state = 1108 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,134,self._ctx) + + self.state = 1109 + self.typeType() + self.state = 1114 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.BITAND: + self.state = 1110 + self.match(JavaParser.BITAND) + self.state = 1111 + self.typeType() + self.state = 1116 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1117 + self.match(JavaParser.RPAREN) + self.state = 1118 + self.expression(21) + pass + + elif la_ == 5: + self.state = 1120 + localctx.prefix = self._input.LT(1) + _la = self._input.LA(1) + if not(((((_la - 83)) & ~0x3f) == 0 and ((1 << (_la - 83)) & ((1 << (JavaParser.INC - 83)) | (1 << (JavaParser.DEC - 83)) | (1 << (JavaParser.ADD - 83)) | (1 << (JavaParser.SUB - 83)))) != 0)): + localctx.prefix = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1121 + self.expression(19) + pass + + elif la_ == 6: + self.state = 1122 + localctx.prefix = self._input.LT(1) + _la = self._input.LA(1) + if not(_la==JavaParser.BANG or _la==JavaParser.TILDE): + localctx.prefix = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1123 + self.expression(18) + pass + + elif la_ == 7: + self.state = 1124 + self.lambdaExpression() + pass + + elif la_ == 8: + self.state = 1125 + self.typeType() + self.state = 1126 + self.match(JavaParser.COLONCOLON) + self.state = 1132 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LT, JavaParser.IDENTIFIER]: + self.state = 1128 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1127 + self.typeArguments() + + + self.state = 1130 + self.match(JavaParser.IDENTIFIER) + pass + elif token in [JavaParser.NEW]: + self.state = 1131 + self.match(JavaParser.NEW) + pass + else: + raise NoViableAltException(self) + + pass + + elif la_ == 9: + self.state = 1134 + self.classType() + self.state = 1135 + self.match(JavaParser.COLONCOLON) + self.state = 1137 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1136 + self.typeArguments() + + + self.state = 1139 + self.match(JavaParser.NEW) + pass + + + self._ctx.stop = self._input.LT(-1) + self.state = 1223 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,145,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + self.state = 1221 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,144,self._ctx) + if la_ == 1: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1143 + if not self.precpred(self._ctx, 17): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 17)") + self.state = 1144 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(((((_la - 87)) & ~0x3f) == 0 and ((1 << (_la - 87)) & ((1 << (JavaParser.MUL - 87)) | (1 << (JavaParser.DIV - 87)) | (1 << (JavaParser.MOD - 87)))) != 0)): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1145 + self.expression(18) + pass + + elif la_ == 2: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1146 + if not self.precpred(self._ctx, 16): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 16)") + self.state = 1147 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(_la==JavaParser.ADD or _la==JavaParser.SUB): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1148 + self.expression(17) + pass + + elif la_ == 3: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1149 + if not self.precpred(self._ctx, 15): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 15)") + self.state = 1157 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,140,self._ctx) + if la_ == 1: + self.state = 1150 + self.match(JavaParser.LT) + self.state = 1151 + self.match(JavaParser.LT) + pass + + elif la_ == 2: + self.state = 1152 + self.match(JavaParser.GT) + self.state = 1153 + self.match(JavaParser.GT) + self.state = 1154 + self.match(JavaParser.GT) + pass + + elif la_ == 3: + self.state = 1155 + self.match(JavaParser.GT) + self.state = 1156 + self.match(JavaParser.GT) + pass + + + self.state = 1159 + self.expression(16) + pass + + elif la_ == 4: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1160 + if not self.precpred(self._ctx, 14): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 14)") + self.state = 1161 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(((((_la - 71)) & ~0x3f) == 0 and ((1 << (_la - 71)) & ((1 << (JavaParser.GT - 71)) | (1 << (JavaParser.LT - 71)) | (1 << (JavaParser.LE - 71)) | (1 << (JavaParser.GE - 71)))) != 0)): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1162 + self.expression(15) + pass + + elif la_ == 5: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1163 + if not self.precpred(self._ctx, 12): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 12)") + self.state = 1164 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(_la==JavaParser.EQUAL or _la==JavaParser.NOTEQUAL): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1165 + self.expression(13) + pass + + elif la_ == 6: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1166 + if not self.precpred(self._ctx, 11): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 11)") + self.state = 1167 + localctx.bop = self.match(JavaParser.BITAND) + self.state = 1168 + self.expression(12) + pass + + elif la_ == 7: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1169 + if not self.precpred(self._ctx, 10): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 10)") + self.state = 1170 + localctx.bop = self.match(JavaParser.CARET) + self.state = 1171 + self.expression(11) + pass + + elif la_ == 8: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1172 + if not self.precpred(self._ctx, 9): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 9)") + self.state = 1173 + localctx.bop = self.match(JavaParser.BITOR) + self.state = 1174 + self.expression(10) + pass + + elif la_ == 9: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1175 + if not self.precpred(self._ctx, 8): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 8)") + self.state = 1176 + localctx.bop = self.match(JavaParser.AND) + self.state = 1177 + self.expression(9) + pass + + elif la_ == 10: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1178 + if not self.precpred(self._ctx, 7): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 7)") + self.state = 1179 + localctx.bop = self.match(JavaParser.OR) + self.state = 1180 + self.expression(8) + pass + + elif la_ == 11: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1181 + if not self.precpred(self._ctx, 6): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 6)") + self.state = 1182 + localctx.bop = self.match(JavaParser.QUESTION) + self.state = 1183 + self.expression(0) + self.state = 1184 + self.match(JavaParser.COLON) + self.state = 1185 + self.expression(6) + pass + + elif la_ == 12: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1187 + if not self.precpred(self._ctx, 5): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 5)") + self.state = 1188 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(((((_la - 70)) & ~0x3f) == 0 and ((1 << (_la - 70)) & ((1 << (JavaParser.ASSIGN - 70)) | (1 << (JavaParser.ADD_ASSIGN - 70)) | (1 << (JavaParser.SUB_ASSIGN - 70)) | (1 << (JavaParser.MUL_ASSIGN - 70)) | (1 << (JavaParser.DIV_ASSIGN - 70)) | (1 << (JavaParser.AND_ASSIGN - 70)) | (1 << (JavaParser.OR_ASSIGN - 70)) | (1 << (JavaParser.XOR_ASSIGN - 70)) | (1 << (JavaParser.MOD_ASSIGN - 70)) | (1 << (JavaParser.LSHIFT_ASSIGN - 70)) | (1 << (JavaParser.RSHIFT_ASSIGN - 70)) | (1 << (JavaParser.URSHIFT_ASSIGN - 70)))) != 0)): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1189 + self.expression(5) + pass + + elif la_ == 13: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1190 + if not self.precpred(self._ctx, 25): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 25)") + self.state = 1191 + localctx.bop = self.match(JavaParser.DOT) + self.state = 1203 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,142,self._ctx) + if la_ == 1: + self.state = 1192 + self.match(JavaParser.IDENTIFIER) + pass + + elif la_ == 2: + self.state = 1193 + self.methodCall() + pass + + elif la_ == 3: + self.state = 1194 + self.match(JavaParser.THIS) + pass + + elif la_ == 4: + self.state = 1195 + self.match(JavaParser.NEW) + self.state = 1197 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1196 + self.nonWildcardTypeArguments() + + + self.state = 1199 + self.innerCreator() + pass + + elif la_ == 5: + self.state = 1200 + self.match(JavaParser.SUPER) + self.state = 1201 + self.superSuffix() + pass + + elif la_ == 6: + self.state = 1202 + self.explicitGenericInvocation() + pass + + + pass + + elif la_ == 14: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1205 + if not self.precpred(self._ctx, 24): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 24)") + self.state = 1206 + self.match(JavaParser.LBRACK) + self.state = 1207 + self.expression(0) + self.state = 1208 + self.match(JavaParser.RBRACK) + pass + + elif la_ == 15: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1210 + if not self.precpred(self._ctx, 20): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 20)") + self.state = 1211 + localctx.postfix = self._input.LT(1) + _la = self._input.LA(1) + if not(_la==JavaParser.INC or _la==JavaParser.DEC): + localctx.postfix = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + pass + + elif la_ == 16: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1212 + if not self.precpred(self._ctx, 13): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 13)") + self.state = 1213 + localctx.bop = self.match(JavaParser.INSTANCEOF) + self.state = 1214 + self.typeType() + pass + + elif la_ == 17: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1215 + if not self.precpred(self._ctx, 3): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") + self.state = 1216 + self.match(JavaParser.COLONCOLON) + self.state = 1218 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1217 + self.typeArguments() + + + self.state = 1220 + self.match(JavaParser.IDENTIFIER) + pass + + + self.state = 1225 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,145,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx - if alt53 == 1: - # Java.g:0:0: modifier - pass - self._state.following.append(self.FOLLOW_modifier_in_modifierList6605) - modifier151 = self.modifier() + class LambdaExpressionContext(ParserRuleContext): - self._state.following.pop() - if self._state.backtracking == 0: - stream_modifier.add(modifier151.tree) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def lambdaParameters(self): + return self.getTypedRuleContext(JavaParser.LambdaParametersContext,0) - else: - break #loop53 - # AST Rewrite - # elements: modifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def ARROW(self): + return self.getToken(JavaParser.ARROW, 0) - retval.tree = root_0 + def lambdaBody(self): + return self.getTypedRuleContext(JavaParser.LambdaBodyContext,0) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def getRuleIndex(self): + return JavaParser.RULE_lambdaExpression - root_0 = self._adaptor.nil() - # 433:9: -> ^( MODIFIER_LIST ( modifier )* ) - # Java.g:433:13: ^( MODIFIER_LIST ( modifier )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(MODIFIER_LIST, "MODIFIER_LIST"), root_1) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaExpression" ): + listener.enterLambdaExpression(self) - # Java.g:433:29: ( modifier )* - while stream_modifier.hasNext(): - self._adaptor.addChild(root_1, stream_modifier.nextTree()) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaExpression" ): + listener.exitLambdaExpression(self) - stream_modifier.reset(); - self._adaptor.addChild(root_0, root_1) + def lambdaExpression(self): + localctx = JavaParser.LambdaExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 168, self.RULE_lambdaExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1226 + self.lambdaParameters() + self.state = 1227 + self.match(JavaParser.ARROW) + self.state = 1228 + self.lambdaBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - retval.tree = root_0 + class LambdaParametersContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) - retval.stop = self.input.LT(-1) + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) - if self._state.backtracking == 0: + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def formalParameterList(self): + return self.getTypedRuleContext(JavaParser.FormalParameterListContext,0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_lambdaParameters + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaParameters" ): + listener.enterLambdaParameters(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaParameters" ): + listener.exitLambdaParameters(self) + + + + + def lambdaParameters(self): + + localctx = JavaParser.LambdaParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 170, self.RULE_lambdaParameters) + self._la = 0 # Token type + try: + self.state = 1246 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,148,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1230 + self.match(JavaParser.IDENTIFIER) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1231 + self.match(JavaParser.LPAREN) + self.state = 1233 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.SHORT))) != 0) or _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 1232 + self.formalParameterList() + + + self.state = 1235 + self.match(JavaParser.RPAREN) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1236 + self.match(JavaParser.LPAREN) + self.state = 1237 + self.match(JavaParser.IDENTIFIER) + self.state = 1242 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 1238 + self.match(JavaParser.COMMA) + self.state = 1239 + self.match(JavaParser.IDENTIFIER) + self.state = 1244 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1245 + self.match(JavaParser.RPAREN) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 37, modifierList_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class LambdaBodyContext(ParserRuleContext): - # $ANTLR end "modifierList" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class modifier_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.modifier_return, self).__init__() + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - self.tree = None + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) + def getRuleIndex(self): + return JavaParser.RULE_lambdaBody - # $ANTLR start "modifier" - # Java.g:436:1: modifier : ( PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | NATIVE | SYNCHRONIZED | TRANSIENT | VOLATILE | STRICTFP | localModifier ); - def modifier(self, ): + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaBody" ): + listener.enterLambdaBody(self) - retval = self.modifier_return() - retval.start = self.input.LT(1) - modifier_StartIndex = self.input.index() - root_0 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaBody" ): + listener.exitLambdaBody(self) - PUBLIC152 = None - PROTECTED153 = None - PRIVATE154 = None - STATIC155 = None - ABSTRACT156 = None - NATIVE157 = None - SYNCHRONIZED158 = None - TRANSIENT159 = None - VOLATILE160 = None - STRICTFP161 = None - localModifier162 = None - PUBLIC152_tree = None - PROTECTED153_tree = None - PRIVATE154_tree = None - STATIC155_tree = None - ABSTRACT156_tree = None - NATIVE157_tree = None - SYNCHRONIZED158_tree = None - TRANSIENT159_tree = None - VOLATILE160_tree = None - STRICTFP161_tree = None - success = False + def lambdaBody(self): + + localctx = JavaParser.LambdaBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 172, self.RULE_lambdaBody) try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 38): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:437:5: ( PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | NATIVE | SYNCHRONIZED | TRANSIENT | VOLATILE | STRICTFP | localModifier ) - alt54 = 11 - LA54 = self.input.LA(1) - if LA54 == PUBLIC: - alt54 = 1 - elif LA54 == PROTECTED: - alt54 = 2 - elif LA54 == PRIVATE: - alt54 = 3 - elif LA54 == STATIC: - alt54 = 4 - elif LA54 == ABSTRACT: - alt54 = 5 - elif LA54 == NATIVE: - alt54 = 6 - elif LA54 == SYNCHRONIZED: - alt54 = 7 - elif LA54 == TRANSIENT: - alt54 = 8 - elif LA54 == VOLATILE: - alt54 = 9 - elif LA54 == STRICTFP: - alt54 = 10 - elif LA54 == AT or LA54 == FINAL: - alt54 = 11 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + self.state = 1250 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.NEW, JavaParser.SHORT, JavaParser.SUPER, JavaParser.THIS, JavaParser.VOID, JavaParser.DECIMAL_LITERAL, JavaParser.HEX_LITERAL, JavaParser.OCT_LITERAL, JavaParser.BINARY_LITERAL, JavaParser.FLOAT_LITERAL, JavaParser.HEX_FLOAT_LITERAL, JavaParser.BOOL_LITERAL, JavaParser.CHAR_LITERAL, JavaParser.STRING_LITERAL, JavaParser.NULL_LITERAL, JavaParser.LPAREN, JavaParser.LT, JavaParser.BANG, JavaParser.TILDE, JavaParser.INC, JavaParser.DEC, JavaParser.ADD, JavaParser.SUB, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 1248 + self.expression(0) + pass + elif token in [JavaParser.LBRACE]: + self.enterOuterAlt(localctx, 2) + self.state = 1249 + self.block() + pass + else: + raise NoViableAltException(self) - nvae = NoViableAltException("", 54, 0, self.input) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryContext(ParserRuleContext): - raise nvae + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - if alt54 == 1: - # Java.g:437:9: PUBLIC - pass - root_0 = self._adaptor.nil() + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) - PUBLIC152=self.match(self.input, PUBLIC, self.FOLLOW_PUBLIC_in_modifier6643) - if self._state.backtracking == 0: + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) - PUBLIC152_tree = self._adaptor.createWithPayload(PUBLIC152) - self._adaptor.addChild(root_0, PUBLIC152_tree) + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + def THIS(self): + return self.getToken(JavaParser.THIS, 0) - elif alt54 == 2: - # Java.g:438:9: PROTECTED - pass - root_0 = self._adaptor.nil() + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) - PROTECTED153=self.match(self.input, PROTECTED, self.FOLLOW_PROTECTED_in_modifier6653) - if self._state.backtracking == 0: + def literal(self): + return self.getTypedRuleContext(JavaParser.LiteralContext,0) - PROTECTED153_tree = self._adaptor.createWithPayload(PROTECTED153) - self._adaptor.addChild(root_0, PROTECTED153_tree) + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + def typeTypeOrVoid(self): + return self.getTypedRuleContext(JavaParser.TypeTypeOrVoidContext,0) - elif alt54 == 3: - # Java.g:439:9: PRIVATE - pass - root_0 = self._adaptor.nil() - PRIVATE154=self.match(self.input, PRIVATE, self.FOLLOW_PRIVATE_in_modifier6663) - if self._state.backtracking == 0: + def DOT(self): + return self.getToken(JavaParser.DOT, 0) - PRIVATE154_tree = self._adaptor.createWithPayload(PRIVATE154) - self._adaptor.addChild(root_0, PRIVATE154_tree) + def CLASS(self): + return self.getToken(JavaParser.CLASS, 0) + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) - elif alt54 == 4: - # Java.g:440:9: STATIC - pass - root_0 = self._adaptor.nil() + def explicitGenericInvocationSuffix(self): + return self.getTypedRuleContext(JavaParser.ExplicitGenericInvocationSuffixContext,0) - STATIC155=self.match(self.input, STATIC, self.FOLLOW_STATIC_in_modifier6673) - if self._state.backtracking == 0: - STATIC155_tree = self._adaptor.createWithPayload(STATIC155) - self._adaptor.addChild(root_0, STATIC155_tree) + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) + def getRuleIndex(self): + return JavaParser.RULE_primary - elif alt54 == 5: - # Java.g:441:9: ABSTRACT - pass - root_0 = self._adaptor.nil() + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimary" ): + listener.enterPrimary(self) - ABSTRACT156=self.match(self.input, ABSTRACT, self.FOLLOW_ABSTRACT_in_modifier6683) - if self._state.backtracking == 0: + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimary" ): + listener.exitPrimary(self) - ABSTRACT156_tree = self._adaptor.createWithPayload(ABSTRACT156) - self._adaptor.addChild(root_0, ABSTRACT156_tree) - elif alt54 == 6: - # Java.g:442:9: NATIVE - pass - root_0 = self._adaptor.nil() + def primary(self): - NATIVE157=self.match(self.input, NATIVE, self.FOLLOW_NATIVE_in_modifier6693) - if self._state.backtracking == 0: + localctx = JavaParser.PrimaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 174, self.RULE_primary) + try: + self.state = 1270 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,151,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1252 + self.match(JavaParser.LPAREN) + self.state = 1253 + self.expression(0) + self.state = 1254 + self.match(JavaParser.RPAREN) + pass - NATIVE157_tree = self._adaptor.createWithPayload(NATIVE157) - self._adaptor.addChild(root_0, NATIVE157_tree) + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1256 + self.match(JavaParser.THIS) + pass + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1257 + self.match(JavaParser.SUPER) + pass + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1258 + self.literal() + pass - elif alt54 == 7: - # Java.g:443:9: SYNCHRONIZED - pass - root_0 = self._adaptor.nil() + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 1259 + self.match(JavaParser.IDENTIFIER) + pass - SYNCHRONIZED158=self.match(self.input, SYNCHRONIZED, self.FOLLOW_SYNCHRONIZED_in_modifier6703) - if self._state.backtracking == 0: + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 1260 + self.typeTypeOrVoid() + self.state = 1261 + self.match(JavaParser.DOT) + self.state = 1262 + self.match(JavaParser.CLASS) + pass - SYNCHRONIZED158_tree = self._adaptor.createWithPayload(SYNCHRONIZED158) - self._adaptor.addChild(root_0, SYNCHRONIZED158_tree) + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 1264 + self.nonWildcardTypeArguments() + self.state = 1268 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.SUPER, JavaParser.IDENTIFIER]: + self.state = 1265 + self.explicitGenericInvocationSuffix() + pass + elif token in [JavaParser.THIS]: + self.state = 1266 + self.match(JavaParser.THIS) + self.state = 1267 + self.arguments() + pass + else: + raise NoViableAltException(self) + pass - elif alt54 == 8: - # Java.g:444:9: TRANSIENT - pass - root_0 = self._adaptor.nil() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - TRANSIENT159=self.match(self.input, TRANSIENT, self.FOLLOW_TRANSIENT_in_modifier6713) - if self._state.backtracking == 0: + class ClassTypeContext(ParserRuleContext): - TRANSIENT159_tree = self._adaptor.createWithPayload(TRANSIENT159) - self._adaptor.addChild(root_0, TRANSIENT159_tree) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + def classOrInterfaceType(self): + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceTypeContext,0) - elif alt54 == 9: - # Java.g:445:9: VOLATILE - pass - root_0 = self._adaptor.nil() - VOLATILE160=self.match(self.input, VOLATILE, self.FOLLOW_VOLATILE_in_modifier6723) - if self._state.backtracking == 0: + def DOT(self): + return self.getToken(JavaParser.DOT, 0) - VOLATILE160_tree = self._adaptor.createWithPayload(VOLATILE160) - self._adaptor.addChild(root_0, VOLATILE160_tree) + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + def typeArguments(self): + return self.getTypedRuleContext(JavaParser.TypeArgumentsContext,0) - elif alt54 == 10: - # Java.g:446:9: STRICTFP - pass - root_0 = self._adaptor.nil() - STRICTFP161=self.match(self.input, STRICTFP, self.FOLLOW_STRICTFP_in_modifier6733) - if self._state.backtracking == 0: + def getRuleIndex(self): + return JavaParser.RULE_classType - STRICTFP161_tree = self._adaptor.createWithPayload(STRICTFP161) - self._adaptor.addChild(root_0, STRICTFP161_tree) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassType" ): + listener.enterClassType(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassType" ): + listener.exitClassType(self) - elif alt54 == 11: - # Java.g:447:9: localModifier - pass - root_0 = self._adaptor.nil() - self._state.following.append(self.FOLLOW_localModifier_in_modifier6743) - localModifier162 = self.localModifier() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, localModifier162.tree) + def classType(self): + localctx = JavaParser.ClassTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 176, self.RULE_classType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1275 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,152,self._ctx) + if la_ == 1: + self.state = 1272 + self.classOrInterfaceType() + self.state = 1273 + self.match(JavaParser.DOT) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + self.state = 1280 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,153,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1277 + self.annotation() + self.state = 1282 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,153,self._ctx) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + self.state = 1283 + self.match(JavaParser.IDENTIFIER) + self.state = 1285 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1284 + self.typeArguments() - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 38, modifier_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class CreatorContext(ParserRuleContext): - # $ANTLR end "modifier" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class localModifierList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.localModifierList_return, self).__init__() + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) - self.tree = None + def createdName(self): + return self.getTypedRuleContext(JavaParser.CreatedNameContext,0) + def classCreatorRest(self): + return self.getTypedRuleContext(JavaParser.ClassCreatorRestContext,0) - # $ANTLR start "localModifierList" - # Java.g:450:1: localModifierList : ( localModifier )* -> ^( LOCAL_MODIFIER_LIST ( localModifier )* ) ; - def localModifierList(self, ): - retval = self.localModifierList_return() - retval.start = self.input.LT(1) - localModifierList_StartIndex = self.input.index() - root_0 = None + def arrayCreatorRest(self): + return self.getTypedRuleContext(JavaParser.ArrayCreatorRestContext,0) - localModifier163 = None + def getRuleIndex(self): + return JavaParser.RULE_creator - stream_localModifier = RewriteRuleSubtreeStream(self._adaptor, "rule localModifier") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 39): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCreator" ): + listener.enterCreator(self) - # Java.g:451:5: ( ( localModifier )* -> ^( LOCAL_MODIFIER_LIST ( localModifier )* ) ) - # Java.g:451:9: ( localModifier )* - pass - # Java.g:451:9: ( localModifier )* - while True: #loop55 - alt55 = 2 - LA55_0 = self.input.LA(1) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCreator" ): + listener.exitCreator(self) - if (LA55_0 == AT or LA55_0 == FINAL) : - alt55 = 1 - if alt55 == 1: - # Java.g:0:0: localModifier - pass - self._state.following.append(self.FOLLOW_localModifier_in_localModifierList6762) - localModifier163 = self.localModifier() - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifier.add(localModifier163.tree) + def creator(self): + localctx = JavaParser.CreatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 178, self.RULE_creator) + try: + self.state = 1296 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LT]: + self.enterOuterAlt(localctx, 1) + self.state = 1287 + self.nonWildcardTypeArguments() + self.state = 1288 + self.createdName() + self.state = 1289 + self.classCreatorRest() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 2) + self.state = 1291 + self.createdName() + self.state = 1294 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LBRACK]: + self.state = 1292 + self.arrayCreatorRest() + pass + elif token in [JavaParser.LPAREN]: + self.state = 1293 + self.classCreatorRest() + pass + else: + raise NoViableAltException(self) - else: - break #loop55 + pass + else: + raise NoViableAltException(self) - # AST Rewrite - # elements: localModifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - retval.tree = root_0 + class CreatedNameContext(ParserRuleContext): - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) - root_0 = self._adaptor.nil() - # 452:9: -> ^( LOCAL_MODIFIER_LIST ( localModifier )* ) - # Java.g:452:12: ^( LOCAL_MODIFIER_LIST ( localModifier )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(LOCAL_MODIFIER_LIST, "LOCAL_MODIFIER_LIST"), root_1) + def typeArgumentsOrDiamond(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeArgumentsOrDiamondContext) + else: + return self.getTypedRuleContext(JavaParser.TypeArgumentsOrDiamondContext,i) - # Java.g:452:34: ( localModifier )* - while stream_localModifier.hasNext(): - self._adaptor.addChild(root_1, stream_localModifier.nextTree()) + def DOT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.DOT) + else: + return self.getToken(JavaParser.DOT, i) - stream_localModifier.reset(); + def primitiveType(self): + return self.getTypedRuleContext(JavaParser.PrimitiveTypeContext,0) - self._adaptor.addChild(root_0, root_1) + def getRuleIndex(self): + return JavaParser.RULE_createdName + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCreatedName" ): + listener.enterCreatedName(self) - retval.tree = root_0 + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCreatedName" ): + listener.exitCreatedName(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: + def createdName(self): - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + localctx = JavaParser.CreatedNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 180, self.RULE_createdName) + self._la = 0 # Token type + try: + self.state = 1313 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 1298 + self.match(JavaParser.IDENTIFIER) + self.state = 1300 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1299 + self.typeArgumentsOrDiamond() - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 39, localModifierList_StartIndex, success) + self.state = 1309 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.DOT: + self.state = 1302 + self.match(JavaParser.DOT) + self.state = 1303 + self.match(JavaParser.IDENTIFIER) + self.state = 1305 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1304 + self.typeArgumentsOrDiamond() - pass - return retval - # $ANTLR end "localModifierList" + self.state = 1311 + self._errHandler.sync(self) + _la = self._input.LA(1) - class localModifier_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.localModifier_return, self).__init__() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT]: + self.enterOuterAlt(localctx, 2) + self.state = 1312 + self.primitiveType() + pass + else: + raise NoViableAltException(self) - self.tree = None + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class InnerCreatorContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - # $ANTLR start "localModifier" - # Java.g:455:1: localModifier : ( FINAL | annotation ); - def localModifier(self, ): + def classCreatorRest(self): + return self.getTypedRuleContext(JavaParser.ClassCreatorRestContext,0) - retval = self.localModifier_return() - retval.start = self.input.LT(1) - localModifier_StartIndex = self.input.index() - root_0 = None - FINAL164 = None - annotation165 = None + def nonWildcardTypeArgumentsOrDiamond(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsOrDiamondContext,0) - FINAL164_tree = None + def getRuleIndex(self): + return JavaParser.RULE_innerCreator - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 40): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:456:5: ( FINAL | annotation ) - alt56 = 2 - LA56_0 = self.input.LA(1) - - if (LA56_0 == FINAL) : - alt56 = 1 - elif (LA56_0 == AT) : - alt56 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInnerCreator" ): + listener.enterInnerCreator(self) - nvae = NoViableAltException("", 56, 0, self.input) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInnerCreator" ): + listener.exitInnerCreator(self) - raise nvae - if alt56 == 1: - # Java.g:456:9: FINAL - pass - root_0 = self._adaptor.nil() - FINAL164=self.match(self.input, FINAL, self.FOLLOW_FINAL_in_localModifier6799) - if self._state.backtracking == 0: - FINAL164_tree = self._adaptor.createWithPayload(FINAL164) - self._adaptor.addChild(root_0, FINAL164_tree) + def innerCreator(self): + localctx = JavaParser.InnerCreatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 182, self.RULE_innerCreator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1315 + self.match(JavaParser.IDENTIFIER) + self.state = 1317 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1316 + self.nonWildcardTypeArgumentsOrDiamond() - elif alt56 == 2: - # Java.g:457:9: annotation - pass - root_0 = self._adaptor.nil() + self.state = 1319 + self.classCreatorRest() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - self._state.following.append(self.FOLLOW_annotation_in_localModifier6809) - annotation165 = self.annotation() + class ArrayCreatorRestContext(ParserRuleContext): - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotation165.tree) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) - retval.stop = self.input.LT(-1) + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) - if self._state.backtracking == 0: + def arrayInitializer(self): + return self.getTypedRuleContext(JavaParser.ArrayInitializerContext,0) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ExpressionContext) + else: + return self.getTypedRuleContext(JavaParser.ExpressionContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_arrayCreatorRest + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayCreatorRest" ): + listener.enterArrayCreatorRest(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayCreatorRest" ): + listener.exitArrayCreatorRest(self) + + + + + def arrayCreatorRest(self): + + localctx = JavaParser.ArrayCreatorRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 184, self.RULE_arrayCreatorRest) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1321 + self.match(JavaParser.LBRACK) + self.state = 1349 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.RBRACK]: + self.state = 1322 + self.match(JavaParser.RBRACK) + self.state = 1327 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 1323 + self.match(JavaParser.LBRACK) + self.state = 1324 + self.match(JavaParser.RBRACK) + self.state = 1329 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1330 + self.arrayInitializer() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.NEW, JavaParser.SHORT, JavaParser.SUPER, JavaParser.THIS, JavaParser.VOID, JavaParser.DECIMAL_LITERAL, JavaParser.HEX_LITERAL, JavaParser.OCT_LITERAL, JavaParser.BINARY_LITERAL, JavaParser.FLOAT_LITERAL, JavaParser.HEX_FLOAT_LITERAL, JavaParser.BOOL_LITERAL, JavaParser.CHAR_LITERAL, JavaParser.STRING_LITERAL, JavaParser.NULL_LITERAL, JavaParser.LPAREN, JavaParser.LT, JavaParser.BANG, JavaParser.TILDE, JavaParser.INC, JavaParser.DEC, JavaParser.ADD, JavaParser.SUB, JavaParser.AT, JavaParser.IDENTIFIER]: + self.state = 1331 + self.expression(0) + self.state = 1332 + self.match(JavaParser.RBRACK) + self.state = 1339 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,163,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1333 + self.match(JavaParser.LBRACK) + self.state = 1334 + self.expression(0) + self.state = 1335 + self.match(JavaParser.RBRACK) + self.state = 1341 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,163,self._ctx) + + self.state = 1346 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,164,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1342 + self.match(JavaParser.LBRACK) + self.state = 1343 + self.match(JavaParser.RBRACK) + self.state = 1348 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,164,self._ctx) + + pass + else: + raise NoViableAltException(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 40, localModifier_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class ClassCreatorRestContext(ParserRuleContext): - # $ANTLR end "localModifier" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class type_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.type_return, self).__init__() + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) - self.tree = None + def classBody(self): + return self.getTypedRuleContext(JavaParser.ClassBodyContext,0) + def getRuleIndex(self): + return JavaParser.RULE_classCreatorRest - # $ANTLR start "type" - # Java.g:460:1: type : ( simpleType | objectType ); - def type(self, ): + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassCreatorRest" ): + listener.enterClassCreatorRest(self) - retval = self.type_return() - retval.start = self.input.LT(1) - type_StartIndex = self.input.index() - root_0 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassCreatorRest" ): + listener.exitClassCreatorRest(self) - simpleType166 = None - objectType167 = None + def classCreatorRest(self): - success = False + localctx = JavaParser.ClassCreatorRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 186, self.RULE_classCreatorRest) try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 41): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:461:5: ( simpleType | objectType ) - alt57 = 2 - LA57_0 = self.input.LA(1) - - if (LA57_0 == BOOLEAN or LA57_0 == BYTE or LA57_0 == CHAR or LA57_0 == DOUBLE or LA57_0 == FLOAT or (INT <= LA57_0 <= LONG) or LA57_0 == SHORT) : - alt57 = 1 - elif (LA57_0 == IDENT) : - alt57 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 57, 0, self.input) + self.enterOuterAlt(localctx, 1) + self.state = 1351 + self.arguments() + self.state = 1353 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,166,self._ctx) + if la_ == 1: + self.state = 1352 + self.classBody() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - raise nvae + class ExplicitGenericInvocationContext(ParserRuleContext): - if alt57 == 1: - # Java.g:461:9: simpleType - pass - root_0 = self._adaptor.nil() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._state.following.append(self.FOLLOW_simpleType_in_type6828) - simpleType166 = self.simpleType() + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, simpleType166.tree) + def explicitGenericInvocationSuffix(self): + return self.getTypedRuleContext(JavaParser.ExplicitGenericInvocationSuffixContext,0) - elif alt57 == 2: - # Java.g:462:9: objectType - pass - root_0 = self._adaptor.nil() - self._state.following.append(self.FOLLOW_objectType_in_type6838) - objectType167 = self.objectType() + def getRuleIndex(self): + return JavaParser.RULE_explicitGenericInvocation - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, objectType167.tree) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExplicitGenericInvocation" ): + listener.enterExplicitGenericInvocation(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExplicitGenericInvocation" ): + listener.exitExplicitGenericInvocation(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def explicitGenericInvocation(self): - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + localctx = JavaParser.ExplicitGenericInvocationContext(self, self._ctx, self.state) + self.enterRule(localctx, 188, self.RULE_explicitGenericInvocation) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1355 + self.nonWildcardTypeArguments() + self.state = 1356 + self.explicitGenericInvocationSuffix() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 41, type_StartIndex, success) - - pass - return retval - - # $ANTLR end "type" - - class simpleType_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.simpleType_return, self).__init__() - - self.tree = None - - + self.exitRule() + return localctx + class TypeArgumentsOrDiamondContext(ParserRuleContext): - # $ANTLR start "simpleType" - # Java.g:465:1: simpleType : primitiveType ( arrayDeclaratorList )? -> ^( TYPE primitiveType ( arrayDeclaratorList )? ) ; - def simpleType(self, ): - - retval = self.simpleType_return() - retval.start = self.input.LT(1) - simpleType_StartIndex = self.input.index() - root_0 = None - - primitiveType168 = None - - arrayDeclaratorList169 = None - - - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_primitiveType = RewriteRuleSubtreeStream(self._adaptor, "rule primitiveType") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 42): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:466:5: ( primitiveType ( arrayDeclaratorList )? -> ^( TYPE primitiveType ( arrayDeclaratorList )? ) ) - # Java.g:466:9: primitiveType ( arrayDeclaratorList )? - pass - self._state.following.append(self.FOLLOW_primitiveType_in_simpleType6858) - primitiveType168 = self.primitiveType() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_primitiveType.add(primitiveType168.tree) - # Java.g:466:23: ( arrayDeclaratorList )? - alt58 = 2 - LA58_0 = self.input.LA(1) - - if (LA58_0 == LBRACK) : - LA58_1 = self.input.LA(2) - - if (LA58_1 == RBRACK) : - LA58_3 = self.input.LA(3) - - if (self.synpred76_Java()) : - alt58 = 1 - if alt58 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_simpleType6860) - arrayDeclaratorList169 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList169.tree) - - - - - # AST Rewrite - # elements: primitiveType, arrayDeclaratorList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - root_0 = self._adaptor.nil() - # 467:9: -> ^( TYPE primitiveType ( arrayDeclaratorList )? ) - # Java.g:467:13: ^( TYPE primitiveType ( arrayDeclaratorList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(TYPE, "TYPE"), root_1) + def LT(self): + return self.getToken(JavaParser.LT, 0) - self._adaptor.addChild(root_1, stream_primitiveType.nextTree()) - # Java.g:467:34: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) + def GT(self): + return self.getToken(JavaParser.GT, 0) + def typeArguments(self): + return self.getTypedRuleContext(JavaParser.TypeArgumentsContext,0) - stream_arrayDeclaratorList.reset(); - self._adaptor.addChild(root_0, root_1) + def getRuleIndex(self): + return JavaParser.RULE_typeArgumentsOrDiamond + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArgumentsOrDiamond" ): + listener.enterTypeArgumentsOrDiamond(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArgumentsOrDiamond" ): + listener.exitTypeArgumentsOrDiamond(self) - retval.tree = root_0 - retval.stop = self.input.LT(-1) + def typeArgumentsOrDiamond(self): - if self._state.backtracking == 0: + localctx = JavaParser.TypeArgumentsOrDiamondContext(self, self._ctx, self.state) + self.enterRule(localctx, 190, self.RULE_typeArgumentsOrDiamond) + try: + self.state = 1361 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,167,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1358 + self.match(JavaParser.LT) + self.state = 1359 + self.match(JavaParser.GT) + pass - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1360 + self.typeArguments() + pass - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 42, simpleType_StartIndex, success) - - pass - return retval - - # $ANTLR end "simpleType" - - class objectType_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.objectType_return, self).__init__() - - self.tree = None - - - + self.exitRule() + return localctx - # $ANTLR start "objectType" - # Java.g:470:1: objectType : qualifiedTypeIdent ( arrayDeclaratorList )? -> ^( TYPE qualifiedTypeIdent ( arrayDeclaratorList )? ) ; - def objectType(self, ): + class NonWildcardTypeArgumentsOrDiamondContext(ParserRuleContext): - retval = self.objectType_return() - retval.start = self.input.LT(1) - objectType_StartIndex = self.input.index() - root_0 = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - qualifiedTypeIdent170 = None + def LT(self): + return self.getToken(JavaParser.LT, 0) - arrayDeclaratorList171 = None + def GT(self): + return self.getToken(JavaParser.GT, 0) + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_qualifiedTypeIdent = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedTypeIdent") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 43): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:471:5: ( qualifiedTypeIdent ( arrayDeclaratorList )? -> ^( TYPE qualifiedTypeIdent ( arrayDeclaratorList )? ) ) - # Java.g:471:9: qualifiedTypeIdent ( arrayDeclaratorList )? - pass - self._state.following.append(self.FOLLOW_qualifiedTypeIdent_in_objectType6901) - qualifiedTypeIdent170 = self.qualifiedTypeIdent() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedTypeIdent.add(qualifiedTypeIdent170.tree) - # Java.g:471:28: ( arrayDeclaratorList )? - alt59 = 2 - LA59_0 = self.input.LA(1) - - if (LA59_0 == LBRACK) : - LA59_1 = self.input.LA(2) - - if (self.synpred77_Java()) : - alt59 = 1 - if alt59 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_objectType6903) - arrayDeclaratorList171 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList171.tree) - - - - - # AST Rewrite - # elements: arrayDeclaratorList, qualifiedTypeIdent - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 472:9: -> ^( TYPE qualifiedTypeIdent ( arrayDeclaratorList )? ) - # Java.g:472:13: ^( TYPE qualifiedTypeIdent ( arrayDeclaratorList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(TYPE, "TYPE"), root_1) - self._adaptor.addChild(root_1, stream_qualifiedTypeIdent.nextTree()) - # Java.g:472:39: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) + def getRuleIndex(self): + return JavaParser.RULE_nonWildcardTypeArgumentsOrDiamond + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterNonWildcardTypeArgumentsOrDiamond" ): + listener.enterNonWildcardTypeArgumentsOrDiamond(self) - stream_arrayDeclaratorList.reset(); + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitNonWildcardTypeArgumentsOrDiamond" ): + listener.exitNonWildcardTypeArgumentsOrDiamond(self) - self._adaptor.addChild(root_0, root_1) - retval.tree = root_0 + def nonWildcardTypeArgumentsOrDiamond(self): + localctx = JavaParser.NonWildcardTypeArgumentsOrDiamondContext(self, self._ctx, self.state) + self.enterRule(localctx, 192, self.RULE_nonWildcardTypeArgumentsOrDiamond) + try: + self.state = 1366 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,168,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1363 + self.match(JavaParser.LT) + self.state = 1364 + self.match(JavaParser.GT) + pass - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1365 + self.nonWildcardTypeArguments() + pass - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 43, objectType_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class NonWildcardTypeArgumentsContext(ParserRuleContext): - # $ANTLR end "objectType" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class objectTypeSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.objectTypeSimplified_return, self).__init__() + def LT(self): + return self.getToken(JavaParser.LT, 0) - self.tree = None + def typeList(self): + return self.getTypedRuleContext(JavaParser.TypeListContext,0) + def GT(self): + return self.getToken(JavaParser.GT, 0) + def getRuleIndex(self): + return JavaParser.RULE_nonWildcardTypeArguments - # $ANTLR start "objectTypeSimplified" - # Java.g:475:1: objectTypeSimplified : qualifiedTypeIdentSimplified ( arrayDeclaratorList )? -> ^( TYPE qualifiedTypeIdentSimplified ( arrayDeclaratorList )? ) ; - def objectTypeSimplified(self, ): + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterNonWildcardTypeArguments" ): + listener.enterNonWildcardTypeArguments(self) - retval = self.objectTypeSimplified_return() - retval.start = self.input.LT(1) - objectTypeSimplified_StartIndex = self.input.index() - root_0 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitNonWildcardTypeArguments" ): + listener.exitNonWildcardTypeArguments(self) - qualifiedTypeIdentSimplified172 = None - arrayDeclaratorList173 = None - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_qualifiedTypeIdentSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedTypeIdentSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 44): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:476:5: ( qualifiedTypeIdentSimplified ( arrayDeclaratorList )? -> ^( TYPE qualifiedTypeIdentSimplified ( arrayDeclaratorList )? ) ) - # Java.g:476:9: qualifiedTypeIdentSimplified ( arrayDeclaratorList )? - pass - self._state.following.append(self.FOLLOW_qualifiedTypeIdentSimplified_in_objectTypeSimplified6943) - qualifiedTypeIdentSimplified172 = self.qualifiedTypeIdentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedTypeIdentSimplified.add(qualifiedTypeIdentSimplified172.tree) - # Java.g:476:38: ( arrayDeclaratorList )? - alt60 = 2 - LA60_0 = self.input.LA(1) - - if (LA60_0 == LBRACK) : - alt60 = 1 - if alt60 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_objectTypeSimplified6945) - arrayDeclaratorList173 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList173.tree) - - - - - # AST Rewrite - # elements: qualifiedTypeIdentSimplified, arrayDeclaratorList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def nonWildcardTypeArguments(self): + localctx = JavaParser.NonWildcardTypeArgumentsContext(self, self._ctx, self.state) + self.enterRule(localctx, 194, self.RULE_nonWildcardTypeArguments) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1368 + self.match(JavaParser.LT) + self.state = 1369 + self.typeList() + self.state = 1370 + self.match(JavaParser.GT) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - root_0 = self._adaptor.nil() - # 477:9: -> ^( TYPE qualifiedTypeIdentSimplified ( arrayDeclaratorList )? ) - # Java.g:477:13: ^( TYPE qualifiedTypeIdentSimplified ( arrayDeclaratorList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(TYPE, "TYPE"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedTypeIdentSimplified.nextTree()) - # Java.g:477:49: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) + class TypeListContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - stream_arrayDeclaratorList.reset(); + def typeType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeTypeContext) + else: + return self.getTypedRuleContext(JavaParser.TypeTypeContext,i) - self._adaptor.addChild(root_0, root_1) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + def getRuleIndex(self): + return JavaParser.RULE_typeList - retval.tree = root_0 + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeList" ): + listener.enterTypeList(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeList" ): + listener.exitTypeList(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def typeList(self): + localctx = JavaParser.TypeListContext(self, self._ctx, self.state) + self.enterRule(localctx, 196, self.RULE_typeList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1372 + self.typeType() + self.state = 1377 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 1373 + self.match(JavaParser.COMMA) + self.state = 1374 + self.typeType() + self.state = 1379 + self._errHandler.sync(self) + _la = self._input.LA(1) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 44, objectTypeSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "objectTypeSimplified" - - class qualifiedTypeIdent_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedTypeIdent_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedTypeIdent" - # Java.g:480:1: qualifiedTypeIdent : typeIdent ( DOT typeIdent )* -> ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) ; - def qualifiedTypeIdent(self, ): + self.exitRule() + return localctx - retval = self.qualifiedTypeIdent_return() - retval.start = self.input.LT(1) - qualifiedTypeIdent_StartIndex = self.input.index() - root_0 = None + class TypeTypeContext(ParserRuleContext): - DOT175 = None - typeIdent174 = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - typeIdent176 = None + def classOrInterfaceType(self): + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceTypeContext,0) - DOT175_tree = None - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_typeIdent = RewriteRuleSubtreeStream(self._adaptor, "rule typeIdent") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 45): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:481:5: ( typeIdent ( DOT typeIdent )* -> ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) ) - # Java.g:481:9: typeIdent ( DOT typeIdent )* - pass - self._state.following.append(self.FOLLOW_typeIdent_in_qualifiedTypeIdent6985) - typeIdent174 = self.typeIdent() + def primitiveType(self): + return self.getTypedRuleContext(JavaParser.PrimitiveTypeContext,0) - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeIdent.add(typeIdent174.tree) - # Java.g:481:19: ( DOT typeIdent )* - while True: #loop61 - alt61 = 2 - LA61_0 = self.input.LA(1) - if (LA61_0 == DOT) : - LA61_2 = self.input.LA(2) + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) - if (self.synpred79_Java()) : - alt61 = 1 + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def getRuleIndex(self): + return JavaParser.RULE_typeType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeType" ): + listener.enterTypeType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeType" ): + listener.exitTypeType(self) + + + + + def typeType(self): + + localctx = JavaParser.TypeTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 198, self.RULE_typeType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1383 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,170,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1380 + self.annotation() + self.state = 1385 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,170,self._ctx) + + self.state = 1388 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.IDENTIFIER]: + self.state = 1386 + self.classOrInterfaceType() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT]: + self.state = 1387 + self.primitiveType() + pass + else: + raise NoViableAltException(self) + + self.state = 1400 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,173,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1393 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 1390 + self.annotation() + self.state = 1395 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1396 + self.match(JavaParser.LBRACK) + self.state = 1397 + self.match(JavaParser.RBRACK) + self.state = 1402 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,173,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class PrimitiveTypeContext(ParserRuleContext): - if alt61 == 1: - # Java.g:481:20: DOT typeIdent - pass - DOT175=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedTypeIdent6988) - if self._state.backtracking == 0: - stream_DOT.add(DOT175) - self._state.following.append(self.FOLLOW_typeIdent_in_qualifiedTypeIdent6990) - typeIdent176 = self.typeIdent() + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeIdent.add(typeIdent176.tree) + def BOOLEAN(self): + return self.getToken(JavaParser.BOOLEAN, 0) + def CHAR(self): + return self.getToken(JavaParser.CHAR, 0) - else: - break #loop61 + def BYTE(self): + return self.getToken(JavaParser.BYTE, 0) - # AST Rewrite - # elements: typeIdent - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def SHORT(self): + return self.getToken(JavaParser.SHORT, 0) - retval.tree = root_0 + def INT(self): + return self.getToken(JavaParser.INT, 0) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + def LONG(self): + return self.getToken(JavaParser.LONG, 0) + def FLOAT(self): + return self.getToken(JavaParser.FLOAT, 0) - root_0 = self._adaptor.nil() - # 482:9: -> ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) - # Java.g:482:13: ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(QUALIFIED_TYPE_IDENT, "QUALIFIED_TYPE_IDENT"), root_1) + def DOUBLE(self): + return self.getToken(JavaParser.DOUBLE, 0) - # Java.g:482:36: ( typeIdent )+ - if not (stream_typeIdent.hasNext()): - raise RewriteEarlyExitException() + def getRuleIndex(self): + return JavaParser.RULE_primitiveType - while stream_typeIdent.hasNext(): - self._adaptor.addChild(root_1, stream_typeIdent.nextTree()) + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimitiveType" ): + listener.enterPrimitiveType(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimitiveType" ): + listener.exitPrimitiveType(self) - stream_typeIdent.reset() - self._adaptor.addChild(root_0, root_1) + def primitiveType(self): - retval.tree = root_0 + localctx = JavaParser.PrimitiveTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 200, self.RULE_primitiveType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1403 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.SHORT))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class TypeArgumentsContext(ParserRuleContext): + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - retval.stop = self.input.LT(-1) + def LT(self): + return self.getToken(JavaParser.LT, 0) - if self._state.backtracking == 0: + def typeArgument(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeArgumentContext) + else: + return self.getTypedRuleContext(JavaParser.TypeArgumentContext,i) - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def GT(self): + return self.getToken(JavaParser.GT, 0) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_typeArguments + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArguments" ): + listener.enterTypeArguments(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArguments" ): + listener.exitTypeArguments(self) + + + + + def typeArguments(self): + + localctx = JavaParser.TypeArgumentsContext(self, self._ctx, self.state) + self.enterRule(localctx, 202, self.RULE_typeArguments) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1405 + self.match(JavaParser.LT) + self.state = 1406 + self.typeArgument() + self.state = 1411 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 1407 + self.match(JavaParser.COMMA) + self.state = 1408 + self.typeArgument() + self.state = 1413 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1414 + self.match(JavaParser.GT) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 45, qualifiedTypeIdent_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedTypeIdent" + self.exitRule() + return localctx - class qualifiedTypeIdentSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedTypeIdentSimplified_return, self).__init__() + class SuperSuffixContext(ParserRuleContext): - self.tree = None + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) + def DOT(self): + return self.getToken(JavaParser.DOT, 0) - # $ANTLR start "qualifiedTypeIdentSimplified" - # Java.g:485:1: qualifiedTypeIdentSimplified : typeIdentSimplified ( DOT typeIdentSimplified )* -> ^( QUALIFIED_TYPE_IDENT ( typeIdentSimplified )+ ) ; - def qualifiedTypeIdentSimplified(self, ): + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - retval = self.qualifiedTypeIdentSimplified_return() - retval.start = self.input.LT(1) - qualifiedTypeIdentSimplified_StartIndex = self.input.index() - root_0 = None + def getRuleIndex(self): + return JavaParser.RULE_superSuffix - DOT178 = None - typeIdentSimplified177 = None + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSuperSuffix" ): + listener.enterSuperSuffix(self) - typeIdentSimplified179 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSuperSuffix" ): + listener.exitSuperSuffix(self) - DOT178_tree = None - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_typeIdentSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule typeIdentSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 46): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:486:5: ( typeIdentSimplified ( DOT typeIdentSimplified )* -> ^( QUALIFIED_TYPE_IDENT ( typeIdentSimplified )+ ) ) - # Java.g:486:9: typeIdentSimplified ( DOT typeIdentSimplified )* - pass - self._state.following.append(self.FOLLOW_typeIdentSimplified_in_qualifiedTypeIdentSimplified7029) - typeIdentSimplified177 = self.typeIdentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeIdentSimplified.add(typeIdentSimplified177.tree) - # Java.g:486:29: ( DOT typeIdentSimplified )* - while True: #loop62 - alt62 = 2 - LA62_0 = self.input.LA(1) - - if (LA62_0 == DOT) : - alt62 = 1 - - - if alt62 == 1: - # Java.g:486:30: DOT typeIdentSimplified - pass - DOT178=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedTypeIdentSimplified7032) - if self._state.backtracking == 0: - stream_DOT.add(DOT178) - self._state.following.append(self.FOLLOW_typeIdentSimplified_in_qualifiedTypeIdentSimplified7034) - typeIdentSimplified179 = self.typeIdentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeIdentSimplified.add(typeIdentSimplified179.tree) - - else: - break #loop62 - # AST Rewrite - # elements: typeIdentSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: + def superSuffix(self): - retval.tree = root_0 + localctx = JavaParser.SuperSuffixContext(self, self._ctx, self.state) + self.enterRule(localctx, 204, self.RULE_superSuffix) + try: + self.state = 1422 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LPAREN]: + self.enterOuterAlt(localctx, 1) + self.state = 1416 + self.arguments() + pass + elif token in [JavaParser.DOT]: + self.enterOuterAlt(localctx, 2) + self.state = 1417 + self.match(JavaParser.DOT) + self.state = 1418 + self.match(JavaParser.IDENTIFIER) + self.state = 1420 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,175,self._ctx) + if la_ == 1: + self.state = 1419 + self.arguments() + + + pass + else: + raise NoViableAltException(self) - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + class ExplicitGenericInvocationSuffixContext(ParserRuleContext): - root_0 = self._adaptor.nil() - # 487:9: -> ^( QUALIFIED_TYPE_IDENT ( typeIdentSimplified )+ ) - # Java.g:487:13: ^( QUALIFIED_TYPE_IDENT ( typeIdentSimplified )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(QUALIFIED_TYPE_IDENT, "QUALIFIED_TYPE_IDENT"), root_1) + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - # Java.g:487:36: ( typeIdentSimplified )+ - if not (stream_typeIdentSimplified.hasNext()): - raise RewriteEarlyExitException() + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) - while stream_typeIdentSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_typeIdentSimplified.nextTree()) + def superSuffix(self): + return self.getTypedRuleContext(JavaParser.SuperSuffixContext,0) - stream_typeIdentSimplified.reset() + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) - self._adaptor.addChild(root_0, root_1) + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) + def getRuleIndex(self): + return JavaParser.RULE_explicitGenericInvocationSuffix - retval.tree = root_0 + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExplicitGenericInvocationSuffix" ): + listener.enterExplicitGenericInvocationSuffix(self) + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExplicitGenericInvocationSuffix" ): + listener.exitExplicitGenericInvocationSuffix(self) - retval.stop = self.input.LT(-1) - if self._state.backtracking == 0: - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + def explicitGenericInvocationSuffix(self): + localctx = JavaParser.ExplicitGenericInvocationSuffixContext(self, self._ctx, self.state) + self.enterRule(localctx, 206, self.RULE_explicitGenericInvocationSuffix) + try: + self.state = 1428 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.SUPER]: + self.enterOuterAlt(localctx, 1) + self.state = 1424 + self.match(JavaParser.SUPER) + self.state = 1425 + self.superSuffix() + pass + elif token in [JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 2) + self.state = 1426 + self.match(JavaParser.IDENTIFIER) + self.state = 1427 + self.arguments() + pass + else: + raise NoViableAltException(self) - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) finally: - if self._state.backtracking > 0: - self.memoize(self.input, 46, qualifiedTypeIdentSimplified_StartIndex, success) + self.exitRule() + return localctx - pass - return retval + class ArgumentsContext(ParserRuleContext): - # $ANTLR end "qualifiedTypeIdentSimplified" + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser - class typeIdent_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeIdent_return, self).__init__() + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) - self.tree = None + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + def expressionList(self): + return self.getTypedRuleContext(JavaParser.ExpressionListContext,0) + def getRuleIndex(self): + return JavaParser.RULE_arguments - # $ANTLR start "typeIdent" - # Java.g:490:1: typeIdent : IDENT ( genericTypeArgumentList )? ; - def typeIdent(self, ): + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArguments" ): + listener.enterArguments(self) - retval = self.typeIdent_return() - retval.start = self.input.LT(1) - typeIdent_StartIndex = self.input.index() - root_0 = None + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArguments" ): + listener.exitArguments(self) - IDENT180 = None - genericTypeArgumentList181 = None - IDENT180_tree = None - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 47): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval + def arguments(self): - # Java.g:491:5: ( IDENT ( genericTypeArgumentList )? ) - # Java.g:491:9: IDENT ( genericTypeArgumentList )? - pass - root_0 = self._adaptor.nil() + localctx = JavaParser.ArgumentsContext(self, self._ctx, self.state) + self.enterRule(localctx, 208, self.RULE_arguments) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1430 + self.match(JavaParser.LPAREN) + self.state = 1432 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1431 + self.expressionList() - IDENT180=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_typeIdent7073) - if self._state.backtracking == 0: - IDENT180_tree = self._adaptor.createWithPayload(IDENT180) - root_0 = self._adaptor.becomeRoot(IDENT180_tree, root_0) + self.state = 1434 + self.match(JavaParser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx - # Java.g:491:16: ( genericTypeArgumentList )? - alt63 = 2 - LA63_0 = self.input.LA(1) - if (LA63_0 == LESS_THAN) : - alt63 = 1 - if alt63 == 1: - # Java.g:0:0: genericTypeArgumentList - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentList_in_typeIdent7076) - genericTypeArgumentList181 = self.genericTypeArgumentList() - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, genericTypeArgumentList181.tree) + def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): + if self._predicates == None: + self._predicates = dict() + self._predicates[83] = self.expression_sempred + pred = self._predicates.get(ruleIndex, None) + if pred is None: + raise Exception("No predicate with index:" + str(ruleIndex)) + else: + return pred(localctx, predIndex) + def expression_sempred(self, localctx:ExpressionContext, predIndex:int): + if predIndex == 0: + return self.precpred(self._ctx, 17) + + if predIndex == 1: + return self.precpred(self._ctx, 16) + + if predIndex == 2: + return self.precpred(self._ctx, 15) + + if predIndex == 3: + return self.precpred(self._ctx, 14) + + if predIndex == 4: + return self.precpred(self._ctx, 12) + - retval.stop = self.input.LT(-1) + if predIndex == 5: + return self.precpred(self._ctx, 11) + - if self._state.backtracking == 0: + if predIndex == 6: + return self.precpred(self._ctx, 10) + - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) + if predIndex == 7: + return self.precpred(self._ctx, 9) + + if predIndex == 8: + return self.precpred(self._ctx, 8) + - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 47, typeIdent_StartIndex, success) + if predIndex == 9: + return self.precpred(self._ctx, 7) + - pass - return retval + if predIndex == 10: + return self.precpred(self._ctx, 6) + - # $ANTLR end "typeIdent" + if predIndex == 11: + return self.precpred(self._ctx, 5) + - class typeIdentSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeIdentSimplified_return, self).__init__() + if predIndex == 12: + return self.precpred(self._ctx, 25) + - self.tree = None + if predIndex == 13: + return self.precpred(self._ctx, 24) + + if predIndex == 14: + return self.precpred(self._ctx, 20) + + if predIndex == 15: + return self.precpred(self._ctx, 13) + + if predIndex == 16: + return self.precpred(self._ctx, 3) + - # $ANTLR start "typeIdentSimplified" - # Java.g:494:1: typeIdentSimplified : IDENT ( genericTypeArgumentListSimplified )? ; - def typeIdentSimplified(self, ): - retval = self.typeIdentSimplified_return() - retval.start = self.input.LT(1) - typeIdentSimplified_StartIndex = self.input.index() - root_0 = None - IDENT182 = None - genericTypeArgumentListSimplified183 = None - - IDENT182_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 48): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:495:5: ( IDENT ( genericTypeArgumentListSimplified )? ) - # Java.g:495:9: IDENT ( genericTypeArgumentListSimplified )? - pass - root_0 = self._adaptor.nil() - - IDENT182=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_typeIdentSimplified7096) - if self._state.backtracking == 0: - - IDENT182_tree = self._adaptor.createWithPayload(IDENT182) - root_0 = self._adaptor.becomeRoot(IDENT182_tree, root_0) - - # Java.g:495:16: ( genericTypeArgumentListSimplified )? - alt64 = 2 - LA64_0 = self.input.LA(1) - - if (LA64_0 == LESS_THAN) : - alt64 = 1 - if alt64 == 1: - # Java.g:0:0: genericTypeArgumentListSimplified - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_typeIdentSimplified7099) - genericTypeArgumentListSimplified183 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, genericTypeArgumentListSimplified183.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 48, typeIdentSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "typeIdentSimplified" - - class primitiveType_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.primitiveType_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "primitiveType" - # Java.g:498:1: primitiveType : ( BOOLEAN | CHAR | BYTE | SHORT | INT | LONG | FLOAT | DOUBLE ); - def primitiveType(self, ): - - retval = self.primitiveType_return() - retval.start = self.input.LT(1) - primitiveType_StartIndex = self.input.index() - root_0 = None - - set184 = None - - set184_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 49): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:499:5: ( BOOLEAN | CHAR | BYTE | SHORT | INT | LONG | FLOAT | DOUBLE ) - # Java.g: - pass - root_0 = self._adaptor.nil() - - set184 = self.input.LT(1) - if self.input.LA(1) == BOOLEAN or self.input.LA(1) == BYTE or self.input.LA(1) == CHAR or self.input.LA(1) == DOUBLE or self.input.LA(1) == FLOAT or (INT <= self.input.LA(1) <= LONG) or self.input.LA(1) == SHORT: - self.input.consume() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, self._adaptor.createWithPayload(set184)) - self._state.errorRecovery = False - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - mse = MismatchedSetException(None, self.input) - raise mse - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 49, primitiveType_StartIndex, success) - - pass - return retval - - # $ANTLR end "primitiveType" - - class genericTypeArgumentList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeArgumentList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeArgumentList" - # Java.g:509:1: genericTypeArgumentList : LESS_THAN genericTypeArgument ( COMMA genericTypeArgument )* genericTypeListClosing -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgument )+ ) ; - def genericTypeArgumentList(self, ): - - retval = self.genericTypeArgumentList_return() - retval.start = self.input.LT(1) - genericTypeArgumentList_StartIndex = self.input.index() - root_0 = None - - LESS_THAN185 = None - COMMA187 = None - genericTypeArgument186 = None - - genericTypeArgument188 = None - - genericTypeListClosing189 = None - - - LESS_THAN185_tree = None - COMMA187_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_LESS_THAN = RewriteRuleTokenStream(self._adaptor, "token LESS_THAN") - stream_genericTypeArgument = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgument") - stream_genericTypeListClosing = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeListClosing") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 50): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:510:5: ( LESS_THAN genericTypeArgument ( COMMA genericTypeArgument )* genericTypeListClosing -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgument )+ ) ) - # Java.g:510:9: LESS_THAN genericTypeArgument ( COMMA genericTypeArgument )* genericTypeListClosing - pass - LESS_THAN185=self.match(self.input, LESS_THAN, self.FOLLOW_LESS_THAN_in_genericTypeArgumentList7208) - if self._state.backtracking == 0: - stream_LESS_THAN.add(LESS_THAN185) - self._state.following.append(self.FOLLOW_genericTypeArgument_in_genericTypeArgumentList7210) - genericTypeArgument186 = self.genericTypeArgument() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgument.add(genericTypeArgument186.tree) - # Java.g:510:39: ( COMMA genericTypeArgument )* - while True: #loop65 - alt65 = 2 - LA65_0 = self.input.LA(1) - - if (LA65_0 == COMMA) : - LA65_2 = self.input.LA(2) - - if (self.synpred90_Java()) : - alt65 = 1 - - - - - if alt65 == 1: - # Java.g:510:40: COMMA genericTypeArgument - pass - COMMA187=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_genericTypeArgumentList7213) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA187) - self._state.following.append(self.FOLLOW_genericTypeArgument_in_genericTypeArgumentList7215) - genericTypeArgument188 = self.genericTypeArgument() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgument.add(genericTypeArgument188.tree) - - - else: - break #loop65 - self._state.following.append(self.FOLLOW_genericTypeListClosing_in_genericTypeArgumentList7219) - genericTypeListClosing189 = self.genericTypeListClosing() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeListClosing.add(genericTypeListClosing189.tree) - - # AST Rewrite - # elements: genericTypeArgument - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 511:9: -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgument )+ ) - # Java.g:511:13: ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgument )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(GENERIC_TYPE_ARG_LIST, LESS_THAN185, "GENERIC_TYPE_ARG_LIST"), root_1) - - # Java.g:511:74: ( genericTypeArgument )+ - if not (stream_genericTypeArgument.hasNext()): - raise RewriteEarlyExitException() - - while stream_genericTypeArgument.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgument.nextTree()) - - - stream_genericTypeArgument.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 50, genericTypeArgumentList_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeArgumentList" - - class genericTypeArgument_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeArgument_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeArgument" - # Java.g:514:1: genericTypeArgument : ( type | QUESTION ( genericWildcardBoundType )? -> ^( QUESTION ( genericWildcardBoundType )? ) ); - def genericTypeArgument(self, ): - - retval = self.genericTypeArgument_return() - retval.start = self.input.LT(1) - genericTypeArgument_StartIndex = self.input.index() - root_0 = None - - QUESTION191 = None - type190 = None - - genericWildcardBoundType192 = None - - - QUESTION191_tree = None - stream_QUESTION = RewriteRuleTokenStream(self._adaptor, "token QUESTION") - stream_genericWildcardBoundType = RewriteRuleSubtreeStream(self._adaptor, "rule genericWildcardBoundType") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 51): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:515:5: ( type | QUESTION ( genericWildcardBoundType )? -> ^( QUESTION ( genericWildcardBoundType )? ) ) - alt67 = 2 - LA67_0 = self.input.LA(1) - - if (LA67_0 == BOOLEAN or LA67_0 == BYTE or LA67_0 == CHAR or LA67_0 == DOUBLE or LA67_0 == FLOAT or (INT <= LA67_0 <= LONG) or LA67_0 == SHORT or LA67_0 == IDENT) : - alt67 = 1 - elif (LA67_0 == QUESTION) : - alt67 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 67, 0, self.input) - - raise nvae - - if alt67 == 1: - # Java.g:515:9: type - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_type_in_genericTypeArgument7257) - type190 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type190.tree) - - - elif alt67 == 2: - # Java.g:516:9: QUESTION ( genericWildcardBoundType )? - pass - QUESTION191=self.match(self.input, QUESTION, self.FOLLOW_QUESTION_in_genericTypeArgument7267) - if self._state.backtracking == 0: - stream_QUESTION.add(QUESTION191) - # Java.g:516:18: ( genericWildcardBoundType )? - alt66 = 2 - LA66_0 = self.input.LA(1) - - if (LA66_0 == EXTENDS) : - LA66_1 = self.input.LA(2) - - if (LA66_1 == BOOLEAN or LA66_1 == BYTE or LA66_1 == CHAR or LA66_1 == DOUBLE or LA66_1 == FLOAT or (INT <= LA66_1 <= LONG) or LA66_1 == SHORT) : - LA66_4 = self.input.LA(3) - - if (self.synpred92_Java()) : - alt66 = 1 - elif (LA66_1 == IDENT) : - LA66_5 = self.input.LA(3) - - if (self.synpred92_Java()) : - alt66 = 1 - elif (LA66_0 == SUPER) : - LA66_3 = self.input.LA(2) - - if (LA66_3 == BOOLEAN or LA66_3 == BYTE or LA66_3 == CHAR or LA66_3 == DOUBLE or LA66_3 == FLOAT or (INT <= LA66_3 <= LONG) or LA66_3 == SHORT or LA66_3 == IDENT) : - alt66 = 1 - if alt66 == 1: - # Java.g:0:0: genericWildcardBoundType - pass - self._state.following.append(self.FOLLOW_genericWildcardBoundType_in_genericTypeArgument7269) - genericWildcardBoundType192 = self.genericWildcardBoundType() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericWildcardBoundType.add(genericWildcardBoundType192.tree) - - - - - # AST Rewrite - # elements: QUESTION, genericWildcardBoundType - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 517:9: -> ^( QUESTION ( genericWildcardBoundType )? ) - # Java.g:517:13: ^( QUESTION ( genericWildcardBoundType )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_QUESTION.nextNode(), root_1) - - # Java.g:517:24: ( genericWildcardBoundType )? - if stream_genericWildcardBoundType.hasNext(): - self._adaptor.addChild(root_1, stream_genericWildcardBoundType.nextTree()) - - - stream_genericWildcardBoundType.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 51, genericTypeArgument_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeArgument" - - class genericWildcardBoundType_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericWildcardBoundType_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericWildcardBoundType" - # Java.g:520:1: genericWildcardBoundType : ( EXTENDS | SUPER ) type ; - def genericWildcardBoundType(self, ): - - retval = self.genericWildcardBoundType_return() - retval.start = self.input.LT(1) - genericWildcardBoundType_StartIndex = self.input.index() - root_0 = None - - set193 = None - type194 = None - - - set193_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 52): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:521:5: ( ( EXTENDS | SUPER ) type ) - # Java.g:521:9: ( EXTENDS | SUPER ) type - pass - root_0 = self._adaptor.nil() - - set193 = self.input.LT(1) - set193 = self.input.LT(1) - if self.input.LA(1) == EXTENDS or self.input.LA(1) == SUPER: - self.input.consume() - if self._state.backtracking == 0: - root_0 = self._adaptor.becomeRoot(self._adaptor.createWithPayload(set193), root_0) - self._state.errorRecovery = False - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - mse = MismatchedSetException(None, self.input) - raise mse - - - self._state.following.append(self.FOLLOW_type_in_genericWildcardBoundType7316) - type194 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type194.tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 52, genericWildcardBoundType_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericWildcardBoundType" - - class genericTypeArgumentListSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeArgumentListSimplified_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeArgumentListSimplified" - # Java.g:524:1: genericTypeArgumentListSimplified : LESS_THAN genericTypeArgumentSimplified ( COMMA genericTypeArgumentSimplified )* genericTypeListClosing -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgumentSimplified )+ ) ; - def genericTypeArgumentListSimplified(self, ): - - retval = self.genericTypeArgumentListSimplified_return() - retval.start = self.input.LT(1) - genericTypeArgumentListSimplified_StartIndex = self.input.index() - root_0 = None - - LESS_THAN195 = None - COMMA197 = None - genericTypeArgumentSimplified196 = None - - genericTypeArgumentSimplified198 = None - - genericTypeListClosing199 = None - - - LESS_THAN195_tree = None - COMMA197_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_LESS_THAN = RewriteRuleTokenStream(self._adaptor, "token LESS_THAN") - stream_genericTypeArgumentSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentSimplified") - stream_genericTypeListClosing = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeListClosing") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 53): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:525:5: ( LESS_THAN genericTypeArgumentSimplified ( COMMA genericTypeArgumentSimplified )* genericTypeListClosing -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgumentSimplified )+ ) ) - # Java.g:525:9: LESS_THAN genericTypeArgumentSimplified ( COMMA genericTypeArgumentSimplified )* genericTypeListClosing - pass - LESS_THAN195=self.match(self.input, LESS_THAN, self.FOLLOW_LESS_THAN_in_genericTypeArgumentListSimplified7335) - if self._state.backtracking == 0: - stream_LESS_THAN.add(LESS_THAN195) - self._state.following.append(self.FOLLOW_genericTypeArgumentSimplified_in_genericTypeArgumentListSimplified7337) - genericTypeArgumentSimplified196 = self.genericTypeArgumentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentSimplified.add(genericTypeArgumentSimplified196.tree) - # Java.g:525:49: ( COMMA genericTypeArgumentSimplified )* - while True: #loop68 - alt68 = 2 - LA68_0 = self.input.LA(1) - - if (LA68_0 == COMMA) : - alt68 = 1 - - - if alt68 == 1: - # Java.g:525:50: COMMA genericTypeArgumentSimplified - pass - COMMA197=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_genericTypeArgumentListSimplified7340) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA197) - self._state.following.append(self.FOLLOW_genericTypeArgumentSimplified_in_genericTypeArgumentListSimplified7342) - genericTypeArgumentSimplified198 = self.genericTypeArgumentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentSimplified.add(genericTypeArgumentSimplified198.tree) - - - else: - break #loop68 - self._state.following.append(self.FOLLOW_genericTypeListClosing_in_genericTypeArgumentListSimplified7346) - genericTypeListClosing199 = self.genericTypeListClosing() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeListClosing.add(genericTypeListClosing199.tree) - - # AST Rewrite - # elements: genericTypeArgumentSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 526:9: -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgumentSimplified )+ ) - # Java.g:526:13: ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgumentSimplified )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(GENERIC_TYPE_ARG_LIST, LESS_THAN195, "GENERIC_TYPE_ARG_LIST"), root_1) - - # Java.g:526:74: ( genericTypeArgumentSimplified )+ - if not (stream_genericTypeArgumentSimplified.hasNext()): - raise RewriteEarlyExitException() - - while stream_genericTypeArgumentSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentSimplified.nextTree()) - - - stream_genericTypeArgumentSimplified.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 53, genericTypeArgumentListSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeArgumentListSimplified" - - class genericTypeArgumentSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeArgumentSimplified_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeArgumentSimplified" - # Java.g:529:1: genericTypeArgumentSimplified : ( type | QUESTION ); - def genericTypeArgumentSimplified(self, ): - - retval = self.genericTypeArgumentSimplified_return() - retval.start = self.input.LT(1) - genericTypeArgumentSimplified_StartIndex = self.input.index() - root_0 = None - - QUESTION201 = None - type200 = None - - - QUESTION201_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 54): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:530:5: ( type | QUESTION ) - alt69 = 2 - LA69_0 = self.input.LA(1) - - if (LA69_0 == BOOLEAN or LA69_0 == BYTE or LA69_0 == CHAR or LA69_0 == DOUBLE or LA69_0 == FLOAT or (INT <= LA69_0 <= LONG) or LA69_0 == SHORT or LA69_0 == IDENT) : - alt69 = 1 - elif (LA69_0 == QUESTION) : - alt69 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 69, 0, self.input) - - raise nvae - - if alt69 == 1: - # Java.g:530:9: type - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_type_in_genericTypeArgumentSimplified7384) - type200 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type200.tree) - - - elif alt69 == 2: - # Java.g:531:9: QUESTION - pass - root_0 = self._adaptor.nil() - - QUESTION201=self.match(self.input, QUESTION, self.FOLLOW_QUESTION_in_genericTypeArgumentSimplified7394) - if self._state.backtracking == 0: - - QUESTION201_tree = self._adaptor.createWithPayload(QUESTION201) - self._adaptor.addChild(root_0, QUESTION201_tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 54, genericTypeArgumentSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeArgumentSimplified" - - class qualifiedIdentList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedIdentList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedIdentList" - # Java.g:534:1: qualifiedIdentList : qualifiedIdentifier ( COMMA qualifiedIdentifier )* ; - def qualifiedIdentList(self, ): - - retval = self.qualifiedIdentList_return() - retval.start = self.input.LT(1) - qualifiedIdentList_StartIndex = self.input.index() - root_0 = None - - COMMA203 = None - qualifiedIdentifier202 = None - - qualifiedIdentifier204 = None - - - COMMA203_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 55): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:535:5: ( qualifiedIdentifier ( COMMA qualifiedIdentifier )* ) - # Java.g:535:9: qualifiedIdentifier ( COMMA qualifiedIdentifier )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_qualifiedIdentList7413) - qualifiedIdentifier202 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier202.tree) - # Java.g:535:29: ( COMMA qualifiedIdentifier )* - while True: #loop70 - alt70 = 2 - LA70_0 = self.input.LA(1) - - if (LA70_0 == COMMA) : - alt70 = 1 - - - if alt70 == 1: - # Java.g:535:30: COMMA qualifiedIdentifier - pass - COMMA203=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_qualifiedIdentList7416) - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_qualifiedIdentList7419) - qualifiedIdentifier204 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier204.tree) - - - else: - break #loop70 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 55, qualifiedIdentList_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedIdentList" - - class formalParameterList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.formalParameterList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "formalParameterList" - # Java.g:538:1: formalParameterList : LPAREN ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) | formalParameterVarArgDecl -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) | -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) ) RPAREN ; - def formalParameterList(self, ): - - retval = self.formalParameterList_return() - retval.start = self.input.LT(1) - formalParameterList_StartIndex = self.input.index() - root_0 = None - - LPAREN205 = None - COMMA207 = None - COMMA209 = None - RPAREN212 = None - formalParameterStandardDecl206 = None - - formalParameterStandardDecl208 = None - - formalParameterVarArgDecl210 = None - - formalParameterVarArgDecl211 = None - - - LPAREN205_tree = None - COMMA207_tree = None - COMMA209_tree = None - RPAREN212_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_formalParameterVarArgDecl = RewriteRuleSubtreeStream(self._adaptor, "rule formalParameterVarArgDecl") - stream_formalParameterStandardDecl = RewriteRuleSubtreeStream(self._adaptor, "rule formalParameterStandardDecl") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 56): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:539:5: ( LPAREN ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) | formalParameterVarArgDecl -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) | -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) ) RPAREN ) - # Java.g:539:9: LPAREN ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) | formalParameterVarArgDecl -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) | -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) ) RPAREN - pass - LPAREN205=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_formalParameterList7440) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN205) - # Java.g:540:9: ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) | formalParameterVarArgDecl -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) | -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) ) - alt73 = 3 - LA73 = self.input.LA(1) - if LA73 == FINAL: - LA73_1 = self.input.LA(2) - - if (self.synpred99_Java()) : - alt73 = 1 - elif (self.synpred100_Java()) : - alt73 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 1, self.input) - - raise nvae - - elif LA73 == AT: - LA73_2 = self.input.LA(2) - - if (self.synpred99_Java()) : - alt73 = 1 - elif (self.synpred100_Java()) : - alt73 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 2, self.input) - - raise nvae - - elif LA73 == BOOLEAN or LA73 == BYTE or LA73 == CHAR or LA73 == DOUBLE or LA73 == FLOAT or LA73 == INT or LA73 == LONG or LA73 == SHORT: - LA73_3 = self.input.LA(2) - - if (self.synpred99_Java()) : - alt73 = 1 - elif (self.synpred100_Java()) : - alt73 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 3, self.input) - - raise nvae - - elif LA73 == IDENT: - LA73_4 = self.input.LA(2) - - if (self.synpred99_Java()) : - alt73 = 1 - elif (self.synpred100_Java()) : - alt73 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 4, self.input) - - raise nvae - - elif LA73 == RPAREN: - alt73 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 0, self.input) - - raise nvae - - if alt73 == 1: - # Java.g:541:13: formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? - pass - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_formalParameterList7467) - formalParameterStandardDecl206 = self.formalParameterStandardDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterStandardDecl.add(formalParameterStandardDecl206.tree) - # Java.g:541:41: ( COMMA formalParameterStandardDecl )* - while True: #loop71 - alt71 = 2 - LA71_0 = self.input.LA(1) - - if (LA71_0 == COMMA) : - LA71_1 = self.input.LA(2) - - if (self.synpred97_Java()) : - alt71 = 1 - - - - - if alt71 == 1: - # Java.g:541:42: COMMA formalParameterStandardDecl - pass - COMMA207=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_formalParameterList7470) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA207) - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_formalParameterList7472) - formalParameterStandardDecl208 = self.formalParameterStandardDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterStandardDecl.add(formalParameterStandardDecl208.tree) - - - else: - break #loop71 - # Java.g:541:78: ( COMMA formalParameterVarArgDecl )? - alt72 = 2 - LA72_0 = self.input.LA(1) - - if (LA72_0 == COMMA) : - alt72 = 1 - if alt72 == 1: - # Java.g:541:79: COMMA formalParameterVarArgDecl - pass - COMMA209=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_formalParameterList7477) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA209) - self._state.following.append(self.FOLLOW_formalParameterVarArgDecl_in_formalParameterList7479) - formalParameterVarArgDecl210 = self.formalParameterVarArgDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterVarArgDecl.add(formalParameterVarArgDecl210.tree) - - - - - # AST Rewrite - # elements: formalParameterVarArgDecl, formalParameterStandardDecl - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 542:13: -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) - # Java.g:542:17: ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(FORMAL_PARAM_LIST, LPAREN205, "FORMAL_PARAM_LIST"), root_1) - - # Java.g:542:67: ( formalParameterStandardDecl )+ - if not (stream_formalParameterStandardDecl.hasNext()): - raise RewriteEarlyExitException() - - while stream_formalParameterStandardDecl.hasNext(): - self._adaptor.addChild(root_1, stream_formalParameterStandardDecl.nextTree()) - - - stream_formalParameterStandardDecl.reset() - # Java.g:542:96: ( formalParameterVarArgDecl )? - if stream_formalParameterVarArgDecl.hasNext(): - self._adaptor.addChild(root_1, stream_formalParameterVarArgDecl.nextTree()) - - - stream_formalParameterVarArgDecl.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt73 == 2: - # Java.g:544:13: formalParameterVarArgDecl - pass - self._state.following.append(self.FOLLOW_formalParameterVarArgDecl_in_formalParameterList7534) - formalParameterVarArgDecl211 = self.formalParameterVarArgDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterVarArgDecl.add(formalParameterVarArgDecl211.tree) - - # AST Rewrite - # elements: formalParameterVarArgDecl - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 545:13: -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) - # Java.g:545:17: ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(FORMAL_PARAM_LIST, LPAREN205, "FORMAL_PARAM_LIST"), root_1) - - self._adaptor.addChild(root_1, stream_formalParameterVarArgDecl.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt73 == 3: - # Java.g:547:13: - pass - # AST Rewrite - # elements: - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 547:13: -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) - # Java.g:547:17: ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(FORMAL_PARAM_LIST, LPAREN205, "FORMAL_PARAM_LIST"), root_1) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - RPAREN212=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_formalParameterList7609) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN212) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 56, formalParameterList_StartIndex, success) - - pass - return retval - - # $ANTLR end "formalParameterList" - - class formalParameterStandardDecl_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.formalParameterStandardDecl_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "formalParameterStandardDecl" - # Java.g:552:1: formalParameterStandardDecl : localModifierList type variableDeclaratorId -> ^( FORMAL_PARAM_STD_DECL localModifierList type variableDeclaratorId ) ; - def formalParameterStandardDecl(self, ): - - retval = self.formalParameterStandardDecl_return() - retval.start = self.input.LT(1) - formalParameterStandardDecl_StartIndex = self.input.index() - root_0 = None - - localModifierList213 = None - - type214 = None - - variableDeclaratorId215 = None - - - stream_variableDeclaratorId = RewriteRuleSubtreeStream(self._adaptor, "rule variableDeclaratorId") - stream_localModifierList = RewriteRuleSubtreeStream(self._adaptor, "rule localModifierList") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 57): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:553:5: ( localModifierList type variableDeclaratorId -> ^( FORMAL_PARAM_STD_DECL localModifierList type variableDeclaratorId ) ) - # Java.g:553:9: localModifierList type variableDeclaratorId - pass - self._state.following.append(self.FOLLOW_localModifierList_in_formalParameterStandardDecl7628) - localModifierList213 = self.localModifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifierList.add(localModifierList213.tree) - self._state.following.append(self.FOLLOW_type_in_formalParameterStandardDecl7630) - type214 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type214.tree) - self._state.following.append(self.FOLLOW_variableDeclaratorId_in_formalParameterStandardDecl7632) - variableDeclaratorId215 = self.variableDeclaratorId() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableDeclaratorId.add(variableDeclaratorId215.tree) - - # AST Rewrite - # elements: localModifierList, type, variableDeclaratorId - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 554:9: -> ^( FORMAL_PARAM_STD_DECL localModifierList type variableDeclaratorId ) - # Java.g:554:13: ^( FORMAL_PARAM_STD_DECL localModifierList type variableDeclaratorId ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FORMAL_PARAM_STD_DECL, "FORMAL_PARAM_STD_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_localModifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_variableDeclaratorId.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 57, formalParameterStandardDecl_StartIndex, success) - - pass - return retval - - # $ANTLR end "formalParameterStandardDecl" - - class formalParameterVarArgDecl_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.formalParameterVarArgDecl_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "formalParameterVarArgDecl" - # Java.g:557:1: formalParameterVarArgDecl : localModifierList type ELLIPSIS variableDeclaratorId -> ^( FORMAL_PARAM_VARARG_DECL localModifierList type variableDeclaratorId ) ; - def formalParameterVarArgDecl(self, ): - - retval = self.formalParameterVarArgDecl_return() - retval.start = self.input.LT(1) - formalParameterVarArgDecl_StartIndex = self.input.index() - root_0 = None - - ELLIPSIS218 = None - localModifierList216 = None - - type217 = None - - variableDeclaratorId219 = None - - - ELLIPSIS218_tree = None - stream_ELLIPSIS = RewriteRuleTokenStream(self._adaptor, "token ELLIPSIS") - stream_variableDeclaratorId = RewriteRuleSubtreeStream(self._adaptor, "rule variableDeclaratorId") - stream_localModifierList = RewriteRuleSubtreeStream(self._adaptor, "rule localModifierList") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 58): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:558:5: ( localModifierList type ELLIPSIS variableDeclaratorId -> ^( FORMAL_PARAM_VARARG_DECL localModifierList type variableDeclaratorId ) ) - # Java.g:558:9: localModifierList type ELLIPSIS variableDeclaratorId - pass - self._state.following.append(self.FOLLOW_localModifierList_in_formalParameterVarArgDecl7672) - localModifierList216 = self.localModifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifierList.add(localModifierList216.tree) - self._state.following.append(self.FOLLOW_type_in_formalParameterVarArgDecl7674) - type217 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type217.tree) - ELLIPSIS218=self.match(self.input, ELLIPSIS, self.FOLLOW_ELLIPSIS_in_formalParameterVarArgDecl7676) - if self._state.backtracking == 0: - stream_ELLIPSIS.add(ELLIPSIS218) - self._state.following.append(self.FOLLOW_variableDeclaratorId_in_formalParameterVarArgDecl7678) - variableDeclaratorId219 = self.variableDeclaratorId() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableDeclaratorId.add(variableDeclaratorId219.tree) - - # AST Rewrite - # elements: variableDeclaratorId, localModifierList, type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 559:9: -> ^( FORMAL_PARAM_VARARG_DECL localModifierList type variableDeclaratorId ) - # Java.g:559:13: ^( FORMAL_PARAM_VARARG_DECL localModifierList type variableDeclaratorId ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FORMAL_PARAM_VARARG_DECL, "FORMAL_PARAM_VARARG_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_localModifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_variableDeclaratorId.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 58, formalParameterVarArgDecl_StartIndex, success) - - pass - return retval - - # $ANTLR end "formalParameterVarArgDecl" - - class qualifiedIdentifier_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedIdentifier_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedIdentifier" - # Java.g:562:1: qualifiedIdentifier : ( IDENT -> IDENT ) ( DOT ident= IDENT -> ^( DOT $qualifiedIdentifier $ident) )* ; - def qualifiedIdentifier(self, ): - - retval = self.qualifiedIdentifier_return() - retval.start = self.input.LT(1) - qualifiedIdentifier_StartIndex = self.input.index() - root_0 = None - - ident = None - IDENT220 = None - DOT221 = None - - ident_tree = None - IDENT220_tree = None - DOT221_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 59): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:563:5: ( ( IDENT -> IDENT ) ( DOT ident= IDENT -> ^( DOT $qualifiedIdentifier $ident) )* ) - # Java.g:563:9: ( IDENT -> IDENT ) ( DOT ident= IDENT -> ^( DOT $qualifiedIdentifier $ident) )* - pass - # Java.g:563:9: ( IDENT -> IDENT ) - # Java.g:563:13: IDENT - pass - IDENT220=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_qualifiedIdentifier7722) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT220) - - # AST Rewrite - # elements: IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 563:33: -> IDENT - self._adaptor.addChild(root_0, stream_IDENT.nextNode()) - - - - retval.tree = root_0 - - - - # Java.g:565:9: ( DOT ident= IDENT -> ^( DOT $qualifiedIdentifier $ident) )* - while True: #loop74 - alt74 = 2 - LA74_0 = self.input.LA(1) - - if (LA74_0 == DOT) : - LA74_2 = self.input.LA(2) - - if (LA74_2 == IDENT) : - LA74_3 = self.input.LA(3) - - if (self.synpred101_Java()) : - alt74 = 1 - - - - - - - if alt74 == 1: - # Java.g:565:13: DOT ident= IDENT - pass - DOT221=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedIdentifier7765) - if self._state.backtracking == 0: - stream_DOT.add(DOT221) - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_qualifiedIdentifier7769) - if self._state.backtracking == 0: - stream_IDENT.add(ident) - - # AST Rewrite - # elements: DOT, qualifiedIdentifier, ident - # token labels: ident - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - stream_ident = RewriteRuleTokenStream(self._adaptor, "token ident", ident) - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 565:33: -> ^( DOT $qualifiedIdentifier $ident) - # Java.g:565:37: ^( DOT $qualifiedIdentifier $ident) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_ident.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - else: - break #loop74 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 59, qualifiedIdentifier_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedIdentifier" - - class annotationList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationList" - # Java.g:571:1: annotationList : ( annotation )* -> ^( ANNOTATION_LIST ( annotation )* ) ; - def annotationList(self, ): - - retval = self.annotationList_return() - retval.start = self.input.LT(1) - annotationList_StartIndex = self.input.index() - root_0 = None - - annotation222 = None - - - stream_annotation = RewriteRuleSubtreeStream(self._adaptor, "rule annotation") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 60): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:572:5: ( ( annotation )* -> ^( ANNOTATION_LIST ( annotation )* ) ) - # Java.g:572:9: ( annotation )* - pass - # Java.g:572:9: ( annotation )* - while True: #loop75 - alt75 = 2 - LA75_0 = self.input.LA(1) - - if (LA75_0 == AT) : - LA75_2 = self.input.LA(2) - - if (LA75_2 == IDENT) : - LA75_3 = self.input.LA(3) - - if (self.synpred102_Java()) : - alt75 = 1 - - - - - - - if alt75 == 1: - # Java.g:0:0: annotation - pass - self._state.following.append(self.FOLLOW_annotation_in_annotationList7818) - annotation222 = self.annotation() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotation.add(annotation222.tree) - - - else: - break #loop75 - - # AST Rewrite - # elements: annotation - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 573:9: -> ^( ANNOTATION_LIST ( annotation )* ) - # Java.g:573:13: ^( ANNOTATION_LIST ( annotation )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ANNOTATION_LIST, "ANNOTATION_LIST"), root_1) - - # Java.g:573:31: ( annotation )* - while stream_annotation.hasNext(): - self._adaptor.addChild(root_1, stream_annotation.nextTree()) - - - stream_annotation.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 60, annotationList_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationList" - - class annotation_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotation_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotation" - # Java.g:576:1: annotation : AT qualifiedIdentifier ( annotationInit )? ; - def annotation(self, ): - - retval = self.annotation_return() - retval.start = self.input.LT(1) - annotation_StartIndex = self.input.index() - root_0 = None - - AT223 = None - qualifiedIdentifier224 = None - - annotationInit225 = None - - - AT223_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 61): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:577:5: ( AT qualifiedIdentifier ( annotationInit )? ) - # Java.g:577:9: AT qualifiedIdentifier ( annotationInit )? - pass - root_0 = self._adaptor.nil() - - AT223=self.match(self.input, AT, self.FOLLOW_AT_in_annotation7856) - if self._state.backtracking == 0: - - AT223_tree = self._adaptor.createWithPayload(AT223) - root_0 = self._adaptor.becomeRoot(AT223_tree, root_0) - - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_annotation7859) - qualifiedIdentifier224 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier224.tree) - # Java.g:577:33: ( annotationInit )? - alt76 = 2 - LA76_0 = self.input.LA(1) - - if (LA76_0 == LPAREN) : - alt76 = 1 - if alt76 == 1: - # Java.g:0:0: annotationInit - pass - self._state.following.append(self.FOLLOW_annotationInit_in_annotation7861) - annotationInit225 = self.annotationInit() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationInit225.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 61, annotation_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotation" - - class annotationInit_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationInit_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationInit" - # Java.g:580:1: annotationInit : LPAREN annotationInitializers RPAREN -> ^( ANNOTATION_INIT_BLOCK[$LPAREN, \"ANNOTATION_INIT_BLOCK\"] annotationInitializers ) ; - def annotationInit(self, ): - - retval = self.annotationInit_return() - retval.start = self.input.LT(1) - annotationInit_StartIndex = self.input.index() - root_0 = None - - LPAREN226 = None - RPAREN228 = None - annotationInitializers227 = None - - - LPAREN226_tree = None - RPAREN228_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_annotationInitializers = RewriteRuleSubtreeStream(self._adaptor, "rule annotationInitializers") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 62): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:581:5: ( LPAREN annotationInitializers RPAREN -> ^( ANNOTATION_INIT_BLOCK[$LPAREN, \"ANNOTATION_INIT_BLOCK\"] annotationInitializers ) ) - # Java.g:581:9: LPAREN annotationInitializers RPAREN - pass - LPAREN226=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_annotationInit7881) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN226) - self._state.following.append(self.FOLLOW_annotationInitializers_in_annotationInit7883) - annotationInitializers227 = self.annotationInitializers() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationInitializers.add(annotationInitializers227.tree) - RPAREN228=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_annotationInit7885) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN228) - - # AST Rewrite - # elements: annotationInitializers - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 582:9: -> ^( ANNOTATION_INIT_BLOCK[$LPAREN, \"ANNOTATION_INIT_BLOCK\"] annotationInitializers ) - # Java.g:582:13: ^( ANNOTATION_INIT_BLOCK[$LPAREN, \"ANNOTATION_INIT_BLOCK\"] annotationInitializers ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ANNOTATION_INIT_BLOCK, LPAREN226, "ANNOTATION_INIT_BLOCK"), root_1) - - self._adaptor.addChild(root_1, stream_annotationInitializers.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 62, annotationInit_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationInit" - - class annotationInitializers_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationInitializers_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationInitializers" - # Java.g:585:1: annotationInitializers : ( annotationInitializer ( COMMA annotationInitializer )* -> ^( ANNOTATION_INIT_KEY_LIST ( annotationInitializer )+ ) | annotationElementValue -> ^( ANNOTATION_INIT_DEFAULT_KEY annotationElementValue ) ); - def annotationInitializers(self, ): - - retval = self.annotationInitializers_return() - retval.start = self.input.LT(1) - annotationInitializers_StartIndex = self.input.index() - root_0 = None - - COMMA230 = None - annotationInitializer229 = None - - annotationInitializer231 = None - - annotationElementValue232 = None - - - COMMA230_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_annotationElementValue = RewriteRuleSubtreeStream(self._adaptor, "rule annotationElementValue") - stream_annotationInitializer = RewriteRuleSubtreeStream(self._adaptor, "rule annotationInitializer") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 63): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:586:5: ( annotationInitializer ( COMMA annotationInitializer )* -> ^( ANNOTATION_INIT_KEY_LIST ( annotationInitializer )+ ) | annotationElementValue -> ^( ANNOTATION_INIT_DEFAULT_KEY annotationElementValue ) ) - alt78 = 2 - LA78_0 = self.input.LA(1) - - if (LA78_0 == IDENT) : - LA78_1 = self.input.LA(2) - - if (LA78_1 == ASSIGN) : - alt78 = 1 - elif (LA78_1 == AND or LA78_1 == BIT_SHIFT_RIGHT or (DEC <= LA78_1 <= DIV) or LA78_1 == DOT or (EQUAL <= LA78_1 <= LBRACK) or (LESS_OR_EQUAL <= LA78_1 <= LOGICAL_AND) or (LOGICAL_OR <= LA78_1 <= MINUS) or LA78_1 == MOD or (NOT_EQUAL <= LA78_1 <= OR) or LA78_1 == PLUS or LA78_1 == QUESTION or LA78_1 == RPAREN or LA78_1 == SHIFT_LEFT or LA78_1 == SHIFT_RIGHT or LA78_1 == STAR or LA78_1 == XOR or LA78_1 == INSTANCEOF) : - alt78 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 78, 1, self.input) - - raise nvae - - elif (LA78_0 == AT or LA78_0 == DEC or LA78_0 == INC or LA78_0 == LCURLY or LA78_0 == LESS_THAN or LA78_0 == LOGICAL_NOT or (LPAREN <= LA78_0 <= MINUS) or LA78_0 == NOT or LA78_0 == PLUS or LA78_0 == BOOLEAN or LA78_0 == BYTE or LA78_0 == CHAR or LA78_0 == DOUBLE or LA78_0 == FALSE or LA78_0 == FLOAT or (INT <= LA78_0 <= LONG) or (NEW <= LA78_0 <= NULL) or LA78_0 == SHORT or LA78_0 == SUPER or LA78_0 == THIS or LA78_0 == TRUE or LA78_0 == VOID or (HEX_LITERAL <= LA78_0 <= STRING_LITERAL)) : - alt78 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 78, 0, self.input) - - raise nvae - - if alt78 == 1: - # Java.g:586:9: annotationInitializer ( COMMA annotationInitializer )* - pass - self._state.following.append(self.FOLLOW_annotationInitializer_in_annotationInitializers7922) - annotationInitializer229 = self.annotationInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationInitializer.add(annotationInitializer229.tree) - # Java.g:586:31: ( COMMA annotationInitializer )* - while True: #loop77 - alt77 = 2 - LA77_0 = self.input.LA(1) - - if (LA77_0 == COMMA) : - alt77 = 1 - - - if alt77 == 1: - # Java.g:586:32: COMMA annotationInitializer - pass - COMMA230=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_annotationInitializers7925) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA230) - self._state.following.append(self.FOLLOW_annotationInitializer_in_annotationInitializers7927) - annotationInitializer231 = self.annotationInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationInitializer.add(annotationInitializer231.tree) - - - else: - break #loop77 - - # AST Rewrite - # elements: annotationInitializer - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 587:9: -> ^( ANNOTATION_INIT_KEY_LIST ( annotationInitializer )+ ) - # Java.g:587:13: ^( ANNOTATION_INIT_KEY_LIST ( annotationInitializer )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ANNOTATION_INIT_KEY_LIST, "ANNOTATION_INIT_KEY_LIST"), root_1) - - # Java.g:587:40: ( annotationInitializer )+ - if not (stream_annotationInitializer.hasNext()): - raise RewriteEarlyExitException() - - while stream_annotationInitializer.hasNext(): - self._adaptor.addChild(root_1, stream_annotationInitializer.nextTree()) - - - stream_annotationInitializer.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt78 == 2: - # Java.g:588:9: annotationElementValue - pass - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationInitializers7957) - annotationElementValue232 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationElementValue.add(annotationElementValue232.tree) - - # AST Rewrite - # elements: annotationElementValue - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 589:9: -> ^( ANNOTATION_INIT_DEFAULT_KEY annotationElementValue ) - # Java.g:589:13: ^( ANNOTATION_INIT_DEFAULT_KEY annotationElementValue ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ANNOTATION_INIT_DEFAULT_KEY, "ANNOTATION_INIT_DEFAULT_KEY"), root_1) - - self._adaptor.addChild(root_1, stream_annotationElementValue.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 63, annotationInitializers_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationInitializers" - - class annotationInitializer_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationInitializer_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationInitializer" - # Java.g:592:1: annotationInitializer : IDENT ASSIGN annotationElementValue ; - def annotationInitializer(self, ): - - retval = self.annotationInitializer_return() - retval.start = self.input.LT(1) - annotationInitializer_StartIndex = self.input.index() - root_0 = None - - IDENT233 = None - ASSIGN234 = None - annotationElementValue235 = None - - - IDENT233_tree = None - ASSIGN234_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 64): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:593:5: ( IDENT ASSIGN annotationElementValue ) - # Java.g:593:9: IDENT ASSIGN annotationElementValue - pass - root_0 = self._adaptor.nil() - - IDENT233=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_annotationInitializer7994) - if self._state.backtracking == 0: - - IDENT233_tree = self._adaptor.createWithPayload(IDENT233) - root_0 = self._adaptor.becomeRoot(IDENT233_tree, root_0) - - ASSIGN234=self.match(self.input, ASSIGN, self.FOLLOW_ASSIGN_in_annotationInitializer7997) - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationInitializer8000) - annotationElementValue235 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationElementValue235.tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 64, annotationInitializer_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationInitializer" - - class annotationElementValue_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationElementValue_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationElementValue" - # Java.g:596:1: annotationElementValue : ( annotationElementValueExpression | annotation | annotationElementValueArrayInitializer ); - def annotationElementValue(self, ): - - retval = self.annotationElementValue_return() - retval.start = self.input.LT(1) - annotationElementValue_StartIndex = self.input.index() - root_0 = None - - annotationElementValueExpression236 = None - - annotation237 = None - - annotationElementValueArrayInitializer238 = None - - - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 65): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:597:5: ( annotationElementValueExpression | annotation | annotationElementValueArrayInitializer ) - alt79 = 3 - LA79 = self.input.LA(1) - if LA79 == DEC or LA79 == INC or LA79 == LESS_THAN or LA79 == LOGICAL_NOT or LA79 == LPAREN or LA79 == MINUS or LA79 == NOT or LA79 == PLUS or LA79 == BOOLEAN or LA79 == BYTE or LA79 == CHAR or LA79 == DOUBLE or LA79 == FALSE or LA79 == FLOAT or LA79 == INT or LA79 == LONG or LA79 == NEW or LA79 == NULL or LA79 == SHORT or LA79 == SUPER or LA79 == THIS or LA79 == TRUE or LA79 == VOID or LA79 == IDENT or LA79 == HEX_LITERAL or LA79 == OCTAL_LITERAL or LA79 == DECIMAL_LITERAL or LA79 == FLOATING_POINT_LITERAL or LA79 == CHARACTER_LITERAL or LA79 == STRING_LITERAL: - alt79 = 1 - elif LA79 == AT: - alt79 = 2 - elif LA79 == LCURLY: - alt79 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 79, 0, self.input) - - raise nvae - - if alt79 == 1: - # Java.g:597:9: annotationElementValueExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotationElementValueExpression_in_annotationElementValue8019) - annotationElementValueExpression236 = self.annotationElementValueExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationElementValueExpression236.tree) - - - elif alt79 == 2: - # Java.g:598:9: annotation - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotation_in_annotationElementValue8029) - annotation237 = self.annotation() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotation237.tree) - - - elif alt79 == 3: - # Java.g:599:9: annotationElementValueArrayInitializer - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotationElementValueArrayInitializer_in_annotationElementValue8039) - annotationElementValueArrayInitializer238 = self.annotationElementValueArrayInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationElementValueArrayInitializer238.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 65, annotationElementValue_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationElementValue" - - class annotationElementValueExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationElementValueExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationElementValueExpression" - # Java.g:602:1: annotationElementValueExpression : conditionalExpression -> ^( EXPR conditionalExpression ) ; - def annotationElementValueExpression(self, ): - - retval = self.annotationElementValueExpression_return() - retval.start = self.input.LT(1) - annotationElementValueExpression_StartIndex = self.input.index() - root_0 = None - - conditionalExpression239 = None - - - stream_conditionalExpression = RewriteRuleSubtreeStream(self._adaptor, "rule conditionalExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 66): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:603:5: ( conditionalExpression -> ^( EXPR conditionalExpression ) ) - # Java.g:603:9: conditionalExpression - pass - self._state.following.append(self.FOLLOW_conditionalExpression_in_annotationElementValueExpression8058) - conditionalExpression239 = self.conditionalExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_conditionalExpression.add(conditionalExpression239.tree) - - # AST Rewrite - # elements: conditionalExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 604:9: -> ^( EXPR conditionalExpression ) - # Java.g:604:13: ^( EXPR conditionalExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(EXPR, "EXPR"), root_1) - - self._adaptor.addChild(root_1, stream_conditionalExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 66, annotationElementValueExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationElementValueExpression" - - class annotationElementValueArrayInitializer_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationElementValueArrayInitializer_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationElementValueArrayInitializer" - # Java.g:607:1: annotationElementValueArrayInitializer : LCURLY ( annotationElementValue ( COMMA annotationElementValue )* )? ( COMMA )? RCURLY -> ^( ANNOTATION_INIT_ARRAY_ELEMENT[$LCURLY, \"ANNOTATION_ELEM_VALUE_ARRAY_INIT\"] ( annotationElementValue )* ) ; - def annotationElementValueArrayInitializer(self, ): - - retval = self.annotationElementValueArrayInitializer_return() - retval.start = self.input.LT(1) - annotationElementValueArrayInitializer_StartIndex = self.input.index() - root_0 = None - - LCURLY240 = None - COMMA242 = None - COMMA244 = None - RCURLY245 = None - annotationElementValue241 = None - - annotationElementValue243 = None - - - LCURLY240_tree = None - COMMA242_tree = None - COMMA244_tree = None - RCURLY245_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_annotationElementValue = RewriteRuleSubtreeStream(self._adaptor, "rule annotationElementValue") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 67): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:608:5: ( LCURLY ( annotationElementValue ( COMMA annotationElementValue )* )? ( COMMA )? RCURLY -> ^( ANNOTATION_INIT_ARRAY_ELEMENT[$LCURLY, \"ANNOTATION_ELEM_VALUE_ARRAY_INIT\"] ( annotationElementValue )* ) ) - # Java.g:608:9: LCURLY ( annotationElementValue ( COMMA annotationElementValue )* )? ( COMMA )? RCURLY - pass - LCURLY240=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_annotationElementValueArrayInitializer8094) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY240) - # Java.g:608:16: ( annotationElementValue ( COMMA annotationElementValue )* )? - alt81 = 2 - LA81_0 = self.input.LA(1) - - if (LA81_0 == AT or LA81_0 == DEC or LA81_0 == INC or LA81_0 == LCURLY or LA81_0 == LESS_THAN or LA81_0 == LOGICAL_NOT or (LPAREN <= LA81_0 <= MINUS) or LA81_0 == NOT or LA81_0 == PLUS or LA81_0 == BOOLEAN or LA81_0 == BYTE or LA81_0 == CHAR or LA81_0 == DOUBLE or LA81_0 == FALSE or LA81_0 == FLOAT or (INT <= LA81_0 <= LONG) or (NEW <= LA81_0 <= NULL) or LA81_0 == SHORT or LA81_0 == SUPER or LA81_0 == THIS or LA81_0 == TRUE or LA81_0 == VOID or (IDENT <= LA81_0 <= STRING_LITERAL)) : - alt81 = 1 - if alt81 == 1: - # Java.g:608:17: annotationElementValue ( COMMA annotationElementValue )* - pass - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationElementValueArrayInitializer8097) - annotationElementValue241 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationElementValue.add(annotationElementValue241.tree) - # Java.g:608:40: ( COMMA annotationElementValue )* - while True: #loop80 - alt80 = 2 - LA80_0 = self.input.LA(1) - - if (LA80_0 == COMMA) : - LA80_1 = self.input.LA(2) - - if (LA80_1 == AT or LA80_1 == DEC or LA80_1 == INC or LA80_1 == LCURLY or LA80_1 == LESS_THAN or LA80_1 == LOGICAL_NOT or (LPAREN <= LA80_1 <= MINUS) or LA80_1 == NOT or LA80_1 == PLUS or LA80_1 == BOOLEAN or LA80_1 == BYTE or LA80_1 == CHAR or LA80_1 == DOUBLE or LA80_1 == FALSE or LA80_1 == FLOAT or (INT <= LA80_1 <= LONG) or (NEW <= LA80_1 <= NULL) or LA80_1 == SHORT or LA80_1 == SUPER or LA80_1 == THIS or LA80_1 == TRUE or LA80_1 == VOID or (IDENT <= LA80_1 <= STRING_LITERAL)) : - alt80 = 1 - - - - - if alt80 == 1: - # Java.g:608:41: COMMA annotationElementValue - pass - COMMA242=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_annotationElementValueArrayInitializer8100) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA242) - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationElementValueArrayInitializer8102) - annotationElementValue243 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationElementValue.add(annotationElementValue243.tree) - - - else: - break #loop80 - - - - # Java.g:608:74: ( COMMA )? - alt82 = 2 - LA82_0 = self.input.LA(1) - - if (LA82_0 == COMMA) : - alt82 = 1 - if alt82 == 1: - # Java.g:608:75: COMMA - pass - COMMA244=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_annotationElementValueArrayInitializer8109) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA244) - - - - RCURLY245=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_annotationElementValueArrayInitializer8113) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY245) - - # AST Rewrite - # elements: annotationElementValue - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 609:9: -> ^( ANNOTATION_INIT_ARRAY_ELEMENT[$LCURLY, \"ANNOTATION_ELEM_VALUE_ARRAY_INIT\"] ( annotationElementValue )* ) - # Java.g:609:13: ^( ANNOTATION_INIT_ARRAY_ELEMENT[$LCURLY, \"ANNOTATION_ELEM_VALUE_ARRAY_INIT\"] ( annotationElementValue )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ANNOTATION_INIT_ARRAY_ELEMENT, LCURLY240, "ANNOTATION_ELEM_VALUE_ARRAY_INIT"), root_1) - - # Java.g:609:90: ( annotationElementValue )* - while stream_annotationElementValue.hasNext(): - self._adaptor.addChild(root_1, stream_annotationElementValue.nextTree()) - - - stream_annotationElementValue.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 67, annotationElementValueArrayInitializer_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationElementValueArrayInitializer" - - class annotationTypeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationTypeDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationTypeDeclaration" - # Java.g:612:1: annotationTypeDeclaration[modifiers] : AT INTERFACE IDENT annotationBody -> ^( AT IDENT annotationBody ) ; - def annotationTypeDeclaration(self, modifiers): - - retval = self.annotationTypeDeclaration_return() - retval.start = self.input.LT(1) - annotationTypeDeclaration_StartIndex = self.input.index() - root_0 = None - - AT246 = None - INTERFACE247 = None - IDENT248 = None - annotationBody249 = None - - - AT246_tree = None - INTERFACE247_tree = None - IDENT248_tree = None - stream_AT = RewriteRuleTokenStream(self._adaptor, "token AT") - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_INTERFACE = RewriteRuleTokenStream(self._adaptor, "token INTERFACE") - stream_annotationBody = RewriteRuleSubtreeStream(self._adaptor, "rule annotationBody") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 68): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:613:5: ( AT INTERFACE IDENT annotationBody -> ^( AT IDENT annotationBody ) ) - # Java.g:613:9: AT INTERFACE IDENT annotationBody - pass - AT246=self.match(self.input, AT, self.FOLLOW_AT_in_annotationTypeDeclaration8152) - if self._state.backtracking == 0: - stream_AT.add(AT246) - INTERFACE247=self.match(self.input, INTERFACE, self.FOLLOW_INTERFACE_in_annotationTypeDeclaration8154) - if self._state.backtracking == 0: - stream_INTERFACE.add(INTERFACE247) - IDENT248=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_annotationTypeDeclaration8156) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT248) - self._state.following.append(self.FOLLOW_annotationBody_in_annotationTypeDeclaration8158) - annotationBody249 = self.annotationBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationBody.add(annotationBody249.tree) - - # AST Rewrite - # elements: AT, IDENT, annotationBody - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 614:9: -> ^( AT IDENT annotationBody ) - # Java.g:614:12: ^( AT IDENT annotationBody ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_AT.nextNode(), root_1) - - self._adaptor.addChild(root_1, modifiers) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_annotationBody.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 68, annotationTypeDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationTypeDeclaration" - - class annotationBody_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationBody_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationBody" - # Java.g:617:1: annotationBody : LCURLY ( annotationScopeDeclarations )* RCURLY -> ^( ANNOTATION_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( annotationScopeDeclarations )* ) ; - def annotationBody(self, ): - - retval = self.annotationBody_return() - retval.start = self.input.LT(1) - annotationBody_StartIndex = self.input.index() - root_0 = None - - LCURLY250 = None - RCURLY252 = None - annotationScopeDeclarations251 = None - - - LCURLY250_tree = None - RCURLY252_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_annotationScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule annotationScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 69): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:618:5: ( LCURLY ( annotationScopeDeclarations )* RCURLY -> ^( ANNOTATION_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( annotationScopeDeclarations )* ) ) - # Java.g:618:9: LCURLY ( annotationScopeDeclarations )* RCURLY - pass - LCURLY250=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_annotationBody8197) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY250) - # Java.g:618:16: ( annotationScopeDeclarations )* - while True: #loop83 - alt83 = 2 - LA83_0 = self.input.LA(1) - - if (LA83_0 == AT or LA83_0 == LESS_THAN or LA83_0 == ABSTRACT or LA83_0 == BOOLEAN or LA83_0 == BYTE or (CHAR <= LA83_0 <= CLASS) or LA83_0 == DOUBLE or LA83_0 == ENUM or LA83_0 == FINAL or LA83_0 == FLOAT or LA83_0 == INTERFACE or (INT <= LA83_0 <= NATIVE) or (PRIVATE <= LA83_0 <= PUBLIC) or (SHORT <= LA83_0 <= STRICTFP) or LA83_0 == SYNCHRONIZED or LA83_0 == TRANSIENT or (VOID <= LA83_0 <= VOLATILE) or LA83_0 == IDENT) : - alt83 = 1 - - - if alt83 == 1: - # Java.g:0:0: annotationScopeDeclarations - pass - self._state.following.append(self.FOLLOW_annotationScopeDeclarations_in_annotationBody8199) - annotationScopeDeclarations251 = self.annotationScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationScopeDeclarations.add(annotationScopeDeclarations251.tree) - - - else: - break #loop83 - RCURLY252=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_annotationBody8202) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY252) - - # AST Rewrite - # elements: annotationScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 619:9: -> ^( ANNOTATION_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( annotationScopeDeclarations )* ) - # Java.g:619:13: ^( ANNOTATION_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( annotationScopeDeclarations )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ANNOTATION_TOP_LEVEL_SCOPE, LCURLY250, "CLASS_TOP_LEVEL_SCOPE"), root_1) - - # Java.g:619:76: ( annotationScopeDeclarations )* - while stream_annotationScopeDeclarations.hasNext(): - self._adaptor.addChild(root_1, stream_annotationScopeDeclarations.nextTree()) - - - stream_annotationScopeDeclarations.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 69, annotationBody_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationBody" - - class annotationScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationScopeDeclarations_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationScopeDeclarations" - # Java.g:622:1: annotationScopeDeclarations : ( modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) | classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) | typeDeclaration ); - def annotationScopeDeclarations(self, ): - - retval = self.annotationScopeDeclarations_return() - retval.start = self.input.LT(1) - annotationScopeDeclarations_StartIndex = self.input.index() - root_0 = None - - IDENT255 = None - LPAREN256 = None - RPAREN257 = None - SEMI259 = None - SEMI261 = None - modifierList253 = None - - type254 = None - - annotationDefaultValue258 = None - - classFieldDeclaratorList260 = None - - typeDeclaration262 = None - - - IDENT255_tree = None - LPAREN256_tree = None - RPAREN257_tree = None - SEMI259_tree = None - SEMI261_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_modifierList = RewriteRuleSubtreeStream(self._adaptor, "rule modifierList") - stream_annotationDefaultValue = RewriteRuleSubtreeStream(self._adaptor, "rule annotationDefaultValue") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_classFieldDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule classFieldDeclaratorList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 70): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:623:5: ( modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) | classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) | typeDeclaration ) - alt86 = 2 - alt86 = self.dfa86.predict(self.input) - if alt86 == 1: - # Java.g:623:9: modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) | classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_annotationScopeDeclarations8240) - modifierList253 = self.modifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_modifierList.add(modifierList253.tree) - self._state.following.append(self.FOLLOW_type_in_annotationScopeDeclarations8242) - type254 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type254.tree) - # Java.g:624:9: ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) | classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) - alt85 = 2 - LA85_0 = self.input.LA(1) - - if (LA85_0 == IDENT) : - LA85_1 = self.input.LA(2) - - if (LA85_1 == LPAREN) : - alt85 = 1 - elif (LA85_1 == ASSIGN or LA85_1 == COMMA or LA85_1 == LBRACK or LA85_1 == SEMI) : - alt85 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 85, 1, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 85, 0, self.input) - - raise nvae - - if alt85 == 1: - # Java.g:624:13: IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI - pass - IDENT255=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_annotationScopeDeclarations8256) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT255) - LPAREN256=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_annotationScopeDeclarations8258) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN256) - RPAREN257=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_annotationScopeDeclarations8260) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN257) - # Java.g:624:33: ( annotationDefaultValue )? - alt84 = 2 - LA84_0 = self.input.LA(1) - - if (LA84_0 == DEFAULT) : - alt84 = 1 - if alt84 == 1: - # Java.g:0:0: annotationDefaultValue - pass - self._state.following.append(self.FOLLOW_annotationDefaultValue_in_annotationScopeDeclarations8262) - annotationDefaultValue258 = self.annotationDefaultValue() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationDefaultValue.add(annotationDefaultValue258.tree) - - - - SEMI259=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_annotationScopeDeclarations8265) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI259) - - # AST Rewrite - # elements: annotationDefaultValue, IDENT, modifierList, type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 625:13: -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) - # Java.g:625:17: ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ANNOTATION_METHOD_DECL, "ANNOTATION_METHOD_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - # Java.g:625:66: ( annotationDefaultValue )? - if stream_annotationDefaultValue.hasNext(): - self._adaptor.addChild(root_1, stream_annotationDefaultValue.nextTree()) - - - stream_annotationDefaultValue.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt85 == 2: - # Java.g:626:13: classFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_annotationScopeDeclarations8307) - classFieldDeclaratorList260 = self.classFieldDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclaratorList.add(classFieldDeclaratorList260.tree) - SEMI261=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_annotationScopeDeclarations8309) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI261) - - # AST Rewrite - # elements: classFieldDeclaratorList, type, modifierList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 627:13: -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) - # Java.g:627:17: ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATION, "VAR_DECLARATION"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_classFieldDeclaratorList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt86 == 2: - # Java.g:629:9: typeDeclaration - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_typeDeclaration_in_annotationScopeDeclarations8354) - typeDeclaration262 = self.typeDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration262.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 70, annotationScopeDeclarations_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationScopeDeclarations" - - class annotationDefaultValue_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationDefaultValue_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationDefaultValue" - # Java.g:632:1: annotationDefaultValue : DEFAULT annotationElementValue ; - def annotationDefaultValue(self, ): - - retval = self.annotationDefaultValue_return() - retval.start = self.input.LT(1) - annotationDefaultValue_StartIndex = self.input.index() - root_0 = None - - DEFAULT263 = None - annotationElementValue264 = None - - - DEFAULT263_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 71): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:633:5: ( DEFAULT annotationElementValue ) - # Java.g:633:9: DEFAULT annotationElementValue - pass - root_0 = self._adaptor.nil() - - DEFAULT263=self.match(self.input, DEFAULT, self.FOLLOW_DEFAULT_in_annotationDefaultValue8373) - if self._state.backtracking == 0: - - DEFAULT263_tree = self._adaptor.createWithPayload(DEFAULT263) - root_0 = self._adaptor.becomeRoot(DEFAULT263_tree, root_0) - - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationDefaultValue8376) - annotationElementValue264 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationElementValue264.tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 71, annotationDefaultValue_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationDefaultValue" - - class block_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.block_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "block" - # Java.g:638:1: block : LCURLY ( blockStatement )* RCURLY -> ^( BLOCK_SCOPE[$LCURLY, \"BLOCK_SCOPE\"] ( blockStatement )* ) ; - def block(self, ): - - retval = self.block_return() - retval.start = self.input.LT(1) - block_StartIndex = self.input.index() - root_0 = None - - LCURLY265 = None - RCURLY267 = None - blockStatement266 = None - - - LCURLY265_tree = None - RCURLY267_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_blockStatement = RewriteRuleSubtreeStream(self._adaptor, "rule blockStatement") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 72): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:639:5: ( LCURLY ( blockStatement )* RCURLY -> ^( BLOCK_SCOPE[$LCURLY, \"BLOCK_SCOPE\"] ( blockStatement )* ) ) - # Java.g:639:9: LCURLY ( blockStatement )* RCURLY - pass - LCURLY265=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_block8397) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY265) - # Java.g:639:16: ( blockStatement )* - while True: #loop87 - alt87 = 2 - LA87_0 = self.input.LA(1) - - if (LA87_0 == AT or LA87_0 == DEC or LA87_0 == INC or LA87_0 == LCURLY or LA87_0 == LESS_THAN or LA87_0 == LOGICAL_NOT or (LPAREN <= LA87_0 <= MINUS) or LA87_0 == NOT or LA87_0 == PLUS or LA87_0 == SEMI or (ABSTRACT <= LA87_0 <= BYTE) or (CHAR <= LA87_0 <= CONTINUE) or (DO <= LA87_0 <= DOUBLE) or LA87_0 == ENUM or (FALSE <= LA87_0 <= FINAL) or (FLOAT <= LA87_0 <= IF) or LA87_0 == INTERFACE or (INT <= LA87_0 <= NULL) or (PRIVATE <= LA87_0 <= THROW) or (TRANSIENT <= LA87_0 <= WHILE) or (IDENT <= LA87_0 <= STRING_LITERAL)) : - alt87 = 1 - - - if alt87 == 1: - # Java.g:0:0: blockStatement - pass - self._state.following.append(self.FOLLOW_blockStatement_in_block8399) - blockStatement266 = self.blockStatement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_blockStatement.add(blockStatement266.tree) - - - else: - break #loop87 - RCURLY267=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_block8402) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY267) - - # AST Rewrite - # elements: blockStatement - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 640:9: -> ^( BLOCK_SCOPE[$LCURLY, \"BLOCK_SCOPE\"] ( blockStatement )* ) - # Java.g:640:13: ^( BLOCK_SCOPE[$LCURLY, \"BLOCK_SCOPE\"] ( blockStatement )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(BLOCK_SCOPE, LCURLY265, "BLOCK_SCOPE"), root_1) - - # Java.g:640:51: ( blockStatement )* - while stream_blockStatement.hasNext(): - self._adaptor.addChild(root_1, stream_blockStatement.nextTree()) - - - stream_blockStatement.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 72, block_StartIndex, success) - - pass - return retval - - # $ANTLR end "block" - - class blockStatement_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.blockStatement_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "blockStatement" - # Java.g:643:1: blockStatement : ( localVariableDeclaration SEMI | typeDeclaration | statement ); - def blockStatement(self, ): - - retval = self.blockStatement_return() - retval.start = self.input.LT(1) - blockStatement_StartIndex = self.input.index() - root_0 = None - - SEMI269 = None - localVariableDeclaration268 = None - - typeDeclaration270 = None - - statement271 = None - - - SEMI269_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 73): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:644:5: ( localVariableDeclaration SEMI | typeDeclaration | statement ) - alt88 = 3 - alt88 = self.dfa88.predict(self.input) - if alt88 == 1: - # Java.g:644:9: localVariableDeclaration SEMI - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_localVariableDeclaration_in_blockStatement8440) - localVariableDeclaration268 = self.localVariableDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, localVariableDeclaration268.tree) - SEMI269=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_blockStatement8442) - - - elif alt88 == 2: - # Java.g:645:9: typeDeclaration - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_typeDeclaration_in_blockStatement8453) - typeDeclaration270 = self.typeDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration270.tree) - - - elif alt88 == 3: - # Java.g:646:9: statement - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_statement_in_blockStatement8463) - statement271 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, statement271.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 73, blockStatement_StartIndex, success) - - pass - return retval - - # $ANTLR end "blockStatement" - - class localVariableDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.localVariableDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "localVariableDeclaration" - # Java.g:649:1: localVariableDeclaration : localModifierList type classFieldDeclaratorList -> ^( VAR_DECLARATION localModifierList type classFieldDeclaratorList ) ; - def localVariableDeclaration(self, ): - - retval = self.localVariableDeclaration_return() - retval.start = self.input.LT(1) - localVariableDeclaration_StartIndex = self.input.index() - root_0 = None - - localModifierList272 = None - - type273 = None - - classFieldDeclaratorList274 = None - - - stream_localModifierList = RewriteRuleSubtreeStream(self._adaptor, "rule localModifierList") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_classFieldDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule classFieldDeclaratorList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 74): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:650:5: ( localModifierList type classFieldDeclaratorList -> ^( VAR_DECLARATION localModifierList type classFieldDeclaratorList ) ) - # Java.g:650:9: localModifierList type classFieldDeclaratorList - pass - self._state.following.append(self.FOLLOW_localModifierList_in_localVariableDeclaration8482) - localModifierList272 = self.localModifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifierList.add(localModifierList272.tree) - self._state.following.append(self.FOLLOW_type_in_localVariableDeclaration8484) - type273 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type273.tree) - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_localVariableDeclaration8486) - classFieldDeclaratorList274 = self.classFieldDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclaratorList.add(classFieldDeclaratorList274.tree) - - # AST Rewrite - # elements: type, classFieldDeclaratorList, localModifierList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 651:9: -> ^( VAR_DECLARATION localModifierList type classFieldDeclaratorList ) - # Java.g:651:13: ^( VAR_DECLARATION localModifierList type classFieldDeclaratorList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATION, "VAR_DECLARATION"), root_1) - - self._adaptor.addChild(root_1, stream_localModifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_classFieldDeclaratorList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 74, localVariableDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "localVariableDeclaration" - - class statement_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.statement_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "statement" - # Java.g:655:1: statement : ( block | ASSERT expr1= expression ( COLON expr2= expression SEMI -> ^( ASSERT $expr1 $expr2) | SEMI -> ^( ASSERT $expr1) ) | IF parenthesizedExpression ifStat= statement ( ELSE elseStat= statement -> ^( IF parenthesizedExpression $ifStat $elseStat) | -> ^( IF parenthesizedExpression $ifStat) ) | FOR LPAREN ( forInit SEMI forCondition SEMI forUpdater RPAREN statement -> ^( FOR forInit forCondition forUpdater statement ) | localModifierList type IDENT COLON expression RPAREN statement -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) ) | WHILE parenthesizedExpression statement -> ^( WHILE parenthesizedExpression statement ) | DO statement WHILE parenthesizedExpression SEMI -> ^( DO statement parenthesizedExpression ) | TRY block ( catches ( finallyClause )? | finallyClause ) -> ^( TRY block ( catches )? ( finallyClause )? ) | SWITCH parenthesizedExpression LCURLY ( switchBlockLabels )? RCURLY -> ^( SWITCH parenthesizedExpression ( switchBlockLabels )? ) | SYNCHRONIZED parenthesizedExpression block -> ^( SYNCHRONIZED parenthesizedExpression block ) | RETURN ( expression )? SEMI -> ^( RETURN ( expression )? ) | THROW expression SEMI -> ^( THROW expression ) | BREAK ( IDENT )? SEMI -> ^( BREAK ( IDENT )? ) | CONTINUE ( IDENT )? SEMI -> ^( CONTINUE ( IDENT )? ) | IDENT COLON statement -> ^( LABELED_STATEMENT IDENT statement ) | expression SEMI | SEMI ); - def statement(self, ): - - retval = self.statement_return() - retval.start = self.input.LT(1) - statement_StartIndex = self.input.index() - root_0 = None - - ASSERT276 = None - COLON277 = None - SEMI278 = None - SEMI279 = None - IF280 = None - ELSE282 = None - FOR283 = None - LPAREN284 = None - SEMI286 = None - SEMI288 = None - RPAREN290 = None - IDENT294 = None - COLON295 = None - RPAREN297 = None - WHILE299 = None - DO302 = None - WHILE304 = None - SEMI306 = None - TRY307 = None - SWITCH312 = None - LCURLY314 = None - RCURLY316 = None - SYNCHRONIZED317 = None - RETURN320 = None - SEMI322 = None - THROW323 = None - SEMI325 = None - BREAK326 = None - IDENT327 = None - SEMI328 = None - CONTINUE329 = None - IDENT330 = None - SEMI331 = None - IDENT332 = None - COLON333 = None - SEMI336 = None - SEMI337 = None - expr1 = None - - expr2 = None - - ifStat = None - - elseStat = None - - block275 = None - - parenthesizedExpression281 = None - - forInit285 = None - - forCondition287 = None - - forUpdater289 = None - - statement291 = None - - localModifierList292 = None - - type293 = None - - expression296 = None - - statement298 = None - - parenthesizedExpression300 = None - - statement301 = None - - statement303 = None - - parenthesizedExpression305 = None - - block308 = None - - catches309 = None - - finallyClause310 = None - - finallyClause311 = None - - parenthesizedExpression313 = None - - switchBlockLabels315 = None - - parenthesizedExpression318 = None - - block319 = None - - expression321 = None - - expression324 = None - - statement334 = None - - expression335 = None - - - ASSERT276_tree = None - COLON277_tree = None - SEMI278_tree = None - SEMI279_tree = None - IF280_tree = None - ELSE282_tree = None - FOR283_tree = None - LPAREN284_tree = None - SEMI286_tree = None - SEMI288_tree = None - RPAREN290_tree = None - IDENT294_tree = None - COLON295_tree = None - RPAREN297_tree = None - WHILE299_tree = None - DO302_tree = None - WHILE304_tree = None - SEMI306_tree = None - TRY307_tree = None - SWITCH312_tree = None - LCURLY314_tree = None - RCURLY316_tree = None - SYNCHRONIZED317_tree = None - RETURN320_tree = None - SEMI322_tree = None - THROW323_tree = None - SEMI325_tree = None - BREAK326_tree = None - IDENT327_tree = None - SEMI328_tree = None - CONTINUE329_tree = None - IDENT330_tree = None - SEMI331_tree = None - IDENT332_tree = None - COLON333_tree = None - SEMI336_tree = None - SEMI337_tree = None - stream_COLON = RewriteRuleTokenStream(self._adaptor, "token COLON") - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_SYNCHRONIZED = RewriteRuleTokenStream(self._adaptor, "token SYNCHRONIZED") - stream_WHILE = RewriteRuleTokenStream(self._adaptor, "token WHILE") - stream_CONTINUE = RewriteRuleTokenStream(self._adaptor, "token CONTINUE") - stream_SWITCH = RewriteRuleTokenStream(self._adaptor, "token SWITCH") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_ELSE = RewriteRuleTokenStream(self._adaptor, "token ELSE") - stream_RETURN = RewriteRuleTokenStream(self._adaptor, "token RETURN") - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_FOR = RewriteRuleTokenStream(self._adaptor, "token FOR") - stream_DO = RewriteRuleTokenStream(self._adaptor, "token DO") - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_ASSERT = RewriteRuleTokenStream(self._adaptor, "token ASSERT") - stream_BREAK = RewriteRuleTokenStream(self._adaptor, "token BREAK") - stream_THROW = RewriteRuleTokenStream(self._adaptor, "token THROW") - stream_TRY = RewriteRuleTokenStream(self._adaptor, "token TRY") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_IF = RewriteRuleTokenStream(self._adaptor, "token IF") - stream_statement = RewriteRuleSubtreeStream(self._adaptor, "rule statement") - stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") - stream_finallyClause = RewriteRuleSubtreeStream(self._adaptor, "rule finallyClause") - stream_catches = RewriteRuleSubtreeStream(self._adaptor, "rule catches") - stream_forUpdater = RewriteRuleSubtreeStream(self._adaptor, "rule forUpdater") - stream_block = RewriteRuleSubtreeStream(self._adaptor, "rule block") - stream_forCondition = RewriteRuleSubtreeStream(self._adaptor, "rule forCondition") - stream_localModifierList = RewriteRuleSubtreeStream(self._adaptor, "rule localModifierList") - stream_forInit = RewriteRuleSubtreeStream(self._adaptor, "rule forInit") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_switchBlockLabels = RewriteRuleSubtreeStream(self._adaptor, "rule switchBlockLabels") - stream_parenthesizedExpression = RewriteRuleSubtreeStream(self._adaptor, "rule parenthesizedExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 75): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:656:5: ( block | ASSERT expr1= expression ( COLON expr2= expression SEMI -> ^( ASSERT $expr1 $expr2) | SEMI -> ^( ASSERT $expr1) ) | IF parenthesizedExpression ifStat= statement ( ELSE elseStat= statement -> ^( IF parenthesizedExpression $ifStat $elseStat) | -> ^( IF parenthesizedExpression $ifStat) ) | FOR LPAREN ( forInit SEMI forCondition SEMI forUpdater RPAREN statement -> ^( FOR forInit forCondition forUpdater statement ) | localModifierList type IDENT COLON expression RPAREN statement -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) ) | WHILE parenthesizedExpression statement -> ^( WHILE parenthesizedExpression statement ) | DO statement WHILE parenthesizedExpression SEMI -> ^( DO statement parenthesizedExpression ) | TRY block ( catches ( finallyClause )? | finallyClause ) -> ^( TRY block ( catches )? ( finallyClause )? ) | SWITCH parenthesizedExpression LCURLY ( switchBlockLabels )? RCURLY -> ^( SWITCH parenthesizedExpression ( switchBlockLabels )? ) | SYNCHRONIZED parenthesizedExpression block -> ^( SYNCHRONIZED parenthesizedExpression block ) | RETURN ( expression )? SEMI -> ^( RETURN ( expression )? ) | THROW expression SEMI -> ^( THROW expression ) | BREAK ( IDENT )? SEMI -> ^( BREAK ( IDENT )? ) | CONTINUE ( IDENT )? SEMI -> ^( CONTINUE ( IDENT )? ) | IDENT COLON statement -> ^( LABELED_STATEMENT IDENT statement ) | expression SEMI | SEMI ) - alt98 = 16 - alt98 = self.dfa98.predict(self.input) - if alt98 == 1: - # Java.g:656:9: block - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_block_in_statement8527) - block275 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, block275.tree) - - - elif alt98 == 2: - # Java.g:657:9: ASSERT expr1= expression ( COLON expr2= expression SEMI -> ^( ASSERT $expr1 $expr2) | SEMI -> ^( ASSERT $expr1) ) - pass - ASSERT276=self.match(self.input, ASSERT, self.FOLLOW_ASSERT_in_statement8537) - if self._state.backtracking == 0: - stream_ASSERT.add(ASSERT276) - self._state.following.append(self.FOLLOW_expression_in_statement8541) - expr1 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expr1.tree) - # Java.g:658:9: ( COLON expr2= expression SEMI -> ^( ASSERT $expr1 $expr2) | SEMI -> ^( ASSERT $expr1) ) - alt89 = 2 - LA89_0 = self.input.LA(1) - - if (LA89_0 == COLON) : - alt89 = 1 - elif (LA89_0 == SEMI) : - alt89 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 89, 0, self.input) - - raise nvae - - if alt89 == 1: - # Java.g:658:13: COLON expr2= expression SEMI - pass - COLON277=self.match(self.input, COLON, self.FOLLOW_COLON_in_statement8555) - if self._state.backtracking == 0: - stream_COLON.add(COLON277) - self._state.following.append(self.FOLLOW_expression_in_statement8559) - expr2 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expr2.tree) - SEMI278=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement8561) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI278) - - # AST Rewrite - # elements: ASSERT, expr1, expr2 - # token labels: - # rule labels: retval, expr1, expr2 - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if expr1 is not None: - stream_expr1 = RewriteRuleSubtreeStream(self._adaptor, "rule expr1", expr1.tree) - else: - stream_expr1 = RewriteRuleSubtreeStream(self._adaptor, "token expr1", None) - - - if expr2 is not None: - stream_expr2 = RewriteRuleSubtreeStream(self._adaptor, "rule expr2", expr2.tree) - else: - stream_expr2 = RewriteRuleSubtreeStream(self._adaptor, "token expr2", None) - - - root_0 = self._adaptor.nil() - # 658:77: -> ^( ASSERT $expr1 $expr2) - # Java.g:658:81: ^( ASSERT $expr1 $expr2) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_ASSERT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_expr1.nextTree()) - self._adaptor.addChild(root_1, stream_expr2.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt89 == 2: - # Java.g:659:13: SEMI - pass - SEMI279=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement8624) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI279) - - # AST Rewrite - # elements: expr1, ASSERT - # token labels: - # rule labels: retval, expr1 - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if expr1 is not None: - stream_expr1 = RewriteRuleSubtreeStream(self._adaptor, "rule expr1", expr1.tree) - else: - stream_expr1 = RewriteRuleSubtreeStream(self._adaptor, "token expr1", None) - - - root_0 = self._adaptor.nil() - # 659:77: -> ^( ASSERT $expr1) - # Java.g:659:81: ^( ASSERT $expr1) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_ASSERT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_expr1.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt98 == 3: - # Java.g:661:9: IF parenthesizedExpression ifStat= statement ( ELSE elseStat= statement -> ^( IF parenthesizedExpression $ifStat $elseStat) | -> ^( IF parenthesizedExpression $ifStat) ) - pass - IF280=self.match(self.input, IF, self.FOLLOW_IF_in_statement8713) - if self._state.backtracking == 0: - stream_IF.add(IF280) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement8715) - parenthesizedExpression281 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression281.tree) - self._state.following.append(self.FOLLOW_statement_in_statement8719) - ifStat = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(ifStat.tree) - # Java.g:662:9: ( ELSE elseStat= statement -> ^( IF parenthesizedExpression $ifStat $elseStat) | -> ^( IF parenthesizedExpression $ifStat) ) - alt90 = 2 - LA90_0 = self.input.LA(1) - - if (LA90_0 == ELSE) : - LA90_1 = self.input.LA(2) - - if (self.synpred121_Java()) : - alt90 = 1 - elif (True) : - alt90 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 90, 1, self.input) - - raise nvae - - elif (LA90_0 == EOF or LA90_0 == AT or LA90_0 == DEC or LA90_0 == INC or LA90_0 == LCURLY or LA90_0 == LESS_THAN or LA90_0 == LOGICAL_NOT or (LPAREN <= LA90_0 <= MINUS) or LA90_0 == NOT or LA90_0 == PLUS or LA90_0 == RCURLY or LA90_0 == SEMI or (ABSTRACT <= LA90_0 <= CASE) or (CHAR <= LA90_0 <= DOUBLE) or LA90_0 == ENUM or (FALSE <= LA90_0 <= FINAL) or (FLOAT <= LA90_0 <= IF) or LA90_0 == INTERFACE or (INT <= LA90_0 <= NULL) or (PRIVATE <= LA90_0 <= THROW) or (TRANSIENT <= LA90_0 <= WHILE) or (IDENT <= LA90_0 <= STRING_LITERAL)) : - alt90 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 90, 0, self.input) - - raise nvae - - if alt90 == 1: - # Java.g:662:13: ELSE elseStat= statement - pass - ELSE282=self.match(self.input, ELSE, self.FOLLOW_ELSE_in_statement8733) - if self._state.backtracking == 0: - stream_ELSE.add(ELSE282) - self._state.following.append(self.FOLLOW_statement_in_statement8737) - elseStat = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(elseStat.tree) - - # AST Rewrite - # elements: elseStat, ifStat, parenthesizedExpression, IF - # token labels: - # rule labels: retval, ifStat, elseStat - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if ifStat is not None: - stream_ifStat = RewriteRuleSubtreeStream(self._adaptor, "rule ifStat", ifStat.tree) - else: - stream_ifStat = RewriteRuleSubtreeStream(self._adaptor, "token ifStat", None) - - - if elseStat is not None: - stream_elseStat = RewriteRuleSubtreeStream(self._adaptor, "rule elseStat", elseStat.tree) - else: - stream_elseStat = RewriteRuleSubtreeStream(self._adaptor, "token elseStat", None) - - - root_0 = self._adaptor.nil() - # 662:77: -> ^( IF parenthesizedExpression $ifStat $elseStat) - # Java.g:662:81: ^( IF parenthesizedExpression $ifStat $elseStat) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_IF.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - self._adaptor.addChild(root_1, stream_ifStat.nextTree()) - self._adaptor.addChild(root_1, stream_elseStat.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt90 == 2: - # Java.g:663:77: - pass - # AST Rewrite - # elements: parenthesizedExpression, ifStat, IF - # token labels: - # rule labels: retval, ifStat - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if ifStat is not None: - stream_ifStat = RewriteRuleSubtreeStream(self._adaptor, "rule ifStat", ifStat.tree) - else: - stream_ifStat = RewriteRuleSubtreeStream(self._adaptor, "token ifStat", None) - - - root_0 = self._adaptor.nil() - # 663:77: -> ^( IF parenthesizedExpression $ifStat) - # Java.g:663:81: ^( IF parenthesizedExpression $ifStat) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_IF.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - self._adaptor.addChild(root_1, stream_ifStat.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt98 == 4: - # Java.g:665:9: FOR LPAREN ( forInit SEMI forCondition SEMI forUpdater RPAREN statement -> ^( FOR forInit forCondition forUpdater statement ) | localModifierList type IDENT COLON expression RPAREN statement -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) ) - pass - FOR283=self.match(self.input, FOR, self.FOLLOW_FOR_in_statement8900) - if self._state.backtracking == 0: - stream_FOR.add(FOR283) - LPAREN284=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_statement8902) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN284) - # Java.g:666:9: ( forInit SEMI forCondition SEMI forUpdater RPAREN statement -> ^( FOR forInit forCondition forUpdater statement ) | localModifierList type IDENT COLON expression RPAREN statement -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) ) - alt91 = 2 - alt91 = self.dfa91.predict(self.input) - if alt91 == 1: - # Java.g:666:13: forInit SEMI forCondition SEMI forUpdater RPAREN statement - pass - self._state.following.append(self.FOLLOW_forInit_in_statement8916) - forInit285 = self.forInit() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_forInit.add(forInit285.tree) - SEMI286=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement8918) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI286) - self._state.following.append(self.FOLLOW_forCondition_in_statement8920) - forCondition287 = self.forCondition() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_forCondition.add(forCondition287.tree) - SEMI288=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement8922) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI288) - self._state.following.append(self.FOLLOW_forUpdater_in_statement8924) - forUpdater289 = self.forUpdater() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_forUpdater.add(forUpdater289.tree) - RPAREN290=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_statement8926) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN290) - self._state.following.append(self.FOLLOW_statement_in_statement8928) - statement291 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement291.tree) - - # AST Rewrite - # elements: forInit, forUpdater, FOR, statement, forCondition - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 666:77: -> ^( FOR forInit forCondition forUpdater statement ) - # Java.g:666:81: ^( FOR forInit forCondition forUpdater statement ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_FOR.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_forInit.nextTree()) - self._adaptor.addChild(root_1, stream_forCondition.nextTree()) - self._adaptor.addChild(root_1, stream_forUpdater.nextTree()) - self._adaptor.addChild(root_1, stream_statement.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt91 == 2: - # Java.g:667:13: localModifierList type IDENT COLON expression RPAREN statement - pass - self._state.following.append(self.FOLLOW_localModifierList_in_statement8962) - localModifierList292 = self.localModifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifierList.add(localModifierList292.tree) - self._state.following.append(self.FOLLOW_type_in_statement8964) - type293 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type293.tree) - IDENT294=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_statement8966) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT294) - COLON295=self.match(self.input, COLON, self.FOLLOW_COLON_in_statement8968) - if self._state.backtracking == 0: - stream_COLON.add(COLON295) - self._state.following.append(self.FOLLOW_expression_in_statement8970) - expression296 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression296.tree) - RPAREN297=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_statement8972) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN297) - self._state.following.append(self.FOLLOW_statement_in_statement8974) - statement298 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement298.tree) - - # AST Rewrite - # elements: IDENT, expression, localModifierList, type, statement - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 668:77: -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) - # Java.g:668:81: ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(FOR_EACH, FOR283, "FOR_EACH"), root_1) - - self._adaptor.addChild(root_1, stream_localModifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_expression.nextTree()) - self._adaptor.addChild(root_1, stream_statement.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt98 == 5: - # Java.g:670:9: WHILE parenthesizedExpression statement - pass - WHILE299=self.match(self.input, WHILE, self.FOLLOW_WHILE_in_statement9088) - if self._state.backtracking == 0: - stream_WHILE.add(WHILE299) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement9090) - parenthesizedExpression300 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression300.tree) - self._state.following.append(self.FOLLOW_statement_in_statement9092) - statement301 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement301.tree) - - # AST Rewrite - # elements: statement, WHILE, parenthesizedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 670:77: -> ^( WHILE parenthesizedExpression statement ) - # Java.g:670:81: ^( WHILE parenthesizedExpression statement ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_WHILE.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - self._adaptor.addChild(root_1, stream_statement.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 6: - # Java.g:671:9: DO statement WHILE parenthesizedExpression SEMI - pass - DO302=self.match(self.input, DO, self.FOLLOW_DO_in_statement9141) - if self._state.backtracking == 0: - stream_DO.add(DO302) - self._state.following.append(self.FOLLOW_statement_in_statement9143) - statement303 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement303.tree) - WHILE304=self.match(self.input, WHILE, self.FOLLOW_WHILE_in_statement9145) - if self._state.backtracking == 0: - stream_WHILE.add(WHILE304) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement9147) - parenthesizedExpression305 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression305.tree) - SEMI306=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9149) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI306) - - # AST Rewrite - # elements: DO, parenthesizedExpression, statement - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 671:77: -> ^( DO statement parenthesizedExpression ) - # Java.g:671:81: ^( DO statement parenthesizedExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DO.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_statement.nextTree()) - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 7: - # Java.g:672:9: TRY block ( catches ( finallyClause )? | finallyClause ) - pass - TRY307=self.match(self.input, TRY, self.FOLLOW_TRY_in_statement9190) - if self._state.backtracking == 0: - stream_TRY.add(TRY307) - self._state.following.append(self.FOLLOW_block_in_statement9192) - block308 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block308.tree) - # Java.g:672:19: ( catches ( finallyClause )? | finallyClause ) - alt93 = 2 - LA93_0 = self.input.LA(1) - - if (LA93_0 == CATCH) : - alt93 = 1 - elif (LA93_0 == FINALLY) : - alt93 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 93, 0, self.input) - - raise nvae - - if alt93 == 1: - # Java.g:672:20: catches ( finallyClause )? - pass - self._state.following.append(self.FOLLOW_catches_in_statement9195) - catches309 = self.catches() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_catches.add(catches309.tree) - # Java.g:672:28: ( finallyClause )? - alt92 = 2 - LA92_0 = self.input.LA(1) - - if (LA92_0 == FINALLY) : - alt92 = 1 - if alt92 == 1: - # Java.g:0:0: finallyClause - pass - self._state.following.append(self.FOLLOW_finallyClause_in_statement9197) - finallyClause310 = self.finallyClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_finallyClause.add(finallyClause310.tree) - - - - - - elif alt93 == 2: - # Java.g:672:45: finallyClause - pass - self._state.following.append(self.FOLLOW_finallyClause_in_statement9202) - finallyClause311 = self.finallyClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_finallyClause.add(finallyClause311.tree) - - - - - # AST Rewrite - # elements: block, finallyClause, catches, TRY - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 672:77: -> ^( TRY block ( catches )? ( finallyClause )? ) - # Java.g:672:81: ^( TRY block ( catches )? ( finallyClause )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_TRY.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_block.nextTree()) - # Java.g:672:93: ( catches )? - if stream_catches.hasNext(): - self._adaptor.addChild(root_1, stream_catches.nextTree()) - - - stream_catches.reset(); - # Java.g:672:102: ( finallyClause )? - if stream_finallyClause.hasNext(): - self._adaptor.addChild(root_1, stream_finallyClause.nextTree()) - - - stream_finallyClause.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 8: - # Java.g:673:9: SWITCH parenthesizedExpression LCURLY ( switchBlockLabels )? RCURLY - pass - SWITCH312=self.match(self.input, SWITCH, self.FOLLOW_SWITCH_in_statement9245) - if self._state.backtracking == 0: - stream_SWITCH.add(SWITCH312) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement9247) - parenthesizedExpression313 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression313.tree) - LCURLY314=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_statement9249) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY314) - # Java.g:673:47: ( switchBlockLabels )? - alt94 = 2 - LA94_0 = self.input.LA(1) - - if (LA94_0 == CASE or LA94_0 == DEFAULT) : - alt94 = 1 - elif (LA94_0 == RCURLY) : - LA94_2 = self.input.LA(2) - - if (self.synpred130_Java()) : - alt94 = 1 - if alt94 == 1: - # Java.g:0:0: switchBlockLabels - pass - self._state.following.append(self.FOLLOW_switchBlockLabels_in_statement9251) - switchBlockLabels315 = self.switchBlockLabels() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_switchBlockLabels.add(switchBlockLabels315.tree) - - - - RCURLY316=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_statement9254) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY316) - - # AST Rewrite - # elements: switchBlockLabels, parenthesizedExpression, SWITCH - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 673:78: -> ^( SWITCH parenthesizedExpression ( switchBlockLabels )? ) - # Java.g:673:82: ^( SWITCH parenthesizedExpression ( switchBlockLabels )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_SWITCH.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - # Java.g:673:115: ( switchBlockLabels )? - if stream_switchBlockLabels.hasNext(): - self._adaptor.addChild(root_1, stream_switchBlockLabels.nextTree()) - - - stream_switchBlockLabels.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 9: - # Java.g:674:9: SYNCHRONIZED parenthesizedExpression block - pass - SYNCHRONIZED317=self.match(self.input, SYNCHRONIZED, self.FOLLOW_SYNCHRONIZED_in_statement9281) - if self._state.backtracking == 0: - stream_SYNCHRONIZED.add(SYNCHRONIZED317) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement9283) - parenthesizedExpression318 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression318.tree) - self._state.following.append(self.FOLLOW_block_in_statement9285) - block319 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block319.tree) - - # AST Rewrite - # elements: SYNCHRONIZED, block, parenthesizedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 674:77: -> ^( SYNCHRONIZED parenthesizedExpression block ) - # Java.g:674:81: ^( SYNCHRONIZED parenthesizedExpression block ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_SYNCHRONIZED.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - self._adaptor.addChild(root_1, stream_block.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 10: - # Java.g:675:9: RETURN ( expression )? SEMI - pass - RETURN320=self.match(self.input, RETURN, self.FOLLOW_RETURN_in_statement9331) - if self._state.backtracking == 0: - stream_RETURN.add(RETURN320) - # Java.g:675:16: ( expression )? - alt95 = 2 - LA95_0 = self.input.LA(1) - - if (LA95_0 == DEC or LA95_0 == INC or LA95_0 == LESS_THAN or LA95_0 == LOGICAL_NOT or (LPAREN <= LA95_0 <= MINUS) or LA95_0 == NOT or LA95_0 == PLUS or LA95_0 == BOOLEAN or LA95_0 == BYTE or LA95_0 == CHAR or LA95_0 == DOUBLE or LA95_0 == FALSE or LA95_0 == FLOAT or (INT <= LA95_0 <= LONG) or (NEW <= LA95_0 <= NULL) or LA95_0 == SHORT or LA95_0 == SUPER or LA95_0 == THIS or LA95_0 == TRUE or LA95_0 == VOID or (IDENT <= LA95_0 <= STRING_LITERAL)) : - alt95 = 1 - if alt95 == 1: - # Java.g:0:0: expression - pass - self._state.following.append(self.FOLLOW_expression_in_statement9333) - expression321 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression321.tree) - - - - SEMI322=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9336) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI322) - - # AST Rewrite - # elements: RETURN, expression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 675:77: -> ^( RETURN ( expression )? ) - # Java.g:675:81: ^( RETURN ( expression )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_RETURN.nextNode(), root_1) - - # Java.g:675:90: ( expression )? - if stream_expression.hasNext(): - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - - stream_expression.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 11: - # Java.g:676:9: THROW expression SEMI - pass - THROW323=self.match(self.input, THROW, self.FOLLOW_THROW_in_statement9400) - if self._state.backtracking == 0: - stream_THROW.add(THROW323) - self._state.following.append(self.FOLLOW_expression_in_statement9402) - expression324 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression324.tree) - SEMI325=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9404) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI325) - - # AST Rewrite - # elements: expression, THROW - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 676:77: -> ^( THROW expression ) - # Java.g:676:81: ^( THROW expression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_THROW.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 12: - # Java.g:677:9: BREAK ( IDENT )? SEMI - pass - BREAK326=self.match(self.input, BREAK, self.FOLLOW_BREAK_in_statement9469) - if self._state.backtracking == 0: - stream_BREAK.add(BREAK326) - # Java.g:677:15: ( IDENT )? - alt96 = 2 - LA96_0 = self.input.LA(1) - - if (LA96_0 == IDENT) : - alt96 = 1 - if alt96 == 1: - # Java.g:0:0: IDENT - pass - IDENT327=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_statement9471) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT327) - - - - SEMI328=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9474) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI328) - - # AST Rewrite - # elements: BREAK, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 677:77: -> ^( BREAK ( IDENT )? ) - # Java.g:677:81: ^( BREAK ( IDENT )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_BREAK.nextNode(), root_1) - - # Java.g:677:89: ( IDENT )? - if stream_IDENT.hasNext(): - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - - stream_IDENT.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 13: - # Java.g:678:9: CONTINUE ( IDENT )? SEMI - pass - CONTINUE329=self.match(self.input, CONTINUE, self.FOLLOW_CONTINUE_in_statement9544) - if self._state.backtracking == 0: - stream_CONTINUE.add(CONTINUE329) - # Java.g:678:18: ( IDENT )? - alt97 = 2 - LA97_0 = self.input.LA(1) - - if (LA97_0 == IDENT) : - alt97 = 1 - if alt97 == 1: - # Java.g:0:0: IDENT - pass - IDENT330=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_statement9546) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT330) - - - - SEMI331=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9549) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI331) - - # AST Rewrite - # elements: CONTINUE, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 678:77: -> ^( CONTINUE ( IDENT )? ) - # Java.g:678:81: ^( CONTINUE ( IDENT )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_CONTINUE.nextNode(), root_1) - - # Java.g:678:92: ( IDENT )? - if stream_IDENT.hasNext(): - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - - stream_IDENT.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 14: - # Java.g:679:9: IDENT COLON statement - pass - IDENT332=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_statement9616) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT332) - COLON333=self.match(self.input, COLON, self.FOLLOW_COLON_in_statement9618) - if self._state.backtracking == 0: - stream_COLON.add(COLON333) - self._state.following.append(self.FOLLOW_statement_in_statement9620) - statement334 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement334.tree) - - # AST Rewrite - # elements: statement, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 679:77: -> ^( LABELED_STATEMENT IDENT statement ) - # Java.g:679:81: ^( LABELED_STATEMENT IDENT statement ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(LABELED_STATEMENT, "LABELED_STATEMENT"), root_1) - - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_statement.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 15: - # Java.g:680:9: expression SEMI - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_expression_in_statement9687) - expression335 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression335.tree) - SEMI336=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9689) - - - elif alt98 == 16: - # Java.g:681:9: SEMI - pass - root_0 = self._adaptor.nil() - - SEMI337=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9700) - if self._state.backtracking == 0: - - SEMI337_tree = self._adaptor.createWithPayload(SEMI337) - self._adaptor.addChild(root_0, SEMI337_tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 75, statement_StartIndex, success) - - pass - return retval - - # $ANTLR end "statement" - - class catches_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.catches_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "catches" - # Java.g:684:1: catches : ( catchClause )+ -> ^( CATCH_CLAUSE_LIST ( catchClause )+ ) ; - def catches(self, ): - - retval = self.catches_return() - retval.start = self.input.LT(1) - catches_StartIndex = self.input.index() - root_0 = None - - catchClause338 = None - - - stream_catchClause = RewriteRuleSubtreeStream(self._adaptor, "rule catchClause") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 76): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:685:5: ( ( catchClause )+ -> ^( CATCH_CLAUSE_LIST ( catchClause )+ ) ) - # Java.g:685:9: ( catchClause )+ - pass - # Java.g:685:9: ( catchClause )+ - cnt99 = 0 - while True: #loop99 - alt99 = 2 - LA99_0 = self.input.LA(1) - - if (LA99_0 == CATCH) : - alt99 = 1 - - - if alt99 == 1: - # Java.g:0:0: catchClause - pass - self._state.following.append(self.FOLLOW_catchClause_in_catches9720) - catchClause338 = self.catchClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_catchClause.add(catchClause338.tree) - - - else: - if cnt99 >= 1: - break #loop99 - - if self._state.backtracking > 0: - raise BacktrackingFailed - - eee = EarlyExitException(99, self.input) - raise eee - - cnt99 += 1 - - # AST Rewrite - # elements: catchClause - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 686:9: -> ^( CATCH_CLAUSE_LIST ( catchClause )+ ) - # Java.g:686:13: ^( CATCH_CLAUSE_LIST ( catchClause )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(CATCH_CLAUSE_LIST, "CATCH_CLAUSE_LIST"), root_1) - - # Java.g:686:33: ( catchClause )+ - if not (stream_catchClause.hasNext()): - raise RewriteEarlyExitException() - - while stream_catchClause.hasNext(): - self._adaptor.addChild(root_1, stream_catchClause.nextTree()) - - - stream_catchClause.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 76, catches_StartIndex, success) - - pass - return retval - - # $ANTLR end "catches" - - class catchClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.catchClause_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "catchClause" - # Java.g:689:1: catchClause : CATCH LPAREN formalParameterStandardDecl RPAREN block ; - def catchClause(self, ): - - retval = self.catchClause_return() - retval.start = self.input.LT(1) - catchClause_StartIndex = self.input.index() - root_0 = None - - CATCH339 = None - LPAREN340 = None - RPAREN342 = None - formalParameterStandardDecl341 = None - - block343 = None - - - CATCH339_tree = None - LPAREN340_tree = None - RPAREN342_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 77): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:690:5: ( CATCH LPAREN formalParameterStandardDecl RPAREN block ) - # Java.g:690:9: CATCH LPAREN formalParameterStandardDecl RPAREN block - pass - root_0 = self._adaptor.nil() - - CATCH339=self.match(self.input, CATCH, self.FOLLOW_CATCH_in_catchClause9758) - if self._state.backtracking == 0: - - CATCH339_tree = self._adaptor.createWithPayload(CATCH339) - root_0 = self._adaptor.becomeRoot(CATCH339_tree, root_0) - - LPAREN340=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_catchClause9761) - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_catchClause9764) - formalParameterStandardDecl341 = self.formalParameterStandardDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, formalParameterStandardDecl341.tree) - RPAREN342=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_catchClause9766) - self._state.following.append(self.FOLLOW_block_in_catchClause9769) - block343 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, block343.tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 77, catchClause_StartIndex, success) - - pass - return retval - - # $ANTLR end "catchClause" - - class finallyClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.finallyClause_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "finallyClause" - # Java.g:693:1: finallyClause : FINALLY block -> block ; - def finallyClause(self, ): - - retval = self.finallyClause_return() - retval.start = self.input.LT(1) - finallyClause_StartIndex = self.input.index() - root_0 = None - - FINALLY344 = None - block345 = None - - - FINALLY344_tree = None - stream_FINALLY = RewriteRuleTokenStream(self._adaptor, "token FINALLY") - stream_block = RewriteRuleSubtreeStream(self._adaptor, "rule block") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 78): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:694:5: ( FINALLY block -> block ) - # Java.g:694:9: FINALLY block - pass - FINALLY344=self.match(self.input, FINALLY, self.FOLLOW_FINALLY_in_finallyClause9788) - if self._state.backtracking == 0: - stream_FINALLY.add(FINALLY344) - self._state.following.append(self.FOLLOW_block_in_finallyClause9790) - block345 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block345.tree) - - # AST Rewrite - # elements: block - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 695:9: -> block - self._adaptor.addChild(root_0, stream_block.nextTree()) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 78, finallyClause_StartIndex, success) - - pass - return retval - - # $ANTLR end "finallyClause" - - class switchBlockLabels_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.switchBlockLabels_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "switchBlockLabels" - # Java.g:698:1: switchBlockLabels : (c0= switchCaseLabels )? ( switchDefaultLabel )? (c1= switchCaseLabels )? -> ^( SWITCH_BLOCK_LABEL_LIST ( $c0)? ( switchDefaultLabel )? ( $c1)? ) ; - def switchBlockLabels(self, ): - - retval = self.switchBlockLabels_return() - retval.start = self.input.LT(1) - switchBlockLabels_StartIndex = self.input.index() - root_0 = None - - c0 = None - - c1 = None - - switchDefaultLabel346 = None - - - stream_switchDefaultLabel = RewriteRuleSubtreeStream(self._adaptor, "rule switchDefaultLabel") - stream_switchCaseLabels = RewriteRuleSubtreeStream(self._adaptor, "rule switchCaseLabels") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 79): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:702:5: ( (c0= switchCaseLabels )? ( switchDefaultLabel )? (c1= switchCaseLabels )? -> ^( SWITCH_BLOCK_LABEL_LIST ( $c0)? ( switchDefaultLabel )? ( $c1)? ) ) - # Java.g:702:9: (c0= switchCaseLabels )? ( switchDefaultLabel )? (c1= switchCaseLabels )? - pass - # Java.g:702:11: (c0= switchCaseLabels )? - alt100 = 2 - LA100 = self.input.LA(1) - if LA100 == CASE: - LA100_1 = self.input.LA(2) - - if (self.synpred143_Java()) : - alt100 = 1 - elif LA100 == DEFAULT: - LA100_2 = self.input.LA(2) - - if (self.synpred143_Java()) : - alt100 = 1 - elif LA100 == RCURLY: - LA100_3 = self.input.LA(2) - - if (self.synpred143_Java()) : - alt100 = 1 - elif LA100 == EOF: - LA100_4 = self.input.LA(2) - - if (self.synpred143_Java()) : - alt100 = 1 - if alt100 == 1: - # Java.g:0:0: c0= switchCaseLabels - pass - self._state.following.append(self.FOLLOW_switchCaseLabels_in_switchBlockLabels9839) - c0 = self.switchCaseLabels() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_switchCaseLabels.add(c0.tree) - - - - # Java.g:702:30: ( switchDefaultLabel )? - alt101 = 2 - LA101_0 = self.input.LA(1) - - if (LA101_0 == DEFAULT) : - alt101 = 1 - if alt101 == 1: - # Java.g:0:0: switchDefaultLabel - pass - self._state.following.append(self.FOLLOW_switchDefaultLabel_in_switchBlockLabels9842) - switchDefaultLabel346 = self.switchDefaultLabel() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_switchDefaultLabel.add(switchDefaultLabel346.tree) - - - - # Java.g:702:52: (c1= switchCaseLabels )? - alt102 = 2 - LA102 = self.input.LA(1) - if LA102 == CASE: - alt102 = 1 - elif LA102 == RCURLY: - LA102_2 = self.input.LA(2) - - if (self.synpred145_Java()) : - alt102 = 1 - elif LA102 == EOF: - LA102_3 = self.input.LA(2) - - if (self.synpred145_Java()) : - alt102 = 1 - if alt102 == 1: - # Java.g:0:0: c1= switchCaseLabels - pass - self._state.following.append(self.FOLLOW_switchCaseLabels_in_switchBlockLabels9847) - c1 = self.switchCaseLabels() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_switchCaseLabels.add(c1.tree) - - - - - # AST Rewrite - # elements: c0, switchDefaultLabel, c1 - # token labels: - # rule labels: retval, c1, c0 - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if c1 is not None: - stream_c1 = RewriteRuleSubtreeStream(self._adaptor, "rule c1", c1.tree) - else: - stream_c1 = RewriteRuleSubtreeStream(self._adaptor, "token c1", None) - - - if c0 is not None: - stream_c0 = RewriteRuleSubtreeStream(self._adaptor, "rule c0", c0.tree) - else: - stream_c0 = RewriteRuleSubtreeStream(self._adaptor, "token c0", None) - - - root_0 = self._adaptor.nil() - # 703:9: -> ^( SWITCH_BLOCK_LABEL_LIST ( $c0)? ( switchDefaultLabel )? ( $c1)? ) - # Java.g:703:13: ^( SWITCH_BLOCK_LABEL_LIST ( $c0)? ( switchDefaultLabel )? ( $c1)? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(SWITCH_BLOCK_LABEL_LIST, "SWITCH_BLOCK_LABEL_LIST"), root_1) - - # Java.g:703:39: ( $c0)? - if stream_c0.hasNext(): - self._adaptor.addChild(root_1, stream_c0.nextTree()) - - - stream_c0.reset(); - # Java.g:703:44: ( switchDefaultLabel )? - if stream_switchDefaultLabel.hasNext(): - self._adaptor.addChild(root_1, stream_switchDefaultLabel.nextTree()) - - - stream_switchDefaultLabel.reset(); - # Java.g:703:64: ( $c1)? - if stream_c1.hasNext(): - self._adaptor.addChild(root_1, stream_c1.nextTree()) - - - stream_c1.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 79, switchBlockLabels_StartIndex, success) - - pass - return retval - - # $ANTLR end "switchBlockLabels" - - class switchCaseLabels_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.switchCaseLabels_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "switchCaseLabels" - # Java.g:706:1: switchCaseLabels : ( switchCaseLabel )* ; - def switchCaseLabels(self, ): - - retval = self.switchCaseLabels_return() - retval.start = self.input.LT(1) - switchCaseLabels_StartIndex = self.input.index() - root_0 = None - - switchCaseLabel347 = None - - - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 80): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:707:5: ( ( switchCaseLabel )* ) - # Java.g:707:9: ( switchCaseLabel )* - pass - root_0 = self._adaptor.nil() - - # Java.g:707:9: ( switchCaseLabel )* - while True: #loop103 - alt103 = 2 - LA103_0 = self.input.LA(1) - - if (LA103_0 == CASE) : - LA103_2 = self.input.LA(2) - - if (self.synpred146_Java()) : - alt103 = 1 - - - - - if alt103 == 1: - # Java.g:0:0: switchCaseLabel - pass - self._state.following.append(self.FOLLOW_switchCaseLabel_in_switchCaseLabels9893) - switchCaseLabel347 = self.switchCaseLabel() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, switchCaseLabel347.tree) - - - else: - break #loop103 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 80, switchCaseLabels_StartIndex, success) - - pass - return retval - - # $ANTLR end "switchCaseLabels" - - class switchCaseLabel_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.switchCaseLabel_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "switchCaseLabel" - # Java.g:710:1: switchCaseLabel : CASE expression COLON ( blockStatement )* ; - def switchCaseLabel(self, ): - - retval = self.switchCaseLabel_return() - retval.start = self.input.LT(1) - switchCaseLabel_StartIndex = self.input.index() - root_0 = None - - CASE348 = None - COLON350 = None - expression349 = None - - blockStatement351 = None - - - CASE348_tree = None - COLON350_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 81): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:711:5: ( CASE expression COLON ( blockStatement )* ) - # Java.g:711:9: CASE expression COLON ( blockStatement )* - pass - root_0 = self._adaptor.nil() - - CASE348=self.match(self.input, CASE, self.FOLLOW_CASE_in_switchCaseLabel9913) - if self._state.backtracking == 0: - - CASE348_tree = self._adaptor.createWithPayload(CASE348) - root_0 = self._adaptor.becomeRoot(CASE348_tree, root_0) - - self._state.following.append(self.FOLLOW_expression_in_switchCaseLabel9916) - expression349 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression349.tree) - COLON350=self.match(self.input, COLON, self.FOLLOW_COLON_in_switchCaseLabel9918) - # Java.g:711:33: ( blockStatement )* - while True: #loop104 - alt104 = 2 - LA104_0 = self.input.LA(1) - - if (LA104_0 == AT or LA104_0 == DEC or LA104_0 == INC or LA104_0 == LCURLY or LA104_0 == LESS_THAN or LA104_0 == LOGICAL_NOT or (LPAREN <= LA104_0 <= MINUS) or LA104_0 == NOT or LA104_0 == PLUS or LA104_0 == SEMI or (ABSTRACT <= LA104_0 <= BYTE) or (CHAR <= LA104_0 <= CONTINUE) or (DO <= LA104_0 <= DOUBLE) or LA104_0 == ENUM or (FALSE <= LA104_0 <= FINAL) or (FLOAT <= LA104_0 <= IF) or LA104_0 == INTERFACE or (INT <= LA104_0 <= NULL) or (PRIVATE <= LA104_0 <= THROW) or (TRANSIENT <= LA104_0 <= WHILE) or (IDENT <= LA104_0 <= STRING_LITERAL)) : - alt104 = 1 - - - if alt104 == 1: - # Java.g:0:0: blockStatement - pass - self._state.following.append(self.FOLLOW_blockStatement_in_switchCaseLabel9921) - blockStatement351 = self.blockStatement() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, blockStatement351.tree) - - - else: - break #loop104 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 81, switchCaseLabel_StartIndex, success) - - pass - return retval - - # $ANTLR end "switchCaseLabel" - - class switchDefaultLabel_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.switchDefaultLabel_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "switchDefaultLabel" - # Java.g:714:1: switchDefaultLabel : DEFAULT COLON ( blockStatement )* ; - def switchDefaultLabel(self, ): - - retval = self.switchDefaultLabel_return() - retval.start = self.input.LT(1) - switchDefaultLabel_StartIndex = self.input.index() - root_0 = None - - DEFAULT352 = None - COLON353 = None - blockStatement354 = None - - - DEFAULT352_tree = None - COLON353_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 82): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:715:5: ( DEFAULT COLON ( blockStatement )* ) - # Java.g:715:9: DEFAULT COLON ( blockStatement )* - pass - root_0 = self._adaptor.nil() - - DEFAULT352=self.match(self.input, DEFAULT, self.FOLLOW_DEFAULT_in_switchDefaultLabel9941) - if self._state.backtracking == 0: - - DEFAULT352_tree = self._adaptor.createWithPayload(DEFAULT352) - root_0 = self._adaptor.becomeRoot(DEFAULT352_tree, root_0) - - COLON353=self.match(self.input, COLON, self.FOLLOW_COLON_in_switchDefaultLabel9944) - # Java.g:715:25: ( blockStatement )* - while True: #loop105 - alt105 = 2 - LA105_0 = self.input.LA(1) - - if (LA105_0 == AT or LA105_0 == DEC or LA105_0 == INC or LA105_0 == LCURLY or LA105_0 == LESS_THAN or LA105_0 == LOGICAL_NOT or (LPAREN <= LA105_0 <= MINUS) or LA105_0 == NOT or LA105_0 == PLUS or LA105_0 == SEMI or (ABSTRACT <= LA105_0 <= BYTE) or (CHAR <= LA105_0 <= CONTINUE) or (DO <= LA105_0 <= DOUBLE) or LA105_0 == ENUM or (FALSE <= LA105_0 <= FINAL) or (FLOAT <= LA105_0 <= IF) or LA105_0 == INTERFACE or (INT <= LA105_0 <= NULL) or (PRIVATE <= LA105_0 <= THROW) or (TRANSIENT <= LA105_0 <= WHILE) or (IDENT <= LA105_0 <= STRING_LITERAL)) : - alt105 = 1 - - - if alt105 == 1: - # Java.g:0:0: blockStatement - pass - self._state.following.append(self.FOLLOW_blockStatement_in_switchDefaultLabel9947) - blockStatement354 = self.blockStatement() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, blockStatement354.tree) - - - else: - break #loop105 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 82, switchDefaultLabel_StartIndex, success) - - pass - return retval - - # $ANTLR end "switchDefaultLabel" - - class forInit_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.forInit_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "forInit" - # Java.g:718:1: forInit : ( localVariableDeclaration -> ^( FOR_INIT localVariableDeclaration ) | expressionList -> ^( FOR_INIT expressionList ) | -> ^( FOR_INIT ) ); - def forInit(self, ): - - retval = self.forInit_return() - retval.start = self.input.LT(1) - forInit_StartIndex = self.input.index() - root_0 = None - - localVariableDeclaration355 = None - - expressionList356 = None - - - stream_expressionList = RewriteRuleSubtreeStream(self._adaptor, "rule expressionList") - stream_localVariableDeclaration = RewriteRuleSubtreeStream(self._adaptor, "rule localVariableDeclaration") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 83): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:719:5: ( localVariableDeclaration -> ^( FOR_INIT localVariableDeclaration ) | expressionList -> ^( FOR_INIT expressionList ) | -> ^( FOR_INIT ) ) - alt106 = 3 - alt106 = self.dfa106.predict(self.input) - if alt106 == 1: - # Java.g:719:9: localVariableDeclaration - pass - self._state.following.append(self.FOLLOW_localVariableDeclaration_in_forInit9967) - localVariableDeclaration355 = self.localVariableDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localVariableDeclaration.add(localVariableDeclaration355.tree) - - # AST Rewrite - # elements: localVariableDeclaration - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 719:37: -> ^( FOR_INIT localVariableDeclaration ) - # Java.g:719:41: ^( FOR_INIT localVariableDeclaration ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_INIT, "FOR_INIT"), root_1) - - self._adaptor.addChild(root_1, stream_localVariableDeclaration.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt106 == 2: - # Java.g:720:9: expressionList - pass - self._state.following.append(self.FOLLOW_expressionList_in_forInit9989) - expressionList356 = self.expressionList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expressionList.add(expressionList356.tree) - - # AST Rewrite - # elements: expressionList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 720:37: -> ^( FOR_INIT expressionList ) - # Java.g:720:41: ^( FOR_INIT expressionList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_INIT, "FOR_INIT"), root_1) - - self._adaptor.addChild(root_1, stream_expressionList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt106 == 3: - # Java.g:721:37: - pass - # AST Rewrite - # elements: - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 721:37: -> ^( FOR_INIT ) - # Java.g:721:41: ^( FOR_INIT ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_INIT, "FOR_INIT"), root_1) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 83, forInit_StartIndex, success) - - pass - return retval - - # $ANTLR end "forInit" - - class forCondition_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.forCondition_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "forCondition" - # Java.g:724:1: forCondition : ( expression )? -> ^( FOR_CONDITION ( expression )? ) ; - def forCondition(self, ): - - retval = self.forCondition_return() - retval.start = self.input.LT(1) - forCondition_StartIndex = self.input.index() - root_0 = None - - expression357 = None - - - stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 84): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:725:5: ( ( expression )? -> ^( FOR_CONDITION ( expression )? ) ) - # Java.g:725:9: ( expression )? - pass - # Java.g:725:9: ( expression )? - alt107 = 2 - LA107_0 = self.input.LA(1) - - if (LA107_0 == DEC or LA107_0 == INC or LA107_0 == LESS_THAN or LA107_0 == LOGICAL_NOT or (LPAREN <= LA107_0 <= MINUS) or LA107_0 == NOT or LA107_0 == PLUS or LA107_0 == BOOLEAN or LA107_0 == BYTE or LA107_0 == CHAR or LA107_0 == DOUBLE or LA107_0 == FALSE or LA107_0 == FLOAT or (INT <= LA107_0 <= LONG) or (NEW <= LA107_0 <= NULL) or LA107_0 == SHORT or LA107_0 == SUPER or LA107_0 == THIS or LA107_0 == TRUE or LA107_0 == VOID or (IDENT <= LA107_0 <= STRING_LITERAL)) : - alt107 = 1 - if alt107 == 1: - # Java.g:0:0: expression - pass - self._state.following.append(self.FOLLOW_expression_in_forCondition10073) - expression357 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression357.tree) - - - - - # AST Rewrite - # elements: expression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 726:9: -> ^( FOR_CONDITION ( expression )? ) - # Java.g:726:13: ^( FOR_CONDITION ( expression )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_CONDITION, "FOR_CONDITION"), root_1) - - # Java.g:726:29: ( expression )? - if stream_expression.hasNext(): - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - - stream_expression.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 84, forCondition_StartIndex, success) - - pass - return retval - - # $ANTLR end "forCondition" - - class forUpdater_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.forUpdater_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "forUpdater" - # Java.g:729:1: forUpdater : ( expressionList )? -> ^( FOR_UPDATE ( expressionList )? ) ; - def forUpdater(self, ): - - retval = self.forUpdater_return() - retval.start = self.input.LT(1) - forUpdater_StartIndex = self.input.index() - root_0 = None - - expressionList358 = None - - - stream_expressionList = RewriteRuleSubtreeStream(self._adaptor, "rule expressionList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 85): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:730:5: ( ( expressionList )? -> ^( FOR_UPDATE ( expressionList )? ) ) - # Java.g:730:9: ( expressionList )? - pass - # Java.g:730:9: ( expressionList )? - alt108 = 2 - LA108_0 = self.input.LA(1) - - if (LA108_0 == DEC or LA108_0 == INC or LA108_0 == LESS_THAN or LA108_0 == LOGICAL_NOT or (LPAREN <= LA108_0 <= MINUS) or LA108_0 == NOT or LA108_0 == PLUS or LA108_0 == BOOLEAN or LA108_0 == BYTE or LA108_0 == CHAR or LA108_0 == DOUBLE or LA108_0 == FALSE or LA108_0 == FLOAT or (INT <= LA108_0 <= LONG) or (NEW <= LA108_0 <= NULL) or LA108_0 == SHORT or LA108_0 == SUPER or LA108_0 == THIS or LA108_0 == TRUE or LA108_0 == VOID or (IDENT <= LA108_0 <= STRING_LITERAL)) : - alt108 = 1 - if alt108 == 1: - # Java.g:0:0: expressionList - pass - self._state.following.append(self.FOLLOW_expressionList_in_forUpdater10111) - expressionList358 = self.expressionList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expressionList.add(expressionList358.tree) - - - - - # AST Rewrite - # elements: expressionList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 731:9: -> ^( FOR_UPDATE ( expressionList )? ) - # Java.g:731:13: ^( FOR_UPDATE ( expressionList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_UPDATE, "FOR_UPDATE"), root_1) - - # Java.g:731:26: ( expressionList )? - if stream_expressionList.hasNext(): - self._adaptor.addChild(root_1, stream_expressionList.nextTree()) - - - stream_expressionList.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 85, forUpdater_StartIndex, success) - - pass - return retval - - # $ANTLR end "forUpdater" - - class parenthesizedExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.parenthesizedExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "parenthesizedExpression" - # Java.g:736:1: parenthesizedExpression : LPAREN expression RPAREN -> ^( PARENTESIZED_EXPR[$LPAREN, \"PARENTESIZED_EXPR\"] expression ) ; - def parenthesizedExpression(self, ): - - retval = self.parenthesizedExpression_return() - retval.start = self.input.LT(1) - parenthesizedExpression_StartIndex = self.input.index() - root_0 = None - - LPAREN359 = None - RPAREN361 = None - expression360 = None - - - LPAREN359_tree = None - RPAREN361_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 86): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:737:5: ( LPAREN expression RPAREN -> ^( PARENTESIZED_EXPR[$LPAREN, \"PARENTESIZED_EXPR\"] expression ) ) - # Java.g:737:9: LPAREN expression RPAREN - pass - LPAREN359=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_parenthesizedExpression10151) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN359) - self._state.following.append(self.FOLLOW_expression_in_parenthesizedExpression10153) - expression360 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression360.tree) - RPAREN361=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_parenthesizedExpression10155) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN361) - - # AST Rewrite - # elements: expression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 738:9: -> ^( PARENTESIZED_EXPR[$LPAREN, \"PARENTESIZED_EXPR\"] expression ) - # Java.g:738:13: ^( PARENTESIZED_EXPR[$LPAREN, \"PARENTESIZED_EXPR\"] expression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(PARENTESIZED_EXPR, LPAREN359, "PARENTESIZED_EXPR"), root_1) - - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 86, parenthesizedExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "parenthesizedExpression" - - class expressionList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.expressionList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "expressionList" - # Java.g:741:1: expressionList : expression ( COMMA expression )* ; - def expressionList(self, ): - - retval = self.expressionList_return() - retval.start = self.input.LT(1) - expressionList_StartIndex = self.input.index() - root_0 = None - - COMMA363 = None - expression362 = None - - expression364 = None - - - COMMA363_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 87): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:742:5: ( expression ( COMMA expression )* ) - # Java.g:742:9: expression ( COMMA expression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_expression_in_expressionList10192) - expression362 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression362.tree) - # Java.g:742:20: ( COMMA expression )* - while True: #loop109 - alt109 = 2 - LA109_0 = self.input.LA(1) - - if (LA109_0 == COMMA) : - alt109 = 1 - - - if alt109 == 1: - # Java.g:742:21: COMMA expression - pass - COMMA363=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_expressionList10195) - self._state.following.append(self.FOLLOW_expression_in_expressionList10198) - expression364 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression364.tree) - - - else: - break #loop109 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 87, expressionList_StartIndex, success) - - pass - return retval - - # $ANTLR end "expressionList" - - class expression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.expression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "expression" - # Java.g:745:1: expression : assignmentExpression -> ^( EXPR assignmentExpression ) ; - def expression(self, ): - - retval = self.expression_return() - retval.start = self.input.LT(1) - expression_StartIndex = self.input.index() - root_0 = None - - assignmentExpression365 = None - - - stream_assignmentExpression = RewriteRuleSubtreeStream(self._adaptor, "rule assignmentExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 88): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:746:5: ( assignmentExpression -> ^( EXPR assignmentExpression ) ) - # Java.g:746:9: assignmentExpression - pass - self._state.following.append(self.FOLLOW_assignmentExpression_in_expression10219) - assignmentExpression365 = self.assignmentExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_assignmentExpression.add(assignmentExpression365.tree) - - # AST Rewrite - # elements: assignmentExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 747:9: -> ^( EXPR assignmentExpression ) - # Java.g:747:13: ^( EXPR assignmentExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(EXPR, "EXPR"), root_1) - - self._adaptor.addChild(root_1, stream_assignmentExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 88, expression_StartIndex, success) - - pass - return retval - - # $ANTLR end "expression" - - class assignmentExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.assignmentExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "assignmentExpression" - # Java.g:750:1: assignmentExpression : conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression )? ; - def assignmentExpression(self, ): - - retval = self.assignmentExpression_return() - retval.start = self.input.LT(1) - assignmentExpression_StartIndex = self.input.index() - root_0 = None - - ASSIGN367 = None - PLUS_ASSIGN368 = None - MINUS_ASSIGN369 = None - STAR_ASSIGN370 = None - DIV_ASSIGN371 = None - AND_ASSIGN372 = None - OR_ASSIGN373 = None - XOR_ASSIGN374 = None - MOD_ASSIGN375 = None - SHIFT_LEFT_ASSIGN376 = None - SHIFT_RIGHT_ASSIGN377 = None - BIT_SHIFT_RIGHT_ASSIGN378 = None - conditionalExpression366 = None - - assignmentExpression379 = None - - - ASSIGN367_tree = None - PLUS_ASSIGN368_tree = None - MINUS_ASSIGN369_tree = None - STAR_ASSIGN370_tree = None - DIV_ASSIGN371_tree = None - AND_ASSIGN372_tree = None - OR_ASSIGN373_tree = None - XOR_ASSIGN374_tree = None - MOD_ASSIGN375_tree = None - SHIFT_LEFT_ASSIGN376_tree = None - SHIFT_RIGHT_ASSIGN377_tree = None - BIT_SHIFT_RIGHT_ASSIGN378_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 89): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:751:5: ( conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression )? ) - # Java.g:751:9: conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression )? - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_conditionalExpression_in_assignmentExpression10255) - conditionalExpression366 = self.conditionalExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, conditionalExpression366.tree) - # Java.g:752:9: ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression )? - alt111 = 2 - LA111_0 = self.input.LA(1) - - if ((AND_ASSIGN <= LA111_0 <= ASSIGN) or LA111_0 == BIT_SHIFT_RIGHT_ASSIGN or LA111_0 == DIV_ASSIGN or LA111_0 == MINUS_ASSIGN or LA111_0 == MOD_ASSIGN or LA111_0 == OR_ASSIGN or LA111_0 == PLUS_ASSIGN or LA111_0 == SHIFT_LEFT_ASSIGN or LA111_0 == SHIFT_RIGHT_ASSIGN or LA111_0 == STAR_ASSIGN or LA111_0 == XOR_ASSIGN) : - alt111 = 1 - if alt111 == 1: - # Java.g:752:13: ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression - pass - # Java.g:752:13: ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) - alt110 = 12 - LA110 = self.input.LA(1) - if LA110 == ASSIGN: - alt110 = 1 - elif LA110 == PLUS_ASSIGN: - alt110 = 2 - elif LA110 == MINUS_ASSIGN: - alt110 = 3 - elif LA110 == STAR_ASSIGN: - alt110 = 4 - elif LA110 == DIV_ASSIGN: - alt110 = 5 - elif LA110 == AND_ASSIGN: - alt110 = 6 - elif LA110 == OR_ASSIGN: - alt110 = 7 - elif LA110 == XOR_ASSIGN: - alt110 = 8 - elif LA110 == MOD_ASSIGN: - alt110 = 9 - elif LA110 == SHIFT_LEFT_ASSIGN: - alt110 = 10 - elif LA110 == SHIFT_RIGHT_ASSIGN: - alt110 = 11 - elif LA110 == BIT_SHIFT_RIGHT_ASSIGN: - alt110 = 12 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 110, 0, self.input) - - raise nvae - - if alt110 == 1: - # Java.g:752:17: ASSIGN - pass - ASSIGN367=self.match(self.input, ASSIGN, self.FOLLOW_ASSIGN_in_assignmentExpression10273) - if self._state.backtracking == 0: - - ASSIGN367_tree = self._adaptor.createWithPayload(ASSIGN367) - root_0 = self._adaptor.becomeRoot(ASSIGN367_tree, root_0) - - - - elif alt110 == 2: - # Java.g:753:17: PLUS_ASSIGN - pass - PLUS_ASSIGN368=self.match(self.input, PLUS_ASSIGN, self.FOLLOW_PLUS_ASSIGN_in_assignmentExpression10292) - if self._state.backtracking == 0: - - PLUS_ASSIGN368_tree = self._adaptor.createWithPayload(PLUS_ASSIGN368) - root_0 = self._adaptor.becomeRoot(PLUS_ASSIGN368_tree, root_0) - - - - elif alt110 == 3: - # Java.g:754:17: MINUS_ASSIGN - pass - MINUS_ASSIGN369=self.match(self.input, MINUS_ASSIGN, self.FOLLOW_MINUS_ASSIGN_in_assignmentExpression10311) - if self._state.backtracking == 0: - - MINUS_ASSIGN369_tree = self._adaptor.createWithPayload(MINUS_ASSIGN369) - root_0 = self._adaptor.becomeRoot(MINUS_ASSIGN369_tree, root_0) - - - - elif alt110 == 4: - # Java.g:755:17: STAR_ASSIGN - pass - STAR_ASSIGN370=self.match(self.input, STAR_ASSIGN, self.FOLLOW_STAR_ASSIGN_in_assignmentExpression10330) - if self._state.backtracking == 0: - - STAR_ASSIGN370_tree = self._adaptor.createWithPayload(STAR_ASSIGN370) - root_0 = self._adaptor.becomeRoot(STAR_ASSIGN370_tree, root_0) - - - - elif alt110 == 5: - # Java.g:756:17: DIV_ASSIGN - pass - DIV_ASSIGN371=self.match(self.input, DIV_ASSIGN, self.FOLLOW_DIV_ASSIGN_in_assignmentExpression10349) - if self._state.backtracking == 0: - - DIV_ASSIGN371_tree = self._adaptor.createWithPayload(DIV_ASSIGN371) - root_0 = self._adaptor.becomeRoot(DIV_ASSIGN371_tree, root_0) - - - - elif alt110 == 6: - # Java.g:757:17: AND_ASSIGN - pass - AND_ASSIGN372=self.match(self.input, AND_ASSIGN, self.FOLLOW_AND_ASSIGN_in_assignmentExpression10368) - if self._state.backtracking == 0: - - AND_ASSIGN372_tree = self._adaptor.createWithPayload(AND_ASSIGN372) - root_0 = self._adaptor.becomeRoot(AND_ASSIGN372_tree, root_0) - - - - elif alt110 == 7: - # Java.g:758:17: OR_ASSIGN - pass - OR_ASSIGN373=self.match(self.input, OR_ASSIGN, self.FOLLOW_OR_ASSIGN_in_assignmentExpression10387) - if self._state.backtracking == 0: - - OR_ASSIGN373_tree = self._adaptor.createWithPayload(OR_ASSIGN373) - root_0 = self._adaptor.becomeRoot(OR_ASSIGN373_tree, root_0) - - - - elif alt110 == 8: - # Java.g:759:17: XOR_ASSIGN - pass - XOR_ASSIGN374=self.match(self.input, XOR_ASSIGN, self.FOLLOW_XOR_ASSIGN_in_assignmentExpression10406) - if self._state.backtracking == 0: - - XOR_ASSIGN374_tree = self._adaptor.createWithPayload(XOR_ASSIGN374) - root_0 = self._adaptor.becomeRoot(XOR_ASSIGN374_tree, root_0) - - - - elif alt110 == 9: - # Java.g:760:17: MOD_ASSIGN - pass - MOD_ASSIGN375=self.match(self.input, MOD_ASSIGN, self.FOLLOW_MOD_ASSIGN_in_assignmentExpression10425) - if self._state.backtracking == 0: - - MOD_ASSIGN375_tree = self._adaptor.createWithPayload(MOD_ASSIGN375) - root_0 = self._adaptor.becomeRoot(MOD_ASSIGN375_tree, root_0) - - - - elif alt110 == 10: - # Java.g:761:17: SHIFT_LEFT_ASSIGN - pass - SHIFT_LEFT_ASSIGN376=self.match(self.input, SHIFT_LEFT_ASSIGN, self.FOLLOW_SHIFT_LEFT_ASSIGN_in_assignmentExpression10444) - if self._state.backtracking == 0: - - SHIFT_LEFT_ASSIGN376_tree = self._adaptor.createWithPayload(SHIFT_LEFT_ASSIGN376) - root_0 = self._adaptor.becomeRoot(SHIFT_LEFT_ASSIGN376_tree, root_0) - - - - elif alt110 == 11: - # Java.g:762:17: SHIFT_RIGHT_ASSIGN - pass - SHIFT_RIGHT_ASSIGN377=self.match(self.input, SHIFT_RIGHT_ASSIGN, self.FOLLOW_SHIFT_RIGHT_ASSIGN_in_assignmentExpression10463) - if self._state.backtracking == 0: - - SHIFT_RIGHT_ASSIGN377_tree = self._adaptor.createWithPayload(SHIFT_RIGHT_ASSIGN377) - root_0 = self._adaptor.becomeRoot(SHIFT_RIGHT_ASSIGN377_tree, root_0) - - - - elif alt110 == 12: - # Java.g:763:17: BIT_SHIFT_RIGHT_ASSIGN - pass - BIT_SHIFT_RIGHT_ASSIGN378=self.match(self.input, BIT_SHIFT_RIGHT_ASSIGN, self.FOLLOW_BIT_SHIFT_RIGHT_ASSIGN_in_assignmentExpression10482) - if self._state.backtracking == 0: - - BIT_SHIFT_RIGHT_ASSIGN378_tree = self._adaptor.createWithPayload(BIT_SHIFT_RIGHT_ASSIGN378) - root_0 = self._adaptor.becomeRoot(BIT_SHIFT_RIGHT_ASSIGN378_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_assignmentExpression_in_assignmentExpression10503) - assignmentExpression379 = self.assignmentExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, assignmentExpression379.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 89, assignmentExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "assignmentExpression" - - class conditionalExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.conditionalExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "conditionalExpression" - # Java.g:768:1: conditionalExpression : logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )? ; - def conditionalExpression(self, ): - - retval = self.conditionalExpression_return() - retval.start = self.input.LT(1) - conditionalExpression_StartIndex = self.input.index() - root_0 = None - - QUESTION381 = None - COLON383 = None - logicalOrExpression380 = None - - assignmentExpression382 = None - - conditionalExpression384 = None - - - QUESTION381_tree = None - COLON383_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 90): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:769:5: ( logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )? ) - # Java.g:769:9: logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )? - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_logicalOrExpression_in_conditionalExpression10524) - logicalOrExpression380 = self.logicalOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, logicalOrExpression380.tree) - # Java.g:769:29: ( QUESTION assignmentExpression COLON conditionalExpression )? - alt112 = 2 - LA112_0 = self.input.LA(1) - - if (LA112_0 == QUESTION) : - alt112 = 1 - if alt112 == 1: - # Java.g:769:30: QUESTION assignmentExpression COLON conditionalExpression - pass - QUESTION381=self.match(self.input, QUESTION, self.FOLLOW_QUESTION_in_conditionalExpression10527) - if self._state.backtracking == 0: - - QUESTION381_tree = self._adaptor.createWithPayload(QUESTION381) - root_0 = self._adaptor.becomeRoot(QUESTION381_tree, root_0) - - self._state.following.append(self.FOLLOW_assignmentExpression_in_conditionalExpression10530) - assignmentExpression382 = self.assignmentExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, assignmentExpression382.tree) - COLON383=self.match(self.input, COLON, self.FOLLOW_COLON_in_conditionalExpression10532) - self._state.following.append(self.FOLLOW_conditionalExpression_in_conditionalExpression10535) - conditionalExpression384 = self.conditionalExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, conditionalExpression384.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 90, conditionalExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "conditionalExpression" - - class logicalOrExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.logicalOrExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "logicalOrExpression" - # Java.g:772:1: logicalOrExpression : logicalAndExpression ( LOGICAL_OR logicalAndExpression )* ; - def logicalOrExpression(self, ): - - retval = self.logicalOrExpression_return() - retval.start = self.input.LT(1) - logicalOrExpression_StartIndex = self.input.index() - root_0 = None - - LOGICAL_OR386 = None - logicalAndExpression385 = None - - logicalAndExpression387 = None - - - LOGICAL_OR386_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 91): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:773:5: ( logicalAndExpression ( LOGICAL_OR logicalAndExpression )* ) - # Java.g:773:9: logicalAndExpression ( LOGICAL_OR logicalAndExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_logicalAndExpression_in_logicalOrExpression10556) - logicalAndExpression385 = self.logicalAndExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, logicalAndExpression385.tree) - # Java.g:773:30: ( LOGICAL_OR logicalAndExpression )* - while True: #loop113 - alt113 = 2 - LA113_0 = self.input.LA(1) - - if (LA113_0 == LOGICAL_OR) : - alt113 = 1 - - - if alt113 == 1: - # Java.g:773:31: LOGICAL_OR logicalAndExpression - pass - LOGICAL_OR386=self.match(self.input, LOGICAL_OR, self.FOLLOW_LOGICAL_OR_in_logicalOrExpression10559) - if self._state.backtracking == 0: - - LOGICAL_OR386_tree = self._adaptor.createWithPayload(LOGICAL_OR386) - root_0 = self._adaptor.becomeRoot(LOGICAL_OR386_tree, root_0) - - self._state.following.append(self.FOLLOW_logicalAndExpression_in_logicalOrExpression10562) - logicalAndExpression387 = self.logicalAndExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, logicalAndExpression387.tree) - - - else: - break #loop113 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 91, logicalOrExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "logicalOrExpression" - - class logicalAndExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.logicalAndExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "logicalAndExpression" - # Java.g:776:1: logicalAndExpression : inclusiveOrExpression ( LOGICAL_AND inclusiveOrExpression )* ; - def logicalAndExpression(self, ): - - retval = self.logicalAndExpression_return() - retval.start = self.input.LT(1) - logicalAndExpression_StartIndex = self.input.index() - root_0 = None - - LOGICAL_AND389 = None - inclusiveOrExpression388 = None - - inclusiveOrExpression390 = None - - - LOGICAL_AND389_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 92): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:777:5: ( inclusiveOrExpression ( LOGICAL_AND inclusiveOrExpression )* ) - # Java.g:777:9: inclusiveOrExpression ( LOGICAL_AND inclusiveOrExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_inclusiveOrExpression_in_logicalAndExpression10583) - inclusiveOrExpression388 = self.inclusiveOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, inclusiveOrExpression388.tree) - # Java.g:777:31: ( LOGICAL_AND inclusiveOrExpression )* - while True: #loop114 - alt114 = 2 - LA114_0 = self.input.LA(1) - - if (LA114_0 == LOGICAL_AND) : - alt114 = 1 - - - if alt114 == 1: - # Java.g:777:32: LOGICAL_AND inclusiveOrExpression - pass - LOGICAL_AND389=self.match(self.input, LOGICAL_AND, self.FOLLOW_LOGICAL_AND_in_logicalAndExpression10586) - if self._state.backtracking == 0: - - LOGICAL_AND389_tree = self._adaptor.createWithPayload(LOGICAL_AND389) - root_0 = self._adaptor.becomeRoot(LOGICAL_AND389_tree, root_0) - - self._state.following.append(self.FOLLOW_inclusiveOrExpression_in_logicalAndExpression10589) - inclusiveOrExpression390 = self.inclusiveOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, inclusiveOrExpression390.tree) - - - else: - break #loop114 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 92, logicalAndExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "logicalAndExpression" - - class inclusiveOrExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.inclusiveOrExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "inclusiveOrExpression" - # Java.g:780:1: inclusiveOrExpression : exclusiveOrExpression ( OR exclusiveOrExpression )* ; - def inclusiveOrExpression(self, ): - - retval = self.inclusiveOrExpression_return() - retval.start = self.input.LT(1) - inclusiveOrExpression_StartIndex = self.input.index() - root_0 = None - - OR392 = None - exclusiveOrExpression391 = None - - exclusiveOrExpression393 = None - - - OR392_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 93): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:781:5: ( exclusiveOrExpression ( OR exclusiveOrExpression )* ) - # Java.g:781:9: exclusiveOrExpression ( OR exclusiveOrExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression10610) - exclusiveOrExpression391 = self.exclusiveOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, exclusiveOrExpression391.tree) - # Java.g:781:31: ( OR exclusiveOrExpression )* - while True: #loop115 - alt115 = 2 - LA115_0 = self.input.LA(1) - - if (LA115_0 == OR) : - alt115 = 1 - - - if alt115 == 1: - # Java.g:781:32: OR exclusiveOrExpression - pass - OR392=self.match(self.input, OR, self.FOLLOW_OR_in_inclusiveOrExpression10613) - if self._state.backtracking == 0: - - OR392_tree = self._adaptor.createWithPayload(OR392) - root_0 = self._adaptor.becomeRoot(OR392_tree, root_0) - - self._state.following.append(self.FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression10616) - exclusiveOrExpression393 = self.exclusiveOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, exclusiveOrExpression393.tree) - - - else: - break #loop115 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 93, inclusiveOrExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "inclusiveOrExpression" - - class exclusiveOrExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.exclusiveOrExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "exclusiveOrExpression" - # Java.g:784:1: exclusiveOrExpression : andExpression ( XOR andExpression )* ; - def exclusiveOrExpression(self, ): - - retval = self.exclusiveOrExpression_return() - retval.start = self.input.LT(1) - exclusiveOrExpression_StartIndex = self.input.index() - root_0 = None - - XOR395 = None - andExpression394 = None - - andExpression396 = None - - - XOR395_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 94): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:785:5: ( andExpression ( XOR andExpression )* ) - # Java.g:785:9: andExpression ( XOR andExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_andExpression_in_exclusiveOrExpression10637) - andExpression394 = self.andExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, andExpression394.tree) - # Java.g:785:23: ( XOR andExpression )* - while True: #loop116 - alt116 = 2 - LA116_0 = self.input.LA(1) - - if (LA116_0 == XOR) : - alt116 = 1 - - - if alt116 == 1: - # Java.g:785:24: XOR andExpression - pass - XOR395=self.match(self.input, XOR, self.FOLLOW_XOR_in_exclusiveOrExpression10640) - if self._state.backtracking == 0: - - XOR395_tree = self._adaptor.createWithPayload(XOR395) - root_0 = self._adaptor.becomeRoot(XOR395_tree, root_0) - - self._state.following.append(self.FOLLOW_andExpression_in_exclusiveOrExpression10643) - andExpression396 = self.andExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, andExpression396.tree) - - - else: - break #loop116 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 94, exclusiveOrExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "exclusiveOrExpression" - - class andExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.andExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "andExpression" - # Java.g:788:1: andExpression : equalityExpression ( AND equalityExpression )* ; - def andExpression(self, ): - - retval = self.andExpression_return() - retval.start = self.input.LT(1) - andExpression_StartIndex = self.input.index() - root_0 = None - - AND398 = None - equalityExpression397 = None - - equalityExpression399 = None - - - AND398_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 95): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:789:5: ( equalityExpression ( AND equalityExpression )* ) - # Java.g:789:9: equalityExpression ( AND equalityExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_equalityExpression_in_andExpression10664) - equalityExpression397 = self.equalityExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, equalityExpression397.tree) - # Java.g:789:28: ( AND equalityExpression )* - while True: #loop117 - alt117 = 2 - LA117_0 = self.input.LA(1) - - if (LA117_0 == AND) : - alt117 = 1 - - - if alt117 == 1: - # Java.g:789:29: AND equalityExpression - pass - AND398=self.match(self.input, AND, self.FOLLOW_AND_in_andExpression10667) - if self._state.backtracking == 0: - - AND398_tree = self._adaptor.createWithPayload(AND398) - root_0 = self._adaptor.becomeRoot(AND398_tree, root_0) - - self._state.following.append(self.FOLLOW_equalityExpression_in_andExpression10670) - equalityExpression399 = self.equalityExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, equalityExpression399.tree) - - - else: - break #loop117 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 95, andExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "andExpression" - - class equalityExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.equalityExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "equalityExpression" - # Java.g:792:1: equalityExpression : instanceOfExpression ( ( EQUAL | NOT_EQUAL ) instanceOfExpression )* ; - def equalityExpression(self, ): - - retval = self.equalityExpression_return() - retval.start = self.input.LT(1) - equalityExpression_StartIndex = self.input.index() - root_0 = None - - EQUAL401 = None - NOT_EQUAL402 = None - instanceOfExpression400 = None - - instanceOfExpression403 = None - - - EQUAL401_tree = None - NOT_EQUAL402_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 96): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:793:5: ( instanceOfExpression ( ( EQUAL | NOT_EQUAL ) instanceOfExpression )* ) - # Java.g:793:9: instanceOfExpression ( ( EQUAL | NOT_EQUAL ) instanceOfExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_instanceOfExpression_in_equalityExpression10691) - instanceOfExpression400 = self.instanceOfExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, instanceOfExpression400.tree) - # Java.g:794:9: ( ( EQUAL | NOT_EQUAL ) instanceOfExpression )* - while True: #loop119 - alt119 = 2 - LA119_0 = self.input.LA(1) - - if (LA119_0 == EQUAL or LA119_0 == NOT_EQUAL) : - alt119 = 1 - - - if alt119 == 1: - # Java.g:794:13: ( EQUAL | NOT_EQUAL ) instanceOfExpression - pass - # Java.g:794:13: ( EQUAL | NOT_EQUAL ) - alt118 = 2 - LA118_0 = self.input.LA(1) - - if (LA118_0 == EQUAL) : - alt118 = 1 - elif (LA118_0 == NOT_EQUAL) : - alt118 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 118, 0, self.input) - - raise nvae - - if alt118 == 1: - # Java.g:794:17: EQUAL - pass - EQUAL401=self.match(self.input, EQUAL, self.FOLLOW_EQUAL_in_equalityExpression10709) - if self._state.backtracking == 0: - - EQUAL401_tree = self._adaptor.createWithPayload(EQUAL401) - root_0 = self._adaptor.becomeRoot(EQUAL401_tree, root_0) - - - - elif alt118 == 2: - # Java.g:795:17: NOT_EQUAL - pass - NOT_EQUAL402=self.match(self.input, NOT_EQUAL, self.FOLLOW_NOT_EQUAL_in_equalityExpression10728) - if self._state.backtracking == 0: - - NOT_EQUAL402_tree = self._adaptor.createWithPayload(NOT_EQUAL402) - root_0 = self._adaptor.becomeRoot(NOT_EQUAL402_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_instanceOfExpression_in_equalityExpression10757) - instanceOfExpression403 = self.instanceOfExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, instanceOfExpression403.tree) - - - else: - break #loop119 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 96, equalityExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "equalityExpression" - - class instanceOfExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.instanceOfExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "instanceOfExpression" - # Java.g:801:1: instanceOfExpression : relationalExpression ( INSTANCEOF type )? ; - def instanceOfExpression(self, ): - - retval = self.instanceOfExpression_return() - retval.start = self.input.LT(1) - instanceOfExpression_StartIndex = self.input.index() - root_0 = None - - INSTANCEOF405 = None - relationalExpression404 = None - - type406 = None - - - INSTANCEOF405_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 97): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:802:5: ( relationalExpression ( INSTANCEOF type )? ) - # Java.g:802:9: relationalExpression ( INSTANCEOF type )? - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_relationalExpression_in_instanceOfExpression10787) - relationalExpression404 = self.relationalExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, relationalExpression404.tree) - # Java.g:802:30: ( INSTANCEOF type )? - alt120 = 2 - LA120_0 = self.input.LA(1) - - if (LA120_0 == INSTANCEOF) : - alt120 = 1 - if alt120 == 1: - # Java.g:802:31: INSTANCEOF type - pass - INSTANCEOF405=self.match(self.input, INSTANCEOF, self.FOLLOW_INSTANCEOF_in_instanceOfExpression10790) - if self._state.backtracking == 0: - - INSTANCEOF405_tree = self._adaptor.createWithPayload(INSTANCEOF405) - root_0 = self._adaptor.becomeRoot(INSTANCEOF405_tree, root_0) - - self._state.following.append(self.FOLLOW_type_in_instanceOfExpression10793) - type406 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type406.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 97, instanceOfExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "instanceOfExpression" - - class relationalExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.relationalExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "relationalExpression" - # Java.g:805:1: relationalExpression : shiftExpression ( ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression )* ; - def relationalExpression(self, ): - - retval = self.relationalExpression_return() - retval.start = self.input.LT(1) - relationalExpression_StartIndex = self.input.index() - root_0 = None - - LESS_OR_EQUAL408 = None - GREATER_OR_EQUAL409 = None - LESS_THAN410 = None - GREATER_THAN411 = None - shiftExpression407 = None - - shiftExpression412 = None - - - LESS_OR_EQUAL408_tree = None - GREATER_OR_EQUAL409_tree = None - LESS_THAN410_tree = None - GREATER_THAN411_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 98): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:806:5: ( shiftExpression ( ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression )* ) - # Java.g:806:9: shiftExpression ( ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_shiftExpression_in_relationalExpression10814) - shiftExpression407 = self.shiftExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, shiftExpression407.tree) - # Java.g:807:9: ( ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression )* - while True: #loop122 - alt122 = 2 - LA122_0 = self.input.LA(1) - - if ((GREATER_OR_EQUAL <= LA122_0 <= GREATER_THAN) or (LESS_OR_EQUAL <= LA122_0 <= LESS_THAN)) : - alt122 = 1 - - - if alt122 == 1: - # Java.g:807:13: ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression - pass - # Java.g:807:13: ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) - alt121 = 4 - LA121 = self.input.LA(1) - if LA121 == LESS_OR_EQUAL: - alt121 = 1 - elif LA121 == GREATER_OR_EQUAL: - alt121 = 2 - elif LA121 == LESS_THAN: - alt121 = 3 - elif LA121 == GREATER_THAN: - alt121 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 121, 0, self.input) - - raise nvae - - if alt121 == 1: - # Java.g:807:17: LESS_OR_EQUAL - pass - LESS_OR_EQUAL408=self.match(self.input, LESS_OR_EQUAL, self.FOLLOW_LESS_OR_EQUAL_in_relationalExpression10832) - if self._state.backtracking == 0: - - LESS_OR_EQUAL408_tree = self._adaptor.createWithPayload(LESS_OR_EQUAL408) - root_0 = self._adaptor.becomeRoot(LESS_OR_EQUAL408_tree, root_0) - - - - elif alt121 == 2: - # Java.g:808:17: GREATER_OR_EQUAL - pass - GREATER_OR_EQUAL409=self.match(self.input, GREATER_OR_EQUAL, self.FOLLOW_GREATER_OR_EQUAL_in_relationalExpression10851) - if self._state.backtracking == 0: - - GREATER_OR_EQUAL409_tree = self._adaptor.createWithPayload(GREATER_OR_EQUAL409) - root_0 = self._adaptor.becomeRoot(GREATER_OR_EQUAL409_tree, root_0) - - - - elif alt121 == 3: - # Java.g:809:17: LESS_THAN - pass - LESS_THAN410=self.match(self.input, LESS_THAN, self.FOLLOW_LESS_THAN_in_relationalExpression10870) - if self._state.backtracking == 0: - - LESS_THAN410_tree = self._adaptor.createWithPayload(LESS_THAN410) - root_0 = self._adaptor.becomeRoot(LESS_THAN410_tree, root_0) - - - - elif alt121 == 4: - # Java.g:810:17: GREATER_THAN - pass - GREATER_THAN411=self.match(self.input, GREATER_THAN, self.FOLLOW_GREATER_THAN_in_relationalExpression10889) - if self._state.backtracking == 0: - - GREATER_THAN411_tree = self._adaptor.createWithPayload(GREATER_THAN411) - root_0 = self._adaptor.becomeRoot(GREATER_THAN411_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_shiftExpression_in_relationalExpression10918) - shiftExpression412 = self.shiftExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, shiftExpression412.tree) - - - else: - break #loop122 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 98, relationalExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "relationalExpression" - - class shiftExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.shiftExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "shiftExpression" - # Java.g:816:1: shiftExpression : additiveExpression ( ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression )* ; - def shiftExpression(self, ): - - retval = self.shiftExpression_return() - retval.start = self.input.LT(1) - shiftExpression_StartIndex = self.input.index() - root_0 = None - - BIT_SHIFT_RIGHT414 = None - SHIFT_RIGHT415 = None - SHIFT_LEFT416 = None - additiveExpression413 = None - - additiveExpression417 = None - - - BIT_SHIFT_RIGHT414_tree = None - SHIFT_RIGHT415_tree = None - SHIFT_LEFT416_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 99): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:817:5: ( additiveExpression ( ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression )* ) - # Java.g:817:9: additiveExpression ( ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_additiveExpression_in_shiftExpression10948) - additiveExpression413 = self.additiveExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, additiveExpression413.tree) - # Java.g:818:9: ( ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression )* - while True: #loop124 - alt124 = 2 - LA124_0 = self.input.LA(1) - - if (LA124_0 == BIT_SHIFT_RIGHT or LA124_0 == SHIFT_LEFT or LA124_0 == SHIFT_RIGHT) : - alt124 = 1 - - - if alt124 == 1: - # Java.g:818:13: ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression - pass - # Java.g:818:13: ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) - alt123 = 3 - LA123 = self.input.LA(1) - if LA123 == BIT_SHIFT_RIGHT: - alt123 = 1 - elif LA123 == SHIFT_RIGHT: - alt123 = 2 - elif LA123 == SHIFT_LEFT: - alt123 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 123, 0, self.input) - - raise nvae - - if alt123 == 1: - # Java.g:818:17: BIT_SHIFT_RIGHT - pass - BIT_SHIFT_RIGHT414=self.match(self.input, BIT_SHIFT_RIGHT, self.FOLLOW_BIT_SHIFT_RIGHT_in_shiftExpression10966) - if self._state.backtracking == 0: - - BIT_SHIFT_RIGHT414_tree = self._adaptor.createWithPayload(BIT_SHIFT_RIGHT414) - root_0 = self._adaptor.becomeRoot(BIT_SHIFT_RIGHT414_tree, root_0) - - - - elif alt123 == 2: - # Java.g:819:17: SHIFT_RIGHT - pass - SHIFT_RIGHT415=self.match(self.input, SHIFT_RIGHT, self.FOLLOW_SHIFT_RIGHT_in_shiftExpression10985) - if self._state.backtracking == 0: - - SHIFT_RIGHT415_tree = self._adaptor.createWithPayload(SHIFT_RIGHT415) - root_0 = self._adaptor.becomeRoot(SHIFT_RIGHT415_tree, root_0) - - - - elif alt123 == 3: - # Java.g:820:17: SHIFT_LEFT - pass - SHIFT_LEFT416=self.match(self.input, SHIFT_LEFT, self.FOLLOW_SHIFT_LEFT_in_shiftExpression11004) - if self._state.backtracking == 0: - - SHIFT_LEFT416_tree = self._adaptor.createWithPayload(SHIFT_LEFT416) - root_0 = self._adaptor.becomeRoot(SHIFT_LEFT416_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_additiveExpression_in_shiftExpression11033) - additiveExpression417 = self.additiveExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, additiveExpression417.tree) - - - else: - break #loop124 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 99, shiftExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "shiftExpression" - - class additiveExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.additiveExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "additiveExpression" - # Java.g:826:1: additiveExpression : multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )* ; - def additiveExpression(self, ): - - retval = self.additiveExpression_return() - retval.start = self.input.LT(1) - additiveExpression_StartIndex = self.input.index() - root_0 = None - - PLUS419 = None - MINUS420 = None - multiplicativeExpression418 = None - - multiplicativeExpression421 = None - - - PLUS419_tree = None - MINUS420_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 100): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:827:5: ( multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )* ) - # Java.g:827:9: multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_multiplicativeExpression_in_additiveExpression11063) - multiplicativeExpression418 = self.multiplicativeExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, multiplicativeExpression418.tree) - # Java.g:828:9: ( ( PLUS | MINUS ) multiplicativeExpression )* - while True: #loop126 - alt126 = 2 - LA126_0 = self.input.LA(1) - - if (LA126_0 == MINUS or LA126_0 == PLUS) : - alt126 = 1 - - - if alt126 == 1: - # Java.g:828:13: ( PLUS | MINUS ) multiplicativeExpression - pass - # Java.g:828:13: ( PLUS | MINUS ) - alt125 = 2 - LA125_0 = self.input.LA(1) - - if (LA125_0 == PLUS) : - alt125 = 1 - elif (LA125_0 == MINUS) : - alt125 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 125, 0, self.input) - - raise nvae - - if alt125 == 1: - # Java.g:828:17: PLUS - pass - PLUS419=self.match(self.input, PLUS, self.FOLLOW_PLUS_in_additiveExpression11081) - if self._state.backtracking == 0: - - PLUS419_tree = self._adaptor.createWithPayload(PLUS419) - root_0 = self._adaptor.becomeRoot(PLUS419_tree, root_0) - - - - elif alt125 == 2: - # Java.g:829:17: MINUS - pass - MINUS420=self.match(self.input, MINUS, self.FOLLOW_MINUS_in_additiveExpression11100) - if self._state.backtracking == 0: - - MINUS420_tree = self._adaptor.createWithPayload(MINUS420) - root_0 = self._adaptor.becomeRoot(MINUS420_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_multiplicativeExpression_in_additiveExpression11129) - multiplicativeExpression421 = self.multiplicativeExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, multiplicativeExpression421.tree) - - - else: - break #loop126 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 100, additiveExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "additiveExpression" - - class multiplicativeExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.multiplicativeExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "multiplicativeExpression" - # Java.g:835:1: multiplicativeExpression : unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )* ; - def multiplicativeExpression(self, ): - - retval = self.multiplicativeExpression_return() - retval.start = self.input.LT(1) - multiplicativeExpression_StartIndex = self.input.index() - root_0 = None - - STAR423 = None - DIV424 = None - MOD425 = None - unaryExpression422 = None - - unaryExpression426 = None - - - STAR423_tree = None - DIV424_tree = None - MOD425_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 101): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:836:5: ( unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )* ) - # Java.g:836:9: unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_unaryExpression_in_multiplicativeExpression11159) - unaryExpression422 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, unaryExpression422.tree) - # Java.g:837:9: ( ( STAR | DIV | MOD ) unaryExpression )* - while True: #loop128 - alt128 = 2 - LA128_0 = self.input.LA(1) - - if (LA128_0 == DIV or LA128_0 == MOD or LA128_0 == STAR) : - alt128 = 1 - - - if alt128 == 1: - # Java.g:837:13: ( STAR | DIV | MOD ) unaryExpression - pass - # Java.g:837:13: ( STAR | DIV | MOD ) - alt127 = 3 - LA127 = self.input.LA(1) - if LA127 == STAR: - alt127 = 1 - elif LA127 == DIV: - alt127 = 2 - elif LA127 == MOD: - alt127 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 127, 0, self.input) - - raise nvae - - if alt127 == 1: - # Java.g:837:17: STAR - pass - STAR423=self.match(self.input, STAR, self.FOLLOW_STAR_in_multiplicativeExpression11177) - if self._state.backtracking == 0: - - STAR423_tree = self._adaptor.createWithPayload(STAR423) - root_0 = self._adaptor.becomeRoot(STAR423_tree, root_0) - - - - elif alt127 == 2: - # Java.g:838:17: DIV - pass - DIV424=self.match(self.input, DIV, self.FOLLOW_DIV_in_multiplicativeExpression11196) - if self._state.backtracking == 0: - - DIV424_tree = self._adaptor.createWithPayload(DIV424) - root_0 = self._adaptor.becomeRoot(DIV424_tree, root_0) - - - - elif alt127 == 3: - # Java.g:839:17: MOD - pass - MOD425=self.match(self.input, MOD, self.FOLLOW_MOD_in_multiplicativeExpression11215) - if self._state.backtracking == 0: - - MOD425_tree = self._adaptor.createWithPayload(MOD425) - root_0 = self._adaptor.becomeRoot(MOD425_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_unaryExpression_in_multiplicativeExpression11244) - unaryExpression426 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, unaryExpression426.tree) - - - else: - break #loop128 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 101, multiplicativeExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "multiplicativeExpression" - - class unaryExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.unaryExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "unaryExpression" - # Java.g:845:1: unaryExpression : ( PLUS unaryExpression -> ^( UNARY_PLUS[$PLUS, \"UNARY_PLUS\"] unaryExpression ) | MINUS unaryExpression -> ^( UNARY_MINUS[$MINUS, \"UNARY_MINUS\"] unaryExpression ) | INC postfixedExpression -> ^( PRE_INC[$INC, \"PRE_INC\"] postfixedExpression ) | DEC postfixedExpression -> ^( PRE_DEC[$DEC, \"PRE_DEC\"] postfixedExpression ) | unaryExpressionNotPlusMinus ); - def unaryExpression(self, ): - - retval = self.unaryExpression_return() - retval.start = self.input.LT(1) - unaryExpression_StartIndex = self.input.index() - root_0 = None - - PLUS427 = None - MINUS429 = None - INC431 = None - DEC433 = None - unaryExpression428 = None - - unaryExpression430 = None - - postfixedExpression432 = None - - postfixedExpression434 = None - - unaryExpressionNotPlusMinus435 = None - - - PLUS427_tree = None - MINUS429_tree = None - INC431_tree = None - DEC433_tree = None - stream_DEC = RewriteRuleTokenStream(self._adaptor, "token DEC") - stream_INC = RewriteRuleTokenStream(self._adaptor, "token INC") - stream_PLUS = RewriteRuleTokenStream(self._adaptor, "token PLUS") - stream_MINUS = RewriteRuleTokenStream(self._adaptor, "token MINUS") - stream_postfixedExpression = RewriteRuleSubtreeStream(self._adaptor, "rule postfixedExpression") - stream_unaryExpression = RewriteRuleSubtreeStream(self._adaptor, "rule unaryExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 102): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:846:5: ( PLUS unaryExpression -> ^( UNARY_PLUS[$PLUS, \"UNARY_PLUS\"] unaryExpression ) | MINUS unaryExpression -> ^( UNARY_MINUS[$MINUS, \"UNARY_MINUS\"] unaryExpression ) | INC postfixedExpression -> ^( PRE_INC[$INC, \"PRE_INC\"] postfixedExpression ) | DEC postfixedExpression -> ^( PRE_DEC[$DEC, \"PRE_DEC\"] postfixedExpression ) | unaryExpressionNotPlusMinus ) - alt129 = 5 - LA129 = self.input.LA(1) - if LA129 == PLUS: - alt129 = 1 - elif LA129 == MINUS: - alt129 = 2 - elif LA129 == INC: - alt129 = 3 - elif LA129 == DEC: - alt129 = 4 - elif LA129 == LESS_THAN or LA129 == LOGICAL_NOT or LA129 == LPAREN or LA129 == NOT or LA129 == BOOLEAN or LA129 == BYTE or LA129 == CHAR or LA129 == DOUBLE or LA129 == FALSE or LA129 == FLOAT or LA129 == INT or LA129 == LONG or LA129 == NEW or LA129 == NULL or LA129 == SHORT or LA129 == SUPER or LA129 == THIS or LA129 == TRUE or LA129 == VOID or LA129 == IDENT or LA129 == HEX_LITERAL or LA129 == OCTAL_LITERAL or LA129 == DECIMAL_LITERAL or LA129 == FLOATING_POINT_LITERAL or LA129 == CHARACTER_LITERAL or LA129 == STRING_LITERAL: - alt129 = 5 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 129, 0, self.input) - - raise nvae - - if alt129 == 1: - # Java.g:846:9: PLUS unaryExpression - pass - PLUS427=self.match(self.input, PLUS, self.FOLLOW_PLUS_in_unaryExpression11274) - if self._state.backtracking == 0: - stream_PLUS.add(PLUS427) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpression11276) - unaryExpression428 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression428.tree) - - # AST Rewrite - # elements: unaryExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 846:37: -> ^( UNARY_PLUS[$PLUS, \"UNARY_PLUS\"] unaryExpression ) - # Java.g:846:41: ^( UNARY_PLUS[$PLUS, \"UNARY_PLUS\"] unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(UNARY_PLUS, PLUS427, "UNARY_PLUS"), root_1) - - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt129 == 2: - # Java.g:847:9: MINUS unaryExpression - pass - MINUS429=self.match(self.input, MINUS, self.FOLLOW_MINUS_in_unaryExpression11303) - if self._state.backtracking == 0: - stream_MINUS.add(MINUS429) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpression11305) - unaryExpression430 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression430.tree) - - # AST Rewrite - # elements: unaryExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 847:37: -> ^( UNARY_MINUS[$MINUS, \"UNARY_MINUS\"] unaryExpression ) - # Java.g:847:41: ^( UNARY_MINUS[$MINUS, \"UNARY_MINUS\"] unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(UNARY_MINUS, MINUS429, "UNARY_MINUS"), root_1) - - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt129 == 3: - # Java.g:848:9: INC postfixedExpression - pass - INC431=self.match(self.input, INC, self.FOLLOW_INC_in_unaryExpression11331) - if self._state.backtracking == 0: - stream_INC.add(INC431) - self._state.following.append(self.FOLLOW_postfixedExpression_in_unaryExpression11333) - postfixedExpression432 = self.postfixedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_postfixedExpression.add(postfixedExpression432.tree) - - # AST Rewrite - # elements: postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 848:37: -> ^( PRE_INC[$INC, \"PRE_INC\"] postfixedExpression ) - # Java.g:848:41: ^( PRE_INC[$INC, \"PRE_INC\"] postfixedExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(PRE_INC, INC431, "PRE_INC"), root_1) - - self._adaptor.addChild(root_1, stream_postfixedExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt129 == 4: - # Java.g:849:9: DEC postfixedExpression - pass - DEC433=self.match(self.input, DEC, self.FOLLOW_DEC_in_unaryExpression11357) - if self._state.backtracking == 0: - stream_DEC.add(DEC433) - self._state.following.append(self.FOLLOW_postfixedExpression_in_unaryExpression11359) - postfixedExpression434 = self.postfixedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_postfixedExpression.add(postfixedExpression434.tree) - - # AST Rewrite - # elements: postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 849:37: -> ^( PRE_DEC[$DEC, \"PRE_DEC\"] postfixedExpression ) - # Java.g:849:41: ^( PRE_DEC[$DEC, \"PRE_DEC\"] postfixedExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(PRE_DEC, DEC433, "PRE_DEC"), root_1) - - self._adaptor.addChild(root_1, stream_postfixedExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt129 == 5: - # Java.g:850:9: unaryExpressionNotPlusMinus - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression11383) - unaryExpressionNotPlusMinus435 = self.unaryExpressionNotPlusMinus() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, unaryExpressionNotPlusMinus435.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 102, unaryExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "unaryExpression" - - class unaryExpressionNotPlusMinus_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.unaryExpressionNotPlusMinus_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "unaryExpressionNotPlusMinus" - # Java.g:853:1: unaryExpressionNotPlusMinus : ( NOT unaryExpression -> ^( NOT unaryExpression ) | LOGICAL_NOT unaryExpression -> ^( LOGICAL_NOT unaryExpression ) | LPAREN type RPAREN unaryExpression -> ^( CAST_EXPR[$LPAREN, \"CAST_EXPR\"] type unaryExpression ) | postfixedExpression ); - def unaryExpressionNotPlusMinus(self, ): - - retval = self.unaryExpressionNotPlusMinus_return() - retval.start = self.input.LT(1) - unaryExpressionNotPlusMinus_StartIndex = self.input.index() - root_0 = None - - NOT436 = None - LOGICAL_NOT438 = None - LPAREN440 = None - RPAREN442 = None - unaryExpression437 = None - - unaryExpression439 = None - - type441 = None - - unaryExpression443 = None - - postfixedExpression444 = None - - - NOT436_tree = None - LOGICAL_NOT438_tree = None - LPAREN440_tree = None - RPAREN442_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_LOGICAL_NOT = RewriteRuleTokenStream(self._adaptor, "token LOGICAL_NOT") - stream_NOT = RewriteRuleTokenStream(self._adaptor, "token NOT") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_unaryExpression = RewriteRuleSubtreeStream(self._adaptor, "rule unaryExpression") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 103): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:854:5: ( NOT unaryExpression -> ^( NOT unaryExpression ) | LOGICAL_NOT unaryExpression -> ^( LOGICAL_NOT unaryExpression ) | LPAREN type RPAREN unaryExpression -> ^( CAST_EXPR[$LPAREN, \"CAST_EXPR\"] type unaryExpression ) | postfixedExpression ) - alt130 = 4 - alt130 = self.dfa130.predict(self.input) - if alt130 == 1: - # Java.g:854:9: NOT unaryExpression - pass - NOT436=self.match(self.input, NOT, self.FOLLOW_NOT_in_unaryExpressionNotPlusMinus11402) - if self._state.backtracking == 0: - stream_NOT.add(NOT436) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11404) - unaryExpression437 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression437.tree) - - # AST Rewrite - # elements: unaryExpression, NOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 854:57: -> ^( NOT unaryExpression ) - # Java.g:854:61: ^( NOT unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_NOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt130 == 2: - # Java.g:855:9: LOGICAL_NOT unaryExpression - pass - LOGICAL_NOT438=self.match(self.input, LOGICAL_NOT, self.FOLLOW_LOGICAL_NOT_in_unaryExpressionNotPlusMinus11451) - if self._state.backtracking == 0: - stream_LOGICAL_NOT.add(LOGICAL_NOT438) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11453) - unaryExpression439 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression439.tree) - - # AST Rewrite - # elements: unaryExpression, LOGICAL_NOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 855:57: -> ^( LOGICAL_NOT unaryExpression ) - # Java.g:855:61: ^( LOGICAL_NOT unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_LOGICAL_NOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt130 == 3: - # Java.g:856:9: LPAREN type RPAREN unaryExpression - pass - LPAREN440=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_unaryExpressionNotPlusMinus11492) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN440) - self._state.following.append(self.FOLLOW_type_in_unaryExpressionNotPlusMinus11494) - type441 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type441.tree) - RPAREN442=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_unaryExpressionNotPlusMinus11496) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN442) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11498) - unaryExpression443 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression443.tree) - - # AST Rewrite - # elements: type, unaryExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 856:57: -> ^( CAST_EXPR[$LPAREN, \"CAST_EXPR\"] type unaryExpression ) - # Java.g:856:61: ^( CAST_EXPR[$LPAREN, \"CAST_EXPR\"] type unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CAST_EXPR, LPAREN440, "CAST_EXPR"), root_1) - - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt130 == 4: - # Java.g:857:9: postfixedExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_postfixedExpression_in_unaryExpressionNotPlusMinus11533) - postfixedExpression444 = self.postfixedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, postfixedExpression444.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 103, unaryExpressionNotPlusMinus_StartIndex, success) - - pass - return retval - - # $ANTLR end "unaryExpressionNotPlusMinus" - - class postfixedExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.postfixedExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "postfixedExpression" - # Java.g:860:1: postfixedExpression : ( primaryExpression -> primaryExpression ) (outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) | LBRACK expression RBRACK -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) )* ( INC -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) | DEC -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) )? ; - def postfixedExpression(self, ): - - retval = self.postfixedExpression_return() - retval.start = self.input.LT(1) - postfixedExpression_StartIndex = self.input.index() - root_0 = None - - outerDot = None - Super = None - innerDot = None - IDENT447 = None - THIS449 = None - SUPER451 = None - IDENT452 = None - LBRACK455 = None - RBRACK457 = None - INC458 = None - DEC459 = None - primaryExpression445 = None - - genericTypeArgumentListSimplified446 = None - - arguments448 = None - - arguments450 = None - - arguments453 = None - - innerNewExpression454 = None - - expression456 = None - - - outerDot_tree = None - Super_tree = None - innerDot_tree = None - IDENT447_tree = None - THIS449_tree = None - SUPER451_tree = None - IDENT452_tree = None - LBRACK455_tree = None - RBRACK457_tree = None - INC458_tree = None - DEC459_tree = None - stream_RBRACK = RewriteRuleTokenStream(self._adaptor, "token RBRACK") - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_INC = RewriteRuleTokenStream(self._adaptor, "token INC") - stream_DEC = RewriteRuleTokenStream(self._adaptor, "token DEC") - stream_LBRACK = RewriteRuleTokenStream(self._adaptor, "token LBRACK") - stream_SUPER = RewriteRuleTokenStream(self._adaptor, "token SUPER") - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_THIS = RewriteRuleTokenStream(self._adaptor, "token THIS") - stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_primaryExpression = RewriteRuleSubtreeStream(self._adaptor, "rule primaryExpression") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - stream_innerNewExpression = RewriteRuleSubtreeStream(self._adaptor, "rule innerNewExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 104): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:862:5: ( ( primaryExpression -> primaryExpression ) (outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) | LBRACK expression RBRACK -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) )* ( INC -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) | DEC -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) )? ) - # Java.g:862:9: ( primaryExpression -> primaryExpression ) (outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) | LBRACK expression RBRACK -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) )* ( INC -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) | DEC -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) )? - pass - # Java.g:862:9: ( primaryExpression -> primaryExpression ) - # Java.g:862:13: primaryExpression - pass - self._state.following.append(self.FOLLOW_primaryExpression_in_postfixedExpression11565) - primaryExpression445 = self.primaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_primaryExpression.add(primaryExpression445.tree) - - # AST Rewrite - # elements: primaryExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 862:53: -> primaryExpression - self._adaptor.addChild(root_0, stream_primaryExpression.nextTree()) - - - - retval.tree = root_0 - - - - # Java.g:865:9: (outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) | LBRACK expression RBRACK -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) )* - while True: #loop135 - alt135 = 3 - LA135_0 = self.input.LA(1) - - if (LA135_0 == DOT) : - alt135 = 1 - elif (LA135_0 == LBRACK) : - alt135 = 2 - - - if alt135 == 1: - # Java.g:865:13: outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) - pass - outerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_postfixedExpression11627) - if self._state.backtracking == 0: - stream_DOT.add(outerDot) - # Java.g:866:13: ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) - alt134 = 5 - LA134 = self.input.LA(1) - if LA134 == LESS_THAN or LA134 == IDENT: - alt134 = 1 - elif LA134 == THIS: - alt134 = 2 - elif LA134 == SUPER: - LA134_3 = self.input.LA(2) - - if (LA134_3 == DOT) : - alt134 = 4 - elif (LA134_3 == LPAREN) : - alt134 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 134, 3, self.input) - - raise nvae - - elif LA134 == NEW: - alt134 = 5 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 134, 0, self.input) - - raise nvae - - if alt134 == 1: - # Java.g:866:17: ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? - pass - # Java.g:866:17: ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) - # Java.g:866:21: ( genericTypeArgumentListSimplified )? IDENT - pass - # Java.g:866:21: ( genericTypeArgumentListSimplified )? - alt131 = 2 - LA131_0 = self.input.LA(1) - - if (LA131_0 == LESS_THAN) : - alt131 = 1 - if alt131 == 1: - # Java.g:0:0: genericTypeArgumentListSimplified - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_postfixedExpression11649) - genericTypeArgumentListSimplified446 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified446.tree) - - - - IDENT447=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_postfixedExpression11731) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT447) - - # AST Rewrite - # elements: IDENT, postfixedExpression, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 868:53: -> ^( DOT $postfixedExpression IDENT ) - # Java.g:868:57: ^( DOT $postfixedExpression IDENT ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - # Java.g:870:17: ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? - alt132 = 2 - LA132_0 = self.input.LA(1) - - if (LA132_0 == LPAREN) : - alt132 = 1 - if alt132 == 1: - # Java.g:870:21: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_postfixedExpression11809) - arguments448 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments448.tree) - - # AST Rewrite - # elements: arguments, genericTypeArgumentListSimplified, postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 870:53: -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) - # Java.g:870:57: ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - # Java.g:870:92: ( genericTypeArgumentListSimplified )? - if stream_genericTypeArgumentListSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - - - stream_genericTypeArgumentListSimplified.reset(); - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt134 == 2: - # Java.g:872:17: THIS - pass - THIS449=self.match(self.input, THIS, self.FOLLOW_THIS_in_postfixedExpression11883) - if self._state.backtracking == 0: - stream_THIS.add(THIS449) - - # AST Rewrite - # elements: THIS, postfixedExpression, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 872:53: -> ^( DOT $postfixedExpression THIS ) - # Java.g:872:57: ^( DOT $postfixedExpression THIS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_THIS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt134 == 3: - # Java.g:873:17: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_postfixedExpression11946) - if self._state.backtracking == 0: - stream_SUPER.add(Super) - self._state.following.append(self.FOLLOW_arguments_in_postfixedExpression11948) - arguments450 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments450.tree) - - # AST Rewrite - # elements: postfixedExpression, arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 873:57: -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) - # Java.g:873:61: ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, Super, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt134 == 4: - # Java.g:874:17: ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? - pass - # Java.g:874:17: ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) - # Java.g:874:21: SUPER innerDot= DOT IDENT - pass - SUPER451=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_postfixedExpression12001) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER451) - innerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_postfixedExpression12005) - if self._state.backtracking == 0: - stream_DOT.add(innerDot) - IDENT452=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_postfixedExpression12007) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT452) - - # AST Rewrite - # elements: SUPER, IDENT, postfixedExpression, innerDot, outerDot - # token labels: outerDot, innerDot - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - stream_outerDot = RewriteRuleTokenStream(self._adaptor, "token outerDot", outerDot) - stream_innerDot = RewriteRuleTokenStream(self._adaptor, "token innerDot", innerDot) - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 874:53: -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) - # Java.g:874:57: ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_innerDot.nextNode(), root_1) - - # Java.g:874:69: ^( $outerDot $postfixedExpression SUPER ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_outerDot.nextNode(), root_2) - - self._adaptor.addChild(root_2, stream_retval.nextTree()) - self._adaptor.addChild(root_2, stream_SUPER.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - # Java.g:876:17: ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? - alt133 = 2 - LA133_0 = self.input.LA(1) - - if (LA133_0 == LPAREN) : - alt133 = 1 - if alt133 == 1: - # Java.g:876:21: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_postfixedExpression12074) - arguments453 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments453.tree) - - # AST Rewrite - # elements: postfixedExpression, arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 876:53: -> ^( METHOD_CALL $postfixedExpression arguments ) - # Java.g:876:57: ^( METHOD_CALL $postfixedExpression arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt134 == 5: - # Java.g:878:17: innerNewExpression - pass - self._state.following.append(self.FOLLOW_innerNewExpression_in_postfixedExpression12145) - innerNewExpression454 = self.innerNewExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_innerNewExpression.add(innerNewExpression454.tree) - - # AST Rewrite - # elements: innerNewExpression, DOT, postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 878:53: -> ^( DOT $postfixedExpression innerNewExpression ) - # Java.g:878:57: ^( DOT $postfixedExpression innerNewExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_innerNewExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt135 == 2: - # Java.g:880:13: LBRACK expression RBRACK - pass - LBRACK455=self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_postfixedExpression12202) - if self._state.backtracking == 0: - stream_LBRACK.add(LBRACK455) - self._state.following.append(self.FOLLOW_expression_in_postfixedExpression12204) - expression456 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression456.tree) - RBRACK457=self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_postfixedExpression12206) - if self._state.backtracking == 0: - stream_RBRACK.add(RBRACK457) - - # AST Rewrite - # elements: expression, postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 880:53: -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) - # Java.g:880:57: ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ARRAY_ELEMENT_ACCESS, "ARRAY_ELEMENT_ACCESS"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - else: - break #loop135 - # Java.g:883:9: ( INC -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) | DEC -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) )? - alt136 = 3 - LA136_0 = self.input.LA(1) - - if (LA136_0 == INC) : - alt136 = 1 - elif (LA136_0 == DEC) : - alt136 = 2 - if alt136 == 1: - # Java.g:883:13: INC - pass - INC458=self.match(self.input, INC, self.FOLLOW_INC_in_postfixedExpression12267) - if self._state.backtracking == 0: - stream_INC.add(INC458) - - # AST Rewrite - # elements: postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 883:17: -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) - # Java.g:883:20: ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(POST_INC, INC458, "POST_INC"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt136 == 2: - # Java.g:884:13: DEC - pass - DEC459=self.match(self.input, DEC, self.FOLLOW_DEC_in_postfixedExpression12291) - if self._state.backtracking == 0: - stream_DEC.add(DEC459) - - # AST Rewrite - # elements: postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 884:17: -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) - # Java.g:884:20: ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(POST_DEC, DEC459, "POST_DEC"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 104, postfixedExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "postfixedExpression" - - class primaryExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.primaryExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "primaryExpression" - # Java.g:888:1: primaryExpression : ( parenthesizedExpression | literal | newExpression | qualifiedIdentExpression | genericTypeArgumentListSimplified ( SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) | IDENT arguments -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) | THIS arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) ) | ( THIS -> THIS ) ( arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) )? | SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] arguments ) | ( SUPER DOT IDENT ) ( arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) | -> ^( DOT SUPER IDENT ) ) | ( primitiveType -> primitiveType ) ( arrayDeclarator -> ^( arrayDeclarator $primaryExpression) )* DOT CLASS -> ^( DOT $primaryExpression CLASS ) | VOID DOT CLASS -> ^( DOT VOID CLASS ) ); - def primaryExpression(self, ): - - retval = self.primaryExpression_return() - retval.start = self.input.LT(1) - primaryExpression_StartIndex = self.input.index() - root_0 = None - - SUPER465 = None - DOT467 = None - IDENT468 = None - IDENT470 = None - THIS472 = None - THIS474 = None - SUPER476 = None - SUPER478 = None - DOT479 = None - IDENT480 = None - DOT484 = None - CLASS485 = None - VOID486 = None - DOT487 = None - CLASS488 = None - parenthesizedExpression460 = None - - literal461 = None - - newExpression462 = None - - qualifiedIdentExpression463 = None - - genericTypeArgumentListSimplified464 = None - - arguments466 = None - - arguments469 = None - - arguments471 = None - - arguments473 = None - - arguments475 = None - - arguments477 = None - - arguments481 = None - - primitiveType482 = None - - arrayDeclarator483 = None - - - SUPER465_tree = None - DOT467_tree = None - IDENT468_tree = None - IDENT470_tree = None - THIS472_tree = None - THIS474_tree = None - SUPER476_tree = None - SUPER478_tree = None - DOT479_tree = None - IDENT480_tree = None - DOT484_tree = None - CLASS485_tree = None - VOID486_tree = None - DOT487_tree = None - CLASS488_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_CLASS = RewriteRuleTokenStream(self._adaptor, "token CLASS") - stream_VOID = RewriteRuleTokenStream(self._adaptor, "token VOID") - stream_SUPER = RewriteRuleTokenStream(self._adaptor, "token SUPER") - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_THIS = RewriteRuleTokenStream(self._adaptor, "token THIS") - stream_arrayDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclarator") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_primitiveType = RewriteRuleSubtreeStream(self._adaptor, "rule primitiveType") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 105): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:889:5: ( parenthesizedExpression | literal | newExpression | qualifiedIdentExpression | genericTypeArgumentListSimplified ( SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) | IDENT arguments -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) | THIS arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) ) | ( THIS -> THIS ) ( arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) )? | SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] arguments ) | ( SUPER DOT IDENT ) ( arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) | -> ^( DOT SUPER IDENT ) ) | ( primitiveType -> primitiveType ) ( arrayDeclarator -> ^( arrayDeclarator $primaryExpression) )* DOT CLASS -> ^( DOT $primaryExpression CLASS ) | VOID DOT CLASS -> ^( DOT VOID CLASS ) ) - alt142 = 10 - alt142 = self.dfa142.predict(self.input) - if alt142 == 1: - # Java.g:889:9: parenthesizedExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_primaryExpression12331) - parenthesizedExpression460 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, parenthesizedExpression460.tree) - - - elif alt142 == 2: - # Java.g:890:9: literal - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_literal_in_primaryExpression12341) - literal461 = self.literal() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, literal461.tree) - - - elif alt142 == 3: - # Java.g:891:9: newExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_newExpression_in_primaryExpression12351) - newExpression462 = self.newExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, newExpression462.tree) - - - elif alt142 == 4: - # Java.g:892:9: qualifiedIdentExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_qualifiedIdentExpression_in_primaryExpression12361) - qualifiedIdentExpression463 = self.qualifiedIdentExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentExpression463.tree) - - - elif alt142 == 5: - # Java.g:893:9: genericTypeArgumentListSimplified ( SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) | IDENT arguments -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) | THIS arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) ) - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_primaryExpression12371) - genericTypeArgumentListSimplified464 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified464.tree) - # Java.g:894:9: ( SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) | IDENT arguments -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) | THIS arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) ) - alt138 = 3 - LA138 = self.input.LA(1) - if LA138 == SUPER: - alt138 = 1 - elif LA138 == IDENT: - alt138 = 2 - elif LA138 == THIS: - alt138 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 138, 0, self.input) - - raise nvae - - if alt138 == 1: - # Java.g:894:13: SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) - pass - SUPER465=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_primaryExpression12385) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER465) - # Java.g:895:13: ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) - alt137 = 2 - LA137_0 = self.input.LA(1) - - if (LA137_0 == LPAREN) : - alt137 = 1 - elif (LA137_0 == DOT) : - alt137 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 137, 0, self.input) - - raise nvae - - if alt137 == 1: - # Java.g:895:17: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12403) - arguments466 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments466.tree) - - # AST Rewrite - # elements: arguments, genericTypeArgumentListSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 895:57: -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) - # Java.g:895:61: ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, SUPER465, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt137 == 2: - # Java.g:896:17: DOT IDENT arguments - pass - DOT467=self.match(self.input, DOT, self.FOLLOW_DOT_in_primaryExpression12463) - if self._state.backtracking == 0: - stream_DOT.add(DOT467) - IDENT468=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_primaryExpression12465) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT468) - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12467) - arguments469 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments469.tree) - - # AST Rewrite - # elements: genericTypeArgumentListSimplified, arguments, DOT, IDENT, SUPER - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 896:57: -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) - # Java.g:896:61: ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - # Java.g:896:75: ^( DOT SUPER IDENT ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_2) - - self._adaptor.addChild(root_2, stream_SUPER.nextNode()) - self._adaptor.addChild(root_2, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt138 == 2: - # Java.g:898:13: IDENT arguments - pass - IDENT470=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_primaryExpression12534) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT470) - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12536) - arguments471 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments471.tree) - - # AST Rewrite - # elements: arguments, IDENT, genericTypeArgumentListSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 898:57: -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) - # Java.g:898:61: ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt138 == 3: - # Java.g:899:13: THIS arguments - pass - THIS472=self.match(self.input, THIS, self.FOLLOW_THIS_in_primaryExpression12591) - if self._state.backtracking == 0: - stream_THIS.add(THIS472) - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12593) - arguments473 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments473.tree) - - # AST Rewrite - # elements: genericTypeArgumentListSimplified, arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 899:57: -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) - # Java.g:899:61: ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(THIS_CONSTRUCTOR_CALL, THIS472, "THIS_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt142 == 6: - # Java.g:901:9: ( THIS -> THIS ) ( arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) )? - pass - # Java.g:901:9: ( THIS -> THIS ) - # Java.g:901:13: THIS - pass - THIS474=self.match(self.input, THIS, self.FOLLOW_THIS_in_primaryExpression12658) - if self._state.backtracking == 0: - stream_THIS.add(THIS474) - - # AST Rewrite - # elements: THIS - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 901:57: -> THIS - self._adaptor.addChild(root_0, stream_THIS.nextNode()) - - - - retval.tree = root_0 - - - - # Java.g:903:9: ( arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) )? - alt139 = 2 - LA139_0 = self.input.LA(1) - - if (LA139_0 == LPAREN) : - alt139 = 1 - if alt139 == 1: - # Java.g:903:13: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12726) - arguments475 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments475.tree) - - # AST Rewrite - # elements: arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 903:57: -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) - # Java.g:903:61: ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(THIS_CONSTRUCTOR_CALL, THIS474, "THIS_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt142 == 7: - # Java.g:905:9: SUPER arguments - pass - SUPER476=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_primaryExpression12791) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER476) - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12793) - arguments477 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments477.tree) - - # AST Rewrite - # elements: arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 905:57: -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] arguments ) - # Java.g:905:61: ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, SUPER476, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt142 == 8: - # Java.g:906:9: ( SUPER DOT IDENT ) ( arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) | -> ^( DOT SUPER IDENT ) ) - pass - # Java.g:906:9: ( SUPER DOT IDENT ) - # Java.g:906:13: SUPER DOT IDENT - pass - SUPER478=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_primaryExpression12849) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER478) - DOT479=self.match(self.input, DOT, self.FOLLOW_DOT_in_primaryExpression12851) - if self._state.backtracking == 0: - stream_DOT.add(DOT479) - IDENT480=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_primaryExpression12853) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT480) - - - - # Java.g:908:9: ( arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) | -> ^( DOT SUPER IDENT ) ) - alt140 = 2 - LA140_0 = self.input.LA(1) - - if (LA140_0 == LPAREN) : - alt140 = 1 - elif (LA140_0 == EOF or (AND <= LA140_0 <= ASSIGN) or (BIT_SHIFT_RIGHT <= LA140_0 <= DOT) or (EQUAL <= LA140_0 <= LBRACK) or (LESS_OR_EQUAL <= LA140_0 <= LOGICAL_AND) or LA140_0 == LOGICAL_OR or (MINUS <= LA140_0 <= MOD_ASSIGN) or (NOT_EQUAL <= LA140_0 <= XOR_ASSIGN) or LA140_0 == INSTANCEOF) : - alt140 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 140, 0, self.input) - - raise nvae - - if alt140 == 1: - # Java.g:908:13: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12877) - arguments481 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments481.tree) - - # AST Rewrite - # elements: arguments, SUPER, DOT, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 908:57: -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) - # Java.g:908:61: ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - # Java.g:908:75: ^( DOT SUPER IDENT ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_2) - - self._adaptor.addChild(root_2, stream_SUPER.nextNode()) - self._adaptor.addChild(root_2, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt140 == 2: - # Java.g:909:57: - pass - # AST Rewrite - # elements: SUPER, IDENT, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 909:57: -> ^( DOT SUPER IDENT ) - # Java.g:909:61: ^( DOT SUPER IDENT ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_SUPER.nextNode()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt142 == 9: - # Java.g:911:9: ( primitiveType -> primitiveType ) ( arrayDeclarator -> ^( arrayDeclarator $primaryExpression) )* DOT CLASS - pass - # Java.g:911:9: ( primitiveType -> primitiveType ) - # Java.g:911:13: primitiveType - pass - self._state.following.append(self.FOLLOW_primitiveType_in_primaryExpression13019) - primitiveType482 = self.primitiveType() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_primitiveType.add(primitiveType482.tree) - - # AST Rewrite - # elements: primitiveType - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 911:57: -> primitiveType - self._adaptor.addChild(root_0, stream_primitiveType.nextTree()) - - - - retval.tree = root_0 - - - - # Java.g:913:9: ( arrayDeclarator -> ^( arrayDeclarator $primaryExpression) )* - while True: #loop141 - alt141 = 2 - LA141_0 = self.input.LA(1) - - if (LA141_0 == LBRACK) : - alt141 = 1 - - - if alt141 == 1: - # Java.g:913:13: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_primaryExpression13078) - arrayDeclarator483 = self.arrayDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclarator.add(arrayDeclarator483.tree) - - # AST Rewrite - # elements: primaryExpression, arrayDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 913:57: -> ^( arrayDeclarator $primaryExpression) - # Java.g:913:61: ^( arrayDeclarator $primaryExpression) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_arrayDeclarator.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - else: - break #loop141 - DOT484=self.match(self.input, DOT, self.FOLLOW_DOT_in_primaryExpression13137) - if self._state.backtracking == 0: - stream_DOT.add(DOT484) - CLASS485=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_primaryExpression13139) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS485) - - # AST Rewrite - # elements: primaryExpression, CLASS, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 915:57: -> ^( DOT $primaryExpression CLASS ) - # Java.g:915:61: ^( DOT $primaryExpression CLASS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_CLASS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt142 == 10: - # Java.g:916:9: VOID DOT CLASS - pass - VOID486=self.match(self.input, VOID, self.FOLLOW_VOID_in_primaryExpression13199) - if self._state.backtracking == 0: - stream_VOID.add(VOID486) - DOT487=self.match(self.input, DOT, self.FOLLOW_DOT_in_primaryExpression13201) - if self._state.backtracking == 0: - stream_DOT.add(DOT487) - CLASS488=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_primaryExpression13203) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS488) - - # AST Rewrite - # elements: DOT, VOID, CLASS - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 916:57: -> ^( DOT VOID CLASS ) - # Java.g:916:61: ^( DOT VOID CLASS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_VOID.nextNode()) - self._adaptor.addChild(root_1, stream_CLASS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 105, primaryExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "primaryExpression" - - class qualifiedIdentExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedIdentExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedIdentExpression" - # Java.g:919:1: qualifiedIdentExpression : ( qualifiedIdentifier -> qualifiedIdentifier ) ( ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) | arguments -> ^( METHOD_CALL qualifiedIdentifier arguments ) | outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) )? ; - def qualifiedIdentExpression(self, ): - - retval = self.qualifiedIdentExpression_return() - retval.start = self.input.LT(1) - qualifiedIdentExpression_StartIndex = self.input.index() - root_0 = None - - outerDot = None - Super = None - innerDot = None - DOT491 = None - CLASS492 = None - CLASS494 = None - SUPER497 = None - IDENT498 = None - IDENT500 = None - THIS502 = None - qualifiedIdentifier489 = None - - arrayDeclarator490 = None - - arguments493 = None - - genericTypeArgumentListSimplified495 = None - - arguments496 = None - - arguments499 = None - - arguments501 = None - - arguments503 = None - - innerNewExpression504 = None - - - outerDot_tree = None - Super_tree = None - innerDot_tree = None - DOT491_tree = None - CLASS492_tree = None - CLASS494_tree = None - SUPER497_tree = None - IDENT498_tree = None - IDENT500_tree = None - THIS502_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_CLASS = RewriteRuleTokenStream(self._adaptor, "token CLASS") - stream_SUPER = RewriteRuleTokenStream(self._adaptor, "token SUPER") - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_THIS = RewriteRuleTokenStream(self._adaptor, "token THIS") - stream_arrayDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclarator") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_qualifiedIdentifier = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedIdentifier") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - stream_innerNewExpression = RewriteRuleSubtreeStream(self._adaptor, "rule innerNewExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 106): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:921:5: ( ( qualifiedIdentifier -> qualifiedIdentifier ) ( ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) | arguments -> ^( METHOD_CALL qualifiedIdentifier arguments ) | outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) )? ) - # Java.g:921:9: ( qualifiedIdentifier -> qualifiedIdentifier ) ( ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) | arguments -> ^( METHOD_CALL qualifiedIdentifier arguments ) | outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) )? - pass - # Java.g:921:9: ( qualifiedIdentifier -> qualifiedIdentifier ) - # Java.g:921:13: qualifiedIdentifier - pass - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_qualifiedIdentExpression13279) - qualifiedIdentifier489 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedIdentifier.add(qualifiedIdentifier489.tree) - - # AST Rewrite - # elements: qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 921:61: -> qualifiedIdentifier - self._adaptor.addChild(root_0, stream_qualifiedIdentifier.nextTree()) - - - - retval.tree = root_0 - - - - # Java.g:924:9: ( ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) | arguments -> ^( METHOD_CALL qualifiedIdentifier arguments ) | outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) )? - alt146 = 4 - alt146 = self.dfa146.predict(self.input) - if alt146 == 1: - # Java.g:924:13: ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) - pass - # Java.g:924:13: ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ - cnt143 = 0 - while True: #loop143 - alt143 = 2 - LA143_0 = self.input.LA(1) - - if (LA143_0 == LBRACK) : - alt143 = 1 - - - if alt143 == 1: - # Java.g:924:17: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_qualifiedIdentExpression13349) - arrayDeclarator490 = self.arrayDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclarator.add(arrayDeclarator490.tree) - - # AST Rewrite - # elements: qualifiedIdentExpression, arrayDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 924:57: -> ^( arrayDeclarator $qualifiedIdentExpression) - # Java.g:924:61: ^( arrayDeclarator $qualifiedIdentExpression) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_arrayDeclarator.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - else: - if cnt143 >= 1: - break #loop143 - - if self._state.backtracking > 0: - raise BacktrackingFailed - - eee = EarlyExitException(143, self.input) - raise eee - - cnt143 += 1 - # Java.g:926:13: ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) - # Java.g:926:17: DOT CLASS - pass - DOT491=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedIdentExpression13416) - if self._state.backtracking == 0: - stream_DOT.add(DOT491) - CLASS492=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_qualifiedIdentExpression13418) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS492) - - # AST Rewrite - # elements: CLASS, DOT, qualifiedIdentExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 926:57: -> ^( DOT $qualifiedIdentExpression CLASS ) - # Java.g:926:61: ^( DOT $qualifiedIdentExpression CLASS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_CLASS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt146 == 2: - # Java.g:928:13: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13488) - arguments493 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments493.tree) - - # AST Rewrite - # elements: arguments, qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 928:57: -> ^( METHOD_CALL qualifiedIdentifier arguments ) - # Java.g:928:61: ^( METHOD_CALL qualifiedIdentifier arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt146 == 3: - # Java.g:929:13: outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) - pass - outerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedIdentExpression13549) - if self._state.backtracking == 0: - stream_DOT.add(outerDot) - # Java.g:930:13: ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) - alt145 = 5 - LA145 = self.input.LA(1) - if LA145 == CLASS: - alt145 = 1 - elif LA145 == LESS_THAN: - alt145 = 2 - elif LA145 == THIS: - alt145 = 3 - elif LA145 == SUPER: - alt145 = 4 - elif LA145 == NEW: - alt145 = 5 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 145, 0, self.input) - - raise nvae - - if alt145 == 1: - # Java.g:930:17: CLASS - pass - CLASS494=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_qualifiedIdentExpression13567) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS494) - - # AST Rewrite - # elements: DOT, CLASS, qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 930:57: -> ^( DOT qualifiedIdentifier CLASS ) - # Java.g:930:61: ^( DOT qualifiedIdentifier CLASS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_CLASS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt145 == 2: - # Java.g:931:17: genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_qualifiedIdentExpression13630) - genericTypeArgumentListSimplified495 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified495.tree) - # Java.g:932:17: (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) - alt144 = 3 - LA144_0 = self.input.LA(1) - - if (LA144_0 == SUPER) : - LA144_1 = self.input.LA(2) - - if (LA144_1 == DOT) : - alt144 = 2 - elif (LA144_1 == LPAREN) : - alt144 = 1 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 144, 1, self.input) - - raise nvae - - elif (LA144_0 == IDENT) : - alt144 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 144, 0, self.input) - - raise nvae - - if alt144 == 1: - # Java.g:932:21: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_qualifiedIdentExpression13654) - if self._state.backtracking == 0: - stream_SUPER.add(Super) - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13656) - arguments496 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments496.tree) - - # AST Rewrite - # elements: qualifiedIdentifier, arguments, genericTypeArgumentListSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 932:57: -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) - # Java.g:932:61: ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, Super, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt144 == 2: - # Java.g:933:21: SUPER innerDot= DOT IDENT arguments - pass - SUPER497=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_qualifiedIdentExpression13706) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER497) - innerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedIdentExpression13710) - if self._state.backtracking == 0: - stream_DOT.add(innerDot) - IDENT498=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_qualifiedIdentExpression13712) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT498) - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13714) - arguments499 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments499.tree) - - # AST Rewrite - # elements: IDENT, qualifiedIdentifier, outerDot, SUPER, innerDot, genericTypeArgumentListSimplified, arguments - # token labels: outerDot, innerDot - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - stream_outerDot = RewriteRuleTokenStream(self._adaptor, "token outerDot", outerDot) - stream_innerDot = RewriteRuleTokenStream(self._adaptor, "token innerDot", innerDot) - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 933:57: -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) - # Java.g:933:61: ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - # Java.g:933:75: ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_innerDot.nextNode(), root_2) - - # Java.g:933:87: ^( $outerDot qualifiedIdentifier SUPER ) - root_3 = self._adaptor.nil() - root_3 = self._adaptor.becomeRoot(stream_outerDot.nextNode(), root_3) - - self._adaptor.addChild(root_3, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_3, stream_SUPER.nextNode()) - - self._adaptor.addChild(root_2, root_3) - self._adaptor.addChild(root_2, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt144 == 3: - # Java.g:934:21: IDENT arguments - pass - IDENT500=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_qualifiedIdentExpression13764) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT500) - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13766) - arguments501 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments501.tree) - - # AST Rewrite - # elements: IDENT, arguments, genericTypeArgumentListSimplified, qualifiedIdentifier, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 934:57: -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) - # Java.g:934:61: ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - # Java.g:934:75: ^( DOT qualifiedIdentifier IDENT ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_2) - - self._adaptor.addChild(root_2, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_2, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt145 == 3: - # Java.g:936:17: THIS - pass - THIS502=self.match(self.input, THIS, self.FOLLOW_THIS_in_qualifiedIdentExpression13841) - if self._state.backtracking == 0: - stream_THIS.add(THIS502) - - # AST Rewrite - # elements: DOT, THIS, qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 936:57: -> ^( DOT qualifiedIdentifier THIS ) - # Java.g:936:61: ^( DOT qualifiedIdentifier THIS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_THIS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt145 == 4: - # Java.g:937:17: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_qualifiedIdentExpression13907) - if self._state.backtracking == 0: - stream_SUPER.add(Super) - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13909) - arguments503 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments503.tree) - - # AST Rewrite - # elements: qualifiedIdentifier, arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 937:57: -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) - # Java.g:937:61: ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, Super, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt145 == 5: - # Java.g:938:17: innerNewExpression - pass - self._state.following.append(self.FOLLOW_innerNewExpression_in_qualifiedIdentExpression13957) - innerNewExpression504 = self.innerNewExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_innerNewExpression.add(innerNewExpression504.tree) - - # AST Rewrite - # elements: DOT, innerNewExpression, qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 938:57: -> ^( DOT qualifiedIdentifier innerNewExpression ) - # Java.g:938:61: ^( DOT qualifiedIdentifier innerNewExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_innerNewExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 106, qualifiedIdentExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedIdentExpression" - - class newExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.newExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "newExpression" - # Java.g:943:1: newExpression : NEW ( primitiveType newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) | ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) ) ; - def newExpression(self, ): - - retval = self.newExpression_return() - retval.start = self.input.LT(1) - newExpression_StartIndex = self.input.index() - root_0 = None - - NEW505 = None - primitiveType506 = None - - newArrayConstruction507 = None - - genericTypeArgumentListSimplified508 = None - - qualifiedTypeIdentSimplified509 = None - - newArrayConstruction510 = None - - arguments511 = None - - classBody512 = None - - - NEW505_tree = None - stream_NEW = RewriteRuleTokenStream(self._adaptor, "token NEW") - stream_newArrayConstruction = RewriteRuleSubtreeStream(self._adaptor, "rule newArrayConstruction") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_qualifiedTypeIdentSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedTypeIdentSimplified") - stream_primitiveType = RewriteRuleSubtreeStream(self._adaptor, "rule primitiveType") - stream_classBody = RewriteRuleSubtreeStream(self._adaptor, "rule classBody") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 107): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:944:5: ( NEW ( primitiveType newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) | ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) ) ) - # Java.g:944:9: NEW ( primitiveType newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) | ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) ) - pass - NEW505=self.match(self.input, NEW, self.FOLLOW_NEW_in_newExpression14033) - if self._state.backtracking == 0: - stream_NEW.add(NEW505) - # Java.g:945:9: ( primitiveType newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) | ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) ) - alt150 = 2 - LA150_0 = self.input.LA(1) - - if (LA150_0 == BOOLEAN or LA150_0 == BYTE or LA150_0 == CHAR or LA150_0 == DOUBLE or LA150_0 == FLOAT or (INT <= LA150_0 <= LONG) or LA150_0 == SHORT) : - alt150 = 1 - elif (LA150_0 == LESS_THAN or LA150_0 == IDENT) : - alt150 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 150, 0, self.input) - - raise nvae - - if alt150 == 1: - # Java.g:945:13: primitiveType newArrayConstruction - pass - self._state.following.append(self.FOLLOW_primitiveType_in_newExpression14047) - primitiveType506 = self.primitiveType() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_primitiveType.add(primitiveType506.tree) - self._state.following.append(self.FOLLOW_newArrayConstruction_in_newExpression14049) - newArrayConstruction507 = self.newArrayConstruction() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_newArrayConstruction.add(newArrayConstruction507.tree) - - # AST Rewrite - # elements: primitiveType, newArrayConstruction - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 946:13: -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) - # Java.g:946:17: ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(STATIC_ARRAY_CREATOR, NEW505, "STATIC_ARRAY_CREATOR"), root_1) - - self._adaptor.addChild(root_1, stream_primitiveType.nextTree()) - self._adaptor.addChild(root_1, stream_newArrayConstruction.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt150 == 2: - # Java.g:947:13: ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) - pass - # Java.g:947:13: ( genericTypeArgumentListSimplified )? - alt147 = 2 - LA147_0 = self.input.LA(1) - - if (LA147_0 == LESS_THAN) : - alt147 = 1 - if alt147 == 1: - # Java.g:0:0: genericTypeArgumentListSimplified - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_newExpression14093) - genericTypeArgumentListSimplified508 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified508.tree) - - - - self._state.following.append(self.FOLLOW_qualifiedTypeIdentSimplified_in_newExpression14096) - qualifiedTypeIdentSimplified509 = self.qualifiedTypeIdentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedTypeIdentSimplified.add(qualifiedTypeIdentSimplified509.tree) - # Java.g:948:13: ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) - alt149 = 2 - LA149_0 = self.input.LA(1) - - if (LA149_0 == LBRACK) : - alt149 = 1 - elif (LA149_0 == LPAREN) : - alt149 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 149, 0, self.input) - - raise nvae - - if alt149 == 1: - # Java.g:948:17: newArrayConstruction - pass - self._state.following.append(self.FOLLOW_newArrayConstruction_in_newExpression14114) - newArrayConstruction510 = self.newArrayConstruction() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_newArrayConstruction.add(newArrayConstruction510.tree) - - # AST Rewrite - # elements: newArrayConstruction, qualifiedTypeIdentSimplified, genericTypeArgumentListSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 949:17: -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) - # Java.g:949:21: ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(STATIC_ARRAY_CREATOR, NEW505, "STATIC_ARRAY_CREATOR"), root_1) - - # Java.g:949:74: ( genericTypeArgumentListSimplified )? - if stream_genericTypeArgumentListSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - - - stream_genericTypeArgumentListSimplified.reset(); - self._adaptor.addChild(root_1, stream_qualifiedTypeIdentSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_newArrayConstruction.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt149 == 2: - # Java.g:950:17: arguments ( classBody )? - pass - self._state.following.append(self.FOLLOW_arguments_in_newExpression14179) - arguments511 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments511.tree) - # Java.g:950:27: ( classBody )? - alt148 = 2 - LA148_0 = self.input.LA(1) - - if (LA148_0 == LCURLY) : - alt148 = 1 - if alt148 == 1: - # Java.g:0:0: classBody - pass - self._state.following.append(self.FOLLOW_classBody_in_newExpression14181) - classBody512 = self.classBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classBody.add(classBody512.tree) - - - - - # AST Rewrite - # elements: classBody, arguments, genericTypeArgumentListSimplified, qualifiedTypeIdentSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 951:17: -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) - # Java.g:951:21: ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_CONSTRUCTOR_CALL, NEW505, "STATIC_ARRAY_CREATOR"), root_1) - - # Java.g:951:76: ( genericTypeArgumentListSimplified )? - if stream_genericTypeArgumentListSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - - - stream_genericTypeArgumentListSimplified.reset(); - self._adaptor.addChild(root_1, stream_qualifiedTypeIdentSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - # Java.g:951:150: ( classBody )? - if stream_classBody.hasNext(): - self._adaptor.addChild(root_1, stream_classBody.nextTree()) - - - stream_classBody.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 107, newExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "newExpression" - - class innerNewExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.innerNewExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "innerNewExpression" - # Java.g:956:1: innerNewExpression : NEW ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? ) ; - def innerNewExpression(self, ): - - retval = self.innerNewExpression_return() - retval.start = self.input.LT(1) - innerNewExpression_StartIndex = self.input.index() - root_0 = None - - NEW513 = None - IDENT515 = None - genericTypeArgumentListSimplified514 = None - - arguments516 = None - - classBody517 = None - - - NEW513_tree = None - IDENT515_tree = None - stream_NEW = RewriteRuleTokenStream(self._adaptor, "token NEW") - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_classBody = RewriteRuleSubtreeStream(self._adaptor, "rule classBody") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 108): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:957:5: ( NEW ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? ) ) - # Java.g:957:9: NEW ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? - pass - NEW513=self.match(self.input, NEW, self.FOLLOW_NEW_in_innerNewExpression14276) - if self._state.backtracking == 0: - stream_NEW.add(NEW513) - # Java.g:957:13: ( genericTypeArgumentListSimplified )? - alt151 = 2 - LA151_0 = self.input.LA(1) - - if (LA151_0 == LESS_THAN) : - alt151 = 1 - if alt151 == 1: - # Java.g:0:0: genericTypeArgumentListSimplified - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_innerNewExpression14278) - genericTypeArgumentListSimplified514 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified514.tree) - - - - IDENT515=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_innerNewExpression14281) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT515) - self._state.following.append(self.FOLLOW_arguments_in_innerNewExpression14283) - arguments516 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments516.tree) - # Java.g:957:64: ( classBody )? - alt152 = 2 - LA152_0 = self.input.LA(1) - - if (LA152_0 == LCURLY) : - alt152 = 1 - if alt152 == 1: - # Java.g:0:0: classBody - pass - self._state.following.append(self.FOLLOW_classBody_in_innerNewExpression14285) - classBody517 = self.classBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classBody.add(classBody517.tree) - - - - - # AST Rewrite - # elements: arguments, genericTypeArgumentListSimplified, IDENT, classBody - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 958:9: -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? ) - # Java.g:958:13: ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_CONSTRUCTOR_CALL, NEW513, "STATIC_ARRAY_CREATOR"), root_1) - - # Java.g:958:68: ( genericTypeArgumentListSimplified )? - if stream_genericTypeArgumentListSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - - - stream_genericTypeArgumentListSimplified.reset(); - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - # Java.g:958:119: ( classBody )? - if stream_classBody.hasNext(): - self._adaptor.addChild(root_1, stream_classBody.nextTree()) - - - stream_classBody.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 108, innerNewExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "innerNewExpression" - - class newArrayConstruction_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.newArrayConstruction_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "newArrayConstruction" - # Java.g:961:1: newArrayConstruction : ( arrayDeclaratorList arrayInitializer | LBRACK expression RBRACK ( LBRACK expression RBRACK )* ( arrayDeclaratorList )? ); - def newArrayConstruction(self, ): - - retval = self.newArrayConstruction_return() - retval.start = self.input.LT(1) - newArrayConstruction_StartIndex = self.input.index() - root_0 = None - - LBRACK520 = None - RBRACK522 = None - LBRACK523 = None - RBRACK525 = None - arrayDeclaratorList518 = None - - arrayInitializer519 = None - - expression521 = None - - expression524 = None - - arrayDeclaratorList526 = None - - - LBRACK520_tree = None - RBRACK522_tree = None - LBRACK523_tree = None - RBRACK525_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 109): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:962:5: ( arrayDeclaratorList arrayInitializer | LBRACK expression RBRACK ( LBRACK expression RBRACK )* ( arrayDeclaratorList )? ) - alt155 = 2 - LA155_0 = self.input.LA(1) - - if (LA155_0 == LBRACK) : - LA155_1 = self.input.LA(2) - - if (LA155_1 == RBRACK) : - alt155 = 1 - elif (LA155_1 == DEC or LA155_1 == INC or LA155_1 == LESS_THAN or LA155_1 == LOGICAL_NOT or (LPAREN <= LA155_1 <= MINUS) or LA155_1 == NOT or LA155_1 == PLUS or LA155_1 == BOOLEAN or LA155_1 == BYTE or LA155_1 == CHAR or LA155_1 == DOUBLE or LA155_1 == FALSE or LA155_1 == FLOAT or (INT <= LA155_1 <= LONG) or (NEW <= LA155_1 <= NULL) or LA155_1 == SHORT or LA155_1 == SUPER or LA155_1 == THIS or LA155_1 == TRUE or LA155_1 == VOID or (IDENT <= LA155_1 <= STRING_LITERAL)) : - alt155 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 155, 1, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 155, 0, self.input) - - raise nvae - - if alt155 == 1: - # Java.g:962:9: arrayDeclaratorList arrayInitializer - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_newArrayConstruction14331) - arrayDeclaratorList518 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayDeclaratorList518.tree) - self._state.following.append(self.FOLLOW_arrayInitializer_in_newArrayConstruction14333) - arrayInitializer519 = self.arrayInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayInitializer519.tree) - - - elif alt155 == 2: - # Java.g:963:9: LBRACK expression RBRACK ( LBRACK expression RBRACK )* ( arrayDeclaratorList )? - pass - root_0 = self._adaptor.nil() - - LBRACK520=self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_newArrayConstruction14343) - self._state.following.append(self.FOLLOW_expression_in_newArrayConstruction14346) - expression521 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression521.tree) - RBRACK522=self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_newArrayConstruction14348) - # Java.g:963:36: ( LBRACK expression RBRACK )* - while True: #loop153 - alt153 = 2 - alt153 = self.dfa153.predict(self.input) - if alt153 == 1: - # Java.g:963:37: LBRACK expression RBRACK - pass - LBRACK523=self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_newArrayConstruction14352) - self._state.following.append(self.FOLLOW_expression_in_newArrayConstruction14355) - expression524 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression524.tree) - RBRACK525=self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_newArrayConstruction14357) - - - else: - break #loop153 - # Java.g:963:66: ( arrayDeclaratorList )? - alt154 = 2 - LA154_0 = self.input.LA(1) - - if (LA154_0 == LBRACK) : - LA154_1 = self.input.LA(2) - - if (LA154_1 == RBRACK) : - alt154 = 1 - if alt154 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_newArrayConstruction14362) - arrayDeclaratorList526 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayDeclaratorList526.tree) - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 109, newArrayConstruction_StartIndex, success) - - pass - return retval - - # $ANTLR end "newArrayConstruction" - - class arguments_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.arguments_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "arguments" - # Java.g:966:1: arguments : LPAREN ( expressionList )? RPAREN -> ^( ARGUMENT_LIST[$LPAREN, \"ARGUMENT_LIST\"] ( expressionList )? ) ; - def arguments(self, ): - - retval = self.arguments_return() - retval.start = self.input.LT(1) - arguments_StartIndex = self.input.index() - root_0 = None - - LPAREN527 = None - RPAREN529 = None - expressionList528 = None - - - LPAREN527_tree = None - RPAREN529_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_expressionList = RewriteRuleSubtreeStream(self._adaptor, "rule expressionList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 110): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:967:5: ( LPAREN ( expressionList )? RPAREN -> ^( ARGUMENT_LIST[$LPAREN, \"ARGUMENT_LIST\"] ( expressionList )? ) ) - # Java.g:967:9: LPAREN ( expressionList )? RPAREN - pass - LPAREN527=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_arguments14382) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN527) - # Java.g:967:16: ( expressionList )? - alt156 = 2 - LA156_0 = self.input.LA(1) - - if (LA156_0 == DEC or LA156_0 == INC or LA156_0 == LESS_THAN or LA156_0 == LOGICAL_NOT or (LPAREN <= LA156_0 <= MINUS) or LA156_0 == NOT or LA156_0 == PLUS or LA156_0 == BOOLEAN or LA156_0 == BYTE or LA156_0 == CHAR or LA156_0 == DOUBLE or LA156_0 == FALSE or LA156_0 == FLOAT or (INT <= LA156_0 <= LONG) or (NEW <= LA156_0 <= NULL) or LA156_0 == SHORT or LA156_0 == SUPER or LA156_0 == THIS or LA156_0 == TRUE or LA156_0 == VOID or (IDENT <= LA156_0 <= STRING_LITERAL)) : - alt156 = 1 - if alt156 == 1: - # Java.g:0:0: expressionList - pass - self._state.following.append(self.FOLLOW_expressionList_in_arguments14384) - expressionList528 = self.expressionList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expressionList.add(expressionList528.tree) - - - - RPAREN529=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_arguments14387) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN529) - - # AST Rewrite - # elements: expressionList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 968:9: -> ^( ARGUMENT_LIST[$LPAREN, \"ARGUMENT_LIST\"] ( expressionList )? ) - # Java.g:968:13: ^( ARGUMENT_LIST[$LPAREN, \"ARGUMENT_LIST\"] ( expressionList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ARGUMENT_LIST, LPAREN527, "ARGUMENT_LIST"), root_1) - - # Java.g:968:55: ( expressionList )? - if stream_expressionList.hasNext(): - self._adaptor.addChild(root_1, stream_expressionList.nextTree()) - - - stream_expressionList.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 110, arguments_StartIndex, success) - - pass - return retval - - # $ANTLR end "arguments" - - class literal_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.literal_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "literal" - # Java.g:971:1: literal : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | FLOATING_POINT_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | TRUE | FALSE | NULL ); - def literal(self, ): - - retval = self.literal_return() - retval.start = self.input.LT(1) - literal_StartIndex = self.input.index() - root_0 = None - - set530 = None - - set530_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 111): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:972:5: ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | FLOATING_POINT_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | TRUE | FALSE | NULL ) - # Java.g: - pass - root_0 = self._adaptor.nil() - - set530 = self.input.LT(1) - if self.input.LA(1) == FALSE or self.input.LA(1) == NULL or self.input.LA(1) == TRUE or (HEX_LITERAL <= self.input.LA(1) <= STRING_LITERAL): - self.input.consume() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, self._adaptor.createWithPayload(set530)) - self._state.errorRecovery = False - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - mse = MismatchedSetException(None, self.input) - raise mse - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 111, literal_StartIndex, success) - - pass - return retval - - # $ANTLR end "literal" - - # $ANTLR start "synpred14_Java" - def synpred14_Java_fragment(self, ): - # Java.g:286:9: ( GREATER_THAN ) - # Java.g:286:9: GREATER_THAN - pass - self.match(self.input, GREATER_THAN, self.FOLLOW_GREATER_THAN_in_synpred14_Java5045) - - - # $ANTLR end "synpred14_Java" - - - - # $ANTLR start "synpred15_Java" - def synpred15_Java_fragment(self, ): - # Java.g:287:9: ( SHIFT_RIGHT ) - # Java.g:287:9: SHIFT_RIGHT - pass - self.match(self.input, SHIFT_RIGHT, self.FOLLOW_SHIFT_RIGHT_in_synpred15_Java5055) - - - # $ANTLR end "synpred15_Java" - - - - # $ANTLR start "synpred16_Java" - def synpred16_Java_fragment(self, ): - # Java.g:288:9: ( BIT_SHIFT_RIGHT ) - # Java.g:288:9: BIT_SHIFT_RIGHT - pass - self.match(self.input, BIT_SHIFT_RIGHT, self.FOLLOW_BIT_SHIFT_RIGHT_in_synpred16_Java5065) - - - # $ANTLR end "synpred16_Java" - - - - # $ANTLR start "synpred17_Java" - def synpred17_Java_fragment(self, ): - # Java.g:293:15: ( bound ) - # Java.g:293:15: bound - pass - self._state.following.append(self.FOLLOW_bound_in_synpred17_Java5095) - self.bound() - - self._state.following.pop() - - - # $ANTLR end "synpred17_Java" - - - - # $ANTLR start "synpred32_Java" - def synpred32_Java_fragment(self, ): - # Java.g:350:9: ( STATIC block ) - # Java.g:350:9: STATIC block - pass - self.match(self.input, STATIC, self.FOLLOW_STATIC_in_synpred32_Java5595) - self._state.following.append(self.FOLLOW_block_in_synpred32_Java5597) - self.block() - - self._state.following.pop() - - - # $ANTLR end "synpred32_Java" - - - - # $ANTLR start "synpred42_Java" - def synpred42_Java_fragment(self, ): - # Java.g:352:13: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) ) - # Java.g:352:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) - pass - # Java.g:352:13: ( genericTypeParameterList )? - alt162 = 2 - LA162_0 = self.input.LA(1) - - if (LA162_0 == LESS_THAN) : - alt162 = 1 - if alt162 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_synpred42_Java5634) - self.genericTypeParameterList() - - self._state.following.pop() - - - - # Java.g:353:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) - alt169 = 3 - LA169 = self.input.LA(1) - if LA169 == BOOLEAN or LA169 == BYTE or LA169 == CHAR or LA169 == DOUBLE or LA169 == FLOAT or LA169 == INT or LA169 == LONG or LA169 == SHORT: - alt169 = 1 - elif LA169 == IDENT: - LA169_2 = self.input.LA(2) - - if (LA169_2 == DOT or LA169_2 == LBRACK or LA169_2 == LESS_THAN or LA169_2 == IDENT) : - alt169 = 1 - elif (LA169_2 == LPAREN) : - alt169 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 169, 2, self.input) - - raise nvae - - elif LA169 == VOID: - alt169 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 169, 0, self.input) - - raise nvae - - if alt169 == 1: - # Java.g:353:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) - pass - self._state.following.append(self.FOLLOW_type_in_synpred42_Java5653) - self.type() - - self._state.following.pop() - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred42_Java5655) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred42_Java5657) - self.formalParameterList() - - self._state.following.pop() - # Java.g:353:48: ( arrayDeclaratorList )? - alt163 = 2 - LA163_0 = self.input.LA(1) - - if (LA163_0 == LBRACK) : - alt163 = 1 - if alt163 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred42_Java5659) - self.arrayDeclaratorList() - - self._state.following.pop() - - - - # Java.g:353:69: ( throwsClause )? - alt164 = 2 - LA164_0 = self.input.LA(1) - - if (LA164_0 == THROWS) : - alt164 = 1 - if alt164 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred42_Java5662) - self.throwsClause() - - self._state.following.pop() - - - - # Java.g:353:83: ( block | SEMI ) - alt165 = 2 - LA165_0 = self.input.LA(1) - - if (LA165_0 == LCURLY) : - alt165 = 1 - elif (LA165_0 == SEMI) : - alt165 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 165, 0, self.input) - - raise nvae - - if alt165 == 1: - # Java.g:353:84: block - pass - self._state.following.append(self.FOLLOW_block_in_synpred42_Java5666) - self.block() - - self._state.following.pop() - - - elif alt165 == 2: - # Java.g:353:92: SEMI - pass - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred42_Java5670) - - - - - - elif alt169 == 2: - # Java.g:355:17: VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) - pass - self.match(self.input, VOID, self.FOLLOW_VOID_in_synpred42_Java5732) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred42_Java5734) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred42_Java5736) - self.formalParameterList() - - self._state.following.pop() - # Java.g:355:48: ( throwsClause )? - alt166 = 2 - LA166_0 = self.input.LA(1) - - if (LA166_0 == THROWS) : - alt166 = 1 - if alt166 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred42_Java5738) - self.throwsClause() - - self._state.following.pop() - - - - # Java.g:355:62: ( block | SEMI ) - alt167 = 2 - LA167_0 = self.input.LA(1) - - if (LA167_0 == LCURLY) : - alt167 = 1 - elif (LA167_0 == SEMI) : - alt167 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 167, 0, self.input) - - raise nvae - - if alt167 == 1: - # Java.g:355:63: block - pass - self._state.following.append(self.FOLLOW_block_in_synpred42_Java5742) - self.block() - - self._state.following.pop() - - - elif alt167 == 2: - # Java.g:355:71: SEMI - pass - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred42_Java5746) - - - - - - elif alt169 == 3: - # Java.g:357:17: ident= IDENT formalParameterList ( throwsClause )? block - pass - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred42_Java5805) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred42_Java5807) - self.formalParameterList() - - self._state.following.pop() - # Java.g:357:49: ( throwsClause )? - alt168 = 2 - LA168_0 = self.input.LA(1) - - if (LA168_0 == THROWS) : - alt168 = 1 - if alt168 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred42_Java5809) - self.throwsClause() - - self._state.following.pop() - - - - self._state.following.append(self.FOLLOW_block_in_synpred42_Java5812) - self.block() - - self._state.following.pop() - - - - - - # $ANTLR end "synpred42_Java" - - - - # $ANTLR start "synpred43_Java" - def synpred43_Java_fragment(self, ): - # Java.g:351:9: ( modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) | type classFieldDeclaratorList SEMI ) ) - # Java.g:351:9: modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) | type classFieldDeclaratorList SEMI ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_synpred43_Java5620) - self.modifierList() - - self._state.following.pop() - # Java.g:352:9: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) | type classFieldDeclaratorList SEMI ) - alt178 = 2 - LA178 = self.input.LA(1) - if LA178 == LESS_THAN or LA178 == VOID: - alt178 = 1 - elif LA178 == BOOLEAN or LA178 == BYTE or LA178 == CHAR or LA178 == DOUBLE or LA178 == FLOAT or LA178 == INT or LA178 == LONG or LA178 == SHORT: - LA178_2 = self.input.LA(2) - - if (self.synpred42_Java()) : - alt178 = 1 - elif (True) : - alt178 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 178, 2, self.input) - - raise nvae - - elif LA178 == IDENT: - LA178_3 = self.input.LA(2) - - if (self.synpred42_Java()) : - alt178 = 1 - elif (True) : - alt178 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 178, 3, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 178, 0, self.input) - - raise nvae - - if alt178 == 1: - # Java.g:352:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) - pass - # Java.g:352:13: ( genericTypeParameterList )? - alt170 = 2 - LA170_0 = self.input.LA(1) - - if (LA170_0 == LESS_THAN) : - alt170 = 1 - if alt170 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_synpred43_Java5634) - self.genericTypeParameterList() - - self._state.following.pop() - - - - # Java.g:353:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) - alt177 = 3 - LA177 = self.input.LA(1) - if LA177 == BOOLEAN or LA177 == BYTE or LA177 == CHAR or LA177 == DOUBLE or LA177 == FLOAT or LA177 == INT or LA177 == LONG or LA177 == SHORT: - alt177 = 1 - elif LA177 == IDENT: - LA177_2 = self.input.LA(2) - - if (LA177_2 == LPAREN) : - alt177 = 3 - elif (LA177_2 == DOT or LA177_2 == LBRACK or LA177_2 == LESS_THAN or LA177_2 == IDENT) : - alt177 = 1 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 177, 2, self.input) - - raise nvae - - elif LA177 == VOID: - alt177 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 177, 0, self.input) - - raise nvae - - if alt177 == 1: - # Java.g:353:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) - pass - self._state.following.append(self.FOLLOW_type_in_synpred43_Java5653) - self.type() - - self._state.following.pop() - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred43_Java5655) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred43_Java5657) - self.formalParameterList() - - self._state.following.pop() - # Java.g:353:48: ( arrayDeclaratorList )? - alt171 = 2 - LA171_0 = self.input.LA(1) - - if (LA171_0 == LBRACK) : - alt171 = 1 - if alt171 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred43_Java5659) - self.arrayDeclaratorList() - - self._state.following.pop() - - - - # Java.g:353:69: ( throwsClause )? - alt172 = 2 - LA172_0 = self.input.LA(1) - - if (LA172_0 == THROWS) : - alt172 = 1 - if alt172 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred43_Java5662) - self.throwsClause() - - self._state.following.pop() - - - - # Java.g:353:83: ( block | SEMI ) - alt173 = 2 - LA173_0 = self.input.LA(1) - - if (LA173_0 == LCURLY) : - alt173 = 1 - elif (LA173_0 == SEMI) : - alt173 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 173, 0, self.input) - - raise nvae - - if alt173 == 1: - # Java.g:353:84: block - pass - self._state.following.append(self.FOLLOW_block_in_synpred43_Java5666) - self.block() - - self._state.following.pop() - - - elif alt173 == 2: - # Java.g:353:92: SEMI - pass - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred43_Java5670) - - - - - - elif alt177 == 2: - # Java.g:355:17: VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) - pass - self.match(self.input, VOID, self.FOLLOW_VOID_in_synpred43_Java5732) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred43_Java5734) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred43_Java5736) - self.formalParameterList() - - self._state.following.pop() - # Java.g:355:48: ( throwsClause )? - alt174 = 2 - LA174_0 = self.input.LA(1) - - if (LA174_0 == THROWS) : - alt174 = 1 - if alt174 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred43_Java5738) - self.throwsClause() - - self._state.following.pop() - - - - # Java.g:355:62: ( block | SEMI ) - alt175 = 2 - LA175_0 = self.input.LA(1) - - if (LA175_0 == LCURLY) : - alt175 = 1 - elif (LA175_0 == SEMI) : - alt175 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 175, 0, self.input) - - raise nvae - - if alt175 == 1: - # Java.g:355:63: block - pass - self._state.following.append(self.FOLLOW_block_in_synpred43_Java5742) - self.block() - - self._state.following.pop() - - - elif alt175 == 2: - # Java.g:355:71: SEMI - pass - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred43_Java5746) - - - - - - elif alt177 == 3: - # Java.g:357:17: ident= IDENT formalParameterList ( throwsClause )? block - pass - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred43_Java5805) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred43_Java5807) - self.formalParameterList() - - self._state.following.pop() - # Java.g:357:49: ( throwsClause )? - alt176 = 2 - LA176_0 = self.input.LA(1) - - if (LA176_0 == THROWS) : - alt176 = 1 - if alt176 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred43_Java5809) - self.throwsClause() - - self._state.following.pop() - - - - self._state.following.append(self.FOLLOW_block_in_synpred43_Java5812) - self.block() - - self._state.following.pop() - - - - - - elif alt178 == 2: - # Java.g:360:13: type classFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_type_in_synpred43_Java5876) - self.type() - - self._state.following.pop() - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_synpred43_Java5878) - self.classFieldDeclaratorList() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred43_Java5880) - - - - - - # $ANTLR end "synpred43_Java" - - - - # $ANTLR start "synpred44_Java" - def synpred44_Java_fragment(self, ): - # Java.g:363:9: ( typeDeclaration ) - # Java.g:363:9: typeDeclaration - pass - self._state.following.append(self.FOLLOW_typeDeclaration_in_synpred44_Java5925) - self.typeDeclaration() - - self._state.following.pop() - - - # $ANTLR end "synpred44_Java" - - - - # $ANTLR start "synpred50_Java" - def synpred50_Java_fragment(self, ): - # Java.g:369:13: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) ) - # Java.g:369:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) - pass - # Java.g:369:13: ( genericTypeParameterList )? - alt181 = 2 - LA181_0 = self.input.LA(1) - - if (LA181_0 == LESS_THAN) : - alt181 = 1 - if alt181 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_synpred50_Java5969) - self.genericTypeParameterList() - - self._state.following.pop() - - - - # Java.g:370:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) - alt185 = 2 - LA185_0 = self.input.LA(1) - - if (LA185_0 == BOOLEAN or LA185_0 == BYTE or LA185_0 == CHAR or LA185_0 == DOUBLE or LA185_0 == FLOAT or (INT <= LA185_0 <= LONG) or LA185_0 == SHORT or LA185_0 == IDENT) : - alt185 = 1 - elif (LA185_0 == VOID) : - alt185 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 185, 0, self.input) - - raise nvae - - if alt185 == 1: - # Java.g:370:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI - pass - self._state.following.append(self.FOLLOW_type_in_synpred50_Java5988) - self.type() - - self._state.following.pop() - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred50_Java5990) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred50_Java5992) - self.formalParameterList() - - self._state.following.pop() - # Java.g:370:48: ( arrayDeclaratorList )? - alt182 = 2 - LA182_0 = self.input.LA(1) - - if (LA182_0 == LBRACK) : - alt182 = 1 - if alt182 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred50_Java5994) - self.arrayDeclaratorList() - - self._state.following.pop() - - - - # Java.g:370:69: ( throwsClause )? - alt183 = 2 - LA183_0 = self.input.LA(1) - - if (LA183_0 == THROWS) : - alt183 = 1 - if alt183 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred50_Java5997) - self.throwsClause() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred50_Java6000) - - - elif alt185 == 2: - # Java.g:372:17: VOID IDENT formalParameterList ( throwsClause )? SEMI - pass - self.match(self.input, VOID, self.FOLLOW_VOID_in_synpred50_Java6058) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred50_Java6060) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred50_Java6062) - self.formalParameterList() - - self._state.following.pop() - # Java.g:372:48: ( throwsClause )? - alt184 = 2 - LA184_0 = self.input.LA(1) - - if (LA184_0 == THROWS) : - alt184 = 1 - if alt184 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred50_Java6064) - self.throwsClause() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred50_Java6067) - - - - - - # $ANTLR end "synpred50_Java" - - - - # $ANTLR start "synpred51_Java" - def synpred51_Java_fragment(self, ): - # Java.g:368:9: ( modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) | type interfaceFieldDeclaratorList SEMI ) ) - # Java.g:368:9: modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) | type interfaceFieldDeclaratorList SEMI ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_synpred51_Java5955) - self.modifierList() - - self._state.following.pop() - # Java.g:369:9: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) | type interfaceFieldDeclaratorList SEMI ) - alt191 = 2 - LA191 = self.input.LA(1) - if LA191 == LESS_THAN or LA191 == VOID: - alt191 = 1 - elif LA191 == BOOLEAN or LA191 == BYTE or LA191 == CHAR or LA191 == DOUBLE or LA191 == FLOAT or LA191 == INT or LA191 == LONG or LA191 == SHORT: - LA191_2 = self.input.LA(2) - - if (self.synpred50_Java()) : - alt191 = 1 - elif (True) : - alt191 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 191, 2, self.input) - - raise nvae - - elif LA191 == IDENT: - LA191_3 = self.input.LA(2) - - if (self.synpred50_Java()) : - alt191 = 1 - elif (True) : - alt191 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 191, 3, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 191, 0, self.input) - - raise nvae - - if alt191 == 1: - # Java.g:369:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) - pass - # Java.g:369:13: ( genericTypeParameterList )? - alt186 = 2 - LA186_0 = self.input.LA(1) - - if (LA186_0 == LESS_THAN) : - alt186 = 1 - if alt186 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_synpred51_Java5969) - self.genericTypeParameterList() - - self._state.following.pop() - - - - # Java.g:370:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) - alt190 = 2 - LA190_0 = self.input.LA(1) - - if (LA190_0 == BOOLEAN or LA190_0 == BYTE or LA190_0 == CHAR or LA190_0 == DOUBLE or LA190_0 == FLOAT or (INT <= LA190_0 <= LONG) or LA190_0 == SHORT or LA190_0 == IDENT) : - alt190 = 1 - elif (LA190_0 == VOID) : - alt190 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 190, 0, self.input) - - raise nvae - - if alt190 == 1: - # Java.g:370:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI - pass - self._state.following.append(self.FOLLOW_type_in_synpred51_Java5988) - self.type() - - self._state.following.pop() - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred51_Java5990) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred51_Java5992) - self.formalParameterList() - - self._state.following.pop() - # Java.g:370:48: ( arrayDeclaratorList )? - alt187 = 2 - LA187_0 = self.input.LA(1) - - if (LA187_0 == LBRACK) : - alt187 = 1 - if alt187 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred51_Java5994) - self.arrayDeclaratorList() - - self._state.following.pop() - - - - # Java.g:370:69: ( throwsClause )? - alt188 = 2 - LA188_0 = self.input.LA(1) - - if (LA188_0 == THROWS) : - alt188 = 1 - if alt188 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred51_Java5997) - self.throwsClause() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred51_Java6000) - - - elif alt190 == 2: - # Java.g:372:17: VOID IDENT formalParameterList ( throwsClause )? SEMI - pass - self.match(self.input, VOID, self.FOLLOW_VOID_in_synpred51_Java6058) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred51_Java6060) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred51_Java6062) - self.formalParameterList() - - self._state.following.pop() - # Java.g:372:48: ( throwsClause )? - alt189 = 2 - LA189_0 = self.input.LA(1) - - if (LA189_0 == THROWS) : - alt189 = 1 - if alt189 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred51_Java6064) - self.throwsClause() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred51_Java6067) - - - - - - elif alt191 == 2: - # Java.g:375:13: type interfaceFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_type_in_synpred51_Java6130) - self.type() - - self._state.following.pop() - self._state.following.append(self.FOLLOW_interfaceFieldDeclaratorList_in_synpred51_Java6132) - self.interfaceFieldDeclaratorList() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred51_Java6134) - - - - - - # $ANTLR end "synpred51_Java" - - - - # $ANTLR start "synpred52_Java" - def synpred52_Java_fragment(self, ): - # Java.g:378:9: ( typeDeclaration ) - # Java.g:378:9: typeDeclaration - pass - self._state.following.append(self.FOLLOW_typeDeclaration_in_synpred52_Java6179) - self.typeDeclaration() - - self._state.following.pop() - - - # $ANTLR end "synpred52_Java" - - - - # $ANTLR start "synpred58_Java" - def synpred58_Java_fragment(self, ): - # Java.g:417:9: ( arrayDeclarator ) - # Java.g:417:9: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_synpred58_Java6473) - self.arrayDeclarator() - - self._state.following.pop() - - - # $ANTLR end "synpred58_Java" - - - - # $ANTLR start "synpred76_Java" - def synpred76_Java_fragment(self, ): - # Java.g:466:23: ( arrayDeclaratorList ) - # Java.g:466:23: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred76_Java6860) - self.arrayDeclaratorList() - - self._state.following.pop() - - - # $ANTLR end "synpred76_Java" - - - - # $ANTLR start "synpred77_Java" - def synpred77_Java_fragment(self, ): - # Java.g:471:28: ( arrayDeclaratorList ) - # Java.g:471:28: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred77_Java6903) - self.arrayDeclaratorList() - - self._state.following.pop() - - - # $ANTLR end "synpred77_Java" - - - - # $ANTLR start "synpred79_Java" - def synpred79_Java_fragment(self, ): - # Java.g:481:20: ( DOT typeIdent ) - # Java.g:481:20: DOT typeIdent - pass - self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred79_Java6988) - self._state.following.append(self.FOLLOW_typeIdent_in_synpred79_Java6990) - self.typeIdent() - - self._state.following.pop() - - - # $ANTLR end "synpred79_Java" - - - - # $ANTLR start "synpred90_Java" - def synpred90_Java_fragment(self, ): - # Java.g:510:40: ( COMMA genericTypeArgument ) - # Java.g:510:40: COMMA genericTypeArgument - pass - self.match(self.input, COMMA, self.FOLLOW_COMMA_in_synpred90_Java7213) - self._state.following.append(self.FOLLOW_genericTypeArgument_in_synpred90_Java7215) - self.genericTypeArgument() - - self._state.following.pop() - - - # $ANTLR end "synpred90_Java" - - - - # $ANTLR start "synpred92_Java" - def synpred92_Java_fragment(self, ): - # Java.g:516:18: ( genericWildcardBoundType ) - # Java.g:516:18: genericWildcardBoundType - pass - self._state.following.append(self.FOLLOW_genericWildcardBoundType_in_synpred92_Java7269) - self.genericWildcardBoundType() - - self._state.following.pop() - - - # $ANTLR end "synpred92_Java" - - - - # $ANTLR start "synpred97_Java" - def synpred97_Java_fragment(self, ): - # Java.g:541:42: ( COMMA formalParameterStandardDecl ) - # Java.g:541:42: COMMA formalParameterStandardDecl - pass - self.match(self.input, COMMA, self.FOLLOW_COMMA_in_synpred97_Java7470) - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_synpred97_Java7472) - self.formalParameterStandardDecl() - - self._state.following.pop() - - - # $ANTLR end "synpred97_Java" - - - - # $ANTLR start "synpred99_Java" - def synpred99_Java_fragment(self, ): - # Java.g:541:13: ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? ) - # Java.g:541:13: formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? - pass - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_synpred99_Java7467) - self.formalParameterStandardDecl() - - self._state.following.pop() - # Java.g:541:41: ( COMMA formalParameterStandardDecl )* - while True: #loop194 - alt194 = 2 - LA194_0 = self.input.LA(1) - - if (LA194_0 == COMMA) : - LA194_1 = self.input.LA(2) - - if (self.synpred97_Java()) : - alt194 = 1 - - - - - if alt194 == 1: - # Java.g:541:42: COMMA formalParameterStandardDecl - pass - self.match(self.input, COMMA, self.FOLLOW_COMMA_in_synpred99_Java7470) - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_synpred99_Java7472) - self.formalParameterStandardDecl() - - self._state.following.pop() - - - else: - break #loop194 - # Java.g:541:78: ( COMMA formalParameterVarArgDecl )? - alt195 = 2 - LA195_0 = self.input.LA(1) - - if (LA195_0 == COMMA) : - alt195 = 1 - if alt195 == 1: - # Java.g:541:79: COMMA formalParameterVarArgDecl - pass - self.match(self.input, COMMA, self.FOLLOW_COMMA_in_synpred99_Java7477) - self._state.following.append(self.FOLLOW_formalParameterVarArgDecl_in_synpred99_Java7479) - self.formalParameterVarArgDecl() - - self._state.following.pop() - - - - - - # $ANTLR end "synpred99_Java" - - - - # $ANTLR start "synpred100_Java" - def synpred100_Java_fragment(self, ): - # Java.g:544:13: ( formalParameterVarArgDecl ) - # Java.g:544:13: formalParameterVarArgDecl - pass - self._state.following.append(self.FOLLOW_formalParameterVarArgDecl_in_synpred100_Java7534) - self.formalParameterVarArgDecl() - - self._state.following.pop() - - - # $ANTLR end "synpred100_Java" - - - - # $ANTLR start "synpred101_Java" - def synpred101_Java_fragment(self, ): - # Java.g:565:13: ( DOT ident= IDENT ) - # Java.g:565:13: DOT ident= IDENT - pass - self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred101_Java7765) - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred101_Java7769) - - - # $ANTLR end "synpred101_Java" - - - - # $ANTLR start "synpred102_Java" - def synpred102_Java_fragment(self, ): - # Java.g:572:9: ( annotation ) - # Java.g:572:9: annotation - pass - self._state.following.append(self.FOLLOW_annotation_in_synpred102_Java7818) - self.annotation() - - self._state.following.pop() - - - # $ANTLR end "synpred102_Java" - - - - # $ANTLR start "synpred114_Java" - def synpred114_Java_fragment(self, ): - # Java.g:623:9: ( modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI | classFieldDeclaratorList SEMI ) ) - # Java.g:623:9: modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI | classFieldDeclaratorList SEMI ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_synpred114_Java8240) - self.modifierList() - - self._state.following.pop() - self._state.following.append(self.FOLLOW_type_in_synpred114_Java8242) - self.type() - - self._state.following.pop() - # Java.g:624:9: ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI | classFieldDeclaratorList SEMI ) - alt200 = 2 - LA200_0 = self.input.LA(1) - - if (LA200_0 == IDENT) : - LA200_1 = self.input.LA(2) - - if (LA200_1 == LPAREN) : - alt200 = 1 - elif (LA200_1 == ASSIGN or LA200_1 == COMMA or LA200_1 == LBRACK or LA200_1 == SEMI) : - alt200 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 200, 1, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 200, 0, self.input) - - raise nvae - - if alt200 == 1: - # Java.g:624:13: IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI - pass - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred114_Java8256) - self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_synpred114_Java8258) - self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_synpred114_Java8260) - # Java.g:624:33: ( annotationDefaultValue )? - alt199 = 2 - LA199_0 = self.input.LA(1) - - if (LA199_0 == DEFAULT) : - alt199 = 1 - if alt199 == 1: - # Java.g:0:0: annotationDefaultValue - pass - self._state.following.append(self.FOLLOW_annotationDefaultValue_in_synpred114_Java8262) - self.annotationDefaultValue() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred114_Java8265) - - - elif alt200 == 2: - # Java.g:626:13: classFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_synpred114_Java8307) - self.classFieldDeclaratorList() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred114_Java8309) - - - - - - # $ANTLR end "synpred114_Java" - - - - # $ANTLR start "synpred116_Java" - def synpred116_Java_fragment(self, ): - # Java.g:644:9: ( localVariableDeclaration SEMI ) - # Java.g:644:9: localVariableDeclaration SEMI - pass - self._state.following.append(self.FOLLOW_localVariableDeclaration_in_synpred116_Java8440) - self.localVariableDeclaration() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred116_Java8442) - - - # $ANTLR end "synpred116_Java" - - - - # $ANTLR start "synpred117_Java" - def synpred117_Java_fragment(self, ): - # Java.g:645:9: ( typeDeclaration ) - # Java.g:645:9: typeDeclaration - pass - self._state.following.append(self.FOLLOW_typeDeclaration_in_synpred117_Java8453) - self.typeDeclaration() - - self._state.following.pop() - - - # $ANTLR end "synpred117_Java" - - - - # $ANTLR start "synpred121_Java" - def synpred121_Java_fragment(self, ): - # Java.g:662:13: ( ELSE elseStat= statement ) - # Java.g:662:13: ELSE elseStat= statement - pass - self.match(self.input, ELSE, self.FOLLOW_ELSE_in_synpred121_Java8733) - self._state.following.append(self.FOLLOW_statement_in_synpred121_Java8737) - elseStat = self.statement() - - self._state.following.pop() - - - # $ANTLR end "synpred121_Java" - - - - # $ANTLR start "synpred123_Java" - def synpred123_Java_fragment(self, ): - # Java.g:666:13: ( forInit SEMI forCondition SEMI forUpdater RPAREN statement ) - # Java.g:666:13: forInit SEMI forCondition SEMI forUpdater RPAREN statement - pass - self._state.following.append(self.FOLLOW_forInit_in_synpred123_Java8916) - self.forInit() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred123_Java8918) - self._state.following.append(self.FOLLOW_forCondition_in_synpred123_Java8920) - self.forCondition() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred123_Java8922) - self._state.following.append(self.FOLLOW_forUpdater_in_synpred123_Java8924) - self.forUpdater() - - self._state.following.pop() - self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_synpred123_Java8926) - self._state.following.append(self.FOLLOW_statement_in_synpred123_Java8928) - self.statement() - - self._state.following.pop() - - - # $ANTLR end "synpred123_Java" - - - - # $ANTLR start "synpred130_Java" - def synpred130_Java_fragment(self, ): - # Java.g:673:47: ( switchBlockLabels ) - # Java.g:673:47: switchBlockLabels - pass - self._state.following.append(self.FOLLOW_switchBlockLabels_in_synpred130_Java9251) - self.switchBlockLabels() - - self._state.following.pop() - - - # $ANTLR end "synpred130_Java" - - - - # $ANTLR start "synpred143_Java" - def synpred143_Java_fragment(self, ): - # Java.g:702:11: (c0= switchCaseLabels ) - # Java.g:702:11: c0= switchCaseLabels - pass - self._state.following.append(self.FOLLOW_switchCaseLabels_in_synpred143_Java9839) - c0 = self.switchCaseLabels() - - self._state.following.pop() - - - # $ANTLR end "synpred143_Java" - - - - # $ANTLR start "synpred145_Java" - def synpred145_Java_fragment(self, ): - # Java.g:702:52: (c1= switchCaseLabels ) - # Java.g:702:52: c1= switchCaseLabels - pass - self._state.following.append(self.FOLLOW_switchCaseLabels_in_synpred145_Java9847) - c1 = self.switchCaseLabels() - - self._state.following.pop() - - - # $ANTLR end "synpred145_Java" - - - - # $ANTLR start "synpred146_Java" - def synpred146_Java_fragment(self, ): - # Java.g:707:9: ( switchCaseLabel ) - # Java.g:707:9: switchCaseLabel - pass - self._state.following.append(self.FOLLOW_switchCaseLabel_in_synpred146_Java9893) - self.switchCaseLabel() - - self._state.following.pop() - - - # $ANTLR end "synpred146_Java" - - - - # $ANTLR start "synpred149_Java" - def synpred149_Java_fragment(self, ): - # Java.g:719:9: ( localVariableDeclaration ) - # Java.g:719:9: localVariableDeclaration - pass - self._state.following.append(self.FOLLOW_localVariableDeclaration_in_synpred149_Java9967) - self.localVariableDeclaration() - - self._state.following.pop() - - - # $ANTLR end "synpred149_Java" - - - - # $ANTLR start "synpred150_Java" - def synpred150_Java_fragment(self, ): - # Java.g:720:9: ( expressionList ) - # Java.g:720:9: expressionList - pass - self._state.following.append(self.FOLLOW_expressionList_in_synpred150_Java9989) - self.expressionList() - - self._state.following.pop() - - - # $ANTLR end "synpred150_Java" - - - - # $ANTLR start "synpred193_Java" - def synpred193_Java_fragment(self, ): - # Java.g:856:9: ( LPAREN type RPAREN unaryExpression ) - # Java.g:856:9: LPAREN type RPAREN unaryExpression - pass - self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_synpred193_Java11492) - self._state.following.append(self.FOLLOW_type_in_synpred193_Java11494) - self.type() - - self._state.following.pop() - self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_synpred193_Java11496) - self._state.following.append(self.FOLLOW_unaryExpression_in_synpred193_Java11498) - self.unaryExpression() - - self._state.following.pop() - - - # $ANTLR end "synpred193_Java" - - - - # $ANTLR start "synpred221_Java" - def synpred221_Java_fragment(self, ): - # Java.g:924:13: ( ( arrayDeclarator )+ ( DOT CLASS ) ) - # Java.g:924:13: ( arrayDeclarator )+ ( DOT CLASS ) - pass - # Java.g:924:13: ( arrayDeclarator )+ - cnt224 = 0 - while True: #loop224 - alt224 = 2 - LA224_0 = self.input.LA(1) - - if (LA224_0 == LBRACK) : - alt224 = 1 - - - if alt224 == 1: - # Java.g:924:17: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_synpred221_Java13349) - self.arrayDeclarator() - - self._state.following.pop() - - - else: - if cnt224 >= 1: - break #loop224 - - if self._state.backtracking > 0: - raise BacktrackingFailed - - eee = EarlyExitException(224, self.input) - raise eee - - cnt224 += 1 - # Java.g:926:13: ( DOT CLASS ) - # Java.g:926:17: DOT CLASS - pass - self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred221_Java13416) - self.match(self.input, CLASS, self.FOLLOW_CLASS_in_synpred221_Java13418) - - - - - - # $ANTLR end "synpred221_Java" - - - - # $ANTLR start "synpred229_Java" - def synpred229_Java_fragment(self, ): - # Java.g:929:13: (outerDot= DOT ( CLASS | genericTypeArgumentListSimplified (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) | THIS | Super= SUPER arguments | innerNewExpression ) ) - # Java.g:929:13: outerDot= DOT ( CLASS | genericTypeArgumentListSimplified (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) | THIS | Super= SUPER arguments | innerNewExpression ) - pass - outerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred229_Java13549) - # Java.g:930:13: ( CLASS | genericTypeArgumentListSimplified (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) | THIS | Super= SUPER arguments | innerNewExpression ) - alt227 = 5 - LA227 = self.input.LA(1) - if LA227 == CLASS: - alt227 = 1 - elif LA227 == LESS_THAN: - alt227 = 2 - elif LA227 == THIS: - alt227 = 3 - elif LA227 == SUPER: - alt227 = 4 - elif LA227 == NEW: - alt227 = 5 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 227, 0, self.input) - - raise nvae - - if alt227 == 1: - # Java.g:930:17: CLASS - pass - self.match(self.input, CLASS, self.FOLLOW_CLASS_in_synpred229_Java13567) - - - elif alt227 == 2: - # Java.g:931:17: genericTypeArgumentListSimplified (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_synpred229_Java13630) - self.genericTypeArgumentListSimplified() - - self._state.following.pop() - # Java.g:932:17: (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) - alt226 = 3 - LA226_0 = self.input.LA(1) - - if (LA226_0 == SUPER) : - LA226_1 = self.input.LA(2) - - if (LA226_1 == DOT) : - alt226 = 2 - elif (LA226_1 == LPAREN) : - alt226 = 1 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 226, 1, self.input) - - raise nvae - - elif (LA226_0 == IDENT) : - alt226 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 226, 0, self.input) - - raise nvae - - if alt226 == 1: - # Java.g:932:21: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_synpred229_Java13654) - self._state.following.append(self.FOLLOW_arguments_in_synpred229_Java13656) - self.arguments() - - self._state.following.pop() - - - elif alt226 == 2: - # Java.g:933:21: SUPER innerDot= DOT IDENT arguments - pass - self.match(self.input, SUPER, self.FOLLOW_SUPER_in_synpred229_Java13706) - innerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred229_Java13710) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred229_Java13712) - self._state.following.append(self.FOLLOW_arguments_in_synpred229_Java13714) - self.arguments() - - self._state.following.pop() - - - elif alt226 == 3: - # Java.g:934:21: IDENT arguments - pass - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred229_Java13764) - self._state.following.append(self.FOLLOW_arguments_in_synpred229_Java13766) - self.arguments() - - self._state.following.pop() - - - - - - elif alt227 == 3: - # Java.g:936:17: THIS - pass - self.match(self.input, THIS, self.FOLLOW_THIS_in_synpred229_Java13841) - - - elif alt227 == 4: - # Java.g:937:17: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_synpred229_Java13907) - self._state.following.append(self.FOLLOW_arguments_in_synpred229_Java13909) - self.arguments() - - self._state.following.pop() - - - elif alt227 == 5: - # Java.g:938:17: innerNewExpression - pass - self._state.following.append(self.FOLLOW_innerNewExpression_in_synpred229_Java13957) - self.innerNewExpression() - - self._state.following.pop() - - - - - - # $ANTLR end "synpred229_Java" - - - - # $ANTLR start "synpred237_Java" - def synpred237_Java_fragment(self, ): - # Java.g:963:37: ( LBRACK expression RBRACK ) - # Java.g:963:37: LBRACK expression RBRACK - pass - self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_synpred237_Java14352) - self._state.following.append(self.FOLLOW_expression_in_synpred237_Java14355) - self.expression() - - self._state.following.pop() - self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_synpred237_Java14357) - - - # $ANTLR end "synpred237_Java" - - - - - # Delegated rules - - def synpred193_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred193_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred43_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred43_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred121_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred121_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred76_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred76_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred221_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred221_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred229_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred229_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred114_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred114_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred116_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred116_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred97_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred97_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred102_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred102_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred117_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred117_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred79_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred79_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred101_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred101_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred130_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred130_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred16_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred16_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred42_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred42_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred145_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred145_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred143_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred143_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred77_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred77_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred51_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred51_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred100_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred100_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred52_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred52_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred15_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred15_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred123_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred123_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred32_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred32_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred149_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred149_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred17_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred17_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred92_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred92_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred90_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred90_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred150_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred150_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred58_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred58_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred50_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred50_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred14_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred14_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred99_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred99_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred146_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred146_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred237_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred237_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred44_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred44_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - - - # lookup tables for DFA #36 - - DFA36_eot = DFA.unpack( - u"\27\uffff" - ) - - DFA36_eof = DFA.unpack( - u"\27\uffff" - ) - - DFA36_min = DFA.unpack( - u"\1\7\1\uffff\14\0\11\uffff" - ) - - DFA36_max = DFA.unpack( - u"\1\u00a4\1\uffff\14\0\11\uffff" - ) - - DFA36_accept = DFA.unpack( - u"\1\uffff\1\1\14\uffff\1\3\3\uffff\1\4\2\uffff\1\5\1\2" - ) - - DFA36_special = DFA.unpack( - u"\2\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\11" - u"\uffff" - ) - - - DFA36_transition = [ - DFA.unpack(u"\1\15\17\uffff\1\1\1\uffff\1\16\22\uffff\1\25\10\uffff" - u"\1\6\1\uffff\1\16\1\uffff\1\16\2\uffff\1\16\1\22\3\uffff\1\16\1" - u"\uffff\1\22\2\uffff\1\14\1\uffff\1\16\4\uffff\1\22\1\uffff\2\16" - u"\1\7\3\uffff\1\5\1\4\1\3\1\uffff\1\16\1\2\1\13\2\uffff\1\10\3\uffff" - u"\1\11\2\uffff\1\16\1\12\75\uffff\1\16"), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #36 - - class DFA36(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA36_2 = input.LA(1) - - - index36_2 = input.index() - input.rewind() - s = -1 - if (self.synpred32_Java()): - s = 22 - - elif (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_2) - if s >= 0: - return s - elif s == 1: - LA36_3 = input.LA(1) - - - index36_3 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_3) - if s >= 0: - return s - elif s == 2: - LA36_4 = input.LA(1) - - - index36_4 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_4) - if s >= 0: - return s - elif s == 3: - LA36_5 = input.LA(1) - - - index36_5 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_5) - if s >= 0: - return s - elif s == 4: - LA36_6 = input.LA(1) - - - index36_6 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_6) - if s >= 0: - return s - elif s == 5: - LA36_7 = input.LA(1) - - - index36_7 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_7) - if s >= 0: - return s - elif s == 6: - LA36_8 = input.LA(1) - - - index36_8 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_8) - if s >= 0: - return s - elif s == 7: - LA36_9 = input.LA(1) - - - index36_9 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_9) - if s >= 0: - return s - elif s == 8: - LA36_10 = input.LA(1) - - - index36_10 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_10) - if s >= 0: - return s - elif s == 9: - LA36_11 = input.LA(1) - - - index36_11 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_11) - if s >= 0: - return s - elif s == 10: - LA36_12 = input.LA(1) - - - index36_12 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_12) - if s >= 0: - return s - elif s == 11: - LA36_13 = input.LA(1) - - - index36_13 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_13) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 36, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #43 - - DFA43_eot = DFA.unpack( - u"\25\uffff" - ) - - DFA43_eof = DFA.unpack( - u"\25\uffff" - ) - - DFA43_min = DFA.unpack( - u"\1\7\14\0\10\uffff" - ) - - DFA43_max = DFA.unpack( - u"\1\u00a4\14\0\10\uffff" - ) - - DFA43_accept = DFA.unpack( - u"\15\uffff\1\1\3\uffff\1\2\2\uffff\1\3" - ) - - DFA43_special = DFA.unpack( - u"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\10" - u"\uffff" - ) - - - DFA43_transition = [ - DFA.unpack(u"\1\14\21\uffff\1\15\22\uffff\1\24\10\uffff\1\5\1\uffff" - u"\1\15\1\uffff\1\15\2\uffff\1\15\1\21\3\uffff\1\15\1\uffff\1\21" - u"\2\uffff\1\13\1\uffff\1\15\4\uffff\1\21\1\uffff\2\15\1\6\3\uffff" - u"\1\3\1\2\1\1\1\uffff\1\15\1\4\1\12\2\uffff\1\7\3\uffff\1\10\2\uffff" - u"\1\15\1\11\75\uffff\1\15"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #43 - - class DFA43(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA43_1 = input.LA(1) - - - index43_1 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_1) - if s >= 0: - return s - elif s == 1: - LA43_2 = input.LA(1) - - - index43_2 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_2) - if s >= 0: - return s - elif s == 2: - LA43_3 = input.LA(1) - - - index43_3 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_3) - if s >= 0: - return s - elif s == 3: - LA43_4 = input.LA(1) - - - index43_4 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_4) - if s >= 0: - return s - elif s == 4: - LA43_5 = input.LA(1) - - - index43_5 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_5) - if s >= 0: - return s - elif s == 5: - LA43_6 = input.LA(1) - - - index43_6 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_6) - if s >= 0: - return s - elif s == 6: - LA43_7 = input.LA(1) - - - index43_7 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_7) - if s >= 0: - return s - elif s == 7: - LA43_8 = input.LA(1) - - - index43_8 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_8) - if s >= 0: - return s - elif s == 8: - LA43_9 = input.LA(1) - - - index43_9 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_9) - if s >= 0: - return s - elif s == 9: - LA43_10 = input.LA(1) - - - index43_10 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_10) - if s >= 0: - return s - elif s == 10: - LA43_11 = input.LA(1) - - - index43_11 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_11) - if s >= 0: - return s - elif s == 11: - LA43_12 = input.LA(1) - - - index43_12 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_12) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 43, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #86 - - DFA86_eot = DFA.unpack( - u"\22\uffff" - ) - - DFA86_eof = DFA.unpack( - u"\22\uffff" - ) - - DFA86_min = DFA.unpack( - u"\1\7\14\0\5\uffff" - ) - - DFA86_max = DFA.unpack( - u"\1\u00a4\14\0\5\uffff" - ) - - DFA86_accept = DFA.unpack( - u"\15\uffff\1\1\1\uffff\1\2\2\uffff" - ) - - DFA86_special = DFA.unpack( - u"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\5" - u"\uffff" - ) - - - DFA86_transition = [ - DFA.unpack(u"\1\14\55\uffff\1\5\1\uffff\1\15\1\uffff\1\15\2\uffff" - u"\1\15\1\17\3\uffff\1\15\1\uffff\1\17\2\uffff\1\13\1\uffff\1\15" - u"\4\uffff\1\17\1\uffff\2\15\1\6\3\uffff\1\3\1\2\1\1\1\uffff\1\15" - u"\1\4\1\12\2\uffff\1\7\3\uffff\1\10\3\uffff\1\11\75\uffff\1\15"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #86 - - class DFA86(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA86_1 = input.LA(1) - - - index86_1 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_1) - if s >= 0: - return s - elif s == 1: - LA86_2 = input.LA(1) - - - index86_2 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_2) - if s >= 0: - return s - elif s == 2: - LA86_3 = input.LA(1) - - - index86_3 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_3) - if s >= 0: - return s - elif s == 3: - LA86_4 = input.LA(1) - - - index86_4 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_4) - if s >= 0: - return s - elif s == 4: - LA86_5 = input.LA(1) - - - index86_5 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_5) - if s >= 0: - return s - elif s == 5: - LA86_6 = input.LA(1) - - - index86_6 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_6) - if s >= 0: - return s - elif s == 6: - LA86_7 = input.LA(1) - - - index86_7 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_7) - if s >= 0: - return s - elif s == 7: - LA86_8 = input.LA(1) - - - index86_8 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_8) - if s >= 0: - return s - elif s == 8: - LA86_9 = input.LA(1) - - - index86_9 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_9) - if s >= 0: - return s - elif s == 9: - LA86_10 = input.LA(1) - - - index86_10 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_10) - if s >= 0: - return s - elif s == 10: - LA86_11 = input.LA(1) - - - index86_11 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_11) - if s >= 0: - return s - elif s == 11: - LA86_12 = input.LA(1) - - - index86_12 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_12) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 86, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #88 - - DFA88_eot = DFA.unpack( - u"\55\uffff" - ) - - DFA88_eof = DFA.unpack( - u"\55\uffff" - ) - - DFA88_min = DFA.unpack( - u"\1\7\4\0\6\uffff\1\0\41\uffff" - ) - - DFA88_max = DFA.unpack( - u"\1\u00aa\4\0\6\uffff\1\0\41\uffff" - ) - - DFA88_accept = DFA.unpack( - u"\5\uffff\1\2\14\uffff\1\3\31\uffff\1\1" - ) - - DFA88_special = DFA.unpack( - u"\1\uffff\1\0\1\1\1\2\1\3\6\uffff\1\4\41\uffff" - ) - - - DFA88_transition = [ - DFA.unpack(u"\1\2\4\uffff\1\22\10\uffff\1\22\1\uffff\1\22\1\uffff" - u"\1\22\1\uffff\1\22\1\uffff\2\22\3\uffff\1\22\3\uffff\1\22\5\uffff" - u"\1\22\10\uffff\1\5\1\22\1\3\1\22\1\3\2\uffff\1\3\1\5\1\22\1\uffff" - u"\1\22\1\3\1\uffff\1\5\1\uffff\1\22\1\1\1\uffff\1\3\2\22\2\uffff" - u"\1\5\1\uffff\2\3\1\5\2\22\1\uffff\3\5\1\22\1\3\2\5\2\22\1\13\2" - u"\22\1\uffff\1\5\3\22\1\5\1\22\74\uffff\1\4\6\22"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #88 - - class DFA88(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA88_1 = input.LA(1) - - - index88_1 = input.index() - input.rewind() - s = -1 - if (self.synpred116_Java()): - s = 44 - - elif (self.synpred117_Java()): - s = 5 - - - input.seek(index88_1) - if s >= 0: - return s - elif s == 1: - LA88_2 = input.LA(1) - - - index88_2 = input.index() - input.rewind() - s = -1 - if (self.synpred116_Java()): - s = 44 - - elif (self.synpred117_Java()): - s = 5 - - - input.seek(index88_2) - if s >= 0: - return s - elif s == 2: - LA88_3 = input.LA(1) - - - index88_3 = input.index() - input.rewind() - s = -1 - if (self.synpred116_Java()): - s = 44 - - elif (True): - s = 18 - - - input.seek(index88_3) - if s >= 0: - return s - elif s == 3: - LA88_4 = input.LA(1) - - - index88_4 = input.index() - input.rewind() - s = -1 - if (self.synpred116_Java()): - s = 44 - - elif (True): - s = 18 - - - input.seek(index88_4) - if s >= 0: - return s - elif s == 4: - LA88_11 = input.LA(1) - - - index88_11 = input.index() - input.rewind() - s = -1 - if (self.synpred117_Java()): - s = 5 - - elif (True): - s = 18 - - - input.seek(index88_11) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 88, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #98 - - DFA98_eot = DFA.unpack( - u"\22\uffff" - ) - - DFA98_eof = DFA.unpack( - u"\22\uffff" - ) - - DFA98_min = DFA.unpack( - u"\1\14\15\uffff\1\4\3\uffff" - ) - - DFA98_max = DFA.unpack( - u"\1\u00aa\15\uffff\1\114\3\uffff" - ) - - DFA98_accept = DFA.unpack( - u"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1" - u"\15\1\uffff\1\17\1\20\1\16" - ) - - DFA98_special = DFA.unpack( - u"\22\uffff" - ) - - - DFA98_transition = [ - DFA.unpack(u"\1\17\10\uffff\1\17\1\uffff\1\1\1\uffff\1\17\1\uffff" - u"\1\17\1\uffff\2\17\3\uffff\1\17\3\uffff\1\17\5\uffff\1\20\11\uffff" - u"\1\2\1\17\1\14\1\17\2\uffff\1\17\1\uffff\1\15\1\uffff\1\6\1\17" - u"\3\uffff\1\17\2\uffff\1\17\1\4\1\3\4\uffff\2\17\1\uffff\2\17\4" - u"\uffff\1\12\1\17\2\uffff\1\17\1\10\1\11\1\17\1\13\2\uffff\1\17" - u"\1\7\1\17\1\uffff\1\5\74\uffff\1\16\6\17"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\3\17\1\uffff\2\17\1\21\1\uffff\4\17\2\uffff\5\17\1" - u"\uffff\3\17\1\uffff\6\17\1\uffff\6\17\3\uffff\11\17\27\uffff\1" - u"\17"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #98 - - class DFA98(DFA): - pass - - - # lookup tables for DFA #91 - - DFA91_eot = DFA.unpack( - u"\24\uffff" - ) - - DFA91_eof = DFA.unpack( - u"\24\uffff" - ) - - DFA91_min = DFA.unpack( - u"\1\7\4\0\17\uffff" - ) - - DFA91_max = DFA.unpack( - u"\1\u00aa\4\0\17\uffff" - ) - - DFA91_accept = DFA.unpack( - u"\5\uffff\1\1\15\uffff\1\2" - ) - - DFA91_special = DFA.unpack( - u"\1\uffff\1\0\1\1\1\2\1\3\17\uffff" - ) - - - DFA91_transition = [ - DFA.unpack(u"\1\2\4\uffff\1\5\10\uffff\1\5\3\uffff\1\5\1\uffff\1" - u"\5\1\uffff\2\5\3\uffff\1\5\3\uffff\1\5\5\uffff\1\5\12\uffff\1\3" - u"\1\uffff\1\3\2\uffff\1\3\4\uffff\1\3\3\uffff\1\5\1\1\1\uffff\1" - u"\3\6\uffff\2\3\1\uffff\2\5\5\uffff\1\3\2\uffff\1\5\2\uffff\1\5" - u"\3\uffff\1\5\1\uffff\1\5\76\uffff\1\4\6\5"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #91 - - class DFA91(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA91_1 = input.LA(1) - - - index91_1 = input.index() - input.rewind() - s = -1 - if (self.synpred123_Java()): - s = 5 - - elif (True): - s = 19 - - - input.seek(index91_1) - if s >= 0: - return s - elif s == 1: - LA91_2 = input.LA(1) - - - index91_2 = input.index() - input.rewind() - s = -1 - if (self.synpred123_Java()): - s = 5 - - elif (True): - s = 19 - - - input.seek(index91_2) - if s >= 0: - return s - elif s == 2: - LA91_3 = input.LA(1) - - - index91_3 = input.index() - input.rewind() - s = -1 - if (self.synpred123_Java()): - s = 5 - - elif (True): - s = 19 - - - input.seek(index91_3) - if s >= 0: - return s - elif s == 3: - LA91_4 = input.LA(1) - - - index91_4 = input.index() - input.rewind() - s = -1 - if (self.synpred123_Java()): - s = 5 - - elif (True): - s = 19 - - - input.seek(index91_4) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 91, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #106 - - DFA106_eot = DFA.unpack( - u"\23\uffff" - ) - - DFA106_eof = DFA.unpack( - u"\23\uffff" - ) - - DFA106_min = DFA.unpack( - u"\1\7\2\uffff\2\0\16\uffff" - ) - - DFA106_max = DFA.unpack( - u"\1\u00aa\2\uffff\2\0\16\uffff" - ) - - DFA106_accept = DFA.unpack( - u"\1\uffff\1\1\3\uffff\1\2\14\uffff\1\3" - ) - - DFA106_special = DFA.unpack( - u"\3\uffff\1\0\1\1\16\uffff" - ) - - - DFA106_transition = [ - DFA.unpack(u"\1\1\4\uffff\1\5\10\uffff\1\5\3\uffff\1\5\1\uffff\1" - u"\5\1\uffff\2\5\3\uffff\1\5\3\uffff\1\5\5\uffff\1\22\12\uffff\1" - u"\3\1\uffff\1\3\2\uffff\1\3\4\uffff\1\3\3\uffff\1\5\1\1\1\uffff" - u"\1\3\6\uffff\2\3\1\uffff\2\5\5\uffff\1\3\2\uffff\1\5\2\uffff\1" - u"\5\3\uffff\1\5\1\uffff\1\5\76\uffff\1\4\6\5"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #106 - - class DFA106(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA106_3 = input.LA(1) - - - index106_3 = input.index() - input.rewind() - s = -1 - if (self.synpred149_Java()): - s = 1 - - elif (self.synpred150_Java()): - s = 5 - - - input.seek(index106_3) - if s >= 0: - return s - elif s == 1: - LA106_4 = input.LA(1) - - - index106_4 = input.index() - input.rewind() - s = -1 - if (self.synpred149_Java()): - s = 1 - - elif (self.synpred150_Java()): - s = 5 - - - input.seek(index106_4) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 106, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #130 - - DFA130_eot = DFA.unpack( - u"\15\uffff" - ) - - DFA130_eof = DFA.unpack( - u"\15\uffff" - ) - - DFA130_min = DFA.unpack( - u"\1\31\2\uffff\1\0\11\uffff" - ) - - DFA130_max = DFA.unpack( - u"\1\u00aa\2\uffff\1\0\11\uffff" - ) - - DFA130_accept = DFA.unpack( - u"\1\uffff\1\1\1\2\1\uffff\1\4\7\uffff\1\3" - ) - - DFA130_special = DFA.unpack( - u"\3\uffff\1\0\11\uffff" - ) - - - DFA130_transition = [ - DFA.unpack(u"\1\4\1\uffff\1\2\1\uffff\1\3\4\uffff\1\1\24\uffff\1" - u"\4\1\uffff\1\4\2\uffff\1\4\4\uffff\1\4\3\uffff\1\4\2\uffff\1\4" - u"\6\uffff\2\4\1\uffff\2\4\5\uffff\1\4\2\uffff\1\4\2\uffff\1\4\3" - u"\uffff\1\4\1\uffff\1\4\76\uffff\7\4"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #130 - - class DFA130(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA130_3 = input.LA(1) - - - index130_3 = input.index() - input.rewind() - s = -1 - if (self.synpred193_Java()): - s = 12 - - elif (True): - s = 4 - - - input.seek(index130_3) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 130, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #142 - - DFA142_eot = DFA.unpack( - u"\14\uffff" - ) - - DFA142_eof = DFA.unpack( - u"\14\uffff" - ) - - DFA142_min = DFA.unpack( - u"\1\31\6\uffff\1\17\4\uffff" - ) - - DFA142_max = DFA.unpack( - u"\1\u00aa\6\uffff\1\35\4\uffff" - ) - - DFA142_accept = DFA.unpack( - u"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\uffff\1\11\1\12\1\10\1\7" - ) - - DFA142_special = DFA.unpack( - u"\14\uffff" - ) - - - DFA142_transition = [ - DFA.unpack(u"\1\5\3\uffff\1\1\31\uffff\1\10\1\uffff\1\10\2\uffff" - u"\1\10\4\uffff\1\10\3\uffff\1\2\2\uffff\1\10\6\uffff\2\10\1\uffff" - u"\1\3\1\2\5\uffff\1\10\2\uffff\1\7\2\uffff\1\6\3\uffff\1\2\1\uffff" - u"\1\11\76\uffff\1\4\6\2"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\12\15\uffff\1\13"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #142 - - class DFA142(DFA): - pass - - - # lookup tables for DFA #146 - - DFA146_eot = DFA.unpack( - u"\60\uffff" - ) - - DFA146_eof = DFA.unpack( - u"\1\4\57\uffff" - ) - - DFA146_min = DFA.unpack( - u"\1\4\1\0\1\uffff\1\0\54\uffff" - ) - - DFA146_max = DFA.unpack( - u"\1\114\1\0\1\uffff\1\0\54\uffff" - ) - - DFA146_accept = DFA.unpack( - u"\2\uffff\1\2\1\uffff\1\4\51\uffff\1\1\1\3" - ) - - DFA146_special = DFA.unpack( - u"\1\uffff\1\0\1\uffff\1\1\54\uffff" - ) - - - DFA146_transition = [ - DFA.unpack(u"\3\4\1\uffff\7\4\1\3\2\uffff\4\4\1\1\1\uffff\3\4\1\uffff" - u"\1\4\1\2\4\4\1\uffff\22\4\27\uffff\1\4"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #146 - - class DFA146(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA146_1 = input.LA(1) - - - index146_1 = input.index() - input.rewind() - s = -1 - if (self.synpred221_Java()): - s = 46 - - elif (True): - s = 4 - - - input.seek(index146_1) - if s >= 0: - return s - elif s == 1: - LA146_3 = input.LA(1) - - - index146_3 = input.index() - input.rewind() - s = -1 - if (self.synpred229_Java()): - s = 47 - - elif (True): - s = 4 - - - input.seek(index146_3) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 146, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #153 - - DFA153_eot = DFA.unpack( - u"\56\uffff" - ) - - DFA153_eof = DFA.unpack( - u"\1\2\55\uffff" - ) - - DFA153_min = DFA.unpack( - u"\1\4\1\0\54\uffff" - ) - - DFA153_max = DFA.unpack( - u"\1\114\1\0\54\uffff" - ) - - DFA153_accept = DFA.unpack( - u"\2\uffff\1\2\52\uffff\1\1" - ) - - DFA153_special = DFA.unpack( - u"\1\uffff\1\0\54\uffff" - ) - - - DFA153_transition = [ - DFA.unpack(u"\3\2\1\uffff\10\2\2\uffff\4\2\1\1\1\uffff\3\2\1\uffff" - u"\1\2\1\uffff\4\2\1\uffff\22\2\27\uffff\1\2"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #153 - - class DFA153(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA153_1 = input.LA(1) - - - index153_1 = input.index() - input.rewind() - s = -1 - if (self.synpred237_Java()): - s = 45 - - elif (True): - s = 2 - - - input.seek(index153_1) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 153, _s, input) - self_.error(nvae) - raise nvae - - - FOLLOW_compilationUnit_in_javaSource4461 = frozenset([1]) - FOLLOW_annotationList_in_compilationUnit4497 = frozenset([1, 7, 44, 53, 61, 67, 70, 77, 78, 81, 84, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_packageDeclaration_in_compilationUnit4507 = frozenset([1, 7, 44, 53, 61, 67, 70, 77, 78, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_importDeclaration_in_compilationUnit4518 = frozenset([1, 7, 44, 53, 61, 67, 70, 77, 78, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_typeDecls_in_compilationUnit4529 = frozenset([1, 7, 44, 53, 61, 67, 70, 77, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_typeDeclaration_in_typeDecls4549 = frozenset([1]) - FOLLOW_SEMI_in_typeDecls4559 = frozenset([1]) - FOLLOW_PACKAGE_in_packageDeclaration4579 = frozenset([164]) - FOLLOW_qualifiedIdentifier_in_packageDeclaration4582 = frozenset([44]) - FOLLOW_SEMI_in_packageDeclaration4584 = frozenset([1]) - FOLLOW_IMPORT_in_importDeclaration4604 = frozenset([90, 164]) - FOLLOW_STATIC_in_importDeclaration4607 = frozenset([164]) - FOLLOW_qualifiedIdentifier_in_importDeclaration4610 = frozenset([16, 44]) - FOLLOW_DOTSTAR_in_importDeclaration4612 = frozenset([44]) - FOLLOW_SEMI_in_importDeclaration4615 = frozenset([1]) - FOLLOW_modifierList_in_typeDeclaration4635 = frozenset([7, 53, 61, 67, 70, 77, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_classTypeDeclaration_in_typeDeclaration4650 = frozenset([1]) - FOLLOW_interfaceTypeDeclaration_in_typeDeclaration4665 = frozenset([1]) - FOLLOW_enumTypeDeclaration_in_typeDeclaration4680 = frozenset([1]) - FOLLOW_annotationTypeDeclaration_in_typeDeclaration4695 = frozenset([1]) - FOLLOW_CLASS_in_classTypeDeclaration4726 = frozenset([164]) - FOLLOW_IDENT_in_classTypeDeclaration4728 = frozenset([23, 25, 68, 75]) - FOLLOW_genericTypeParameterList_in_classTypeDeclaration4730 = frozenset([23, 25, 68, 75]) - FOLLOW_classExtendsClause_in_classTypeDeclaration4733 = frozenset([23, 25, 68, 75]) - FOLLOW_implementsClause_in_classTypeDeclaration4736 = frozenset([23, 25, 68, 75]) - FOLLOW_classBody_in_classTypeDeclaration4739 = frozenset([1]) - FOLLOW_EXTENDS_in_classExtendsClause4802 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_classExtendsClause4804 = frozenset([1]) - FOLLOW_EXTENDS_in_interfaceExtendsClause4841 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_typeList_in_interfaceExtendsClause4843 = frozenset([1]) - FOLLOW_IMPLEMENTS_in_implementsClause4880 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_typeList_in_implementsClause4882 = frozenset([1]) - FOLLOW_LESS_THAN_in_genericTypeParameterList4919 = frozenset([164]) - FOLLOW_genericTypeParameter_in_genericTypeParameterList4921 = frozenset([8, 11, 20, 47]) - FOLLOW_COMMA_in_genericTypeParameterList4924 = frozenset([164]) - FOLLOW_genericTypeParameter_in_genericTypeParameterList4926 = frozenset([8, 11, 20, 47]) - FOLLOW_genericTypeListClosing_in_genericTypeParameterList4930 = frozenset([1]) - FOLLOW_GREATER_THAN_in_genericTypeListClosing5045 = frozenset([1]) - FOLLOW_SHIFT_RIGHT_in_genericTypeListClosing5055 = frozenset([1]) - FOLLOW_BIT_SHIFT_RIGHT_in_genericTypeListClosing5065 = frozenset([1]) - FOLLOW_IDENT_in_genericTypeParameter5093 = frozenset([1, 68]) - FOLLOW_bound_in_genericTypeParameter5095 = frozenset([1]) - FOLLOW_EXTENDS_in_bound5133 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_bound5135 = frozenset([1, 4]) - FOLLOW_AND_in_bound5138 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_bound5140 = frozenset([1, 4]) - FOLLOW_ENUM_in_enumTypeDeclaration5181 = frozenset([164]) - FOLLOW_IDENT_in_enumTypeDeclaration5183 = frozenset([23, 75]) - FOLLOW_implementsClause_in_enumTypeDeclaration5185 = frozenset([23, 75]) - FOLLOW_enumBody_in_enumTypeDeclaration5188 = frozenset([1]) - FOLLOW_LCURLY_in_enumBody5231 = frozenset([7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102, 164]) - FOLLOW_enumScopeDeclarations_in_enumBody5233 = frozenset([42]) - FOLLOW_RCURLY_in_enumBody5235 = frozenset([1]) - FOLLOW_enumConstants_in_enumScopeDeclarations5272 = frozenset([1, 11, 44]) - FOLLOW_COMMA_in_enumScopeDeclarations5275 = frozenset([1, 44]) - FOLLOW_enumClassScopeDeclarations_in_enumScopeDeclarations5280 = frozenset([1]) - FOLLOW_SEMI_in_enumClassScopeDeclarations5300 = frozenset([1, 7, 23, 25, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_classScopeDeclarations_in_enumClassScopeDeclarations5302 = frozenset([1, 7, 23, 25, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_enumConstant_in_enumConstants5341 = frozenset([1, 11]) - FOLLOW_COMMA_in_enumConstants5344 = frozenset([7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102, 164]) - FOLLOW_enumConstant_in_enumConstants5347 = frozenset([1, 11]) - FOLLOW_annotationList_in_enumConstant5368 = frozenset([164]) - FOLLOW_IDENT_in_enumConstant5370 = frozenset([1, 23, 25, 29, 68, 75]) - FOLLOW_arguments_in_enumConstant5373 = frozenset([1, 23, 25, 68, 75]) - FOLLOW_classBody_in_enumConstant5376 = frozenset([1]) - FOLLOW_INTERFACE_in_interfaceTypeDeclaration5397 = frozenset([164]) - FOLLOW_IDENT_in_interfaceTypeDeclaration5399 = frozenset([23, 25, 68]) - FOLLOW_genericTypeParameterList_in_interfaceTypeDeclaration5401 = frozenset([23, 25, 68]) - FOLLOW_interfaceExtendsClause_in_interfaceTypeDeclaration5404 = frozenset([23, 25, 68]) - FOLLOW_interfaceBody_in_interfaceTypeDeclaration5407 = frozenset([1]) - FOLLOW_type_in_typeList5453 = frozenset([1, 11]) - FOLLOW_COMMA_in_typeList5456 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_typeList5459 = frozenset([1, 11]) - FOLLOW_LCURLY_in_classBody5480 = frozenset([7, 23, 25, 42, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_classScopeDeclarations_in_classBody5482 = frozenset([7, 23, 25, 42, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_RCURLY_in_classBody5485 = frozenset([1]) - FOLLOW_LCURLY_in_interfaceBody5523 = frozenset([7, 25, 42, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_interfaceScopeDeclarations_in_interfaceBody5525 = frozenset([7, 25, 42, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_RCURLY_in_interfaceBody5528 = frozenset([1]) - FOLLOW_block_in_classScopeDeclarations5566 = frozenset([1]) - FOLLOW_STATIC_in_classScopeDeclarations5595 = frozenset([23]) - FOLLOW_block_in_classScopeDeclarations5597 = frozenset([1]) - FOLLOW_modifierList_in_classScopeDeclarations5620 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_genericTypeParameterList_in_classScopeDeclarations5634 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_classScopeDeclarations5653 = frozenset([164]) - FOLLOW_IDENT_in_classScopeDeclarations5655 = frozenset([29]) - FOLLOW_formalParameterList_in_classScopeDeclarations5657 = frozenset([22, 23, 44, 97]) - FOLLOW_arrayDeclaratorList_in_classScopeDeclarations5659 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_classScopeDeclarations5662 = frozenset([23, 44]) - FOLLOW_block_in_classScopeDeclarations5666 = frozenset([1]) - FOLLOW_SEMI_in_classScopeDeclarations5670 = frozenset([1]) - FOLLOW_VOID_in_classScopeDeclarations5732 = frozenset([164]) - FOLLOW_IDENT_in_classScopeDeclarations5734 = frozenset([29]) - FOLLOW_formalParameterList_in_classScopeDeclarations5736 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_classScopeDeclarations5738 = frozenset([23, 44]) - FOLLOW_block_in_classScopeDeclarations5742 = frozenset([1]) - FOLLOW_SEMI_in_classScopeDeclarations5746 = frozenset([1]) - FOLLOW_IDENT_in_classScopeDeclarations5805 = frozenset([29]) - FOLLOW_formalParameterList_in_classScopeDeclarations5807 = frozenset([23, 97]) - FOLLOW_throwsClause_in_classScopeDeclarations5809 = frozenset([23]) - FOLLOW_block_in_classScopeDeclarations5812 = frozenset([1]) - FOLLOW_type_in_classScopeDeclarations5876 = frozenset([164]) - FOLLOW_classFieldDeclaratorList_in_classScopeDeclarations5878 = frozenset([44]) - FOLLOW_SEMI_in_classScopeDeclarations5880 = frozenset([1]) - FOLLOW_typeDeclaration_in_classScopeDeclarations5925 = frozenset([1]) - FOLLOW_SEMI_in_classScopeDeclarations5935 = frozenset([1]) - FOLLOW_modifierList_in_interfaceScopeDeclarations5955 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_genericTypeParameterList_in_interfaceScopeDeclarations5969 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_interfaceScopeDeclarations5988 = frozenset([164]) - FOLLOW_IDENT_in_interfaceScopeDeclarations5990 = frozenset([29]) - FOLLOW_formalParameterList_in_interfaceScopeDeclarations5992 = frozenset([22, 44, 97]) - FOLLOW_arrayDeclaratorList_in_interfaceScopeDeclarations5994 = frozenset([44, 97]) - FOLLOW_throwsClause_in_interfaceScopeDeclarations5997 = frozenset([44]) - FOLLOW_SEMI_in_interfaceScopeDeclarations6000 = frozenset([1]) - FOLLOW_VOID_in_interfaceScopeDeclarations6058 = frozenset([164]) - FOLLOW_IDENT_in_interfaceScopeDeclarations6060 = frozenset([29]) - FOLLOW_formalParameterList_in_interfaceScopeDeclarations6062 = frozenset([44, 97]) - FOLLOW_throwsClause_in_interfaceScopeDeclarations6064 = frozenset([44]) - FOLLOW_SEMI_in_interfaceScopeDeclarations6067 = frozenset([1]) - FOLLOW_type_in_interfaceScopeDeclarations6130 = frozenset([164]) - FOLLOW_interfaceFieldDeclaratorList_in_interfaceScopeDeclarations6132 = frozenset([44]) - FOLLOW_SEMI_in_interfaceScopeDeclarations6134 = frozenset([1]) - FOLLOW_typeDeclaration_in_interfaceScopeDeclarations6179 = frozenset([1]) - FOLLOW_SEMI_in_interfaceScopeDeclarations6189 = frozenset([1]) - FOLLOW_classFieldDeclarator_in_classFieldDeclaratorList6209 = frozenset([1, 11]) - FOLLOW_COMMA_in_classFieldDeclaratorList6212 = frozenset([164]) - FOLLOW_classFieldDeclarator_in_classFieldDeclaratorList6214 = frozenset([1, 11]) - FOLLOW_variableDeclaratorId_in_classFieldDeclarator6253 = frozenset([1, 6]) - FOLLOW_ASSIGN_in_classFieldDeclarator6256 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_variableInitializer_in_classFieldDeclarator6258 = frozenset([1]) - FOLLOW_interfaceFieldDeclarator_in_interfaceFieldDeclaratorList6299 = frozenset([1, 11]) - FOLLOW_COMMA_in_interfaceFieldDeclaratorList6302 = frozenset([164]) - FOLLOW_interfaceFieldDeclarator_in_interfaceFieldDeclaratorList6304 = frozenset([1, 11]) - FOLLOW_variableDeclaratorId_in_interfaceFieldDeclarator6343 = frozenset([6]) - FOLLOW_ASSIGN_in_interfaceFieldDeclarator6345 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_variableInitializer_in_interfaceFieldDeclarator6347 = frozenset([1]) - FOLLOW_IDENT_in_variableDeclaratorId6385 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_variableDeclaratorId6388 = frozenset([1]) - FOLLOW_arrayInitializer_in_variableInitializer6408 = frozenset([1]) - FOLLOW_expression_in_variableInitializer6418 = frozenset([1]) - FOLLOW_LBRACK_in_arrayDeclarator6437 = frozenset([41]) - FOLLOW_RBRACK_in_arrayDeclarator6439 = frozenset([1]) - FOLLOW_arrayDeclarator_in_arrayDeclaratorList6473 = frozenset([1, 22]) - FOLLOW_LCURLY_in_arrayInitializer6511 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 42, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_variableInitializer_in_arrayInitializer6514 = frozenset([11, 42]) - FOLLOW_COMMA_in_arrayInitializer6517 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_variableInitializer_in_arrayInitializer6519 = frozenset([11, 42]) - FOLLOW_COMMA_in_arrayInitializer6523 = frozenset([42]) - FOLLOW_RCURLY_in_arrayInitializer6528 = frozenset([1]) - FOLLOW_THROWS_in_throwsClause6566 = frozenset([164]) - FOLLOW_qualifiedIdentList_in_throwsClause6568 = frozenset([1]) - FOLLOW_modifier_in_modifierList6605 = frozenset([1, 7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_PUBLIC_in_modifier6643 = frozenset([1]) - FOLLOW_PROTECTED_in_modifier6653 = frozenset([1]) - FOLLOW_PRIVATE_in_modifier6663 = frozenset([1]) - FOLLOW_STATIC_in_modifier6673 = frozenset([1]) - FOLLOW_ABSTRACT_in_modifier6683 = frozenset([1]) - FOLLOW_NATIVE_in_modifier6693 = frozenset([1]) - FOLLOW_SYNCHRONIZED_in_modifier6703 = frozenset([1]) - FOLLOW_TRANSIENT_in_modifier6713 = frozenset([1]) - FOLLOW_VOLATILE_in_modifier6723 = frozenset([1]) - FOLLOW_STRICTFP_in_modifier6733 = frozenset([1]) - FOLLOW_localModifier_in_modifier6743 = frozenset([1]) - FOLLOW_localModifier_in_localModifierList6762 = frozenset([1, 7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_FINAL_in_localModifier6799 = frozenset([1]) - FOLLOW_annotation_in_localModifier6809 = frozenset([1]) - FOLLOW_simpleType_in_type6828 = frozenset([1]) - FOLLOW_objectType_in_type6838 = frozenset([1]) - FOLLOW_primitiveType_in_simpleType6858 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_simpleType6860 = frozenset([1]) - FOLLOW_qualifiedTypeIdent_in_objectType6901 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_objectType6903 = frozenset([1]) - FOLLOW_qualifiedTypeIdentSimplified_in_objectTypeSimplified6943 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_objectTypeSimplified6945 = frozenset([1]) - FOLLOW_typeIdent_in_qualifiedTypeIdent6985 = frozenset([1, 15]) - FOLLOW_DOT_in_qualifiedTypeIdent6988 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_typeIdent_in_qualifiedTypeIdent6990 = frozenset([1, 15]) - FOLLOW_typeIdentSimplified_in_qualifiedTypeIdentSimplified7029 = frozenset([1, 15]) - FOLLOW_DOT_in_qualifiedTypeIdentSimplified7032 = frozenset([164]) - FOLLOW_typeIdentSimplified_in_qualifiedTypeIdentSimplified7034 = frozenset([1, 15]) - FOLLOW_IDENT_in_typeIdent7073 = frozenset([1, 25]) - FOLLOW_genericTypeArgumentList_in_typeIdent7076 = frozenset([1]) - FOLLOW_IDENT_in_typeIdentSimplified7096 = frozenset([1, 25]) - FOLLOW_genericTypeArgumentListSimplified_in_typeIdentSimplified7099 = frozenset([1]) - FOLLOW_set_in_primitiveType0 = frozenset([1]) - FOLLOW_LESS_THAN_in_genericTypeArgumentList7208 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgument_in_genericTypeArgumentList7210 = frozenset([8, 11, 20, 47]) - FOLLOW_COMMA_in_genericTypeArgumentList7213 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgument_in_genericTypeArgumentList7215 = frozenset([8, 11, 20, 47]) - FOLLOW_genericTypeListClosing_in_genericTypeArgumentList7219 = frozenset([1]) - FOLLOW_type_in_genericTypeArgument7257 = frozenset([1]) - FOLLOW_QUESTION_in_genericTypeArgument7267 = frozenset([1, 68, 92]) - FOLLOW_genericWildcardBoundType_in_genericTypeArgument7269 = frozenset([1]) - FOLLOW_set_in_genericWildcardBoundType7307 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_genericWildcardBoundType7316 = frozenset([1]) - FOLLOW_LESS_THAN_in_genericTypeArgumentListSimplified7335 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgumentSimplified_in_genericTypeArgumentListSimplified7337 = frozenset([8, 11, 20, 47]) - FOLLOW_COMMA_in_genericTypeArgumentListSimplified7340 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgumentSimplified_in_genericTypeArgumentListSimplified7342 = frozenset([8, 11, 20, 47]) - FOLLOW_genericTypeListClosing_in_genericTypeArgumentListSimplified7346 = frozenset([1]) - FOLLOW_type_in_genericTypeArgumentSimplified7384 = frozenset([1]) - FOLLOW_QUESTION_in_genericTypeArgumentSimplified7394 = frozenset([1]) - FOLLOW_qualifiedIdentifier_in_qualifiedIdentList7413 = frozenset([1, 11]) - FOLLOW_COMMA_in_qualifiedIdentList7416 = frozenset([164]) - FOLLOW_qualifiedIdentifier_in_qualifiedIdentList7419 = frozenset([1, 11]) - FOLLOW_LPAREN_in_formalParameterList7440 = frozenset([7, 43, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_formalParameterList7467 = frozenset([11, 43]) - FOLLOW_COMMA_in_formalParameterList7470 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_formalParameterList7472 = frozenset([11, 43]) - FOLLOW_COMMA_in_formalParameterList7477 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterVarArgDecl_in_formalParameterList7479 = frozenset([43]) - FOLLOW_formalParameterVarArgDecl_in_formalParameterList7534 = frozenset([43]) - FOLLOW_RPAREN_in_formalParameterList7609 = frozenset([1]) - FOLLOW_localModifierList_in_formalParameterStandardDecl7628 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_formalParameterStandardDecl7630 = frozenset([164]) - FOLLOW_variableDeclaratorId_in_formalParameterStandardDecl7632 = frozenset([1]) - FOLLOW_localModifierList_in_formalParameterVarArgDecl7672 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_formalParameterVarArgDecl7674 = frozenset([17]) - FOLLOW_ELLIPSIS_in_formalParameterVarArgDecl7676 = frozenset([164]) - FOLLOW_variableDeclaratorId_in_formalParameterVarArgDecl7678 = frozenset([1]) - FOLLOW_IDENT_in_qualifiedIdentifier7722 = frozenset([1, 15]) - FOLLOW_DOT_in_qualifiedIdentifier7765 = frozenset([164]) - FOLLOW_IDENT_in_qualifiedIdentifier7769 = frozenset([1, 15]) - FOLLOW_annotation_in_annotationList7818 = frozenset([1, 7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_AT_in_annotation7856 = frozenset([164]) - FOLLOW_qualifiedIdentifier_in_annotation7859 = frozenset([1, 29]) - FOLLOW_annotationInit_in_annotation7861 = frozenset([1]) - FOLLOW_LPAREN_in_annotationInit7881 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationInitializers_in_annotationInit7883 = frozenset([43]) - FOLLOW_RPAREN_in_annotationInit7885 = frozenset([1]) - FOLLOW_annotationInitializer_in_annotationInitializers7922 = frozenset([1, 11]) - FOLLOW_COMMA_in_annotationInitializers7925 = frozenset([164]) - FOLLOW_annotationInitializer_in_annotationInitializers7927 = frozenset([1, 11]) - FOLLOW_annotationElementValue_in_annotationInitializers7957 = frozenset([1]) - FOLLOW_IDENT_in_annotationInitializer7994 = frozenset([6]) - FOLLOW_ASSIGN_in_annotationInitializer7997 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationElementValue_in_annotationInitializer8000 = frozenset([1]) - FOLLOW_annotationElementValueExpression_in_annotationElementValue8019 = frozenset([1]) - FOLLOW_annotation_in_annotationElementValue8029 = frozenset([1]) - FOLLOW_annotationElementValueArrayInitializer_in_annotationElementValue8039 = frozenset([1]) - FOLLOW_conditionalExpression_in_annotationElementValueExpression8058 = frozenset([1]) - FOLLOW_LCURLY_in_annotationElementValueArrayInitializer8094 = frozenset([7, 11, 12, 21, 23, 25, 27, 29, 30, 34, 38, 42, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationElementValue_in_annotationElementValueArrayInitializer8097 = frozenset([11, 42]) - FOLLOW_COMMA_in_annotationElementValueArrayInitializer8100 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationElementValue_in_annotationElementValueArrayInitializer8102 = frozenset([11, 42]) - FOLLOW_COMMA_in_annotationElementValueArrayInitializer8109 = frozenset([42]) - FOLLOW_RCURLY_in_annotationElementValueArrayInitializer8113 = frozenset([1]) - FOLLOW_AT_in_annotationTypeDeclaration8152 = frozenset([77]) - FOLLOW_INTERFACE_in_annotationTypeDeclaration8154 = frozenset([164]) - FOLLOW_IDENT_in_annotationTypeDeclaration8156 = frozenset([23]) - FOLLOW_annotationBody_in_annotationTypeDeclaration8158 = frozenset([1]) - FOLLOW_LCURLY_in_annotationBody8197 = frozenset([7, 42, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_annotationScopeDeclarations_in_annotationBody8199 = frozenset([7, 42, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_RCURLY_in_annotationBody8202 = frozenset([1]) - FOLLOW_modifierList_in_annotationScopeDeclarations8240 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_annotationScopeDeclarations8242 = frozenset([164]) - FOLLOW_IDENT_in_annotationScopeDeclarations8256 = frozenset([29]) - FOLLOW_LPAREN_in_annotationScopeDeclarations8258 = frozenset([43]) - FOLLOW_RPAREN_in_annotationScopeDeclarations8260 = frozenset([44, 63]) - FOLLOW_annotationDefaultValue_in_annotationScopeDeclarations8262 = frozenset([44]) - FOLLOW_SEMI_in_annotationScopeDeclarations8265 = frozenset([1]) - FOLLOW_classFieldDeclaratorList_in_annotationScopeDeclarations8307 = frozenset([44]) - FOLLOW_SEMI_in_annotationScopeDeclarations8309 = frozenset([1]) - FOLLOW_typeDeclaration_in_annotationScopeDeclarations8354 = frozenset([1]) - FOLLOW_DEFAULT_in_annotationDefaultValue8373 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationElementValue_in_annotationDefaultValue8376 = frozenset([1]) - FOLLOW_LCURLY_in_block8397 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 42, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_blockStatement_in_block8399 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 42, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_RCURLY_in_block8402 = frozenset([1]) - FOLLOW_localVariableDeclaration_in_blockStatement8440 = frozenset([44]) - FOLLOW_SEMI_in_blockStatement8442 = frozenset([1]) - FOLLOW_typeDeclaration_in_blockStatement8453 = frozenset([1]) - FOLLOW_statement_in_blockStatement8463 = frozenset([1]) - FOLLOW_localModifierList_in_localVariableDeclaration8482 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_localVariableDeclaration8484 = frozenset([164]) - FOLLOW_classFieldDeclaratorList_in_localVariableDeclaration8486 = frozenset([1]) - FOLLOW_block_in_statement8527 = frozenset([1]) - FOLLOW_ASSERT_in_statement8537 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement8541 = frozenset([10, 44]) - FOLLOW_COLON_in_statement8555 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement8559 = frozenset([44]) - FOLLOW_SEMI_in_statement8561 = frozenset([1]) - FOLLOW_SEMI_in_statement8624 = frozenset([1]) - FOLLOW_IF_in_statement8713 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement8715 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement8719 = frozenset([1, 66]) - FOLLOW_ELSE_in_statement8733 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement8737 = frozenset([1]) - FOLLOW_FOR_in_statement8900 = frozenset([29]) - FOLLOW_LPAREN_in_statement8902 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forInit_in_statement8916 = frozenset([44]) - FOLLOW_SEMI_in_statement8918 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forCondition_in_statement8920 = frozenset([44]) - FOLLOW_SEMI_in_statement8922 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 43, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forUpdater_in_statement8924 = frozenset([43]) - FOLLOW_RPAREN_in_statement8926 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement8928 = frozenset([1]) - FOLLOW_localModifierList_in_statement8962 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_statement8964 = frozenset([164]) - FOLLOW_IDENT_in_statement8966 = frozenset([10]) - FOLLOW_COLON_in_statement8968 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement8970 = frozenset([43]) - FOLLOW_RPAREN_in_statement8972 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement8974 = frozenset([1]) - FOLLOW_WHILE_in_statement9088 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement9090 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement9092 = frozenset([1]) - FOLLOW_DO_in_statement9141 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement9143 = frozenset([103]) - FOLLOW_WHILE_in_statement9145 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement9147 = frozenset([44]) - FOLLOW_SEMI_in_statement9149 = frozenset([1]) - FOLLOW_TRY_in_statement9190 = frozenset([23]) - FOLLOW_block_in_statement9192 = frozenset([59, 71]) - FOLLOW_catches_in_statement9195 = frozenset([1, 59, 71]) - FOLLOW_finallyClause_in_statement9197 = frozenset([1]) - FOLLOW_finallyClause_in_statement9202 = frozenset([1]) - FOLLOW_SWITCH_in_statement9245 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement9247 = frozenset([23]) - FOLLOW_LCURLY_in_statement9249 = frozenset([42, 58, 63]) - FOLLOW_switchBlockLabels_in_statement9251 = frozenset([42]) - FOLLOW_RCURLY_in_statement9254 = frozenset([1]) - FOLLOW_SYNCHRONIZED_in_statement9281 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement9283 = frozenset([23]) - FOLLOW_block_in_statement9285 = frozenset([1]) - FOLLOW_RETURN_in_statement9331 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement9333 = frozenset([44]) - FOLLOW_SEMI_in_statement9336 = frozenset([1]) - FOLLOW_THROW_in_statement9400 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement9402 = frozenset([44]) - FOLLOW_SEMI_in_statement9404 = frozenset([1]) - FOLLOW_BREAK_in_statement9469 = frozenset([44, 164]) - FOLLOW_IDENT_in_statement9471 = frozenset([44]) - FOLLOW_SEMI_in_statement9474 = frozenset([1]) - FOLLOW_CONTINUE_in_statement9544 = frozenset([44, 164]) - FOLLOW_IDENT_in_statement9546 = frozenset([44]) - FOLLOW_SEMI_in_statement9549 = frozenset([1]) - FOLLOW_IDENT_in_statement9616 = frozenset([10]) - FOLLOW_COLON_in_statement9618 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement9620 = frozenset([1]) - FOLLOW_expression_in_statement9687 = frozenset([44]) - FOLLOW_SEMI_in_statement9689 = frozenset([1]) - FOLLOW_SEMI_in_statement9700 = frozenset([1]) - FOLLOW_catchClause_in_catches9720 = frozenset([1, 59]) - FOLLOW_CATCH_in_catchClause9758 = frozenset([29]) - FOLLOW_LPAREN_in_catchClause9761 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_catchClause9764 = frozenset([43]) - FOLLOW_RPAREN_in_catchClause9766 = frozenset([23]) - FOLLOW_block_in_catchClause9769 = frozenset([1]) - FOLLOW_FINALLY_in_finallyClause9788 = frozenset([23]) - FOLLOW_block_in_finallyClause9790 = frozenset([1]) - FOLLOW_switchCaseLabels_in_switchBlockLabels9839 = frozenset([58, 63]) - FOLLOW_switchDefaultLabel_in_switchBlockLabels9842 = frozenset([58]) - FOLLOW_switchCaseLabels_in_switchBlockLabels9847 = frozenset([1]) - FOLLOW_switchCaseLabel_in_switchCaseLabels9893 = frozenset([1, 58]) - FOLLOW_CASE_in_switchCaseLabel9913 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_switchCaseLabel9916 = frozenset([10]) - FOLLOW_COLON_in_switchCaseLabel9918 = frozenset([1, 7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_blockStatement_in_switchCaseLabel9921 = frozenset([1, 7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_DEFAULT_in_switchDefaultLabel9941 = frozenset([10]) - FOLLOW_COLON_in_switchDefaultLabel9944 = frozenset([1, 7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_blockStatement_in_switchDefaultLabel9947 = frozenset([1, 7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_localVariableDeclaration_in_forInit9967 = frozenset([1]) - FOLLOW_expressionList_in_forInit9989 = frozenset([1]) - FOLLOW_expression_in_forCondition10073 = frozenset([1]) - FOLLOW_expressionList_in_forUpdater10111 = frozenset([1]) - FOLLOW_LPAREN_in_parenthesizedExpression10151 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_parenthesizedExpression10153 = frozenset([43]) - FOLLOW_RPAREN_in_parenthesizedExpression10155 = frozenset([1]) - FOLLOW_expression_in_expressionList10192 = frozenset([1, 11]) - FOLLOW_COMMA_in_expressionList10195 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_expressionList10198 = frozenset([1, 11]) - FOLLOW_assignmentExpression_in_expression10219 = frozenset([1]) - FOLLOW_conditionalExpression_in_assignmentExpression10255 = frozenset([1, 5, 6, 9, 14, 31, 33, 37, 39, 46, 48, 50, 52]) - FOLLOW_ASSIGN_in_assignmentExpression10273 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_PLUS_ASSIGN_in_assignmentExpression10292 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_MINUS_ASSIGN_in_assignmentExpression10311 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_STAR_ASSIGN_in_assignmentExpression10330 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_DIV_ASSIGN_in_assignmentExpression10349 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_AND_ASSIGN_in_assignmentExpression10368 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_OR_ASSIGN_in_assignmentExpression10387 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_XOR_ASSIGN_in_assignmentExpression10406 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_MOD_ASSIGN_in_assignmentExpression10425 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_SHIFT_LEFT_ASSIGN_in_assignmentExpression10444 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_SHIFT_RIGHT_ASSIGN_in_assignmentExpression10463 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_BIT_SHIFT_RIGHT_ASSIGN_in_assignmentExpression10482 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_assignmentExpression_in_assignmentExpression10503 = frozenset([1]) - FOLLOW_logicalOrExpression_in_conditionalExpression10524 = frozenset([1, 40]) - FOLLOW_QUESTION_in_conditionalExpression10527 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_assignmentExpression_in_conditionalExpression10530 = frozenset([10]) - FOLLOW_COLON_in_conditionalExpression10532 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_conditionalExpression_in_conditionalExpression10535 = frozenset([1]) - FOLLOW_logicalAndExpression_in_logicalOrExpression10556 = frozenset([1, 28]) - FOLLOW_LOGICAL_OR_in_logicalOrExpression10559 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_logicalAndExpression_in_logicalOrExpression10562 = frozenset([1, 28]) - FOLLOW_inclusiveOrExpression_in_logicalAndExpression10583 = frozenset([1, 26]) - FOLLOW_LOGICAL_AND_in_logicalAndExpression10586 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_inclusiveOrExpression_in_logicalAndExpression10589 = frozenset([1, 26]) - FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression10610 = frozenset([1, 36]) - FOLLOW_OR_in_inclusiveOrExpression10613 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression10616 = frozenset([1, 36]) - FOLLOW_andExpression_in_exclusiveOrExpression10637 = frozenset([1, 51]) - FOLLOW_XOR_in_exclusiveOrExpression10640 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_andExpression_in_exclusiveOrExpression10643 = frozenset([1, 51]) - FOLLOW_equalityExpression_in_andExpression10664 = frozenset([1, 4]) - FOLLOW_AND_in_andExpression10667 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_equalityExpression_in_andExpression10670 = frozenset([1, 4]) - FOLLOW_instanceOfExpression_in_equalityExpression10691 = frozenset([1, 18, 35]) - FOLLOW_EQUAL_in_equalityExpression10709 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_NOT_EQUAL_in_equalityExpression10728 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_instanceOfExpression_in_equalityExpression10757 = frozenset([1, 18, 35]) - FOLLOW_relationalExpression_in_instanceOfExpression10787 = frozenset([1, 76]) - FOLLOW_INSTANCEOF_in_instanceOfExpression10790 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_instanceOfExpression10793 = frozenset([1]) - FOLLOW_shiftExpression_in_relationalExpression10814 = frozenset([1, 19, 20, 24, 25]) - FOLLOW_LESS_OR_EQUAL_in_relationalExpression10832 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_GREATER_OR_EQUAL_in_relationalExpression10851 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_LESS_THAN_in_relationalExpression10870 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_GREATER_THAN_in_relationalExpression10889 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_shiftExpression_in_relationalExpression10918 = frozenset([1, 19, 20, 24, 25]) - FOLLOW_additiveExpression_in_shiftExpression10948 = frozenset([1, 8, 45, 47]) - FOLLOW_BIT_SHIFT_RIGHT_in_shiftExpression10966 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_SHIFT_RIGHT_in_shiftExpression10985 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_SHIFT_LEFT_in_shiftExpression11004 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_additiveExpression_in_shiftExpression11033 = frozenset([1, 8, 45, 47]) - FOLLOW_multiplicativeExpression_in_additiveExpression11063 = frozenset([1, 30, 38]) - FOLLOW_PLUS_in_additiveExpression11081 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_MINUS_in_additiveExpression11100 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_multiplicativeExpression_in_additiveExpression11129 = frozenset([1, 30, 38]) - FOLLOW_unaryExpression_in_multiplicativeExpression11159 = frozenset([1, 13, 32, 49]) - FOLLOW_STAR_in_multiplicativeExpression11177 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_DIV_in_multiplicativeExpression11196 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_MOD_in_multiplicativeExpression11215 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_multiplicativeExpression11244 = frozenset([1, 13, 32, 49]) - FOLLOW_PLUS_in_unaryExpression11274 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpression11276 = frozenset([1]) - FOLLOW_MINUS_in_unaryExpression11303 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpression11305 = frozenset([1]) - FOLLOW_INC_in_unaryExpression11331 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_postfixedExpression_in_unaryExpression11333 = frozenset([1]) - FOLLOW_DEC_in_unaryExpression11357 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_postfixedExpression_in_unaryExpression11359 = frozenset([1]) - FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression11383 = frozenset([1]) - FOLLOW_NOT_in_unaryExpressionNotPlusMinus11402 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11404 = frozenset([1]) - FOLLOW_LOGICAL_NOT_in_unaryExpressionNotPlusMinus11451 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11453 = frozenset([1]) - FOLLOW_LPAREN_in_unaryExpressionNotPlusMinus11492 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_unaryExpressionNotPlusMinus11494 = frozenset([43]) - FOLLOW_RPAREN_in_unaryExpressionNotPlusMinus11496 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11498 = frozenset([1]) - FOLLOW_postfixedExpression_in_unaryExpressionNotPlusMinus11533 = frozenset([1]) - FOLLOW_primaryExpression_in_postfixedExpression11565 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_DOT_in_postfixedExpression11627 = frozenset([25, 82, 92, 95, 164]) - FOLLOW_genericTypeArgumentListSimplified_in_postfixedExpression11649 = frozenset([164]) - FOLLOW_IDENT_in_postfixedExpression11731 = frozenset([1, 12, 15, 21, 22, 29]) - FOLLOW_arguments_in_postfixedExpression11809 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_THIS_in_postfixedExpression11883 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_SUPER_in_postfixedExpression11946 = frozenset([29]) - FOLLOW_arguments_in_postfixedExpression11948 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_SUPER_in_postfixedExpression12001 = frozenset([15]) - FOLLOW_DOT_in_postfixedExpression12005 = frozenset([164]) - FOLLOW_IDENT_in_postfixedExpression12007 = frozenset([1, 12, 15, 21, 22, 29]) - FOLLOW_arguments_in_postfixedExpression12074 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_innerNewExpression_in_postfixedExpression12145 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_LBRACK_in_postfixedExpression12202 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_postfixedExpression12204 = frozenset([41]) - FOLLOW_RBRACK_in_postfixedExpression12206 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_INC_in_postfixedExpression12267 = frozenset([1]) - FOLLOW_DEC_in_postfixedExpression12291 = frozenset([1]) - FOLLOW_parenthesizedExpression_in_primaryExpression12331 = frozenset([1]) - FOLLOW_literal_in_primaryExpression12341 = frozenset([1]) - FOLLOW_newExpression_in_primaryExpression12351 = frozenset([1]) - FOLLOW_qualifiedIdentExpression_in_primaryExpression12361 = frozenset([1]) - FOLLOW_genericTypeArgumentListSimplified_in_primaryExpression12371 = frozenset([92, 95, 164]) - FOLLOW_SUPER_in_primaryExpression12385 = frozenset([15, 29]) - FOLLOW_arguments_in_primaryExpression12403 = frozenset([1]) - FOLLOW_DOT_in_primaryExpression12463 = frozenset([164]) - FOLLOW_IDENT_in_primaryExpression12465 = frozenset([29]) - FOLLOW_arguments_in_primaryExpression12467 = frozenset([1]) - FOLLOW_IDENT_in_primaryExpression12534 = frozenset([29]) - FOLLOW_arguments_in_primaryExpression12536 = frozenset([1]) - FOLLOW_THIS_in_primaryExpression12591 = frozenset([29]) - FOLLOW_arguments_in_primaryExpression12593 = frozenset([1]) - FOLLOW_THIS_in_primaryExpression12658 = frozenset([1, 29]) - FOLLOW_arguments_in_primaryExpression12726 = frozenset([1]) - FOLLOW_SUPER_in_primaryExpression12791 = frozenset([29]) - FOLLOW_arguments_in_primaryExpression12793 = frozenset([1]) - FOLLOW_SUPER_in_primaryExpression12849 = frozenset([15]) - FOLLOW_DOT_in_primaryExpression12851 = frozenset([164]) - FOLLOW_IDENT_in_primaryExpression12853 = frozenset([1, 29]) - FOLLOW_arguments_in_primaryExpression12877 = frozenset([1]) - FOLLOW_primitiveType_in_primaryExpression13019 = frozenset([15, 22]) - FOLLOW_arrayDeclarator_in_primaryExpression13078 = frozenset([15, 22]) - FOLLOW_DOT_in_primaryExpression13137 = frozenset([61]) - FOLLOW_CLASS_in_primaryExpression13139 = frozenset([1]) - FOLLOW_VOID_in_primaryExpression13199 = frozenset([15]) - FOLLOW_DOT_in_primaryExpression13201 = frozenset([61]) - FOLLOW_CLASS_in_primaryExpression13203 = frozenset([1]) - FOLLOW_qualifiedIdentifier_in_qualifiedIdentExpression13279 = frozenset([1, 15, 22, 29]) - FOLLOW_arrayDeclarator_in_qualifiedIdentExpression13349 = frozenset([15, 22]) - FOLLOW_DOT_in_qualifiedIdentExpression13416 = frozenset([61]) - FOLLOW_CLASS_in_qualifiedIdentExpression13418 = frozenset([1]) - FOLLOW_arguments_in_qualifiedIdentExpression13488 = frozenset([1]) - FOLLOW_DOT_in_qualifiedIdentExpression13549 = frozenset([25, 61, 82, 92, 95, 164]) - FOLLOW_CLASS_in_qualifiedIdentExpression13567 = frozenset([1]) - FOLLOW_genericTypeArgumentListSimplified_in_qualifiedIdentExpression13630 = frozenset([92, 164]) - FOLLOW_SUPER_in_qualifiedIdentExpression13654 = frozenset([29]) - FOLLOW_arguments_in_qualifiedIdentExpression13656 = frozenset([1]) - FOLLOW_SUPER_in_qualifiedIdentExpression13706 = frozenset([15]) - FOLLOW_DOT_in_qualifiedIdentExpression13710 = frozenset([164]) - FOLLOW_IDENT_in_qualifiedIdentExpression13712 = frozenset([29]) - FOLLOW_arguments_in_qualifiedIdentExpression13714 = frozenset([1]) - FOLLOW_IDENT_in_qualifiedIdentExpression13764 = frozenset([29]) - FOLLOW_arguments_in_qualifiedIdentExpression13766 = frozenset([1]) - FOLLOW_THIS_in_qualifiedIdentExpression13841 = frozenset([1]) - FOLLOW_SUPER_in_qualifiedIdentExpression13907 = frozenset([29]) - FOLLOW_arguments_in_qualifiedIdentExpression13909 = frozenset([1]) - FOLLOW_innerNewExpression_in_qualifiedIdentExpression13957 = frozenset([1]) - FOLLOW_NEW_in_newExpression14033 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_primitiveType_in_newExpression14047 = frozenset([22]) - FOLLOW_newArrayConstruction_in_newExpression14049 = frozenset([1]) - FOLLOW_genericTypeArgumentListSimplified_in_newExpression14093 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_qualifiedTypeIdentSimplified_in_newExpression14096 = frozenset([22, 29]) - FOLLOW_newArrayConstruction_in_newExpression14114 = frozenset([1]) - FOLLOW_arguments_in_newExpression14179 = frozenset([1, 23, 25, 68, 75]) - FOLLOW_classBody_in_newExpression14181 = frozenset([1]) - FOLLOW_NEW_in_innerNewExpression14276 = frozenset([25, 164]) - FOLLOW_genericTypeArgumentListSimplified_in_innerNewExpression14278 = frozenset([164]) - FOLLOW_IDENT_in_innerNewExpression14281 = frozenset([29]) - FOLLOW_arguments_in_innerNewExpression14283 = frozenset([1, 23, 25, 68, 75]) - FOLLOW_classBody_in_innerNewExpression14285 = frozenset([1]) - FOLLOW_arrayDeclaratorList_in_newArrayConstruction14331 = frozenset([23]) - FOLLOW_arrayInitializer_in_newArrayConstruction14333 = frozenset([1]) - FOLLOW_LBRACK_in_newArrayConstruction14343 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_newArrayConstruction14346 = frozenset([41]) - FOLLOW_RBRACK_in_newArrayConstruction14348 = frozenset([1, 22]) - FOLLOW_LBRACK_in_newArrayConstruction14352 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_newArrayConstruction14355 = frozenset([41]) - FOLLOW_RBRACK_in_newArrayConstruction14357 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_newArrayConstruction14362 = frozenset([1]) - FOLLOW_LPAREN_in_arguments14382 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 43, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expressionList_in_arguments14384 = frozenset([43]) - FOLLOW_RPAREN_in_arguments14387 = frozenset([1]) - FOLLOW_set_in_literal0 = frozenset([1]) - FOLLOW_GREATER_THAN_in_synpred14_Java5045 = frozenset([1]) - FOLLOW_SHIFT_RIGHT_in_synpred15_Java5055 = frozenset([1]) - FOLLOW_BIT_SHIFT_RIGHT_in_synpred16_Java5065 = frozenset([1]) - FOLLOW_bound_in_synpred17_Java5095 = frozenset([1]) - FOLLOW_STATIC_in_synpred32_Java5595 = frozenset([23]) - FOLLOW_block_in_synpred32_Java5597 = frozenset([1]) - FOLLOW_genericTypeParameterList_in_synpred42_Java5634 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_synpred42_Java5653 = frozenset([164]) - FOLLOW_IDENT_in_synpred42_Java5655 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred42_Java5657 = frozenset([22, 23, 44, 97]) - FOLLOW_arrayDeclaratorList_in_synpred42_Java5659 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_synpred42_Java5662 = frozenset([23, 44]) - FOLLOW_block_in_synpred42_Java5666 = frozenset([1]) - FOLLOW_SEMI_in_synpred42_Java5670 = frozenset([1]) - FOLLOW_VOID_in_synpred42_Java5732 = frozenset([164]) - FOLLOW_IDENT_in_synpred42_Java5734 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred42_Java5736 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_synpred42_Java5738 = frozenset([23, 44]) - FOLLOW_block_in_synpred42_Java5742 = frozenset([1]) - FOLLOW_SEMI_in_synpred42_Java5746 = frozenset([1]) - FOLLOW_IDENT_in_synpred42_Java5805 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred42_Java5807 = frozenset([23, 97]) - FOLLOW_throwsClause_in_synpred42_Java5809 = frozenset([23]) - FOLLOW_block_in_synpred42_Java5812 = frozenset([1]) - FOLLOW_modifierList_in_synpred43_Java5620 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_genericTypeParameterList_in_synpred43_Java5634 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_synpred43_Java5653 = frozenset([164]) - FOLLOW_IDENT_in_synpred43_Java5655 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred43_Java5657 = frozenset([22, 23, 44, 97]) - FOLLOW_arrayDeclaratorList_in_synpred43_Java5659 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_synpred43_Java5662 = frozenset([23, 44]) - FOLLOW_block_in_synpred43_Java5666 = frozenset([1]) - FOLLOW_SEMI_in_synpred43_Java5670 = frozenset([1]) - FOLLOW_VOID_in_synpred43_Java5732 = frozenset([164]) - FOLLOW_IDENT_in_synpred43_Java5734 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred43_Java5736 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_synpred43_Java5738 = frozenset([23, 44]) - FOLLOW_block_in_synpred43_Java5742 = frozenset([1]) - FOLLOW_SEMI_in_synpred43_Java5746 = frozenset([1]) - FOLLOW_IDENT_in_synpred43_Java5805 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred43_Java5807 = frozenset([23, 97]) - FOLLOW_throwsClause_in_synpred43_Java5809 = frozenset([23]) - FOLLOW_block_in_synpred43_Java5812 = frozenset([1]) - FOLLOW_type_in_synpred43_Java5876 = frozenset([164]) - FOLLOW_classFieldDeclaratorList_in_synpred43_Java5878 = frozenset([44]) - FOLLOW_SEMI_in_synpred43_Java5880 = frozenset([1]) - FOLLOW_typeDeclaration_in_synpred44_Java5925 = frozenset([1]) - FOLLOW_genericTypeParameterList_in_synpred50_Java5969 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_synpred50_Java5988 = frozenset([164]) - FOLLOW_IDENT_in_synpred50_Java5990 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred50_Java5992 = frozenset([22, 44, 97]) - FOLLOW_arrayDeclaratorList_in_synpred50_Java5994 = frozenset([44, 97]) - FOLLOW_throwsClause_in_synpred50_Java5997 = frozenset([44]) - FOLLOW_SEMI_in_synpred50_Java6000 = frozenset([1]) - FOLLOW_VOID_in_synpred50_Java6058 = frozenset([164]) - FOLLOW_IDENT_in_synpred50_Java6060 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred50_Java6062 = frozenset([44, 97]) - FOLLOW_throwsClause_in_synpred50_Java6064 = frozenset([44]) - FOLLOW_SEMI_in_synpred50_Java6067 = frozenset([1]) - FOLLOW_modifierList_in_synpred51_Java5955 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_genericTypeParameterList_in_synpred51_Java5969 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_synpred51_Java5988 = frozenset([164]) - FOLLOW_IDENT_in_synpred51_Java5990 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred51_Java5992 = frozenset([22, 44, 97]) - FOLLOW_arrayDeclaratorList_in_synpred51_Java5994 = frozenset([44, 97]) - FOLLOW_throwsClause_in_synpred51_Java5997 = frozenset([44]) - FOLLOW_SEMI_in_synpred51_Java6000 = frozenset([1]) - FOLLOW_VOID_in_synpred51_Java6058 = frozenset([164]) - FOLLOW_IDENT_in_synpred51_Java6060 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred51_Java6062 = frozenset([44, 97]) - FOLLOW_throwsClause_in_synpred51_Java6064 = frozenset([44]) - FOLLOW_SEMI_in_synpred51_Java6067 = frozenset([1]) - FOLLOW_type_in_synpred51_Java6130 = frozenset([164]) - FOLLOW_interfaceFieldDeclaratorList_in_synpred51_Java6132 = frozenset([44]) - FOLLOW_SEMI_in_synpred51_Java6134 = frozenset([1]) - FOLLOW_typeDeclaration_in_synpred52_Java6179 = frozenset([1]) - FOLLOW_arrayDeclarator_in_synpred58_Java6473 = frozenset([1]) - FOLLOW_arrayDeclaratorList_in_synpred76_Java6860 = frozenset([1]) - FOLLOW_arrayDeclaratorList_in_synpred77_Java6903 = frozenset([1]) - FOLLOW_DOT_in_synpred79_Java6988 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_typeIdent_in_synpred79_Java6990 = frozenset([1]) - FOLLOW_COMMA_in_synpred90_Java7213 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgument_in_synpred90_Java7215 = frozenset([1]) - FOLLOW_genericWildcardBoundType_in_synpred92_Java7269 = frozenset([1]) - FOLLOW_COMMA_in_synpred97_Java7470 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_synpred97_Java7472 = frozenset([1]) - FOLLOW_formalParameterStandardDecl_in_synpred99_Java7467 = frozenset([1, 11]) - FOLLOW_COMMA_in_synpred99_Java7470 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_synpred99_Java7472 = frozenset([1, 11]) - FOLLOW_COMMA_in_synpred99_Java7477 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterVarArgDecl_in_synpred99_Java7479 = frozenset([1]) - FOLLOW_formalParameterVarArgDecl_in_synpred100_Java7534 = frozenset([1]) - FOLLOW_DOT_in_synpred101_Java7765 = frozenset([164]) - FOLLOW_IDENT_in_synpred101_Java7769 = frozenset([1]) - FOLLOW_annotation_in_synpred102_Java7818 = frozenset([1]) - FOLLOW_modifierList_in_synpred114_Java8240 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_synpred114_Java8242 = frozenset([164]) - FOLLOW_IDENT_in_synpred114_Java8256 = frozenset([29]) - FOLLOW_LPAREN_in_synpred114_Java8258 = frozenset([43]) - FOLLOW_RPAREN_in_synpred114_Java8260 = frozenset([44, 63]) - FOLLOW_annotationDefaultValue_in_synpred114_Java8262 = frozenset([44]) - FOLLOW_SEMI_in_synpred114_Java8265 = frozenset([1]) - FOLLOW_classFieldDeclaratorList_in_synpred114_Java8307 = frozenset([44]) - FOLLOW_SEMI_in_synpred114_Java8309 = frozenset([1]) - FOLLOW_localVariableDeclaration_in_synpred116_Java8440 = frozenset([44]) - FOLLOW_SEMI_in_synpred116_Java8442 = frozenset([1]) - FOLLOW_typeDeclaration_in_synpred117_Java8453 = frozenset([1]) - FOLLOW_ELSE_in_synpred121_Java8733 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_synpred121_Java8737 = frozenset([1]) - FOLLOW_forInit_in_synpred123_Java8916 = frozenset([44]) - FOLLOW_SEMI_in_synpred123_Java8918 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forCondition_in_synpred123_Java8920 = frozenset([44]) - FOLLOW_SEMI_in_synpred123_Java8922 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 43, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forUpdater_in_synpred123_Java8924 = frozenset([43]) - FOLLOW_RPAREN_in_synpred123_Java8926 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_synpred123_Java8928 = frozenset([1]) - FOLLOW_switchBlockLabels_in_synpred130_Java9251 = frozenset([1]) - FOLLOW_switchCaseLabels_in_synpred143_Java9839 = frozenset([1]) - FOLLOW_switchCaseLabels_in_synpred145_Java9847 = frozenset([1]) - FOLLOW_switchCaseLabel_in_synpred146_Java9893 = frozenset([1]) - FOLLOW_localVariableDeclaration_in_synpred149_Java9967 = frozenset([1]) - FOLLOW_expressionList_in_synpred150_Java9989 = frozenset([1]) - FOLLOW_LPAREN_in_synpred193_Java11492 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_synpred193_Java11494 = frozenset([43]) - FOLLOW_RPAREN_in_synpred193_Java11496 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_synpred193_Java11498 = frozenset([1]) - FOLLOW_arrayDeclarator_in_synpred221_Java13349 = frozenset([15, 22]) - FOLLOW_DOT_in_synpred221_Java13416 = frozenset([61]) - FOLLOW_CLASS_in_synpred221_Java13418 = frozenset([1]) - FOLLOW_DOT_in_synpred229_Java13549 = frozenset([25, 61, 82, 92, 95, 164]) - FOLLOW_CLASS_in_synpred229_Java13567 = frozenset([1]) - FOLLOW_genericTypeArgumentListSimplified_in_synpred229_Java13630 = frozenset([92, 164]) - FOLLOW_SUPER_in_synpred229_Java13654 = frozenset([29]) - FOLLOW_arguments_in_synpred229_Java13656 = frozenset([1]) - FOLLOW_SUPER_in_synpred229_Java13706 = frozenset([15]) - FOLLOW_DOT_in_synpred229_Java13710 = frozenset([164]) - FOLLOW_IDENT_in_synpred229_Java13712 = frozenset([29]) - FOLLOW_arguments_in_synpred229_Java13714 = frozenset([1]) - FOLLOW_IDENT_in_synpred229_Java13764 = frozenset([29]) - FOLLOW_arguments_in_synpred229_Java13766 = frozenset([1]) - FOLLOW_THIS_in_synpred229_Java13841 = frozenset([1]) - FOLLOW_SUPER_in_synpred229_Java13907 = frozenset([29]) - FOLLOW_arguments_in_synpred229_Java13909 = frozenset([1]) - FOLLOW_innerNewExpression_in_synpred229_Java13957 = frozenset([1]) - FOLLOW_LBRACK_in_synpred237_Java14352 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_synpred237_Java14355 = frozenset([41]) - FOLLOW_RBRACK_in_synpred237_Java14357 = frozenset([1]) - - - -def main(argv, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr): - from antlr3.main import ParserMain - main = ParserMain("JavaLexer", JavaParser) - main.stdin = stdin - main.stdout = stdout - main.stderr = stderr - main.execute(argv) - - -if __name__ == '__main__': - main(sys.argv) diff --git a/java2python/lang/JavaParser.tokens b/java2python/lang/JavaParser.tokens new file mode 100644 index 0000000..c648b8c --- /dev/null +++ b/java2python/lang/JavaParser.tokens @@ -0,0 +1,209 @@ +ABSTRACT=1 +ASSERT=2 +BOOLEAN=3 +BREAK=4 +BYTE=5 +CASE=6 +CATCH=7 +CHAR=8 +CLASS=9 +CONST=10 +CONTINUE=11 +DEFAULT=12 +DO=13 +DOUBLE=14 +ELSE=15 +ENUM=16 +EXTENDS=17 +FINAL=18 +FINALLY=19 +FLOAT=20 +FOR=21 +IF=22 +GOTO=23 +IMPLEMENTS=24 +IMPORT=25 +INSTANCEOF=26 +INT=27 +INTERFACE=28 +LONG=29 +NATIVE=30 +NEW=31 +PACKAGE=32 +PRIVATE=33 +PROTECTED=34 +PUBLIC=35 +RETURN=36 +SHORT=37 +STATIC=38 +STRICTFP=39 +SUPER=40 +SWITCH=41 +SYNCHRONIZED=42 +THIS=43 +THROW=44 +THROWS=45 +TRANSIENT=46 +TRY=47 +VOID=48 +VOLATILE=49 +WHILE=50 +DECIMAL_LITERAL=51 +HEX_LITERAL=52 +OCT_LITERAL=53 +BINARY_LITERAL=54 +FLOAT_LITERAL=55 +HEX_FLOAT_LITERAL=56 +BOOL_LITERAL=57 +CHAR_LITERAL=58 +STRING_LITERAL=59 +NULL_LITERAL=60 +LPAREN=61 +RPAREN=62 +LBRACE=63 +RBRACE=64 +LBRACK=65 +RBRACK=66 +SEMI=67 +COMMA=68 +DOT=69 +ASSIGN=70 +GT=71 +LT=72 +BANG=73 +TILDE=74 +QUESTION=75 +COLON=76 +EQUAL=77 +LE=78 +GE=79 +NOTEQUAL=80 +AND=81 +OR=82 +INC=83 +DEC=84 +ADD=85 +SUB=86 +MUL=87 +DIV=88 +BITAND=89 +BITOR=90 +CARET=91 +MOD=92 +ADD_ASSIGN=93 +SUB_ASSIGN=94 +MUL_ASSIGN=95 +DIV_ASSIGN=96 +AND_ASSIGN=97 +OR_ASSIGN=98 +XOR_ASSIGN=99 +MOD_ASSIGN=100 +LSHIFT_ASSIGN=101 +RSHIFT_ASSIGN=102 +URSHIFT_ASSIGN=103 +ARROW=104 +COLONCOLON=105 +AT=106 +ELLIPSIS=107 +WS=108 +COMMENT=109 +LINE_COMMENT=110 +IDENTIFIER=111 +'abstract'=1 +'assert'=2 +'boolean'=3 +'break'=4 +'byte'=5 +'case'=6 +'catch'=7 +'char'=8 +'class'=9 +'const'=10 +'continue'=11 +'default'=12 +'do'=13 +'double'=14 +'else'=15 +'enum'=16 +'extends'=17 +'final'=18 +'finally'=19 +'float'=20 +'for'=21 +'if'=22 +'goto'=23 +'implements'=24 +'import'=25 +'instanceof'=26 +'int'=27 +'interface'=28 +'long'=29 +'native'=30 +'new'=31 +'package'=32 +'private'=33 +'protected'=34 +'public'=35 +'return'=36 +'short'=37 +'static'=38 +'strictfp'=39 +'super'=40 +'switch'=41 +'synchronized'=42 +'this'=43 +'throw'=44 +'throws'=45 +'transient'=46 +'try'=47 +'void'=48 +'volatile'=49 +'while'=50 +'null'=60 +'('=61 +')'=62 +'{'=63 +'}'=64 +'['=65 +']'=66 +';'=67 +','=68 +'.'=69 +'='=70 +'>'=71 +'<'=72 +'!'=73 +'~'=74 +'?'=75 +':'=76 +'=='=77 +'<='=78 +'>='=79 +'!='=80 +'&&'=81 +'||'=82 +'++'=83 +'--'=84 +'+'=85 +'-'=86 +'*'=87 +'/'=88 +'&'=89 +'|'=90 +'^'=91 +'%'=92 +'+='=93 +'-='=94 +'*='=95 +'/='=96 +'&='=97 +'|='=98 +'^='=99 +'%='=100 +'<<='=101 +'>>='=102 +'>>>='=103 +'->'=104 +'::'=105 +'@'=106 +'...'=107 diff --git a/java2python/lang/JavaParserListener.py b/java2python/lang/JavaParserListener.py new file mode 100644 index 0000000..2261ea6 --- /dev/null +++ b/java2python/lang/JavaParserListener.py @@ -0,0 +1,955 @@ +# Generated from JavaParser.g4 by ANTLR 4.7.2 +from antlr4 import * +if __name__ is not None and "." in __name__: + from .JavaParser import JavaParser +else: + from JavaParser import JavaParser + +# This class defines a complete listener for a parse tree produced by JavaParser. +class JavaParserListener(ParseTreeListener): + + # Enter a parse tree produced by JavaParser#compilationUnit. + def enterCompilationUnit(self, ctx:JavaParser.CompilationUnitContext): + pass + + # Exit a parse tree produced by JavaParser#compilationUnit. + def exitCompilationUnit(self, ctx:JavaParser.CompilationUnitContext): + pass + + + # Enter a parse tree produced by JavaParser#packageDeclaration. + def enterPackageDeclaration(self, ctx:JavaParser.PackageDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#packageDeclaration. + def exitPackageDeclaration(self, ctx:JavaParser.PackageDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#importDeclaration. + def enterImportDeclaration(self, ctx:JavaParser.ImportDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#importDeclaration. + def exitImportDeclaration(self, ctx:JavaParser.ImportDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#typeDeclaration. + def enterTypeDeclaration(self, ctx:JavaParser.TypeDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#typeDeclaration. + def exitTypeDeclaration(self, ctx:JavaParser.TypeDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#modifier. + def enterModifier(self, ctx:JavaParser.ModifierContext): + pass + + # Exit a parse tree produced by JavaParser#modifier. + def exitModifier(self, ctx:JavaParser.ModifierContext): + pass + + + # Enter a parse tree produced by JavaParser#classOrInterfaceModifier. + def enterClassOrInterfaceModifier(self, ctx:JavaParser.ClassOrInterfaceModifierContext): + pass + + # Exit a parse tree produced by JavaParser#classOrInterfaceModifier. + def exitClassOrInterfaceModifier(self, ctx:JavaParser.ClassOrInterfaceModifierContext): + pass + + + # Enter a parse tree produced by JavaParser#variableModifier. + def enterVariableModifier(self, ctx:JavaParser.VariableModifierContext): + pass + + # Exit a parse tree produced by JavaParser#variableModifier. + def exitVariableModifier(self, ctx:JavaParser.VariableModifierContext): + pass + + + # Enter a parse tree produced by JavaParser#classDeclaration. + def enterClassDeclaration(self, ctx:JavaParser.ClassDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#classDeclaration. + def exitClassDeclaration(self, ctx:JavaParser.ClassDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#typeParameters. + def enterTypeParameters(self, ctx:JavaParser.TypeParametersContext): + pass + + # Exit a parse tree produced by JavaParser#typeParameters. + def exitTypeParameters(self, ctx:JavaParser.TypeParametersContext): + pass + + + # Enter a parse tree produced by JavaParser#typeParameter. + def enterTypeParameter(self, ctx:JavaParser.TypeParameterContext): + pass + + # Exit a parse tree produced by JavaParser#typeParameter. + def exitTypeParameter(self, ctx:JavaParser.TypeParameterContext): + pass + + + # Enter a parse tree produced by JavaParser#typeBound. + def enterTypeBound(self, ctx:JavaParser.TypeBoundContext): + pass + + # Exit a parse tree produced by JavaParser#typeBound. + def exitTypeBound(self, ctx:JavaParser.TypeBoundContext): + pass + + + # Enter a parse tree produced by JavaParser#enumDeclaration. + def enterEnumDeclaration(self, ctx:JavaParser.EnumDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#enumDeclaration. + def exitEnumDeclaration(self, ctx:JavaParser.EnumDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#enumConstants. + def enterEnumConstants(self, ctx:JavaParser.EnumConstantsContext): + pass + + # Exit a parse tree produced by JavaParser#enumConstants. + def exitEnumConstants(self, ctx:JavaParser.EnumConstantsContext): + pass + + + # Enter a parse tree produced by JavaParser#enumConstant. + def enterEnumConstant(self, ctx:JavaParser.EnumConstantContext): + pass + + # Exit a parse tree produced by JavaParser#enumConstant. + def exitEnumConstant(self, ctx:JavaParser.EnumConstantContext): + pass + + + # Enter a parse tree produced by JavaParser#enumBodyDeclarations. + def enterEnumBodyDeclarations(self, ctx:JavaParser.EnumBodyDeclarationsContext): + pass + + # Exit a parse tree produced by JavaParser#enumBodyDeclarations. + def exitEnumBodyDeclarations(self, ctx:JavaParser.EnumBodyDeclarationsContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceDeclaration. + def enterInterfaceDeclaration(self, ctx:JavaParser.InterfaceDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceDeclaration. + def exitInterfaceDeclaration(self, ctx:JavaParser.InterfaceDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#classBody. + def enterClassBody(self, ctx:JavaParser.ClassBodyContext): + pass + + # Exit a parse tree produced by JavaParser#classBody. + def exitClassBody(self, ctx:JavaParser.ClassBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceBody. + def enterInterfaceBody(self, ctx:JavaParser.InterfaceBodyContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceBody. + def exitInterfaceBody(self, ctx:JavaParser.InterfaceBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#classBodyDeclaration. + def enterClassBodyDeclaration(self, ctx:JavaParser.ClassBodyDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#classBodyDeclaration. + def exitClassBodyDeclaration(self, ctx:JavaParser.ClassBodyDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#memberDeclaration. + def enterMemberDeclaration(self, ctx:JavaParser.MemberDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#memberDeclaration. + def exitMemberDeclaration(self, ctx:JavaParser.MemberDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#methodDeclaration. + def enterMethodDeclaration(self, ctx:JavaParser.MethodDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#methodDeclaration. + def exitMethodDeclaration(self, ctx:JavaParser.MethodDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#methodBody. + def enterMethodBody(self, ctx:JavaParser.MethodBodyContext): + pass + + # Exit a parse tree produced by JavaParser#methodBody. + def exitMethodBody(self, ctx:JavaParser.MethodBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#typeTypeOrVoid. + def enterTypeTypeOrVoid(self, ctx:JavaParser.TypeTypeOrVoidContext): + pass + + # Exit a parse tree produced by JavaParser#typeTypeOrVoid. + def exitTypeTypeOrVoid(self, ctx:JavaParser.TypeTypeOrVoidContext): + pass + + + # Enter a parse tree produced by JavaParser#genericMethodDeclaration. + def enterGenericMethodDeclaration(self, ctx:JavaParser.GenericMethodDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#genericMethodDeclaration. + def exitGenericMethodDeclaration(self, ctx:JavaParser.GenericMethodDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#genericConstructorDeclaration. + def enterGenericConstructorDeclaration(self, ctx:JavaParser.GenericConstructorDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#genericConstructorDeclaration. + def exitGenericConstructorDeclaration(self, ctx:JavaParser.GenericConstructorDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#constructorDeclaration. + def enterConstructorDeclaration(self, ctx:JavaParser.ConstructorDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#constructorDeclaration. + def exitConstructorDeclaration(self, ctx:JavaParser.ConstructorDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#fieldDeclaration. + def enterFieldDeclaration(self, ctx:JavaParser.FieldDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#fieldDeclaration. + def exitFieldDeclaration(self, ctx:JavaParser.FieldDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceBodyDeclaration. + def enterInterfaceBodyDeclaration(self, ctx:JavaParser.InterfaceBodyDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceBodyDeclaration. + def exitInterfaceBodyDeclaration(self, ctx:JavaParser.InterfaceBodyDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceMemberDeclaration. + def enterInterfaceMemberDeclaration(self, ctx:JavaParser.InterfaceMemberDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceMemberDeclaration. + def exitInterfaceMemberDeclaration(self, ctx:JavaParser.InterfaceMemberDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#constDeclaration. + def enterConstDeclaration(self, ctx:JavaParser.ConstDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#constDeclaration. + def exitConstDeclaration(self, ctx:JavaParser.ConstDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#constantDeclarator. + def enterConstantDeclarator(self, ctx:JavaParser.ConstantDeclaratorContext): + pass + + # Exit a parse tree produced by JavaParser#constantDeclarator. + def exitConstantDeclarator(self, ctx:JavaParser.ConstantDeclaratorContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceMethodDeclaration. + def enterInterfaceMethodDeclaration(self, ctx:JavaParser.InterfaceMethodDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceMethodDeclaration. + def exitInterfaceMethodDeclaration(self, ctx:JavaParser.InterfaceMethodDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceMethodModifier. + def enterInterfaceMethodModifier(self, ctx:JavaParser.InterfaceMethodModifierContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceMethodModifier. + def exitInterfaceMethodModifier(self, ctx:JavaParser.InterfaceMethodModifierContext): + pass + + + # Enter a parse tree produced by JavaParser#genericInterfaceMethodDeclaration. + def enterGenericInterfaceMethodDeclaration(self, ctx:JavaParser.GenericInterfaceMethodDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#genericInterfaceMethodDeclaration. + def exitGenericInterfaceMethodDeclaration(self, ctx:JavaParser.GenericInterfaceMethodDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#variableDeclarators. + def enterVariableDeclarators(self, ctx:JavaParser.VariableDeclaratorsContext): + pass + + # Exit a parse tree produced by JavaParser#variableDeclarators. + def exitVariableDeclarators(self, ctx:JavaParser.VariableDeclaratorsContext): + pass + + + # Enter a parse tree produced by JavaParser#variableDeclarator. + def enterVariableDeclarator(self, ctx:JavaParser.VariableDeclaratorContext): + pass + + # Exit a parse tree produced by JavaParser#variableDeclarator. + def exitVariableDeclarator(self, ctx:JavaParser.VariableDeclaratorContext): + pass + + + # Enter a parse tree produced by JavaParser#variableDeclaratorId. + def enterVariableDeclaratorId(self, ctx:JavaParser.VariableDeclaratorIdContext): + pass + + # Exit a parse tree produced by JavaParser#variableDeclaratorId. + def exitVariableDeclaratorId(self, ctx:JavaParser.VariableDeclaratorIdContext): + pass + + + # Enter a parse tree produced by JavaParser#variableInitializer. + def enterVariableInitializer(self, ctx:JavaParser.VariableInitializerContext): + pass + + # Exit a parse tree produced by JavaParser#variableInitializer. + def exitVariableInitializer(self, ctx:JavaParser.VariableInitializerContext): + pass + + + # Enter a parse tree produced by JavaParser#arrayInitializer. + def enterArrayInitializer(self, ctx:JavaParser.ArrayInitializerContext): + pass + + # Exit a parse tree produced by JavaParser#arrayInitializer. + def exitArrayInitializer(self, ctx:JavaParser.ArrayInitializerContext): + pass + + + # Enter a parse tree produced by JavaParser#classOrInterfaceType. + def enterClassOrInterfaceType(self, ctx:JavaParser.ClassOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by JavaParser#classOrInterfaceType. + def exitClassOrInterfaceType(self, ctx:JavaParser.ClassOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#typeArgument. + def enterTypeArgument(self, ctx:JavaParser.TypeArgumentContext): + pass + + # Exit a parse tree produced by JavaParser#typeArgument. + def exitTypeArgument(self, ctx:JavaParser.TypeArgumentContext): + pass + + + # Enter a parse tree produced by JavaParser#qualifiedNameList. + def enterQualifiedNameList(self, ctx:JavaParser.QualifiedNameListContext): + pass + + # Exit a parse tree produced by JavaParser#qualifiedNameList. + def exitQualifiedNameList(self, ctx:JavaParser.QualifiedNameListContext): + pass + + + # Enter a parse tree produced by JavaParser#formalParameters. + def enterFormalParameters(self, ctx:JavaParser.FormalParametersContext): + pass + + # Exit a parse tree produced by JavaParser#formalParameters. + def exitFormalParameters(self, ctx:JavaParser.FormalParametersContext): + pass + + + # Enter a parse tree produced by JavaParser#formalParameterList. + def enterFormalParameterList(self, ctx:JavaParser.FormalParameterListContext): + pass + + # Exit a parse tree produced by JavaParser#formalParameterList. + def exitFormalParameterList(self, ctx:JavaParser.FormalParameterListContext): + pass + + + # Enter a parse tree produced by JavaParser#formalParameter. + def enterFormalParameter(self, ctx:JavaParser.FormalParameterContext): + pass + + # Exit a parse tree produced by JavaParser#formalParameter. + def exitFormalParameter(self, ctx:JavaParser.FormalParameterContext): + pass + + + # Enter a parse tree produced by JavaParser#lastFormalParameter. + def enterLastFormalParameter(self, ctx:JavaParser.LastFormalParameterContext): + pass + + # Exit a parse tree produced by JavaParser#lastFormalParameter. + def exitLastFormalParameter(self, ctx:JavaParser.LastFormalParameterContext): + pass + + + # Enter a parse tree produced by JavaParser#qualifiedName. + def enterQualifiedName(self, ctx:JavaParser.QualifiedNameContext): + pass + + # Exit a parse tree produced by JavaParser#qualifiedName. + def exitQualifiedName(self, ctx:JavaParser.QualifiedNameContext): + pass + + + # Enter a parse tree produced by JavaParser#literal. + def enterLiteral(self, ctx:JavaParser.LiteralContext): + pass + + # Exit a parse tree produced by JavaParser#literal. + def exitLiteral(self, ctx:JavaParser.LiteralContext): + pass + + + # Enter a parse tree produced by JavaParser#integerLiteral. + def enterIntegerLiteral(self, ctx:JavaParser.IntegerLiteralContext): + pass + + # Exit a parse tree produced by JavaParser#integerLiteral. + def exitIntegerLiteral(self, ctx:JavaParser.IntegerLiteralContext): + pass + + + # Enter a parse tree produced by JavaParser#floatLiteral. + def enterFloatLiteral(self, ctx:JavaParser.FloatLiteralContext): + pass + + # Exit a parse tree produced by JavaParser#floatLiteral. + def exitFloatLiteral(self, ctx:JavaParser.FloatLiteralContext): + pass + + + # Enter a parse tree produced by JavaParser#altAnnotationQualifiedName. + def enterAltAnnotationQualifiedName(self, ctx:JavaParser.AltAnnotationQualifiedNameContext): + pass + + # Exit a parse tree produced by JavaParser#altAnnotationQualifiedName. + def exitAltAnnotationQualifiedName(self, ctx:JavaParser.AltAnnotationQualifiedNameContext): + pass + + + # Enter a parse tree produced by JavaParser#annotation. + def enterAnnotation(self, ctx:JavaParser.AnnotationContext): + pass + + # Exit a parse tree produced by JavaParser#annotation. + def exitAnnotation(self, ctx:JavaParser.AnnotationContext): + pass + + + # Enter a parse tree produced by JavaParser#elementValuePairs. + def enterElementValuePairs(self, ctx:JavaParser.ElementValuePairsContext): + pass + + # Exit a parse tree produced by JavaParser#elementValuePairs. + def exitElementValuePairs(self, ctx:JavaParser.ElementValuePairsContext): + pass + + + # Enter a parse tree produced by JavaParser#elementValuePair. + def enterElementValuePair(self, ctx:JavaParser.ElementValuePairContext): + pass + + # Exit a parse tree produced by JavaParser#elementValuePair. + def exitElementValuePair(self, ctx:JavaParser.ElementValuePairContext): + pass + + + # Enter a parse tree produced by JavaParser#elementValue. + def enterElementValue(self, ctx:JavaParser.ElementValueContext): + pass + + # Exit a parse tree produced by JavaParser#elementValue. + def exitElementValue(self, ctx:JavaParser.ElementValueContext): + pass + + + # Enter a parse tree produced by JavaParser#elementValueArrayInitializer. + def enterElementValueArrayInitializer(self, ctx:JavaParser.ElementValueArrayInitializerContext): + pass + + # Exit a parse tree produced by JavaParser#elementValueArrayInitializer. + def exitElementValueArrayInitializer(self, ctx:JavaParser.ElementValueArrayInitializerContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationTypeDeclaration. + def enterAnnotationTypeDeclaration(self, ctx:JavaParser.AnnotationTypeDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#annotationTypeDeclaration. + def exitAnnotationTypeDeclaration(self, ctx:JavaParser.AnnotationTypeDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationTypeBody. + def enterAnnotationTypeBody(self, ctx:JavaParser.AnnotationTypeBodyContext): + pass + + # Exit a parse tree produced by JavaParser#annotationTypeBody. + def exitAnnotationTypeBody(self, ctx:JavaParser.AnnotationTypeBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationTypeElementDeclaration. + def enterAnnotationTypeElementDeclaration(self, ctx:JavaParser.AnnotationTypeElementDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#annotationTypeElementDeclaration. + def exitAnnotationTypeElementDeclaration(self, ctx:JavaParser.AnnotationTypeElementDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationTypeElementRest. + def enterAnnotationTypeElementRest(self, ctx:JavaParser.AnnotationTypeElementRestContext): + pass + + # Exit a parse tree produced by JavaParser#annotationTypeElementRest. + def exitAnnotationTypeElementRest(self, ctx:JavaParser.AnnotationTypeElementRestContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationMethodOrConstantRest. + def enterAnnotationMethodOrConstantRest(self, ctx:JavaParser.AnnotationMethodOrConstantRestContext): + pass + + # Exit a parse tree produced by JavaParser#annotationMethodOrConstantRest. + def exitAnnotationMethodOrConstantRest(self, ctx:JavaParser.AnnotationMethodOrConstantRestContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationMethodRest. + def enterAnnotationMethodRest(self, ctx:JavaParser.AnnotationMethodRestContext): + pass + + # Exit a parse tree produced by JavaParser#annotationMethodRest. + def exitAnnotationMethodRest(self, ctx:JavaParser.AnnotationMethodRestContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationConstantRest. + def enterAnnotationConstantRest(self, ctx:JavaParser.AnnotationConstantRestContext): + pass + + # Exit a parse tree produced by JavaParser#annotationConstantRest. + def exitAnnotationConstantRest(self, ctx:JavaParser.AnnotationConstantRestContext): + pass + + + # Enter a parse tree produced by JavaParser#defaultValue. + def enterDefaultValue(self, ctx:JavaParser.DefaultValueContext): + pass + + # Exit a parse tree produced by JavaParser#defaultValue. + def exitDefaultValue(self, ctx:JavaParser.DefaultValueContext): + pass + + + # Enter a parse tree produced by JavaParser#block. + def enterBlock(self, ctx:JavaParser.BlockContext): + pass + + # Exit a parse tree produced by JavaParser#block. + def exitBlock(self, ctx:JavaParser.BlockContext): + pass + + + # Enter a parse tree produced by JavaParser#blockStatement. + def enterBlockStatement(self, ctx:JavaParser.BlockStatementContext): + pass + + # Exit a parse tree produced by JavaParser#blockStatement. + def exitBlockStatement(self, ctx:JavaParser.BlockStatementContext): + pass + + + # Enter a parse tree produced by JavaParser#localVariableDeclaration. + def enterLocalVariableDeclaration(self, ctx:JavaParser.LocalVariableDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#localVariableDeclaration. + def exitLocalVariableDeclaration(self, ctx:JavaParser.LocalVariableDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#localTypeDeclaration. + def enterLocalTypeDeclaration(self, ctx:JavaParser.LocalTypeDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#localTypeDeclaration. + def exitLocalTypeDeclaration(self, ctx:JavaParser.LocalTypeDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#statement. + def enterStatement(self, ctx:JavaParser.StatementContext): + pass + + # Exit a parse tree produced by JavaParser#statement. + def exitStatement(self, ctx:JavaParser.StatementContext): + pass + + + # Enter a parse tree produced by JavaParser#catchClause. + def enterCatchClause(self, ctx:JavaParser.CatchClauseContext): + pass + + # Exit a parse tree produced by JavaParser#catchClause. + def exitCatchClause(self, ctx:JavaParser.CatchClauseContext): + pass + + + # Enter a parse tree produced by JavaParser#catchType. + def enterCatchType(self, ctx:JavaParser.CatchTypeContext): + pass + + # Exit a parse tree produced by JavaParser#catchType. + def exitCatchType(self, ctx:JavaParser.CatchTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#finallyBlock. + def enterFinallyBlock(self, ctx:JavaParser.FinallyBlockContext): + pass + + # Exit a parse tree produced by JavaParser#finallyBlock. + def exitFinallyBlock(self, ctx:JavaParser.FinallyBlockContext): + pass + + + # Enter a parse tree produced by JavaParser#resourceSpecification. + def enterResourceSpecification(self, ctx:JavaParser.ResourceSpecificationContext): + pass + + # Exit a parse tree produced by JavaParser#resourceSpecification. + def exitResourceSpecification(self, ctx:JavaParser.ResourceSpecificationContext): + pass + + + # Enter a parse tree produced by JavaParser#resources. + def enterResources(self, ctx:JavaParser.ResourcesContext): + pass + + # Exit a parse tree produced by JavaParser#resources. + def exitResources(self, ctx:JavaParser.ResourcesContext): + pass + + + # Enter a parse tree produced by JavaParser#resource. + def enterResource(self, ctx:JavaParser.ResourceContext): + pass + + # Exit a parse tree produced by JavaParser#resource. + def exitResource(self, ctx:JavaParser.ResourceContext): + pass + + + # Enter a parse tree produced by JavaParser#switchBlockStatementGroup. + def enterSwitchBlockStatementGroup(self, ctx:JavaParser.SwitchBlockStatementGroupContext): + pass + + # Exit a parse tree produced by JavaParser#switchBlockStatementGroup. + def exitSwitchBlockStatementGroup(self, ctx:JavaParser.SwitchBlockStatementGroupContext): + pass + + + # Enter a parse tree produced by JavaParser#switchLabel. + def enterSwitchLabel(self, ctx:JavaParser.SwitchLabelContext): + pass + + # Exit a parse tree produced by JavaParser#switchLabel. + def exitSwitchLabel(self, ctx:JavaParser.SwitchLabelContext): + pass + + + # Enter a parse tree produced by JavaParser#forControl. + def enterForControl(self, ctx:JavaParser.ForControlContext): + pass + + # Exit a parse tree produced by JavaParser#forControl. + def exitForControl(self, ctx:JavaParser.ForControlContext): + pass + + + # Enter a parse tree produced by JavaParser#forInit. + def enterForInit(self, ctx:JavaParser.ForInitContext): + pass + + # Exit a parse tree produced by JavaParser#forInit. + def exitForInit(self, ctx:JavaParser.ForInitContext): + pass + + + # Enter a parse tree produced by JavaParser#enhancedForControl. + def enterEnhancedForControl(self, ctx:JavaParser.EnhancedForControlContext): + pass + + # Exit a parse tree produced by JavaParser#enhancedForControl. + def exitEnhancedForControl(self, ctx:JavaParser.EnhancedForControlContext): + pass + + + # Enter a parse tree produced by JavaParser#parExpression. + def enterParExpression(self, ctx:JavaParser.ParExpressionContext): + pass + + # Exit a parse tree produced by JavaParser#parExpression. + def exitParExpression(self, ctx:JavaParser.ParExpressionContext): + pass + + + # Enter a parse tree produced by JavaParser#expressionList. + def enterExpressionList(self, ctx:JavaParser.ExpressionListContext): + pass + + # Exit a parse tree produced by JavaParser#expressionList. + def exitExpressionList(self, ctx:JavaParser.ExpressionListContext): + pass + + + # Enter a parse tree produced by JavaParser#methodCall. + def enterMethodCall(self, ctx:JavaParser.MethodCallContext): + pass + + # Exit a parse tree produced by JavaParser#methodCall. + def exitMethodCall(self, ctx:JavaParser.MethodCallContext): + pass + + + # Enter a parse tree produced by JavaParser#expression. + def enterExpression(self, ctx:JavaParser.ExpressionContext): + pass + + # Exit a parse tree produced by JavaParser#expression. + def exitExpression(self, ctx:JavaParser.ExpressionContext): + pass + + + # Enter a parse tree produced by JavaParser#lambdaExpression. + def enterLambdaExpression(self, ctx:JavaParser.LambdaExpressionContext): + pass + + # Exit a parse tree produced by JavaParser#lambdaExpression. + def exitLambdaExpression(self, ctx:JavaParser.LambdaExpressionContext): + pass + + + # Enter a parse tree produced by JavaParser#lambdaParameters. + def enterLambdaParameters(self, ctx:JavaParser.LambdaParametersContext): + pass + + # Exit a parse tree produced by JavaParser#lambdaParameters. + def exitLambdaParameters(self, ctx:JavaParser.LambdaParametersContext): + pass + + + # Enter a parse tree produced by JavaParser#lambdaBody. + def enterLambdaBody(self, ctx:JavaParser.LambdaBodyContext): + pass + + # Exit a parse tree produced by JavaParser#lambdaBody. + def exitLambdaBody(self, ctx:JavaParser.LambdaBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#primary. + def enterPrimary(self, ctx:JavaParser.PrimaryContext): + pass + + # Exit a parse tree produced by JavaParser#primary. + def exitPrimary(self, ctx:JavaParser.PrimaryContext): + pass + + + # Enter a parse tree produced by JavaParser#classType. + def enterClassType(self, ctx:JavaParser.ClassTypeContext): + pass + + # Exit a parse tree produced by JavaParser#classType. + def exitClassType(self, ctx:JavaParser.ClassTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#creator. + def enterCreator(self, ctx:JavaParser.CreatorContext): + pass + + # Exit a parse tree produced by JavaParser#creator. + def exitCreator(self, ctx:JavaParser.CreatorContext): + pass + + + # Enter a parse tree produced by JavaParser#createdName. + def enterCreatedName(self, ctx:JavaParser.CreatedNameContext): + pass + + # Exit a parse tree produced by JavaParser#createdName. + def exitCreatedName(self, ctx:JavaParser.CreatedNameContext): + pass + + + # Enter a parse tree produced by JavaParser#innerCreator. + def enterInnerCreator(self, ctx:JavaParser.InnerCreatorContext): + pass + + # Exit a parse tree produced by JavaParser#innerCreator. + def exitInnerCreator(self, ctx:JavaParser.InnerCreatorContext): + pass + + + # Enter a parse tree produced by JavaParser#arrayCreatorRest. + def enterArrayCreatorRest(self, ctx:JavaParser.ArrayCreatorRestContext): + pass + + # Exit a parse tree produced by JavaParser#arrayCreatorRest. + def exitArrayCreatorRest(self, ctx:JavaParser.ArrayCreatorRestContext): + pass + + + # Enter a parse tree produced by JavaParser#classCreatorRest. + def enterClassCreatorRest(self, ctx:JavaParser.ClassCreatorRestContext): + pass + + # Exit a parse tree produced by JavaParser#classCreatorRest. + def exitClassCreatorRest(self, ctx:JavaParser.ClassCreatorRestContext): + pass + + + # Enter a parse tree produced by JavaParser#explicitGenericInvocation. + def enterExplicitGenericInvocation(self, ctx:JavaParser.ExplicitGenericInvocationContext): + pass + + # Exit a parse tree produced by JavaParser#explicitGenericInvocation. + def exitExplicitGenericInvocation(self, ctx:JavaParser.ExplicitGenericInvocationContext): + pass + + + # Enter a parse tree produced by JavaParser#typeArgumentsOrDiamond. + def enterTypeArgumentsOrDiamond(self, ctx:JavaParser.TypeArgumentsOrDiamondContext): + pass + + # Exit a parse tree produced by JavaParser#typeArgumentsOrDiamond. + def exitTypeArgumentsOrDiamond(self, ctx:JavaParser.TypeArgumentsOrDiamondContext): + pass + + + # Enter a parse tree produced by JavaParser#nonWildcardTypeArgumentsOrDiamond. + def enterNonWildcardTypeArgumentsOrDiamond(self, ctx:JavaParser.NonWildcardTypeArgumentsOrDiamondContext): + pass + + # Exit a parse tree produced by JavaParser#nonWildcardTypeArgumentsOrDiamond. + def exitNonWildcardTypeArgumentsOrDiamond(self, ctx:JavaParser.NonWildcardTypeArgumentsOrDiamondContext): + pass + + + # Enter a parse tree produced by JavaParser#nonWildcardTypeArguments. + def enterNonWildcardTypeArguments(self, ctx:JavaParser.NonWildcardTypeArgumentsContext): + pass + + # Exit a parse tree produced by JavaParser#nonWildcardTypeArguments. + def exitNonWildcardTypeArguments(self, ctx:JavaParser.NonWildcardTypeArgumentsContext): + pass + + + # Enter a parse tree produced by JavaParser#typeList. + def enterTypeList(self, ctx:JavaParser.TypeListContext): + pass + + # Exit a parse tree produced by JavaParser#typeList. + def exitTypeList(self, ctx:JavaParser.TypeListContext): + pass + + + # Enter a parse tree produced by JavaParser#typeType. + def enterTypeType(self, ctx:JavaParser.TypeTypeContext): + pass + + # Exit a parse tree produced by JavaParser#typeType. + def exitTypeType(self, ctx:JavaParser.TypeTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#primitiveType. + def enterPrimitiveType(self, ctx:JavaParser.PrimitiveTypeContext): + pass + + # Exit a parse tree produced by JavaParser#primitiveType. + def exitPrimitiveType(self, ctx:JavaParser.PrimitiveTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#typeArguments. + def enterTypeArguments(self, ctx:JavaParser.TypeArgumentsContext): + pass + + # Exit a parse tree produced by JavaParser#typeArguments. + def exitTypeArguments(self, ctx:JavaParser.TypeArgumentsContext): + pass + + + # Enter a parse tree produced by JavaParser#superSuffix. + def enterSuperSuffix(self, ctx:JavaParser.SuperSuffixContext): + pass + + # Exit a parse tree produced by JavaParser#superSuffix. + def exitSuperSuffix(self, ctx:JavaParser.SuperSuffixContext): + pass + + + # Enter a parse tree produced by JavaParser#explicitGenericInvocationSuffix. + def enterExplicitGenericInvocationSuffix(self, ctx:JavaParser.ExplicitGenericInvocationSuffixContext): + pass + + # Exit a parse tree produced by JavaParser#explicitGenericInvocationSuffix. + def exitExplicitGenericInvocationSuffix(self, ctx:JavaParser.ExplicitGenericInvocationSuffixContext): + pass + + + # Enter a parse tree produced by JavaParser#arguments. + def enterArguments(self, ctx:JavaParser.ArgumentsContext): + pass + + # Exit a parse tree produced by JavaParser#arguments. + def exitArguments(self, ctx:JavaParser.ArgumentsContext): + pass + + diff --git a/java2python/lang/JavadocLexer.g4 b/java2python/lang/JavadocLexer.g4 new file mode 100644 index 0000000..2cde3f3 --- /dev/null +++ b/java2python/lang/JavadocLexer.g4 @@ -0,0 +1,79 @@ +/* + [The "BSD licence"] + Copyright (c) 2016 Pascal Gruen + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +lexer grammar JavadocLexer; + +NAME + : [a-zA-Z]+ + ; + +NEWLINE + : '\n' (SPACE? (STAR {_input.LA(1) != '/'}?)+)? + | '\r\n' (SPACE? (STAR {_input.LA(1) != '/'}?)+)? + | '\r' (SPACE? (STAR {_input.LA(1) != '/'}?)+)? + ; + +SPACE + : (' '|'\t')+ + ; + +TEXT_CONTENT + : ~[\n\r\t @*{}/a-zA-Z]+ + ; + +AT + : '@' + ; + +STAR + : '*' + ; + +SLASH + : '/' + ; + +JAVADOC_START + : '/**' STAR* + ; + +JAVADOC_END + : SPACE? STAR* '*/' + ; + +INLINE_TAG_START + : '{@' + ; + +BRACE_OPEN + : '{' + ; + +BRACE_CLOSE + : '}' + ; diff --git a/java2python/lang/JavadocLexer.interp b/java2python/lang/JavadocLexer.interp new file mode 100644 index 0000000..d4b55f6 --- /dev/null +++ b/java2python/lang/JavadocLexer.interp @@ -0,0 +1,53 @@ +token literal names: +null +null +null +null +null +'@' +'*' +'/' +null +null +'{@' +'{' +'}' + +token symbolic names: +null +NAME +NEWLINE +SPACE +TEXT_CONTENT +AT +STAR +SLASH +JAVADOC_START +JAVADOC_END +INLINE_TAG_START +BRACE_OPEN +BRACE_CLOSE + +rule names: +NAME +NEWLINE +SPACE +TEXT_CONTENT +AT +STAR +SLASH +JAVADOC_START +JAVADOC_END +INLINE_TAG_START +BRACE_OPEN +BRACE_CLOSE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 14, 120, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 3, 2, 6, 2, 29, 10, 2, 13, 2, 14, 2, 30, 3, 3, 3, 3, 5, 3, 35, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 40, 10, 3, 13, 3, 14, 3, 41, 5, 3, 44, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 50, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 55, 10, 3, 13, 3, 14, 3, 56, 5, 3, 59, 10, 3, 3, 3, 3, 3, 5, 3, 63, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 68, 10, 3, 13, 3, 14, 3, 69, 5, 3, 72, 10, 3, 5, 3, 74, 10, 3, 3, 4, 6, 4, 77, 10, 4, 13, 4, 14, 4, 78, 3, 5, 6, 5, 82, 10, 5, 13, 5, 14, 5, 83, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 7, 9, 97, 10, 9, 12, 9, 14, 9, 100, 11, 9, 3, 10, 5, 10, 103, 10, 10, 3, 10, 7, 10, 106, 10, 10, 12, 10, 14, 10, 109, 11, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 2, 2, 14, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 3, 2, 5, 4, 2, 67, 92, 99, 124, 4, 2, 11, 11, 34, 34, 10, 2, 11, 12, 15, 15, 34, 34, 44, 44, 49, 49, 66, 92, 99, 125, 127, 127, 2, 136, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 3, 28, 3, 2, 2, 2, 5, 73, 3, 2, 2, 2, 7, 76, 3, 2, 2, 2, 9, 81, 3, 2, 2, 2, 11, 85, 3, 2, 2, 2, 13, 87, 3, 2, 2, 2, 15, 89, 3, 2, 2, 2, 17, 91, 3, 2, 2, 2, 19, 102, 3, 2, 2, 2, 21, 113, 3, 2, 2, 2, 23, 116, 3, 2, 2, 2, 25, 118, 3, 2, 2, 2, 27, 29, 9, 2, 2, 2, 28, 27, 3, 2, 2, 2, 29, 30, 3, 2, 2, 2, 30, 28, 3, 2, 2, 2, 30, 31, 3, 2, 2, 2, 31, 4, 3, 2, 2, 2, 32, 43, 7, 12, 2, 2, 33, 35, 5, 7, 4, 2, 34, 33, 3, 2, 2, 2, 34, 35, 3, 2, 2, 2, 35, 39, 3, 2, 2, 2, 36, 37, 5, 13, 7, 2, 37, 38, 6, 3, 2, 2, 38, 40, 3, 2, 2, 2, 39, 36, 3, 2, 2, 2, 40, 41, 3, 2, 2, 2, 41, 39, 3, 2, 2, 2, 41, 42, 3, 2, 2, 2, 42, 44, 3, 2, 2, 2, 43, 34, 3, 2, 2, 2, 43, 44, 3, 2, 2, 2, 44, 74, 3, 2, 2, 2, 45, 46, 7, 15, 2, 2, 46, 47, 7, 12, 2, 2, 47, 58, 3, 2, 2, 2, 48, 50, 5, 7, 4, 2, 49, 48, 3, 2, 2, 2, 49, 50, 3, 2, 2, 2, 50, 54, 3, 2, 2, 2, 51, 52, 5, 13, 7, 2, 52, 53, 6, 3, 3, 2, 53, 55, 3, 2, 2, 2, 54, 51, 3, 2, 2, 2, 55, 56, 3, 2, 2, 2, 56, 54, 3, 2, 2, 2, 56, 57, 3, 2, 2, 2, 57, 59, 3, 2, 2, 2, 58, 49, 3, 2, 2, 2, 58, 59, 3, 2, 2, 2, 59, 74, 3, 2, 2, 2, 60, 71, 7, 15, 2, 2, 61, 63, 5, 7, 4, 2, 62, 61, 3, 2, 2, 2, 62, 63, 3, 2, 2, 2, 63, 67, 3, 2, 2, 2, 64, 65, 5, 13, 7, 2, 65, 66, 6, 3, 4, 2, 66, 68, 3, 2, 2, 2, 67, 64, 3, 2, 2, 2, 68, 69, 3, 2, 2, 2, 69, 67, 3, 2, 2, 2, 69, 70, 3, 2, 2, 2, 70, 72, 3, 2, 2, 2, 71, 62, 3, 2, 2, 2, 71, 72, 3, 2, 2, 2, 72, 74, 3, 2, 2, 2, 73, 32, 3, 2, 2, 2, 73, 45, 3, 2, 2, 2, 73, 60, 3, 2, 2, 2, 74, 6, 3, 2, 2, 2, 75, 77, 9, 3, 2, 2, 76, 75, 3, 2, 2, 2, 77, 78, 3, 2, 2, 2, 78, 76, 3, 2, 2, 2, 78, 79, 3, 2, 2, 2, 79, 8, 3, 2, 2, 2, 80, 82, 10, 4, 2, 2, 81, 80, 3, 2, 2, 2, 82, 83, 3, 2, 2, 2, 83, 81, 3, 2, 2, 2, 83, 84, 3, 2, 2, 2, 84, 10, 3, 2, 2, 2, 85, 86, 7, 66, 2, 2, 86, 12, 3, 2, 2, 2, 87, 88, 7, 44, 2, 2, 88, 14, 3, 2, 2, 2, 89, 90, 7, 49, 2, 2, 90, 16, 3, 2, 2, 2, 91, 92, 7, 49, 2, 2, 92, 93, 7, 44, 2, 2, 93, 94, 7, 44, 2, 2, 94, 98, 3, 2, 2, 2, 95, 97, 5, 13, 7, 2, 96, 95, 3, 2, 2, 2, 97, 100, 3, 2, 2, 2, 98, 96, 3, 2, 2, 2, 98, 99, 3, 2, 2, 2, 99, 18, 3, 2, 2, 2, 100, 98, 3, 2, 2, 2, 101, 103, 5, 7, 4, 2, 102, 101, 3, 2, 2, 2, 102, 103, 3, 2, 2, 2, 103, 107, 3, 2, 2, 2, 104, 106, 5, 13, 7, 2, 105, 104, 3, 2, 2, 2, 106, 109, 3, 2, 2, 2, 107, 105, 3, 2, 2, 2, 107, 108, 3, 2, 2, 2, 108, 110, 3, 2, 2, 2, 109, 107, 3, 2, 2, 2, 110, 111, 7, 44, 2, 2, 111, 112, 7, 49, 2, 2, 112, 20, 3, 2, 2, 2, 113, 114, 7, 125, 2, 2, 114, 115, 7, 66, 2, 2, 115, 22, 3, 2, 2, 2, 116, 117, 7, 125, 2, 2, 117, 24, 3, 2, 2, 2, 118, 119, 7, 127, 2, 2, 119, 26, 3, 2, 2, 2, 19, 2, 30, 34, 41, 43, 49, 56, 58, 62, 69, 71, 73, 78, 83, 98, 102, 107, 2] \ No newline at end of file diff --git a/java2python/lang/JavadocLexer.py b/java2python/lang/JavadocLexer.py new file mode 100644 index 0000000..2ed4381 --- /dev/null +++ b/java2python/lang/JavadocLexer.py @@ -0,0 +1,124 @@ +# Generated from JavadocLexer.g4 by ANTLR 4.7.2 +from antlr4 import * +from io import StringIO +from typing.io import TextIO +import sys + + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\16") + buf.write("x\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\3\2") + buf.write("\6\2\35\n\2\r\2\16\2\36\3\3\3\3\5\3#\n\3\3\3\3\3\3\3\6") + buf.write("\3(\n\3\r\3\16\3)\5\3,\n\3\3\3\3\3\3\3\3\3\5\3\62\n\3") + buf.write("\3\3\3\3\3\3\6\3\67\n\3\r\3\16\38\5\3;\n\3\3\3\3\3\5\3") + buf.write("?\n\3\3\3\3\3\3\3\6\3D\n\3\r\3\16\3E\5\3H\n\3\5\3J\n\3") + buf.write("\3\4\6\4M\n\4\r\4\16\4N\3\5\6\5R\n\5\r\5\16\5S\3\6\3\6") + buf.write("\3\7\3\7\3\b\3\b\3\t\3\t\3\t\3\t\3\t\7\ta\n\t\f\t\16\t") + buf.write("d\13\t\3\n\5\ng\n\n\3\n\7\nj\n\n\f\n\16\nm\13\n\3\n\3") + buf.write("\n\3\n\3\13\3\13\3\13\3\f\3\f\3\r\3\r\2\2\16\3\3\5\4\7") + buf.write("\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\3\2\5") + buf.write("\4\2C\\c|\4\2\13\13\"\"\n\2\13\f\17\17\"\",,\61\61B\\") + buf.write("c}\177\177\2\u0088\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2") + buf.write("\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21") + buf.write("\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3") + buf.write("\2\2\2\3\34\3\2\2\2\5I\3\2\2\2\7L\3\2\2\2\tQ\3\2\2\2\13") + buf.write("U\3\2\2\2\rW\3\2\2\2\17Y\3\2\2\2\21[\3\2\2\2\23f\3\2\2") + buf.write("\2\25q\3\2\2\2\27t\3\2\2\2\31v\3\2\2\2\33\35\t\2\2\2\34") + buf.write("\33\3\2\2\2\35\36\3\2\2\2\36\34\3\2\2\2\36\37\3\2\2\2") + buf.write("\37\4\3\2\2\2 +\7\f\2\2!#\5\7\4\2\"!\3\2\2\2\"#\3\2\2") + buf.write("\2#\'\3\2\2\2$%\5\r\7\2%&\6\3\2\2&(\3\2\2\2\'$\3\2\2\2") + buf.write("()\3\2\2\2)\'\3\2\2\2)*\3\2\2\2*,\3\2\2\2+\"\3\2\2\2+") + buf.write(",\3\2\2\2,J\3\2\2\2-.\7\17\2\2./\7\f\2\2/:\3\2\2\2\60") + buf.write("\62\5\7\4\2\61\60\3\2\2\2\61\62\3\2\2\2\62\66\3\2\2\2") + buf.write("\63\64\5\r\7\2\64\65\6\3\3\2\65\67\3\2\2\2\66\63\3\2\2") + buf.write("\2\678\3\2\2\28\66\3\2\2\289\3\2\2\29;\3\2\2\2:\61\3\2") + buf.write("\2\2:;\3\2\2\2;J\3\2\2\2=\3\2\2") + buf.write("\2>?\3\2\2\2?C\3\2\2\2@A\5\r\7\2AB\6\3\4\2BD\3\2\2\2C") + buf.write("@\3\2\2\2DE\3\2\2\2EC\3\2\2\2EF\3\2\2\2FH\3\2\2\2G>\3") + buf.write("\2\2\2GH\3\2\2\2HJ\3\2\2\2I \3\2\2\2I-\3\2\2\2I<\3\2\2") + buf.write("\2J\6\3\2\2\2KM\t\3\2\2LK\3\2\2\2MN\3\2\2\2NL\3\2\2\2") + buf.write("NO\3\2\2\2O\b\3\2\2\2PR\n\4\2\2QP\3\2\2\2RS\3\2\2\2SQ") + buf.write("\3\2\2\2ST\3\2\2\2T\n\3\2\2\2UV\7B\2\2V\f\3\2\2\2WX\7") + buf.write(",\2\2X\16\3\2\2\2YZ\7\61\2\2Z\20\3\2\2\2[\\\7\61\2\2\\") + buf.write("]\7,\2\2]^\7,\2\2^b\3\2\2\2_a\5\r\7\2`_\3\2\2\2ad\3\2") + buf.write("\2\2b`\3\2\2\2bc\3\2\2\2c\22\3\2\2\2db\3\2\2\2eg\5\7\4") + buf.write("\2fe\3\2\2\2fg\3\2\2\2gk\3\2\2\2hj\5\r\7\2ih\3\2\2\2j") + buf.write("m\3\2\2\2ki\3\2\2\2kl\3\2\2\2ln\3\2\2\2mk\3\2\2\2no\7") + buf.write(",\2\2op\7\61\2\2p\24\3\2\2\2qr\7}\2\2rs\7B\2\2s\26\3\2") + buf.write("\2\2tu\7}\2\2u\30\3\2\2\2vw\7\177\2\2w\32\3\2\2\2\23\2") + buf.write("\36\")+\618:>EGINSbfk\2") + return buf.getvalue() + + +class JavadocLexer(Lexer): + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + NAME = 1 + NEWLINE = 2 + SPACE = 3 + TEXT_CONTENT = 4 + AT = 5 + STAR = 6 + SLASH = 7 + JAVADOC_START = 8 + JAVADOC_END = 9 + INLINE_TAG_START = 10 + BRACE_OPEN = 11 + BRACE_CLOSE = 12 + + channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] + + modeNames = [ "DEFAULT_MODE" ] + + literalNames = [ "", + "'@'", "'*'", "'/'", "'{@'", "'{'", "'}'" ] + + symbolicNames = [ "", + "NAME", "NEWLINE", "SPACE", "TEXT_CONTENT", "AT", "STAR", "SLASH", + "JAVADOC_START", "JAVADOC_END", "INLINE_TAG_START", "BRACE_OPEN", + "BRACE_CLOSE" ] + + ruleNames = [ "NAME", "NEWLINE", "SPACE", "TEXT_CONTENT", "AT", "STAR", + "SLASH", "JAVADOC_START", "JAVADOC_END", "INLINE_TAG_START", + "BRACE_OPEN", "BRACE_CLOSE" ] + + grammarFileName = "JavadocLexer.g4" + + def __init__(self, input=None, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) + self._actions = None + self._predicates = None + + + def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): + if self._predicates is None: + preds = dict() + preds[1] = self.NEWLINE_sempred + self._predicates = preds + pred = self._predicates.get(ruleIndex, None) + if pred is not None: + return pred(localctx, predIndex) + else: + raise Exception("No registered predicate for:" + str(ruleIndex)) + + def NEWLINE_sempred(self, localctx:RuleContext, predIndex:int): + if predIndex == 0: + return _input.LA(1) != '/' + + + if predIndex == 1: + return _input.LA(1) != '/' + + + if predIndex == 2: + return _input.LA(1) != '/' + + + diff --git a/java2python/lang/JavadocLexer.tokens b/java2python/lang/JavadocLexer.tokens new file mode 100644 index 0000000..39ad57e --- /dev/null +++ b/java2python/lang/JavadocLexer.tokens @@ -0,0 +1,18 @@ +NAME=1 +NEWLINE=2 +SPACE=3 +TEXT_CONTENT=4 +AT=5 +STAR=6 +SLASH=7 +JAVADOC_START=8 +JAVADOC_END=9 +INLINE_TAG_START=10 +BRACE_OPEN=11 +BRACE_CLOSE=12 +'@'=5 +'*'=6 +'/'=7 +'{@'=10 +'{'=11 +'}'=12 diff --git a/java2python/lang/JavadocParser.g4 b/java2python/lang/JavadocParser.g4 new file mode 100644 index 0000000..5027e5b --- /dev/null +++ b/java2python/lang/JavadocParser.g4 @@ -0,0 +1,149 @@ +/* + [The "BSD licence"] + Copyright (c) 2016 Pascal Gruen + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +parser grammar JavadocParser; + +options { tokenVocab=JavadocLexer; } + + +documentation + : EOF + | JAVADOC_START skipWhitespace* documentationContent JAVADOC_END EOF + | skipWhitespace* documentationContent EOF + ; + +documentationContent + : description skipWhitespace* + | skipWhitespace* tagSection + | description NEWLINE+ skipWhitespace* tagSection + ; + +skipWhitespace + : SPACE + | NEWLINE + ; + + +description + : descriptionLine (descriptionNewline+ descriptionLine)* + ; + +descriptionLine + : descriptionLineStart descriptionLineElement* + | inlineTag descriptionLineElement* + ; + +descriptionLineStart + : SPACE? descriptionLineNoSpaceNoAt+ (descriptionLineNoSpaceNoAt | SPACE | AT)* + ; + +descriptionLineNoSpaceNoAt + : TEXT_CONTENT + | NAME + | STAR + | SLASH + | BRACE_OPEN + | BRACE_CLOSE + ; + +descriptionLineElement + : inlineTag + | descriptionLineText + ; + +descriptionLineText + : (descriptionLineNoSpaceNoAt | SPACE | AT)+ + ; + +descriptionNewline + : NEWLINE + ; + + +tagSection + : blockTag+ + ; + +blockTag + : SPACE? AT blockTagName SPACE? blockTagContent* + ; + +blockTagName + : NAME + ; + +blockTagContent + : blockTagText + | inlineTag + | NEWLINE + ; + +blockTagText + : blockTagTextElement+ + ; + +blockTagTextElement + : TEXT_CONTENT + | NAME + | SPACE + | STAR + | SLASH + | BRACE_OPEN + | BRACE_CLOSE + ; + + +inlineTag + : INLINE_TAG_START inlineTagName SPACE* inlineTagContent? BRACE_CLOSE + ; + +inlineTagName + : NAME + ; + +inlineTagContent + : braceContent+ + ; + +braceExpression + : BRACE_OPEN braceContent* BRACE_CLOSE + ; + +braceContent + : braceExpression + | braceText (NEWLINE* braceText)* + ; + +braceText + : TEXT_CONTENT + | NAME + | SPACE + | STAR + | SLASH + | NEWLINE + ; diff --git a/java2python/lang/JavadocParser.interp b/java2python/lang/JavadocParser.interp new file mode 100644 index 0000000..52813f6 --- /dev/null +++ b/java2python/lang/JavadocParser.interp @@ -0,0 +1,57 @@ +token literal names: +null +null +null +null +null +'@' +'*' +'/' +null +null +'{@' +'{' +'}' + +token symbolic names: +null +NAME +NEWLINE +SPACE +TEXT_CONTENT +AT +STAR +SLASH +JAVADOC_START +JAVADOC_END +INLINE_TAG_START +BRACE_OPEN +BRACE_CLOSE + +rule names: +documentation +documentationContent +skipWhitespace +description +descriptionLine +descriptionLineStart +descriptionLineNoSpaceNoAt +descriptionLineElement +descriptionLineText +descriptionNewline +tagSection +blockTag +blockTagName +blockTagContent +blockTagText +blockTagTextElement +inlineTag +inlineTagName +inlineTagContent +braceExpression +braceContent +braceText + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 14, 242, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 3, 2, 3, 2, 3, 2, 7, 2, 50, 10, 2, 12, 2, 14, 2, 53, 11, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 7, 2, 60, 10, 2, 12, 2, 14, 2, 63, 11, 2, 3, 2, 3, 2, 3, 2, 5, 2, 68, 10, 2, 3, 3, 3, 3, 7, 3, 72, 10, 3, 12, 3, 14, 3, 75, 11, 3, 3, 3, 7, 3, 78, 10, 3, 12, 3, 14, 3, 81, 11, 3, 3, 3, 3, 3, 3, 3, 6, 3, 86, 10, 3, 13, 3, 14, 3, 87, 3, 3, 7, 3, 91, 10, 3, 12, 3, 14, 3, 94, 11, 3, 3, 3, 3, 3, 5, 3, 98, 10, 3, 3, 4, 3, 4, 3, 5, 3, 5, 6, 5, 104, 10, 5, 13, 5, 14, 5, 105, 3, 5, 3, 5, 7, 5, 110, 10, 5, 12, 5, 14, 5, 113, 11, 5, 3, 6, 3, 6, 7, 6, 117, 10, 6, 12, 6, 14, 6, 120, 11, 6, 3, 6, 3, 6, 7, 6, 124, 10, 6, 12, 6, 14, 6, 127, 11, 6, 5, 6, 129, 10, 6, 3, 7, 5, 7, 132, 10, 7, 3, 7, 6, 7, 135, 10, 7, 13, 7, 14, 7, 136, 3, 7, 3, 7, 3, 7, 7, 7, 142, 10, 7, 12, 7, 14, 7, 145, 11, 7, 3, 8, 3, 8, 3, 9, 3, 9, 5, 9, 151, 10, 9, 3, 10, 3, 10, 3, 10, 6, 10, 156, 10, 10, 13, 10, 14, 10, 157, 3, 11, 3, 11, 3, 12, 6, 12, 163, 10, 12, 13, 12, 14, 12, 164, 3, 13, 5, 13, 168, 10, 13, 3, 13, 3, 13, 3, 13, 5, 13, 173, 10, 13, 3, 13, 7, 13, 176, 10, 13, 12, 13, 14, 13, 179, 11, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 5, 15, 186, 10, 15, 3, 16, 6, 16, 189, 10, 16, 13, 16, 14, 16, 190, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 7, 18, 198, 10, 18, 12, 18, 14, 18, 201, 11, 18, 3, 18, 5, 18, 204, 10, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 6, 20, 211, 10, 20, 13, 20, 14, 20, 212, 3, 21, 3, 21, 7, 21, 217, 10, 21, 12, 21, 14, 21, 220, 11, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 7, 22, 227, 10, 22, 12, 22, 14, 22, 230, 11, 22, 3, 22, 7, 22, 233, 10, 22, 12, 22, 14, 22, 236, 11, 22, 5, 22, 238, 10, 22, 3, 23, 3, 23, 3, 23, 2, 2, 24, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 2, 6, 3, 2, 4, 5, 6, 2, 3, 3, 6, 6, 8, 9, 13, 14, 6, 2, 3, 3, 5, 6, 8, 9, 13, 14, 4, 2, 3, 6, 8, 9, 2, 257, 2, 67, 3, 2, 2, 2, 4, 97, 3, 2, 2, 2, 6, 99, 3, 2, 2, 2, 8, 101, 3, 2, 2, 2, 10, 128, 3, 2, 2, 2, 12, 131, 3, 2, 2, 2, 14, 146, 3, 2, 2, 2, 16, 150, 3, 2, 2, 2, 18, 155, 3, 2, 2, 2, 20, 159, 3, 2, 2, 2, 22, 162, 3, 2, 2, 2, 24, 167, 3, 2, 2, 2, 26, 180, 3, 2, 2, 2, 28, 185, 3, 2, 2, 2, 30, 188, 3, 2, 2, 2, 32, 192, 3, 2, 2, 2, 34, 194, 3, 2, 2, 2, 36, 207, 3, 2, 2, 2, 38, 210, 3, 2, 2, 2, 40, 214, 3, 2, 2, 2, 42, 237, 3, 2, 2, 2, 44, 239, 3, 2, 2, 2, 46, 68, 7, 2, 2, 3, 47, 51, 7, 10, 2, 2, 48, 50, 5, 6, 4, 2, 49, 48, 3, 2, 2, 2, 50, 53, 3, 2, 2, 2, 51, 49, 3, 2, 2, 2, 51, 52, 3, 2, 2, 2, 52, 54, 3, 2, 2, 2, 53, 51, 3, 2, 2, 2, 54, 55, 5, 4, 3, 2, 55, 56, 7, 11, 2, 2, 56, 57, 7, 2, 2, 3, 57, 68, 3, 2, 2, 2, 58, 60, 5, 6, 4, 2, 59, 58, 3, 2, 2, 2, 60, 63, 3, 2, 2, 2, 61, 59, 3, 2, 2, 2, 61, 62, 3, 2, 2, 2, 62, 64, 3, 2, 2, 2, 63, 61, 3, 2, 2, 2, 64, 65, 5, 4, 3, 2, 65, 66, 7, 2, 2, 3, 66, 68, 3, 2, 2, 2, 67, 46, 3, 2, 2, 2, 67, 47, 3, 2, 2, 2, 67, 61, 3, 2, 2, 2, 68, 3, 3, 2, 2, 2, 69, 73, 5, 8, 5, 2, 70, 72, 5, 6, 4, 2, 71, 70, 3, 2, 2, 2, 72, 75, 3, 2, 2, 2, 73, 71, 3, 2, 2, 2, 73, 74, 3, 2, 2, 2, 74, 98, 3, 2, 2, 2, 75, 73, 3, 2, 2, 2, 76, 78, 5, 6, 4, 2, 77, 76, 3, 2, 2, 2, 78, 81, 3, 2, 2, 2, 79, 77, 3, 2, 2, 2, 79, 80, 3, 2, 2, 2, 80, 82, 3, 2, 2, 2, 81, 79, 3, 2, 2, 2, 82, 98, 5, 22, 12, 2, 83, 85, 5, 8, 5, 2, 84, 86, 7, 4, 2, 2, 85, 84, 3, 2, 2, 2, 86, 87, 3, 2, 2, 2, 87, 85, 3, 2, 2, 2, 87, 88, 3, 2, 2, 2, 88, 92, 3, 2, 2, 2, 89, 91, 5, 6, 4, 2, 90, 89, 3, 2, 2, 2, 91, 94, 3, 2, 2, 2, 92, 90, 3, 2, 2, 2, 92, 93, 3, 2, 2, 2, 93, 95, 3, 2, 2, 2, 94, 92, 3, 2, 2, 2, 95, 96, 5, 22, 12, 2, 96, 98, 3, 2, 2, 2, 97, 69, 3, 2, 2, 2, 97, 79, 3, 2, 2, 2, 97, 83, 3, 2, 2, 2, 98, 5, 3, 2, 2, 2, 99, 100, 9, 2, 2, 2, 100, 7, 3, 2, 2, 2, 101, 111, 5, 10, 6, 2, 102, 104, 5, 20, 11, 2, 103, 102, 3, 2, 2, 2, 104, 105, 3, 2, 2, 2, 105, 103, 3, 2, 2, 2, 105, 106, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 108, 5, 10, 6, 2, 108, 110, 3, 2, 2, 2, 109, 103, 3, 2, 2, 2, 110, 113, 3, 2, 2, 2, 111, 109, 3, 2, 2, 2, 111, 112, 3, 2, 2, 2, 112, 9, 3, 2, 2, 2, 113, 111, 3, 2, 2, 2, 114, 118, 5, 12, 7, 2, 115, 117, 5, 16, 9, 2, 116, 115, 3, 2, 2, 2, 117, 120, 3, 2, 2, 2, 118, 116, 3, 2, 2, 2, 118, 119, 3, 2, 2, 2, 119, 129, 3, 2, 2, 2, 120, 118, 3, 2, 2, 2, 121, 125, 5, 34, 18, 2, 122, 124, 5, 16, 9, 2, 123, 122, 3, 2, 2, 2, 124, 127, 3, 2, 2, 2, 125, 123, 3, 2, 2, 2, 125, 126, 3, 2, 2, 2, 126, 129, 3, 2, 2, 2, 127, 125, 3, 2, 2, 2, 128, 114, 3, 2, 2, 2, 128, 121, 3, 2, 2, 2, 129, 11, 3, 2, 2, 2, 130, 132, 7, 5, 2, 2, 131, 130, 3, 2, 2, 2, 131, 132, 3, 2, 2, 2, 132, 134, 3, 2, 2, 2, 133, 135, 5, 14, 8, 2, 134, 133, 3, 2, 2, 2, 135, 136, 3, 2, 2, 2, 136, 134, 3, 2, 2, 2, 136, 137, 3, 2, 2, 2, 137, 143, 3, 2, 2, 2, 138, 142, 5, 14, 8, 2, 139, 142, 7, 5, 2, 2, 140, 142, 7, 7, 2, 2, 141, 138, 3, 2, 2, 2, 141, 139, 3, 2, 2, 2, 141, 140, 3, 2, 2, 2, 142, 145, 3, 2, 2, 2, 143, 141, 3, 2, 2, 2, 143, 144, 3, 2, 2, 2, 144, 13, 3, 2, 2, 2, 145, 143, 3, 2, 2, 2, 146, 147, 9, 3, 2, 2, 147, 15, 3, 2, 2, 2, 148, 151, 5, 34, 18, 2, 149, 151, 5, 18, 10, 2, 150, 148, 3, 2, 2, 2, 150, 149, 3, 2, 2, 2, 151, 17, 3, 2, 2, 2, 152, 156, 5, 14, 8, 2, 153, 156, 7, 5, 2, 2, 154, 156, 7, 7, 2, 2, 155, 152, 3, 2, 2, 2, 155, 153, 3, 2, 2, 2, 155, 154, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 155, 3, 2, 2, 2, 157, 158, 3, 2, 2, 2, 158, 19, 3, 2, 2, 2, 159, 160, 7, 4, 2, 2, 160, 21, 3, 2, 2, 2, 161, 163, 5, 24, 13, 2, 162, 161, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 162, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 23, 3, 2, 2, 2, 166, 168, 7, 5, 2, 2, 167, 166, 3, 2, 2, 2, 167, 168, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 170, 7, 7, 2, 2, 170, 172, 5, 26, 14, 2, 171, 173, 7, 5, 2, 2, 172, 171, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 177, 3, 2, 2, 2, 174, 176, 5, 28, 15, 2, 175, 174, 3, 2, 2, 2, 176, 179, 3, 2, 2, 2, 177, 175, 3, 2, 2, 2, 177, 178, 3, 2, 2, 2, 178, 25, 3, 2, 2, 2, 179, 177, 3, 2, 2, 2, 180, 181, 7, 3, 2, 2, 181, 27, 3, 2, 2, 2, 182, 186, 5, 30, 16, 2, 183, 186, 5, 34, 18, 2, 184, 186, 7, 4, 2, 2, 185, 182, 3, 2, 2, 2, 185, 183, 3, 2, 2, 2, 185, 184, 3, 2, 2, 2, 186, 29, 3, 2, 2, 2, 187, 189, 5, 32, 17, 2, 188, 187, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 188, 3, 2, 2, 2, 190, 191, 3, 2, 2, 2, 191, 31, 3, 2, 2, 2, 192, 193, 9, 4, 2, 2, 193, 33, 3, 2, 2, 2, 194, 195, 7, 12, 2, 2, 195, 199, 5, 36, 19, 2, 196, 198, 7, 5, 2, 2, 197, 196, 3, 2, 2, 2, 198, 201, 3, 2, 2, 2, 199, 197, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 200, 203, 3, 2, 2, 2, 201, 199, 3, 2, 2, 2, 202, 204, 5, 38, 20, 2, 203, 202, 3, 2, 2, 2, 203, 204, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 206, 7, 14, 2, 2, 206, 35, 3, 2, 2, 2, 207, 208, 7, 3, 2, 2, 208, 37, 3, 2, 2, 2, 209, 211, 5, 42, 22, 2, 210, 209, 3, 2, 2, 2, 211, 212, 3, 2, 2, 2, 212, 210, 3, 2, 2, 2, 212, 213, 3, 2, 2, 2, 213, 39, 3, 2, 2, 2, 214, 218, 7, 13, 2, 2, 215, 217, 5, 42, 22, 2, 216, 215, 3, 2, 2, 2, 217, 220, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 221, 3, 2, 2, 2, 220, 218, 3, 2, 2, 2, 221, 222, 7, 14, 2, 2, 222, 41, 3, 2, 2, 2, 223, 238, 5, 40, 21, 2, 224, 234, 5, 44, 23, 2, 225, 227, 7, 4, 2, 2, 226, 225, 3, 2, 2, 2, 227, 230, 3, 2, 2, 2, 228, 226, 3, 2, 2, 2, 228, 229, 3, 2, 2, 2, 229, 231, 3, 2, 2, 2, 230, 228, 3, 2, 2, 2, 231, 233, 5, 44, 23, 2, 232, 228, 3, 2, 2, 2, 233, 236, 3, 2, 2, 2, 234, 232, 3, 2, 2, 2, 234, 235, 3, 2, 2, 2, 235, 238, 3, 2, 2, 2, 236, 234, 3, 2, 2, 2, 237, 223, 3, 2, 2, 2, 237, 224, 3, 2, 2, 2, 238, 43, 3, 2, 2, 2, 239, 240, 9, 5, 2, 2, 240, 45, 3, 2, 2, 2, 35, 51, 61, 67, 73, 79, 87, 92, 97, 105, 111, 118, 125, 128, 131, 136, 141, 143, 150, 155, 157, 164, 167, 172, 177, 185, 190, 199, 203, 212, 218, 228, 234, 237] \ No newline at end of file diff --git a/java2python/lang/JavadocParser.py b/java2python/lang/JavadocParser.py new file mode 100644 index 0000000..4674651 --- /dev/null +++ b/java2python/lang/JavadocParser.py @@ -0,0 +1,1717 @@ +# Generated from JavadocParser.g4 by ANTLR 4.7.2 +# encoding: utf-8 +from antlr4 import * +from io import StringIO +from typing.io import TextIO +import sys + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\16") + buf.write("\u00f2\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") + buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") + buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\3\2\3\2\3\2\7") + buf.write("\2\62\n\2\f\2\16\2\65\13\2\3\2\3\2\3\2\3\2\3\2\7\2<\n") + buf.write("\2\f\2\16\2?\13\2\3\2\3\2\3\2\5\2D\n\2\3\3\3\3\7\3H\n") + buf.write("\3\f\3\16\3K\13\3\3\3\7\3N\n\3\f\3\16\3Q\13\3\3\3\3\3") + buf.write("\3\3\6\3V\n\3\r\3\16\3W\3\3\7\3[\n\3\f\3\16\3^\13\3\3") + buf.write("\3\3\3\5\3b\n\3\3\4\3\4\3\5\3\5\6\5h\n\5\r\5\16\5i\3\5") + buf.write("\3\5\7\5n\n\5\f\5\16\5q\13\5\3\6\3\6\7\6u\n\6\f\6\16\6") + buf.write("x\13\6\3\6\3\6\7\6|\n\6\f\6\16\6\177\13\6\5\6\u0081\n") + buf.write("\6\3\7\5\7\u0084\n\7\3\7\6\7\u0087\n\7\r\7\16\7\u0088") + buf.write("\3\7\3\7\3\7\7\7\u008e\n\7\f\7\16\7\u0091\13\7\3\b\3\b") + buf.write("\3\t\3\t\5\t\u0097\n\t\3\n\3\n\3\n\6\n\u009c\n\n\r\n\16") + buf.write("\n\u009d\3\13\3\13\3\f\6\f\u00a3\n\f\r\f\16\f\u00a4\3") + buf.write("\r\5\r\u00a8\n\r\3\r\3\r\3\r\5\r\u00ad\n\r\3\r\7\r\u00b0") + buf.write("\n\r\f\r\16\r\u00b3\13\r\3\16\3\16\3\17\3\17\3\17\5\17") + buf.write("\u00ba\n\17\3\20\6\20\u00bd\n\20\r\20\16\20\u00be\3\21") + buf.write("\3\21\3\22\3\22\3\22\7\22\u00c6\n\22\f\22\16\22\u00c9") + buf.write("\13\22\3\22\5\22\u00cc\n\22\3\22\3\22\3\23\3\23\3\24\6") + buf.write("\24\u00d3\n\24\r\24\16\24\u00d4\3\25\3\25\7\25\u00d9\n") + buf.write("\25\f\25\16\25\u00dc\13\25\3\25\3\25\3\26\3\26\3\26\7") + buf.write("\26\u00e3\n\26\f\26\16\26\u00e6\13\26\3\26\7\26\u00e9") + buf.write("\n\26\f\26\16\26\u00ec\13\26\5\26\u00ee\n\26\3\27\3\27") + buf.write("\3\27\2\2\30\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"") + buf.write("$&(*,\2\6\3\2\4\5\6\2\3\3\6\6\b\t\r\16\6\2\3\3\5\6\b\t") + buf.write("\r\16\4\2\3\6\b\t\2\u0101\2C\3\2\2\2\4a\3\2\2\2\6c\3\2") + buf.write("\2\2\be\3\2\2\2\n\u0080\3\2\2\2\f\u0083\3\2\2\2\16\u0092") + buf.write("\3\2\2\2\20\u0096\3\2\2\2\22\u009b\3\2\2\2\24\u009f\3") + buf.write("\2\2\2\26\u00a2\3\2\2\2\30\u00a7\3\2\2\2\32\u00b4\3\2") + buf.write("\2\2\34\u00b9\3\2\2\2\36\u00bc\3\2\2\2 \u00c0\3\2\2\2") + buf.write("\"\u00c2\3\2\2\2$\u00cf\3\2\2\2&\u00d2\3\2\2\2(\u00d6") + buf.write("\3\2\2\2*\u00ed\3\2\2\2,\u00ef\3\2\2\2.D\7\2\2\3/\63\7") + buf.write("\n\2\2\60\62\5\6\4\2\61\60\3\2\2\2\62\65\3\2\2\2\63\61") + buf.write("\3\2\2\2\63\64\3\2\2\2\64\66\3\2\2\2\65\63\3\2\2\2\66") + buf.write("\67\5\4\3\2\678\7\13\2\289\7\2\2\39D\3\2\2\2:<\5\6\4\2") + buf.write(";:\3\2\2\2\3\2\2\2>@\3\2\2\2?=\3") + buf.write("\2\2\2@A\5\4\3\2AB\7\2\2\3BD\3\2\2\2C.\3\2\2\2C/\3\2\2") + buf.write("\2C=\3\2\2\2D\3\3\2\2\2EI\5\b\5\2FH\5\6\4\2GF\3\2\2\2") + buf.write("HK\3\2\2\2IG\3\2\2\2IJ\3\2\2\2Jb\3\2\2\2KI\3\2\2\2LN\5") + buf.write("\6\4\2ML\3\2\2\2NQ\3\2\2\2OM\3\2\2\2OP\3\2\2\2PR\3\2\2") + buf.write("\2QO\3\2\2\2Rb\5\26\f\2SU\5\b\5\2TV\7\4\2\2UT\3\2\2\2") + buf.write("VW\3\2\2\2WU\3\2\2\2WX\3\2\2\2X\\\3\2\2\2Y[\5\6\4\2ZY") + buf.write("\3\2\2\2[^\3\2\2\2\\Z\3\2\2\2\\]\3\2\2\2]_\3\2\2\2^\\") + buf.write("\3\2\2\2_`\5\26\f\2`b\3\2\2\2aE\3\2\2\2aO\3\2\2\2aS\3") + buf.write("\2\2\2b\5\3\2\2\2cd\t\2\2\2d\7\3\2\2\2eo\5\n\6\2fh\5\24") + buf.write("\13\2gf\3\2\2\2hi\3\2\2\2ig\3\2\2\2ij\3\2\2\2jk\3\2\2") + buf.write("\2kl\5\n\6\2ln\3\2\2\2mg\3\2\2\2nq\3\2\2\2om\3\2\2\2o") + buf.write("p\3\2\2\2p\t\3\2\2\2qo\3\2\2\2rv\5\f\7\2su\5\20\t\2ts") + buf.write("\3\2\2\2ux\3\2\2\2vt\3\2\2\2vw\3\2\2\2w\u0081\3\2\2\2") + buf.write("xv\3\2\2\2y}\5\"\22\2z|\5\20\t\2{z\3\2\2\2|\177\3\2\2") + buf.write("\2}{\3\2\2\2}~\3\2\2\2~\u0081\3\2\2\2\177}\3\2\2\2\u0080") + buf.write("r\3\2\2\2\u0080y\3\2\2\2\u0081\13\3\2\2\2\u0082\u0084") + buf.write("\7\5\2\2\u0083\u0082\3\2\2\2\u0083\u0084\3\2\2\2\u0084") + buf.write("\u0086\3\2\2\2\u0085\u0087\5\16\b\2\u0086\u0085\3\2\2") + buf.write("\2\u0087\u0088\3\2\2\2\u0088\u0086\3\2\2\2\u0088\u0089") + buf.write("\3\2\2\2\u0089\u008f\3\2\2\2\u008a\u008e\5\16\b\2\u008b") + buf.write("\u008e\7\5\2\2\u008c\u008e\7\7\2\2\u008d\u008a\3\2\2\2") + buf.write("\u008d\u008b\3\2\2\2\u008d\u008c\3\2\2\2\u008e\u0091\3") + buf.write("\2\2\2\u008f\u008d\3\2\2\2\u008f\u0090\3\2\2\2\u0090\r") + buf.write("\3\2\2\2\u0091\u008f\3\2\2\2\u0092\u0093\t\3\2\2\u0093") + buf.write("\17\3\2\2\2\u0094\u0097\5\"\22\2\u0095\u0097\5\22\n\2") + buf.write("\u0096\u0094\3\2\2\2\u0096\u0095\3\2\2\2\u0097\21\3\2") + buf.write("\2\2\u0098\u009c\5\16\b\2\u0099\u009c\7\5\2\2\u009a\u009c") + buf.write("\7\7\2\2\u009b\u0098\3\2\2\2\u009b\u0099\3\2\2\2\u009b") + buf.write("\u009a\3\2\2\2\u009c\u009d\3\2\2\2\u009d\u009b\3\2\2\2") + buf.write("\u009d\u009e\3\2\2\2\u009e\23\3\2\2\2\u009f\u00a0\7\4") + buf.write("\2\2\u00a0\25\3\2\2\2\u00a1\u00a3\5\30\r\2\u00a2\u00a1") + buf.write("\3\2\2\2\u00a3\u00a4\3\2\2\2\u00a4\u00a2\3\2\2\2\u00a4") + buf.write("\u00a5\3\2\2\2\u00a5\27\3\2\2\2\u00a6\u00a8\7\5\2\2\u00a7") + buf.write("\u00a6\3\2\2\2\u00a7\u00a8\3\2\2\2\u00a8\u00a9\3\2\2\2") + buf.write("\u00a9\u00aa\7\7\2\2\u00aa\u00ac\5\32\16\2\u00ab\u00ad") + buf.write("\7\5\2\2\u00ac\u00ab\3\2\2\2\u00ac\u00ad\3\2\2\2\u00ad") + buf.write("\u00b1\3\2\2\2\u00ae\u00b0\5\34\17\2\u00af\u00ae\3\2\2") + buf.write("\2\u00b0\u00b3\3\2\2\2\u00b1\u00af\3\2\2\2\u00b1\u00b2") + buf.write("\3\2\2\2\u00b2\31\3\2\2\2\u00b3\u00b1\3\2\2\2\u00b4\u00b5") + buf.write("\7\3\2\2\u00b5\33\3\2\2\2\u00b6\u00ba\5\36\20\2\u00b7") + buf.write("\u00ba\5\"\22\2\u00b8\u00ba\7\4\2\2\u00b9\u00b6\3\2\2") + buf.write("\2\u00b9\u00b7\3\2\2\2\u00b9\u00b8\3\2\2\2\u00ba\35\3") + buf.write("\2\2\2\u00bb\u00bd\5 \21\2\u00bc\u00bb\3\2\2\2\u00bd\u00be") + buf.write("\3\2\2\2\u00be\u00bc\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf") + buf.write("\37\3\2\2\2\u00c0\u00c1\t\4\2\2\u00c1!\3\2\2\2\u00c2\u00c3") + buf.write("\7\f\2\2\u00c3\u00c7\5$\23\2\u00c4\u00c6\7\5\2\2\u00c5") + buf.write("\u00c4\3\2\2\2\u00c6\u00c9\3\2\2\2\u00c7\u00c5\3\2\2\2") + buf.write("\u00c7\u00c8\3\2\2\2\u00c8\u00cb\3\2\2\2\u00c9\u00c7\3") + buf.write("\2\2\2\u00ca\u00cc\5&\24\2\u00cb\u00ca\3\2\2\2\u00cb\u00cc") + buf.write("\3\2\2\2\u00cc\u00cd\3\2\2\2\u00cd\u00ce\7\16\2\2\u00ce") + buf.write("#\3\2\2\2\u00cf\u00d0\7\3\2\2\u00d0%\3\2\2\2\u00d1\u00d3") + buf.write("\5*\26\2\u00d2\u00d1\3\2\2\2\u00d3\u00d4\3\2\2\2\u00d4") + buf.write("\u00d2\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d5\'\3\2\2\2\u00d6") + buf.write("\u00da\7\r\2\2\u00d7\u00d9\5*\26\2\u00d8\u00d7\3\2\2\2") + buf.write("\u00d9\u00dc\3\2\2\2\u00da\u00d8\3\2\2\2\u00da\u00db\3") + buf.write("\2\2\2\u00db\u00dd\3\2\2\2\u00dc\u00da\3\2\2\2\u00dd\u00de") + buf.write("\7\16\2\2\u00de)\3\2\2\2\u00df\u00ee\5(\25\2\u00e0\u00ea") + buf.write("\5,\27\2\u00e1\u00e3\7\4\2\2\u00e2\u00e1\3\2\2\2\u00e3") + buf.write("\u00e6\3\2\2\2\u00e4\u00e2\3\2\2\2\u00e4\u00e5\3\2\2\2") + buf.write("\u00e5\u00e7\3\2\2\2\u00e6\u00e4\3\2\2\2\u00e7\u00e9\5") + buf.write(",\27\2\u00e8\u00e4\3\2\2\2\u00e9\u00ec\3\2\2\2\u00ea\u00e8") + buf.write("\3\2\2\2\u00ea\u00eb\3\2\2\2\u00eb\u00ee\3\2\2\2\u00ec") + buf.write("\u00ea\3\2\2\2\u00ed\u00df\3\2\2\2\u00ed\u00e0\3\2\2\2") + buf.write("\u00ee+\3\2\2\2\u00ef\u00f0\t\5\2\2\u00f0-\3\2\2\2#\63") + buf.write("=CIOW\\aiov}\u0080\u0083\u0088\u008d\u008f\u0096\u009b") + buf.write("\u009d\u00a4\u00a7\u00ac\u00b1\u00b9\u00be\u00c7\u00cb") + buf.write("\u00d4\u00da\u00e4\u00ea\u00ed") + return buf.getvalue() + + +class JavadocParser ( Parser ): + + grammarFileName = "JavadocParser.g4" + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + sharedContextCache = PredictionContextCache() + + literalNames = [ "", "", "", "", + "", "'@'", "'*'", "'/'", "", "", + "'{@'", "'{'", "'}'" ] + + symbolicNames = [ "", "NAME", "NEWLINE", "SPACE", "TEXT_CONTENT", + "AT", "STAR", "SLASH", "JAVADOC_START", "JAVADOC_END", + "INLINE_TAG_START", "BRACE_OPEN", "BRACE_CLOSE" ] + + RULE_documentation = 0 + RULE_documentationContent = 1 + RULE_skipWhitespace = 2 + RULE_description = 3 + RULE_descriptionLine = 4 + RULE_descriptionLineStart = 5 + RULE_descriptionLineNoSpaceNoAt = 6 + RULE_descriptionLineElement = 7 + RULE_descriptionLineText = 8 + RULE_descriptionNewline = 9 + RULE_tagSection = 10 + RULE_blockTag = 11 + RULE_blockTagName = 12 + RULE_blockTagContent = 13 + RULE_blockTagText = 14 + RULE_blockTagTextElement = 15 + RULE_inlineTag = 16 + RULE_inlineTagName = 17 + RULE_inlineTagContent = 18 + RULE_braceExpression = 19 + RULE_braceContent = 20 + RULE_braceText = 21 + + ruleNames = [ "documentation", "documentationContent", "skipWhitespace", + "description", "descriptionLine", "descriptionLineStart", + "descriptionLineNoSpaceNoAt", "descriptionLineElement", + "descriptionLineText", "descriptionNewline", "tagSection", + "blockTag", "blockTagName", "blockTagContent", "blockTagText", + "blockTagTextElement", "inlineTag", "inlineTagName", + "inlineTagContent", "braceExpression", "braceContent", + "braceText" ] + + EOF = Token.EOF + NAME=1 + NEWLINE=2 + SPACE=3 + TEXT_CONTENT=4 + AT=5 + STAR=6 + SLASH=7 + JAVADOC_START=8 + JAVADOC_END=9 + INLINE_TAG_START=10 + BRACE_OPEN=11 + BRACE_CLOSE=12 + + def __init__(self, input:TokenStream, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) + self._predicates = None + + + + class DocumentationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EOF(self): + return self.getToken(JavadocParser.EOF, 0) + + def JAVADOC_START(self): + return self.getToken(JavadocParser.JAVADOC_START, 0) + + def documentationContent(self): + return self.getTypedRuleContext(JavadocParser.DocumentationContentContext,0) + + + def JAVADOC_END(self): + return self.getToken(JavadocParser.JAVADOC_END, 0) + + def skipWhitespace(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.SkipWhitespaceContext) + else: + return self.getTypedRuleContext(JavadocParser.SkipWhitespaceContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_documentation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDocumentation" ): + listener.enterDocumentation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDocumentation" ): + listener.exitDocumentation(self) + + + + + def documentation(self): + + localctx = JavadocParser.DocumentationContext(self, self._ctx, self.state) + self.enterRule(localctx, 0, self.RULE_documentation) + try: + self.state = 65 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.EOF]: + self.enterOuterAlt(localctx, 1) + self.state = 44 + self.match(JavadocParser.EOF) + pass + elif token in [JavadocParser.JAVADOC_START]: + self.enterOuterAlt(localctx, 2) + self.state = 45 + self.match(JavadocParser.JAVADOC_START) + self.state = 49 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,0,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 46 + self.skipWhitespace() + self.state = 51 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,0,self._ctx) + + self.state = 52 + self.documentationContent() + self.state = 53 + self.match(JavadocParser.JAVADOC_END) + self.state = 54 + self.match(JavadocParser.EOF) + pass + elif token in [JavadocParser.NAME, JavadocParser.NEWLINE, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.AT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.INLINE_TAG_START, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.enterOuterAlt(localctx, 3) + self.state = 59 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,1,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 56 + self.skipWhitespace() + self.state = 61 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,1,self._ctx) + + self.state = 62 + self.documentationContent() + self.state = 63 + self.match(JavadocParser.EOF) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DocumentationContentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def description(self): + return self.getTypedRuleContext(JavadocParser.DescriptionContext,0) + + + def skipWhitespace(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.SkipWhitespaceContext) + else: + return self.getTypedRuleContext(JavadocParser.SkipWhitespaceContext,i) + + + def tagSection(self): + return self.getTypedRuleContext(JavadocParser.TagSectionContext,0) + + + def NEWLINE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.NEWLINE) + else: + return self.getToken(JavadocParser.NEWLINE, i) + + def getRuleIndex(self): + return JavadocParser.RULE_documentationContent + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDocumentationContent" ): + listener.enterDocumentationContent(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDocumentationContent" ): + listener.exitDocumentationContent(self) + + + + + def documentationContent(self): + + localctx = JavadocParser.DocumentationContentContext(self, self._ctx, self.state) + self.enterRule(localctx, 2, self.RULE_documentationContent) + self._la = 0 # Token type + try: + self.state = 95 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,7,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 67 + self.description() + self.state = 71 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavadocParser.NEWLINE or _la==JavadocParser.SPACE: + self.state = 68 + self.skipWhitespace() + self.state = 73 + self._errHandler.sync(self) + _la = self._input.LA(1) + + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 77 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,4,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 74 + self.skipWhitespace() + self.state = 79 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,4,self._ctx) + + self.state = 80 + self.tagSection() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 81 + self.description() + self.state = 83 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 82 + self.match(JavadocParser.NEWLINE) + + else: + raise NoViableAltException(self) + self.state = 85 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,5,self._ctx) + + self.state = 90 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,6,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 87 + self.skipWhitespace() + self.state = 92 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,6,self._ctx) + + self.state = 93 + self.tagSection() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SkipWhitespaceContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SPACE(self): + return self.getToken(JavadocParser.SPACE, 0) + + def NEWLINE(self): + return self.getToken(JavadocParser.NEWLINE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_skipWhitespace + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSkipWhitespace" ): + listener.enterSkipWhitespace(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSkipWhitespace" ): + listener.exitSkipWhitespace(self) + + + + + def skipWhitespace(self): + + localctx = JavadocParser.SkipWhitespaceContext(self, self._ctx, self.state) + self.enterRule(localctx, 4, self.RULE_skipWhitespace) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 97 + _la = self._input.LA(1) + if not(_la==JavadocParser.NEWLINE or _la==JavadocParser.SPACE): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def descriptionLine(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionLineContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionLineContext,i) + + + def descriptionNewline(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionNewlineContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionNewlineContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_description + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescription" ): + listener.enterDescription(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescription" ): + listener.exitDescription(self) + + + + + def description(self): + + localctx = JavadocParser.DescriptionContext(self, self._ctx, self.state) + self.enterRule(localctx, 6, self.RULE_description) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 99 + self.descriptionLine() + self.state = 109 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,9,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 101 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 100 + self.descriptionNewline() + self.state = 103 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==JavadocParser.NEWLINE): + break + + self.state = 105 + self.descriptionLine() + self.state = 111 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,9,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def descriptionLineStart(self): + return self.getTypedRuleContext(JavadocParser.DescriptionLineStartContext,0) + + + def descriptionLineElement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionLineElementContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionLineElementContext,i) + + + def inlineTag(self): + return self.getTypedRuleContext(JavadocParser.InlineTagContext,0) + + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLine + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLine" ): + listener.enterDescriptionLine(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLine" ): + listener.exitDescriptionLine(self) + + + + + def descriptionLine(self): + + localctx = JavadocParser.DescriptionLineContext(self, self._ctx, self.state) + self.enterRule(localctx, 8, self.RULE_descriptionLine) + try: + self.state = 126 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.NAME, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.enterOuterAlt(localctx, 1) + self.state = 112 + self.descriptionLineStart() + self.state = 116 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,10,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 113 + self.descriptionLineElement() + self.state = 118 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,10,self._ctx) + + pass + elif token in [JavadocParser.INLINE_TAG_START]: + self.enterOuterAlt(localctx, 2) + self.state = 119 + self.inlineTag() + self.state = 123 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,11,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 120 + self.descriptionLineElement() + self.state = 125 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,11,self._ctx) + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineStartContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SPACE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.SPACE) + else: + return self.getToken(JavadocParser.SPACE, i) + + def descriptionLineNoSpaceNoAt(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionLineNoSpaceNoAtContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionLineNoSpaceNoAtContext,i) + + + def AT(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.AT) + else: + return self.getToken(JavadocParser.AT, i) + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLineStart + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLineStart" ): + listener.enterDescriptionLineStart(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLineStart" ): + listener.exitDescriptionLineStart(self) + + + + + def descriptionLineStart(self): + + localctx = JavadocParser.DescriptionLineStartContext(self, self._ctx, self.state) + self.enterRule(localctx, 10, self.RULE_descriptionLineStart) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 129 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavadocParser.SPACE: + self.state = 128 + self.match(JavadocParser.SPACE) + + + self.state = 132 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 131 + self.descriptionLineNoSpaceNoAt() + + else: + raise NoViableAltException(self) + self.state = 134 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,14,self._ctx) + + self.state = 141 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,16,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 139 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.NAME, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.state = 136 + self.descriptionLineNoSpaceNoAt() + pass + elif token in [JavadocParser.SPACE]: + self.state = 137 + self.match(JavadocParser.SPACE) + pass + elif token in [JavadocParser.AT]: + self.state = 138 + self.match(JavadocParser.AT) + pass + else: + raise NoViableAltException(self) + + self.state = 143 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,16,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineNoSpaceNoAtContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TEXT_CONTENT(self): + return self.getToken(JavadocParser.TEXT_CONTENT, 0) + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def STAR(self): + return self.getToken(JavadocParser.STAR, 0) + + def SLASH(self): + return self.getToken(JavadocParser.SLASH, 0) + + def BRACE_OPEN(self): + return self.getToken(JavadocParser.BRACE_OPEN, 0) + + def BRACE_CLOSE(self): + return self.getToken(JavadocParser.BRACE_CLOSE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLineNoSpaceNoAt + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLineNoSpaceNoAt" ): + listener.enterDescriptionLineNoSpaceNoAt(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLineNoSpaceNoAt" ): + listener.exitDescriptionLineNoSpaceNoAt(self) + + + + + def descriptionLineNoSpaceNoAt(self): + + localctx = JavadocParser.DescriptionLineNoSpaceNoAtContext(self, self._ctx, self.state) + self.enterRule(localctx, 12, self.RULE_descriptionLineNoSpaceNoAt) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 144 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN) | (1 << JavadocParser.BRACE_CLOSE))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineElementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def inlineTag(self): + return self.getTypedRuleContext(JavadocParser.InlineTagContext,0) + + + def descriptionLineText(self): + return self.getTypedRuleContext(JavadocParser.DescriptionLineTextContext,0) + + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLineElement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLineElement" ): + listener.enterDescriptionLineElement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLineElement" ): + listener.exitDescriptionLineElement(self) + + + + + def descriptionLineElement(self): + + localctx = JavadocParser.DescriptionLineElementContext(self, self._ctx, self.state) + self.enterRule(localctx, 14, self.RULE_descriptionLineElement) + try: + self.state = 148 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.INLINE_TAG_START]: + self.enterOuterAlt(localctx, 1) + self.state = 146 + self.inlineTag() + pass + elif token in [JavadocParser.NAME, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.AT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.enterOuterAlt(localctx, 2) + self.state = 147 + self.descriptionLineText() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineTextContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def descriptionLineNoSpaceNoAt(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionLineNoSpaceNoAtContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionLineNoSpaceNoAtContext,i) + + + def SPACE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.SPACE) + else: + return self.getToken(JavadocParser.SPACE, i) + + def AT(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.AT) + else: + return self.getToken(JavadocParser.AT, i) + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLineText + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLineText" ): + listener.enterDescriptionLineText(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLineText" ): + listener.exitDescriptionLineText(self) + + + + + def descriptionLineText(self): + + localctx = JavadocParser.DescriptionLineTextContext(self, self._ctx, self.state) + self.enterRule(localctx, 16, self.RULE_descriptionLineText) + try: + self.enterOuterAlt(localctx, 1) + self.state = 153 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 153 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.NAME, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.state = 150 + self.descriptionLineNoSpaceNoAt() + pass + elif token in [JavadocParser.SPACE]: + self.state = 151 + self.match(JavadocParser.SPACE) + pass + elif token in [JavadocParser.AT]: + self.state = 152 + self.match(JavadocParser.AT) + pass + else: + raise NoViableAltException(self) + + + else: + raise NoViableAltException(self) + self.state = 155 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,19,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionNewlineContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NEWLINE(self): + return self.getToken(JavadocParser.NEWLINE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionNewline + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionNewline" ): + listener.enterDescriptionNewline(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionNewline" ): + listener.exitDescriptionNewline(self) + + + + + def descriptionNewline(self): + + localctx = JavadocParser.DescriptionNewlineContext(self, self._ctx, self.state) + self.enterRule(localctx, 18, self.RULE_descriptionNewline) + try: + self.enterOuterAlt(localctx, 1) + self.state = 157 + self.match(JavadocParser.NEWLINE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TagSectionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def blockTag(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BlockTagContext) + else: + return self.getTypedRuleContext(JavadocParser.BlockTagContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_tagSection + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTagSection" ): + listener.enterTagSection(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTagSection" ): + listener.exitTagSection(self) + + + + + def tagSection(self): + + localctx = JavadocParser.TagSectionContext(self, self._ctx, self.state) + self.enterRule(localctx, 20, self.RULE_tagSection) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 160 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 159 + self.blockTag() + self.state = 162 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==JavadocParser.SPACE or _la==JavadocParser.AT): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(JavadocParser.AT, 0) + + def blockTagName(self): + return self.getTypedRuleContext(JavadocParser.BlockTagNameContext,0) + + + def SPACE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.SPACE) + else: + return self.getToken(JavadocParser.SPACE, i) + + def blockTagContent(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BlockTagContentContext) + else: + return self.getTypedRuleContext(JavadocParser.BlockTagContentContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_blockTag + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTag" ): + listener.enterBlockTag(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTag" ): + listener.exitBlockTag(self) + + + + + def blockTag(self): + + localctx = JavadocParser.BlockTagContext(self, self._ctx, self.state) + self.enterRule(localctx, 22, self.RULE_blockTag) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 165 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavadocParser.SPACE: + self.state = 164 + self.match(JavadocParser.SPACE) + + + self.state = 167 + self.match(JavadocParser.AT) + self.state = 168 + self.blockTagName() + self.state = 170 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,22,self._ctx) + if la_ == 1: + self.state = 169 + self.match(JavadocParser.SPACE) + + + self.state = 175 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,23,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 172 + self.blockTagContent() + self.state = 177 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,23,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_blockTagName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTagName" ): + listener.enterBlockTagName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTagName" ): + listener.exitBlockTagName(self) + + + + + def blockTagName(self): + + localctx = JavadocParser.BlockTagNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 24, self.RULE_blockTagName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 178 + self.match(JavadocParser.NAME) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagContentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def blockTagText(self): + return self.getTypedRuleContext(JavadocParser.BlockTagTextContext,0) + + + def inlineTag(self): + return self.getTypedRuleContext(JavadocParser.InlineTagContext,0) + + + def NEWLINE(self): + return self.getToken(JavadocParser.NEWLINE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_blockTagContent + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTagContent" ): + listener.enterBlockTagContent(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTagContent" ): + listener.exitBlockTagContent(self) + + + + + def blockTagContent(self): + + localctx = JavadocParser.BlockTagContentContext(self, self._ctx, self.state) + self.enterRule(localctx, 26, self.RULE_blockTagContent) + try: + self.state = 183 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.NAME, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.enterOuterAlt(localctx, 1) + self.state = 180 + self.blockTagText() + pass + elif token in [JavadocParser.INLINE_TAG_START]: + self.enterOuterAlt(localctx, 2) + self.state = 181 + self.inlineTag() + pass + elif token in [JavadocParser.NEWLINE]: + self.enterOuterAlt(localctx, 3) + self.state = 182 + self.match(JavadocParser.NEWLINE) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagTextContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def blockTagTextElement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BlockTagTextElementContext) + else: + return self.getTypedRuleContext(JavadocParser.BlockTagTextElementContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_blockTagText + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTagText" ): + listener.enterBlockTagText(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTagText" ): + listener.exitBlockTagText(self) + + + + + def blockTagText(self): + + localctx = JavadocParser.BlockTagTextContext(self, self._ctx, self.state) + self.enterRule(localctx, 28, self.RULE_blockTagText) + try: + self.enterOuterAlt(localctx, 1) + self.state = 186 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 185 + self.blockTagTextElement() + + else: + raise NoViableAltException(self) + self.state = 188 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,25,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagTextElementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TEXT_CONTENT(self): + return self.getToken(JavadocParser.TEXT_CONTENT, 0) + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def SPACE(self): + return self.getToken(JavadocParser.SPACE, 0) + + def STAR(self): + return self.getToken(JavadocParser.STAR, 0) + + def SLASH(self): + return self.getToken(JavadocParser.SLASH, 0) + + def BRACE_OPEN(self): + return self.getToken(JavadocParser.BRACE_OPEN, 0) + + def BRACE_CLOSE(self): + return self.getToken(JavadocParser.BRACE_CLOSE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_blockTagTextElement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTagTextElement" ): + listener.enterBlockTagTextElement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTagTextElement" ): + listener.exitBlockTagTextElement(self) + + + + + def blockTagTextElement(self): + + localctx = JavadocParser.BlockTagTextElementContext(self, self._ctx, self.state) + self.enterRule(localctx, 30, self.RULE_blockTagTextElement) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 190 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN) | (1 << JavadocParser.BRACE_CLOSE))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InlineTagContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def INLINE_TAG_START(self): + return self.getToken(JavadocParser.INLINE_TAG_START, 0) + + def inlineTagName(self): + return self.getTypedRuleContext(JavadocParser.InlineTagNameContext,0) + + + def BRACE_CLOSE(self): + return self.getToken(JavadocParser.BRACE_CLOSE, 0) + + def SPACE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.SPACE) + else: + return self.getToken(JavadocParser.SPACE, i) + + def inlineTagContent(self): + return self.getTypedRuleContext(JavadocParser.InlineTagContentContext,0) + + + def getRuleIndex(self): + return JavadocParser.RULE_inlineTag + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInlineTag" ): + listener.enterInlineTag(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInlineTag" ): + listener.exitInlineTag(self) + + + + + def inlineTag(self): + + localctx = JavadocParser.InlineTagContext(self, self._ctx, self.state) + self.enterRule(localctx, 32, self.RULE_inlineTag) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 192 + self.match(JavadocParser.INLINE_TAG_START) + self.state = 193 + self.inlineTagName() + self.state = 197 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,26,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 194 + self.match(JavadocParser.SPACE) + self.state = 199 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,26,self._ctx) + + self.state = 201 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.NEWLINE) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN))) != 0): + self.state = 200 + self.inlineTagContent() + + + self.state = 203 + self.match(JavadocParser.BRACE_CLOSE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InlineTagNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_inlineTagName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInlineTagName" ): + listener.enterInlineTagName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInlineTagName" ): + listener.exitInlineTagName(self) + + + + + def inlineTagName(self): + + localctx = JavadocParser.InlineTagNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 34, self.RULE_inlineTagName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 205 + self.match(JavadocParser.NAME) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InlineTagContentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def braceContent(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BraceContentContext) + else: + return self.getTypedRuleContext(JavadocParser.BraceContentContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_inlineTagContent + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInlineTagContent" ): + listener.enterInlineTagContent(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInlineTagContent" ): + listener.exitInlineTagContent(self) + + + + + def inlineTagContent(self): + + localctx = JavadocParser.InlineTagContentContext(self, self._ctx, self.state) + self.enterRule(localctx, 36, self.RULE_inlineTagContent) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 208 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 207 + self.braceContent() + self.state = 210 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.NEWLINE) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN))) != 0)): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BraceExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def BRACE_OPEN(self): + return self.getToken(JavadocParser.BRACE_OPEN, 0) + + def BRACE_CLOSE(self): + return self.getToken(JavadocParser.BRACE_CLOSE, 0) + + def braceContent(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BraceContentContext) + else: + return self.getTypedRuleContext(JavadocParser.BraceContentContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_braceExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBraceExpression" ): + listener.enterBraceExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBraceExpression" ): + listener.exitBraceExpression(self) + + + + + def braceExpression(self): + + localctx = JavadocParser.BraceExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 38, self.RULE_braceExpression) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 212 + self.match(JavadocParser.BRACE_OPEN) + self.state = 216 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.NEWLINE) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN))) != 0): + self.state = 213 + self.braceContent() + self.state = 218 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 219 + self.match(JavadocParser.BRACE_CLOSE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BraceContentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def braceExpression(self): + return self.getTypedRuleContext(JavadocParser.BraceExpressionContext,0) + + + def braceText(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BraceTextContext) + else: + return self.getTypedRuleContext(JavadocParser.BraceTextContext,i) + + + def NEWLINE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.NEWLINE) + else: + return self.getToken(JavadocParser.NEWLINE, i) + + def getRuleIndex(self): + return JavadocParser.RULE_braceContent + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBraceContent" ): + listener.enterBraceContent(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBraceContent" ): + listener.exitBraceContent(self) + + + + + def braceContent(self): + + localctx = JavadocParser.BraceContentContext(self, self._ctx, self.state) + self.enterRule(localctx, 40, self.RULE_braceContent) + try: + self.state = 235 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.BRACE_OPEN]: + self.enterOuterAlt(localctx, 1) + self.state = 221 + self.braceExpression() + pass + elif token in [JavadocParser.NAME, JavadocParser.NEWLINE, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH]: + self.enterOuterAlt(localctx, 2) + self.state = 222 + self.braceText() + self.state = 232 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,31,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 226 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,30,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 223 + self.match(JavadocParser.NEWLINE) + self.state = 228 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,30,self._ctx) + + self.state = 229 + self.braceText() + self.state = 234 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,31,self._ctx) + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BraceTextContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TEXT_CONTENT(self): + return self.getToken(JavadocParser.TEXT_CONTENT, 0) + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def SPACE(self): + return self.getToken(JavadocParser.SPACE, 0) + + def STAR(self): + return self.getToken(JavadocParser.STAR, 0) + + def SLASH(self): + return self.getToken(JavadocParser.SLASH, 0) + + def NEWLINE(self): + return self.getToken(JavadocParser.NEWLINE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_braceText + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBraceText" ): + listener.enterBraceText(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBraceText" ): + listener.exitBraceText(self) + + + + + def braceText(self): + + localctx = JavadocParser.BraceTextContext(self, self._ctx, self.state) + self.enterRule(localctx, 42, self.RULE_braceText) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 237 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.NEWLINE) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + + + diff --git a/java2python/lang/JavadocParser.tokens b/java2python/lang/JavadocParser.tokens new file mode 100644 index 0000000..39ad57e --- /dev/null +++ b/java2python/lang/JavadocParser.tokens @@ -0,0 +1,18 @@ +NAME=1 +NEWLINE=2 +SPACE=3 +TEXT_CONTENT=4 +AT=5 +STAR=6 +SLASH=7 +JAVADOC_START=8 +JAVADOC_END=9 +INLINE_TAG_START=10 +BRACE_OPEN=11 +BRACE_CLOSE=12 +'@'=5 +'*'=6 +'/'=7 +'{@'=10 +'{'=11 +'}'=12 diff --git a/java2python/lang/JavadocParserListener.py b/java2python/lang/JavadocParserListener.py new file mode 100644 index 0000000..eeadc8c --- /dev/null +++ b/java2python/lang/JavadocParserListener.py @@ -0,0 +1,208 @@ +# Generated from JavadocParser.g4 by ANTLR 4.7.2 +from antlr4 import * +if __name__ is not None and "." in __name__: + from .JavadocParser import JavadocParser +else: + from JavadocParser import JavadocParser + +# This class defines a complete listener for a parse tree produced by JavadocParser. +class JavadocParserListener(ParseTreeListener): + + # Enter a parse tree produced by JavadocParser#documentation. + def enterDocumentation(self, ctx:JavadocParser.DocumentationContext): + pass + + # Exit a parse tree produced by JavadocParser#documentation. + def exitDocumentation(self, ctx:JavadocParser.DocumentationContext): + pass + + + # Enter a parse tree produced by JavadocParser#documentationContent. + def enterDocumentationContent(self, ctx:JavadocParser.DocumentationContentContext): + pass + + # Exit a parse tree produced by JavadocParser#documentationContent. + def exitDocumentationContent(self, ctx:JavadocParser.DocumentationContentContext): + pass + + + # Enter a parse tree produced by JavadocParser#skipWhitespace. + def enterSkipWhitespace(self, ctx:JavadocParser.SkipWhitespaceContext): + pass + + # Exit a parse tree produced by JavadocParser#skipWhitespace. + def exitSkipWhitespace(self, ctx:JavadocParser.SkipWhitespaceContext): + pass + + + # Enter a parse tree produced by JavadocParser#description. + def enterDescription(self, ctx:JavadocParser.DescriptionContext): + pass + + # Exit a parse tree produced by JavadocParser#description. + def exitDescription(self, ctx:JavadocParser.DescriptionContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLine. + def enterDescriptionLine(self, ctx:JavadocParser.DescriptionLineContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLine. + def exitDescriptionLine(self, ctx:JavadocParser.DescriptionLineContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLineStart. + def enterDescriptionLineStart(self, ctx:JavadocParser.DescriptionLineStartContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLineStart. + def exitDescriptionLineStart(self, ctx:JavadocParser.DescriptionLineStartContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLineNoSpaceNoAt. + def enterDescriptionLineNoSpaceNoAt(self, ctx:JavadocParser.DescriptionLineNoSpaceNoAtContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLineNoSpaceNoAt. + def exitDescriptionLineNoSpaceNoAt(self, ctx:JavadocParser.DescriptionLineNoSpaceNoAtContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLineElement. + def enterDescriptionLineElement(self, ctx:JavadocParser.DescriptionLineElementContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLineElement. + def exitDescriptionLineElement(self, ctx:JavadocParser.DescriptionLineElementContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLineText. + def enterDescriptionLineText(self, ctx:JavadocParser.DescriptionLineTextContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLineText. + def exitDescriptionLineText(self, ctx:JavadocParser.DescriptionLineTextContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionNewline. + def enterDescriptionNewline(self, ctx:JavadocParser.DescriptionNewlineContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionNewline. + def exitDescriptionNewline(self, ctx:JavadocParser.DescriptionNewlineContext): + pass + + + # Enter a parse tree produced by JavadocParser#tagSection. + def enterTagSection(self, ctx:JavadocParser.TagSectionContext): + pass + + # Exit a parse tree produced by JavadocParser#tagSection. + def exitTagSection(self, ctx:JavadocParser.TagSectionContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTag. + def enterBlockTag(self, ctx:JavadocParser.BlockTagContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTag. + def exitBlockTag(self, ctx:JavadocParser.BlockTagContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTagName. + def enterBlockTagName(self, ctx:JavadocParser.BlockTagNameContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTagName. + def exitBlockTagName(self, ctx:JavadocParser.BlockTagNameContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTagContent. + def enterBlockTagContent(self, ctx:JavadocParser.BlockTagContentContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTagContent. + def exitBlockTagContent(self, ctx:JavadocParser.BlockTagContentContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTagText. + def enterBlockTagText(self, ctx:JavadocParser.BlockTagTextContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTagText. + def exitBlockTagText(self, ctx:JavadocParser.BlockTagTextContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTagTextElement. + def enterBlockTagTextElement(self, ctx:JavadocParser.BlockTagTextElementContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTagTextElement. + def exitBlockTagTextElement(self, ctx:JavadocParser.BlockTagTextElementContext): + pass + + + # Enter a parse tree produced by JavadocParser#inlineTag. + def enterInlineTag(self, ctx:JavadocParser.InlineTagContext): + pass + + # Exit a parse tree produced by JavadocParser#inlineTag. + def exitInlineTag(self, ctx:JavadocParser.InlineTagContext): + pass + + + # Enter a parse tree produced by JavadocParser#inlineTagName. + def enterInlineTagName(self, ctx:JavadocParser.InlineTagNameContext): + pass + + # Exit a parse tree produced by JavadocParser#inlineTagName. + def exitInlineTagName(self, ctx:JavadocParser.InlineTagNameContext): + pass + + + # Enter a parse tree produced by JavadocParser#inlineTagContent. + def enterInlineTagContent(self, ctx:JavadocParser.InlineTagContentContext): + pass + + # Exit a parse tree produced by JavadocParser#inlineTagContent. + def exitInlineTagContent(self, ctx:JavadocParser.InlineTagContentContext): + pass + + + # Enter a parse tree produced by JavadocParser#braceExpression. + def enterBraceExpression(self, ctx:JavadocParser.BraceExpressionContext): + pass + + # Exit a parse tree produced by JavadocParser#braceExpression. + def exitBraceExpression(self, ctx:JavadocParser.BraceExpressionContext): + pass + + + # Enter a parse tree produced by JavadocParser#braceContent. + def enterBraceContent(self, ctx:JavadocParser.BraceContentContext): + pass + + # Exit a parse tree produced by JavadocParser#braceContent. + def exitBraceContent(self, ctx:JavadocParser.BraceContentContext): + pass + + + # Enter a parse tree produced by JavadocParser#braceText. + def enterBraceText(self, ctx:JavadocParser.BraceTextContext): + pass + + # Exit a parse tree produced by JavadocParser#braceText. + def exitBraceText(self, ctx:JavadocParser.BraceTextContext): + pass + + diff --git a/java2python/lang/Makefile b/java2python/lang/Makefile index 10eff10..87e5cb3 100644 --- a/java2python/lang/Makefile +++ b/java2python/lang/Makefile @@ -1,15 +1,15 @@ .PHONY: all clean .SILENT: clean -all: JavaParser.py JavaLexer.py +all: Java9Parser.py Java9Lexer.py -JavaParser.py: Java.g - antlr3 Java.g +Java9Parser.py: Java9Parser.g4 Java9Lexer.py + antlr4 -Dlanguage=Python3 Java9Lexer.g4 -JavaLexer.py: Java.g - antlr3 Java.g +Java9Lexer.py: Java9Lexer.g4 + antlr4 -Dlanguage=Python3 Java9Parser.g4 clean: diff --git a/java2python/lang/__init__.py b/java2python/lang/__init__.py index 6e37576..c4a9ebe 100644 --- a/java2python/lang/__init__.py +++ b/java2python/lang/__init__.py @@ -6,4 +6,4 @@ from java2python.lang.JavaLexer import JavaLexer as Lexer from java2python.lang.JavaParser import JavaParser as Parser -from java2python.lang.base import StringStream, TokenStream, TreeAdaptor, tokens +from java2python.lang.base import TokenStream, tokens diff --git a/java2python/lang/base.py b/java2python/lang/base.py index 0633b8e..3c193b3 100644 --- a/java2python/lang/base.py +++ b/java2python/lang/base.py @@ -9,18 +9,6 @@ # This class is used to create the single `token` instance in this # module. It is used to map between parser tokens and their ids and # vice-versa. -# -# * `TreeAdaptor` -# -# This class is used by `java2python.compiler.tool`, where the -# `buildAST` function associates an instance of it to a parser. The -# `TreeAdaptor` class creates `LocalTree` instances. -# -# * `LocalTree` -# -# This class provides a slew of extra utility methods that are useful -# when inspecting and printing tree nodes. -# # ANTLR notes: @@ -47,10 +35,9 @@ # instances. # -from cStringIO import StringIO +from io import StringIO -from antlr3 import ANTLRStringStream as StringStream, CommonTokenStream as TokenStream -from antlr3.tree import CommonTreeAdaptor, CommonTree +from antlr4 import CommonTokenStream as TokenStream from java2python.lib import colors @@ -111,159 +98,3 @@ def title(name): ## sometimes you really do only need one. tokens = Tokens() - - -class TreeAdaptor(CommonTreeAdaptor): - """ TreeAdaptor -> defered tree node creator (for parsers). """ - - def __init__(self, lexer, parser): - # CommonTreeAdaptor doesn't need to be __init__'ed - self.lexer, self.parser = lexer, parser - - def createWithPayload(self, payload): - """ Returns a new tree for the calling parser. """ - return LocalTree(payload, self.lexer, self.parser) - - -class LocalTree(CommonTree): - """ LocalTree -> like CommonTree, but with more stuff. """ - colorTypeMap = { - 'CLASS' : colors.green, - 'JAVA_SOURCE' : colors.green, - 'VOID_METHOD_DECL' : colors.green, - 'IDENT' : colors.yellow, - 'TYPE' : colors.magenta, - 'EXPR' : colors.blue, - 'TRUE' : colors.yellow, - 'FALSE' : colors.yellow, - 'NULL' : colors.yellow, - } - - def __init__(self, payload, lexer=None, parser=None): - super(LocalTree, self).__init__(payload) - self.lexer, self.parser = lexer, parser - - def childrenOfType(self, type): - """ Returns a generator yielding children of this tree of the given type. """ - return (c for c in self.children if c.type==type) - - def colorType(self, tokenType): - """ Returns a color suitable for the given token type. """ - return self.colorTypeMap.get(tokenType, colors.white)(tokenType) - - def colorText(self, tokenType, tokenText): - """ Returns a colorized string from the given token type and text. """ - return self.colorTypeMap.get(tokenType, colors.white)(tokenText) - - def colorComments(self, token): - """ Formats, colors, and returns the comment text from the given token. """ - ttyp = tokens.map.get(token.type) - text = token.text.replace('\n', '\\n').replace('\r', '\\r').replace('\t', '\\t') - item = '{0} [{1}:{2}] {3}'.format(ttyp, token.start, token.stop, text) - yield colors.black(item) - - def dump(self, fd, level=0): - """ Writes a debug representation of this tree to the given file. """ - extras = lambda x, y:x and (x != y) - seen, nform = set(), '{0}{1}{2}{3}' - def innerDump(root, offset): - token, indent = root.token, ' ' * offset - start, stop = root.tokenStartIndex, root.tokenStopIndex - idxes, ttyp = '', tokens.map.get(token.type, '?') - line = token.line - if start and stop and start == stop: - idxes = 'start={}'.format(start) - elif start and stop: - idxes = 'start={}, stop={}'.format(start, stop) - if line: - idxes = 'line={}{}{}'.format(line, ', ' if idxes else '', idxes) - idxes = ' [{}]'.format(idxes) if idxes else '' - idxes = colors.black(idxes) - args = [indent, self.colorType(ttyp), '', idxes, ''] - if extras(token.text, ttyp): - args[2] = ' ' + self.colorText(ttyp, token.text) - for com in self.selectComments(start, seen): - for line in self.colorComments(com): - print >> fd, '{0}{1}'.format(indent, line) - print >> fd, nform.format(*args) - for child in root.getChildren(): - innerDump(child, offset+1) - for com in self.selectComments(root.tokenStopIndex, seen): - for line in self.colorComments(com): - print >> fd, '{0}{1}'.format(indent, line) - innerDump(self, level) - - def dumps(self, level=0): - """ Dump this token to a string. """ - fd = StringIO() - self.dump(fd, level) - return fd.getvalue() - - def dupNode(self): - """ Called by the parser to create a duplicate of this tree. """ - get = lambda v:getattr(self, v, None) - return LocalTree(self, get('lexer'), get('parser')) - - def findChildren(self, pred=lambda c:True): - """ Depth-first search that yields nodes meeting the predicate. """ - for child in self.children: - if pred(child): - yield child - for sub in child.findChildren(pred): - yield sub - - def findChildrenOfType(self, type): - """ Depth-first search that yields nodes of the given type. """ - return self.findChildren(lambda c:c.type==type) - - def firstChild(self, default=None): - """ Returns the first child of this tree or the default. """ - try: - return self.children[0] - except (IndexError, ): - return default - - def firstChildOfType(self, type, default=None): - """ Returns the first child of this tree that matches the given type. """ - for child in self.children: - if child.type == type: - return child - return default - - @property - def isJavaSource(self): - """ True if this tree is the outer most type. """ - return self.token.type == tokens.JAVA_SOURCE - - @property - def parentType(self): - """ Returns the type of the parent tree. """ - return self.parent.type - - def parents(self, pred=lambda v:True): - """ Yield each parent in the family tree. """ - while self: - if pred(self): - yield self - self = self.parent - - @property - def parserTokens(self): - """ Returns the sequence of tokens used to create this tree. """ - return self.parser.input.tokens[self.tokenStartIndex:self.tokenStopIndex] - - def selectComments(self, stop, memo): - """ Returns the comment tokens for this tree up to the given index. """ - pred = lambda k:k.type in tokens.commentTypes and k.index not in memo - ctoks = [t for t in self.parser.input.tokens[0:stop] if pred(t)] - memo.update(t.index for t in ctoks) - return ctoks - - @property - def withinExpr(self): - """ True if this tree is contained within an expression. """ - self = getattr(self.parent, 'parent', None) # skip first expr - while self: - if self.type in (tokens.EXPR, ): - return True - self = self.parent diff --git a/java2python/lang/selector.py b/java2python/lang/selector.py index 22b531a..d277c20 100644 --- a/java2python/lang/selector.py +++ b/java2python/lang/selector.py @@ -90,11 +90,11 @@ def __init__(self, **attrs): self.attrs = attrs ## we support strings so that the client can refer to the ## token name that way instead of via lookup or worse, integer. - if isinstance(attrs.get('type'), (basestring, )): + if isinstance(attrs.get('type'), str): self.attrs['type'] = getattr(tokens, attrs.get('type')) def __call__(self, tree): - items = self.attrs.items() + items = list(self.attrs.items()) token = tree.token def match_or_call(k, v): @@ -106,7 +106,7 @@ def match_or_call(k, v): yield tree def __str__(self): - items = self.attrs.items() + items = list(self.attrs.items()) keys = ('{}={}'.format(k, v) for k, v in items if v is not None) return 'Token({})'.format(', '.join(keys)) @@ -126,7 +126,7 @@ def __call__(self, tree): matches = tree.children[self.key] except (IndexError, ): return - if not isinstance(matches, (list, )): + if not isinstance(matches, list): matches = [matches] for child in matches: yield child diff --git a/java2python/mod/basic.py b/java2python/mod/basic.py index 02e2f57..0806160 100644 --- a/java2python/mod/basic.py +++ b/java2python/mod/basic.py @@ -137,7 +137,7 @@ def maybeSynchronizedMethod(method): def globalNameCounter(original, counter=count()): - return '__{0}_{1}'.format(original, counter.next()) + return '__{0}_{1}'.format(original, next(counter)) def getBsrSrc(): @@ -237,7 +237,7 @@ def zopeImplementsClassHead(obj): def moveStaticExpressions(cls): name = '{}.'.format(cls.name) # notice the dot exprs = [child for child in cls.children if child.isExpression and name in str(child)] - module = cls.parents(lambda x:x.isModule).next() + module = next(cls.parents(lambda x:x.isModule)) for expr in exprs: cls.children.remove(expr) newExpr = module.factory.expr(fs=name + '{right}', right=expr) diff --git a/java2python/mod/include/overloading.py b/java2python/mod/include/overloading.py index 2f8257c..bf340b8 100644 --- a/java2python/mod/include/overloading.py +++ b/java2python/mod/include/overloading.py @@ -42,7 +42,7 @@ if sys.version_info[0] < 3: # Make the environment more like Python 3.0 __metaclass__ = type - from itertools import izip as zip + class overloaded: diff --git a/java2python/mod/include/sync_test.py b/java2python/mod/include/sync_test.py index 70c13d4..d7d62ea 100755 --- a/java2python/mod/include/sync_test.py +++ b/java2python/mod/include/sync_test.py @@ -84,5 +84,5 @@ def cs2(cls, *values, **kwargs): assert expected_count == len(_locks) - print '[PASS]' + print('[PASS]')