Merge smali upstream into master
Test: m checkbuild
Change-Id: Iae6fd24aa23816047d2bcd14f2e9f26a01e3d681
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..40faeef
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,28 @@
+// Copyright (C) 2017 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+filegroup {
+ name: "smali_script",
+ srcs: ["scripts/smali"],
+}
+
+filegroup {
+ name: "baksmali_script",
+ srcs: ["scripts/baksmali"],
+}
+
+filegroup {
+ name: "smali_build.gradle",
+ srcs: ["build.gradle"],
+}
diff --git a/MODULE_LICENSE_BSD b/MODULE_LICENSE_BSD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_BSD
diff --git a/README.version b/README.version
new file mode 100644
index 0000000..22387f0
--- /dev/null
+++ b/README.version
@@ -0,0 +1,3 @@
+URL: https://bitbucket.org/JesusFreke/smali/downloads/smali-2.2.0.jar
+Version: 2.2.0
+BugComponent: 99143
diff --git a/baksmali/Android.bp b/baksmali/Android.bp
new file mode 100644
index 0000000..7f95539
--- /dev/null
+++ b/baksmali/Android.bp
@@ -0,0 +1,44 @@
+// Copyright (C) 2010 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//create a new baksmali.properties file using the correct version
+genrule {
+ name: "baksmali_version",
+ srcs: [":smali_build.gradle"],
+ out: ["baksmali.properties"],
+ cmd: "echo \"application.version=$$(grep -o -e \"^version = '\\(.*\\)'\" $(in) | grep -o -e \"[0-9.]\\+\")-aosp\" > $(out)",
+}
+
+// build baksmali jar
+// ============================================================
+
+java_binary_host {
+ name: "baksmali",
+
+ srcs: [
+ "src/main/java/**/*.java",
+ ],
+
+ manifest: "manifest.txt",
+
+ static_libs: [
+ "dexlib2",
+ "smali-util",
+ "jcommander",
+ ],
+
+ java_resources: [":baksmali_version"],
+
+ wrapper: ":baksmali_script",
+}
diff --git a/baksmali/manifest.txt b/baksmali/manifest.txt
new file mode 100644
index 0000000..f769c2d
--- /dev/null
+++ b/baksmali/manifest.txt
@@ -0,0 +1 @@
+Main-Class: org.jf.baksmali.Main
diff --git a/deodexerant/Android.bp b/deodexerant/Android.bp
new file mode 100644
index 0000000..48d6fe2
--- /dev/null
+++ b/deodexerant/Android.bp
@@ -0,0 +1,44 @@
+// Copyright 2011, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * 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.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "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 COPYRIGHT
+// OWNER OR CONTRIBUTORS 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.
+
+cc_binary {
+ name: "deodexerant",
+
+ srcs: ["deodexerant.c"],
+
+ cflags: [
+ "-Wall",
+ "-Werror",
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ "-Wno-main-return-type",
+ "-Wno-unused-parameter",
+ ],
+
+ ldflags: ["-Wl,--hash-style=sysv"],
+}
diff --git a/deodexerant/Android.mk b/deodexerant/Android.mk
deleted file mode 100644
index 46a9dba..0000000
--- a/deodexerant/Android.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 2011, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * 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.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "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 COPYRIGHT
-# OWNER OR CONTRIBUTORS 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.
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := deodexerant
-
-LOCAL_SRC_FILES:= deodexerant.c
-
-LOCAL_SHARED_LIBRARIES := libdl
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_LDFLAGS := -Wl,--hash-style=sysv
-
-include $(BUILD_EXECUTABLE)
diff --git a/dexlib2/Android.bp b/dexlib2/Android.bp
new file mode 100644
index 0000000..e9fab20
--- /dev/null
+++ b/dexlib2/Android.bp
@@ -0,0 +1,32 @@
+// Copyright (C) 2014 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// build dexlib2 jar
+// ============================================================
+
+java_library_host {
+ name: "dexlib2",
+
+ srcs: [
+ "src/main/java/**/*.java",
+ ],
+
+ static_libs: [
+ "commons-cli-1.2",
+ "guava",
+ "jcommander",
+ "jsr305",
+ "smali-util",
+ ],
+}
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/Opcodes.java b/dexlib2/src/main/java/org/jf/dexlib2/Opcodes.java
index d6d4fdb..5f8106d 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/Opcodes.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/Opcodes.java
@@ -77,11 +77,11 @@
if (api >= 21) {
- this.api = api;
+ this.api = api;
this.artVersion = mapApiToArtVersion(api);
} else if (artVersion >= 0 && artVersion < 39) {
this.api = mapArtVersionToApi(artVersion);
- this.artVersion = artVersion;
+ this.artVersion = artVersion;
} else {
this.api = api;
this.artVersion = artVersion;
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassProto.java b/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassProto.java
index cc8a53c..44cc5e2 100755
--- a/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassProto.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassProto.java
@@ -289,7 +289,7 @@
@Nonnull
protected Iterable<ClassDef> getDirectInterfaces() {
Iterable<ClassDef> directInterfaces =
- FluentIterable.from(getInterfaces().values()).filter(Predicates.notNull());
+ Iterables.filter(getInterfaces().values(), Predicates.notNull());
if (!interfacesFullyResolved) {
throw new UnresolvedClassException("Interfaces for class %s not fully resolved: %s", getType(),
@@ -529,8 +529,8 @@
ClassProto superclass = null;
if (superclassType != null) {
superclass = (ClassProto) classPath.getClass(superclassType);
- startFieldOffset = superclass.getNextFieldOffset();
- }
+ startFieldOffset = superclass.getNextFieldOffset();
+ }
int fieldIndexMod;
if ((startFieldOffset % 8) == 0) {
@@ -617,12 +617,12 @@
//add padding to align the wide fields, if needed
if (fieldTypes[i] == WIDE && !gotDouble) {
- if (fieldOffset % 8 != 0) {
- assert fieldOffset % 8 == 4;
- fieldOffset += 4;
+ if (fieldOffset % 8 != 0) {
+ assert fieldOffset % 8 == 4;
+ fieldOffset += 4;
+ }
+ gotDouble = true;
}
- gotDouble = true;
- }
instanceFields.append(fieldOffset, field);
if (fieldTypes[i] == WIDE) {
@@ -979,14 +979,14 @@
for (int j=0; j<vtable.size(); j++) {
Method candidate = vtable.get(j);
if (MethodUtil.methodSignaturesMatch(candidate, interfaceMethod)) {
- if (!classPath.shouldCheckPackagePrivateAccess() ||
+ if (!classPath.shouldCheckPackagePrivateAccess() ||
AnalyzedMethodUtil.canAccess(ClassProto.this, candidate, true, false, false)) {
if (interfaceMethodOverrides(interfaceMethod, candidate)) {
vtable.set(j, interfaceMethod);
- }
- }
}
}
+ }
+ }
if (vtableIndex >= 0) {
if (!isOverridableByDefaultMethod(vtable.get(vtableIndex))) {
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/HeaderItem.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/HeaderItem.java
index a88f509..e8db969 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/HeaderItem.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/HeaderItem.java
@@ -43,7 +43,7 @@
public static final int ITEM_SIZE = 0x70;
private static final byte[] MAGIC_VALUE = new byte[] { 0x64, 0x65, 0x78, 0x0a, 0x00, 0x00, 0x00, 0x00 };
- private static final int[] SUPPORTED_DEX_VERSIONS = new int[] { 35, 37 };
+ private static final int[] SUPPORTED_DEX_VERSIONS = new int[] { 35, 37, 38 };
public static final int LITTLE_ENDIAN_TAG = 0x12345678;
public static final int BIG_ENDIAN_TAG = 0x78563412;
@@ -232,9 +232,12 @@
if (api < 24) {
// Prior to Android N we only support dex version 035.
return getMagicForDexVersion(35);
- } else {
+ } else if (api < 26) {
// On android N and later we support dex version 037.
return getMagicForDexVersion(37);
+ } else {
+ // On android O and later we support dex version 038.
+ return getMagicForDexVersion(38);
}
}
@@ -269,8 +272,8 @@
for (int i=0; i<4; i++) {
if (buf[offset + i] != MAGIC_VALUE[i]) {
return false;
+ }
}
- }
for (int i=4; i<7; i++) {
if (buf[offset + i] < '0' ||
buf[offset + i] > '9') {
@@ -279,7 +282,7 @@
}
if (buf[offset + 7] != MAGIC_VALUE[7]) {
return false;
- }
+ }
return true;
}
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java
index 4f67a87..232b482 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java
@@ -160,9 +160,8 @@
if (lastIndex > -1) {
return new AbstractCollection<BuilderEncodedValue>() {
@Nonnull @Override public Iterator<BuilderEncodedValue> iterator() {
- return FluentIterable.from(sortedStaticFields)
- .limit(lastIndex+1)
- .transform(GET_INITIAL_VALUE).iterator();
+ Iterable<BuilderField> fields = Iterables.limit(sortedStaticFields, lastIndex + 1);
+ return Iterables.transform(fields, GET_INITIAL_VALUE).iterator();
}
@Override public int size() {
@@ -256,8 +255,7 @@
if (hasParameterAnnotations) {
return new AbstractForwardSequentialList<BuilderAnnotationSet>() {
@Nonnull @Override public Iterator<BuilderAnnotationSet> iterator() {
- return FluentIterable.from(parameters)
- .transform(PARAMETER_ANNOTATIONS).iterator();
+ return Iterables.transform(parameters, PARAMETER_ANNOTATIONS).iterator();
}
@Override public int size() {
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java
index bb23b14..7c1d681 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java
@@ -267,9 +267,8 @@
if (lastIndex > -1) {
return new AbstractCollection<EncodedValue>() {
@Nonnull @Override public Iterator<EncodedValue> iterator() {
- return FluentIterable.from(sortedStaticFields)
- .limit(lastIndex+1)
- .transform(GET_INITIAL_VALUE).iterator();
+ Iterable<Field> fields = Iterables.limit(sortedStaticFields, lastIndex + 1);
+ return Iterables.transform(fields, GET_INITIAL_VALUE).iterator();
}
@Override public int size() {
@@ -359,8 +358,7 @@
if (hasParameterAnnotations) {
return new AbstractForwardSequentialList<Set<? extends Annotation>>() {
@Nonnull @Override public Iterator<Set<? extends Annotation>> iterator() {
- return FluentIterable.from(parameters)
- .transform(PARAMETER_ANNOTATIONS).iterator();
+ return Iterables.transform(parameters, PARAMETER_ANNOTATIONS).iterator();
}
@Override public int size() {
diff --git a/extract-property.xslt b/extract-property.xslt
new file mode 100644
index 0000000..51b0668
--- /dev/null
+++ b/extract-property.xslt
@@ -0,0 +1,4 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pom="http://maven.apache.org/POM/4.0.0" version="1.0">
+ <xsl:output method="text"/>
+ <xsl:template match="/"><xsl:value-of select="//pom:aversion"/></xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/scripts/baksmali b/scripts/baksmali
index bd3f820..f2bfe75 100755
--- a/scripts/baksmali
+++ b/scripts/baksmali
@@ -14,24 +14,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# As per the Apache license requirements, this file has been modified
-# from its original state.
-#
-# Such modifications are Copyright (C) 2010 Ben Gruver, and are released
-# under the original license
-
-# This script is a wrapper around baksmali.jar, so you can simply call
-# "baksmali", instead of java -jar baksmali.jar. It is heavily based on
-# the "dx" script from the Android SDK
-
# Set up prog to be the path of this script, including following symlinks,
# and set up progdir to be the fully-qualified pathname of its directory.
prog="$0"
while [ -h "${prog}" ]; do
newProg=`/bin/ls -ld "${prog}"`
- echo ${newProg}
-
-
newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
if expr "x${newProg}" : 'x/' >/dev/null; then
prog="${newProg}"
@@ -50,34 +37,49 @@
jarfile=baksmali.jar
libdir="$progdir"
-if [ ! -r "$libdir/$jarfile" ]
-then
+
+if [ ! -r "$libdir/$jarfile" ]; then
+ # set dx.jar location for the Android tree case
+ libdir=`dirname "$progdir"`/framework
+fi
+
+if [ ! -r "$libdir/$jarfile" ]; then
echo `basename "$prog"`": can't find $jarfile"
exit 1
fi
+
+# By default, give baksmali a max heap size of 256 mb. This can be overridden
+# by using a "-J" option (see below).
+defaultMx="-Xmx256M"
+
+# The following will extract any initial parameters of the form
+# "-J<stuff>" from the command line and pass them to the Java
+# invocation (instead of to dx). This makes it possible for you to add
+# a command-line parameter such as "-JXmx256M" in your scripts, for
+# example. "java" (with no args) and "java -X" give a summary of
+# available options.
+
javaOpts=""
-# If you want DX to have more memory when executing, uncomment the following
-# line and adjust the value accordingly. Use "java -X" for a list of options
-# you can pass here.
-#
-javaOpts="-Xmx256M"
-
-# Alternatively, this will extract any parameter "-Jxxx" from the command line
-# and pass them to Java (instead of to dx). This makes it possible for you to
-# add a command-line parameter such as "-JXmx256M" in your ant scripts, for
-# example.
while expr "x$1" : 'x-J' >/dev/null; do
- opt=`expr "$1" : '-J\(.*\)'`
+ opt=`expr "x$1" : 'x-J\(.*\)'`
javaOpts="${javaOpts} -${opt}"
+ if expr "x${opt}" : "xXmx[0-9]" >/dev/null; then
+ defaultMx="no"
+ fi
shift
done
-if [ "$OSTYPE" = "cygwin" ] ; then
- jarpath=`cygpath -w "$libdir/$jarfile"`
+if [ "${defaultMx}" != "no" ]; then
+ javaOpts="${javaOpts} ${defaultMx}"
+fi
+
+if [ "$OSTYPE" = "cygwin" ]; then
+ # For Cygwin, convert the jarfile path into native Windows style.
+ jarpath=`cygpath -w "$libdir/$jarfile"`
else
- jarpath="$libdir/$jarfile"
+ jarpath="$libdir/$jarfile"
fi
exec java $javaOpts -jar "$jarpath" "$@"
diff --git a/scripts/smali b/scripts/smali
index 9ede675..71f8e2b 100755
--- a/scripts/smali
+++ b/scripts/smali
@@ -14,24 +14,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# As per the Apache license requirements, this file has been modified
-# from its original state.
-#
-# Such modifications are Copyright (C) 2010 Ben Gruver, and are released
-# under the original license
-
-# This script is a wrapper for smali.jar, so you can simply call "smali",
-# instead of java -jar smali.jar. It is heavily based on the "dx" script
-# from the Android SDK
-
# Set up prog to be the path of this script, including following symlinks,
# and set up progdir to be the fully-qualified pathname of its directory.
prog="$0"
while [ -h "${prog}" ]; do
newProg=`/bin/ls -ld "${prog}"`
- echo ${newProg}
-
-
newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
if expr "x${newProg}" : 'x/' >/dev/null; then
prog="${newProg}"
@@ -50,32 +37,47 @@
jarfile=smali.jar
libdir="$progdir"
-if [ ! -r "$libdir/$jarfile" ]
-then
+
+if [ ! -r "$libdir/$jarfile" ]; then
+ # set dx.jar location for the Android tree case
+ libdir=`dirname "$progdir"`/framework
+fi
+
+if [ ! -r "$libdir/$jarfile" ]; then
echo `basename "$prog"`": can't find $jarfile"
exit 1
fi
+
+# By default, give smali a max heap size of 256 mb. This can be overridden
+# by using a "-J" option (see below).
+defaultMx="-Xmx256M"
+
+# The following will extract any initial parameters of the form
+# "-J<stuff>" from the command line and pass them to the Java
+# invocation (instead of to dx). This makes it possible for you to add
+# a command-line parameter such as "-JXmx256M" in your scripts, for
+# example. "java" (with no args) and "java -X" give a summary of
+# available options.
+
javaOpts=""
-# If you want DX to have more memory when executing, uncomment the following
-# line and adjust the value accordingly. Use "java -X" for a list of options
-# you can pass here.
-#
-javaOpts="-Xmx512M"
-
-# Alternatively, this will extract any parameter "-Jxxx" from the command line
-# and pass them to Java (instead of to dx). This makes it possible for you to
-# add a command-line parameter such as "-JXmx256M" in your ant scripts, for
-# example.
while expr "x$1" : 'x-J' >/dev/null; do
- opt=`expr "$1" : '-J\(.*\)'`
+ opt=`expr "x$1" : 'x-J\(.*\)'`
javaOpts="${javaOpts} -${opt}"
+ if expr "x${opt}" : "xXmx[0-9]" >/dev/null; then
+ defaultMx="no"
+ fi
shift
done
-if [ "$OSTYPE" = "cygwin" ] ; then
- jarpath=`cygpath -w "$libdir/$jarfile"`
+if [ "${defaultMx}" != "no" ]; then
+ javaOpts="${javaOpts} ${defaultMx}"
+fi
+
+if [ "$OSTYPE" = "cygwin" ]; then
+ # For Cygwin, convert the jarfile path into native Windows style.
+ jarpath=`cygpath -w "$libdir/$jarfile"`
else
jarpath="$libdir/$jarfile"
fi
diff --git a/smali/Android.bp b/smali/Android.bp
new file mode 100644
index 0000000..4bbfa1b
--- /dev/null
+++ b/smali/Android.bp
@@ -0,0 +1,44 @@
+// Copyright (C) 2010 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+genrule {
+ name: "smali_version",
+ srcs: [":smali_build.gradle"],
+ out: ["smali.properties"],
+ cmd: "echo \"application.version=$$(grep -o -e \"^version = '\\(.*\\)'\" $(in) | grep -o -e \"[0-9.]\\+\")-aosp\" > $(out)",
+}
+
+// build smali jar
+// ============================================================
+
+java_binary_host {
+ name: "smali",
+
+ srcs: [
+ "src/main/java/**/*.java",
+ ],
+
+ manifest: "manifest.txt",
+
+ static_libs: [
+ "antlr-runtime",
+ "dexlib2",
+ "jcommander",
+ "smali-util",
+ ],
+
+ java_resources: [":smali_version"],
+
+ wrapper: ":smali_script",
+}
diff --git a/smali/manifest.txt b/smali/manifest.txt
new file mode 100644
index 0000000..0a58e57
--- /dev/null
+++ b/smali/manifest.txt
@@ -0,0 +1 @@
+Main-Class: org.jf.smali.Main
diff --git a/smali/runantlr.sh b/smali/runantlr.sh
new file mode 100755
index 0000000..1133f41
--- /dev/null
+++ b/smali/runantlr.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# This script runs antlr3 generating java code based on .g (ANLTR3) files.
+# antlr3 tool itself can be downloaded by running the gradle build.
+#
+# The script can be run from anywhere (it does not depend on current working directory)
+# Set $ANTLR to overwrite antlr location, if desired
+#
+# After making any changes to the lexer, the update source file(s) generated by
+# this script should be checked in to the repository
+
+# Update when switching to a different version of antlr
+EXPECTED_ANTLR_VERSION_STR="ANTLR Parser Generator Version 3.5.2"
+
+# Get the location of this script used to find locations of other things in the tree.
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+# Point to the directory which contains the ANTLR jars.
+if [[ -z "$ANTLR" ]]
+then
+ # Best effort to find it inside of the gradle cache
+ ANTLR="$(find $HOME/.gradle/caches/artifacts-* -name 'org.antlr' | head -n 1)"
+fi
+
+# Class that contains the static main function.
+ANTLR_MAIN="org.antlr.Tool"
+
+if ! [[ -d "$ANTLR" ]]; then
+ echo >&2 "ERROR: Could not find ANTLR jars directory"
+ exit 1
+fi
+
+# Build up the classpath by finding all the JARs
+ANTLR_JARS=""
+
+for jar_file_name in $(find "$ANTLR" -name '*.jar'); do
+ if ! [[ -z "$ANTLR_JARS" ]]; then
+ ANTLR_JARS+=":"
+ fi
+ ANTLR_JARS+="$jar_file_name"
+done
+
+if [[ -z "$ANTLR_JARS" ]]; then
+ echo >&2 "Could not find any JARs in the ANTLR directory"
+ echo >&2 "Is '"$ANTLR"' the correct path to the JARs?"
+ exit 1
+fi
+
+function run_antlr() {
+ CLASSPATH="$ANTLR_JARS" java 2>&1 "$ANTLR_MAIN" "$@"
+}
+
+ANTLR_VERSION="$(run_antlr -version)"
+
+if [[ -z "$ANTLR_VERSION" ]]
+then
+ echo >&2 "ERROR: Failed to execute antlr at \"$ANTLR\""
+ exit 1
+fi
+
+if [[ "$EXPECTED_ANTLR_VERSION_STR" != "$ANTLR_VERSION" ]]
+then
+ echo >&2 "ERROR: Wrong version of jflex: \"$ANTLR_VERSION\". Expected: \"$EXPECTED_ANTLR_VERSION_STR\""
+ exit 1
+fi
+
+
+function generate_file {
+ local JAVA_FILE="$1"
+ local G_FILE="$2"
+
+ if ! [[ -f "$JAVA_FILE" ]]; then
+ echo >&2 "ERROR: File \"$JAVA_FILE\" not found"
+ exit 1
+ fi
+
+ echo "Re-generating \"$JAVA_FILE\"..."
+
+ [[ -f "$JAVA_FILE" ]] && rm -f "$JAVA_FILE"
+
+ local JAVA_DIR="$(dirname "$JAVA_FILE")"
+ # Generate the java file from the antlr file
+ run_antlr -verbose -fo "$JAVA_DIR" "$G_FILE"
+
+ # delete trailing space from end of each line to make gerrit happy
+ sed 's/[ ]*$//' "$JAVA_FILE" > "$JAVA_FILE.tmp"
+ [[ -f "$JAVA_FILE" ]] && rm "$JAVA_FILE"
+ mv "$JAVA_FILE.tmp" "$JAVA_FILE"
+
+ echo "DONE"
+ echo ""
+ echo ""
+}
+
+function cleanup_tokens {
+ local JAVA_FILE="$1"
+
+ # delete the tokens file, they are not necessary to actually build from Android.mk
+ local TOKEN_FILE="${JAVA_FILE%%\.java}.tokens"
+ [[ -f "$TOKEN_FILE" ]] && rm "$TOKEN_FILE"
+}
+
+generate_file "$SCRIPT_DIR/src/main/java/org/jf/smali/smaliParser.java" "$SCRIPT_DIR/src/main/antlr/smaliParser.g"
+generate_file "$SCRIPT_DIR/src/main/java/org/jf/smali/smaliTreeWalker.java" "$SCRIPT_DIR/src/main/antlr/smaliTreeWalker.g"
+
+# Clean up the tokens, no longer necessary once the tree walker is generated
+cleanup_tokens "$SCRIPT_DIR/src/main/java/org/jf/smali/smaliParser.java"
+cleanup_tokens "$SCRIPT_DIR/src/main/java/org/jf/smali/smaliTreeWalker.java"
+
+# Uncomment to run interactively
+#run_antlr "$@"
diff --git a/smali/runjflex.sh b/smali/runjflex.sh
new file mode 100755
index 0000000..783b912
--- /dev/null
+++ b/smali/runjflex.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+#
+# This script runs jflex generating java code based on .jflex files.
+# jflex tool itself resides in external/jflex. At the time of this writing
+# it's not a part of jflex manifest and needs to be checked out manually.
+#
+# The script can be run from anywhere (it does not depend on current working directory)
+# Set $JFLEX to overwrite jflex location, if desired
+#
+# After making any changes to the lexer, the update source file(s) generated by
+# this script should be checked in to the repository
+
+# Update when switching to a different version of jflex
+EXPECTED_JFLEX_VERSION="1.6.1"
+EXPECTED_JFLEX_VERSION_STR="This is JFlex $EXPECTED_JFLEX_VERSION"
+
+# Get the location of this script used to find locations of other things in the tree.
+SCRIPT_DIR=`dirname $0`
+echo $SCRIPT_DIR
+
+TOP_PATH="$SCRIPT_DIR/../../.."
+
+# Run the java jar when 'JFLEX' is not in the environment
+function exec_jar_jflex {
+ java -jar "$jflex_location" "$@"
+}
+
+# All specifying jflex but fallback to default location
+if [ -z "$JFLEX" ]
+then
+ # Best effort to find it inside of the gradle cache
+ jflex_jar_name="jflex-${EXPECTED_JFLEX_VERSION}.jar"
+ jflex_location="$(find $HOME/.gradle/caches/artifacts-* -name "$jflex_jar_name" | head -n 1)"
+ if [ -z $jflex_location ]; then
+ echo "ERROR: Could not find jflex location, consider setting the \$JFLEX variable to point to it"
+ exit 1
+ fi
+ JFLEX=exec_jar_jflex
+fi
+
+JFLEX_VERSION=`"$JFLEX" --version`
+
+if [ "$JFLEX_VERSION" = "" ]
+then
+ echo "ERROR: Failed to execute jflex at \"$JFLEX\""
+ exit 1
+fi
+
+if [ "$EXPECTED_JFLEX_VERSION_STR" != "$JFLEX_VERSION" ]
+then
+ echo "ERROR: Wrong version of jflex: \"$JFLEX_VERSION\". Expected: \"$EXPECTED_JFLEX_VERSION_STR\""
+ exit 1
+fi
+
+JAVA_FILE=$SCRIPT_DIR/src/main/java/org/jf/smali/smaliFlexLexer.java
+rm -f "$JAVA_FILE"
+
+"$JFLEX" --nobak -d "$SCRIPT_DIR/src/main/java/org/jf/smali" "$SCRIPT_DIR/src/main/jflex/smaliLexer.jflex"
+
+# delete trailing space from end of each line to make gerrit happy
+sed 's/[ ]*$//' "$JAVA_FILE" > "$JAVA_FILE.tmp"
+rm "$JAVA_FILE"
+mv "$JAVA_FILE.tmp" "$JAVA_FILE"
diff --git a/smali/src/main/java/org/jf/smali/smaliFlexLexer.java b/smali/src/main/java/org/jf/smali/smaliFlexLexer.java
new file mode 100644
index 0000000..4092111
--- /dev/null
+++ b/smali/src/main/java/org/jf/smali/smaliFlexLexer.java
@@ -0,0 +1,4100 @@
+/* The following code was generated by JFlex 1.6.1 */
+
+package org.jf.smali;
+
+import java.io.*;
+import org.antlr.runtime.*;
+import org.jf.util.*;
+import static org.jf.smali.smaliParser.*;
+
+
+/**
+ * This class is a scanner generated by
+ * <a href="http://www.jflex.de/">JFlex</a> 1.6.1
+ * from the specification file <tt>./src/main/jflex/smaliLexer.jflex</tt>
+ */
+public class smaliFlexLexer implements TokenSource, LexerErrorInterface {
+
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
+
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
+
+ /** lexical states */
+ public static final int YYINITIAL = 0;
+ public static final int PARAM_LIST_OR_ID = 2;
+ public static final int PARAM_LIST = 4;
+ public static final int ARRAY_DESCRIPTOR = 6;
+ public static final int STRING = 8;
+ public static final int CHAR = 10;
+
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5
+ };
+
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\11\0\1\115\1\64\2\0\1\64\22\0\1\50\1\0\1\62\1\72"+
+ "\1\22\2\0\1\63\1\113\1\114\2\0\1\110\1\7\1\17\1\30"+
+ "\1\1\1\76\1\75\1\102\1\73\1\5\1\77\1\5\1\101\1\4"+
+ "\1\107\1\31\1\104\1\106\1\105\1\0\1\70\1\16\2\23\1\61"+
+ "\1\6\1\25\2\57\1\24\1\26\1\57\1\27\1\57\1\12\1\57"+
+ "\1\10\2\57\1\60\1\14\1\57\1\103\1\57\1\2\1\15\1\26"+
+ "\1\32\1\65\2\56\1\57\1\56\1\35\1\3\1\33\1\47\1\41"+
+ "\1\13\1\52\1\51\1\11\1\74\1\54\1\34\1\43\1\44\1\46"+
+ "\1\40\1\100\1\42\1\36\1\45\1\37\1\66\1\55\1\71\1\53"+
+ "\1\67\1\111\1\0\1\112\43\0\u1f5f\22\20\0\30\22\10\0\ub7d0\22"+
+ "\u0400\20\u0400\21\u1ff0\22\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\40\0";
+
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
+
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\6\0\1\1\1\2\2\3\1\2\4\3\1\4\1\1"+
+ "\2\5\1\3\1\6\15\3\1\7\1\3\1\10\1\11"+
+ "\2\3\1\12\1\13\1\1\1\14\1\15\1\16\1\17"+
+ "\1\20\1\21\1\22\1\23\1\24\1\5\1\23\1\25"+
+ "\1\26\1\23\1\27\1\30\1\31\1\0\1\27\1\32"+
+ "\1\33\1\0\1\2\3\3\1\34\1\35\1\36\1\0"+
+ "\1\37\1\40\1\41\2\3\2\42\1\3\1\0\1\43"+
+ "\12\3\3\4\1\44\10\4\1\45\1\3\1\0\1\3"+
+ "\2\0\22\3\1\46\31\3\6\0\1\47\1\50\1\51"+
+ "\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61"+
+ "\1\2\1\0\1\41\1\3\1\0\1\62\1\36\2\3"+
+ "\1\42\12\3\1\41\5\3\21\4\1\3\1\0\1\63"+
+ "\2\0\1\64\2\0\43\3\1\65\14\3\1\66\1\0"+
+ "\1\64\1\0\1\67\1\52\1\61\1\0\1\36\1\0"+
+ "\2\3\1\42\5\3\1\70\5\3\1\70\4\3\25\4"+
+ "\4\0\7\3\1\71\5\3\1\72\11\3\1\73\5\3"+
+ "\1\74\1\3\1\75\6\3\1\76\6\3\1\77\3\3"+
+ "\1\52\1\61\1\100\2\3\1\101\14\3\4\4\1\102"+
+ "\13\4\1\103\1\0\3\4\3\3\1\104\32\3\1\0"+
+ "\11\3\1\105\5\3\1\0\3\3\1\52\1\61\1\3"+
+ "\1\106\22\3\1\0\1\3\1\4\1\107\1\110\1\111"+
+ "\1\112\3\4\1\113\3\4\1\114\13\4\5\3\1\0"+
+ "\34\3\1\105\5\3\2\0\12\3\1\71\4\3\2\0"+
+ "\3\3\2\115\12\3\1\0\13\3\1\0\1\3\2\4"+
+ "\1\116\4\4\1\117\15\4\1\120\7\3\1\0\1\121"+
+ "\1\0\16\3\1\71\11\3\1\71\12\3\1\0\1\122"+
+ "\1\74\11\3\1\0\3\3\1\123\1\124\1\0\1\61"+
+ "\11\3\1\0\21\3\1\0\1\3\24\4\1\3\1\71"+
+ "\5\3\1\0\1\125\13\3\1\0\10\3\1\0\3\3"+
+ "\1\126\10\3\1\0\4\3\1\127\1\3\2\0\3\3"+
+ "\1\0\4\3\1\70\2\3\1\70\2\3\1\0\15\3"+
+ "\1\70\3\3\1\130\1\3\1\4\1\131\5\4\1\132"+
+ "\1\133\11\4\1\0\1\4\6\3\1\0\11\3\1\72"+
+ "\2\3\1\72\1\3\1\0\2\3\1\0\7\3\1\74"+
+ "\1\0\2\3\1\134\4\3\2\0\2\3\1\0\10\3"+
+ "\1\135\1\136\16\3\6\4\1\137\1\140\5\4\1\141"+
+ "\2\4\1\142\3\3\1\143\1\0\1\3\1\144\7\3"+
+ "\1\0\11\3\1\0\5\3\2\0\2\3\1\145\20\3"+
+ "\1\146\1\147\1\150\10\4\1\151\1\4\2\3\2\0"+
+ "\5\3\1\0\2\3\1\105\1\65\3\3\1\105\1\152"+
+ "\5\3\1\0\1\153\1\0\7\3\1\154\7\3\11\4"+
+ "\1\155\2\0\1\156\13\3\1\157\1\160\2\3\1\161"+
+ "\2\3\1\0\1\154\2\3\1\154\3\3\11\4\2\0"+
+ "\1\162\1\163\1\164\10\3\1\0\5\3\1\165\1\166"+
+ "\1\167\5\4\1\170\2\0\1\171\6\3\1\0\4\3"+
+ "\1\172\1\173\3\4\3\0\5\3\1\0\3\3\1\174"+
+ "\3\4\3\0\4\3\1\0\3\3\1\0\3\4\1\0"+
+ "\1\175\1\0\2\3\1\176\1\177\1\200\2\3\1\0"+
+ "\1\201\1\202\1\203\1\204\1\0\2\3\3\0\1\205"+
+ "\2\0\1\206\1\3\4\0\1\207\1\3\4\0\1\3"+
+ "\3\0\1\210\1\3\3\0\1\3\1\211\1\212\1\213"+
+ "\1\214";
+
+ private static int [] zzUnpackAction() {
+ int [] result = new int[1209];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
+
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222"+
+ "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u0444\0\u0492"+
+ "\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u06b4\0\u0702"+
+ "\0\u0750\0\u079e\0\u07ec\0\u083a\0\u0888\0\u08d6\0\u0924\0\u0972"+
+ "\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa\0\u01d4\0\u01d4\0\u0af8\0\u0b46"+
+ "\0\u0b94\0\u0270\0\u0be2\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u01d4"+
+ "\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u01d4\0\u0c30\0\u0c7e\0\u01d4"+
+ "\0\u0ccc\0\u0d1a\0\u01d4\0\u01d4\0\u0d68\0\u0db6\0\u01d4\0\u01d4"+
+ "\0\u0e04\0\u0e52\0\u0ea0\0\u0eee\0\u0f3c\0\u0270\0\u0270\0\u0f8a"+
+ "\0\u04e0\0\u0270\0\u0270\0\u0270\0\u0fd8\0\u1026\0\u1074\0\u10c2"+
+ "\0\u1110\0\u115e\0\u01d4\0\u11ac\0\u11fa\0\u1248\0\u1296\0\u12e4"+
+ "\0\u1332\0\u1380\0\u13ce\0\u141c\0\u146a\0\u14b8\0\u1506\0\u1554"+
+ "\0\u01d4\0\u15a2\0\u15f0\0\u163e\0\u168c\0\u16da\0\u1728\0\u1776"+
+ "\0\u17c4\0\u052e\0\u1812\0\u1860\0\u18ae\0\u18fc\0\u194a\0\u1998"+
+ "\0\u19e6\0\u1a34\0\u1a82\0\u1ad0\0\u1b1e\0\u1b6c\0\u1bba\0\u1c08"+
+ "\0\u1c56\0\u1ca4\0\u1cf2\0\u1d40\0\u1d8e\0\u1ddc\0\u1e2a\0\u1e78"+
+ "\0\u1ec6\0\u1f14\0\u1f62\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8"+
+ "\0\u2136\0\u2184\0\u21d2\0\u2220\0\u226e\0\u22bc\0\u230a\0\u2358"+
+ "\0\u23a6\0\u23f4\0\u2442\0\u2490\0\u24de\0\u252c\0\u257a\0\u25c8"+
+ "\0\u2616\0\u2664\0\u26b2\0\u2700\0\u274e\0\u279c\0\u27ea\0\u2838"+
+ "\0\u2886\0\u01d4\0\u01d4\0\u01d4\0\u28d4\0\u01d4\0\u01d4\0\u01d4"+
+ "\0\u01d4\0\u01d4\0\u01d4\0\u2922\0\u2970\0\u29be\0\u2a0c\0\u2a5a"+
+ "\0\u2aa8\0\u01d4\0\u01d4\0\u2af6\0\u2b44\0\u2b92\0\u2be0\0\u2c2e"+
+ "\0\u2c7c\0\u2cca\0\u2d18\0\u2d66\0\u2db4\0\u2e02\0\u2e50\0\u2e9e"+
+ "\0\u2eec\0\u2f3a\0\u2f88\0\u2fd6\0\u3024\0\u3072\0\u30c0\0\u310e"+
+ "\0\u315c\0\u31aa\0\u31f8\0\u3246\0\u3294\0\u32e2\0\u3330\0\u337e"+
+ "\0\u33cc\0\u341a\0\u3468\0\u34b6\0\u3504\0\u3552\0\u35a0\0\u35ee"+
+ "\0\u363c\0\u1860\0\u368a\0\u36d8\0\u1860\0\u3726\0\u3774\0\u37c2"+
+ "\0\u3810\0\u385e\0\u38ac\0\u38fa\0\u3948\0\u3996\0\u39e4\0\u3a32"+
+ "\0\u3a80\0\u3ace\0\u3b1c\0\u3b6a\0\u3bb8\0\u3c06\0\u3c54\0\u3ca2"+
+ "\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76\0\u3ec4\0\u3f12"+
+ "\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098\0\u40e6\0\u4134\0\u4182"+
+ "\0\u41d0\0\u421e\0\u0270\0\u426c\0\u42ba\0\u4308\0\u4356\0\u43a4"+
+ "\0\u43f2\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u01d4"+
+ "\0\u0c30\0\u01d4\0\u0ccc\0\u01d4\0\u4614\0\u4662\0\u46b0\0\u46fe"+
+ "\0\u474c\0\u479a\0\u47e8\0\u4836\0\u4884\0\u48d2\0\u4920\0\u496e"+
+ "\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6\0\u4af4\0\u4b42\0\u4b90\0\u4bde"+
+ "\0\u4c2c\0\u4c7a\0\u4cc8\0\u4d16\0\u4d64\0\u4db2\0\u4e00\0\u4e4e"+
+ "\0\u4e9c\0\u4eea\0\u4f38\0\u4f86\0\u4fd4\0\u5022\0\u5070\0\u50be"+
+ "\0\u510c\0\u515a\0\u51a8\0\u51f6\0\u5244\0\u5292\0\u52e0\0\u532e"+
+ "\0\u537c\0\u53ca\0\u5418\0\u5466\0\u54b4\0\u5502\0\u5550\0\u559e"+
+ "\0\u55ec\0\u563a\0\u5688\0\u56d6\0\u5724\0\u5772\0\u57c0\0\u580e"+
+ "\0\u585c\0\u58aa\0\u58f8\0\u5946\0\u5994\0\u59e2\0\u5a30\0\u5a7e"+
+ "\0\u5acc\0\u5b1a\0\u5b68\0\u5bb6\0\u0270\0\u5c04\0\u5c52\0\u5ca0"+
+ "\0\u5cee\0\u5d3c\0\u5d8a\0\u5dd8\0\u0270\0\u5e26\0\u5e74\0\u5ec2"+
+ "\0\u5f10\0\u5f5e\0\u5fac\0\u0270\0\u5ffa\0\u6048\0\u6096\0\u60e4"+
+ "\0\u6132\0\u6180\0\u61ce\0\u621c\0\u626a\0\u62b8\0\u6306\0\u6354"+
+ "\0\u0270\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da\0\u6528\0\u6576"+
+ "\0\u65c4\0\u6612\0\u6660\0\u66ae\0\u66fc\0\u674a\0\u6798\0\u67e6"+
+ "\0\u6834\0\u6882\0\u68d0\0\u691e\0\u14b8\0\u696c\0\u69ba\0\u6a08"+
+ "\0\u6a56\0\u6aa4\0\u6af2\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a\0\u6c78"+
+ "\0\u14b8\0\u6cc6\0\u6d14\0\u6d62\0\u6db0\0\u6dfe\0\u6e4c\0\u6e9a"+
+ "\0\u6ee8\0\u6f36\0\u6f84\0\u6fd2\0\u7020\0\u706e\0\u70bc\0\u710a"+
+ "\0\u7158\0\u71a6\0\u71f4\0\u7242\0\u7290\0\u72de\0\u732c\0\u737a"+
+ "\0\u73c8\0\u7416\0\u7464\0\u74b2\0\u7500\0\u754e\0\u759c\0\u75ea"+
+ "\0\u7638\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u780c\0\u785a"+
+ "\0\u78a8\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u7a2e\0\u7a7c\0\u7aca"+
+ "\0\u7b18\0\u7b66\0\u7bb4\0\u7c02\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a"+
+ "\0\u7d88\0\u7dd6\0\u0270\0\u7e24\0\u7e72\0\u7ec0\0\u7f0e\0\u7f5c"+
+ "\0\u7faa\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc"+
+ "\0\u821a\0\u8268\0\u82b6\0\u8304\0\u8352\0\u83a0\0\u83ee\0\u843c"+
+ "\0\u14b8\0\u14b8\0\u848a\0\u84d8\0\u8526\0\u8574\0\u85c2\0\u14b8"+
+ "\0\u8610\0\u865e\0\u86ac\0\u14b8\0\u86fa\0\u8748\0\u8796\0\u87e4"+
+ "\0\u8832\0\u8880\0\u88ce\0\u891c\0\u896a\0\u89b8\0\u8a06\0\u8a54"+
+ "\0\u8aa2\0\u8af0\0\u8b3e\0\u8b8c\0\u8bda\0\u8c28\0\u8c76\0\u8cc4"+
+ "\0\u8d12\0\u8d60\0\u8dae\0\u8dfc\0\u8e4a\0\u8e98\0\u8ee6\0\u8f34"+
+ "\0\u8f82\0\u8fd0\0\u901e\0\u906c\0\u90ba\0\u9108\0\u9156\0\u91a4"+
+ "\0\u91f2\0\u9240\0\u928e\0\u92dc\0\u932a\0\u9378\0\u93c6\0\u9414"+
+ "\0\u9462\0\u94b0\0\u94fe\0\u954c\0\u959a\0\u95e8\0\u9636\0\u9684"+
+ "\0\u96d2\0\u9720\0\u976e\0\u97bc\0\u980a\0\u9858\0\u98a6\0\u98f4"+
+ "\0\u9942\0\u9990\0\u99de\0\u9a2c\0\u9a7a\0\u9ac8\0\u9b16\0\u9b64"+
+ "\0\u9bb2\0\u9c00\0\u9c4e\0\u9c9c\0\u9cea\0\u01d4\0\u9d38\0\u9d86"+
+ "\0\u9dd4\0\u9e22\0\u9e70\0\u9ebe\0\u9f0c\0\u9f5a\0\u9fa8\0\u9ff6"+
+ "\0\ua044\0\ua092\0\ua0e0\0\ua12e\0\ua17c\0\ua1ca\0\ua218\0\ua266"+
+ "\0\ua2b4\0\ua302\0\ua350\0\ua39e\0\ua3ec\0\ua43a\0\ua488\0\ua4d6"+
+ "\0\ua524\0\u14b8\0\ua572\0\ua5c0\0\ua60e\0\ua65c\0\u14b8\0\ua6aa"+
+ "\0\ua6f8\0\ua746\0\ua794\0\ua7e2\0\ua830\0\ua87e\0\ua8cc\0\ua91a"+
+ "\0\ua968\0\ua9b6\0\uaa04\0\uaa52\0\u14b8\0\uaaa0\0\uaaee\0\uab3c"+
+ "\0\uab8a\0\uabd8\0\uac26\0\uac74\0\uacc2\0\u01d4\0\uad10\0\uad5e"+
+ "\0\uadac\0\uadfa\0\uae48\0\uae96\0\uaee4\0\uaf32\0\uaf80\0\uafce"+
+ "\0\ub01c\0\ub06a\0\ub0b8\0\ub106\0\ub154\0\ub1a2\0\ub1f0\0\ub23e"+
+ "\0\ub28c\0\ub2da\0\ub328\0\ub376\0\ub3c4\0\ub412\0\ub460\0\ub4ae"+
+ "\0\ub4fc\0\ub54a\0\ub598\0\ub5e6\0\ub634\0\ub682\0\ub6d0\0\ub71e"+
+ "\0\ub76c\0\ub7ba\0\ub808\0\u01d4\0\u0270\0\ub856\0\ub8a4\0\ub8f2"+
+ "\0\ub940\0\ub98e\0\ub9dc\0\uba2a\0\uba78\0\ubac6\0\ubb14\0\ubb62"+
+ "\0\ubbb0\0\ubbfe\0\u01d4\0\u01d4\0\ubc4c\0\u9d38\0\ubc9a\0\ubce8"+
+ "\0\ubd36\0\ubd84\0\ubdd2\0\ube20\0\ube6e\0\ubebc\0\ubf0a\0\ubf58"+
+ "\0\ubfa6\0\ubff4\0\uc042\0\uc090\0\uc0de\0\uc12c\0\uc17a\0\uc1c8"+
+ "\0\uc216\0\uc264\0\uc2b2\0\uc300\0\uc34e\0\uc39c\0\uc3ea\0\uc438"+
+ "\0\uc486\0\uc4d4\0\uc522\0\uc570\0\uc5be\0\uc60c\0\uc65a\0\uc6a8"+
+ "\0\uc6f6\0\uc744\0\uc792\0\uc7e0\0\uc82e\0\uc87c\0\uc8ca\0\uc918"+
+ "\0\uc966\0\uc9b4\0\uca02\0\uca50\0\uca9e\0\ucaec\0\ucb3a\0\ucb88"+
+ "\0\u0270\0\ucbd6\0\ucc24\0\ucc72\0\uccc0\0\ucd0e\0\ucd5c\0\u01d4"+
+ "\0\ucdaa\0\ucdf8\0\uce46\0\uce94\0\ucee2\0\ucf30\0\ucf7e\0\ucfcc"+
+ "\0\ud01a\0\ud068\0\ud0b6\0\ud104\0\ud152\0\ud1a0\0\ud1ee\0\ud23c"+
+ "\0\ud28a\0\ud2d8\0\ud326\0\ud374\0\ud3c2\0\ud410\0\ud45e\0\ud4ac"+
+ "\0\ud4fa\0\ud548\0\ud596\0\ud5e4\0\ud632\0\ud680\0\ud6ce\0\ud71c"+
+ "\0\ud76a\0\ud7b8\0\ud806\0\ud854\0\ud8a2\0\ud8f0\0\u0270\0\ud93e"+
+ "\0\ud98c\0\ud9da\0\uda28\0\uda76\0\udac4\0\udb12\0\udb60\0\udbae"+
+ "\0\udbfc\0\udc4a\0\udc98\0\udce6\0\udd34\0\udd82\0\uddd0\0\ude1e"+
+ "\0\ude6c\0\udeba\0\udf08\0\udf56\0\udfa4\0\udff2\0\ue040\0\ue08e"+
+ "\0\ue0dc\0\ue12a\0\ue178\0\ue1c6\0\ue214\0\ue262\0\u0270\0\ue2b0"+
+ "\0\ue2fe\0\ue34c\0\uc4d4\0\ue39a\0\ue3e8\0\u14b8\0\ue436\0\ue484"+
+ "\0\ue4d2\0\ue520\0\ue56e\0\u14b8\0\u14b8\0\ue5bc\0\ue60a\0\ue658"+
+ "\0\ue6a6\0\ue6f4\0\ue742\0\ue790\0\ue7de\0\ue82c\0\ue87a\0\ue8c8"+
+ "\0\ue916\0\ue964\0\ue9b2\0\uea00\0\uea4e\0\uea9c\0\ueaea\0\ueb38"+
+ "\0\ueb86\0\uebd4\0\uec22\0\uec70\0\uecbe\0\ued0c\0\ued5a\0\ueda8"+
+ "\0\u0270\0\uedf6\0\uee44\0\uee92\0\ueee0\0\uef2e\0\uef7c\0\uefca"+
+ "\0\uf018\0\uf066\0\uf0b4\0\uf102\0\uf150\0\uf19e\0\uf1ec\0\uf23a"+
+ "\0\uf288\0\uf2d6\0\uf324\0\uf372\0\u0270\0\uf3c0\0\uf40e\0\uf45c"+
+ "\0\uf4aa\0\uf4f8\0\uf546\0\uf594\0\uf5e2\0\uf630\0\uf67e\0\uf6cc"+
+ "\0\uf71a\0\uf768\0\uf7b6\0\uf804\0\uf852\0\uf8a0\0\u0270\0\ude6c"+
+ "\0\uf8ee\0\uf93c\0\uf98a\0\uf9d8\0\ufa26\0\ufa74\0\ufac2\0\ufb10"+
+ "\0\ufb5e\0\ufbac\0\ufbfa\0\ufc48\0\ufc96\0\ufce4\0\ufd32\0\ufd80"+
+ "\0\ufdce\0\ufe1c\0\ufe6a\0\ufeb8\0\u14b8\0\u14b8\0\uff06\0\uff54"+
+ "\0\uffa2\0\ufff0\1\76\0\u14b8\1\214\1\332\0\u14b8\1\u0128"+
+ "\1\u0176\1\u01c4\1\u0212\1\u0260\1\u02ae\0\u0270\1\u02fc\1\u034a"+
+ "\1\u0398\1\u03e6\1\u0434\1\u0482\1\u04d0\1\u051e\1\u056c\1\u05ba"+
+ "\1\u0608\1\u0656\1\u06a4\1\u06f2\1\u0740\1\u078e\1\u07dc\1\u082a"+
+ "\1\u0878\1\u08c6\1\u0914\1\u0962\1\u09b0\1\u09fe\1\u0a4c\1\u0a9a"+
+ "\1\u0ae8\0\uf630\1\u0b36\1\u0b84\1\u0bd2\1\u0c20\1\u0c6e\1\u0cbc"+
+ "\1\u0d0a\1\u0d58\1\u0da6\1\u0df4\1\u0e42\1\u0e90\1\u0ede\1\u0f2c"+
+ "\1\u0f7a\1\u0fc8\0\u14b8\0\u14b8\0\u14b8\1\u1016\1\u1064\1\u10b2"+
+ "\1\u1100\1\u114e\1\u119c\1\u11ea\1\u1238\0\u14b8\1\u1286\1\u12d4"+
+ "\1\u1322\1\u1370\1\u13be\1\u140c\1\u145a\1\u14a8\1\u14f6\1\u1544"+
+ "\1\u1592\1\u15e0\1\u162e\0\u0270\1\u167c\1\u16ca\1\u1718\1\u1766"+
+ "\1\u17b4\0\u01d4\1\u1802\1\u1850\1\u189e\1\u18ec\1\u193a\1\u1988"+
+ "\0\u01d4\1\u19d6\1\u1a24\1\u1a72\1\u1ac0\1\u1b0e\1\u1b5c\1\u1baa"+
+ "\1\u1bf8\1\u1c46\1\u1c94\1\u1ce2\1\u1d30\1\u1d7e\1\u1dcc\1\u1e1a"+
+ "\1\u1e68\1\u1eb6\1\u1f04\1\u1f52\1\u1fa0\1\u1fee\1\u203c\1\u208a"+
+ "\1\u20d8\1\u2126\1\u2174\1\u21c2\1\u2210\0\u01d4\1\u225e\1\u22ac"+
+ "\1\u22fa\1\u2348\1\u2396\1\u23e4\1\u2432\1\u2480\1\u24ce\1\u251c"+
+ "\1\u256a\0\u01d4\0\u01d4\1\u25b8\1\u2606\0\u0270\1\u2654\1\u26a2"+
+ "\1\u26f0\1\u273e\1\u278c\1\u27da\1\u2828\1\u2876\1\u28c4\1\u2912"+
+ "\1\u2960\1\u29ae\1\u29fc\1\u2a4a\1\u2a98\1\u2ae6\1\u2b34\1\u2b82"+
+ "\1\u2bd0\1\u2c1e\1\u2c6c\0\u01d4\0\u0270\0\u0270\1\u2cba\1\u2d08"+
+ "\1\u2d56\1\u2da4\1\u2df2\1\u2e40\1\u2e8e\1\u2edc\1\u2f2a\1\u2f78"+
+ "\1\u2fc6\1\u3014\1\u3062\1\u30b0\0\u14b8\0\u14b8\0\u14b8\1\u30fe"+
+ "\1\u314c\1\u319a\1\u31e8\1\u3236\0\u14b8\1\u3284\1\u32d2\1\u3320"+
+ "\1\u336e\1\u33bc\1\u340a\1\u3458\1\u34a6\1\u34f4\1\u3542\1\u3590"+
+ "\1\u35de\1\u362c\1\u367a\0\u14b8\0\u14b8\1\u36c8\1\u3716\1\u3764"+
+ "\1\u37b2\1\u3800\1\u384e\1\u389c\1\u38ea\1\u3938\1\u3986\1\u39d4"+
+ "\1\u3a22\1\u3a70\1\u3abe\1\u3b0c\1\u3b5a\1\u3ba8\1\u3bf6\1\u3c44"+
+ "\1\u3c92\1\u3ce0\1\u3d2e\1\u3d7c\1\u3dca\1\u3e18\1\u3e66\1\u3eb4"+
+ "\1\u3f02\1\u3f50\1\u3f9e\1\u3fec\1\u403a\1\u4088\1\u40d6\1\u4124"+
+ "\0\u01d4\1\u4172\1\u41c0\1\u420e\1\u425c\0\u01d4\1\u42aa\1\u42f8"+
+ "\1\u4346\1\u4394\0\u14b8\0\u14b8\0\u14b8\0\u01d4\1\u43e2\1\u4430"+
+ "\1\u447e\1\u44cc\1\u451a\1\u4568\0\u0270\1\u45b6\1\u4604\0\u0270"+
+ "\1\u4652\1\u46a0\1\u46ee\1\u473c\1\u478a\0\u01d4\1\u47d8\1\u4826"+
+ "\1\u4874\1\u48c2\1\u4910\1\u495e\1\u49ac\1\u49fa\1\u4a48\0\u01d4"+
+ "\1\u4a96\1\u4ae4\1\u4b32\1\u4b80\1\u4bce\0\u01d4\0\u01d4\0\u01d4"+
+ "\0\u0270";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[1209];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
+ }
+ return j;
+ }
+
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
+
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\1\7\1\10\1\11\1\12\2\13\1\11\1\14\1\11"+
+ "\1\15\1\16\1\17\3\11\1\20\1\21\1\7\1\11"+
+ "\1\22\1\23\2\22\1\24\2\7\1\25\1\26\1\27"+
+ "\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37"+
+ "\1\40\1\41\1\42\1\43\1\11\1\44\3\11\1\7"+
+ "\1\11\2\22\1\45\1\46\1\43\1\7\1\47\1\11"+
+ "\1\7\1\50\1\51\1\13\1\11\3\13\1\11\2\13"+
+ "\1\52\1\53\1\7\1\54\1\55\1\56\1\57\1\60"+
+ "\1\61\1\62\1\43\23\63\4\64\31\63\2\64\57\63"+
+ "\4\65\1\66\2\63\1\67\25\63\2\65\57\63\4\70"+
+ "\1\71\30\63\2\70\34\63\62\72\1\73\1\72\1\74"+
+ "\1\75\30\72\63\76\1\77\1\100\1\101\30\76\117\0"+
+ "\1\102\1\103\1\11\1\104\1\102\1\105\4\11\1\106"+
+ "\1\107\2\11\1\110\1\111\1\0\3\11\1\106\1\11"+
+ "\1\112\3\0\1\11\1\112\1\11\1\113\2\11\1\105"+
+ "\3\11\1\107\1\11\1\114\1\0\5\11\1\0\1\11"+
+ "\1\113\1\114\4\0\2\11\1\0\1\103\1\0\1\102"+
+ "\1\11\3\102\1\11\1\104\1\102\1\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\4\11"+
+ "\1\115\2\11\1\116\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\1\13"+
+ "\2\11\2\13\1\105\4\11\1\106\1\107\2\11\1\110"+
+ "\1\111\1\0\3\11\1\106\1\11\1\112\3\0\1\11"+
+ "\1\112\1\11\1\113\2\11\1\105\3\11\1\107\1\11"+
+ "\1\114\1\0\5\11\1\0\1\11\1\113\1\114\4\0"+
+ "\2\11\1\0\1\11\1\0\1\13\1\11\3\13\1\11"+
+ "\2\13\1\11\13\0\1\117\2\11\2\120\3\11\1\121"+
+ "\5\11\1\122\1\111\1\0\2\11\1\121\3\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\1\120\1\11\3\120\1\11\2\120\1\11"+
+ "\1\0\1\123\11\0\11\11\1\124\1\125\3\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\11\1\126\3\11\1\127"+
+ "\3\11\1\130\3\11\1\0\1\11\1\131\3\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\15\11\1\132\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\132\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\10\11\1\133\5\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\11\1\134\1\135"+
+ "\12\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\1\110\2\136\2\110\3\136"+
+ "\1\137\1\136\1\140\3\136\1\141\3\0\5\136\2\0"+
+ "\1\136\1\142\1\143\1\144\1\145\1\136\1\146\1\147"+
+ "\1\150\1\151\4\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\1\110\1\136\3\110\1\136\2\110\1\136"+
+ "\33\0\1\11\75\0\16\11\1\0\1\111\1\0\1\11"+
+ "\4\152\1\153\2\0\1\154\15\11\1\0\5\11\1\0"+
+ "\1\11\2\152\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\11\11\1\124\4\11\1\0\1\111\1\0\1\11"+
+ "\4\152\1\153\2\0\1\154\11\11\1\124\3\11\1\0"+
+ "\5\11\1\0\1\11\2\152\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\155\1\0\1\156\1\0\6\155"+
+ "\3\0\15\155\1\0\5\155\1\0\3\155\4\0\2\155"+
+ "\1\0\1\155\1\0\11\155\35\0\4\154\1\157\2\0"+
+ "\1\25\25\0\2\154\35\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\160\6\11\1\161\2\11\1\162"+
+ "\1\11\1\0\1\163\4\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\164\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\2\11\1\165\13\11\1\0\1\111\1\0\6\11"+
+ "\3\0\5\11\1\166\1\11\1\167\1\11\1\170\2\11"+
+ "\1\171\1\0\1\11\1\172\3\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\4\11\1\173\1\174\4\11"+
+ "\1\175\2\11\1\0\1\176\1\177\1\200\2\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\3\11\1\201"+
+ "\11\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\1\202\2\11\2\202\11\11"+
+ "\1\0\1\111\1\0\6\11\3\0\2\11\1\203\1\11"+
+ "\1\204\2\11\1\205\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\1\202\1\11\3\202"+
+ "\1\11\2\202\1\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\11\11\1\206\3\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\207\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\3\11\1\210"+
+ "\1\211\1\11\1\212\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\4\11\1\213\6\11"+
+ "\1\214\1\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\15\11\1\132\1\0"+
+ "\1\111\1\0\6\11\3\0\2\11\1\215\1\11\1\216"+
+ "\1\11\1\217\4\11\1\220\1\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\7\11\1\221"+
+ "\5\11\1\0\1\222\4\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\7\11\1\223\5\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\10\11\1\224\5\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\225\4\11\1\226\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\62\0\1\43\13\0\1\43\30\0\1\43\1\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\6\11\1\227\4\11"+
+ "\1\230\1\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\1\202\2\11\2\202"+
+ "\11\11\1\0\1\111\1\0\6\11\3\0\2\11\1\231"+
+ "\7\11\1\232\1\233\1\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\1\202\1\11\3\202"+
+ "\1\11\2\202\1\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\13\11\1\41\1\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\12\0"+
+ "\64\51\1\0\31\51\1\0\16\234\1\0\1\235\1\0"+
+ "\6\234\3\0\15\234\1\0\5\234\1\0\3\234\4\0"+
+ "\2\234\1\0\1\234\1\0\11\234\13\0\16\236\1\0"+
+ "\1\237\1\0\6\236\3\0\15\236\1\0\5\236\1\0"+
+ "\3\236\4\0\2\236\1\0\1\236\1\0\11\236\44\0"+
+ "\1\67\64\0\16\240\1\0\1\241\1\0\6\240\3\0"+
+ "\15\240\1\0\5\240\1\0\3\240\4\0\2\240\1\0"+
+ "\1\240\1\0\11\240\12\0\62\72\1\0\1\72\2\0"+
+ "\30\72\3\242\1\243\7\242\1\244\23\242\1\245\2\242"+
+ "\1\246\1\242\1\247\1\250\14\242\1\251\1\252\1\242"+
+ "\1\253\30\242\63\76\3\0\30\76\3\242\1\243\7\242"+
+ "\1\244\23\242\1\254\2\242\1\246\1\242\1\247\1\250"+
+ "\14\242\1\251\1\252\1\242\1\253\30\242\1\0\1\102"+
+ "\2\11\1\104\1\102\1\105\4\11\1\106\1\107\2\11"+
+ "\1\110\1\111\1\0\3\11\1\106\1\11\1\112\3\0"+
+ "\1\11\1\112\1\11\1\113\2\11\1\105\3\11\1\107"+
+ "\1\11\1\114\1\0\5\11\1\0\1\11\1\113\1\114"+
+ "\4\0\2\11\1\0\1\11\1\0\1\102\1\11\3\102"+
+ "\1\11\1\104\1\102\1\11\13\0\1\255\1\11\4\255"+
+ "\4\11\1\255\2\11\1\255\1\256\1\111\1\0\1\11"+
+ "\1\255\1\11\1\255\2\11\3\0\1\255\1\11\1\255"+
+ "\3\11\1\255\5\11\1\255\1\0\5\11\1\0\2\11"+
+ "\1\255\4\0\2\11\1\0\1\11\1\0\1\255\1\11"+
+ "\3\255\1\11\2\255\1\11\13\0\1\104\2\11\2\104"+
+ "\1\105\4\11\1\106\3\11\1\110\1\111\1\0\3\11"+
+ "\1\106\2\11\3\0\6\11\1\105\5\11\1\114\1\0"+
+ "\5\11\1\0\2\11\1\114\4\0\2\11\1\0\1\11"+
+ "\1\0\1\104\1\11\3\104\1\11\2\104\1\11\13\0"+
+ "\1\257\2\11\2\257\1\11\1\260\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\1\257\1\11\3\257"+
+ "\1\11\2\257\1\11\13\0\1\110\2\0\2\110\1\261"+
+ "\4\0\1\262\11\0\1\262\13\0\1\261\5\0\1\263"+
+ "\11\0\1\263\11\0\1\110\1\0\3\110\1\0\2\110"+
+ "\14\0\10\11\1\264\5\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\10\11\1\265\5\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\1\266\1\267\1\11\1\104\1\266\1\105\4\11"+
+ "\1\106\1\107\2\11\1\110\1\111\1\0\3\11\1\106"+
+ "\1\11\1\112\3\0\1\11\1\112\1\11\1\113\2\11"+
+ "\1\105\3\11\1\107\1\11\1\114\1\0\5\11\1\0"+
+ "\1\11\1\113\1\114\4\0\2\11\1\0\1\267\1\0"+
+ "\1\266\1\11\3\266\1\11\1\104\1\266\1\11\13\0"+
+ "\1\120\2\11\2\120\1\105\4\11\1\106\1\107\2\11"+
+ "\1\110\1\111\1\0\3\11\1\106\1\11\1\112\3\0"+
+ "\1\11\1\112\1\11\1\113\2\11\1\105\3\11\1\107"+
+ "\1\11\1\114\1\0\5\11\1\0\1\11\1\113\1\114"+
+ "\4\0\2\11\1\0\1\11\1\0\1\120\1\11\3\120"+
+ "\1\11\2\120\1\11\13\0\11\11\1\124\4\11\1\0"+
+ "\1\111\1\0\6\11\3\0\11\11\1\124\3\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\1\110\2\0\2\110\65\0\1\110\1\0"+
+ "\3\110\1\0\2\110\14\0\12\11\1\270\3\11\1\0"+
+ "\1\111\1\0\3\11\1\270\2\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\271\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\11\1\272\13\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\4\11\1\273\10\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\12\11\1\270"+
+ "\3\11\1\0\1\111\1\0\3\11\1\270\2\11\3\0"+
+ "\1\11\1\274\1\11\1\275\6\11\1\276\2\11\1\0"+
+ "\5\11\1\0\3\11\4\0\1\277\1\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\300\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\11\11"+
+ "\1\301\4\11\1\0\1\111\1\0\6\11\3\0\11\11"+
+ "\1\301\3\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\11\1\302\4\11\1\303\2\11"+
+ "\1\304\3\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\305\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\306\13\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\136\4\0\5\136"+
+ "\2\0\16\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\11\136"+
+ "\1\307\4\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\10\136\1\310\5\136\4\0\5\136"+
+ "\2\0\16\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\2\136"+
+ "\1\311\1\312\12\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\10\136\1\313\5\136\4\0"+
+ "\5\136\2\0\14\136\1\314\1\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\10\136\1\315\1\136\1\316\3\136\1\0"+
+ "\11\136\3\0\3\136\1\0\1\136\1\0\11\136\13\0"+
+ "\16\136\4\0\5\136\2\0\5\136\1\317\1\320\5\136"+
+ "\1\321\1\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\3\136"+
+ "\1\322\4\136\1\323\5\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\6\136\1\324\3\136\1\325\3\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\7\136\1\326\6\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\7\136\1\327\6\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\330"+
+ "\1\0\1\331\1\0\6\330\3\0\15\330\1\0\5\330"+
+ "\1\0\3\330\4\0\2\330\1\0\1\330\1\0\11\330"+
+ "\35\0\4\332\1\333\2\0\1\154\25\0\2\332\35\0"+
+ "\16\155\1\0\1\156\1\0\6\155\1\334\1\335\1\0"+
+ "\15\155\1\0\5\155\1\0\3\155\4\0\2\155\1\0"+
+ "\1\155\1\0\11\155\33\0\1\155\75\0\16\336\1\0"+
+ "\1\337\1\0\6\336\3\0\15\336\1\0\5\336\1\0"+
+ "\3\336\4\0\2\336\1\0\1\336\1\0\11\336\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\2\11\1\340"+
+ "\12\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\5\11\1\341\7\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\11\11\1\342"+
+ "\3\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\6\11\1\343\6\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\11\11\1\344"+
+ "\3\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\3\11\1\345\11\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\4\11\1\346"+
+ "\10\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\7\11\1\347\5\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\11\11\1\350"+
+ "\2\11\1\223\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\14\11\1\351\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\346"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\2\11\1\352\13\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\2\11\1\353"+
+ "\1\11\1\354\10\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\2\11\1\355\4\11\1\356"+
+ "\5\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\357\5\11\1\357\5\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\354\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\3\11\1\360\5\11\1\361"+
+ "\3\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\1\362\4\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\1\202"+
+ "\2\11\2\202\11\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\1\202\1\11\3\202\1\11\2\202\1\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\363"+
+ "\14\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\2\11\1\364\13\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\365\5\11\1\0\1\111\1\0\6\11\3\0"+
+ "\13\11\1\366\1\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\4\11\1\367\10\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\370\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\4\11\1\371\10\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\11\11\1\372\3\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\10\11\1\351\1\11\1\373"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\351\13\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\11\11\1\374"+
+ "\3\11\1\0\5\11\1\0\3\11\4\0\1\375\1\11"+
+ "\1\0\1\11\1\0\11\11\13\0\11\11\1\301\4\11"+
+ "\1\0\1\111\1\0\6\11\3\0\11\11\1\301\1\376"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\377\13\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\1\11\1\u0100\2\11\1\u0101\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\6\11\1\u0102\7\11"+
+ "\1\0\1\111\1\0\6\11\3\0\5\11\1\u0103\4\11"+
+ "\1\u0104\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u0105\1\11\1\u0106\10\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u0107\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u0108\7\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\1\351"+
+ "\1\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u0109\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\4\11"+
+ "\1\u010a\10\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\11\11\1\u010b\3\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u010c\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\7\11\1\u010d\5\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\u010e\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\11\1\u010f\13\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\234\1\0\1\235\1\0\6\234\3\0\15\234"+
+ "\1\0\5\234\1\0\3\234\4\0\2\234\1\0\1\234"+
+ "\1\0\11\234\1\0\1\u0110\31\0\1\234\75\0\16\236"+
+ "\1\0\1\237\1\0\6\236\1\u0111\1\u0112\1\0\15\236"+
+ "\1\0\5\236\1\0\3\236\4\0\2\236\1\0\1\236"+
+ "\1\0\11\236\33\0\1\236\75\0\16\240\1\0\1\241"+
+ "\1\0\6\240\1\u0113\1\u0114\1\0\15\240\1\0\5\240"+
+ "\1\0\3\240\4\0\2\240\1\0\1\240\1\0\11\240"+
+ "\33\0\1\240\75\0\1\u0115\1\0\4\u0115\4\0\1\u0115"+
+ "\2\0\1\u0115\4\0\1\u0115\1\0\1\u0115\5\0\1\u0115"+
+ "\1\0\1\u0115\3\0\1\u0115\5\0\1\u0115\11\0\1\u0115"+
+ "\11\0\1\u0115\1\0\3\u0115\1\0\2\u0115\14\0\1\u0116"+
+ "\1\0\4\u0116\4\0\1\u0116\2\0\1\u0116\4\0\1\u0116"+
+ "\1\0\1\u0116\5\0\1\u0116\1\0\1\u0116\3\0\1\u0116"+
+ "\5\0\1\u0116\11\0\1\u0116\11\0\1\u0116\1\0\3\u0116"+
+ "\1\0\2\u0116\14\0\1\255\1\11\4\255\1\11\1\105"+
+ "\2\11\1\255\1\107\1\11\1\255\1\u0117\1\111\1\0"+
+ "\1\11\1\255\1\11\1\255\1\11\1\112\3\0\1\255"+
+ "\1\112\1\255\1\113\1\11\1\105\1\255\3\11\1\107"+
+ "\1\11\1\255\1\0\5\11\1\0\1\11\1\113\1\255"+
+ "\4\0\2\11\1\0\1\11\1\0\1\255\1\11\3\255"+
+ "\1\11\2\255\1\11\13\0\1\u0117\1\0\4\u0117\4\0"+
+ "\1\u0117\2\0\1\u0117\4\0\1\u0117\1\0\1\u0117\5\0"+
+ "\1\u0117\1\0\1\u0117\3\0\1\u0117\5\0\1\u0117\11\0"+
+ "\1\u0117\11\0\1\u0117\1\0\3\u0117\1\0\2\u0117\14\0"+
+ "\1\257\2\11\2\257\5\11\1\106\3\11\1\0\1\111"+
+ "\1\0\3\11\1\106\2\11\3\0\14\11\1\114\1\0"+
+ "\5\11\1\0\2\11\1\114\4\0\2\11\1\0\1\11"+
+ "\1\0\1\257\1\11\3\257\1\11\2\257\1\11\13\0"+
+ "\1\257\2\11\2\257\11\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\1\257\1\11\3\257\1\11\2\257"+
+ "\1\11\13\0\1\u0118\2\0\2\u0118\1\0\1\u0119\63\0"+
+ "\1\u0118\1\0\3\u0118\1\0\2\u0118\14\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\11\1\u011a\13\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\14\11\1\u011b\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\1\266\2\11\1\104"+
+ "\1\266\1\105\4\11\1\106\1\107\2\11\1\110\1\111"+
+ "\1\0\3\11\1\106\1\11\1\112\3\0\1\11\1\112"+
+ "\1\11\1\113\2\11\1\105\3\11\1\107\1\11\1\114"+
+ "\1\0\5\11\1\0\1\11\1\113\1\114\4\0\2\11"+
+ "\1\0\1\11\1\0\1\266\1\11\3\266\1\11\1\104"+
+ "\1\266\1\11\13\0\1\u011c\1\11\4\u011c\4\11\1\u011c"+
+ "\2\11\1\u011c\1\256\1\111\1\0\1\11\1\u011c\1\11"+
+ "\1\u011c\2\11\3\0\1\u011c\1\11\1\u011c\3\11\1\u011c"+
+ "\5\11\1\u011c\1\0\5\11\1\0\2\11\1\u011c\4\0"+
+ "\2\11\1\0\1\11\1\0\1\u011c\1\11\3\u011c\1\11"+
+ "\2\u011c\1\11\13\0\10\11\1\u011d\5\11\1\0\1\111"+
+ "\1\0\2\11\1\u011d\3\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\u011e\4\11\1\u011f\2\11\1\u0120\3\11\1\0\1\11"+
+ "\1\u011e\3\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0121\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u0122\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u0123\5\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u0124\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\6\11\1\u0125\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u0126\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\13\11"+
+ "\1\u0127\1\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\12\11\1\u0128\2\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\12\11\1\106\3\11\1\0\1\111\1\0\3\11"+
+ "\1\106\2\11\3\0\14\11\1\114\1\0\5\11\1\0"+
+ "\2\11\1\114\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\u0129\13\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\11\1\u012a\13\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\u012b\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u012c\12\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\3\11"+
+ "\1\u0106\11\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\136\4\0\5\136"+
+ "\2\0\6\136\1\u012d\7\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\7\136\1\u012e\6\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\3\136\1\u012f\12\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\13\136\1\u0130\2\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\12\136\1\u0131\3\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\1\136\1\u0132\14\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\10\136\1\u0133\5\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\12\136\1\u0134\3\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\2\136\1\u0135\13\136"+
+ "\4\0\5\136\2\0\6\136\1\u0136\7\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u0137\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\5\136\1\u0138\10\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\1\136\1\u0139\6\136\1\u013a\5\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\14\136\1\u013b\1\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\10\136\1\u013c\5\136\4\0\5\136\2\0\16\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\5\136\1\u013d\7\136"+
+ "\1\u013e\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\4\136\1\u013f"+
+ "\11\136\1\0\1\136\1\u0140\7\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\13\136\1\u0141\2\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\330\1\0\1\331\1\0"+
+ "\6\330\1\333\1\332\1\0\15\330\1\0\5\330\1\0"+
+ "\3\330\4\0\2\330\1\0\1\330\1\0\11\330\33\0"+
+ "\1\330\75\0\16\u0142\1\0\1\u0143\1\0\6\u0142\3\0"+
+ "\15\u0142\1\0\5\u0142\1\0\3\u0142\4\0\2\u0142\1\0"+
+ "\1\u0142\1\0\11\u0142\13\0\16\u0144\1\0\1\u0145\1\0"+
+ "\6\u0144\3\0\15\u0144\1\0\5\u0144\1\0\3\u0144\4\0"+
+ "\2\u0144\1\0\1\u0144\1\0\11\u0144\13\0\16\336\1\0"+
+ "\1\337\1\0\6\336\1\157\1\154\1\0\15\336\1\0"+
+ "\5\336\1\0\3\336\4\0\2\336\1\0\1\336\1\0"+
+ "\11\336\33\0\1\336\75\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\3\11\1\u0146\11\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\6\11\1\u0147\7\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\11\1\u0148\13\11\1\0\1\11\1\u0148\3\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\3\11\1\u0149"+
+ "\11\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\u014a\14\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\1\11"+
+ "\1\u014b\3\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\12\11\1\u014c\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u014d\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\2\11\1\u014e\12\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u014f\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\6\11\1\u0150\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u0151\7\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u0152\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u0153\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\12\11\1\u0154\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\10\11"+
+ "\1\u0155\5\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\6\11\1\u0156\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u0157\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\u0158\11\11\1\u0159\2\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\7\11\1\357"+
+ "\5\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\3\11\1\u015a\1\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\1\11\1\u0154"+
+ "\13\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\1\u015b\1\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u015c\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\10\11\1\u015d\4\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\u015e\14\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\2\11\1\u015f\13\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\12\11\1\u0160\2\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\4\11\1\u0161\10\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\10\11\1\u0162"+
+ "\5\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\u0163\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\10\11\1\u0164"+
+ "\5\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\11\1\u0165\13\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\6\11\1\u0166"+
+ "\7\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\u0167\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\3\11\1\u0168\2\11\1\u0169"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\6\11\1\u016a\7\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\11\11\1\u016b"+
+ "\3\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\6\11\1\u016c\6\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\13\11\1\u016d"+
+ "\1\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\10\11\1\u016e\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\11\1\u016f\13\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\11\1\u0170\13\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\2\11\1\u0171"+
+ "\13\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\u0172\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\13\11\1\u0173\1\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\2\11\1\u0174\12\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\2\11\1\u0175"+
+ "\13\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\2\11\1\u0176\12\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\1\u0177\1\0"+
+ "\4\u0177\4\0\1\u0177\2\0\1\u0177\4\0\1\u0177\1\0"+
+ "\1\u0177\5\0\1\u0177\1\0\1\u0177\3\0\1\u0177\5\0"+
+ "\1\u0177\11\0\1\u0177\11\0\1\u0177\1\0\3\u0177\1\0"+
+ "\2\u0177\14\0\1\u0178\1\0\4\u0178\4\0\1\u0178\2\0"+
+ "\1\u0178\4\0\1\u0178\1\0\1\u0178\5\0\1\u0178\1\0"+
+ "\1\u0178\3\0\1\u0178\5\0\1\u0178\11\0\1\u0178\11\0"+
+ "\1\u0178\1\0\3\u0178\1\0\2\u0178\14\0\1\u0117\1\0"+
+ "\4\u0117\1\0\1\261\2\0\1\u0117\2\0\1\u0117\4\0"+
+ "\1\u0117\1\0\1\u0117\5\0\1\u0117\1\0\1\u0117\2\0"+
+ "\1\261\1\u0117\5\0\1\u0117\11\0\1\u0117\11\0\1\u0117"+
+ "\1\0\3\u0117\1\0\2\u0117\14\0\1\u0118\2\0\2\u0118"+
+ "\5\0\1\262\11\0\1\262\21\0\1\263\11\0\1\263"+
+ "\11\0\1\u0118\1\0\3\u0118\1\0\2\u0118\14\0\1\u0118"+
+ "\2\0\2\u0118\65\0\1\u0118\1\0\3\u0118\1\0\2\u0118"+
+ "\14\0\16\11\1\0\1\111\1\0\6\11\3\0\14\11"+
+ "\1\u0179\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\1\11\1\u017a\3\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\1\u011c\1\11\4\u011c\1\11\1\105\2\11\1\u011c\1\107"+
+ "\1\11\1\u011c\1\u0117\1\111\1\0\1\11\1\u011c\1\11"+
+ "\1\u011c\1\11\1\112\3\0\1\u011c\1\112\1\u011c\1\113"+
+ "\1\11\1\105\1\u011c\3\11\1\107\1\11\1\u011c\1\0"+
+ "\5\11\1\0\1\11\1\113\1\u011c\4\0\2\11\1\0"+
+ "\1\11\1\0\1\u011c\1\11\3\u011c\1\11\2\u011c\1\11"+
+ "\13\0\11\11\1\u017b\4\11\1\0\1\111\1\0\6\11"+
+ "\3\0\11\11\1\u017b\3\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\6\11\1\u017c\3\11"+
+ "\1\u017c\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\5\11\1\u017c\3\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u017c\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\1\11\1\u017d\3\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\6\11\1\u017e\7\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\11\11\1\u017f\3\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\u0180\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\12\11\1\u0181\2\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\7\11"+
+ "\1\u0182\5\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\3\11\1\u0183\1\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\6\11\1\u0184\7\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\6\11\1\u0185\7\11"+
+ "\1\0\1\111\1\0\6\11\3\0\6\11\1\u0186\6\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\14\11\1\u0187\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\11\1\u015d\13\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\12\11\1\u0188\2\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\136\4\0"+
+ "\5\136\2\0\2\136\1\u0189\13\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\2\136\1\u018a\13\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\4\136\1\u018b\11\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\1\136\1\u018c\14\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\7\136\1\u018d\6\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\3\136\1\u018e\12\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\3\136\1\u018f\12\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\14\136\1\u0190\1\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\3\136\1\u0191\12\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\7\136\1\u0192\6\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\10\136\1\u0193\5\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\10\136\1\u0194\5\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\16\136\1\0\3\136\1\u0195\5\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\3\136\1\u0196\12\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\2\136\1\u0197\13\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\2\136\1\u0198\13\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\11\136\1\u0199\4\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\16\136\1\u019a\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\13\136\1\u019b\2\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\10\136\1\u019c\5\136\4\0"+
+ "\5\136\2\0\16\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\16\136\1\0\1\u019d\10\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\u0142\1\0\1\u0143\1\0\6\u0142"+
+ "\1\333\1\332\1\0\15\u0142\1\0\5\u0142\1\0\3\u0142"+
+ "\4\0\2\u0142\1\0\1\u0142\1\0\11\u0142\33\0\1\u0142"+
+ "\75\0\16\u0144\1\0\1\u0145\1\0\6\u0144\1\334\1\335"+
+ "\1\0\15\u0144\1\0\5\u0144\1\0\3\u0144\4\0\2\u0144"+
+ "\1\0\1\u0144\1\0\11\u0144\33\0\1\u0144\75\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\3\11\1\u019e\11\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\11\1\u019f\13\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u01a0\7\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\12\11\1\u01a1\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\3\11"+
+ "\1\u01a2\1\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\6\11\1\u01a3\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\7\11\1\u01a4\5\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\6\11\1\u01a5\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\2\11"+
+ "\1\u01a6\2\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\12\11\1\u01a7\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\10\11"+
+ "\1\u016e\1\11\1\u01a8\3\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\11\1\u016f\12\11\1\u01a9\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\u01aa\1\11\1\u01a8\3\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\u016f\12\11\1\u01a9\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\3\11"+
+ "\1\u01ab\11\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\6\11\1\u01ac\7\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\10\11\1\u01ad\5\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\u01ae\14\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\u01af\5\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\11\1\u016f\13\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u01b0\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\1\u01b1\4\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\1\u01b2\4\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u01b3"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\2\11\1\u01b4\12\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u01b5"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\4\11\1\u01b6\10\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\6\11\1\u01b7\7\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\10\11\1\u01b8\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\7\11\1\u01b9"+
+ "\5\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\12\11\1\u01ba\2\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\6\11\1\u01bb\7\11\1\0\1\111\1\0\6\11\1\u01bc"+
+ "\2\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\1\u017a\1\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\u01bd\1\11\1\u01be\3\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\u01bf\12\11\1\u01c0\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\10\11\1\u01c1\5\11\1\0\1\111\1\0\6\11"+
+ "\3\0\2\11\1\u01c2\12\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\4\11\1\u01c3\10\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u01c4\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\10\11"+
+ "\1\u01bd\5\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\u01bf\13\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\3\11\1\u01c5\11\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\4\11\1\u01c6\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\11\11\1\u01c7\3\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\13\11\1\u01c8"+
+ "\1\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\2\11\1\u01c9\12\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\1\11\1\u01ca"+
+ "\13\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\7\11\1\u01cb\5\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\1\u01cc\2\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u01cd\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\11\1\u01ce\13\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\12\11\1\u01cf\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\1\u01d0"+
+ "\1\0\4\u01d0\4\0\1\u01d0\2\0\1\u01d0\4\0\1\u01d0"+
+ "\1\0\1\u01d0\5\0\1\u01d0\1\0\1\u01d0\3\0\1\u01d0"+
+ "\5\0\1\u01d0\11\0\1\u01d0\11\0\1\u01d0\1\0\3\u01d0"+
+ "\1\0\2\u01d0\14\0\1\u01d1\1\0\4\u01d1\4\0\1\u01d1"+
+ "\2\0\1\u01d1\4\0\1\u01d1\1\0\1\u01d1\5\0\1\u01d1"+
+ "\1\0\1\u01d1\3\0\1\u01d1\5\0\1\u01d1\11\0\1\u01d1"+
+ "\11\0\1\u01d1\1\0\3\u01d1\1\0\2\u01d1\14\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\6\11\1\u015d\6\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u01d2\5\11\1\0\1\111"+
+ "\1\0\2\11\1\u01d2\3\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\1\11\1\u01d3\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\2\11\1\u01d4\12\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\2\11\1\u01d5\13\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\u01d6\2\11\1\u01d7\7\11\1\u01d8\1\11\1\0\4\11"+
+ "\1\u01d9\1\0\3\11\4\0\1\u01da\1\11\1\0\1\11"+
+ "\1\0\5\11\1\u01db\3\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u01dc\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\11\11"+
+ "\1\u01dd\3\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\u01de\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\12\11\1\u01df\3\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u01e0\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\2\11\1\u01e1\13\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\u01e2\2\11\1\u01e3\7\11\1\u01d8\1\11\1\0"+
+ "\4\11\1\u01d9\1\0\3\11\4\0\1\u01da\1\11\1\0"+
+ "\1\11\1\0\5\11\1\u01db\3\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\2\11\1\u01e4\12\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\14\11\1\u01e5\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\u01e6\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u01e7\7\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\136\4\0\5\136\2\0\7\136"+
+ "\1\u01e8\6\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\15\136"+
+ "\1\u01e9\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\4\136\1\u01ea"+
+ "\11\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\16\136\1\0"+
+ "\1\u01eb\10\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\2\136\1\u01ec\13\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\16\136\1\0\2\136"+
+ "\1\u01ed\6\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\13\136\1\u01ee\2\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\12\136\1\u01ef\3\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\10\136\1\u01f0\5\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\4\136\1\u01f1\11\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\1\136\1\u01f2\14\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\7\136\1\u01f3\6\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\11\136\1\u01f4\4\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\14\136\1\u01f5\1\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\14\136\1\u01f6\1\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\12\136\1\u01f7\3\136\4\0\5\136\2\0\2\136"+
+ "\1\u01f8\1\u01f9\1\u01fa\1\136\1\u01fb\2\136\1\u01fc\4\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\3\136\1\u01fd\12\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\4\136\1\u01fe\11\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\14\136\1\u01ff\1\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\6\11\1\u0200\7\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\u0201\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\12\11\1\u0202\3\11\1\0\1\111\1\0\6\11"+
+ "\3\0\14\11\1\u0203\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\6\11\1\u0204"+
+ "\7\11\1\0\1\111\1\0\6\11\1\u0205\2\0\7\11"+
+ "\1\u0206\5\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\6\11\1\u0207\7\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u0208\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u0209\12\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\2\11\1\u020a\13\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\u020b\2\11\1\u020c\7\11\1\u020d\1\11\1\0"+
+ "\4\11\1\u020e\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\6\11\1\u020f\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\2\11\1\u0210\12\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\11\1\u0211\13\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u0212\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\11\11\1\u0213\3\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\6\11\1\u0214\6\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\2\11\1\u0215\13\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\u0216\2\11\1\u0217\7\11\1\u0218"+
+ "\1\11\1\0\4\11\1\u0219\1\0\3\11\4\0\1\u021a"+
+ "\1\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u015d\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u021b\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\11\11\1\u021c\3\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\10\11"+
+ "\1\u0179\4\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\7\11\1\u021d\5\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\355\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\14\11\1\u0214\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u017a"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\u021e\14\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u021f\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u0220\5\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\10\11\1\u0221\4\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\11\11\1\u0222\3\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u0223\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0224\1\u0225\3\11\1\u0226\1\11\1\0"+
+ "\4\11\1\u0227\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\25\0\1\u0228\62\0\1\u0229\20\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\11\11\1\u022a\3\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\11\1\u022b\13\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u022c\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\13\11\1\u022d\1\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\11\11\1\u022e\3\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u022f\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\u0230\14\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\7\11\1\u0231\5\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\10\11\1\u0232"+
+ "\5\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\u0233\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\12\11\1\u0234\2\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\11\11\1\u0235\3\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\7\11\1\u0236\5\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\u0237\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\10\11\1\u0238"+
+ "\5\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\110\0\1\u0239\3\0\1\u023a\14\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\1\11\1\u023b"+
+ "\3\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\u023c\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\10\11\1\u023d"+
+ "\5\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\1\u023e\1\0\4\u023e\4\0\1\u023e\2\0"+
+ "\1\u023e\4\0\1\u023e\1\0\1\u023e\5\0\1\u023e\1\0"+
+ "\1\u023e\3\0\1\u023e\5\0\1\u023e\11\0\1\u023e\11\0"+
+ "\1\u023e\1\0\3\u023e\1\0\2\u023e\14\0\1\u023f\1\0"+
+ "\4\u023f\4\0\1\u023f\2\0\1\u023f\4\0\1\u023f\1\0"+
+ "\1\u023f\5\0\1\u023f\1\0\1\u023f\3\0\1\u023f\5\0"+
+ "\1\u023f\11\0\1\u023f\11\0\1\u023f\1\0\3\u023f\1\0"+
+ "\2\u023f\14\0\13\11\1\u0240\2\11\1\0\1\111\1\0"+
+ "\6\11\3\0\12\11\1\u0240\2\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\1\11\1\u0241"+
+ "\13\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\13\11\1\u0242\1\11\1\0\2\11\1\u0243"+
+ "\2\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\1\u0244\4\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\1\u0245\4\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\2\11\1\u0246\13\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\10\11\1\u0247\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\13\11\1\u0248"+
+ "\1\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\4\11\1\u0249\10\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\u024a\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\u024b\11\11\1\u024c\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u024d\7\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\2\11\1\u024e\12\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u024f\7\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\13\11\1\u0250\1\11\1\0\2\11\1\u0251\2\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\1\u0252\4\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\1\u0253\4\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\7\11\1\u0254\5\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\6\11\1\u0255\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\1\u0256"+
+ "\115\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u0257\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\136\4\0\5\136"+
+ "\2\0\11\136\1\u0258\4\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\3\136\1\u0259\12\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\4\136\1\u025a\11\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\6\136\1\u025b\7\136"+
+ "\4\0\5\136\2\0\16\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\3\136\1\u025c\12\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\12\136\1\u025d\3\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\7\136\1\u025e\6\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\7\136\1\u025f\6\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\15\136\1\u0260\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\16\136\1\0\1\136\1\u0261\7\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\16\136\1\0\1\136\1\u0262\7\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\10\136\1\u0263\5\136\4\0"+
+ "\5\136\2\0\16\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\14\136\1\u0264\1\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\10\136\1\u0265\1\136\1\u0266\3\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\5\136\1\u0267\1\u0268\7\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u0269\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\7\136\1\u026a\6\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\10\136\1\u026b\5\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\13\136\1\u026c\2\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\15\136\1\u026d\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u026e\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\11\11"+
+ "\1\u026f\3\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\11\1\u0270\13\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\13\11"+
+ "\1\u0271\1\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\u0272\2\11\1\u0273\11\11\1\0"+
+ "\4\11\1\u0274\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\63\0\1\u0275\21\0\1\u0276\2\0\1\u0277"+
+ "\20\0\16\11\1\0\1\111\1\0\6\11\3\0\4\11"+
+ "\1\u0278\10\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\u0279\14\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\13\11\1\u027a"+
+ "\1\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\u027b\14\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u027c\1\11"+
+ "\1\0\2\11\1\u027d\2\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\1\u027e\4\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\1\u027f\4\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\2\11\1\u0280\13\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\10\11"+
+ "\1\u0281\5\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\11\1\u0282\13\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u0283\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\13\11\1\u0284\1\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\4\11\1\u0285\10\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\12\11\1\u0286\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u0287\7\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\13\11\1\u0288\1\11\1\0\2\11\1\u0289\2\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\1\u028a\4\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\1\u028b\4\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\2\11"+
+ "\1\u028c\13\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u028d\5\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u028e\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\12\11\1\u028f\3\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u0290\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\13\11\1\u0291\1\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u0292\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0293\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\11\11\1\u0294\3\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0179\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u0295\7\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u0296\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\u0297\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u0298\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\2\11\1\u0299\13\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\10\11\1\u029a\5\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\54\0\1\u029b\152\0\1\u029c"+
+ "\17\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u029d\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\u029e\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\11\11"+
+ "\1\u029f\3\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\4\11\1\u02a0\10\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\3\11"+
+ "\1\u02a1\11\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\7\11\1\u02a2\5\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\1\u02a3\4\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\13\11\1\u02a4\1\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u02a5"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\1\u02a6\1\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\1\u02a7\2\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\1\11\1\u0286\3\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u02a8\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\u02a9\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u02aa\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\111\0\1\u02ab\113\0\1\u02ac\21\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\3\11\1\u015d\11\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\u02ad\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\11\1\u017a\13\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\1\u02ae"+
+ "\1\0\4\u02ae\4\0\1\u02ae\2\0\1\u02ae\4\0\1\u02ae"+
+ "\1\0\1\u02ae\5\0\1\u02ae\1\0\1\u02ae\3\0\1\u02ae"+
+ "\5\0\1\u02ae\11\0\1\u02ae\11\0\1\u02ae\1\0\3\u02ae"+
+ "\1\0\2\u02ae\14\0\14\11\1\301\1\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\2\11\1\301\2\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\6\11\1\u02af\7\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\u02b0\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u02b1\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u02b2\12\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\13\11"+
+ "\1\u02b3\1\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\1\11\1\u02b4\7\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\14\11"+
+ "\1\u02b5\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\u02b6\13\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\u02b7\5\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\1\u02b8\115\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u02b9\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\10\11\1\u02ba\5\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\2\11\1\u02bb"+
+ "\7\11\1\u01be\3\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\u02bc\1\u01bf\1\11\1\u02bd\10\11\1\u01c0\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\u017a"+
+ "\14\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\10\11\1\u02be\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\3\11\1\u02bf\1\11\1\u02c0"+
+ "\5\11\1\u02c1\1\u02c2\1\0\5\11\1\0\3\11\4\0"+
+ "\1\u02c3\1\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u02c4\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\12\11\1\u02c5\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\2\11\1\u02c6\12\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\13\11\1\u02c7\1\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\7\11\1\u02c8\5\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\11\11\1\u02c9\3\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\103\0\1\u02ca"+
+ "\25\0\16\11\1\0\1\111\1\0\6\11\3\0\13\11"+
+ "\1\u02cb\1\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\136\4\0\5\136"+
+ "\2\0\7\136\1\u02cc\6\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\2\136\1\u02cd\13\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\15\136\1\u02ce\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\13\136\1\u02cf\2\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\14\136\1\u02d0\1\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\6\136\1\u02d1\7\136\4\0"+
+ "\5\136\2\0\16\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\6\136\1\u02d2\7\136\4\0"+
+ "\5\136\2\0\16\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\5\136\1\u02d3\10\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\5\136\1\u02d4\10\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\7\136\1\u02d5\6\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\1\136\1\u02d6\14\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\10\136\1\u02d7\5\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\12\136\1\u02d8\3\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\2\136\1\u02d9\13\136\4\0"+
+ "\5\136\2\0\16\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\3\136\1\u02da\12\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\1\136\1\u02db\6\136\1\u02dc\5\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\13\136\1\u02dd\2\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\13\136\1\u02de\2\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\7\136\1\u02df\6\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\1\u02e0\4\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\1\11\1\u02e1\3\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\u02e2\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\4\11"+
+ "\1\u02e3\10\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\11\1\u02e4\13\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u02e5\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\10\11\1\u02e6\5\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\23\0\1\u02e7\203\0\1\u02e8\17\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\u02e9\14\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\2\11\1\u02ea"+
+ "\12\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\6\11\1\u02eb\7\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u015d"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\13\11\1\u02ec\1\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u02ed"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\2\11\1\u02ee\12\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\13\11\1\u02ef"+
+ "\1\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\1\11\1\u02f0\7\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\14\11\1\u02ed"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u02f1\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\10\11"+
+ "\1\u02f2\5\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\2\11\1\u0213\12\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\2\11"+
+ "\1\u02f3\13\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\1\u02f4\2\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\3\11\1\u02f5\11\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\13\11\1\u02f6\1\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\12\11\1\u02f7\2\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\2\11\1\u02f8\12\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\13\11\1\u02f9\1\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\1\11\1\u02fa\7\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\14\11\1\u02fb\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\u02fc\13\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\5\11\1\u015d\7\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\1\u02fd\2\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\11\11\1\u02fe\3\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u02ff"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\6\11\1\u0300\7\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u0301"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\13\11\1\u0302\1\11\1\0\4\11\1\u0303"+
+ "\1\0\3\11\4\0\1\u0304\1\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\u0305\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u0306\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\3\11"+
+ "\1\u0307\11\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\1\11\1\u0308\7\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\14\11"+
+ "\1\u0309\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\60\0\1\u030a\50\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\2\11\1\u022a\12\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\1\11\1\u029d\3\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\2\11\1\u030b"+
+ "\13\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\12\11\1\u030c\2\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\2\11\1\u030d\12\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\u030e\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\7\11\1\u030f\5\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\11\11\1\u027b\3\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u0310\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\46\0\1\u0311\40\0\1\u0312\21\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\14\11\1\u0313\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u0314\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\6\11\1\u0315\7\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\1\u0316\115\0\12\11\1\u0317\3\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\u0318\7\11\1\u0319\4\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\11\1\u031a\13\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u031b\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\7\11\1\u031b\5\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\7\11\1\u031c\5\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\u031d\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u031e\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\2\11\1\u031f\12\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u0320\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\103\0\1\u0321\25\0\6\11\1\u0322\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\2\11\1\u0323\12\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\2\11\1\u0324\2\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\1\u0325"+
+ "\4\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\1\u0326\4\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\11\11\1\u0327\3\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\4\11"+
+ "\1\u0328\5\11\1\u0329\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u032a\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\2\11\1\u032b\13\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\10\11"+
+ "\1\u032c\5\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u032d\5\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\11\1\u032e\13\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u032f\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\7\11\1\u032f\5\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u0330\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\2\11\1\u0331\12\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0332\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\1\u0333"+
+ "\1\0\4\u0333\4\0\1\u0333\2\0\1\u0333\4\0\1\u0333"+
+ "\1\0\1\u0333\5\0\1\u0333\1\0\1\u0333\3\0\1\u0333"+
+ "\5\0\1\u0333\11\0\1\u0333\11\0\1\u0333\1\0\3\u0333"+
+ "\1\0\2\u0333\14\0\6\11\1\u0334\7\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\136"+
+ "\4\0\5\136\2\0\12\136\1\u0335\3\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\2\136\1\u0336\13\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u0337\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\10\136"+
+ "\1\u0338\5\136\4\0\5\136\2\0\16\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\13\136\1\u0339\2\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\4\136\1\u033a\11\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\4\136\1\u033b\11\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\7\136\1\u033c\6\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\7\136\1\u033d\6\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\2\136\1\u033e\13\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u033f\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u0340\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\14\136\1\u0341\1\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u0342\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\10\136\1\u0343\5\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\16\136\1\0\3\136\1\u0344\5\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u0345\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\16\136\1\0\1\u0346\10\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\16\136\1\u0347\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\136\4\0\5\136\2\0"+
+ "\10\136\1\u0348\5\136\1\0\11\136\3\0\3\136\1\0"+
+ "\1\136\1\0\11\136\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\2\11\1\u0349\12\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\2\11\1\u034a"+
+ "\12\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\2\11\1\u034b\13\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\2\11\1\u034c"+
+ "\12\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\7\11\1\u034d\5\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\14\11\1\u034e"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\64\0\1\u034f\44\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\12\11\1\u0350\2\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\3\11"+
+ "\1\u0351\11\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\10\11\1\u01bd\1\11"+
+ "\1\u01be\3\11\1\0\1\111\1\0\6\11\3\0\14\11"+
+ "\1\u01c0\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\u0352\13\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u02e1"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\7\11\1\u02e1\5\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\7\11\1\u034a"+
+ "\5\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\6\11\1\u0353\6\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\11\11\1\u0354"+
+ "\3\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\13\11\1\u0355\1\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\1\11\1\u0356"+
+ "\13\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\107\0\1\u0312\21\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\4\11\1\u0357"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\u0358\13\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u0359\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\7\11"+
+ "\1\u0359\5\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\7\11\1\u035a\5\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u035b\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u035c\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\u035d\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\46\0\1\u035e\40\0\1\u0312"+
+ "\21\0\10\11\1\u035f\5\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\14\11\1\u015d\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\u0360\5\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\1\u0361\2\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\2\11"+
+ "\1\u0362\13\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u0363\5\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u0364\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0365\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\6\11\1\u0366\6\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\4\11\1\u0367\10\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\6\11\1\u0368\6\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0369\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\55\0\1\u036a"+
+ "\53\0\16\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\u036b\13\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u036c\12\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\2\11\1\u036d\2\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\12\11\1\u036e\3\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\u036f\7\11\1\u0370"+
+ "\4\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\7\11\1\u0371\5\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\23\0"+
+ "\1\u0372\141\0\1\u0373\61\0\6\11\1\u0374\7\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\13\11\1\u0375"+
+ "\1\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\6\11\1\u0169\6\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\103\0"+
+ "\1\u0376\25\0\10\11\1\u0377\5\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\11\1\u0378\13\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\u0379\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u037a\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\u037b\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\12\11\1\u031b\2\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\u037c\14\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\6\11\1\u037d\7\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u037e\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\3\11\1\u037f\1\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\1\u0380\1\0\4\u0380\4\0\1\u0380\2\0\1\u0380"+
+ "\4\0\1\u0380\1\0\1\u0380\5\0\1\u0380\1\0\1\u0380"+
+ "\3\0\1\u0380\5\0\1\u0380\11\0\1\u0380\11\0\1\u0380"+
+ "\1\0\3\u0380\1\0\2\u0380\14\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\u0381\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u0382\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\12\11\1\u036b\2\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\u0383\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\13\11\1\u0384\1\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u0385\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\5\11\1\u0386\7\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\u0387\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\11\1\u0388\13\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\1\11\1\u0389\7\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\7\11\1\u038a\5\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\7\11"+
+ "\1\u038b\5\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u038c\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u032f\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\2\11\1\u038d\2\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\4\11\1\u038e\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\10\11\1\u01bd\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\11\1\u01bf\12\11\1\u01c0"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\136\4\0\5\136\2\0\13\136"+
+ "\1\u038f\2\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\13\136"+
+ "\1\u0390\2\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\14\136"+
+ "\1\u0391\1\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\3\136"+
+ "\1\u0392\12\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\16\136"+
+ "\1\0\4\136\1\u0393\4\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\16\136"+
+ "\1\0\4\136\1\u0394\4\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\15\136"+
+ "\1\u0395\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\2\136\1\u0396"+
+ "\13\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\16\136\1\0"+
+ "\2\136\1\u0397\6\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\13\136\1\u0398"+
+ "\2\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\12\136\1\u0399"+
+ "\3\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\4\136\1\u039a"+
+ "\11\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\7\136\1\u039b"+
+ "\6\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\11\136\1\u039c"+
+ "\4\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\14\136\1\u039d"+
+ "\1\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\2\136\1\u039e"+
+ "\13\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\4\136\1\u039f"+
+ "\11\136\1\0\11\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\11\11\1\u03a0\3\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\12\11\1\u02e1\2\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\11\1\u02ed\13\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\3\11\1\u03a1\11\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\10\11\1\u03a2\5\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u03a3\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\63\0\1\u03a4\45\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\13\11\1\u03a5\1\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u03a6"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\6\11\1\u03a7\6\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\1\u034a\14\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\1\11\1\u03a8\3\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\11\11\1\u015d\3\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0286\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\10\11"+
+ "\1\u03a9\5\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u03aa\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u0359\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\u03ab\14\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\6\11\1\u03ac"+
+ "\7\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\12\11\1\u03ad\2\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\23\0\1\u03ae\105\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\1\11\1\u0292\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\11\11\1\u03af\3\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\46\0\1\u035e"+
+ "\62\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\1\11\1\u03b0\7\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\14\11\1\u03b1\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\u03b2\5\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\11\11\1\u03b3\3\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\u03b4\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\5\11\1\u03b5"+
+ "\7\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\u03b6\13\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\1\u03b7\14\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\1\u01bc\2\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\110\0\1\u03b8\20\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u029d"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\11\11\1\u03b9\3\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\u03ba\5\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\u03bb\13\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u03bc"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\10\11\1\u03bd\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\57\0"+
+ "\1\u03be\117\0\1\u03bf\47\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\3\11\1\u03c0\11\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\6\11\1\u03c1\7\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\1\u03c2\1\0\4\u03c2\4\0"+
+ "\1\u03c2\2\0\1\u03c2\4\0\1\u03c2\1\0\1\u03c2\5\0"+
+ "\1\u03c2\1\0\1\u03c2\3\0\1\u03c2\5\0\1\u03c2\11\0"+
+ "\1\u03c2\11\0\1\u03c2\1\0\3\u03c2\1\0\2\u03c2\14\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u03c3"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\2\11\1\u03c4\12\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u03c5"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\2\11\1\u03c6\12\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\5\11\1\u01db\3\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\12\11\1\u031e\2\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\1\u01da\1\11\1\0\1\11"+
+ "\1\0\5\11\1\u01db\3\11\13\0\10\11\1\u03c7\5\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\12\11\1\u036d\3\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\10\11\1\u03c8\5\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\7\11"+
+ "\1\u029d\5\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\7\11\1\u022a\5\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u03c9\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u03ca\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u03cb\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\2\11\1\u03cc\2\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u03cd\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u03ce\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u03cf\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u03d0\12\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\6\11\1\u03d1\7\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\6\11\1\u03d2\7\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\136\4\0\5\136\2\0\4\136\1\u03d3\11\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\3\136\1\u03d4\12\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\12\136\1\u03d5\3\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\13\136\1\u03d6\2\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\10\136\1\u03d7\5\136\4\0\5\136\2\0\16\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\10\136\1\u03d8\5\136\4\0\5\136\2\0\16\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\6\136\1\u03d9\7\136\4\0\5\136\2\0\16\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\3\136\1\u03da\12\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\12\136\1\u03db\3\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\7\136\1\u03dc\6\136"+
+ "\1\0\11\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\13\0\16\136\4\0\5\136\2\0\15\136\1\u03dd\1\0"+
+ "\11\136\3\0\3\136\1\0\1\136\1\0\11\136\13\0"+
+ "\16\136\4\0\5\136\2\0\15\136\1\u03de\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\14\136\1\u03df\1\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\1\11"+
+ "\1\u03e0\3\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\3\11\1\u03a6\11\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\11\11\1\u03e1\3\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\1\u03e2\2\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\110\0\1\u03e3\20\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\7\11\1\u015d"+
+ "\5\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\2\11\1\u03e4\12\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u03e5"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\12\11\1\u03e6\2\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\2\11\1\u03e7"+
+ "\12\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\12\11\1\u035c\2\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\1\u021a\1\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u03e8\5\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\57\0\1\u03e9"+
+ "\51\0\16\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\u03ea\13\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u03eb\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u03ec\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\14\11\1\u03ed\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u03ee"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\10\11\1\u03ef\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u03f0"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\12\11\1\u03f1\2\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\12\11\1\u0369"+
+ "\2\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\111\0\1\u03f2\17\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u03f3\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u03f4\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u03f5\12\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u03f6\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\12\11\1\u03f7\3\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\110\0\1\u03f8\2\0\1\u03f9\63\0\1\u03fa\47\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\2\11"+
+ "\1\u03fb\2\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u01bd\1\11\1\u01be\3\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\11\1\u01bf\13\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\11\1\u03fc\13\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\3\11\1\u03fd\11\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\1\u03fe\4\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\11\11\1\u031b\3\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\11\1\u03ff\13\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\13\11\1\u0400\1\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\7\11\1\u0401\5\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\7\11\1\u0402\5\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\10\11\1\u0403\5\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\10\11\1\u0404\4\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\u0405\14\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\u0406\14\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\4\11\1\u0407"+
+ "\10\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\11\11\1\u032f\3\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\14\11\1\u0408"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\2\11\1\u0409\12\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\10\136"+
+ "\1\u040a\5\136\4\0\5\136\2\0\16\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\13\136\1\u040b\2\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\13\136\1\u040c\2\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\15\136\1\u040d\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\13\136\1\u040e\2\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\14\136\1\u040f\1\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\6\136\1\u0410"+
+ "\7\136\4\0\5\136\2\0\16\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\6\136\1\u0411"+
+ "\7\136\4\0\5\136\2\0\16\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\1\136\1\u0412\14\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\6\11\1\u02aa\6\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\1\11\1\u0413\3\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\63\0\1\u0414\24\0"+
+ "\1\u0277\3\0\1\u0415\112\0\1\u0416\17\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\11\11\1\u02e1\3\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\1\u029d\4\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\1\u0417\14\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\11\11\1\u0359"+
+ "\3\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\11\1\u0418\13\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\113\0"+
+ "\1\u03f9\15\0\10\11\1\u0419\5\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u03ef\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\6\11\1\u041a\7\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u041b\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u03ec\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\10\11\1\u041c\5\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\6\11\1\u041d\7\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u03a6\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\11"+
+ "\1\u041e\13\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\3\11\1\u041f\11\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\1\u0420\4\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\10\11\1\u0421\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\111\0"+
+ "\1\u0422\60\0\1\u0423\54\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\11\11\1\u0424\3\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\14\11\1\u0425"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\3\11\1\u0425\11\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u03fc\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\6\11\1\u0426\6\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\11\11\1\u02aa\3\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\12\11\1\u0427\3\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\6\11"+
+ "\1\u0428\7\11\1\0\1\111\1\0\6\11\1\u0429\2\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\1\u042a\14\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u042b\1\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\12\11\1\u042c\2\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u042d\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\2\11\1\u042e\12\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\2\11\1\u042f\12\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u0430\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\136"+
+ "\4\0\5\136\2\0\14\136\1\u0431\1\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\1\136\1\u0432\14\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\1\136\1\u0433\14\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u0434\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\10\136"+
+ "\1\u0435\5\136\4\0\5\136\2\0\16\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\13\136\1\u0436\2\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\4\136\1\u0437\11\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\4\136\1\u0438\11\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\3\136\1\u0439\12\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\1\u043a\2\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\23\0\1\u043b\201\0\1\u043c\21\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\1\u043d\4\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u043e\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\11\11\1\u043f\3\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\2\11\1\u0440\13\11\1\0\1\111\1\0\6\11"+
+ "\3\0\11\11\1\u0441\3\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\7\11\1\u03ec\5\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\13\11\1\u0442\1\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\13\11\1\u0302\1\11"+
+ "\1\0\4\11\1\u0303\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\14\11\1\u030f\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\3\11\1\u030f\11\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\13\11\1\u041e\1\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\u0443\14\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\u0158\14\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\6\11\1\u0444\7\11"+
+ "\1\0\1\111\1\0\6\11\3\0\15\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\u0445\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\5\11\1\u0446\3\11"+
+ "\54\0\1\u0447\54\0\16\11\1\0\1\111\1\0\6\11"+
+ "\1\u0429\2\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\7\11\1\u0448\5\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\u0449\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\6\11\1\u044a"+
+ "\7\11\1\0\1\111\1\0\6\11\1\u0429\2\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\1\11\1\u0402\13\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\12\11\1\u044b\2\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u044c\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\136"+
+ "\4\0\5\136\2\0\12\136\1\u044d\3\136\1\0\11\136"+
+ "\3\0\3\136\1\0\1\136\1\0\11\136\13\0\16\136"+
+ "\4\0\5\136\2\0\16\136\1\0\1\u044e\10\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\16\136\1\0\1\u044f\10\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\13\136\1\u0450\2\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\14\136\1\u0451\1\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\3\136\1\u0452\12\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\16\136\1\0\4\136\1\u0453\4\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\16\136\1\0\4\136\1\u0454\4\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\2\136\1\u0455\13\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\106\0\1\u0456\73\0\1\u0457"+
+ "\44\0\16\11\1\0\1\111\1\0\6\11\3\0\6\11"+
+ "\1\u0458\6\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u0459\12\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\13\11"+
+ "\1\u045a\1\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\11\11\1\u03ec\3\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\2\11"+
+ "\1\u045b\12\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\2\11\1\u045c\12\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\u045d"+
+ "\14\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\4\11\1\u045e\10\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\47\0"+
+ "\1\u045f\61\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\5\11\1\u0460\7\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\10\11\1\u0461"+
+ "\5\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\6\11\1\u0462\6\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\2\11\1\u043d\12\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\2\11\1\u0463\12\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\136\4\0"+
+ "\5\136\2\0\3\136\1\u0464\12\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\12\136\1\u0465\3\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\13\136\1\u0466\2\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\10\136\1\u0467"+
+ "\5\136\4\0\5\136\2\0\16\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\10\136\1\u0468"+
+ "\5\136\4\0\5\136\2\0\16\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\51\0\1\u0469\127\0"+
+ "\1\u046a\45\0\16\11\1\0\1\111\1\0\6\11\1\u046b"+
+ "\2\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\7\11\1\u046c\5\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\6\11\1\u046d\7\11\1\0\1\111\1\0\6\11"+
+ "\3\0\15\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\12\11\1\u046e\2\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\1\u046f"+
+ "\14\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\6\11\1\u042a\6\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\10\11\1\u0470\5\11\1\0\1\111\1\0\6\11\3\0"+
+ "\15\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\56\0\1\u0471\52\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\1\u0472\4\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\11\11"+
+ "\1\u0473\3\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\10\11\1\u0474\4\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\2\11\1\u0475\2\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\10\136\1\u0476\5\136"+
+ "\4\0\5\136\2\0\16\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\13\136\1\u0477\2\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\13\0\16\136\4\0\5\136"+
+ "\2\0\13\136\1\u0478\2\136\1\0\11\136\3\0\3\136"+
+ "\1\0\1\136\1\0\11\136\55\0\1\u0479\150\0\1\u047a"+
+ "\61\0\1\u047b\54\0\16\11\1\0\1\111\1\0\6\11"+
+ "\3\0\7\11\1\u047c\5\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\2\11"+
+ "\1\u0440\13\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u047d\5\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\1\u047e\14\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\1\u047f\14\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\64\0\1\u0480\44\0\10\11"+
+ "\1\u0481\5\11\1\0\1\111\1\0\6\11\3\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\10\11\1\u0482\5\11\1\0\1\111"+
+ "\1\0\6\11\3\0\15\11\1\0\5\11\1\0\3\11"+
+ "\4\0\2\11\1\0\1\11\1\0\11\11\13\0\16\11"+
+ "\1\0\1\111\1\0\6\11\3\0\5\11\1\u0483\7\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\1\u0484\2\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\136\4\0"+
+ "\5\136\2\0\14\136\1\u0485\1\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\1\136\1\u0486\14\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\13\0\16\136\4\0"+
+ "\5\136\2\0\1\136\1\u0487\14\136\1\0\11\136\3\0"+
+ "\3\136\1\0\1\136\1\0\11\136\15\0\1\u0488\211\0"+
+ "\1\u0489\53\0\1\u048a\61\0\10\11\1\u048b\5\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\13\11\1\u048c"+
+ "\1\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\13\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\6\11\1\u03f5\6\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\15\11\1\0"+
+ "\3\11\1\u048d\1\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\53\0\1\u048e\55\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\1\u048f\14\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\12\11"+
+ "\1\u0490\2\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\12\11\1\u0491\2\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\54\0\1\u0492\54\0\16\136\4\0\5\136\2\0\12\136"+
+ "\1\u0493\3\136\1\0\11\136\3\0\3\136\1\0\1\136"+
+ "\1\0\11\136\13\0\16\136\4\0\5\136\2\0\16\136"+
+ "\1\0\1\u0494\10\136\3\0\3\136\1\0\1\136\1\0"+
+ "\11\136\13\0\16\136\4\0\5\136\2\0\16\136\1\0"+
+ "\1\u0495\10\136\3\0\3\136\1\0\1\136\1\0\11\136"+
+ "\60\0\1\u0496\113\0\1\u0497\52\0\16\11\1\0\1\111"+
+ "\1\0\6\11\3\0\6\11\1\u0498\6\11\1\0\5\11"+
+ "\1\0\3\11\4\0\2\11\1\0\1\11\1\0\11\11"+
+ "\13\0\16\11\1\0\1\111\1\0\6\11\3\0\11\11"+
+ "\1\u0499\3\11\1\0\5\11\1\0\3\11\4\0\2\11"+
+ "\1\0\1\11\1\0\11\11\13\0\16\11\1\0\1\111"+
+ "\1\0\6\11\1\u049a\2\0\15\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\13\0"+
+ "\16\11\1\0\1\111\1\0\6\11\1\u049b\2\0\15\11"+
+ "\1\0\5\11\1\0\3\11\4\0\2\11\1\0\1\11"+
+ "\1\0\11\11\13\0\16\11\1\0\1\111\1\0\6\11"+
+ "\1\u049c\2\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\13\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\15\11\1\0\2\11\1\u049d"+
+ "\2\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\47\0\1\u049e\132\0\1\u049f\44\0\16\11\1\0"+
+ "\1\111\1\0\6\11\3\0\7\11\1\u04a0\5\11\1\0"+
+ "\5\11\1\0\3\11\4\0\2\11\1\0\1\11\1\0"+
+ "\11\11\13\0\6\11\1\u04a1\7\11\1\0\1\111\1\0"+
+ "\6\11\3\0\15\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\54\0\1\u04a2\115\0"+
+ "\1\u04a3\115\0\1\u04a4\117\0\1\u04a5\112\0\1\u04a6\55\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\6\11\1\u04a7"+
+ "\6\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\47\0\1\u04a8\115\0\1\u04a9\115\0"+
+ "\1\u04aa\132\0\1\u04ab\44\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\7\11\1\u04ac\5\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\56\0"+
+ "\1\u04ad\115\0\1\u04ae\115\0\1\u04af\112\0\1\u04b0\55\0"+
+ "\16\11\1\0\1\111\1\0\6\11\3\0\7\11\1\u04b1"+
+ "\5\11\1\0\5\11\1\0\3\11\4\0\2\11\1\0"+
+ "\1\11\1\0\11\11\64\0\1\u04b2\115\0\1\u04b3\115\0"+
+ "\1\u04b4\44\0\16\11\1\0\1\111\1\0\6\11\3\0"+
+ "\13\11\1\u04b5\1\11\1\0\5\11\1\0\3\11\4\0"+
+ "\2\11\1\0\1\11\1\0\11\11\53\0\1\u04b6\115\0"+
+ "\1\u04b7\115\0\1\u04b8\55\0\16\11\1\0\1\111\1\0"+
+ "\6\11\3\0\7\11\1\u04b9\5\11\1\0\5\11\1\0"+
+ "\3\11\4\0\2\11\1\0\1\11\1\0\11\11\12\0";
+
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[85020];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
+
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unknown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\6\0\1\11\35\1\2\11\5\1\12\11\2\1\1\11"+
+ "\2\1\2\11\1\0\1\1\2\11\1\0\7\1\1\0"+
+ "\10\1\1\0\1\11\15\1\1\11\12\1\1\0\1\1"+
+ "\2\0\54\1\6\0\3\11\1\1\6\11\2\1\1\0"+
+ "\2\1\1\0\2\11\45\1\1\0\1\1\2\0\1\1"+
+ "\2\0\60\1\1\11\1\0\1\11\1\0\1\11\2\1"+
+ "\1\0\1\1\1\0\50\1\4\0\124\1\1\0\41\1"+
+ "\1\0\17\1\1\0\31\1\1\0\36\1\1\0\42\1"+
+ "\2\0\17\1\2\0\3\1\1\11\13\1\1\0\13\1"+
+ "\1\0\36\1\1\0\1\11\1\0\43\1\1\0\1\11"+
+ "\12\1\1\0\3\1\2\11\1\0\12\1\1\0\21\1"+
+ "\1\0\34\1\1\0\1\11\13\1\1\0\10\1\1\0"+
+ "\14\1\1\0\6\1\2\0\3\1\1\0\12\1\1\0"+
+ "\45\1\1\0\7\1\1\0\16\1\1\0\2\1\1\0"+
+ "\10\1\1\0\7\1\2\0\2\1\1\0\55\1\1\0"+
+ "\11\1\1\0\11\1\1\0\5\1\2\0\42\1\2\0"+
+ "\5\1\1\0\10\1\1\11\5\1\1\0\1\11\1\0"+
+ "\31\1\2\0\1\11\13\1\2\11\5\1\1\0\20\1"+
+ "\2\0\1\11\12\1\1\0\16\1\2\0\7\1\1\0"+
+ "\11\1\3\0\5\1\1\0\7\1\3\0\4\1\1\0"+
+ "\3\1\1\0\3\1\1\0\1\11\1\0\3\1\1\11"+
+ "\3\1\1\0\3\1\1\11\1\0\2\1\3\0\1\1"+
+ "\2\0\2\1\4\0\1\11\1\1\4\0\1\1\3\0"+
+ "\1\11\1\1\3\0\1\1\3\11\1\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[1209];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
+ }
+ return j;
+ }
+
+ /** the input device */
+ private java.io.Reader zzReader;
+
+ /** the current state of the DFA */
+ private int zzState;
+
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
+
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
+
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
+
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
+
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
+
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
+
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
+
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
+
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
+
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
+
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+ /**
+ * The number of occupied positions in zzBuffer beyond zzEndRead.
+ * When a lead/high surrogate has been read from the input stream
+ * into the final zzBuffer position, this will have a value of 1;
+ * otherwise, it will have a value of 0.
+ */
+ private int zzFinalHighSurrogate = 0;
+
+ /* user code: */
+ private StringBuffer sb = new StringBuffer();
+ private String stringOrCharError = null;
+ private int stringStartLine;
+ private int stringStartCol;
+ private int stringStartChar;
+
+ private int lexerErrors = 0;
+
+ private File sourceFile;
+
+ private boolean suppressErrors;
+
+ public Token nextToken() {
+ try {
+ Token token = yylex();
+ if (token instanceof InvalidToken) {
+ InvalidToken invalidToken = (InvalidToken)token;
+ if (!suppressErrors) {
+ System.err.println(getErrorHeader(invalidToken) + " Error for input '" +
+ invalidToken.getText() + "': " + invalidToken.getMessage());
+ }
+ lexerErrors++;
+ }
+ return token;
+ }
+ catch (java.io.IOException e) {
+ System.err.println("shouldn't happen: " + e.getMessage());
+ return newToken(EOF);
+ }
+ }
+
+ public void setLine(int line) {
+ this.yyline = line-1;
+ }
+
+ public void setColumn(int column) {
+ this.yycolumn = column;
+ }
+
+ public int getLine() {
+ return this.yyline+1;
+ }
+
+ public int getColumn() {
+ return this.yycolumn;
+ }
+
+ public void setSuppressErrors(boolean suppressErrors) {
+ this.suppressErrors = suppressErrors;
+ }
+
+ public void setSourceFile(File sourceFile) {
+ this.sourceFile = sourceFile;
+ }
+
+ public String getSourceName() {
+ if (sourceFile == null) {
+ return "";
+ }
+ try {
+ return PathUtil.getRelativeFile(new File("."), sourceFile).getPath();
+ } catch (IOException ex) {
+ return sourceFile.getAbsolutePath();
+ }
+ }
+
+ public int getNumberOfSyntaxErrors() {
+ return lexerErrors;
+ }
+
+ private Token newToken(int type, String text, boolean hidden) {
+ CommonToken token = new CommonToken(type, text);
+ if (hidden) {
+ token.setChannel(Token.HIDDEN_CHANNEL);
+ }
+
+ token.setStartIndex(yychar);
+ token.setStopIndex(yychar + yylength() - 1);
+ token.setLine(getLine());
+ token.setCharPositionInLine(getColumn());
+ return token;
+ }
+
+ private Token newToken(int type, String text) {
+ return newToken(type, text, false);
+ }
+
+ private Token newToken(int type, boolean hidden) {
+ return newToken(type, yytext(), hidden);
+ }
+
+ private Token newToken(int type) {
+ return newToken(type, yytext(), false);
+ }
+
+ private Token invalidToken(String message, String text) {
+ InvalidToken token = new InvalidToken(message, text);
+
+ token.setStartIndex(yychar);
+ token.setStopIndex(yychar + yylength() - 1);
+ token.setLine(getLine());
+ token.setCharPositionInLine(getColumn());
+
+ return token;
+ }
+
+ private Token invalidToken(String message) {
+ return invalidToken(message, yytext());
+ }
+
+ private void beginStringOrChar(int state) {
+ yybegin(state);
+ sb.setLength(0);
+ stringStartLine = getLine();
+ stringStartCol = getColumn();
+ stringStartChar = yychar;
+ stringOrCharError = null;
+ }
+
+ private Token endStringOrChar(int type) {
+ yybegin(YYINITIAL);
+
+ if (stringOrCharError != null) {
+ return invalidStringOrChar(stringOrCharError);
+ }
+
+ CommonToken token = new CommonToken(type, sb.toString());
+ token.setStartIndex(stringStartChar);
+ token.setStopIndex(yychar + yylength() - 1);
+ token.setLine(stringStartLine);
+ token.setCharPositionInLine(stringStartCol);
+ return token;
+ }
+
+ private void setStringOrCharError(String message) {
+ if (stringOrCharError == null) {
+ stringOrCharError = message;
+ }
+ }
+
+ private Token invalidStringOrChar(String message) {
+ yybegin(YYINITIAL);
+
+ InvalidToken token = new InvalidToken(message, sb.toString());
+ token.setStartIndex(stringStartChar);
+ token.setStopIndex(yychar + yylength() - 1);
+ token.setLine(stringStartLine);
+ token.setCharPositionInLine(stringStartCol);
+ return token;
+ }
+
+ public String getErrorHeader(InvalidToken token) {
+ return getSourceName()+"["+ token.getLine()+","+token.getCharPositionInLine()+"]";
+ }
+
+ public void reset(CharSequence charSequence, int start, int end, int initialState) {
+ zzReader = BlankReader.INSTANCE;
+ zzBuffer = new char[charSequence.length()];
+ for (int i=0; i<charSequence.length(); i++) {
+ zzBuffer[i] = charSequence.charAt(i);
+ }
+
+ yychar = zzCurrentPos = zzMarkedPos = zzStartRead = start;
+ zzEndRead = end;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ yybegin(initialState);
+ }
+
+
+ /**
+ * Creates a new scanner
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ public smaliFlexLexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x110000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 240) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return <code>false</code>, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzStartRead = 0;
+ }
+
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzBuffer.length*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ }
+
+ /* fill the buffer with new input */
+ int requested = zzBuffer.length - zzEndRead;
+ int numRead = zzReader.read(zzBuffer, zzEndRead, requested);
+
+ /* not supposed to occur according to specification of java.io.Reader */
+ if (numRead == 0) {
+ throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround.");
+ }
+ if (numRead > 0) {
+ zzEndRead += numRead;
+ /* If numRead == requested, we might have requested to few chars to
+ encode a full Unicode character. We assume that a Reader would
+ otherwise never return half characters. */
+ if (numRead == requested) {
+ if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
+ --zzEndRead;
+ zzFinalHighSurrogate = 1;
+ }
+ }
+ /* potentially more input available */
+ return false;
+ }
+
+ /* numRead < 0 ==> end of stream */
+ return true;
+ }
+
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
+
+ if (zzReader != null)
+ zzReader.close();
+ }
+
+
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * <b>cannot</b> be reused (internal buffer is discarded and lost).
+ * Lexical state is set to <tt>ZZ_INITIAL</tt>.
+ *
+ * Internal scan buffer is resized down to its initial length, if it has grown.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEOFDone = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = 0;
+ zzFinalHighSurrogate = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ if (zzBuffer.length > ZZ_BUFFERSIZE)
+ zzBuffer = new char[ZZ_BUFFERSIZE];
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position <tt>pos</tt> from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public Token yylex() throws java.io.IOException {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ yychar+= zzMarkedPosL-zzStartRead;
+
+ boolean zzR = false;
+ int zzCh;
+ int zzCharCount;
+ for (zzCurrentPosL = zzStartRead ;
+ zzCurrentPosL < zzMarkedPosL ;
+ zzCurrentPosL += zzCharCount ) {
+ zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
+ zzCharCount = Character.charCount(zzCh);
+ switch (zzCh) {
+ case '\u000B':
+ case '\u000C':
+ case '\u0085':
+ case '\u2028':
+ case '\u2029':
+ yyline++;
+ yycolumn = 0;
+ zzR = false;
+ break;
+ case '\r':
+ yyline++;
+ yycolumn = 0;
+ zzR = true;
+ break;
+ case '\n':
+ if (zzR)
+ zzR = false;
+ else {
+ yyline++;
+ yycolumn = 0;
+ }
+ break;
+ default:
+ zzR = false;
+ yycolumn += zzCharCount;
+ }
+ }
+
+ if (zzR) {
+ // peek one character ahead if it is \n (if we have counted one line too much)
+ boolean zzPeek;
+ if (zzMarkedPosL < zzEndReadL)
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ else if (zzAtEOF)
+ zzPeek = false;
+ else {
+ boolean eof = zzRefill();
+ zzEndReadL = zzEndRead;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ if (eof)
+ zzPeek = false;
+ else
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ }
+ if (zzPeek) yyline--;
+ }
+ zzAction = -1;
+
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
+
+ // set up zzAction for empty match case:
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ }
+
+
+ zzForAction: {
+ while (true) {
+
+ if (zzCurrentPosL < zzEndReadL) {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
+
+ zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
+
+ }
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ switch (zzLexicalState) {
+ case YYINITIAL: {
+ return newToken(EOF);
+ }
+ case 1210: break;
+ case PARAM_LIST_OR_ID: {
+ yybegin(YYINITIAL);
+ }
+ case 1211: break;
+ case PARAM_LIST: {
+ yybegin(YYINITIAL);
+ }
+ case 1212: break;
+ case ARRAY_DESCRIPTOR: {
+ yybegin(YYINITIAL);
+ }
+ case 1213: break;
+ case STRING: {
+ return invalidStringOrChar("Unterminated string literal");
+ }
+ case 1214: break;
+ case CHAR: {
+ return invalidStringOrChar("Unterminated character literal");
+ }
+ case 1215: break;
+ default:
+ return null;
+ }
+ }
+ else {
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 1:
+ { return invalidToken("Invalid text");
+ }
+ case 141: break;
+ case 2:
+ { return newToken(POSITIVE_INTEGER_LITERAL);
+ }
+ case 142: break;
+ case 3:
+ { return newToken(SIMPLE_NAME);
+ }
+ case 143: break;
+ case 4:
+ { return invalidToken("Invalid directive");
+ }
+ case 144: break;
+ case 5:
+ { return newToken(PRIMITIVE_TYPE);
+ }
+ case 145: break;
+ case 6:
+ { yybegin(ARRAY_DESCRIPTOR);
+ return newToken(ARRAY_TYPE_PREFIX);
+ }
+ case 146: break;
+ case 7:
+ { return newToken(WHITE_SPACE, true);
+ }
+ case 147: break;
+ case 8:
+ { beginStringOrChar(STRING); sb.append('"');
+ }
+ case 148: break;
+ case 9:
+ { beginStringOrChar(CHAR); sb.append('\'');
+ }
+ case 149: break;
+ case 10:
+ { return newToken(LINE_COMMENT, true);
+ }
+ case 150: break;
+ case 11:
+ { return newToken(VOID_TYPE);
+ }
+ case 151: break;
+ case 12:
+ { return newToken(EQUAL);
+ }
+ case 152: break;
+ case 13:
+ { return newToken(COLON);
+ }
+ case 153: break;
+ case 14:
+ { return newToken(COMMA);
+ }
+ case 154: break;
+ case 15:
+ { return newToken(OPEN_BRACE);
+ }
+ case 155: break;
+ case 16:
+ { return newToken(CLOSE_BRACE);
+ }
+ case 156: break;
+ case 17:
+ { return newToken(OPEN_PAREN);
+ }
+ case 157: break;
+ case 18:
+ { return newToken(CLOSE_PAREN);
+ }
+ case 158: break;
+ case 19:
+ { yypushback(1); yybegin(YYINITIAL);
+ }
+ case 159: break;
+ case 20:
+ { return newToken(PARAM_LIST_OR_ID_PRIMITIVE_TYPE);
+ }
+ case 160: break;
+ case 21:
+ { return newToken(ARRAY_TYPE_PREFIX);
+ }
+ case 161: break;
+ case 22:
+ { yybegin(YYINITIAL); return newToken(PRIMITIVE_TYPE);
+ }
+ case 162: break;
+ case 23:
+ { sb.append(yytext());
+ }
+ case 163: break;
+ case 24:
+ { sb.append('"'); return endStringOrChar(STRING_LITERAL);
+ }
+ case 164: break;
+ case 25:
+ { return invalidStringOrChar("Unterminated string literal");
+ }
+ case 165: break;
+ case 26:
+ { sb.append('\'');
+ if (sb.length() == 2) {
+ return invalidStringOrChar("Empty character literal");
+ } else if (sb.length() > 3) {
+ return invalidStringOrChar("Character literal with multiple chars");
+ }
+
+ return endStringOrChar(CHAR_LITERAL);
+ }
+ case 166: break;
+ case 27:
+ { return invalidStringOrChar("Unterminated character literal");
+ }
+ case 167: break;
+ case 28:
+ { return newToken(FLOAT_LITERAL_OR_ID);
+ }
+ case 168: break;
+ case 29:
+ { return newToken(BYTE_LITERAL);
+ }
+ case 169: break;
+ case 30:
+ { return newToken(DOUBLE_LITERAL);
+ }
+ case 170: break;
+ case 31:
+ { return newToken(LONG_LITERAL);
+ }
+ case 171: break;
+ case 32:
+ { return newToken(SHORT_LITERAL);
+ }
+ case 172: break;
+ case 33:
+ { return newToken(DOUBLE_LITERAL_OR_ID);
+ }
+ case 173: break;
+ case 34:
+ { return newToken(NEGATIVE_INTEGER_LITERAL);
+ }
+ case 174: break;
+ case 35:
+ { return newToken(ARROW);
+ }
+ case 175: break;
+ case 36:
+ { return newToken(DOTDOT);
+ }
+ case 176: break;
+ case 37:
+ { // go back and re-lex it as a PARAM_LIST_OR_ID
+ yypushback(yylength());
+ yybegin(PARAM_LIST_OR_ID);
+ }
+ case 177: break;
+ case 38:
+ { return newToken(REGISTER);
+ }
+ case 178: break;
+ case 39:
+ { sb.append(yytext());
+ setStringOrCharError("Invalid escape sequence " + yytext());
+ }
+ case 179: break;
+ case 40:
+ { sb.append('\b');
+ }
+ case 180: break;
+ case 41:
+ { sb.append('\f');
+ }
+ case 181: break;
+ case 42:
+ { sb.append(yytext());
+ setStringOrCharError("Invalid \\u sequence. \\u must be followed by 4 hex digits");
+ }
+ case 182: break;
+ case 43:
+ { sb.append('\r');
+ }
+ case 183: break;
+ case 44:
+ { sb.append('\n');
+ }
+ case 184: break;
+ case 45:
+ { sb.append('\t');
+ }
+ case 185: break;
+ case 46:
+ { sb.append('"');
+ }
+ case 186: break;
+ case 47:
+ { sb.append('\'');
+ }
+ case 187: break;
+ case 48:
+ { sb.append('\\');
+ }
+ case 188: break;
+ case 49:
+ { sb.append(yytext());
+ setStringOrCharError("Invalid \\u sequence. \\u must be followed by exactly 4 hex digits");
+ }
+ case 189: break;
+ case 50:
+ { return newToken(FLOAT_LITERAL);
+ }
+ case 190: break;
+ case 51:
+ { // go back and re-lex it as a PARAM_LIST
+ yypushback(yylength());
+ yybegin(PARAM_LIST);
+ }
+ case 191: break;
+ case 52:
+ { return newToken(CLASS_DESCRIPTOR);
+ }
+ case 192: break;
+ case 53:
+ { return newToken(INSTRUCTION_FORMAT10x);
+ }
+ case 193: break;
+ case 54:
+ { return newToken(MEMBER_NAME);
+ }
+ case 194: break;
+ case 55:
+ { yybegin(YYINITIAL); return newToken(CLASS_DESCRIPTOR);
+ }
+ case 195: break;
+ case 56:
+ { return newToken(INSTRUCTION_FORMAT22c_FIELD);
+ }
+ case 196: break;
+ case 57:
+ { return newToken(INSTRUCTION_FORMAT23x);
+ }
+ case 197: break;
+ case 58:
+ { return newToken(INSTRUCTION_FORMAT21c_FIELD);
+ }
+ case 198: break;
+ case 59:
+ { return newToken(ACCESS_SPEC);
+ }
+ case 199: break;
+ case 60:
+ { return newToken(INSTRUCTION_FORMAT12x_OR_ID);
+ }
+ case 200: break;
+ case 61:
+ { return newToken(NULL_LITERAL);
+ }
+ case 201: break;
+ case 62:
+ { return newToken(BOOL_LITERAL);
+ }
+ case 202: break;
+ case 63:
+ { return newToken(INSTRUCTION_FORMAT10t);
+ }
+ case 203: break;
+ case 64:
+ { return newToken(ANNOTATION_VISIBILITY);
+ }
+ case 204: break;
+ case 65:
+ { return newToken(INSTRUCTION_FORMAT22t);
+ }
+ case 205: break;
+ case 66:
+ { return newToken(LINE_DIRECTIVE);
+ }
+ case 206: break;
+ case 67:
+ { return newToken(ENUM_DIRECTIVE);
+ }
+ case 207: break;
+ case 68:
+ { return newToken(INSTRUCTION_FORMAT31i_OR_ID);
+ }
+ case 208: break;
+ case 69:
+ { return newToken(INSTRUCTION_FORMAT11x);
+ }
+ case 209: break;
+ case 70:
+ { return newToken(INSTRUCTION_FORMAT21t);
+ }
+ case 210: break;
+ case 71:
+ { return newToken(FIELD_DIRECTIVE);
+ }
+ case 211: break;
+ case 72:
+ { return newToken(CLASS_DIRECTIVE);
+ }
+ case 212: break;
+ case 73:
+ { return newToken(CATCH_DIRECTIVE);
+ }
+ case 213: break;
+ case 74:
+ { return newToken(LOCAL_DIRECTIVE);
+ }
+ case 214: break;
+ case 75:
+ { return newToken(SUPER_DIRECTIVE);
+ }
+ case 215: break;
+ case 76:
+ { return newToken(PARAMETER_DIRECTIVE);
+ }
+ case 216: break;
+ case 77:
+ { sb.append((char)Integer.parseInt(yytext().substring(2,6), 16));
+ }
+ case 217: break;
+ case 78:
+ { return newToken(LOCALS_DIRECTIVE);
+ }
+ case 218: break;
+ case 79:
+ { return newToken(SOURCE_DIRECTIVE);
+ }
+ case 219: break;
+ case 80:
+ { return newToken(METHOD_DIRECTIVE);
+ }
+ case 220: break;
+ case 81:
+ { return newToken(INSTRUCTION_FORMAT11n);
+ }
+ case 221: break;
+ case 82:
+ { return newToken(INSTRUCTION_FORMAT32x);
+ }
+ case 222: break;
+ case 83:
+ { return newToken(INSTRUCTION_FORMAT20t);
+ }
+ case 223: break;
+ case 84:
+ { return newToken(INSTRUCTION_FORMAT30t);
+ }
+ case 224: break;
+ case 85:
+ { return newToken(INSTRUCTION_FORMAT21s);
+ }
+ case 225: break;
+ case 86:
+ { return newToken(INSTRUCTION_FORMAT22s_OR_ID);
+ }
+ case 226: break;
+ case 87:
+ { return newToken(VERIFICATION_ERROR_TYPE);
+ }
+ case 227: break;
+ case 88:
+ { return newToken(FIELD_OFFSET);
+ }
+ case 228: break;
+ case 89:
+ { return newToken(CATCHALL_DIRECTIVE);
+ }
+ case 229: break;
+ case 90:
+ { return newToken(PROLOGUE_DIRECTIVE);
+ }
+ case 230: break;
+ case 91:
+ { return newToken(EPILOGUE_DIRECTIVE);
+ }
+ case 231: break;
+ case 92:
+ { return newToken(INSTRUCTION_FORMAT22c_TYPE);
+ }
+ case 232: break;
+ case 93:
+ { return newToken(INSTRUCTION_FORMAT22cs_FIELD);
+ }
+ case 233: break;
+ case 94:
+ { return newToken(INLINE_INDEX);
+ }
+ case 234: break;
+ case 95:
+ { return newToken(END_FIELD_DIRECTIVE);
+ }
+ case 235: break;
+ case 96:
+ { return newToken(END_LOCAL_DIRECTIVE);
+ }
+ case 236: break;
+ case 97:
+ { return newToken(END_PARAMETER_DIRECTIVE);
+ }
+ case 237: break;
+ case 98:
+ { return newToken(REGISTERS_DIRECTIVE);
+ }
+ case 238: break;
+ case 99:
+ { return newToken(INSTRUCTION_FORMAT51l);
+ }
+ case 239: break;
+ case 100:
+ { return newToken(INSTRUCTION_FORMAT21c_TYPE);
+ }
+ case 240: break;
+ case 101:
+ { return newToken(VTABLE_INDEX);
+ }
+ case 241: break;
+ case 102:
+ { return newToken(IMPLEMENTS_DIRECTIVE);
+ }
+ case 242: break;
+ case 103:
+ { return newToken(ARRAY_DATA_DIRECTIVE);
+ }
+ case 243: break;
+ case 104:
+ { return newToken(ANNOTATION_DIRECTIVE);
+ }
+ case 244: break;
+ case 105:
+ { return newToken(END_METHOD_DIRECTIVE);
+ }
+ case 245: break;
+ case 106:
+ { return newToken(INSTRUCTION_FORMAT22x);
+ }
+ case 246: break;
+ case 107:
+ { return newToken(INSTRUCTION_FORMAT22b);
+ }
+ case 247: break;
+ case 108:
+ { return newToken(INSTRUCTION_FORMAT35c_METHOD);
+ }
+ case 248: break;
+ case 109:
+ { return newToken(INSTRUCTION_FORMAT21c_STRING);
+ }
+ case 249: break;
+ case 110:
+ { return newToken(INSTRUCTION_FORMAT21ih);
+ }
+ case 250: break;
+ case 111:
+ { return newToken(INSTRUCTION_FORMAT22s);
+ }
+ case 251: break;
+ case 112:
+ { return newToken(INSTRUCTION_FORMAT12x);
+ }
+ case 252: break;
+ case 113:
+ { return newToken(INSTRUCTION_FORMAT22c_FIELD_ODEX);
+ }
+ case 253: break;
+ case 114:
+ { return newToken(INSTRUCTION_FORMAT31i);
+ }
+ case 254: break;
+ case 115:
+ { return newToken(INSTRUCTION_FORMAT31t);
+ }
+ case 255: break;
+ case 116:
+ { return newToken(INSTRUCTION_FORMAT21c_FIELD_ODEX);
+ }
+ case 256: break;
+ case 117:
+ { return newToken(SUBANNOTATION_DIRECTIVE);
+ }
+ case 257: break;
+ case 118:
+ { return newToken(SPARSE_SWITCH_DIRECTIVE);
+ }
+ case 258: break;
+ case 119:
+ { return newToken(PACKED_SWITCH_DIRECTIVE);
+ }
+ case 259: break;
+ case 120:
+ { return newToken(RESTART_LOCAL_DIRECTIVE);
+ }
+ case 260: break;
+ case 121:
+ { return newToken(INSTRUCTION_FORMAT35mi_METHOD);
+ }
+ case 261: break;
+ case 122:
+ { return newToken(END_ARRAY_DATA_DIRECTIVE);
+ }
+ case 262: break;
+ case 123:
+ { return newToken(END_ANNOTATION_DIRECTIVE);
+ }
+ case 263: break;
+ case 124:
+ { return newToken(INSTRUCTION_FORMAT35c_TYPE);
+ }
+ case 264: break;
+ case 125:
+ { return newToken(INSTRUCTION_FORMAT21lh);
+ }
+ case 265: break;
+ case 126:
+ { return newToken(INSTRUCTION_FORMAT35ms_METHOD);
+ }
+ case 266: break;
+ case 127:
+ { return newToken(INSTRUCTION_FORMAT3rc_METHOD);
+ }
+ case 267: break;
+ case 128:
+ { return newToken(INSTRUCTION_FORMAT45cc_METHOD);
+ }
+ case 268: break;
+ case 129:
+ { return newToken(END_SUBANNOTATION_DIRECTIVE);
+ }
+ case 269: break;
+ case 130:
+ { return newToken(END_SPARSE_SWITCH_DIRECTIVE);
+ }
+ case 270: break;
+ case 131:
+ { return newToken(END_PACKED_SWITCH_DIRECTIVE);
+ }
+ case 271: break;
+ case 132:
+ { return newToken(INSTRUCTION_FORMAT31c);
+ }
+ case 272: break;
+ case 133:
+ { return newToken(INSTRUCTION_FORMAT35c_METHOD_ODEX);
+ }
+ case 273: break;
+ case 134:
+ { return newToken(INSTRUCTION_FORMAT10x_ODEX);
+ }
+ case 274: break;
+ case 135:
+ { return newToken(INSTRUCTION_FORMAT3rmi_METHOD);
+ }
+ case 275: break;
+ case 136:
+ { return newToken(INSTRUCTION_FORMAT3rc_TYPE);
+ }
+ case 276: break;
+ case 137:
+ { return newToken(INSTRUCTION_FORMAT3rms_METHOD);
+ }
+ case 277: break;
+ case 138:
+ { return newToken(INSTRUCTION_FORMAT4rcc_METHOD);
+ }
+ case 278: break;
+ case 139:
+ { return newToken(INSTRUCTION_FORMAT3rc_METHOD_ODEX);
+ }
+ case 279: break;
+ case 140:
+ { return newToken(INSTRUCTION_FORMAT20bc);
+ }
+ case 280: break;
+ default:
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
+ }
+ }
+
+
+}
diff --git a/smali/src/main/java/org/jf/smali/smaliParser.java b/smali/src/main/java/org/jf/smali/smaliParser.java
new file mode 100644
index 0000000..72ef034
--- /dev/null
+++ b/smali/src/main/java/org/jf/smali/smaliParser.java
@@ -0,0 +1,15692 @@
+// $ANTLR 3.5.2 smaliParser.g 2017-04-20 15:20:45
+
+package org.jf.smali;
+
+import org.jf.dexlib2.Format;
+import org.jf.dexlib2.Opcode;
+import org.jf.dexlib2.Opcodes;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+import org.antlr.runtime.tree.*;
+
+
+@SuppressWarnings("all")
+public class smaliParser extends Parser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACCESS_SPEC", "ANNOTATION_DIRECTIVE",
+ "ANNOTATION_VISIBILITY", "ARRAY_DATA_DIRECTIVE", "ARRAY_TYPE_PREFIX",
+ "ARROW", "BOOL_LITERAL", "BYTE_LITERAL", "CATCHALL_DIRECTIVE", "CATCH_DIRECTIVE",
+ "CHAR_LITERAL", "CLASS_DESCRIPTOR", "CLASS_DIRECTIVE", "CLOSE_BRACE",
+ "CLOSE_PAREN", "COLON", "COMMA", "DOTDOT", "DOUBLE_LITERAL", "DOUBLE_LITERAL_OR_ID",
+ "END_ANNOTATION_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "END_FIELD_DIRECTIVE",
+ "END_LOCAL_DIRECTIVE", "END_METHOD_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE",
+ "END_PARAMETER_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE",
+ "ENUM_DIRECTIVE", "EPILOGUE_DIRECTIVE", "EQUAL", "FIELD_DIRECTIVE", "FIELD_OFFSET",
+ "FLOAT_LITERAL", "FLOAT_LITERAL_OR_ID", "IMPLEMENTS_DIRECTIVE", "INLINE_INDEX",
+ "INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT10x_ODEX",
+ "INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x",
+ "INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT20bc", "INSTRUCTION_FORMAT20t",
+ "INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_FIELD_ODEX", "INSTRUCTION_FORMAT21c_STRING",
+ "INSTRUCTION_FORMAT21c_TYPE", "INSTRUCTION_FORMAT21ih", "INSTRUCTION_FORMAT21lh",
+ "INSTRUCTION_FORMAT21s", "INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b",
+ "INSTRUCTION_FORMAT22c_FIELD", "INSTRUCTION_FORMAT22c_FIELD_ODEX", "INSTRUCTION_FORMAT22c_TYPE",
+ "INSTRUCTION_FORMAT22cs_FIELD", "INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22s_OR_ID",
+ "INSTRUCTION_FORMAT22t", "INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x",
+ "INSTRUCTION_FORMAT30t", "INSTRUCTION_FORMAT31c", "INSTRUCTION_FORMAT31i",
+ "INSTRUCTION_FORMAT31i_OR_ID", "INSTRUCTION_FORMAT31t", "INSTRUCTION_FORMAT32x",
+ "INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_METHOD_ODEX", "INSTRUCTION_FORMAT35c_TYPE",
+ "INSTRUCTION_FORMAT35mi_METHOD", "INSTRUCTION_FORMAT35ms_METHOD", "INSTRUCTION_FORMAT3rc_METHOD",
+ "INSTRUCTION_FORMAT3rc_METHOD_ODEX", "INSTRUCTION_FORMAT3rc_TYPE", "INSTRUCTION_FORMAT3rmi_METHOD",
+ "INSTRUCTION_FORMAT3rms_METHOD", "INSTRUCTION_FORMAT45cc_METHOD", "INSTRUCTION_FORMAT4rcc_METHOD",
+ "INSTRUCTION_FORMAT51l", "INTEGER_LITERAL", "INVALID_TOKEN", "I_ACCESS_LIST",
+ "I_ANNOTATION", "I_ANNOTATIONS", "I_ANNOTATION_ELEMENT", "I_ARRAY_ELEMENTS",
+ "I_ARRAY_ELEMENT_SIZE", "I_CATCH", "I_CATCHALL", "I_CATCHES", "I_CLASS_DEF",
+ "I_ENCODED_ARRAY", "I_ENCODED_ENUM", "I_ENCODED_FIELD", "I_ENCODED_METHOD",
+ "I_END_LOCAL", "I_EPILOGUE", "I_FIELD", "I_FIELDS", "I_FIELD_INITIAL_VALUE",
+ "I_FIELD_TYPE", "I_IMPLEMENTS", "I_LABEL", "I_LINE", "I_LOCAL", "I_LOCALS",
+ "I_METHOD", "I_METHODS", "I_METHOD_PROTOTYPE", "I_METHOD_RETURN_TYPE",
+ "I_ORDERED_METHOD_ITEMS", "I_PACKED_SWITCH_ELEMENTS", "I_PACKED_SWITCH_START_KEY",
+ "I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED", "I_PROLOGUE",
+ "I_REGISTERS", "I_REGISTER_LIST", "I_REGISTER_RANGE", "I_RESTART_LOCAL",
+ "I_SOURCE", "I_SPARSE_SWITCH_ELEMENTS", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_FORMAT10t",
+ "I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x",
+ "I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20bc", "I_STATEMENT_FORMAT20t",
+ "I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21c_TYPE",
+ "I_STATEMENT_FORMAT21ih", "I_STATEMENT_FORMAT21lh", "I_STATEMENT_FORMAT21s",
+ "I_STATEMENT_FORMAT21t", "I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD",
+ "I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t",
+ "I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT30t",
+ "I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i", "I_STATEMENT_FORMAT31t",
+ "I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_METHOD", "I_STATEMENT_FORMAT35c_TYPE",
+ "I_STATEMENT_FORMAT3rc_METHOD", "I_STATEMENT_FORMAT3rc_TYPE", "I_STATEMENT_FORMAT45cc_METHOD",
+ "I_STATEMENT_FORMAT4rcc_METHOD", "I_STATEMENT_FORMAT51l", "I_STATEMENT_PACKED_SWITCH",
+ "I_STATEMENT_SPARSE_SWITCH", "I_SUBANNOTATION", "I_SUPER", "LINE_COMMENT",
+ "LINE_DIRECTIVE", "LOCALS_DIRECTIVE", "LOCAL_DIRECTIVE", "LONG_LITERAL",
+ "MEMBER_NAME", "METHOD_DIRECTIVE", "NEGATIVE_INTEGER_LITERAL", "NULL_LITERAL",
+ "OPEN_BRACE", "OPEN_PAREN", "PACKED_SWITCH_DIRECTIVE", "PARAMETER_DIRECTIVE",
+ "PARAM_LIST_OR_ID_PRIMITIVE_TYPE", "POSITIVE_INTEGER_LITERAL", "PRIMITIVE_TYPE",
+ "PROLOGUE_DIRECTIVE", "REGISTER", "REGISTERS_DIRECTIVE", "RESTART_LOCAL_DIRECTIVE",
+ "SHORT_LITERAL", "SIMPLE_NAME", "SOURCE_DIRECTIVE", "SPARSE_SWITCH_DIRECTIVE",
+ "STRING_LITERAL", "SUBANNOTATION_DIRECTIVE", "SUPER_DIRECTIVE", "VERIFICATION_ERROR_TYPE",
+ "VOID_TYPE", "VTABLE_INDEX", "WHITE_SPACE"
+ };
+ public static final int EOF=-1;
+ public static final int ACCESS_SPEC=4;
+ public static final int ANNOTATION_DIRECTIVE=5;
+ public static final int ANNOTATION_VISIBILITY=6;
+ public static final int ARRAY_DATA_DIRECTIVE=7;
+ public static final int ARRAY_TYPE_PREFIX=8;
+ public static final int ARROW=9;
+ public static final int BOOL_LITERAL=10;
+ public static final int BYTE_LITERAL=11;
+ public static final int CATCHALL_DIRECTIVE=12;
+ public static final int CATCH_DIRECTIVE=13;
+ public static final int CHAR_LITERAL=14;
+ public static final int CLASS_DESCRIPTOR=15;
+ public static final int CLASS_DIRECTIVE=16;
+ public static final int CLOSE_BRACE=17;
+ public static final int CLOSE_PAREN=18;
+ public static final int COLON=19;
+ public static final int COMMA=20;
+ public static final int DOTDOT=21;
+ public static final int DOUBLE_LITERAL=22;
+ public static final int DOUBLE_LITERAL_OR_ID=23;
+ public static final int END_ANNOTATION_DIRECTIVE=24;
+ public static final int END_ARRAY_DATA_DIRECTIVE=25;
+ public static final int END_FIELD_DIRECTIVE=26;
+ public static final int END_LOCAL_DIRECTIVE=27;
+ public static final int END_METHOD_DIRECTIVE=28;
+ public static final int END_PACKED_SWITCH_DIRECTIVE=29;
+ public static final int END_PARAMETER_DIRECTIVE=30;
+ public static final int END_SPARSE_SWITCH_DIRECTIVE=31;
+ public static final int END_SUBANNOTATION_DIRECTIVE=32;
+ public static final int ENUM_DIRECTIVE=33;
+ public static final int EPILOGUE_DIRECTIVE=34;
+ public static final int EQUAL=35;
+ public static final int FIELD_DIRECTIVE=36;
+ public static final int FIELD_OFFSET=37;
+ public static final int FLOAT_LITERAL=38;
+ public static final int FLOAT_LITERAL_OR_ID=39;
+ public static final int IMPLEMENTS_DIRECTIVE=40;
+ public static final int INLINE_INDEX=41;
+ public static final int INSTRUCTION_FORMAT10t=42;
+ public static final int INSTRUCTION_FORMAT10x=43;
+ public static final int INSTRUCTION_FORMAT10x_ODEX=44;
+ public static final int INSTRUCTION_FORMAT11n=45;
+ public static final int INSTRUCTION_FORMAT11x=46;
+ public static final int INSTRUCTION_FORMAT12x=47;
+ public static final int INSTRUCTION_FORMAT12x_OR_ID=48;
+ public static final int INSTRUCTION_FORMAT20bc=49;
+ public static final int INSTRUCTION_FORMAT20t=50;
+ public static final int INSTRUCTION_FORMAT21c_FIELD=51;
+ public static final int INSTRUCTION_FORMAT21c_FIELD_ODEX=52;
+ public static final int INSTRUCTION_FORMAT21c_STRING=53;
+ public static final int INSTRUCTION_FORMAT21c_TYPE=54;
+ public static final int INSTRUCTION_FORMAT21ih=55;
+ public static final int INSTRUCTION_FORMAT21lh=56;
+ public static final int INSTRUCTION_FORMAT21s=57;
+ public static final int INSTRUCTION_FORMAT21t=58;
+ public static final int INSTRUCTION_FORMAT22b=59;
+ public static final int INSTRUCTION_FORMAT22c_FIELD=60;
+ public static final int INSTRUCTION_FORMAT22c_FIELD_ODEX=61;
+ public static final int INSTRUCTION_FORMAT22c_TYPE=62;
+ public static final int INSTRUCTION_FORMAT22cs_FIELD=63;
+ public static final int INSTRUCTION_FORMAT22s=64;
+ public static final int INSTRUCTION_FORMAT22s_OR_ID=65;
+ public static final int INSTRUCTION_FORMAT22t=66;
+ public static final int INSTRUCTION_FORMAT22x=67;
+ public static final int INSTRUCTION_FORMAT23x=68;
+ public static final int INSTRUCTION_FORMAT30t=69;
+ public static final int INSTRUCTION_FORMAT31c=70;
+ public static final int INSTRUCTION_FORMAT31i=71;
+ public static final int INSTRUCTION_FORMAT31i_OR_ID=72;
+ public static final int INSTRUCTION_FORMAT31t=73;
+ public static final int INSTRUCTION_FORMAT32x=74;
+ public static final int INSTRUCTION_FORMAT35c_METHOD=75;
+ public static final int INSTRUCTION_FORMAT35c_METHOD_ODEX=76;
+ public static final int INSTRUCTION_FORMAT35c_TYPE=77;
+ public static final int INSTRUCTION_FORMAT35mi_METHOD=78;
+ public static final int INSTRUCTION_FORMAT35ms_METHOD=79;
+ public static final int INSTRUCTION_FORMAT3rc_METHOD=80;
+ public static final int INSTRUCTION_FORMAT3rc_METHOD_ODEX=81;
+ public static final int INSTRUCTION_FORMAT3rc_TYPE=82;
+ public static final int INSTRUCTION_FORMAT3rmi_METHOD=83;
+ public static final int INSTRUCTION_FORMAT3rms_METHOD=84;
+ public static final int INSTRUCTION_FORMAT45cc_METHOD=85;
+ public static final int INSTRUCTION_FORMAT4rcc_METHOD=86;
+ public static final int INSTRUCTION_FORMAT51l=87;
+ public static final int INTEGER_LITERAL=88;
+ public static final int INVALID_TOKEN=89;
+ public static final int I_ACCESS_LIST=90;
+ public static final int I_ANNOTATION=91;
+ public static final int I_ANNOTATIONS=92;
+ public static final int I_ANNOTATION_ELEMENT=93;
+ public static final int I_ARRAY_ELEMENTS=94;
+ public static final int I_ARRAY_ELEMENT_SIZE=95;
+ public static final int I_CATCH=96;
+ public static final int I_CATCHALL=97;
+ public static final int I_CATCHES=98;
+ public static final int I_CLASS_DEF=99;
+ public static final int I_ENCODED_ARRAY=100;
+ public static final int I_ENCODED_ENUM=101;
+ public static final int I_ENCODED_FIELD=102;
+ public static final int I_ENCODED_METHOD=103;
+ public static final int I_END_LOCAL=104;
+ public static final int I_EPILOGUE=105;
+ public static final int I_FIELD=106;
+ public static final int I_FIELDS=107;
+ public static final int I_FIELD_INITIAL_VALUE=108;
+ public static final int I_FIELD_TYPE=109;
+ public static final int I_IMPLEMENTS=110;
+ public static final int I_LABEL=111;
+ public static final int I_LINE=112;
+ public static final int I_LOCAL=113;
+ public static final int I_LOCALS=114;
+ public static final int I_METHOD=115;
+ public static final int I_METHODS=116;
+ public static final int I_METHOD_PROTOTYPE=117;
+ public static final int I_METHOD_RETURN_TYPE=118;
+ public static final int I_ORDERED_METHOD_ITEMS=119;
+ public static final int I_PACKED_SWITCH_ELEMENTS=120;
+ public static final int I_PACKED_SWITCH_START_KEY=121;
+ public static final int I_PARAMETER=122;
+ public static final int I_PARAMETERS=123;
+ public static final int I_PARAMETER_NOT_SPECIFIED=124;
+ public static final int I_PROLOGUE=125;
+ public static final int I_REGISTERS=126;
+ public static final int I_REGISTER_LIST=127;
+ public static final int I_REGISTER_RANGE=128;
+ public static final int I_RESTART_LOCAL=129;
+ public static final int I_SOURCE=130;
+ public static final int I_SPARSE_SWITCH_ELEMENTS=131;
+ public static final int I_STATEMENT_ARRAY_DATA=132;
+ public static final int I_STATEMENT_FORMAT10t=133;
+ public static final int I_STATEMENT_FORMAT10x=134;
+ public static final int I_STATEMENT_FORMAT11n=135;
+ public static final int I_STATEMENT_FORMAT11x=136;
+ public static final int I_STATEMENT_FORMAT12x=137;
+ public static final int I_STATEMENT_FORMAT20bc=138;
+ public static final int I_STATEMENT_FORMAT20t=139;
+ public static final int I_STATEMENT_FORMAT21c_FIELD=140;
+ public static final int I_STATEMENT_FORMAT21c_STRING=141;
+ public static final int I_STATEMENT_FORMAT21c_TYPE=142;
+ public static final int I_STATEMENT_FORMAT21ih=143;
+ public static final int I_STATEMENT_FORMAT21lh=144;
+ public static final int I_STATEMENT_FORMAT21s=145;
+ public static final int I_STATEMENT_FORMAT21t=146;
+ public static final int I_STATEMENT_FORMAT22b=147;
+ public static final int I_STATEMENT_FORMAT22c_FIELD=148;
+ public static final int I_STATEMENT_FORMAT22c_TYPE=149;
+ public static final int I_STATEMENT_FORMAT22s=150;
+ public static final int I_STATEMENT_FORMAT22t=151;
+ public static final int I_STATEMENT_FORMAT22x=152;
+ public static final int I_STATEMENT_FORMAT23x=153;
+ public static final int I_STATEMENT_FORMAT30t=154;
+ public static final int I_STATEMENT_FORMAT31c=155;
+ public static final int I_STATEMENT_FORMAT31i=156;
+ public static final int I_STATEMENT_FORMAT31t=157;
+ public static final int I_STATEMENT_FORMAT32x=158;
+ public static final int I_STATEMENT_FORMAT35c_METHOD=159;
+ public static final int I_STATEMENT_FORMAT35c_TYPE=160;
+ public static final int I_STATEMENT_FORMAT3rc_METHOD=161;
+ public static final int I_STATEMENT_FORMAT3rc_TYPE=162;
+ public static final int I_STATEMENT_FORMAT45cc_METHOD=163;
+ public static final int I_STATEMENT_FORMAT4rcc_METHOD=164;
+ public static final int I_STATEMENT_FORMAT51l=165;
+ public static final int I_STATEMENT_PACKED_SWITCH=166;
+ public static final int I_STATEMENT_SPARSE_SWITCH=167;
+ public static final int I_SUBANNOTATION=168;
+ public static final int I_SUPER=169;
+ public static final int LINE_COMMENT=170;
+ public static final int LINE_DIRECTIVE=171;
+ public static final int LOCALS_DIRECTIVE=172;
+ public static final int LOCAL_DIRECTIVE=173;
+ public static final int LONG_LITERAL=174;
+ public static final int MEMBER_NAME=175;
+ public static final int METHOD_DIRECTIVE=176;
+ public static final int NEGATIVE_INTEGER_LITERAL=177;
+ public static final int NULL_LITERAL=178;
+ public static final int OPEN_BRACE=179;
+ public static final int OPEN_PAREN=180;
+ public static final int PACKED_SWITCH_DIRECTIVE=181;
+ public static final int PARAMETER_DIRECTIVE=182;
+ public static final int PARAM_LIST_OR_ID_PRIMITIVE_TYPE=183;
+ public static final int POSITIVE_INTEGER_LITERAL=184;
+ public static final int PRIMITIVE_TYPE=185;
+ public static final int PROLOGUE_DIRECTIVE=186;
+ public static final int REGISTER=187;
+ public static final int REGISTERS_DIRECTIVE=188;
+ public static final int RESTART_LOCAL_DIRECTIVE=189;
+ public static final int SHORT_LITERAL=190;
+ public static final int SIMPLE_NAME=191;
+ public static final int SOURCE_DIRECTIVE=192;
+ public static final int SPARSE_SWITCH_DIRECTIVE=193;
+ public static final int STRING_LITERAL=194;
+ public static final int SUBANNOTATION_DIRECTIVE=195;
+ public static final int SUPER_DIRECTIVE=196;
+ public static final int VERIFICATION_ERROR_TYPE=197;
+ public static final int VOID_TYPE=198;
+ public static final int VTABLE_INDEX=199;
+ public static final int WHITE_SPACE=200;
+
+ // delegates
+ public Parser[] getDelegates() {
+ return new Parser[] {};
+ }
+
+ // delegators
+
+
+ public smaliParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public smaliParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+ }
+
+ protected TreeAdaptor adaptor = new CommonTreeAdaptor();
+
+ public void setTreeAdaptor(TreeAdaptor adaptor) {
+ this.adaptor = adaptor;
+ }
+ public TreeAdaptor getTreeAdaptor() {
+ return adaptor;
+ }
+ @Override public String[] getTokenNames() { return smaliParser.tokenNames; }
+ @Override public String getGrammarFileName() { return "smaliParser.g"; }
+
+
+ public static final int ERROR_CHANNEL = 100;
+
+ private boolean verboseErrors = false;
+ private boolean allowOdex = false;
+ private int apiLevel = 15;
+ private Opcodes opcodes = Opcodes.forApi(apiLevel);
+
+ public void setVerboseErrors(boolean verboseErrors) {
+ this.verboseErrors = verboseErrors;
+ }
+
+ public void setAllowOdex(boolean allowOdex) {
+ this.allowOdex = allowOdex;
+ }
+
+ public void setApiLevel(int apiLevel) {
+ this.opcodes = Opcodes.forApi(apiLevel);
+ this.apiLevel = apiLevel;
+ }
+
+ public String getErrorMessage(RecognitionException e,
+ String[] tokenNames) {
+
+ if (verboseErrors) {
+ List stack = getRuleInvocationStack(e, this.getClass().getName());
+ String msg = null;
+
+ if (e instanceof NoViableAltException) {
+ NoViableAltException nvae = (NoViableAltException)e;
+ msg = " no viable alt; token="+getTokenErrorDisplay(e.token)+
+ " (decision="+nvae.decisionNumber+
+ " state "+nvae.stateNumber+")"+
+ " decision=<<"+nvae.grammarDecisionDescription+">>";
+ } else {
+ msg = super.getErrorMessage(e, tokenNames);
+ }
+
+ return stack + " " + msg;
+ } else {
+ return super.getErrorMessage(e, tokenNames);
+ }
+ }
+
+ public String getTokenErrorDisplay(Token t) {
+ if (!verboseErrors) {
+ String s = t.getText();
+ if ( s==null ) {
+ if ( t.getType()==Token.EOF ) {
+ s = "<EOF>";
+ }
+ else {
+ s = "<"+tokenNames[t.getType()]+">";
+ }
+ }
+ s = s.replaceAll("\n","\\\\n");
+ s = s.replaceAll("\r","\\\\r");
+ s = s.replaceAll("\t","\\\\t");
+ return "'"+s+"'";
+ }
+
+ CommonToken ct = (CommonToken)t;
+
+ String channelStr = "";
+ if (t.getChannel()>0) {
+ channelStr=",channel="+t.getChannel();
+ }
+ String txt = t.getText();
+ if ( txt!=null ) {
+ txt = txt.replaceAll("\n","\\\\n");
+ txt = txt.replaceAll("\r","\\\\r");
+ txt = txt.replaceAll("\t","\\\\t");
+ }
+ else {
+ txt = "<no text>";
+ }
+ return "[@"+t.getTokenIndex()+","+ct.getStartIndex()+":"+ct.getStopIndex()+"='"+txt+"',<"+tokenNames[t.getType()]+">"+channelStr+","+t.getLine()+":"+t.getCharPositionInLine()+"]";
+ }
+
+ public String getErrorHeader(RecognitionException e) {
+ return getSourceName()+"["+ e.line+","+e.charPositionInLine+"]";
+ }
+
+ private CommonTree buildTree(int type, String text, List<CommonTree> children) {
+ CommonTree root = new CommonTree(new CommonToken(type, text));
+ for (CommonTree child: children) {
+ root.addChild(child);
+ }
+ return root;
+ }
+
+ private CommonToken getParamListSubToken(CommonToken baseToken, String str, int typeStartIndex) {
+ CommonToken token = new CommonToken(baseToken);
+ token.setStartIndex(baseToken.getStartIndex() + typeStartIndex);
+
+ switch (str.charAt(typeStartIndex)) {
+ case 'Z':
+ case 'B':
+ case 'S':
+ case 'C':
+ case 'I':
+ case 'J':
+ case 'F':
+ case 'D':
+ {
+ token.setType(PRIMITIVE_TYPE);
+ token.setText(str.substring(typeStartIndex, typeStartIndex+1));
+ token.setStopIndex(baseToken.getStartIndex() + typeStartIndex);
+ break;
+ }
+ case 'L':
+ {
+ int i = typeStartIndex;
+ while (str.charAt(++i) != ';');
+
+ token.setType(CLASS_DESCRIPTOR);
+ token.setText(str.substring(typeStartIndex, i + 1));
+ token.setStopIndex(baseToken.getStartIndex() + i);
+ break;
+ }
+ case '[':
+ {
+ int i = typeStartIndex;
+ while (str.charAt(++i) == '[');
+
+ token.setType(ARRAY_TYPE_PREFIX);
+ token.setText(str.substring(typeStartIndex, i));
+ token.setStopIndex(baseToken.getStartIndex() + i - 1);
+ break;
+ }
+ default:
+ throw new RuntimeException(String.format("Invalid character '%c' in param list \"%s\" at position %d", str.charAt(typeStartIndex), str, typeStartIndex));
+ }
+
+ return token;
+ }
+
+ private CommonTree parseParamList(CommonToken paramListToken) {
+ String paramList = paramListToken.getText();
+ CommonTree root = new CommonTree();
+
+ int startIndex = paramListToken.getStartIndex();
+
+ int i=0;
+ while (i<paramList.length()) {
+ CommonToken token = getParamListSubToken(paramListToken, paramList, i);
+ root.addChild(new CommonTree(token));
+ i += token.getText().length();
+ }
+
+ if (root.getChildCount() == 0) {
+ return null;
+ }
+ return root;
+ }
+
+ private void throwOdexedInstructionException(IntStream input, String odexedInstruction)
+ throws OdexedInstructionException {
+ /*this has to be done in a separate method, otherwise java will complain about the
+ auto-generated code in the rule after the throw not being reachable*/
+ throw new OdexedInstructionException(input, odexedInstruction);
+ }
+
+
+ protected static class smali_file_scope {
+ boolean hasClassSpec;
+ boolean hasSuperSpec;
+ boolean hasSourceSpec;
+ List<CommonTree> classAnnotations;
+ }
+ protected Stack<smali_file_scope> smali_file_stack = new Stack<smali_file_scope>();
+
+ public static class smali_file_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "smali_file"
+ // smaliParser.g:415:1: smali_file : ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) ;
+ public final smaliParser.smali_file_return smali_file() throws RecognitionException {
+ smali_file_stack.push(new smali_file_scope());
+ smaliParser.smali_file_return retval = new smaliParser.smali_file_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token EOF8=null;
+ ParserRuleReturnScope class_spec1 =null;
+ ParserRuleReturnScope super_spec2 =null;
+ ParserRuleReturnScope implements_spec3 =null;
+ ParserRuleReturnScope source_spec4 =null;
+ ParserRuleReturnScope method5 =null;
+ ParserRuleReturnScope field6 =null;
+ ParserRuleReturnScope annotation7 =null;
+
+ CommonTree EOF8_tree=null;
+ RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
+ RewriteRuleSubtreeStream stream_class_spec=new RewriteRuleSubtreeStream(adaptor,"rule class_spec");
+ RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation");
+ RewriteRuleSubtreeStream stream_method=new RewriteRuleSubtreeStream(adaptor,"rule method");
+ RewriteRuleSubtreeStream stream_field=new RewriteRuleSubtreeStream(adaptor,"rule field");
+ RewriteRuleSubtreeStream stream_super_spec=new RewriteRuleSubtreeStream(adaptor,"rule super_spec");
+ RewriteRuleSubtreeStream stream_implements_spec=new RewriteRuleSubtreeStream(adaptor,"rule implements_spec");
+ RewriteRuleSubtreeStream stream_source_spec=new RewriteRuleSubtreeStream(adaptor,"rule source_spec");
+
+ smali_file_stack.peek().hasClassSpec = smali_file_stack.peek().hasSuperSpec = smali_file_stack.peek().hasSourceSpec = false;
+ smali_file_stack.peek().classAnnotations = new ArrayList<CommonTree>();
+
+ try {
+ // smaliParser.g:427:3: ( ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) ) )
+ // smaliParser.g:428:3: ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+ EOF
+ {
+ // smaliParser.g:428:3: ({...}? => class_spec |{...}? => super_spec | implements_spec |{...}? => source_spec | method | field | annotation )+
+ int cnt1=0;
+ loop1:
+ while (true) {
+ int alt1=8;
+ int LA1_0 = input.LA(1);
+ if ( (LA1_0==CLASS_DIRECTIVE) && ((!smali_file_stack.peek().hasClassSpec))) {
+ alt1=1;
+ }
+ else if ( (LA1_0==SUPER_DIRECTIVE) && ((!smali_file_stack.peek().hasSuperSpec))) {
+ alt1=2;
+ }
+ else if ( (LA1_0==IMPLEMENTS_DIRECTIVE) ) {
+ alt1=3;
+ }
+ else if ( (LA1_0==SOURCE_DIRECTIVE) && ((!smali_file_stack.peek().hasSourceSpec))) {
+ alt1=4;
+ }
+ else if ( (LA1_0==METHOD_DIRECTIVE) ) {
+ alt1=5;
+ }
+ else if ( (LA1_0==FIELD_DIRECTIVE) ) {
+ alt1=6;
+ }
+ else if ( (LA1_0==ANNOTATION_DIRECTIVE) ) {
+ alt1=7;
+ }
+
+ switch (alt1) {
+ case 1 :
+ // smaliParser.g:428:5: {...}? => class_spec
+ {
+ if ( !((!smali_file_stack.peek().hasClassSpec)) ) {
+ throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasClassSpec");
+ }
+ pushFollow(FOLLOW_class_spec_in_smali_file1075);
+ class_spec1=class_spec();
+ state._fsp--;
+
+ stream_class_spec.add(class_spec1.getTree());
+ smali_file_stack.peek().hasClassSpec = true;
+ }
+ break;
+ case 2 :
+ // smaliParser.g:429:5: {...}? => super_spec
+ {
+ if ( !((!smali_file_stack.peek().hasSuperSpec)) ) {
+ throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasSuperSpec");
+ }
+ pushFollow(FOLLOW_super_spec_in_smali_file1086);
+ super_spec2=super_spec();
+ state._fsp--;
+
+ stream_super_spec.add(super_spec2.getTree());
+ smali_file_stack.peek().hasSuperSpec = true;
+ }
+ break;
+ case 3 :
+ // smaliParser.g:430:5: implements_spec
+ {
+ pushFollow(FOLLOW_implements_spec_in_smali_file1094);
+ implements_spec3=implements_spec();
+ state._fsp--;
+
+ stream_implements_spec.add(implements_spec3.getTree());
+ }
+ break;
+ case 4 :
+ // smaliParser.g:431:5: {...}? => source_spec
+ {
+ if ( !((!smali_file_stack.peek().hasSourceSpec)) ) {
+ throw new FailedPredicateException(input, "smali_file", "!$smali_file::hasSourceSpec");
+ }
+ pushFollow(FOLLOW_source_spec_in_smali_file1103);
+ source_spec4=source_spec();
+ state._fsp--;
+
+ stream_source_spec.add(source_spec4.getTree());
+ smali_file_stack.peek().hasSourceSpec = true;
+ }
+ break;
+ case 5 :
+ // smaliParser.g:432:5: method
+ {
+ pushFollow(FOLLOW_method_in_smali_file1111);
+ method5=method();
+ state._fsp--;
+
+ stream_method.add(method5.getTree());
+ }
+ break;
+ case 6 :
+ // smaliParser.g:433:5: field
+ {
+ pushFollow(FOLLOW_field_in_smali_file1117);
+ field6=field();
+ state._fsp--;
+
+ stream_field.add(field6.getTree());
+ }
+ break;
+ case 7 :
+ // smaliParser.g:434:5: annotation
+ {
+ pushFollow(FOLLOW_annotation_in_smali_file1123);
+ annotation7=annotation();
+ state._fsp--;
+
+ stream_annotation.add(annotation7.getTree());
+ smali_file_stack.peek().classAnnotations.add((annotation7!=null?((CommonTree)annotation7.getTree()):null));
+ }
+ break;
+
+ default :
+ if ( cnt1 >= 1 ) break loop1;
+ EarlyExitException eee = new EarlyExitException(1, input);
+ throw eee;
+ }
+ cnt1++;
+ }
+
+ EOF8=(Token)match(input,EOF,FOLLOW_EOF_in_smali_file1134);
+ stream_EOF.add(EOF8);
+
+
+ if (!smali_file_stack.peek().hasClassSpec) {
+ throw new SemanticException(input, "The file must contain a .class directive");
+ }
+
+ if (!smali_file_stack.peek().hasSuperSpec) {
+ if (!(class_spec1!=null?((smaliParser.class_spec_return)class_spec1).className:null).equals("Ljava/lang/Object;")) {
+ throw new SemanticException(input, "The file must contain a .super directive");
+ }
+ }
+
+ // AST REWRITE
+ // elements: super_spec, method, field, implements_spec, class_spec, source_spec
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 448:3: -> ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) )
+ {
+ // smaliParser.g:448:6: ^( I_CLASS_DEF class_spec ( super_spec )? ( implements_spec )* ( source_spec )? ^( I_METHODS ( method )* ) ^( I_FIELDS ( field )* ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CLASS_DEF, "I_CLASS_DEF"), root_1);
+ adaptor.addChild(root_1, stream_class_spec.nextTree());
+ // smaliParser.g:450:8: ( super_spec )?
+ if ( stream_super_spec.hasNext() ) {
+ adaptor.addChild(root_1, stream_super_spec.nextTree());
+ }
+ stream_super_spec.reset();
+
+ // smaliParser.g:451:8: ( implements_spec )*
+ while ( stream_implements_spec.hasNext() ) {
+ adaptor.addChild(root_1, stream_implements_spec.nextTree());
+ }
+ stream_implements_spec.reset();
+
+ // smaliParser.g:452:8: ( source_spec )?
+ if ( stream_source_spec.hasNext() ) {
+ adaptor.addChild(root_1, stream_source_spec.nextTree());
+ }
+ stream_source_spec.reset();
+
+ // smaliParser.g:453:8: ^( I_METHODS ( method )* )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHODS, "I_METHODS"), root_2);
+ // smaliParser.g:453:20: ( method )*
+ while ( stream_method.hasNext() ) {
+ adaptor.addChild(root_2, stream_method.nextTree());
+ }
+ stream_method.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ // smaliParser.g:453:29: ^( I_FIELDS ( field )* )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELDS, "I_FIELDS"), root_2);
+ // smaliParser.g:453:40: ( field )*
+ while ( stream_field.hasNext() ) {
+ adaptor.addChild(root_2, stream_field.nextTree());
+ }
+ stream_field.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_1, buildTree(I_ANNOTATIONS, "I_ANNOTATIONS", smali_file_stack.peek().classAnnotations));
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ smali_file_stack.pop();
+ }
+ return retval;
+ }
+ // $ANTLR end "smali_file"
+
+
+ public static class class_spec_return extends ParserRuleReturnScope {
+ public String className;
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "class_spec"
+ // smaliParser.g:455:1: class_spec returns [String className] : CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR -> CLASS_DESCRIPTOR access_list ;
+ public final smaliParser.class_spec_return class_spec() throws RecognitionException {
+ smaliParser.class_spec_return retval = new smaliParser.class_spec_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token CLASS_DIRECTIVE9=null;
+ Token CLASS_DESCRIPTOR11=null;
+ ParserRuleReturnScope access_list10 =null;
+
+ CommonTree CLASS_DIRECTIVE9_tree=null;
+ CommonTree CLASS_DESCRIPTOR11_tree=null;
+ RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+ RewriteRuleTokenStream stream_CLASS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CLASS_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list");
+
+ try {
+ // smaliParser.g:456:3: ( CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR -> CLASS_DESCRIPTOR access_list )
+ // smaliParser.g:456:5: CLASS_DIRECTIVE access_list CLASS_DESCRIPTOR
+ {
+ CLASS_DIRECTIVE9=(Token)match(input,CLASS_DIRECTIVE,FOLLOW_CLASS_DIRECTIVE_in_class_spec1221);
+ stream_CLASS_DIRECTIVE.add(CLASS_DIRECTIVE9);
+
+ pushFollow(FOLLOW_access_list_in_class_spec1223);
+ access_list10=access_list();
+ state._fsp--;
+
+ stream_access_list.add(access_list10.getTree());
+ CLASS_DESCRIPTOR11=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_class_spec1225);
+ stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR11);
+
+ retval.className = (CLASS_DESCRIPTOR11!=null?CLASS_DESCRIPTOR11.getText():null);
+ // AST REWRITE
+ // elements: access_list, CLASS_DESCRIPTOR
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 456:89: -> CLASS_DESCRIPTOR access_list
+ {
+ adaptor.addChild(root_0, stream_CLASS_DESCRIPTOR.nextNode());
+ adaptor.addChild(root_0, stream_access_list.nextTree());
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "class_spec"
+
+
+ public static class super_spec_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "super_spec"
+ // smaliParser.g:458:1: super_spec : SUPER_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) ;
+ public final smaliParser.super_spec_return super_spec() throws RecognitionException {
+ smaliParser.super_spec_return retval = new smaliParser.super_spec_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token SUPER_DIRECTIVE12=null;
+ Token CLASS_DESCRIPTOR13=null;
+
+ CommonTree SUPER_DIRECTIVE12_tree=null;
+ CommonTree CLASS_DESCRIPTOR13_tree=null;
+ RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+ RewriteRuleTokenStream stream_SUPER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SUPER_DIRECTIVE");
+
+ try {
+ // smaliParser.g:459:3: ( SUPER_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR ) )
+ // smaliParser.g:459:5: SUPER_DIRECTIVE CLASS_DESCRIPTOR
+ {
+ SUPER_DIRECTIVE12=(Token)match(input,SUPER_DIRECTIVE,FOLLOW_SUPER_DIRECTIVE_in_super_spec1243);
+ stream_SUPER_DIRECTIVE.add(SUPER_DIRECTIVE12);
+
+ CLASS_DESCRIPTOR13=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_super_spec1245);
+ stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR13);
+
+ // AST REWRITE
+ // elements: CLASS_DESCRIPTOR
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 459:38: -> ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR )
+ {
+ // smaliParser.g:459:41: ^( I_SUPER[$start, \"I_SUPER\"] CLASS_DESCRIPTOR )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUPER, (retval.start), "I_SUPER"), root_1);
+ adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "super_spec"
+
+
+ public static class implements_spec_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "implements_spec"
+ // smaliParser.g:461:1: implements_spec : IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) ;
+ public final smaliParser.implements_spec_return implements_spec() throws RecognitionException {
+ smaliParser.implements_spec_return retval = new smaliParser.implements_spec_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token IMPLEMENTS_DIRECTIVE14=null;
+ Token CLASS_DESCRIPTOR15=null;
+
+ CommonTree IMPLEMENTS_DIRECTIVE14_tree=null;
+ CommonTree CLASS_DESCRIPTOR15_tree=null;
+ RewriteRuleTokenStream stream_IMPLEMENTS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token IMPLEMENTS_DIRECTIVE");
+ RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+
+ try {
+ // smaliParser.g:462:3: ( IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR ) )
+ // smaliParser.g:462:5: IMPLEMENTS_DIRECTIVE CLASS_DESCRIPTOR
+ {
+ IMPLEMENTS_DIRECTIVE14=(Token)match(input,IMPLEMENTS_DIRECTIVE,FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1264);
+ stream_IMPLEMENTS_DIRECTIVE.add(IMPLEMENTS_DIRECTIVE14);
+
+ CLASS_DESCRIPTOR15=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1266);
+ stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR15);
+
+ // AST REWRITE
+ // elements: CLASS_DESCRIPTOR
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 462:43: -> ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR )
+ {
+ // smaliParser.g:462:46: ^( I_IMPLEMENTS[$start, \"I_IMPLEMENTS\"] CLASS_DESCRIPTOR )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_IMPLEMENTS, (retval.start), "I_IMPLEMENTS"), root_1);
+ adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "implements_spec"
+
+
+ public static class source_spec_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "source_spec"
+ // smaliParser.g:464:1: source_spec : SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) ;
+ public final smaliParser.source_spec_return source_spec() throws RecognitionException {
+ smaliParser.source_spec_return retval = new smaliParser.source_spec_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token SOURCE_DIRECTIVE16=null;
+ Token STRING_LITERAL17=null;
+
+ CommonTree SOURCE_DIRECTIVE16_tree=null;
+ CommonTree STRING_LITERAL17_tree=null;
+ RewriteRuleTokenStream stream_SOURCE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SOURCE_DIRECTIVE");
+ RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+
+ try {
+ // smaliParser.g:465:3: ( SOURCE_DIRECTIVE STRING_LITERAL -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL ) )
+ // smaliParser.g:465:5: SOURCE_DIRECTIVE STRING_LITERAL
+ {
+ SOURCE_DIRECTIVE16=(Token)match(input,SOURCE_DIRECTIVE,FOLLOW_SOURCE_DIRECTIVE_in_source_spec1285);
+ stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE16);
+
+ STRING_LITERAL17=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_source_spec1287);
+ stream_STRING_LITERAL.add(STRING_LITERAL17);
+
+ // AST REWRITE
+ // elements: STRING_LITERAL
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 465:37: -> ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL )
+ {
+ // smaliParser.g:465:40: ^( I_SOURCE[$start, \"I_SOURCE\"] STRING_LITERAL )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SOURCE, (retval.start), "I_SOURCE"), root_1);
+ adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "source_spec"
+
+
+ public static class access_list_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "access_list"
+ // smaliParser.g:467:1: access_list : ( ACCESS_SPEC )* -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) ;
+ public final smaliParser.access_list_return access_list() throws RecognitionException {
+ smaliParser.access_list_return retval = new smaliParser.access_list_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token ACCESS_SPEC18=null;
+
+ CommonTree ACCESS_SPEC18_tree=null;
+ RewriteRuleTokenStream stream_ACCESS_SPEC=new RewriteRuleTokenStream(adaptor,"token ACCESS_SPEC");
+
+ try {
+ // smaliParser.g:468:3: ( ( ACCESS_SPEC )* -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* ) )
+ // smaliParser.g:468:5: ( ACCESS_SPEC )*
+ {
+ // smaliParser.g:468:5: ( ACCESS_SPEC )*
+ loop2:
+ while (true) {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+ if ( (LA2_0==ACCESS_SPEC) ) {
+ int LA2_2 = input.LA(2);
+ if ( (LA2_2==ACCESS_SPEC||LA2_2==ANNOTATION_VISIBILITY||LA2_2==BOOL_LITERAL||LA2_2==CLASS_DESCRIPTOR||LA2_2==DOUBLE_LITERAL_OR_ID||LA2_2==FLOAT_LITERAL_OR_ID||(LA2_2 >= INSTRUCTION_FORMAT10t && LA2_2 <= INSTRUCTION_FORMAT10x_ODEX)||LA2_2==INSTRUCTION_FORMAT11x||LA2_2==INSTRUCTION_FORMAT12x_OR_ID||(LA2_2 >= INSTRUCTION_FORMAT21c_FIELD && LA2_2 <= INSTRUCTION_FORMAT21c_TYPE)||LA2_2==INSTRUCTION_FORMAT21t||(LA2_2 >= INSTRUCTION_FORMAT22c_FIELD && LA2_2 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA2_2 >= INSTRUCTION_FORMAT22s_OR_ID && LA2_2 <= INSTRUCTION_FORMAT22t)||LA2_2==INSTRUCTION_FORMAT23x||(LA2_2 >= INSTRUCTION_FORMAT31i_OR_ID && LA2_2 <= INSTRUCTION_FORMAT31t)||(LA2_2 >= INSTRUCTION_FORMAT35c_METHOD && LA2_2 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA2_2 >= INSTRUCTION_FORMAT45cc_METHOD && LA2_2 <= INSTRUCTION_FORMAT51l)||LA2_2==MEMBER_NAME||(LA2_2 >= NEGATIVE_INTEGER_LITERAL && LA2_2 <= NULL_LITERAL)||(LA2_2 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA2_2 <= PRIMITIVE_TYPE)||LA2_2==REGISTER||LA2_2==SIMPLE_NAME||(LA2_2 >= VERIFICATION_ERROR_TYPE && LA2_2 <= VOID_TYPE)) ) {
+ alt2=1;
+ }
+
+ }
+
+ switch (alt2) {
+ case 1 :
+ // smaliParser.g:468:5: ACCESS_SPEC
+ {
+ ACCESS_SPEC18=(Token)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_list1306);
+ stream_ACCESS_SPEC.add(ACCESS_SPEC18);
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ }
+
+ // AST REWRITE
+ // elements: ACCESS_SPEC
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 468:18: -> ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* )
+ {
+ // smaliParser.g:468:21: ^( I_ACCESS_LIST[$start,\"I_ACCESS_LIST\"] ( ACCESS_SPEC )* )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ACCESS_LIST, (retval.start), "I_ACCESS_LIST"), root_1);
+ // smaliParser.g:468:61: ( ACCESS_SPEC )*
+ while ( stream_ACCESS_SPEC.hasNext() ) {
+ adaptor.addChild(root_1, stream_ACCESS_SPEC.nextNode());
+ }
+ stream_ACCESS_SPEC.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "access_list"
+
+
+ public static class field_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "field"
+ // smaliParser.g:475:1: field : FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) ;
+ public final smaliParser.field_return field() throws RecognitionException {
+ smaliParser.field_return retval = new smaliParser.field_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token FIELD_DIRECTIVE19=null;
+ Token COLON22=null;
+ Token EQUAL24=null;
+ Token END_FIELD_DIRECTIVE27=null;
+ ParserRuleReturnScope access_list20 =null;
+ ParserRuleReturnScope member_name21 =null;
+ ParserRuleReturnScope nonvoid_type_descriptor23 =null;
+ ParserRuleReturnScope literal25 =null;
+ ParserRuleReturnScope annotation26 =null;
+
+ CommonTree FIELD_DIRECTIVE19_tree=null;
+ CommonTree COLON22_tree=null;
+ CommonTree EQUAL24_tree=null;
+ CommonTree END_FIELD_DIRECTIVE27_tree=null;
+ RewriteRuleTokenStream stream_END_FIELD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_FIELD_DIRECTIVE");
+ RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
+ RewriteRuleTokenStream stream_FIELD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token FIELD_DIRECTIVE");
+ RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+ RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation");
+ RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+ RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+ RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal");
+
+ List<CommonTree> annotations = new ArrayList<CommonTree>();
+ try {
+ // smaliParser.g:477:3: ( FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) ) )
+ // smaliParser.g:477:5: FIELD_DIRECTIVE access_list member_name COLON nonvoid_type_descriptor ( EQUAL literal )? ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) )
+ {
+ FIELD_DIRECTIVE19=(Token)match(input,FIELD_DIRECTIVE,FOLLOW_FIELD_DIRECTIVE_in_field1337);
+ stream_FIELD_DIRECTIVE.add(FIELD_DIRECTIVE19);
+
+ pushFollow(FOLLOW_access_list_in_field1339);
+ access_list20=access_list();
+ state._fsp--;
+
+ stream_access_list.add(access_list20.getTree());
+ pushFollow(FOLLOW_member_name_in_field1341);
+ member_name21=member_name();
+ state._fsp--;
+
+ stream_member_name.add(member_name21.getTree());
+ COLON22=(Token)match(input,COLON,FOLLOW_COLON_in_field1343);
+ stream_COLON.add(COLON22);
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_field1345);
+ nonvoid_type_descriptor23=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor23.getTree());
+ // smaliParser.g:477:75: ( EQUAL literal )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+ if ( (LA3_0==EQUAL) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // smaliParser.g:477:76: EQUAL literal
+ {
+ EQUAL24=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_field1348);
+ stream_EQUAL.add(EQUAL24);
+
+ pushFollow(FOLLOW_literal_in_field1350);
+ literal25=literal();
+ state._fsp--;
+
+ stream_literal.add(literal25.getTree());
+ }
+ break;
+
+ }
+
+ // smaliParser.g:478:5: ( ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) ) )
+ // smaliParser.g:478:7: ({...}? annotation )* ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) )
+ {
+ // smaliParser.g:478:7: ({...}? annotation )*
+ loop4:
+ while (true) {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+ if ( (LA4_0==ANNOTATION_DIRECTIVE) ) {
+ int LA4_9 = input.LA(2);
+ if ( ((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {
+ alt4=1;
+ }
+
+ }
+
+ switch (alt4) {
+ case 1 :
+ // smaliParser.g:478:8: {...}? annotation
+ {
+ if ( !((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {
+ throw new FailedPredicateException(input, "field", "input.LA(1) == ANNOTATION_DIRECTIVE");
+ }
+ pushFollow(FOLLOW_annotation_in_field1363);
+ annotation26=annotation();
+ state._fsp--;
+
+ stream_annotation.add(annotation26.getTree());
+ annotations.add((annotation26!=null?((CommonTree)annotation26.getTree()):null));
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ }
+
+ // smaliParser.g:479:7: ( END_FIELD_DIRECTIVE -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) ) )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+ if ( (LA5_0==END_FIELD_DIRECTIVE) ) {
+ alt5=1;
+ }
+ else if ( (LA5_0==EOF||LA5_0==ANNOTATION_DIRECTIVE||LA5_0==CLASS_DIRECTIVE||LA5_0==FIELD_DIRECTIVE||LA5_0==IMPLEMENTS_DIRECTIVE||LA5_0==METHOD_DIRECTIVE||LA5_0==SOURCE_DIRECTIVE||LA5_0==SUPER_DIRECTIVE) ) {
+ alt5=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+ throw nvae;
+ }
+
+ switch (alt5) {
+ case 1 :
+ // smaliParser.g:479:9: END_FIELD_DIRECTIVE
+ {
+ END_FIELD_DIRECTIVE27=(Token)match(input,END_FIELD_DIRECTIVE,FOLLOW_END_FIELD_DIRECTIVE_in_field1377);
+ stream_END_FIELD_DIRECTIVE.add(END_FIELD_DIRECTIVE27);
+
+ // AST REWRITE
+ // elements: access_list, nonvoid_type_descriptor, annotation, member_name, literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 480:9: -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) )
+ {
+ // smaliParser.g:480:12: ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ( annotation )* ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD, (retval.start), "I_FIELD"), root_1);
+ adaptor.addChild(root_1, stream_member_name.nextTree());
+ adaptor.addChild(root_1, stream_access_list.nextTree());
+ // smaliParser.g:480:65: ^( I_FIELD_TYPE nonvoid_type_descriptor )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_TYPE, "I_FIELD_TYPE"), root_2);
+ adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree());
+ adaptor.addChild(root_1, root_2);
+ }
+
+ // smaliParser.g:480:105: ( ^( I_FIELD_INITIAL_VALUE literal ) )?
+ if ( stream_literal.hasNext() ) {
+ // smaliParser.g:480:105: ^( I_FIELD_INITIAL_VALUE literal )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_INITIAL_VALUE, "I_FIELD_INITIAL_VALUE"), root_2);
+ adaptor.addChild(root_2, stream_literal.nextTree());
+ adaptor.addChild(root_1, root_2);
+ }
+
+ }
+ stream_literal.reset();
+
+ // smaliParser.g:480:139: ^( I_ANNOTATIONS ( annotation )* )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2);
+ // smaliParser.g:480:155: ( annotation )*
+ while ( stream_annotation.hasNext() ) {
+ adaptor.addChild(root_2, stream_annotation.nextTree());
+ }
+ stream_annotation.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:481:21:
+ {
+ smali_file_stack.peek().classAnnotations.addAll(annotations);
+ // AST REWRITE
+ // elements: member_name, access_list, literal, nonvoid_type_descriptor
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 482:9: -> ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) )
+ {
+ // smaliParser.g:482:12: ^( I_FIELD[$start, \"I_FIELD\"] member_name access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) ( ^( I_FIELD_INITIAL_VALUE literal ) )? ^( I_ANNOTATIONS ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD, (retval.start), "I_FIELD"), root_1);
+ adaptor.addChild(root_1, stream_member_name.nextTree());
+ adaptor.addChild(root_1, stream_access_list.nextTree());
+ // smaliParser.g:482:65: ^( I_FIELD_TYPE nonvoid_type_descriptor )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_TYPE, "I_FIELD_TYPE"), root_2);
+ adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree());
+ adaptor.addChild(root_1, root_2);
+ }
+
+ // smaliParser.g:482:105: ( ^( I_FIELD_INITIAL_VALUE literal ) )?
+ if ( stream_literal.hasNext() ) {
+ // smaliParser.g:482:105: ^( I_FIELD_INITIAL_VALUE literal )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_FIELD_INITIAL_VALUE, "I_FIELD_INITIAL_VALUE"), root_2);
+ adaptor.addChild(root_2, stream_literal.nextTree());
+ adaptor.addChild(root_1, root_2);
+ }
+
+ }
+ stream_literal.reset();
+
+ // smaliParser.g:482:139: ^( I_ANNOTATIONS )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2);
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "field"
+
+
+ public static class method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "method"
+ // smaliParser.g:486:1: method : METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives ) ;
+ public final smaliParser.method_return method() throws RecognitionException {
+ smaliParser.method_return retval = new smaliParser.method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token METHOD_DIRECTIVE28=null;
+ Token END_METHOD_DIRECTIVE33=null;
+ ParserRuleReturnScope access_list29 =null;
+ ParserRuleReturnScope member_name30 =null;
+ ParserRuleReturnScope method_prototype31 =null;
+ ParserRuleReturnScope statements_and_directives32 =null;
+
+ CommonTree METHOD_DIRECTIVE28_tree=null;
+ CommonTree END_METHOD_DIRECTIVE33_tree=null;
+ RewriteRuleTokenStream stream_END_METHOD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_METHOD_DIRECTIVE");
+ RewriteRuleTokenStream stream_METHOD_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token METHOD_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
+ RewriteRuleSubtreeStream stream_access_list=new RewriteRuleSubtreeStream(adaptor,"rule access_list");
+ RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+ RewriteRuleSubtreeStream stream_statements_and_directives=new RewriteRuleSubtreeStream(adaptor,"rule statements_and_directives");
+
+ try {
+ // smaliParser.g:487:3: ( METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives ) )
+ // smaliParser.g:487:5: METHOD_DIRECTIVE access_list member_name method_prototype statements_and_directives END_METHOD_DIRECTIVE
+ {
+ METHOD_DIRECTIVE28=(Token)match(input,METHOD_DIRECTIVE,FOLLOW_METHOD_DIRECTIVE_in_method1488);
+ stream_METHOD_DIRECTIVE.add(METHOD_DIRECTIVE28);
+
+ pushFollow(FOLLOW_access_list_in_method1490);
+ access_list29=access_list();
+ state._fsp--;
+
+ stream_access_list.add(access_list29.getTree());
+ pushFollow(FOLLOW_member_name_in_method1492);
+ member_name30=member_name();
+ state._fsp--;
+
+ stream_member_name.add(member_name30.getTree());
+ pushFollow(FOLLOW_method_prototype_in_method1494);
+ method_prototype31=method_prototype();
+ state._fsp--;
+
+ stream_method_prototype.add(method_prototype31.getTree());
+ pushFollow(FOLLOW_statements_and_directives_in_method1496);
+ statements_and_directives32=statements_and_directives();
+ state._fsp--;
+
+ stream_statements_and_directives.add(statements_and_directives32.getTree());
+ END_METHOD_DIRECTIVE33=(Token)match(input,END_METHOD_DIRECTIVE,FOLLOW_END_METHOD_DIRECTIVE_in_method1502);
+ stream_END_METHOD_DIRECTIVE.add(END_METHOD_DIRECTIVE33);
+
+ // AST REWRITE
+ // elements: method_prototype, access_list, member_name, statements_and_directives
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 489:5: -> ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives )
+ {
+ // smaliParser.g:489:8: ^( I_METHOD[$start, \"I_METHOD\"] member_name method_prototype access_list statements_and_directives )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD, (retval.start), "I_METHOD"), root_1);
+ adaptor.addChild(root_1, stream_member_name.nextTree());
+ adaptor.addChild(root_1, stream_method_prototype.nextTree());
+ adaptor.addChild(root_1, stream_access_list.nextTree());
+ adaptor.addChild(root_1, stream_statements_and_directives.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "method"
+
+
+ protected static class statements_and_directives_scope {
+ boolean hasRegistersDirective;
+ List<CommonTree> methodAnnotations;
+ }
+ protected Stack<statements_and_directives_scope> statements_and_directives_stack = new Stack<statements_and_directives_scope>();
+
+ public static class statements_and_directives_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "statements_and_directives"
+ // smaliParser.g:491:1: statements_and_directives : ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )* -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) ;
+ public final smaliParser.statements_and_directives_return statements_and_directives() throws RecognitionException {
+ statements_and_directives_stack.push(new statements_and_directives_scope());
+ smaliParser.statements_and_directives_return retval = new smaliParser.statements_and_directives_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ ParserRuleReturnScope ordered_method_item34 =null;
+ ParserRuleReturnScope registers_directive35 =null;
+ ParserRuleReturnScope catch_directive36 =null;
+ ParserRuleReturnScope catchall_directive37 =null;
+ ParserRuleReturnScope parameter_directive38 =null;
+ ParserRuleReturnScope annotation39 =null;
+
+ RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation");
+ RewriteRuleSubtreeStream stream_catchall_directive=new RewriteRuleSubtreeStream(adaptor,"rule catchall_directive");
+ RewriteRuleSubtreeStream stream_registers_directive=new RewriteRuleSubtreeStream(adaptor,"rule registers_directive");
+ RewriteRuleSubtreeStream stream_catch_directive=new RewriteRuleSubtreeStream(adaptor,"rule catch_directive");
+ RewriteRuleSubtreeStream stream_ordered_method_item=new RewriteRuleSubtreeStream(adaptor,"rule ordered_method_item");
+ RewriteRuleSubtreeStream stream_parameter_directive=new RewriteRuleSubtreeStream(adaptor,"rule parameter_directive");
+
+ try {
+ // smaliParser.g:497:3: ( ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )* -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* ) )
+ // smaliParser.g:497:5: ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )*
+ {
+
+ statements_and_directives_stack.peek().hasRegistersDirective = false;
+ statements_and_directives_stack.peek().methodAnnotations = new ArrayList<CommonTree>();
+
+ // smaliParser.g:501:5: ( ordered_method_item | registers_directive | catch_directive | catchall_directive | parameter_directive | annotation )*
+ loop6:
+ while (true) {
+ int alt6=7;
+ switch ( input.LA(1) ) {
+ case ARRAY_DATA_DIRECTIVE:
+ case COLON:
+ case END_LOCAL_DIRECTIVE:
+ case EPILOGUE_DIRECTIVE:
+ case INSTRUCTION_FORMAT10t:
+ case INSTRUCTION_FORMAT10x:
+ case INSTRUCTION_FORMAT10x_ODEX:
+ case INSTRUCTION_FORMAT11n:
+ case INSTRUCTION_FORMAT11x:
+ case INSTRUCTION_FORMAT12x:
+ case INSTRUCTION_FORMAT12x_OR_ID:
+ case INSTRUCTION_FORMAT20bc:
+ case INSTRUCTION_FORMAT20t:
+ case INSTRUCTION_FORMAT21c_FIELD:
+ case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+ case INSTRUCTION_FORMAT21c_STRING:
+ case INSTRUCTION_FORMAT21c_TYPE:
+ case INSTRUCTION_FORMAT21ih:
+ case INSTRUCTION_FORMAT21lh:
+ case INSTRUCTION_FORMAT21s:
+ case INSTRUCTION_FORMAT21t:
+ case INSTRUCTION_FORMAT22b:
+ case INSTRUCTION_FORMAT22c_FIELD:
+ case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+ case INSTRUCTION_FORMAT22c_TYPE:
+ case INSTRUCTION_FORMAT22cs_FIELD:
+ case INSTRUCTION_FORMAT22s:
+ case INSTRUCTION_FORMAT22s_OR_ID:
+ case INSTRUCTION_FORMAT22t:
+ case INSTRUCTION_FORMAT22x:
+ case INSTRUCTION_FORMAT23x:
+ case INSTRUCTION_FORMAT30t:
+ case INSTRUCTION_FORMAT31c:
+ case INSTRUCTION_FORMAT31i:
+ case INSTRUCTION_FORMAT31i_OR_ID:
+ case INSTRUCTION_FORMAT31t:
+ case INSTRUCTION_FORMAT32x:
+ case INSTRUCTION_FORMAT35c_METHOD:
+ case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+ case INSTRUCTION_FORMAT35c_TYPE:
+ case INSTRUCTION_FORMAT35mi_METHOD:
+ case INSTRUCTION_FORMAT35ms_METHOD:
+ case INSTRUCTION_FORMAT3rc_METHOD:
+ case INSTRUCTION_FORMAT3rc_METHOD_ODEX:
+ case INSTRUCTION_FORMAT3rc_TYPE:
+ case INSTRUCTION_FORMAT3rmi_METHOD:
+ case INSTRUCTION_FORMAT3rms_METHOD:
+ case INSTRUCTION_FORMAT45cc_METHOD:
+ case INSTRUCTION_FORMAT4rcc_METHOD:
+ case INSTRUCTION_FORMAT51l:
+ case LINE_DIRECTIVE:
+ case LOCAL_DIRECTIVE:
+ case PACKED_SWITCH_DIRECTIVE:
+ case PROLOGUE_DIRECTIVE:
+ case RESTART_LOCAL_DIRECTIVE:
+ case SOURCE_DIRECTIVE:
+ case SPARSE_SWITCH_DIRECTIVE:
+ {
+ alt6=1;
+ }
+ break;
+ case LOCALS_DIRECTIVE:
+ case REGISTERS_DIRECTIVE:
+ {
+ alt6=2;
+ }
+ break;
+ case CATCH_DIRECTIVE:
+ {
+ alt6=3;
+ }
+ break;
+ case CATCHALL_DIRECTIVE:
+ {
+ alt6=4;
+ }
+ break;
+ case PARAMETER_DIRECTIVE:
+ {
+ alt6=5;
+ }
+ break;
+ case ANNOTATION_DIRECTIVE:
+ {
+ alt6=6;
+ }
+ break;
+ }
+ switch (alt6) {
+ case 1 :
+ // smaliParser.g:501:7: ordered_method_item
+ {
+ pushFollow(FOLLOW_ordered_method_item_in_statements_and_directives1547);
+ ordered_method_item34=ordered_method_item();
+ state._fsp--;
+
+ stream_ordered_method_item.add(ordered_method_item34.getTree());
+ }
+ break;
+ case 2 :
+ // smaliParser.g:502:7: registers_directive
+ {
+ pushFollow(FOLLOW_registers_directive_in_statements_and_directives1555);
+ registers_directive35=registers_directive();
+ state._fsp--;
+
+ stream_registers_directive.add(registers_directive35.getTree());
+ }
+ break;
+ case 3 :
+ // smaliParser.g:503:7: catch_directive
+ {
+ pushFollow(FOLLOW_catch_directive_in_statements_and_directives1563);
+ catch_directive36=catch_directive();
+ state._fsp--;
+
+ stream_catch_directive.add(catch_directive36.getTree());
+ }
+ break;
+ case 4 :
+ // smaliParser.g:504:7: catchall_directive
+ {
+ pushFollow(FOLLOW_catchall_directive_in_statements_and_directives1571);
+ catchall_directive37=catchall_directive();
+ state._fsp--;
+
+ stream_catchall_directive.add(catchall_directive37.getTree());
+ }
+ break;
+ case 5 :
+ // smaliParser.g:505:7: parameter_directive
+ {
+ pushFollow(FOLLOW_parameter_directive_in_statements_and_directives1579);
+ parameter_directive38=parameter_directive();
+ state._fsp--;
+
+ stream_parameter_directive.add(parameter_directive38.getTree());
+ }
+ break;
+ case 6 :
+ // smaliParser.g:506:7: annotation
+ {
+ pushFollow(FOLLOW_annotation_in_statements_and_directives1587);
+ annotation39=annotation();
+ state._fsp--;
+
+ stream_annotation.add(annotation39.getTree());
+ statements_and_directives_stack.peek().methodAnnotations.add((annotation39!=null?((CommonTree)annotation39.getTree()):null));
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ }
+
+ // AST REWRITE
+ // elements: ordered_method_item, catch_directive, catchall_directive, parameter_directive, registers_directive
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 508:5: -> ( registers_directive )? ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* ) ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ^( I_PARAMETERS ( parameter_directive )* )
+ {
+ // smaliParser.g:508:8: ( registers_directive )?
+ if ( stream_registers_directive.hasNext() ) {
+ adaptor.addChild(root_0, stream_registers_directive.nextTree());
+ }
+ stream_registers_directive.reset();
+
+ // smaliParser.g:509:8: ^( I_ORDERED_METHOD_ITEMS ( ordered_method_item )* )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ORDERED_METHOD_ITEMS, "I_ORDERED_METHOD_ITEMS"), root_1);
+ // smaliParser.g:509:33: ( ordered_method_item )*
+ while ( stream_ordered_method_item.hasNext() ) {
+ adaptor.addChild(root_1, stream_ordered_method_item.nextTree());
+ }
+ stream_ordered_method_item.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ // smaliParser.g:510:8: ^( I_CATCHES ( catch_directive )* ( catchall_directive )* )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCHES, "I_CATCHES"), root_1);
+ // smaliParser.g:510:20: ( catch_directive )*
+ while ( stream_catch_directive.hasNext() ) {
+ adaptor.addChild(root_1, stream_catch_directive.nextTree());
+ }
+ stream_catch_directive.reset();
+
+ // smaliParser.g:510:37: ( catchall_directive )*
+ while ( stream_catchall_directive.hasNext() ) {
+ adaptor.addChild(root_1, stream_catchall_directive.nextTree());
+ }
+ stream_catchall_directive.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ // smaliParser.g:511:8: ^( I_PARAMETERS ( parameter_directive )* )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETERS, "I_PARAMETERS"), root_1);
+ // smaliParser.g:511:23: ( parameter_directive )*
+ while ( stream_parameter_directive.hasNext() ) {
+ adaptor.addChild(root_1, stream_parameter_directive.nextTree());
+ }
+ stream_parameter_directive.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ adaptor.addChild(root_0, buildTree(I_ANNOTATIONS, "I_ANNOTATIONS", statements_and_directives_stack.peek().methodAnnotations));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ statements_and_directives_stack.pop();
+ }
+ return retval;
+ }
+ // $ANTLR end "statements_and_directives"
+
+
+ public static class ordered_method_item_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "ordered_method_item"
+ // smaliParser.g:515:1: ordered_method_item : ( label | instruction | debug_directive );
+ public final smaliParser.ordered_method_item_return ordered_method_item() throws RecognitionException {
+ smaliParser.ordered_method_item_return retval = new smaliParser.ordered_method_item_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ ParserRuleReturnScope label40 =null;
+ ParserRuleReturnScope instruction41 =null;
+ ParserRuleReturnScope debug_directive42 =null;
+
+
+ try {
+ // smaliParser.g:516:3: ( label | instruction | debug_directive )
+ int alt7=3;
+ switch ( input.LA(1) ) {
+ case COLON:
+ {
+ alt7=1;
+ }
+ break;
+ case ARRAY_DATA_DIRECTIVE:
+ case INSTRUCTION_FORMAT10t:
+ case INSTRUCTION_FORMAT10x:
+ case INSTRUCTION_FORMAT10x_ODEX:
+ case INSTRUCTION_FORMAT11n:
+ case INSTRUCTION_FORMAT11x:
+ case INSTRUCTION_FORMAT12x:
+ case INSTRUCTION_FORMAT12x_OR_ID:
+ case INSTRUCTION_FORMAT20bc:
+ case INSTRUCTION_FORMAT20t:
+ case INSTRUCTION_FORMAT21c_FIELD:
+ case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+ case INSTRUCTION_FORMAT21c_STRING:
+ case INSTRUCTION_FORMAT21c_TYPE:
+ case INSTRUCTION_FORMAT21ih:
+ case INSTRUCTION_FORMAT21lh:
+ case INSTRUCTION_FORMAT21s:
+ case INSTRUCTION_FORMAT21t:
+ case INSTRUCTION_FORMAT22b:
+ case INSTRUCTION_FORMAT22c_FIELD:
+ case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+ case INSTRUCTION_FORMAT22c_TYPE:
+ case INSTRUCTION_FORMAT22cs_FIELD:
+ case INSTRUCTION_FORMAT22s:
+ case INSTRUCTION_FORMAT22s_OR_ID:
+ case INSTRUCTION_FORMAT22t:
+ case INSTRUCTION_FORMAT22x:
+ case INSTRUCTION_FORMAT23x:
+ case INSTRUCTION_FORMAT30t:
+ case INSTRUCTION_FORMAT31c:
+ case INSTRUCTION_FORMAT31i:
+ case INSTRUCTION_FORMAT31i_OR_ID:
+ case INSTRUCTION_FORMAT31t:
+ case INSTRUCTION_FORMAT32x:
+ case INSTRUCTION_FORMAT35c_METHOD:
+ case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+ case INSTRUCTION_FORMAT35c_TYPE:
+ case INSTRUCTION_FORMAT35mi_METHOD:
+ case INSTRUCTION_FORMAT35ms_METHOD:
+ case INSTRUCTION_FORMAT3rc_METHOD:
+ case INSTRUCTION_FORMAT3rc_METHOD_ODEX:
+ case INSTRUCTION_FORMAT3rc_TYPE:
+ case INSTRUCTION_FORMAT3rmi_METHOD:
+ case INSTRUCTION_FORMAT3rms_METHOD:
+ case INSTRUCTION_FORMAT45cc_METHOD:
+ case INSTRUCTION_FORMAT4rcc_METHOD:
+ case INSTRUCTION_FORMAT51l:
+ case PACKED_SWITCH_DIRECTIVE:
+ case SPARSE_SWITCH_DIRECTIVE:
+ {
+ alt7=2;
+ }
+ break;
+ case END_LOCAL_DIRECTIVE:
+ case EPILOGUE_DIRECTIVE:
+ case LINE_DIRECTIVE:
+ case LOCAL_DIRECTIVE:
+ case PROLOGUE_DIRECTIVE:
+ case RESTART_LOCAL_DIRECTIVE:
+ case SOURCE_DIRECTIVE:
+ {
+ alt7=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 7, 0, input);
+ throw nvae;
+ }
+ switch (alt7) {
+ case 1 :
+ // smaliParser.g:516:5: label
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_label_in_ordered_method_item1672);
+ label40=label();
+ state._fsp--;
+
+ adaptor.addChild(root_0, label40.getTree());
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:517:5: instruction
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_instruction_in_ordered_method_item1678);
+ instruction41=instruction();
+ state._fsp--;
+
+ adaptor.addChild(root_0, instruction41.getTree());
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:518:5: debug_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_debug_directive_in_ordered_method_item1684);
+ debug_directive42=debug_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, debug_directive42.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "ordered_method_item"
+
+
+ public static class registers_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "registers_directive"
+ // smaliParser.g:520:1: registers_directive : (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) ) ;
+ public final smaliParser.registers_directive_return registers_directive() throws RecognitionException {
+ smaliParser.registers_directive_return retval = new smaliParser.registers_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token directive=null;
+ ParserRuleReturnScope regCount =null;
+ ParserRuleReturnScope regCount2 =null;
+
+ CommonTree directive_tree=null;
+ RewriteRuleTokenStream stream_LOCALS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LOCALS_DIRECTIVE");
+ RewriteRuleTokenStream stream_REGISTERS_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token REGISTERS_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+ try {
+ // smaliParser.g:521:3: ( (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) ) )
+ // smaliParser.g:521:5: (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) )
+ {
+ // smaliParser.g:521:5: (directive= REGISTERS_DIRECTIVE regCount= integral_literal -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount) |directive= LOCALS_DIRECTIVE regCount2= integral_literal -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2) )
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+ if ( (LA8_0==REGISTERS_DIRECTIVE) ) {
+ alt8=1;
+ }
+ else if ( (LA8_0==LOCALS_DIRECTIVE) ) {
+ alt8=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+ throw nvae;
+ }
+
+ switch (alt8) {
+ case 1 :
+ // smaliParser.g:522:7: directive= REGISTERS_DIRECTIVE regCount= integral_literal
+ {
+ directive=(Token)match(input,REGISTERS_DIRECTIVE,FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1704);
+ stream_REGISTERS_DIRECTIVE.add(directive);
+
+ pushFollow(FOLLOW_integral_literal_in_registers_directive1708);
+ regCount=integral_literal();
+ state._fsp--;
+
+ stream_integral_literal.add(regCount.getTree());
+ // AST REWRITE
+ // elements: regCount
+ // token labels:
+ // rule labels: regCount, retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_regCount=new RewriteRuleSubtreeStream(adaptor,"rule regCount",regCount!=null?regCount.getTree():null);
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 522:63: -> ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount)
+ {
+ // smaliParser.g:522:66: ^( I_REGISTERS[$REGISTERS_DIRECTIVE, \"I_REGISTERS\"] $regCount)
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTERS, directive, "I_REGISTERS"), root_1);
+ adaptor.addChild(root_1, stream_regCount.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:523:7: directive= LOCALS_DIRECTIVE regCount2= integral_literal
+ {
+ directive=(Token)match(input,LOCALS_DIRECTIVE,FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1728);
+ stream_LOCALS_DIRECTIVE.add(directive);
+
+ pushFollow(FOLLOW_integral_literal_in_registers_directive1732);
+ regCount2=integral_literal();
+ state._fsp--;
+
+ stream_integral_literal.add(regCount2.getTree());
+ // AST REWRITE
+ // elements: regCount2
+ // token labels:
+ // rule labels: regCount2, retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_regCount2=new RewriteRuleSubtreeStream(adaptor,"rule regCount2",regCount2!=null?regCount2.getTree():null);
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 523:61: -> ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2)
+ {
+ // smaliParser.g:523:64: ^( I_LOCALS[$LOCALS_DIRECTIVE, \"I_LOCALS\"] $regCount2)
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LOCALS, directive, "I_LOCALS"), root_1);
+ adaptor.addChild(root_1, stream_regCount2.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+
+
+ if (statements_and_directives_stack.peek().hasRegistersDirective) {
+ throw new SemanticException(input, directive, "There can only be a single .registers or .locals directive in a method");
+ }
+ statements_and_directives_stack.peek().hasRegistersDirective =true;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "registers_directive"
+
+
+ public static class param_list_or_id_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "param_list_or_id"
+ // smaliParser.g:532:1: param_list_or_id : ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE )+ ;
+ public final smaliParser.param_list_or_id_return param_list_or_id() throws RecognitionException {
+ smaliParser.param_list_or_id_return retval = new smaliParser.param_list_or_id_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token PARAM_LIST_OR_ID_PRIMITIVE_TYPE43=null;
+
+ CommonTree PARAM_LIST_OR_ID_PRIMITIVE_TYPE43_tree=null;
+
+ try {
+ // smaliParser.g:533:3: ( ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE )+ )
+ // smaliParser.g:533:5: ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE )+
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ // smaliParser.g:533:5: ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE )+
+ int cnt9=0;
+ loop9:
+ while (true) {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+ if ( (LA9_0==PARAM_LIST_OR_ID_PRIMITIVE_TYPE) ) {
+ alt9=1;
+ }
+
+ switch (alt9) {
+ case 1 :
+ // smaliParser.g:533:5: PARAM_LIST_OR_ID_PRIMITIVE_TYPE
+ {
+ PARAM_LIST_OR_ID_PRIMITIVE_TYPE43=(Token)match(input,PARAM_LIST_OR_ID_PRIMITIVE_TYPE,FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id1764);
+ PARAM_LIST_OR_ID_PRIMITIVE_TYPE43_tree = (CommonTree)adaptor.create(PARAM_LIST_OR_ID_PRIMITIVE_TYPE43);
+ adaptor.addChild(root_0, PARAM_LIST_OR_ID_PRIMITIVE_TYPE43_tree);
+
+ }
+ break;
+
+ default :
+ if ( cnt9 >= 1 ) break loop9;
+ EarlyExitException eee = new EarlyExitException(9, input);
+ throw eee;
+ }
+ cnt9++;
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "param_list_or_id"
+
+
+ public static class simple_name_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "simple_name"
+ // smaliParser.g:537:1: simple_name : ( SIMPLE_NAME | ACCESS_SPEC -> SIMPLE_NAME[$ACCESS_SPEC] | VERIFICATION_ERROR_TYPE -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE] | POSITIVE_INTEGER_LITERAL -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] | FLOAT_LITERAL_OR_ID -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] | DOUBLE_LITERAL_OR_ID -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] | BOOL_LITERAL -> SIMPLE_NAME[$BOOL_LITERAL] | NULL_LITERAL -> SIMPLE_NAME[$NULL_LITERAL] | REGISTER -> SIMPLE_NAME[$REGISTER] | param_list_or_id ->| PRIMITIVE_TYPE -> SIMPLE_NAME[$PRIMITIVE_TYPE] | VOID_TYPE -> SIMPLE_NAME[$VOID_TYPE] | ANNOTATION_VISIBILITY -> SIMPLE_NAME[$ANNOTATION_VISIBILITY] | INSTRUCTION_FORMAT10t -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t] | INSTRUCTION_FORMAT10x -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x] | INSTRUCTION_FORMAT10x_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX] | INSTRUCTION_FORMAT11x -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x] | INSTRUCTION_FORMAT12x_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID] | INSTRUCTION_FORMAT21c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD] | INSTRUCTION_FORMAT21c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX] | INSTRUCTION_FORMAT21c_STRING -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING] | INSTRUCTION_FORMAT21c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE] | INSTRUCTION_FORMAT21t -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t] | INSTRUCTION_FORMAT22c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD] | INSTRUCTION_FORMAT22c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX] | INSTRUCTION_FORMAT22c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE] | INSTRUCTION_FORMAT22cs_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD] | INSTRUCTION_FORMAT22s_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID] | INSTRUCTION_FORMAT22t -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t] | INSTRUCTION_FORMAT23x -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x] | INSTRUCTION_FORMAT31i_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID] | INSTRUCTION_FORMAT31t -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t] | INSTRUCTION_FORMAT35c_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD] | INSTRUCTION_FORMAT35c_METHOD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX] | INSTRUCTION_FORMAT35c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] | INSTRUCTION_FORMAT35mi_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD] | INSTRUCTION_FORMAT35ms_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] | INSTRUCTION_FORMAT45cc_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT45cc_METHOD] | INSTRUCTION_FORMAT4rcc_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT4rcc_METHOD] | INSTRUCTION_FORMAT51l -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] );
+ public final smaliParser.simple_name_return simple_name() throws RecognitionException {
+ smaliParser.simple_name_return retval = new smaliParser.simple_name_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token SIMPLE_NAME44=null;
+ Token ACCESS_SPEC45=null;
+ Token VERIFICATION_ERROR_TYPE46=null;
+ Token POSITIVE_INTEGER_LITERAL47=null;
+ Token NEGATIVE_INTEGER_LITERAL48=null;
+ Token FLOAT_LITERAL_OR_ID49=null;
+ Token DOUBLE_LITERAL_OR_ID50=null;
+ Token BOOL_LITERAL51=null;
+ Token NULL_LITERAL52=null;
+ Token REGISTER53=null;
+ Token PRIMITIVE_TYPE55=null;
+ Token VOID_TYPE56=null;
+ Token ANNOTATION_VISIBILITY57=null;
+ Token INSTRUCTION_FORMAT10t58=null;
+ Token INSTRUCTION_FORMAT10x59=null;
+ Token INSTRUCTION_FORMAT10x_ODEX60=null;
+ Token INSTRUCTION_FORMAT11x61=null;
+ Token INSTRUCTION_FORMAT12x_OR_ID62=null;
+ Token INSTRUCTION_FORMAT21c_FIELD63=null;
+ Token INSTRUCTION_FORMAT21c_FIELD_ODEX64=null;
+ Token INSTRUCTION_FORMAT21c_STRING65=null;
+ Token INSTRUCTION_FORMAT21c_TYPE66=null;
+ Token INSTRUCTION_FORMAT21t67=null;
+ Token INSTRUCTION_FORMAT22c_FIELD68=null;
+ Token INSTRUCTION_FORMAT22c_FIELD_ODEX69=null;
+ Token INSTRUCTION_FORMAT22c_TYPE70=null;
+ Token INSTRUCTION_FORMAT22cs_FIELD71=null;
+ Token INSTRUCTION_FORMAT22s_OR_ID72=null;
+ Token INSTRUCTION_FORMAT22t73=null;
+ Token INSTRUCTION_FORMAT23x74=null;
+ Token INSTRUCTION_FORMAT31i_OR_ID75=null;
+ Token INSTRUCTION_FORMAT31t76=null;
+ Token INSTRUCTION_FORMAT35c_METHOD77=null;
+ Token INSTRUCTION_FORMAT35c_METHOD_ODEX78=null;
+ Token INSTRUCTION_FORMAT35c_TYPE79=null;
+ Token INSTRUCTION_FORMAT35mi_METHOD80=null;
+ Token INSTRUCTION_FORMAT35ms_METHOD81=null;
+ Token INSTRUCTION_FORMAT45cc_METHOD82=null;
+ Token INSTRUCTION_FORMAT4rcc_METHOD83=null;
+ Token INSTRUCTION_FORMAT51l84=null;
+ ParserRuleReturnScope param_list_or_id54 =null;
+
+ CommonTree SIMPLE_NAME44_tree=null;
+ CommonTree ACCESS_SPEC45_tree=null;
+ CommonTree VERIFICATION_ERROR_TYPE46_tree=null;
+ CommonTree POSITIVE_INTEGER_LITERAL47_tree=null;
+ CommonTree NEGATIVE_INTEGER_LITERAL48_tree=null;
+ CommonTree FLOAT_LITERAL_OR_ID49_tree=null;
+ CommonTree DOUBLE_LITERAL_OR_ID50_tree=null;
+ CommonTree BOOL_LITERAL51_tree=null;
+ CommonTree NULL_LITERAL52_tree=null;
+ CommonTree REGISTER53_tree=null;
+ CommonTree PRIMITIVE_TYPE55_tree=null;
+ CommonTree VOID_TYPE56_tree=null;
+ CommonTree ANNOTATION_VISIBILITY57_tree=null;
+ CommonTree INSTRUCTION_FORMAT10t58_tree=null;
+ CommonTree INSTRUCTION_FORMAT10x59_tree=null;
+ CommonTree INSTRUCTION_FORMAT10x_ODEX60_tree=null;
+ CommonTree INSTRUCTION_FORMAT11x61_tree=null;
+ CommonTree INSTRUCTION_FORMAT12x_OR_ID62_tree=null;
+ CommonTree INSTRUCTION_FORMAT21c_FIELD63_tree=null;
+ CommonTree INSTRUCTION_FORMAT21c_FIELD_ODEX64_tree=null;
+ CommonTree INSTRUCTION_FORMAT21c_STRING65_tree=null;
+ CommonTree INSTRUCTION_FORMAT21c_TYPE66_tree=null;
+ CommonTree INSTRUCTION_FORMAT21t67_tree=null;
+ CommonTree INSTRUCTION_FORMAT22c_FIELD68_tree=null;
+ CommonTree INSTRUCTION_FORMAT22c_FIELD_ODEX69_tree=null;
+ CommonTree INSTRUCTION_FORMAT22c_TYPE70_tree=null;
+ CommonTree INSTRUCTION_FORMAT22cs_FIELD71_tree=null;
+ CommonTree INSTRUCTION_FORMAT22s_OR_ID72_tree=null;
+ CommonTree INSTRUCTION_FORMAT22t73_tree=null;
+ CommonTree INSTRUCTION_FORMAT23x74_tree=null;
+ CommonTree INSTRUCTION_FORMAT31i_OR_ID75_tree=null;
+ CommonTree INSTRUCTION_FORMAT31t76_tree=null;
+ CommonTree INSTRUCTION_FORMAT35c_METHOD77_tree=null;
+ CommonTree INSTRUCTION_FORMAT35c_METHOD_ODEX78_tree=null;
+ CommonTree INSTRUCTION_FORMAT35c_TYPE79_tree=null;
+ CommonTree INSTRUCTION_FORMAT35mi_METHOD80_tree=null;
+ CommonTree INSTRUCTION_FORMAT35ms_METHOD81_tree=null;
+ CommonTree INSTRUCTION_FORMAT45cc_METHOD82_tree=null;
+ CommonTree INSTRUCTION_FORMAT4rcc_METHOD83_tree=null;
+ CommonTree INSTRUCTION_FORMAT51l84_tree=null;
+ RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_VISIBILITY");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_TYPE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22t");
+ RewriteRuleTokenStream stream_VOID_TYPE=new RewriteRuleTokenStream(adaptor,"token VOID_TYPE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10t");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35mi_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35mi_METHOD");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22s_OR_ID");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22cs_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22cs_FIELD");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT12x_OR_ID");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35ms_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35ms_METHOD");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT45cc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT45cc_METHOD");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_TYPE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x");
+ RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token FLOAT_LITERAL_OR_ID");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_TYPE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_STRING");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD_ODEX");
+ RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD_ODEX");
+ RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token DOUBLE_LITERAL_OR_ID");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31i_OR_ID");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21t");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31t");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT23x");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT51l");
+ RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token POSITIVE_INTEGER_LITERAL");
+ RewriteRuleTokenStream stream_BOOL_LITERAL=new RewriteRuleTokenStream(adaptor,"token BOOL_LITERAL");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x_ODEX");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD");
+ RewriteRuleTokenStream stream_VERIFICATION_ERROR_TYPE=new RewriteRuleTokenStream(adaptor,"token VERIFICATION_ERROR_TYPE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11x");
+ RewriteRuleTokenStream stream_ACCESS_SPEC=new RewriteRuleTokenStream(adaptor,"token ACCESS_SPEC");
+ RewriteRuleTokenStream stream_NULL_LITERAL=new RewriteRuleTokenStream(adaptor,"token NULL_LITERAL");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT4rcc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT4rcc_METHOD");
+ RewriteRuleTokenStream stream_PRIMITIVE_TYPE=new RewriteRuleTokenStream(adaptor,"token PRIMITIVE_TYPE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD_ODEX");
+ RewriteRuleSubtreeStream stream_param_list_or_id=new RewriteRuleSubtreeStream(adaptor,"rule param_list_or_id");
+
+ try {
+ // smaliParser.g:538:3: ( SIMPLE_NAME | ACCESS_SPEC -> SIMPLE_NAME[$ACCESS_SPEC] | VERIFICATION_ERROR_TYPE -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE] | POSITIVE_INTEGER_LITERAL -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL] | FLOAT_LITERAL_OR_ID -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID] | DOUBLE_LITERAL_OR_ID -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID] | BOOL_LITERAL -> SIMPLE_NAME[$BOOL_LITERAL] | NULL_LITERAL -> SIMPLE_NAME[$NULL_LITERAL] | REGISTER -> SIMPLE_NAME[$REGISTER] | param_list_or_id ->| PRIMITIVE_TYPE -> SIMPLE_NAME[$PRIMITIVE_TYPE] | VOID_TYPE -> SIMPLE_NAME[$VOID_TYPE] | ANNOTATION_VISIBILITY -> SIMPLE_NAME[$ANNOTATION_VISIBILITY] | INSTRUCTION_FORMAT10t -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t] | INSTRUCTION_FORMAT10x -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x] | INSTRUCTION_FORMAT10x_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX] | INSTRUCTION_FORMAT11x -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x] | INSTRUCTION_FORMAT12x_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID] | INSTRUCTION_FORMAT21c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD] | INSTRUCTION_FORMAT21c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX] | INSTRUCTION_FORMAT21c_STRING -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING] | INSTRUCTION_FORMAT21c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE] | INSTRUCTION_FORMAT21t -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t] | INSTRUCTION_FORMAT22c_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD] | INSTRUCTION_FORMAT22c_FIELD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX] | INSTRUCTION_FORMAT22c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE] | INSTRUCTION_FORMAT22cs_FIELD -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD] | INSTRUCTION_FORMAT22s_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID] | INSTRUCTION_FORMAT22t -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t] | INSTRUCTION_FORMAT23x -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x] | INSTRUCTION_FORMAT31i_OR_ID -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID] | INSTRUCTION_FORMAT31t -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t] | INSTRUCTION_FORMAT35c_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD] | INSTRUCTION_FORMAT35c_METHOD_ODEX -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX] | INSTRUCTION_FORMAT35c_TYPE -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE] | INSTRUCTION_FORMAT35mi_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD] | INSTRUCTION_FORMAT35ms_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD] | INSTRUCTION_FORMAT45cc_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT45cc_METHOD] | INSTRUCTION_FORMAT4rcc_METHOD -> SIMPLE_NAME[$INSTRUCTION_FORMAT4rcc_METHOD] | INSTRUCTION_FORMAT51l -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l] )
+ int alt10=41;
+ switch ( input.LA(1) ) {
+ case SIMPLE_NAME:
+ {
+ alt10=1;
+ }
+ break;
+ case ACCESS_SPEC:
+ {
+ alt10=2;
+ }
+ break;
+ case VERIFICATION_ERROR_TYPE:
+ {
+ alt10=3;
+ }
+ break;
+ case POSITIVE_INTEGER_LITERAL:
+ {
+ alt10=4;
+ }
+ break;
+ case NEGATIVE_INTEGER_LITERAL:
+ {
+ alt10=5;
+ }
+ break;
+ case FLOAT_LITERAL_OR_ID:
+ {
+ alt10=6;
+ }
+ break;
+ case DOUBLE_LITERAL_OR_ID:
+ {
+ alt10=7;
+ }
+ break;
+ case BOOL_LITERAL:
+ {
+ alt10=8;
+ }
+ break;
+ case NULL_LITERAL:
+ {
+ alt10=9;
+ }
+ break;
+ case REGISTER:
+ {
+ alt10=10;
+ }
+ break;
+ case PARAM_LIST_OR_ID_PRIMITIVE_TYPE:
+ {
+ alt10=11;
+ }
+ break;
+ case PRIMITIVE_TYPE:
+ {
+ alt10=12;
+ }
+ break;
+ case VOID_TYPE:
+ {
+ alt10=13;
+ }
+ break;
+ case ANNOTATION_VISIBILITY:
+ {
+ alt10=14;
+ }
+ break;
+ case INSTRUCTION_FORMAT10t:
+ {
+ alt10=15;
+ }
+ break;
+ case INSTRUCTION_FORMAT10x:
+ {
+ alt10=16;
+ }
+ break;
+ case INSTRUCTION_FORMAT10x_ODEX:
+ {
+ alt10=17;
+ }
+ break;
+ case INSTRUCTION_FORMAT11x:
+ {
+ alt10=18;
+ }
+ break;
+ case INSTRUCTION_FORMAT12x_OR_ID:
+ {
+ alt10=19;
+ }
+ break;
+ case INSTRUCTION_FORMAT21c_FIELD:
+ {
+ alt10=20;
+ }
+ break;
+ case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+ {
+ alt10=21;
+ }
+ break;
+ case INSTRUCTION_FORMAT21c_STRING:
+ {
+ alt10=22;
+ }
+ break;
+ case INSTRUCTION_FORMAT21c_TYPE:
+ {
+ alt10=23;
+ }
+ break;
+ case INSTRUCTION_FORMAT21t:
+ {
+ alt10=24;
+ }
+ break;
+ case INSTRUCTION_FORMAT22c_FIELD:
+ {
+ alt10=25;
+ }
+ break;
+ case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+ {
+ alt10=26;
+ }
+ break;
+ case INSTRUCTION_FORMAT22c_TYPE:
+ {
+ alt10=27;
+ }
+ break;
+ case INSTRUCTION_FORMAT22cs_FIELD:
+ {
+ alt10=28;
+ }
+ break;
+ case INSTRUCTION_FORMAT22s_OR_ID:
+ {
+ alt10=29;
+ }
+ break;
+ case INSTRUCTION_FORMAT22t:
+ {
+ alt10=30;
+ }
+ break;
+ case INSTRUCTION_FORMAT23x:
+ {
+ alt10=31;
+ }
+ break;
+ case INSTRUCTION_FORMAT31i_OR_ID:
+ {
+ alt10=32;
+ }
+ break;
+ case INSTRUCTION_FORMAT31t:
+ {
+ alt10=33;
+ }
+ break;
+ case INSTRUCTION_FORMAT35c_METHOD:
+ {
+ alt10=34;
+ }
+ break;
+ case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+ {
+ alt10=35;
+ }
+ break;
+ case INSTRUCTION_FORMAT35c_TYPE:
+ {
+ alt10=36;
+ }
+ break;
+ case INSTRUCTION_FORMAT35mi_METHOD:
+ {
+ alt10=37;
+ }
+ break;
+ case INSTRUCTION_FORMAT35ms_METHOD:
+ {
+ alt10=38;
+ }
+ break;
+ case INSTRUCTION_FORMAT45cc_METHOD:
+ {
+ alt10=39;
+ }
+ break;
+ case INSTRUCTION_FORMAT4rcc_METHOD:
+ {
+ alt10=40;
+ }
+ break;
+ case INSTRUCTION_FORMAT51l:
+ {
+ alt10=41;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 10, 0, input);
+ throw nvae;
+ }
+ switch (alt10) {
+ case 1 :
+ // smaliParser.g:538:5: SIMPLE_NAME
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ SIMPLE_NAME44=(Token)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_simple_name1777);
+ SIMPLE_NAME44_tree = (CommonTree)adaptor.create(SIMPLE_NAME44);
+ adaptor.addChild(root_0, SIMPLE_NAME44_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:539:5: ACCESS_SPEC
+ {
+ ACCESS_SPEC45=(Token)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_simple_name1783);
+ stream_ACCESS_SPEC.add(ACCESS_SPEC45);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 539:17: -> SIMPLE_NAME[$ACCESS_SPEC]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, ACCESS_SPEC45));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:540:5: VERIFICATION_ERROR_TYPE
+ {
+ VERIFICATION_ERROR_TYPE46=(Token)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1794);
+ stream_VERIFICATION_ERROR_TYPE.add(VERIFICATION_ERROR_TYPE46);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 540:29: -> SIMPLE_NAME[$VERIFICATION_ERROR_TYPE]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, VERIFICATION_ERROR_TYPE46));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:541:5: POSITIVE_INTEGER_LITERAL
+ {
+ POSITIVE_INTEGER_LITERAL47=(Token)match(input,POSITIVE_INTEGER_LITERAL,FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1805);
+ stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL47);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 541:30: -> SIMPLE_NAME[$POSITIVE_INTEGER_LITERAL]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, POSITIVE_INTEGER_LITERAL47));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 5 :
+ // smaliParser.g:542:5: NEGATIVE_INTEGER_LITERAL
+ {
+ NEGATIVE_INTEGER_LITERAL48=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1816);
+ stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL48);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 542:30: -> SIMPLE_NAME[$NEGATIVE_INTEGER_LITERAL]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, NEGATIVE_INTEGER_LITERAL48));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 6 :
+ // smaliParser.g:543:5: FLOAT_LITERAL_OR_ID
+ {
+ FLOAT_LITERAL_OR_ID49=(Token)match(input,FLOAT_LITERAL_OR_ID,FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1827);
+ stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID49);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 543:25: -> SIMPLE_NAME[$FLOAT_LITERAL_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, FLOAT_LITERAL_OR_ID49));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 7 :
+ // smaliParser.g:544:5: DOUBLE_LITERAL_OR_ID
+ {
+ DOUBLE_LITERAL_OR_ID50=(Token)match(input,DOUBLE_LITERAL_OR_ID,FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1838);
+ stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID50);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 544:26: -> SIMPLE_NAME[$DOUBLE_LITERAL_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, DOUBLE_LITERAL_OR_ID50));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 8 :
+ // smaliParser.g:545:5: BOOL_LITERAL
+ {
+ BOOL_LITERAL51=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_simple_name1849);
+ stream_BOOL_LITERAL.add(BOOL_LITERAL51);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 545:18: -> SIMPLE_NAME[$BOOL_LITERAL]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, BOOL_LITERAL51));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 9 :
+ // smaliParser.g:546:5: NULL_LITERAL
+ {
+ NULL_LITERAL52=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_simple_name1860);
+ stream_NULL_LITERAL.add(NULL_LITERAL52);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 546:18: -> SIMPLE_NAME[$NULL_LITERAL]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, NULL_LITERAL52));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 10 :
+ // smaliParser.g:547:5: REGISTER
+ {
+ REGISTER53=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_simple_name1871);
+ stream_REGISTER.add(REGISTER53);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 547:14: -> SIMPLE_NAME[$REGISTER]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, REGISTER53));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 11 :
+ // smaliParser.g:548:5: param_list_or_id
+ {
+ pushFollow(FOLLOW_param_list_or_id_in_simple_name1882);
+ param_list_or_id54=param_list_or_id();
+ state._fsp--;
+
+ stream_param_list_or_id.add(param_list_or_id54.getTree());
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 548:22: ->
+ {
+ adaptor.addChild(root_0, adaptor.create(SIMPLE_NAME, (param_list_or_id54!=null?input.toString(param_list_or_id54.start,param_list_or_id54.stop):null)) );
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 12 :
+ // smaliParser.g:549:5: PRIMITIVE_TYPE
+ {
+ PRIMITIVE_TYPE55=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_simple_name1892);
+ stream_PRIMITIVE_TYPE.add(PRIMITIVE_TYPE55);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 549:20: -> SIMPLE_NAME[$PRIMITIVE_TYPE]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, PRIMITIVE_TYPE55));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 13 :
+ // smaliParser.g:550:5: VOID_TYPE
+ {
+ VOID_TYPE56=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_simple_name1903);
+ stream_VOID_TYPE.add(VOID_TYPE56);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 550:15: -> SIMPLE_NAME[$VOID_TYPE]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, VOID_TYPE56));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 14 :
+ // smaliParser.g:551:5: ANNOTATION_VISIBILITY
+ {
+ ANNOTATION_VISIBILITY57=(Token)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_simple_name1914);
+ stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY57);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 551:27: -> SIMPLE_NAME[$ANNOTATION_VISIBILITY]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, ANNOTATION_VISIBILITY57));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 15 :
+ // smaliParser.g:552:5: INSTRUCTION_FORMAT10t
+ {
+ INSTRUCTION_FORMAT10t58=(Token)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name1925);
+ stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t58);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 552:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10t]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10t58));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 16 :
+ // smaliParser.g:553:5: INSTRUCTION_FORMAT10x
+ {
+ INSTRUCTION_FORMAT10x59=(Token)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name1936);
+ stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x59);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 553:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10x59));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 17 :
+ // smaliParser.g:554:5: INSTRUCTION_FORMAT10x_ODEX
+ {
+ INSTRUCTION_FORMAT10x_ODEX60=(Token)match(input,INSTRUCTION_FORMAT10x_ODEX,FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name1947);
+ stream_INSTRUCTION_FORMAT10x_ODEX.add(INSTRUCTION_FORMAT10x_ODEX60);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 554:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT10x_ODEX]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT10x_ODEX60));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 18 :
+ // smaliParser.g:555:5: INSTRUCTION_FORMAT11x
+ {
+ INSTRUCTION_FORMAT11x61=(Token)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name1958);
+ stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x61);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 555:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT11x]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT11x61));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 19 :
+ // smaliParser.g:556:5: INSTRUCTION_FORMAT12x_OR_ID
+ {
+ INSTRUCTION_FORMAT12x_OR_ID62=(Token)match(input,INSTRUCTION_FORMAT12x_OR_ID,FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name1969);
+ stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID62);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 556:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT12x_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT12x_OR_ID62));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 20 :
+ // smaliParser.g:557:5: INSTRUCTION_FORMAT21c_FIELD
+ {
+ INSTRUCTION_FORMAT21c_FIELD63=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name1980);
+ stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD63);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 557:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_FIELD63));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 21 :
+ // smaliParser.g:558:5: INSTRUCTION_FORMAT21c_FIELD_ODEX
+ {
+ INSTRUCTION_FORMAT21c_FIELD_ODEX64=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name1991);
+ stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.add(INSTRUCTION_FORMAT21c_FIELD_ODEX64);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 558:38: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_FIELD_ODEX]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_FIELD_ODEX64));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 22 :
+ // smaliParser.g:559:5: INSTRUCTION_FORMAT21c_STRING
+ {
+ INSTRUCTION_FORMAT21c_STRING65=(Token)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2002);
+ stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING65);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 559:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_STRING]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_STRING65));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 23 :
+ // smaliParser.g:560:5: INSTRUCTION_FORMAT21c_TYPE
+ {
+ INSTRUCTION_FORMAT21c_TYPE66=(Token)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2013);
+ stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE66);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 560:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21c_TYPE]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21c_TYPE66));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 24 :
+ // smaliParser.g:561:5: INSTRUCTION_FORMAT21t
+ {
+ INSTRUCTION_FORMAT21t67=(Token)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2024);
+ stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t67);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 561:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT21t]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT21t67));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 25 :
+ // smaliParser.g:562:5: INSTRUCTION_FORMAT22c_FIELD
+ {
+ INSTRUCTION_FORMAT22c_FIELD68=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2035);
+ stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD68);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 562:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_FIELD68));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 26 :
+ // smaliParser.g:563:5: INSTRUCTION_FORMAT22c_FIELD_ODEX
+ {
+ INSTRUCTION_FORMAT22c_FIELD_ODEX69=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2046);
+ stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.add(INSTRUCTION_FORMAT22c_FIELD_ODEX69);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 563:38: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_FIELD_ODEX]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_FIELD_ODEX69));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 27 :
+ // smaliParser.g:564:5: INSTRUCTION_FORMAT22c_TYPE
+ {
+ INSTRUCTION_FORMAT22c_TYPE70=(Token)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2057);
+ stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE70);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 564:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22c_TYPE]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22c_TYPE70));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 28 :
+ // smaliParser.g:565:5: INSTRUCTION_FORMAT22cs_FIELD
+ {
+ INSTRUCTION_FORMAT22cs_FIELD71=(Token)match(input,INSTRUCTION_FORMAT22cs_FIELD,FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2068);
+ stream_INSTRUCTION_FORMAT22cs_FIELD.add(INSTRUCTION_FORMAT22cs_FIELD71);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 565:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22cs_FIELD]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22cs_FIELD71));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 29 :
+ // smaliParser.g:566:5: INSTRUCTION_FORMAT22s_OR_ID
+ {
+ INSTRUCTION_FORMAT22s_OR_ID72=(Token)match(input,INSTRUCTION_FORMAT22s_OR_ID,FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2079);
+ stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID72);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 566:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22s_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22s_OR_ID72));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 30 :
+ // smaliParser.g:567:5: INSTRUCTION_FORMAT22t
+ {
+ INSTRUCTION_FORMAT22t73=(Token)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2090);
+ stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t73);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 567:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT22t]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT22t73));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 31 :
+ // smaliParser.g:568:5: INSTRUCTION_FORMAT23x
+ {
+ INSTRUCTION_FORMAT23x74=(Token)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2101);
+ stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x74);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 568:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT23x]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT23x74));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 32 :
+ // smaliParser.g:569:5: INSTRUCTION_FORMAT31i_OR_ID
+ {
+ INSTRUCTION_FORMAT31i_OR_ID75=(Token)match(input,INSTRUCTION_FORMAT31i_OR_ID,FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2112);
+ stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID75);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 569:33: -> SIMPLE_NAME[$INSTRUCTION_FORMAT31i_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT31i_OR_ID75));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 33 :
+ // smaliParser.g:570:5: INSTRUCTION_FORMAT31t
+ {
+ INSTRUCTION_FORMAT31t76=(Token)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2123);
+ stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t76);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 570:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT31t]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT31t76));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 34 :
+ // smaliParser.g:571:5: INSTRUCTION_FORMAT35c_METHOD
+ {
+ INSTRUCTION_FORMAT35c_METHOD77=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2134);
+ stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD77);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 571:34: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_METHOD77));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 35 :
+ // smaliParser.g:572:5: INSTRUCTION_FORMAT35c_METHOD_ODEX
+ {
+ INSTRUCTION_FORMAT35c_METHOD_ODEX78=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2145);
+ stream_INSTRUCTION_FORMAT35c_METHOD_ODEX.add(INSTRUCTION_FORMAT35c_METHOD_ODEX78);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 572:39: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_METHOD_ODEX]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_METHOD_ODEX78));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 36 :
+ // smaliParser.g:573:5: INSTRUCTION_FORMAT35c_TYPE
+ {
+ INSTRUCTION_FORMAT35c_TYPE79=(Token)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2156);
+ stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE79);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 573:32: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35c_TYPE]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35c_TYPE79));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 37 :
+ // smaliParser.g:574:5: INSTRUCTION_FORMAT35mi_METHOD
+ {
+ INSTRUCTION_FORMAT35mi_METHOD80=(Token)match(input,INSTRUCTION_FORMAT35mi_METHOD,FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2167);
+ stream_INSTRUCTION_FORMAT35mi_METHOD.add(INSTRUCTION_FORMAT35mi_METHOD80);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 574:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35mi_METHOD]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35mi_METHOD80));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 38 :
+ // smaliParser.g:575:5: INSTRUCTION_FORMAT35ms_METHOD
+ {
+ INSTRUCTION_FORMAT35ms_METHOD81=(Token)match(input,INSTRUCTION_FORMAT35ms_METHOD,FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2178);
+ stream_INSTRUCTION_FORMAT35ms_METHOD.add(INSTRUCTION_FORMAT35ms_METHOD81);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 575:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT35ms_METHOD]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT35ms_METHOD81));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 39 :
+ // smaliParser.g:576:5: INSTRUCTION_FORMAT45cc_METHOD
+ {
+ INSTRUCTION_FORMAT45cc_METHOD82=(Token)match(input,INSTRUCTION_FORMAT45cc_METHOD,FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_simple_name2189);
+ stream_INSTRUCTION_FORMAT45cc_METHOD.add(INSTRUCTION_FORMAT45cc_METHOD82);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 576:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT45cc_METHOD]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT45cc_METHOD82));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 40 :
+ // smaliParser.g:577:5: INSTRUCTION_FORMAT4rcc_METHOD
+ {
+ INSTRUCTION_FORMAT4rcc_METHOD83=(Token)match(input,INSTRUCTION_FORMAT4rcc_METHOD,FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_simple_name2200);
+ stream_INSTRUCTION_FORMAT4rcc_METHOD.add(INSTRUCTION_FORMAT4rcc_METHOD83);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 577:35: -> SIMPLE_NAME[$INSTRUCTION_FORMAT4rcc_METHOD]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT4rcc_METHOD83));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 41 :
+ // smaliParser.g:578:5: INSTRUCTION_FORMAT51l
+ {
+ INSTRUCTION_FORMAT51l84=(Token)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2211);
+ stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l84);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 578:27: -> SIMPLE_NAME[$INSTRUCTION_FORMAT51l]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, INSTRUCTION_FORMAT51l84));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "simple_name"
+
+
+ public static class member_name_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "member_name"
+ // smaliParser.g:580:1: member_name : ( simple_name | MEMBER_NAME -> SIMPLE_NAME[$MEMBER_NAME] );
+ public final smaliParser.member_name_return member_name() throws RecognitionException {
+ smaliParser.member_name_return retval = new smaliParser.member_name_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token MEMBER_NAME86=null;
+ ParserRuleReturnScope simple_name85 =null;
+
+ CommonTree MEMBER_NAME86_tree=null;
+ RewriteRuleTokenStream stream_MEMBER_NAME=new RewriteRuleTokenStream(adaptor,"token MEMBER_NAME");
+
+ try {
+ // smaliParser.g:581:3: ( simple_name | MEMBER_NAME -> SIMPLE_NAME[$MEMBER_NAME] )
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+ if ( (LA11_0==ACCESS_SPEC||LA11_0==ANNOTATION_VISIBILITY||LA11_0==BOOL_LITERAL||LA11_0==DOUBLE_LITERAL_OR_ID||LA11_0==FLOAT_LITERAL_OR_ID||(LA11_0 >= INSTRUCTION_FORMAT10t && LA11_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA11_0==INSTRUCTION_FORMAT11x||LA11_0==INSTRUCTION_FORMAT12x_OR_ID||(LA11_0 >= INSTRUCTION_FORMAT21c_FIELD && LA11_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA11_0==INSTRUCTION_FORMAT21t||(LA11_0 >= INSTRUCTION_FORMAT22c_FIELD && LA11_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA11_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA11_0 <= INSTRUCTION_FORMAT22t)||LA11_0==INSTRUCTION_FORMAT23x||(LA11_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA11_0 <= INSTRUCTION_FORMAT31t)||(LA11_0 >= INSTRUCTION_FORMAT35c_METHOD && LA11_0 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA11_0 >= INSTRUCTION_FORMAT45cc_METHOD && LA11_0 <= INSTRUCTION_FORMAT51l)||(LA11_0 >= NEGATIVE_INTEGER_LITERAL && LA11_0 <= NULL_LITERAL)||(LA11_0 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA11_0 <= PRIMITIVE_TYPE)||LA11_0==REGISTER||LA11_0==SIMPLE_NAME||(LA11_0 >= VERIFICATION_ERROR_TYPE && LA11_0 <= VOID_TYPE)) ) {
+ alt11=1;
+ }
+ else if ( (LA11_0==MEMBER_NAME) ) {
+ alt11=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 11, 0, input);
+ throw nvae;
+ }
+
+ switch (alt11) {
+ case 1 :
+ // smaliParser.g:581:5: simple_name
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_simple_name_in_member_name2226);
+ simple_name85=simple_name();
+ state._fsp--;
+
+ adaptor.addChild(root_0, simple_name85.getTree());
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:582:5: MEMBER_NAME
+ {
+ MEMBER_NAME86=(Token)match(input,MEMBER_NAME,FOLLOW_MEMBER_NAME_in_member_name2232);
+ stream_MEMBER_NAME.add(MEMBER_NAME86);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 582:17: -> SIMPLE_NAME[$MEMBER_NAME]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(SIMPLE_NAME, MEMBER_NAME86));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "member_name"
+
+
+ public static class method_prototype_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "method_prototype"
+ // smaliParser.g:584:1: method_prototype : OPEN_PAREN param_list CLOSE_PAREN type_descriptor -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) ;
+ public final smaliParser.method_prototype_return method_prototype() throws RecognitionException {
+ smaliParser.method_prototype_return retval = new smaliParser.method_prototype_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token OPEN_PAREN87=null;
+ Token CLOSE_PAREN89=null;
+ ParserRuleReturnScope param_list88 =null;
+ ParserRuleReturnScope type_descriptor90 =null;
+
+ CommonTree OPEN_PAREN87_tree=null;
+ CommonTree CLOSE_PAREN89_tree=null;
+ RewriteRuleTokenStream stream_OPEN_PAREN=new RewriteRuleTokenStream(adaptor,"token OPEN_PAREN");
+ RewriteRuleTokenStream stream_CLOSE_PAREN=new RewriteRuleTokenStream(adaptor,"token CLOSE_PAREN");
+ RewriteRuleSubtreeStream stream_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule type_descriptor");
+ RewriteRuleSubtreeStream stream_param_list=new RewriteRuleSubtreeStream(adaptor,"rule param_list");
+
+ try {
+ // smaliParser.g:585:3: ( OPEN_PAREN param_list CLOSE_PAREN type_descriptor -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? ) )
+ // smaliParser.g:585:5: OPEN_PAREN param_list CLOSE_PAREN type_descriptor
+ {
+ OPEN_PAREN87=(Token)match(input,OPEN_PAREN,FOLLOW_OPEN_PAREN_in_method_prototype2247);
+ stream_OPEN_PAREN.add(OPEN_PAREN87);
+
+ pushFollow(FOLLOW_param_list_in_method_prototype2249);
+ param_list88=param_list();
+ state._fsp--;
+
+ stream_param_list.add(param_list88.getTree());
+ CLOSE_PAREN89=(Token)match(input,CLOSE_PAREN,FOLLOW_CLOSE_PAREN_in_method_prototype2251);
+ stream_CLOSE_PAREN.add(CLOSE_PAREN89);
+
+ pushFollow(FOLLOW_type_descriptor_in_method_prototype2253);
+ type_descriptor90=type_descriptor();
+ state._fsp--;
+
+ stream_type_descriptor.add(type_descriptor90.getTree());
+ // AST REWRITE
+ // elements: type_descriptor, param_list
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 586:5: -> ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? )
+ {
+ // smaliParser.g:586:8: ^( I_METHOD_PROTOTYPE[$start, \"I_METHOD_PROTOTYPE\"] ^( I_METHOD_RETURN_TYPE type_descriptor ) ( param_list )? )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD_PROTOTYPE, (retval.start), "I_METHOD_PROTOTYPE"), root_1);
+ // smaliParser.g:586:59: ^( I_METHOD_RETURN_TYPE type_descriptor )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_METHOD_RETURN_TYPE, "I_METHOD_RETURN_TYPE"), root_2);
+ adaptor.addChild(root_2, stream_type_descriptor.nextTree());
+ adaptor.addChild(root_1, root_2);
+ }
+
+ // smaliParser.g:586:99: ( param_list )?
+ if ( stream_param_list.hasNext() ) {
+ adaptor.addChild(root_1, stream_param_list.nextTree());
+ }
+ stream_param_list.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "method_prototype"
+
+
+ public static class param_list_or_id_primitive_type_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "param_list_or_id_primitive_type"
+ // smaliParser.g:588:1: param_list_or_id_primitive_type : PARAM_LIST_OR_ID_PRIMITIVE_TYPE -> PRIMITIVE_TYPE[$PARAM_LIST_OR_ID_PRIMITIVE_TYPE] ;
+ public final smaliParser.param_list_or_id_primitive_type_return param_list_or_id_primitive_type() throws RecognitionException {
+ smaliParser.param_list_or_id_primitive_type_return retval = new smaliParser.param_list_or_id_primitive_type_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token PARAM_LIST_OR_ID_PRIMITIVE_TYPE91=null;
+
+ CommonTree PARAM_LIST_OR_ID_PRIMITIVE_TYPE91_tree=null;
+ RewriteRuleTokenStream stream_PARAM_LIST_OR_ID_PRIMITIVE_TYPE=new RewriteRuleTokenStream(adaptor,"token PARAM_LIST_OR_ID_PRIMITIVE_TYPE");
+
+ try {
+ // smaliParser.g:589:3: ( PARAM_LIST_OR_ID_PRIMITIVE_TYPE -> PRIMITIVE_TYPE[$PARAM_LIST_OR_ID_PRIMITIVE_TYPE] )
+ // smaliParser.g:589:5: PARAM_LIST_OR_ID_PRIMITIVE_TYPE
+ {
+ PARAM_LIST_OR_ID_PRIMITIVE_TYPE91=(Token)match(input,PARAM_LIST_OR_ID_PRIMITIVE_TYPE,FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id_primitive_type2283);
+ stream_PARAM_LIST_OR_ID_PRIMITIVE_TYPE.add(PARAM_LIST_OR_ID_PRIMITIVE_TYPE91);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 589:37: -> PRIMITIVE_TYPE[$PARAM_LIST_OR_ID_PRIMITIVE_TYPE]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(PRIMITIVE_TYPE, PARAM_LIST_OR_ID_PRIMITIVE_TYPE91));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "param_list_or_id_primitive_type"
+
+
+ public static class param_list_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "param_list"
+ // smaliParser.g:591:1: param_list : ( ( param_list_or_id_primitive_type )+ | ( nonvoid_type_descriptor )* );
+ public final smaliParser.param_list_return param_list() throws RecognitionException {
+ smaliParser.param_list_return retval = new smaliParser.param_list_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ ParserRuleReturnScope param_list_or_id_primitive_type92 =null;
+ ParserRuleReturnScope nonvoid_type_descriptor93 =null;
+
+
+ try {
+ // smaliParser.g:592:3: ( ( param_list_or_id_primitive_type )+ | ( nonvoid_type_descriptor )* )
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+ if ( (LA14_0==PARAM_LIST_OR_ID_PRIMITIVE_TYPE) ) {
+ alt14=1;
+ }
+ else if ( (LA14_0==ARRAY_TYPE_PREFIX||LA14_0==CLASS_DESCRIPTOR||LA14_0==CLOSE_PAREN||LA14_0==PRIMITIVE_TYPE) ) {
+ alt14=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 14, 0, input);
+ throw nvae;
+ }
+
+ switch (alt14) {
+ case 1 :
+ // smaliParser.g:592:5: ( param_list_or_id_primitive_type )+
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ // smaliParser.g:592:5: ( param_list_or_id_primitive_type )+
+ int cnt12=0;
+ loop12:
+ while (true) {
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+ if ( (LA12_0==PARAM_LIST_OR_ID_PRIMITIVE_TYPE) ) {
+ alt12=1;
+ }
+
+ switch (alt12) {
+ case 1 :
+ // smaliParser.g:592:5: param_list_or_id_primitive_type
+ {
+ pushFollow(FOLLOW_param_list_or_id_primitive_type_in_param_list2298);
+ param_list_or_id_primitive_type92=param_list_or_id_primitive_type();
+ state._fsp--;
+
+ adaptor.addChild(root_0, param_list_or_id_primitive_type92.getTree());
+
+ }
+ break;
+
+ default :
+ if ( cnt12 >= 1 ) break loop12;
+ EarlyExitException eee = new EarlyExitException(12, input);
+ throw eee;
+ }
+ cnt12++;
+ }
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:593:5: ( nonvoid_type_descriptor )*
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ // smaliParser.g:593:5: ( nonvoid_type_descriptor )*
+ loop13:
+ while (true) {
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+ if ( (LA13_0==ARRAY_TYPE_PREFIX||LA13_0==CLASS_DESCRIPTOR||LA13_0==PRIMITIVE_TYPE) ) {
+ alt13=1;
+ }
+
+ switch (alt13) {
+ case 1 :
+ // smaliParser.g:593:5: nonvoid_type_descriptor
+ {
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_param_list2305);
+ nonvoid_type_descriptor93=nonvoid_type_descriptor();
+ state._fsp--;
+
+ adaptor.addChild(root_0, nonvoid_type_descriptor93.getTree());
+
+ }
+ break;
+
+ default :
+ break loop13;
+ }
+ }
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "param_list"
+
+
+ public static class array_descriptor_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "array_descriptor"
+ // smaliParser.g:595:1: array_descriptor : ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR ) ;
+ public final smaliParser.array_descriptor_return array_descriptor() throws RecognitionException {
+ smaliParser.array_descriptor_return retval = new smaliParser.array_descriptor_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token ARRAY_TYPE_PREFIX94=null;
+ Token set95=null;
+
+ CommonTree ARRAY_TYPE_PREFIX94_tree=null;
+ CommonTree set95_tree=null;
+
+ try {
+ // smaliParser.g:596:3: ( ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR ) )
+ // smaliParser.g:596:5: ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR )
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ ARRAY_TYPE_PREFIX94=(Token)match(input,ARRAY_TYPE_PREFIX,FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor2316);
+ ARRAY_TYPE_PREFIX94_tree = (CommonTree)adaptor.create(ARRAY_TYPE_PREFIX94);
+ adaptor.addChild(root_0, ARRAY_TYPE_PREFIX94_tree);
+
+ set95=input.LT(1);
+ if ( input.LA(1)==CLASS_DESCRIPTOR||input.LA(1)==PRIMITIVE_TYPE ) {
+ input.consume();
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(set95));
+ state.errorRecovery=false;
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ throw mse;
+ }
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "array_descriptor"
+
+
+ public static class type_descriptor_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "type_descriptor"
+ // smaliParser.g:598:1: type_descriptor : ( VOID_TYPE | PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor );
+ public final smaliParser.type_descriptor_return type_descriptor() throws RecognitionException {
+ smaliParser.type_descriptor_return retval = new smaliParser.type_descriptor_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token VOID_TYPE96=null;
+ Token PRIMITIVE_TYPE97=null;
+ Token CLASS_DESCRIPTOR98=null;
+ ParserRuleReturnScope array_descriptor99 =null;
+
+ CommonTree VOID_TYPE96_tree=null;
+ CommonTree PRIMITIVE_TYPE97_tree=null;
+ CommonTree CLASS_DESCRIPTOR98_tree=null;
+
+ try {
+ // smaliParser.g:599:3: ( VOID_TYPE | PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor )
+ int alt15=4;
+ switch ( input.LA(1) ) {
+ case VOID_TYPE:
+ {
+ alt15=1;
+ }
+ break;
+ case PRIMITIVE_TYPE:
+ {
+ alt15=2;
+ }
+ break;
+ case CLASS_DESCRIPTOR:
+ {
+ alt15=3;
+ }
+ break;
+ case ARRAY_TYPE_PREFIX:
+ {
+ alt15=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 15, 0, input);
+ throw nvae;
+ }
+ switch (alt15) {
+ case 1 :
+ // smaliParser.g:599:5: VOID_TYPE
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ VOID_TYPE96=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_descriptor2334);
+ VOID_TYPE96_tree = (CommonTree)adaptor.create(VOID_TYPE96);
+ adaptor.addChild(root_0, VOID_TYPE96_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:600:5: PRIMITIVE_TYPE
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ PRIMITIVE_TYPE97=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_type_descriptor2340);
+ PRIMITIVE_TYPE97_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE97);
+ adaptor.addChild(root_0, PRIMITIVE_TYPE97_tree);
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:601:5: CLASS_DESCRIPTOR
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ CLASS_DESCRIPTOR98=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_type_descriptor2346);
+ CLASS_DESCRIPTOR98_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR98);
+ adaptor.addChild(root_0, CLASS_DESCRIPTOR98_tree);
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:602:5: array_descriptor
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_array_descriptor_in_type_descriptor2352);
+ array_descriptor99=array_descriptor();
+ state._fsp--;
+
+ adaptor.addChild(root_0, array_descriptor99.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "type_descriptor"
+
+
+ public static class nonvoid_type_descriptor_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "nonvoid_type_descriptor"
+ // smaliParser.g:604:1: nonvoid_type_descriptor : ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor );
+ public final smaliParser.nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException {
+ smaliParser.nonvoid_type_descriptor_return retval = new smaliParser.nonvoid_type_descriptor_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token PRIMITIVE_TYPE100=null;
+ Token CLASS_DESCRIPTOR101=null;
+ ParserRuleReturnScope array_descriptor102 =null;
+
+ CommonTree PRIMITIVE_TYPE100_tree=null;
+ CommonTree CLASS_DESCRIPTOR101_tree=null;
+
+ try {
+ // smaliParser.g:605:3: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor )
+ int alt16=3;
+ switch ( input.LA(1) ) {
+ case PRIMITIVE_TYPE:
+ {
+ alt16=1;
+ }
+ break;
+ case CLASS_DESCRIPTOR:
+ {
+ alt16=2;
+ }
+ break;
+ case ARRAY_TYPE_PREFIX:
+ {
+ alt16=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 16, 0, input);
+ throw nvae;
+ }
+ switch (alt16) {
+ case 1 :
+ // smaliParser.g:605:5: PRIMITIVE_TYPE
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ PRIMITIVE_TYPE100=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor2362);
+ PRIMITIVE_TYPE100_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE100);
+ adaptor.addChild(root_0, PRIMITIVE_TYPE100_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:606:5: CLASS_DESCRIPTOR
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ CLASS_DESCRIPTOR101=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor2368);
+ CLASS_DESCRIPTOR101_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR101);
+ adaptor.addChild(root_0, CLASS_DESCRIPTOR101_tree);
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:607:5: array_descriptor
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_array_descriptor_in_nonvoid_type_descriptor2374);
+ array_descriptor102=array_descriptor();
+ state._fsp--;
+
+ adaptor.addChild(root_0, array_descriptor102.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "nonvoid_type_descriptor"
+
+
+ public static class reference_type_descriptor_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "reference_type_descriptor"
+ // smaliParser.g:609:1: reference_type_descriptor : ( CLASS_DESCRIPTOR | array_descriptor );
+ public final smaliParser.reference_type_descriptor_return reference_type_descriptor() throws RecognitionException {
+ smaliParser.reference_type_descriptor_return retval = new smaliParser.reference_type_descriptor_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token CLASS_DESCRIPTOR103=null;
+ ParserRuleReturnScope array_descriptor104 =null;
+
+ CommonTree CLASS_DESCRIPTOR103_tree=null;
+
+ try {
+ // smaliParser.g:610:3: ( CLASS_DESCRIPTOR | array_descriptor )
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+ if ( (LA17_0==CLASS_DESCRIPTOR) ) {
+ alt17=1;
+ }
+ else if ( (LA17_0==ARRAY_TYPE_PREFIX) ) {
+ alt17=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 0, input);
+ throw nvae;
+ }
+
+ switch (alt17) {
+ case 1 :
+ // smaliParser.g:610:5: CLASS_DESCRIPTOR
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ CLASS_DESCRIPTOR103=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor2384);
+ CLASS_DESCRIPTOR103_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR103);
+ adaptor.addChild(root_0, CLASS_DESCRIPTOR103_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:611:5: array_descriptor
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_array_descriptor_in_reference_type_descriptor2390);
+ array_descriptor104=array_descriptor();
+ state._fsp--;
+
+ adaptor.addChild(root_0, array_descriptor104.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "reference_type_descriptor"
+
+
+ public static class integer_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "integer_literal"
+ // smaliParser.g:613:1: integer_literal : ( POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] );
+ public final smaliParser.integer_literal_return integer_literal() throws RecognitionException {
+ smaliParser.integer_literal_return retval = new smaliParser.integer_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token POSITIVE_INTEGER_LITERAL105=null;
+ Token NEGATIVE_INTEGER_LITERAL106=null;
+
+ CommonTree POSITIVE_INTEGER_LITERAL105_tree=null;
+ CommonTree NEGATIVE_INTEGER_LITERAL106_tree=null;
+ RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token NEGATIVE_INTEGER_LITERAL");
+ RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL=new RewriteRuleTokenStream(adaptor,"token POSITIVE_INTEGER_LITERAL");
+
+ try {
+ // smaliParser.g:614:3: ( POSITIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL] | NEGATIVE_INTEGER_LITERAL -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL] )
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+ if ( (LA18_0==POSITIVE_INTEGER_LITERAL) ) {
+ alt18=1;
+ }
+ else if ( (LA18_0==NEGATIVE_INTEGER_LITERAL) ) {
+ alt18=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 18, 0, input);
+ throw nvae;
+ }
+
+ switch (alt18) {
+ case 1 :
+ // smaliParser.g:614:5: POSITIVE_INTEGER_LITERAL
+ {
+ POSITIVE_INTEGER_LITERAL105=(Token)match(input,POSITIVE_INTEGER_LITERAL,FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2400);
+ stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL105);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 614:30: -> INTEGER_LITERAL[$POSITIVE_INTEGER_LITERAL]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(INTEGER_LITERAL, POSITIVE_INTEGER_LITERAL105));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:615:5: NEGATIVE_INTEGER_LITERAL
+ {
+ NEGATIVE_INTEGER_LITERAL106=(Token)match(input,NEGATIVE_INTEGER_LITERAL,FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2411);
+ stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL106);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 615:30: -> INTEGER_LITERAL[$NEGATIVE_INTEGER_LITERAL]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(INTEGER_LITERAL, NEGATIVE_INTEGER_LITERAL106));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "integer_literal"
+
+
+ public static class float_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "float_literal"
+ // smaliParser.g:617:1: float_literal : ( FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] | FLOAT_LITERAL );
+ public final smaliParser.float_literal_return float_literal() throws RecognitionException {
+ smaliParser.float_literal_return retval = new smaliParser.float_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token FLOAT_LITERAL_OR_ID107=null;
+ Token FLOAT_LITERAL108=null;
+
+ CommonTree FLOAT_LITERAL_OR_ID107_tree=null;
+ CommonTree FLOAT_LITERAL108_tree=null;
+ RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token FLOAT_LITERAL_OR_ID");
+
+ try {
+ // smaliParser.g:618:3: ( FLOAT_LITERAL_OR_ID -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID] | FLOAT_LITERAL )
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+ if ( (LA19_0==FLOAT_LITERAL_OR_ID) ) {
+ alt19=1;
+ }
+ else if ( (LA19_0==FLOAT_LITERAL) ) {
+ alt19=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 19, 0, input);
+ throw nvae;
+ }
+
+ switch (alt19) {
+ case 1 :
+ // smaliParser.g:618:5: FLOAT_LITERAL_OR_ID
+ {
+ FLOAT_LITERAL_OR_ID107=(Token)match(input,FLOAT_LITERAL_OR_ID,FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2426);
+ stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID107);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 618:25: -> FLOAT_LITERAL[$FLOAT_LITERAL_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(FLOAT_LITERAL, FLOAT_LITERAL_OR_ID107));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:619:5: FLOAT_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ FLOAT_LITERAL108=(Token)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_float_literal2437);
+ FLOAT_LITERAL108_tree = (CommonTree)adaptor.create(FLOAT_LITERAL108);
+ adaptor.addChild(root_0, FLOAT_LITERAL108_tree);
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "float_literal"
+
+
+ public static class double_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "double_literal"
+ // smaliParser.g:621:1: double_literal : ( DOUBLE_LITERAL_OR_ID -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] | DOUBLE_LITERAL );
+ public final smaliParser.double_literal_return double_literal() throws RecognitionException {
+ smaliParser.double_literal_return retval = new smaliParser.double_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token DOUBLE_LITERAL_OR_ID109=null;
+ Token DOUBLE_LITERAL110=null;
+
+ CommonTree DOUBLE_LITERAL_OR_ID109_tree=null;
+ CommonTree DOUBLE_LITERAL110_tree=null;
+ RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID=new RewriteRuleTokenStream(adaptor,"token DOUBLE_LITERAL_OR_ID");
+
+ try {
+ // smaliParser.g:622:3: ( DOUBLE_LITERAL_OR_ID -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID] | DOUBLE_LITERAL )
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+ if ( (LA20_0==DOUBLE_LITERAL_OR_ID) ) {
+ alt20=1;
+ }
+ else if ( (LA20_0==DOUBLE_LITERAL) ) {
+ alt20=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 0, input);
+ throw nvae;
+ }
+
+ switch (alt20) {
+ case 1 :
+ // smaliParser.g:622:5: DOUBLE_LITERAL_OR_ID
+ {
+ DOUBLE_LITERAL_OR_ID109=(Token)match(input,DOUBLE_LITERAL_OR_ID,FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2447);
+ stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID109);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 622:26: -> DOUBLE_LITERAL[$DOUBLE_LITERAL_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(DOUBLE_LITERAL, DOUBLE_LITERAL_OR_ID109));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:623:5: DOUBLE_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ DOUBLE_LITERAL110=(Token)match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_double_literal2458);
+ DOUBLE_LITERAL110_tree = (CommonTree)adaptor.create(DOUBLE_LITERAL110);
+ adaptor.addChild(root_0, DOUBLE_LITERAL110_tree);
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "double_literal"
+
+
+ public static class literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "literal"
+ // smaliParser.g:625:1: literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | STRING_LITERAL | BOOL_LITERAL | NULL_LITERAL | array_literal | subannotation | type_field_method_literal | enum_literal );
+ public final smaliParser.literal_return literal() throws RecognitionException {
+ smaliParser.literal_return retval = new smaliParser.literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token LONG_LITERAL111=null;
+ Token SHORT_LITERAL113=null;
+ Token BYTE_LITERAL114=null;
+ Token CHAR_LITERAL117=null;
+ Token STRING_LITERAL118=null;
+ Token BOOL_LITERAL119=null;
+ Token NULL_LITERAL120=null;
+ ParserRuleReturnScope integer_literal112 =null;
+ ParserRuleReturnScope float_literal115 =null;
+ ParserRuleReturnScope double_literal116 =null;
+ ParserRuleReturnScope array_literal121 =null;
+ ParserRuleReturnScope subannotation122 =null;
+ ParserRuleReturnScope type_field_method_literal123 =null;
+ ParserRuleReturnScope enum_literal124 =null;
+
+ CommonTree LONG_LITERAL111_tree=null;
+ CommonTree SHORT_LITERAL113_tree=null;
+ CommonTree BYTE_LITERAL114_tree=null;
+ CommonTree CHAR_LITERAL117_tree=null;
+ CommonTree STRING_LITERAL118_tree=null;
+ CommonTree BOOL_LITERAL119_tree=null;
+ CommonTree NULL_LITERAL120_tree=null;
+
+ try {
+ // smaliParser.g:626:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | STRING_LITERAL | BOOL_LITERAL | NULL_LITERAL | array_literal | subannotation | type_field_method_literal | enum_literal )
+ int alt21=14;
+ switch ( input.LA(1) ) {
+ case LONG_LITERAL:
+ {
+ alt21=1;
+ }
+ break;
+ case POSITIVE_INTEGER_LITERAL:
+ {
+ int LA21_2 = input.LA(2);
+ if ( (LA21_2==EOF||(LA21_2 >= ACCESS_SPEC && LA21_2 <= ANNOTATION_VISIBILITY)||LA21_2==BOOL_LITERAL||(LA21_2 >= CLASS_DIRECTIVE && LA21_2 <= CLOSE_BRACE)||LA21_2==COMMA||(LA21_2 >= DOUBLE_LITERAL_OR_ID && LA21_2 <= END_ANNOTATION_DIRECTIVE)||LA21_2==END_FIELD_DIRECTIVE||LA21_2==END_SUBANNOTATION_DIRECTIVE||LA21_2==FIELD_DIRECTIVE||(LA21_2 >= FLOAT_LITERAL_OR_ID && LA21_2 <= IMPLEMENTS_DIRECTIVE)||(LA21_2 >= INSTRUCTION_FORMAT10t && LA21_2 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_2==INSTRUCTION_FORMAT11x||LA21_2==INSTRUCTION_FORMAT12x_OR_ID||(LA21_2 >= INSTRUCTION_FORMAT21c_FIELD && LA21_2 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_2==INSTRUCTION_FORMAT21t||(LA21_2 >= INSTRUCTION_FORMAT22c_FIELD && LA21_2 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_2 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_2 <= INSTRUCTION_FORMAT22t)||LA21_2==INSTRUCTION_FORMAT23x||(LA21_2 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_2 <= INSTRUCTION_FORMAT31t)||(LA21_2 >= INSTRUCTION_FORMAT35c_METHOD && LA21_2 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_2 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_2 <= INSTRUCTION_FORMAT51l)||(LA21_2 >= METHOD_DIRECTIVE && LA21_2 <= NULL_LITERAL)||(LA21_2 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_2 <= PRIMITIVE_TYPE)||LA21_2==REGISTER||(LA21_2 >= SIMPLE_NAME && LA21_2 <= SOURCE_DIRECTIVE)||(LA21_2 >= SUPER_DIRECTIVE && LA21_2 <= VOID_TYPE)) ) {
+ alt21=2;
+ }
+ else if ( (LA21_2==COLON||LA21_2==OPEN_PAREN) ) {
+ alt21=13;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 2, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case NEGATIVE_INTEGER_LITERAL:
+ {
+ int LA21_3 = input.LA(2);
+ if ( (LA21_3==EOF||(LA21_3 >= ACCESS_SPEC && LA21_3 <= ANNOTATION_VISIBILITY)||LA21_3==BOOL_LITERAL||(LA21_3 >= CLASS_DIRECTIVE && LA21_3 <= CLOSE_BRACE)||LA21_3==COMMA||(LA21_3 >= DOUBLE_LITERAL_OR_ID && LA21_3 <= END_ANNOTATION_DIRECTIVE)||LA21_3==END_FIELD_DIRECTIVE||LA21_3==END_SUBANNOTATION_DIRECTIVE||LA21_3==FIELD_DIRECTIVE||(LA21_3 >= FLOAT_LITERAL_OR_ID && LA21_3 <= IMPLEMENTS_DIRECTIVE)||(LA21_3 >= INSTRUCTION_FORMAT10t && LA21_3 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_3==INSTRUCTION_FORMAT11x||LA21_3==INSTRUCTION_FORMAT12x_OR_ID||(LA21_3 >= INSTRUCTION_FORMAT21c_FIELD && LA21_3 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_3==INSTRUCTION_FORMAT21t||(LA21_3 >= INSTRUCTION_FORMAT22c_FIELD && LA21_3 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_3 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_3 <= INSTRUCTION_FORMAT22t)||LA21_3==INSTRUCTION_FORMAT23x||(LA21_3 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_3 <= INSTRUCTION_FORMAT31t)||(LA21_3 >= INSTRUCTION_FORMAT35c_METHOD && LA21_3 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_3 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_3 <= INSTRUCTION_FORMAT51l)||(LA21_3 >= METHOD_DIRECTIVE && LA21_3 <= NULL_LITERAL)||(LA21_3 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_3 <= PRIMITIVE_TYPE)||LA21_3==REGISTER||(LA21_3 >= SIMPLE_NAME && LA21_3 <= SOURCE_DIRECTIVE)||(LA21_3 >= SUPER_DIRECTIVE && LA21_3 <= VOID_TYPE)) ) {
+ alt21=2;
+ }
+ else if ( (LA21_3==COLON||LA21_3==OPEN_PAREN) ) {
+ alt21=13;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt21=3;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt21=4;
+ }
+ break;
+ case FLOAT_LITERAL_OR_ID:
+ {
+ int LA21_6 = input.LA(2);
+ if ( (LA21_6==EOF||(LA21_6 >= ACCESS_SPEC && LA21_6 <= ANNOTATION_VISIBILITY)||LA21_6==BOOL_LITERAL||(LA21_6 >= CLASS_DIRECTIVE && LA21_6 <= CLOSE_BRACE)||LA21_6==COMMA||(LA21_6 >= DOUBLE_LITERAL_OR_ID && LA21_6 <= END_ANNOTATION_DIRECTIVE)||LA21_6==END_FIELD_DIRECTIVE||LA21_6==END_SUBANNOTATION_DIRECTIVE||LA21_6==FIELD_DIRECTIVE||(LA21_6 >= FLOAT_LITERAL_OR_ID && LA21_6 <= IMPLEMENTS_DIRECTIVE)||(LA21_6 >= INSTRUCTION_FORMAT10t && LA21_6 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_6==INSTRUCTION_FORMAT11x||LA21_6==INSTRUCTION_FORMAT12x_OR_ID||(LA21_6 >= INSTRUCTION_FORMAT21c_FIELD && LA21_6 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_6==INSTRUCTION_FORMAT21t||(LA21_6 >= INSTRUCTION_FORMAT22c_FIELD && LA21_6 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_6 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_6 <= INSTRUCTION_FORMAT22t)||LA21_6==INSTRUCTION_FORMAT23x||(LA21_6 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_6 <= INSTRUCTION_FORMAT31t)||(LA21_6 >= INSTRUCTION_FORMAT35c_METHOD && LA21_6 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_6 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_6 <= INSTRUCTION_FORMAT51l)||(LA21_6 >= METHOD_DIRECTIVE && LA21_6 <= NULL_LITERAL)||(LA21_6 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_6 <= PRIMITIVE_TYPE)||LA21_6==REGISTER||(LA21_6 >= SIMPLE_NAME && LA21_6 <= SOURCE_DIRECTIVE)||(LA21_6 >= SUPER_DIRECTIVE && LA21_6 <= VOID_TYPE)) ) {
+ alt21=5;
+ }
+ else if ( (LA21_6==COLON||LA21_6==OPEN_PAREN) ) {
+ alt21=13;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 6, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case FLOAT_LITERAL:
+ {
+ alt21=5;
+ }
+ break;
+ case DOUBLE_LITERAL_OR_ID:
+ {
+ int LA21_8 = input.LA(2);
+ if ( (LA21_8==EOF||(LA21_8 >= ACCESS_SPEC && LA21_8 <= ANNOTATION_VISIBILITY)||LA21_8==BOOL_LITERAL||(LA21_8 >= CLASS_DIRECTIVE && LA21_8 <= CLOSE_BRACE)||LA21_8==COMMA||(LA21_8 >= DOUBLE_LITERAL_OR_ID && LA21_8 <= END_ANNOTATION_DIRECTIVE)||LA21_8==END_FIELD_DIRECTIVE||LA21_8==END_SUBANNOTATION_DIRECTIVE||LA21_8==FIELD_DIRECTIVE||(LA21_8 >= FLOAT_LITERAL_OR_ID && LA21_8 <= IMPLEMENTS_DIRECTIVE)||(LA21_8 >= INSTRUCTION_FORMAT10t && LA21_8 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_8==INSTRUCTION_FORMAT11x||LA21_8==INSTRUCTION_FORMAT12x_OR_ID||(LA21_8 >= INSTRUCTION_FORMAT21c_FIELD && LA21_8 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_8==INSTRUCTION_FORMAT21t||(LA21_8 >= INSTRUCTION_FORMAT22c_FIELD && LA21_8 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_8 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_8 <= INSTRUCTION_FORMAT22t)||LA21_8==INSTRUCTION_FORMAT23x||(LA21_8 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_8 <= INSTRUCTION_FORMAT31t)||(LA21_8 >= INSTRUCTION_FORMAT35c_METHOD && LA21_8 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_8 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_8 <= INSTRUCTION_FORMAT51l)||(LA21_8 >= METHOD_DIRECTIVE && LA21_8 <= NULL_LITERAL)||(LA21_8 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_8 <= PRIMITIVE_TYPE)||LA21_8==REGISTER||(LA21_8 >= SIMPLE_NAME && LA21_8 <= SOURCE_DIRECTIVE)||(LA21_8 >= SUPER_DIRECTIVE && LA21_8 <= VOID_TYPE)) ) {
+ alt21=6;
+ }
+ else if ( (LA21_8==COLON||LA21_8==OPEN_PAREN) ) {
+ alt21=13;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 8, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case DOUBLE_LITERAL:
+ {
+ alt21=6;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt21=7;
+ }
+ break;
+ case STRING_LITERAL:
+ {
+ alt21=8;
+ }
+ break;
+ case BOOL_LITERAL:
+ {
+ int LA21_12 = input.LA(2);
+ if ( (LA21_12==EOF||(LA21_12 >= ACCESS_SPEC && LA21_12 <= ANNOTATION_VISIBILITY)||LA21_12==BOOL_LITERAL||(LA21_12 >= CLASS_DIRECTIVE && LA21_12 <= CLOSE_BRACE)||LA21_12==COMMA||(LA21_12 >= DOUBLE_LITERAL_OR_ID && LA21_12 <= END_ANNOTATION_DIRECTIVE)||LA21_12==END_FIELD_DIRECTIVE||LA21_12==END_SUBANNOTATION_DIRECTIVE||LA21_12==FIELD_DIRECTIVE||(LA21_12 >= FLOAT_LITERAL_OR_ID && LA21_12 <= IMPLEMENTS_DIRECTIVE)||(LA21_12 >= INSTRUCTION_FORMAT10t && LA21_12 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_12==INSTRUCTION_FORMAT11x||LA21_12==INSTRUCTION_FORMAT12x_OR_ID||(LA21_12 >= INSTRUCTION_FORMAT21c_FIELD && LA21_12 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_12==INSTRUCTION_FORMAT21t||(LA21_12 >= INSTRUCTION_FORMAT22c_FIELD && LA21_12 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_12 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_12 <= INSTRUCTION_FORMAT22t)||LA21_12==INSTRUCTION_FORMAT23x||(LA21_12 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_12 <= INSTRUCTION_FORMAT31t)||(LA21_12 >= INSTRUCTION_FORMAT35c_METHOD && LA21_12 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_12 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_12 <= INSTRUCTION_FORMAT51l)||(LA21_12 >= METHOD_DIRECTIVE && LA21_12 <= NULL_LITERAL)||(LA21_12 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_12 <= PRIMITIVE_TYPE)||LA21_12==REGISTER||(LA21_12 >= SIMPLE_NAME && LA21_12 <= SOURCE_DIRECTIVE)||(LA21_12 >= SUPER_DIRECTIVE && LA21_12 <= VOID_TYPE)) ) {
+ alt21=9;
+ }
+ else if ( (LA21_12==COLON||LA21_12==OPEN_PAREN) ) {
+ alt21=13;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 12, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case NULL_LITERAL:
+ {
+ int LA21_13 = input.LA(2);
+ if ( (LA21_13==EOF||(LA21_13 >= ACCESS_SPEC && LA21_13 <= ANNOTATION_VISIBILITY)||LA21_13==BOOL_LITERAL||(LA21_13 >= CLASS_DIRECTIVE && LA21_13 <= CLOSE_BRACE)||LA21_13==COMMA||(LA21_13 >= DOUBLE_LITERAL_OR_ID && LA21_13 <= END_ANNOTATION_DIRECTIVE)||LA21_13==END_FIELD_DIRECTIVE||LA21_13==END_SUBANNOTATION_DIRECTIVE||LA21_13==FIELD_DIRECTIVE||(LA21_13 >= FLOAT_LITERAL_OR_ID && LA21_13 <= IMPLEMENTS_DIRECTIVE)||(LA21_13 >= INSTRUCTION_FORMAT10t && LA21_13 <= INSTRUCTION_FORMAT10x_ODEX)||LA21_13==INSTRUCTION_FORMAT11x||LA21_13==INSTRUCTION_FORMAT12x_OR_ID||(LA21_13 >= INSTRUCTION_FORMAT21c_FIELD && LA21_13 <= INSTRUCTION_FORMAT21c_TYPE)||LA21_13==INSTRUCTION_FORMAT21t||(LA21_13 >= INSTRUCTION_FORMAT22c_FIELD && LA21_13 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA21_13 >= INSTRUCTION_FORMAT22s_OR_ID && LA21_13 <= INSTRUCTION_FORMAT22t)||LA21_13==INSTRUCTION_FORMAT23x||(LA21_13 >= INSTRUCTION_FORMAT31i_OR_ID && LA21_13 <= INSTRUCTION_FORMAT31t)||(LA21_13 >= INSTRUCTION_FORMAT35c_METHOD && LA21_13 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA21_13 >= INSTRUCTION_FORMAT45cc_METHOD && LA21_13 <= INSTRUCTION_FORMAT51l)||(LA21_13 >= METHOD_DIRECTIVE && LA21_13 <= NULL_LITERAL)||(LA21_13 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA21_13 <= PRIMITIVE_TYPE)||LA21_13==REGISTER||(LA21_13 >= SIMPLE_NAME && LA21_13 <= SOURCE_DIRECTIVE)||(LA21_13 >= SUPER_DIRECTIVE && LA21_13 <= VOID_TYPE)) ) {
+ alt21=10;
+ }
+ else if ( (LA21_13==COLON||LA21_13==OPEN_PAREN) ) {
+ alt21=13;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 13, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case OPEN_BRACE:
+ {
+ alt21=11;
+ }
+ break;
+ case SUBANNOTATION_DIRECTIVE:
+ {
+ alt21=12;
+ }
+ break;
+ case ACCESS_SPEC:
+ case ANNOTATION_VISIBILITY:
+ case ARRAY_TYPE_PREFIX:
+ case CLASS_DESCRIPTOR:
+ case INSTRUCTION_FORMAT10t:
+ case INSTRUCTION_FORMAT10x:
+ case INSTRUCTION_FORMAT10x_ODEX:
+ case INSTRUCTION_FORMAT11x:
+ case INSTRUCTION_FORMAT12x_OR_ID:
+ case INSTRUCTION_FORMAT21c_FIELD:
+ case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+ case INSTRUCTION_FORMAT21c_STRING:
+ case INSTRUCTION_FORMAT21c_TYPE:
+ case INSTRUCTION_FORMAT21t:
+ case INSTRUCTION_FORMAT22c_FIELD:
+ case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+ case INSTRUCTION_FORMAT22c_TYPE:
+ case INSTRUCTION_FORMAT22cs_FIELD:
+ case INSTRUCTION_FORMAT22s_OR_ID:
+ case INSTRUCTION_FORMAT22t:
+ case INSTRUCTION_FORMAT23x:
+ case INSTRUCTION_FORMAT31i_OR_ID:
+ case INSTRUCTION_FORMAT31t:
+ case INSTRUCTION_FORMAT35c_METHOD:
+ case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+ case INSTRUCTION_FORMAT35c_TYPE:
+ case INSTRUCTION_FORMAT35mi_METHOD:
+ case INSTRUCTION_FORMAT35ms_METHOD:
+ case INSTRUCTION_FORMAT45cc_METHOD:
+ case INSTRUCTION_FORMAT4rcc_METHOD:
+ case INSTRUCTION_FORMAT51l:
+ case MEMBER_NAME:
+ case PARAM_LIST_OR_ID_PRIMITIVE_TYPE:
+ case PRIMITIVE_TYPE:
+ case REGISTER:
+ case SIMPLE_NAME:
+ case VERIFICATION_ERROR_TYPE:
+ case VOID_TYPE:
+ {
+ alt21=13;
+ }
+ break;
+ case ENUM_DIRECTIVE:
+ {
+ alt21=14;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 0, input);
+ throw nvae;
+ }
+ switch (alt21) {
+ case 1 :
+ // smaliParser.g:626:5: LONG_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ LONG_LITERAL111=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_literal2468);
+ LONG_LITERAL111_tree = (CommonTree)adaptor.create(LONG_LITERAL111);
+ adaptor.addChild(root_0, LONG_LITERAL111_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:627:5: integer_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_integer_literal_in_literal2474);
+ integer_literal112=integer_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, integer_literal112.getTree());
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:628:5: SHORT_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ SHORT_LITERAL113=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_literal2480);
+ SHORT_LITERAL113_tree = (CommonTree)adaptor.create(SHORT_LITERAL113);
+ adaptor.addChild(root_0, SHORT_LITERAL113_tree);
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:629:5: BYTE_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ BYTE_LITERAL114=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_literal2486);
+ BYTE_LITERAL114_tree = (CommonTree)adaptor.create(BYTE_LITERAL114);
+ adaptor.addChild(root_0, BYTE_LITERAL114_tree);
+
+ }
+ break;
+ case 5 :
+ // smaliParser.g:630:5: float_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_float_literal_in_literal2492);
+ float_literal115=float_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, float_literal115.getTree());
+
+ }
+ break;
+ case 6 :
+ // smaliParser.g:631:5: double_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_double_literal_in_literal2498);
+ double_literal116=double_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, double_literal116.getTree());
+
+ }
+ break;
+ case 7 :
+ // smaliParser.g:632:5: CHAR_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ CHAR_LITERAL117=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_literal2504);
+ CHAR_LITERAL117_tree = (CommonTree)adaptor.create(CHAR_LITERAL117);
+ adaptor.addChild(root_0, CHAR_LITERAL117_tree);
+
+ }
+ break;
+ case 8 :
+ // smaliParser.g:633:5: STRING_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ STRING_LITERAL118=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_literal2510);
+ STRING_LITERAL118_tree = (CommonTree)adaptor.create(STRING_LITERAL118);
+ adaptor.addChild(root_0, STRING_LITERAL118_tree);
+
+ }
+ break;
+ case 9 :
+ // smaliParser.g:634:5: BOOL_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ BOOL_LITERAL119=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_literal2516);
+ BOOL_LITERAL119_tree = (CommonTree)adaptor.create(BOOL_LITERAL119);
+ adaptor.addChild(root_0, BOOL_LITERAL119_tree);
+
+ }
+ break;
+ case 10 :
+ // smaliParser.g:635:5: NULL_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ NULL_LITERAL120=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_literal2522);
+ NULL_LITERAL120_tree = (CommonTree)adaptor.create(NULL_LITERAL120);
+ adaptor.addChild(root_0, NULL_LITERAL120_tree);
+
+ }
+ break;
+ case 11 :
+ // smaliParser.g:636:5: array_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_array_literal_in_literal2528);
+ array_literal121=array_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, array_literal121.getTree());
+
+ }
+ break;
+ case 12 :
+ // smaliParser.g:637:5: subannotation
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_subannotation_in_literal2534);
+ subannotation122=subannotation();
+ state._fsp--;
+
+ adaptor.addChild(root_0, subannotation122.getTree());
+
+ }
+ break;
+ case 13 :
+ // smaliParser.g:638:5: type_field_method_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_type_field_method_literal_in_literal2540);
+ type_field_method_literal123=type_field_method_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, type_field_method_literal123.getTree());
+
+ }
+ break;
+ case 14 :
+ // smaliParser.g:639:5: enum_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_enum_literal_in_literal2546);
+ enum_literal124=enum_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, enum_literal124.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "literal"
+
+
+ public static class parsed_integer_literal_return extends ParserRuleReturnScope {
+ public int value;
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "parsed_integer_literal"
+ // smaliParser.g:641:1: parsed_integer_literal returns [int value] : integer_literal ;
+ public final smaliParser.parsed_integer_literal_return parsed_integer_literal() throws RecognitionException {
+ smaliParser.parsed_integer_literal_return retval = new smaliParser.parsed_integer_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ ParserRuleReturnScope integer_literal125 =null;
+
+
+ try {
+ // smaliParser.g:642:3: ( integer_literal )
+ // smaliParser.g:642:5: integer_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_integer_literal_in_parsed_integer_literal2559);
+ integer_literal125=integer_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, integer_literal125.getTree());
+
+ retval.value = LiteralTools.parseInt((integer_literal125!=null?input.toString(integer_literal125.start,integer_literal125.stop):null));
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "parsed_integer_literal"
+
+
+ public static class integral_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "integral_literal"
+ // smaliParser.g:644:1: integral_literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | CHAR_LITERAL | BYTE_LITERAL );
+ public final smaliParser.integral_literal_return integral_literal() throws RecognitionException {
+ smaliParser.integral_literal_return retval = new smaliParser.integral_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token LONG_LITERAL126=null;
+ Token SHORT_LITERAL128=null;
+ Token CHAR_LITERAL129=null;
+ Token BYTE_LITERAL130=null;
+ ParserRuleReturnScope integer_literal127 =null;
+
+ CommonTree LONG_LITERAL126_tree=null;
+ CommonTree SHORT_LITERAL128_tree=null;
+ CommonTree CHAR_LITERAL129_tree=null;
+ CommonTree BYTE_LITERAL130_tree=null;
+
+ try {
+ // smaliParser.g:645:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | CHAR_LITERAL | BYTE_LITERAL )
+ int alt22=5;
+ switch ( input.LA(1) ) {
+ case LONG_LITERAL:
+ {
+ alt22=1;
+ }
+ break;
+ case NEGATIVE_INTEGER_LITERAL:
+ case POSITIVE_INTEGER_LITERAL:
+ {
+ alt22=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt22=3;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt22=4;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt22=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 0, input);
+ throw nvae;
+ }
+ switch (alt22) {
+ case 1 :
+ // smaliParser.g:645:5: LONG_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ LONG_LITERAL126=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_integral_literal2571);
+ LONG_LITERAL126_tree = (CommonTree)adaptor.create(LONG_LITERAL126);
+ adaptor.addChild(root_0, LONG_LITERAL126_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:646:5: integer_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_integer_literal_in_integral_literal2577);
+ integer_literal127=integer_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, integer_literal127.getTree());
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:647:5: SHORT_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ SHORT_LITERAL128=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_integral_literal2583);
+ SHORT_LITERAL128_tree = (CommonTree)adaptor.create(SHORT_LITERAL128);
+ adaptor.addChild(root_0, SHORT_LITERAL128_tree);
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:648:5: CHAR_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ CHAR_LITERAL129=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_integral_literal2589);
+ CHAR_LITERAL129_tree = (CommonTree)adaptor.create(CHAR_LITERAL129);
+ adaptor.addChild(root_0, CHAR_LITERAL129_tree);
+
+ }
+ break;
+ case 5 :
+ // smaliParser.g:649:5: BYTE_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ BYTE_LITERAL130=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_integral_literal2595);
+ BYTE_LITERAL130_tree = (CommonTree)adaptor.create(BYTE_LITERAL130);
+ adaptor.addChild(root_0, BYTE_LITERAL130_tree);
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "integral_literal"
+
+
+ public static class fixed_32bit_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "fixed_32bit_literal"
+ // smaliParser.g:651:1: fixed_32bit_literal : ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | CHAR_LITERAL | BOOL_LITERAL );
+ public final smaliParser.fixed_32bit_literal_return fixed_32bit_literal() throws RecognitionException {
+ smaliParser.fixed_32bit_literal_return retval = new smaliParser.fixed_32bit_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token LONG_LITERAL131=null;
+ Token SHORT_LITERAL133=null;
+ Token BYTE_LITERAL134=null;
+ Token CHAR_LITERAL136=null;
+ Token BOOL_LITERAL137=null;
+ ParserRuleReturnScope integer_literal132 =null;
+ ParserRuleReturnScope float_literal135 =null;
+
+ CommonTree LONG_LITERAL131_tree=null;
+ CommonTree SHORT_LITERAL133_tree=null;
+ CommonTree BYTE_LITERAL134_tree=null;
+ CommonTree CHAR_LITERAL136_tree=null;
+ CommonTree BOOL_LITERAL137_tree=null;
+
+ try {
+ // smaliParser.g:652:3: ( LONG_LITERAL | integer_literal | SHORT_LITERAL | BYTE_LITERAL | float_literal | CHAR_LITERAL | BOOL_LITERAL )
+ int alt23=7;
+ switch ( input.LA(1) ) {
+ case LONG_LITERAL:
+ {
+ alt23=1;
+ }
+ break;
+ case NEGATIVE_INTEGER_LITERAL:
+ case POSITIVE_INTEGER_LITERAL:
+ {
+ alt23=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt23=3;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt23=4;
+ }
+ break;
+ case FLOAT_LITERAL:
+ case FLOAT_LITERAL_OR_ID:
+ {
+ alt23=5;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt23=6;
+ }
+ break;
+ case BOOL_LITERAL:
+ {
+ alt23=7;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 23, 0, input);
+ throw nvae;
+ }
+ switch (alt23) {
+ case 1 :
+ // smaliParser.g:652:5: LONG_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ LONG_LITERAL131=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2605);
+ LONG_LITERAL131_tree = (CommonTree)adaptor.create(LONG_LITERAL131);
+ adaptor.addChild(root_0, LONG_LITERAL131_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:653:5: integer_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal2611);
+ integer_literal132=integer_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, integer_literal132.getTree());
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:654:5: SHORT_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ SHORT_LITERAL133=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2617);
+ SHORT_LITERAL133_tree = (CommonTree)adaptor.create(SHORT_LITERAL133);
+ adaptor.addChild(root_0, SHORT_LITERAL133_tree);
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:655:5: BYTE_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ BYTE_LITERAL134=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2623);
+ BYTE_LITERAL134_tree = (CommonTree)adaptor.create(BYTE_LITERAL134);
+ adaptor.addChild(root_0, BYTE_LITERAL134_tree);
+
+ }
+ break;
+ case 5 :
+ // smaliParser.g:656:5: float_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal2629);
+ float_literal135=float_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, float_literal135.getTree());
+
+ }
+ break;
+ case 6 :
+ // smaliParser.g:657:5: CHAR_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ CHAR_LITERAL136=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2635);
+ CHAR_LITERAL136_tree = (CommonTree)adaptor.create(CHAR_LITERAL136);
+ adaptor.addChild(root_0, CHAR_LITERAL136_tree);
+
+ }
+ break;
+ case 7 :
+ // smaliParser.g:658:5: BOOL_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ BOOL_LITERAL137=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2641);
+ BOOL_LITERAL137_tree = (CommonTree)adaptor.create(BOOL_LITERAL137);
+ adaptor.addChild(root_0, BOOL_LITERAL137_tree);
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "fixed_32bit_literal"
+
+
+ public static class fixed_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "fixed_literal"
+ // smaliParser.g:660:1: fixed_literal : ( integer_literal | LONG_LITERAL | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | BOOL_LITERAL );
+ public final smaliParser.fixed_literal_return fixed_literal() throws RecognitionException {
+ smaliParser.fixed_literal_return retval = new smaliParser.fixed_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token LONG_LITERAL139=null;
+ Token SHORT_LITERAL140=null;
+ Token BYTE_LITERAL141=null;
+ Token CHAR_LITERAL144=null;
+ Token BOOL_LITERAL145=null;
+ ParserRuleReturnScope integer_literal138 =null;
+ ParserRuleReturnScope float_literal142 =null;
+ ParserRuleReturnScope double_literal143 =null;
+
+ CommonTree LONG_LITERAL139_tree=null;
+ CommonTree SHORT_LITERAL140_tree=null;
+ CommonTree BYTE_LITERAL141_tree=null;
+ CommonTree CHAR_LITERAL144_tree=null;
+ CommonTree BOOL_LITERAL145_tree=null;
+
+ try {
+ // smaliParser.g:661:3: ( integer_literal | LONG_LITERAL | SHORT_LITERAL | BYTE_LITERAL | float_literal | double_literal | CHAR_LITERAL | BOOL_LITERAL )
+ int alt24=8;
+ switch ( input.LA(1) ) {
+ case NEGATIVE_INTEGER_LITERAL:
+ case POSITIVE_INTEGER_LITERAL:
+ {
+ alt24=1;
+ }
+ break;
+ case LONG_LITERAL:
+ {
+ alt24=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt24=3;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt24=4;
+ }
+ break;
+ case FLOAT_LITERAL:
+ case FLOAT_LITERAL_OR_ID:
+ {
+ alt24=5;
+ }
+ break;
+ case DOUBLE_LITERAL:
+ case DOUBLE_LITERAL_OR_ID:
+ {
+ alt24=6;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt24=7;
+ }
+ break;
+ case BOOL_LITERAL:
+ {
+ alt24=8;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 24, 0, input);
+ throw nvae;
+ }
+ switch (alt24) {
+ case 1 :
+ // smaliParser.g:661:5: integer_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_integer_literal_in_fixed_literal2651);
+ integer_literal138=integer_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, integer_literal138.getTree());
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:662:5: LONG_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ LONG_LITERAL139=(Token)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_fixed_literal2657);
+ LONG_LITERAL139_tree = (CommonTree)adaptor.create(LONG_LITERAL139);
+ adaptor.addChild(root_0, LONG_LITERAL139_tree);
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:663:5: SHORT_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ SHORT_LITERAL140=(Token)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_fixed_literal2663);
+ SHORT_LITERAL140_tree = (CommonTree)adaptor.create(SHORT_LITERAL140);
+ adaptor.addChild(root_0, SHORT_LITERAL140_tree);
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:664:5: BYTE_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ BYTE_LITERAL141=(Token)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_fixed_literal2669);
+ BYTE_LITERAL141_tree = (CommonTree)adaptor.create(BYTE_LITERAL141);
+ adaptor.addChild(root_0, BYTE_LITERAL141_tree);
+
+ }
+ break;
+ case 5 :
+ // smaliParser.g:665:5: float_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_float_literal_in_fixed_literal2675);
+ float_literal142=float_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, float_literal142.getTree());
+
+ }
+ break;
+ case 6 :
+ // smaliParser.g:666:5: double_literal
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_double_literal_in_fixed_literal2681);
+ double_literal143=double_literal();
+ state._fsp--;
+
+ adaptor.addChild(root_0, double_literal143.getTree());
+
+ }
+ break;
+ case 7 :
+ // smaliParser.g:667:5: CHAR_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ CHAR_LITERAL144=(Token)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_fixed_literal2687);
+ CHAR_LITERAL144_tree = (CommonTree)adaptor.create(CHAR_LITERAL144);
+ adaptor.addChild(root_0, CHAR_LITERAL144_tree);
+
+ }
+ break;
+ case 8 :
+ // smaliParser.g:668:5: BOOL_LITERAL
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ BOOL_LITERAL145=(Token)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_fixed_literal2693);
+ BOOL_LITERAL145_tree = (CommonTree)adaptor.create(BOOL_LITERAL145);
+ adaptor.addChild(root_0, BOOL_LITERAL145_tree);
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "fixed_literal"
+
+
+ public static class array_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "array_literal"
+ // smaliParser.g:670:1: array_literal : OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) ;
+ public final smaliParser.array_literal_return array_literal() throws RecognitionException {
+ smaliParser.array_literal_return retval = new smaliParser.array_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token OPEN_BRACE146=null;
+ Token COMMA148=null;
+ Token CLOSE_BRACE150=null;
+ ParserRuleReturnScope literal147 =null;
+ ParserRuleReturnScope literal149 =null;
+
+ CommonTree OPEN_BRACE146_tree=null;
+ CommonTree COMMA148_tree=null;
+ CommonTree CLOSE_BRACE150_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal");
+
+ try {
+ // smaliParser.g:671:3: ( OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* ) )
+ // smaliParser.g:671:5: OPEN_BRACE ( literal ( COMMA literal )* |) CLOSE_BRACE
+ {
+ OPEN_BRACE146=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_array_literal2703);
+ stream_OPEN_BRACE.add(OPEN_BRACE146);
+
+ // smaliParser.g:671:16: ( literal ( COMMA literal )* |)
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+ if ( (LA26_0==ACCESS_SPEC||LA26_0==ANNOTATION_VISIBILITY||LA26_0==ARRAY_TYPE_PREFIX||(LA26_0 >= BOOL_LITERAL && LA26_0 <= BYTE_LITERAL)||(LA26_0 >= CHAR_LITERAL && LA26_0 <= CLASS_DESCRIPTOR)||(LA26_0 >= DOUBLE_LITERAL && LA26_0 <= DOUBLE_LITERAL_OR_ID)||LA26_0==ENUM_DIRECTIVE||(LA26_0 >= FLOAT_LITERAL && LA26_0 <= FLOAT_LITERAL_OR_ID)||(LA26_0 >= INSTRUCTION_FORMAT10t && LA26_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA26_0==INSTRUCTION_FORMAT11x||LA26_0==INSTRUCTION_FORMAT12x_OR_ID||(LA26_0 >= INSTRUCTION_FORMAT21c_FIELD && LA26_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA26_0==INSTRUCTION_FORMAT21t||(LA26_0 >= INSTRUCTION_FORMAT22c_FIELD && LA26_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA26_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA26_0 <= INSTRUCTION_FORMAT22t)||LA26_0==INSTRUCTION_FORMAT23x||(LA26_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA26_0 <= INSTRUCTION_FORMAT31t)||(LA26_0 >= INSTRUCTION_FORMAT35c_METHOD && LA26_0 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA26_0 >= INSTRUCTION_FORMAT45cc_METHOD && LA26_0 <= INSTRUCTION_FORMAT51l)||(LA26_0 >= LONG_LITERAL && LA26_0 <= MEMBER_NAME)||(LA26_0 >= NEGATIVE_INTEGER_LITERAL && LA26_0 <= OPEN_BRACE)||(LA26_0 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA26_0 <= PRIMITIVE_TYPE)||LA26_0==REGISTER||(LA26_0 >= SHORT_LITERAL && LA26_0 <= SIMPLE_NAME)||(LA26_0 >= STRING_LITERAL && LA26_0 <= SUBANNOTATION_DIRECTIVE)||(LA26_0 >= VERIFICATION_ERROR_TYPE && LA26_0 <= VOID_TYPE)) ) {
+ alt26=1;
+ }
+ else if ( (LA26_0==CLOSE_BRACE) ) {
+ alt26=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 26, 0, input);
+ throw nvae;
+ }
+
+ switch (alt26) {
+ case 1 :
+ // smaliParser.g:671:17: literal ( COMMA literal )*
+ {
+ pushFollow(FOLLOW_literal_in_array_literal2706);
+ literal147=literal();
+ state._fsp--;
+
+ stream_literal.add(literal147.getTree());
+ // smaliParser.g:671:25: ( COMMA literal )*
+ loop25:
+ while (true) {
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+ if ( (LA25_0==COMMA) ) {
+ alt25=1;
+ }
+
+ switch (alt25) {
+ case 1 :
+ // smaliParser.g:671:26: COMMA literal
+ {
+ COMMA148=(Token)match(input,COMMA,FOLLOW_COMMA_in_array_literal2709);
+ stream_COMMA.add(COMMA148);
+
+ pushFollow(FOLLOW_literal_in_array_literal2711);
+ literal149=literal();
+ state._fsp--;
+
+ stream_literal.add(literal149.getTree());
+ }
+ break;
+
+ default :
+ break loop25;
+ }
+ }
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:671:44:
+ {
+ }
+ break;
+
+ }
+
+ CLOSE_BRACE150=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_array_literal2719);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE150);
+
+ // AST REWRITE
+ // elements: literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 672:5: -> ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* )
+ {
+ // smaliParser.g:672:8: ^( I_ENCODED_ARRAY[$start, \"I_ENCODED_ARRAY\"] ( literal )* )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_ARRAY, (retval.start), "I_ENCODED_ARRAY"), root_1);
+ // smaliParser.g:672:53: ( literal )*
+ while ( stream_literal.hasNext() ) {
+ adaptor.addChild(root_1, stream_literal.nextTree());
+ }
+ stream_literal.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "array_literal"
+
+
+ public static class annotation_element_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "annotation_element"
+ // smaliParser.g:674:1: annotation_element : simple_name EQUAL literal -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) ;
+ public final smaliParser.annotation_element_return annotation_element() throws RecognitionException {
+ smaliParser.annotation_element_return retval = new smaliParser.annotation_element_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token EQUAL152=null;
+ ParserRuleReturnScope simple_name151 =null;
+ ParserRuleReturnScope literal153 =null;
+
+ CommonTree EQUAL152_tree=null;
+ RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
+ RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name");
+ RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal");
+
+ try {
+ // smaliParser.g:675:3: ( simple_name EQUAL literal -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal ) )
+ // smaliParser.g:675:5: simple_name EQUAL literal
+ {
+ pushFollow(FOLLOW_simple_name_in_annotation_element2743);
+ simple_name151=simple_name();
+ state._fsp--;
+
+ stream_simple_name.add(simple_name151.getTree());
+ EQUAL152=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_annotation_element2745);
+ stream_EQUAL.add(EQUAL152);
+
+ pushFollow(FOLLOW_literal_in_annotation_element2747);
+ literal153=literal();
+ state._fsp--;
+
+ stream_literal.add(literal153.getTree());
+ // AST REWRITE
+ // elements: simple_name, literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 676:5: -> ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal )
+ {
+ // smaliParser.g:676:8: ^( I_ANNOTATION_ELEMENT[$start, \"I_ANNOTATION_ELEMENT\"] simple_name literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATION_ELEMENT, (retval.start), "I_ANNOTATION_ELEMENT"), root_1);
+ adaptor.addChild(root_1, stream_simple_name.nextTree());
+ adaptor.addChild(root_1, stream_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "annotation_element"
+
+
+ public static class annotation_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "annotation"
+ // smaliParser.g:678:1: annotation : ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) ;
+ public final smaliParser.annotation_return annotation() throws RecognitionException {
+ smaliParser.annotation_return retval = new smaliParser.annotation_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token ANNOTATION_DIRECTIVE154=null;
+ Token ANNOTATION_VISIBILITY155=null;
+ Token CLASS_DESCRIPTOR156=null;
+ Token END_ANNOTATION_DIRECTIVE158=null;
+ ParserRuleReturnScope annotation_element157 =null;
+
+ CommonTree ANNOTATION_DIRECTIVE154_tree=null;
+ CommonTree ANNOTATION_VISIBILITY155_tree=null;
+ CommonTree CLASS_DESCRIPTOR156_tree=null;
+ CommonTree END_ANNOTATION_DIRECTIVE158_tree=null;
+ RewriteRuleTokenStream stream_ANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_DIRECTIVE");
+ RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY=new RewriteRuleTokenStream(adaptor,"token ANNOTATION_VISIBILITY");
+ RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+ RewriteRuleTokenStream stream_END_ANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_ANNOTATION_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_annotation_element=new RewriteRuleSubtreeStream(adaptor,"rule annotation_element");
+
+ try {
+ // smaliParser.g:679:3: ( ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ) )
+ // smaliParser.g:679:5: ANNOTATION_DIRECTIVE ANNOTATION_VISIBILITY CLASS_DESCRIPTOR ( annotation_element )* END_ANNOTATION_DIRECTIVE
+ {
+ ANNOTATION_DIRECTIVE154=(Token)match(input,ANNOTATION_DIRECTIVE,FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2772);
+ stream_ANNOTATION_DIRECTIVE.add(ANNOTATION_DIRECTIVE154);
+
+ ANNOTATION_VISIBILITY155=(Token)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_annotation2774);
+ stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY155);
+
+ CLASS_DESCRIPTOR156=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_annotation2776);
+ stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR156);
+
+ // smaliParser.g:680:5: ( annotation_element )*
+ loop27:
+ while (true) {
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+ if ( (LA27_0==ACCESS_SPEC||LA27_0==ANNOTATION_VISIBILITY||LA27_0==BOOL_LITERAL||LA27_0==DOUBLE_LITERAL_OR_ID||LA27_0==FLOAT_LITERAL_OR_ID||(LA27_0 >= INSTRUCTION_FORMAT10t && LA27_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA27_0==INSTRUCTION_FORMAT11x||LA27_0==INSTRUCTION_FORMAT12x_OR_ID||(LA27_0 >= INSTRUCTION_FORMAT21c_FIELD && LA27_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA27_0==INSTRUCTION_FORMAT21t||(LA27_0 >= INSTRUCTION_FORMAT22c_FIELD && LA27_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA27_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA27_0 <= INSTRUCTION_FORMAT22t)||LA27_0==INSTRUCTION_FORMAT23x||(LA27_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA27_0 <= INSTRUCTION_FORMAT31t)||(LA27_0 >= INSTRUCTION_FORMAT35c_METHOD && LA27_0 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA27_0 >= INSTRUCTION_FORMAT45cc_METHOD && LA27_0 <= INSTRUCTION_FORMAT51l)||(LA27_0 >= NEGATIVE_INTEGER_LITERAL && LA27_0 <= NULL_LITERAL)||(LA27_0 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA27_0 <= PRIMITIVE_TYPE)||LA27_0==REGISTER||LA27_0==SIMPLE_NAME||(LA27_0 >= VERIFICATION_ERROR_TYPE && LA27_0 <= VOID_TYPE)) ) {
+ alt27=1;
+ }
+
+ switch (alt27) {
+ case 1 :
+ // smaliParser.g:680:5: annotation_element
+ {
+ pushFollow(FOLLOW_annotation_element_in_annotation2782);
+ annotation_element157=annotation_element();
+ state._fsp--;
+
+ stream_annotation_element.add(annotation_element157.getTree());
+ }
+ break;
+
+ default :
+ break loop27;
+ }
+ }
+
+ END_ANNOTATION_DIRECTIVE158=(Token)match(input,END_ANNOTATION_DIRECTIVE,FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2785);
+ stream_END_ANNOTATION_DIRECTIVE.add(END_ANNOTATION_DIRECTIVE158);
+
+ // AST REWRITE
+ // elements: CLASS_DESCRIPTOR, annotation_element, ANNOTATION_VISIBILITY
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 681:5: -> ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) )
+ {
+ // smaliParser.g:681:8: ^( I_ANNOTATION[$start, \"I_ANNOTATION\"] ANNOTATION_VISIBILITY ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATION, (retval.start), "I_ANNOTATION"), root_1);
+ adaptor.addChild(root_1, stream_ANNOTATION_VISIBILITY.nextNode());
+ // smaliParser.g:681:69: ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUBANNOTATION, (retval.start), "I_SUBANNOTATION"), root_2);
+ adaptor.addChild(root_2, stream_CLASS_DESCRIPTOR.nextNode());
+ // smaliParser.g:681:131: ( annotation_element )*
+ while ( stream_annotation_element.hasNext() ) {
+ adaptor.addChild(root_2, stream_annotation_element.nextTree());
+ }
+ stream_annotation_element.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "annotation"
+
+
+ public static class subannotation_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "subannotation"
+ // smaliParser.g:683:1: subannotation : SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) ;
+ public final smaliParser.subannotation_return subannotation() throws RecognitionException {
+ smaliParser.subannotation_return retval = new smaliParser.subannotation_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token SUBANNOTATION_DIRECTIVE159=null;
+ Token CLASS_DESCRIPTOR160=null;
+ Token END_SUBANNOTATION_DIRECTIVE162=null;
+ ParserRuleReturnScope annotation_element161 =null;
+
+ CommonTree SUBANNOTATION_DIRECTIVE159_tree=null;
+ CommonTree CLASS_DESCRIPTOR160_tree=null;
+ CommonTree END_SUBANNOTATION_DIRECTIVE162_tree=null;
+ RewriteRuleTokenStream stream_SUBANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SUBANNOTATION_DIRECTIVE");
+ RewriteRuleTokenStream stream_CLASS_DESCRIPTOR=new RewriteRuleTokenStream(adaptor,"token CLASS_DESCRIPTOR");
+ RewriteRuleTokenStream stream_END_SUBANNOTATION_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_SUBANNOTATION_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_annotation_element=new RewriteRuleSubtreeStream(adaptor,"rule annotation_element");
+
+ try {
+ // smaliParser.g:684:3: ( SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* ) )
+ // smaliParser.g:684:5: SUBANNOTATION_DIRECTIVE CLASS_DESCRIPTOR ( annotation_element )* END_SUBANNOTATION_DIRECTIVE
+ {
+ SUBANNOTATION_DIRECTIVE159=(Token)match(input,SUBANNOTATION_DIRECTIVE,FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation2818);
+ stream_SUBANNOTATION_DIRECTIVE.add(SUBANNOTATION_DIRECTIVE159);
+
+ CLASS_DESCRIPTOR160=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_subannotation2820);
+ stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR160);
+
+ // smaliParser.g:684:46: ( annotation_element )*
+ loop28:
+ while (true) {
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+ if ( (LA28_0==ACCESS_SPEC||LA28_0==ANNOTATION_VISIBILITY||LA28_0==BOOL_LITERAL||LA28_0==DOUBLE_LITERAL_OR_ID||LA28_0==FLOAT_LITERAL_OR_ID||(LA28_0 >= INSTRUCTION_FORMAT10t && LA28_0 <= INSTRUCTION_FORMAT10x_ODEX)||LA28_0==INSTRUCTION_FORMAT11x||LA28_0==INSTRUCTION_FORMAT12x_OR_ID||(LA28_0 >= INSTRUCTION_FORMAT21c_FIELD && LA28_0 <= INSTRUCTION_FORMAT21c_TYPE)||LA28_0==INSTRUCTION_FORMAT21t||(LA28_0 >= INSTRUCTION_FORMAT22c_FIELD && LA28_0 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA28_0 >= INSTRUCTION_FORMAT22s_OR_ID && LA28_0 <= INSTRUCTION_FORMAT22t)||LA28_0==INSTRUCTION_FORMAT23x||(LA28_0 >= INSTRUCTION_FORMAT31i_OR_ID && LA28_0 <= INSTRUCTION_FORMAT31t)||(LA28_0 >= INSTRUCTION_FORMAT35c_METHOD && LA28_0 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA28_0 >= INSTRUCTION_FORMAT45cc_METHOD && LA28_0 <= INSTRUCTION_FORMAT51l)||(LA28_0 >= NEGATIVE_INTEGER_LITERAL && LA28_0 <= NULL_LITERAL)||(LA28_0 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA28_0 <= PRIMITIVE_TYPE)||LA28_0==REGISTER||LA28_0==SIMPLE_NAME||(LA28_0 >= VERIFICATION_ERROR_TYPE && LA28_0 <= VOID_TYPE)) ) {
+ alt28=1;
+ }
+
+ switch (alt28) {
+ case 1 :
+ // smaliParser.g:684:46: annotation_element
+ {
+ pushFollow(FOLLOW_annotation_element_in_subannotation2822);
+ annotation_element161=annotation_element();
+ state._fsp--;
+
+ stream_annotation_element.add(annotation_element161.getTree());
+ }
+ break;
+
+ default :
+ break loop28;
+ }
+ }
+
+ END_SUBANNOTATION_DIRECTIVE162=(Token)match(input,END_SUBANNOTATION_DIRECTIVE,FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation2825);
+ stream_END_SUBANNOTATION_DIRECTIVE.add(END_SUBANNOTATION_DIRECTIVE162);
+
+ // AST REWRITE
+ // elements: CLASS_DESCRIPTOR, annotation_element
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 685:5: -> ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* )
+ {
+ // smaliParser.g:685:8: ^( I_SUBANNOTATION[$start, \"I_SUBANNOTATION\"] CLASS_DESCRIPTOR ( annotation_element )* )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SUBANNOTATION, (retval.start), "I_SUBANNOTATION"), root_1);
+ adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());
+ // smaliParser.g:685:70: ( annotation_element )*
+ while ( stream_annotation_element.hasNext() ) {
+ adaptor.addChild(root_1, stream_annotation_element.nextTree());
+ }
+ stream_annotation_element.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "subannotation"
+
+
+ public static class enum_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "enum_literal"
+ // smaliParser.g:688:1: enum_literal : ENUM_DIRECTIVE field_reference -> ^( I_ENCODED_ENUM field_reference ) ;
+ public final smaliParser.enum_literal_return enum_literal() throws RecognitionException {
+ smaliParser.enum_literal_return retval = new smaliParser.enum_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token ENUM_DIRECTIVE163=null;
+ ParserRuleReturnScope field_reference164 =null;
+
+ CommonTree ENUM_DIRECTIVE163_tree=null;
+ RewriteRuleTokenStream stream_ENUM_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ENUM_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+ try {
+ // smaliParser.g:689:3: ( ENUM_DIRECTIVE field_reference -> ^( I_ENCODED_ENUM field_reference ) )
+ // smaliParser.g:689:5: ENUM_DIRECTIVE field_reference
+ {
+ ENUM_DIRECTIVE163=(Token)match(input,ENUM_DIRECTIVE,FOLLOW_ENUM_DIRECTIVE_in_enum_literal2852);
+ stream_ENUM_DIRECTIVE.add(ENUM_DIRECTIVE163);
+
+ pushFollow(FOLLOW_field_reference_in_enum_literal2854);
+ field_reference164=field_reference();
+ state._fsp--;
+
+ stream_field_reference.add(field_reference164.getTree());
+ // AST REWRITE
+ // elements: field_reference
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 690:3: -> ^( I_ENCODED_ENUM field_reference )
+ {
+ // smaliParser.g:690:6: ^( I_ENCODED_ENUM field_reference )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_ENUM, "I_ENCODED_ENUM"), root_1);
+ adaptor.addChild(root_1, stream_field_reference.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "enum_literal"
+
+
+ public static class type_field_method_literal_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "type_field_method_literal"
+ // smaliParser.g:692:1: type_field_method_literal : ( reference_type_descriptor | ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) ) | PRIMITIVE_TYPE | VOID_TYPE );
+ public final smaliParser.type_field_method_literal_return type_field_method_literal() throws RecognitionException {
+ smaliParser.type_field_method_literal_return retval = new smaliParser.type_field_method_literal_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token ARROW167=null;
+ Token COLON169=null;
+ Token PRIMITIVE_TYPE173=null;
+ Token VOID_TYPE174=null;
+ ParserRuleReturnScope reference_type_descriptor165 =null;
+ ParserRuleReturnScope reference_type_descriptor166 =null;
+ ParserRuleReturnScope member_name168 =null;
+ ParserRuleReturnScope nonvoid_type_descriptor170 =null;
+ ParserRuleReturnScope member_name171 =null;
+ ParserRuleReturnScope method_prototype172 =null;
+
+ CommonTree ARROW167_tree=null;
+ CommonTree COLON169_tree=null;
+ CommonTree PRIMITIVE_TYPE173_tree=null;
+ CommonTree VOID_TYPE174_tree=null;
+ RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+ RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+ RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+ RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+ RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor");
+
+ try {
+ // smaliParser.g:693:3: ( reference_type_descriptor | ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) ) | PRIMITIVE_TYPE | VOID_TYPE )
+ int alt31=4;
+ switch ( input.LA(1) ) {
+ case CLASS_DESCRIPTOR:
+ {
+ int LA31_1 = input.LA(2);
+ if ( (LA31_1==EOF||(LA31_1 >= ACCESS_SPEC && LA31_1 <= ANNOTATION_VISIBILITY)||LA31_1==BOOL_LITERAL||(LA31_1 >= CLASS_DIRECTIVE && LA31_1 <= CLOSE_BRACE)||LA31_1==COMMA||(LA31_1 >= DOUBLE_LITERAL_OR_ID && LA31_1 <= END_ANNOTATION_DIRECTIVE)||LA31_1==END_FIELD_DIRECTIVE||LA31_1==END_SUBANNOTATION_DIRECTIVE||LA31_1==FIELD_DIRECTIVE||(LA31_1 >= FLOAT_LITERAL_OR_ID && LA31_1 <= IMPLEMENTS_DIRECTIVE)||(LA31_1 >= INSTRUCTION_FORMAT10t && LA31_1 <= INSTRUCTION_FORMAT10x_ODEX)||LA31_1==INSTRUCTION_FORMAT11x||LA31_1==INSTRUCTION_FORMAT12x_OR_ID||(LA31_1 >= INSTRUCTION_FORMAT21c_FIELD && LA31_1 <= INSTRUCTION_FORMAT21c_TYPE)||LA31_1==INSTRUCTION_FORMAT21t||(LA31_1 >= INSTRUCTION_FORMAT22c_FIELD && LA31_1 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA31_1 >= INSTRUCTION_FORMAT22s_OR_ID && LA31_1 <= INSTRUCTION_FORMAT22t)||LA31_1==INSTRUCTION_FORMAT23x||(LA31_1 >= INSTRUCTION_FORMAT31i_OR_ID && LA31_1 <= INSTRUCTION_FORMAT31t)||(LA31_1 >= INSTRUCTION_FORMAT35c_METHOD && LA31_1 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA31_1 >= INSTRUCTION_FORMAT45cc_METHOD && LA31_1 <= INSTRUCTION_FORMAT51l)||(LA31_1 >= METHOD_DIRECTIVE && LA31_1 <= NULL_LITERAL)||(LA31_1 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA31_1 <= PRIMITIVE_TYPE)||LA31_1==REGISTER||(LA31_1 >= SIMPLE_NAME && LA31_1 <= SOURCE_DIRECTIVE)||(LA31_1 >= SUPER_DIRECTIVE && LA31_1 <= VOID_TYPE)) ) {
+ alt31=1;
+ }
+ else if ( (LA31_1==ARROW) ) {
+ alt31=2;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case ARRAY_TYPE_PREFIX:
+ {
+ int LA31_2 = input.LA(2);
+ if ( (LA31_2==CLASS_DESCRIPTOR||LA31_2==PRIMITIVE_TYPE) ) {
+ int LA31_7 = input.LA(3);
+ if ( (LA31_7==EOF||(LA31_7 >= ACCESS_SPEC && LA31_7 <= ANNOTATION_VISIBILITY)||LA31_7==BOOL_LITERAL||(LA31_7 >= CLASS_DIRECTIVE && LA31_7 <= CLOSE_BRACE)||LA31_7==COMMA||(LA31_7 >= DOUBLE_LITERAL_OR_ID && LA31_7 <= END_ANNOTATION_DIRECTIVE)||LA31_7==END_FIELD_DIRECTIVE||LA31_7==END_SUBANNOTATION_DIRECTIVE||LA31_7==FIELD_DIRECTIVE||(LA31_7 >= FLOAT_LITERAL_OR_ID && LA31_7 <= IMPLEMENTS_DIRECTIVE)||(LA31_7 >= INSTRUCTION_FORMAT10t && LA31_7 <= INSTRUCTION_FORMAT10x_ODEX)||LA31_7==INSTRUCTION_FORMAT11x||LA31_7==INSTRUCTION_FORMAT12x_OR_ID||(LA31_7 >= INSTRUCTION_FORMAT21c_FIELD && LA31_7 <= INSTRUCTION_FORMAT21c_TYPE)||LA31_7==INSTRUCTION_FORMAT21t||(LA31_7 >= INSTRUCTION_FORMAT22c_FIELD && LA31_7 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA31_7 >= INSTRUCTION_FORMAT22s_OR_ID && LA31_7 <= INSTRUCTION_FORMAT22t)||LA31_7==INSTRUCTION_FORMAT23x||(LA31_7 >= INSTRUCTION_FORMAT31i_OR_ID && LA31_7 <= INSTRUCTION_FORMAT31t)||(LA31_7 >= INSTRUCTION_FORMAT35c_METHOD && LA31_7 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA31_7 >= INSTRUCTION_FORMAT45cc_METHOD && LA31_7 <= INSTRUCTION_FORMAT51l)||(LA31_7 >= METHOD_DIRECTIVE && LA31_7 <= NULL_LITERAL)||(LA31_7 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA31_7 <= PRIMITIVE_TYPE)||LA31_7==REGISTER||(LA31_7 >= SIMPLE_NAME && LA31_7 <= SOURCE_DIRECTIVE)||(LA31_7 >= SUPER_DIRECTIVE && LA31_7 <= VOID_TYPE)) ) {
+ alt31=1;
+ }
+ else if ( (LA31_7==ARROW) ) {
+ alt31=2;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
+ input.consume();
+ }
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 7, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 2, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case ACCESS_SPEC:
+ case ANNOTATION_VISIBILITY:
+ case BOOL_LITERAL:
+ case DOUBLE_LITERAL_OR_ID:
+ case FLOAT_LITERAL_OR_ID:
+ case INSTRUCTION_FORMAT10t:
+ case INSTRUCTION_FORMAT10x:
+ case INSTRUCTION_FORMAT10x_ODEX:
+ case INSTRUCTION_FORMAT11x:
+ case INSTRUCTION_FORMAT12x_OR_ID:
+ case INSTRUCTION_FORMAT21c_FIELD:
+ case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+ case INSTRUCTION_FORMAT21c_STRING:
+ case INSTRUCTION_FORMAT21c_TYPE:
+ case INSTRUCTION_FORMAT21t:
+ case INSTRUCTION_FORMAT22c_FIELD:
+ case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+ case INSTRUCTION_FORMAT22c_TYPE:
+ case INSTRUCTION_FORMAT22cs_FIELD:
+ case INSTRUCTION_FORMAT22s_OR_ID:
+ case INSTRUCTION_FORMAT22t:
+ case INSTRUCTION_FORMAT23x:
+ case INSTRUCTION_FORMAT31i_OR_ID:
+ case INSTRUCTION_FORMAT31t:
+ case INSTRUCTION_FORMAT35c_METHOD:
+ case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+ case INSTRUCTION_FORMAT35c_TYPE:
+ case INSTRUCTION_FORMAT35mi_METHOD:
+ case INSTRUCTION_FORMAT35ms_METHOD:
+ case INSTRUCTION_FORMAT45cc_METHOD:
+ case INSTRUCTION_FORMAT4rcc_METHOD:
+ case INSTRUCTION_FORMAT51l:
+ case MEMBER_NAME:
+ case NEGATIVE_INTEGER_LITERAL:
+ case NULL_LITERAL:
+ case PARAM_LIST_OR_ID_PRIMITIVE_TYPE:
+ case POSITIVE_INTEGER_LITERAL:
+ case REGISTER:
+ case SIMPLE_NAME:
+ case VERIFICATION_ERROR_TYPE:
+ {
+ alt31=2;
+ }
+ break;
+ case PRIMITIVE_TYPE:
+ {
+ int LA31_4 = input.LA(2);
+ if ( (LA31_4==COLON||LA31_4==OPEN_PAREN) ) {
+ alt31=2;
+ }
+ else if ( (LA31_4==EOF||(LA31_4 >= ACCESS_SPEC && LA31_4 <= ANNOTATION_VISIBILITY)||LA31_4==BOOL_LITERAL||(LA31_4 >= CLASS_DIRECTIVE && LA31_4 <= CLOSE_BRACE)||LA31_4==COMMA||(LA31_4 >= DOUBLE_LITERAL_OR_ID && LA31_4 <= END_ANNOTATION_DIRECTIVE)||LA31_4==END_FIELD_DIRECTIVE||LA31_4==END_SUBANNOTATION_DIRECTIVE||LA31_4==FIELD_DIRECTIVE||(LA31_4 >= FLOAT_LITERAL_OR_ID && LA31_4 <= IMPLEMENTS_DIRECTIVE)||(LA31_4 >= INSTRUCTION_FORMAT10t && LA31_4 <= INSTRUCTION_FORMAT10x_ODEX)||LA31_4==INSTRUCTION_FORMAT11x||LA31_4==INSTRUCTION_FORMAT12x_OR_ID||(LA31_4 >= INSTRUCTION_FORMAT21c_FIELD && LA31_4 <= INSTRUCTION_FORMAT21c_TYPE)||LA31_4==INSTRUCTION_FORMAT21t||(LA31_4 >= INSTRUCTION_FORMAT22c_FIELD && LA31_4 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA31_4 >= INSTRUCTION_FORMAT22s_OR_ID && LA31_4 <= INSTRUCTION_FORMAT22t)||LA31_4==INSTRUCTION_FORMAT23x||(LA31_4 >= INSTRUCTION_FORMAT31i_OR_ID && LA31_4 <= INSTRUCTION_FORMAT31t)||(LA31_4 >= INSTRUCTION_FORMAT35c_METHOD && LA31_4 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA31_4 >= INSTRUCTION_FORMAT45cc_METHOD && LA31_4 <= INSTRUCTION_FORMAT51l)||(LA31_4 >= METHOD_DIRECTIVE && LA31_4 <= NULL_LITERAL)||(LA31_4 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA31_4 <= PRIMITIVE_TYPE)||LA31_4==REGISTER||(LA31_4 >= SIMPLE_NAME && LA31_4 <= SOURCE_DIRECTIVE)||(LA31_4 >= SUPER_DIRECTIVE && LA31_4 <= VOID_TYPE)) ) {
+ alt31=3;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 4, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case VOID_TYPE:
+ {
+ int LA31_5 = input.LA(2);
+ if ( (LA31_5==COLON||LA31_5==OPEN_PAREN) ) {
+ alt31=2;
+ }
+ else if ( (LA31_5==EOF||(LA31_5 >= ACCESS_SPEC && LA31_5 <= ANNOTATION_VISIBILITY)||LA31_5==BOOL_LITERAL||(LA31_5 >= CLASS_DIRECTIVE && LA31_5 <= CLOSE_BRACE)||LA31_5==COMMA||(LA31_5 >= DOUBLE_LITERAL_OR_ID && LA31_5 <= END_ANNOTATION_DIRECTIVE)||LA31_5==END_FIELD_DIRECTIVE||LA31_5==END_SUBANNOTATION_DIRECTIVE||LA31_5==FIELD_DIRECTIVE||(LA31_5 >= FLOAT_LITERAL_OR_ID && LA31_5 <= IMPLEMENTS_DIRECTIVE)||(LA31_5 >= INSTRUCTION_FORMAT10t && LA31_5 <= INSTRUCTION_FORMAT10x_ODEX)||LA31_5==INSTRUCTION_FORMAT11x||LA31_5==INSTRUCTION_FORMAT12x_OR_ID||(LA31_5 >= INSTRUCTION_FORMAT21c_FIELD && LA31_5 <= INSTRUCTION_FORMAT21c_TYPE)||LA31_5==INSTRUCTION_FORMAT21t||(LA31_5 >= INSTRUCTION_FORMAT22c_FIELD && LA31_5 <= INSTRUCTION_FORMAT22cs_FIELD)||(LA31_5 >= INSTRUCTION_FORMAT22s_OR_ID && LA31_5 <= INSTRUCTION_FORMAT22t)||LA31_5==INSTRUCTION_FORMAT23x||(LA31_5 >= INSTRUCTION_FORMAT31i_OR_ID && LA31_5 <= INSTRUCTION_FORMAT31t)||(LA31_5 >= INSTRUCTION_FORMAT35c_METHOD && LA31_5 <= INSTRUCTION_FORMAT35ms_METHOD)||(LA31_5 >= INSTRUCTION_FORMAT45cc_METHOD && LA31_5 <= INSTRUCTION_FORMAT51l)||(LA31_5 >= METHOD_DIRECTIVE && LA31_5 <= NULL_LITERAL)||(LA31_5 >= PARAM_LIST_OR_ID_PRIMITIVE_TYPE && LA31_5 <= PRIMITIVE_TYPE)||LA31_5==REGISTER||(LA31_5 >= SIMPLE_NAME && LA31_5 <= SOURCE_DIRECTIVE)||(LA31_5 >= SUPER_DIRECTIVE && LA31_5 <= VOID_TYPE)) ) {
+ alt31=4;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 5, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 0, input);
+ throw nvae;
+ }
+ switch (alt31) {
+ case 1 :
+ // smaliParser.g:693:5: reference_type_descriptor
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal2874);
+ reference_type_descriptor165=reference_type_descriptor();
+ state._fsp--;
+
+ adaptor.addChild(root_0, reference_type_descriptor165.getTree());
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:694:5: ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) )
+ {
+ // smaliParser.g:694:5: ( ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) ) )
+ // smaliParser.g:694:7: ( reference_type_descriptor ARROW )? ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) )
+ {
+ // smaliParser.g:694:7: ( reference_type_descriptor ARROW )?
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+ if ( (LA29_0==ARRAY_TYPE_PREFIX||LA29_0==CLASS_DESCRIPTOR) ) {
+ alt29=1;
+ }
+ switch (alt29) {
+ case 1 :
+ // smaliParser.g:694:8: reference_type_descriptor ARROW
+ {
+ pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal2883);
+ reference_type_descriptor166=reference_type_descriptor();
+ state._fsp--;
+
+ stream_reference_type_descriptor.add(reference_type_descriptor166.getTree());
+ ARROW167=(Token)match(input,ARROW,FOLLOW_ARROW_in_type_field_method_literal2885);
+ stream_ARROW.add(ARROW167);
+
+ }
+ break;
+
+ }
+
+ // smaliParser.g:695:7: ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) )
+ int alt30=2;
+ alt30 = dfa30.predict(input);
+ switch (alt30) {
+ case 1 :
+ // smaliParser.g:695:9: member_name COLON nonvoid_type_descriptor
+ {
+ pushFollow(FOLLOW_member_name_in_type_field_method_literal2897);
+ member_name168=member_name();
+ state._fsp--;
+
+ stream_member_name.add(member_name168.getTree());
+ COLON169=(Token)match(input,COLON,FOLLOW_COLON_in_type_field_method_literal2899);
+ stream_COLON.add(COLON169);
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal2901);
+ nonvoid_type_descriptor170=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor170.getTree());
+ // AST REWRITE
+ // elements: reference_type_descriptor, member_name, nonvoid_type_descriptor
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 695:51: -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor )
+ {
+ // smaliParser.g:695:54: ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_FIELD, "I_ENCODED_FIELD"), root_1);
+ // smaliParser.g:695:72: ( reference_type_descriptor )?
+ if ( stream_reference_type_descriptor.hasNext() ) {
+ adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree());
+ }
+ stream_reference_type_descriptor.reset();
+
+ adaptor.addChild(root_1, stream_member_name.nextTree());
+ adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:696:9: member_name method_prototype
+ {
+ pushFollow(FOLLOW_member_name_in_type_field_method_literal2924);
+ member_name171=member_name();
+ state._fsp--;
+
+ stream_member_name.add(member_name171.getTree());
+ pushFollow(FOLLOW_method_prototype_in_type_field_method_literal2926);
+ method_prototype172=method_prototype();
+ state._fsp--;
+
+ stream_method_prototype.add(method_prototype172.getTree());
+ // AST REWRITE
+ // elements: member_name, method_prototype, reference_type_descriptor
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 696:38: -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype )
+ {
+ // smaliParser.g:696:41: ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ENCODED_METHOD, "I_ENCODED_METHOD"), root_1);
+ // smaliParser.g:696:60: ( reference_type_descriptor )?
+ if ( stream_reference_type_descriptor.hasNext() ) {
+ adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree());
+ }
+ stream_reference_type_descriptor.reset();
+
+ adaptor.addChild(root_1, stream_member_name.nextTree());
+ adaptor.addChild(root_1, stream_method_prototype.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:699:5: PRIMITIVE_TYPE
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ PRIMITIVE_TYPE173=(Token)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal2959);
+ PRIMITIVE_TYPE173_tree = (CommonTree)adaptor.create(PRIMITIVE_TYPE173);
+ adaptor.addChild(root_0, PRIMITIVE_TYPE173_tree);
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:700:5: VOID_TYPE
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ VOID_TYPE174=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_field_method_literal2965);
+ VOID_TYPE174_tree = (CommonTree)adaptor.create(VOID_TYPE174);
+ adaptor.addChild(root_0, VOID_TYPE174_tree);
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "type_field_method_literal"
+
+
+ public static class method_reference_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "method_reference"
+ // smaliParser.g:702:1: method_reference : ( reference_type_descriptor ARROW )? member_name method_prototype -> ( reference_type_descriptor )? member_name method_prototype ;
+ public final smaliParser.method_reference_return method_reference() throws RecognitionException {
+ smaliParser.method_reference_return retval = new smaliParser.method_reference_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token ARROW176=null;
+ ParserRuleReturnScope reference_type_descriptor175 =null;
+ ParserRuleReturnScope member_name177 =null;
+ ParserRuleReturnScope method_prototype178 =null;
+
+ CommonTree ARROW176_tree=null;
+ RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+ RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
+ RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+ RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor");
+
+ try {
+ // smaliParser.g:703:3: ( ( reference_type_descriptor ARROW )? member_name method_prototype -> ( reference_type_descriptor )? member_name method_prototype )
+ // smaliParser.g:703:5: ( reference_type_descriptor ARROW )? member_name method_prototype
+ {
+ // smaliParser.g:703:5: ( reference_type_descriptor ARROW )?
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+ if ( (LA32_0==ARRAY_TYPE_PREFIX||LA32_0==CLASS_DESCRIPTOR) ) {
+ alt32=1;
+ }
+ switch (alt32) {
+ case 1 :
+ // smaliParser.g:703:6: reference_type_descriptor ARROW
+ {
+ pushFollow(FOLLOW_reference_type_descriptor_in_method_reference2976);
+ reference_type_descriptor175=reference_type_descriptor();
+ state._fsp--;
+
+ stream_reference_type_descriptor.add(reference_type_descriptor175.getTree());
+ ARROW176=(Token)match(input,ARROW,FOLLOW_ARROW_in_method_reference2978);
+ stream_ARROW.add(ARROW176);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_member_name_in_method_reference2982);
+ member_name177=member_name();
+ state._fsp--;
+
+ stream_member_name.add(member_name177.getTree());
+ pushFollow(FOLLOW_method_prototype_in_method_reference2984);
+ method_prototype178=method_prototype();
+ state._fsp--;
+
+ stream_method_prototype.add(method_prototype178.getTree());
+ // AST REWRITE
+ // elements: method_prototype, reference_type_descriptor, member_name
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 704:3: -> ( reference_type_descriptor )? member_name method_prototype
+ {
+ // smaliParser.g:704:6: ( reference_type_descriptor )?
+ if ( stream_reference_type_descriptor.hasNext() ) {
+ adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree());
+ }
+ stream_reference_type_descriptor.reset();
+
+ adaptor.addChild(root_0, stream_member_name.nextTree());
+ adaptor.addChild(root_0, stream_method_prototype.nextTree());
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "method_reference"
+
+
+ public static class field_reference_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "field_reference"
+ // smaliParser.g:706:1: field_reference : ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor ;
+ public final smaliParser.field_reference_return field_reference() throws RecognitionException {
+ smaliParser.field_reference_return retval = new smaliParser.field_reference_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token ARROW180=null;
+ Token COLON182=null;
+ ParserRuleReturnScope reference_type_descriptor179 =null;
+ ParserRuleReturnScope member_name181 =null;
+ ParserRuleReturnScope nonvoid_type_descriptor183 =null;
+
+ CommonTree ARROW180_tree=null;
+ CommonTree COLON182_tree=null;
+ RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+ RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+ RewriteRuleSubtreeStream stream_member_name=new RewriteRuleSubtreeStream(adaptor,"rule member_name");
+ RewriteRuleSubtreeStream stream_reference_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule reference_type_descriptor");
+
+ try {
+ // smaliParser.g:707:3: ( ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor )
+ // smaliParser.g:707:5: ( reference_type_descriptor ARROW )? member_name COLON nonvoid_type_descriptor
+ {
+ // smaliParser.g:707:5: ( reference_type_descriptor ARROW )?
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+ if ( (LA33_0==ARRAY_TYPE_PREFIX||LA33_0==CLASS_DESCRIPTOR) ) {
+ alt33=1;
+ }
+ switch (alt33) {
+ case 1 :
+ // smaliParser.g:707:6: reference_type_descriptor ARROW
+ {
+ pushFollow(FOLLOW_reference_type_descriptor_in_field_reference3006);
+ reference_type_descriptor179=reference_type_descriptor();
+ state._fsp--;
+
+ stream_reference_type_descriptor.add(reference_type_descriptor179.getTree());
+ ARROW180=(Token)match(input,ARROW,FOLLOW_ARROW_in_field_reference3008);
+ stream_ARROW.add(ARROW180);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_member_name_in_field_reference3012);
+ member_name181=member_name();
+ state._fsp--;
+
+ stream_member_name.add(member_name181.getTree());
+ COLON182=(Token)match(input,COLON,FOLLOW_COLON_in_field_reference3014);
+ stream_COLON.add(COLON182);
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_field_reference3016);
+ nonvoid_type_descriptor183=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor183.getTree());
+ // AST REWRITE
+ // elements: reference_type_descriptor, nonvoid_type_descriptor, member_name
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 708:3: -> ( reference_type_descriptor )? member_name nonvoid_type_descriptor
+ {
+ // smaliParser.g:708:6: ( reference_type_descriptor )?
+ if ( stream_reference_type_descriptor.hasNext() ) {
+ adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree());
+ }
+ stream_reference_type_descriptor.reset();
+
+ adaptor.addChild(root_0, stream_member_name.nextTree());
+ adaptor.addChild(root_0, stream_nonvoid_type_descriptor.nextTree());
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "field_reference"
+
+
+ public static class label_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "label"
+ // smaliParser.g:710:1: label : COLON simple_name -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name ) ;
+ public final smaliParser.label_return label() throws RecognitionException {
+ smaliParser.label_return retval = new smaliParser.label_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token COLON184=null;
+ ParserRuleReturnScope simple_name185 =null;
+
+ CommonTree COLON184_tree=null;
+ RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+ RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name");
+
+ try {
+ // smaliParser.g:711:3: ( COLON simple_name -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name ) )
+ // smaliParser.g:711:5: COLON simple_name
+ {
+ COLON184=(Token)match(input,COLON,FOLLOW_COLON_in_label3037);
+ stream_COLON.add(COLON184);
+
+ pushFollow(FOLLOW_simple_name_in_label3039);
+ simple_name185=simple_name();
+ state._fsp--;
+
+ stream_simple_name.add(simple_name185.getTree());
+ // AST REWRITE
+ // elements: simple_name
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 711:23: -> ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name )
+ {
+ // smaliParser.g:711:26: ^( I_LABEL[$COLON, \"I_LABEL\"] simple_name )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LABEL, COLON184, "I_LABEL"), root_1);
+ adaptor.addChild(root_1, stream_simple_name.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "label"
+
+
+ public static class label_ref_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "label_ref"
+ // smaliParser.g:713:1: label_ref : COLON simple_name -> simple_name ;
+ public final smaliParser.label_ref_return label_ref() throws RecognitionException {
+ smaliParser.label_ref_return retval = new smaliParser.label_ref_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token COLON186=null;
+ ParserRuleReturnScope simple_name187 =null;
+
+ CommonTree COLON186_tree=null;
+ RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+ RewriteRuleSubtreeStream stream_simple_name=new RewriteRuleSubtreeStream(adaptor,"rule simple_name");
+
+ try {
+ // smaliParser.g:714:3: ( COLON simple_name -> simple_name )
+ // smaliParser.g:714:5: COLON simple_name
+ {
+ COLON186=(Token)match(input,COLON,FOLLOW_COLON_in_label_ref3058);
+ stream_COLON.add(COLON186);
+
+ pushFollow(FOLLOW_simple_name_in_label_ref3060);
+ simple_name187=simple_name();
+ state._fsp--;
+
+ stream_simple_name.add(simple_name187.getTree());
+ // AST REWRITE
+ // elements: simple_name
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 714:23: -> simple_name
+ {
+ adaptor.addChild(root_0, stream_simple_name.nextTree());
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "label_ref"
+
+
+ public static class register_list_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "register_list"
+ // smaliParser.g:716:1: register_list : ( REGISTER ( COMMA REGISTER )* -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) | -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) );
+ public final smaliParser.register_list_return register_list() throws RecognitionException {
+ smaliParser.register_list_return retval = new smaliParser.register_list_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token REGISTER188=null;
+ Token COMMA189=null;
+ Token REGISTER190=null;
+
+ CommonTree REGISTER188_tree=null;
+ CommonTree COMMA189_tree=null;
+ CommonTree REGISTER190_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+
+ try {
+ // smaliParser.g:717:3: ( REGISTER ( COMMA REGISTER )* -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* ) | -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ) )
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+ if ( (LA35_0==REGISTER) ) {
+ alt35=1;
+ }
+ else if ( (LA35_0==CLOSE_BRACE) ) {
+ alt35=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 0, input);
+ throw nvae;
+ }
+
+ switch (alt35) {
+ case 1 :
+ // smaliParser.g:717:5: REGISTER ( COMMA REGISTER )*
+ {
+ REGISTER188=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_list3074);
+ stream_REGISTER.add(REGISTER188);
+
+ // smaliParser.g:717:14: ( COMMA REGISTER )*
+ loop34:
+ while (true) {
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+ if ( (LA34_0==COMMA) ) {
+ alt34=1;
+ }
+
+ switch (alt34) {
+ case 1 :
+ // smaliParser.g:717:15: COMMA REGISTER
+ {
+ COMMA189=(Token)match(input,COMMA,FOLLOW_COMMA_in_register_list3077);
+ stream_COMMA.add(COMMA189);
+
+ REGISTER190=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_list3079);
+ stream_REGISTER.add(REGISTER190);
+
+ }
+ break;
+
+ default :
+ break loop34;
+ }
+ }
+
+ // AST REWRITE
+ // elements: REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 717:32: -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* )
+ {
+ // smaliParser.g:717:35: ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] ( REGISTER )* )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_LIST, (retval.start), "I_REGISTER_LIST"), root_1);
+ // smaliParser.g:717:80: ( REGISTER )*
+ while ( stream_REGISTER.hasNext() ) {
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ }
+ stream_REGISTER.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:718:5:
+ {
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 718:5: -> ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] )
+ {
+ // smaliParser.g:718:7: ^( I_REGISTER_LIST[$start, \"I_REGISTER_LIST\"] )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_LIST, (retval.start), "I_REGISTER_LIST"), root_1);
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "register_list"
+
+
+ public static class register_range_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "register_range"
+ // smaliParser.g:720:1: register_range : (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )? -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? ) ;
+ public final smaliParser.register_range_return register_range() throws RecognitionException {
+ smaliParser.register_range_return retval = new smaliParser.register_range_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token startreg=null;
+ Token endreg=null;
+ Token DOTDOT191=null;
+
+ CommonTree startreg_tree=null;
+ CommonTree endreg_tree=null;
+ CommonTree DOTDOT191_tree=null;
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT");
+
+ try {
+ // smaliParser.g:721:3: ( (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )? -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? ) )
+ // smaliParser.g:721:5: (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )?
+ {
+ // smaliParser.g:721:5: (startreg= REGISTER ( DOTDOT endreg= REGISTER )? )?
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+ if ( (LA37_0==REGISTER) ) {
+ alt37=1;
+ }
+ switch (alt37) {
+ case 1 :
+ // smaliParser.g:721:6: startreg= REGISTER ( DOTDOT endreg= REGISTER )?
+ {
+ startreg=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_range3114);
+ stream_REGISTER.add(startreg);
+
+ // smaliParser.g:721:24: ( DOTDOT endreg= REGISTER )?
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+ if ( (LA36_0==DOTDOT) ) {
+ alt36=1;
+ }
+ switch (alt36) {
+ case 1 :
+ // smaliParser.g:721:25: DOTDOT endreg= REGISTER
+ {
+ DOTDOT191=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_register_range3117);
+ stream_DOTDOT.add(DOTDOT191);
+
+ endreg=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_register_range3121);
+ stream_REGISTER.add(endreg);
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+
+ // AST REWRITE
+ // elements: startreg, endreg
+ // token labels: startreg, endreg
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleTokenStream stream_startreg=new RewriteRuleTokenStream(adaptor,"token startreg",startreg);
+ RewriteRuleTokenStream stream_endreg=new RewriteRuleTokenStream(adaptor,"token endreg",endreg);
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 721:52: -> ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? )
+ {
+ // smaliParser.g:721:55: ^( I_REGISTER_RANGE[$start, \"I_REGISTER_RANGE\"] ( $startreg)? ( $endreg)? )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_REGISTER_RANGE, (retval.start), "I_REGISTER_RANGE"), root_1);
+ // smaliParser.g:721:103: ( $startreg)?
+ if ( stream_startreg.hasNext() ) {
+ adaptor.addChild(root_1, stream_startreg.nextNode());
+ }
+ stream_startreg.reset();
+
+ // smaliParser.g:721:114: ( $endreg)?
+ if ( stream_endreg.hasNext() ) {
+ adaptor.addChild(root_1, stream_endreg.nextNode());
+ }
+ stream_endreg.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "register_range"
+
+
+ public static class verification_error_reference_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "verification_error_reference"
+ // smaliParser.g:723:1: verification_error_reference : ( CLASS_DESCRIPTOR | field_reference | method_reference );
+ public final smaliParser.verification_error_reference_return verification_error_reference() throws RecognitionException {
+ smaliParser.verification_error_reference_return retval = new smaliParser.verification_error_reference_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token CLASS_DESCRIPTOR192=null;
+ ParserRuleReturnScope field_reference193 =null;
+ ParserRuleReturnScope method_reference194 =null;
+
+ CommonTree CLASS_DESCRIPTOR192_tree=null;
+
+ try {
+ // smaliParser.g:724:3: ( CLASS_DESCRIPTOR | field_reference | method_reference )
+ int alt38=3;
+ alt38 = dfa38.predict(input);
+ switch (alt38) {
+ case 1 :
+ // smaliParser.g:724:5: CLASS_DESCRIPTOR
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ CLASS_DESCRIPTOR192=(Token)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3150);
+ CLASS_DESCRIPTOR192_tree = (CommonTree)adaptor.create(CLASS_DESCRIPTOR192);
+ adaptor.addChild(root_0, CLASS_DESCRIPTOR192_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:724:24: field_reference
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_field_reference_in_verification_error_reference3154);
+ field_reference193=field_reference();
+ state._fsp--;
+
+ adaptor.addChild(root_0, field_reference193.getTree());
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:724:42: method_reference
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_method_reference_in_verification_error_reference3158);
+ method_reference194=method_reference();
+ state._fsp--;
+
+ adaptor.addChild(root_0, method_reference194.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "verification_error_reference"
+
+
+ public static class catch_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "catch_directive"
+ // smaliParser.g:726:1: catch_directive : CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using) ;
+ public final smaliParser.catch_directive_return catch_directive() throws RecognitionException {
+ smaliParser.catch_directive_return retval = new smaliParser.catch_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token CATCH_DIRECTIVE195=null;
+ Token OPEN_BRACE197=null;
+ Token DOTDOT198=null;
+ Token CLOSE_BRACE199=null;
+ ParserRuleReturnScope from =null;
+ ParserRuleReturnScope to =null;
+ ParserRuleReturnScope using =null;
+ ParserRuleReturnScope nonvoid_type_descriptor196 =null;
+
+ CommonTree CATCH_DIRECTIVE195_tree=null;
+ CommonTree OPEN_BRACE197_tree=null;
+ CommonTree DOTDOT198_tree=null;
+ CommonTree CLOSE_BRACE199_tree=null;
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT");
+ RewriteRuleTokenStream stream_CATCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CATCH_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+ try {
+ // smaliParser.g:727:3: ( CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using) )
+ // smaliParser.g:727:5: CATCH_DIRECTIVE nonvoid_type_descriptor OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref
+ {
+ CATCH_DIRECTIVE195=(Token)match(input,CATCH_DIRECTIVE,FOLLOW_CATCH_DIRECTIVE_in_catch_directive3168);
+ stream_CATCH_DIRECTIVE.add(CATCH_DIRECTIVE195);
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive3170);
+ nonvoid_type_descriptor196=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor196.getTree());
+ OPEN_BRACE197=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_catch_directive3172);
+ stream_OPEN_BRACE.add(OPEN_BRACE197);
+
+ pushFollow(FOLLOW_label_ref_in_catch_directive3176);
+ from=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(from.getTree());
+ DOTDOT198=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_catch_directive3178);
+ stream_DOTDOT.add(DOTDOT198);
+
+ pushFollow(FOLLOW_label_ref_in_catch_directive3182);
+ to=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(to.getTree());
+ CLOSE_BRACE199=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_catch_directive3184);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE199);
+
+ pushFollow(FOLLOW_label_ref_in_catch_directive3188);
+ using=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(using.getTree());
+ // AST REWRITE
+ // elements: from, nonvoid_type_descriptor, using, to
+ // token labels:
+ // rule labels: using, from, to, retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_using=new RewriteRuleSubtreeStream(adaptor,"rule using",using!=null?using.getTree():null);
+ RewriteRuleSubtreeStream stream_from=new RewriteRuleSubtreeStream(adaptor,"rule from",from!=null?from.getTree():null);
+ RewriteRuleSubtreeStream stream_to=new RewriteRuleSubtreeStream(adaptor,"rule to",to!=null?to.getTree():null);
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 728:5: -> ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using)
+ {
+ // smaliParser.g:728:8: ^( I_CATCH[$start, \"I_CATCH\"] nonvoid_type_descriptor $from $to $using)
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCH, (retval.start), "I_CATCH"), root_1);
+ adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+ adaptor.addChild(root_1, stream_from.nextTree());
+ adaptor.addChild(root_1, stream_to.nextTree());
+ adaptor.addChild(root_1, stream_using.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "catch_directive"
+
+
+ public static class catchall_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "catchall_directive"
+ // smaliParser.g:730:1: catchall_directive : CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using) ;
+ public final smaliParser.catchall_directive_return catchall_directive() throws RecognitionException {
+ smaliParser.catchall_directive_return retval = new smaliParser.catchall_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token CATCHALL_DIRECTIVE200=null;
+ Token OPEN_BRACE201=null;
+ Token DOTDOT202=null;
+ Token CLOSE_BRACE203=null;
+ ParserRuleReturnScope from =null;
+ ParserRuleReturnScope to =null;
+ ParserRuleReturnScope using =null;
+
+ CommonTree CATCHALL_DIRECTIVE200_tree=null;
+ CommonTree OPEN_BRACE201_tree=null;
+ CommonTree DOTDOT202_tree=null;
+ CommonTree CLOSE_BRACE203_tree=null;
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleTokenStream stream_DOTDOT=new RewriteRuleTokenStream(adaptor,"token DOTDOT");
+ RewriteRuleTokenStream stream_CATCHALL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token CATCHALL_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:731:3: ( CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using) )
+ // smaliParser.g:731:5: CATCHALL_DIRECTIVE OPEN_BRACE from= label_ref DOTDOT to= label_ref CLOSE_BRACE using= label_ref
+ {
+ CATCHALL_DIRECTIVE200=(Token)match(input,CATCHALL_DIRECTIVE,FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3220);
+ stream_CATCHALL_DIRECTIVE.add(CATCHALL_DIRECTIVE200);
+
+ OPEN_BRACE201=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_catchall_directive3222);
+ stream_OPEN_BRACE.add(OPEN_BRACE201);
+
+ pushFollow(FOLLOW_label_ref_in_catchall_directive3226);
+ from=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(from.getTree());
+ DOTDOT202=(Token)match(input,DOTDOT,FOLLOW_DOTDOT_in_catchall_directive3228);
+ stream_DOTDOT.add(DOTDOT202);
+
+ pushFollow(FOLLOW_label_ref_in_catchall_directive3232);
+ to=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(to.getTree());
+ CLOSE_BRACE203=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_catchall_directive3234);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE203);
+
+ pushFollow(FOLLOW_label_ref_in_catchall_directive3238);
+ using=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(using.getTree());
+ // AST REWRITE
+ // elements: using, to, from
+ // token labels:
+ // rule labels: using, from, to, retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_using=new RewriteRuleSubtreeStream(adaptor,"rule using",using!=null?using.getTree():null);
+ RewriteRuleSubtreeStream stream_from=new RewriteRuleSubtreeStream(adaptor,"rule from",from!=null?from.getTree():null);
+ RewriteRuleSubtreeStream stream_to=new RewriteRuleSubtreeStream(adaptor,"rule to",to!=null?to.getTree():null);
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 732:5: -> ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using)
+ {
+ // smaliParser.g:732:8: ^( I_CATCHALL[$start, \"I_CATCHALL\"] $from $to $using)
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_CATCHALL, (retval.start), "I_CATCHALL"), root_1);
+ adaptor.addChild(root_1, stream_from.nextTree());
+ adaptor.addChild(root_1, stream_to.nextTree());
+ adaptor.addChild(root_1, stream_using.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "catchall_directive"
+
+
+ public static class parameter_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "parameter_directive"
+ // smaliParser.g:738:1: parameter_directive : PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) ;
+ public final smaliParser.parameter_directive_return parameter_directive() throws RecognitionException {
+ smaliParser.parameter_directive_return retval = new smaliParser.parameter_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token PARAMETER_DIRECTIVE204=null;
+ Token REGISTER205=null;
+ Token COMMA206=null;
+ Token STRING_LITERAL207=null;
+ Token END_PARAMETER_DIRECTIVE209=null;
+ ParserRuleReturnScope annotation208 =null;
+
+ CommonTree PARAMETER_DIRECTIVE204_tree=null;
+ CommonTree REGISTER205_tree=null;
+ CommonTree COMMA206_tree=null;
+ CommonTree STRING_LITERAL207_tree=null;
+ CommonTree END_PARAMETER_DIRECTIVE209_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_PARAMETER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PARAMETER_DIRECTIVE");
+ RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+ RewriteRuleTokenStream stream_END_PARAMETER_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_PARAMETER_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_annotation=new RewriteRuleSubtreeStream(adaptor,"rule annotation");
+
+ List<CommonTree> annotations = new ArrayList<CommonTree>();
+ try {
+ // smaliParser.g:740:3: ( PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) ) )
+ // smaliParser.g:740:5: PARAMETER_DIRECTIVE REGISTER ( COMMA STRING_LITERAL )? ({...}? annotation )* ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) )
+ {
+ PARAMETER_DIRECTIVE204=(Token)match(input,PARAMETER_DIRECTIVE,FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3277);
+ stream_PARAMETER_DIRECTIVE.add(PARAMETER_DIRECTIVE204);
+
+ REGISTER205=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_parameter_directive3279);
+ stream_REGISTER.add(REGISTER205);
+
+ // smaliParser.g:740:34: ( COMMA STRING_LITERAL )?
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+ if ( (LA39_0==COMMA) ) {
+ alt39=1;
+ }
+ switch (alt39) {
+ case 1 :
+ // smaliParser.g:740:35: COMMA STRING_LITERAL
+ {
+ COMMA206=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameter_directive3282);
+ stream_COMMA.add(COMMA206);
+
+ STRING_LITERAL207=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_parameter_directive3284);
+ stream_STRING_LITERAL.add(STRING_LITERAL207);
+
+ }
+ break;
+
+ }
+
+ // smaliParser.g:741:5: ({...}? annotation )*
+ loop40:
+ while (true) {
+ int alt40=2;
+ alt40 = dfa40.predict(input);
+ switch (alt40) {
+ case 1 :
+ // smaliParser.g:741:6: {...}? annotation
+ {
+ if ( !((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {
+ throw new FailedPredicateException(input, "parameter_directive", "input.LA(1) == ANNOTATION_DIRECTIVE");
+ }
+ pushFollow(FOLLOW_annotation_in_parameter_directive3295);
+ annotation208=annotation();
+ state._fsp--;
+
+ stream_annotation.add(annotation208.getTree());
+ annotations.add((annotation208!=null?((CommonTree)annotation208.getTree()):null));
+ }
+ break;
+
+ default :
+ break loop40;
+ }
+ }
+
+ // smaliParser.g:743:5: ( END_PARAMETER_DIRECTIVE -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) ) | -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) ) )
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+ if ( (LA41_0==END_PARAMETER_DIRECTIVE) ) {
+ alt41=1;
+ }
+ else if ( (LA41_0==ANNOTATION_DIRECTIVE||LA41_0==ARRAY_DATA_DIRECTIVE||(LA41_0 >= CATCHALL_DIRECTIVE && LA41_0 <= CATCH_DIRECTIVE)||LA41_0==COLON||(LA41_0 >= END_LOCAL_DIRECTIVE && LA41_0 <= END_METHOD_DIRECTIVE)||LA41_0==EPILOGUE_DIRECTIVE||(LA41_0 >= INSTRUCTION_FORMAT10t && LA41_0 <= INSTRUCTION_FORMAT51l)||(LA41_0 >= LINE_DIRECTIVE && LA41_0 <= LOCAL_DIRECTIVE)||(LA41_0 >= PACKED_SWITCH_DIRECTIVE && LA41_0 <= PARAMETER_DIRECTIVE)||LA41_0==PROLOGUE_DIRECTIVE||(LA41_0 >= REGISTERS_DIRECTIVE && LA41_0 <= RESTART_LOCAL_DIRECTIVE)||(LA41_0 >= SOURCE_DIRECTIVE && LA41_0 <= SPARSE_SWITCH_DIRECTIVE)) ) {
+ alt41=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 41, 0, input);
+ throw nvae;
+ }
+
+ switch (alt41) {
+ case 1 :
+ // smaliParser.g:743:7: END_PARAMETER_DIRECTIVE
+ {
+ END_PARAMETER_DIRECTIVE209=(Token)match(input,END_PARAMETER_DIRECTIVE,FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3308);
+ stream_END_PARAMETER_DIRECTIVE.add(END_PARAMETER_DIRECTIVE209);
+
+ // AST REWRITE
+ // elements: STRING_LITERAL, annotation, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 744:7: -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) )
+ {
+ // smaliParser.g:744:10: ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ( annotation )* ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETER, (retval.start), "I_PARAMETER"), root_1);
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ // smaliParser.g:744:56: ( STRING_LITERAL )?
+ if ( stream_STRING_LITERAL.hasNext() ) {
+ adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+ }
+ stream_STRING_LITERAL.reset();
+
+ // smaliParser.g:744:72: ^( I_ANNOTATIONS ( annotation )* )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2);
+ // smaliParser.g:744:88: ( annotation )*
+ while ( stream_annotation.hasNext() ) {
+ adaptor.addChild(root_2, stream_annotation.nextTree());
+ }
+ stream_annotation.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:745:19:
+ {
+ statements_and_directives_stack.peek().methodAnnotations.addAll(annotations);
+ // AST REWRITE
+ // elements: STRING_LITERAL, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 746:7: -> ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) )
+ {
+ // smaliParser.g:746:10: ^( I_PARAMETER[$start, \"I_PARAMETER\"] REGISTER ( STRING_LITERAL )? ^( I_ANNOTATIONS ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PARAMETER, (retval.start), "I_PARAMETER"), root_1);
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ // smaliParser.g:746:56: ( STRING_LITERAL )?
+ if ( stream_STRING_LITERAL.hasNext() ) {
+ adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+ }
+ stream_STRING_LITERAL.reset();
+
+ // smaliParser.g:746:72: ^( I_ANNOTATIONS )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ANNOTATIONS, "I_ANNOTATIONS"), root_2);
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "parameter_directive"
+
+
+ public static class debug_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "debug_directive"
+ // smaliParser.g:749:1: debug_directive : ( line_directive | local_directive | end_local_directive | restart_local_directive | prologue_directive | epilogue_directive | source_directive );
+ public final smaliParser.debug_directive_return debug_directive() throws RecognitionException {
+ smaliParser.debug_directive_return retval = new smaliParser.debug_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ ParserRuleReturnScope line_directive210 =null;
+ ParserRuleReturnScope local_directive211 =null;
+ ParserRuleReturnScope end_local_directive212 =null;
+ ParserRuleReturnScope restart_local_directive213 =null;
+ ParserRuleReturnScope prologue_directive214 =null;
+ ParserRuleReturnScope epilogue_directive215 =null;
+ ParserRuleReturnScope source_directive216 =null;
+
+
+ try {
+ // smaliParser.g:750:3: ( line_directive | local_directive | end_local_directive | restart_local_directive | prologue_directive | epilogue_directive | source_directive )
+ int alt42=7;
+ switch ( input.LA(1) ) {
+ case LINE_DIRECTIVE:
+ {
+ alt42=1;
+ }
+ break;
+ case LOCAL_DIRECTIVE:
+ {
+ alt42=2;
+ }
+ break;
+ case END_LOCAL_DIRECTIVE:
+ {
+ alt42=3;
+ }
+ break;
+ case RESTART_LOCAL_DIRECTIVE:
+ {
+ alt42=4;
+ }
+ break;
+ case PROLOGUE_DIRECTIVE:
+ {
+ alt42=5;
+ }
+ break;
+ case EPILOGUE_DIRECTIVE:
+ {
+ alt42=6;
+ }
+ break;
+ case SOURCE_DIRECTIVE:
+ {
+ alt42=7;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 42, 0, input);
+ throw nvae;
+ }
+ switch (alt42) {
+ case 1 :
+ // smaliParser.g:750:5: line_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_line_directive_in_debug_directive3381);
+ line_directive210=line_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, line_directive210.getTree());
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:751:5: local_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_local_directive_in_debug_directive3387);
+ local_directive211=local_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, local_directive211.getTree());
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:752:5: end_local_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_end_local_directive_in_debug_directive3393);
+ end_local_directive212=end_local_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, end_local_directive212.getTree());
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:753:5: restart_local_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_restart_local_directive_in_debug_directive3399);
+ restart_local_directive213=restart_local_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, restart_local_directive213.getTree());
+
+ }
+ break;
+ case 5 :
+ // smaliParser.g:754:5: prologue_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_prologue_directive_in_debug_directive3405);
+ prologue_directive214=prologue_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, prologue_directive214.getTree());
+
+ }
+ break;
+ case 6 :
+ // smaliParser.g:755:5: epilogue_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_epilogue_directive_in_debug_directive3411);
+ epilogue_directive215=epilogue_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, epilogue_directive215.getTree());
+
+ }
+ break;
+ case 7 :
+ // smaliParser.g:756:5: source_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_source_directive_in_debug_directive3417);
+ source_directive216=source_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, source_directive216.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "debug_directive"
+
+
+ public static class line_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "line_directive"
+ // smaliParser.g:758:1: line_directive : LINE_DIRECTIVE integral_literal -> ^( I_LINE[$start, \"I_LINE\"] integral_literal ) ;
+ public final smaliParser.line_directive_return line_directive() throws RecognitionException {
+ smaliParser.line_directive_return retval = new smaliParser.line_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token LINE_DIRECTIVE217=null;
+ ParserRuleReturnScope integral_literal218 =null;
+
+ CommonTree LINE_DIRECTIVE217_tree=null;
+ RewriteRuleTokenStream stream_LINE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LINE_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+ try {
+ // smaliParser.g:759:3: ( LINE_DIRECTIVE integral_literal -> ^( I_LINE[$start, \"I_LINE\"] integral_literal ) )
+ // smaliParser.g:759:5: LINE_DIRECTIVE integral_literal
+ {
+ LINE_DIRECTIVE217=(Token)match(input,LINE_DIRECTIVE,FOLLOW_LINE_DIRECTIVE_in_line_directive3427);
+ stream_LINE_DIRECTIVE.add(LINE_DIRECTIVE217);
+
+ pushFollow(FOLLOW_integral_literal_in_line_directive3429);
+ integral_literal218=integral_literal();
+ state._fsp--;
+
+ stream_integral_literal.add(integral_literal218.getTree());
+ // AST REWRITE
+ // elements: integral_literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 760:5: -> ^( I_LINE[$start, \"I_LINE\"] integral_literal )
+ {
+ // smaliParser.g:760:8: ^( I_LINE[$start, \"I_LINE\"] integral_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LINE, (retval.start), "I_LINE"), root_1);
+ adaptor.addChild(root_1, stream_integral_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "line_directive"
+
+
+ public static class local_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "local_directive"
+ // smaliParser.g:762:1: local_directive : LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )? -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? ) ;
+ public final smaliParser.local_directive_return local_directive() throws RecognitionException {
+ smaliParser.local_directive_return retval = new smaliParser.local_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token name=null;
+ Token signature=null;
+ Token LOCAL_DIRECTIVE219=null;
+ Token REGISTER220=null;
+ Token COMMA221=null;
+ Token NULL_LITERAL222=null;
+ Token COLON223=null;
+ Token VOID_TYPE224=null;
+ Token COMMA226=null;
+ ParserRuleReturnScope nonvoid_type_descriptor225 =null;
+
+ CommonTree name_tree=null;
+ CommonTree signature_tree=null;
+ CommonTree LOCAL_DIRECTIVE219_tree=null;
+ CommonTree REGISTER220_tree=null;
+ CommonTree COMMA221_tree=null;
+ CommonTree NULL_LITERAL222_tree=null;
+ CommonTree COLON223_tree=null;
+ CommonTree VOID_TYPE224_tree=null;
+ CommonTree COMMA226_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token LOCAL_DIRECTIVE");
+ RewriteRuleTokenStream stream_VOID_TYPE=new RewriteRuleTokenStream(adaptor,"token VOID_TYPE");
+ RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+ RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
+ RewriteRuleTokenStream stream_NULL_LITERAL=new RewriteRuleTokenStream(adaptor,"token NULL_LITERAL");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+ try {
+ // smaliParser.g:763:3: ( LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )? -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? ) )
+ // smaliParser.g:763:5: LOCAL_DIRECTIVE REGISTER ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )?
+ {
+ LOCAL_DIRECTIVE219=(Token)match(input,LOCAL_DIRECTIVE,FOLLOW_LOCAL_DIRECTIVE_in_local_directive3452);
+ stream_LOCAL_DIRECTIVE.add(LOCAL_DIRECTIVE219);
+
+ REGISTER220=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_local_directive3454);
+ stream_REGISTER.add(REGISTER220);
+
+ // smaliParser.g:763:30: ( COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )? )?
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+ if ( (LA46_0==COMMA) ) {
+ alt46=1;
+ }
+ switch (alt46) {
+ case 1 :
+ // smaliParser.g:763:31: COMMA ( NULL_LITERAL |name= STRING_LITERAL ) COLON ( VOID_TYPE | nonvoid_type_descriptor ) ( COMMA signature= STRING_LITERAL )?
+ {
+ COMMA221=(Token)match(input,COMMA,FOLLOW_COMMA_in_local_directive3457);
+ stream_COMMA.add(COMMA221);
+
+ // smaliParser.g:763:37: ( NULL_LITERAL |name= STRING_LITERAL )
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+ if ( (LA43_0==NULL_LITERAL) ) {
+ alt43=1;
+ }
+ else if ( (LA43_0==STRING_LITERAL) ) {
+ alt43=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 43, 0, input);
+ throw nvae;
+ }
+
+ switch (alt43) {
+ case 1 :
+ // smaliParser.g:763:38: NULL_LITERAL
+ {
+ NULL_LITERAL222=(Token)match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_local_directive3460);
+ stream_NULL_LITERAL.add(NULL_LITERAL222);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:763:53: name= STRING_LITERAL
+ {
+ name=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_local_directive3466);
+ stream_STRING_LITERAL.add(name);
+
+ }
+ break;
+
+ }
+
+ COLON223=(Token)match(input,COLON,FOLLOW_COLON_in_local_directive3469);
+ stream_COLON.add(COLON223);
+
+ // smaliParser.g:763:80: ( VOID_TYPE | nonvoid_type_descriptor )
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+ if ( (LA44_0==VOID_TYPE) ) {
+ alt44=1;
+ }
+ else if ( (LA44_0==ARRAY_TYPE_PREFIX||LA44_0==CLASS_DESCRIPTOR||LA44_0==PRIMITIVE_TYPE) ) {
+ alt44=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 44, 0, input);
+ throw nvae;
+ }
+
+ switch (alt44) {
+ case 1 :
+ // smaliParser.g:763:81: VOID_TYPE
+ {
+ VOID_TYPE224=(Token)match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_local_directive3472);
+ stream_VOID_TYPE.add(VOID_TYPE224);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:763:93: nonvoid_type_descriptor
+ {
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_local_directive3476);
+ nonvoid_type_descriptor225=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor225.getTree());
+ }
+ break;
+
+ }
+
+ // smaliParser.g:764:31: ( COMMA signature= STRING_LITERAL )?
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+ if ( (LA45_0==COMMA) ) {
+ alt45=1;
+ }
+ switch (alt45) {
+ case 1 :
+ // smaliParser.g:764:32: COMMA signature= STRING_LITERAL
+ {
+ COMMA226=(Token)match(input,COMMA,FOLLOW_COMMA_in_local_directive3510);
+ stream_COMMA.add(COMMA226);
+
+ signature=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_local_directive3514);
+ stream_STRING_LITERAL.add(signature);
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+
+ // AST REWRITE
+ // elements: name, NULL_LITERAL, nonvoid_type_descriptor, REGISTER, signature
+ // token labels: signature, name
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleTokenStream stream_signature=new RewriteRuleTokenStream(adaptor,"token signature",signature);
+ RewriteRuleTokenStream stream_name=new RewriteRuleTokenStream(adaptor,"token name",name);
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 765:5: -> ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? )
+ {
+ // smaliParser.g:765:8: ^( I_LOCAL[$start, \"I_LOCAL\"] REGISTER ( NULL_LITERAL )? ( $name)? ( nonvoid_type_descriptor )? ( $signature)? )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_LOCAL, (retval.start), "I_LOCAL"), root_1);
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ // smaliParser.g:765:46: ( NULL_LITERAL )?
+ if ( stream_NULL_LITERAL.hasNext() ) {
+ adaptor.addChild(root_1, stream_NULL_LITERAL.nextNode());
+ }
+ stream_NULL_LITERAL.reset();
+
+ // smaliParser.g:765:61: ( $name)?
+ if ( stream_name.hasNext() ) {
+ adaptor.addChild(root_1, stream_name.nextNode());
+ }
+ stream_name.reset();
+
+ // smaliParser.g:765:67: ( nonvoid_type_descriptor )?
+ if ( stream_nonvoid_type_descriptor.hasNext() ) {
+ adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+ }
+ stream_nonvoid_type_descriptor.reset();
+
+ // smaliParser.g:765:93: ( $signature)?
+ if ( stream_signature.hasNext() ) {
+ adaptor.addChild(root_1, stream_signature.nextNode());
+ }
+ stream_signature.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "local_directive"
+
+
+ public static class end_local_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "end_local_directive"
+ // smaliParser.g:767:1: end_local_directive : END_LOCAL_DIRECTIVE REGISTER -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER ) ;
+ public final smaliParser.end_local_directive_return end_local_directive() throws RecognitionException {
+ smaliParser.end_local_directive_return retval = new smaliParser.end_local_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token END_LOCAL_DIRECTIVE227=null;
+ Token REGISTER228=null;
+
+ CommonTree END_LOCAL_DIRECTIVE227_tree=null;
+ CommonTree REGISTER228_tree=null;
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_END_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_LOCAL_DIRECTIVE");
+
+ try {
+ // smaliParser.g:768:3: ( END_LOCAL_DIRECTIVE REGISTER -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER ) )
+ // smaliParser.g:768:5: END_LOCAL_DIRECTIVE REGISTER
+ {
+ END_LOCAL_DIRECTIVE227=(Token)match(input,END_LOCAL_DIRECTIVE,FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3556);
+ stream_END_LOCAL_DIRECTIVE.add(END_LOCAL_DIRECTIVE227);
+
+ REGISTER228=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_end_local_directive3558);
+ stream_REGISTER.add(REGISTER228);
+
+ // AST REWRITE
+ // elements: REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 769:5: -> ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER )
+ {
+ // smaliParser.g:769:8: ^( I_END_LOCAL[$start, \"I_END_LOCAL\"] REGISTER )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_END_LOCAL, (retval.start), "I_END_LOCAL"), root_1);
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "end_local_directive"
+
+
+ public static class restart_local_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "restart_local_directive"
+ // smaliParser.g:771:1: restart_local_directive : RESTART_LOCAL_DIRECTIVE REGISTER -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER ) ;
+ public final smaliParser.restart_local_directive_return restart_local_directive() throws RecognitionException {
+ smaliParser.restart_local_directive_return retval = new smaliParser.restart_local_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token RESTART_LOCAL_DIRECTIVE229=null;
+ Token REGISTER230=null;
+
+ CommonTree RESTART_LOCAL_DIRECTIVE229_tree=null;
+ CommonTree REGISTER230_tree=null;
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_RESTART_LOCAL_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token RESTART_LOCAL_DIRECTIVE");
+
+ try {
+ // smaliParser.g:772:3: ( RESTART_LOCAL_DIRECTIVE REGISTER -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER ) )
+ // smaliParser.g:772:5: RESTART_LOCAL_DIRECTIVE REGISTER
+ {
+ RESTART_LOCAL_DIRECTIVE229=(Token)match(input,RESTART_LOCAL_DIRECTIVE,FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3581);
+ stream_RESTART_LOCAL_DIRECTIVE.add(RESTART_LOCAL_DIRECTIVE229);
+
+ REGISTER230=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_restart_local_directive3583);
+ stream_REGISTER.add(REGISTER230);
+
+ // AST REWRITE
+ // elements: REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 773:5: -> ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER )
+ {
+ // smaliParser.g:773:8: ^( I_RESTART_LOCAL[$start, \"I_RESTART_LOCAL\"] REGISTER )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_RESTART_LOCAL, (retval.start), "I_RESTART_LOCAL"), root_1);
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "restart_local_directive"
+
+
+ public static class prologue_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "prologue_directive"
+ // smaliParser.g:775:1: prologue_directive : PROLOGUE_DIRECTIVE -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] ) ;
+ public final smaliParser.prologue_directive_return prologue_directive() throws RecognitionException {
+ smaliParser.prologue_directive_return retval = new smaliParser.prologue_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token PROLOGUE_DIRECTIVE231=null;
+
+ CommonTree PROLOGUE_DIRECTIVE231_tree=null;
+ RewriteRuleTokenStream stream_PROLOGUE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PROLOGUE_DIRECTIVE");
+
+ try {
+ // smaliParser.g:776:3: ( PROLOGUE_DIRECTIVE -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] ) )
+ // smaliParser.g:776:5: PROLOGUE_DIRECTIVE
+ {
+ PROLOGUE_DIRECTIVE231=(Token)match(input,PROLOGUE_DIRECTIVE,FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3606);
+ stream_PROLOGUE_DIRECTIVE.add(PROLOGUE_DIRECTIVE231);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 777:5: -> ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] )
+ {
+ // smaliParser.g:777:8: ^( I_PROLOGUE[$start, \"I_PROLOGUE\"] )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PROLOGUE, (retval.start), "I_PROLOGUE"), root_1);
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "prologue_directive"
+
+
+ public static class epilogue_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "epilogue_directive"
+ // smaliParser.g:779:1: epilogue_directive : EPILOGUE_DIRECTIVE -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] ) ;
+ public final smaliParser.epilogue_directive_return epilogue_directive() throws RecognitionException {
+ smaliParser.epilogue_directive_return retval = new smaliParser.epilogue_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token EPILOGUE_DIRECTIVE232=null;
+
+ CommonTree EPILOGUE_DIRECTIVE232_tree=null;
+ RewriteRuleTokenStream stream_EPILOGUE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token EPILOGUE_DIRECTIVE");
+
+ try {
+ // smaliParser.g:780:3: ( EPILOGUE_DIRECTIVE -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] ) )
+ // smaliParser.g:780:5: EPILOGUE_DIRECTIVE
+ {
+ EPILOGUE_DIRECTIVE232=(Token)match(input,EPILOGUE_DIRECTIVE,FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3627);
+ stream_EPILOGUE_DIRECTIVE.add(EPILOGUE_DIRECTIVE232);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 781:5: -> ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] )
+ {
+ // smaliParser.g:781:8: ^( I_EPILOGUE[$start, \"I_EPILOGUE\"] )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_EPILOGUE, (retval.start), "I_EPILOGUE"), root_1);
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "epilogue_directive"
+
+
+ public static class source_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "source_directive"
+ // smaliParser.g:783:1: source_directive : SOURCE_DIRECTIVE ( STRING_LITERAL )? -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? ) ;
+ public final smaliParser.source_directive_return source_directive() throws RecognitionException {
+ smaliParser.source_directive_return retval = new smaliParser.source_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token SOURCE_DIRECTIVE233=null;
+ Token STRING_LITERAL234=null;
+
+ CommonTree SOURCE_DIRECTIVE233_tree=null;
+ CommonTree STRING_LITERAL234_tree=null;
+ RewriteRuleTokenStream stream_SOURCE_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SOURCE_DIRECTIVE");
+ RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+
+ try {
+ // smaliParser.g:784:3: ( SOURCE_DIRECTIVE ( STRING_LITERAL )? -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? ) )
+ // smaliParser.g:784:5: SOURCE_DIRECTIVE ( STRING_LITERAL )?
+ {
+ SOURCE_DIRECTIVE233=(Token)match(input,SOURCE_DIRECTIVE,FOLLOW_SOURCE_DIRECTIVE_in_source_directive3648);
+ stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE233);
+
+ // smaliParser.g:784:22: ( STRING_LITERAL )?
+ int alt47=2;
+ int LA47_0 = input.LA(1);
+ if ( (LA47_0==STRING_LITERAL) ) {
+ alt47=1;
+ }
+ switch (alt47) {
+ case 1 :
+ // smaliParser.g:784:22: STRING_LITERAL
+ {
+ STRING_LITERAL234=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_source_directive3650);
+ stream_STRING_LITERAL.add(STRING_LITERAL234);
+
+ }
+ break;
+
+ }
+
+ // AST REWRITE
+ // elements: STRING_LITERAL
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 785:5: -> ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? )
+ {
+ // smaliParser.g:785:8: ^( I_SOURCE[$start, \"I_SOURCE\"] ( STRING_LITERAL )? )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SOURCE, (retval.start), "I_SOURCE"), root_1);
+ // smaliParser.g:785:39: ( STRING_LITERAL )?
+ if ( stream_STRING_LITERAL.hasNext() ) {
+ adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+ }
+ stream_STRING_LITERAL.reset();
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "source_directive"
+
+
+ public static class instruction_format12x_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "instruction_format12x"
+ // smaliParser.g:787:1: instruction_format12x : ( INSTRUCTION_FORMAT12x | INSTRUCTION_FORMAT12x_OR_ID -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] );
+ public final smaliParser.instruction_format12x_return instruction_format12x() throws RecognitionException {
+ smaliParser.instruction_format12x_return retval = new smaliParser.instruction_format12x_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT12x235=null;
+ Token INSTRUCTION_FORMAT12x_OR_ID236=null;
+
+ CommonTree INSTRUCTION_FORMAT12x235_tree=null;
+ CommonTree INSTRUCTION_FORMAT12x_OR_ID236_tree=null;
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT12x_OR_ID");
+
+ try {
+ // smaliParser.g:788:3: ( INSTRUCTION_FORMAT12x | INSTRUCTION_FORMAT12x_OR_ID -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID] )
+ int alt48=2;
+ int LA48_0 = input.LA(1);
+ if ( (LA48_0==INSTRUCTION_FORMAT12x) ) {
+ alt48=1;
+ }
+ else if ( (LA48_0==INSTRUCTION_FORMAT12x_OR_ID) ) {
+ alt48=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 48, 0, input);
+ throw nvae;
+ }
+
+ switch (alt48) {
+ case 1 :
+ // smaliParser.g:788:5: INSTRUCTION_FORMAT12x
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT12x235=(Token)match(input,INSTRUCTION_FORMAT12x,FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x3675);
+ INSTRUCTION_FORMAT12x235_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT12x235);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT12x235_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:789:5: INSTRUCTION_FORMAT12x_OR_ID
+ {
+ INSTRUCTION_FORMAT12x_OR_ID236=(Token)match(input,INSTRUCTION_FORMAT12x_OR_ID,FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x3681);
+ stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID236);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 789:33: -> INSTRUCTION_FORMAT12x[$INSTRUCTION_FORMAT12x_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT12x, INSTRUCTION_FORMAT12x_OR_ID236));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "instruction_format12x"
+
+
+ public static class instruction_format22s_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "instruction_format22s"
+ // smaliParser.g:791:1: instruction_format22s : ( INSTRUCTION_FORMAT22s | INSTRUCTION_FORMAT22s_OR_ID -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] );
+ public final smaliParser.instruction_format22s_return instruction_format22s() throws RecognitionException {
+ smaliParser.instruction_format22s_return retval = new smaliParser.instruction_format22s_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT22s237=null;
+ Token INSTRUCTION_FORMAT22s_OR_ID238=null;
+
+ CommonTree INSTRUCTION_FORMAT22s237_tree=null;
+ CommonTree INSTRUCTION_FORMAT22s_OR_ID238_tree=null;
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22s_OR_ID");
+
+ try {
+ // smaliParser.g:792:3: ( INSTRUCTION_FORMAT22s | INSTRUCTION_FORMAT22s_OR_ID -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID] )
+ int alt49=2;
+ int LA49_0 = input.LA(1);
+ if ( (LA49_0==INSTRUCTION_FORMAT22s) ) {
+ alt49=1;
+ }
+ else if ( (LA49_0==INSTRUCTION_FORMAT22s_OR_ID) ) {
+ alt49=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 49, 0, input);
+ throw nvae;
+ }
+
+ switch (alt49) {
+ case 1 :
+ // smaliParser.g:792:5: INSTRUCTION_FORMAT22s
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT22s237=(Token)match(input,INSTRUCTION_FORMAT22s,FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s3696);
+ INSTRUCTION_FORMAT22s237_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT22s237);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT22s237_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:793:5: INSTRUCTION_FORMAT22s_OR_ID
+ {
+ INSTRUCTION_FORMAT22s_OR_ID238=(Token)match(input,INSTRUCTION_FORMAT22s_OR_ID,FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s3702);
+ stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID238);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 793:33: -> INSTRUCTION_FORMAT22s[$INSTRUCTION_FORMAT22s_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT22s, INSTRUCTION_FORMAT22s_OR_ID238));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "instruction_format22s"
+
+
+ public static class instruction_format31i_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "instruction_format31i"
+ // smaliParser.g:795:1: instruction_format31i : ( INSTRUCTION_FORMAT31i | INSTRUCTION_FORMAT31i_OR_ID -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] );
+ public final smaliParser.instruction_format31i_return instruction_format31i() throws RecognitionException {
+ smaliParser.instruction_format31i_return retval = new smaliParser.instruction_format31i_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT31i239=null;
+ Token INSTRUCTION_FORMAT31i_OR_ID240=null;
+
+ CommonTree INSTRUCTION_FORMAT31i239_tree=null;
+ CommonTree INSTRUCTION_FORMAT31i_OR_ID240_tree=null;
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31i_OR_ID");
+
+ try {
+ // smaliParser.g:796:3: ( INSTRUCTION_FORMAT31i | INSTRUCTION_FORMAT31i_OR_ID -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID] )
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+ if ( (LA50_0==INSTRUCTION_FORMAT31i) ) {
+ alt50=1;
+ }
+ else if ( (LA50_0==INSTRUCTION_FORMAT31i_OR_ID) ) {
+ alt50=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 50, 0, input);
+ throw nvae;
+ }
+
+ switch (alt50) {
+ case 1 :
+ // smaliParser.g:796:5: INSTRUCTION_FORMAT31i
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT31i239=(Token)match(input,INSTRUCTION_FORMAT31i,FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i3717);
+ INSTRUCTION_FORMAT31i239_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT31i239);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT31i239_tree);
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:797:5: INSTRUCTION_FORMAT31i_OR_ID
+ {
+ INSTRUCTION_FORMAT31i_OR_ID240=(Token)match(input,INSTRUCTION_FORMAT31i_OR_ID,FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i3723);
+ stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID240);
+
+ // AST REWRITE
+ // elements:
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 797:33: -> INSTRUCTION_FORMAT31i[$INSTRUCTION_FORMAT31i_OR_ID]
+ {
+ adaptor.addChild(root_0, (CommonTree)adaptor.create(INSTRUCTION_FORMAT31i, INSTRUCTION_FORMAT31i_OR_ID240));
+ }
+
+
+ retval.tree = root_0;
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "instruction_format31i"
+
+
+ public static class instruction_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "instruction"
+ // smaliParser.g:801:1: instruction : ( insn_format10t | insn_format10x | insn_format10x_odex | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_field_odex | insn_format21c_string | insn_format21c_type | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_field_odex | insn_format22c_type | insn_format22cs_field | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format35c_method_odex | insn_format35mi_method | insn_format35ms_method | insn_format3rc_method | insn_format3rc_method_odex | insn_format3rc_type | insn_format3rmi_method | insn_format3rms_method | insn_format45cc_method | insn_format4rcc_method | insn_format51l | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive );
+ public final smaliParser.instruction_return instruction() throws RecognitionException {
+ smaliParser.instruction_return retval = new smaliParser.instruction_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ ParserRuleReturnScope insn_format10t241 =null;
+ ParserRuleReturnScope insn_format10x242 =null;
+ ParserRuleReturnScope insn_format10x_odex243 =null;
+ ParserRuleReturnScope insn_format11n244 =null;
+ ParserRuleReturnScope insn_format11x245 =null;
+ ParserRuleReturnScope insn_format12x246 =null;
+ ParserRuleReturnScope insn_format20bc247 =null;
+ ParserRuleReturnScope insn_format20t248 =null;
+ ParserRuleReturnScope insn_format21c_field249 =null;
+ ParserRuleReturnScope insn_format21c_field_odex250 =null;
+ ParserRuleReturnScope insn_format21c_string251 =null;
+ ParserRuleReturnScope insn_format21c_type252 =null;
+ ParserRuleReturnScope insn_format21ih253 =null;
+ ParserRuleReturnScope insn_format21lh254 =null;
+ ParserRuleReturnScope insn_format21s255 =null;
+ ParserRuleReturnScope insn_format21t256 =null;
+ ParserRuleReturnScope insn_format22b257 =null;
+ ParserRuleReturnScope insn_format22c_field258 =null;
+ ParserRuleReturnScope insn_format22c_field_odex259 =null;
+ ParserRuleReturnScope insn_format22c_type260 =null;
+ ParserRuleReturnScope insn_format22cs_field261 =null;
+ ParserRuleReturnScope insn_format22s262 =null;
+ ParserRuleReturnScope insn_format22t263 =null;
+ ParserRuleReturnScope insn_format22x264 =null;
+ ParserRuleReturnScope insn_format23x265 =null;
+ ParserRuleReturnScope insn_format30t266 =null;
+ ParserRuleReturnScope insn_format31c267 =null;
+ ParserRuleReturnScope insn_format31i268 =null;
+ ParserRuleReturnScope insn_format31t269 =null;
+ ParserRuleReturnScope insn_format32x270 =null;
+ ParserRuleReturnScope insn_format35c_method271 =null;
+ ParserRuleReturnScope insn_format35c_type272 =null;
+ ParserRuleReturnScope insn_format35c_method_odex273 =null;
+ ParserRuleReturnScope insn_format35mi_method274 =null;
+ ParserRuleReturnScope insn_format35ms_method275 =null;
+ ParserRuleReturnScope insn_format3rc_method276 =null;
+ ParserRuleReturnScope insn_format3rc_method_odex277 =null;
+ ParserRuleReturnScope insn_format3rc_type278 =null;
+ ParserRuleReturnScope insn_format3rmi_method279 =null;
+ ParserRuleReturnScope insn_format3rms_method280 =null;
+ ParserRuleReturnScope insn_format45cc_method281 =null;
+ ParserRuleReturnScope insn_format4rcc_method282 =null;
+ ParserRuleReturnScope insn_format51l283 =null;
+ ParserRuleReturnScope insn_array_data_directive284 =null;
+ ParserRuleReturnScope insn_packed_switch_directive285 =null;
+ ParserRuleReturnScope insn_sparse_switch_directive286 =null;
+
+
+ try {
+ // smaliParser.g:802:3: ( insn_format10t | insn_format10x | insn_format10x_odex | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_field_odex | insn_format21c_string | insn_format21c_type | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_field_odex | insn_format22c_type | insn_format22cs_field | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format35c_method_odex | insn_format35mi_method | insn_format35ms_method | insn_format3rc_method | insn_format3rc_method_odex | insn_format3rc_type | insn_format3rmi_method | insn_format3rms_method | insn_format45cc_method | insn_format4rcc_method | insn_format51l | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive )
+ int alt51=46;
+ switch ( input.LA(1) ) {
+ case INSTRUCTION_FORMAT10t:
+ {
+ alt51=1;
+ }
+ break;
+ case INSTRUCTION_FORMAT10x:
+ {
+ alt51=2;
+ }
+ break;
+ case INSTRUCTION_FORMAT10x_ODEX:
+ {
+ alt51=3;
+ }
+ break;
+ case INSTRUCTION_FORMAT11n:
+ {
+ alt51=4;
+ }
+ break;
+ case INSTRUCTION_FORMAT11x:
+ {
+ alt51=5;
+ }
+ break;
+ case INSTRUCTION_FORMAT12x:
+ case INSTRUCTION_FORMAT12x_OR_ID:
+ {
+ alt51=6;
+ }
+ break;
+ case INSTRUCTION_FORMAT20bc:
+ {
+ alt51=7;
+ }
+ break;
+ case INSTRUCTION_FORMAT20t:
+ {
+ alt51=8;
+ }
+ break;
+ case INSTRUCTION_FORMAT21c_FIELD:
+ {
+ alt51=9;
+ }
+ break;
+ case INSTRUCTION_FORMAT21c_FIELD_ODEX:
+ {
+ alt51=10;
+ }
+ break;
+ case INSTRUCTION_FORMAT21c_STRING:
+ {
+ alt51=11;
+ }
+ break;
+ case INSTRUCTION_FORMAT21c_TYPE:
+ {
+ alt51=12;
+ }
+ break;
+ case INSTRUCTION_FORMAT21ih:
+ {
+ alt51=13;
+ }
+ break;
+ case INSTRUCTION_FORMAT21lh:
+ {
+ alt51=14;
+ }
+ break;
+ case INSTRUCTION_FORMAT21s:
+ {
+ alt51=15;
+ }
+ break;
+ case INSTRUCTION_FORMAT21t:
+ {
+ alt51=16;
+ }
+ break;
+ case INSTRUCTION_FORMAT22b:
+ {
+ alt51=17;
+ }
+ break;
+ case INSTRUCTION_FORMAT22c_FIELD:
+ {
+ alt51=18;
+ }
+ break;
+ case INSTRUCTION_FORMAT22c_FIELD_ODEX:
+ {
+ alt51=19;
+ }
+ break;
+ case INSTRUCTION_FORMAT22c_TYPE:
+ {
+ alt51=20;
+ }
+ break;
+ case INSTRUCTION_FORMAT22cs_FIELD:
+ {
+ alt51=21;
+ }
+ break;
+ case INSTRUCTION_FORMAT22s:
+ case INSTRUCTION_FORMAT22s_OR_ID:
+ {
+ alt51=22;
+ }
+ break;
+ case INSTRUCTION_FORMAT22t:
+ {
+ alt51=23;
+ }
+ break;
+ case INSTRUCTION_FORMAT22x:
+ {
+ alt51=24;
+ }
+ break;
+ case INSTRUCTION_FORMAT23x:
+ {
+ alt51=25;
+ }
+ break;
+ case INSTRUCTION_FORMAT30t:
+ {
+ alt51=26;
+ }
+ break;
+ case INSTRUCTION_FORMAT31c:
+ {
+ alt51=27;
+ }
+ break;
+ case INSTRUCTION_FORMAT31i:
+ case INSTRUCTION_FORMAT31i_OR_ID:
+ {
+ alt51=28;
+ }
+ break;
+ case INSTRUCTION_FORMAT31t:
+ {
+ alt51=29;
+ }
+ break;
+ case INSTRUCTION_FORMAT32x:
+ {
+ alt51=30;
+ }
+ break;
+ case INSTRUCTION_FORMAT35c_METHOD:
+ {
+ alt51=31;
+ }
+ break;
+ case INSTRUCTION_FORMAT35c_TYPE:
+ {
+ alt51=32;
+ }
+ break;
+ case INSTRUCTION_FORMAT35c_METHOD_ODEX:
+ {
+ alt51=33;
+ }
+ break;
+ case INSTRUCTION_FORMAT35mi_METHOD:
+ {
+ alt51=34;
+ }
+ break;
+ case INSTRUCTION_FORMAT35ms_METHOD:
+ {
+ alt51=35;
+ }
+ break;
+ case INSTRUCTION_FORMAT3rc_METHOD:
+ {
+ alt51=36;
+ }
+ break;
+ case INSTRUCTION_FORMAT3rc_METHOD_ODEX:
+ {
+ alt51=37;
+ }
+ break;
+ case INSTRUCTION_FORMAT3rc_TYPE:
+ {
+ alt51=38;
+ }
+ break;
+ case INSTRUCTION_FORMAT3rmi_METHOD:
+ {
+ alt51=39;
+ }
+ break;
+ case INSTRUCTION_FORMAT3rms_METHOD:
+ {
+ alt51=40;
+ }
+ break;
+ case INSTRUCTION_FORMAT45cc_METHOD:
+ {
+ alt51=41;
+ }
+ break;
+ case INSTRUCTION_FORMAT4rcc_METHOD:
+ {
+ alt51=42;
+ }
+ break;
+ case INSTRUCTION_FORMAT51l:
+ {
+ alt51=43;
+ }
+ break;
+ case ARRAY_DATA_DIRECTIVE:
+ {
+ alt51=44;
+ }
+ break;
+ case PACKED_SWITCH_DIRECTIVE:
+ {
+ alt51=45;
+ }
+ break;
+ case SPARSE_SWITCH_DIRECTIVE:
+ {
+ alt51=46;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 51, 0, input);
+ throw nvae;
+ }
+ switch (alt51) {
+ case 1 :
+ // smaliParser.g:802:5: insn_format10t
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format10t_in_instruction3740);
+ insn_format10t241=insn_format10t();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format10t241.getTree());
+
+ }
+ break;
+ case 2 :
+ // smaliParser.g:803:5: insn_format10x
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format10x_in_instruction3746);
+ insn_format10x242=insn_format10x();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format10x242.getTree());
+
+ }
+ break;
+ case 3 :
+ // smaliParser.g:804:5: insn_format10x_odex
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format10x_odex_in_instruction3752);
+ insn_format10x_odex243=insn_format10x_odex();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format10x_odex243.getTree());
+
+ }
+ break;
+ case 4 :
+ // smaliParser.g:805:5: insn_format11n
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format11n_in_instruction3758);
+ insn_format11n244=insn_format11n();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format11n244.getTree());
+
+ }
+ break;
+ case 5 :
+ // smaliParser.g:806:5: insn_format11x
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format11x_in_instruction3764);
+ insn_format11x245=insn_format11x();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format11x245.getTree());
+
+ }
+ break;
+ case 6 :
+ // smaliParser.g:807:5: insn_format12x
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format12x_in_instruction3770);
+ insn_format12x246=insn_format12x();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format12x246.getTree());
+
+ }
+ break;
+ case 7 :
+ // smaliParser.g:808:5: insn_format20bc
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format20bc_in_instruction3776);
+ insn_format20bc247=insn_format20bc();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format20bc247.getTree());
+
+ }
+ break;
+ case 8 :
+ // smaliParser.g:809:5: insn_format20t
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format20t_in_instruction3782);
+ insn_format20t248=insn_format20t();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format20t248.getTree());
+
+ }
+ break;
+ case 9 :
+ // smaliParser.g:810:5: insn_format21c_field
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format21c_field_in_instruction3788);
+ insn_format21c_field249=insn_format21c_field();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format21c_field249.getTree());
+
+ }
+ break;
+ case 10 :
+ // smaliParser.g:811:5: insn_format21c_field_odex
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format21c_field_odex_in_instruction3794);
+ insn_format21c_field_odex250=insn_format21c_field_odex();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format21c_field_odex250.getTree());
+
+ }
+ break;
+ case 11 :
+ // smaliParser.g:812:5: insn_format21c_string
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format21c_string_in_instruction3800);
+ insn_format21c_string251=insn_format21c_string();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format21c_string251.getTree());
+
+ }
+ break;
+ case 12 :
+ // smaliParser.g:813:5: insn_format21c_type
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format21c_type_in_instruction3806);
+ insn_format21c_type252=insn_format21c_type();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format21c_type252.getTree());
+
+ }
+ break;
+ case 13 :
+ // smaliParser.g:814:5: insn_format21ih
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format21ih_in_instruction3812);
+ insn_format21ih253=insn_format21ih();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format21ih253.getTree());
+
+ }
+ break;
+ case 14 :
+ // smaliParser.g:815:5: insn_format21lh
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format21lh_in_instruction3818);
+ insn_format21lh254=insn_format21lh();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format21lh254.getTree());
+
+ }
+ break;
+ case 15 :
+ // smaliParser.g:816:5: insn_format21s
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format21s_in_instruction3824);
+ insn_format21s255=insn_format21s();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format21s255.getTree());
+
+ }
+ break;
+ case 16 :
+ // smaliParser.g:817:5: insn_format21t
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format21t_in_instruction3830);
+ insn_format21t256=insn_format21t();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format21t256.getTree());
+
+ }
+ break;
+ case 17 :
+ // smaliParser.g:818:5: insn_format22b
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format22b_in_instruction3836);
+ insn_format22b257=insn_format22b();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format22b257.getTree());
+
+ }
+ break;
+ case 18 :
+ // smaliParser.g:819:5: insn_format22c_field
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format22c_field_in_instruction3842);
+ insn_format22c_field258=insn_format22c_field();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format22c_field258.getTree());
+
+ }
+ break;
+ case 19 :
+ // smaliParser.g:820:5: insn_format22c_field_odex
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format22c_field_odex_in_instruction3848);
+ insn_format22c_field_odex259=insn_format22c_field_odex();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format22c_field_odex259.getTree());
+
+ }
+ break;
+ case 20 :
+ // smaliParser.g:821:5: insn_format22c_type
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format22c_type_in_instruction3854);
+ insn_format22c_type260=insn_format22c_type();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format22c_type260.getTree());
+
+ }
+ break;
+ case 21 :
+ // smaliParser.g:822:5: insn_format22cs_field
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format22cs_field_in_instruction3860);
+ insn_format22cs_field261=insn_format22cs_field();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format22cs_field261.getTree());
+
+ }
+ break;
+ case 22 :
+ // smaliParser.g:823:5: insn_format22s
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format22s_in_instruction3866);
+ insn_format22s262=insn_format22s();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format22s262.getTree());
+
+ }
+ break;
+ case 23 :
+ // smaliParser.g:824:5: insn_format22t
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format22t_in_instruction3872);
+ insn_format22t263=insn_format22t();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format22t263.getTree());
+
+ }
+ break;
+ case 24 :
+ // smaliParser.g:825:5: insn_format22x
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format22x_in_instruction3878);
+ insn_format22x264=insn_format22x();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format22x264.getTree());
+
+ }
+ break;
+ case 25 :
+ // smaliParser.g:826:5: insn_format23x
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format23x_in_instruction3884);
+ insn_format23x265=insn_format23x();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format23x265.getTree());
+
+ }
+ break;
+ case 26 :
+ // smaliParser.g:827:5: insn_format30t
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format30t_in_instruction3890);
+ insn_format30t266=insn_format30t();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format30t266.getTree());
+
+ }
+ break;
+ case 27 :
+ // smaliParser.g:828:5: insn_format31c
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format31c_in_instruction3896);
+ insn_format31c267=insn_format31c();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format31c267.getTree());
+
+ }
+ break;
+ case 28 :
+ // smaliParser.g:829:5: insn_format31i
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format31i_in_instruction3902);
+ insn_format31i268=insn_format31i();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format31i268.getTree());
+
+ }
+ break;
+ case 29 :
+ // smaliParser.g:830:5: insn_format31t
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format31t_in_instruction3908);
+ insn_format31t269=insn_format31t();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format31t269.getTree());
+
+ }
+ break;
+ case 30 :
+ // smaliParser.g:831:5: insn_format32x
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format32x_in_instruction3914);
+ insn_format32x270=insn_format32x();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format32x270.getTree());
+
+ }
+ break;
+ case 31 :
+ // smaliParser.g:832:5: insn_format35c_method
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format35c_method_in_instruction3920);
+ insn_format35c_method271=insn_format35c_method();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format35c_method271.getTree());
+
+ }
+ break;
+ case 32 :
+ // smaliParser.g:833:5: insn_format35c_type
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format35c_type_in_instruction3926);
+ insn_format35c_type272=insn_format35c_type();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format35c_type272.getTree());
+
+ }
+ break;
+ case 33 :
+ // smaliParser.g:834:5: insn_format35c_method_odex
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format35c_method_odex_in_instruction3932);
+ insn_format35c_method_odex273=insn_format35c_method_odex();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format35c_method_odex273.getTree());
+
+ }
+ break;
+ case 34 :
+ // smaliParser.g:835:5: insn_format35mi_method
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format35mi_method_in_instruction3938);
+ insn_format35mi_method274=insn_format35mi_method();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format35mi_method274.getTree());
+
+ }
+ break;
+ case 35 :
+ // smaliParser.g:836:5: insn_format35ms_method
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format35ms_method_in_instruction3944);
+ insn_format35ms_method275=insn_format35ms_method();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format35ms_method275.getTree());
+
+ }
+ break;
+ case 36 :
+ // smaliParser.g:837:5: insn_format3rc_method
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format3rc_method_in_instruction3950);
+ insn_format3rc_method276=insn_format3rc_method();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format3rc_method276.getTree());
+
+ }
+ break;
+ case 37 :
+ // smaliParser.g:838:5: insn_format3rc_method_odex
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format3rc_method_odex_in_instruction3956);
+ insn_format3rc_method_odex277=insn_format3rc_method_odex();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format3rc_method_odex277.getTree());
+
+ }
+ break;
+ case 38 :
+ // smaliParser.g:839:5: insn_format3rc_type
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format3rc_type_in_instruction3962);
+ insn_format3rc_type278=insn_format3rc_type();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format3rc_type278.getTree());
+
+ }
+ break;
+ case 39 :
+ // smaliParser.g:840:5: insn_format3rmi_method
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format3rmi_method_in_instruction3968);
+ insn_format3rmi_method279=insn_format3rmi_method();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format3rmi_method279.getTree());
+
+ }
+ break;
+ case 40 :
+ // smaliParser.g:841:5: insn_format3rms_method
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format3rms_method_in_instruction3974);
+ insn_format3rms_method280=insn_format3rms_method();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format3rms_method280.getTree());
+
+ }
+ break;
+ case 41 :
+ // smaliParser.g:842:5: insn_format45cc_method
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format45cc_method_in_instruction3980);
+ insn_format45cc_method281=insn_format45cc_method();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format45cc_method281.getTree());
+
+ }
+ break;
+ case 42 :
+ // smaliParser.g:843:5: insn_format4rcc_method
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format4rcc_method_in_instruction3986);
+ insn_format4rcc_method282=insn_format4rcc_method();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format4rcc_method282.getTree());
+
+ }
+ break;
+ case 43 :
+ // smaliParser.g:844:5: insn_format51l
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_format51l_in_instruction3992);
+ insn_format51l283=insn_format51l();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_format51l283.getTree());
+
+ }
+ break;
+ case 44 :
+ // smaliParser.g:845:5: insn_array_data_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_array_data_directive_in_instruction3998);
+ insn_array_data_directive284=insn_array_data_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_array_data_directive284.getTree());
+
+ }
+ break;
+ case 45 :
+ // smaliParser.g:846:5: insn_packed_switch_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_packed_switch_directive_in_instruction4004);
+ insn_packed_switch_directive285=insn_packed_switch_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_packed_switch_directive285.getTree());
+
+ }
+ break;
+ case 46 :
+ // smaliParser.g:847:5: insn_sparse_switch_directive
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ pushFollow(FOLLOW_insn_sparse_switch_directive_in_instruction4010);
+ insn_sparse_switch_directive286=insn_sparse_switch_directive();
+ state._fsp--;
+
+ adaptor.addChild(root_0, insn_sparse_switch_directive286.getTree());
+
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "instruction"
+
+
+ public static class insn_format10t_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format10t"
+ // smaliParser.g:849:1: insn_format10t : INSTRUCTION_FORMAT10t label_ref -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref ) ;
+ public final smaliParser.insn_format10t_return insn_format10t() throws RecognitionException {
+ smaliParser.insn_format10t_return retval = new smaliParser.insn_format10t_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT10t287=null;
+ ParserRuleReturnScope label_ref288 =null;
+
+ CommonTree INSTRUCTION_FORMAT10t287_tree=null;
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10t");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:850:3: ( INSTRUCTION_FORMAT10t label_ref -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref ) )
+ // smaliParser.g:852:5: INSTRUCTION_FORMAT10t label_ref
+ {
+ INSTRUCTION_FORMAT10t287=(Token)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4030);
+ stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t287);
+
+ pushFollow(FOLLOW_label_ref_in_insn_format10t4032);
+ label_ref288=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(label_ref288.getTree());
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT10t, label_ref
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 853:5: -> ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref )
+ {
+ // smaliParser.g:853:8: ^( I_STATEMENT_FORMAT10t[$start, \"I_STATEMENT_FORMAT10t\"] INSTRUCTION_FORMAT10t label_ref )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10t, (retval.start), "I_STATEMENT_FORMAT10t"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10t.nextNode());
+ adaptor.addChild(root_1, stream_label_ref.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format10t"
+
+
+ public static class insn_format10x_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format10x"
+ // smaliParser.g:855:1: insn_format10x : INSTRUCTION_FORMAT10x -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) ;
+ public final smaliParser.insn_format10x_return insn_format10x() throws RecognitionException {
+ smaliParser.insn_format10x_return retval = new smaliParser.insn_format10x_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT10x289=null;
+
+ CommonTree INSTRUCTION_FORMAT10x289_tree=null;
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT10x");
+
+ try {
+ // smaliParser.g:856:3: ( INSTRUCTION_FORMAT10x -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x ) )
+ // smaliParser.g:857:5: INSTRUCTION_FORMAT10x
+ {
+ INSTRUCTION_FORMAT10x289=(Token)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4062);
+ stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x289);
+
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT10x
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 858:5: -> ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x )
+ {
+ // smaliParser.g:858:8: ^( I_STATEMENT_FORMAT10x[$start, \"I_STATEMENT_FORMAT10x\"] INSTRUCTION_FORMAT10x )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT10x, (retval.start), "I_STATEMENT_FORMAT10x"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10x.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format10x"
+
+
+ public static class insn_format10x_odex_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format10x_odex"
+ // smaliParser.g:860:1: insn_format10x_odex : INSTRUCTION_FORMAT10x_ODEX ;
+ public final smaliParser.insn_format10x_odex_return insn_format10x_odex() throws RecognitionException {
+ smaliParser.insn_format10x_odex_return retval = new smaliParser.insn_format10x_odex_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT10x_ODEX290=null;
+
+ CommonTree INSTRUCTION_FORMAT10x_ODEX290_tree=null;
+
+ try {
+ // smaliParser.g:861:3: ( INSTRUCTION_FORMAT10x_ODEX )
+ // smaliParser.g:862:5: INSTRUCTION_FORMAT10x_ODEX
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT10x_ODEX290=(Token)match(input,INSTRUCTION_FORMAT10x_ODEX,FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4090);
+ INSTRUCTION_FORMAT10x_ODEX290_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT10x_ODEX290);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT10x_ODEX290_tree);
+
+
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT10x_ODEX290!=null?INSTRUCTION_FORMAT10x_ODEX290.getText():null));
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format10x_odex"
+
+
+ public static class insn_format11n_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format11n"
+ // smaliParser.g:867:1: insn_format11n : INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) ;
+ public final smaliParser.insn_format11n_return insn_format11n() throws RecognitionException {
+ smaliParser.insn_format11n_return retval = new smaliParser.insn_format11n_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT11n291=null;
+ Token REGISTER292=null;
+ Token COMMA293=null;
+ ParserRuleReturnScope integral_literal294 =null;
+
+ CommonTree INSTRUCTION_FORMAT11n291_tree=null;
+ CommonTree REGISTER292_tree=null;
+ CommonTree COMMA293_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11n=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11n");
+ RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+ try {
+ // smaliParser.g:868:3: ( INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal ) )
+ // smaliParser.g:869:5: INSTRUCTION_FORMAT11n REGISTER COMMA integral_literal
+ {
+ INSTRUCTION_FORMAT11n291=(Token)match(input,INSTRUCTION_FORMAT11n,FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4111);
+ stream_INSTRUCTION_FORMAT11n.add(INSTRUCTION_FORMAT11n291);
+
+ REGISTER292=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11n4113);
+ stream_REGISTER.add(REGISTER292);
+
+ COMMA293=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format11n4115);
+ stream_COMMA.add(COMMA293);
+
+ pushFollow(FOLLOW_integral_literal_in_insn_format11n4117);
+ integral_literal294=integral_literal();
+ state._fsp--;
+
+ stream_integral_literal.add(integral_literal294.getTree());
+ // AST REWRITE
+ // elements: integral_literal, INSTRUCTION_FORMAT11n, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 870:5: -> ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal )
+ {
+ // smaliParser.g:870:8: ^( I_STATEMENT_FORMAT11n[$start, \"I_STATEMENT_FORMAT11n\"] INSTRUCTION_FORMAT11n REGISTER integral_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT11n, (retval.start), "I_STATEMENT_FORMAT11n"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11n.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_integral_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format11n"
+
+
+ public static class insn_format11x_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format11x"
+ // smaliParser.g:872:1: insn_format11x : INSTRUCTION_FORMAT11x REGISTER -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) ;
+ public final smaliParser.insn_format11x_return insn_format11x() throws RecognitionException {
+ smaliParser.insn_format11x_return retval = new smaliParser.insn_format11x_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT11x295=null;
+ Token REGISTER296=null;
+
+ CommonTree INSTRUCTION_FORMAT11x295_tree=null;
+ CommonTree REGISTER296_tree=null;
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT11x");
+
+ try {
+ // smaliParser.g:873:3: ( INSTRUCTION_FORMAT11x REGISTER -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER ) )
+ // smaliParser.g:874:5: INSTRUCTION_FORMAT11x REGISTER
+ {
+ INSTRUCTION_FORMAT11x295=(Token)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4149);
+ stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x295);
+
+ REGISTER296=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11x4151);
+ stream_REGISTER.add(REGISTER296);
+
+ // AST REWRITE
+ // elements: REGISTER, INSTRUCTION_FORMAT11x
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 875:5: -> ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER )
+ {
+ // smaliParser.g:875:8: ^( I_STATEMENT_FORMAT11x[$start, \"I_STATEMENT_FORMAT11x\"] INSTRUCTION_FORMAT11x REGISTER )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT11x, (retval.start), "I_STATEMENT_FORMAT11x"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11x.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format11x"
+
+
+ public static class insn_format12x_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format12x"
+ // smaliParser.g:877:1: insn_format12x : instruction_format12x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) ;
+ public final smaliParser.insn_format12x_return insn_format12x() throws RecognitionException {
+ smaliParser.insn_format12x_return retval = new smaliParser.insn_format12x_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token REGISTER298=null;
+ Token COMMA299=null;
+ Token REGISTER300=null;
+ ParserRuleReturnScope instruction_format12x297 =null;
+
+ CommonTree REGISTER298_tree=null;
+ CommonTree COMMA299_tree=null;
+ CommonTree REGISTER300_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleSubtreeStream stream_instruction_format12x=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format12x");
+
+ try {
+ // smaliParser.g:878:3: ( instruction_format12x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER ) )
+ // smaliParser.g:879:5: instruction_format12x REGISTER COMMA REGISTER
+ {
+ pushFollow(FOLLOW_instruction_format12x_in_insn_format12x4181);
+ instruction_format12x297=instruction_format12x();
+ state._fsp--;
+
+ stream_instruction_format12x.add(instruction_format12x297.getTree());
+ REGISTER298=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x4183);
+ stream_REGISTER.add(REGISTER298);
+
+ COMMA299=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format12x4185);
+ stream_COMMA.add(COMMA299);
+
+ REGISTER300=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x4187);
+ stream_REGISTER.add(REGISTER300);
+
+ // AST REWRITE
+ // elements: REGISTER, instruction_format12x, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 880:5: -> ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER )
+ {
+ // smaliParser.g:880:8: ^( I_STATEMENT_FORMAT12x[$start, \"I_STATEMENT_FORMAT12x\"] instruction_format12x REGISTER REGISTER )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT12x, (retval.start), "I_STATEMENT_FORMAT12x"), root_1);
+ adaptor.addChild(root_1, stream_instruction_format12x.nextTree());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format12x"
+
+
+ public static class insn_format20bc_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format20bc"
+ // smaliParser.g:882:1: insn_format20bc : INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference ) ;
+ public final smaliParser.insn_format20bc_return insn_format20bc() throws RecognitionException {
+ smaliParser.insn_format20bc_return retval = new smaliParser.insn_format20bc_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT20bc301=null;
+ Token VERIFICATION_ERROR_TYPE302=null;
+ Token COMMA303=null;
+ ParserRuleReturnScope verification_error_reference304 =null;
+
+ CommonTree INSTRUCTION_FORMAT20bc301_tree=null;
+ CommonTree VERIFICATION_ERROR_TYPE302_tree=null;
+ CommonTree COMMA303_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_VERIFICATION_ERROR_TYPE=new RewriteRuleTokenStream(adaptor,"token VERIFICATION_ERROR_TYPE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20bc=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT20bc");
+ RewriteRuleSubtreeStream stream_verification_error_reference=new RewriteRuleSubtreeStream(adaptor,"rule verification_error_reference");
+
+ try {
+ // smaliParser.g:883:3: ( INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference ) )
+ // smaliParser.g:884:5: INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE COMMA verification_error_reference
+ {
+ INSTRUCTION_FORMAT20bc301=(Token)match(input,INSTRUCTION_FORMAT20bc,FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4219);
+ stream_INSTRUCTION_FORMAT20bc.add(INSTRUCTION_FORMAT20bc301);
+
+ VERIFICATION_ERROR_TYPE302=(Token)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4221);
+ stream_VERIFICATION_ERROR_TYPE.add(VERIFICATION_ERROR_TYPE302);
+
+ COMMA303=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format20bc4223);
+ stream_COMMA.add(COMMA303);
+
+ pushFollow(FOLLOW_verification_error_reference_in_insn_format20bc4225);
+ verification_error_reference304=verification_error_reference();
+ state._fsp--;
+
+ stream_verification_error_reference.add(verification_error_reference304.getTree());
+
+ if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT20bc301!=null?INSTRUCTION_FORMAT20bc301.getText():null)) == null || apiLevel >= 14) {
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT20bc301!=null?INSTRUCTION_FORMAT20bc301.getText():null));
+ }
+
+ // AST REWRITE
+ // elements: VERIFICATION_ERROR_TYPE, verification_error_reference, INSTRUCTION_FORMAT20bc
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 890:5: -> ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference )
+ {
+ // smaliParser.g:890:8: ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc VERIFICATION_ERROR_TYPE verification_error_reference )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT20bc, "I_STATEMENT_FORMAT20bc"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20bc.nextNode());
+ adaptor.addChild(root_1, stream_VERIFICATION_ERROR_TYPE.nextNode());
+ adaptor.addChild(root_1, stream_verification_error_reference.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format20bc"
+
+
+ public static class insn_format20t_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format20t"
+ // smaliParser.g:892:1: insn_format20t : INSTRUCTION_FORMAT20t label_ref -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref ) ;
+ public final smaliParser.insn_format20t_return insn_format20t() throws RecognitionException {
+ smaliParser.insn_format20t_return retval = new smaliParser.insn_format20t_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT20t305=null;
+ ParserRuleReturnScope label_ref306 =null;
+
+ CommonTree INSTRUCTION_FORMAT20t305_tree=null;
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT20t");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:893:3: ( INSTRUCTION_FORMAT20t label_ref -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref ) )
+ // smaliParser.g:894:5: INSTRUCTION_FORMAT20t label_ref
+ {
+ INSTRUCTION_FORMAT20t305=(Token)match(input,INSTRUCTION_FORMAT20t,FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4262);
+ stream_INSTRUCTION_FORMAT20t.add(INSTRUCTION_FORMAT20t305);
+
+ pushFollow(FOLLOW_label_ref_in_insn_format20t4264);
+ label_ref306=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(label_ref306.getTree());
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT20t, label_ref
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 895:5: -> ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref )
+ {
+ // smaliParser.g:895:8: ^( I_STATEMENT_FORMAT20t[$start, \"I_STATEMENT_FORMAT20t\"] INSTRUCTION_FORMAT20t label_ref )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT20t, (retval.start), "I_STATEMENT_FORMAT20t"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20t.nextNode());
+ adaptor.addChild(root_1, stream_label_ref.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format20t"
+
+
+ public static class insn_format21c_field_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format21c_field"
+ // smaliParser.g:897:1: insn_format21c_field : INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference ) ;
+ public final smaliParser.insn_format21c_field_return insn_format21c_field() throws RecognitionException {
+ smaliParser.insn_format21c_field_return retval = new smaliParser.insn_format21c_field_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT21c_FIELD307=null;
+ Token REGISTER308=null;
+ Token COMMA309=null;
+ ParserRuleReturnScope field_reference310 =null;
+
+ CommonTree INSTRUCTION_FORMAT21c_FIELD307_tree=null;
+ CommonTree REGISTER308_tree=null;
+ CommonTree COMMA309_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+ try {
+ // smaliParser.g:898:3: ( INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference ) )
+ // smaliParser.g:899:5: INSTRUCTION_FORMAT21c_FIELD REGISTER COMMA field_reference
+ {
+ INSTRUCTION_FORMAT21c_FIELD307=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4294);
+ stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD307);
+
+ REGISTER308=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field4296);
+ stream_REGISTER.add(REGISTER308);
+
+ COMMA309=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_field4298);
+ stream_COMMA.add(COMMA309);
+
+ pushFollow(FOLLOW_field_reference_in_insn_format21c_field4300);
+ field_reference310=field_reference();
+ state._fsp--;
+
+ stream_field_reference.add(field_reference310.getTree());
+ // AST REWRITE
+ // elements: REGISTER, INSTRUCTION_FORMAT21c_FIELD, field_reference
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 900:5: -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference )
+ {
+ // smaliParser.g:900:8: ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD REGISTER field_reference )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_FIELD, (retval.start), "I_STATEMENT_FORMAT21c_FIELD"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_field_reference.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format21c_field"
+
+
+ public static class insn_format21c_field_odex_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format21c_field_odex"
+ // smaliParser.g:902:1: insn_format21c_field_odex : INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference ) ;
+ public final smaliParser.insn_format21c_field_odex_return insn_format21c_field_odex() throws RecognitionException {
+ smaliParser.insn_format21c_field_odex_return retval = new smaliParser.insn_format21c_field_odex_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT21c_FIELD_ODEX311=null;
+ Token REGISTER312=null;
+ Token COMMA313=null;
+ ParserRuleReturnScope field_reference314 =null;
+
+ CommonTree INSTRUCTION_FORMAT21c_FIELD_ODEX311_tree=null;
+ CommonTree REGISTER312_tree=null;
+ CommonTree COMMA313_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_FIELD_ODEX");
+ RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+ try {
+ // smaliParser.g:903:3: ( INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference ) )
+ // smaliParser.g:904:5: INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER COMMA field_reference
+ {
+ INSTRUCTION_FORMAT21c_FIELD_ODEX311=(Token)match(input,INSTRUCTION_FORMAT21c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4332);
+ stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.add(INSTRUCTION_FORMAT21c_FIELD_ODEX311);
+
+ REGISTER312=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field_odex4334);
+ stream_REGISTER.add(REGISTER312);
+
+ COMMA313=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_field_odex4336);
+ stream_COMMA.add(COMMA313);
+
+ pushFollow(FOLLOW_field_reference_in_insn_format21c_field_odex4338);
+ field_reference314=field_reference();
+ state._fsp--;
+
+ stream_field_reference.add(field_reference314.getTree());
+
+ if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_FIELD_ODEX311!=null?INSTRUCTION_FORMAT21c_FIELD_ODEX311.getText():null)) == null || apiLevel >= 14) {
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT21c_FIELD_ODEX311!=null?INSTRUCTION_FORMAT21c_FIELD_ODEX311.getText():null));
+ }
+
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT21c_FIELD_ODEX, REGISTER, field_reference
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 910:5: -> ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference )
+ {
+ // smaliParser.g:910:8: ^( I_STATEMENT_FORMAT21c_FIELD[$start, \"I_STATEMENT_FORMAT21c_FIELD\"] INSTRUCTION_FORMAT21c_FIELD_ODEX REGISTER field_reference )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_FIELD, (retval.start), "I_STATEMENT_FORMAT21c_FIELD"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_field_reference.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format21c_field_odex"
+
+
+ public static class insn_format21c_string_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format21c_string"
+ // smaliParser.g:912:1: insn_format21c_string : INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) ;
+ public final smaliParser.insn_format21c_string_return insn_format21c_string() throws RecognitionException {
+ smaliParser.insn_format21c_string_return retval = new smaliParser.insn_format21c_string_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT21c_STRING315=null;
+ Token REGISTER316=null;
+ Token COMMA317=null;
+ Token STRING_LITERAL318=null;
+
+ CommonTree INSTRUCTION_FORMAT21c_STRING315_tree=null;
+ CommonTree REGISTER316_tree=null;
+ CommonTree COMMA317_tree=null;
+ CommonTree STRING_LITERAL318_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_STRING");
+
+ try {
+ // smaliParser.g:913:3: ( INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL ) )
+ // smaliParser.g:914:5: INSTRUCTION_FORMAT21c_STRING REGISTER COMMA STRING_LITERAL
+ {
+ INSTRUCTION_FORMAT21c_STRING315=(Token)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4376);
+ stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING315);
+
+ REGISTER316=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_string4378);
+ stream_REGISTER.add(REGISTER316);
+
+ COMMA317=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_string4380);
+ stream_COMMA.add(COMMA317);
+
+ STRING_LITERAL318=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_insn_format21c_string4382);
+ stream_STRING_LITERAL.add(STRING_LITERAL318);
+
+ // AST REWRITE
+ // elements: STRING_LITERAL, REGISTER, INSTRUCTION_FORMAT21c_STRING
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 915:5: -> ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL )
+ {
+ // smaliParser.g:915:8: ^( I_STATEMENT_FORMAT21c_STRING[$start, \"I_STATEMENT_FORMAT21c_STRING\"] INSTRUCTION_FORMAT21c_STRING REGISTER STRING_LITERAL )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_STRING, (retval.start), "I_STATEMENT_FORMAT21c_STRING"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_STRING.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format21c_string"
+
+
+ public static class insn_format21c_type_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format21c_type"
+ // smaliParser.g:917:1: insn_format21c_type : INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) ;
+ public final smaliParser.insn_format21c_type_return insn_format21c_type() throws RecognitionException {
+ smaliParser.insn_format21c_type_return retval = new smaliParser.insn_format21c_type_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT21c_TYPE319=null;
+ Token REGISTER320=null;
+ Token COMMA321=null;
+ ParserRuleReturnScope nonvoid_type_descriptor322 =null;
+
+ CommonTree INSTRUCTION_FORMAT21c_TYPE319_tree=null;
+ CommonTree REGISTER320_tree=null;
+ CommonTree COMMA321_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21c_TYPE");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+ try {
+ // smaliParser.g:918:3: ( INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) )
+ // smaliParser.g:919:5: INSTRUCTION_FORMAT21c_TYPE REGISTER COMMA nonvoid_type_descriptor
+ {
+ INSTRUCTION_FORMAT21c_TYPE319=(Token)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4414);
+ stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE319);
+
+ REGISTER320=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_type4416);
+ stream_REGISTER.add(REGISTER320);
+
+ COMMA321=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21c_type4418);
+ stream_COMMA.add(COMMA321);
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4420);
+ nonvoid_type_descriptor322=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor322.getTree());
+ // AST REWRITE
+ // elements: REGISTER, INSTRUCTION_FORMAT21c_TYPE, nonvoid_type_descriptor
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 920:5: -> ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor )
+ {
+ // smaliParser.g:920:8: ^( I_STATEMENT_FORMAT21c_TYPE[$start, \"I_STATEMENT_FORMAT21c\"] INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21c_TYPE, (retval.start), "I_STATEMENT_FORMAT21c"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_TYPE.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format21c_type"
+
+
+ public static class insn_format21ih_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format21ih"
+ // smaliParser.g:922:1: insn_format21ih : INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) ;
+ public final smaliParser.insn_format21ih_return insn_format21ih() throws RecognitionException {
+ smaliParser.insn_format21ih_return retval = new smaliParser.insn_format21ih_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT21ih323=null;
+ Token REGISTER324=null;
+ Token COMMA325=null;
+ ParserRuleReturnScope fixed_32bit_literal326 =null;
+
+ CommonTree INSTRUCTION_FORMAT21ih323_tree=null;
+ CommonTree REGISTER324_tree=null;
+ CommonTree COMMA325_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21ih=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21ih");
+ RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+
+ try {
+ // smaliParser.g:923:3: ( INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) )
+ // smaliParser.g:924:5: INSTRUCTION_FORMAT21ih REGISTER COMMA fixed_32bit_literal
+ {
+ INSTRUCTION_FORMAT21ih323=(Token)match(input,INSTRUCTION_FORMAT21ih,FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4452);
+ stream_INSTRUCTION_FORMAT21ih.add(INSTRUCTION_FORMAT21ih323);
+
+ REGISTER324=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21ih4454);
+ stream_REGISTER.add(REGISTER324);
+
+ COMMA325=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21ih4456);
+ stream_COMMA.add(COMMA325);
+
+ pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21ih4458);
+ fixed_32bit_literal326=fixed_32bit_literal();
+ state._fsp--;
+
+ stream_fixed_32bit_literal.add(fixed_32bit_literal326.getTree());
+ // AST REWRITE
+ // elements: REGISTER, INSTRUCTION_FORMAT21ih, fixed_32bit_literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 925:5: -> ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal )
+ {
+ // smaliParser.g:925:8: ^( I_STATEMENT_FORMAT21ih[$start, \"I_STATEMENT_FORMAT21ih\"] INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21ih, (retval.start), "I_STATEMENT_FORMAT21ih"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21ih.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format21ih"
+
+
+ public static class insn_format21lh_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format21lh"
+ // smaliParser.g:927:1: insn_format21lh : INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal ) ;
+ public final smaliParser.insn_format21lh_return insn_format21lh() throws RecognitionException {
+ smaliParser.insn_format21lh_return retval = new smaliParser.insn_format21lh_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT21lh327=null;
+ Token REGISTER328=null;
+ Token COMMA329=null;
+ ParserRuleReturnScope fixed_32bit_literal330 =null;
+
+ CommonTree INSTRUCTION_FORMAT21lh327_tree=null;
+ CommonTree REGISTER328_tree=null;
+ CommonTree COMMA329_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21lh=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21lh");
+ RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+
+ try {
+ // smaliParser.g:928:3: ( INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal ) )
+ // smaliParser.g:929:5: INSTRUCTION_FORMAT21lh REGISTER COMMA fixed_32bit_literal
+ {
+ INSTRUCTION_FORMAT21lh327=(Token)match(input,INSTRUCTION_FORMAT21lh,FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4490);
+ stream_INSTRUCTION_FORMAT21lh.add(INSTRUCTION_FORMAT21lh327);
+
+ REGISTER328=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21lh4492);
+ stream_REGISTER.add(REGISTER328);
+
+ COMMA329=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21lh4494);
+ stream_COMMA.add(COMMA329);
+
+ pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21lh4496);
+ fixed_32bit_literal330=fixed_32bit_literal();
+ state._fsp--;
+
+ stream_fixed_32bit_literal.add(fixed_32bit_literal330.getTree());
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT21lh, fixed_32bit_literal, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 930:5: -> ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal )
+ {
+ // smaliParser.g:930:8: ^( I_STATEMENT_FORMAT21lh[$start, \"I_STATEMENT_FORMAT21lh\"] INSTRUCTION_FORMAT21lh REGISTER fixed_32bit_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21lh, (retval.start), "I_STATEMENT_FORMAT21lh"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21lh.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format21lh"
+
+
+ public static class insn_format21s_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format21s"
+ // smaliParser.g:932:1: insn_format21s : INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) ;
+ public final smaliParser.insn_format21s_return insn_format21s() throws RecognitionException {
+ smaliParser.insn_format21s_return retval = new smaliParser.insn_format21s_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT21s331=null;
+ Token REGISTER332=null;
+ Token COMMA333=null;
+ ParserRuleReturnScope integral_literal334 =null;
+
+ CommonTree INSTRUCTION_FORMAT21s331_tree=null;
+ CommonTree REGISTER332_tree=null;
+ CommonTree COMMA333_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21s=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21s");
+ RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+ try {
+ // smaliParser.g:933:3: ( INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal ) )
+ // smaliParser.g:934:5: INSTRUCTION_FORMAT21s REGISTER COMMA integral_literal
+ {
+ INSTRUCTION_FORMAT21s331=(Token)match(input,INSTRUCTION_FORMAT21s,FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s4528);
+ stream_INSTRUCTION_FORMAT21s.add(INSTRUCTION_FORMAT21s331);
+
+ REGISTER332=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21s4530);
+ stream_REGISTER.add(REGISTER332);
+
+ COMMA333=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21s4532);
+ stream_COMMA.add(COMMA333);
+
+ pushFollow(FOLLOW_integral_literal_in_insn_format21s4534);
+ integral_literal334=integral_literal();
+ state._fsp--;
+
+ stream_integral_literal.add(integral_literal334.getTree());
+ // AST REWRITE
+ // elements: integral_literal, REGISTER, INSTRUCTION_FORMAT21s
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 935:5: -> ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal )
+ {
+ // smaliParser.g:935:8: ^( I_STATEMENT_FORMAT21s[$start, \"I_STATEMENT_FORMAT21s\"] INSTRUCTION_FORMAT21s REGISTER integral_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21s, (retval.start), "I_STATEMENT_FORMAT21s"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21s.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_integral_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format21s"
+
+
+ public static class insn_format21t_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format21t"
+ // smaliParser.g:937:1: insn_format21t : INSTRUCTION_FORMAT21t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref ) ;
+ public final smaliParser.insn_format21t_return insn_format21t() throws RecognitionException {
+ smaliParser.insn_format21t_return retval = new smaliParser.insn_format21t_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT21t335=null;
+ Token REGISTER336=null;
+ Token COMMA337=null;
+ ParserRuleReturnScope label_ref338 =null;
+
+ CommonTree INSTRUCTION_FORMAT21t335_tree=null;
+ CommonTree REGISTER336_tree=null;
+ CommonTree COMMA337_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT21t");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:938:3: ( INSTRUCTION_FORMAT21t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref ) )
+ // smaliParser.g:939:5: INSTRUCTION_FORMAT21t REGISTER COMMA label_ref
+ {
+ INSTRUCTION_FORMAT21t335=(Token)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t4566);
+ stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t335);
+
+ REGISTER336=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21t4568);
+ stream_REGISTER.add(REGISTER336);
+
+ COMMA337=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format21t4570);
+ stream_COMMA.add(COMMA337);
+
+ pushFollow(FOLLOW_label_ref_in_insn_format21t4572);
+ label_ref338=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(label_ref338.getTree());
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT21t, label_ref, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 940:5: -> ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref )
+ {
+ // smaliParser.g:940:8: ^( I_STATEMENT_FORMAT21t[$start, \"I_STATEMENT_FORMAT21t\"] INSTRUCTION_FORMAT21t REGISTER label_ref )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT21t, (retval.start), "I_STATEMENT_FORMAT21t"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21t.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_label_ref.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format21t"
+
+
+ public static class insn_format22b_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format22b"
+ // smaliParser.g:942:1: insn_format22b : INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) ;
+ public final smaliParser.insn_format22b_return insn_format22b() throws RecognitionException {
+ smaliParser.insn_format22b_return retval = new smaliParser.insn_format22b_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT22b339=null;
+ Token REGISTER340=null;
+ Token COMMA341=null;
+ Token REGISTER342=null;
+ Token COMMA343=null;
+ ParserRuleReturnScope integral_literal344 =null;
+
+ CommonTree INSTRUCTION_FORMAT22b339_tree=null;
+ CommonTree REGISTER340_tree=null;
+ CommonTree COMMA341_tree=null;
+ CommonTree REGISTER342_tree=null;
+ CommonTree COMMA343_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22b=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22b");
+ RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+ try {
+ // smaliParser.g:943:3: ( INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal ) )
+ // smaliParser.g:944:5: INSTRUCTION_FORMAT22b REGISTER COMMA REGISTER COMMA integral_literal
+ {
+ INSTRUCTION_FORMAT22b339=(Token)match(input,INSTRUCTION_FORMAT22b,FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b4604);
+ stream_INSTRUCTION_FORMAT22b.add(INSTRUCTION_FORMAT22b339);
+
+ REGISTER340=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b4606);
+ stream_REGISTER.add(REGISTER340);
+
+ COMMA341=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22b4608);
+ stream_COMMA.add(COMMA341);
+
+ REGISTER342=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b4610);
+ stream_REGISTER.add(REGISTER342);
+
+ COMMA343=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22b4612);
+ stream_COMMA.add(COMMA343);
+
+ pushFollow(FOLLOW_integral_literal_in_insn_format22b4614);
+ integral_literal344=integral_literal();
+ state._fsp--;
+
+ stream_integral_literal.add(integral_literal344.getTree());
+ // AST REWRITE
+ // elements: REGISTER, REGISTER, integral_literal, INSTRUCTION_FORMAT22b
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 945:5: -> ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal )
+ {
+ // smaliParser.g:945:8: ^( I_STATEMENT_FORMAT22b[$start, \"I_STATEMENT_FORMAT22b\"] INSTRUCTION_FORMAT22b REGISTER REGISTER integral_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22b, (retval.start), "I_STATEMENT_FORMAT22b"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22b.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_integral_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format22b"
+
+
+ public static class insn_format22c_field_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format22c_field"
+ // smaliParser.g:947:1: insn_format22c_field : INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference ) ;
+ public final smaliParser.insn_format22c_field_return insn_format22c_field() throws RecognitionException {
+ smaliParser.insn_format22c_field_return retval = new smaliParser.insn_format22c_field_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT22c_FIELD345=null;
+ Token REGISTER346=null;
+ Token COMMA347=null;
+ Token REGISTER348=null;
+ Token COMMA349=null;
+ ParserRuleReturnScope field_reference350 =null;
+
+ CommonTree INSTRUCTION_FORMAT22c_FIELD345_tree=null;
+ CommonTree REGISTER346_tree=null;
+ CommonTree COMMA347_tree=null;
+ CommonTree REGISTER348_tree=null;
+ CommonTree COMMA349_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+ try {
+ // smaliParser.g:948:3: ( INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference ) )
+ // smaliParser.g:949:5: INSTRUCTION_FORMAT22c_FIELD REGISTER COMMA REGISTER COMMA field_reference
+ {
+ INSTRUCTION_FORMAT22c_FIELD345=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field4648);
+ stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD345);
+
+ REGISTER346=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field4650);
+ stream_REGISTER.add(REGISTER346);
+
+ COMMA347=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field4652);
+ stream_COMMA.add(COMMA347);
+
+ REGISTER348=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field4654);
+ stream_REGISTER.add(REGISTER348);
+
+ COMMA349=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field4656);
+ stream_COMMA.add(COMMA349);
+
+ pushFollow(FOLLOW_field_reference_in_insn_format22c_field4658);
+ field_reference350=field_reference();
+ state._fsp--;
+
+ stream_field_reference.add(field_reference350.getTree());
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT22c_FIELD, REGISTER, field_reference, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 950:5: -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference )
+ {
+ // smaliParser.g:950:8: ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD REGISTER REGISTER field_reference )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_FIELD, (retval.start), "I_STATEMENT_FORMAT22c_FIELD"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_field_reference.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format22c_field"
+
+
+ public static class insn_format22c_field_odex_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format22c_field_odex"
+ // smaliParser.g:952:1: insn_format22c_field_odex : INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference ) ;
+ public final smaliParser.insn_format22c_field_odex_return insn_format22c_field_odex() throws RecognitionException {
+ smaliParser.insn_format22c_field_odex_return retval = new smaliParser.insn_format22c_field_odex_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT22c_FIELD_ODEX351=null;
+ Token REGISTER352=null;
+ Token COMMA353=null;
+ Token REGISTER354=null;
+ Token COMMA355=null;
+ ParserRuleReturnScope field_reference356 =null;
+
+ CommonTree INSTRUCTION_FORMAT22c_FIELD_ODEX351_tree=null;
+ CommonTree REGISTER352_tree=null;
+ CommonTree COMMA353_tree=null;
+ CommonTree REGISTER354_tree=null;
+ CommonTree COMMA355_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD_ODEX=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_FIELD_ODEX");
+ RewriteRuleSubtreeStream stream_field_reference=new RewriteRuleSubtreeStream(adaptor,"rule field_reference");
+
+ try {
+ // smaliParser.g:953:3: ( INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference ) )
+ // smaliParser.g:954:5: INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER COMMA REGISTER COMMA field_reference
+ {
+ INSTRUCTION_FORMAT22c_FIELD_ODEX351=(Token)match(input,INSTRUCTION_FORMAT22c_FIELD_ODEX,FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex4692);
+ stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.add(INSTRUCTION_FORMAT22c_FIELD_ODEX351);
+
+ REGISTER352=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field_odex4694);
+ stream_REGISTER.add(REGISTER352);
+
+ COMMA353=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field_odex4696);
+ stream_COMMA.add(COMMA353);
+
+ REGISTER354=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field_odex4698);
+ stream_REGISTER.add(REGISTER354);
+
+ COMMA355=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_field_odex4700);
+ stream_COMMA.add(COMMA355);
+
+ pushFollow(FOLLOW_field_reference_in_insn_format22c_field_odex4702);
+ field_reference356=field_reference();
+ state._fsp--;
+
+ stream_field_reference.add(field_reference356.getTree());
+
+ if (!allowOdex || opcodes.getOpcodeByName((INSTRUCTION_FORMAT22c_FIELD_ODEX351!=null?INSTRUCTION_FORMAT22c_FIELD_ODEX351.getText():null)) == null || apiLevel >= 14) {
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT22c_FIELD_ODEX351!=null?INSTRUCTION_FORMAT22c_FIELD_ODEX351.getText():null));
+ }
+
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT22c_FIELD_ODEX, field_reference, REGISTER, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 960:5: -> ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference )
+ {
+ // smaliParser.g:960:8: ^( I_STATEMENT_FORMAT22c_FIELD[$start, \"I_STATEMENT_FORMAT22c_FIELD\"] INSTRUCTION_FORMAT22c_FIELD_ODEX REGISTER REGISTER field_reference )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_FIELD, (retval.start), "I_STATEMENT_FORMAT22c_FIELD"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_field_reference.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format22c_field_odex"
+
+
+ public static class insn_format22c_type_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format22c_type"
+ // smaliParser.g:962:1: insn_format22c_type : INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor ) ;
+ public final smaliParser.insn_format22c_type_return insn_format22c_type() throws RecognitionException {
+ smaliParser.insn_format22c_type_return retval = new smaliParser.insn_format22c_type_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT22c_TYPE357=null;
+ Token REGISTER358=null;
+ Token COMMA359=null;
+ Token REGISTER360=null;
+ Token COMMA361=null;
+ ParserRuleReturnScope nonvoid_type_descriptor362 =null;
+
+ CommonTree INSTRUCTION_FORMAT22c_TYPE357_tree=null;
+ CommonTree REGISTER358_tree=null;
+ CommonTree COMMA359_tree=null;
+ CommonTree REGISTER360_tree=null;
+ CommonTree COMMA361_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22c_TYPE");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+ try {
+ // smaliParser.g:963:3: ( INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor ) )
+ // smaliParser.g:964:5: INSTRUCTION_FORMAT22c_TYPE REGISTER COMMA REGISTER COMMA nonvoid_type_descriptor
+ {
+ INSTRUCTION_FORMAT22c_TYPE357=(Token)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type4742);
+ stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE357);
+
+ REGISTER358=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type4744);
+ stream_REGISTER.add(REGISTER358);
+
+ COMMA359=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_type4746);
+ stream_COMMA.add(COMMA359);
+
+ REGISTER360=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type4748);
+ stream_REGISTER.add(REGISTER360);
+
+ COMMA361=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22c_type4750);
+ stream_COMMA.add(COMMA361);
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type4752);
+ nonvoid_type_descriptor362=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor362.getTree());
+ // AST REWRITE
+ // elements: REGISTER, REGISTER, nonvoid_type_descriptor, INSTRUCTION_FORMAT22c_TYPE
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 965:5: -> ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor )
+ {
+ // smaliParser.g:965:8: ^( I_STATEMENT_FORMAT22c_TYPE[$start, \"I_STATEMENT_FORMAT22c_TYPE\"] INSTRUCTION_FORMAT22c_TYPE REGISTER REGISTER nonvoid_type_descriptor )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22c_TYPE, (retval.start), "I_STATEMENT_FORMAT22c_TYPE"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_TYPE.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format22c_type"
+
+
+ public static class insn_format22cs_field_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format22cs_field"
+ // smaliParser.g:967:1: insn_format22cs_field : INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET ;
+ public final smaliParser.insn_format22cs_field_return insn_format22cs_field() throws RecognitionException {
+ smaliParser.insn_format22cs_field_return retval = new smaliParser.insn_format22cs_field_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT22cs_FIELD363=null;
+ Token REGISTER364=null;
+ Token COMMA365=null;
+ Token REGISTER366=null;
+ Token COMMA367=null;
+ Token FIELD_OFFSET368=null;
+
+ CommonTree INSTRUCTION_FORMAT22cs_FIELD363_tree=null;
+ CommonTree REGISTER364_tree=null;
+ CommonTree COMMA365_tree=null;
+ CommonTree REGISTER366_tree=null;
+ CommonTree COMMA367_tree=null;
+ CommonTree FIELD_OFFSET368_tree=null;
+
+ try {
+ // smaliParser.g:968:3: ( INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET )
+ // smaliParser.g:969:5: INSTRUCTION_FORMAT22cs_FIELD REGISTER COMMA REGISTER COMMA FIELD_OFFSET
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT22cs_FIELD363=(Token)match(input,INSTRUCTION_FORMAT22cs_FIELD,FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field4786);
+ INSTRUCTION_FORMAT22cs_FIELD363_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT22cs_FIELD363);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT22cs_FIELD363_tree);
+
+ REGISTER364=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22cs_field4788);
+ REGISTER364_tree = (CommonTree)adaptor.create(REGISTER364);
+ adaptor.addChild(root_0, REGISTER364_tree);
+
+ COMMA365=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22cs_field4790);
+ COMMA365_tree = (CommonTree)adaptor.create(COMMA365);
+ adaptor.addChild(root_0, COMMA365_tree);
+
+ REGISTER366=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22cs_field4792);
+ REGISTER366_tree = (CommonTree)adaptor.create(REGISTER366);
+ adaptor.addChild(root_0, REGISTER366_tree);
+
+ COMMA367=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22cs_field4794);
+ COMMA367_tree = (CommonTree)adaptor.create(COMMA367);
+ adaptor.addChild(root_0, COMMA367_tree);
+
+ FIELD_OFFSET368=(Token)match(input,FIELD_OFFSET,FOLLOW_FIELD_OFFSET_in_insn_format22cs_field4796);
+ FIELD_OFFSET368_tree = (CommonTree)adaptor.create(FIELD_OFFSET368);
+ adaptor.addChild(root_0, FIELD_OFFSET368_tree);
+
+
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT22cs_FIELD363!=null?INSTRUCTION_FORMAT22cs_FIELD363.getText():null));
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format22cs_field"
+
+
+ public static class insn_format22s_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format22s"
+ // smaliParser.g:974:1: insn_format22s : instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) ;
+ public final smaliParser.insn_format22s_return insn_format22s() throws RecognitionException {
+ smaliParser.insn_format22s_return retval = new smaliParser.insn_format22s_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token REGISTER370=null;
+ Token COMMA371=null;
+ Token REGISTER372=null;
+ Token COMMA373=null;
+ ParserRuleReturnScope instruction_format22s369 =null;
+ ParserRuleReturnScope integral_literal374 =null;
+
+ CommonTree REGISTER370_tree=null;
+ CommonTree COMMA371_tree=null;
+ CommonTree REGISTER372_tree=null;
+ CommonTree COMMA373_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleSubtreeStream stream_instruction_format22s=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format22s");
+ RewriteRuleSubtreeStream stream_integral_literal=new RewriteRuleSubtreeStream(adaptor,"rule integral_literal");
+
+ try {
+ // smaliParser.g:975:3: ( instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal ) )
+ // smaliParser.g:976:5: instruction_format22s REGISTER COMMA REGISTER COMMA integral_literal
+ {
+ pushFollow(FOLLOW_instruction_format22s_in_insn_format22s4817);
+ instruction_format22s369=instruction_format22s();
+ state._fsp--;
+
+ stream_instruction_format22s.add(instruction_format22s369.getTree());
+ REGISTER370=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s4819);
+ stream_REGISTER.add(REGISTER370);
+
+ COMMA371=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22s4821);
+ stream_COMMA.add(COMMA371);
+
+ REGISTER372=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s4823);
+ stream_REGISTER.add(REGISTER372);
+
+ COMMA373=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22s4825);
+ stream_COMMA.add(COMMA373);
+
+ pushFollow(FOLLOW_integral_literal_in_insn_format22s4827);
+ integral_literal374=integral_literal();
+ state._fsp--;
+
+ stream_integral_literal.add(integral_literal374.getTree());
+ // AST REWRITE
+ // elements: REGISTER, REGISTER, instruction_format22s, integral_literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 977:5: -> ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal )
+ {
+ // smaliParser.g:977:8: ^( I_STATEMENT_FORMAT22s[$start, \"I_STATEMENT_FORMAT22s\"] instruction_format22s REGISTER REGISTER integral_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22s, (retval.start), "I_STATEMENT_FORMAT22s"), root_1);
+ adaptor.addChild(root_1, stream_instruction_format22s.nextTree());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_integral_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format22s"
+
+
+ public static class insn_format22t_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format22t"
+ // smaliParser.g:979:1: insn_format22t : INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref ) ;
+ public final smaliParser.insn_format22t_return insn_format22t() throws RecognitionException {
+ smaliParser.insn_format22t_return retval = new smaliParser.insn_format22t_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT22t375=null;
+ Token REGISTER376=null;
+ Token COMMA377=null;
+ Token REGISTER378=null;
+ Token COMMA379=null;
+ ParserRuleReturnScope label_ref380 =null;
+
+ CommonTree INSTRUCTION_FORMAT22t375_tree=null;
+ CommonTree REGISTER376_tree=null;
+ CommonTree COMMA377_tree=null;
+ CommonTree REGISTER378_tree=null;
+ CommonTree COMMA379_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22t");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:980:3: ( INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref ) )
+ // smaliParser.g:981:5: INSTRUCTION_FORMAT22t REGISTER COMMA REGISTER COMMA label_ref
+ {
+ INSTRUCTION_FORMAT22t375=(Token)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t4861);
+ stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t375);
+
+ REGISTER376=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t4863);
+ stream_REGISTER.add(REGISTER376);
+
+ COMMA377=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22t4865);
+ stream_COMMA.add(COMMA377);
+
+ REGISTER378=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t4867);
+ stream_REGISTER.add(REGISTER378);
+
+ COMMA379=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22t4869);
+ stream_COMMA.add(COMMA379);
+
+ pushFollow(FOLLOW_label_ref_in_insn_format22t4871);
+ label_ref380=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(label_ref380.getTree());
+ // AST REWRITE
+ // elements: REGISTER, INSTRUCTION_FORMAT22t, REGISTER, label_ref
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 982:5: -> ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref )
+ {
+ // smaliParser.g:982:8: ^( I_STATEMENT_FORMAT22t[$start, \"I_STATEMENT_FFORMAT22t\"] INSTRUCTION_FORMAT22t REGISTER REGISTER label_ref )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22t, (retval.start), "I_STATEMENT_FFORMAT22t"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22t.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_label_ref.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format22t"
+
+
+ public static class insn_format22x_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format22x"
+ // smaliParser.g:984:1: insn_format22x : INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) ;
+ public final smaliParser.insn_format22x_return insn_format22x() throws RecognitionException {
+ smaliParser.insn_format22x_return retval = new smaliParser.insn_format22x_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT22x381=null;
+ Token REGISTER382=null;
+ Token COMMA383=null;
+ Token REGISTER384=null;
+
+ CommonTree INSTRUCTION_FORMAT22x381_tree=null;
+ CommonTree REGISTER382_tree=null;
+ CommonTree COMMA383_tree=null;
+ CommonTree REGISTER384_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT22x");
+
+ try {
+ // smaliParser.g:985:3: ( INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER ) )
+ // smaliParser.g:986:5: INSTRUCTION_FORMAT22x REGISTER COMMA REGISTER
+ {
+ INSTRUCTION_FORMAT22x381=(Token)match(input,INSTRUCTION_FORMAT22x,FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x4905);
+ stream_INSTRUCTION_FORMAT22x.add(INSTRUCTION_FORMAT22x381);
+
+ REGISTER382=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x4907);
+ stream_REGISTER.add(REGISTER382);
+
+ COMMA383=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format22x4909);
+ stream_COMMA.add(COMMA383);
+
+ REGISTER384=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x4911);
+ stream_REGISTER.add(REGISTER384);
+
+ // AST REWRITE
+ // elements: REGISTER, REGISTER, INSTRUCTION_FORMAT22x
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 987:5: -> ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER )
+ {
+ // smaliParser.g:987:8: ^( I_STATEMENT_FORMAT22x[$start, \"I_STATEMENT_FORMAT22x\"] INSTRUCTION_FORMAT22x REGISTER REGISTER )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT22x, (retval.start), "I_STATEMENT_FORMAT22x"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22x.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format22x"
+
+
+ public static class insn_format23x_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format23x"
+ // smaliParser.g:989:1: insn_format23x : INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) ;
+ public final smaliParser.insn_format23x_return insn_format23x() throws RecognitionException {
+ smaliParser.insn_format23x_return retval = new smaliParser.insn_format23x_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT23x385=null;
+ Token REGISTER386=null;
+ Token COMMA387=null;
+ Token REGISTER388=null;
+ Token COMMA389=null;
+ Token REGISTER390=null;
+
+ CommonTree INSTRUCTION_FORMAT23x385_tree=null;
+ CommonTree REGISTER386_tree=null;
+ CommonTree COMMA387_tree=null;
+ CommonTree REGISTER388_tree=null;
+ CommonTree COMMA389_tree=null;
+ CommonTree REGISTER390_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT23x");
+
+ try {
+ // smaliParser.g:990:3: ( INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER ) )
+ // smaliParser.g:991:5: INSTRUCTION_FORMAT23x REGISTER COMMA REGISTER COMMA REGISTER
+ {
+ INSTRUCTION_FORMAT23x385=(Token)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x4943);
+ stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x385);
+
+ REGISTER386=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x4945);
+ stream_REGISTER.add(REGISTER386);
+
+ COMMA387=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format23x4947);
+ stream_COMMA.add(COMMA387);
+
+ REGISTER388=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x4949);
+ stream_REGISTER.add(REGISTER388);
+
+ COMMA389=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format23x4951);
+ stream_COMMA.add(COMMA389);
+
+ REGISTER390=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x4953);
+ stream_REGISTER.add(REGISTER390);
+
+ // AST REWRITE
+ // elements: REGISTER, REGISTER, INSTRUCTION_FORMAT23x, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 992:5: -> ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER )
+ {
+ // smaliParser.g:992:8: ^( I_STATEMENT_FORMAT23x[$start, \"I_STATEMENT_FORMAT23x\"] INSTRUCTION_FORMAT23x REGISTER REGISTER REGISTER )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT23x, (retval.start), "I_STATEMENT_FORMAT23x"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT23x.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format23x"
+
+
+ public static class insn_format30t_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format30t"
+ // smaliParser.g:994:1: insn_format30t : INSTRUCTION_FORMAT30t label_ref -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref ) ;
+ public final smaliParser.insn_format30t_return insn_format30t() throws RecognitionException {
+ smaliParser.insn_format30t_return retval = new smaliParser.insn_format30t_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT30t391=null;
+ ParserRuleReturnScope label_ref392 =null;
+
+ CommonTree INSTRUCTION_FORMAT30t391_tree=null;
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT30t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT30t");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:995:3: ( INSTRUCTION_FORMAT30t label_ref -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref ) )
+ // smaliParser.g:996:5: INSTRUCTION_FORMAT30t label_ref
+ {
+ INSTRUCTION_FORMAT30t391=(Token)match(input,INSTRUCTION_FORMAT30t,FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t4987);
+ stream_INSTRUCTION_FORMAT30t.add(INSTRUCTION_FORMAT30t391);
+
+ pushFollow(FOLLOW_label_ref_in_insn_format30t4989);
+ label_ref392=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(label_ref392.getTree());
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT30t, label_ref
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 997:5: -> ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref )
+ {
+ // smaliParser.g:997:8: ^( I_STATEMENT_FORMAT30t[$start, \"I_STATEMENT_FORMAT30t\"] INSTRUCTION_FORMAT30t label_ref )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT30t, (retval.start), "I_STATEMENT_FORMAT30t"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT30t.nextNode());
+ adaptor.addChild(root_1, stream_label_ref.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format30t"
+
+
+ public static class insn_format31c_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format31c"
+ // smaliParser.g:999:1: insn_format31c : INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) ;
+ public final smaliParser.insn_format31c_return insn_format31c() throws RecognitionException {
+ smaliParser.insn_format31c_return retval = new smaliParser.insn_format31c_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT31c393=null;
+ Token REGISTER394=null;
+ Token COMMA395=null;
+ Token STRING_LITERAL396=null;
+
+ CommonTree INSTRUCTION_FORMAT31c393_tree=null;
+ CommonTree REGISTER394_tree=null;
+ CommonTree COMMA395_tree=null;
+ CommonTree STRING_LITERAL396_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31c=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31c");
+ RewriteRuleTokenStream stream_STRING_LITERAL=new RewriteRuleTokenStream(adaptor,"token STRING_LITERAL");
+
+ try {
+ // smaliParser.g:1000:3: ( INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL ) )
+ // smaliParser.g:1001:5: INSTRUCTION_FORMAT31c REGISTER COMMA STRING_LITERAL
+ {
+ INSTRUCTION_FORMAT31c393=(Token)match(input,INSTRUCTION_FORMAT31c,FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5019);
+ stream_INSTRUCTION_FORMAT31c.add(INSTRUCTION_FORMAT31c393);
+
+ REGISTER394=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31c5021);
+ stream_REGISTER.add(REGISTER394);
+
+ COMMA395=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31c5023);
+ stream_COMMA.add(COMMA395);
+
+ STRING_LITERAL396=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_insn_format31c5025);
+ stream_STRING_LITERAL.add(STRING_LITERAL396);
+
+ // AST REWRITE
+ // elements: REGISTER, STRING_LITERAL, INSTRUCTION_FORMAT31c
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1002:5: -> ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL )
+ {
+ // smaliParser.g:1002:7: ^( I_STATEMENT_FORMAT31c[$start, \"I_STATEMENT_FORMAT31c\"] INSTRUCTION_FORMAT31c REGISTER STRING_LITERAL )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31c, (retval.start), "I_STATEMENT_FORMAT31c"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31c.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format31c"
+
+
+ public static class insn_format31i_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format31i"
+ // smaliParser.g:1004:1: insn_format31i : instruction_format31i REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) ;
+ public final smaliParser.insn_format31i_return insn_format31i() throws RecognitionException {
+ smaliParser.insn_format31i_return retval = new smaliParser.insn_format31i_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token REGISTER398=null;
+ Token COMMA399=null;
+ ParserRuleReturnScope instruction_format31i397 =null;
+ ParserRuleReturnScope fixed_32bit_literal400 =null;
+
+ CommonTree REGISTER398_tree=null;
+ CommonTree COMMA399_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+ RewriteRuleSubtreeStream stream_instruction_format31i=new RewriteRuleSubtreeStream(adaptor,"rule instruction_format31i");
+
+ try {
+ // smaliParser.g:1005:3: ( instruction_format31i REGISTER COMMA fixed_32bit_literal -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal ) )
+ // smaliParser.g:1006:5: instruction_format31i REGISTER COMMA fixed_32bit_literal
+ {
+ pushFollow(FOLLOW_instruction_format31i_in_insn_format31i5056);
+ instruction_format31i397=instruction_format31i();
+ state._fsp--;
+
+ stream_instruction_format31i.add(instruction_format31i397.getTree());
+ REGISTER398=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31i5058);
+ stream_REGISTER.add(REGISTER398);
+
+ COMMA399=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31i5060);
+ stream_COMMA.add(COMMA399);
+
+ pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format31i5062);
+ fixed_32bit_literal400=fixed_32bit_literal();
+ state._fsp--;
+
+ stream_fixed_32bit_literal.add(fixed_32bit_literal400.getTree());
+ // AST REWRITE
+ // elements: instruction_format31i, REGISTER, fixed_32bit_literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1007:5: -> ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal )
+ {
+ // smaliParser.g:1007:8: ^( I_STATEMENT_FORMAT31i[$start, \"I_STATEMENT_FORMAT31i\"] instruction_format31i REGISTER fixed_32bit_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31i, (retval.start), "I_STATEMENT_FORMAT31i"), root_1);
+ adaptor.addChild(root_1, stream_instruction_format31i.nextTree());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format31i"
+
+
+ public static class insn_format31t_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format31t"
+ // smaliParser.g:1009:1: insn_format31t : INSTRUCTION_FORMAT31t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref ) ;
+ public final smaliParser.insn_format31t_return insn_format31t() throws RecognitionException {
+ smaliParser.insn_format31t_return retval = new smaliParser.insn_format31t_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT31t401=null;
+ Token REGISTER402=null;
+ Token COMMA403=null;
+ ParserRuleReturnScope label_ref404 =null;
+
+ CommonTree INSTRUCTION_FORMAT31t401_tree=null;
+ CommonTree REGISTER402_tree=null;
+ CommonTree COMMA403_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT31t");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:1010:3: ( INSTRUCTION_FORMAT31t REGISTER COMMA label_ref -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref ) )
+ // smaliParser.g:1011:5: INSTRUCTION_FORMAT31t REGISTER COMMA label_ref
+ {
+ INSTRUCTION_FORMAT31t401=(Token)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5094);
+ stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t401);
+
+ REGISTER402=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31t5096);
+ stream_REGISTER.add(REGISTER402);
+
+ COMMA403=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format31t5098);
+ stream_COMMA.add(COMMA403);
+
+ pushFollow(FOLLOW_label_ref_in_insn_format31t5100);
+ label_ref404=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(label_ref404.getTree());
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT31t, REGISTER, label_ref
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1012:5: -> ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref )
+ {
+ // smaliParser.g:1012:8: ^( I_STATEMENT_FORMAT31t[$start, \"I_STATEMENT_FORMAT31t\"] INSTRUCTION_FORMAT31t REGISTER label_ref )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT31t, (retval.start), "I_STATEMENT_FORMAT31t"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31t.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_label_ref.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format31t"
+
+
+ public static class insn_format32x_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format32x"
+ // smaliParser.g:1014:1: insn_format32x : INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) ;
+ public final smaliParser.insn_format32x_return insn_format32x() throws RecognitionException {
+ smaliParser.insn_format32x_return retval = new smaliParser.insn_format32x_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT32x405=null;
+ Token REGISTER406=null;
+ Token COMMA407=null;
+ Token REGISTER408=null;
+
+ CommonTree INSTRUCTION_FORMAT32x405_tree=null;
+ CommonTree REGISTER406_tree=null;
+ CommonTree COMMA407_tree=null;
+ CommonTree REGISTER408_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT32x=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT32x");
+
+ try {
+ // smaliParser.g:1015:3: ( INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER ) )
+ // smaliParser.g:1016:5: INSTRUCTION_FORMAT32x REGISTER COMMA REGISTER
+ {
+ INSTRUCTION_FORMAT32x405=(Token)match(input,INSTRUCTION_FORMAT32x,FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5132);
+ stream_INSTRUCTION_FORMAT32x.add(INSTRUCTION_FORMAT32x405);
+
+ REGISTER406=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x5134);
+ stream_REGISTER.add(REGISTER406);
+
+ COMMA407=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format32x5136);
+ stream_COMMA.add(COMMA407);
+
+ REGISTER408=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x5138);
+ stream_REGISTER.add(REGISTER408);
+
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT32x, REGISTER, REGISTER
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1017:5: -> ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER )
+ {
+ // smaliParser.g:1017:8: ^( I_STATEMENT_FORMAT32x[$start, \"I_STATEMENT_FORMAT32x\"] INSTRUCTION_FORMAT32x REGISTER REGISTER )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT32x, (retval.start), "I_STATEMENT_FORMAT32x"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT32x.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format32x"
+
+
+ public static class insn_format35c_method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format35c_method"
+ // smaliParser.g:1019:1: insn_format35c_method : INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) ;
+ public final smaliParser.insn_format35c_method_return insn_format35c_method() throws RecognitionException {
+ smaliParser.insn_format35c_method_return retval = new smaliParser.insn_format35c_method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT35c_METHOD409=null;
+ Token OPEN_BRACE410=null;
+ Token CLOSE_BRACE412=null;
+ Token COMMA413=null;
+ ParserRuleReturnScope register_list411 =null;
+ ParserRuleReturnScope method_reference414 =null;
+
+ CommonTree INSTRUCTION_FORMAT35c_METHOD409_tree=null;
+ CommonTree OPEN_BRACE410_tree=null;
+ CommonTree CLOSE_BRACE412_tree=null;
+ CommonTree COMMA413_tree=null;
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_METHOD");
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
+ RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
+
+ try {
+ // smaliParser.g:1020:3: ( INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) )
+ // smaliParser.g:1021:5: INSTRUCTION_FORMAT35c_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
+ {
+ INSTRUCTION_FORMAT35c_METHOD409=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method5170);
+ stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD409);
+
+ OPEN_BRACE410=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_method5172);
+ stream_OPEN_BRACE.add(OPEN_BRACE410);
+
+ pushFollow(FOLLOW_register_list_in_insn_format35c_method5174);
+ register_list411=register_list();
+ state._fsp--;
+
+ stream_register_list.add(register_list411.getTree());
+ CLOSE_BRACE412=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_method5176);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE412);
+
+ COMMA413=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_method5178);
+ stream_COMMA.add(COMMA413);
+
+ pushFollow(FOLLOW_method_reference_in_insn_format35c_method5180);
+ method_reference414=method_reference();
+ state._fsp--;
+
+ stream_method_reference.add(method_reference414.getTree());
+ // AST REWRITE
+ // elements: INSTRUCTION_FORMAT35c_METHOD, register_list, method_reference
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1022:5: -> ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference )
+ {
+ // smaliParser.g:1022:8: ^( I_STATEMENT_FORMAT35c_METHOD[$start, \"I_STATEMENT_FORMAT35c_METHOD\"] INSTRUCTION_FORMAT35c_METHOD register_list method_reference )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT35c_METHOD, (retval.start), "I_STATEMENT_FORMAT35c_METHOD"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_METHOD.nextNode());
+ adaptor.addChild(root_1, stream_register_list.nextTree());
+ adaptor.addChild(root_1, stream_method_reference.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format35c_method"
+
+
+ public static class insn_format35c_type_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format35c_type"
+ // smaliParser.g:1024:1: insn_format35c_type : INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) ;
+ public final smaliParser.insn_format35c_type_return insn_format35c_type() throws RecognitionException {
+ smaliParser.insn_format35c_type_return retval = new smaliParser.insn_format35c_type_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT35c_TYPE415=null;
+ Token OPEN_BRACE416=null;
+ Token CLOSE_BRACE418=null;
+ Token COMMA419=null;
+ ParserRuleReturnScope register_list417 =null;
+ ParserRuleReturnScope nonvoid_type_descriptor420 =null;
+
+ CommonTree INSTRUCTION_FORMAT35c_TYPE415_tree=null;
+ CommonTree OPEN_BRACE416_tree=null;
+ CommonTree CLOSE_BRACE418_tree=null;
+ CommonTree COMMA419_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT35c_TYPE");
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+
+ try {
+ // smaliParser.g:1025:3: ( INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) )
+ // smaliParser.g:1026:5: INSTRUCTION_FORMAT35c_TYPE OPEN_BRACE register_list CLOSE_BRACE COMMA nonvoid_type_descriptor
+ {
+ INSTRUCTION_FORMAT35c_TYPE415=(Token)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5212);
+ stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE415);
+
+ OPEN_BRACE416=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_type5214);
+ stream_OPEN_BRACE.add(OPEN_BRACE416);
+
+ pushFollow(FOLLOW_register_list_in_insn_format35c_type5216);
+ register_list417=register_list();
+ state._fsp--;
+
+ stream_register_list.add(register_list417.getTree());
+ CLOSE_BRACE418=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_type5218);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE418);
+
+ COMMA419=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_type5220);
+ stream_COMMA.add(COMMA419);
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5222);
+ nonvoid_type_descriptor420=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor420.getTree());
+ // AST REWRITE
+ // elements: register_list, INSTRUCTION_FORMAT35c_TYPE, nonvoid_type_descriptor
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1027:5: -> ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor )
+ {
+ // smaliParser.g:1027:8: ^( I_STATEMENT_FORMAT35c_TYPE[$start, \"I_STATEMENT_FORMAT35c_TYPE\"] INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT35c_TYPE, (retval.start), "I_STATEMENT_FORMAT35c_TYPE"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_TYPE.nextNode());
+ adaptor.addChild(root_1, stream_register_list.nextTree());
+ adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format35c_type"
+
+
+ public static class insn_format35c_method_odex_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format35c_method_odex"
+ // smaliParser.g:1029:1: insn_format35c_method_odex : INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference ;
+ public final smaliParser.insn_format35c_method_odex_return insn_format35c_method_odex() throws RecognitionException {
+ smaliParser.insn_format35c_method_odex_return retval = new smaliParser.insn_format35c_method_odex_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT35c_METHOD_ODEX421=null;
+ Token OPEN_BRACE422=null;
+ Token CLOSE_BRACE424=null;
+ Token COMMA425=null;
+ ParserRuleReturnScope register_list423 =null;
+ ParserRuleReturnScope method_reference426 =null;
+
+ CommonTree INSTRUCTION_FORMAT35c_METHOD_ODEX421_tree=null;
+ CommonTree OPEN_BRACE422_tree=null;
+ CommonTree CLOSE_BRACE424_tree=null;
+ CommonTree COMMA425_tree=null;
+
+ try {
+ // smaliParser.g:1030:3: ( INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference )
+ // smaliParser.g:1031:5: INSTRUCTION_FORMAT35c_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT35c_METHOD_ODEX421=(Token)match(input,INSTRUCTION_FORMAT35c_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5254);
+ INSTRUCTION_FORMAT35c_METHOD_ODEX421_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35c_METHOD_ODEX421);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT35c_METHOD_ODEX421_tree);
+
+ OPEN_BRACE422=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5256);
+ OPEN_BRACE422_tree = (CommonTree)adaptor.create(OPEN_BRACE422);
+ adaptor.addChild(root_0, OPEN_BRACE422_tree);
+
+ pushFollow(FOLLOW_register_list_in_insn_format35c_method_odex5258);
+ register_list423=register_list();
+ state._fsp--;
+
+ adaptor.addChild(root_0, register_list423.getTree());
+
+ CLOSE_BRACE424=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5260);
+ CLOSE_BRACE424_tree = (CommonTree)adaptor.create(CLOSE_BRACE424);
+ adaptor.addChild(root_0, CLOSE_BRACE424_tree);
+
+ COMMA425=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35c_method_odex5262);
+ COMMA425_tree = (CommonTree)adaptor.create(COMMA425);
+ adaptor.addChild(root_0, COMMA425_tree);
+
+ pushFollow(FOLLOW_method_reference_in_insn_format35c_method_odex5264);
+ method_reference426=method_reference();
+ state._fsp--;
+
+ adaptor.addChild(root_0, method_reference426.getTree());
+
+
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35c_METHOD_ODEX421!=null?INSTRUCTION_FORMAT35c_METHOD_ODEX421.getText():null));
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format35c_method_odex"
+
+
+ public static class insn_format35mi_method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format35mi_method"
+ // smaliParser.g:1036:1: insn_format35mi_method : INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX ;
+ public final smaliParser.insn_format35mi_method_return insn_format35mi_method() throws RecognitionException {
+ smaliParser.insn_format35mi_method_return retval = new smaliParser.insn_format35mi_method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT35mi_METHOD427=null;
+ Token OPEN_BRACE428=null;
+ Token CLOSE_BRACE430=null;
+ Token COMMA431=null;
+ Token INLINE_INDEX432=null;
+ ParserRuleReturnScope register_list429 =null;
+
+ CommonTree INSTRUCTION_FORMAT35mi_METHOD427_tree=null;
+ CommonTree OPEN_BRACE428_tree=null;
+ CommonTree CLOSE_BRACE430_tree=null;
+ CommonTree COMMA431_tree=null;
+ CommonTree INLINE_INDEX432_tree=null;
+
+ try {
+ // smaliParser.g:1037:3: ( INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX )
+ // smaliParser.g:1038:5: INSTRUCTION_FORMAT35mi_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA INLINE_INDEX
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT35mi_METHOD427=(Token)match(input,INSTRUCTION_FORMAT35mi_METHOD,FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5285);
+ INSTRUCTION_FORMAT35mi_METHOD427_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35mi_METHOD427);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT35mi_METHOD427_tree);
+
+ OPEN_BRACE428=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35mi_method5287);
+ OPEN_BRACE428_tree = (CommonTree)adaptor.create(OPEN_BRACE428);
+ adaptor.addChild(root_0, OPEN_BRACE428_tree);
+
+ pushFollow(FOLLOW_register_list_in_insn_format35mi_method5289);
+ register_list429=register_list();
+ state._fsp--;
+
+ adaptor.addChild(root_0, register_list429.getTree());
+
+ CLOSE_BRACE430=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5291);
+ CLOSE_BRACE430_tree = (CommonTree)adaptor.create(CLOSE_BRACE430);
+ adaptor.addChild(root_0, CLOSE_BRACE430_tree);
+
+ COMMA431=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35mi_method5293);
+ COMMA431_tree = (CommonTree)adaptor.create(COMMA431);
+ adaptor.addChild(root_0, COMMA431_tree);
+
+ INLINE_INDEX432=(Token)match(input,INLINE_INDEX,FOLLOW_INLINE_INDEX_in_insn_format35mi_method5295);
+ INLINE_INDEX432_tree = (CommonTree)adaptor.create(INLINE_INDEX432);
+ adaptor.addChild(root_0, INLINE_INDEX432_tree);
+
+
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35mi_METHOD427!=null?INSTRUCTION_FORMAT35mi_METHOD427.getText():null));
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format35mi_method"
+
+
+ public static class insn_format35ms_method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format35ms_method"
+ // smaliParser.g:1043:1: insn_format35ms_method : INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX ;
+ public final smaliParser.insn_format35ms_method_return insn_format35ms_method() throws RecognitionException {
+ smaliParser.insn_format35ms_method_return retval = new smaliParser.insn_format35ms_method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT35ms_METHOD433=null;
+ Token OPEN_BRACE434=null;
+ Token CLOSE_BRACE436=null;
+ Token COMMA437=null;
+ Token VTABLE_INDEX438=null;
+ ParserRuleReturnScope register_list435 =null;
+
+ CommonTree INSTRUCTION_FORMAT35ms_METHOD433_tree=null;
+ CommonTree OPEN_BRACE434_tree=null;
+ CommonTree CLOSE_BRACE436_tree=null;
+ CommonTree COMMA437_tree=null;
+ CommonTree VTABLE_INDEX438_tree=null;
+
+ try {
+ // smaliParser.g:1044:3: ( INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX )
+ // smaliParser.g:1045:5: INSTRUCTION_FORMAT35ms_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA VTABLE_INDEX
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT35ms_METHOD433=(Token)match(input,INSTRUCTION_FORMAT35ms_METHOD,FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5316);
+ INSTRUCTION_FORMAT35ms_METHOD433_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT35ms_METHOD433);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT35ms_METHOD433_tree);
+
+ OPEN_BRACE434=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format35ms_method5318);
+ OPEN_BRACE434_tree = (CommonTree)adaptor.create(OPEN_BRACE434);
+ adaptor.addChild(root_0, OPEN_BRACE434_tree);
+
+ pushFollow(FOLLOW_register_list_in_insn_format35ms_method5320);
+ register_list435=register_list();
+ state._fsp--;
+
+ adaptor.addChild(root_0, register_list435.getTree());
+
+ CLOSE_BRACE436=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5322);
+ CLOSE_BRACE436_tree = (CommonTree)adaptor.create(CLOSE_BRACE436);
+ adaptor.addChild(root_0, CLOSE_BRACE436_tree);
+
+ COMMA437=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format35ms_method5324);
+ COMMA437_tree = (CommonTree)adaptor.create(COMMA437);
+ adaptor.addChild(root_0, COMMA437_tree);
+
+ VTABLE_INDEX438=(Token)match(input,VTABLE_INDEX,FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5326);
+ VTABLE_INDEX438_tree = (CommonTree)adaptor.create(VTABLE_INDEX438);
+ adaptor.addChild(root_0, VTABLE_INDEX438_tree);
+
+
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT35ms_METHOD433!=null?INSTRUCTION_FORMAT35ms_METHOD433.getText():null));
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format35ms_method"
+
+
+ public static class insn_format3rc_method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format3rc_method"
+ // smaliParser.g:1050:1: insn_format3rc_method : INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) ;
+ public final smaliParser.insn_format3rc_method_return insn_format3rc_method() throws RecognitionException {
+ smaliParser.insn_format3rc_method_return retval = new smaliParser.insn_format3rc_method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT3rc_METHOD439=null;
+ Token OPEN_BRACE440=null;
+ Token CLOSE_BRACE442=null;
+ Token COMMA443=null;
+ ParserRuleReturnScope register_range441 =null;
+ ParserRuleReturnScope method_reference444 =null;
+
+ CommonTree INSTRUCTION_FORMAT3rc_METHOD439_tree=null;
+ CommonTree OPEN_BRACE440_tree=null;
+ CommonTree CLOSE_BRACE442_tree=null;
+ CommonTree COMMA443_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT3rc_METHOD");
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
+ RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range");
+
+ try {
+ // smaliParser.g:1051:3: ( INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) )
+ // smaliParser.g:1052:5: INSTRUCTION_FORMAT3rc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference
+ {
+ INSTRUCTION_FORMAT3rc_METHOD439=(Token)match(input,INSTRUCTION_FORMAT3rc_METHOD,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5347);
+ stream_INSTRUCTION_FORMAT3rc_METHOD.add(INSTRUCTION_FORMAT3rc_METHOD439);
+
+ OPEN_BRACE440=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_method5349);
+ stream_OPEN_BRACE.add(OPEN_BRACE440);
+
+ pushFollow(FOLLOW_register_range_in_insn_format3rc_method5351);
+ register_range441=register_range();
+ state._fsp--;
+
+ stream_register_range.add(register_range441.getTree());
+ CLOSE_BRACE442=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5353);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE442);
+
+ COMMA443=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_method5355);
+ stream_COMMA.add(COMMA443);
+
+ pushFollow(FOLLOW_method_reference_in_insn_format3rc_method5357);
+ method_reference444=method_reference();
+ state._fsp--;
+
+ stream_method_reference.add(method_reference444.getTree());
+ // AST REWRITE
+ // elements: register_range, INSTRUCTION_FORMAT3rc_METHOD, method_reference
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1053:5: -> ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference )
+ {
+ // smaliParser.g:1053:8: ^( I_STATEMENT_FORMAT3rc_METHOD[$start, \"I_STATEMENT_FORMAT3rc_METHOD\"] INSTRUCTION_FORMAT3rc_METHOD register_range method_reference )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT3rc_METHOD, (retval.start), "I_STATEMENT_FORMAT3rc_METHOD"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_METHOD.nextNode());
+ adaptor.addChild(root_1, stream_register_range.nextTree());
+ adaptor.addChild(root_1, stream_method_reference.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format3rc_method"
+
+
+ public static class insn_format3rc_method_odex_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format3rc_method_odex"
+ // smaliParser.g:1055:1: insn_format3rc_method_odex : INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference ;
+ public final smaliParser.insn_format3rc_method_odex_return insn_format3rc_method_odex() throws RecognitionException {
+ smaliParser.insn_format3rc_method_odex_return retval = new smaliParser.insn_format3rc_method_odex_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT3rc_METHOD_ODEX445=null;
+ Token OPEN_BRACE446=null;
+ Token CLOSE_BRACE448=null;
+ Token COMMA449=null;
+ ParserRuleReturnScope register_list447 =null;
+ ParserRuleReturnScope method_reference450 =null;
+
+ CommonTree INSTRUCTION_FORMAT3rc_METHOD_ODEX445_tree=null;
+ CommonTree OPEN_BRACE446_tree=null;
+ CommonTree CLOSE_BRACE448_tree=null;
+ CommonTree COMMA449_tree=null;
+
+ try {
+ // smaliParser.g:1056:3: ( INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference )
+ // smaliParser.g:1057:5: INSTRUCTION_FORMAT3rc_METHOD_ODEX OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT3rc_METHOD_ODEX445=(Token)match(input,INSTRUCTION_FORMAT3rc_METHOD_ODEX,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5389);
+ INSTRUCTION_FORMAT3rc_METHOD_ODEX445_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rc_METHOD_ODEX445);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT3rc_METHOD_ODEX445_tree);
+
+ OPEN_BRACE446=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5391);
+ OPEN_BRACE446_tree = (CommonTree)adaptor.create(OPEN_BRACE446);
+ adaptor.addChild(root_0, OPEN_BRACE446_tree);
+
+ pushFollow(FOLLOW_register_list_in_insn_format3rc_method_odex5393);
+ register_list447=register_list();
+ state._fsp--;
+
+ adaptor.addChild(root_0, register_list447.getTree());
+
+ CLOSE_BRACE448=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5395);
+ CLOSE_BRACE448_tree = (CommonTree)adaptor.create(CLOSE_BRACE448);
+ adaptor.addChild(root_0, CLOSE_BRACE448_tree);
+
+ COMMA449=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_method_odex5397);
+ COMMA449_tree = (CommonTree)adaptor.create(COMMA449);
+ adaptor.addChild(root_0, COMMA449_tree);
+
+ pushFollow(FOLLOW_method_reference_in_insn_format3rc_method_odex5399);
+ method_reference450=method_reference();
+ state._fsp--;
+
+ adaptor.addChild(root_0, method_reference450.getTree());
+
+
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rc_METHOD_ODEX445!=null?INSTRUCTION_FORMAT3rc_METHOD_ODEX445.getText():null));
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format3rc_method_odex"
+
+
+ public static class insn_format3rc_type_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format3rc_type"
+ // smaliParser.g:1062:1: insn_format3rc_type : INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) ;
+ public final smaliParser.insn_format3rc_type_return insn_format3rc_type() throws RecognitionException {
+ smaliParser.insn_format3rc_type_return retval = new smaliParser.insn_format3rc_type_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT3rc_TYPE451=null;
+ Token OPEN_BRACE452=null;
+ Token CLOSE_BRACE454=null;
+ Token COMMA455=null;
+ ParserRuleReturnScope register_range453 =null;
+ ParserRuleReturnScope nonvoid_type_descriptor456 =null;
+
+ CommonTree INSTRUCTION_FORMAT3rc_TYPE451_tree=null;
+ CommonTree OPEN_BRACE452_tree=null;
+ CommonTree CLOSE_BRACE454_tree=null;
+ CommonTree COMMA455_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_TYPE=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT3rc_TYPE");
+ RewriteRuleSubtreeStream stream_nonvoid_type_descriptor=new RewriteRuleSubtreeStream(adaptor,"rule nonvoid_type_descriptor");
+ RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range");
+
+ try {
+ // smaliParser.g:1063:3: ( INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) )
+ // smaliParser.g:1064:5: INSTRUCTION_FORMAT3rc_TYPE OPEN_BRACE register_range CLOSE_BRACE COMMA nonvoid_type_descriptor
+ {
+ INSTRUCTION_FORMAT3rc_TYPE451=(Token)match(input,INSTRUCTION_FORMAT3rc_TYPE,FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5420);
+ stream_INSTRUCTION_FORMAT3rc_TYPE.add(INSTRUCTION_FORMAT3rc_TYPE451);
+
+ OPEN_BRACE452=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rc_type5422);
+ stream_OPEN_BRACE.add(OPEN_BRACE452);
+
+ pushFollow(FOLLOW_register_range_in_insn_format3rc_type5424);
+ register_range453=register_range();
+ state._fsp--;
+
+ stream_register_range.add(register_range453.getTree());
+ CLOSE_BRACE454=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5426);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE454);
+
+ COMMA455=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rc_type5428);
+ stream_COMMA.add(COMMA455);
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5430);
+ nonvoid_type_descriptor456=nonvoid_type_descriptor();
+ state._fsp--;
+
+ stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor456.getTree());
+ // AST REWRITE
+ // elements: nonvoid_type_descriptor, INSTRUCTION_FORMAT3rc_TYPE, register_range
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1065:5: -> ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor )
+ {
+ // smaliParser.g:1065:8: ^( I_STATEMENT_FORMAT3rc_TYPE[$start, \"I_STATEMENT_FORMAT3rc_TYPE\"] INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT3rc_TYPE, (retval.start), "I_STATEMENT_FORMAT3rc_TYPE"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_TYPE.nextNode());
+ adaptor.addChild(root_1, stream_register_range.nextTree());
+ adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format3rc_type"
+
+
+ public static class insn_format3rmi_method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format3rmi_method"
+ // smaliParser.g:1067:1: insn_format3rmi_method : INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX ;
+ public final smaliParser.insn_format3rmi_method_return insn_format3rmi_method() throws RecognitionException {
+ smaliParser.insn_format3rmi_method_return retval = new smaliParser.insn_format3rmi_method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT3rmi_METHOD457=null;
+ Token OPEN_BRACE458=null;
+ Token CLOSE_BRACE460=null;
+ Token COMMA461=null;
+ Token INLINE_INDEX462=null;
+ ParserRuleReturnScope register_range459 =null;
+
+ CommonTree INSTRUCTION_FORMAT3rmi_METHOD457_tree=null;
+ CommonTree OPEN_BRACE458_tree=null;
+ CommonTree CLOSE_BRACE460_tree=null;
+ CommonTree COMMA461_tree=null;
+ CommonTree INLINE_INDEX462_tree=null;
+
+ try {
+ // smaliParser.g:1068:3: ( INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX )
+ // smaliParser.g:1069:5: INSTRUCTION_FORMAT3rmi_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA INLINE_INDEX
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT3rmi_METHOD457=(Token)match(input,INSTRUCTION_FORMAT3rmi_METHOD,FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method5462);
+ INSTRUCTION_FORMAT3rmi_METHOD457_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rmi_METHOD457);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT3rmi_METHOD457_tree);
+
+ OPEN_BRACE458=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rmi_method5464);
+ OPEN_BRACE458_tree = (CommonTree)adaptor.create(OPEN_BRACE458);
+ adaptor.addChild(root_0, OPEN_BRACE458_tree);
+
+ pushFollow(FOLLOW_register_range_in_insn_format3rmi_method5466);
+ register_range459=register_range();
+ state._fsp--;
+
+ adaptor.addChild(root_0, register_range459.getTree());
+
+ CLOSE_BRACE460=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method5468);
+ CLOSE_BRACE460_tree = (CommonTree)adaptor.create(CLOSE_BRACE460);
+ adaptor.addChild(root_0, CLOSE_BRACE460_tree);
+
+ COMMA461=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rmi_method5470);
+ COMMA461_tree = (CommonTree)adaptor.create(COMMA461);
+ adaptor.addChild(root_0, COMMA461_tree);
+
+ INLINE_INDEX462=(Token)match(input,INLINE_INDEX,FOLLOW_INLINE_INDEX_in_insn_format3rmi_method5472);
+ INLINE_INDEX462_tree = (CommonTree)adaptor.create(INLINE_INDEX462);
+ adaptor.addChild(root_0, INLINE_INDEX462_tree);
+
+
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rmi_METHOD457!=null?INSTRUCTION_FORMAT3rmi_METHOD457.getText():null));
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format3rmi_method"
+
+
+ public static class insn_format3rms_method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format3rms_method"
+ // smaliParser.g:1074:1: insn_format3rms_method : INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX ;
+ public final smaliParser.insn_format3rms_method_return insn_format3rms_method() throws RecognitionException {
+ smaliParser.insn_format3rms_method_return retval = new smaliParser.insn_format3rms_method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT3rms_METHOD463=null;
+ Token OPEN_BRACE464=null;
+ Token CLOSE_BRACE466=null;
+ Token COMMA467=null;
+ Token VTABLE_INDEX468=null;
+ ParserRuleReturnScope register_range465 =null;
+
+ CommonTree INSTRUCTION_FORMAT3rms_METHOD463_tree=null;
+ CommonTree OPEN_BRACE464_tree=null;
+ CommonTree CLOSE_BRACE466_tree=null;
+ CommonTree COMMA467_tree=null;
+ CommonTree VTABLE_INDEX468_tree=null;
+
+ try {
+ // smaliParser.g:1075:3: ( INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX )
+ // smaliParser.g:1076:5: INSTRUCTION_FORMAT3rms_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA VTABLE_INDEX
+ {
+ root_0 = (CommonTree)adaptor.nil();
+
+
+ INSTRUCTION_FORMAT3rms_METHOD463=(Token)match(input,INSTRUCTION_FORMAT3rms_METHOD,FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method5493);
+ INSTRUCTION_FORMAT3rms_METHOD463_tree = (CommonTree)adaptor.create(INSTRUCTION_FORMAT3rms_METHOD463);
+ adaptor.addChild(root_0, INSTRUCTION_FORMAT3rms_METHOD463_tree);
+
+ OPEN_BRACE464=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format3rms_method5495);
+ OPEN_BRACE464_tree = (CommonTree)adaptor.create(OPEN_BRACE464);
+ adaptor.addChild(root_0, OPEN_BRACE464_tree);
+
+ pushFollow(FOLLOW_register_range_in_insn_format3rms_method5497);
+ register_range465=register_range();
+ state._fsp--;
+
+ adaptor.addChild(root_0, register_range465.getTree());
+
+ CLOSE_BRACE466=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format3rms_method5499);
+ CLOSE_BRACE466_tree = (CommonTree)adaptor.create(CLOSE_BRACE466);
+ adaptor.addChild(root_0, CLOSE_BRACE466_tree);
+
+ COMMA467=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format3rms_method5501);
+ COMMA467_tree = (CommonTree)adaptor.create(COMMA467);
+ adaptor.addChild(root_0, COMMA467_tree);
+
+ VTABLE_INDEX468=(Token)match(input,VTABLE_INDEX,FOLLOW_VTABLE_INDEX_in_insn_format3rms_method5503);
+ VTABLE_INDEX468_tree = (CommonTree)adaptor.create(VTABLE_INDEX468);
+ adaptor.addChild(root_0, VTABLE_INDEX468_tree);
+
+
+ throwOdexedInstructionException(input, (INSTRUCTION_FORMAT3rms_METHOD463!=null?INSTRUCTION_FORMAT3rms_METHOD463.getText():null));
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format3rms_method"
+
+
+ public static class insn_format45cc_method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format45cc_method"
+ // smaliParser.g:1081:1: insn_format45cc_method : INSTRUCTION_FORMAT45cc_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference COMMA method_prototype -> ^( I_STATEMENT_FORMAT45cc_METHOD[$start, \"I_STATEMENT_FORMAT45cc_METHOD\"] INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype ) ;
+ public final smaliParser.insn_format45cc_method_return insn_format45cc_method() throws RecognitionException {
+ smaliParser.insn_format45cc_method_return retval = new smaliParser.insn_format45cc_method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT45cc_METHOD469=null;
+ Token OPEN_BRACE470=null;
+ Token CLOSE_BRACE472=null;
+ Token COMMA473=null;
+ Token COMMA475=null;
+ ParserRuleReturnScope register_list471 =null;
+ ParserRuleReturnScope method_reference474 =null;
+ ParserRuleReturnScope method_prototype476 =null;
+
+ CommonTree INSTRUCTION_FORMAT45cc_METHOD469_tree=null;
+ CommonTree OPEN_BRACE470_tree=null;
+ CommonTree CLOSE_BRACE472_tree=null;
+ CommonTree COMMA473_tree=null;
+ CommonTree COMMA475_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT45cc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT45cc_METHOD");
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
+ RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
+ RewriteRuleSubtreeStream stream_register_list=new RewriteRuleSubtreeStream(adaptor,"rule register_list");
+
+ try {
+ // smaliParser.g:1082:3: ( INSTRUCTION_FORMAT45cc_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference COMMA method_prototype -> ^( I_STATEMENT_FORMAT45cc_METHOD[$start, \"I_STATEMENT_FORMAT45cc_METHOD\"] INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype ) )
+ // smaliParser.g:1083:5: INSTRUCTION_FORMAT45cc_METHOD OPEN_BRACE register_list CLOSE_BRACE COMMA method_reference COMMA method_prototype
+ {
+ INSTRUCTION_FORMAT45cc_METHOD469=(Token)match(input,INSTRUCTION_FORMAT45cc_METHOD,FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method5524);
+ stream_INSTRUCTION_FORMAT45cc_METHOD.add(INSTRUCTION_FORMAT45cc_METHOD469);
+
+ OPEN_BRACE470=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format45cc_method5526);
+ stream_OPEN_BRACE.add(OPEN_BRACE470);
+
+ pushFollow(FOLLOW_register_list_in_insn_format45cc_method5528);
+ register_list471=register_list();
+ state._fsp--;
+
+ stream_register_list.add(register_list471.getTree());
+ CLOSE_BRACE472=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format45cc_method5530);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE472);
+
+ COMMA473=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format45cc_method5532);
+ stream_COMMA.add(COMMA473);
+
+ pushFollow(FOLLOW_method_reference_in_insn_format45cc_method5534);
+ method_reference474=method_reference();
+ state._fsp--;
+
+ stream_method_reference.add(method_reference474.getTree());
+ COMMA475=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format45cc_method5536);
+ stream_COMMA.add(COMMA475);
+
+ pushFollow(FOLLOW_method_prototype_in_insn_format45cc_method5538);
+ method_prototype476=method_prototype();
+ state._fsp--;
+
+ stream_method_prototype.add(method_prototype476.getTree());
+ // AST REWRITE
+ // elements: method_reference, method_prototype, INSTRUCTION_FORMAT45cc_METHOD, register_list
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1084:5: -> ^( I_STATEMENT_FORMAT45cc_METHOD[$start, \"I_STATEMENT_FORMAT45cc_METHOD\"] INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype )
+ {
+ // smaliParser.g:1084:8: ^( I_STATEMENT_FORMAT45cc_METHOD[$start, \"I_STATEMENT_FORMAT45cc_METHOD\"] INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT45cc_METHOD, (retval.start), "I_STATEMENT_FORMAT45cc_METHOD"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT45cc_METHOD.nextNode());
+ adaptor.addChild(root_1, stream_register_list.nextTree());
+ adaptor.addChild(root_1, stream_method_reference.nextTree());
+ adaptor.addChild(root_1, stream_method_prototype.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format45cc_method"
+
+
+ public static class insn_format4rcc_method_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format4rcc_method"
+ // smaliParser.g:1086:1: insn_format4rcc_method : INSTRUCTION_FORMAT4rcc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference COMMA method_prototype -> ^( I_STATEMENT_FORMAT4rcc_METHOD[$start, \"I_STATEMENT_FORMAT4rcc_METHOD\"] INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype ) ;
+ public final smaliParser.insn_format4rcc_method_return insn_format4rcc_method() throws RecognitionException {
+ smaliParser.insn_format4rcc_method_return retval = new smaliParser.insn_format4rcc_method_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT4rcc_METHOD477=null;
+ Token OPEN_BRACE478=null;
+ Token CLOSE_BRACE480=null;
+ Token COMMA481=null;
+ Token COMMA483=null;
+ ParserRuleReturnScope register_range479 =null;
+ ParserRuleReturnScope method_reference482 =null;
+ ParserRuleReturnScope method_prototype484 =null;
+
+ CommonTree INSTRUCTION_FORMAT4rcc_METHOD477_tree=null;
+ CommonTree OPEN_BRACE478_tree=null;
+ CommonTree CLOSE_BRACE480_tree=null;
+ CommonTree COMMA481_tree=null;
+ CommonTree COMMA483_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_OPEN_BRACE=new RewriteRuleTokenStream(adaptor,"token OPEN_BRACE");
+ RewriteRuleTokenStream stream_CLOSE_BRACE=new RewriteRuleTokenStream(adaptor,"token CLOSE_BRACE");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT4rcc_METHOD=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT4rcc_METHOD");
+ RewriteRuleSubtreeStream stream_method_reference=new RewriteRuleSubtreeStream(adaptor,"rule method_reference");
+ RewriteRuleSubtreeStream stream_method_prototype=new RewriteRuleSubtreeStream(adaptor,"rule method_prototype");
+ RewriteRuleSubtreeStream stream_register_range=new RewriteRuleSubtreeStream(adaptor,"rule register_range");
+
+ try {
+ // smaliParser.g:1087:3: ( INSTRUCTION_FORMAT4rcc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference COMMA method_prototype -> ^( I_STATEMENT_FORMAT4rcc_METHOD[$start, \"I_STATEMENT_FORMAT4rcc_METHOD\"] INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype ) )
+ // smaliParser.g:1088:5: INSTRUCTION_FORMAT4rcc_METHOD OPEN_BRACE register_range CLOSE_BRACE COMMA method_reference COMMA method_prototype
+ {
+ INSTRUCTION_FORMAT4rcc_METHOD477=(Token)match(input,INSTRUCTION_FORMAT4rcc_METHOD,FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method5572);
+ stream_INSTRUCTION_FORMAT4rcc_METHOD.add(INSTRUCTION_FORMAT4rcc_METHOD477);
+
+ OPEN_BRACE478=(Token)match(input,OPEN_BRACE,FOLLOW_OPEN_BRACE_in_insn_format4rcc_method5574);
+ stream_OPEN_BRACE.add(OPEN_BRACE478);
+
+ pushFollow(FOLLOW_register_range_in_insn_format4rcc_method5576);
+ register_range479=register_range();
+ state._fsp--;
+
+ stream_register_range.add(register_range479.getTree());
+ CLOSE_BRACE480=(Token)match(input,CLOSE_BRACE,FOLLOW_CLOSE_BRACE_in_insn_format4rcc_method5578);
+ stream_CLOSE_BRACE.add(CLOSE_BRACE480);
+
+ COMMA481=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format4rcc_method5580);
+ stream_COMMA.add(COMMA481);
+
+ pushFollow(FOLLOW_method_reference_in_insn_format4rcc_method5582);
+ method_reference482=method_reference();
+ state._fsp--;
+
+ stream_method_reference.add(method_reference482.getTree());
+ COMMA483=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format4rcc_method5584);
+ stream_COMMA.add(COMMA483);
+
+ pushFollow(FOLLOW_method_prototype_in_insn_format4rcc_method5586);
+ method_prototype484=method_prototype();
+ state._fsp--;
+
+ stream_method_prototype.add(method_prototype484.getTree());
+ // AST REWRITE
+ // elements: register_range, INSTRUCTION_FORMAT4rcc_METHOD, method_reference, method_prototype
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1089:5: -> ^( I_STATEMENT_FORMAT4rcc_METHOD[$start, \"I_STATEMENT_FORMAT4rcc_METHOD\"] INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype )
+ {
+ // smaliParser.g:1089:8: ^( I_STATEMENT_FORMAT4rcc_METHOD[$start, \"I_STATEMENT_FORMAT4rcc_METHOD\"] INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT4rcc_METHOD, (retval.start), "I_STATEMENT_FORMAT4rcc_METHOD"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT4rcc_METHOD.nextNode());
+ adaptor.addChild(root_1, stream_register_range.nextTree());
+ adaptor.addChild(root_1, stream_method_reference.nextTree());
+ adaptor.addChild(root_1, stream_method_prototype.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format4rcc_method"
+
+
+ public static class insn_format51l_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_format51l"
+ // smaliParser.g:1091:1: insn_format51l : INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) ;
+ public final smaliParser.insn_format51l_return insn_format51l() throws RecognitionException {
+ smaliParser.insn_format51l_return retval = new smaliParser.insn_format51l_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token INSTRUCTION_FORMAT51l485=null;
+ Token REGISTER486=null;
+ Token COMMA487=null;
+ ParserRuleReturnScope fixed_literal488 =null;
+
+ CommonTree INSTRUCTION_FORMAT51l485_tree=null;
+ CommonTree REGISTER486_tree=null;
+ CommonTree COMMA487_tree=null;
+ RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
+ RewriteRuleTokenStream stream_REGISTER=new RewriteRuleTokenStream(adaptor,"token REGISTER");
+ RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l=new RewriteRuleTokenStream(adaptor,"token INSTRUCTION_FORMAT51l");
+ RewriteRuleSubtreeStream stream_fixed_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_literal");
+
+ try {
+ // smaliParser.g:1092:3: ( INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal ) )
+ // smaliParser.g:1093:5: INSTRUCTION_FORMAT51l REGISTER COMMA fixed_literal
+ {
+ INSTRUCTION_FORMAT51l485=(Token)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l5620);
+ stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l485);
+
+ REGISTER486=(Token)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format51l5622);
+ stream_REGISTER.add(REGISTER486);
+
+ COMMA487=(Token)match(input,COMMA,FOLLOW_COMMA_in_insn_format51l5624);
+ stream_COMMA.add(COMMA487);
+
+ pushFollow(FOLLOW_fixed_literal_in_insn_format51l5626);
+ fixed_literal488=fixed_literal();
+ state._fsp--;
+
+ stream_fixed_literal.add(fixed_literal488.getTree());
+ // AST REWRITE
+ // elements: REGISTER, INSTRUCTION_FORMAT51l, fixed_literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1094:5: -> ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal )
+ {
+ // smaliParser.g:1094:8: ^( I_STATEMENT_FORMAT51l[$start, \"I_STATEMENT_FORMAT51l\"] INSTRUCTION_FORMAT51l REGISTER fixed_literal )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_FORMAT51l, (retval.start), "I_STATEMENT_FORMAT51l"), root_1);
+ adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT51l.nextNode());
+ adaptor.addChild(root_1, stream_REGISTER.nextNode());
+ adaptor.addChild(root_1, stream_fixed_literal.nextTree());
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_format51l"
+
+
+ public static class insn_array_data_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_array_data_directive"
+ // smaliParser.g:1096:1: insn_array_data_directive : ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) ;
+ public final smaliParser.insn_array_data_directive_return insn_array_data_directive() throws RecognitionException {
+ smaliParser.insn_array_data_directive_return retval = new smaliParser.insn_array_data_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token ARRAY_DATA_DIRECTIVE489=null;
+ Token END_ARRAY_DATA_DIRECTIVE492=null;
+ ParserRuleReturnScope parsed_integer_literal490 =null;
+ ParserRuleReturnScope fixed_literal491 =null;
+
+ CommonTree ARRAY_DATA_DIRECTIVE489_tree=null;
+ CommonTree END_ARRAY_DATA_DIRECTIVE492_tree=null;
+ RewriteRuleTokenStream stream_END_ARRAY_DATA_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_ARRAY_DATA_DIRECTIVE");
+ RewriteRuleTokenStream stream_ARRAY_DATA_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token ARRAY_DATA_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_parsed_integer_literal=new RewriteRuleSubtreeStream(adaptor,"rule parsed_integer_literal");
+ RewriteRuleSubtreeStream stream_fixed_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_literal");
+
+ try {
+ // smaliParser.g:1097:3: ( ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) ) )
+ // smaliParser.g:1097:5: ARRAY_DATA_DIRECTIVE parsed_integer_literal ( fixed_literal )* END_ARRAY_DATA_DIRECTIVE
+ {
+ ARRAY_DATA_DIRECTIVE489=(Token)match(input,ARRAY_DATA_DIRECTIVE,FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5653);
+ stream_ARRAY_DATA_DIRECTIVE.add(ARRAY_DATA_DIRECTIVE489);
+
+ pushFollow(FOLLOW_parsed_integer_literal_in_insn_array_data_directive5659);
+ parsed_integer_literal490=parsed_integer_literal();
+ state._fsp--;
+
+ stream_parsed_integer_literal.add(parsed_integer_literal490.getTree());
+
+ int elementWidth = (parsed_integer_literal490!=null?((smaliParser.parsed_integer_literal_return)parsed_integer_literal490).value:0);
+ if (elementWidth != 4 && elementWidth != 8 && elementWidth != 1 && elementWidth != 2) {
+ throw new SemanticException(input, (retval.start), "Invalid element width: %d. Must be 1, 2, 4 or 8", elementWidth);
+ }
+
+ // smaliParser.g:1105:5: ( fixed_literal )*
+ loop52:
+ while (true) {
+ int alt52=2;
+ int LA52_0 = input.LA(1);
+ if ( ((LA52_0 >= BOOL_LITERAL && LA52_0 <= BYTE_LITERAL)||LA52_0==CHAR_LITERAL||(LA52_0 >= DOUBLE_LITERAL && LA52_0 <= DOUBLE_LITERAL_OR_ID)||(LA52_0 >= FLOAT_LITERAL && LA52_0 <= FLOAT_LITERAL_OR_ID)||LA52_0==LONG_LITERAL||LA52_0==NEGATIVE_INTEGER_LITERAL||LA52_0==POSITIVE_INTEGER_LITERAL||LA52_0==SHORT_LITERAL) ) {
+ alt52=1;
+ }
+
+ switch (alt52) {
+ case 1 :
+ // smaliParser.g:1105:5: fixed_literal
+ {
+ pushFollow(FOLLOW_fixed_literal_in_insn_array_data_directive5671);
+ fixed_literal491=fixed_literal();
+ state._fsp--;
+
+ stream_fixed_literal.add(fixed_literal491.getTree());
+ }
+ break;
+
+ default :
+ break loop52;
+ }
+ }
+
+ END_ARRAY_DATA_DIRECTIVE492=(Token)match(input,END_ARRAY_DATA_DIRECTIVE,FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5674);
+ stream_END_ARRAY_DATA_DIRECTIVE.add(END_ARRAY_DATA_DIRECTIVE492);
+
+ // AST REWRITE
+ // elements: parsed_integer_literal, fixed_literal
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1107:5: -> ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) )
+ {
+ // smaliParser.g:1107:8: ^( I_STATEMENT_ARRAY_DATA[$start, \"I_STATEMENT_ARRAY_DATA\"] ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal ) ^( I_ARRAY_ELEMENTS ( fixed_literal )* ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_ARRAY_DATA, (retval.start), "I_STATEMENT_ARRAY_DATA"), root_1);
+ // smaliParser.g:1107:67: ^( I_ARRAY_ELEMENT_SIZE parsed_integer_literal )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENT_SIZE, "I_ARRAY_ELEMENT_SIZE"), root_2);
+ adaptor.addChild(root_2, stream_parsed_integer_literal.nextTree());
+ adaptor.addChild(root_1, root_2);
+ }
+
+ // smaliParser.g:1108:8: ^( I_ARRAY_ELEMENTS ( fixed_literal )* )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_ARRAY_ELEMENTS, "I_ARRAY_ELEMENTS"), root_2);
+ // smaliParser.g:1108:27: ( fixed_literal )*
+ while ( stream_fixed_literal.hasNext() ) {
+ adaptor.addChild(root_2, stream_fixed_literal.nextTree());
+ }
+ stream_fixed_literal.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_array_data_directive"
+
+
+ public static class insn_packed_switch_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_packed_switch_directive"
+ // smaliParser.g:1110:1: insn_packed_switch_directive : PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) ) ;
+ public final smaliParser.insn_packed_switch_directive_return insn_packed_switch_directive() throws RecognitionException {
+ smaliParser.insn_packed_switch_directive_return retval = new smaliParser.insn_packed_switch_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token PACKED_SWITCH_DIRECTIVE493=null;
+ Token END_PACKED_SWITCH_DIRECTIVE496=null;
+ ParserRuleReturnScope fixed_32bit_literal494 =null;
+ ParserRuleReturnScope label_ref495 =null;
+
+ CommonTree PACKED_SWITCH_DIRECTIVE493_tree=null;
+ CommonTree END_PACKED_SWITCH_DIRECTIVE496_tree=null;
+ RewriteRuleTokenStream stream_END_PACKED_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_PACKED_SWITCH_DIRECTIVE");
+ RewriteRuleTokenStream stream_PACKED_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token PACKED_SWITCH_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:1111:5: ( PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) ) )
+ // smaliParser.g:1111:9: PACKED_SWITCH_DIRECTIVE fixed_32bit_literal ( label_ref )* END_PACKED_SWITCH_DIRECTIVE
+ {
+ PACKED_SWITCH_DIRECTIVE493=(Token)match(input,PACKED_SWITCH_DIRECTIVE,FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5720);
+ stream_PACKED_SWITCH_DIRECTIVE.add(PACKED_SWITCH_DIRECTIVE493);
+
+ pushFollow(FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive5726);
+ fixed_32bit_literal494=fixed_32bit_literal();
+ state._fsp--;
+
+ stream_fixed_32bit_literal.add(fixed_32bit_literal494.getTree());
+ // smaliParser.g:1113:5: ( label_ref )*
+ loop53:
+ while (true) {
+ int alt53=2;
+ int LA53_0 = input.LA(1);
+ if ( (LA53_0==COLON) ) {
+ alt53=1;
+ }
+
+ switch (alt53) {
+ case 1 :
+ // smaliParser.g:1113:5: label_ref
+ {
+ pushFollow(FOLLOW_label_ref_in_insn_packed_switch_directive5732);
+ label_ref495=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(label_ref495.getTree());
+ }
+ break;
+
+ default :
+ break loop53;
+ }
+ }
+
+ END_PACKED_SWITCH_DIRECTIVE496=(Token)match(input,END_PACKED_SWITCH_DIRECTIVE,FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5739);
+ stream_END_PACKED_SWITCH_DIRECTIVE.add(END_PACKED_SWITCH_DIRECTIVE496);
+
+ // AST REWRITE
+ // elements: fixed_32bit_literal, label_ref
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1115:5: -> ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) )
+ {
+ // smaliParser.g:1115:8: ^( I_STATEMENT_PACKED_SWITCH[$start, \"I_STATEMENT_PACKED_SWITCH\"] ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal ) ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_PACKED_SWITCH, (retval.start), "I_STATEMENT_PACKED_SWITCH"), root_1);
+ // smaliParser.g:1116:10: ^( I_PACKED_SWITCH_START_KEY[$start, \"I_PACKED_SWITCH_START_KEY\"] fixed_32bit_literal )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_START_KEY, (retval.start), "I_PACKED_SWITCH_START_KEY"), root_2);
+ adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree());
+ adaptor.addChild(root_1, root_2);
+ }
+
+ // smaliParser.g:1117:10: ^( I_PACKED_SWITCH_ELEMENTS[$start, \"I_PACKED_SWITCH_ELEMENTS\"] ( label_ref )* )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_PACKED_SWITCH_ELEMENTS, (retval.start), "I_PACKED_SWITCH_ELEMENTS"), root_2);
+ // smaliParser.g:1118:11: ( label_ref )*
+ while ( stream_label_ref.hasNext() ) {
+ adaptor.addChild(root_2, stream_label_ref.nextTree());
+ }
+ stream_label_ref.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_packed_switch_directive"
+
+
+ public static class insn_sparse_switch_directive_return extends ParserRuleReturnScope {
+ CommonTree tree;
+ @Override
+ public CommonTree getTree() { return tree; }
+ };
+
+
+ // $ANTLR start "insn_sparse_switch_directive"
+ // smaliParser.g:1121:1: insn_sparse_switch_directive : SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) ) ;
+ public final smaliParser.insn_sparse_switch_directive_return insn_sparse_switch_directive() throws RecognitionException {
+ smaliParser.insn_sparse_switch_directive_return retval = new smaliParser.insn_sparse_switch_directive_return();
+ retval.start = input.LT(1);
+
+ CommonTree root_0 = null;
+
+ Token SPARSE_SWITCH_DIRECTIVE497=null;
+ Token ARROW499=null;
+ Token END_SPARSE_SWITCH_DIRECTIVE501=null;
+ ParserRuleReturnScope fixed_32bit_literal498 =null;
+ ParserRuleReturnScope label_ref500 =null;
+
+ CommonTree SPARSE_SWITCH_DIRECTIVE497_tree=null;
+ CommonTree ARROW499_tree=null;
+ CommonTree END_SPARSE_SWITCH_DIRECTIVE501_tree=null;
+ RewriteRuleTokenStream stream_ARROW=new RewriteRuleTokenStream(adaptor,"token ARROW");
+ RewriteRuleTokenStream stream_SPARSE_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token SPARSE_SWITCH_DIRECTIVE");
+ RewriteRuleTokenStream stream_END_SPARSE_SWITCH_DIRECTIVE=new RewriteRuleTokenStream(adaptor,"token END_SPARSE_SWITCH_DIRECTIVE");
+ RewriteRuleSubtreeStream stream_fixed_32bit_literal=new RewriteRuleSubtreeStream(adaptor,"rule fixed_32bit_literal");
+ RewriteRuleSubtreeStream stream_label_ref=new RewriteRuleSubtreeStream(adaptor,"rule label_ref");
+
+ try {
+ // smaliParser.g:1122:3: ( SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) ) )
+ // smaliParser.g:1122:7: SPARSE_SWITCH_DIRECTIVE ( fixed_32bit_literal ARROW label_ref )* END_SPARSE_SWITCH_DIRECTIVE
+ {
+ SPARSE_SWITCH_DIRECTIVE497=(Token)match(input,SPARSE_SWITCH_DIRECTIVE,FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5813);
+ stream_SPARSE_SWITCH_DIRECTIVE.add(SPARSE_SWITCH_DIRECTIVE497);
+
+ // smaliParser.g:1123:5: ( fixed_32bit_literal ARROW label_ref )*
+ loop54:
+ while (true) {
+ int alt54=2;
+ int LA54_0 = input.LA(1);
+ if ( ((LA54_0 >= BOOL_LITERAL && LA54_0 <= BYTE_LITERAL)||LA54_0==CHAR_LITERAL||(LA54_0 >= FLOAT_LITERAL && LA54_0 <= FLOAT_LITERAL_OR_ID)||LA54_0==LONG_LITERAL||LA54_0==NEGATIVE_INTEGER_LITERAL||LA54_0==POSITIVE_INTEGER_LITERAL||LA54_0==SHORT_LITERAL) ) {
+ alt54=1;
+ }
+
+ switch (alt54) {
+ case 1 :
+ // smaliParser.g:1123:6: fixed_32bit_literal ARROW label_ref
+ {
+ pushFollow(FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive5820);
+ fixed_32bit_literal498=fixed_32bit_literal();
+ state._fsp--;
+
+ stream_fixed_32bit_literal.add(fixed_32bit_literal498.getTree());
+ ARROW499=(Token)match(input,ARROW,FOLLOW_ARROW_in_insn_sparse_switch_directive5822);
+ stream_ARROW.add(ARROW499);
+
+ pushFollow(FOLLOW_label_ref_in_insn_sparse_switch_directive5824);
+ label_ref500=label_ref();
+ state._fsp--;
+
+ stream_label_ref.add(label_ref500.getTree());
+ }
+ break;
+
+ default :
+ break loop54;
+ }
+ }
+
+ END_SPARSE_SWITCH_DIRECTIVE501=(Token)match(input,END_SPARSE_SWITCH_DIRECTIVE,FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5832);
+ stream_END_SPARSE_SWITCH_DIRECTIVE.add(END_SPARSE_SWITCH_DIRECTIVE501);
+
+ // AST REWRITE
+ // elements: fixed_32bit_literal, label_ref
+ // token labels:
+ // rule labels: retval
+ // token list labels:
+ // rule list labels:
+ // wildcard labels:
+ retval.tree = root_0;
+ RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
+
+ root_0 = (CommonTree)adaptor.nil();
+ // 1125:5: -> ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) )
+ {
+ // smaliParser.g:1125:8: ^( I_STATEMENT_SPARSE_SWITCH[$start, \"I_STATEMENT_SPARSE_SWITCH\"] ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* ) )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_STATEMENT_SPARSE_SWITCH, (retval.start), "I_STATEMENT_SPARSE_SWITCH"), root_1);
+ // smaliParser.g:1126:8: ^( I_SPARSE_SWITCH_ELEMENTS[$start, \"I_SPARSE_SWITCH_ELEMENTS\"] ( fixed_32bit_literal label_ref )* )
+ {
+ CommonTree root_2 = (CommonTree)adaptor.nil();
+ root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(I_SPARSE_SWITCH_ELEMENTS, (retval.start), "I_SPARSE_SWITCH_ELEMENTS"), root_2);
+ // smaliParser.g:1126:71: ( fixed_32bit_literal label_ref )*
+ while ( stream_fixed_32bit_literal.hasNext()||stream_label_ref.hasNext() ) {
+ adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree());
+ adaptor.addChild(root_2, stream_label_ref.nextTree());
+ }
+ stream_fixed_32bit_literal.reset();
+ stream_label_ref.reset();
+
+ adaptor.addChild(root_1, root_2);
+ }
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+
+
+ retval.tree = root_0;
+
+ }
+
+ retval.stop = input.LT(-1);
+
+ retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+ adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "insn_sparse_switch_directive"
+
+ // Delegated rules
+
+
+ protected DFA30 dfa30 = new DFA30(this);
+ protected DFA38 dfa38 = new DFA38(this);
+ protected DFA40 dfa40 = new DFA40(this);
+ static final String DFA30_eotS =
+ "\55\uffff";
+ static final String DFA30_eofS =
+ "\55\uffff";
+ static final String DFA30_minS =
+ "\1\4\52\23\2\uffff";
+ static final String DFA30_maxS =
+ "\1\u00c6\12\u00b4\1\u00b7\37\u00b4\2\uffff";
+ static final String DFA30_acceptS =
+ "\53\uffff\1\1\1\2";
+ static final String DFA30_specialS =
+ "\55\uffff}>";
+ static final String[] DFA30_transitionS = {
+ "\1\2\1\uffff\1\16\3\uffff\1\10\14\uffff\1\7\17\uffff\1\6\2\uffff\1\17"+
+ "\1\20\1\21\1\uffff\1\22\1\uffff\1\23\2\uffff\1\24\1\25\1\26\1\27\3\uffff"+
+ "\1\30\1\uffff\1\31\1\32\1\33\1\34\1\uffff\1\35\1\36\1\uffff\1\37\3\uffff"+
+ "\1\40\1\41\1\uffff\1\42\1\43\1\44\1\45\1\46\5\uffff\1\47\1\50\1\51\127"+
+ "\uffff\1\52\1\uffff\1\5\1\11\4\uffff\1\13\1\4\1\14\1\uffff\1\12\3\uffff"+
+ "\1\1\5\uffff\1\3\1\15",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54\2\uffff\1\13",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "\1\53\u00a0\uffff\1\54",
+ "",
+ ""
+ };
+
+ static final short[] DFA30_eot = DFA.unpackEncodedString(DFA30_eotS);
+ static final short[] DFA30_eof = DFA.unpackEncodedString(DFA30_eofS);
+ static final char[] DFA30_min = DFA.unpackEncodedStringToUnsignedChars(DFA30_minS);
+ static final char[] DFA30_max = DFA.unpackEncodedStringToUnsignedChars(DFA30_maxS);
+ static final short[] DFA30_accept = DFA.unpackEncodedString(DFA30_acceptS);
+ static final short[] DFA30_special = DFA.unpackEncodedString(DFA30_specialS);
+ static final short[][] DFA30_transition;
+
+ static {
+ int numStates = DFA30_transitionS.length;
+ DFA30_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA30_transition[i] = DFA.unpackEncodedString(DFA30_transitionS[i]);
+ }
+ }
+
+ protected class DFA30 extends DFA {
+
+ public DFA30(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 30;
+ this.eot = DFA30_eot;
+ this.eof = DFA30_eof;
+ this.min = DFA30_min;
+ this.max = DFA30_max;
+ this.accept = DFA30_accept;
+ this.special = DFA30_special;
+ this.transition = DFA30_transition;
+ }
+ @Override
+ public String getDescription() {
+ return "695:7: ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) )";
+ }
+ }
+
+ static final String DFA38_eotS =
+ "\62\uffff";
+ static final String DFA38_eofS =
+ "\62\uffff";
+ static final String DFA38_minS =
+ "\1\4\1\5\1\17\52\23\1\uffff\1\4\1\11\2\uffff";
+ static final String DFA38_maxS =
+ "\1\u00c6\1\u00c1\1\u00b9\12\u00b4\1\u00b7\37\u00b4\1\uffff\1\u00c6\1\11"+
+ "\2\uffff";
+ static final String DFA38_acceptS =
+ "\55\uffff\1\1\2\uffff\1\2\1\3";
+ static final String DFA38_specialS =
+ "\62\uffff}>";
+ static final String[] DFA38_transitionS = {
+ "\1\4\1\uffff\1\20\1\uffff\1\2\1\uffff\1\12\4\uffff\1\1\7\uffff\1\11\17"+
+ "\uffff\1\10\2\uffff\1\21\1\22\1\23\1\uffff\1\24\1\uffff\1\25\2\uffff"+
+ "\1\26\1\27\1\30\1\31\3\uffff\1\32\1\uffff\1\33\1\34\1\35\1\36\1\uffff"+
+ "\1\37\1\40\1\uffff\1\41\3\uffff\1\42\1\43\1\uffff\1\44\1\45\1\46\1\47"+
+ "\1\50\5\uffff\1\51\1\52\1\53\127\uffff\1\54\1\uffff\1\7\1\13\4\uffff"+
+ "\1\15\1\6\1\16\1\uffff\1\14\3\uffff\1\3\5\uffff\1\5\1\17",
+ "\1\55\1\uffff\1\55\1\uffff\1\56\2\uffff\2\55\5\uffff\1\55\7\uffff\2"+
+ "\55\5\uffff\1\55\7\uffff\56\55\123\uffff\3\55\7\uffff\2\55\3\uffff\1"+
+ "\55\1\uffff\2\55\2\uffff\2\55",
+ "\1\57\u00a9\uffff\1\57",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61\2\uffff\1\15",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "\1\60\u00a0\uffff\1\61",
+ "",
+ "\1\4\1\uffff\1\20\3\uffff\1\12\14\uffff\1\11\17\uffff\1\10\2\uffff\1"+
+ "\21\1\22\1\23\1\uffff\1\24\1\uffff\1\25\2\uffff\1\26\1\27\1\30\1\31\3"+
+ "\uffff\1\32\1\uffff\1\33\1\34\1\35\1\36\1\uffff\1\37\1\40\1\uffff\1\41"+
+ "\3\uffff\1\42\1\43\1\uffff\1\44\1\45\1\46\1\47\1\50\5\uffff\1\51\1\52"+
+ "\1\53\127\uffff\1\54\1\uffff\1\7\1\13\4\uffff\1\15\1\6\1\16\1\uffff\1"+
+ "\14\3\uffff\1\3\5\uffff\1\5\1\17",
+ "\1\56",
+ "",
+ ""
+ };
+
+ static final short[] DFA38_eot = DFA.unpackEncodedString(DFA38_eotS);
+ static final short[] DFA38_eof = DFA.unpackEncodedString(DFA38_eofS);
+ static final char[] DFA38_min = DFA.unpackEncodedStringToUnsignedChars(DFA38_minS);
+ static final char[] DFA38_max = DFA.unpackEncodedStringToUnsignedChars(DFA38_maxS);
+ static final short[] DFA38_accept = DFA.unpackEncodedString(DFA38_acceptS);
+ static final short[] DFA38_special = DFA.unpackEncodedString(DFA38_specialS);
+ static final short[][] DFA38_transition;
+
+ static {
+ int numStates = DFA38_transitionS.length;
+ DFA38_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA38_transition[i] = DFA.unpackEncodedString(DFA38_transitionS[i]);
+ }
+ }
+
+ protected class DFA38 extends DFA {
+
+ public DFA38(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 38;
+ this.eot = DFA38_eot;
+ this.eof = DFA38_eof;
+ this.min = DFA38_min;
+ this.max = DFA38_max;
+ this.accept = DFA38_accept;
+ this.special = DFA38_special;
+ this.transition = DFA38_transition;
+ }
+ @Override
+ public String getDescription() {
+ return "723:1: verification_error_reference : ( CLASS_DESCRIPTOR | field_reference | method_reference );";
+ }
+ }
+
+ static final String DFA40_eotS =
+ "\103\uffff";
+ static final String DFA40_eofS =
+ "\103\uffff";
+ static final String DFA40_minS =
+ "\1\5\100\uffff\1\0\1\uffff";
+ static final String DFA40_maxS =
+ "\1\u00c1\100\uffff\1\0\1\uffff";
+ static final String DFA40_acceptS =
+ "\1\uffff\1\2\100\uffff\1\1";
+ static final String DFA40_specialS =
+ "\101\uffff\1\0\1\uffff}>";
+ static final String[] DFA40_transitionS = {
+ "\1\101\1\uffff\1\1\4\uffff\2\1\5\uffff\1\1\7\uffff\2\1\1\uffff\1\1\3"+
+ "\uffff\1\1\7\uffff\56\1\123\uffff\3\1\7\uffff\2\1\3\uffff\1\1\1\uffff"+
+ "\2\1\2\uffff\2\1",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\uffff",
+ ""
+ };
+
+ static final short[] DFA40_eot = DFA.unpackEncodedString(DFA40_eotS);
+ static final short[] DFA40_eof = DFA.unpackEncodedString(DFA40_eofS);
+ static final char[] DFA40_min = DFA.unpackEncodedStringToUnsignedChars(DFA40_minS);
+ static final char[] DFA40_max = DFA.unpackEncodedStringToUnsignedChars(DFA40_maxS);
+ static final short[] DFA40_accept = DFA.unpackEncodedString(DFA40_acceptS);
+ static final short[] DFA40_special = DFA.unpackEncodedString(DFA40_specialS);
+ static final short[][] DFA40_transition;
+
+ static {
+ int numStates = DFA40_transitionS.length;
+ DFA40_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA40_transition[i] = DFA.unpackEncodedString(DFA40_transitionS[i]);
+ }
+ }
+
+ protected class DFA40 extends DFA {
+
+ public DFA40(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 40;
+ this.eot = DFA40_eot;
+ this.eof = DFA40_eof;
+ this.min = DFA40_min;
+ this.max = DFA40_max;
+ this.accept = DFA40_accept;
+ this.special = DFA40_special;
+ this.transition = DFA40_transition;
+ }
+ @Override
+ public String getDescription() {
+ return "()* loopback of 741:5: ({...}? annotation )*";
+ }
+ @Override
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA40_65 = input.LA(1);
+
+ int index40_65 = input.index();
+ input.rewind();
+ s = -1;
+ if ( ((input.LA(1) == ANNOTATION_DIRECTIVE)) ) {s = 66;}
+ else if ( (true) ) {s = 1;}
+
+ input.seek(index40_65);
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 40, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+ public static final BitSet FOLLOW_class_spec_in_smali_file1075 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
+ public static final BitSet FOLLOW_super_spec_in_smali_file1086 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
+ public static final BitSet FOLLOW_implements_spec_in_smali_file1094 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
+ public static final BitSet FOLLOW_source_spec_in_smali_file1103 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
+ public static final BitSet FOLLOW_method_in_smali_file1111 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
+ public static final BitSet FOLLOW_field_in_smali_file1117 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
+ public static final BitSet FOLLOW_annotation_in_smali_file1123 = new BitSet(new long[]{0x0000011000010020L,0x0000000000000000L,0x0001000000000000L,0x0000000000000011L});
+ public static final BitSet FOLLOW_EOF_in_smali_file1134 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DIRECTIVE_in_class_spec1221 = new BitSet(new long[]{0x0000000000008010L});
+ public static final BitSet FOLLOW_access_list_in_class_spec1223 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec1225 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SUPER_DIRECTIVE_in_super_spec1243 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec1245 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1264 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1266 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_spec1285 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_source_spec1287 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list1306 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_FIELD_DIRECTIVE_in_field1337 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_access_list_in_field1339 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_member_name_in_field1341 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_COLON_in_field1343 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field1345 = new BitSet(new long[]{0x0000000804000022L});
+ public static final BitSet FOLLOW_EQUAL_in_field1348 = new BitSet(new long[]{0xF4795CC200C0CD50L,0x0000000000E0FB16L,0xCB8EC00000000000L,0x000000000000006CL});
+ public static final BitSet FOLLOW_literal_in_field1350 = new BitSet(new long[]{0x0000000004000022L});
+ public static final BitSet FOLLOW_annotation_in_field1363 = new BitSet(new long[]{0x0000000004000022L});
+ public static final BitSet FOLLOW_END_FIELD_DIRECTIVE_in_field1377 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_METHOD_DIRECTIVE_in_method1488 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_access_list_in_method1490 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_member_name_in_method1492 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_method1494 = new BitSet(new long[]{0xFFFFFC04180830A0L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
+ public static final BitSet FOLLOW_statements_and_directives_in_method1496 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_END_METHOD_DIRECTIVE_in_method1502 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ordered_method_item_in_statements_and_directives1547 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
+ public static final BitSet FOLLOW_registers_directive_in_statements_and_directives1555 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
+ public static final BitSet FOLLOW_catch_directive_in_statements_and_directives1563 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
+ public static final BitSet FOLLOW_catchall_directive_in_statements_and_directives1571 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
+ public static final BitSet FOLLOW_parameter_directive_in_statements_and_directives1579 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
+ public static final BitSet FOLLOW_annotation_in_statements_and_directives1587 = new BitSet(new long[]{0xFFFFFC04080830A2L,0x0000000000FFFFFFL,0x3460380000000000L,0x0000000000000003L});
+ public static final BitSet FOLLOW_label_in_ordered_method_item1672 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_instruction_in_ordered_method_item1678 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_debug_directive_in_ordered_method_item1684 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1704 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_integral_literal_in_registers_directive1708 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1728 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_integral_literal_in_registers_directive1732 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id1764 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0080000000000000L});
+ public static final BitSet FOLLOW_SIMPLE_NAME_in_simple_name1777 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ACCESS_SPEC_in_simple_name1783 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1794 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1805 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1816 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1827 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1838 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOL_LITERAL_in_simple_name1849 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NULL_LITERAL_in_simple_name1860 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_REGISTER_in_simple_name1871 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_param_list_or_id_in_simple_name1882 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_simple_name1892 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VOID_TYPE_in_simple_name1903 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_simple_name1914 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name1925 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name1936 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name1947 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name1958 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name1969 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name1980 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name1991 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2013 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2024 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2035 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2046 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2068 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2079 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2090 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2101 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2123 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2134 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2156 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2167 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2178 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_simple_name2189 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_simple_name2200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2211 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_simple_name_in_member_name2226 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_MEMBER_NAME_in_member_name2232 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_OPEN_PAREN_in_method_prototype2247 = new BitSet(new long[]{0x0000000000048100L,0x0000000000000000L,0x0280000000000000L});
+ public static final BitSet FOLLOW_param_list_in_method_prototype2249 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_CLOSE_PAREN_in_method_prototype2251 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_type_descriptor_in_method_prototype2253 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id_primitive_type2283 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_param_list_or_id_primitive_type_in_param_list2298 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0080000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_param_list2305 = new BitSet(new long[]{0x0000000000008102L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor2316 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_set_in_array_descriptor2318 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VOID_TYPE_in_type_descriptor2334 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_type_descriptor2340 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_type_descriptor2346 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_array_descriptor_in_type_descriptor2352 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor2362 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor2368 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_array_descriptor_in_nonvoid_type_descriptor2374 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor2384 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_array_descriptor_in_reference_type_descriptor2390 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2411 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2426 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal2437 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2447 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal2458 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LONG_LITERAL_in_literal2468 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_literal2474 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SHORT_LITERAL_in_literal2480 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BYTE_LITERAL_in_literal2486 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_float_literal_in_literal2492 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_double_literal_in_literal2498 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CHAR_LITERAL_in_literal2504 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_literal2510 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOL_LITERAL_in_literal2516 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NULL_LITERAL_in_literal2522 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_array_literal_in_literal2528 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_subannotation_in_literal2534 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_type_field_method_literal_in_literal2540 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_enum_literal_in_literal2546 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_parsed_integer_literal2559 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LONG_LITERAL_in_integral_literal2571 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_integral_literal2577 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SHORT_LITERAL_in_integral_literal2583 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CHAR_LITERAL_in_integral_literal2589 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BYTE_LITERAL_in_integral_literal2595 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2605 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal2611 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2617 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2623 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal2629 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2635 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2641 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_fixed_literal2651 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_literal2657 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_literal2663 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_literal2669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_float_literal_in_fixed_literal2675 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_double_literal_in_fixed_literal2681 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_literal2687 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_literal2693 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_array_literal2703 = new BitSet(new long[]{0xF4795CC200C2CD50L,0x0000000000E0FB16L,0xCB8EC00000000000L,0x000000000000006CL});
+ public static final BitSet FOLLOW_literal_in_array_literal2706 = new BitSet(new long[]{0x0000000000120000L});
+ public static final BitSet FOLLOW_COMMA_in_array_literal2709 = new BitSet(new long[]{0xF4795CC200C0CD50L,0x0000000000E0FB16L,0xCB8EC00000000000L,0x000000000000006CL});
+ public static final BitSet FOLLOW_literal_in_array_literal2711 = new BitSet(new long[]{0x0000000000120000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_array_literal2719 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_simple_name_in_annotation_element2743 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_EQUAL_in_annotation_element2745 = new BitSet(new long[]{0xF4795CC200C0CD50L,0x0000000000E0FB16L,0xCB8EC00000000000L,0x000000000000006CL});
+ public static final BitSet FOLLOW_literal_in_annotation_element2747 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2772 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation2774 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_annotation2776 = new BitSet(new long[]{0xF4795C8001800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_annotation_element_in_annotation2782 = new BitSet(new long[]{0xF4795C8001800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2785 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation2818 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation2820 = new BitSet(new long[]{0xF4795C8100800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_annotation_element_in_subannotation2822 = new BitSet(new long[]{0xF4795C8100800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation2825 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ENUM_DIRECTIVE_in_enum_literal2852 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_field_reference_in_enum_literal2854 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal2874 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal2883 = new BitSet(new long[]{0x0000000000000200L});
+ public static final BitSet FOLLOW_ARROW_in_type_field_method_literal2885 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_member_name_in_type_field_method_literal2897 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_COLON_in_type_field_method_literal2899 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal2901 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_member_name_in_type_field_method_literal2924 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_type_field_method_literal2926 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal2959 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VOID_TYPE_in_type_field_method_literal2965 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_reference_type_descriptor_in_method_reference2976 = new BitSet(new long[]{0x0000000000000200L});
+ public static final BitSet FOLLOW_ARROW_in_method_reference2978 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_member_name_in_method_reference2982 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_method_reference2984 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_reference_type_descriptor_in_field_reference3006 = new BitSet(new long[]{0x0000000000000200L});
+ public static final BitSet FOLLOW_ARROW_in_field_reference3008 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_member_name_in_field_reference3012 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_COLON_in_field_reference3014 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field_reference3016 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_COLON_in_label3037 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_simple_name_in_label3039 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_COLON_in_label_ref3058 = new BitSet(new long[]{0xF4795C8000800450L,0x0000000000E0FB16L,0x8B86000000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_simple_name_in_label_ref3060 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_REGISTER_in_register_list3074 = new BitSet(new long[]{0x0000000000100002L});
+ public static final BitSet FOLLOW_COMMA_in_register_list3077 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_register_list3079 = new BitSet(new long[]{0x0000000000100002L});
+ public static final BitSet FOLLOW_REGISTER_in_register_range3114 = new BitSet(new long[]{0x0000000000200002L});
+ public static final BitSet FOLLOW_DOTDOT_in_register_range3117 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_register_range3121 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3150 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_field_reference_in_verification_error_reference3154 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_method_reference_in_verification_error_reference3158 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CATCH_DIRECTIVE_in_catch_directive3168 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive3170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_catch_directive3172 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_catch_directive3176 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_DOTDOT_in_catch_directive3178 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_catch_directive3182 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_catch_directive3184 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_catch_directive3188 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3220 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_catchall_directive3222 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_catchall_directive3226 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_DOTDOT_in_catchall_directive3228 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_catchall_directive3232 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_catchall_directive3234 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_catchall_directive3238 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3277 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_parameter_directive3279 = new BitSet(new long[]{0x0000000040100022L});
+ public static final BitSet FOLLOW_COMMA_in_parameter_directive3282 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_parameter_directive3284 = new BitSet(new long[]{0x0000000040000022L});
+ public static final BitSet FOLLOW_annotation_in_parameter_directive3295 = new BitSet(new long[]{0x0000000040000022L});
+ public static final BitSet FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3308 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_line_directive_in_debug_directive3381 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_local_directive_in_debug_directive3387 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_end_local_directive_in_debug_directive3393 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_restart_local_directive_in_debug_directive3399 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_prologue_directive_in_debug_directive3405 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_epilogue_directive_in_debug_directive3411 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_source_directive_in_debug_directive3417 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LINE_DIRECTIVE_in_line_directive3427 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_integral_literal_in_line_directive3429 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LOCAL_DIRECTIVE_in_local_directive3452 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_local_directive3454 = new BitSet(new long[]{0x0000000000100002L});
+ public static final BitSet FOLLOW_COMMA_in_local_directive3457 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0004000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_NULL_LITERAL_in_local_directive3460 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive3466 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_COLON_in_local_directive3469 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_VOID_TYPE_in_local_directive3472 = new BitSet(new long[]{0x0000000000100002L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local_directive3476 = new BitSet(new long[]{0x0000000000100002L});
+ public static final BitSet FOLLOW_COMMA_in_local_directive3510 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive3514 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3556 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_end_local_directive3558 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3581 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_restart_local_directive3583 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3606 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3627 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_directive3648 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_source_directive3650 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x3675 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x3681 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s3696 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s3702 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i3717 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i3723 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format10t_in_instruction3740 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format10x_in_instruction3746 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format10x_odex_in_instruction3752 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format11n_in_instruction3758 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format11x_in_instruction3764 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format12x_in_instruction3770 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format20bc_in_instruction3776 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format20t_in_instruction3782 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21c_field_in_instruction3788 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21c_field_odex_in_instruction3794 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21c_string_in_instruction3800 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21c_type_in_instruction3806 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21ih_in_instruction3812 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21lh_in_instruction3818 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21s_in_instruction3824 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21t_in_instruction3830 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22b_in_instruction3836 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22c_field_in_instruction3842 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22c_field_odex_in_instruction3848 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22c_type_in_instruction3854 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22cs_field_in_instruction3860 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22s_in_instruction3866 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22t_in_instruction3872 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22x_in_instruction3878 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format23x_in_instruction3884 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format30t_in_instruction3890 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format31c_in_instruction3896 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format31i_in_instruction3902 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format31t_in_instruction3908 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format32x_in_instruction3914 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format35c_method_in_instruction3920 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format35c_type_in_instruction3926 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format35c_method_odex_in_instruction3932 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format35mi_method_in_instruction3938 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format35ms_method_in_instruction3944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format3rc_method_in_instruction3950 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format3rc_method_odex_in_instruction3956 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format3rc_type_in_instruction3962 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format3rmi_method_in_instruction3968 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format3rms_method_in_instruction3974 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format45cc_method_in_instruction3980 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format4rcc_method_in_instruction3986 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format51l_in_instruction3992 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_array_data_directive_in_instruction3998 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_packed_switch_directive_in_instruction4004 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_sparse_switch_directive_in_instruction4010 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4030 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format10t4032 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4062 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4090 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4111 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format11n4113 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format11n4115 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_integral_literal_in_insn_format11n4117 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4149 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format11x4151 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_instruction_format12x_in_insn_format12x4181 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format12x4183 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format12x4185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format12x4187 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4219 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4221 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format20bc4223 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_verification_error_reference_in_insn_format20bc4225 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4262 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format20t4264 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field4296 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format21c_field4298 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_field_reference_in_insn_format21c_field4300 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4332 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field_odex4334 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format21c_field_odex4336 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_field_reference_in_insn_format21c_field_odex4338 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4376 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21c_string4378 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format21c_string4380 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format21c_string4382 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4414 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21c_type4416 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format21c_type4418 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4420 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4452 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21ih4454 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format21ih4456 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21ih4458 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4490 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21lh4492 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format21lh4494 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21lh4496 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s4528 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21s4530 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format21s4532 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_integral_literal_in_insn_format21s4534 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t4566 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21t4568 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format21t4570 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format21t4572 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b4604 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22b4606 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22b4608 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22b4610 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22b4612 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_integral_literal_in_insn_format22b4614 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field4648 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field4650 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22c_field4652 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field4654 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22c_field4656 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_field_reference_in_insn_format22c_field4658 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex4692 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field_odex4694 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22c_field_odex4696 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field_odex4698 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22c_field_odex4700 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_field_reference_in_insn_format22c_field_odex4702 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type4742 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type4744 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22c_type4746 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type4748 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22c_type4750 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type4752 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field4786 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22cs_field4788 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22cs_field4790 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22cs_field4792 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22cs_field4794 = new BitSet(new long[]{0x0000002000000000L});
+ public static final BitSet FOLLOW_FIELD_OFFSET_in_insn_format22cs_field4796 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_instruction_format22s_in_insn_format22s4817 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22s4819 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22s4821 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22s4823 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22s4825 = new BitSet(new long[]{0x0000000000004800L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_integral_literal_in_insn_format22s4827 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t4861 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22t4863 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22t4865 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22t4867 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22t4869 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format22t4871 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x4905 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22x4907 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format22x4909 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22x4911 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x4943 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format23x4945 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format23x4947 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format23x4949 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format23x4951 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format23x4953 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t4987 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format30t4989 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5019 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format31c5021 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format31c5023 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format31c5025 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_instruction_format31i_in_insn_format31i5056 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format31i5058 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format31i5060 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format31i5062 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5094 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format31t5096 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format31t5098 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format31t5100 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5132 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format32x5134 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format32x5136 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format32x5138 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method5170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_method5172 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format35c_method5174 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_method5176 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format35c_method5178 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format35c_method5180 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5212 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_type5214 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format35c_type5216 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_type5218 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format35c_type5220 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5222 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5254 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5256 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format35c_method_odex5258 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5260 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format35c_method_odex5262 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format35c_method_odex5264 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5285 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35mi_method5287 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format35mi_method5289 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5291 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format35mi_method5293 = new BitSet(new long[]{0x0000020000000000L});
+ public static final BitSet FOLLOW_INLINE_INDEX_in_insn_format35mi_method5295 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5316 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35ms_method5318 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format35ms_method5320 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5322 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format35ms_method5324 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5326 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5347 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_method5349 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_range_in_insn_format3rc_method5351 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5353 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format3rc_method5355 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method5357 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5389 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5391 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format3rc_method_odex5393 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5395 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format3rc_method_odex5397 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method_odex5399 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5420 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_type5422 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_range_in_insn_format3rc_type5424 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5426 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format3rc_type5428 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5430 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method5462 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rmi_method5464 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_range_in_insn_format3rmi_method5466 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method5468 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format3rmi_method5470 = new BitSet(new long[]{0x0000020000000000L});
+ public static final BitSet FOLLOW_INLINE_INDEX_in_insn_format3rmi_method5472 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method5493 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rms_method5495 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_range_in_insn_format3rms_method5497 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rms_method5499 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format3rms_method5501 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_VTABLE_INDEX_in_insn_format3rms_method5503 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method5524 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format45cc_method5526 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format45cc_method5528 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format45cc_method5530 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format45cc_method5532 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format45cc_method5534 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format45cc_method5536 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_insn_format45cc_method5538 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method5572 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format4rcc_method5574 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_register_range_in_insn_format4rcc_method5576 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format4rcc_method5578 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format4rcc_method5580 = new BitSet(new long[]{0xF4795C8000808550L,0x0000000000E0FB16L,0x8B86800000000000L,0x0000000000000060L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format4rcc_method5582 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format4rcc_method5584 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_insn_format4rcc_method5586 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l5620 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format51l5622 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_COMMA_in_insn_format51l5624 = new BitSet(new long[]{0x000000C000C04C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_fixed_literal_in_insn_format51l5626 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5653 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0102000000000000L});
+ public static final BitSet FOLLOW_parsed_integer_literal_in_insn_array_data_directive5659 = new BitSet(new long[]{0x000000C002C04C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_fixed_literal_in_insn_array_data_directive5671 = new BitSet(new long[]{0x000000C002C04C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive5674 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5720 = new BitSet(new long[]{0x000000C000004C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive5726 = new BitSet(new long[]{0x0000000020080000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_packed_switch_directive5732 = new BitSet(new long[]{0x0000000020080000L});
+ public static final BitSet FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive5739 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5813 = new BitSet(new long[]{0x000000C080004C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive5820 = new BitSet(new long[]{0x0000000000000200L});
+ public static final BitSet FOLLOW_ARROW_in_insn_sparse_switch_directive5822 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_sparse_switch_directive5824 = new BitSet(new long[]{0x000000C080004C00L,0x0000000000000000L,0x4102400000000000L});
+ public static final BitSet FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive5832 = new BitSet(new long[]{0x0000000000000002L});
+}
diff --git a/smali/src/main/java/org/jf/smali/smaliTreeWalker.java b/smali/src/main/java/org/jf/smali/smaliTreeWalker.java
new file mode 100644
index 0000000..30b93c4
--- /dev/null
+++ b/smali/src/main/java/org/jf/smali/smaliTreeWalker.java
@@ -0,0 +1,7766 @@
+// $ANTLR 3.5.2 smaliTreeWalker.g 2017-04-20 15:20:46
+
+package org.jf.smali;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import org.antlr.runtime.BitSet;
+import org.antlr.runtime.*;
+import org.antlr.runtime.tree.CommonTree;
+import org.antlr.runtime.tree.TreeNodeStream;
+import org.antlr.runtime.tree.TreeParser;
+import org.antlr.runtime.tree.TreeRuleReturnScope;
+import org.jf.dexlib2.*;
+import org.jf.dexlib2.builder.Label;
+import org.jf.dexlib2.builder.MethodImplementationBuilder;
+import org.jf.dexlib2.builder.SwitchLabelElement;
+import org.jf.dexlib2.builder.instruction.*;
+import org.jf.dexlib2.iface.Annotation;
+import org.jf.dexlib2.iface.AnnotationElement;
+import org.jf.dexlib2.iface.ClassDef;
+import org.jf.dexlib2.iface.MethodImplementation;
+import org.jf.dexlib2.iface.reference.FieldReference;
+import org.jf.dexlib2.iface.reference.MethodReference;
+import org.jf.dexlib2.iface.value.EncodedValue;
+import org.jf.dexlib2.immutable.ImmutableAnnotation;
+import org.jf.dexlib2.immutable.ImmutableAnnotationElement;
+import org.jf.dexlib2.immutable.reference.ImmutableFieldReference;
+import org.jf.dexlib2.immutable.reference.ImmutableMethodReference;
+import org.jf.dexlib2.immutable.reference.ImmutableMethodProtoReference;
+import org.jf.dexlib2.immutable.reference.ImmutableReference;
+import org.jf.dexlib2.immutable.reference.ImmutableTypeReference;
+import org.jf.dexlib2.immutable.value.*;
+import org.jf.dexlib2.util.MethodUtil;
+import org.jf.dexlib2.writer.InstructionFactory;
+import org.jf.dexlib2.writer.builder.*;
+import org.jf.util.LinearSearch;
+
+import java.util.*;
+
+
+import org.antlr.runtime.*;
+import org.antlr.runtime.tree.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class smaliTreeWalker extends TreeParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACCESS_SPEC", "ANNOTATION_DIRECTIVE",
+ "ANNOTATION_VISIBILITY", "ARRAY_DATA_DIRECTIVE", "ARRAY_TYPE_PREFIX",
+ "ARROW", "BOOL_LITERAL", "BYTE_LITERAL", "CATCHALL_DIRECTIVE", "CATCH_DIRECTIVE",
+ "CHAR_LITERAL", "CLASS_DESCRIPTOR", "CLASS_DIRECTIVE", "CLOSE_BRACE",
+ "CLOSE_PAREN", "COLON", "COMMA", "DOTDOT", "DOUBLE_LITERAL", "DOUBLE_LITERAL_OR_ID",
+ "END_ANNOTATION_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "END_FIELD_DIRECTIVE",
+ "END_LOCAL_DIRECTIVE", "END_METHOD_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE",
+ "END_PARAMETER_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE",
+ "ENUM_DIRECTIVE", "EPILOGUE_DIRECTIVE", "EQUAL", "FIELD_DIRECTIVE", "FIELD_OFFSET",
+ "FLOAT_LITERAL", "FLOAT_LITERAL_OR_ID", "IMPLEMENTS_DIRECTIVE", "INLINE_INDEX",
+ "INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT10x_ODEX",
+ "INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x",
+ "INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT20bc", "INSTRUCTION_FORMAT20t",
+ "INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_FIELD_ODEX", "INSTRUCTION_FORMAT21c_STRING",
+ "INSTRUCTION_FORMAT21c_TYPE", "INSTRUCTION_FORMAT21ih", "INSTRUCTION_FORMAT21lh",
+ "INSTRUCTION_FORMAT21s", "INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b",
+ "INSTRUCTION_FORMAT22c_FIELD", "INSTRUCTION_FORMAT22c_FIELD_ODEX", "INSTRUCTION_FORMAT22c_TYPE",
+ "INSTRUCTION_FORMAT22cs_FIELD", "INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22s_OR_ID",
+ "INSTRUCTION_FORMAT22t", "INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x",
+ "INSTRUCTION_FORMAT30t", "INSTRUCTION_FORMAT31c", "INSTRUCTION_FORMAT31i",
+ "INSTRUCTION_FORMAT31i_OR_ID", "INSTRUCTION_FORMAT31t", "INSTRUCTION_FORMAT32x",
+ "INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_METHOD_ODEX", "INSTRUCTION_FORMAT35c_TYPE",
+ "INSTRUCTION_FORMAT35mi_METHOD", "INSTRUCTION_FORMAT35ms_METHOD", "INSTRUCTION_FORMAT3rc_METHOD",
+ "INSTRUCTION_FORMAT3rc_METHOD_ODEX", "INSTRUCTION_FORMAT3rc_TYPE", "INSTRUCTION_FORMAT3rmi_METHOD",
+ "INSTRUCTION_FORMAT3rms_METHOD", "INSTRUCTION_FORMAT45cc_METHOD", "INSTRUCTION_FORMAT4rcc_METHOD",
+ "INSTRUCTION_FORMAT51l", "INTEGER_LITERAL", "INVALID_TOKEN", "I_ACCESS_LIST",
+ "I_ANNOTATION", "I_ANNOTATIONS", "I_ANNOTATION_ELEMENT", "I_ARRAY_ELEMENTS",
+ "I_ARRAY_ELEMENT_SIZE", "I_CATCH", "I_CATCHALL", "I_CATCHES", "I_CLASS_DEF",
+ "I_ENCODED_ARRAY", "I_ENCODED_ENUM", "I_ENCODED_FIELD", "I_ENCODED_METHOD",
+ "I_END_LOCAL", "I_EPILOGUE", "I_FIELD", "I_FIELDS", "I_FIELD_INITIAL_VALUE",
+ "I_FIELD_TYPE", "I_IMPLEMENTS", "I_LABEL", "I_LINE", "I_LOCAL", "I_LOCALS",
+ "I_METHOD", "I_METHODS", "I_METHOD_PROTOTYPE", "I_METHOD_RETURN_TYPE",
+ "I_ORDERED_METHOD_ITEMS", "I_PACKED_SWITCH_ELEMENTS", "I_PACKED_SWITCH_START_KEY",
+ "I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED", "I_PROLOGUE",
+ "I_REGISTERS", "I_REGISTER_LIST", "I_REGISTER_RANGE", "I_RESTART_LOCAL",
+ "I_SOURCE", "I_SPARSE_SWITCH_ELEMENTS", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_FORMAT10t",
+ "I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x",
+ "I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20bc", "I_STATEMENT_FORMAT20t",
+ "I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21c_TYPE",
+ "I_STATEMENT_FORMAT21ih", "I_STATEMENT_FORMAT21lh", "I_STATEMENT_FORMAT21s",
+ "I_STATEMENT_FORMAT21t", "I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD",
+ "I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t",
+ "I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT30t",
+ "I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i", "I_STATEMENT_FORMAT31t",
+ "I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_METHOD", "I_STATEMENT_FORMAT35c_TYPE",
+ "I_STATEMENT_FORMAT3rc_METHOD", "I_STATEMENT_FORMAT3rc_TYPE", "I_STATEMENT_FORMAT45cc_METHOD",
+ "I_STATEMENT_FORMAT4rcc_METHOD", "I_STATEMENT_FORMAT51l", "I_STATEMENT_PACKED_SWITCH",
+ "I_STATEMENT_SPARSE_SWITCH", "I_SUBANNOTATION", "I_SUPER", "LINE_COMMENT",
+ "LINE_DIRECTIVE", "LOCALS_DIRECTIVE", "LOCAL_DIRECTIVE", "LONG_LITERAL",
+ "MEMBER_NAME", "METHOD_DIRECTIVE", "NEGATIVE_INTEGER_LITERAL", "NULL_LITERAL",
+ "OPEN_BRACE", "OPEN_PAREN", "PACKED_SWITCH_DIRECTIVE", "PARAMETER_DIRECTIVE",
+ "PARAM_LIST_OR_ID_PRIMITIVE_TYPE", "POSITIVE_INTEGER_LITERAL", "PRIMITIVE_TYPE",
+ "PROLOGUE_DIRECTIVE", "REGISTER", "REGISTERS_DIRECTIVE", "RESTART_LOCAL_DIRECTIVE",
+ "SHORT_LITERAL", "SIMPLE_NAME", "SOURCE_DIRECTIVE", "SPARSE_SWITCH_DIRECTIVE",
+ "STRING_LITERAL", "SUBANNOTATION_DIRECTIVE", "SUPER_DIRECTIVE", "VERIFICATION_ERROR_TYPE",
+ "VOID_TYPE", "VTABLE_INDEX", "WHITE_SPACE"
+ };
+ public static final int EOF=-1;
+ public static final int ACCESS_SPEC=4;
+ public static final int ANNOTATION_DIRECTIVE=5;
+ public static final int ANNOTATION_VISIBILITY=6;
+ public static final int ARRAY_DATA_DIRECTIVE=7;
+ public static final int ARRAY_TYPE_PREFIX=8;
+ public static final int ARROW=9;
+ public static final int BOOL_LITERAL=10;
+ public static final int BYTE_LITERAL=11;
+ public static final int CATCHALL_DIRECTIVE=12;
+ public static final int CATCH_DIRECTIVE=13;
+ public static final int CHAR_LITERAL=14;
+ public static final int CLASS_DESCRIPTOR=15;
+ public static final int CLASS_DIRECTIVE=16;
+ public static final int CLOSE_BRACE=17;
+ public static final int CLOSE_PAREN=18;
+ public static final int COLON=19;
+ public static final int COMMA=20;
+ public static final int DOTDOT=21;
+ public static final int DOUBLE_LITERAL=22;
+ public static final int DOUBLE_LITERAL_OR_ID=23;
+ public static final int END_ANNOTATION_DIRECTIVE=24;
+ public static final int END_ARRAY_DATA_DIRECTIVE=25;
+ public static final int END_FIELD_DIRECTIVE=26;
+ public static final int END_LOCAL_DIRECTIVE=27;
+ public static final int END_METHOD_DIRECTIVE=28;
+ public static final int END_PACKED_SWITCH_DIRECTIVE=29;
+ public static final int END_PARAMETER_DIRECTIVE=30;
+ public static final int END_SPARSE_SWITCH_DIRECTIVE=31;
+ public static final int END_SUBANNOTATION_DIRECTIVE=32;
+ public static final int ENUM_DIRECTIVE=33;
+ public static final int EPILOGUE_DIRECTIVE=34;
+ public static final int EQUAL=35;
+ public static final int FIELD_DIRECTIVE=36;
+ public static final int FIELD_OFFSET=37;
+ public static final int FLOAT_LITERAL=38;
+ public static final int FLOAT_LITERAL_OR_ID=39;
+ public static final int IMPLEMENTS_DIRECTIVE=40;
+ public static final int INLINE_INDEX=41;
+ public static final int INSTRUCTION_FORMAT10t=42;
+ public static final int INSTRUCTION_FORMAT10x=43;
+ public static final int INSTRUCTION_FORMAT10x_ODEX=44;
+ public static final int INSTRUCTION_FORMAT11n=45;
+ public static final int INSTRUCTION_FORMAT11x=46;
+ public static final int INSTRUCTION_FORMAT12x=47;
+ public static final int INSTRUCTION_FORMAT12x_OR_ID=48;
+ public static final int INSTRUCTION_FORMAT20bc=49;
+ public static final int INSTRUCTION_FORMAT20t=50;
+ public static final int INSTRUCTION_FORMAT21c_FIELD=51;
+ public static final int INSTRUCTION_FORMAT21c_FIELD_ODEX=52;
+ public static final int INSTRUCTION_FORMAT21c_STRING=53;
+ public static final int INSTRUCTION_FORMAT21c_TYPE=54;
+ public static final int INSTRUCTION_FORMAT21ih=55;
+ public static final int INSTRUCTION_FORMAT21lh=56;
+ public static final int INSTRUCTION_FORMAT21s=57;
+ public static final int INSTRUCTION_FORMAT21t=58;
+ public static final int INSTRUCTION_FORMAT22b=59;
+ public static final int INSTRUCTION_FORMAT22c_FIELD=60;
+ public static final int INSTRUCTION_FORMAT22c_FIELD_ODEX=61;
+ public static final int INSTRUCTION_FORMAT22c_TYPE=62;
+ public static final int INSTRUCTION_FORMAT22cs_FIELD=63;
+ public static final int INSTRUCTION_FORMAT22s=64;
+ public static final int INSTRUCTION_FORMAT22s_OR_ID=65;
+ public static final int INSTRUCTION_FORMAT22t=66;
+ public static final int INSTRUCTION_FORMAT22x=67;
+ public static final int INSTRUCTION_FORMAT23x=68;
+ public static final int INSTRUCTION_FORMAT30t=69;
+ public static final int INSTRUCTION_FORMAT31c=70;
+ public static final int INSTRUCTION_FORMAT31i=71;
+ public static final int INSTRUCTION_FORMAT31i_OR_ID=72;
+ public static final int INSTRUCTION_FORMAT31t=73;
+ public static final int INSTRUCTION_FORMAT32x=74;
+ public static final int INSTRUCTION_FORMAT35c_METHOD=75;
+ public static final int INSTRUCTION_FORMAT35c_METHOD_ODEX=76;
+ public static final int INSTRUCTION_FORMAT35c_TYPE=77;
+ public static final int INSTRUCTION_FORMAT35mi_METHOD=78;
+ public static final int INSTRUCTION_FORMAT35ms_METHOD=79;
+ public static final int INSTRUCTION_FORMAT3rc_METHOD=80;
+ public static final int INSTRUCTION_FORMAT3rc_METHOD_ODEX=81;
+ public static final int INSTRUCTION_FORMAT3rc_TYPE=82;
+ public static final int INSTRUCTION_FORMAT3rmi_METHOD=83;
+ public static final int INSTRUCTION_FORMAT3rms_METHOD=84;
+ public static final int INSTRUCTION_FORMAT45cc_METHOD=85;
+ public static final int INSTRUCTION_FORMAT4rcc_METHOD=86;
+ public static final int INSTRUCTION_FORMAT51l=87;
+ public static final int INTEGER_LITERAL=88;
+ public static final int INVALID_TOKEN=89;
+ public static final int I_ACCESS_LIST=90;
+ public static final int I_ANNOTATION=91;
+ public static final int I_ANNOTATIONS=92;
+ public static final int I_ANNOTATION_ELEMENT=93;
+ public static final int I_ARRAY_ELEMENTS=94;
+ public static final int I_ARRAY_ELEMENT_SIZE=95;
+ public static final int I_CATCH=96;
+ public static final int I_CATCHALL=97;
+ public static final int I_CATCHES=98;
+ public static final int I_CLASS_DEF=99;
+ public static final int I_ENCODED_ARRAY=100;
+ public static final int I_ENCODED_ENUM=101;
+ public static final int I_ENCODED_FIELD=102;
+ public static final int I_ENCODED_METHOD=103;
+ public static final int I_END_LOCAL=104;
+ public static final int I_EPILOGUE=105;
+ public static final int I_FIELD=106;
+ public static final int I_FIELDS=107;
+ public static final int I_FIELD_INITIAL_VALUE=108;
+ public static final int I_FIELD_TYPE=109;
+ public static final int I_IMPLEMENTS=110;
+ public static final int I_LABEL=111;
+ public static final int I_LINE=112;
+ public static final int I_LOCAL=113;
+ public static final int I_LOCALS=114;
+ public static final int I_METHOD=115;
+ public static final int I_METHODS=116;
+ public static final int I_METHOD_PROTOTYPE=117;
+ public static final int I_METHOD_RETURN_TYPE=118;
+ public static final int I_ORDERED_METHOD_ITEMS=119;
+ public static final int I_PACKED_SWITCH_ELEMENTS=120;
+ public static final int I_PACKED_SWITCH_START_KEY=121;
+ public static final int I_PARAMETER=122;
+ public static final int I_PARAMETERS=123;
+ public static final int I_PARAMETER_NOT_SPECIFIED=124;
+ public static final int I_PROLOGUE=125;
+ public static final int I_REGISTERS=126;
+ public static final int I_REGISTER_LIST=127;
+ public static final int I_REGISTER_RANGE=128;
+ public static final int I_RESTART_LOCAL=129;
+ public static final int I_SOURCE=130;
+ public static final int I_SPARSE_SWITCH_ELEMENTS=131;
+ public static final int I_STATEMENT_ARRAY_DATA=132;
+ public static final int I_STATEMENT_FORMAT10t=133;
+ public static final int I_STATEMENT_FORMAT10x=134;
+ public static final int I_STATEMENT_FORMAT11n=135;
+ public static final int I_STATEMENT_FORMAT11x=136;
+ public static final int I_STATEMENT_FORMAT12x=137;
+ public static final int I_STATEMENT_FORMAT20bc=138;
+ public static final int I_STATEMENT_FORMAT20t=139;
+ public static final int I_STATEMENT_FORMAT21c_FIELD=140;
+ public static final int I_STATEMENT_FORMAT21c_STRING=141;
+ public static final int I_STATEMENT_FORMAT21c_TYPE=142;
+ public static final int I_STATEMENT_FORMAT21ih=143;
+ public static final int I_STATEMENT_FORMAT21lh=144;
+ public static final int I_STATEMENT_FORMAT21s=145;
+ public static final int I_STATEMENT_FORMAT21t=146;
+ public static final int I_STATEMENT_FORMAT22b=147;
+ public static final int I_STATEMENT_FORMAT22c_FIELD=148;
+ public static final int I_STATEMENT_FORMAT22c_TYPE=149;
+ public static final int I_STATEMENT_FORMAT22s=150;
+ public static final int I_STATEMENT_FORMAT22t=151;
+ public static final int I_STATEMENT_FORMAT22x=152;
+ public static final int I_STATEMENT_FORMAT23x=153;
+ public static final int I_STATEMENT_FORMAT30t=154;
+ public static final int I_STATEMENT_FORMAT31c=155;
+ public static final int I_STATEMENT_FORMAT31i=156;
+ public static final int I_STATEMENT_FORMAT31t=157;
+ public static final int I_STATEMENT_FORMAT32x=158;
+ public static final int I_STATEMENT_FORMAT35c_METHOD=159;
+ public static final int I_STATEMENT_FORMAT35c_TYPE=160;
+ public static final int I_STATEMENT_FORMAT3rc_METHOD=161;
+ public static final int I_STATEMENT_FORMAT3rc_TYPE=162;
+ public static final int I_STATEMENT_FORMAT45cc_METHOD=163;
+ public static final int I_STATEMENT_FORMAT4rcc_METHOD=164;
+ public static final int I_STATEMENT_FORMAT51l=165;
+ public static final int I_STATEMENT_PACKED_SWITCH=166;
+ public static final int I_STATEMENT_SPARSE_SWITCH=167;
+ public static final int I_SUBANNOTATION=168;
+ public static final int I_SUPER=169;
+ public static final int LINE_COMMENT=170;
+ public static final int LINE_DIRECTIVE=171;
+ public static final int LOCALS_DIRECTIVE=172;
+ public static final int LOCAL_DIRECTIVE=173;
+ public static final int LONG_LITERAL=174;
+ public static final int MEMBER_NAME=175;
+ public static final int METHOD_DIRECTIVE=176;
+ public static final int NEGATIVE_INTEGER_LITERAL=177;
+ public static final int NULL_LITERAL=178;
+ public static final int OPEN_BRACE=179;
+ public static final int OPEN_PAREN=180;
+ public static final int PACKED_SWITCH_DIRECTIVE=181;
+ public static final int PARAMETER_DIRECTIVE=182;
+ public static final int PARAM_LIST_OR_ID_PRIMITIVE_TYPE=183;
+ public static final int POSITIVE_INTEGER_LITERAL=184;
+ public static final int PRIMITIVE_TYPE=185;
+ public static final int PROLOGUE_DIRECTIVE=186;
+ public static final int REGISTER=187;
+ public static final int REGISTERS_DIRECTIVE=188;
+ public static final int RESTART_LOCAL_DIRECTIVE=189;
+ public static final int SHORT_LITERAL=190;
+ public static final int SIMPLE_NAME=191;
+ public static final int SOURCE_DIRECTIVE=192;
+ public static final int SPARSE_SWITCH_DIRECTIVE=193;
+ public static final int STRING_LITERAL=194;
+ public static final int SUBANNOTATION_DIRECTIVE=195;
+ public static final int SUPER_DIRECTIVE=196;
+ public static final int VERIFICATION_ERROR_TYPE=197;
+ public static final int VOID_TYPE=198;
+ public static final int VTABLE_INDEX=199;
+ public static final int WHITE_SPACE=200;
+
+ // delegates
+ public TreeParser[] getDelegates() {
+ return new TreeParser[] {};
+ }
+
+ // delegators
+
+
+ public smaliTreeWalker(TreeNodeStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public smaliTreeWalker(TreeNodeStream input, RecognizerSharedState state) {
+ super(input, state);
+ }
+
+ @Override public String[] getTokenNames() { return smaliTreeWalker.tokenNames; }
+ @Override public String getGrammarFileName() { return "smaliTreeWalker.g"; }
+
+
+ public String classType;
+ private boolean verboseErrors = false;
+ private int apiLevel = 15;
+ private Opcodes opcodes = Opcodes.forApi(apiLevel);
+ private DexBuilder dexBuilder;
+
+ public void setDexBuilder(DexBuilder dexBuilder) {
+ this.dexBuilder = dexBuilder;
+ }
+
+ public void setApiLevel(int apiLevel) {
+ this.opcodes = Opcodes.forApi(apiLevel);
+ this.apiLevel = apiLevel;
+ }
+
+ public void setVerboseErrors(boolean verboseErrors) {
+ this.verboseErrors = verboseErrors;
+ }
+
+ private byte parseRegister_nibble(String register)
+ throws SemanticException {
+ int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
+ int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
+
+ //register should be in the format "v12"
+ int val = Byte.parseByte(register.substring(1));
+ if (register.charAt(0) == 'p') {
+ val = totalMethodRegisters - methodParameterRegisters + val;
+ }
+ if (val >= 2<<4) {
+ throw new SemanticException(input, "The maximum allowed register in this context is list of registers is v15");
+ }
+ //the parser wouldn't have accepted a negative register, i.e. v-1, so we don't have to check for val<0;
+ return (byte)val;
+ }
+
+ //return a short, because java's byte is signed
+ private short parseRegister_byte(String register)
+ throws SemanticException {
+ int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
+ int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
+ //register should be in the format "v123"
+ int val = Short.parseShort(register.substring(1));
+ if (register.charAt(0) == 'p') {
+ val = totalMethodRegisters - methodParameterRegisters + val;
+ }
+ if (val >= 2<<8) {
+ throw new SemanticException(input, "The maximum allowed register in this context is v255");
+ }
+ return (short)val;
+ }
+
+ //return an int because java's short is signed
+ private int parseRegister_short(String register)
+ throws SemanticException {
+ int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
+ int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
+ //register should be in the format "v12345"
+ int val = Integer.parseInt(register.substring(1));
+ if (register.charAt(0) == 'p') {
+ val = totalMethodRegisters - methodParameterRegisters + val;
+ }
+ if (val >= 2<<16) {
+ throw new SemanticException(input, "The maximum allowed register in this context is v65535");
+ }
+ //the parser wouldn't accept a negative register, i.e. v-1, so we don't have to check for val<0;
+ return val;
+ }
+
+ public String getErrorMessage(RecognitionException e, String[] tokenNames) {
+ if ( e instanceof SemanticException ) {
+ return e.getMessage();
+ } else {
+ return super.getErrorMessage(e, tokenNames);
+ }
+ }
+
+ public String getErrorHeader(RecognitionException e) {
+ return getSourceName()+"["+ e.line+","+e.charPositionInLine+"]";
+ }
+
+
+
+ // $ANTLR start "smali_file"
+ // smaliTreeWalker.g:160:1: smali_file returns [ClassDef classDef] : ^( I_CLASS_DEF header methods fields annotations ) ;
+ public final ClassDef smali_file() throws RecognitionException {
+ ClassDef classDef = null;
+
+
+ TreeRuleReturnScope header1 =null;
+ Set<Annotation> annotations2 =null;
+ List<BuilderField> fields3 =null;
+ List<BuilderMethod> methods4 =null;
+
+ try {
+ // smaliTreeWalker.g:161:3: ( ^( I_CLASS_DEF header methods fields annotations ) )
+ // smaliTreeWalker.g:161:5: ^( I_CLASS_DEF header methods fields annotations )
+ {
+ match(input,I_CLASS_DEF,FOLLOW_I_CLASS_DEF_in_smali_file52);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_header_in_smali_file54);
+ header1=header();
+ state._fsp--;
+
+ pushFollow(FOLLOW_methods_in_smali_file56);
+ methods4=methods();
+ state._fsp--;
+
+ pushFollow(FOLLOW_fields_in_smali_file58);
+ fields3=fields();
+ state._fsp--;
+
+ pushFollow(FOLLOW_annotations_in_smali_file60);
+ annotations2=annotations();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ classDef = dexBuilder.internClassDef((header1!=null?((smaliTreeWalker.header_return)header1).classType:null), (header1!=null?((smaliTreeWalker.header_return)header1).accessFlags:0), (header1!=null?((smaliTreeWalker.header_return)header1).superType:null),
+ (header1!=null?((smaliTreeWalker.header_return)header1).implementsList:null), (header1!=null?((smaliTreeWalker.header_return)header1).sourceSpec:null), annotations2, fields3, methods4);
+
+ }
+
+ }
+ catch (Exception ex) {
+
+ if (verboseErrors) {
+ ex.printStackTrace(System.err);
+ }
+ reportError(new SemanticException(input, ex));
+
+ }
+
+ finally {
+ // do for sure before leaving
+ }
+ return classDef;
+ }
+ // $ANTLR end "smali_file"
+
+
+ public static class header_return extends TreeRuleReturnScope {
+ public String classType;
+ public int accessFlags;
+ public String superType;
+ public List<String> implementsList;
+ public String sourceSpec;
+ };
+
+
+ // $ANTLR start "header"
+ // smaliTreeWalker.g:174:1: header returns [String classType, int accessFlags, String superType, List<String> implementsList, String sourceSpec] : class_spec ( super_spec )? implements_list source_spec ;
+ public final smaliTreeWalker.header_return header() throws RecognitionException {
+ smaliTreeWalker.header_return retval = new smaliTreeWalker.header_return();
+ retval.start = input.LT(1);
+
+ TreeRuleReturnScope class_spec5 =null;
+ String super_spec6 =null;
+ List<String> implements_list7 =null;
+ String source_spec8 =null;
+
+ try {
+ // smaliTreeWalker.g:175:3: ( class_spec ( super_spec )? implements_list source_spec )
+ // smaliTreeWalker.g:175:3: class_spec ( super_spec )? implements_list source_spec
+ {
+ pushFollow(FOLLOW_class_spec_in_header85);
+ class_spec5=class_spec();
+ state._fsp--;
+
+ // smaliTreeWalker.g:175:14: ( super_spec )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+ if ( (LA1_0==I_SUPER) ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // smaliTreeWalker.g:175:14: super_spec
+ {
+ pushFollow(FOLLOW_super_spec_in_header87);
+ super_spec6=super_spec();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_implements_list_in_header90);
+ implements_list7=implements_list();
+ state._fsp--;
+
+ pushFollow(FOLLOW_source_spec_in_header92);
+ source_spec8=source_spec();
+ state._fsp--;
+
+
+ classType = (class_spec5!=null?((smaliTreeWalker.class_spec_return)class_spec5).type:null);
+ retval.classType = classType;
+ retval.accessFlags = (class_spec5!=null?((smaliTreeWalker.class_spec_return)class_spec5).accessFlags:0);
+ retval.superType = super_spec6;
+ retval.implementsList = implements_list7;
+ retval.sourceSpec = source_spec8;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "header"
+
+
+ public static class class_spec_return extends TreeRuleReturnScope {
+ public String type;
+ public int accessFlags;
+ };
+
+
+ // $ANTLR start "class_spec"
+ // smaliTreeWalker.g:186:1: class_spec returns [String type, int accessFlags] : CLASS_DESCRIPTOR access_list ;
+ public final smaliTreeWalker.class_spec_return class_spec() throws RecognitionException {
+ smaliTreeWalker.class_spec_return retval = new smaliTreeWalker.class_spec_return();
+ retval.start = input.LT(1);
+
+ CommonTree CLASS_DESCRIPTOR9=null;
+ int access_list10 =0;
+
+ try {
+ // smaliTreeWalker.g:187:3: ( CLASS_DESCRIPTOR access_list )
+ // smaliTreeWalker.g:187:5: CLASS_DESCRIPTOR access_list
+ {
+ CLASS_DESCRIPTOR9=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_class_spec110);
+ pushFollow(FOLLOW_access_list_in_class_spec112);
+ access_list10=access_list();
+ state._fsp--;
+
+
+ retval.type = (CLASS_DESCRIPTOR9!=null?CLASS_DESCRIPTOR9.getText():null);
+ retval.accessFlags = access_list10;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "class_spec"
+
+
+
+ // $ANTLR start "super_spec"
+ // smaliTreeWalker.g:193:1: super_spec returns [String type] : ^( I_SUPER CLASS_DESCRIPTOR ) ;
+ public final String super_spec() throws RecognitionException {
+ String type = null;
+
+
+ CommonTree CLASS_DESCRIPTOR11=null;
+
+ try {
+ // smaliTreeWalker.g:194:3: ( ^( I_SUPER CLASS_DESCRIPTOR ) )
+ // smaliTreeWalker.g:194:5: ^( I_SUPER CLASS_DESCRIPTOR )
+ {
+ match(input,I_SUPER,FOLLOW_I_SUPER_in_super_spec130);
+ match(input, Token.DOWN, null);
+ CLASS_DESCRIPTOR11=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_super_spec132);
+ match(input, Token.UP, null);
+
+
+ type = (CLASS_DESCRIPTOR11!=null?CLASS_DESCRIPTOR11.getText():null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return type;
+ }
+ // $ANTLR end "super_spec"
+
+
+
+ // $ANTLR start "implements_spec"
+ // smaliTreeWalker.g:200:1: implements_spec returns [String type] : ^( I_IMPLEMENTS CLASS_DESCRIPTOR ) ;
+ public final String implements_spec() throws RecognitionException {
+ String type = null;
+
+
+ CommonTree CLASS_DESCRIPTOR12=null;
+
+ try {
+ // smaliTreeWalker.g:201:3: ( ^( I_IMPLEMENTS CLASS_DESCRIPTOR ) )
+ // smaliTreeWalker.g:201:5: ^( I_IMPLEMENTS CLASS_DESCRIPTOR )
+ {
+ match(input,I_IMPLEMENTS,FOLLOW_I_IMPLEMENTS_in_implements_spec152);
+ match(input, Token.DOWN, null);
+ CLASS_DESCRIPTOR12=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_implements_spec154);
+ match(input, Token.UP, null);
+
+
+ type = (CLASS_DESCRIPTOR12!=null?CLASS_DESCRIPTOR12.getText():null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return type;
+ }
+ // $ANTLR end "implements_spec"
+
+
+
+ // $ANTLR start "implements_list"
+ // smaliTreeWalker.g:206:1: implements_list returns [List<String> implementsList] : ( implements_spec )* ;
+ public final List<String> implements_list() throws RecognitionException {
+ List<String> implementsList = null;
+
+
+ String implements_spec13 =null;
+
+ List<String> typeList;
+ try {
+ // smaliTreeWalker.g:208:3: ( ( implements_spec )* )
+ // smaliTreeWalker.g:208:5: ( implements_spec )*
+ {
+ typeList = Lists.newArrayList();
+ // smaliTreeWalker.g:209:5: ( implements_spec )*
+ loop2:
+ while (true) {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+ if ( (LA2_0==I_IMPLEMENTS) ) {
+ alt2=1;
+ }
+
+ switch (alt2) {
+ case 1 :
+ // smaliTreeWalker.g:209:6: implements_spec
+ {
+ pushFollow(FOLLOW_implements_spec_in_implements_list184);
+ implements_spec13=implements_spec();
+ state._fsp--;
+
+ typeList.add(implements_spec13);
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ }
+
+
+ if (typeList.size() > 0) {
+ implementsList = typeList;
+ } else {
+ implementsList = null;
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return implementsList;
+ }
+ // $ANTLR end "implements_list"
+
+
+
+ // $ANTLR start "source_spec"
+ // smaliTreeWalker.g:218:1: source_spec returns [String source] : ( ^( I_SOURCE string_literal ) |);
+ public final String source_spec() throws RecognitionException {
+ String source = null;
+
+
+ String string_literal14 =null;
+
+ try {
+ // smaliTreeWalker.g:219:3: ( ^( I_SOURCE string_literal ) |)
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+ if ( (LA3_0==I_SOURCE) ) {
+ alt3=1;
+ }
+ else if ( (LA3_0==I_METHODS) ) {
+ alt3=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+ throw nvae;
+ }
+
+ switch (alt3) {
+ case 1 :
+ // smaliTreeWalker.g:219:5: ^( I_SOURCE string_literal )
+ {
+ source = null;
+ match(input,I_SOURCE,FOLLOW_I_SOURCE_in_source_spec213);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_string_literal_in_source_spec215);
+ string_literal14=string_literal();
+ state._fsp--;
+
+ source = string_literal14;
+ match(input, Token.UP, null);
+
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:221:16:
+ {
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return source;
+ }
+ // $ANTLR end "source_spec"
+
+
+
+ // $ANTLR start "access_list"
+ // smaliTreeWalker.g:223:1: access_list returns [int value] : ^( I_ACCESS_LIST ( ACCESS_SPEC )* ) ;
+ public final int access_list() throws RecognitionException {
+ int value = 0;
+
+
+ CommonTree ACCESS_SPEC15=null;
+
+
+ value = 0;
+
+ try {
+ // smaliTreeWalker.g:228:3: ( ^( I_ACCESS_LIST ( ACCESS_SPEC )* ) )
+ // smaliTreeWalker.g:228:5: ^( I_ACCESS_LIST ( ACCESS_SPEC )* )
+ {
+ match(input,I_ACCESS_LIST,FOLLOW_I_ACCESS_LIST_in_access_list248);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:229:7: ( ACCESS_SPEC )*
+ loop4:
+ while (true) {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+ if ( (LA4_0==ACCESS_SPEC) ) {
+ alt4=1;
+ }
+
+ switch (alt4) {
+ case 1 :
+ // smaliTreeWalker.g:230:9: ACCESS_SPEC
+ {
+ ACCESS_SPEC15=(CommonTree)match(input,ACCESS_SPEC,FOLLOW_ACCESS_SPEC_in_access_list266);
+
+ value |= AccessFlags.getAccessFlag(ACCESS_SPEC15.getText()).getValue();
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "access_list"
+
+
+
+ // $ANTLR start "fields"
+ // smaliTreeWalker.g:237:1: fields returns [List<BuilderField> fields] : ^( I_FIELDS ( field )* ) ;
+ public final List<BuilderField> fields() throws RecognitionException {
+ List<BuilderField> fields = null;
+
+
+ BuilderField field16 =null;
+
+ fields = Lists.newArrayList();
+ try {
+ // smaliTreeWalker.g:239:3: ( ^( I_FIELDS ( field )* ) )
+ // smaliTreeWalker.g:239:5: ^( I_FIELDS ( field )* )
+ {
+ match(input,I_FIELDS,FOLLOW_I_FIELDS_in_fields308);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:240:7: ( field )*
+ loop5:
+ while (true) {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+ if ( (LA5_0==I_FIELD) ) {
+ alt5=1;
+ }
+
+ switch (alt5) {
+ case 1 :
+ // smaliTreeWalker.g:240:8: field
+ {
+ pushFollow(FOLLOW_field_in_fields317);
+ field16=field();
+ state._fsp--;
+
+
+ fields.add(field16);
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return fields;
+ }
+ // $ANTLR end "fields"
+
+
+
+ // $ANTLR start "methods"
+ // smaliTreeWalker.g:245:1: methods returns [List<BuilderMethod> methods] : ^( I_METHODS ( method )* ) ;
+ public final List<BuilderMethod> methods() throws RecognitionException {
+ List<BuilderMethod> methods = null;
+
+
+ BuilderMethod method17 =null;
+
+ methods = Lists.newArrayList();
+ try {
+ // smaliTreeWalker.g:247:3: ( ^( I_METHODS ( method )* ) )
+ // smaliTreeWalker.g:247:5: ^( I_METHODS ( method )* )
+ {
+ match(input,I_METHODS,FOLLOW_I_METHODS_in_methods349);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:248:7: ( method )*
+ loop6:
+ while (true) {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+ if ( (LA6_0==I_METHOD) ) {
+ alt6=1;
+ }
+
+ switch (alt6) {
+ case 1 :
+ // smaliTreeWalker.g:248:8: method
+ {
+ pushFollow(FOLLOW_method_in_methods358);
+ method17=method();
+ state._fsp--;
+
+
+ methods.add(method17);
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return methods;
+ }
+ // $ANTLR end "methods"
+
+
+
+ // $ANTLR start "field"
+ // smaliTreeWalker.g:253:1: field returns [BuilderField field] : ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? ) ;
+ public final BuilderField field() throws RecognitionException {
+ BuilderField field = null;
+
+
+ CommonTree SIMPLE_NAME20=null;
+ int access_list18 =0;
+ EncodedValue field_initial_value19 =null;
+ TreeRuleReturnScope nonvoid_type_descriptor21 =null;
+ Set<Annotation> annotations22 =null;
+
+ try {
+ // smaliTreeWalker.g:254:3: ( ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? ) )
+ // smaliTreeWalker.g:254:4: ^( I_FIELD SIMPLE_NAME access_list ^( I_FIELD_TYPE nonvoid_type_descriptor ) field_initial_value ( annotations )? )
+ {
+ match(input,I_FIELD,FOLLOW_I_FIELD_in_field383);
+ match(input, Token.DOWN, null);
+ SIMPLE_NAME20=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_field385);
+ pushFollow(FOLLOW_access_list_in_field387);
+ access_list18=access_list();
+ state._fsp--;
+
+ match(input,I_FIELD_TYPE,FOLLOW_I_FIELD_TYPE_in_field390);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_field392);
+ nonvoid_type_descriptor21=nonvoid_type_descriptor();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+ pushFollow(FOLLOW_field_initial_value_in_field395);
+ field_initial_value19=field_initial_value();
+ state._fsp--;
+
+ // smaliTreeWalker.g:254:98: ( annotations )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+ if ( (LA7_0==I_ANNOTATIONS) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // smaliTreeWalker.g:254:98: annotations
+ {
+ pushFollow(FOLLOW_annotations_in_field397);
+ annotations22=annotations();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ match(input, Token.UP, null);
+
+
+ int accessFlags = access_list18;
+
+
+ if (!AccessFlags.STATIC.isSet(accessFlags) && field_initial_value19 != null) {
+ throw new SemanticException(input, "Initial field values can only be specified for static fields.");
+ }
+
+ field = dexBuilder.internField(classType, (SIMPLE_NAME20!=null?SIMPLE_NAME20.getText():null), (nonvoid_type_descriptor21!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor21).type:null), access_list18,
+ field_initial_value19, annotations22);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return field;
+ }
+ // $ANTLR end "field"
+
+
+
+ // $ANTLR start "field_initial_value"
+ // smaliTreeWalker.g:268:1: field_initial_value returns [EncodedValue encodedValue] : ( ^( I_FIELD_INITIAL_VALUE literal ) |);
+ public final EncodedValue field_initial_value() throws RecognitionException {
+ EncodedValue encodedValue = null;
+
+
+ EncodedValue literal23 =null;
+
+ try {
+ // smaliTreeWalker.g:269:3: ( ^( I_FIELD_INITIAL_VALUE literal ) |)
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+ if ( (LA8_0==I_FIELD_INITIAL_VALUE) ) {
+ alt8=1;
+ }
+ else if ( (LA8_0==UP||LA8_0==I_ANNOTATIONS) ) {
+ alt8=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+ throw nvae;
+ }
+
+ switch (alt8) {
+ case 1 :
+ // smaliTreeWalker.g:269:5: ^( I_FIELD_INITIAL_VALUE literal )
+ {
+ match(input,I_FIELD_INITIAL_VALUE,FOLLOW_I_FIELD_INITIAL_VALUE_in_field_initial_value418);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_literal_in_field_initial_value420);
+ literal23=literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+ encodedValue = literal23;
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:270:16:
+ {
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return encodedValue;
+ }
+ // $ANTLR end "field_initial_value"
+
+
+
+ // $ANTLR start "literal"
+ // smaliTreeWalker.g:272:1: literal returns [EncodedValue encodedValue] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | string_literal | bool_literal | NULL_LITERAL | type_descriptor | array_literal | subannotation | field_literal | method_literal | enum_literal );
+ public final EncodedValue literal() throws RecognitionException {
+ EncodedValue encodedValue = null;
+
+
+ int integer_literal24 =0;
+ long long_literal25 =0;
+ short short_literal26 =0;
+ byte byte_literal27 =0;
+ float float_literal28 =0.0f;
+ double double_literal29 =0.0;
+ char char_literal30 =0;
+ String string_literal31 =null;
+ boolean bool_literal32 =false;
+ String type_descriptor33 =null;
+ List<EncodedValue> array_literal34 =null;
+ TreeRuleReturnScope subannotation35 =null;
+ FieldReference field_literal36 =null;
+ MethodReference method_literal37 =null;
+ FieldReference enum_literal38 =null;
+
+ try {
+ // smaliTreeWalker.g:273:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | string_literal | bool_literal | NULL_LITERAL | type_descriptor | array_literal | subannotation | field_literal | method_literal | enum_literal )
+ int alt9=16;
+ switch ( input.LA(1) ) {
+ case INTEGER_LITERAL:
+ {
+ alt9=1;
+ }
+ break;
+ case LONG_LITERAL:
+ {
+ alt9=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt9=3;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt9=4;
+ }
+ break;
+ case FLOAT_LITERAL:
+ {
+ alt9=5;
+ }
+ break;
+ case DOUBLE_LITERAL:
+ {
+ alt9=6;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt9=7;
+ }
+ break;
+ case STRING_LITERAL:
+ {
+ alt9=8;
+ }
+ break;
+ case BOOL_LITERAL:
+ {
+ alt9=9;
+ }
+ break;
+ case NULL_LITERAL:
+ {
+ alt9=10;
+ }
+ break;
+ case ARRAY_TYPE_PREFIX:
+ case CLASS_DESCRIPTOR:
+ case PRIMITIVE_TYPE:
+ case VOID_TYPE:
+ {
+ alt9=11;
+ }
+ break;
+ case I_ENCODED_ARRAY:
+ {
+ alt9=12;
+ }
+ break;
+ case I_SUBANNOTATION:
+ {
+ alt9=13;
+ }
+ break;
+ case I_ENCODED_FIELD:
+ {
+ alt9=14;
+ }
+ break;
+ case I_ENCODED_METHOD:
+ {
+ alt9=15;
+ }
+ break;
+ case I_ENCODED_ENUM:
+ {
+ alt9=16;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // smaliTreeWalker.g:273:5: integer_literal
+ {
+ pushFollow(FOLLOW_integer_literal_in_literal442);
+ integer_literal24=integer_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableIntEncodedValue(integer_literal24);
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:274:5: long_literal
+ {
+ pushFollow(FOLLOW_long_literal_in_literal450);
+ long_literal25=long_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableLongEncodedValue(long_literal25);
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:275:5: short_literal
+ {
+ pushFollow(FOLLOW_short_literal_in_literal458);
+ short_literal26=short_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableShortEncodedValue(short_literal26);
+ }
+ break;
+ case 4 :
+ // smaliTreeWalker.g:276:5: byte_literal
+ {
+ pushFollow(FOLLOW_byte_literal_in_literal466);
+ byte_literal27=byte_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableByteEncodedValue(byte_literal27);
+ }
+ break;
+ case 5 :
+ // smaliTreeWalker.g:277:5: float_literal
+ {
+ pushFollow(FOLLOW_float_literal_in_literal474);
+ float_literal28=float_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableFloatEncodedValue(float_literal28);
+ }
+ break;
+ case 6 :
+ // smaliTreeWalker.g:278:5: double_literal
+ {
+ pushFollow(FOLLOW_double_literal_in_literal482);
+ double_literal29=double_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableDoubleEncodedValue(double_literal29);
+ }
+ break;
+ case 7 :
+ // smaliTreeWalker.g:279:5: char_literal
+ {
+ pushFollow(FOLLOW_char_literal_in_literal490);
+ char_literal30=char_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableCharEncodedValue(char_literal30);
+ }
+ break;
+ case 8 :
+ // smaliTreeWalker.g:280:5: string_literal
+ {
+ pushFollow(FOLLOW_string_literal_in_literal498);
+ string_literal31=string_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableStringEncodedValue(string_literal31);
+ }
+ break;
+ case 9 :
+ // smaliTreeWalker.g:281:5: bool_literal
+ {
+ pushFollow(FOLLOW_bool_literal_in_literal506);
+ bool_literal32=bool_literal();
+ state._fsp--;
+
+ encodedValue = ImmutableBooleanEncodedValue.forBoolean(bool_literal32);
+ }
+ break;
+ case 10 :
+ // smaliTreeWalker.g:282:5: NULL_LITERAL
+ {
+ match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_literal514);
+ encodedValue = ImmutableNullEncodedValue.INSTANCE;
+ }
+ break;
+ case 11 :
+ // smaliTreeWalker.g:283:5: type_descriptor
+ {
+ pushFollow(FOLLOW_type_descriptor_in_literal522);
+ type_descriptor33=type_descriptor();
+ state._fsp--;
+
+ encodedValue = new ImmutableTypeEncodedValue(type_descriptor33);
+ }
+ break;
+ case 12 :
+ // smaliTreeWalker.g:284:5: array_literal
+ {
+ pushFollow(FOLLOW_array_literal_in_literal530);
+ array_literal34=array_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableArrayEncodedValue(array_literal34);
+ }
+ break;
+ case 13 :
+ // smaliTreeWalker.g:285:5: subannotation
+ {
+ pushFollow(FOLLOW_subannotation_in_literal538);
+ subannotation35=subannotation();
+ state._fsp--;
+
+ encodedValue = new ImmutableAnnotationEncodedValue((subannotation35!=null?((smaliTreeWalker.subannotation_return)subannotation35).annotationType:null), (subannotation35!=null?((smaliTreeWalker.subannotation_return)subannotation35).elements:null));
+ }
+ break;
+ case 14 :
+ // smaliTreeWalker.g:286:5: field_literal
+ {
+ pushFollow(FOLLOW_field_literal_in_literal546);
+ field_literal36=field_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableFieldEncodedValue(field_literal36);
+ }
+ break;
+ case 15 :
+ // smaliTreeWalker.g:287:5: method_literal
+ {
+ pushFollow(FOLLOW_method_literal_in_literal554);
+ method_literal37=method_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableMethodEncodedValue(method_literal37);
+ }
+ break;
+ case 16 :
+ // smaliTreeWalker.g:288:5: enum_literal
+ {
+ pushFollow(FOLLOW_enum_literal_in_literal562);
+ enum_literal38=enum_literal();
+ state._fsp--;
+
+ encodedValue = new ImmutableEnumEncodedValue(enum_literal38);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return encodedValue;
+ }
+ // $ANTLR end "literal"
+
+
+
+ // $ANTLR start "fixed_64bit_literal_number"
+ // smaliTreeWalker.g:291:1: fixed_64bit_literal_number returns [Number value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal );
+ public final Number fixed_64bit_literal_number() throws RecognitionException {
+ Number value = null;
+
+
+ int integer_literal39 =0;
+ long long_literal40 =0;
+ short short_literal41 =0;
+ byte byte_literal42 =0;
+ float float_literal43 =0.0f;
+ double double_literal44 =0.0;
+ char char_literal45 =0;
+ boolean bool_literal46 =false;
+
+ try {
+ // smaliTreeWalker.g:292:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal )
+ int alt10=8;
+ switch ( input.LA(1) ) {
+ case INTEGER_LITERAL:
+ {
+ alt10=1;
+ }
+ break;
+ case LONG_LITERAL:
+ {
+ alt10=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt10=3;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt10=4;
+ }
+ break;
+ case FLOAT_LITERAL:
+ {
+ alt10=5;
+ }
+ break;
+ case DOUBLE_LITERAL:
+ {
+ alt10=6;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt10=7;
+ }
+ break;
+ case BOOL_LITERAL:
+ {
+ alt10=8;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 10, 0, input);
+ throw nvae;
+ }
+ switch (alt10) {
+ case 1 :
+ // smaliTreeWalker.g:292:5: integer_literal
+ {
+ pushFollow(FOLLOW_integer_literal_in_fixed_64bit_literal_number578);
+ integer_literal39=integer_literal();
+ state._fsp--;
+
+ value = integer_literal39;
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:293:5: long_literal
+ {
+ pushFollow(FOLLOW_long_literal_in_fixed_64bit_literal_number586);
+ long_literal40=long_literal();
+ state._fsp--;
+
+ value = long_literal40;
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:294:5: short_literal
+ {
+ pushFollow(FOLLOW_short_literal_in_fixed_64bit_literal_number594);
+ short_literal41=short_literal();
+ state._fsp--;
+
+ value = short_literal41;
+ }
+ break;
+ case 4 :
+ // smaliTreeWalker.g:295:5: byte_literal
+ {
+ pushFollow(FOLLOW_byte_literal_in_fixed_64bit_literal_number602);
+ byte_literal42=byte_literal();
+ state._fsp--;
+
+ value = byte_literal42;
+ }
+ break;
+ case 5 :
+ // smaliTreeWalker.g:296:5: float_literal
+ {
+ pushFollow(FOLLOW_float_literal_in_fixed_64bit_literal_number610);
+ float_literal43=float_literal();
+ state._fsp--;
+
+ value = Float.floatToRawIntBits(float_literal43);
+ }
+ break;
+ case 6 :
+ // smaliTreeWalker.g:297:5: double_literal
+ {
+ pushFollow(FOLLOW_double_literal_in_fixed_64bit_literal_number618);
+ double_literal44=double_literal();
+ state._fsp--;
+
+ value = Double.doubleToRawLongBits(double_literal44);
+ }
+ break;
+ case 7 :
+ // smaliTreeWalker.g:298:5: char_literal
+ {
+ pushFollow(FOLLOW_char_literal_in_fixed_64bit_literal_number626);
+ char_literal45=char_literal();
+ state._fsp--;
+
+ value = (int)char_literal45;
+ }
+ break;
+ case 8 :
+ // smaliTreeWalker.g:299:5: bool_literal
+ {
+ pushFollow(FOLLOW_bool_literal_in_fixed_64bit_literal_number634);
+ bool_literal46=bool_literal();
+ state._fsp--;
+
+ value = bool_literal46?1:0;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "fixed_64bit_literal_number"
+
+
+
+ // $ANTLR start "fixed_64bit_literal"
+ // smaliTreeWalker.g:301:1: fixed_64bit_literal returns [long value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal );
+ public final long fixed_64bit_literal() throws RecognitionException {
+ long value = 0;
+
+
+ int integer_literal47 =0;
+ long long_literal48 =0;
+ short short_literal49 =0;
+ byte byte_literal50 =0;
+ float float_literal51 =0.0f;
+ double double_literal52 =0.0;
+ char char_literal53 =0;
+ boolean bool_literal54 =false;
+
+ try {
+ // smaliTreeWalker.g:302:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | double_literal | char_literal | bool_literal )
+ int alt11=8;
+ switch ( input.LA(1) ) {
+ case INTEGER_LITERAL:
+ {
+ alt11=1;
+ }
+ break;
+ case LONG_LITERAL:
+ {
+ alt11=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt11=3;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt11=4;
+ }
+ break;
+ case FLOAT_LITERAL:
+ {
+ alt11=5;
+ }
+ break;
+ case DOUBLE_LITERAL:
+ {
+ alt11=6;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt11=7;
+ }
+ break;
+ case BOOL_LITERAL:
+ {
+ alt11=8;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 11, 0, input);
+ throw nvae;
+ }
+ switch (alt11) {
+ case 1 :
+ // smaliTreeWalker.g:302:5: integer_literal
+ {
+ pushFollow(FOLLOW_integer_literal_in_fixed_64bit_literal649);
+ integer_literal47=integer_literal();
+ state._fsp--;
+
+ value = integer_literal47;
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:303:5: long_literal
+ {
+ pushFollow(FOLLOW_long_literal_in_fixed_64bit_literal657);
+ long_literal48=long_literal();
+ state._fsp--;
+
+ value = long_literal48;
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:304:5: short_literal
+ {
+ pushFollow(FOLLOW_short_literal_in_fixed_64bit_literal665);
+ short_literal49=short_literal();
+ state._fsp--;
+
+ value = short_literal49;
+ }
+ break;
+ case 4 :
+ // smaliTreeWalker.g:305:5: byte_literal
+ {
+ pushFollow(FOLLOW_byte_literal_in_fixed_64bit_literal673);
+ byte_literal50=byte_literal();
+ state._fsp--;
+
+ value = byte_literal50;
+ }
+ break;
+ case 5 :
+ // smaliTreeWalker.g:306:5: float_literal
+ {
+ pushFollow(FOLLOW_float_literal_in_fixed_64bit_literal681);
+ float_literal51=float_literal();
+ state._fsp--;
+
+ value = Float.floatToRawIntBits(float_literal51);
+ }
+ break;
+ case 6 :
+ // smaliTreeWalker.g:307:5: double_literal
+ {
+ pushFollow(FOLLOW_double_literal_in_fixed_64bit_literal689);
+ double_literal52=double_literal();
+ state._fsp--;
+
+ value = Double.doubleToRawLongBits(double_literal52);
+ }
+ break;
+ case 7 :
+ // smaliTreeWalker.g:308:5: char_literal
+ {
+ pushFollow(FOLLOW_char_literal_in_fixed_64bit_literal697);
+ char_literal53=char_literal();
+ state._fsp--;
+
+ value = char_literal53;
+ }
+ break;
+ case 8 :
+ // smaliTreeWalker.g:309:5: bool_literal
+ {
+ pushFollow(FOLLOW_bool_literal_in_fixed_64bit_literal705);
+ bool_literal54=bool_literal();
+ state._fsp--;
+
+ value = bool_literal54?1:0;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "fixed_64bit_literal"
+
+
+
+ // $ANTLR start "fixed_32bit_literal"
+ // smaliTreeWalker.g:313:1: fixed_32bit_literal returns [int value] : ( integer_literal | long_literal | short_literal | byte_literal | float_literal | char_literal | bool_literal );
+ public final int fixed_32bit_literal() throws RecognitionException {
+ int value = 0;
+
+
+ int integer_literal55 =0;
+ long long_literal56 =0;
+ short short_literal57 =0;
+ byte byte_literal58 =0;
+ float float_literal59 =0.0f;
+ char char_literal60 =0;
+ boolean bool_literal61 =false;
+
+ try {
+ // smaliTreeWalker.g:314:3: ( integer_literal | long_literal | short_literal | byte_literal | float_literal | char_literal | bool_literal )
+ int alt12=7;
+ switch ( input.LA(1) ) {
+ case INTEGER_LITERAL:
+ {
+ alt12=1;
+ }
+ break;
+ case LONG_LITERAL:
+ {
+ alt12=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt12=3;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt12=4;
+ }
+ break;
+ case FLOAT_LITERAL:
+ {
+ alt12=5;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt12=6;
+ }
+ break;
+ case BOOL_LITERAL:
+ {
+ alt12=7;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 12, 0, input);
+ throw nvae;
+ }
+ switch (alt12) {
+ case 1 :
+ // smaliTreeWalker.g:314:5: integer_literal
+ {
+ pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal722);
+ integer_literal55=integer_literal();
+ state._fsp--;
+
+ value = integer_literal55;
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:315:5: long_literal
+ {
+ pushFollow(FOLLOW_long_literal_in_fixed_32bit_literal730);
+ long_literal56=long_literal();
+ state._fsp--;
+
+ LiteralTools.checkInt(long_literal56); value = (int)long_literal56;
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:316:5: short_literal
+ {
+ pushFollow(FOLLOW_short_literal_in_fixed_32bit_literal738);
+ short_literal57=short_literal();
+ state._fsp--;
+
+ value = short_literal57;
+ }
+ break;
+ case 4 :
+ // smaliTreeWalker.g:317:5: byte_literal
+ {
+ pushFollow(FOLLOW_byte_literal_in_fixed_32bit_literal746);
+ byte_literal58=byte_literal();
+ state._fsp--;
+
+ value = byte_literal58;
+ }
+ break;
+ case 5 :
+ // smaliTreeWalker.g:318:5: float_literal
+ {
+ pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal754);
+ float_literal59=float_literal();
+ state._fsp--;
+
+ value = Float.floatToRawIntBits(float_literal59);
+ }
+ break;
+ case 6 :
+ // smaliTreeWalker.g:319:5: char_literal
+ {
+ pushFollow(FOLLOW_char_literal_in_fixed_32bit_literal762);
+ char_literal60=char_literal();
+ state._fsp--;
+
+ value = char_literal60;
+ }
+ break;
+ case 7 :
+ // smaliTreeWalker.g:320:5: bool_literal
+ {
+ pushFollow(FOLLOW_bool_literal_in_fixed_32bit_literal770);
+ bool_literal61=bool_literal();
+ state._fsp--;
+
+ value = bool_literal61?1:0;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "fixed_32bit_literal"
+
+
+
+ // $ANTLR start "array_elements"
+ // smaliTreeWalker.g:322:1: array_elements returns [List<Number> elements] : ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* ) ;
+ public final List<Number> array_elements() throws RecognitionException {
+ List<Number> elements = null;
+
+
+ Number fixed_64bit_literal_number62 =null;
+
+ try {
+ // smaliTreeWalker.g:323:3: ( ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* ) )
+ // smaliTreeWalker.g:323:5: ^( I_ARRAY_ELEMENTS ( fixed_64bit_literal_number )* )
+ {
+ elements = Lists.newArrayList();
+ match(input,I_ARRAY_ELEMENTS,FOLLOW_I_ARRAY_ELEMENTS_in_array_elements792);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:325:7: ( fixed_64bit_literal_number )*
+ loop13:
+ while (true) {
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+ if ( ((LA13_0 >= BOOL_LITERAL && LA13_0 <= BYTE_LITERAL)||LA13_0==CHAR_LITERAL||LA13_0==DOUBLE_LITERAL||LA13_0==FLOAT_LITERAL||LA13_0==INTEGER_LITERAL||LA13_0==LONG_LITERAL||LA13_0==SHORT_LITERAL) ) {
+ alt13=1;
+ }
+
+ switch (alt13) {
+ case 1 :
+ // smaliTreeWalker.g:325:8: fixed_64bit_literal_number
+ {
+ pushFollow(FOLLOW_fixed_64bit_literal_number_in_array_elements801);
+ fixed_64bit_literal_number62=fixed_64bit_literal_number();
+ state._fsp--;
+
+
+ elements.add(fixed_64bit_literal_number62);
+
+ }
+ break;
+
+ default :
+ break loop13;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return elements;
+ }
+ // $ANTLR end "array_elements"
+
+
+
+ // $ANTLR start "packed_switch_elements"
+ // smaliTreeWalker.g:330:1: packed_switch_elements returns [List<Label> elements] : ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* ) ;
+ public final List<Label> packed_switch_elements() throws RecognitionException {
+ List<Label> elements = null;
+
+
+ Label label_ref63 =null;
+
+ elements = Lists.newArrayList();
+ try {
+ // smaliTreeWalker.g:332:3: ( ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* ) )
+ // smaliTreeWalker.g:333:5: ^( I_PACKED_SWITCH_ELEMENTS ( label_ref )* )
+ {
+ match(input,I_PACKED_SWITCH_ELEMENTS,FOLLOW_I_PACKED_SWITCH_ELEMENTS_in_packed_switch_elements837);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:334:7: ( label_ref )*
+ loop14:
+ while (true) {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+ if ( (LA14_0==SIMPLE_NAME) ) {
+ alt14=1;
+ }
+
+ switch (alt14) {
+ case 1 :
+ // smaliTreeWalker.g:334:8: label_ref
+ {
+ pushFollow(FOLLOW_label_ref_in_packed_switch_elements846);
+ label_ref63=label_ref();
+ state._fsp--;
+
+ elements.add(label_ref63);
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return elements;
+ }
+ // $ANTLR end "packed_switch_elements"
+
+
+
+ // $ANTLR start "sparse_switch_elements"
+ // smaliTreeWalker.g:337:1: sparse_switch_elements returns [List<SwitchLabelElement> elements] : ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* ) ;
+ public final List<SwitchLabelElement> sparse_switch_elements() throws RecognitionException {
+ List<SwitchLabelElement> elements = null;
+
+
+ int fixed_32bit_literal64 =0;
+ Label label_ref65 =null;
+
+ elements = Lists.newArrayList();
+ try {
+ // smaliTreeWalker.g:339:3: ( ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* ) )
+ // smaliTreeWalker.g:340:5: ^( I_SPARSE_SWITCH_ELEMENTS ( fixed_32bit_literal label_ref )* )
+ {
+ match(input,I_SPARSE_SWITCH_ELEMENTS,FOLLOW_I_SPARSE_SWITCH_ELEMENTS_in_sparse_switch_elements881);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:341:8: ( fixed_32bit_literal label_ref )*
+ loop15:
+ while (true) {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+ if ( ((LA15_0 >= BOOL_LITERAL && LA15_0 <= BYTE_LITERAL)||LA15_0==CHAR_LITERAL||LA15_0==FLOAT_LITERAL||LA15_0==INTEGER_LITERAL||LA15_0==LONG_LITERAL||LA15_0==SHORT_LITERAL) ) {
+ alt15=1;
+ }
+
+ switch (alt15) {
+ case 1 :
+ // smaliTreeWalker.g:341:9: fixed_32bit_literal label_ref
+ {
+ pushFollow(FOLLOW_fixed_32bit_literal_in_sparse_switch_elements891);
+ fixed_32bit_literal64=fixed_32bit_literal();
+ state._fsp--;
+
+ pushFollow(FOLLOW_label_ref_in_sparse_switch_elements893);
+ label_ref65=label_ref();
+ state._fsp--;
+
+
+ elements.add(new SwitchLabelElement(fixed_32bit_literal64, label_ref65));
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return elements;
+ }
+ // $ANTLR end "sparse_switch_elements"
+
+
+ protected static class method_scope {
+ boolean isStatic;
+ int totalMethodRegisters;
+ int methodParameterRegisters;
+ MethodImplementationBuilder methodBuilder;
+ }
+ protected Stack<method_scope> method_stack = new Stack<method_scope>();
+
+
+ // $ANTLR start "method"
+ // smaliTreeWalker.g:347:1: method returns [BuilderMethod ret] : ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations ) ;
+ public final BuilderMethod method() throws RecognitionException {
+ method_stack.push(new method_scope());
+ BuilderMethod ret = null;
+
+
+ CommonTree I_METHOD70=null;
+ int access_list66 =0;
+ TreeRuleReturnScope method_name_and_prototype67 =null;
+ TreeRuleReturnScope registers_directive68 =null;
+ List<BuilderTryBlock> catches69 =null;
+ Set<Annotation> annotations71 =null;
+
+
+ method_stack.peek().totalMethodRegisters = 0;
+ method_stack.peek().methodParameterRegisters = 0;
+ int accessFlags = 0;
+ method_stack.peek().isStatic = false;
+
+ try {
+ // smaliTreeWalker.g:362:3: ( ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations ) )
+ // smaliTreeWalker.g:363:5: ^( I_METHOD method_name_and_prototype access_list ( ( registers_directive ) |) ordered_method_items catches parameters[$method_name_and_prototype.parameters] annotations )
+ {
+ I_METHOD70=(CommonTree)match(input,I_METHOD,FOLLOW_I_METHOD_in_method945);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_method_name_and_prototype_in_method953);
+ method_name_and_prototype67=method_name_and_prototype();
+ state._fsp--;
+
+ pushFollow(FOLLOW_access_list_in_method961);
+ access_list66=access_list();
+ state._fsp--;
+
+
+ accessFlags = access_list66;
+ method_stack.peek().isStatic = AccessFlags.STATIC.isSet(accessFlags);
+ method_stack.peek().methodParameterRegisters =
+ MethodUtil.getParameterRegisterCount((method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null), method_stack.peek().isStatic);
+
+ // smaliTreeWalker.g:372:7: ( ( registers_directive ) |)
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+ if ( (LA16_0==I_LOCALS||LA16_0==I_REGISTERS) ) {
+ alt16=1;
+ }
+ else if ( (LA16_0==I_ORDERED_METHOD_ITEMS) ) {
+ alt16=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 16, 0, input);
+ throw nvae;
+ }
+
+ switch (alt16) {
+ case 1 :
+ // smaliTreeWalker.g:373:9: ( registers_directive )
+ {
+ // smaliTreeWalker.g:373:9: ( registers_directive )
+ // smaliTreeWalker.g:373:10: registers_directive
+ {
+ pushFollow(FOLLOW_registers_directive_in_method988);
+ registers_directive68=registers_directive();
+ state._fsp--;
+
+
+ if ((registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).isLocalsDirective:false)) {
+ method_stack.peek().totalMethodRegisters = (registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).registers:0) + method_stack.peek().methodParameterRegisters;
+ } else {
+ method_stack.peek().totalMethodRegisters = (registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).registers:0);
+ }
+
+ method_stack.peek().methodBuilder = new MethodImplementationBuilder(method_stack.peek().totalMethodRegisters);
+
+
+ }
+
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:386:9:
+ {
+
+ method_stack.peek().methodBuilder = new MethodImplementationBuilder(0);
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_ordered_method_items_in_method1045);
+ ordered_method_items();
+ state._fsp--;
+
+ pushFollow(FOLLOW_catches_in_method1053);
+ catches69=catches();
+ state._fsp--;
+
+ pushFollow(FOLLOW_parameters_in_method1061);
+ parameters((method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null));
+ state._fsp--;
+
+ pushFollow(FOLLOW_annotations_in_method1070);
+ annotations71=annotations();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ MethodImplementation methodImplementation = null;
+ List<BuilderTryBlock> tryBlocks = catches69;
+
+ boolean isAbstract = false;
+ boolean isNative = false;
+
+ if ((accessFlags & AccessFlags.ABSTRACT.getValue()) != 0) {
+ isAbstract = true;
+ } else if ((accessFlags & AccessFlags.NATIVE.getValue()) != 0) {
+ isNative = true;
+ }
+
+ methodImplementation = method_stack.peek().methodBuilder.getMethodImplementation();
+
+ if (Iterables.isEmpty(methodImplementation.getInstructions())) {
+ if (!isAbstract && !isNative) {
+ throw new SemanticException(input, I_METHOD70, "A non-abstract/non-native method must have at least 1 instruction");
+ }
+
+ String methodType;
+ if (isAbstract) {
+ methodType = "an abstract";
+ } else {
+ methodType = "a native";
+ }
+
+ if ((registers_directive68!=null?((CommonTree)registers_directive68.start):null) != null) {
+ if ((registers_directive68!=null?((smaliTreeWalker.registers_directive_return)registers_directive68).isLocalsDirective:false)) {
+ throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "A .locals directive is not valid in %s method", methodType);
+ } else {
+ throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "A .registers directive is not valid in %s method", methodType);
+ }
+ }
+
+ if (methodImplementation.getTryBlocks().size() > 0) {
+ throw new SemanticException(input, I_METHOD70, "try/catch blocks cannot be present in %s method", methodType);
+ }
+
+ if (!Iterables.isEmpty(methodImplementation.getDebugItems())) {
+ throw new SemanticException(input, I_METHOD70, "debug directives cannot be present in %s method", methodType);
+ }
+
+ methodImplementation = null;
+ } else {
+ if (isAbstract) {
+ throw new SemanticException(input, I_METHOD70, "An abstract method cannot have any instructions");
+ }
+ if (isNative) {
+ throw new SemanticException(input, I_METHOD70, "A native method cannot have any instructions");
+ }
+
+ if ((registers_directive68!=null?((CommonTree)registers_directive68.start):null) == null) {
+ throw new SemanticException(input, I_METHOD70, "A .registers or .locals directive must be present for a non-abstract/non-final method");
+ }
+
+ if (method_stack.peek().totalMethodRegisters < method_stack.peek().methodParameterRegisters) {
+ throw new SemanticException(input, (registers_directive68!=null?((CommonTree)registers_directive68.start):null), "This method requires at least " +
+ Integer.toString(method_stack.peek().methodParameterRegisters) +
+ " registers, for the method parameters");
+ }
+ }
+
+ ret = dexBuilder.internMethod(
+ classType,
+ (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).name:null),
+ (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).parameters:null),
+ (method_name_and_prototype67!=null?((smaliTreeWalker.method_name_and_prototype_return)method_name_and_prototype67).returnType:null),
+ accessFlags,
+ annotations71,
+ methodImplementation);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ method_stack.pop();
+ }
+ return ret;
+ }
+ // $ANTLR end "method"
+
+
+ public static class method_prototype_return extends TreeRuleReturnScope {
+ public List<String> parameters;
+ public String returnType;
+ };
+
+
+ // $ANTLR start "method_prototype"
+ // smaliTreeWalker.g:468:1: method_prototype returns [List<String> parameters, String returnType] : ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list ) ;
+ public final smaliTreeWalker.method_prototype_return method_prototype() throws RecognitionException {
+ smaliTreeWalker.method_prototype_return retval = new smaliTreeWalker.method_prototype_return();
+ retval.start = input.LT(1);
+
+ String type_descriptor72 =null;
+ List<String> method_type_list73 =null;
+
+ try {
+ // smaliTreeWalker.g:469:3: ( ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list ) )
+ // smaliTreeWalker.g:469:5: ^( I_METHOD_PROTOTYPE ^( I_METHOD_RETURN_TYPE type_descriptor ) method_type_list )
+ {
+ match(input,I_METHOD_PROTOTYPE,FOLLOW_I_METHOD_PROTOTYPE_in_method_prototype1094);
+ match(input, Token.DOWN, null);
+ match(input,I_METHOD_RETURN_TYPE,FOLLOW_I_METHOD_RETURN_TYPE_in_method_prototype1097);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_type_descriptor_in_method_prototype1099);
+ type_descriptor72=type_descriptor();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+ pushFollow(FOLLOW_method_type_list_in_method_prototype1102);
+ method_type_list73=method_type_list();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ retval.returnType = type_descriptor72;
+ retval.parameters = method_type_list73;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "method_prototype"
+
+
+ public static class method_name_and_prototype_return extends TreeRuleReturnScope {
+ public String name;
+ public List<SmaliMethodParameter> parameters;
+ public String returnType;
+ };
+
+
+ // $ANTLR start "method_name_and_prototype"
+ // smaliTreeWalker.g:475:1: method_name_and_prototype returns [String name, List<SmaliMethodParameter> parameters, String returnType] : SIMPLE_NAME method_prototype ;
+ public final smaliTreeWalker.method_name_and_prototype_return method_name_and_prototype() throws RecognitionException {
+ smaliTreeWalker.method_name_and_prototype_return retval = new smaliTreeWalker.method_name_and_prototype_return();
+ retval.start = input.LT(1);
+
+ CommonTree SIMPLE_NAME74=null;
+ TreeRuleReturnScope method_prototype75 =null;
+
+ try {
+ // smaliTreeWalker.g:476:3: ( SIMPLE_NAME method_prototype )
+ // smaliTreeWalker.g:476:5: SIMPLE_NAME method_prototype
+ {
+ SIMPLE_NAME74=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_method_name_and_prototype1120);
+ pushFollow(FOLLOW_method_prototype_in_method_name_and_prototype1122);
+ method_prototype75=method_prototype();
+ state._fsp--;
+
+
+ retval.name = (SIMPLE_NAME74!=null?SIMPLE_NAME74.getText():null);
+ retval.parameters = Lists.newArrayList();
+
+ int paramRegister = 0;
+ for (String type: (method_prototype75!=null?((smaliTreeWalker.method_prototype_return)method_prototype75).parameters:null)) {
+ retval.parameters.add(new SmaliMethodParameter(paramRegister++, type));
+ char c = type.charAt(0);
+ if (c == 'D' || c == 'J') {
+ paramRegister++;
+ }
+ }
+ retval.returnType = (method_prototype75!=null?((smaliTreeWalker.method_prototype_return)method_prototype75).returnType:null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "method_name_and_prototype"
+
+
+
+ // $ANTLR start "method_type_list"
+ // smaliTreeWalker.g:492:1: method_type_list returns [List<String> types] : ( nonvoid_type_descriptor )* ;
+ public final List<String> method_type_list() throws RecognitionException {
+ List<String> types = null;
+
+
+ TreeRuleReturnScope nonvoid_type_descriptor76 =null;
+
+
+ types = Lists.newArrayList();
+
+ try {
+ // smaliTreeWalker.g:497:3: ( ( nonvoid_type_descriptor )* )
+ // smaliTreeWalker.g:497:5: ( nonvoid_type_descriptor )*
+ {
+ // smaliTreeWalker.g:497:5: ( nonvoid_type_descriptor )*
+ loop17:
+ while (true) {
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+ if ( (LA17_0==ARRAY_TYPE_PREFIX||LA17_0==CLASS_DESCRIPTOR||LA17_0==PRIMITIVE_TYPE) ) {
+ alt17=1;
+ }
+
+ switch (alt17) {
+ case 1 :
+ // smaliTreeWalker.g:498:7: nonvoid_type_descriptor
+ {
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_method_type_list1156);
+ nonvoid_type_descriptor76=nonvoid_type_descriptor();
+ state._fsp--;
+
+
+ types.add((nonvoid_type_descriptor76!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor76).type:null));
+
+ }
+ break;
+
+ default :
+ break loop17;
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return types;
+ }
+ // $ANTLR end "method_type_list"
+
+
+
+ // $ANTLR start "method_reference"
+ // smaliTreeWalker.g:505:1: method_reference returns [ImmutableMethodReference methodReference] : ( reference_type_descriptor )? SIMPLE_NAME method_prototype ;
+ public final ImmutableMethodReference method_reference() throws RecognitionException {
+ ImmutableMethodReference methodReference = null;
+
+
+ CommonTree SIMPLE_NAME78=null;
+ TreeRuleReturnScope reference_type_descriptor77 =null;
+ TreeRuleReturnScope method_prototype79 =null;
+
+ try {
+ // smaliTreeWalker.g:506:3: ( ( reference_type_descriptor )? SIMPLE_NAME method_prototype )
+ // smaliTreeWalker.g:506:5: ( reference_type_descriptor )? SIMPLE_NAME method_prototype
+ {
+ // smaliTreeWalker.g:506:5: ( reference_type_descriptor )?
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+ if ( (LA18_0==ARRAY_TYPE_PREFIX||LA18_0==CLASS_DESCRIPTOR) ) {
+ alt18=1;
+ }
+ switch (alt18) {
+ case 1 :
+ // smaliTreeWalker.g:506:5: reference_type_descriptor
+ {
+ pushFollow(FOLLOW_reference_type_descriptor_in_method_reference1185);
+ reference_type_descriptor77=reference_type_descriptor();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ SIMPLE_NAME78=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_method_reference1188);
+ pushFollow(FOLLOW_method_prototype_in_method_reference1190);
+ method_prototype79=method_prototype();
+ state._fsp--;
+
+
+ String type;
+ if ((reference_type_descriptor77!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor77).type:null) == null) {
+ type = classType;
+ } else {
+ type = (reference_type_descriptor77!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor77).type:null);
+ }
+ methodReference = new ImmutableMethodReference(type, (SIMPLE_NAME78!=null?SIMPLE_NAME78.getText():null),
+ (method_prototype79!=null?((smaliTreeWalker.method_prototype_return)method_prototype79).parameters:null), (method_prototype79!=null?((smaliTreeWalker.method_prototype_return)method_prototype79).returnType:null));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return methodReference;
+ }
+ // $ANTLR end "method_reference"
+
+
+
+ // $ANTLR start "field_reference"
+ // smaliTreeWalker.g:518:1: field_reference returns [ImmutableFieldReference fieldReference] : ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor ;
+ public final ImmutableFieldReference field_reference() throws RecognitionException {
+ ImmutableFieldReference fieldReference = null;
+
+
+ CommonTree SIMPLE_NAME81=null;
+ TreeRuleReturnScope reference_type_descriptor80 =null;
+ TreeRuleReturnScope nonvoid_type_descriptor82 =null;
+
+ try {
+ // smaliTreeWalker.g:519:3: ( ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor )
+ // smaliTreeWalker.g:519:5: ( reference_type_descriptor )? SIMPLE_NAME nonvoid_type_descriptor
+ {
+ // smaliTreeWalker.g:519:5: ( reference_type_descriptor )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+ if ( (LA19_0==ARRAY_TYPE_PREFIX||LA19_0==CLASS_DESCRIPTOR) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // smaliTreeWalker.g:519:5: reference_type_descriptor
+ {
+ pushFollow(FOLLOW_reference_type_descriptor_in_field_reference1207);
+ reference_type_descriptor80=reference_type_descriptor();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ SIMPLE_NAME81=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_field_reference1210);
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_field_reference1212);
+ nonvoid_type_descriptor82=nonvoid_type_descriptor();
+ state._fsp--;
+
+
+ String type;
+ if ((reference_type_descriptor80!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor80).type:null) == null) {
+ type = classType;
+ } else {
+ type = (reference_type_descriptor80!=null?((smaliTreeWalker.reference_type_descriptor_return)reference_type_descriptor80).type:null);
+ }
+ fieldReference = new ImmutableFieldReference(type, (SIMPLE_NAME81!=null?SIMPLE_NAME81.getText():null),
+ (nonvoid_type_descriptor82!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor82).type:null));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return fieldReference;
+ }
+ // $ANTLR end "field_reference"
+
+
+ public static class registers_directive_return extends TreeRuleReturnScope {
+ public boolean isLocalsDirective;
+ public int registers;
+ };
+
+
+ // $ANTLR start "registers_directive"
+ // smaliTreeWalker.g:531:1: registers_directive returns [boolean isLocalsDirective, int registers] : ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal ) ;
+ public final smaliTreeWalker.registers_directive_return registers_directive() throws RecognitionException {
+ smaliTreeWalker.registers_directive_return retval = new smaliTreeWalker.registers_directive_return();
+ retval.start = input.LT(1);
+
+ short short_integral_literal83 =0;
+
+ try {
+ // smaliTreeWalker.g:532:3: ( ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal ) )
+ // smaliTreeWalker.g:532:5: ^( ( I_REGISTERS | I_LOCALS ) short_integral_literal )
+ {
+ retval.registers = 0;
+ // smaliTreeWalker.g:533:7: ( I_REGISTERS | I_LOCALS )
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+ if ( (LA20_0==I_REGISTERS) ) {
+ alt20=1;
+ }
+ else if ( (LA20_0==I_LOCALS) ) {
+ alt20=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 0, input);
+ throw nvae;
+ }
+
+ switch (alt20) {
+ case 1 :
+ // smaliTreeWalker.g:533:9: I_REGISTERS
+ {
+ match(input,I_REGISTERS,FOLLOW_I_REGISTERS_in_registers_directive1238);
+ retval.isLocalsDirective = false;
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:534:9: I_LOCALS
+ {
+ match(input,I_LOCALS,FOLLOW_I_LOCALS_in_registers_directive1250);
+ retval.isLocalsDirective = true;
+ }
+ break;
+
+ }
+
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_short_integral_literal_in_registers_directive1268);
+ short_integral_literal83=short_integral_literal();
+ state._fsp--;
+
+ retval.registers = short_integral_literal83 & 0xFFFF;
+ match(input, Token.UP, null);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "registers_directive"
+
+
+
+ // $ANTLR start "label_def"
+ // smaliTreeWalker.g:539:1: label_def : ^( I_LABEL SIMPLE_NAME ) ;
+ public final void label_def() throws RecognitionException {
+ CommonTree SIMPLE_NAME84=null;
+
+ try {
+ // smaliTreeWalker.g:540:3: ( ^( I_LABEL SIMPLE_NAME ) )
+ // smaliTreeWalker.g:540:5: ^( I_LABEL SIMPLE_NAME )
+ {
+ match(input,I_LABEL,FOLLOW_I_LABEL_in_label_def1288);
+ match(input, Token.DOWN, null);
+ SIMPLE_NAME84=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_label_def1290);
+ match(input, Token.UP, null);
+
+
+ method_stack.peek().methodBuilder.addLabel((SIMPLE_NAME84!=null?SIMPLE_NAME84.getText():null));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "label_def"
+
+
+
+ // $ANTLR start "catches"
+ // smaliTreeWalker.g:545:1: catches returns [List<BuilderTryBlock> tryBlocks] : ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) ;
+ public final List<BuilderTryBlock> catches() throws RecognitionException {
+ List<BuilderTryBlock> tryBlocks = null;
+
+
+ tryBlocks = Lists.newArrayList();
+ try {
+ // smaliTreeWalker.g:547:3: ( ^( I_CATCHES ( catch_directive )* ( catchall_directive )* ) )
+ // smaliTreeWalker.g:547:5: ^( I_CATCHES ( catch_directive )* ( catchall_directive )* )
+ {
+ match(input,I_CATCHES,FOLLOW_I_CATCHES_in_catches1316);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:547:17: ( catch_directive )*
+ loop21:
+ while (true) {
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+ if ( (LA21_0==I_CATCH) ) {
+ alt21=1;
+ }
+
+ switch (alt21) {
+ case 1 :
+ // smaliTreeWalker.g:547:17: catch_directive
+ {
+ pushFollow(FOLLOW_catch_directive_in_catches1318);
+ catch_directive();
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop21;
+ }
+ }
+
+ // smaliTreeWalker.g:547:34: ( catchall_directive )*
+ loop22:
+ while (true) {
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+ if ( (LA22_0==I_CATCHALL) ) {
+ alt22=1;
+ }
+
+ switch (alt22) {
+ case 1 :
+ // smaliTreeWalker.g:547:34: catchall_directive
+ {
+ pushFollow(FOLLOW_catchall_directive_in_catches1321);
+ catchall_directive();
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop22;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return tryBlocks;
+ }
+ // $ANTLR end "catches"
+
+
+
+ // $ANTLR start "catch_directive"
+ // smaliTreeWalker.g:549:1: catch_directive : ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref ) ;
+ public final void catch_directive() throws RecognitionException {
+ Label from =null;
+ Label to =null;
+ Label using =null;
+ TreeRuleReturnScope nonvoid_type_descriptor85 =null;
+
+ try {
+ // smaliTreeWalker.g:550:3: ( ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref ) )
+ // smaliTreeWalker.g:550:5: ^( I_CATCH nonvoid_type_descriptor from= label_ref to= label_ref using= label_ref )
+ {
+ match(input,I_CATCH,FOLLOW_I_CATCH_in_catch_directive1334);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive1336);
+ nonvoid_type_descriptor85=nonvoid_type_descriptor();
+ state._fsp--;
+
+ pushFollow(FOLLOW_label_ref_in_catch_directive1340);
+ from=label_ref();
+ state._fsp--;
+
+ pushFollow(FOLLOW_label_ref_in_catch_directive1344);
+ to=label_ref();
+ state._fsp--;
+
+ pushFollow(FOLLOW_label_ref_in_catch_directive1348);
+ using=label_ref();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ method_stack.peek().methodBuilder.addCatch(dexBuilder.internTypeReference((nonvoid_type_descriptor85!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor85).type:null)),
+ from, to, using);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "catch_directive"
+
+
+
+ // $ANTLR start "catchall_directive"
+ // smaliTreeWalker.g:556:1: catchall_directive : ^( I_CATCHALL from= label_ref to= label_ref using= label_ref ) ;
+ public final void catchall_directive() throws RecognitionException {
+ Label from =null;
+ Label to =null;
+ Label using =null;
+
+ try {
+ // smaliTreeWalker.g:557:3: ( ^( I_CATCHALL from= label_ref to= label_ref using= label_ref ) )
+ // smaliTreeWalker.g:557:5: ^( I_CATCHALL from= label_ref to= label_ref using= label_ref )
+ {
+ match(input,I_CATCHALL,FOLLOW_I_CATCHALL_in_catchall_directive1364);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_label_ref_in_catchall_directive1368);
+ from=label_ref();
+ state._fsp--;
+
+ pushFollow(FOLLOW_label_ref_in_catchall_directive1372);
+ to=label_ref();
+ state._fsp--;
+
+ pushFollow(FOLLOW_label_ref_in_catchall_directive1376);
+ using=label_ref();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ method_stack.peek().methodBuilder.addCatch(from, to, using);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "catchall_directive"
+
+
+
+ // $ANTLR start "parameters"
+ // smaliTreeWalker.g:562:1: parameters[List<SmaliMethodParameter> parameters] : ^( I_PARAMETERS ( parameter[parameters] )* ) ;
+ public final void parameters(List<SmaliMethodParameter> parameters) throws RecognitionException {
+ try {
+ // smaliTreeWalker.g:563:3: ( ^( I_PARAMETERS ( parameter[parameters] )* ) )
+ // smaliTreeWalker.g:563:5: ^( I_PARAMETERS ( parameter[parameters] )* )
+ {
+ match(input,I_PARAMETERS,FOLLOW_I_PARAMETERS_in_parameters1393);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:563:20: ( parameter[parameters] )*
+ loop23:
+ while (true) {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+ if ( (LA23_0==I_PARAMETER) ) {
+ alt23=1;
+ }
+
+ switch (alt23) {
+ case 1 :
+ // smaliTreeWalker.g:563:21: parameter[parameters]
+ {
+ pushFollow(FOLLOW_parameter_in_parameters1396);
+ parameter(parameters);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop23;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "parameters"
+
+
+
+ // $ANTLR start "parameter"
+ // smaliTreeWalker.g:565:1: parameter[List<SmaliMethodParameter> parameters] : ^( I_PARAMETER REGISTER ( string_literal )? annotations ) ;
+ public final void parameter(List<SmaliMethodParameter> parameters) throws RecognitionException {
+ CommonTree REGISTER86=null;
+ CommonTree I_PARAMETER87=null;
+ String string_literal88 =null;
+ Set<Annotation> annotations89 =null;
+
+ try {
+ // smaliTreeWalker.g:566:3: ( ^( I_PARAMETER REGISTER ( string_literal )? annotations ) )
+ // smaliTreeWalker.g:566:5: ^( I_PARAMETER REGISTER ( string_literal )? annotations )
+ {
+ I_PARAMETER87=(CommonTree)match(input,I_PARAMETER,FOLLOW_I_PARAMETER_in_parameter1412);
+ match(input, Token.DOWN, null);
+ REGISTER86=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_parameter1414);
+ // smaliTreeWalker.g:566:28: ( string_literal )?
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+ if ( (LA24_0==STRING_LITERAL) ) {
+ alt24=1;
+ }
+ switch (alt24) {
+ case 1 :
+ // smaliTreeWalker.g:566:28: string_literal
+ {
+ pushFollow(FOLLOW_string_literal_in_parameter1416);
+ string_literal88=string_literal();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_annotations_in_parameter1419);
+ annotations89=annotations();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ final int registerNumber = parseRegister_short((REGISTER86!=null?REGISTER86.getText():null));
+ int totalMethodRegisters = method_stack.peek().totalMethodRegisters;
+ int methodParameterRegisters = method_stack.peek().methodParameterRegisters;
+
+ if (registerNumber >= totalMethodRegisters) {
+ throw new SemanticException(input, I_PARAMETER87, "Register %s is larger than the maximum register v%d " +
+ "for this method", (REGISTER86!=null?REGISTER86.getText():null), totalMethodRegisters-1);
+ }
+ final int indexGuess = registerNumber - (totalMethodRegisters - methodParameterRegisters) - (method_stack.peek().isStatic?0:1);
+
+ if (indexGuess < 0) {
+ throw new SemanticException(input, I_PARAMETER87, "Register %s is not a parameter register.",
+ (REGISTER86!=null?REGISTER86.getText():null));
+ }
+
+ int parameterIndex = LinearSearch.linearSearch(parameters, SmaliMethodParameter.COMPARATOR,
+ new WithRegister() { public int getRegister() { return indexGuess; } },
+ indexGuess);
+
+ if (parameterIndex < 0) {
+ throw new SemanticException(input, I_PARAMETER87, "Register %s is the second half of a wide parameter.",
+ (REGISTER86!=null?REGISTER86.getText():null));
+ }
+
+ SmaliMethodParameter methodParameter = parameters.get(parameterIndex);
+ methodParameter.name = string_literal88;
+ if (annotations89 != null && annotations89.size() > 0) {
+ methodParameter.annotations = annotations89;
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "parameter"
+
+
+
+ // $ANTLR start "debug_directive"
+ // smaliTreeWalker.g:599:1: debug_directive : ( line | local | end_local | restart_local | prologue | epilogue | source );
+ public final void debug_directive() throws RecognitionException {
+ try {
+ // smaliTreeWalker.g:600:3: ( line | local | end_local | restart_local | prologue | epilogue | source )
+ int alt25=7;
+ switch ( input.LA(1) ) {
+ case I_LINE:
+ {
+ alt25=1;
+ }
+ break;
+ case I_LOCAL:
+ {
+ alt25=2;
+ }
+ break;
+ case I_END_LOCAL:
+ {
+ alt25=3;
+ }
+ break;
+ case I_RESTART_LOCAL:
+ {
+ alt25=4;
+ }
+ break;
+ case I_PROLOGUE:
+ {
+ alt25=5;
+ }
+ break;
+ case I_EPILOGUE:
+ {
+ alt25=6;
+ }
+ break;
+ case I_SOURCE:
+ {
+ alt25=7;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 25, 0, input);
+ throw nvae;
+ }
+ switch (alt25) {
+ case 1 :
+ // smaliTreeWalker.g:600:5: line
+ {
+ pushFollow(FOLLOW_line_in_debug_directive1436);
+ line();
+ state._fsp--;
+
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:601:5: local
+ {
+ pushFollow(FOLLOW_local_in_debug_directive1442);
+ local();
+ state._fsp--;
+
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:602:5: end_local
+ {
+ pushFollow(FOLLOW_end_local_in_debug_directive1448);
+ end_local();
+ state._fsp--;
+
+ }
+ break;
+ case 4 :
+ // smaliTreeWalker.g:603:5: restart_local
+ {
+ pushFollow(FOLLOW_restart_local_in_debug_directive1454);
+ restart_local();
+ state._fsp--;
+
+ }
+ break;
+ case 5 :
+ // smaliTreeWalker.g:604:5: prologue
+ {
+ pushFollow(FOLLOW_prologue_in_debug_directive1460);
+ prologue();
+ state._fsp--;
+
+ }
+ break;
+ case 6 :
+ // smaliTreeWalker.g:605:5: epilogue
+ {
+ pushFollow(FOLLOW_epilogue_in_debug_directive1466);
+ epilogue();
+ state._fsp--;
+
+ }
+ break;
+ case 7 :
+ // smaliTreeWalker.g:606:5: source
+ {
+ pushFollow(FOLLOW_source_in_debug_directive1472);
+ source();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "debug_directive"
+
+
+
+ // $ANTLR start "line"
+ // smaliTreeWalker.g:608:1: line : ^( I_LINE integral_literal ) ;
+ public final void line() throws RecognitionException {
+ int integral_literal90 =0;
+
+ try {
+ // smaliTreeWalker.g:609:3: ( ^( I_LINE integral_literal ) )
+ // smaliTreeWalker.g:609:5: ^( I_LINE integral_literal )
+ {
+ match(input,I_LINE,FOLLOW_I_LINE_in_line1483);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_integral_literal_in_line1485);
+ integral_literal90=integral_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ method_stack.peek().methodBuilder.addLineNumber(integral_literal90);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "line"
+
+
+
+ // $ANTLR start "local"
+ // smaliTreeWalker.g:614:1: local : ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? ) ;
+ public final void local() throws RecognitionException {
+ CommonTree REGISTER91=null;
+ String name =null;
+ String signature =null;
+ TreeRuleReturnScope nonvoid_type_descriptor92 =null;
+
+ try {
+ // smaliTreeWalker.g:615:3: ( ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? ) )
+ // smaliTreeWalker.g:615:5: ^( I_LOCAL REGISTER ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )? )
+ {
+ match(input,I_LOCAL,FOLLOW_I_LOCAL_in_local1503);
+ match(input, Token.DOWN, null);
+ REGISTER91=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_local1505);
+ // smaliTreeWalker.g:615:24: ( ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )? )?
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+ if ( (LA29_0==NULL_LITERAL||LA29_0==STRING_LITERAL) ) {
+ alt29=1;
+ }
+ switch (alt29) {
+ case 1 :
+ // smaliTreeWalker.g:615:25: ( NULL_LITERAL |name= string_literal ) ( nonvoid_type_descriptor )? (signature= string_literal )?
+ {
+ // smaliTreeWalker.g:615:25: ( NULL_LITERAL |name= string_literal )
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+ if ( (LA26_0==NULL_LITERAL) ) {
+ alt26=1;
+ }
+ else if ( (LA26_0==STRING_LITERAL) ) {
+ alt26=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 26, 0, input);
+ throw nvae;
+ }
+
+ switch (alt26) {
+ case 1 :
+ // smaliTreeWalker.g:615:26: NULL_LITERAL
+ {
+ match(input,NULL_LITERAL,FOLLOW_NULL_LITERAL_in_local1509);
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:615:41: name= string_literal
+ {
+ pushFollow(FOLLOW_string_literal_in_local1515);
+ name=string_literal();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // smaliTreeWalker.g:615:62: ( nonvoid_type_descriptor )?
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+ if ( (LA27_0==ARRAY_TYPE_PREFIX||LA27_0==CLASS_DESCRIPTOR||LA27_0==PRIMITIVE_TYPE) ) {
+ alt27=1;
+ }
+ switch (alt27) {
+ case 1 :
+ // smaliTreeWalker.g:615:62: nonvoid_type_descriptor
+ {
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_local1518);
+ nonvoid_type_descriptor92=nonvoid_type_descriptor();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // smaliTreeWalker.g:615:96: (signature= string_literal )?
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+ if ( (LA28_0==STRING_LITERAL) ) {
+ alt28=1;
+ }
+ switch (alt28) {
+ case 1 :
+ // smaliTreeWalker.g:615:96: signature= string_literal
+ {
+ pushFollow(FOLLOW_string_literal_in_local1523);
+ signature=string_literal();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+
+ match(input, Token.UP, null);
+
+
+ int registerNumber = parseRegister_short((REGISTER91!=null?REGISTER91.getText():null));
+ method_stack.peek().methodBuilder.addStartLocal(registerNumber,
+ dexBuilder.internNullableStringReference(name),
+ dexBuilder.internNullableTypeReference((nonvoid_type_descriptor92!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor92).type:null)),
+ dexBuilder.internNullableStringReference(signature));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "local"
+
+
+
+ // $ANTLR start "end_local"
+ // smaliTreeWalker.g:624:1: end_local : ^( I_END_LOCAL REGISTER ) ;
+ public final void end_local() throws RecognitionException {
+ CommonTree REGISTER93=null;
+
+ try {
+ // smaliTreeWalker.g:625:3: ( ^( I_END_LOCAL REGISTER ) )
+ // smaliTreeWalker.g:625:5: ^( I_END_LOCAL REGISTER )
+ {
+ match(input,I_END_LOCAL,FOLLOW_I_END_LOCAL_in_end_local1544);
+ match(input, Token.DOWN, null);
+ REGISTER93=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_end_local1546);
+ match(input, Token.UP, null);
+
+
+ int registerNumber = parseRegister_short((REGISTER93!=null?REGISTER93.getText():null));
+ method_stack.peek().methodBuilder.addEndLocal(registerNumber);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "end_local"
+
+
+
+ // $ANTLR start "restart_local"
+ // smaliTreeWalker.g:631:1: restart_local : ^( I_RESTART_LOCAL REGISTER ) ;
+ public final void restart_local() throws RecognitionException {
+ CommonTree REGISTER94=null;
+
+ try {
+ // smaliTreeWalker.g:632:3: ( ^( I_RESTART_LOCAL REGISTER ) )
+ // smaliTreeWalker.g:632:5: ^( I_RESTART_LOCAL REGISTER )
+ {
+ match(input,I_RESTART_LOCAL,FOLLOW_I_RESTART_LOCAL_in_restart_local1564);
+ match(input, Token.DOWN, null);
+ REGISTER94=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_restart_local1566);
+ match(input, Token.UP, null);
+
+
+ int registerNumber = parseRegister_short((REGISTER94!=null?REGISTER94.getText():null));
+ method_stack.peek().methodBuilder.addRestartLocal(registerNumber);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "restart_local"
+
+
+
+ // $ANTLR start "prologue"
+ // smaliTreeWalker.g:638:1: prologue : I_PROLOGUE ;
+ public final void prologue() throws RecognitionException {
+ try {
+ // smaliTreeWalker.g:639:3: ( I_PROLOGUE )
+ // smaliTreeWalker.g:639:5: I_PROLOGUE
+ {
+ match(input,I_PROLOGUE,FOLLOW_I_PROLOGUE_in_prologue1583);
+
+ method_stack.peek().methodBuilder.addPrologue();
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "prologue"
+
+
+
+ // $ANTLR start "epilogue"
+ // smaliTreeWalker.g:644:1: epilogue : I_EPILOGUE ;
+ public final void epilogue() throws RecognitionException {
+ try {
+ // smaliTreeWalker.g:645:3: ( I_EPILOGUE )
+ // smaliTreeWalker.g:645:5: I_EPILOGUE
+ {
+ match(input,I_EPILOGUE,FOLLOW_I_EPILOGUE_in_epilogue1599);
+
+ method_stack.peek().methodBuilder.addEpilogue();
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "epilogue"
+
+
+
+ // $ANTLR start "source"
+ // smaliTreeWalker.g:650:1: source : ^( I_SOURCE ( string_literal )? ) ;
+ public final void source() throws RecognitionException {
+ String string_literal95 =null;
+
+ try {
+ // smaliTreeWalker.g:651:3: ( ^( I_SOURCE ( string_literal )? ) )
+ // smaliTreeWalker.g:651:5: ^( I_SOURCE ( string_literal )? )
+ {
+ match(input,I_SOURCE,FOLLOW_I_SOURCE_in_source1616);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:651:16: ( string_literal )?
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+ if ( (LA30_0==STRING_LITERAL) ) {
+ alt30=1;
+ }
+ switch (alt30) {
+ case 1 :
+ // smaliTreeWalker.g:651:16: string_literal
+ {
+ pushFollow(FOLLOW_string_literal_in_source1618);
+ string_literal95=string_literal();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ match(input, Token.UP, null);
+ }
+
+
+ method_stack.peek().methodBuilder.addSetSourceFile(dexBuilder.internNullableStringReference(string_literal95));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "source"
+
+
+
+ // $ANTLR start "ordered_method_items"
+ // smaliTreeWalker.g:656:1: ordered_method_items : ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* ) ;
+ public final void ordered_method_items() throws RecognitionException {
+ try {
+ // smaliTreeWalker.g:657:3: ( ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* ) )
+ // smaliTreeWalker.g:657:5: ^( I_ORDERED_METHOD_ITEMS ( label_def | instruction | debug_directive )* )
+ {
+ match(input,I_ORDERED_METHOD_ITEMS,FOLLOW_I_ORDERED_METHOD_ITEMS_in_ordered_method_items1637);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:657:30: ( label_def | instruction | debug_directive )*
+ loop31:
+ while (true) {
+ int alt31=4;
+ switch ( input.LA(1) ) {
+ case I_LABEL:
+ {
+ alt31=1;
+ }
+ break;
+ case I_STATEMENT_ARRAY_DATA:
+ case I_STATEMENT_FORMAT10t:
+ case I_STATEMENT_FORMAT10x:
+ case I_STATEMENT_FORMAT11n:
+ case I_STATEMENT_FORMAT11x:
+ case I_STATEMENT_FORMAT12x:
+ case I_STATEMENT_FORMAT20bc:
+ case I_STATEMENT_FORMAT20t:
+ case I_STATEMENT_FORMAT21c_FIELD:
+ case I_STATEMENT_FORMAT21c_STRING:
+ case I_STATEMENT_FORMAT21c_TYPE:
+ case I_STATEMENT_FORMAT21ih:
+ case I_STATEMENT_FORMAT21lh:
+ case I_STATEMENT_FORMAT21s:
+ case I_STATEMENT_FORMAT21t:
+ case I_STATEMENT_FORMAT22b:
+ case I_STATEMENT_FORMAT22c_FIELD:
+ case I_STATEMENT_FORMAT22c_TYPE:
+ case I_STATEMENT_FORMAT22s:
+ case I_STATEMENT_FORMAT22t:
+ case I_STATEMENT_FORMAT22x:
+ case I_STATEMENT_FORMAT23x:
+ case I_STATEMENT_FORMAT30t:
+ case I_STATEMENT_FORMAT31c:
+ case I_STATEMENT_FORMAT31i:
+ case I_STATEMENT_FORMAT31t:
+ case I_STATEMENT_FORMAT32x:
+ case I_STATEMENT_FORMAT35c_METHOD:
+ case I_STATEMENT_FORMAT35c_TYPE:
+ case I_STATEMENT_FORMAT3rc_METHOD:
+ case I_STATEMENT_FORMAT3rc_TYPE:
+ case I_STATEMENT_FORMAT45cc_METHOD:
+ case I_STATEMENT_FORMAT4rcc_METHOD:
+ case I_STATEMENT_FORMAT51l:
+ case I_STATEMENT_PACKED_SWITCH:
+ case I_STATEMENT_SPARSE_SWITCH:
+ {
+ alt31=2;
+ }
+ break;
+ case I_END_LOCAL:
+ case I_EPILOGUE:
+ case I_LINE:
+ case I_LOCAL:
+ case I_PROLOGUE:
+ case I_RESTART_LOCAL:
+ case I_SOURCE:
+ {
+ alt31=3;
+ }
+ break;
+ }
+ switch (alt31) {
+ case 1 :
+ // smaliTreeWalker.g:657:31: label_def
+ {
+ pushFollow(FOLLOW_label_def_in_ordered_method_items1640);
+ label_def();
+ state._fsp--;
+
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:657:43: instruction
+ {
+ pushFollow(FOLLOW_instruction_in_ordered_method_items1644);
+ instruction();
+ state._fsp--;
+
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:657:57: debug_directive
+ {
+ pushFollow(FOLLOW_debug_directive_in_ordered_method_items1648);
+ debug_directive();
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop31;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "ordered_method_items"
+
+
+
+ // $ANTLR start "label_ref"
+ // smaliTreeWalker.g:659:1: label_ref returns [Label label] : SIMPLE_NAME ;
+ public final Label label_ref() throws RecognitionException {
+ Label label = null;
+
+
+ CommonTree SIMPLE_NAME96=null;
+
+ try {
+ // smaliTreeWalker.g:660:3: ( SIMPLE_NAME )
+ // smaliTreeWalker.g:660:5: SIMPLE_NAME
+ {
+ SIMPLE_NAME96=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_label_ref1664);
+ label = method_stack.peek().methodBuilder.getLabel((SIMPLE_NAME96!=null?SIMPLE_NAME96.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return label;
+ }
+ // $ANTLR end "label_ref"
+
+
+ public static class register_list_return extends TreeRuleReturnScope {
+ public byte[] registers;
+ public byte registerCount;
+ };
+
+
+ // $ANTLR start "register_list"
+ // smaliTreeWalker.g:662:1: register_list returns [byte[] registers, byte registerCount] : ^( I_REGISTER_LIST ( REGISTER )* ) ;
+ public final smaliTreeWalker.register_list_return register_list() throws RecognitionException {
+ smaliTreeWalker.register_list_return retval = new smaliTreeWalker.register_list_return();
+ retval.start = input.LT(1);
+
+ CommonTree I_REGISTER_LIST97=null;
+ CommonTree REGISTER98=null;
+
+
+ retval.registers = new byte[5];
+ retval.registerCount = 0;
+
+ try {
+ // smaliTreeWalker.g:668:3: ( ^( I_REGISTER_LIST ( REGISTER )* ) )
+ // smaliTreeWalker.g:668:5: ^( I_REGISTER_LIST ( REGISTER )* )
+ {
+ I_REGISTER_LIST97=(CommonTree)match(input,I_REGISTER_LIST,FOLLOW_I_REGISTER_LIST_in_register_list1689);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:669:7: ( REGISTER )*
+ loop32:
+ while (true) {
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+ if ( (LA32_0==REGISTER) ) {
+ alt32=1;
+ }
+
+ switch (alt32) {
+ case 1 :
+ // smaliTreeWalker.g:669:8: REGISTER
+ {
+ REGISTER98=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_list1698);
+
+ if (retval.registerCount == 5) {
+ throw new SemanticException(input, I_REGISTER_LIST97, "A list of registers can only have a maximum of 5 " +
+ "registers. Use the <op>/range alternate opcode instead.");
+ }
+ retval.registers[retval.registerCount++] = parseRegister_nibble((REGISTER98!=null?REGISTER98.getText():null));
+
+ }
+ break;
+
+ default :
+ break loop32;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "register_list"
+
+
+ public static class register_range_return extends TreeRuleReturnScope {
+ public int startRegister;
+ public int endRegister;
+ };
+
+
+ // $ANTLR start "register_range"
+ // smaliTreeWalker.g:678:1: register_range returns [int startRegister, int endRegister] : ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? ) ;
+ public final smaliTreeWalker.register_range_return register_range() throws RecognitionException {
+ smaliTreeWalker.register_range_return retval = new smaliTreeWalker.register_range_return();
+ retval.start = input.LT(1);
+
+ CommonTree startReg=null;
+ CommonTree endReg=null;
+ CommonTree I_REGISTER_RANGE99=null;
+
+ try {
+ // smaliTreeWalker.g:679:3: ( ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? ) )
+ // smaliTreeWalker.g:679:5: ^( I_REGISTER_RANGE (startReg= REGISTER (endReg= REGISTER )? )? )
+ {
+ I_REGISTER_RANGE99=(CommonTree)match(input,I_REGISTER_RANGE,FOLLOW_I_REGISTER_RANGE_in_register_range1723);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:679:24: (startReg= REGISTER (endReg= REGISTER )? )?
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+ if ( (LA34_0==REGISTER) ) {
+ alt34=1;
+ }
+ switch (alt34) {
+ case 1 :
+ // smaliTreeWalker.g:679:25: startReg= REGISTER (endReg= REGISTER )?
+ {
+ startReg=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_range1728);
+ // smaliTreeWalker.g:679:49: (endReg= REGISTER )?
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+ if ( (LA33_0==REGISTER) ) {
+ alt33=1;
+ }
+ switch (alt33) {
+ case 1 :
+ // smaliTreeWalker.g:679:49: endReg= REGISTER
+ {
+ endReg=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_register_range1732);
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+
+ match(input, Token.UP, null);
+ }
+
+
+ if (startReg == null) {
+ retval.startRegister = 0;
+ retval.endRegister = -1;
+ } else {
+ retval.startRegister = parseRegister_short((startReg!=null?startReg.getText():null));
+ if (endReg == null) {
+ retval.endRegister = retval.startRegister;
+ } else {
+ retval.endRegister = parseRegister_short((endReg!=null?endReg.getText():null));
+ }
+
+ int registerCount = retval.endRegister-retval.startRegister+1;
+ if (registerCount < 1) {
+ throw new SemanticException(input, I_REGISTER_RANGE99, "A register range must have the lower register listed first");
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "register_range"
+
+
+
+ // $ANTLR start "verification_error_reference"
+ // smaliTreeWalker.g:699:1: verification_error_reference returns [ImmutableReference reference] : ( CLASS_DESCRIPTOR | field_reference | method_reference );
+ public final ImmutableReference verification_error_reference() throws RecognitionException {
+ ImmutableReference reference = null;
+
+
+ CommonTree CLASS_DESCRIPTOR100=null;
+ ImmutableFieldReference field_reference101 =null;
+ ImmutableMethodReference method_reference102 =null;
+
+ try {
+ // smaliTreeWalker.g:700:3: ( CLASS_DESCRIPTOR | field_reference | method_reference )
+ int alt35=3;
+ switch ( input.LA(1) ) {
+ case CLASS_DESCRIPTOR:
+ {
+ int LA35_1 = input.LA(2);
+ if ( (LA35_1==UP) ) {
+ alt35=1;
+ }
+ else if ( (LA35_1==SIMPLE_NAME) ) {
+ int LA35_3 = input.LA(3);
+ if ( (LA35_3==ARRAY_TYPE_PREFIX||LA35_3==CLASS_DESCRIPTOR||LA35_3==PRIMITIVE_TYPE) ) {
+ alt35=2;
+ }
+ else if ( (LA35_3==I_METHOD_PROTOTYPE) ) {
+ alt35=3;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
+ input.consume();
+ }
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case ARRAY_TYPE_PREFIX:
+ {
+ int LA35_2 = input.LA(2);
+ if ( (LA35_2==PRIMITIVE_TYPE) ) {
+ int LA35_5 = input.LA(3);
+ if ( (LA35_5==SIMPLE_NAME) ) {
+ int LA35_3 = input.LA(4);
+ if ( (LA35_3==ARRAY_TYPE_PREFIX||LA35_3==CLASS_DESCRIPTOR||LA35_3==PRIMITIVE_TYPE) ) {
+ alt35=2;
+ }
+ else if ( (LA35_3==I_METHOD_PROTOTYPE) ) {
+ alt35=3;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
+ input.consume();
+ }
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
+ input.consume();
+ }
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 5, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ else if ( (LA35_2==CLASS_DESCRIPTOR) ) {
+ int LA35_6 = input.LA(3);
+ if ( (LA35_6==SIMPLE_NAME) ) {
+ int LA35_3 = input.LA(4);
+ if ( (LA35_3==ARRAY_TYPE_PREFIX||LA35_3==CLASS_DESCRIPTOR||LA35_3==PRIMITIVE_TYPE) ) {
+ alt35=2;
+ }
+ else if ( (LA35_3==I_METHOD_PROTOTYPE) ) {
+ alt35=3;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ for (int nvaeConsume = 0; nvaeConsume < 4 - 1; nvaeConsume++) {
+ input.consume();
+ }
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
+ input.consume();
+ }
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 6, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 2, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case SIMPLE_NAME:
+ {
+ int LA35_3 = input.LA(2);
+ if ( (LA35_3==ARRAY_TYPE_PREFIX||LA35_3==CLASS_DESCRIPTOR||LA35_3==PRIMITIVE_TYPE) ) {
+ alt35=2;
+ }
+ else if ( (LA35_3==I_METHOD_PROTOTYPE) ) {
+ alt35=3;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 0, input);
+ throw nvae;
+ }
+ switch (alt35) {
+ case 1 :
+ // smaliTreeWalker.g:700:5: CLASS_DESCRIPTOR
+ {
+ CLASS_DESCRIPTOR100=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference1755);
+
+ reference = new ImmutableTypeReference((CLASS_DESCRIPTOR100!=null?CLASS_DESCRIPTOR100.getText():null));
+
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:704:5: field_reference
+ {
+ pushFollow(FOLLOW_field_reference_in_verification_error_reference1765);
+ field_reference101=field_reference();
+ state._fsp--;
+
+
+ reference = field_reference101;
+
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:708:5: method_reference
+ {
+ pushFollow(FOLLOW_method_reference_in_verification_error_reference1775);
+ method_reference102=method_reference();
+ state._fsp--;
+
+
+ reference = method_reference102;
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return reference;
+ }
+ // $ANTLR end "verification_error_reference"
+
+
+
+ // $ANTLR start "verification_error_type"
+ // smaliTreeWalker.g:713:1: verification_error_type returns [int verificationError] : VERIFICATION_ERROR_TYPE ;
+ public final int verification_error_type() throws RecognitionException {
+ int verificationError = 0;
+
+
+ CommonTree VERIFICATION_ERROR_TYPE103=null;
+
+ try {
+ // smaliTreeWalker.g:714:3: ( VERIFICATION_ERROR_TYPE )
+ // smaliTreeWalker.g:714:5: VERIFICATION_ERROR_TYPE
+ {
+ VERIFICATION_ERROR_TYPE103=(CommonTree)match(input,VERIFICATION_ERROR_TYPE,FOLLOW_VERIFICATION_ERROR_TYPE_in_verification_error_type1792);
+
+ verificationError = VerificationError.getVerificationError((VERIFICATION_ERROR_TYPE103!=null?VERIFICATION_ERROR_TYPE103.getText():null));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return verificationError;
+ }
+ // $ANTLR end "verification_error_type"
+
+
+ public static class instruction_return extends TreeRuleReturnScope {
+ };
+
+
+ // $ANTLR start "instruction"
+ // smaliTreeWalker.g:719:1: instruction : ( insn_format10t | insn_format10x | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_string | insn_format21c_type | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_type | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format3rc_method | insn_format3rc_type | insn_format45cc_method | insn_format4rcc_method | insn_format51l_type | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive );
+ public final smaliTreeWalker.instruction_return instruction() throws RecognitionException {
+ smaliTreeWalker.instruction_return retval = new smaliTreeWalker.instruction_return();
+ retval.start = input.LT(1);
+
+ try {
+ // smaliTreeWalker.g:720:3: ( insn_format10t | insn_format10x | insn_format11n | insn_format11x | insn_format12x | insn_format20bc | insn_format20t | insn_format21c_field | insn_format21c_string | insn_format21c_type | insn_format21ih | insn_format21lh | insn_format21s | insn_format21t | insn_format22b | insn_format22c_field | insn_format22c_type | insn_format22s | insn_format22t | insn_format22x | insn_format23x | insn_format30t | insn_format31c | insn_format31i | insn_format31t | insn_format32x | insn_format35c_method | insn_format35c_type | insn_format3rc_method | insn_format3rc_type | insn_format45cc_method | insn_format4rcc_method | insn_format51l_type | insn_array_data_directive | insn_packed_switch_directive | insn_sparse_switch_directive )
+ int alt36=36;
+ switch ( input.LA(1) ) {
+ case I_STATEMENT_FORMAT10t:
+ {
+ alt36=1;
+ }
+ break;
+ case I_STATEMENT_FORMAT10x:
+ {
+ alt36=2;
+ }
+ break;
+ case I_STATEMENT_FORMAT11n:
+ {
+ alt36=3;
+ }
+ break;
+ case I_STATEMENT_FORMAT11x:
+ {
+ alt36=4;
+ }
+ break;
+ case I_STATEMENT_FORMAT12x:
+ {
+ alt36=5;
+ }
+ break;
+ case I_STATEMENT_FORMAT20bc:
+ {
+ alt36=6;
+ }
+ break;
+ case I_STATEMENT_FORMAT20t:
+ {
+ alt36=7;
+ }
+ break;
+ case I_STATEMENT_FORMAT21c_FIELD:
+ {
+ alt36=8;
+ }
+ break;
+ case I_STATEMENT_FORMAT21c_STRING:
+ {
+ alt36=9;
+ }
+ break;
+ case I_STATEMENT_FORMAT21c_TYPE:
+ {
+ alt36=10;
+ }
+ break;
+ case I_STATEMENT_FORMAT21ih:
+ {
+ alt36=11;
+ }
+ break;
+ case I_STATEMENT_FORMAT21lh:
+ {
+ alt36=12;
+ }
+ break;
+ case I_STATEMENT_FORMAT21s:
+ {
+ alt36=13;
+ }
+ break;
+ case I_STATEMENT_FORMAT21t:
+ {
+ alt36=14;
+ }
+ break;
+ case I_STATEMENT_FORMAT22b:
+ {
+ alt36=15;
+ }
+ break;
+ case I_STATEMENT_FORMAT22c_FIELD:
+ {
+ alt36=16;
+ }
+ break;
+ case I_STATEMENT_FORMAT22c_TYPE:
+ {
+ alt36=17;
+ }
+ break;
+ case I_STATEMENT_FORMAT22s:
+ {
+ alt36=18;
+ }
+ break;
+ case I_STATEMENT_FORMAT22t:
+ {
+ alt36=19;
+ }
+ break;
+ case I_STATEMENT_FORMAT22x:
+ {
+ alt36=20;
+ }
+ break;
+ case I_STATEMENT_FORMAT23x:
+ {
+ alt36=21;
+ }
+ break;
+ case I_STATEMENT_FORMAT30t:
+ {
+ alt36=22;
+ }
+ break;
+ case I_STATEMENT_FORMAT31c:
+ {
+ alt36=23;
+ }
+ break;
+ case I_STATEMENT_FORMAT31i:
+ {
+ alt36=24;
+ }
+ break;
+ case I_STATEMENT_FORMAT31t:
+ {
+ alt36=25;
+ }
+ break;
+ case I_STATEMENT_FORMAT32x:
+ {
+ alt36=26;
+ }
+ break;
+ case I_STATEMENT_FORMAT35c_METHOD:
+ {
+ alt36=27;
+ }
+ break;
+ case I_STATEMENT_FORMAT35c_TYPE:
+ {
+ alt36=28;
+ }
+ break;
+ case I_STATEMENT_FORMAT3rc_METHOD:
+ {
+ alt36=29;
+ }
+ break;
+ case I_STATEMENT_FORMAT3rc_TYPE:
+ {
+ alt36=30;
+ }
+ break;
+ case I_STATEMENT_FORMAT45cc_METHOD:
+ {
+ alt36=31;
+ }
+ break;
+ case I_STATEMENT_FORMAT4rcc_METHOD:
+ {
+ alt36=32;
+ }
+ break;
+ case I_STATEMENT_FORMAT51l:
+ {
+ alt36=33;
+ }
+ break;
+ case I_STATEMENT_ARRAY_DATA:
+ {
+ alt36=34;
+ }
+ break;
+ case I_STATEMENT_PACKED_SWITCH:
+ {
+ alt36=35;
+ }
+ break;
+ case I_STATEMENT_SPARSE_SWITCH:
+ {
+ alt36=36;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 36, 0, input);
+ throw nvae;
+ }
+ switch (alt36) {
+ case 1 :
+ // smaliTreeWalker.g:720:5: insn_format10t
+ {
+ pushFollow(FOLLOW_insn_format10t_in_instruction1806);
+ insn_format10t();
+ state._fsp--;
+
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:721:5: insn_format10x
+ {
+ pushFollow(FOLLOW_insn_format10x_in_instruction1812);
+ insn_format10x();
+ state._fsp--;
+
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:722:5: insn_format11n
+ {
+ pushFollow(FOLLOW_insn_format11n_in_instruction1818);
+ insn_format11n();
+ state._fsp--;
+
+ }
+ break;
+ case 4 :
+ // smaliTreeWalker.g:723:5: insn_format11x
+ {
+ pushFollow(FOLLOW_insn_format11x_in_instruction1824);
+ insn_format11x();
+ state._fsp--;
+
+ }
+ break;
+ case 5 :
+ // smaliTreeWalker.g:724:5: insn_format12x
+ {
+ pushFollow(FOLLOW_insn_format12x_in_instruction1830);
+ insn_format12x();
+ state._fsp--;
+
+ }
+ break;
+ case 6 :
+ // smaliTreeWalker.g:725:5: insn_format20bc
+ {
+ pushFollow(FOLLOW_insn_format20bc_in_instruction1836);
+ insn_format20bc();
+ state._fsp--;
+
+ }
+ break;
+ case 7 :
+ // smaliTreeWalker.g:726:5: insn_format20t
+ {
+ pushFollow(FOLLOW_insn_format20t_in_instruction1842);
+ insn_format20t();
+ state._fsp--;
+
+ }
+ break;
+ case 8 :
+ // smaliTreeWalker.g:727:5: insn_format21c_field
+ {
+ pushFollow(FOLLOW_insn_format21c_field_in_instruction1848);
+ insn_format21c_field();
+ state._fsp--;
+
+ }
+ break;
+ case 9 :
+ // smaliTreeWalker.g:728:5: insn_format21c_string
+ {
+ pushFollow(FOLLOW_insn_format21c_string_in_instruction1854);
+ insn_format21c_string();
+ state._fsp--;
+
+ }
+ break;
+ case 10 :
+ // smaliTreeWalker.g:729:5: insn_format21c_type
+ {
+ pushFollow(FOLLOW_insn_format21c_type_in_instruction1860);
+ insn_format21c_type();
+ state._fsp--;
+
+ }
+ break;
+ case 11 :
+ // smaliTreeWalker.g:730:5: insn_format21ih
+ {
+ pushFollow(FOLLOW_insn_format21ih_in_instruction1866);
+ insn_format21ih();
+ state._fsp--;
+
+ }
+ break;
+ case 12 :
+ // smaliTreeWalker.g:731:5: insn_format21lh
+ {
+ pushFollow(FOLLOW_insn_format21lh_in_instruction1872);
+ insn_format21lh();
+ state._fsp--;
+
+ }
+ break;
+ case 13 :
+ // smaliTreeWalker.g:732:5: insn_format21s
+ {
+ pushFollow(FOLLOW_insn_format21s_in_instruction1878);
+ insn_format21s();
+ state._fsp--;
+
+ }
+ break;
+ case 14 :
+ // smaliTreeWalker.g:733:5: insn_format21t
+ {
+ pushFollow(FOLLOW_insn_format21t_in_instruction1884);
+ insn_format21t();
+ state._fsp--;
+
+ }
+ break;
+ case 15 :
+ // smaliTreeWalker.g:734:5: insn_format22b
+ {
+ pushFollow(FOLLOW_insn_format22b_in_instruction1890);
+ insn_format22b();
+ state._fsp--;
+
+ }
+ break;
+ case 16 :
+ // smaliTreeWalker.g:735:5: insn_format22c_field
+ {
+ pushFollow(FOLLOW_insn_format22c_field_in_instruction1896);
+ insn_format22c_field();
+ state._fsp--;
+
+ }
+ break;
+ case 17 :
+ // smaliTreeWalker.g:736:5: insn_format22c_type
+ {
+ pushFollow(FOLLOW_insn_format22c_type_in_instruction1902);
+ insn_format22c_type();
+ state._fsp--;
+
+ }
+ break;
+ case 18 :
+ // smaliTreeWalker.g:737:5: insn_format22s
+ {
+ pushFollow(FOLLOW_insn_format22s_in_instruction1908);
+ insn_format22s();
+ state._fsp--;
+
+ }
+ break;
+ case 19 :
+ // smaliTreeWalker.g:738:5: insn_format22t
+ {
+ pushFollow(FOLLOW_insn_format22t_in_instruction1914);
+ insn_format22t();
+ state._fsp--;
+
+ }
+ break;
+ case 20 :
+ // smaliTreeWalker.g:739:5: insn_format22x
+ {
+ pushFollow(FOLLOW_insn_format22x_in_instruction1920);
+ insn_format22x();
+ state._fsp--;
+
+ }
+ break;
+ case 21 :
+ // smaliTreeWalker.g:740:5: insn_format23x
+ {
+ pushFollow(FOLLOW_insn_format23x_in_instruction1926);
+ insn_format23x();
+ state._fsp--;
+
+ }
+ break;
+ case 22 :
+ // smaliTreeWalker.g:741:5: insn_format30t
+ {
+ pushFollow(FOLLOW_insn_format30t_in_instruction1932);
+ insn_format30t();
+ state._fsp--;
+
+ }
+ break;
+ case 23 :
+ // smaliTreeWalker.g:742:5: insn_format31c
+ {
+ pushFollow(FOLLOW_insn_format31c_in_instruction1938);
+ insn_format31c();
+ state._fsp--;
+
+ }
+ break;
+ case 24 :
+ // smaliTreeWalker.g:743:5: insn_format31i
+ {
+ pushFollow(FOLLOW_insn_format31i_in_instruction1944);
+ insn_format31i();
+ state._fsp--;
+
+ }
+ break;
+ case 25 :
+ // smaliTreeWalker.g:744:5: insn_format31t
+ {
+ pushFollow(FOLLOW_insn_format31t_in_instruction1950);
+ insn_format31t();
+ state._fsp--;
+
+ }
+ break;
+ case 26 :
+ // smaliTreeWalker.g:745:5: insn_format32x
+ {
+ pushFollow(FOLLOW_insn_format32x_in_instruction1956);
+ insn_format32x();
+ state._fsp--;
+
+ }
+ break;
+ case 27 :
+ // smaliTreeWalker.g:746:5: insn_format35c_method
+ {
+ pushFollow(FOLLOW_insn_format35c_method_in_instruction1962);
+ insn_format35c_method();
+ state._fsp--;
+
+ }
+ break;
+ case 28 :
+ // smaliTreeWalker.g:747:5: insn_format35c_type
+ {
+ pushFollow(FOLLOW_insn_format35c_type_in_instruction1968);
+ insn_format35c_type();
+ state._fsp--;
+
+ }
+ break;
+ case 29 :
+ // smaliTreeWalker.g:748:5: insn_format3rc_method
+ {
+ pushFollow(FOLLOW_insn_format3rc_method_in_instruction1974);
+ insn_format3rc_method();
+ state._fsp--;
+
+ }
+ break;
+ case 30 :
+ // smaliTreeWalker.g:749:5: insn_format3rc_type
+ {
+ pushFollow(FOLLOW_insn_format3rc_type_in_instruction1980);
+ insn_format3rc_type();
+ state._fsp--;
+
+ }
+ break;
+ case 31 :
+ // smaliTreeWalker.g:750:5: insn_format45cc_method
+ {
+ pushFollow(FOLLOW_insn_format45cc_method_in_instruction1986);
+ insn_format45cc_method();
+ state._fsp--;
+
+ }
+ break;
+ case 32 :
+ // smaliTreeWalker.g:751:5: insn_format4rcc_method
+ {
+ pushFollow(FOLLOW_insn_format4rcc_method_in_instruction1992);
+ insn_format4rcc_method();
+ state._fsp--;
+
+ }
+ break;
+ case 33 :
+ // smaliTreeWalker.g:752:5: insn_format51l_type
+ {
+ pushFollow(FOLLOW_insn_format51l_type_in_instruction1998);
+ insn_format51l_type();
+ state._fsp--;
+
+ }
+ break;
+ case 34 :
+ // smaliTreeWalker.g:753:5: insn_array_data_directive
+ {
+ pushFollow(FOLLOW_insn_array_data_directive_in_instruction2004);
+ insn_array_data_directive();
+ state._fsp--;
+
+ }
+ break;
+ case 35 :
+ // smaliTreeWalker.g:754:5: insn_packed_switch_directive
+ {
+ pushFollow(FOLLOW_insn_packed_switch_directive_in_instruction2010);
+ insn_packed_switch_directive();
+ state._fsp--;
+
+ }
+ break;
+ case 36 :
+ // smaliTreeWalker.g:755:5: insn_sparse_switch_directive
+ {
+ pushFollow(FOLLOW_insn_sparse_switch_directive_in_instruction2016);
+ insn_sparse_switch_directive();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+ }
+ catch (Exception ex) {
+
+ reportError(new SemanticException(input, ((CommonTree)retval.start), ex.getMessage()));
+ recover(input, null);
+
+ }
+
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "instruction"
+
+
+
+ // $ANTLR start "insn_format10t"
+ // smaliTreeWalker.g:761:1: insn_format10t : ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref ) ;
+ public final void insn_format10t() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT10t104=null;
+ Label label_ref105 =null;
+
+ try {
+ // smaliTreeWalker.g:762:3: ( ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref ) )
+ // smaliTreeWalker.g:763:5: ^( I_STATEMENT_FORMAT10t INSTRUCTION_FORMAT10t label_ref )
+ {
+ match(input,I_STATEMENT_FORMAT10t,FOLLOW_I_STATEMENT_FORMAT10t_in_insn_format10t2040);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT10t104=(CommonTree)match(input,INSTRUCTION_FORMAT10t,FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t2042);
+ pushFollow(FOLLOW_label_ref_in_insn_format10t2044);
+ label_ref105=label_ref();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT10t104!=null?INSTRUCTION_FORMAT10t104.getText():null));
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction10t(opcode, label_ref105));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format10t"
+
+
+
+ // $ANTLR start "insn_format10x"
+ // smaliTreeWalker.g:769:1: insn_format10x : ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x ) ;
+ public final void insn_format10x() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT10x106=null;
+
+ try {
+ // smaliTreeWalker.g:770:3: ( ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x ) )
+ // smaliTreeWalker.g:771:5: ^( I_STATEMENT_FORMAT10x INSTRUCTION_FORMAT10x )
+ {
+ match(input,I_STATEMENT_FORMAT10x,FOLLOW_I_STATEMENT_FORMAT10x_in_insn_format10x2067);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT10x106=(CommonTree)match(input,INSTRUCTION_FORMAT10x,FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x2069);
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT10x106!=null?INSTRUCTION_FORMAT10x106.getText():null));
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction10x(opcode));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format10x"
+
+
+
+ // $ANTLR start "insn_format11n"
+ // smaliTreeWalker.g:777:1: insn_format11n : ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal ) ;
+ public final void insn_format11n() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT11n107=null;
+ CommonTree REGISTER108=null;
+ short short_integral_literal109 =0;
+
+ try {
+ // smaliTreeWalker.g:778:3: ( ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal ) )
+ // smaliTreeWalker.g:779:5: ^( I_STATEMENT_FORMAT11n INSTRUCTION_FORMAT11n REGISTER short_integral_literal )
+ {
+ match(input,I_STATEMENT_FORMAT11n,FOLLOW_I_STATEMENT_FORMAT11n_in_insn_format11n2092);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT11n107=(CommonTree)match(input,INSTRUCTION_FORMAT11n,FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n2094);
+ REGISTER108=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11n2096);
+ pushFollow(FOLLOW_short_integral_literal_in_insn_format11n2098);
+ short_integral_literal109=short_integral_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT11n107!=null?INSTRUCTION_FORMAT11n107.getText():null));
+ byte regA = parseRegister_nibble((REGISTER108!=null?REGISTER108.getText():null));
+
+ short litB = short_integral_literal109;
+ LiteralTools.checkNibble(litB);
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction11n(opcode, regA, litB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format11n"
+
+
+
+ // $ANTLR start "insn_format11x"
+ // smaliTreeWalker.g:790:1: insn_format11x : ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER ) ;
+ public final void insn_format11x() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT11x110=null;
+ CommonTree REGISTER111=null;
+
+ try {
+ // smaliTreeWalker.g:791:3: ( ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER ) )
+ // smaliTreeWalker.g:792:5: ^( I_STATEMENT_FORMAT11x INSTRUCTION_FORMAT11x REGISTER )
+ {
+ match(input,I_STATEMENT_FORMAT11x,FOLLOW_I_STATEMENT_FORMAT11x_in_insn_format11x2121);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT11x110=(CommonTree)match(input,INSTRUCTION_FORMAT11x,FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x2123);
+ REGISTER111=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format11x2125);
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT11x110!=null?INSTRUCTION_FORMAT11x110.getText():null));
+ short regA = parseRegister_byte((REGISTER111!=null?REGISTER111.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction11x(opcode, regA));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format11x"
+
+
+
+ // $ANTLR start "insn_format12x"
+ // smaliTreeWalker.g:800:1: insn_format12x : ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER ) ;
+ public final void insn_format12x() throws RecognitionException {
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ CommonTree INSTRUCTION_FORMAT12x112=null;
+
+ try {
+ // smaliTreeWalker.g:801:3: ( ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER ) )
+ // smaliTreeWalker.g:802:5: ^( I_STATEMENT_FORMAT12x INSTRUCTION_FORMAT12x registerA= REGISTER registerB= REGISTER )
+ {
+ match(input,I_STATEMENT_FORMAT12x,FOLLOW_I_STATEMENT_FORMAT12x_in_insn_format12x2148);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT12x112=(CommonTree)match(input,INSTRUCTION_FORMAT12x,FOLLOW_INSTRUCTION_FORMAT12x_in_insn_format12x2150);
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x2154);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format12x2158);
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT12x112!=null?INSTRUCTION_FORMAT12x112.getText():null));
+ byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+ byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction12x(opcode, regA, regB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format12x"
+
+
+
+ // $ANTLR start "insn_format20bc"
+ // smaliTreeWalker.g:811:1: insn_format20bc : ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference ) ;
+ public final void insn_format20bc() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT20bc113=null;
+ int verification_error_type114 =0;
+ ImmutableReference verification_error_reference115 =null;
+
+ try {
+ // smaliTreeWalker.g:812:3: ( ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference ) )
+ // smaliTreeWalker.g:813:5: ^( I_STATEMENT_FORMAT20bc INSTRUCTION_FORMAT20bc verification_error_type verification_error_reference )
+ {
+ match(input,I_STATEMENT_FORMAT20bc,FOLLOW_I_STATEMENT_FORMAT20bc_in_insn_format20bc2181);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT20bc113=(CommonTree)match(input,INSTRUCTION_FORMAT20bc,FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc2183);
+ pushFollow(FOLLOW_verification_error_type_in_insn_format20bc2185);
+ verification_error_type114=verification_error_type();
+ state._fsp--;
+
+ pushFollow(FOLLOW_verification_error_reference_in_insn_format20bc2187);
+ verification_error_reference115=verification_error_reference();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT20bc113!=null?INSTRUCTION_FORMAT20bc113.getText():null));
+
+ int verificationError = verification_error_type114;
+ ImmutableReference referencedItem = verification_error_reference115;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction20bc(opcode, verificationError,
+ dexBuilder.internReference(referencedItem)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format20bc"
+
+
+
+ // $ANTLR start "insn_format20t"
+ // smaliTreeWalker.g:824:1: insn_format20t : ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref ) ;
+ public final void insn_format20t() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT20t116=null;
+ Label label_ref117 =null;
+
+ try {
+ // smaliTreeWalker.g:825:3: ( ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref ) )
+ // smaliTreeWalker.g:826:5: ^( I_STATEMENT_FORMAT20t INSTRUCTION_FORMAT20t label_ref )
+ {
+ match(input,I_STATEMENT_FORMAT20t,FOLLOW_I_STATEMENT_FORMAT20t_in_insn_format20t2210);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT20t116=(CommonTree)match(input,INSTRUCTION_FORMAT20t,FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t2212);
+ pushFollow(FOLLOW_label_ref_in_insn_format20t2214);
+ label_ref117=label_ref();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT20t116!=null?INSTRUCTION_FORMAT20t116.getText():null));
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction20t(opcode, label_ref117));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format20t"
+
+
+
+ // $ANTLR start "insn_format21c_field"
+ // smaliTreeWalker.g:832:1: insn_format21c_field : ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference ) ;
+ public final void insn_format21c_field() throws RecognitionException {
+ CommonTree inst=null;
+ CommonTree REGISTER118=null;
+ ImmutableFieldReference field_reference119 =null;
+
+ try {
+ // smaliTreeWalker.g:833:3: ( ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference ) )
+ // smaliTreeWalker.g:834:5: ^( I_STATEMENT_FORMAT21c_FIELD inst= ( INSTRUCTION_FORMAT21c_FIELD | INSTRUCTION_FORMAT21c_FIELD_ODEX ) REGISTER field_reference )
+ {
+ match(input,I_STATEMENT_FORMAT21c_FIELD,FOLLOW_I_STATEMENT_FORMAT21c_FIELD_in_insn_format21c_field2237);
+ match(input, Token.DOWN, null);
+ inst=(CommonTree)input.LT(1);
+ if ( (input.LA(1) >= INSTRUCTION_FORMAT21c_FIELD && input.LA(1) <= INSTRUCTION_FORMAT21c_FIELD_ODEX) ) {
+ input.consume();
+ state.errorRecovery=false;
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ throw mse;
+ }
+ REGISTER118=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_field2249);
+ pushFollow(FOLLOW_field_reference_in_insn_format21c_field2251);
+ field_reference119=field_reference();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null));
+ short regA = parseRegister_byte((REGISTER118!=null?REGISTER118.getText():null));
+
+ ImmutableFieldReference fieldReference = field_reference119;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
+ dexBuilder.internFieldReference(fieldReference)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format21c_field"
+
+
+
+ // $ANTLR start "insn_format21c_string"
+ // smaliTreeWalker.g:845:1: insn_format21c_string : ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal ) ;
+ public final void insn_format21c_string() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT21c_STRING120=null;
+ CommonTree REGISTER121=null;
+ String string_literal122 =null;
+
+ try {
+ // smaliTreeWalker.g:846:3: ( ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal ) )
+ // smaliTreeWalker.g:847:5: ^( I_STATEMENT_FORMAT21c_STRING INSTRUCTION_FORMAT21c_STRING REGISTER string_literal )
+ {
+ match(input,I_STATEMENT_FORMAT21c_STRING,FOLLOW_I_STATEMENT_FORMAT21c_STRING_in_insn_format21c_string2274);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT21c_STRING120=(CommonTree)match(input,INSTRUCTION_FORMAT21c_STRING,FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string2276);
+ REGISTER121=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_string2278);
+ pushFollow(FOLLOW_string_literal_in_insn_format21c_string2280);
+ string_literal122=string_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_STRING120!=null?INSTRUCTION_FORMAT21c_STRING120.getText():null));
+ short regA = parseRegister_byte((REGISTER121!=null?REGISTER121.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
+ dexBuilder.internStringReference(string_literal122)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format21c_string"
+
+
+
+ // $ANTLR start "insn_format21c_type"
+ // smaliTreeWalker.g:856:1: insn_format21c_type : ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) ;
+ public final void insn_format21c_type() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT21c_TYPE123=null;
+ CommonTree REGISTER124=null;
+ TreeRuleReturnScope nonvoid_type_descriptor125 =null;
+
+ try {
+ // smaliTreeWalker.g:857:3: ( ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor ) )
+ // smaliTreeWalker.g:858:5: ^( I_STATEMENT_FORMAT21c_TYPE INSTRUCTION_FORMAT21c_TYPE REGISTER nonvoid_type_descriptor )
+ {
+ match(input,I_STATEMENT_FORMAT21c_TYPE,FOLLOW_I_STATEMENT_FORMAT21c_TYPE_in_insn_format21c_type2303);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT21c_TYPE123=(CommonTree)match(input,INSTRUCTION_FORMAT21c_TYPE,FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type2305);
+ REGISTER124=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21c_type2307);
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type2309);
+ nonvoid_type_descriptor125=nonvoid_type_descriptor();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21c_TYPE123!=null?INSTRUCTION_FORMAT21c_TYPE123.getText():null));
+ short regA = parseRegister_byte((REGISTER124!=null?REGISTER124.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21c(opcode, regA,
+ dexBuilder.internTypeReference((nonvoid_type_descriptor125!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor125).type:null))));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format21c_type"
+
+
+
+ // $ANTLR start "insn_format21ih"
+ // smaliTreeWalker.g:867:1: insn_format21ih : ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) ;
+ public final void insn_format21ih() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT21ih126=null;
+ CommonTree REGISTER127=null;
+ int fixed_32bit_literal128 =0;
+
+ try {
+ // smaliTreeWalker.g:868:3: ( ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal ) )
+ // smaliTreeWalker.g:869:5: ^( I_STATEMENT_FORMAT21ih INSTRUCTION_FORMAT21ih REGISTER fixed_32bit_literal )
+ {
+ match(input,I_STATEMENT_FORMAT21ih,FOLLOW_I_STATEMENT_FORMAT21ih_in_insn_format21ih2332);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT21ih126=(CommonTree)match(input,INSTRUCTION_FORMAT21ih,FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih2334);
+ REGISTER127=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21ih2336);
+ pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21ih2338);
+ fixed_32bit_literal128=fixed_32bit_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21ih126!=null?INSTRUCTION_FORMAT21ih126.getText():null));
+ short regA = parseRegister_byte((REGISTER127!=null?REGISTER127.getText():null));
+
+ int litB = fixed_32bit_literal128;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21ih(opcode, regA, litB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format21ih"
+
+
+
+ // $ANTLR start "insn_format21lh"
+ // smaliTreeWalker.g:879:1: insn_format21lh : ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal ) ;
+ public final void insn_format21lh() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT21lh129=null;
+ CommonTree REGISTER130=null;
+ long fixed_64bit_literal131 =0;
+
+ try {
+ // smaliTreeWalker.g:880:3: ( ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal ) )
+ // smaliTreeWalker.g:881:5: ^( I_STATEMENT_FORMAT21lh INSTRUCTION_FORMAT21lh REGISTER fixed_64bit_literal )
+ {
+ match(input,I_STATEMENT_FORMAT21lh,FOLLOW_I_STATEMENT_FORMAT21lh_in_insn_format21lh2361);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT21lh129=(CommonTree)match(input,INSTRUCTION_FORMAT21lh,FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh2363);
+ REGISTER130=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21lh2365);
+ pushFollow(FOLLOW_fixed_64bit_literal_in_insn_format21lh2367);
+ fixed_64bit_literal131=fixed_64bit_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21lh129!=null?INSTRUCTION_FORMAT21lh129.getText():null));
+ short regA = parseRegister_byte((REGISTER130!=null?REGISTER130.getText():null));
+
+ long litB = fixed_64bit_literal131;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21lh(opcode, regA, litB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format21lh"
+
+
+
+ // $ANTLR start "insn_format21s"
+ // smaliTreeWalker.g:891:1: insn_format21s : ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal ) ;
+ public final void insn_format21s() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT21s132=null;
+ CommonTree REGISTER133=null;
+ short short_integral_literal134 =0;
+
+ try {
+ // smaliTreeWalker.g:892:3: ( ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal ) )
+ // smaliTreeWalker.g:893:5: ^( I_STATEMENT_FORMAT21s INSTRUCTION_FORMAT21s REGISTER short_integral_literal )
+ {
+ match(input,I_STATEMENT_FORMAT21s,FOLLOW_I_STATEMENT_FORMAT21s_in_insn_format21s2390);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT21s132=(CommonTree)match(input,INSTRUCTION_FORMAT21s,FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s2392);
+ REGISTER133=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21s2394);
+ pushFollow(FOLLOW_short_integral_literal_in_insn_format21s2396);
+ short_integral_literal134=short_integral_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21s132!=null?INSTRUCTION_FORMAT21s132.getText():null));
+ short regA = parseRegister_byte((REGISTER133!=null?REGISTER133.getText():null));
+
+ short litB = short_integral_literal134;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21s(opcode, regA, litB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format21s"
+
+
+
+ // $ANTLR start "insn_format21t"
+ // smaliTreeWalker.g:903:1: insn_format21t : ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref ) ;
+ public final void insn_format21t() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT21t135=null;
+ CommonTree REGISTER136=null;
+ Label label_ref137 =null;
+
+ try {
+ // smaliTreeWalker.g:904:3: ( ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref ) )
+ // smaliTreeWalker.g:905:5: ^( I_STATEMENT_FORMAT21t INSTRUCTION_FORMAT21t REGISTER label_ref )
+ {
+ match(input,I_STATEMENT_FORMAT21t,FOLLOW_I_STATEMENT_FORMAT21t_in_insn_format21t2419);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT21t135=(CommonTree)match(input,INSTRUCTION_FORMAT21t,FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t2421);
+ REGISTER136=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format21t2423);
+ pushFollow(FOLLOW_label_ref_in_insn_format21t2425);
+ label_ref137=label_ref();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT21t135!=null?INSTRUCTION_FORMAT21t135.getText():null));
+ short regA = parseRegister_byte((REGISTER136!=null?REGISTER136.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction21t(opcode, regA, label_ref137));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format21t"
+
+
+
+ // $ANTLR start "insn_format22b"
+ // smaliTreeWalker.g:913:1: insn_format22b : ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal ) ;
+ public final void insn_format22b() throws RecognitionException {
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ CommonTree INSTRUCTION_FORMAT22b138=null;
+ short short_integral_literal139 =0;
+
+ try {
+ // smaliTreeWalker.g:914:3: ( ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal ) )
+ // smaliTreeWalker.g:915:5: ^( I_STATEMENT_FORMAT22b INSTRUCTION_FORMAT22b registerA= REGISTER registerB= REGISTER short_integral_literal )
+ {
+ match(input,I_STATEMENT_FORMAT22b,FOLLOW_I_STATEMENT_FORMAT22b_in_insn_format22b2448);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT22b138=(CommonTree)match(input,INSTRUCTION_FORMAT22b,FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b2450);
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b2454);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22b2458);
+ pushFollow(FOLLOW_short_integral_literal_in_insn_format22b2460);
+ short_integral_literal139=short_integral_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22b138!=null?INSTRUCTION_FORMAT22b138.getText():null));
+ short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
+ short regB = parseRegister_byte((registerB!=null?registerB.getText():null));
+
+ short litC = short_integral_literal139;
+ LiteralTools.checkByte(litC);
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22b(opcode, regA, regB, litC));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format22b"
+
+
+
+ // $ANTLR start "insn_format22c_field"
+ // smaliTreeWalker.g:927:1: insn_format22c_field : ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference ) ;
+ public final void insn_format22c_field() throws RecognitionException {
+ CommonTree inst=null;
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ ImmutableFieldReference field_reference140 =null;
+
+ try {
+ // smaliTreeWalker.g:928:3: ( ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference ) )
+ // smaliTreeWalker.g:929:5: ^( I_STATEMENT_FORMAT22c_FIELD inst= ( INSTRUCTION_FORMAT22c_FIELD | INSTRUCTION_FORMAT22c_FIELD_ODEX ) registerA= REGISTER registerB= REGISTER field_reference )
+ {
+ match(input,I_STATEMENT_FORMAT22c_FIELD,FOLLOW_I_STATEMENT_FORMAT22c_FIELD_in_insn_format22c_field2483);
+ match(input, Token.DOWN, null);
+ inst=(CommonTree)input.LT(1);
+ if ( (input.LA(1) >= INSTRUCTION_FORMAT22c_FIELD && input.LA(1) <= INSTRUCTION_FORMAT22c_FIELD_ODEX) ) {
+ input.consume();
+ state.errorRecovery=false;
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ throw mse;
+ }
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field2497);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_field2501);
+ pushFollow(FOLLOW_field_reference_in_insn_format22c_field2503);
+ field_reference140=field_reference();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((inst!=null?inst.getText():null));
+ byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+ byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+ ImmutableFieldReference fieldReference = field_reference140;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB,
+ dexBuilder.internFieldReference(fieldReference)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format22c_field"
+
+
+
+ // $ANTLR start "insn_format22c_type"
+ // smaliTreeWalker.g:941:1: insn_format22c_type : ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor ) ;
+ public final void insn_format22c_type() throws RecognitionException {
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ CommonTree INSTRUCTION_FORMAT22c_TYPE141=null;
+ TreeRuleReturnScope nonvoid_type_descriptor142 =null;
+
+ try {
+ // smaliTreeWalker.g:942:3: ( ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor ) )
+ // smaliTreeWalker.g:943:5: ^( I_STATEMENT_FORMAT22c_TYPE INSTRUCTION_FORMAT22c_TYPE registerA= REGISTER registerB= REGISTER nonvoid_type_descriptor )
+ {
+ match(input,I_STATEMENT_FORMAT22c_TYPE,FOLLOW_I_STATEMENT_FORMAT22c_TYPE_in_insn_format22c_type2526);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT22c_TYPE141=(CommonTree)match(input,INSTRUCTION_FORMAT22c_TYPE,FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type2528);
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type2532);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22c_type2536);
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type2538);
+ nonvoid_type_descriptor142=nonvoid_type_descriptor();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22c_TYPE141!=null?INSTRUCTION_FORMAT22c_TYPE141.getText():null));
+ byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+ byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22c(opcode, regA, regB,
+ dexBuilder.internTypeReference((nonvoid_type_descriptor142!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor142).type:null))));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format22c_type"
+
+
+
+ // $ANTLR start "insn_format22s"
+ // smaliTreeWalker.g:953:1: insn_format22s : ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal ) ;
+ public final void insn_format22s() throws RecognitionException {
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ CommonTree INSTRUCTION_FORMAT22s143=null;
+ short short_integral_literal144 =0;
+
+ try {
+ // smaliTreeWalker.g:954:3: ( ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal ) )
+ // smaliTreeWalker.g:955:5: ^( I_STATEMENT_FORMAT22s INSTRUCTION_FORMAT22s registerA= REGISTER registerB= REGISTER short_integral_literal )
+ {
+ match(input,I_STATEMENT_FORMAT22s,FOLLOW_I_STATEMENT_FORMAT22s_in_insn_format22s2561);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT22s143=(CommonTree)match(input,INSTRUCTION_FORMAT22s,FOLLOW_INSTRUCTION_FORMAT22s_in_insn_format22s2563);
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s2567);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22s2571);
+ pushFollow(FOLLOW_short_integral_literal_in_insn_format22s2573);
+ short_integral_literal144=short_integral_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22s143!=null?INSTRUCTION_FORMAT22s143.getText():null));
+ byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+ byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+ short litC = short_integral_literal144;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22s(opcode, regA, regB, litC));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format22s"
+
+
+
+ // $ANTLR start "insn_format22t"
+ // smaliTreeWalker.g:966:1: insn_format22t : ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref ) ;
+ public final void insn_format22t() throws RecognitionException {
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ CommonTree INSTRUCTION_FORMAT22t145=null;
+ Label label_ref146 =null;
+
+ try {
+ // smaliTreeWalker.g:967:3: ( ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref ) )
+ // smaliTreeWalker.g:968:5: ^( I_STATEMENT_FORMAT22t INSTRUCTION_FORMAT22t registerA= REGISTER registerB= REGISTER label_ref )
+ {
+ match(input,I_STATEMENT_FORMAT22t,FOLLOW_I_STATEMENT_FORMAT22t_in_insn_format22t2596);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT22t145=(CommonTree)match(input,INSTRUCTION_FORMAT22t,FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t2598);
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t2602);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22t2606);
+ pushFollow(FOLLOW_label_ref_in_insn_format22t2608);
+ label_ref146=label_ref();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22t145!=null?INSTRUCTION_FORMAT22t145.getText():null));
+ byte regA = parseRegister_nibble((registerA!=null?registerA.getText():null));
+ byte regB = parseRegister_nibble((registerB!=null?registerB.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22t(opcode, regA, regB, label_ref146));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format22t"
+
+
+
+ // $ANTLR start "insn_format22x"
+ // smaliTreeWalker.g:977:1: insn_format22x : ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER ) ;
+ public final void insn_format22x() throws RecognitionException {
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ CommonTree INSTRUCTION_FORMAT22x147=null;
+
+ try {
+ // smaliTreeWalker.g:978:3: ( ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER ) )
+ // smaliTreeWalker.g:979:5: ^( I_STATEMENT_FORMAT22x INSTRUCTION_FORMAT22x registerA= REGISTER registerB= REGISTER )
+ {
+ match(input,I_STATEMENT_FORMAT22x,FOLLOW_I_STATEMENT_FORMAT22x_in_insn_format22x2631);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT22x147=(CommonTree)match(input,INSTRUCTION_FORMAT22x,FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x2633);
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x2637);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format22x2641);
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT22x147!=null?INSTRUCTION_FORMAT22x147.getText():null));
+ short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
+ int regB = parseRegister_short((registerB!=null?registerB.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction22x(opcode, regA, regB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format22x"
+
+
+
+ // $ANTLR start "insn_format23x"
+ // smaliTreeWalker.g:988:1: insn_format23x : ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER ) ;
+ public final void insn_format23x() throws RecognitionException {
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ CommonTree registerC=null;
+ CommonTree INSTRUCTION_FORMAT23x148=null;
+
+ try {
+ // smaliTreeWalker.g:989:3: ( ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER ) )
+ // smaliTreeWalker.g:990:5: ^( I_STATEMENT_FORMAT23x INSTRUCTION_FORMAT23x registerA= REGISTER registerB= REGISTER registerC= REGISTER )
+ {
+ match(input,I_STATEMENT_FORMAT23x,FOLLOW_I_STATEMENT_FORMAT23x_in_insn_format23x2664);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT23x148=(CommonTree)match(input,INSTRUCTION_FORMAT23x,FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x2666);
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2670);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2674);
+ registerC=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format23x2678);
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT23x148!=null?INSTRUCTION_FORMAT23x148.getText():null));
+ short regA = parseRegister_byte((registerA!=null?registerA.getText():null));
+ short regB = parseRegister_byte((registerB!=null?registerB.getText():null));
+ short regC = parseRegister_byte((registerC!=null?registerC.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction23x(opcode, regA, regB, regC));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format23x"
+
+
+
+ // $ANTLR start "insn_format30t"
+ // smaliTreeWalker.g:1000:1: insn_format30t : ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref ) ;
+ public final void insn_format30t() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT30t149=null;
+ Label label_ref150 =null;
+
+ try {
+ // smaliTreeWalker.g:1001:3: ( ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref ) )
+ // smaliTreeWalker.g:1002:5: ^( I_STATEMENT_FORMAT30t INSTRUCTION_FORMAT30t label_ref )
+ {
+ match(input,I_STATEMENT_FORMAT30t,FOLLOW_I_STATEMENT_FORMAT30t_in_insn_format30t2701);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT30t149=(CommonTree)match(input,INSTRUCTION_FORMAT30t,FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t2703);
+ pushFollow(FOLLOW_label_ref_in_insn_format30t2705);
+ label_ref150=label_ref();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT30t149!=null?INSTRUCTION_FORMAT30t149.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction30t(opcode, label_ref150));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format30t"
+
+
+
+ // $ANTLR start "insn_format31c"
+ // smaliTreeWalker.g:1009:1: insn_format31c : ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal ) ;
+ public final void insn_format31c() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT31c151=null;
+ CommonTree REGISTER152=null;
+ String string_literal153 =null;
+
+ try {
+ // smaliTreeWalker.g:1010:3: ( ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal ) )
+ // smaliTreeWalker.g:1011:5: ^( I_STATEMENT_FORMAT31c INSTRUCTION_FORMAT31c REGISTER string_literal )
+ {
+ match(input,I_STATEMENT_FORMAT31c,FOLLOW_I_STATEMENT_FORMAT31c_in_insn_format31c2728);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT31c151=(CommonTree)match(input,INSTRUCTION_FORMAT31c,FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c2730);
+ REGISTER152=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31c2732);
+ pushFollow(FOLLOW_string_literal_in_insn_format31c2734);
+ string_literal153=string_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31c151!=null?INSTRUCTION_FORMAT31c151.getText():null));
+ short regA = parseRegister_byte((REGISTER152!=null?REGISTER152.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31c(opcode, regA,
+ dexBuilder.internStringReference(string_literal153)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format31c"
+
+
+
+ // $ANTLR start "insn_format31i"
+ // smaliTreeWalker.g:1020:1: insn_format31i : ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal ) ;
+ public final void insn_format31i() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT31i154=null;
+ CommonTree REGISTER155=null;
+ int fixed_32bit_literal156 =0;
+
+ try {
+ // smaliTreeWalker.g:1021:3: ( ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal ) )
+ // smaliTreeWalker.g:1022:5: ^( I_STATEMENT_FORMAT31i INSTRUCTION_FORMAT31i REGISTER fixed_32bit_literal )
+ {
+ match(input,I_STATEMENT_FORMAT31i,FOLLOW_I_STATEMENT_FORMAT31i_in_insn_format31i2757);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT31i154=(CommonTree)match(input,INSTRUCTION_FORMAT31i,FOLLOW_INSTRUCTION_FORMAT31i_in_insn_format31i2759);
+ REGISTER155=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31i2761);
+ pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format31i2763);
+ fixed_32bit_literal156=fixed_32bit_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31i154!=null?INSTRUCTION_FORMAT31i154.getText():null));
+ short regA = parseRegister_byte((REGISTER155!=null?REGISTER155.getText():null));
+
+ int litB = fixed_32bit_literal156;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31i(opcode, regA, litB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format31i"
+
+
+
+ // $ANTLR start "insn_format31t"
+ // smaliTreeWalker.g:1032:1: insn_format31t : ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref ) ;
+ public final void insn_format31t() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT31t157=null;
+ CommonTree REGISTER158=null;
+ Label label_ref159 =null;
+
+ try {
+ // smaliTreeWalker.g:1033:3: ( ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref ) )
+ // smaliTreeWalker.g:1034:5: ^( I_STATEMENT_FORMAT31t INSTRUCTION_FORMAT31t REGISTER label_ref )
+ {
+ match(input,I_STATEMENT_FORMAT31t,FOLLOW_I_STATEMENT_FORMAT31t_in_insn_format31t2786);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT31t157=(CommonTree)match(input,INSTRUCTION_FORMAT31t,FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t2788);
+ REGISTER158=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format31t2790);
+ pushFollow(FOLLOW_label_ref_in_insn_format31t2792);
+ label_ref159=label_ref();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT31t157!=null?INSTRUCTION_FORMAT31t157.getText():null));
+
+ short regA = parseRegister_byte((REGISTER158!=null?REGISTER158.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction31t(opcode, regA, label_ref159));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format31t"
+
+
+
+ // $ANTLR start "insn_format32x"
+ // smaliTreeWalker.g:1043:1: insn_format32x : ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER ) ;
+ public final void insn_format32x() throws RecognitionException {
+ CommonTree registerA=null;
+ CommonTree registerB=null;
+ CommonTree INSTRUCTION_FORMAT32x160=null;
+
+ try {
+ // smaliTreeWalker.g:1044:3: ( ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER ) )
+ // smaliTreeWalker.g:1045:5: ^( I_STATEMENT_FORMAT32x INSTRUCTION_FORMAT32x registerA= REGISTER registerB= REGISTER )
+ {
+ match(input,I_STATEMENT_FORMAT32x,FOLLOW_I_STATEMENT_FORMAT32x_in_insn_format32x2815);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT32x160=(CommonTree)match(input,INSTRUCTION_FORMAT32x,FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x2817);
+ registerA=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x2821);
+ registerB=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format32x2825);
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT32x160!=null?INSTRUCTION_FORMAT32x160.getText():null));
+ int regA = parseRegister_short((registerA!=null?registerA.getText():null));
+ int regB = parseRegister_short((registerB!=null?registerB.getText():null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction32x(opcode, regA, regB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format32x"
+
+
+
+ // $ANTLR start "insn_format35c_method"
+ // smaliTreeWalker.g:1054:1: insn_format35c_method : ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) ;
+ public final void insn_format35c_method() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT35c_METHOD161=null;
+ TreeRuleReturnScope register_list162 =null;
+ ImmutableMethodReference method_reference163 =null;
+
+ try {
+ // smaliTreeWalker.g:1055:3: ( ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference ) )
+ // smaliTreeWalker.g:1056:5: ^( I_STATEMENT_FORMAT35c_METHOD INSTRUCTION_FORMAT35c_METHOD register_list method_reference )
+ {
+ match(input,I_STATEMENT_FORMAT35c_METHOD,FOLLOW_I_STATEMENT_FORMAT35c_METHOD_in_insn_format35c_method2848);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT35c_METHOD161=(CommonTree)match(input,INSTRUCTION_FORMAT35c_METHOD,FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method2850);
+ pushFollow(FOLLOW_register_list_in_insn_format35c_method2852);
+ register_list162=register_list();
+ state._fsp--;
+
+ pushFollow(FOLLOW_method_reference_in_insn_format35c_method2854);
+ method_reference163=method_reference();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_METHOD161!=null?INSTRUCTION_FORMAT35c_METHOD161.getText():null));
+
+ //this depends on the fact that register_list returns a byte[5]
+ byte[] registers = (register_list162!=null?((smaliTreeWalker.register_list_return)register_list162).registers:null);
+ byte registerCount = (register_list162!=null?((smaliTreeWalker.register_list_return)register_list162).registerCount:0);
+
+ ImmutableMethodReference methodReference = method_reference163;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0], registers[1],
+ registers[2], registers[3], registers[4], dexBuilder.internMethodReference(methodReference)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format35c_method"
+
+
+
+ // $ANTLR start "insn_format35c_type"
+ // smaliTreeWalker.g:1070:1: insn_format35c_type : ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) ;
+ public final void insn_format35c_type() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT35c_TYPE164=null;
+ TreeRuleReturnScope register_list165 =null;
+ TreeRuleReturnScope nonvoid_type_descriptor166 =null;
+
+ try {
+ // smaliTreeWalker.g:1071:3: ( ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor ) )
+ // smaliTreeWalker.g:1072:5: ^( I_STATEMENT_FORMAT35c_TYPE INSTRUCTION_FORMAT35c_TYPE register_list nonvoid_type_descriptor )
+ {
+ match(input,I_STATEMENT_FORMAT35c_TYPE,FOLLOW_I_STATEMENT_FORMAT35c_TYPE_in_insn_format35c_type2877);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT35c_TYPE164=(CommonTree)match(input,INSTRUCTION_FORMAT35c_TYPE,FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type2879);
+ pushFollow(FOLLOW_register_list_in_insn_format35c_type2881);
+ register_list165=register_list();
+ state._fsp--;
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type2883);
+ nonvoid_type_descriptor166=nonvoid_type_descriptor();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT35c_TYPE164!=null?INSTRUCTION_FORMAT35c_TYPE164.getText():null));
+
+ //this depends on the fact that register_list returns a byte[5]
+ byte[] registers = (register_list165!=null?((smaliTreeWalker.register_list_return)register_list165).registers:null);
+ byte registerCount = (register_list165!=null?((smaliTreeWalker.register_list_return)register_list165).registerCount:0);
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction35c(opcode, registerCount, registers[0], registers[1],
+ registers[2], registers[3], registers[4], dexBuilder.internTypeReference((nonvoid_type_descriptor166!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor166).type:null))));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format35c_type"
+
+
+
+ // $ANTLR start "insn_format3rc_method"
+ // smaliTreeWalker.g:1084:1: insn_format3rc_method : ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) ;
+ public final void insn_format3rc_method() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT3rc_METHOD167=null;
+ TreeRuleReturnScope register_range168 =null;
+ ImmutableMethodReference method_reference169 =null;
+
+ try {
+ // smaliTreeWalker.g:1085:3: ( ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference ) )
+ // smaliTreeWalker.g:1086:5: ^( I_STATEMENT_FORMAT3rc_METHOD INSTRUCTION_FORMAT3rc_METHOD register_range method_reference )
+ {
+ match(input,I_STATEMENT_FORMAT3rc_METHOD,FOLLOW_I_STATEMENT_FORMAT3rc_METHOD_in_insn_format3rc_method2906);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT3rc_METHOD167=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_METHOD,FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method2908);
+ pushFollow(FOLLOW_register_range_in_insn_format3rc_method2910);
+ register_range168=register_range();
+ state._fsp--;
+
+ pushFollow(FOLLOW_method_reference_in_insn_format3rc_method2912);
+ method_reference169=method_reference();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_METHOD167!=null?INSTRUCTION_FORMAT3rc_METHOD167.getText():null));
+ int startRegister = (register_range168!=null?((smaliTreeWalker.register_range_return)register_range168).startRegister:0);
+ int endRegister = (register_range168!=null?((smaliTreeWalker.register_range_return)register_range168).endRegister:0);
+
+ int registerCount = endRegister-startRegister+1;
+
+ ImmutableMethodReference methodReference = method_reference169;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount,
+ dexBuilder.internMethodReference(methodReference)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format3rc_method"
+
+
+
+ // $ANTLR start "insn_format3rc_type"
+ // smaliTreeWalker.g:1100:1: insn_format3rc_type : ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) ;
+ public final void insn_format3rc_type() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT3rc_TYPE170=null;
+ TreeRuleReturnScope register_range171 =null;
+ TreeRuleReturnScope nonvoid_type_descriptor172 =null;
+
+ try {
+ // smaliTreeWalker.g:1101:3: ( ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor ) )
+ // smaliTreeWalker.g:1102:5: ^( I_STATEMENT_FORMAT3rc_TYPE INSTRUCTION_FORMAT3rc_TYPE register_range nonvoid_type_descriptor )
+ {
+ match(input,I_STATEMENT_FORMAT3rc_TYPE,FOLLOW_I_STATEMENT_FORMAT3rc_TYPE_in_insn_format3rc_type2935);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT3rc_TYPE170=(CommonTree)match(input,INSTRUCTION_FORMAT3rc_TYPE,FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type2937);
+ pushFollow(FOLLOW_register_range_in_insn_format3rc_type2939);
+ register_range171=register_range();
+ state._fsp--;
+
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type2941);
+ nonvoid_type_descriptor172=nonvoid_type_descriptor();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT3rc_TYPE170!=null?INSTRUCTION_FORMAT3rc_TYPE170.getText():null));
+ int startRegister = (register_range171!=null?((smaliTreeWalker.register_range_return)register_range171).startRegister:0);
+ int endRegister = (register_range171!=null?((smaliTreeWalker.register_range_return)register_range171).endRegister:0);
+
+ int registerCount = endRegister-startRegister+1;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction3rc(opcode, startRegister, registerCount,
+ dexBuilder.internTypeReference((nonvoid_type_descriptor172!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor172).type:null))));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format3rc_type"
+
+
+
+ // $ANTLR start "insn_format45cc_method"
+ // smaliTreeWalker.g:1114:1: insn_format45cc_method : ^( I_STATEMENT_FORMAT45cc_METHOD INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype ) ;
+ public final void insn_format45cc_method() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT45cc_METHOD173=null;
+ TreeRuleReturnScope register_list174 =null;
+ ImmutableMethodReference method_reference175 =null;
+ TreeRuleReturnScope method_prototype176 =null;
+
+ try {
+ // smaliTreeWalker.g:1115:3: ( ^( I_STATEMENT_FORMAT45cc_METHOD INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype ) )
+ // smaliTreeWalker.g:1116:5: ^( I_STATEMENT_FORMAT45cc_METHOD INSTRUCTION_FORMAT45cc_METHOD register_list method_reference method_prototype )
+ {
+ match(input,I_STATEMENT_FORMAT45cc_METHOD,FOLLOW_I_STATEMENT_FORMAT45cc_METHOD_in_insn_format45cc_method2964);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT45cc_METHOD173=(CommonTree)match(input,INSTRUCTION_FORMAT45cc_METHOD,FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method2966);
+ pushFollow(FOLLOW_register_list_in_insn_format45cc_method2968);
+ register_list174=register_list();
+ state._fsp--;
+
+ pushFollow(FOLLOW_method_reference_in_insn_format45cc_method2970);
+ method_reference175=method_reference();
+ state._fsp--;
+
+ pushFollow(FOLLOW_method_prototype_in_insn_format45cc_method2972);
+ method_prototype176=method_prototype();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT45cc_METHOD173!=null?INSTRUCTION_FORMAT45cc_METHOD173.getText():null));
+
+ //this depends on the fact that register_list returns a byte[5]
+ byte[] registers = (register_list174!=null?((smaliTreeWalker.register_list_return)register_list174).registers:null);
+ byte registerCount = (register_list174!=null?((smaliTreeWalker.register_list_return)register_list174).registerCount:0);
+
+ ImmutableMethodReference methodReference = method_reference175;
+ ImmutableMethodProtoReference methodProtoReference = new ImmutableMethodProtoReference(
+ (method_prototype176!=null?((smaliTreeWalker.method_prototype_return)method_prototype176).parameters:null),
+ (method_prototype176!=null?((smaliTreeWalker.method_prototype_return)method_prototype176).returnType:null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction45cc(opcode, registerCount, registers[0], registers[1],
+ registers[2], registers[3], registers[4],
+ dexBuilder.internMethodReference(methodReference),
+ dexBuilder.internMethodProtoReference(methodProtoReference)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format45cc_method"
+
+
+
+ // $ANTLR start "insn_format4rcc_method"
+ // smaliTreeWalker.g:1135:1: insn_format4rcc_method : ^( I_STATEMENT_FORMAT4rcc_METHOD INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype ) ;
+ public final void insn_format4rcc_method() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT4rcc_METHOD177=null;
+ TreeRuleReturnScope register_range178 =null;
+ ImmutableMethodReference method_reference179 =null;
+ TreeRuleReturnScope method_prototype180 =null;
+
+ try {
+ // smaliTreeWalker.g:1136:3: ( ^( I_STATEMENT_FORMAT4rcc_METHOD INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype ) )
+ // smaliTreeWalker.g:1137:5: ^( I_STATEMENT_FORMAT4rcc_METHOD INSTRUCTION_FORMAT4rcc_METHOD register_range method_reference method_prototype )
+ {
+ match(input,I_STATEMENT_FORMAT4rcc_METHOD,FOLLOW_I_STATEMENT_FORMAT4rcc_METHOD_in_insn_format4rcc_method2995);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT4rcc_METHOD177=(CommonTree)match(input,INSTRUCTION_FORMAT4rcc_METHOD,FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method2997);
+ pushFollow(FOLLOW_register_range_in_insn_format4rcc_method2999);
+ register_range178=register_range();
+ state._fsp--;
+
+ pushFollow(FOLLOW_method_reference_in_insn_format4rcc_method3001);
+ method_reference179=method_reference();
+ state._fsp--;
+
+ pushFollow(FOLLOW_method_prototype_in_insn_format4rcc_method3003);
+ method_prototype180=method_prototype();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT4rcc_METHOD177!=null?INSTRUCTION_FORMAT4rcc_METHOD177.getText():null));
+ int startRegister = (register_range178!=null?((smaliTreeWalker.register_range_return)register_range178).startRegister:0);
+ int endRegister = (register_range178!=null?((smaliTreeWalker.register_range_return)register_range178).endRegister:0);
+
+ int registerCount = endRegister-startRegister+1;
+
+ ImmutableMethodReference methodReference = method_reference179;
+ ImmutableMethodProtoReference methodProtoReference = new ImmutableMethodProtoReference(
+ (method_prototype180!=null?((smaliTreeWalker.method_prototype_return)method_prototype180).parameters:null),
+ (method_prototype180!=null?((smaliTreeWalker.method_prototype_return)method_prototype180).returnType:null));
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction4rcc(opcode, startRegister, registerCount,
+ dexBuilder.internMethodReference(methodReference),
+ dexBuilder.internMethodProtoReference(methodProtoReference)));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format4rcc_method"
+
+
+
+ // $ANTLR start "insn_format51l_type"
+ // smaliTreeWalker.g:1155:1: insn_format51l_type : ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal ) ;
+ public final void insn_format51l_type() throws RecognitionException {
+ CommonTree INSTRUCTION_FORMAT51l181=null;
+ CommonTree REGISTER182=null;
+ long fixed_64bit_literal183 =0;
+
+ try {
+ // smaliTreeWalker.g:1156:3: ( ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal ) )
+ // smaliTreeWalker.g:1157:5: ^( I_STATEMENT_FORMAT51l INSTRUCTION_FORMAT51l REGISTER fixed_64bit_literal )
+ {
+ match(input,I_STATEMENT_FORMAT51l,FOLLOW_I_STATEMENT_FORMAT51l_in_insn_format51l_type3026);
+ match(input, Token.DOWN, null);
+ INSTRUCTION_FORMAT51l181=(CommonTree)match(input,INSTRUCTION_FORMAT51l,FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l_type3028);
+ REGISTER182=(CommonTree)match(input,REGISTER,FOLLOW_REGISTER_in_insn_format51l_type3030);
+ pushFollow(FOLLOW_fixed_64bit_literal_in_insn_format51l_type3032);
+ fixed_64bit_literal183=fixed_64bit_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ Opcode opcode = opcodes.getOpcodeByName((INSTRUCTION_FORMAT51l181!=null?INSTRUCTION_FORMAT51l181.getText():null));
+ short regA = parseRegister_byte((REGISTER182!=null?REGISTER182.getText():null));
+
+ long litB = fixed_64bit_literal183;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderInstruction51l(opcode, regA, litB));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_format51l_type"
+
+
+
+ // $ANTLR start "insn_array_data_directive"
+ // smaliTreeWalker.g:1167:1: insn_array_data_directive : ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements ) ;
+ public final void insn_array_data_directive() throws RecognitionException {
+ short short_integral_literal184 =0;
+ List<Number> array_elements185 =null;
+
+ try {
+ // smaliTreeWalker.g:1168:3: ( ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements ) )
+ // smaliTreeWalker.g:1169:5: ^( I_STATEMENT_ARRAY_DATA ^( I_ARRAY_ELEMENT_SIZE short_integral_literal ) array_elements )
+ {
+ match(input,I_STATEMENT_ARRAY_DATA,FOLLOW_I_STATEMENT_ARRAY_DATA_in_insn_array_data_directive3055);
+ match(input, Token.DOWN, null);
+ match(input,I_ARRAY_ELEMENT_SIZE,FOLLOW_I_ARRAY_ELEMENT_SIZE_in_insn_array_data_directive3058);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_short_integral_literal_in_insn_array_data_directive3060);
+ short_integral_literal184=short_integral_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+ pushFollow(FOLLOW_array_elements_in_insn_array_data_directive3063);
+ array_elements185=array_elements();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ int elementWidth = short_integral_literal184;
+ List<Number> elements = array_elements185;
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderArrayPayload(elementWidth, array_elements185));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_array_data_directive"
+
+
+
+ // $ANTLR start "insn_packed_switch_directive"
+ // smaliTreeWalker.g:1177:1: insn_packed_switch_directive : ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements ) ;
+ public final void insn_packed_switch_directive() throws RecognitionException {
+ int fixed_32bit_literal186 =0;
+ List<Label> packed_switch_elements187 =null;
+
+ try {
+ // smaliTreeWalker.g:1178:3: ( ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements ) )
+ // smaliTreeWalker.g:1179:5: ^( I_STATEMENT_PACKED_SWITCH ^( I_PACKED_SWITCH_START_KEY fixed_32bit_literal ) packed_switch_elements )
+ {
+ match(input,I_STATEMENT_PACKED_SWITCH,FOLLOW_I_STATEMENT_PACKED_SWITCH_in_insn_packed_switch_directive3085);
+ match(input, Token.DOWN, null);
+ match(input,I_PACKED_SWITCH_START_KEY,FOLLOW_I_PACKED_SWITCH_START_KEY_in_insn_packed_switch_directive3088);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive3090);
+ fixed_32bit_literal186=fixed_32bit_literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+ pushFollow(FOLLOW_packed_switch_elements_in_insn_packed_switch_directive3093);
+ packed_switch_elements187=packed_switch_elements();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ int startKey = fixed_32bit_literal186;
+ method_stack.peek().methodBuilder.addInstruction(new BuilderPackedSwitchPayload(startKey,
+ packed_switch_elements187));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_packed_switch_directive"
+
+
+
+ // $ANTLR start "insn_sparse_switch_directive"
+ // smaliTreeWalker.g:1186:1: insn_sparse_switch_directive : ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements ) ;
+ public final void insn_sparse_switch_directive() throws RecognitionException {
+ List<SwitchLabelElement> sparse_switch_elements188 =null;
+
+ try {
+ // smaliTreeWalker.g:1187:3: ( ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements ) )
+ // smaliTreeWalker.g:1188:5: ^( I_STATEMENT_SPARSE_SWITCH sparse_switch_elements )
+ {
+ match(input,I_STATEMENT_SPARSE_SWITCH,FOLLOW_I_STATEMENT_SPARSE_SWITCH_in_insn_sparse_switch_directive3117);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_sparse_switch_elements_in_insn_sparse_switch_directive3119);
+ sparse_switch_elements188=sparse_switch_elements();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ method_stack.peek().methodBuilder.addInstruction(new BuilderSparseSwitchPayload(sparse_switch_elements188));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "insn_sparse_switch_directive"
+
+
+
+ // $ANTLR start "array_descriptor"
+ // smaliTreeWalker.g:1193:1: array_descriptor returns [String type] : ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR ) ;
+ public final String array_descriptor() throws RecognitionException {
+ String type = null;
+
+
+ CommonTree ARRAY_TYPE_PREFIX189=null;
+ CommonTree PRIMITIVE_TYPE190=null;
+ CommonTree CLASS_DESCRIPTOR191=null;
+
+ try {
+ // smaliTreeWalker.g:1194:3: ( ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR ) )
+ // smaliTreeWalker.g:1194:5: ARRAY_TYPE_PREFIX ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR )
+ {
+ ARRAY_TYPE_PREFIX189=(CommonTree)match(input,ARRAY_TYPE_PREFIX,FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor3140);
+ // smaliTreeWalker.g:1194:23: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR )
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+ if ( (LA37_0==PRIMITIVE_TYPE) ) {
+ alt37=1;
+ }
+ else if ( (LA37_0==CLASS_DESCRIPTOR) ) {
+ alt37=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 37, 0, input);
+ throw nvae;
+ }
+
+ switch (alt37) {
+ case 1 :
+ // smaliTreeWalker.g:1194:25: PRIMITIVE_TYPE
+ {
+ PRIMITIVE_TYPE190=(CommonTree)match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_array_descriptor3144);
+ type = (ARRAY_TYPE_PREFIX189!=null?ARRAY_TYPE_PREFIX189.getText():null) + (PRIMITIVE_TYPE190!=null?PRIMITIVE_TYPE190.getText():null);
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:1195:25: CLASS_DESCRIPTOR
+ {
+ CLASS_DESCRIPTOR191=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_array_descriptor3172);
+ type = (ARRAY_TYPE_PREFIX189!=null?ARRAY_TYPE_PREFIX189.getText():null) + (CLASS_DESCRIPTOR191!=null?CLASS_DESCRIPTOR191.getText():null);
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return type;
+ }
+ // $ANTLR end "array_descriptor"
+
+
+ public static class nonvoid_type_descriptor_return extends TreeRuleReturnScope {
+ public String type;
+ };
+
+
+ // $ANTLR start "nonvoid_type_descriptor"
+ // smaliTreeWalker.g:1197:1: nonvoid_type_descriptor returns [String type] : ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor ) ;
+ public final smaliTreeWalker.nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException {
+ smaliTreeWalker.nonvoid_type_descriptor_return retval = new smaliTreeWalker.nonvoid_type_descriptor_return();
+ retval.start = input.LT(1);
+
+ String array_descriptor192 =null;
+
+ try {
+ // smaliTreeWalker.g:1198:3: ( ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor ) )
+ // smaliTreeWalker.g:1198:5: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor )
+ {
+ // smaliTreeWalker.g:1198:5: ( PRIMITIVE_TYPE | CLASS_DESCRIPTOR | array_descriptor )
+ int alt38=3;
+ switch ( input.LA(1) ) {
+ case PRIMITIVE_TYPE:
+ {
+ alt38=1;
+ }
+ break;
+ case CLASS_DESCRIPTOR:
+ {
+ alt38=2;
+ }
+ break;
+ case ARRAY_TYPE_PREFIX:
+ {
+ alt38=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 38, 0, input);
+ throw nvae;
+ }
+ switch (alt38) {
+ case 1 :
+ // smaliTreeWalker.g:1198:6: PRIMITIVE_TYPE
+ {
+ match(input,PRIMITIVE_TYPE,FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor3190);
+ retval.type = input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(retval.start),input.getTreeAdaptor().getTokenStopIndex(retval.start));
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:1199:5: CLASS_DESCRIPTOR
+ {
+ match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor3198);
+ retval.type = input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(retval.start),input.getTreeAdaptor().getTokenStopIndex(retval.start));
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:1200:5: array_descriptor
+ {
+ pushFollow(FOLLOW_array_descriptor_in_nonvoid_type_descriptor3206);
+ array_descriptor192=array_descriptor();
+ state._fsp--;
+
+ retval.type = array_descriptor192;
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "nonvoid_type_descriptor"
+
+
+ public static class reference_type_descriptor_return extends TreeRuleReturnScope {
+ public String type;
+ };
+
+
+ // $ANTLR start "reference_type_descriptor"
+ // smaliTreeWalker.g:1203:1: reference_type_descriptor returns [String type] : ( CLASS_DESCRIPTOR | array_descriptor ) ;
+ public final smaliTreeWalker.reference_type_descriptor_return reference_type_descriptor() throws RecognitionException {
+ smaliTreeWalker.reference_type_descriptor_return retval = new smaliTreeWalker.reference_type_descriptor_return();
+ retval.start = input.LT(1);
+
+ String array_descriptor193 =null;
+
+ try {
+ // smaliTreeWalker.g:1204:3: ( ( CLASS_DESCRIPTOR | array_descriptor ) )
+ // smaliTreeWalker.g:1204:5: ( CLASS_DESCRIPTOR | array_descriptor )
+ {
+ // smaliTreeWalker.g:1204:5: ( CLASS_DESCRIPTOR | array_descriptor )
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+ if ( (LA39_0==CLASS_DESCRIPTOR) ) {
+ alt39=1;
+ }
+ else if ( (LA39_0==ARRAY_TYPE_PREFIX) ) {
+ alt39=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 39, 0, input);
+ throw nvae;
+ }
+
+ switch (alt39) {
+ case 1 :
+ // smaliTreeWalker.g:1204:6: CLASS_DESCRIPTOR
+ {
+ match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor3227);
+ retval.type = input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(retval.start),input.getTreeAdaptor().getTokenStopIndex(retval.start));
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:1205:5: array_descriptor
+ {
+ pushFollow(FOLLOW_array_descriptor_in_reference_type_descriptor3235);
+ array_descriptor193=array_descriptor();
+ state._fsp--;
+
+ retval.type = array_descriptor193;
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "reference_type_descriptor"
+
+
+
+ // $ANTLR start "type_descriptor"
+ // smaliTreeWalker.g:1208:1: type_descriptor returns [String type] : ( VOID_TYPE | nonvoid_type_descriptor );
+ public final String type_descriptor() throws RecognitionException {
+ String type = null;
+
+
+ TreeRuleReturnScope nonvoid_type_descriptor194 =null;
+
+ try {
+ // smaliTreeWalker.g:1209:3: ( VOID_TYPE | nonvoid_type_descriptor )
+ int alt40=2;
+ int LA40_0 = input.LA(1);
+ if ( (LA40_0==VOID_TYPE) ) {
+ alt40=1;
+ }
+ else if ( (LA40_0==ARRAY_TYPE_PREFIX||LA40_0==CLASS_DESCRIPTOR||LA40_0==PRIMITIVE_TYPE) ) {
+ alt40=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 40, 0, input);
+ throw nvae;
+ }
+
+ switch (alt40) {
+ case 1 :
+ // smaliTreeWalker.g:1209:5: VOID_TYPE
+ {
+ match(input,VOID_TYPE,FOLLOW_VOID_TYPE_in_type_descriptor3255);
+ type = "V";
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:1210:5: nonvoid_type_descriptor
+ {
+ pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_descriptor3263);
+ nonvoid_type_descriptor194=nonvoid_type_descriptor();
+ state._fsp--;
+
+ type = (nonvoid_type_descriptor194!=null?((smaliTreeWalker.nonvoid_type_descriptor_return)nonvoid_type_descriptor194).type:null);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return type;
+ }
+ // $ANTLR end "type_descriptor"
+
+
+
+ // $ANTLR start "short_integral_literal"
+ // smaliTreeWalker.g:1213:1: short_integral_literal returns [short value] : ( long_literal | integer_literal | short_literal | char_literal | byte_literal );
+ public final short short_integral_literal() throws RecognitionException {
+ short value = 0;
+
+
+ long long_literal195 =0;
+ int integer_literal196 =0;
+ short short_literal197 =0;
+ char char_literal198 =0;
+ byte byte_literal199 =0;
+
+ try {
+ // smaliTreeWalker.g:1214:3: ( long_literal | integer_literal | short_literal | char_literal | byte_literal )
+ int alt41=5;
+ switch ( input.LA(1) ) {
+ case LONG_LITERAL:
+ {
+ alt41=1;
+ }
+ break;
+ case INTEGER_LITERAL:
+ {
+ alt41=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt41=3;
+ }
+ break;
+ case CHAR_LITERAL:
+ {
+ alt41=4;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt41=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 41, 0, input);
+ throw nvae;
+ }
+ switch (alt41) {
+ case 1 :
+ // smaliTreeWalker.g:1214:5: long_literal
+ {
+ pushFollow(FOLLOW_long_literal_in_short_integral_literal3281);
+ long_literal195=long_literal();
+ state._fsp--;
+
+
+ LiteralTools.checkShort(long_literal195);
+ value = (short)long_literal195;
+
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:1219:5: integer_literal
+ {
+ pushFollow(FOLLOW_integer_literal_in_short_integral_literal3293);
+ integer_literal196=integer_literal();
+ state._fsp--;
+
+
+ LiteralTools.checkShort(integer_literal196);
+ value = (short)integer_literal196;
+
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:1224:5: short_literal
+ {
+ pushFollow(FOLLOW_short_literal_in_short_integral_literal3305);
+ short_literal197=short_literal();
+ state._fsp--;
+
+ value = short_literal197;
+ }
+ break;
+ case 4 :
+ // smaliTreeWalker.g:1225:5: char_literal
+ {
+ pushFollow(FOLLOW_char_literal_in_short_integral_literal3313);
+ char_literal198=char_literal();
+ state._fsp--;
+
+ value = (short)char_literal198;
+ }
+ break;
+ case 5 :
+ // smaliTreeWalker.g:1226:5: byte_literal
+ {
+ pushFollow(FOLLOW_byte_literal_in_short_integral_literal3321);
+ byte_literal199=byte_literal();
+ state._fsp--;
+
+ value = byte_literal199;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "short_integral_literal"
+
+
+
+ // $ANTLR start "integral_literal"
+ // smaliTreeWalker.g:1228:1: integral_literal returns [int value] : ( long_literal | integer_literal | short_literal | byte_literal );
+ public final int integral_literal() throws RecognitionException {
+ int value = 0;
+
+
+ long long_literal200 =0;
+ int integer_literal201 =0;
+ short short_literal202 =0;
+ byte byte_literal203 =0;
+
+ try {
+ // smaliTreeWalker.g:1229:3: ( long_literal | integer_literal | short_literal | byte_literal )
+ int alt42=4;
+ switch ( input.LA(1) ) {
+ case LONG_LITERAL:
+ {
+ alt42=1;
+ }
+ break;
+ case INTEGER_LITERAL:
+ {
+ alt42=2;
+ }
+ break;
+ case SHORT_LITERAL:
+ {
+ alt42=3;
+ }
+ break;
+ case BYTE_LITERAL:
+ {
+ alt42=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 42, 0, input);
+ throw nvae;
+ }
+ switch (alt42) {
+ case 1 :
+ // smaliTreeWalker.g:1229:5: long_literal
+ {
+ pushFollow(FOLLOW_long_literal_in_integral_literal3336);
+ long_literal200=long_literal();
+ state._fsp--;
+
+
+ LiteralTools.checkInt(long_literal200);
+ value = (int)long_literal200;
+
+ }
+ break;
+ case 2 :
+ // smaliTreeWalker.g:1234:5: integer_literal
+ {
+ pushFollow(FOLLOW_integer_literal_in_integral_literal3348);
+ integer_literal201=integer_literal();
+ state._fsp--;
+
+ value = integer_literal201;
+ }
+ break;
+ case 3 :
+ // smaliTreeWalker.g:1235:5: short_literal
+ {
+ pushFollow(FOLLOW_short_literal_in_integral_literal3356);
+ short_literal202=short_literal();
+ state._fsp--;
+
+ value = short_literal202;
+ }
+ break;
+ case 4 :
+ // smaliTreeWalker.g:1236:5: byte_literal
+ {
+ pushFollow(FOLLOW_byte_literal_in_integral_literal3364);
+ byte_literal203=byte_literal();
+ state._fsp--;
+
+ value = byte_literal203;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "integral_literal"
+
+
+
+ // $ANTLR start "integer_literal"
+ // smaliTreeWalker.g:1239:1: integer_literal returns [int value] : INTEGER_LITERAL ;
+ public final int integer_literal() throws RecognitionException {
+ int value = 0;
+
+
+ CommonTree INTEGER_LITERAL204=null;
+
+ try {
+ // smaliTreeWalker.g:1240:3: ( INTEGER_LITERAL )
+ // smaliTreeWalker.g:1240:5: INTEGER_LITERAL
+ {
+ INTEGER_LITERAL204=(CommonTree)match(input,INTEGER_LITERAL,FOLLOW_INTEGER_LITERAL_in_integer_literal3380);
+ value = LiteralTools.parseInt((INTEGER_LITERAL204!=null?INTEGER_LITERAL204.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "integer_literal"
+
+
+
+ // $ANTLR start "long_literal"
+ // smaliTreeWalker.g:1242:1: long_literal returns [long value] : LONG_LITERAL ;
+ public final long long_literal() throws RecognitionException {
+ long value = 0;
+
+
+ CommonTree LONG_LITERAL205=null;
+
+ try {
+ // smaliTreeWalker.g:1243:3: ( LONG_LITERAL )
+ // smaliTreeWalker.g:1243:5: LONG_LITERAL
+ {
+ LONG_LITERAL205=(CommonTree)match(input,LONG_LITERAL,FOLLOW_LONG_LITERAL_in_long_literal3395);
+ value = LiteralTools.parseLong((LONG_LITERAL205!=null?LONG_LITERAL205.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "long_literal"
+
+
+
+ // $ANTLR start "short_literal"
+ // smaliTreeWalker.g:1245:1: short_literal returns [short value] : SHORT_LITERAL ;
+ public final short short_literal() throws RecognitionException {
+ short value = 0;
+
+
+ CommonTree SHORT_LITERAL206=null;
+
+ try {
+ // smaliTreeWalker.g:1246:3: ( SHORT_LITERAL )
+ // smaliTreeWalker.g:1246:5: SHORT_LITERAL
+ {
+ SHORT_LITERAL206=(CommonTree)match(input,SHORT_LITERAL,FOLLOW_SHORT_LITERAL_in_short_literal3410);
+ value = LiteralTools.parseShort((SHORT_LITERAL206!=null?SHORT_LITERAL206.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "short_literal"
+
+
+
+ // $ANTLR start "byte_literal"
+ // smaliTreeWalker.g:1248:1: byte_literal returns [byte value] : BYTE_LITERAL ;
+ public final byte byte_literal() throws RecognitionException {
+ byte value = 0;
+
+
+ CommonTree BYTE_LITERAL207=null;
+
+ try {
+ // smaliTreeWalker.g:1249:3: ( BYTE_LITERAL )
+ // smaliTreeWalker.g:1249:5: BYTE_LITERAL
+ {
+ BYTE_LITERAL207=(CommonTree)match(input,BYTE_LITERAL,FOLLOW_BYTE_LITERAL_in_byte_literal3425);
+ value = LiteralTools.parseByte((BYTE_LITERAL207!=null?BYTE_LITERAL207.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "byte_literal"
+
+
+
+ // $ANTLR start "float_literal"
+ // smaliTreeWalker.g:1251:1: float_literal returns [float value] : FLOAT_LITERAL ;
+ public final float float_literal() throws RecognitionException {
+ float value = 0.0f;
+
+
+ CommonTree FLOAT_LITERAL208=null;
+
+ try {
+ // smaliTreeWalker.g:1252:3: ( FLOAT_LITERAL )
+ // smaliTreeWalker.g:1252:5: FLOAT_LITERAL
+ {
+ FLOAT_LITERAL208=(CommonTree)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_float_literal3440);
+ value = LiteralTools.parseFloat((FLOAT_LITERAL208!=null?FLOAT_LITERAL208.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "float_literal"
+
+
+
+ // $ANTLR start "double_literal"
+ // smaliTreeWalker.g:1254:1: double_literal returns [double value] : DOUBLE_LITERAL ;
+ public final double double_literal() throws RecognitionException {
+ double value = 0.0;
+
+
+ CommonTree DOUBLE_LITERAL209=null;
+
+ try {
+ // smaliTreeWalker.g:1255:3: ( DOUBLE_LITERAL )
+ // smaliTreeWalker.g:1255:5: DOUBLE_LITERAL
+ {
+ DOUBLE_LITERAL209=(CommonTree)match(input,DOUBLE_LITERAL,FOLLOW_DOUBLE_LITERAL_in_double_literal3455);
+ value = LiteralTools.parseDouble((DOUBLE_LITERAL209!=null?DOUBLE_LITERAL209.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "double_literal"
+
+
+
+ // $ANTLR start "char_literal"
+ // smaliTreeWalker.g:1257:1: char_literal returns [char value] : CHAR_LITERAL ;
+ public final char char_literal() throws RecognitionException {
+ char value = 0;
+
+
+ CommonTree CHAR_LITERAL210=null;
+
+ try {
+ // smaliTreeWalker.g:1258:3: ( CHAR_LITERAL )
+ // smaliTreeWalker.g:1258:5: CHAR_LITERAL
+ {
+ CHAR_LITERAL210=(CommonTree)match(input,CHAR_LITERAL,FOLLOW_CHAR_LITERAL_in_char_literal3470);
+ value = (CHAR_LITERAL210!=null?CHAR_LITERAL210.getText():null).charAt(1);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "char_literal"
+
+
+
+ // $ANTLR start "string_literal"
+ // smaliTreeWalker.g:1260:1: string_literal returns [String value] : STRING_LITERAL ;
+ public final String string_literal() throws RecognitionException {
+ String value = null;
+
+
+ CommonTree STRING_LITERAL211=null;
+
+ try {
+ // smaliTreeWalker.g:1261:3: ( STRING_LITERAL )
+ // smaliTreeWalker.g:1261:5: STRING_LITERAL
+ {
+ STRING_LITERAL211=(CommonTree)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_string_literal3485);
+
+ value = (STRING_LITERAL211!=null?STRING_LITERAL211.getText():null);
+ value = value.substring(1,value.length()-1);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "string_literal"
+
+
+
+ // $ANTLR start "bool_literal"
+ // smaliTreeWalker.g:1267:1: bool_literal returns [boolean value] : BOOL_LITERAL ;
+ public final boolean bool_literal() throws RecognitionException {
+ boolean value = false;
+
+
+ CommonTree BOOL_LITERAL212=null;
+
+ try {
+ // smaliTreeWalker.g:1268:3: ( BOOL_LITERAL )
+ // smaliTreeWalker.g:1268:5: BOOL_LITERAL
+ {
+ BOOL_LITERAL212=(CommonTree)match(input,BOOL_LITERAL,FOLLOW_BOOL_LITERAL_in_bool_literal3504);
+ value = Boolean.parseBoolean((BOOL_LITERAL212!=null?BOOL_LITERAL212.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "bool_literal"
+
+
+
+ // $ANTLR start "array_literal"
+ // smaliTreeWalker.g:1270:1: array_literal returns [List<EncodedValue> elements] : ^( I_ENCODED_ARRAY ( literal )* ) ;
+ public final List<EncodedValue> array_literal() throws RecognitionException {
+ List<EncodedValue> elements = null;
+
+
+ EncodedValue literal213 =null;
+
+ try {
+ // smaliTreeWalker.g:1271:3: ( ^( I_ENCODED_ARRAY ( literal )* ) )
+ // smaliTreeWalker.g:1271:5: ^( I_ENCODED_ARRAY ( literal )* )
+ {
+ elements = Lists.newArrayList();
+ match(input,I_ENCODED_ARRAY,FOLLOW_I_ENCODED_ARRAY_in_array_literal3526);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:1272:23: ( literal )*
+ loop43:
+ while (true) {
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+ if ( (LA43_0==ARRAY_TYPE_PREFIX||(LA43_0 >= BOOL_LITERAL && LA43_0 <= BYTE_LITERAL)||(LA43_0 >= CHAR_LITERAL && LA43_0 <= CLASS_DESCRIPTOR)||LA43_0==DOUBLE_LITERAL||LA43_0==FLOAT_LITERAL||LA43_0==INTEGER_LITERAL||(LA43_0 >= I_ENCODED_ARRAY && LA43_0 <= I_ENCODED_METHOD)||LA43_0==I_SUBANNOTATION||LA43_0==LONG_LITERAL||LA43_0==NULL_LITERAL||LA43_0==PRIMITIVE_TYPE||LA43_0==SHORT_LITERAL||LA43_0==STRING_LITERAL||LA43_0==VOID_TYPE) ) {
+ alt43=1;
+ }
+
+ switch (alt43) {
+ case 1 :
+ // smaliTreeWalker.g:1272:24: literal
+ {
+ pushFollow(FOLLOW_literal_in_array_literal3529);
+ literal213=literal();
+ state._fsp--;
+
+ elements.add(literal213);
+ }
+ break;
+
+ default :
+ break loop43;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return elements;
+ }
+ // $ANTLR end "array_literal"
+
+
+
+ // $ANTLR start "annotations"
+ // smaliTreeWalker.g:1274:1: annotations returns [Set<Annotation> annotations] : ^( I_ANNOTATIONS ( annotation )* ) ;
+ public final Set<Annotation> annotations() throws RecognitionException {
+ Set<Annotation> annotations = null;
+
+
+ Annotation annotation214 =null;
+
+ try {
+ // smaliTreeWalker.g:1275:3: ( ^( I_ANNOTATIONS ( annotation )* ) )
+ // smaliTreeWalker.g:1275:5: ^( I_ANNOTATIONS ( annotation )* )
+ {
+ HashMap<String, Annotation> annotationMap = Maps.newHashMap();
+ match(input,I_ANNOTATIONS,FOLLOW_I_ANNOTATIONS_in_annotations3554);
+ if ( input.LA(1)==Token.DOWN ) {
+ match(input, Token.DOWN, null);
+ // smaliTreeWalker.g:1276:21: ( annotation )*
+ loop44:
+ while (true) {
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+ if ( (LA44_0==I_ANNOTATION) ) {
+ alt44=1;
+ }
+
+ switch (alt44) {
+ case 1 :
+ // smaliTreeWalker.g:1276:22: annotation
+ {
+ pushFollow(FOLLOW_annotation_in_annotations3557);
+ annotation214=annotation();
+ state._fsp--;
+
+
+ Annotation anno = annotation214;
+ Annotation old = annotationMap.put(anno.getType(), anno);
+ if (old != null) {
+ throw new SemanticException(input, "Multiple annotations of type %s", anno.getType());
+ }
+
+ }
+ break;
+
+ default :
+ break loop44;
+ }
+ }
+
+ match(input, Token.UP, null);
+ }
+
+
+ if (annotationMap.size() > 0) {
+ annotations = ImmutableSet.copyOf(annotationMap.values());
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return annotations;
+ }
+ // $ANTLR end "annotations"
+
+
+
+ // $ANTLR start "annotation"
+ // smaliTreeWalker.g:1290:1: annotation returns [Annotation annotation] : ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation ) ;
+ public final Annotation annotation() throws RecognitionException {
+ Annotation annotation = null;
+
+
+ CommonTree ANNOTATION_VISIBILITY215=null;
+ TreeRuleReturnScope subannotation216 =null;
+
+ try {
+ // smaliTreeWalker.g:1291:3: ( ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation ) )
+ // smaliTreeWalker.g:1291:5: ^( I_ANNOTATION ANNOTATION_VISIBILITY subannotation )
+ {
+ match(input,I_ANNOTATION,FOLLOW_I_ANNOTATION_in_annotation3586);
+ match(input, Token.DOWN, null);
+ ANNOTATION_VISIBILITY215=(CommonTree)match(input,ANNOTATION_VISIBILITY,FOLLOW_ANNOTATION_VISIBILITY_in_annotation3588);
+ pushFollow(FOLLOW_subannotation_in_annotation3590);
+ subannotation216=subannotation();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ int visibility = AnnotationVisibility.getVisibility((ANNOTATION_VISIBILITY215!=null?ANNOTATION_VISIBILITY215.getText():null));
+ annotation = new ImmutableAnnotation(visibility, (subannotation216!=null?((smaliTreeWalker.subannotation_return)subannotation216).annotationType:null), (subannotation216!=null?((smaliTreeWalker.subannotation_return)subannotation216).elements:null));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return annotation;
+ }
+ // $ANTLR end "annotation"
+
+
+
+ // $ANTLR start "annotation_element"
+ // smaliTreeWalker.g:1297:1: annotation_element returns [AnnotationElement element] : ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal ) ;
+ public final AnnotationElement annotation_element() throws RecognitionException {
+ AnnotationElement element = null;
+
+
+ CommonTree SIMPLE_NAME217=null;
+ EncodedValue literal218 =null;
+
+ try {
+ // smaliTreeWalker.g:1298:3: ( ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal ) )
+ // smaliTreeWalker.g:1298:5: ^( I_ANNOTATION_ELEMENT SIMPLE_NAME literal )
+ {
+ match(input,I_ANNOTATION_ELEMENT,FOLLOW_I_ANNOTATION_ELEMENT_in_annotation_element3611);
+ match(input, Token.DOWN, null);
+ SIMPLE_NAME217=(CommonTree)match(input,SIMPLE_NAME,FOLLOW_SIMPLE_NAME_in_annotation_element3613);
+ pushFollow(FOLLOW_literal_in_annotation_element3615);
+ literal218=literal();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ element = new ImmutableAnnotationElement((SIMPLE_NAME217!=null?SIMPLE_NAME217.getText():null), literal218);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return element;
+ }
+ // $ANTLR end "annotation_element"
+
+
+ public static class subannotation_return extends TreeRuleReturnScope {
+ public String annotationType;
+ public List<AnnotationElement> elements;
+ };
+
+
+ // $ANTLR start "subannotation"
+ // smaliTreeWalker.g:1303:1: subannotation returns [String annotationType, List<AnnotationElement> elements] : ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* ) ;
+ public final smaliTreeWalker.subannotation_return subannotation() throws RecognitionException {
+ smaliTreeWalker.subannotation_return retval = new smaliTreeWalker.subannotation_return();
+ retval.start = input.LT(1);
+
+ CommonTree CLASS_DESCRIPTOR220=null;
+ AnnotationElement annotation_element219 =null;
+
+ try {
+ // smaliTreeWalker.g:1304:3: ( ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* ) )
+ // smaliTreeWalker.g:1304:5: ^( I_SUBANNOTATION CLASS_DESCRIPTOR ( annotation_element )* )
+ {
+ ArrayList<AnnotationElement> elements = Lists.newArrayList();
+ match(input,I_SUBANNOTATION,FOLLOW_I_SUBANNOTATION_in_subannotation3642);
+ match(input, Token.DOWN, null);
+ CLASS_DESCRIPTOR220=(CommonTree)match(input,CLASS_DESCRIPTOR,FOLLOW_CLASS_DESCRIPTOR_in_subannotation3652);
+ // smaliTreeWalker.g:1307:9: ( annotation_element )*
+ loop45:
+ while (true) {
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+ if ( (LA45_0==I_ANNOTATION_ELEMENT) ) {
+ alt45=1;
+ }
+
+ switch (alt45) {
+ case 1 :
+ // smaliTreeWalker.g:1307:10: annotation_element
+ {
+ pushFollow(FOLLOW_annotation_element_in_subannotation3663);
+ annotation_element219=annotation_element();
+ state._fsp--;
+
+
+ elements.add(annotation_element219);
+
+ }
+ break;
+
+ default :
+ break loop45;
+ }
+ }
+
+ match(input, Token.UP, null);
+
+
+ retval.annotationType = (CLASS_DESCRIPTOR220!=null?CLASS_DESCRIPTOR220.getText():null);
+ retval.elements = elements;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "subannotation"
+
+
+
+ // $ANTLR start "field_literal"
+ // smaliTreeWalker.g:1317:1: field_literal returns [FieldReference value] : ^( I_ENCODED_FIELD field_reference ) ;
+ public final FieldReference field_literal() throws RecognitionException {
+ FieldReference value = null;
+
+
+ ImmutableFieldReference field_reference221 =null;
+
+ try {
+ // smaliTreeWalker.g:1318:3: ( ^( I_ENCODED_FIELD field_reference ) )
+ // smaliTreeWalker.g:1318:5: ^( I_ENCODED_FIELD field_reference )
+ {
+ match(input,I_ENCODED_FIELD,FOLLOW_I_ENCODED_FIELD_in_field_literal3702);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_field_reference_in_field_literal3704);
+ field_reference221=field_reference();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ value = field_reference221;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "field_literal"
+
+
+
+ // $ANTLR start "method_literal"
+ // smaliTreeWalker.g:1323:1: method_literal returns [MethodReference value] : ^( I_ENCODED_METHOD method_reference ) ;
+ public final MethodReference method_literal() throws RecognitionException {
+ MethodReference value = null;
+
+
+ ImmutableMethodReference method_reference222 =null;
+
+ try {
+ // smaliTreeWalker.g:1324:3: ( ^( I_ENCODED_METHOD method_reference ) )
+ // smaliTreeWalker.g:1324:5: ^( I_ENCODED_METHOD method_reference )
+ {
+ match(input,I_ENCODED_METHOD,FOLLOW_I_ENCODED_METHOD_in_method_literal3725);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_method_reference_in_method_literal3727);
+ method_reference222=method_reference();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ value = method_reference222;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "method_literal"
+
+
+
+ // $ANTLR start "enum_literal"
+ // smaliTreeWalker.g:1329:1: enum_literal returns [FieldReference value] : ^( I_ENCODED_ENUM field_reference ) ;
+ public final FieldReference enum_literal() throws RecognitionException {
+ FieldReference value = null;
+
+
+ ImmutableFieldReference field_reference223 =null;
+
+ try {
+ // smaliTreeWalker.g:1330:3: ( ^( I_ENCODED_ENUM field_reference ) )
+ // smaliTreeWalker.g:1330:5: ^( I_ENCODED_ENUM field_reference )
+ {
+ match(input,I_ENCODED_ENUM,FOLLOW_I_ENCODED_ENUM_in_enum_literal3748);
+ match(input, Token.DOWN, null);
+ pushFollow(FOLLOW_field_reference_in_enum_literal3750);
+ field_reference223=field_reference();
+ state._fsp--;
+
+ match(input, Token.UP, null);
+
+
+ value = field_reference223;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "enum_literal"
+
+ // Delegated rules
+
+
+
+ public static final BitSet FOLLOW_I_CLASS_DEF_in_smali_file52 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_header_in_smali_file54 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_methods_in_smali_file56 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+ public static final BitSet FOLLOW_fields_in_smali_file58 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+ public static final BitSet FOLLOW_annotations_in_smali_file60 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_class_spec_in_header85 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L,0x0000020000000004L});
+ public static final BitSet FOLLOW_super_spec_in_header87 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_implements_list_in_header90 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_source_spec_in_header92 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec110 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+ public static final BitSet FOLLOW_access_list_in_class_spec112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_SUPER_in_super_spec130 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec132 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_IMPLEMENTS_in_implements_spec152 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec154 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_implements_spec_in_implements_list184 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+ public static final BitSet FOLLOW_I_SOURCE_in_source_spec213 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_string_literal_in_source_spec215 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_ACCESS_LIST_in_access_list248 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list266 = new BitSet(new long[]{0x0000000000000018L});
+ public static final BitSet FOLLOW_I_FIELDS_in_fields308 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_field_in_fields317 = new BitSet(new long[]{0x0000000000000008L,0x0000040000000000L});
+ public static final BitSet FOLLOW_I_METHODS_in_methods349 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_method_in_methods358 = new BitSet(new long[]{0x0000000000000008L,0x0008000000000000L});
+ public static final BitSet FOLLOW_I_FIELD_in_field383 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_SIMPLE_NAME_in_field385 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+ public static final BitSet FOLLOW_access_list_in_field387 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
+ public static final BitSet FOLLOW_I_FIELD_TYPE_in_field390 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field392 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_field_initial_value_in_field395 = new BitSet(new long[]{0x0000000000000008L,0x0000000010000000L});
+ public static final BitSet FOLLOW_annotations_in_field397 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_FIELD_INITIAL_VALUE_in_field_initial_value418 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_literal_in_field_initial_value420 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_integer_literal_in_literal442 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_long_literal_in_literal450 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_short_literal_in_literal458 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_byte_literal_in_literal466 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_float_literal_in_literal474 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_double_literal_in_literal482 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_char_literal_in_literal490 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_string_literal_in_literal498 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_bool_literal_in_literal506 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NULL_LITERAL_in_literal514 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_type_descriptor_in_literal522 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_array_literal_in_literal530 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_subannotation_in_literal538 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_field_literal_in_literal546 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_method_literal_in_literal554 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_enum_literal_in_literal562 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_fixed_64bit_literal_number578 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_long_literal_in_fixed_64bit_literal_number586 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_short_literal_in_fixed_64bit_literal_number594 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_byte_literal_in_fixed_64bit_literal_number602 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_float_literal_in_fixed_64bit_literal_number610 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_double_literal_in_fixed_64bit_literal_number618 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_char_literal_in_fixed_64bit_literal_number626 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_bool_literal_in_fixed_64bit_literal_number634 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_fixed_64bit_literal649 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_long_literal_in_fixed_64bit_literal657 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_short_literal_in_fixed_64bit_literal665 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_byte_literal_in_fixed_64bit_literal673 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_float_literal_in_fixed_64bit_literal681 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_double_literal_in_fixed_64bit_literal689 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_char_literal_in_fixed_64bit_literal697 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_bool_literal_in_fixed_64bit_literal705 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal722 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_long_literal_in_fixed_32bit_literal730 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_short_literal_in_fixed_32bit_literal738 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_byte_literal_in_fixed_32bit_literal746 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal754 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_char_literal_in_fixed_32bit_literal762 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_bool_literal_in_fixed_32bit_literal770 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_ARRAY_ELEMENTS_in_array_elements792 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fixed_64bit_literal_number_in_array_elements801 = new BitSet(new long[]{0x0000004000404C08L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_I_PACKED_SWITCH_ELEMENTS_in_packed_switch_elements837 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_label_ref_in_packed_switch_elements846 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_I_SPARSE_SWITCH_ELEMENTS_in_sparse_switch_elements881 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_sparse_switch_elements891 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_sparse_switch_elements893 = new BitSet(new long[]{0x0000004000004C08L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_I_METHOD_in_method945 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_method_name_and_prototype_in_method953 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+ public static final BitSet FOLLOW_access_list_in_method961 = new BitSet(new long[]{0x0000000000000000L,0x4084000000000000L});
+ public static final BitSet FOLLOW_registers_directive_in_method988 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+ public static final BitSet FOLLOW_ordered_method_items_in_method1045 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_catches_in_method1053 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_parameters_in_method1061 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+ public static final BitSet FOLLOW_annotations_in_method1070 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_METHOD_PROTOTYPE_in_method_prototype1094 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_I_METHOD_RETURN_TYPE_in_method_prototype1097 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_type_descriptor_in_method_prototype1099 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_method_type_list_in_method_prototype1102 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_SIMPLE_NAME_in_method_name_and_prototype1120 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_method_name_and_prototype1122 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_method_type_list1156 = new BitSet(new long[]{0x0000000000008102L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_reference_type_descriptor_in_method_reference1185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_SIMPLE_NAME_in_method_reference1188 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_method_reference1190 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_reference_type_descriptor_in_field_reference1207 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_SIMPLE_NAME_in_field_reference1210 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field_reference1212 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_REGISTERS_in_registers_directive1238 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_I_LOCALS_in_registers_directive1250 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_short_integral_literal_in_registers_directive1268 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_LABEL_in_label_def1288 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_SIMPLE_NAME_in_label_def1290 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_CATCHES_in_catches1316 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_catch_directive_in_catches1318 = new BitSet(new long[]{0x0000000000000008L,0x0000000300000000L});
+ public static final BitSet FOLLOW_catchall_directive_in_catches1321 = new BitSet(new long[]{0x0000000000000008L,0x0000000200000000L});
+ public static final BitSet FOLLOW_I_CATCH_in_catch_directive1334 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive1336 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_catch_directive1340 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_catch_directive1344 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_catch_directive1348 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_CATCHALL_in_catchall_directive1364 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_label_ref_in_catchall_directive1368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_catchall_directive1372 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_catchall_directive1376 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_PARAMETERS_in_parameters1393 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_parameter_in_parameters1396 = new BitSet(new long[]{0x0000000000000008L,0x0400000000000000L});
+ public static final BitSet FOLLOW_I_PARAMETER_in_parameter1412 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_REGISTER_in_parameter1414 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_string_literal_in_parameter1416 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+ public static final BitSet FOLLOW_annotations_in_parameter1419 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_line_in_debug_directive1436 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_local_in_debug_directive1442 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_end_local_in_debug_directive1448 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_restart_local_in_debug_directive1454 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_prologue_in_debug_directive1460 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_epilogue_in_debug_directive1466 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_source_in_debug_directive1472 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_LINE_in_line1483 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_integral_literal_in_line1485 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_LOCAL_in_local1503 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_REGISTER_in_local1505 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0004000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_NULL_LITERAL_in_local1509 = new BitSet(new long[]{0x0000000000008108L,0x0000000000000000L,0x0200000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_string_literal_in_local1515 = new BitSet(new long[]{0x0000000000008108L,0x0000000000000000L,0x0200000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local1518 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_string_literal_in_local1523 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_END_LOCAL_in_end_local1544 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_REGISTER_in_end_local1546 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_RESTART_LOCAL_in_restart_local1564 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_REGISTER_in_restart_local1566 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_PROLOGUE_in_prologue1583 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_EPILOGUE_in_epilogue1599 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_SOURCE_in_source1616 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_string_literal_in_source1618 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_ORDERED_METHOD_ITEMS_in_ordered_method_items1637 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_label_def_in_ordered_method_items1640 = new BitSet(new long[]{0x0000000000000008L,0x2003830000000000L,0x000000FFFFFFFFF6L});
+ public static final BitSet FOLLOW_instruction_in_ordered_method_items1644 = new BitSet(new long[]{0x0000000000000008L,0x2003830000000000L,0x000000FFFFFFFFF6L});
+ public static final BitSet FOLLOW_debug_directive_in_ordered_method_items1648 = new BitSet(new long[]{0x0000000000000008L,0x2003830000000000L,0x000000FFFFFFFFF6L});
+ public static final BitSet FOLLOW_SIMPLE_NAME_in_label_ref1664 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_REGISTER_LIST_in_register_list1689 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_REGISTER_in_register_list1698 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_I_REGISTER_RANGE_in_register_range1723 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_REGISTER_in_register_range1728 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_register_range1732 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference1755 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_field_reference_in_verification_error_reference1765 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_method_reference_in_verification_error_reference1775 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_verification_error_type1792 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format10t_in_instruction1806 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format10x_in_instruction1812 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format11n_in_instruction1818 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format11x_in_instruction1824 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format12x_in_instruction1830 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format20bc_in_instruction1836 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format20t_in_instruction1842 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21c_field_in_instruction1848 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21c_string_in_instruction1854 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21c_type_in_instruction1860 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21ih_in_instruction1866 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21lh_in_instruction1872 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21s_in_instruction1878 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format21t_in_instruction1884 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22b_in_instruction1890 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22c_field_in_instruction1896 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22c_type_in_instruction1902 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22s_in_instruction1908 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22t_in_instruction1914 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format22x_in_instruction1920 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format23x_in_instruction1926 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format30t_in_instruction1932 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format31c_in_instruction1938 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format31i_in_instruction1944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format31t_in_instruction1950 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format32x_in_instruction1956 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format35c_method_in_instruction1962 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format35c_type_in_instruction1968 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format3rc_method_in_instruction1974 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format3rc_type_in_instruction1980 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format45cc_method_in_instruction1986 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format4rcc_method_in_instruction1992 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_format51l_type_in_instruction1998 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_array_data_directive_in_instruction2004 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_packed_switch_directive_in_instruction2010 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insn_sparse_switch_directive_in_instruction2016 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT10t_in_insn_format10t2040 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t2042 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format10t2044 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT10x_in_insn_format10x2067 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x2069 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT11n_in_insn_format11n2092 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n2094 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format11n2096 = new BitSet(new long[]{0x0000000000004800L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_short_integral_literal_in_insn_format11n2098 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT11x_in_insn_format11x2121 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x2123 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format11x2125 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT12x_in_insn_format12x2148 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_insn_format12x2150 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format12x2154 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format12x2158 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT20bc_in_insn_format20bc2181 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc2183 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_verification_error_type_in_insn_format20bc2185 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_verification_error_reference_in_insn_format20bc2187 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT20t_in_insn_format20t2210 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t2212 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format20t2214 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_FIELD_in_insn_format21c_field2237 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_set_in_insn_format21c_field2241 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field2249 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_field_reference_in_insn_format21c_field2251 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_STRING_in_insn_format21c_string2274 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string2276 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21c_string2278 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_string_literal_in_insn_format21c_string2280 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT21c_TYPE_in_insn_format21c_type2303 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type2305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21c_type2307 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type2309 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT21ih_in_insn_format21ih2332 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih2334 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21ih2336 = new BitSet(new long[]{0x0000004000004C00L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21ih2338 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT21lh_in_insn_format21lh2361 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh2363 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21lh2365 = new BitSet(new long[]{0x0000004000404C00L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_fixed_64bit_literal_in_insn_format21lh2367 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT21s_in_insn_format21s2390 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s2392 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21s2394 = new BitSet(new long[]{0x0000000000004800L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_short_integral_literal_in_insn_format21s2396 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT21t_in_insn_format21t2419 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t2421 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format21t2423 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format21t2425 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT22b_in_insn_format22b2448 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b2450 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22b2454 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22b2458 = new BitSet(new long[]{0x0000000000004800L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_short_integral_literal_in_insn_format22b2460 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_FIELD_in_insn_format22c_field2483 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_set_in_insn_format22c_field2487 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field2497 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field2501 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_field_reference_in_insn_format22c_field2503 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT22c_TYPE_in_insn_format22c_type2526 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type2528 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type2532 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type2536 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type2538 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT22s_in_insn_format22s2561 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_insn_format22s2563 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22s2567 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22s2571 = new BitSet(new long[]{0x0000000000004800L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_short_integral_literal_in_insn_format22s2573 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT22t_in_insn_format22t2596 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t2598 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22t2602 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22t2606 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format22t2608 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT22x_in_insn_format22x2631 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x2633 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22x2637 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format22x2641 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT23x_in_insn_format23x2664 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x2666 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format23x2670 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format23x2674 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format23x2678 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT30t_in_insn_format30t2701 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t2703 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format30t2705 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT31c_in_insn_format31c2728 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c2730 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format31c2732 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_string_literal_in_insn_format31c2734 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT31i_in_insn_format31i2757 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_insn_format31i2759 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format31i2761 = new BitSet(new long[]{0x0000004000004C00L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format31i2763 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT31t_in_insn_format31t2786 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t2788 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format31t2790 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_label_ref_in_insn_format31t2792 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT32x_in_insn_format32x2815 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x2817 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format32x2821 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format32x2825 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_METHOD_in_insn_format35c_method2848 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_insn_format35c_method2850 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format35c_method2852 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format35c_method2854 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT35c_TYPE_in_insn_format35c_type2877 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type2879 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format35c_type2881 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type2883 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_METHOD_in_insn_format3rc_method2906 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method2908 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_register_range_in_insn_format3rc_method2910 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method2912 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT3rc_TYPE_in_insn_format3rc_type2935 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type2937 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_register_range_in_insn_format3rc_type2939 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type2941 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT45cc_METHOD_in_insn_format45cc_method2964 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method2966 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_register_list_in_insn_format45cc_method2968 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format45cc_method2970 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_insn_format45cc_method2972 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT4rcc_METHOD_in_insn_format4rcc_method2995 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method2997 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_register_range_in_insn_format4rcc_method2999 = new BitSet(new long[]{0x0000000000008100L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_method_reference_in_insn_format4rcc_method3001 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
+ public static final BitSet FOLLOW_method_prototype_in_insn_format4rcc_method3003 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_FORMAT51l_in_insn_format51l_type3026 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l_type3028 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_REGISTER_in_insn_format51l_type3030 = new BitSet(new long[]{0x0000004000404C00L,0x0000000001000000L,0x4000400000000000L});
+ public static final BitSet FOLLOW_fixed_64bit_literal_in_insn_format51l_type3032 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_ARRAY_DATA_in_insn_array_data_directive3055 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_I_ARRAY_ELEMENT_SIZE_in_insn_array_data_directive3058 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_short_integral_literal_in_insn_array_data_directive3060 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_array_elements_in_insn_array_data_directive3063 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_PACKED_SWITCH_in_insn_packed_switch_directive3085 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_I_PACKED_SWITCH_START_KEY_in_insn_packed_switch_directive3088 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive3090 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_packed_switch_elements_in_insn_packed_switch_directive3093 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_STATEMENT_SPARSE_SWITCH_in_insn_sparse_switch_directive3117 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_sparse_switch_elements_in_insn_sparse_switch_directive3119 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor3140 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_array_descriptor3144 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_array_descriptor3172 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor3190 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor3198 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_array_descriptor_in_nonvoid_type_descriptor3206 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor3227 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_array_descriptor_in_reference_type_descriptor3235 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_VOID_TYPE_in_type_descriptor3255 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_descriptor3263 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_long_literal_in_short_integral_literal3281 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_short_integral_literal3293 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_short_literal_in_short_integral_literal3305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_char_literal_in_short_integral_literal3313 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_byte_literal_in_short_integral_literal3321 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_long_literal_in_integral_literal3336 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_integer_literal_in_integral_literal3348 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_short_literal_in_integral_literal3356 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_byte_literal_in_integral_literal3364 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INTEGER_LITERAL_in_integer_literal3380 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LONG_LITERAL_in_long_literal3395 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SHORT_LITERAL_in_short_literal3410 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BYTE_LITERAL_in_byte_literal3425 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal3440 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal3455 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CHAR_LITERAL_in_char_literal3470 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_string_literal3485 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOL_LITERAL_in_bool_literal3504 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_I_ENCODED_ARRAY_in_array_literal3526 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_literal_in_array_literal3529 = new BitSet(new long[]{0x000000400040CD08L,0x000000F001000000L,0x4204410000000000L,0x0000000000000044L});
+ public static final BitSet FOLLOW_I_ANNOTATIONS_in_annotations3554 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_annotation_in_annotations3557 = new BitSet(new long[]{0x0000000000000008L,0x0000000008000000L});
+ public static final BitSet FOLLOW_I_ANNOTATION_in_annotation3586 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation3588 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000010000000000L});
+ public static final BitSet FOLLOW_subannotation_in_annotation3590 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_ANNOTATION_ELEMENT_in_annotation_element3611 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_SIMPLE_NAME_in_annotation_element3613 = new BitSet(new long[]{0x000000400040CD00L,0x000000F001000000L,0x4204410000000000L,0x0000000000000044L});
+ public static final BitSet FOLLOW_literal_in_annotation_element3615 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_SUBANNOTATION_in_subannotation3642 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation3652 = new BitSet(new long[]{0x0000000000000008L,0x0000000020000000L});
+ public static final BitSet FOLLOW_annotation_element_in_subannotation3663 = new BitSet(new long[]{0x0000000000000008L,0x0000000020000000L});
+ public static final BitSet FOLLOW_I_ENCODED_FIELD_in_field_literal3702 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_field_reference_in_field_literal3704 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_ENCODED_METHOD_in_method_literal3725 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_method_reference_in_method_literal3727 = new BitSet(new long[]{0x0000000000000008L});
+ public static final BitSet FOLLOW_I_ENCODED_ENUM_in_enum_literal3748 = new BitSet(new long[]{0x0000000000000004L});
+ public static final BitSet FOLLOW_field_reference_in_enum_literal3750 = new BitSet(new long[]{0x0000000000000008L});
+}
diff --git a/util/Android.bp b/util/Android.bp
new file mode 100644
index 0000000..dc945c2
--- /dev/null
+++ b/util/Android.bp
@@ -0,0 +1,23 @@
+// Copyright (C) 2017 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+java_library_host {
+ name: "smali-util",
+ srcs: ["src/main/java/**/*.java"],
+ libs: [
+ "guava",
+ "jcommander",
+ "jsr305",
+ ],
+}