diff --git a/com.ibm.wala.cast.java.polyglot.test/META-INF/MANIFEST.MF b/com.ibm.wala.cast.java.polyglot.test/META-INF/MANIFEST.MF index 5f8c7afea..324da130b 100644 --- a/com.ibm.wala.cast.java.polyglot.test/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.java.polyglot.test/META-INF/MANIFEST.MF @@ -15,5 +15,5 @@ Require-Bundle: com.ibm.wala.cast;bundle-version="1.0.0", com.ibm.wala.cast.java.polyglot;bundle-version="1.0.0", org.junit;bundle-version="4.0.0", com.ibm.wala.cast.java.test.data;bundle-version="1.3.4" -Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy diff --git a/com.ibm.wala.cast.java.polyglot/.classpath b/com.ibm.wala.cast.java.polyglot/.classpath index 0cae0feeb..67a54585b 100644 --- a/com.ibm.wala.cast.java.polyglot/.classpath +++ b/com.ibm.wala.cast.java.polyglot/.classpath @@ -1,9 +1,9 @@ - + - + diff --git a/com.ibm.wala.cast.java.polyglot/META-INF/MANIFEST.MF b/com.ibm.wala.cast.java.polyglot/META-INF/MANIFEST.MF index 9a3cf5f5c..f88356fc0 100644 --- a/com.ibm.wala.cast.java.polyglot/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.java.polyglot/META-INF/MANIFEST.MF @@ -11,7 +11,7 @@ Require-Bundle: com.ibm.wala.cast.java, com.ibm.wala.shrike, org.eclipse.jdt.core, org.eclipse.core.resources -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Export-Package: com.ibm.wala.cast.java.translator.polyglot; uses:="com.ibm.wala.types, diff --git a/com.ibm.wala.cast.java.polyglot/source/com/ibm/wala/cast/java/translator/polyglot/PolyglotIdentityMapper.java b/com.ibm.wala.cast.java.polyglot/source/com/ibm/wala/cast/java/translator/polyglot/PolyglotIdentityMapper.java index bed2f1069..aac7f1034 100644 --- a/com.ibm.wala.cast.java.polyglot/source/com/ibm/wala/cast/java/translator/polyglot/PolyglotIdentityMapper.java +++ b/com.ibm.wala.cast.java.polyglot/source/com/ibm/wala/cast/java/translator/polyglot/PolyglotIdentityMapper.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * */ diff --git a/com.ibm.wala.cast.java.test.data/.classpath b/com.ibm.wala.cast.java.test.data/.classpath index 16d067f28..e8ea977a6 100644 --- a/com.ibm.wala.cast.java.test.data/.classpath +++ b/com.ibm.wala.cast.java.test.data/.classpath @@ -2,6 +2,6 @@ - + diff --git a/com.ibm.wala.cast.java.test.data/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast.java.test.data/.settings/org.eclipse.jdt.core.prefs index e1b29887d..aa57fa7df 100644 --- a/com.ibm.wala.cast.java.test.data/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast.java.test.data/.settings/org.eclipse.jdt.core.prefs @@ -6,9 +6,9 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annota org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate @@ -105,7 +105,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disa org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.7 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 diff --git a/com.ibm.wala.cast.java.test.data/META-INF/.zip b/com.ibm.wala.cast.java.test.data/META-INF/.zip new file mode 100644 index 000000000..aec731a45 Binary files /dev/null and b/com.ibm.wala.cast.java.test.data/META-INF/.zip differ diff --git a/com.ibm.wala.cast.java.test.data/META-INF/MANIFEST.MF b/com.ibm.wala.cast.java.test.data/META-INF/MANIFEST.MF index 069629ab7..e46e9112f 100644 --- a/com.ibm.wala.cast.java.test.data/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.java.test.data/META-INF/MANIFEST.MF @@ -4,5 +4,5 @@ Bundle-Name: Data Plug-in Bundle-SymbolicName: com.ibm.wala.cast.java.test.data Bundle-Version: 1.3.4.qualifier Bundle-Vendor: IBM -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.cast.java.test.data/build.xml b/com.ibm.wala.cast.java.test.data/build.xml index ff4149598..6518a794a 100644 --- a/com.ibm.wala.cast.java.test.data/build.xml +++ b/com.ibm.wala.cast.java.test.data/build.xml @@ -12,8 +12,8 @@ - - + + @@ -78,7 +78,7 @@ - + diff --git a/com.ibm.wala.cast.java.test/.classpath b/com.ibm.wala.cast.java.test/.classpath index 4c62a8048..16d067f28 100644 --- a/com.ibm.wala.cast.java.test/.classpath +++ b/com.ibm.wala.cast.java.test/.classpath @@ -2,6 +2,6 @@ - + diff --git a/com.ibm.wala.cast.java.test/META-INF/MANIFEST.MF b/com.ibm.wala.cast.java.test/META-INF/MANIFEST.MF index c7c723d1d..477ab3fac 100644 --- a/com.ibm.wala.cast.java.test/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.java.test/META-INF/MANIFEST.MF @@ -14,4 +14,4 @@ Require-Bundle: com.ibm.wala.core.tests, org.junit;bundle-version="4.0.0" Bundle-ActivationPolicy: lazy Export-Package: com.ibm.wala.cast.java.test -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.cast.java/.classpath b/com.ibm.wala.cast.java/.classpath index 4c62a8048..16d067f28 100644 --- a/com.ibm.wala.cast.java/.classpath +++ b/com.ibm.wala.cast.java/.classpath @@ -2,6 +2,6 @@ - + diff --git a/com.ibm.wala.cast.java/META-INF/MANIFEST.MF b/com.ibm.wala.cast.java/META-INF/MANIFEST.MF index a312ba006..c9548bd5e 100644 --- a/com.ibm.wala.cast.java/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.java/META-INF/MANIFEST.MF @@ -23,4 +23,4 @@ Export-Package: com.ibm.wala.cast.java, com.ibm.wala.cast.java.translator, com.ibm.wala.cast.java.types Bundle-ClassPath: . -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.cast.js.html.nu_validator/.classpath b/com.ibm.wala.cast.js.html.nu_validator/.classpath index 775e230a8..d883029ec 100644 --- a/com.ibm.wala.cast.js.html.nu_validator/.classpath +++ b/com.ibm.wala.cast.js.html.nu_validator/.classpath @@ -3,7 +3,7 @@ - + diff --git a/com.ibm.wala.cast.js.html.nu_validator/META-INF/MANIFEST.MF b/com.ibm.wala.cast.js.html.nu_validator/META-INF/MANIFEST.MF index 0cea875e5..6c6055d4b 100644 --- a/com.ibm.wala.cast.js.html.nu_validator/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.js.html.nu_validator/META-INF/MANIFEST.MF @@ -12,6 +12,6 @@ Require-Bundle: com.ibm.wala.cast.js;bundle-version="1.0.0", com.ibm.wala.core.tests;bundle-version="1.1.3", com.ibm.wala.core;bundle-version="1.1.3", org.junit;bundle-version="4.8.1" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ClassPath: ., lib/htmlparser-1.4.jar diff --git a/com.ibm.wala.cast.js.rhino.test/META-INF/MANIFEST.MF b/com.ibm.wala.cast.js.rhino.test/META-INF/MANIFEST.MF index 85d14e67e..76b1542e1 100644 --- a/com.ibm.wala.cast.js.rhino.test/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.js.rhino.test/META-INF/MANIFEST.MF @@ -13,7 +13,7 @@ Require-Bundle: com.ibm.wala.cast.js.rhino;bundle-version="1.0.0", com.ibm.wala.core.tests;bundle-version="1.1.3", com.ibm.wala.cast.js.test.data;bundle-version="1.3.4", org.junit;bundle-version="4.0.0" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Export-Package: com.ibm.wala.cast.js.rhino.callgraph.fieldbased.test, com.ibm.wala.cast.js.rhino.test, diff --git a/com.ibm.wala.cast.js.rhino/.classpath b/com.ibm.wala.cast.js.rhino/.classpath index 41ccd7f97..d9149e76e 100644 --- a/com.ibm.wala.cast.js.rhino/.classpath +++ b/com.ibm.wala.cast.js.rhino/.classpath @@ -2,7 +2,7 @@ - + diff --git a/com.ibm.wala.cast.js.rhino/META-INF/MANIFEST.MF b/com.ibm.wala.cast.js.rhino/META-INF/MANIFEST.MF index c0fa3d389..cf1a88e7f 100644 --- a/com.ibm.wala.cast.js.rhino/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.js.rhino/META-INF/MANIFEST.MF @@ -9,7 +9,7 @@ Require-Bundle: org.eclipse.core.runtime, com.ibm.wala.cast;bundle-version="1.0.0", com.ibm.wala.cast.js;bundle-version="1.0.0", com.ibm.wala.core;bundle-version="1.1.3" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Export-Package: com.ibm.wala.cast.js.translator, com.ibm.wala.js.rhino, diff --git a/com.ibm.wala.cast.js.test.data/META-INF/MANIFEST.MF b/com.ibm.wala.cast.js.test.data/META-INF/MANIFEST.MF index b2ae39a6d..7a5c5896a 100644 --- a/com.ibm.wala.cast.js.test.data/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.js.test.data/META-INF/MANIFEST.MF @@ -8,4 +8,4 @@ Bundle-Vendor: %providerName Bundle-Localization: plugin Bundle-ActivationPolicy: lazy Bundle-ClassPath: examples-src/ -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.cast.js.test/.classpath b/com.ibm.wala.cast.js.test/.classpath index 16223e57d..9531945e4 100755 --- a/com.ibm.wala.cast.js.test/.classpath +++ b/com.ibm.wala.cast.js.test/.classpath @@ -1,7 +1,7 @@ - + diff --git a/com.ibm.wala.cast.js.test/META-INF/MANIFEST.MF b/com.ibm.wala.cast.js.test/META-INF/MANIFEST.MF index 48fb7ecd9..68322f884 100755 --- a/com.ibm.wala.cast.js.test/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.js.test/META-INF/MANIFEST.MF @@ -15,4 +15,4 @@ Require-Bundle: com.ibm.wala.cast.js, org.junit;bundle-version="4.0.0" Bundle-ActivationPolicy: lazy Export-Package: com.ibm.wala.cast.js.test -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.cast.js/.classpath b/com.ibm.wala.cast.js/.classpath index 8fa581ee2..3f0323b0e 100644 --- a/com.ibm.wala.cast.js/.classpath +++ b/com.ibm.wala.cast.js/.classpath @@ -4,7 +4,6 @@ - - + diff --git a/com.ibm.wala.cast.js/META-INF/MANIFEST.MF b/com.ibm.wala.cast.js/META-INF/MANIFEST.MF index f4f8da6cf..c0a7cce7e 100644 --- a/com.ibm.wala.cast.js/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.js/META-INF/MANIFEST.MF @@ -4,8 +4,7 @@ Bundle-Name: JavaScript Plug-in Bundle-SymbolicName: com.ibm.wala.cast.js;singleton:=true Bundle-Version: 1.3.4.qualifier Bundle-ClassPath: ., - lib/jericho-html-3.2.jar, - lib/commons-io-2.4.jar + lib/jericho-html-3.2.jar Bundle-Activator: com.ibm.wala.cast.js.JavaScriptPlugin Bundle-Vendor: IBM Export-Package: ., @@ -38,4 +37,4 @@ Require-Bundle: com.ibm.wala.cast, org.eclipse.core.runtime;bundle-version="3.4.0", org.apache.commons.logging Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.cast.js/build.properties b/com.ibm.wala.cast.js/build.properties index bcb4b0204..dd5bf223d 100644 --- a/com.ibm.wala.cast.js/build.properties +++ b/com.ibm.wala.cast.js/build.properties @@ -1,7 +1,6 @@ bin.includes = .,\ META-INF/,\ lib/,\ - lib/commons-io-2.4.jar,\ lib/jericho-html-3.2.jar source.. = source/,\ dat/ diff --git a/com.ibm.wala.cast.js/build.xml b/com.ibm.wala.cast.js/build.xml index e1d254c60..19e0bed8a 100755 --- a/com.ibm.wala.cast.js/build.xml +++ b/com.ibm.wala.cast.js/build.xml @@ -36,10 +36,6 @@ - - - - @@ -47,19 +43,9 @@ - + - - - - - - - - - - - + diff --git a/com.ibm.wala.cast.js/pom.xml b/com.ibm.wala.cast.js/pom.xml index 1f723a625..9cee3cc44 100644 --- a/com.ibm.wala.cast.js/pom.xml +++ b/com.ibm.wala.cast.js/pom.xml @@ -22,13 +22,6 @@ - - commons-io - commons-io - 2.4 - jar - false - net.htmlparser.jericho jericho-html diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/modref/JavaScriptModRef.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/modref/JavaScriptModRef.java index e0755d136..21f43a048 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/modref/JavaScriptModRef.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/modref/JavaScriptModRef.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cast.js.ipa.modref; import java.util.Collection; diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/summaries/JavaScriptConstructorFunctions.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/summaries/JavaScriptConstructorFunctions.java index 3fe8580e3..197d7e5aa 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/summaries/JavaScriptConstructorFunctions.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/summaries/JavaScriptConstructorFunctions.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cast.js.ipa.summaries; import java.io.File; diff --git a/com.ibm.wala.cast.test/.classpath b/com.ibm.wala.cast.test/.classpath index f070691d3..9531945e4 100644 --- a/com.ibm.wala.cast.test/.classpath +++ b/com.ibm.wala.cast.test/.classpath @@ -2,6 +2,6 @@ - + diff --git a/com.ibm.wala.cast.test/META-INF/MANIFEST.MF b/com.ibm.wala.cast.test/META-INF/MANIFEST.MF index b04a11f95..7e451adc9 100644 --- a/com.ibm.wala.cast.test/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.test/META-INF/MANIFEST.MF @@ -12,5 +12,5 @@ Require-Bundle: com.ibm.wala.shrike, org.eclipse.core.runtime Export-Package: com.ibm.wala.cast.test -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.cast/.classpath b/com.ibm.wala.cast/.classpath index 3c7697b49..8d81a3c6b 100644 --- a/com.ibm.wala.cast/.classpath +++ b/com.ibm.wala.cast/.classpath @@ -1,7 +1,8 @@ - + + diff --git a/com.ibm.wala.cast/META-INF/MANIFEST.MF b/com.ibm.wala.cast/META-INF/MANIFEST.MF index 129af4fc9..581f770d7 100644 --- a/com.ibm.wala.cast/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast/META-INF/MANIFEST.MF @@ -9,6 +9,8 @@ Require-Bundle: com.ibm.wala.core, com.ibm.wala.shrike, org.eclipse.core.runtime Bundle-ActivationPolicy: lazy +Bundle-ClassPath: ., + lib/commons-io-2.4.jar Export-Package: com.ibm.wala.cast.analysis.typeInference, com.ibm.wala.cast.ipa.callgraph, com.ibm.wala.cast.ipa.cha, @@ -26,6 +28,8 @@ Export-Package: com.ibm.wala.cast.analysis.typeInference, com.ibm.wala.cast.tree.rewrite, com.ibm.wala.cast.tree.visit, com.ibm.wala.cast.types, - com.ibm.wala.cast.util -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 + com.ibm.wala.cast.util, + org.apache.commons.io, + org.apache.commons.io.input +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.cast/build.properties b/com.ibm.wala.cast/build.properties index ca8b8d16b..9c5e8d260 100644 --- a/com.ibm.wala.cast/build.properties +++ b/com.ibm.wala.cast/build.properties @@ -1,4 +1,5 @@ source.. = source/java/ output.. = bin/ bin.includes = META-INF/,\ + lib/commons-io-2.4.jar,\ . diff --git a/com.ibm.wala.cast/build.xml b/com.ibm.wala.cast/build.xml index 05a3ca3a8..3cc60d3e9 100644 --- a/com.ibm.wala.cast/build.xml +++ b/com.ibm.wala.cast/build.xml @@ -4,7 +4,7 @@ CAPA Domo build file ======================================================================= --> - + @@ -36,6 +36,36 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/com.ibm.wala.cast/pom.xml b/com.ibm.wala.cast/pom.xml index 46bda53b9..e67d7aa81 100644 --- a/com.ibm.wala.cast/pom.xml +++ b/com.ibm.wala.cast/pom.xml @@ -9,4 +9,30 @@ com.ibm.wala.cast eclipse-plugin + + + + maven-dependency-plugin + + + + copy + + + + + commons-io + commons-io + 2.4 + jar + false + + + ${basedir}/lib + + + + + + diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstHeapModel.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstHeapModel.java index 4660362ce..c800ffcb2 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstHeapModel.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstHeapModel.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cast.ipa.callgraph; import com.ibm.wala.ipa.modref.ExtendedHeapModel; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstCallGraphUtil.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstCallGraphUtil.java index afb19172f..ea64cc5c5 100755 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstCallGraphUtil.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstCallGraphUtil.java @@ -12,11 +12,15 @@ package com.ibm.wala.cast.ipa.callgraph; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.Collections; import java.util.Iterator; +import org.apache.commons.io.ByteOrderMark; +import org.apache.commons.io.input.BOMInputStream; + import com.ibm.wala.cast.loader.SingleClassLoaderFactory; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.Language; @@ -55,7 +59,23 @@ public class CAstCallGraphUtil { assert hackedName.endsWith(scriptName) : scriptName + " does not match file " + script.getFile(); - return new SourceFileModule(scriptFile, scriptName, null); + return new SourceFileModule(scriptFile, scriptName, null) { + @Override + public InputStream getInputStream() { + BOMInputStream bs = new BOMInputStream(super.getInputStream(), false, + ByteOrderMark.UTF_8, + ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_16BE, + ByteOrderMark.UTF_32LE, ByteOrderMark.UTF_32BE); + try { + if (bs.hasBOM()) { + System.err.println("removing BOM " + bs.getBOM()); + } + return bs; + } catch (IOException e) { + return super.getInputStream(); + } + } + }; } public static AnalysisScope makeScope(String[] files, SingleClassLoaderFactory loaders, Language language) throws IOException { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractClassEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractClassEntity.java index 46faaf4d0..7686a7c13 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractClassEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractClassEntity.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * */ diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractCodeEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractCodeEntity.java index 81f086265..3c44f746d 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractCodeEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractCodeEntity.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * */ diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractDataEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractDataEntity.java index 78b53c112..71694e25b 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractDataEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractDataEntity.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * */ diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractEntity.java index c2604e809..99026bb20 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractEntity.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * */ diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractFieldEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractFieldEntity.java index 90cc2d8e4..c8d68ebfa 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractFieldEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractFieldEntity.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * */ diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractGlobalEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractGlobalEntity.java index 9578f64a8..da709103a 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractGlobalEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractGlobalEntity.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * */ diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractScriptEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractScriptEntity.java index 301973d57..b77af1dd2 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractScriptEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractScriptEntity.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * */ diff --git a/com.ibm.wala.core.testdata/.classpath b/com.ibm.wala.core.testdata/.classpath index 4c62a8048..16d067f28 100644 --- a/com.ibm.wala.core.testdata/.classpath +++ b/com.ibm.wala.core.testdata/.classpath @@ -2,6 +2,6 @@ - + diff --git a/com.ibm.wala.core.testdata/META-INF/MANIFEST.MF b/com.ibm.wala.core.testdata/META-INF/MANIFEST.MF index 3ff1eac4a..4eb44a903 100644 --- a/com.ibm.wala.core.testdata/META-INF/MANIFEST.MF +++ b/com.ibm.wala.core.testdata/META-INF/MANIFEST.MF @@ -4,5 +4,5 @@ Bundle-Name: Testdata Plug-in Bundle-SymbolicName: com.ibm.wala.core.testdata Bundle-Version: 1.3.4.qualifier Bundle-Vendor: IBM -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Eclipse-BuddyPolicy: registered diff --git a/com.ibm.wala.core.testdata/src/demandpa/TestFieldsHarder.java b/com.ibm.wala.core.testdata/src/demandpa/TestFieldsHarder.java index 529375e56..b68b275e0 100644 --- a/com.ibm.wala.core.testdata/src/demandpa/TestFieldsHarder.java +++ b/com.ibm.wala.core.testdata/src/demandpa/TestFieldsHarder.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * Refinement Analysis Tools is Copyright (c) 2007 The Regents of the * University of California (Regents). Provided that this notice and diff --git a/com.ibm.wala.core.testdata/src/dynamicCG/ExtraClass.java b/com.ibm.wala.core.testdata/src/dynamicCG/ExtraClass.java index 4fedc456e..e84377e61 100644 --- a/com.ibm.wala.core.testdata/src/dynamicCG/ExtraClass.java +++ b/com.ibm.wala.core.testdata/src/dynamicCG/ExtraClass.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package dynamicCG; public class ExtraClass { diff --git a/com.ibm.wala.core.testdata/src/dynamicCG/MainClass.java b/com.ibm.wala.core.testdata/src/dynamicCG/MainClass.java index 1b94b10ef..74191a526 100644 --- a/com.ibm.wala.core.testdata/src/dynamicCG/MainClass.java +++ b/com.ibm.wala.core.testdata/src/dynamicCG/MainClass.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package dynamicCG; public class MainClass { diff --git a/com.ibm.wala.core.tests/.classpath b/com.ibm.wala.core.tests/.classpath index 331486565..b7e9d2d89 100644 --- a/com.ibm.wala.core.tests/.classpath +++ b/com.ibm.wala.core.tests/.classpath @@ -3,6 +3,6 @@ - + diff --git a/com.ibm.wala.core.tests/META-INF/MANIFEST.MF b/com.ibm.wala.core.tests/META-INF/MANIFEST.MF index 678eaf44b..878eb1542 100644 --- a/com.ibm.wala.core.tests/META-INF/MANIFEST.MF +++ b/com.ibm.wala.core.tests/META-INF/MANIFEST.MF @@ -13,16 +13,22 @@ Bundle-Localization: plugin Export-Package: com.ibm.wala.core.tests.basic, com.ibm.wala.core.tests.callGraph, com.ibm.wala.core.tests.cha, + com.ibm.wala.core.tests.collections, com.ibm.wala.core.tests.demandpa, com.ibm.wala.core.tests.ir, com.ibm.wala.core.tests.plugin, + com.ibm.wala.core.tests.ptrs, + com.ibm.wala.core.tests.shrike, com.ibm.wala.core.tests.slicer, + com.ibm.wala.core.tests.typeInference, com.ibm.wala.core.tests.util, com.ibm.wala.demandpa.driver, + com.ibm.wala.examples.analysis, com.ibm.wala.examples.analysis.dataflow, com.ibm.wala.examples.drivers, - com.ibm.wala.examples.properties -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 + com.ibm.wala.examples.properties, + com.ibm.wala.util.io +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Bundle-Activator: com.ibm.wala.core.tests.plugin.CoreTestsPlugin Eclipse-RegisterBuddy: com.ibm.wala.core, com.ibm.wala.core.testdata diff --git a/com.ibm.wala.core.tests/dat/java_cup.txt b/com.ibm.wala.core.tests/dat/java_cup.txt index 6f5e5f33c..c016ef069 100644 --- a/com.ibm.wala.core.tests/dat/java_cup.txt +++ b/com.ibm.wala.core.tests/dat/java_cup.txt @@ -1,3 +1,3 @@ Primordial,Java,stdlib,none Primordial,Java,jarFile,primordial.jar.model -Application,Java,jarFile,java-cup-11a.jar +Application,Java,jarFile,java-cup-11b.jar diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/basic/ExtensionGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/basic/ExtensionGraphTest.java index e6b8647f2..382c651b7 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/basic/ExtensionGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/basic/ExtensionGraphTest.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.core.tests.basic; import junit.framework.Assert; diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/Java7CallGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/Java7CallGraphTest.java index 2d235219f..ad8b4fb35 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/Java7CallGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/Java7CallGraphTest.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.core.tests.callGraph; import java.io.File; diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/SemiSparseMutableIntSetTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/SemiSparseMutableIntSetTest.java index 21fc11580..4b6527171 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/SemiSparseMutableIntSetTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/SemiSparseMutableIntSetTest.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Licensed Materials - Property of IBM * 5724-D15 diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/TwoLevelVectorTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/TwoLevelVectorTest.java index 60f5642b0..c11c33119 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/TwoLevelVectorTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/TwoLevelVectorTest.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Licensed Materials - Property of IBM * 5724-D15 diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/MultiDimArrayTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/MultiDimArrayTest.java index ccc5bdb2b..c2e5982ab 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/MultiDimArrayTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/MultiDimArrayTest.java @@ -66,7 +66,6 @@ public class MultiDimArrayTest extends WalaTestCase { CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCache(),cha, scope); CallGraph cg = builder.makeCallGraph(options, null); PointerAnalysis pa = builder.getPointerAnalysis(); - System.err.println(pa); CGNode node = findDoNothingNode(cg); PointerKey pk = pa.getHeapModel().getPointerKeyForLocal(node, 1); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTest.java index d86eef67b..b222d8ee7 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTest.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.core.tests.shrike; import java.io.IOException; diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTestBase.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTestBase.java index ea8829c2c..15172a54e 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTestBase.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTestBase.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.core.tests.shrike; import java.io.BufferedReader; @@ -27,6 +38,7 @@ import com.ibm.wala.types.Selector; import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.Predicate; import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.collections.Pair; import com.ibm.wala.util.io.TemporaryFile; public abstract class DynamicCallGraphTestBase extends WalaTestCase { @@ -66,7 +78,7 @@ public abstract class DynamicCallGraphTestBase extends WalaTestCase { } } - protected void run(String mainClass, String exclusionsFile) throws IOException, ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { + protected void run(String mainClass, String exclusionsFile, String... args) throws IOException, ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { String shrikeBin = getClasspathEntry("com.ibm.wala.shrike"); String utilBin = getClasspathEntry("com.ibm.wala.util"); URLClassLoader jcl = new URLClassLoader(new URL[]{ new URL("file://" + instrumentedJarLocation), new URL("file://" + shrikeBin), new URL("file://" + utilBin) }, DynamicCallGraphTestBase.class.getClassLoader().getParent()); @@ -77,14 +89,15 @@ public abstract class DynamicCallGraphTestBase extends WalaTestCase { Assert.assertNotNull(testMain); System.setProperty("dynamicCGFile", cgLocation); + System.setProperty("dynamicCGHandleMissing", "true"); if (exclusionsFile != null) { File tmpFile = TemporaryFile.urlToFile("exclusions.txt", getClass().getClassLoader().getResource(exclusionsFile)); System.setProperty("dynamicCGFilter", tmpFile.getCanonicalPath()); } try { - testMain.invoke(null, (Object)new String[0]); + testMain.invoke(null, args==null? new Object[0]: new Object[]{args}); } catch (Throwable e) { - // exceptions here are from program being instrumented + // exceptions here are from the instrumented program // this is fine, since we are collecting its call graph // and exceptions are possible behavior. } @@ -113,14 +126,21 @@ public abstract class DynamicCallGraphTestBase extends WalaTestCase { protected void checkEdges(CallGraph staticCG, Predicate filter) throws IOException { check(staticCG, new EdgesTest() { + private final Set> edges = HashSetFactory.make(); @Override public void edgesTest(CallGraph staticCG, CGNode caller, MethodReference calleeRef) { - Set nodes = staticCG.getNodes(calleeRef); - Assert.assertEquals(1, nodes.size()); - CGNode callee = nodes.iterator().next(); + if (! calleeRef.getName().equals(MethodReference.clinitName)) { + Set nodes = staticCG.getNodes(calleeRef); + Assert.assertEquals(1, nodes.size()); + CGNode callee = nodes.iterator().next(); - Assert.assertTrue("no edge for " + caller + " --> " + callee, staticCG.getPossibleSites(caller, callee).hasNext()); - System.err.println("found expected edge" + caller + " --> " + callee); + Assert.assertTrue("no edge for " + caller + " --> " + callee, staticCG.getPossibleSites(caller, callee).hasNext()); + Pair x = Pair.make(caller, callee); + if (! edges.contains(x)) { + edges.add(x); + System.err.println("found expected edge" + caller + " --> " + callee); + } + } } }, filter); } diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/CompareToZeroOneCFADriver.java b/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/CompareToZeroOneCFADriver.java index fa374278d..c41fbc0e8 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/CompareToZeroOneCFADriver.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/CompareToZeroOneCFADriver.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * Refinement Analysis Tools is Copyright (c) 2007 The Regents of the * University of California (Regents). Provided that this notice and diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/TestAgainstSimpleDriver.java b/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/TestAgainstSimpleDriver.java index dfc887096..b508471da 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/TestAgainstSimpleDriver.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/TestAgainstSimpleDriver.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * Refinement Analysis Tools is Copyright (c) 2007 The Regents of the * University of California (Regents). Provided that this notice and diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/InitializerTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/InitializerTest.java index 0e73a3e10..05c616036 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/InitializerTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/InitializerTest.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.examples.analysis.dataflow; import java.io.IOException; diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java index 5e491d3c7..7803cbf0d 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.examples.analysis.dataflow; import java.util.Collection; diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/java7/MethodHandles.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/java7/MethodHandles.java index 46b9df498..803970e4e 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/java7/MethodHandles.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/java7/MethodHandles.java @@ -271,19 +271,19 @@ public class MethodHandles { int params[] = new int[nargs]; for(int i = 0; i < nargs; i++) { code.addConstant(i+nargs+3, new ConstantValue(i)); - code.addStatement(insts.ArrayLoadInstruction(i+3, 1, i+nargs+3, TypeReference.JavaLangObject)); + code.addStatement(insts.ArrayLoadInstruction(code.getNextProgramCounter(), i+3, 1, i+nargs+3, TypeReference.JavaLangObject)); params[i] = i+3; } CallSiteReference site = CallSiteReference.make(nargs+1, ref, isStatic? Dispatch.STATIC: Dispatch.SPECIAL); - code.addStatement(insts.InvokeInstruction(2*nargs+3, params, 2*nargs+4, site)); - code.addStatement(insts.ReturnInstruction(2*nargs+3, false)); + code.addStatement(insts.InvokeInstruction(code.getNextProgramCounter(), 2*nargs+3, params, 2*nargs+4, site)); + code.addStatement(insts.ReturnInstruction(code.getNextProgramCounter(), 2*nargs+3, false)); } else { int nargs = node.getMethod().getNumberOfParameters(); } } else { assert isType(node); - code.addStatement(insts.LoadMetadataInstruction(2, TypeReference.JavaLangInvokeMethodType, ref.getDescriptor())); - code.addStatement(insts.ReturnInstruction(2, false)); + code.addStatement(insts.LoadMetadataInstruction(code.getNextProgramCounter(), 2, TypeReference.JavaLangInvokeMethodType, ref.getDescriptor())); + code.addStatement(insts.ReturnInstruction(code.getNextProgramCounter(), 2, false)); } irs.put(node, new SoftReference(m.makeIR(node.getContext(), SSAOptions.defaultOptions()))); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/ExceptionPruningAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/ExceptionPruningAnalysis.java index 5637b7eb1..290ac49d8 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/ExceptionPruningAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/ExceptionPruningAnalysis.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc; import com.ibm.wala.cfg.ControlFlowGraph; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/InterprocAnalysisResult.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/InterprocAnalysisResult.java index 8a2f1eb89..b3802b3e0 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/InterprocAnalysisResult.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/InterprocAnalysisResult.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc; import com.ibm.wala.cfg.IBasicBlock; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/NullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/NullPointerAnalysis.java index 15cf4b5a2..c47d68a85 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/NullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/NullPointerAnalysis.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc; import com.ibm.wala.cfg.exc.inter.InterprocNullPointerAnalysis; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/AnalysisUtil.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/AnalysisUtil.java index a860ae8f4..0c6d45cc5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/AnalysisUtil.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/AnalysisUtil.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.inter; import java.util.HashSet; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocAnalysisResultWrapper.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocAnalysisResultWrapper.java index 0470364a4..e703406b3 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocAnalysisResultWrapper.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocAnalysisResultWrapper.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.inter; import java.util.Map; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocMethodState.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocMethodState.java index b96fd94a6..f0ded3e12 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocMethodState.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocMethodState.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.inter; import java.util.Map; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocNullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocNullPointerAnalysis.java index 4755a250a..4182e6050 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocNullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/InterprocNullPointerAnalysis.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.inter; import java.util.HashMap; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/IntraprocAnalysisState.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/IntraprocAnalysisState.java index 0e5cfaab3..837d99590 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/IntraprocAnalysisState.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/inter/IntraprocAnalysisState.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.inter; import java.util.HashMap; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/ExplodedCFGNullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/ExplodedCFGNullPointerAnalysis.java index 87e1940d4..e8c2b976f 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/ExplodedCFGNullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/ExplodedCFGNullPointerAnalysis.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import java.util.List; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java index 9edabdfa8..af69624e7 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import java.util.Collection; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MethodState.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MethodState.java index 553b24d53..9b2afbea8 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MethodState.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MethodState.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MutableCFG.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MutableCFG.java index 256e1c0bb..b93e93db4 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MutableCFG.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MutableCFG.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import java.util.Collection; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NegativeGraphFilter.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NegativeGraphFilter.java index 20f4a7206..b4372aaa6 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NegativeGraphFilter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NegativeGraphFilter.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import com.ibm.wala.cfg.IBasicBlock; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerFrameWork.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerFrameWork.java index 5e648a60a..311cad7be 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerFrameWork.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerFrameWork.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import com.ibm.wala.cfg.ControlFlowGraph; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java index 4ffa43f2d..d32397ac6 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import com.ibm.wala.dataflow.graph.AbstractMeetOperator; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerTransferFunctionProvider.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerTransferFunctionProvider.java index a59c649a7..83a5d0685 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerTransferFunctionProvider.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerTransferFunctionProvider.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import com.ibm.wala.cfg.ControlFlowGraph; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/ParameterState.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/ParameterState.java index f35ea61dd..072cad369 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/ParameterState.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/ParameterState.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import java.util.HashMap; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/SSACFGNullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/SSACFGNullPointerAnalysis.java index 054fce395..1ea2d3c84 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/SSACFGNullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/SSACFGNullPointerAnalysis.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cfg.exc.intra; import java.util.List; diff --git a/com.ibm.wala.core/src/com/ibm/wala/classLoader/JarStreamModule.java b/com.ibm.wala.core/src/com/ibm/wala/classLoader/JarStreamModule.java index d52d90b10..d74c9fa06 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/classLoader/JarStreamModule.java +++ b/com.ibm.wala.core/src/com/ibm/wala/classLoader/JarStreamModule.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.classLoader; import java.io.ByteArrayInputStream; diff --git a/com.ibm.wala.core/src/com/ibm/wala/classLoader/JavaLanguage.java b/com.ibm.wala.core/src/com/ibm/wala/classLoader/JavaLanguage.java index 7bc4aa9ce..b365ae992 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/classLoader/JavaLanguage.java +++ b/com.ibm.wala.core/src/com/ibm/wala/classLoader/JavaLanguage.java @@ -117,7 +117,7 @@ public class JavaLanguage extends LanguageImpl implements BytecodeLanguage, Cons public SSABinaryOpInstruction BinaryOpInstruction(int iindex, IBinaryOpInstruction.IOperator operator, boolean overflow, boolean unsigned, int result, int val1, int val2, boolean mayBeInteger) { assert !overflow; - assert (!unsigned) : "BinaryOpInstuction: unsigned disallowed! iIndex: " + iindex + ", operation: " + val1 + " " + operator.toString() + " " + val2 ; + // assert (!unsigned) : "BinaryOpInstuction: unsigned disallowed! iIndex: " + iindex + ", operation: " + val1 + " " + operator.toString() + " " + val2 ; return new SSABinaryOpInstruction(iindex, operator, result, val1, val2, mayBeInteger) { @Override diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ICFGSupergraph.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ICFGSupergraph.java index 72e24408f..ef9e7cbb9 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ICFGSupergraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ICFGSupergraph.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /******************************************************************************* * Licensed Materials - Property of IBM * diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/KillEverything.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/KillEverything.java index d4087f109..c591f1e36 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/KillEverything.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/KillEverything.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /******************************************************************************* * Licensed Materials - Property of IBM * diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/UnionContextSelector.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/UnionContextSelector.java index 074c4118b..e7e079989 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/UnionContextSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/UnionContextSelector.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.ipa.callgraph.impl; import com.ibm.wala.classLoader.CallSiteReference; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SelectiveCPAContext.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SelectiveCPAContext.java index 1912a1466..09cc8170d 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SelectiveCPAContext.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SelectiveCPAContext.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.ipa.callgraph.propagation; import java.util.HashMap; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/FallbackContextInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/FallbackContextInterpreter.java index 7a735d115..b1fa8ac2b 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/FallbackContextInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/FallbackContextInterpreter.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * This file is part of the Joana IFC project. It is developed at the * Programming Paradigms Group of the Karlsruhe Institute of Technology. diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/CallGraphPruning.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/CallGraphPruning.java index 1c4607fd0..8b651f153 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/CallGraphPruning.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/CallGraphPruning.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.ipa.callgraph.pruned; import java.util.HashSet; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/DoNotPrune.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/DoNotPrune.java index 2ea94bfa3..32cc4f581 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/DoNotPrune.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/DoNotPrune.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.ipa.callgraph.pruned; import com.ibm.wala.ipa.callgraph.CGNode; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PrunedCallGraph.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PrunedCallGraph.java index cee3e1775..d66bc6ee1 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PrunedCallGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PrunedCallGraph.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.ipa.callgraph.pruned; import java.util.Collection; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PruningPolicy.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PruningPolicy.java index 796daf212..f1f241993 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PruningPolicy.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PruningPolicy.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.ipa.callgraph.pruned; import com.ibm.wala.ipa.callgraph.CGNode; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/modref/ModRefFieldAccess.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/modref/ModRefFieldAccess.java old mode 100755 new mode 100644 index dbea55c7c..610336ba1 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/modref/ModRefFieldAccess.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/modref/ModRefFieldAccess.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.ipa.modref; import java.util.HashMap; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/PDG.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/PDG.java index 6b84c107d..f8b817d42 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/PDG.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/PDG.java @@ -534,8 +534,10 @@ public class PDG implements NumberedGraph { continue; } if (pei instanceof SSAAbstractInvokeInstruction) { - Statement st = new ExceptionalReturnCaller(node, index); - delegate.addEdge(st, s); + if (! dOptions.isIgnoreExceptions()) { + Statement st = new ExceptionalReturnCaller(node, index); + delegate.addEdge(st, s); + } } else { delegate.addEdge(new NormalStatement(node, index), s); } @@ -560,8 +562,10 @@ public class PDG implements NumberedGraph { if (d instanceof SSAAbstractInvokeInstruction) { SSAAbstractInvokeInstruction call = (SSAAbstractInvokeInstruction) d; if (vn == call.getException()) { - Statement st = new ExceptionalReturnCaller(node, instructionIndices.get(d)); - delegate.addEdge(st, pac); + if (! dOptions.isIgnoreExceptions()) { + Statement st = new ExceptionalReturnCaller(node, instructionIndices.get(d)); + delegate.addEdge(st, pac); + } } else { Statement st = new NormalReturnCaller(node, instructionIndices.get(d)); delegate.addEdge(st, pac); diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/SummarizedMethodWithNames.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/SummarizedMethodWithNames.java index 150a7f555..9f5c71a2f 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/SummarizedMethodWithNames.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/SummarizedMethodWithNames.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/VolatileMethodSummary.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/VolatileMethodSummary.java index 458306600..0d6944ce4 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/VolatileMethodSummary.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/VolatileMethodSummary.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/properties/WalaProperties.java b/com.ibm.wala.core/src/com/ibm/wala/properties/WalaProperties.java index a408e65a9..c05480955 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/properties/WalaProperties.java +++ b/com.ibm.wala.core/src/com/ibm/wala/properties/WalaProperties.java @@ -37,6 +37,10 @@ public final class WalaProperties { public final static String ECLIPSE_PLUGINS_DIR = "eclipse_plugins_dir"; //$NON-NLS-1$ + public final static String ANDROID_RT_JAR = "android_rt_jar"; + + public final static String ANDROID_DEX_TOOL = "android_dx_tool"; + /** * Determine the classpath noted in wala.properties for J2SE standard libraries * diff --git a/com.ibm.wala.core/src/com/ibm/wala/ssa/SSABuilder.java b/com.ibm.wala.core/src/com/ibm/wala/ssa/SSABuilder.java index 83a4b348e..4b43fb426 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ssa/SSABuilder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ssa/SSABuilder.java @@ -277,11 +277,6 @@ public class SSABuilder extends AbstractIntStackMachine { // // (note that this bizarre state really happened, in java_cup) // - // SJF: I don't understand how this is supposed to work. It - // causes a bug right now in normal cases, so I'm commenting it out - // for now. If there's a problem, let's add a regression test - // to catch it. - // entryState.push(symbolTable.newSymbol()); } @@ -904,7 +899,7 @@ public class SSABuilder extends AbstractIntStackMachine { * Build the IR */ public void build() { - solve(); + solve(); if (localMap != null) { localMap.finishLocalMap(this); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/PrimitiveAssignability.java b/com.ibm.wala.core/src/com/ibm/wala/util/PrimitiveAssignability.java index 8b32c86c3..b56f232d2 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/PrimitiveAssignability.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/PrimitiveAssignability.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ClassLookupException.java b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ClassLookupException.java index 8b6766dad..bfff83804 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ClassLookupException.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ClassLookupException.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/IInstantiator.java b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/IInstantiator.java index bc2018602..3b844712a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/IInstantiator.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/IInstantiator.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ParameterAccessor.java b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ParameterAccessor.java index 87d0b396a..da82f9726 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ParameterAccessor.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ParameterAccessor.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/SSAValue.java b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/SSAValue.java index 6a34aae81..ae6a98533 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/SSAValue.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/SSAValue.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/SSAValueManager.java b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/SSAValueManager.java index 08f064a25..816147350 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/SSAValueManager.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/SSAValueManager.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/TypeSafeInstructionFactory.java b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/TypeSafeInstructionFactory.java index c4343de30..07f88089a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/TypeSafeInstructionFactory.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/TypeSafeInstructionFactory.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/package-info.java b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/package-info.java index e0ccd6ed7..88f11c265 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/package-info.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/package-info.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik.test/.classpath b/com.ibm.wala.dalvik.test/.classpath new file mode 100644 index 000000000..55f3355f5 --- /dev/null +++ b/com.ibm.wala.dalvik.test/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/com.ibm.wala.dalvik.test/.project b/com.ibm.wala.dalvik.test/.project new file mode 100644 index 000000000..741fa3f33 --- /dev/null +++ b/com.ibm.wala.dalvik.test/.project @@ -0,0 +1,28 @@ + + + com.ibm.wala.dalvik.test + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF b/com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF new file mode 100644 index 000000000..7bd71e1c3 --- /dev/null +++ b/com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: WalaDalvikBytecodeTests +Bundle-SymbolicName: com.ibm.wala.dalvik.test +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: com.ibm.wala.dalvik.test.Activator +Bundle-Vendor: IBM +Require-Bundle: org.eclipse.core.runtime, + com.ibm.wala.core.testdata;bundle-version="1.3.4", + com.ibm.wala.core.tests;bundle-version="1.3.4", + com.ibm.wala.dalvik;bundle-version="1.0.0", + com.ibm.wala.core;bundle-version="1.3.4", + com.ibm.wala.shrike;bundle-version="1.3.4", + org.junit4;bundle-version="4.8.1" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.dalvik.test/build.properties b/com.ibm.wala.dalvik.test/build.properties new file mode 100644 index 000000000..20556c948 --- /dev/null +++ b/com.ibm.wala.dalvik.test/build.properties @@ -0,0 +1,5 @@ +source.. = source/,\ + data/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/com.ibm.wala.dalvik.test/build.xml b/com.ibm.wala.dalvik.test/build.xml new file mode 100644 index 000000000..5d5980cba --- /dev/null +++ b/com.ibm.wala.dalvik.test/build.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/com.ibm.wala.dalvik.test/data/LibraryExclusions.txt b/com.ibm.wala.dalvik.test/data/LibraryExclusions.txt new file mode 100644 index 000000000..9d47ac021 --- /dev/null +++ b/com.ibm.wala.dalvik.test/data/LibraryExclusions.txt @@ -0,0 +1,2 @@ +sun\/.* +java\/.* \ No newline at end of file diff --git a/com.ibm.wala.dalvik.test/parser.java b/com.ibm.wala.dalvik.test/parser.java new file mode 100644 index 000000000..cc51f7b9d --- /dev/null +++ b/com.ibm.wala.dalvik.test/parser.java @@ -0,0 +1,1755 @@ + +//---------------------------------------------------- +// The following code was generated by CUP v0.11b 20140808 (SVN rev 54) +//---------------------------------------------------- + +import java_cup.runtime.*; +import java.util.*; +import java_cup.runtime.XMLElement; + +/** CUP v0.11b 20140808 (SVN rev 54) generated parser. + */ +@SuppressWarnings({"rawtypes"}) +public class parser extends java_cup.runtime.lr_parser { + + public final Class getSymbolContainer() { + return sym.class; +} + + /** Default constructor. */ + public parser() {super();} + + /** Constructor which sets the default scanner. */ + public parser(java_cup.runtime.Scanner s) {super(s);} + + /** Constructor which sets the default scanner. */ + public parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);} + + /** Production table. */ + protected static final short _production_table[][] = + unpackFromStrings(new String[] { + "\000\135\000\002\023\002\000\002\002\004\000\002\002" + + "\004\000\002\024\002\000\002\002\005\000\002\003\004" + + "\000\002\003\004\000\002\003\002\000\002\025\002\000" + + "\002\007\006\000\002\026\002\000\002\027\002\000\002" + + "\030\002\000\002\007\011\000\002\031\002\000\002\007" + + "\006\000\002\032\002\000\002\033\002\000\002\034\002" + + "\000\002\007\011\000\002\035\002\000\002\007\010\000" + + "\002\036\002\000\002\037\002\000\002\040\002\000\002" + + "\010\012\000\002\041\002\000\002\011\010\000\002\042" + + "\002\000\002\043\002\000\002\011\010\000\002\011\004" + + "\000\002\011\004\000\002\011\004\000\002\044\002\000" + + "\002\045\002\000\002\046\002\000\002\010\012\000\002" + + "\047\002\000\002\013\010\000\002\050\002\000\002\013" + + "\007\000\002\013\004\000\002\013\004\000\002\013\004" + + "\000\002\051\002\000\002\052\002\000\002\053\002\000" + + "\002\010\012\000\002\054\002\000\002\012\010\000\002" + + "\055\002\000\002\012\007\000\002\012\004\000\002\012" + + "\004\000\002\012\004\000\002\014\002\000\002\014\003" + + "\000\002\056\002\000\002\015\005\000\002\057\002\000" + + "\002\016\005\000\002\016\002\000\002\060\002\000\002" + + "\017\005\000\002\017\005\000\002\061\002\000\002\017" + + "\005\000\002\020\003\000\002\021\003\000\002\021\003" + + "\000\002\021\003\000\002\020\003\000\002\020\003\000" + + "\002\020\003\000\002\020\003\000\002\020\003\000\002" + + "\020\003\000\002\020\003\000\002\020\003\000\002\020" + + "\003\000\002\004\002\000\002\062\002\000\002\004\006" + + "\000\002\005\002\000\002\063\002\000\002\005\006\000" + + "\002\006\003\000\002\006\003\000\002\064\002\000\002" + + "\006\005\000\002\022\004\000\002\022\003" }); + + /** Access to production table. */ + public short[][] production_table() {return _production_table;} + + /** Parse-action table. */ + protected static final short[][] _action_table = + unpackFromStrings(new String[] { + "\000\236\000\052\002\001\004\001\005\001\006\001\007" + + "\001\010\001\011\001\015\001\016\001\017\001\020\001" + + "\021\001\022\001\023\001\024\001\025\001\026\001\027" + + "\ufffe\030\ufffe\031\001\001\002\000\006\027\041\030\040" + + "\001\002\000\004\002\236\001\002\000\046\002\ufffa\004" + + "\033\005\013\006\023\007\016\010\027\011\011\015\007" + + "\016\030\017\022\020\024\021\017\022\012\023\015\024" + + "\032\025\025\026\014\031\031\001\002\000\006\027\uffd4" + + "\030\uffd4\001\002\000\010\027\ufff3\030\ufff3\034\ufff1\001" + + "\002\000\010\027\uffeb\030\uffeb\034\uffeb\001\002\000\010" + + "\027\uffb5\030\uffb5\034\uffb5\001\002\000\010\027\uffbc\030" + + "\uffbc\034\uffbc\001\002\000\010\027\uffb1\030\uffb1\034\uffb1" + + "\001\002\000\010\027\uffb4\030\uffb4\034\uffb4\001\002\000" + + "\010\027\uffba\030\uffba\034\uffba\001\002\000\010\027\uffb6" + + "\030\uffb6\034\uffb6\001\002\000\004\002\000\001\002\000" + + "\046\002\ufffa\004\033\005\013\006\023\007\016\010\027" + + "\011\011\015\007\016\030\017\022\020\024\021\017\022" + + "\012\023\015\024\032\025\025\026\014\031\031\001\002" + + "\000\010\027\uffb8\030\uffb8\034\uffb8\001\002\000\010\027" + + "\uffbb\030\uffbb\034\uffbb\001\002\000\010\027\uffb7\030\uffb7" + + "\034\uffb7\001\002\000\010\027\uffb2\030\uffb2\034\uffb2\001" + + "\002\000\046\002\ufffa\004\033\005\013\006\023\007\016" + + "\010\027\011\011\015\007\016\030\017\022\020\024\021" + + "\017\022\012\023\015\024\032\025\025\026\014\031\031" + + "\001\002\000\010\027\uffb9\030\uffb9\034\uffb9\001\002\000" + + "\006\027\uffdf\030\uffdf\001\002\000\006\035\uffed\036\uffed" + + "\001\002\000\010\027\uffb3\030\uffb3\034\uffb3\001\002\000" + + "\010\027\uffbd\030\uffbd\034\uffbd\001\002\000\010\027\ufff9" + + "\030\ufff9\034\ufff7\001\002\000\004\034\051\001\002\000" + + "\006\027\041\030\040\001\002\000\056\002\uffb0\004\uffb0" + + "\005\uffb0\006\uffb0\007\uffb0\010\uffb0\011\uffb0\012\uffb0\013" + + "\uffb0\014\uffb0\015\uffb0\016\uffb0\017\uffb0\020\uffb0\021\uffb0" + + "\022\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0\034" + + "\044\001\002\000\056\002\uffaa\004\uffaa\005\uffaa\006\uffaa" + + "\007\uffaa\010\uffaa\011\uffaa\012\uffaa\013\uffaa\014\uffaa\015" + + "\uffaa\016\uffaa\017\uffaa\020\uffaa\021\uffaa\022\uffaa\023\uffaa" + + "\024\uffaa\025\uffaa\026\uffaa\031\uffaa\034\uffaa\001\002\000" + + "\062\002\uffa9\004\uffa9\005\uffa9\006\uffa9\007\uffa9\010\uffa9" + + "\011\uffa9\012\uffa9\013\uffa9\014\uffa9\015\uffa9\016\uffa9\017" + + "\uffa9\020\uffa9\021\uffa9\022\uffa9\023\uffa9\024\uffa9\025\uffa9" + + "\026\uffa9\027\uffa8\030\uffa8\031\uffa9\034\uffa9\001\002\000" + + "\006\027\041\030\040\001\002\000\056\002\uffa7\004\uffa7" + + "\005\uffa7\006\uffa7\007\uffa7\010\uffa7\011\uffa7\012\uffa7\013" + + "\uffa7\014\uffa7\015\uffa7\016\uffa7\017\uffa7\020\uffa7\021\uffa7" + + "\022\uffa7\023\uffa7\024\uffa7\025\uffa7\026\uffa7\031\uffa7\034" + + "\uffa7\001\002\000\006\027\uffaf\030\uffaf\001\002\000\054" + + "\002\ufff8\004\ufff8\005\ufff8\006\ufff8\007\ufff8\010\ufff8\011" + + "\ufff8\012\ufff8\013\ufff8\014\ufff8\015\ufff8\016\ufff8\017\ufff8" + + "\020\ufff8\021\ufff8\022\ufff8\023\ufff8\024\ufff8\025\ufff8\026" + + "\ufff8\031\ufff8\001\002\000\006\027\041\030\040\001\002" + + "\000\056\002\uffb0\004\uffb0\005\uffb0\006\uffb0\007\uffb0\010" + + "\uffb0\011\uffb0\012\uffb0\013\uffb0\014\uffb0\015\uffb0\016\uffb0" + + "\017\uffb0\020\uffb0\021\uffb0\022\uffb0\023\uffb0\024\uffb0\025" + + "\uffb0\026\uffb0\031\uffb0\034\044\001\002\000\054\002\uffae" + + "\004\uffae\005\uffae\006\uffae\007\uffae\010\uffae\011\uffae\012" + + "\uffae\013\uffae\014\uffae\015\uffae\016\uffae\017\uffae\020\uffae" + + "\021\uffae\022\uffae\023\uffae\024\uffae\025\uffae\026\uffae\031" + + "\uffae\001\002\000\006\027\ufff6\030\ufff6\001\002\000\006" + + "\027\041\030\040\001\002\000\056\002\ufff5\004\ufff5\005" + + "\ufff5\006\ufff5\007\ufff5\010\ufff5\011\ufff5\012\ufff5\013\ufff5" + + "\014\ufff5\015\ufff5\016\ufff5\017\ufff5\020\ufff5\021\ufff5\022" + + "\ufff5\023\ufff5\024\ufff5\025\ufff5\026\ufff5\031\ufff5\034\ufff5" + + "\001\002\000\056\002\uffb0\004\uffb0\005\uffb0\006\uffb0\007" + + "\uffb0\010\uffb0\011\uffb0\012\uffb0\013\uffb0\014\uffb0\015\uffb0" + + "\016\uffb0\017\uffb0\020\uffb0\021\uffb0\022\uffb0\023\uffb0\024" + + "\uffb0\025\uffb0\026\uffb0\031\uffb0\034\044\001\002\000\054" + + "\002\ufff4\004\ufff4\005\ufff4\006\ufff4\007\ufff4\010\ufff4\011" + + "\ufff4\012\ufff4\013\ufff4\014\ufff4\015\ufff4\016\ufff4\017\ufff4" + + "\020\ufff4\021\ufff4\022\ufff4\023\ufff4\024\ufff4\025\ufff4\026" + + "\ufff4\031\ufff4\001\002\000\006\035\057\036\uffc9\001\002" + + "\000\004\036\uffc8\001\002\000\004\036\061\001\002\000" + + "\012\032\uffc7\033\uffc7\036\uffc7\037\uffc7\001\002\000\010" + + "\032\065\033\066\037\063\001\002\000\010\032\uffc2\033" + + "\uffc2\037\uffc2\001\002\000\056\002\uffb0\004\uffb0\005\uffb0" + + "\006\uffb0\007\uffb0\010\uffb0\011\uffb0\012\uffb0\013\uffb0\014" + + "\uffb0\015\uffb0\016\uffb0\017\uffb0\020\uffb0\021\uffb0\022\uffb0" + + "\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0\034\044\001" + + "\002\000\006\027\uffbf\030\uffbf\001\002\000\004\036\061" + + "\001\002\000\010\032\065\033\066\037\063\001\002\000" + + "\056\002\uffc0\004\uffc0\005\uffc0\006\uffc0\007\uffc0\010\uffc0" + + "\011\uffc0\012\uffc0\013\uffc0\014\uffc0\015\uffc0\016\uffc0\017" + + "\uffc0\020\uffc0\021\uffc0\022\uffc0\023\uffc0\024\uffc0\025\uffc0" + + "\026\uffc0\031\uffc0\034\uffc0\001\002\000\006\027\041\030" + + "\040\001\002\000\056\002\uffbe\004\uffbe\005\uffbe\006\uffbe" + + "\007\uffbe\010\uffbe\011\uffbe\012\uffbe\013\uffbe\014\uffbe\015" + + "\uffbe\016\uffbe\017\uffbe\020\uffbe\021\uffbe\022\uffbe\023\uffbe" + + "\024\uffbe\025\uffbe\026\uffbe\031\uffbe\034\uffbe\001\002\000" + + "\054\002\uffec\004\uffec\005\uffec\006\uffec\007\uffec\010\uffec" + + "\011\uffec\012\uffec\013\uffec\014\uffec\015\uffec\016\uffec\017" + + "\uffec\020\uffec\021\uffec\022\uffec\023\uffec\024\uffec\025\uffec" + + "\026\uffec\031\uffec\001\002\000\010\032\065\033\066\037" + + "\063\001\002\000\056\002\uffc1\004\uffc1\005\uffc1\006\uffc1" + + "\007\uffc1\010\uffc1\011\uffc1\012\uffc1\013\uffc1\014\uffc1\015" + + "\uffc1\016\uffc1\017\uffc1\020\uffc1\021\uffc1\022\uffc1\023\uffc1" + + "\024\uffc1\025\uffc1\026\uffc1\031\uffc1\034\uffc1\001\002\000" + + "\012\032\uffc3\033\uffc3\036\077\037\uffc3\001\002\000\012" + + "\032\uffc5\033\uffc5\036\uffc5\037\uffc5\001\002\000\010\032" + + "\uffc6\033\uffc6\037\uffc6\001\002\000\012\032\uffc3\033\uffc3" + + "\036\077\037\uffc3\001\002\000\010\032\uffc4\033\uffc4\037" + + "\uffc4\001\002\000\006\027\041\030\040\001\002\000\050" + + "\004\uffde\005\uffde\006\uffde\007\uffde\010\uffde\012\uffde\013" + + "\uffde\014\uffde\016\uffde\017\uffde\020\uffde\021\uffde\022\uffde" + + "\023\uffde\024\uffde\025\uffde\026\uffde\031\uffde\034\uffde\001" + + "\002\000\050\004\uffb0\005\uffb0\006\uffb0\007\uffb0\010\uffb0" + + "\012\uffb0\013\uffb0\014\uffb0\016\uffb0\017\uffb0\020\uffb0\021" + + "\uffb0\022\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0" + + "\034\044\001\002\000\046\004\033\005\013\006\023\007" + + "\016\010\027\012\107\013\112\014\110\016\114\017\022" + + "\020\024\021\017\022\012\023\015\024\032\025\025\026" + + "\014\031\031\001\002\000\006\027\041\030\040\001\002" + + "\000\006\027\041\030\040\001\002\000\056\002\uffdd\004" + + "\uffdd\005\uffdd\006\uffdd\007\uffdd\010\uffdd\011\uffdd\012\uffdd" + + "\013\uffdd\014\uffdd\015\uffdd\016\uffdd\017\uffdd\020\uffdd\021" + + "\uffdd\022\uffdd\023\uffdd\024\uffdd\025\uffdd\026\uffdd\031\uffdd" + + "\034\uffdd\001\002\000\006\027\041\030\040\001\002\000" + + "\046\004\033\005\013\006\023\007\016\010\027\012\107" + + "\013\112\014\110\016\114\017\022\020\024\021\017\022" + + "\012\023\015\024\032\025\025\026\014\031\031\001\002" + + "\000\006\027\uffd9\030\uffd9\001\002\000\006\027\041\030" + + "\040\001\002\000\050\004\uffb0\005\uffb0\006\uffb0\007\uffb0" + + "\010\uffb0\012\uffb0\013\uffb0\014\uffb0\016\uffb0\017\uffb0\020" + + "\uffb0\021\uffb0\022\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0" + + "\031\uffb0\034\044\001\002\000\046\004\033\005\013\006" + + "\023\007\016\010\027\012\107\013\112\014\110\016\114" + + "\017\022\020\024\021\017\022\012\023\015\024\032\025" + + "\025\026\014\031\031\001\002\000\056\002\uffd8\004\uffd8" + + "\005\uffd8\006\uffd8\007\uffd8\010\uffd8\011\uffd8\012\uffd8\013" + + "\uffd8\014\uffd8\015\uffd8\016\uffd8\017\uffd8\020\uffd8\021\uffd8" + + "\022\uffd8\023\uffd8\024\uffd8\025\uffd8\026\uffd8\031\uffd8\034" + + "\uffd8\001\002\000\056\002\uffd7\004\uffd7\005\uffd7\006\uffd7" + + "\007\uffd7\010\uffd7\011\uffd7\012\uffd7\013\uffd7\014\uffd7\015" + + "\uffd7\016\uffd7\017\uffd7\020\uffd7\021\uffd7\022\uffd7\023\uffd7" + + "\024\uffd7\025\uffd7\026\uffd7\031\uffd7\034\uffd7\001\002\000" + + "\056\002\uffd6\004\uffd6\005\uffd6\006\uffd6\007\uffd6\010\uffd6" + + "\011\uffd6\012\uffd6\013\uffd6\014\uffd6\015\uffd6\016\uffd6\017" + + "\uffd6\020\uffd6\021\uffd6\022\uffd6\023\uffd6\024\uffd6\025\uffd6" + + "\026\uffd6\031\uffd6\034\uffd6\001\002\000\056\002\uffb0\004" + + "\uffb0\005\uffb0\006\uffb0\007\uffb0\010\uffb0\011\uffb0\012\uffb0" + + "\013\uffb0\014\uffb0\015\uffb0\016\uffb0\017\uffb0\020\uffb0\021" + + "\uffb0\022\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0" + + "\034\044\001\002\000\054\002\uffdc\004\uffdc\005\uffdc\006" + + "\uffdc\007\uffdc\010\uffdc\011\uffdc\012\uffdc\013\uffdc\014\uffdc" + + "\015\uffdc\016\uffdc\017\uffdc\020\uffdc\021\uffdc\022\uffdc\023" + + "\uffdc\024\uffdc\025\uffdc\026\uffdc\031\uffdc\001\002\000\056" + + "\002\uffd5\004\uffd5\005\uffd5\006\uffd5\007\uffd5\010\uffd5\011" + + "\uffd5\012\uffd5\013\uffd5\014\uffd5\015\uffd5\016\uffd5\017\uffd5" + + "\020\uffd5\021\uffd5\022\uffd5\023\uffd5\024\uffd5\025\uffd5\026" + + "\uffd5\031\uffd5\034\uffd5\001\002\000\012\011\uffdb\015\uffdb" + + "\016\uffdb\034\uffdb\001\002\000\012\011\uffb0\015\uffb0\016" + + "\uffb0\034\044\001\002\000\010\011\011\015\007\016\030" + + "\001\002\000\046\004\033\005\013\006\023\007\016\010" + + "\027\012\107\013\112\014\110\016\114\017\022\020\024" + + "\021\017\022\012\023\015\024\032\025\025\026\014\031" + + "\031\001\002\000\056\002\uffda\004\uffda\005\uffda\006\uffda" + + "\007\uffda\010\uffda\011\uffda\012\uffda\013\uffda\014\uffda\015" + + "\uffda\016\uffda\017\uffda\020\uffda\021\uffda\022\uffda\023\uffda" + + "\024\uffda\025\uffda\026\uffda\031\uffda\034\uffda\001\002\000" + + "\004\002\ufffc\001\002\000\004\002\ufffb\001\002\000\010" + + "\027\041\030\040\034\140\001\002\000\050\004\uffa5\005" + + "\uffa5\006\uffa5\007\uffa5\010\uffa5\011\uffa5\012\uffa5\013\uffa5" + + "\014\uffa5\017\uffa5\020\uffa5\021\uffa5\022\uffa5\023\uffa5\024" + + "\uffa5\025\uffa5\026\uffa5\031\uffa5\034\uffa5\001\002\000\050" + + "\004\uffea\005\uffea\006\uffea\007\uffea\010\uffea\011\uffea\012" + + "\uffea\013\uffea\014\uffea\017\uffea\020\uffea\021\uffea\022\uffea" + + "\023\uffea\024\uffea\025\uffea\026\uffea\031\uffea\034\uffea\001" + + "\002\000\006\027\041\030\040\001\002\000\050\004\uffa6" + + "\005\uffa6\006\uffa6\007\uffa6\010\uffa6\011\uffa6\012\uffa6\013" + + "\uffa6\014\uffa6\017\uffa6\020\uffa6\021\uffa6\022\uffa6\023\uffa6" + + "\024\uffa6\025\uffa6\026\uffa6\031\uffa6\034\uffa6\001\002\000" + + "\050\004\uffb0\005\uffb0\006\uffb0\007\uffb0\010\uffb0\011\uffb0" + + "\012\uffb0\013\uffb0\014\uffb0\017\uffb0\020\uffb0\021\uffb0\022" + + "\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0\034\044" + + "\001\002\000\046\004\033\005\013\006\023\007\016\010" + + "\027\011\145\012\144\013\147\014\146\017\022\020\024" + + "\021\017\022\012\023\015\024\032\025\025\026\014\031" + + "\031\001\002\000\006\027\041\030\040\001\002\000\010" + + "\027\uffe5\030\uffe5\034\uffe5\001\002\000\006\027\041\030" + + "\040\001\002\000\006\027\041\030\040\001\002\000\046" + + "\004\033\005\013\006\023\007\016\010\027\011\145\012" + + "\144\013\147\014\146\017\022\020\024\021\017\022\012" + + "\023\015\024\032\025\025\026\014\031\031\001\002\000" + + "\056\002\uffe9\004\uffe9\005\uffe9\006\uffe9\007\uffe9\010\uffe9" + + "\011\uffe9\012\uffe9\013\uffe9\014\uffe9\015\uffe9\016\uffe9\017" + + "\uffe9\020\uffe9\021\uffe9\022\uffe9\023\uffe9\024\uffe9\025\uffe9" + + "\026\uffe9\031\uffe9\034\uffe9\001\002\000\056\002\uffb0\004" + + "\uffb0\005\uffb0\006\uffb0\007\uffb0\010\uffb0\011\uffb0\012\uffb0" + + "\013\uffb0\014\uffb0\015\uffb0\016\uffb0\017\uffb0\020\uffb0\021" + + "\uffb0\022\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0" + + "\034\044\001\002\000\054\002\uffe8\004\uffe8\005\uffe8\006" + + "\uffe8\007\uffe8\010\uffe8\011\uffe8\012\uffe8\013\uffe8\014\uffe8" + + "\015\uffe8\016\uffe8\017\uffe8\020\uffe8\021\uffe8\022\uffe8\023" + + "\uffe8\024\uffe8\025\uffe8\026\uffe8\031\uffe8\001\002\000\056" + + "\002\uffe2\004\uffe2\005\uffe2\006\uffe2\007\uffe2\010\uffe2\011" + + "\uffe2\012\uffe2\013\uffe2\014\uffe2\015\uffe2\016\uffe2\017\uffe2" + + "\020\uffe2\021\uffe2\022\uffe2\023\uffe2\024\uffe2\025\uffe2\026" + + "\uffe2\031\uffe2\034\uffe2\001\002\000\056\002\uffe1\004\uffe1" + + "\005\uffe1\006\uffe1\007\uffe1\010\uffe1\011\uffe1\012\uffe1\013" + + "\uffe1\014\uffe1\015\uffe1\016\uffe1\017\uffe1\020\uffe1\021\uffe1" + + "\022\uffe1\023\uffe1\024\uffe1\025\uffe1\026\uffe1\031\uffe1\034" + + "\uffe1\001\002\000\056\002\uffe0\004\uffe0\005\uffe0\006\uffe0" + + "\007\uffe0\010\uffe0\011\uffe0\012\uffe0\013\uffe0\014\uffe0\015" + + "\uffe0\016\uffe0\017\uffe0\020\uffe0\021\uffe0\022\uffe0\023\uffe0" + + "\024\uffe0\025\uffe0\026\uffe0\031\uffe0\034\uffe0\001\002\000" + + "\010\027\041\030\040\034\140\001\002\000\050\004\uffe4" + + "\005\uffe4\006\uffe4\007\uffe4\010\uffe4\011\uffe4\012\uffe4\013" + + "\uffe4\014\uffe4\017\uffe4\020\uffe4\021\uffe4\022\uffe4\023\uffe4" + + "\024\uffe4\025\uffe4\026\uffe4\031\uffe4\034\uffe4\001\002\000" + + "\050\004\uffb0\005\uffb0\006\uffb0\007\uffb0\010\uffb0\011\uffb0" + + "\012\uffb0\013\uffb0\014\uffb0\017\uffb0\020\uffb0\021\uffb0\022" + + "\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0\034\044" + + "\001\002\000\046\004\033\005\013\006\023\007\016\010" + + "\027\011\145\012\144\013\147\014\146\017\022\020\024" + + "\021\017\022\012\023\015\024\032\025\025\026\014\031" + + "\031\001\002\000\056\002\uffe3\004\uffe3\005\uffe3\006\uffe3" + + "\007\uffe3\010\uffe3\011\uffe3\012\uffe3\013\uffe3\014\uffe3\015" + + "\uffe3\016\uffe3\017\uffe3\020\uffe3\021\uffe3\022\uffe3\023\uffe3" + + "\024\uffe3\025\uffe3\026\uffe3\031\uffe3\034\uffe3\001\002\000" + + "\012\011\uffe7\015\uffe7\016\uffe7\034\uffe7\001\002\000\012" + + "\011\uffb0\015\uffb0\016\uffb0\034\044\001\002\000\010\011" + + "\011\015\007\016\030\001\002\000\046\004\033\005\013" + + "\006\023\007\016\010\027\011\145\012\144\013\147\014" + + "\146\017\022\020\024\021\017\022\012\023\015\024\032" + + "\025\025\026\014\031\031\001\002\000\056\002\uffe6\004" + + "\uffe6\005\uffe6\006\uffe6\007\uffe6\010\uffe6\011\uffe6\012\uffe6" + + "\013\uffe6\014\uffe6\015\uffe6\016\uffe6\017\uffe6\020\uffe6\021" + + "\uffe6\022\uffe6\023\uffe6\024\uffe6\025\uffe6\026\uffe6\031\uffe6" + + "\034\uffe6\001\002\000\004\034\201\001\002\000\006\027" + + "\041\030\040\001\002\000\056\002\uffad\004\uffad\005\uffad" + + "\006\uffad\007\uffad\010\uffad\011\uffad\012\uffad\013\uffad\014" + + "\uffad\015\uffad\016\uffad\017\uffad\020\uffad\021\uffad\022\uffad" + + "\023\uffad\024\uffad\025\uffad\026\uffad\031\uffad\034\175\001" + + "\002\000\054\002\ufff2\004\ufff2\005\ufff2\006\ufff2\007\ufff2" + + "\010\ufff2\011\ufff2\012\ufff2\013\ufff2\014\ufff2\015\ufff2\016" + + "\ufff2\017\ufff2\020\ufff2\021\ufff2\022\ufff2\023\ufff2\024\ufff2" + + "\025\ufff2\026\ufff2\031\ufff2\001\002\000\006\027\uffac\030" + + "\uffac\001\002\000\006\027\041\030\040\001\002\000\056" + + "\002\uffad\004\uffad\005\uffad\006\uffad\007\uffad\010\uffad\011" + + "\uffad\012\uffad\013\uffad\014\uffad\015\uffad\016\uffad\017\uffad" + + "\020\uffad\021\uffad\022\uffad\023\uffad\024\uffad\025\uffad\026" + + "\uffad\031\uffad\034\175\001\002\000\054\002\uffab\004\uffab" + + "\005\uffab\006\uffab\007\uffab\010\uffab\011\uffab\012\uffab\013" + + "\uffab\014\uffab\015\uffab\016\uffab\017\uffab\020\uffab\021\uffab" + + "\022\uffab\023\uffab\024\uffab\025\uffab\026\uffab\031\uffab\001" + + "\002\000\006\027\ufff0\030\ufff0\001\002\000\006\027\041" + + "\030\040\001\002\000\056\002\uffef\004\uffef\005\uffef\006" + + "\uffef\007\uffef\010\uffef\011\uffef\012\uffef\013\uffef\014\uffef" + + "\015\uffef\016\uffef\017\uffef\020\uffef\021\uffef\022\uffef\023" + + "\uffef\024\uffef\025\uffef\026\uffef\031\uffef\034\uffef\001\002" + + "\000\056\002\uffb0\004\uffb0\005\uffb0\006\uffb0\007\uffb0\010" + + "\uffb0\011\uffb0\012\uffb0\013\uffb0\014\uffb0\015\uffb0\016\uffb0" + + "\017\uffb0\020\uffb0\021\uffb0\022\uffb0\023\uffb0\024\uffb0\025" + + "\uffb0\026\uffb0\031\uffb0\034\044\001\002\000\054\002\uffee" + + "\004\uffee\005\uffee\006\uffee\007\uffee\010\uffee\011\uffee\012" + + "\uffee\013\uffee\014\uffee\015\uffee\016\uffee\017\uffee\020\uffee" + + "\021\uffee\022\uffee\023\uffee\024\uffee\025\uffee\026\uffee\031" + + "\uffee\001\002\000\006\027\041\030\040\001\002\000\050" + + "\004\uffd3\005\uffd3\006\uffd3\007\uffd3\010\uffd3\012\uffd3\013" + + "\uffd3\014\uffd3\015\uffd3\017\uffd3\020\uffd3\021\uffd3\022\uffd3" + + "\023\uffd3\024\uffd3\025\uffd3\026\uffd3\031\uffd3\034\uffd3\001" + + "\002\000\050\004\uffb0\005\uffb0\006\uffb0\007\uffb0\010\uffb0" + + "\012\uffb0\013\uffb0\014\uffb0\015\uffb0\017\uffb0\020\uffb0\021" + + "\uffb0\022\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0" + + "\034\044\001\002\000\046\004\033\005\013\006\023\007" + + "\016\010\027\012\213\013\215\014\214\015\212\017\022" + + "\020\024\021\017\022\012\023\015\024\032\025\025\026" + + "\014\031\031\001\002\000\006\027\uffce\030\uffce\001\002" + + "\000\006\027\041\030\040\001\002\000\006\027\041\030" + + "\040\001\002\000\006\027\041\030\040\001\002\000\056" + + "\002\uffd2\004\uffd2\005\uffd2\006\uffd2\007\uffd2\010\uffd2\011" + + "\uffd2\012\uffd2\013\uffd2\014\uffd2\015\uffd2\016\uffd2\017\uffd2" + + "\020\uffd2\021\uffd2\022\uffd2\023\uffd2\024\uffd2\025\uffd2\026" + + "\uffd2\031\uffd2\034\uffd2\001\002\000\046\004\033\005\013" + + "\006\023\007\016\010\027\012\213\013\215\014\214\015" + + "\212\017\022\020\024\021\017\022\012\023\015\024\032" + + "\025\025\026\014\031\031\001\002\000\056\002\uffcc\004" + + "\uffcc\005\uffcc\006\uffcc\007\uffcc\010\uffcc\011\uffcc\012\uffcc" + + "\013\uffcc\014\uffcc\015\uffcc\016\uffcc\017\uffcc\020\uffcc\021" + + "\uffcc\022\uffcc\023\uffcc\024\uffcc\025\uffcc\026\uffcc\031\uffcc" + + "\034\uffcc\001\002\000\056\002\uffb0\004\uffb0\005\uffb0\006" + + "\uffb0\007\uffb0\010\uffb0\011\uffb0\012\uffb0\013\uffb0\014\uffb0" + + "\015\uffb0\016\uffb0\017\uffb0\020\uffb0\021\uffb0\022\uffb0\023" + + "\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0\034\044\001\002" + + "\000\054\002\uffd1\004\uffd1\005\uffd1\006\uffd1\007\uffd1\010" + + "\uffd1\011\uffd1\012\uffd1\013\uffd1\014\uffd1\015\uffd1\016\uffd1" + + "\017\uffd1\020\uffd1\021\uffd1\022\uffd1\023\uffd1\024\uffd1\025" + + "\uffd1\026\uffd1\031\uffd1\001\002\000\056\002\uffcb\004\uffcb" + + "\005\uffcb\006\uffcb\007\uffcb\010\uffcb\011\uffcb\012\uffcb\013" + + "\uffcb\014\uffcb\015\uffcb\016\uffcb\017\uffcb\020\uffcb\021\uffcb" + + "\022\uffcb\023\uffcb\024\uffcb\025\uffcb\026\uffcb\031\uffcb\034" + + "\uffcb\001\002\000\056\002\uffca\004\uffca\005\uffca\006\uffca" + + "\007\uffca\010\uffca\011\uffca\012\uffca\013\uffca\014\uffca\015" + + "\uffca\016\uffca\017\uffca\020\uffca\021\uffca\022\uffca\023\uffca" + + "\024\uffca\025\uffca\026\uffca\031\uffca\034\uffca\001\002\000" + + "\012\011\uffd0\015\uffd0\016\uffd0\034\uffd0\001\002\000\012" + + "\011\uffb0\015\uffb0\016\uffb0\034\044\001\002\000\010\011" + + "\011\015\007\016\030\001\002\000\046\004\033\005\013" + + "\006\023\007\016\010\027\012\213\013\215\014\214\015" + + "\212\017\022\020\024\021\017\022\012\023\015\024\032" + + "\025\025\026\014\031\031\001\002\000\056\002\uffcf\004" + + "\uffcf\005\uffcf\006\uffcf\007\uffcf\010\uffcf\011\uffcf\012\uffcf" + + "\013\uffcf\014\uffcf\015\uffcf\016\uffcf\017\uffcf\020\uffcf\021" + + "\uffcf\022\uffcf\023\uffcf\024\uffcf\025\uffcf\026\uffcf\031\uffcf" + + "\034\uffcf\001\002\000\006\027\041\030\040\001\002\000" + + "\050\004\uffb0\005\uffb0\006\uffb0\007\uffb0\010\uffb0\012\uffb0" + + "\013\uffb0\014\uffb0\015\uffb0\017\uffb0\020\uffb0\021\uffb0\022" + + "\uffb0\023\uffb0\024\uffb0\025\uffb0\026\uffb0\031\uffb0\034\044" + + "\001\002\000\046\004\033\005\013\006\023\007\016\010" + + "\027\012\213\013\215\014\214\015\212\017\022\020\024" + + "\021\017\022\012\023\015\024\032\025\025\026\014\031" + + "\031\001\002\000\056\002\uffcd\004\uffcd\005\uffcd\006\uffcd" + + "\007\uffcd\010\uffcd\011\uffcd\012\uffcd\013\uffcd\014\uffcd\015" + + "\uffcd\016\uffcd\017\uffcd\020\uffcd\021\uffcd\022\uffcd\023\uffcd" + + "\024\uffcd\025\uffcd\026\uffcd\031\uffcd\034\uffcd\001\002\000" + + "\004\002\uffff\001\002\000\046\002\ufffa\004\033\005\013" + + "\006\023\007\016\010\027\011\011\015\007\016\030\017" + + "\022\020\024\021\017\022\012\023\015\024\032\025\025" + + "\026\014\031\031\001\002\000\004\002\ufffd\001\002" }); + + /** Access to parse-action table. */ + public short[][] action_table() {return _action_table;} + + /** reduce_goto table. */ + protected static final short[][] _reduce_table = + unpackFromStrings(new String[] { + "\000\236\000\010\002\004\023\005\024\003\001\001\000" + + "\004\006\236\001\001\000\002\001\001\000\014\003\017" + + "\007\025\010\020\020\033\021\007\001\001\000\004\051" + + "\205\001\001\000\006\031\171\032\170\001\001\000\004" + + "\036\134\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\014\003\133\007\025\010" + + "\020\020\033\021\007\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\014\003" + + "\132\007\025\010\020\020\033\021\007\001\001\000\002" + + "\001\001\000\004\044\102\001\001\000\004\035\055\001" + + "\001\000\002\001\001\000\002\001\001\000\006\025\035" + + "\026\034\001\001\000\002\001\001\000\004\006\036\001" + + "\001\000\004\004\044\001\001\000\002\001\001\000\004" + + "\064\041\001\001\000\004\006\042\001\001\000\002\001" + + "\001\000\004\062\045\001\001\000\002\001\001\000\004" + + "\006\046\001\001\000\004\004\047\001\001\000\002\001" + + "\001\000\004\027\051\001\001\000\004\006\052\001\001" + + "\000\004\030\053\001\001\000\004\004\054\001\001\000" + + "\002\001\001\000\004\014\057\001\001\000\002\001\001" + + "\000\004\015\061\001\001\000\004\056\075\001\001\000" + + "\004\017\063\001\001\000\004\060\073\001\001\000\004" + + "\004\072\001\001\000\004\061\070\001\001\000\004\015" + + "\066\001\001\000\004\017\067\001\001\000\002\001\001" + + "\000\004\006\071\001\001\000\002\001\001\000\002\001" + + "\001\000\004\017\074\001\001\000\002\001\001\000\004" + + "\016\077\001\001\000\004\057\100\001\001\000\002\001" + + "\001\000\004\016\101\001\001\000\002\001\001\000\004" + + "\006\103\001\001\000\004\045\104\001\001\000\004\004" + + "\105\001\001\000\012\007\112\013\110\020\033\021\007" + + "\001\001\000\004\006\125\001\001\000\004\006\124\001" + + "\001\000\004\046\122\001\001\000\004\006\121\001\001" + + "\000\012\007\112\013\120\020\033\021\007\001\001\000" + + "\004\050\114\001\001\000\004\006\115\001\001\000\004" + + "\004\116\001\001\000\012\007\112\013\117\020\033\021" + + "\007\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\004\004\123\001\001\000\002\001\001\000" + + "\002\001\001\000\004\047\126\001\001\000\004\004\127" + + "\001\001\000\004\010\130\001\001\000\012\007\112\013" + + "\131\020\033\021\007\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\006\006\135\022\136\001" + + "\001\000\002\001\001\000\004\037\141\001\001\000\004" + + "\006\140\001\001\000\002\001\001\000\004\004\142\001" + + "\001\000\012\007\147\011\150\020\033\021\007\001\001" + + "\000\004\006\163\001\001\000\004\042\156\001\001\000" + + "\004\006\155\001\001\000\004\006\154\001\001\000\012" + + "\007\147\011\153\020\033\021\007\001\001\000\004\040" + + "\151\001\001\000\004\004\152\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\006\006\135\022\157\001\001\000\004\043\160\001\001" + + "\000\004\004\161\001\001\000\012\007\147\011\162\020" + + "\033\021\007\001\001\000\002\001\001\000\004\041\164" + + "\001\001\000\004\004\165\001\001\000\004\010\166\001" + + "\001\000\012\007\147\011\167\020\033\021\007\001\001" + + "\000\002\001\001\000\002\001\001\000\004\006\172\001" + + "\001\000\004\005\173\001\001\000\002\001\001\000\004" + + "\063\175\001\001\000\004\006\176\001\001\000\004\005" + + "\177\001\001\000\002\001\001\000\004\033\201\001\001" + + "\000\004\006\202\001\001\000\004\034\203\001\001\000" + + "\004\004\204\001\001\000\002\001\001\000\004\006\206" + + "\001\001\000\004\052\207\001\001\000\004\004\210\001" + + "\001\000\012\007\216\012\215\020\033\021\007\001\001" + + "\000\004\055\231\001\001\000\004\006\224\001\001\000" + + "\004\006\223\001\001\000\004\006\222\001\001\000\004" + + "\053\220\001\001\000\012\007\216\012\217\020\033\021" + + "\007\001\001\000\002\001\001\000\004\004\221\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\004\054\225\001\001\000\004\004\226\001\001\000\004" + + "\010\227\001\001\000\012\007\216\012\230\020\033\021" + + "\007\001\001\000\002\001\001\000\004\006\232\001\001" + + "\000\004\004\233\001\001\000\012\007\216\012\234\020" + + "\033\021\007\001\001\000\002\001\001\000\002\001\001" + + "\000\014\003\237\007\025\010\020\020\033\021\007\001" + + "\001\000\002\001\001" }); + + /** Access to reduce_goto table. */ + public short[][] reduce_table() {return _reduce_table;} + + /** Instance of action encapsulation class. */ + protected CUP$parser$actions action_obj; + + /** Action encapsulation object initializer. */ + protected void init_actions() + { + action_obj = new CUP$parser$actions(this); + } + + /** Invoke a user supplied parse action. */ + public java_cup.runtime.Symbol do_action( + int act_num, + java_cup.runtime.lr_parser parser, + java.util.Stack stack, + int top) + throws java.lang.Exception + { + /* call code in generated class */ + return action_obj.CUP$parser$do_action(act_num, parser, stack, top); + } + + /** Indicates start state. */ + public int start_state() {return 0;} + /** Indicates start production. */ + public int start_production() {return 2;} + + /** EOF Symbol index. */ + public int EOF_sym() {return 0;} + + /** error Symbol index. */ + public int error_sym() {return 1;} + + + /** User initialization code. */ + public void user_init() throws java.lang.Exception + { + lexer = new Yylex(System.in); + } + + /** Scan to get the next Symbol. */ + public java_cup.runtime.Symbol scan() + throws java.lang.Exception + { + return lexer.yylex(); + } + + public Yylex lexer; + + +/** Cup generated class to encapsulate user supplied action code.*/ +@SuppressWarnings({"rawtypes", "unchecked", "unused"}) +class CUP$parser$actions { + + + + static final int C_TL=0; + static final int C_AU=1; + static final int C_AI=2; + static final int C_DS=3; + static final int C_DE=4; + static final int C_IP=5; + static final int C_RS=6; + static final int C_RE=7; + static final int C_LP=8; + static final int C_NH=9; + static final int C_SH=10; + static final int C_PP=11; + static final int C_B=12; + static final int C_I=13; + static final int C_R=14; + static final int C_LG=15; + static final int C_NL=16; + static final int C_SM=17; + static final int C_UL=18; + static final int C_TS=19; + static final int C_TE=20; + static final int C_N_L=21; + static final int C_O_UL=22; + static final int C_O_OL=23; + static final int C_O_DL=24; + static final int C_O_TR=25; + static final int C_O_TD=26; + + static String code_table[][]= + {{"

","

"}, // TL + {"
","
"}, // AU + {"
","
"}, // AI + {"",""}, // DS + {"",""}, // DE + {"
","
"}, // IP + {"",""}, // LP + {"",""}, // RS + {"",""}, // RE + {"
  • ",""}, // NH + {"
  • ",""}, // SH + {"

    ",""}, // PP + {"",""}, // B + {"",""}, // I + {"",""}, // R + {"",""}, // LG + {"",""}, // NL + {"",""}, // SM + {"",""}, // UL + {""}, // TS + {"",""}, // TE + {"
    ","

    "}, // N_L (own New Line) + {"

      ","
    "}, // O_UL (Own Unordered List) + {"
      ","
    "}, // O_OL (own Ordered List) + {"
    ","
    "}, // O_DL (own Descritive List) + {"",""}, // O_TR (own Table Row) + {""} // O_TD (own Table Column) + }; + + boolean center, box; + String tab= new String(""); + int row_n, row_max, n_columns; + String rows[][]; + + + private final parser parser; + + /** Constructor */ + CUP$parser$actions(parser parser) { + this.parser = parser; + } + + /** Method 0 with the actual generated action code for actions 0 to 300. */ + public final java_cup.runtime.Symbol CUP$parser$do_action_part00000000( + int CUP$parser$act_num, + java_cup.runtime.lr_parser CUP$parser$parser, + java.util.Stack CUP$parser$stack, + int CUP$parser$top) + throws java.lang.Exception + { + /* Symbol object for return from actions */ + java_cup.runtime.Symbol CUP$parser$result; + + /* select the action based on the action number */ + switch (CUP$parser$act_num) + { + /*. . . . . . . . . . . . . . . . . . . .*/ + case 0: // NT$0 ::= + { + symbol RESULT =null; + System.out.println("\n\n\n\n"); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$0",17, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 1: // ini ::= NT$0 body + { + symbol RESULT =null; + // propagate RESULT from NT$0 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + System.out.println("\n\n"); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ini",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 2: // $START ::= ini EOF + { + Object RESULT =null; + int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; + int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; + symbol start_val = (symbol)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + RESULT = start_val; + CUP$parser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + /* ACCEPT */ + CUP$parser$parser.done_parsing(); + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 3: // NT$1 ::= + { + symbol RESULT =null; + System.out.println("\n\n\n\n"); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$1",18, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 4: // ini ::= NT$1 new_line body + { + symbol RESULT =null; + // propagate RESULT from NT$1 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + System.out.println("\n\n"); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ini",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 5: // body ::= commons body + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("body",1, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 6: // body ::= nesteds body + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("body",1, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 7: // body ::= + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("body",1, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 8: // NT$2 ::= + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(code_table[n.int_val][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$2",19, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 9: // commons ::= tag NT$2 new_line text + { + symbol RESULT =null; + // propagate RESULT from NT$2 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + System.out.println(code_table[n.int_val][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("commons",5, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 10: // NT$3 ::= + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(code_table[n.int_val][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$3",20, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 11: // NT$4 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token t = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(t.str_val); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$4",21, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 12: // NT$5 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; + int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; + int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; + str_token t = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + System.out.println(code_table[n.int_val][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$5",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 13: // commons ::= tag NT$3 TXT NT$4 new_line NT$5 text + { + symbol RESULT =null; + // propagate RESULT from NT$5 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value; + int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; + int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; + str_token t = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("commons",5, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 14: // NT$6 ::= + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(code_table[n.int_val][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$6",23, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 15: // commons ::= tag_nl NT$6 new_line text_nl + { + symbol RESULT =null; + // propagate RESULT from NT$6 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + System.out.println(code_table[n.int_val][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("commons",5, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 16: // NT$7 ::= + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(code_table[n.int_val][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$7",24, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 17: // NT$8 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token t = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(t.str_val+"
    "); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$8",25, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 18: // NT$9 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; + int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; + int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; + str_token t = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + System.out.println(code_table[n.int_val][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$9",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 19: // commons ::= tag_nl NT$7 TXT NT$8 new_line NT$9 text + { + symbol RESULT =null; + // propagate RESULT from NT$9 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right; + int_token n = (int_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value; + int tleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; + int tright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; + str_token t = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("commons",5, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 20: // NT$10 ::= + { + symbol RESULT =null; + + center=false; + box=false; + tab="\t"; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$10",27, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 21: // commons ::= TS NT$10 options format rows text + { + symbol RESULT =null; + // propagate RESULT from NT$10 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("commons",5, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 22: // NT$11 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_O_DL][0]); System.out.println(code_table[C_IP][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$11",28, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 23: // NT$12 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(n.str_val); System.out.println(code_table[C_IP][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$12",29, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 24: // NT$13 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + System.out.println(code_table[C_O_DL][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$13",30, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 25: // nesteds ::= IP NT$11 argument NT$12 text ip_list NT$13 text + { + symbol RESULT =null; + // propagate RESULT from NT$13 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("nesteds",6, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 26: // NT$14 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_N_L][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$14",31, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 27: // ip_list ::= RS new_line NT$14 text nesteds ip_list + { + symbol RESULT =null; + // propagate RESULT from NT$14 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("ip_list",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 28: // NT$15 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_IP][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$15",32, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 29: // NT$16 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(n.str_val); System.out.println(code_table[C_IP][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$16",33, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 30: // ip_list ::= IP NT$15 argument NT$16 text ip_list + { + symbol RESULT =null; + // propagate RESULT from NT$16 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("ip_list",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 31: // ip_list ::= commons ip_list + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("ip_list",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 32: // ip_list ::= RE new_line + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("ip_list",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 33: // ip_list ::= LP new_line + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("ip_list",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 34: // NT$17 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_O_UL][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$17",34, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 35: // NT$18 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + System.out.println(code_table[C_SH][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$18",35, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 36: // NT$19 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + System.out.println(code_table[C_O_UL][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$19",36, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 37: // nesteds ::= SH NT$17 new_line NT$18 text sh_list NT$19 text + { + symbol RESULT =null; + // propagate RESULT from NT$19 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("nesteds",6, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 38: // NT$20 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_N_L][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$20",37, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 39: // sh_list ::= RS new_line NT$20 text nesteds sh_list + { + symbol RESULT =null; + // propagate RESULT from NT$20 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("sh_list",9, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 40: // NT$21 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_SH][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$21",38, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 41: // sh_list ::= SH NT$21 new_line text sh_list + { + symbol RESULT =null; + // propagate RESULT from NT$21 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("sh_list",9, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 42: // sh_list ::= commons sh_list + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("sh_list",9, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 43: // sh_list ::= RE new_line + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("sh_list",9, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 44: // sh_list ::= LP new_line + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("sh_list",9, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 45: // NT$22 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_O_OL][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$22",39, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 46: // NT$23 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + System.out.println(code_table[C_NH][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$23",40, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 47: // NT$24 ::= + { + symbol RESULT =(symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + System.out.println(code_table[C_O_OL][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$24",41, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 48: // nesteds ::= NH NT$22 new_line NT$23 text nh_list NT$24 text + { + symbol RESULT =null; + // propagate RESULT from NT$24 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("nesteds",6, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 49: // NT$25 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_N_L][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$25",42, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 50: // nh_list ::= RS new_line NT$25 text nesteds nh_list + { + symbol RESULT =null; + // propagate RESULT from NT$25 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("nh_list",8, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 51: // NT$26 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_NH][0]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$26",43, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 52: // nh_list ::= NH NT$26 new_line text nh_list + { + symbol RESULT =null; + // propagate RESULT from NT$26 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("nh_list",8, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 53: // nh_list ::= commons nh_list + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("nh_list",8, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 54: // nh_list ::= RE new_line + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("nh_list",8, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 55: // nh_list ::= LP new_line + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("nh_list",8, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 56: // options ::= + { + symbol RESULT =null; + + System.out.println("
    "); + System.out.print(code_table[C_TS][0]); + System.out.println(code_table[C_TS][1]); + + CUP$parser$result = parser.getSymbolFactory().newSymbol("options",10, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 57: // options ::= T_OPT + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + + System.out.println("
    "); + if((n.str_val).indexOf("center") != -1) { + System.out.println("
    "); + center=true; + } + System.out.print(code_table[C_TS][0]); + boolean expand=false; + if((n.str_val).indexOf("expand") != -1) { + System.out.print(" WIDTH=100%"); + expand=true; + } + int pos=(n.str_val).indexOf("tab("); + if( pos!= -1) { + tab=(n.str_val).substring(pos+4,pos+5); + } + + if((n.str_val).indexOf("doublebox") != -1) { + System.out.print(" BORDER=3"); + System.out.println(code_table[C_TS][1]); + System.out.println(code_table[C_O_TR][0]); + System.out.println(code_table[C_O_TD][0]+">"); + System.out.print(code_table[C_TS][0]); + if(expand) + System.out.print(" WIDTH=100%"); + System.out.println(code_table[C_TS][1]); + box=true; + } + else + if((n.str_val).indexOf("allbox") != -1) + { System.out.print(" BORDER"); + System.out.println(code_table[C_TS][1]); + } + else + if((n.str_val).indexOf("box") != -1) + { System.out.print(" BORDER"); + System.out.println(code_table[C_TS][1]); + System.out.println(code_table[C_O_TR][0]); + System.out.println(code_table[C_O_TD][0]+">"); + System.out.print(code_table[C_TS][0]); + if(expand) + System.out.print(" WIDTH=100%"); + System.out.println(code_table[C_TS][1]); + box=true; + } + else + System.out.println(code_table[C_TS][1]); + + + CUP$parser$result = parser.getSymbolFactory().newSymbol("options",10, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 58: // NT$27 ::= + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + + StringTokenizer subst= new StringTokenizer(n.str_val," "); + n_columns=subst.countTokens(); + rows = new String [99][n_columns]; + + row_n=0; + int j=0; + while (subst.hasMoreTokens()) { + rows[row_n][j]= subst.nextToken(); + j++; + } + + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$27",44, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 59: // format ::= T_FORM NT$27 format2 + { + symbol RESULT =null; + // propagate RESULT from NT$27 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("format",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 60: // NT$28 ::= + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + + StringTokenizer subst= new StringTokenizer(n.str_val," "); + int j=0; + row_n++; + while (subst.hasMoreTokens()) { + rows[row_n][j]= subst.nextToken(); + j++; + } + + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$28",45, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 61: // format2 ::= T_FORM NT$28 format2 + { + symbol RESULT =null; + // propagate RESULT from NT$28 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("format2",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 62: // format2 ::= + { + symbol RESULT =null; + row_max=row_n; + row_n=0; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("format2",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 63: // NT$29 ::= + { + symbol RESULT =null; + int mleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int mright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token m = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + + System.out.println(code_table[C_O_TR][0]); + StringTokenizer subst=new StringTokenizer(m.str_val,tab); + int j=0; + while ((j "); + System.out.print(subst.nextToken()); + System.out.println(code_table[C_O_TD][1]); + } + j++; + } + if(row_max>row_n) row_n++; + System.out.println(code_table[C_O_TR][1]); + + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$29",46, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 64: // rows ::= T_ROW NT$29 rows + { + symbol RESULT =null; + // propagate RESULT from NT$29 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + int mleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; + int mright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; + str_token m = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("rows",13, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 65: // rows ::= TC_ format rows + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("rows",13, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 66: // NT$30 ::= + { + symbol RESULT =null; + + System.out.println(code_table[C_TE][0]); + if(box) { + System.out.println(code_table[C_O_TD][1]); + System.out.println(code_table[C_O_TR][1]); + System.out.println(code_table[C_TE][0]); + } + if(center) System.out.println("
    "); + System.out.println("
    "); + + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$30",47, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 67: // rows ::= TE NT$30 new_line + { + symbol RESULT =null; + // propagate RESULT from NT$30 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("rows",13, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 68: // tag ::= TL + { + int_token RESULT =null; + RESULT.int_val = C_TL; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 69: // tag_nl ::= AU + { + int_token RESULT =null; + RESULT.int_val = C_AU; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag_nl",15, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 70: // tag_nl ::= AI + { + int_token RESULT =null; + RESULT.int_val = C_AI; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag_nl",15, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 71: // tag_nl ::= DS + { + int_token RESULT =null; + System.out.println(code_table[C_TS][0]+code_table[C_TS][1]); + System.out.println(code_table[C_O_TR][0]); + System.out.println(code_table[C_O_TD][0]+">"); + System.out.println(code_table[C_O_TD][1]); + System.out.println(code_table[C_O_TD][0]+">"); + RESULT.int_val = C_DS; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag_nl",15, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 72: // tag ::= DE + { + int_token RESULT =null; + System.out.println(code_table[C_O_TD][1]); + System.out.println(code_table[C_O_TR][1]); + System.out.println(code_table[C_TE][0]); + RESULT.int_val = C_DE; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 73: // tag ::= PP + { + int_token RESULT =null; + RESULT.int_val = C_PP; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 74: // tag ::= B + { + int_token RESULT =null; + RESULT.int_val = C_B; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 75: // tag ::= I + { + int_token RESULT =null; + RESULT.int_val = C_I; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 76: // tag ::= R + { + int_token RESULT =null; + RESULT.int_val = C_R; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 77: // tag ::= LG + { + int_token RESULT =null; + RESULT.int_val = C_LG; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 78: // tag ::= NL + { + int_token RESULT =null; + RESULT.int_val = C_NL; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 79: // tag ::= SM + { + int_token RESULT =null; + RESULT.int_val = C_SM; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 80: // tag ::= UL + { + int_token RESULT =null; + RESULT.int_val = C_UL; + CUP$parser$result = parser.getSymbolFactory().newSymbol("tag",14, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 81: // text ::= + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("text",2, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 82: // NT$31 ::= + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(n.str_val); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$31",48, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 83: // text ::= TXT NT$31 new_line text + { + symbol RESULT =null; + // propagate RESULT from NT$31 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("text",2, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 84: // text_nl ::= + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("text_nl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 85: // NT$32 ::= + { + symbol RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.peek()).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + System.out.println(n.str_val+"
    "); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$32",49, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 86: // text_nl ::= TXT NT$32 new_line text_nl + { + symbol RESULT =null; + // propagate RESULT from NT$32 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("text_nl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 87: // new_line ::= CR + { + symbol RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("new_line",4, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 88: // new_line ::= N_L + { + symbol RESULT =null; + System.out.println(code_table[C_N_L][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("new_line",4, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 89: // NT$33 ::= + { + symbol RESULT =null; + System.out.println(code_table[C_N_L][1]); + CUP$parser$result = parser.getSymbolFactory().newSymbol("NT$33",50, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 90: // new_line ::= N_L NT$33 new_line + { + symbol RESULT =null; + // propagate RESULT from NT$33 + RESULT = (symbol) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("new_line",4, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 91: // argument ::= TXT new_line + { + str_token RESULT =null; + int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; + int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; + str_token n = (str_token)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + RESULT.str_val= n.str_val; + CUP$parser$result = parser.getSymbolFactory().newSymbol("argument",16, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 92: // argument ::= new_line + { + str_token RESULT =null; + RESULT.str_val= ""; + CUP$parser$result = parser.getSymbolFactory().newSymbol("argument",16, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /* . . . . . .*/ + default: + throw new Exception( + "Invalid action number "+CUP$parser$act_num+"found in internal parse table"); + + } + } /* end of method */ + + /** Method splitting the generated action code into several parts. */ + public final java_cup.runtime.Symbol CUP$parser$do_action( + int CUP$parser$act_num, + java_cup.runtime.lr_parser CUP$parser$parser, + java.util.Stack CUP$parser$stack, + int CUP$parser$top) + throws java.lang.Exception + { + return CUP$parser$do_action_part00000000( + CUP$parser$act_num, + CUP$parser$parser, + CUP$parser$stack, + CUP$parser$top); + } +} + +} diff --git a/com.ibm.wala.dalvik.test/report b/com.ibm.wala.dalvik.test/report new file mode 100644 index 000000000..7521cd76f --- /dev/null +++ b/com.ibm.wala.dalvik.test/report @@ -0,0 +1,76714 @@ +Class: java_cup/CUP$parser$actions +Instrumenting add_lab (Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,2) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,7) (1) +3: LocalLoad(Ljava/lang/Object;,1) (4) +4: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (5) +5: Constant(I,0) (8) +6: ConditionalBranch(I,eq,9) (8) +7: LocalLoad(Ljava/lang/Object;,1) (11) +8: Return(Ljava/lang/Object;) (12) +9: New(Ljava_cup/symbol_part;,0) (13) +10: Dup(1,0) (16) +11: LocalLoad(Ljava/lang/Object;,1) (17) +12: CheckCast(Ljava_cup/symbol_part;) (18) +13: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (21) +14: LocalLoad(Ljava/lang/Object;,2) (24) +15: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;Ljava/lang/String;)V) (25) +16: Return(Ljava/lang/Object;) (28) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +1: Constant(Ljava/lang/String;,"add_lab(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,2) (0) + Handles null at 31 +5: Constant(L;,null) (1) + Handles null at 31 +6: ConditionalBranch(Ljava/lang/Object;,eq,11) (1) + Handles null at 31 +7: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 31 +8: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (5) + Handles null at 31 +9: Constant(I,0) (8) + Handles null at 31 +10: ConditionalBranch(I,eq,18) (8) + Handles null at 31 +11: LocalLoad(Ljava/lang/Object;,1) (11) + Handles null at 31 +12: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (12) + Handles null at 31 +13: Constant(Ljava/lang/String;,"add_lab(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;") (12) + Handles null at 31 +14: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 31 +15: Constant(I,0) (12) + Handles null at 31 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 31 +17: Return(Ljava/lang/Object;) (12) + Handles null at 31 +18: New(Ljava_cup/symbol_part;,0) (13) + Handles null at 31 +19: Dup(1,0) (16) + Handles null at 31 +20: LocalLoad(Ljava/lang/Object;,1) (17) + Handles null at 31 +21: CheckCast(Ljava_cup/symbol_part;) (18) + Handles null at 31 +22: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (21) + Handles null at 31 +23: LocalLoad(Ljava/lang/Object;,2) (24) + Handles null at 31 +24: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;Ljava/lang/String;)V) (25) + Handles null at 31 +25: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (28) + Handles null at 31 +26: Constant(Ljava/lang/String;,"add_lab(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;") (28) + Handles null at 31 +27: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 31 +28: Constant(I,0) (28) + Handles null at 31 +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (28) + Handles null at 31 +30: Return(Ljava/lang/Object;) (28) + Handles null at 31 +31: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +32: Constant(Ljava/lang/String;,"add_lab(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;") (0) +33: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +34: Constant(I,1) (0) +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +36: Throw() (0) +Instrumenting new_rhs ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(I,0) (1) +2: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +1: Constant(Ljava/lang/String;,"new_rhs()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Constant(I,0) (1) + Handles null at 13 +6: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"new_rhs()V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +14: Constant(Ljava/lang/String;,"new_rhs()V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting add_rhs_part (Ljava_cup/production_part;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (1) +2: Constant(I,200) (4) +3: ConditionalBranch(I,lt,9) (7) +4: New(Ljava/lang/Exception;,0) (10) +5: Dup(1,0) (13) +6: Constant(Ljava/lang/String;,"Internal Error: Productions limited to 200 symbols and actions") (14) +7: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (16) +8: Throw() (19) +9: LocalLoad(Ljava/lang/Object;,0) (20) +10: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (21) +11: LocalLoad(Ljava/lang/Object;,0) (24) +12: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (25) +13: LocalLoad(Ljava/lang/Object;,1) (28) +14: ArrayStore(Ljava/lang/Object;) (29) +15: LocalLoad(Ljava/lang/Object;,0) (30) +16: Dup(1,0) (31) +17: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (32) +18: Constant(I,1) (35) +19: BinaryOp(I,add) (36) +20: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (37) +21: Return(V) (40) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +1: Constant(Ljava/lang/String;,"add_rhs_part(Ljava_cup/production_part;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 31 +5: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (1) + Handles null at 31 +6: Constant(I,200) (4) + Handles null at 31 +7: ConditionalBranch(I,lt,13) (7) + Handles null at 31 +8: New(Ljava/lang/Exception;,0) (10) + Handles null at 31 +9: Dup(1,0) (13) + Handles null at 31 +10: Constant(Ljava/lang/String;,"Internal Error: Productions limited to 200 symbols and actions") (14) + Handles null at 31 +11: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (16) + Handles null at 31 +12: Throw() (19) + Handles null at 31 +13: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 31 +14: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (21) + Handles null at 31 +15: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 31 +16: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (25) + Handles null at 31 +17: LocalLoad(Ljava/lang/Object;,1) (28) + Handles null at 31 +18: ArrayStore(Ljava/lang/Object;) (29) + Handles null at 31 +19: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 31 +20: Dup(1,0) (31) + Handles null at 31 +21: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (32) + Handles null at 31 +22: Constant(I,1) (35) + Handles null at 31 +23: BinaryOp(I,add) (36) + Handles null at 31 +24: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (37) + Handles null at 31 +25: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (40) + Handles null at 31 +26: Constant(Ljava/lang/String;,"add_rhs_part(Ljava_cup/production_part;)V") (40) + Handles null at 31 +27: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 31 +28: Constant(I,0) (40) + Handles null at 31 +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (40) + Handles null at 31 +30: Return(V) (40) + Handles null at 31 +31: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +32: Constant(Ljava/lang/String;,"add_rhs_part(Ljava_cup/production_part;)V") (0) +33: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +34: Constant(I,1) (0) +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +36: Throw() (0) +Instrumenting update_precedence (I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_side) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Dup(1,0) (6) +5: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_prec) (7) +6: Constant(I,1) (10) +7: BinaryOp(I,add) (11) +8: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_prec) (12) +9: Return(V) (15) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +1: Constant(Ljava/lang/String;,"update_precedence(I)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 19 +5: LocalLoad(I,1) (1) + Handles null at 19 +6: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_side) (2) + Handles null at 19 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 19 +8: Dup(1,0) (6) + Handles null at 19 +9: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_prec) (7) + Handles null at 19 +10: Constant(I,1) (10) + Handles null at 19 +11: BinaryOp(I,add) (11) + Handles null at 19 +12: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_prec) (12) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (15) + Handles null at 19 +14: Constant(Ljava/lang/String;,"update_precedence(I)V") (15) + Handles null at 19 +15: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 19 +16: Constant(I,0) (15) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (15) + Handles null at 19 +18: Return(V) (15) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +20: Constant(Ljava/lang/String;,"update_precedence(I)V") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting add_precedence (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,7) (1) +3: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (4) +4: Constant(Ljava/lang/String;,"Unable to add precedence to nonexistent terminal") (7) +5: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (9) +6: Goto(54) (12) +7: LocalLoad(Ljava/lang/Object;,0) (15) +8: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (16) +9: LocalLoad(Ljava/lang/Object;,1) (19) +10: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (20) +11: CheckCast(Ljava_cup/symbol_part;) (23) +12: LocalStore(Ljava/lang/Object;,2) (26) +13: LocalLoad(Ljava/lang/Object;,2) (27) +14: Constant(L;,null) (28) +15: ConditionalBranch(Ljava/lang/Object;,ne,29) (28) +16: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (31) +17: New(Ljava/lang/StringBuilder;,0) (34) +18: Dup(1,0) (37) +19: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (38) +20: Constant(Ljava/lang/String;,"Could find terminal ") (41) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) +22: LocalLoad(Ljava/lang/Object;,1) (46) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (47) +24: Constant(Ljava/lang/String;," while declaring precedence") (50) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (52) +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (55) +27: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (58) +28: Goto(54) (61) +29: LocalLoad(Ljava/lang/Object;,2) (64) +30: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (65) +31: LocalStore(Ljava/lang/Object;,3) (68) +32: LocalLoad(Ljava/lang/Object;,3) (69) +33: Instanceof(Ljava_cup/terminal;) (70) +34: Constant(I,0) (73) +35: ConditionalBranch(I,eq,44) (73) +36: LocalLoad(Ljava/lang/Object;,3) (76) +37: CheckCast(Ljava_cup/terminal;) (77) +38: LocalLoad(Ljava/lang/Object;,0) (80) +39: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_side) (81) +40: LocalLoad(Ljava/lang/Object;,0) (84) +41: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_prec) (85) +42: Invoke(VIRTUAL,Ljava_cup/terminal;,set_precedence,(II)V) (88) +43: Goto(54) (91) +44: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (94) +45: New(Ljava/lang/StringBuilder;,0) (97) +46: Dup(1,0) (100) +47: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (101) +48: Constant(Ljava/lang/String;,"Precedence declaration: Can't find terminal ") (104) +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (106) +50: LocalLoad(Ljava/lang/Object;,1) (109) +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (110) +52: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (113) +53: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (116) +54: Return(V) (119) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +1: Constant(Ljava/lang/String;,"add_precedence(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 64 +5: Constant(L;,null) (1) + Handles null at 64 +6: ConditionalBranch(Ljava/lang/Object;,ne,11) (1) + Handles null at 64 +7: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (4) + Handles null at 64 +8: Constant(Ljava/lang/String;,"Unable to add precedence to nonexistent terminal") (7) + Handles null at 64 +9: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (9) + Handles null at 64 +10: Goto(58) (12) + Handles null at 64 +11: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 64 +12: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (16) + Handles null at 64 +13: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 64 +14: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (20) + Handles null at 64 +15: CheckCast(Ljava_cup/symbol_part;) (23) + Handles null at 64 +16: LocalStore(Ljava/lang/Object;,2) (26) + Handles null at 64 +17: LocalLoad(Ljava/lang/Object;,2) (27) + Handles null at 64 +18: Constant(L;,null) (28) + Handles null at 64 +19: ConditionalBranch(Ljava/lang/Object;,ne,33) (28) + Handles null at 64 +20: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (31) + Handles null at 64 +21: New(Ljava/lang/StringBuilder;,0) (34) + Handles null at 64 +22: Dup(1,0) (37) + Handles null at 64 +23: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (38) + Handles null at 64 +24: Constant(Ljava/lang/String;,"Could find terminal ") (41) + Handles null at 64 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) + Handles null at 64 +26: LocalLoad(Ljava/lang/Object;,1) (46) + Handles null at 64 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (47) + Handles null at 64 +28: Constant(Ljava/lang/String;," while declaring precedence") (50) + Handles null at 64 +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (52) + Handles null at 64 +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (55) + Handles null at 64 +31: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (58) + Handles null at 64 +32: Goto(58) (61) + Handles null at 64 +33: LocalLoad(Ljava/lang/Object;,2) (64) + Handles null at 64 +34: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (65) + Handles null at 64 +35: LocalStore(Ljava/lang/Object;,3) (68) + Handles null at 64 +36: LocalLoad(Ljava/lang/Object;,3) (69) + Handles null at 64 +37: Instanceof(Ljava_cup/terminal;) (70) + Handles null at 64 +38: Constant(I,0) (73) + Handles null at 64 +39: ConditionalBranch(I,eq,48) (73) + Handles null at 64 +40: LocalLoad(Ljava/lang/Object;,3) (76) + Handles null at 64 +41: CheckCast(Ljava_cup/terminal;) (77) + Handles null at 64 +42: LocalLoad(Ljava/lang/Object;,0) (80) + Handles null at 64 +43: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_side) (81) + Handles null at 64 +44: LocalLoad(Ljava/lang/Object;,0) (84) + Handles null at 64 +45: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_prec) (85) + Handles null at 64 +46: Invoke(VIRTUAL,Ljava_cup/terminal;,set_precedence,(II)V) (88) + Handles null at 64 +47: Goto(58) (91) + Handles null at 64 +48: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (94) + Handles null at 64 +49: New(Ljava/lang/StringBuilder;,0) (97) + Handles null at 64 +50: Dup(1,0) (100) + Handles null at 64 +51: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (101) + Handles null at 64 +52: Constant(Ljava/lang/String;,"Precedence declaration: Can't find terminal ") (104) + Handles null at 64 +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (106) + Handles null at 64 +54: LocalLoad(Ljava/lang/Object;,1) (109) + Handles null at 64 +55: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (110) + Handles null at 64 +56: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (113) + Handles null at 64 +57: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (116) + Handles null at 64 +58: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (119) + Handles null at 64 +59: Constant(Ljava/lang/String;,"add_precedence(Ljava/lang/String;)V") (119) + Handles null at 64 +60: LocalLoad(Ljava/lang/Object;,0) (119) + Handles null at 64 +61: Constant(I,0) (119) + Handles null at 64 +62: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (119) + Handles null at 64 +63: Return(V) (119) + Handles null at 64 +64: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +65: Constant(Ljava/lang/String;,"add_precedence(Ljava/lang/String;)V") (0) +66: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +67: Constant(I,1) (0) +68: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +69: Throw() (0) +Instrumenting (Ljava_cup/parser;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(I,200) (5) +4: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,MAX_RHS) (8) +5: LocalLoad(Ljava/lang/Object;,0) (11) +6: Constant(I,200) (12) +7: New([Ljava_cup/production_part;,1) (15) +8: Put([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (18) +9: LocalLoad(Ljava/lang/Object;,0) (21) +10: Constant(I,0) (22) +11: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (23) +12: LocalLoad(Ljava/lang/Object;,0) (26) +13: New(Ljava/lang/String;,0) (27) +14: Dup(1,0) (30) +15: Invoke(SPECIAL,Ljava/lang/String;,,()V) (31) +16: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (34) +17: LocalLoad(Ljava/lang/Object;,0) (37) +18: New(Ljava/util/Stack;,0) (38) +19: Dup(1,0) (41) +20: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (42) +21: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_names) (45) +22: LocalLoad(Ljava/lang/Object;,0) (48) +23: New(Ljava/util/Hashtable;,0) (49) +24: Dup(1,0) (52) +25: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (53) +26: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (56) +27: LocalLoad(Ljava/lang/Object;,0) (59) +28: New(Ljava/util/Hashtable;,0) (60) +29: Dup(1,0) (63) +30: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (64) +31: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (67) +32: LocalLoad(Ljava/lang/Object;,0) (70) +33: Constant(L;,null) (71) +34: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (72) +35: LocalLoad(Ljava/lang/Object;,0) (75) +36: Constant(I,0) (76) +37: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_prec) (77) +38: LocalLoad(Ljava/lang/Object;,0) (80) +39: Constant(I,-1) (81) +40: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_side) (82) +41: LocalLoad(Ljava/lang/Object;,0) (85) +42: LocalLoad(Ljava/lang/Object;,1) (86) +43: Put(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (87) +44: Return(V) (90) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/parser;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 54 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 54 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 54 +7: Constant(I,200) (5) + Handles null at 54 +8: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,MAX_RHS) (8) + Handles null at 54 +9: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 54 +10: Constant(I,200) (12) + Handles null at 54 +11: New([Ljava_cup/production_part;,1) (15) + Handles null at 54 +12: Put([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (18) + Handles null at 54 +13: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 54 +14: Constant(I,0) (22) + Handles null at 54 +15: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (23) + Handles null at 54 +16: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 54 +17: New(Ljava/lang/String;,0) (27) + Handles null at 54 +18: Dup(1,0) (30) + Handles null at 54 +19: Invoke(SPECIAL,Ljava/lang/String;,,()V) (31) + Handles null at 54 +20: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (34) + Handles null at 54 +21: LocalLoad(Ljava/lang/Object;,0) (37) + Handles null at 54 +22: New(Ljava/util/Stack;,0) (38) + Handles null at 54 +23: Dup(1,0) (41) + Handles null at 54 +24: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (42) + Handles null at 54 +25: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_names) (45) + Handles null at 54 +26: LocalLoad(Ljava/lang/Object;,0) (48) + Handles null at 54 +27: New(Ljava/util/Hashtable;,0) (49) + Handles null at 54 +28: Dup(1,0) (52) + Handles null at 54 +29: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (53) + Handles null at 54 +30: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (56) + Handles null at 54 +31: LocalLoad(Ljava/lang/Object;,0) (59) + Handles null at 54 +32: New(Ljava/util/Hashtable;,0) (60) + Handles null at 54 +33: Dup(1,0) (63) + Handles null at 54 +34: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (64) + Handles null at 54 +35: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (67) + Handles null at 54 +36: LocalLoad(Ljava/lang/Object;,0) (70) + Handles null at 54 +37: Constant(L;,null) (71) + Handles null at 54 +38: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (72) + Handles null at 54 +39: LocalLoad(Ljava/lang/Object;,0) (75) + Handles null at 54 +40: Constant(I,0) (76) + Handles null at 54 +41: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_prec) (77) + Handles null at 54 +42: LocalLoad(Ljava/lang/Object;,0) (80) + Handles null at 54 +43: Constant(I,-1) (81) + Handles null at 54 +44: Put(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,_cur_side) (82) + Handles null at 54 +45: LocalLoad(Ljava/lang/Object;,0) (85) + Handles null at 54 +46: LocalLoad(Ljava/lang/Object;,1) (86) + Handles null at 54 +47: Put(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (87) + Handles null at 54 +48: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (90) + Handles null at 54 +49: Constant(Ljava/lang/String;,"(Ljava_cup/parser;)V") (90) + Handles null at 54 +50: LocalLoad(Ljava/lang/Object;,0) (90) + Handles null at 54 +51: Constant(I,0) (90) + Handles null at 54 +52: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (90) + Handles null at 54 +53: Return(V) (90) + Handles null at 54 +54: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +55: Constant(Ljava/lang/String;,"(Ljava_cup/parser;)V") (0) +56: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +57: Constant(I,1) (0) +58: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +59: Throw() (0) +Instrumenting CUP$parser$do_action (ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(I,1) (0) +1: Switch(3663,0,3614,1,3581,2,3560,3,3539,4,3513,5,3484,6,3466,7,3445,8,3427,9,3399,10,3370,11,3352,12,3295,13,3277,14,3259,15,3241,16,3223,17,3205,18,3184,19,3129,20,3074,21,3019,22,2964,23,2943,24,2925,25,2904,26,2883,27,2862,28,2841,29,2818,30,2789,31,2766,32,2737,33,2714,34,2685,35,2662,36,2633,37,2612,38,2594,39,2573,40,2555,41,2537,42,2519,43,2498,44,2480,45,2459,46,2430,47,2409,48,2380,49,2359,50,2330,51,2309,52,2291,53,2252,54,2198,55,2101,56,2047,57,2029,58,2008,59,1990,60,1927,61,1873,62,1852,63,1823,64,1802,65,1784,66,1601,67,1521,68,1500,69,1482,70,1388,71,1348,72,1309,73,1289,74,1239,75,1212,76,1141,77,1101,78,1065,79,992,80,966,81,930,82,910,83,874,84,838,85,811,86,793,87,775,88,748,89,672,90,588,91,552,92,529,93,493,94,470,95,434,96,398,97,378,98,358,99,338,100,318,101,298,102,278,103,258,104,238,105,218,106,198,107,178,108,158,109,138,110,118,111,95,112,74,113,56,114,38,115,20,116,2) (1) +2: Constant(L;,null) (484) +3: LocalStore(Ljava/lang/Object;,6) (485) +4: LocalLoad(Ljava/lang/Object;,0) (487) +5: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (488) +6: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (491) +7: Constant(Ljava/lang/String;,"empty") (494) +8: Constant(I,28) (496) +9: LocalLoad(Ljava/lang/Object;,3) (498) +10: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (499) +11: CheckCast(Ljava_cup/runtime/Symbol;) (502) +12: LocalLoad(Ljava/lang/Object;,3) (505) +13: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (506) +14: CheckCast(Ljava_cup/runtime/Symbol;) (509) +15: LocalLoad(Ljava/lang/Object;,6) (512) +16: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (514) +17: LocalStore(Ljava/lang/Object;,5) (519) +18: LocalLoad(Ljava/lang/Object;,5) (521) +19: Return(Ljava/lang/Object;) (523) +20: Constant(L;,null) (524) +21: LocalStore(Ljava/lang/Object;,6) (525) +22: LocalLoad(Ljava/lang/Object;,0) (527) +23: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (528) +24: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (531) +25: Constant(Ljava/lang/String;,"opt_semi") (534) +26: Constant(I,6) (536) +27: LocalLoad(Ljava/lang/Object;,3) (538) +28: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (539) +29: CheckCast(Ljava_cup/runtime/Symbol;) (542) +30: LocalLoad(Ljava/lang/Object;,3) (545) +31: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (546) +32: CheckCast(Ljava_cup/runtime/Symbol;) (549) +33: LocalLoad(Ljava/lang/Object;,6) (552) +34: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (554) +35: LocalStore(Ljava/lang/Object;,5) (559) +36: LocalLoad(Ljava/lang/Object;,5) (561) +37: Return(Ljava/lang/Object;) (563) +38: Constant(L;,null) (564) +39: LocalStore(Ljava/lang/Object;,6) (565) +40: LocalLoad(Ljava/lang/Object;,0) (567) +41: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (568) +42: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (571) +43: Constant(Ljava/lang/String;,"opt_semi") (574) +44: Constant(I,6) (576) +45: LocalLoad(Ljava/lang/Object;,3) (578) +46: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (579) +47: CheckCast(Ljava_cup/runtime/Symbol;) (582) +48: LocalLoad(Ljava/lang/Object;,3) (585) +49: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (586) +50: CheckCast(Ljava_cup/runtime/Symbol;) (589) +51: LocalLoad(Ljava/lang/Object;,6) (592) +52: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (594) +53: LocalStore(Ljava/lang/Object;,5) (599) +54: LocalLoad(Ljava/lang/Object;,5) (601) +55: Return(Ljava/lang/Object;) (603) +56: Constant(L;,null) (604) +57: LocalStore(Ljava/lang/Object;,6) (605) +58: LocalLoad(Ljava/lang/Object;,0) (607) +59: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (608) +60: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (611) +61: Constant(Ljava/lang/String;,"non_terminal") (614) +62: Constant(I,7) (616) +63: LocalLoad(Ljava/lang/Object;,3) (618) +64: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (619) +65: CheckCast(Ljava_cup/runtime/Symbol;) (622) +66: LocalLoad(Ljava/lang/Object;,3) (625) +67: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (626) +68: CheckCast(Ljava_cup/runtime/Symbol;) (629) +69: LocalLoad(Ljava/lang/Object;,6) (632) +70: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (634) +71: LocalStore(Ljava/lang/Object;,5) (639) +72: LocalLoad(Ljava/lang/Object;,5) (641) +73: Return(Ljava/lang/Object;) (643) +74: Constant(L;,null) (644) +75: LocalStore(Ljava/lang/Object;,6) (645) +76: LocalLoad(Ljava/lang/Object;,0) (647) +77: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (648) +78: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (651) +79: Constant(Ljava/lang/String;,"non_terminal") (654) +80: Constant(I,7) (656) +81: LocalLoad(Ljava/lang/Object;,3) (658) +82: LocalLoad(I,4) (659) +83: Constant(I,1) (661) +84: BinaryOp(I,sub) (662) +85: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (663) +86: CheckCast(Ljava_cup/runtime/Symbol;) (666) +87: LocalLoad(Ljava/lang/Object;,3) (669) +88: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (670) +89: CheckCast(Ljava_cup/runtime/Symbol;) (673) +90: LocalLoad(Ljava/lang/Object;,6) (676) +91: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (678) +92: LocalStore(Ljava/lang/Object;,5) (683) +93: LocalLoad(Ljava/lang/Object;,5) (685) +94: Return(Ljava/lang/Object;) (687) +95: Constant(L;,null) (688) +96: LocalStore(Ljava/lang/Object;,6) (689) +97: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (691) +98: Constant(Ljava/lang/String;,"Illegal use of reserved word") (694) +99: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (696) +100: Constant(Ljava/lang/String;,"ILLEGAL") (699) +101: LocalStore(Ljava/lang/Object;,6) (701) +102: LocalLoad(Ljava/lang/Object;,0) (703) +103: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (704) +104: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (707) +105: Constant(Ljava/lang/String;,"robust_id") (710) +106: Constant(I,42) (712) +107: LocalLoad(Ljava/lang/Object;,3) (714) +108: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (715) +109: CheckCast(Ljava_cup/runtime/Symbol;) (718) +110: LocalLoad(Ljava/lang/Object;,3) (721) +111: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (722) +112: CheckCast(Ljava_cup/runtime/Symbol;) (725) +113: LocalLoad(Ljava/lang/Object;,6) (728) +114: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (730) +115: LocalStore(Ljava/lang/Object;,5) (735) +116: LocalLoad(Ljava/lang/Object;,5) (737) +117: Return(Ljava/lang/Object;) (739) +118: Constant(L;,null) (740) +119: LocalStore(Ljava/lang/Object;,6) (741) +120: Constant(Ljava/lang/String;,"nonassoc") (743) +121: LocalStore(Ljava/lang/Object;,6) (745) +122: LocalLoad(Ljava/lang/Object;,0) (747) +123: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (748) +124: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (751) +125: Constant(Ljava/lang/String;,"robust_id") (754) +126: Constant(I,42) (756) +127: LocalLoad(Ljava/lang/Object;,3) (758) +128: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (759) +129: CheckCast(Ljava_cup/runtime/Symbol;) (762) +130: LocalLoad(Ljava/lang/Object;,3) (765) +131: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (766) +132: CheckCast(Ljava_cup/runtime/Symbol;) (769) +133: LocalLoad(Ljava/lang/Object;,6) (772) +134: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (774) +135: LocalStore(Ljava/lang/Object;,5) (779) +136: LocalLoad(Ljava/lang/Object;,5) (781) +137: Return(Ljava/lang/Object;) (783) +138: Constant(L;,null) (784) +139: LocalStore(Ljava/lang/Object;,6) (785) +140: Constant(Ljava/lang/String;,"right") (787) +141: LocalStore(Ljava/lang/Object;,6) (789) +142: LocalLoad(Ljava/lang/Object;,0) (791) +143: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (792) +144: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (795) +145: Constant(Ljava/lang/String;,"robust_id") (798) +146: Constant(I,42) (800) +147: LocalLoad(Ljava/lang/Object;,3) (802) +148: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (803) +149: CheckCast(Ljava_cup/runtime/Symbol;) (806) +150: LocalLoad(Ljava/lang/Object;,3) (809) +151: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (810) +152: CheckCast(Ljava_cup/runtime/Symbol;) (813) +153: LocalLoad(Ljava/lang/Object;,6) (816) +154: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (818) +155: LocalStore(Ljava/lang/Object;,5) (823) +156: LocalLoad(Ljava/lang/Object;,5) (825) +157: Return(Ljava/lang/Object;) (827) +158: Constant(L;,null) (828) +159: LocalStore(Ljava/lang/Object;,6) (829) +160: Constant(Ljava/lang/String;,"left") (831) +161: LocalStore(Ljava/lang/Object;,6) (833) +162: LocalLoad(Ljava/lang/Object;,0) (835) +163: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (836) +164: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (839) +165: Constant(Ljava/lang/String;,"robust_id") (842) +166: Constant(I,42) (844) +167: LocalLoad(Ljava/lang/Object;,3) (846) +168: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (847) +169: CheckCast(Ljava_cup/runtime/Symbol;) (850) +170: LocalLoad(Ljava/lang/Object;,3) (853) +171: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (854) +172: CheckCast(Ljava_cup/runtime/Symbol;) (857) +173: LocalLoad(Ljava/lang/Object;,6) (860) +174: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (862) +175: LocalStore(Ljava/lang/Object;,5) (867) +176: LocalLoad(Ljava/lang/Object;,5) (869) +177: Return(Ljava/lang/Object;) (871) +178: Constant(L;,null) (872) +179: LocalStore(Ljava/lang/Object;,6) (873) +180: Constant(Ljava/lang/String;,"precedence") (875) +181: LocalStore(Ljava/lang/Object;,6) (877) +182: LocalLoad(Ljava/lang/Object;,0) (879) +183: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (880) +184: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (883) +185: Constant(Ljava/lang/String;,"robust_id") (886) +186: Constant(I,42) (888) +187: LocalLoad(Ljava/lang/Object;,3) (890) +188: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (891) +189: CheckCast(Ljava_cup/runtime/Symbol;) (894) +190: LocalLoad(Ljava/lang/Object;,3) (897) +191: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (898) +192: CheckCast(Ljava_cup/runtime/Symbol;) (901) +193: LocalLoad(Ljava/lang/Object;,6) (904) +194: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (906) +195: LocalStore(Ljava/lang/Object;,5) (911) +196: LocalLoad(Ljava/lang/Object;,5) (913) +197: Return(Ljava/lang/Object;) (915) +198: Constant(L;,null) (916) +199: LocalStore(Ljava/lang/Object;,6) (917) +200: Constant(Ljava/lang/String;,"start") (919) +201: LocalStore(Ljava/lang/Object;,6) (921) +202: LocalLoad(Ljava/lang/Object;,0) (923) +203: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (924) +204: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (927) +205: Constant(Ljava/lang/String;,"robust_id") (930) +206: Constant(I,42) (932) +207: LocalLoad(Ljava/lang/Object;,3) (934) +208: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (935) +209: CheckCast(Ljava_cup/runtime/Symbol;) (938) +210: LocalLoad(Ljava/lang/Object;,3) (941) +211: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (942) +212: CheckCast(Ljava_cup/runtime/Symbol;) (945) +213: LocalLoad(Ljava/lang/Object;,6) (948) +214: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (950) +215: LocalStore(Ljava/lang/Object;,5) (955) +216: LocalLoad(Ljava/lang/Object;,5) (957) +217: Return(Ljava/lang/Object;) (959) +218: Constant(L;,null) (960) +219: LocalStore(Ljava/lang/Object;,6) (961) +220: Constant(Ljava/lang/String;,"with") (963) +221: LocalStore(Ljava/lang/Object;,6) (965) +222: LocalLoad(Ljava/lang/Object;,0) (967) +223: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (968) +224: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (971) +225: Constant(Ljava/lang/String;,"robust_id") (974) +226: Constant(I,42) (976) +227: LocalLoad(Ljava/lang/Object;,3) (978) +228: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (979) +229: CheckCast(Ljava_cup/runtime/Symbol;) (982) +230: LocalLoad(Ljava/lang/Object;,3) (985) +231: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (986) +232: CheckCast(Ljava_cup/runtime/Symbol;) (989) +233: LocalLoad(Ljava/lang/Object;,6) (992) +234: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (994) +235: LocalStore(Ljava/lang/Object;,5) (999) +236: LocalLoad(Ljava/lang/Object;,5) (1001) +237: Return(Ljava/lang/Object;) (1003) +238: Constant(L;,null) (1004) +239: LocalStore(Ljava/lang/Object;,6) (1005) +240: Constant(Ljava/lang/String;,"scan") (1007) +241: LocalStore(Ljava/lang/Object;,6) (1009) +242: LocalLoad(Ljava/lang/Object;,0) (1011) +243: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1012) +244: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1015) +245: Constant(Ljava/lang/String;,"robust_id") (1018) +246: Constant(I,42) (1020) +247: LocalLoad(Ljava/lang/Object;,3) (1022) +248: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1023) +249: CheckCast(Ljava_cup/runtime/Symbol;) (1026) +250: LocalLoad(Ljava/lang/Object;,3) (1029) +251: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1030) +252: CheckCast(Ljava_cup/runtime/Symbol;) (1033) +253: LocalLoad(Ljava/lang/Object;,6) (1036) +254: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1038) +255: LocalStore(Ljava/lang/Object;,5) (1043) +256: LocalLoad(Ljava/lang/Object;,5) (1045) +257: Return(Ljava/lang/Object;) (1047) +258: Constant(L;,null) (1048) +259: LocalStore(Ljava/lang/Object;,6) (1049) +260: Constant(Ljava/lang/String;,"init") (1051) +261: LocalStore(Ljava/lang/Object;,6) (1053) +262: LocalLoad(Ljava/lang/Object;,0) (1055) +263: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1056) +264: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1059) +265: Constant(Ljava/lang/String;,"robust_id") (1062) +266: Constant(I,42) (1064) +267: LocalLoad(Ljava/lang/Object;,3) (1066) +268: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1067) +269: CheckCast(Ljava_cup/runtime/Symbol;) (1070) +270: LocalLoad(Ljava/lang/Object;,3) (1073) +271: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1074) +272: CheckCast(Ljava_cup/runtime/Symbol;) (1077) +273: LocalLoad(Ljava/lang/Object;,6) (1080) +274: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1082) +275: LocalStore(Ljava/lang/Object;,5) (1087) +276: LocalLoad(Ljava/lang/Object;,5) (1089) +277: Return(Ljava/lang/Object;) (1091) +278: Constant(L;,null) (1092) +279: LocalStore(Ljava/lang/Object;,6) (1093) +280: Constant(Ljava/lang/String;,"nonterminal") (1095) +281: LocalStore(Ljava/lang/Object;,6) (1097) +282: LocalLoad(Ljava/lang/Object;,0) (1099) +283: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1100) +284: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1103) +285: Constant(Ljava/lang/String;,"robust_id") (1106) +286: Constant(I,42) (1108) +287: LocalLoad(Ljava/lang/Object;,3) (1110) +288: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1111) +289: CheckCast(Ljava_cup/runtime/Symbol;) (1114) +290: LocalLoad(Ljava/lang/Object;,3) (1117) +291: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1118) +292: CheckCast(Ljava_cup/runtime/Symbol;) (1121) +293: LocalLoad(Ljava/lang/Object;,6) (1124) +294: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1126) +295: LocalStore(Ljava/lang/Object;,5) (1131) +296: LocalLoad(Ljava/lang/Object;,5) (1133) +297: Return(Ljava/lang/Object;) (1135) +298: Constant(L;,null) (1136) +299: LocalStore(Ljava/lang/Object;,6) (1137) +300: Constant(Ljava/lang/String;,"non") (1139) +301: LocalStore(Ljava/lang/Object;,6) (1141) +302: LocalLoad(Ljava/lang/Object;,0) (1143) +303: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1144) +304: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1147) +305: Constant(Ljava/lang/String;,"robust_id") (1150) +306: Constant(I,42) (1152) +307: LocalLoad(Ljava/lang/Object;,3) (1154) +308: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1155) +309: CheckCast(Ljava_cup/runtime/Symbol;) (1158) +310: LocalLoad(Ljava/lang/Object;,3) (1161) +311: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1162) +312: CheckCast(Ljava_cup/runtime/Symbol;) (1165) +313: LocalLoad(Ljava/lang/Object;,6) (1168) +314: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1170) +315: LocalStore(Ljava/lang/Object;,5) (1175) +316: LocalLoad(Ljava/lang/Object;,5) (1177) +317: Return(Ljava/lang/Object;) (1179) +318: Constant(L;,null) (1180) +319: LocalStore(Ljava/lang/Object;,6) (1181) +320: Constant(Ljava/lang/String;,"terminal") (1183) +321: LocalStore(Ljava/lang/Object;,6) (1185) +322: LocalLoad(Ljava/lang/Object;,0) (1187) +323: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1188) +324: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1191) +325: Constant(Ljava/lang/String;,"robust_id") (1194) +326: Constant(I,42) (1196) +327: LocalLoad(Ljava/lang/Object;,3) (1198) +328: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1199) +329: CheckCast(Ljava_cup/runtime/Symbol;) (1202) +330: LocalLoad(Ljava/lang/Object;,3) (1205) +331: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1206) +332: CheckCast(Ljava_cup/runtime/Symbol;) (1209) +333: LocalLoad(Ljava/lang/Object;,6) (1212) +334: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1214) +335: LocalStore(Ljava/lang/Object;,5) (1219) +336: LocalLoad(Ljava/lang/Object;,5) (1221) +337: Return(Ljava/lang/Object;) (1223) +338: Constant(L;,null) (1224) +339: LocalStore(Ljava/lang/Object;,6) (1225) +340: Constant(Ljava/lang/String;,"parser") (1227) +341: LocalStore(Ljava/lang/Object;,6) (1229) +342: LocalLoad(Ljava/lang/Object;,0) (1231) +343: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1232) +344: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1235) +345: Constant(Ljava/lang/String;,"robust_id") (1238) +346: Constant(I,42) (1240) +347: LocalLoad(Ljava/lang/Object;,3) (1242) +348: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1243) +349: CheckCast(Ljava_cup/runtime/Symbol;) (1246) +350: LocalLoad(Ljava/lang/Object;,3) (1249) +351: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1250) +352: CheckCast(Ljava_cup/runtime/Symbol;) (1253) +353: LocalLoad(Ljava/lang/Object;,6) (1256) +354: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1258) +355: LocalStore(Ljava/lang/Object;,5) (1263) +356: LocalLoad(Ljava/lang/Object;,5) (1265) +357: Return(Ljava/lang/Object;) (1267) +358: Constant(L;,null) (1268) +359: LocalStore(Ljava/lang/Object;,6) (1269) +360: Constant(Ljava/lang/String;,"action") (1271) +361: LocalStore(Ljava/lang/Object;,6) (1273) +362: LocalLoad(Ljava/lang/Object;,0) (1275) +363: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1276) +364: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1279) +365: Constant(Ljava/lang/String;,"robust_id") (1282) +366: Constant(I,42) (1284) +367: LocalLoad(Ljava/lang/Object;,3) (1286) +368: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1287) +369: CheckCast(Ljava_cup/runtime/Symbol;) (1290) +370: LocalLoad(Ljava/lang/Object;,3) (1293) +371: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1294) +372: CheckCast(Ljava_cup/runtime/Symbol;) (1297) +373: LocalLoad(Ljava/lang/Object;,6) (1300) +374: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1302) +375: LocalStore(Ljava/lang/Object;,5) (1307) +376: LocalLoad(Ljava/lang/Object;,5) (1309) +377: Return(Ljava/lang/Object;) (1311) +378: Constant(L;,null) (1312) +379: LocalStore(Ljava/lang/Object;,6) (1313) +380: Constant(Ljava/lang/String;,"code") (1315) +381: LocalStore(Ljava/lang/Object;,6) (1317) +382: LocalLoad(Ljava/lang/Object;,0) (1319) +383: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1320) +384: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1323) +385: Constant(Ljava/lang/String;,"robust_id") (1326) +386: Constant(I,42) (1328) +387: LocalLoad(Ljava/lang/Object;,3) (1330) +388: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1331) +389: CheckCast(Ljava_cup/runtime/Symbol;) (1334) +390: LocalLoad(Ljava/lang/Object;,3) (1337) +391: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1338) +392: CheckCast(Ljava_cup/runtime/Symbol;) (1341) +393: LocalLoad(Ljava/lang/Object;,6) (1344) +394: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1346) +395: LocalStore(Ljava/lang/Object;,5) (1351) +396: LocalLoad(Ljava/lang/Object;,5) (1353) +397: Return(Ljava/lang/Object;) (1355) +398: Constant(L;,null) (1356) +399: LocalStore(Ljava/lang/Object;,6) (1357) +400: LocalLoad(Ljava/lang/Object;,3) (1359) +401: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1360) +402: CheckCast(Ljava_cup/runtime/Symbol;) (1363) +403: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1366) +404: LocalStore(I,7) (1369) +405: LocalLoad(Ljava/lang/Object;,3) (1371) +406: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1372) +407: CheckCast(Ljava_cup/runtime/Symbol;) (1375) +408: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1378) +409: LocalStore(I,8) (1381) +410: LocalLoad(Ljava/lang/Object;,3) (1383) +411: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1384) +412: CheckCast(Ljava_cup/runtime/Symbol;) (1387) +413: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1390) +414: CheckCast(Ljava/lang/String;) (1393) +415: LocalStore(Ljava/lang/Object;,9) (1396) +416: LocalLoad(Ljava/lang/Object;,9) (1398) +417: LocalStore(Ljava/lang/Object;,6) (1400) +418: LocalLoad(Ljava/lang/Object;,0) (1402) +419: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1403) +420: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1406) +421: Constant(Ljava/lang/String;,"robust_id") (1409) +422: Constant(I,42) (1411) +423: LocalLoad(Ljava/lang/Object;,3) (1413) +424: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1414) +425: CheckCast(Ljava_cup/runtime/Symbol;) (1417) +426: LocalLoad(Ljava/lang/Object;,3) (1420) +427: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1421) +428: CheckCast(Ljava_cup/runtime/Symbol;) (1424) +429: LocalLoad(Ljava/lang/Object;,6) (1427) +430: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1429) +431: LocalStore(Ljava/lang/Object;,5) (1434) +432: LocalLoad(Ljava/lang/Object;,5) (1436) +433: Return(Ljava/lang/Object;) (1438) +434: Constant(L;,null) (1439) +435: LocalStore(Ljava/lang/Object;,6) (1440) +436: LocalLoad(Ljava/lang/Object;,3) (1442) +437: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1443) +438: CheckCast(Ljava_cup/runtime/Symbol;) (1446) +439: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1449) +440: LocalStore(I,7) (1452) +441: LocalLoad(Ljava/lang/Object;,3) (1454) +442: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1455) +443: CheckCast(Ljava_cup/runtime/Symbol;) (1458) +444: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1461) +445: LocalStore(I,8) (1464) +446: LocalLoad(Ljava/lang/Object;,3) (1466) +447: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1467) +448: CheckCast(Ljava_cup/runtime/Symbol;) (1470) +449: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1473) +450: CheckCast(Ljava/lang/String;) (1476) +451: LocalStore(Ljava/lang/Object;,9) (1479) +452: LocalLoad(Ljava/lang/Object;,9) (1481) +453: LocalStore(Ljava/lang/Object;,6) (1483) +454: LocalLoad(Ljava/lang/Object;,0) (1485) +455: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1486) +456: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1489) +457: Constant(Ljava/lang/String;,"label_id") (1492) +458: Constant(I,38) (1494) +459: LocalLoad(Ljava/lang/Object;,3) (1496) +460: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1497) +461: CheckCast(Ljava_cup/runtime/Symbol;) (1500) +462: LocalLoad(Ljava/lang/Object;,3) (1503) +463: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1504) +464: CheckCast(Ljava_cup/runtime/Symbol;) (1507) +465: LocalLoad(Ljava/lang/Object;,6) (1510) +466: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1512) +467: LocalStore(Ljava/lang/Object;,5) (1517) +468: LocalLoad(Ljava/lang/Object;,5) (1519) +469: Return(Ljava/lang/Object;) (1521) +470: Constant(L;,null) (1522) +471: LocalStore(Ljava/lang/Object;,6) (1523) +472: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (1525) +473: Constant(Ljava/lang/String;,"Illegal use of reserved word") (1528) +474: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (1530) +475: Constant(Ljava/lang/String;,"ILLEGAL") (1533) +476: LocalStore(Ljava/lang/Object;,6) (1535) +477: LocalLoad(Ljava/lang/Object;,0) (1537) +478: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1538) +479: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1541) +480: Constant(Ljava/lang/String;,"symbol_id") (1544) +481: Constant(I,37) (1546) +482: LocalLoad(Ljava/lang/Object;,3) (1548) +483: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1549) +484: CheckCast(Ljava_cup/runtime/Symbol;) (1552) +485: LocalLoad(Ljava/lang/Object;,3) (1555) +486: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1556) +487: CheckCast(Ljava_cup/runtime/Symbol;) (1559) +488: LocalLoad(Ljava/lang/Object;,6) (1562) +489: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1564) +490: LocalStore(Ljava/lang/Object;,5) (1569) +491: LocalLoad(Ljava/lang/Object;,5) (1571) +492: Return(Ljava/lang/Object;) (1573) +493: Constant(L;,null) (1574) +494: LocalStore(Ljava/lang/Object;,6) (1575) +495: LocalLoad(Ljava/lang/Object;,3) (1577) +496: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1578) +497: CheckCast(Ljava_cup/runtime/Symbol;) (1581) +498: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1584) +499: LocalStore(I,7) (1587) +500: LocalLoad(Ljava/lang/Object;,3) (1589) +501: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1590) +502: CheckCast(Ljava_cup/runtime/Symbol;) (1593) +503: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1596) +504: LocalStore(I,8) (1599) +505: LocalLoad(Ljava/lang/Object;,3) (1601) +506: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1602) +507: CheckCast(Ljava_cup/runtime/Symbol;) (1605) +508: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1608) +509: CheckCast(Ljava/lang/String;) (1611) +510: LocalStore(Ljava/lang/Object;,9) (1614) +511: LocalLoad(Ljava/lang/Object;,9) (1616) +512: LocalStore(Ljava/lang/Object;,6) (1618) +513: LocalLoad(Ljava/lang/Object;,0) (1620) +514: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1621) +515: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1624) +516: Constant(Ljava/lang/String;,"symbol_id") (1627) +517: Constant(I,37) (1629) +518: LocalLoad(Ljava/lang/Object;,3) (1631) +519: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1632) +520: CheckCast(Ljava_cup/runtime/Symbol;) (1635) +521: LocalLoad(Ljava/lang/Object;,3) (1638) +522: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1639) +523: CheckCast(Ljava_cup/runtime/Symbol;) (1642) +524: LocalLoad(Ljava/lang/Object;,6) (1645) +525: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1647) +526: LocalStore(Ljava/lang/Object;,5) (1652) +527: LocalLoad(Ljava/lang/Object;,5) (1654) +528: Return(Ljava/lang/Object;) (1656) +529: Constant(L;,null) (1657) +530: LocalStore(Ljava/lang/Object;,6) (1658) +531: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (1660) +532: Constant(Ljava/lang/String;,"Illegal use of reserved word") (1663) +533: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (1665) +534: Constant(Ljava/lang/String;,"ILLEGAL") (1668) +535: LocalStore(Ljava/lang/Object;,6) (1670) +536: LocalLoad(Ljava/lang/Object;,0) (1672) +537: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1673) +538: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1676) +539: Constant(Ljava/lang/String;,"nt_id") (1679) +540: Constant(I,36) (1681) +541: LocalLoad(Ljava/lang/Object;,3) (1683) +542: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1684) +543: CheckCast(Ljava_cup/runtime/Symbol;) (1687) +544: LocalLoad(Ljava/lang/Object;,3) (1690) +545: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1691) +546: CheckCast(Ljava_cup/runtime/Symbol;) (1694) +547: LocalLoad(Ljava/lang/Object;,6) (1697) +548: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1699) +549: LocalStore(Ljava/lang/Object;,5) (1704) +550: LocalLoad(Ljava/lang/Object;,5) (1706) +551: Return(Ljava/lang/Object;) (1708) +552: Constant(L;,null) (1709) +553: LocalStore(Ljava/lang/Object;,6) (1710) +554: LocalLoad(Ljava/lang/Object;,3) (1712) +555: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1713) +556: CheckCast(Ljava_cup/runtime/Symbol;) (1716) +557: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1719) +558: LocalStore(I,7) (1722) +559: LocalLoad(Ljava/lang/Object;,3) (1724) +560: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1725) +561: CheckCast(Ljava_cup/runtime/Symbol;) (1728) +562: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1731) +563: LocalStore(I,8) (1734) +564: LocalLoad(Ljava/lang/Object;,3) (1736) +565: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1737) +566: CheckCast(Ljava_cup/runtime/Symbol;) (1740) +567: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1743) +568: CheckCast(Ljava/lang/String;) (1746) +569: LocalStore(Ljava/lang/Object;,9) (1749) +570: LocalLoad(Ljava/lang/Object;,9) (1751) +571: LocalStore(Ljava/lang/Object;,6) (1753) +572: LocalLoad(Ljava/lang/Object;,0) (1755) +573: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1756) +574: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1759) +575: Constant(Ljava/lang/String;,"nt_id") (1762) +576: Constant(I,36) (1764) +577: LocalLoad(Ljava/lang/Object;,3) (1766) +578: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1767) +579: CheckCast(Ljava_cup/runtime/Symbol;) (1770) +580: LocalLoad(Ljava/lang/Object;,3) (1773) +581: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1774) +582: CheckCast(Ljava_cup/runtime/Symbol;) (1777) +583: LocalLoad(Ljava/lang/Object;,6) (1780) +584: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1782) +585: LocalStore(Ljava/lang/Object;,5) (1787) +586: LocalLoad(Ljava/lang/Object;,5) (1789) +587: Return(Ljava/lang/Object;) (1791) +588: Constant(L;,null) (1792) +589: LocalStore(Ljava/lang/Object;,6) (1793) +590: LocalLoad(Ljava/lang/Object;,3) (1795) +591: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1796) +592: CheckCast(Ljava_cup/runtime/Symbol;) (1799) +593: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1802) +594: LocalStore(I,7) (1805) +595: LocalLoad(Ljava/lang/Object;,3) (1807) +596: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1808) +597: CheckCast(Ljava_cup/runtime/Symbol;) (1811) +598: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1814) +599: LocalStore(I,8) (1817) +600: LocalLoad(Ljava/lang/Object;,3) (1819) +601: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1820) +602: CheckCast(Ljava_cup/runtime/Symbol;) (1823) +603: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1826) +604: CheckCast(Ljava/lang/String;) (1829) +605: LocalStore(Ljava/lang/Object;,9) (1832) +606: LocalLoad(Ljava/lang/Object;,0) (1834) +607: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (1835) +608: LocalLoad(Ljava/lang/Object;,9) (1838) +609: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (1840) +610: Constant(L;,null) (1843) +611: ConditionalBranch(Ljava/lang/Object;,eq,625) (1843) +612: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (1846) +613: New(Ljava/lang/StringBuilder;,0) (1849) +614: Dup(1,0) (1852) +615: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1853) +616: Constant(Ljava/lang/String;,"java_cup.runtime.Symbol \"") (1856) +617: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1858) +618: LocalLoad(Ljava/lang/Object;,9) (1861) +619: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1863) +620: Constant(Ljava/lang/String;,"\" has already been declared") (1866) +621: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1868) +622: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1871) +623: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (1874) +624: Goto(656) (1877) +625: LocalLoad(Ljava/lang/Object;,0) (1880) +626: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (1881) +627: Constant(Ljava/lang/String;,"") (1884) +628: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (1886) +629: Constant(I,0) (1889) +630: ConditionalBranch(I,eq,634) (1889) +631: LocalLoad(Ljava/lang/Object;,0) (1892) +632: Constant(Ljava/lang/String;,"Object") (1893) +633: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (1895) +634: New(Ljava_cup/non_terminal;,0) (1898) +635: Dup(1,0) (1901) +636: LocalLoad(Ljava/lang/Object;,9) (1902) +637: LocalLoad(Ljava/lang/Object;,0) (1904) +638: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (1905) +639: Invoke(SPECIAL,Ljava_cup/non_terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (1908) +640: LocalStore(Ljava/lang/Object;,10) (1911) +641: LocalLoad(Ljava/lang/Object;,0) (1913) +642: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (1914) +643: LocalLoad(Ljava/lang/Object;,9) (1917) +644: LocalLoad(Ljava/lang/Object;,10) (1919) +645: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (1921) +646: Pop(1) (1924) +647: LocalLoad(Ljava/lang/Object;,0) (1925) +648: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (1926) +649: LocalLoad(Ljava/lang/Object;,9) (1929) +650: New(Ljava_cup/symbol_part;,0) (1931) +651: Dup(1,0) (1934) +652: LocalLoad(Ljava/lang/Object;,10) (1935) +653: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (1937) +654: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (1940) +655: Pop(1) (1943) +656: LocalLoad(Ljava/lang/Object;,0) (1944) +657: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1945) +658: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1948) +659: Constant(Ljava/lang/String;,"new_non_term_id") (1951) +660: Constant(I,25) (1953) +661: LocalLoad(Ljava/lang/Object;,3) (1955) +662: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1956) +663: CheckCast(Ljava_cup/runtime/Symbol;) (1959) +664: LocalLoad(Ljava/lang/Object;,3) (1962) +665: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1963) +666: CheckCast(Ljava_cup/runtime/Symbol;) (1966) +667: LocalLoad(Ljava/lang/Object;,6) (1969) +668: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1971) +669: LocalStore(Ljava/lang/Object;,5) (1976) +670: LocalLoad(Ljava/lang/Object;,5) (1978) +671: Return(Ljava/lang/Object;) (1980) +672: Constant(L;,null) (1981) +673: LocalStore(Ljava/lang/Object;,6) (1982) +674: LocalLoad(Ljava/lang/Object;,3) (1984) +675: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1985) +676: CheckCast(Ljava_cup/runtime/Symbol;) (1988) +677: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1991) +678: LocalStore(I,7) (1994) +679: LocalLoad(Ljava/lang/Object;,3) (1996) +680: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1997) +681: CheckCast(Ljava_cup/runtime/Symbol;) (2000) +682: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2003) +683: LocalStore(I,8) (2006) +684: LocalLoad(Ljava/lang/Object;,3) (2008) +685: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2009) +686: CheckCast(Ljava_cup/runtime/Symbol;) (2012) +687: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2015) +688: CheckCast(Ljava/lang/String;) (2018) +689: LocalStore(Ljava/lang/Object;,9) (2021) +690: LocalLoad(Ljava/lang/Object;,0) (2023) +691: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (2024) +692: LocalLoad(Ljava/lang/Object;,9) (2027) +693: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (2029) +694: Constant(L;,null) (2032) +695: ConditionalBranch(Ljava/lang/Object;,eq,709) (2032) +696: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (2035) +697: New(Ljava/lang/StringBuilder;,0) (2038) +698: Dup(1,0) (2041) +699: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2042) +700: Constant(Ljava/lang/String;,"java_cup.runtime.Symbol \"") (2045) +701: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2047) +702: LocalLoad(Ljava/lang/Object;,9) (2050) +703: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2052) +704: Constant(Ljava/lang/String;,"\" has already been declared") (2055) +705: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2057) +706: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2060) +707: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (2063) +708: Goto(732) (2066) +709: LocalLoad(Ljava/lang/Object;,0) (2069) +710: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2070) +711: Constant(Ljava/lang/String;,"") (2073) +712: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (2075) +713: Constant(I,0) (2078) +714: ConditionalBranch(I,eq,718) (2078) +715: LocalLoad(Ljava/lang/Object;,0) (2081) +716: Constant(Ljava/lang/String;,"Object") (2082) +717: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2084) +718: LocalLoad(Ljava/lang/Object;,0) (2087) +719: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (2088) +720: LocalLoad(Ljava/lang/Object;,9) (2091) +721: New(Ljava_cup/symbol_part;,0) (2093) +722: Dup(1,0) (2096) +723: New(Ljava_cup/terminal;,0) (2097) +724: Dup(1,0) (2100) +725: LocalLoad(Ljava/lang/Object;,9) (2101) +726: LocalLoad(Ljava/lang/Object;,0) (2103) +727: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2104) +728: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (2107) +729: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (2110) +730: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (2113) +731: Pop(1) (2116) +732: LocalLoad(Ljava/lang/Object;,0) (2117) +733: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2118) +734: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2121) +735: Constant(Ljava/lang/String;,"new_term_id") (2124) +736: Constant(I,24) (2126) +737: LocalLoad(Ljava/lang/Object;,3) (2128) +738: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2129) +739: CheckCast(Ljava_cup/runtime/Symbol;) (2132) +740: LocalLoad(Ljava/lang/Object;,3) (2135) +741: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2136) +742: CheckCast(Ljava_cup/runtime/Symbol;) (2139) +743: LocalLoad(Ljava/lang/Object;,6) (2142) +744: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2144) +745: LocalStore(Ljava/lang/Object;,5) (2149) +746: LocalLoad(Ljava/lang/Object;,5) (2151) +747: Return(Ljava/lang/Object;) (2153) +748: Constant(L;,null) (2154) +749: LocalStore(Ljava/lang/Object;,6) (2155) +750: LocalLoad(Ljava/lang/Object;,0) (2157) +751: LocalLoad(Ljava/lang/Object;,0) (2158) +752: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2159) +753: Constant(Ljava/lang/String;,"[]") (2162) +754: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (2164) +755: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2167) +756: LocalLoad(Ljava/lang/Object;,0) (2170) +757: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2171) +758: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2174) +759: Constant(Ljava/lang/String;,"type_id") (2177) +760: Constant(I,18) (2179) +761: LocalLoad(Ljava/lang/Object;,3) (2181) +762: LocalLoad(I,4) (2182) +763: Constant(I,2) (2184) +764: BinaryOp(I,sub) (2185) +765: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2186) +766: CheckCast(Ljava_cup/runtime/Symbol;) (2189) +767: LocalLoad(Ljava/lang/Object;,3) (2192) +768: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2193) +769: CheckCast(Ljava_cup/runtime/Symbol;) (2196) +770: LocalLoad(Ljava/lang/Object;,6) (2199) +771: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2201) +772: LocalStore(Ljava/lang/Object;,5) (2206) +773: LocalLoad(Ljava/lang/Object;,5) (2208) +774: Return(Ljava/lang/Object;) (2210) +775: Constant(L;,null) (2211) +776: LocalStore(Ljava/lang/Object;,6) (2212) +777: LocalLoad(Ljava/lang/Object;,0) (2214) +778: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2215) +779: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2218) +780: Constant(Ljava/lang/String;,"type_id") (2221) +781: Constant(I,18) (2223) +782: LocalLoad(Ljava/lang/Object;,3) (2225) +783: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2226) +784: CheckCast(Ljava_cup/runtime/Symbol;) (2229) +785: LocalLoad(Ljava/lang/Object;,3) (2232) +786: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2233) +787: CheckCast(Ljava_cup/runtime/Symbol;) (2236) +788: LocalLoad(Ljava/lang/Object;,6) (2239) +789: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2241) +790: LocalStore(Ljava/lang/Object;,5) (2246) +791: LocalLoad(Ljava/lang/Object;,5) (2248) +792: Return(Ljava/lang/Object;) (2250) +793: Constant(L;,null) (2251) +794: LocalStore(Ljava/lang/Object;,6) (2252) +795: LocalLoad(Ljava/lang/Object;,0) (2254) +796: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2255) +797: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2258) +798: Constant(Ljava/lang/String;,"import_id") (2261) +799: Constant(I,14) (2263) +800: LocalLoad(Ljava/lang/Object;,3) (2265) +801: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2266) +802: CheckCast(Ljava_cup/runtime/Symbol;) (2269) +803: LocalLoad(Ljava/lang/Object;,3) (2272) +804: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2273) +805: CheckCast(Ljava_cup/runtime/Symbol;) (2276) +806: LocalLoad(Ljava/lang/Object;,6) (2279) +807: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2281) +808: LocalStore(Ljava/lang/Object;,5) (2286) +809: LocalLoad(Ljava/lang/Object;,5) (2288) +810: Return(Ljava/lang/Object;) (2290) +811: Constant(L;,null) (2291) +812: LocalStore(Ljava/lang/Object;,6) (2292) +813: LocalLoad(Ljava/lang/Object;,0) (2294) +814: LocalLoad(Ljava/lang/Object;,0) (2295) +815: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2296) +816: Constant(Ljava/lang/String;,".*") (2299) +817: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (2301) +818: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2304) +819: LocalLoad(Ljava/lang/Object;,0) (2307) +820: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2308) +821: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2311) +822: Constant(Ljava/lang/String;,"import_id") (2314) +823: Constant(I,14) (2316) +824: LocalLoad(Ljava/lang/Object;,3) (2318) +825: LocalLoad(I,4) (2319) +826: Constant(I,2) (2321) +827: BinaryOp(I,sub) (2322) +828: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2323) +829: CheckCast(Ljava_cup/runtime/Symbol;) (2326) +830: LocalLoad(Ljava/lang/Object;,3) (2329) +831: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2330) +832: CheckCast(Ljava_cup/runtime/Symbol;) (2333) +833: LocalLoad(Ljava/lang/Object;,6) (2336) +834: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2338) +835: LocalStore(Ljava/lang/Object;,5) (2343) +836: LocalLoad(Ljava/lang/Object;,5) (2345) +837: Return(Ljava/lang/Object;) (2347) +838: Constant(L;,null) (2348) +839: LocalStore(Ljava/lang/Object;,6) (2349) +840: New(Ljava/lang/StringBuilder;,0) (2351) +841: Dup(1,0) (2354) +842: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2355) +843: Constant(Ljava/lang/String;," ? super ") (2358) +844: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2360) +845: LocalLoad(Ljava/lang/Object;,0) (2363) +846: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2364) +847: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2367) +848: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2370) +849: LocalStore(Ljava/lang/Object;,6) (2373) +850: LocalLoad(Ljava/lang/Object;,0) (2375) +851: New(Ljava/lang/String;,0) (2376) +852: Dup(1,0) (2379) +853: Invoke(SPECIAL,Ljava/lang/String;,,()V) (2380) +854: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2383) +855: LocalLoad(Ljava/lang/Object;,0) (2386) +856: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2387) +857: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2390) +858: Constant(Ljava/lang/String;,"wildcard") (2393) +859: Constant(I,45) (2395) +860: LocalLoad(Ljava/lang/Object;,3) (2397) +861: LocalLoad(I,4) (2398) +862: Constant(I,2) (2400) +863: BinaryOp(I,sub) (2401) +864: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2402) +865: CheckCast(Ljava_cup/runtime/Symbol;) (2405) +866: LocalLoad(Ljava/lang/Object;,3) (2408) +867: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2409) +868: CheckCast(Ljava_cup/runtime/Symbol;) (2412) +869: LocalLoad(Ljava/lang/Object;,6) (2415) +870: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2417) +871: LocalStore(Ljava/lang/Object;,5) (2422) +872: LocalLoad(Ljava/lang/Object;,5) (2424) +873: Return(Ljava/lang/Object;) (2426) +874: Constant(L;,null) (2427) +875: LocalStore(Ljava/lang/Object;,6) (2428) +876: New(Ljava/lang/StringBuilder;,0) (2430) +877: Dup(1,0) (2433) +878: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2434) +879: Constant(Ljava/lang/String;," ? extends ") (2437) +880: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2439) +881: LocalLoad(Ljava/lang/Object;,0) (2442) +882: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2443) +883: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2446) +884: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2449) +885: LocalStore(Ljava/lang/Object;,6) (2452) +886: LocalLoad(Ljava/lang/Object;,0) (2454) +887: New(Ljava/lang/String;,0) (2455) +888: Dup(1,0) (2458) +889: Invoke(SPECIAL,Ljava/lang/String;,,()V) (2459) +890: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2462) +891: LocalLoad(Ljava/lang/Object;,0) (2465) +892: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2466) +893: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2469) +894: Constant(Ljava/lang/String;,"wildcard") (2472) +895: Constant(I,45) (2474) +896: LocalLoad(Ljava/lang/Object;,3) (2476) +897: LocalLoad(I,4) (2477) +898: Constant(I,2) (2479) +899: BinaryOp(I,sub) (2480) +900: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2481) +901: CheckCast(Ljava_cup/runtime/Symbol;) (2484) +902: LocalLoad(Ljava/lang/Object;,3) (2487) +903: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2488) +904: CheckCast(Ljava_cup/runtime/Symbol;) (2491) +905: LocalLoad(Ljava/lang/Object;,6) (2494) +906: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2496) +907: LocalStore(Ljava/lang/Object;,5) (2501) +908: LocalLoad(Ljava/lang/Object;,5) (2503) +909: Return(Ljava/lang/Object;) (2505) +910: Constant(L;,null) (2506) +911: LocalStore(Ljava/lang/Object;,6) (2507) +912: Constant(Ljava/lang/String;," ? ") (2509) +913: LocalStore(Ljava/lang/Object;,6) (2511) +914: LocalLoad(Ljava/lang/Object;,0) (2513) +915: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2514) +916: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2517) +917: Constant(Ljava/lang/String;,"wildcard") (2520) +918: Constant(I,45) (2522) +919: LocalLoad(Ljava/lang/Object;,3) (2524) +920: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2525) +921: CheckCast(Ljava_cup/runtime/Symbol;) (2528) +922: LocalLoad(Ljava/lang/Object;,3) (2531) +923: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2532) +924: CheckCast(Ljava_cup/runtime/Symbol;) (2535) +925: LocalLoad(Ljava/lang/Object;,6) (2538) +926: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2540) +927: LocalStore(Ljava/lang/Object;,5) (2545) +928: LocalLoad(Ljava/lang/Object;,5) (2547) +929: Return(Ljava/lang/Object;) (2549) +930: Constant(L;,null) (2550) +931: LocalStore(Ljava/lang/Object;,6) (2551) +932: LocalLoad(Ljava/lang/Object;,3) (2553) +933: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2554) +934: CheckCast(Ljava_cup/runtime/Symbol;) (2557) +935: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2560) +936: LocalStore(I,7) (2563) +937: LocalLoad(Ljava/lang/Object;,3) (2565) +938: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2566) +939: CheckCast(Ljava_cup/runtime/Symbol;) (2569) +940: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2572) +941: LocalStore(I,8) (2575) +942: LocalLoad(Ljava/lang/Object;,3) (2577) +943: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2578) +944: CheckCast(Ljava_cup/runtime/Symbol;) (2581) +945: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2584) +946: CheckCast(Ljava/lang/String;) (2587) +947: LocalStore(Ljava/lang/Object;,9) (2590) +948: LocalLoad(Ljava/lang/Object;,9) (2592) +949: LocalStore(Ljava/lang/Object;,6) (2594) +950: LocalLoad(Ljava/lang/Object;,0) (2596) +951: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2597) +952: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2600) +953: Constant(Ljava/lang/String;,"typearguement") (2603) +954: Constant(I,44) (2605) +955: LocalLoad(Ljava/lang/Object;,3) (2607) +956: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2608) +957: CheckCast(Ljava_cup/runtime/Symbol;) (2611) +958: LocalLoad(Ljava/lang/Object;,3) (2614) +959: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2615) +960: CheckCast(Ljava_cup/runtime/Symbol;) (2618) +961: LocalLoad(Ljava/lang/Object;,6) (2621) +962: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2623) +963: LocalStore(Ljava/lang/Object;,5) (2628) +964: LocalLoad(Ljava/lang/Object;,5) (2630) +965: Return(Ljava/lang/Object;) (2632) +966: Constant(L;,null) (2633) +967: LocalStore(Ljava/lang/Object;,6) (2634) +968: LocalLoad(Ljava/lang/Object;,0) (2636) +969: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2637) +970: LocalStore(Ljava/lang/Object;,6) (2640) +971: LocalLoad(Ljava/lang/Object;,0) (2642) +972: New(Ljava/lang/String;,0) (2643) +973: Dup(1,0) (2646) +974: Invoke(SPECIAL,Ljava/lang/String;,,()V) (2647) +975: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2650) +976: LocalLoad(Ljava/lang/Object;,0) (2653) +977: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2654) +978: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2657) +979: Constant(Ljava/lang/String;,"typearguement") (2660) +980: Constant(I,44) (2662) +981: LocalLoad(Ljava/lang/Object;,3) (2664) +982: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2665) +983: CheckCast(Ljava_cup/runtime/Symbol;) (2668) +984: LocalLoad(Ljava/lang/Object;,3) (2671) +985: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2672) +986: CheckCast(Ljava_cup/runtime/Symbol;) (2675) +987: LocalLoad(Ljava/lang/Object;,6) (2678) +988: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2680) +989: LocalStore(Ljava/lang/Object;,5) (2685) +990: LocalLoad(Ljava/lang/Object;,5) (2687) +991: Return(Ljava/lang/Object;) (2689) +992: Constant(L;,null) (2690) +993: LocalStore(Ljava/lang/Object;,6) (2691) +994: LocalLoad(Ljava/lang/Object;,3) (2693) +995: LocalLoad(I,4) (2694) +996: Constant(I,2) (2696) +997: BinaryOp(I,sub) (2697) +998: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2698) +999: CheckCast(Ljava_cup/runtime/Symbol;) (2701) +1000: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2704) +1001: LocalStore(I,7) (2707) +1002: LocalLoad(Ljava/lang/Object;,3) (2709) +1003: LocalLoad(I,4) (2710) +1004: Constant(I,2) (2712) +1005: BinaryOp(I,sub) (2713) +1006: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2714) +1007: CheckCast(Ljava_cup/runtime/Symbol;) (2717) +1008: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2720) +1009: LocalStore(I,8) (2723) +1010: LocalLoad(Ljava/lang/Object;,3) (2725) +1011: LocalLoad(I,4) (2726) +1012: Constant(I,2) (2728) +1013: BinaryOp(I,sub) (2729) +1014: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2730) +1015: CheckCast(Ljava_cup/runtime/Symbol;) (2733) +1016: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2736) +1017: CheckCast(Ljava/lang/String;) (2739) +1018: LocalStore(Ljava/lang/Object;,9) (2742) +1019: LocalLoad(Ljava/lang/Object;,3) (2744) +1020: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2745) +1021: CheckCast(Ljava_cup/runtime/Symbol;) (2748) +1022: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2751) +1023: LocalStore(I,10) (2754) +1024: LocalLoad(Ljava/lang/Object;,3) (2756) +1025: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2757) +1026: CheckCast(Ljava_cup/runtime/Symbol;) (2760) +1027: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2763) +1028: LocalStore(I,11) (2766) +1029: LocalLoad(Ljava/lang/Object;,3) (2768) +1030: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2769) +1031: CheckCast(Ljava_cup/runtime/Symbol;) (2772) +1032: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2775) +1033: CheckCast(Ljava/lang/String;) (2778) +1034: LocalStore(Ljava/lang/Object;,12) (2781) +1035: New(Ljava/lang/StringBuilder;,0) (2783) +1036: Dup(1,0) (2786) +1037: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2787) +1038: LocalLoad(Ljava/lang/Object;,9) (2790) +1039: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2792) +1040: Constant(Ljava/lang/String;,",") (2795) +1041: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2797) +1042: LocalLoad(Ljava/lang/Object;,12) (2800) +1043: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2802) +1044: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2805) +1045: LocalStore(Ljava/lang/Object;,6) (2808) +1046: LocalLoad(Ljava/lang/Object;,0) (2810) +1047: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2811) +1048: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2814) +1049: Constant(Ljava/lang/String;,"typearglist") (2817) +1050: Constant(I,43) (2819) +1051: LocalLoad(Ljava/lang/Object;,3) (2821) +1052: LocalLoad(I,4) (2822) +1053: Constant(I,2) (2824) +1054: BinaryOp(I,sub) (2825) +1055: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2826) +1056: CheckCast(Ljava_cup/runtime/Symbol;) (2829) +1057: LocalLoad(Ljava/lang/Object;,3) (2832) +1058: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2833) +1059: CheckCast(Ljava_cup/runtime/Symbol;) (2836) +1060: LocalLoad(Ljava/lang/Object;,6) (2839) +1061: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2841) +1062: LocalStore(Ljava/lang/Object;,5) (2846) +1063: LocalLoad(Ljava/lang/Object;,5) (2848) +1064: Return(Ljava/lang/Object;) (2850) +1065: Constant(L;,null) (2851) +1066: LocalStore(Ljava/lang/Object;,6) (2852) +1067: LocalLoad(Ljava/lang/Object;,3) (2854) +1068: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2855) +1069: CheckCast(Ljava_cup/runtime/Symbol;) (2858) +1070: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2861) +1071: LocalStore(I,7) (2864) +1072: LocalLoad(Ljava/lang/Object;,3) (2866) +1073: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2867) +1074: CheckCast(Ljava_cup/runtime/Symbol;) (2870) +1075: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2873) +1076: LocalStore(I,8) (2876) +1077: LocalLoad(Ljava/lang/Object;,3) (2878) +1078: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2879) +1079: CheckCast(Ljava_cup/runtime/Symbol;) (2882) +1080: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2885) +1081: CheckCast(Ljava/lang/String;) (2888) +1082: LocalStore(Ljava/lang/Object;,9) (2891) +1083: LocalLoad(Ljava/lang/Object;,9) (2893) +1084: LocalStore(Ljava/lang/Object;,6) (2895) +1085: LocalLoad(Ljava/lang/Object;,0) (2897) +1086: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2898) +1087: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2901) +1088: Constant(Ljava/lang/String;,"typearglist") (2904) +1089: Constant(I,43) (2906) +1090: LocalLoad(Ljava/lang/Object;,3) (2908) +1091: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2909) +1092: CheckCast(Ljava_cup/runtime/Symbol;) (2912) +1093: LocalLoad(Ljava/lang/Object;,3) (2915) +1094: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2916) +1095: CheckCast(Ljava_cup/runtime/Symbol;) (2919) +1096: LocalLoad(Ljava/lang/Object;,6) (2922) +1097: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2924) +1098: LocalStore(Ljava/lang/Object;,5) (2929) +1099: LocalLoad(Ljava/lang/Object;,5) (2931) +1100: Return(Ljava/lang/Object;) (2933) +1101: Constant(L;,null) (2934) +1102: LocalStore(Ljava/lang/Object;,6) (2935) +1103: LocalLoad(Ljava/lang/Object;,3) (2937) +1104: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2938) +1105: CheckCast(Ljava_cup/runtime/Symbol;) (2941) +1106: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2944) +1107: LocalStore(I,7) (2947) +1108: LocalLoad(Ljava/lang/Object;,3) (2949) +1109: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2950) +1110: CheckCast(Ljava_cup/runtime/Symbol;) (2953) +1111: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2956) +1112: LocalStore(I,8) (2959) +1113: LocalLoad(Ljava/lang/Object;,3) (2961) +1114: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2962) +1115: CheckCast(Ljava_cup/runtime/Symbol;) (2965) +1116: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2968) +1117: CheckCast(Ljava/lang/String;) (2971) +1118: LocalStore(Ljava/lang/Object;,9) (2974) +1119: LocalLoad(Ljava/lang/Object;,0) (2976) +1120: LocalLoad(Ljava/lang/Object;,0) (2977) +1121: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2978) +1122: LocalLoad(Ljava/lang/Object;,9) (2981) +1123: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (2983) +1124: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2986) +1125: LocalLoad(Ljava/lang/Object;,0) (2989) +1126: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2990) +1127: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2993) +1128: Constant(Ljava/lang/String;,"multipart_id") (2996) +1129: Constant(I,12) (2998) +1130: LocalLoad(Ljava/lang/Object;,3) (3000) +1131: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3001) +1132: CheckCast(Ljava_cup/runtime/Symbol;) (3004) +1133: LocalLoad(Ljava/lang/Object;,3) (3007) +1134: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3008) +1135: CheckCast(Ljava_cup/runtime/Symbol;) (3011) +1136: LocalLoad(Ljava/lang/Object;,6) (3014) +1137: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3016) +1138: LocalStore(Ljava/lang/Object;,5) (3021) +1139: LocalLoad(Ljava/lang/Object;,5) (3023) +1140: Return(Ljava/lang/Object;) (3025) +1141: Constant(L;,null) (3026) +1142: LocalStore(Ljava/lang/Object;,6) (3027) +1143: LocalLoad(Ljava/lang/Object;,3) (3029) +1144: LocalLoad(I,4) (3030) +1145: Constant(I,3) (3032) +1146: BinaryOp(I,sub) (3033) +1147: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3034) +1148: CheckCast(Ljava_cup/runtime/Symbol;) (3037) +1149: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3040) +1150: LocalStore(Ljava/lang/Object;,6) (3043) +1151: LocalLoad(Ljava/lang/Object;,3) (3045) +1152: LocalLoad(I,4) (3046) +1153: Constant(I,1) (3048) +1154: BinaryOp(I,sub) (3049) +1155: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3050) +1156: CheckCast(Ljava_cup/runtime/Symbol;) (3053) +1157: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3056) +1158: LocalStore(I,7) (3059) +1159: LocalLoad(Ljava/lang/Object;,3) (3061) +1160: LocalLoad(I,4) (3062) +1161: Constant(I,1) (3064) +1162: BinaryOp(I,sub) (3065) +1163: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3066) +1164: CheckCast(Ljava_cup/runtime/Symbol;) (3069) +1165: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3072) +1166: LocalStore(I,8) (3075) +1167: LocalLoad(Ljava/lang/Object;,3) (3077) +1168: LocalLoad(I,4) (3078) +1169: Constant(I,1) (3080) +1170: BinaryOp(I,sub) (3081) +1171: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3082) +1172: CheckCast(Ljava_cup/runtime/Symbol;) (3085) +1173: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3088) +1174: CheckCast(Ljava/lang/String;) (3091) +1175: LocalStore(Ljava/lang/Object;,9) (3094) +1176: LocalLoad(Ljava/lang/Object;,0) (3096) +1177: LocalLoad(Ljava/lang/Object;,0) (3097) +1178: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_names) (3098) +1179: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (3101) +1180: CheckCast(Ljava/lang/String;) (3104) +1181: New(Ljava/lang/StringBuilder;,0) (3107) +1182: Dup(1,0) (3110) +1183: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (3111) +1184: Constant(Ljava/lang/String;,"<") (3114) +1185: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3116) +1186: LocalLoad(Ljava/lang/Object;,9) (3119) +1187: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3121) +1188: Constant(Ljava/lang/String;,">") (3124) +1189: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3126) +1190: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (3129) +1191: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (3132) +1192: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3135) +1193: LocalLoad(Ljava/lang/Object;,0) (3138) +1194: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3139) +1195: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3142) +1196: Constant(Ljava/lang/String;,"multipart_id") (3145) +1197: Constant(I,12) (3147) +1198: LocalLoad(Ljava/lang/Object;,3) (3149) +1199: LocalLoad(I,4) (3150) +1200: Constant(I,4) (3152) +1201: BinaryOp(I,sub) (3153) +1202: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3154) +1203: CheckCast(Ljava_cup/runtime/Symbol;) (3157) +1204: LocalLoad(Ljava/lang/Object;,3) (3160) +1205: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3161) +1206: CheckCast(Ljava_cup/runtime/Symbol;) (3164) +1207: LocalLoad(Ljava/lang/Object;,6) (3167) +1208: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3169) +1209: LocalStore(Ljava/lang/Object;,5) (3174) +1210: LocalLoad(Ljava/lang/Object;,5) (3176) +1211: Return(Ljava/lang/Object;) (3178) +1212: Constant(L;,null) (3179) +1213: LocalStore(Ljava/lang/Object;,6) (3180) +1214: LocalLoad(Ljava/lang/Object;,0) (3182) +1215: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_names) (3183) +1216: LocalLoad(Ljava/lang/Object;,0) (3186) +1217: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3187) +1218: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (3190) +1219: Pop(1) (3193) +1220: LocalLoad(Ljava/lang/Object;,0) (3194) +1221: Constant(Ljava/lang/String;,"") (3195) +1222: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3197) +1223: LocalLoad(Ljava/lang/Object;,0) (3200) +1224: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3201) +1225: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3204) +1226: Constant(Ljava/lang/String;,"NT$13") (3207) +1227: Constant(I,59) (3209) +1228: LocalLoad(Ljava/lang/Object;,3) (3211) +1229: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3212) +1230: CheckCast(Ljava_cup/runtime/Symbol;) (3215) +1231: LocalLoad(Ljava/lang/Object;,3) (3218) +1232: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3219) +1233: CheckCast(Ljava_cup/runtime/Symbol;) (3222) +1234: LocalLoad(Ljava/lang/Object;,6) (3225) +1235: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3227) +1236: LocalStore(Ljava/lang/Object;,5) (3232) +1237: LocalLoad(Ljava/lang/Object;,5) (3234) +1238: Return(Ljava/lang/Object;) (3236) +1239: Constant(L;,null) (3237) +1240: LocalStore(Ljava/lang/Object;,6) (3238) +1241: LocalLoad(Ljava/lang/Object;,3) (3240) +1242: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3241) +1243: CheckCast(Ljava_cup/runtime/Symbol;) (3244) +1244: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3247) +1245: LocalStore(I,7) (3250) +1246: LocalLoad(Ljava/lang/Object;,3) (3252) +1247: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3253) +1248: CheckCast(Ljava_cup/runtime/Symbol;) (3256) +1249: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3259) +1250: LocalStore(I,8) (3262) +1251: LocalLoad(Ljava/lang/Object;,3) (3264) +1252: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3265) +1253: CheckCast(Ljava_cup/runtime/Symbol;) (3268) +1254: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3271) +1255: CheckCast(Ljava/lang/String;) (3274) +1256: LocalStore(Ljava/lang/Object;,9) (3277) +1257: LocalLoad(Ljava/lang/Object;,0) (3279) +1258: LocalLoad(Ljava/lang/Object;,0) (3280) +1259: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3281) +1260: New(Ljava/lang/StringBuilder;,0) (3284) +1261: Dup(1,0) (3287) +1262: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (3288) +1263: Constant(Ljava/lang/String;,".") (3291) +1264: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3293) +1265: LocalLoad(Ljava/lang/Object;,9) (3296) +1266: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3298) +1267: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (3301) +1268: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (3304) +1269: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3307) +1270: LocalLoad(Ljava/lang/Object;,0) (3310) +1271: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3311) +1272: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3314) +1273: Constant(Ljava/lang/String;,"multipart_id") (3317) +1274: Constant(I,12) (3319) +1275: LocalLoad(Ljava/lang/Object;,3) (3321) +1276: LocalLoad(I,4) (3322) +1277: Constant(I,2) (3324) +1278: BinaryOp(I,sub) (3325) +1279: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3326) +1280: CheckCast(Ljava_cup/runtime/Symbol;) (3329) +1281: LocalLoad(Ljava/lang/Object;,3) (3332) +1282: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3333) +1283: CheckCast(Ljava_cup/runtime/Symbol;) (3336) +1284: LocalLoad(Ljava/lang/Object;,6) (3339) +1285: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3341) +1286: LocalStore(Ljava/lang/Object;,5) (3346) +1287: LocalLoad(Ljava/lang/Object;,5) (3348) +1288: Return(Ljava/lang/Object;) (3350) +1289: Constant(L;,null) (3351) +1290: LocalStore(Ljava/lang/Object;,6) (3352) +1291: Constant(L;,null) (3354) +1292: LocalStore(Ljava/lang/Object;,6) (3355) +1293: LocalLoad(Ljava/lang/Object;,0) (3357) +1294: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3358) +1295: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3361) +1296: Constant(Ljava/lang/String;,"opt_label") (3364) +1297: Constant(I,39) (3366) +1298: LocalLoad(Ljava/lang/Object;,3) (3368) +1299: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3369) +1300: CheckCast(Ljava_cup/runtime/Symbol;) (3372) +1301: LocalLoad(Ljava/lang/Object;,3) (3375) +1302: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3376) +1303: CheckCast(Ljava_cup/runtime/Symbol;) (3379) +1304: LocalLoad(Ljava/lang/Object;,6) (3382) +1305: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3384) +1306: LocalStore(Ljava/lang/Object;,5) (3389) +1307: LocalLoad(Ljava/lang/Object;,5) (3391) +1308: Return(Ljava/lang/Object;) (3393) +1309: Constant(L;,null) (3394) +1310: LocalStore(Ljava/lang/Object;,6) (3395) +1311: LocalLoad(Ljava/lang/Object;,3) (3397) +1312: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3398) +1313: CheckCast(Ljava_cup/runtime/Symbol;) (3401) +1314: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3404) +1315: LocalStore(I,7) (3407) +1316: LocalLoad(Ljava/lang/Object;,3) (3409) +1317: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3410) +1318: CheckCast(Ljava_cup/runtime/Symbol;) (3413) +1319: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3416) +1320: LocalStore(I,8) (3419) +1321: LocalLoad(Ljava/lang/Object;,3) (3421) +1322: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3422) +1323: CheckCast(Ljava_cup/runtime/Symbol;) (3425) +1324: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3428) +1325: CheckCast(Ljava/lang/String;) (3431) +1326: LocalStore(Ljava/lang/Object;,9) (3434) +1327: LocalLoad(Ljava/lang/Object;,9) (3436) +1328: LocalStore(Ljava/lang/Object;,6) (3438) +1329: LocalLoad(Ljava/lang/Object;,0) (3440) +1330: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3441) +1331: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3444) +1332: Constant(Ljava/lang/String;,"opt_label") (3447) +1333: Constant(I,39) (3449) +1334: LocalLoad(Ljava/lang/Object;,3) (3451) +1335: LocalLoad(I,4) (3452) +1336: Constant(I,1) (3454) +1337: BinaryOp(I,sub) (3455) +1338: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3456) +1339: CheckCast(Ljava_cup/runtime/Symbol;) (3459) +1340: LocalLoad(Ljava/lang/Object;,3) (3462) +1341: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3463) +1342: CheckCast(Ljava_cup/runtime/Symbol;) (3466) +1343: LocalLoad(Ljava/lang/Object;,6) (3469) +1344: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3471) +1345: LocalStore(Ljava/lang/Object;,5) (3476) +1346: LocalLoad(Ljava/lang/Object;,5) (3478) +1347: Return(Ljava/lang/Object;) (3480) +1348: Constant(L;,null) (3481) +1349: LocalStore(Ljava/lang/Object;,6) (3482) +1350: LocalLoad(Ljava/lang/Object;,3) (3484) +1351: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3485) +1352: CheckCast(Ljava_cup/runtime/Symbol;) (3488) +1353: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3491) +1354: LocalStore(I,7) (3494) +1355: LocalLoad(Ljava/lang/Object;,3) (3496) +1356: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3497) +1357: CheckCast(Ljava_cup/runtime/Symbol;) (3500) +1358: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3503) +1359: LocalStore(I,8) (3506) +1360: LocalLoad(Ljava/lang/Object;,3) (3508) +1361: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3509) +1362: CheckCast(Ljava_cup/runtime/Symbol;) (3512) +1363: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3515) +1364: CheckCast(Ljava/lang/String;) (3518) +1365: LocalStore(Ljava/lang/Object;,9) (3521) +1366: LocalLoad(Ljava/lang/Object;,0) (3523) +1367: New(Ljava_cup/action_part;,0) (3524) +1368: Dup(1,0) (3527) +1369: LocalLoad(Ljava/lang/Object;,9) (3528) +1370: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (3530) +1371: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3533) +1372: LocalLoad(Ljava/lang/Object;,0) (3536) +1373: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3537) +1374: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3540) +1375: Constant(Ljava/lang/String;,"prod_part") (3543) +1376: Constant(I,23) (3545) +1377: LocalLoad(Ljava/lang/Object;,3) (3547) +1378: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3548) +1379: CheckCast(Ljava_cup/runtime/Symbol;) (3551) +1380: LocalLoad(Ljava/lang/Object;,3) (3554) +1381: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3555) +1382: CheckCast(Ljava_cup/runtime/Symbol;) (3558) +1383: LocalLoad(Ljava/lang/Object;,6) (3561) +1384: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3563) +1385: LocalStore(Ljava/lang/Object;,5) (3568) +1386: LocalLoad(Ljava/lang/Object;,5) (3570) +1387: Return(Ljava/lang/Object;) (3572) +1388: Constant(L;,null) (3573) +1389: LocalStore(Ljava/lang/Object;,6) (3574) +1390: LocalLoad(Ljava/lang/Object;,3) (3576) +1391: LocalLoad(I,4) (3577) +1392: Constant(I,1) (3579) +1393: BinaryOp(I,sub) (3580) +1394: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3581) +1395: CheckCast(Ljava_cup/runtime/Symbol;) (3584) +1396: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3587) +1397: LocalStore(I,7) (3590) +1398: LocalLoad(Ljava/lang/Object;,3) (3592) +1399: LocalLoad(I,4) (3593) +1400: Constant(I,1) (3595) +1401: BinaryOp(I,sub) (3596) +1402: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3597) +1403: CheckCast(Ljava_cup/runtime/Symbol;) (3600) +1404: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3603) +1405: LocalStore(I,8) (3606) +1406: LocalLoad(Ljava/lang/Object;,3) (3608) +1407: LocalLoad(I,4) (3609) +1408: Constant(I,1) (3611) +1409: BinaryOp(I,sub) (3612) +1410: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3613) +1411: CheckCast(Ljava_cup/runtime/Symbol;) (3616) +1412: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3619) +1413: CheckCast(Ljava/lang/String;) (3622) +1414: LocalStore(Ljava/lang/Object;,9) (3625) +1415: LocalLoad(Ljava/lang/Object;,3) (3627) +1416: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3628) +1417: CheckCast(Ljava_cup/runtime/Symbol;) (3631) +1418: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3634) +1419: LocalStore(I,10) (3637) +1420: LocalLoad(Ljava/lang/Object;,3) (3639) +1421: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3640) +1422: CheckCast(Ljava_cup/runtime/Symbol;) (3643) +1423: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3646) +1424: LocalStore(I,11) (3649) +1425: LocalLoad(Ljava/lang/Object;,3) (3651) +1426: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3652) +1427: CheckCast(Ljava_cup/runtime/Symbol;) (3655) +1428: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3658) +1429: CheckCast(Ljava/lang/String;) (3661) +1430: LocalStore(Ljava/lang/Object;,12) (3664) +1431: LocalLoad(Ljava/lang/Object;,0) (3666) +1432: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (3667) +1433: LocalLoad(Ljava/lang/Object;,9) (3670) +1434: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (3672) +1435: CheckCast(Ljava_cup/production_part;) (3675) +1436: LocalStore(Ljava/lang/Object;,13) (3678) +1437: LocalLoad(Ljava/lang/Object;,13) (3680) +1438: Constant(L;,null) (3682) +1439: ConditionalBranch(Ljava/lang/Object;,ne,1457) (3682) +1440: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (3685) +1441: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (3688) +1442: Constant(I,0) (3691) +1443: ConditionalBranch(I,ne,1463) (3691) +1444: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (3694) +1445: New(Ljava/lang/StringBuilder;,0) (3697) +1446: Dup(1,0) (3700) +1447: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (3701) +1448: Constant(Ljava/lang/String;,"java_cup.runtime.Symbol \"") (3704) +1449: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3706) +1450: LocalLoad(Ljava/lang/Object;,9) (3709) +1451: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3711) +1452: Constant(Ljava/lang/String;,"\" has not been declared") (3714) +1453: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3716) +1454: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (3719) +1455: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (3722) +1456: Goto(1463) (3725) +1457: LocalLoad(Ljava/lang/Object;,0) (3728) +1458: LocalLoad(Ljava/lang/Object;,0) (3729) +1459: LocalLoad(Ljava/lang/Object;,13) (3730) +1460: LocalLoad(Ljava/lang/Object;,12) (3732) +1461: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_lab,(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;) (3734) +1462: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3737) +1463: LocalLoad(Ljava/lang/Object;,0) (3740) +1464: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3741) +1465: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3744) +1466: Constant(Ljava/lang/String;,"prod_part") (3747) +1467: Constant(I,23) (3749) +1468: LocalLoad(Ljava/lang/Object;,3) (3751) +1469: LocalLoad(I,4) (3752) +1470: Constant(I,1) (3754) +1471: BinaryOp(I,sub) (3755) +1472: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3756) +1473: CheckCast(Ljava_cup/runtime/Symbol;) (3759) +1474: LocalLoad(Ljava/lang/Object;,3) (3762) +1475: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3763) +1476: CheckCast(Ljava_cup/runtime/Symbol;) (3766) +1477: LocalLoad(Ljava/lang/Object;,6) (3769) +1478: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3771) +1479: LocalStore(Ljava/lang/Object;,5) (3776) +1480: LocalLoad(Ljava/lang/Object;,5) (3778) +1481: Return(Ljava/lang/Object;) (3780) +1482: Constant(L;,null) (3781) +1483: LocalStore(Ljava/lang/Object;,6) (3782) +1484: LocalLoad(Ljava/lang/Object;,0) (3784) +1485: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3785) +1486: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3788) +1487: Constant(Ljava/lang/String;,"prod_part_list") (3791) +1488: Constant(I,22) (3793) +1489: LocalLoad(Ljava/lang/Object;,3) (3795) +1490: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3796) +1491: CheckCast(Ljava_cup/runtime/Symbol;) (3799) +1492: LocalLoad(Ljava/lang/Object;,3) (3802) +1493: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3803) +1494: CheckCast(Ljava_cup/runtime/Symbol;) (3806) +1495: LocalLoad(Ljava/lang/Object;,6) (3809) +1496: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3811) +1497: LocalStore(Ljava/lang/Object;,5) (3816) +1498: LocalLoad(Ljava/lang/Object;,5) (3818) +1499: Return(Ljava/lang/Object;) (3820) +1500: Constant(L;,null) (3821) +1501: LocalStore(Ljava/lang/Object;,6) (3822) +1502: LocalLoad(Ljava/lang/Object;,0) (3824) +1503: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3825) +1504: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3828) +1505: Constant(Ljava/lang/String;,"prod_part_list") (3831) +1506: Constant(I,22) (3833) +1507: LocalLoad(Ljava/lang/Object;,3) (3835) +1508: LocalLoad(I,4) (3836) +1509: Constant(I,1) (3838) +1510: BinaryOp(I,sub) (3839) +1511: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3840) +1512: CheckCast(Ljava_cup/runtime/Symbol;) (3843) +1513: LocalLoad(Ljava/lang/Object;,3) (3846) +1514: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3847) +1515: CheckCast(Ljava_cup/runtime/Symbol;) (3850) +1516: LocalLoad(Ljava/lang/Object;,6) (3853) +1517: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3855) +1518: LocalStore(Ljava/lang/Object;,5) (3860) +1519: LocalLoad(Ljava/lang/Object;,5) (3862) +1520: Return(Ljava/lang/Object;) (3864) +1521: Constant(L;,null) (3865) +1522: LocalStore(Ljava/lang/Object;,6) (3866) +1523: LocalLoad(Ljava/lang/Object;,0) (3868) +1524: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (3869) +1525: Constant(L;,null) (3872) +1526: ConditionalBranch(Ljava/lang/Object;,eq,1583) (3872) +1527: New(Ljava_cup/production;,0) (3875) +1528: Dup(1,0) (3878) +1529: LocalLoad(Ljava/lang/Object;,0) (3879) +1530: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (3880) +1531: LocalLoad(Ljava/lang/Object;,0) (3883) +1532: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (3884) +1533: LocalLoad(Ljava/lang/Object;,0) (3887) +1534: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (3888) +1535: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (3891) +1536: LocalStore(Ljava/lang/Object;,7) (3894) +1537: LocalLoad(Ljava/lang/Object;,0) (3896) +1538: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (3897) +1539: Constant(L;,null) (3900) +1540: ConditionalBranch(Ljava/lang/Object;,ne,1583) (3900) +1541: LocalLoad(Ljava/lang/Object;,0) (3903) +1542: LocalLoad(Ljava/lang/Object;,0) (3904) +1543: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (3905) +1544: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (3908) +1545: LocalLoad(Ljava/lang/Object;,0) (3911) +1546: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (3912) +1547: LocalLoad(Ljava/lang/Object;,0) (3915) +1548: LocalLoad(Ljava/lang/Object;,0) (3916) +1549: New(Ljava_cup/symbol_part;,0) (3917) +1550: Dup(1,0) (3920) +1551: LocalLoad(Ljava/lang/Object;,0) (3921) +1552: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (3922) +1553: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (3925) +1554: Constant(Ljava/lang/String;,"start_val") (3928) +1555: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_lab,(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;) (3930) +1556: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3933) +1557: LocalLoad(Ljava/lang/Object;,0) (3936) +1558: New(Ljava_cup/symbol_part;,0) (3937) +1559: Dup(1,0) (3940) +1560: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (3941) +1561: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (3944) +1562: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3947) +1563: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (3950) +1564: Constant(I,0) (3953) +1565: ConditionalBranch(I,ne,1572) (3953) +1566: LocalLoad(Ljava/lang/Object;,0) (3956) +1567: New(Ljava_cup/action_part;,0) (3957) +1568: Dup(1,0) (3960) +1569: Constant(Ljava/lang/String;,"RESULT = start_val;") (3961) +1570: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (3963) +1571: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3966) +1572: New(Ljava_cup/production;,0) (3969) +1573: Dup(1,0) (3972) +1574: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (3973) +1575: LocalLoad(Ljava/lang/Object;,0) (3976) +1576: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (3977) +1577: LocalLoad(Ljava/lang/Object;,0) (3980) +1578: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (3981) +1579: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (3984) +1580: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (3987) +1581: LocalLoad(Ljava/lang/Object;,0) (3990) +1582: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (3991) +1583: LocalLoad(Ljava/lang/Object;,0) (3994) +1584: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (3995) +1585: LocalLoad(Ljava/lang/Object;,0) (3998) +1586: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3999) +1587: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4002) +1588: Constant(Ljava/lang/String;,"rhs") (4005) +1589: Constant(I,27) (4007) +1590: LocalLoad(Ljava/lang/Object;,3) (4009) +1591: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4010) +1592: CheckCast(Ljava_cup/runtime/Symbol;) (4013) +1593: LocalLoad(Ljava/lang/Object;,3) (4016) +1594: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4017) +1595: CheckCast(Ljava_cup/runtime/Symbol;) (4020) +1596: LocalLoad(Ljava/lang/Object;,6) (4023) +1597: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4025) +1598: LocalStore(Ljava/lang/Object;,5) (4030) +1599: LocalLoad(Ljava/lang/Object;,5) (4032) +1600: Return(Ljava/lang/Object;) (4034) +1601: Constant(L;,null) (4035) +1602: LocalStore(Ljava/lang/Object;,6) (4036) +1603: LocalLoad(Ljava/lang/Object;,3) (4038) +1604: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4039) +1605: CheckCast(Ljava_cup/runtime/Symbol;) (4042) +1606: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (4045) +1607: LocalStore(I,7) (4048) +1608: LocalLoad(Ljava/lang/Object;,3) (4050) +1609: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4051) +1610: CheckCast(Ljava_cup/runtime/Symbol;) (4054) +1611: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (4057) +1612: LocalStore(I,8) (4060) +1613: LocalLoad(Ljava/lang/Object;,3) (4062) +1614: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4063) +1615: CheckCast(Ljava_cup/runtime/Symbol;) (4066) +1616: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4069) +1617: CheckCast(Ljava/lang/String;) (4072) +1618: LocalStore(Ljava/lang/Object;,9) (4075) +1619: Constant(L;,null) (4077) +1620: LocalStore(Ljava/lang/Object;,10) (4078) +1621: LocalLoad(Ljava/lang/Object;,0) (4080) +1622: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4081) +1623: Constant(L;,null) (4084) +1624: ConditionalBranch(Ljava/lang/Object;,eq,1763) (4084) +1625: LocalLoad(Ljava/lang/Object;,9) (4087) +1626: Constant(L;,null) (4089) +1627: ConditionalBranch(Ljava/lang/Object;,ne,1634) (4089) +1628: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (4092) +1629: Constant(Ljava/lang/String;,"No terminal for contextual precedence") (4095) +1630: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (4097) +1631: Constant(L;,null) (4100) +1632: LocalStore(Ljava/lang/Object;,10) (4101) +1633: Goto(1641) (4103) +1634: LocalLoad(Ljava/lang/Object;,0) (4106) +1635: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (4107) +1636: LocalLoad(Ljava/lang/Object;,9) (4110) +1637: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (4112) +1638: CheckCast(Ljava_cup/symbol_part;) (4115) +1639: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (4118) +1640: LocalStore(Ljava/lang/Object;,10) (4121) +1641: LocalLoad(Ljava/lang/Object;,10) (4123) +1642: Constant(L;,null) (4125) +1643: ConditionalBranch(Ljava/lang/Object;,eq,1672) (4125) +1644: LocalLoad(Ljava/lang/Object;,10) (4128) +1645: Instanceof(Ljava_cup/terminal;) (4130) +1646: Constant(I,0) (4133) +1647: ConditionalBranch(I,eq,1672) (4133) +1648: New(Ljava_cup/production;,0) (4136) +1649: Dup(1,0) (4139) +1650: LocalLoad(Ljava/lang/Object;,0) (4140) +1651: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4141) +1652: LocalLoad(Ljava/lang/Object;,0) (4144) +1653: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (4145) +1654: LocalLoad(Ljava/lang/Object;,0) (4148) +1655: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (4149) +1656: LocalLoad(Ljava/lang/Object;,10) (4152) +1657: CheckCast(Ljava_cup/terminal;) (4154) +1658: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (4157) +1659: LocalLoad(Ljava/lang/Object;,10) (4160) +1660: CheckCast(Ljava_cup/terminal;) (4162) +1661: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (4165) +1662: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;III)V) (4168) +1663: LocalStore(Ljava/lang/Object;,11) (4171) +1664: LocalLoad(Ljava/lang/Object;,0) (4173) +1665: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (4174) +1666: LocalLoad(Ljava/lang/Object;,9) (4177) +1667: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (4179) +1668: CheckCast(Ljava_cup/symbol_part;) (4182) +1669: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (4185) +1670: Invoke(VIRTUAL,Ljava_cup/symbol;,note_use,()V) (4188) +1671: Goto(1694) (4191) +1672: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (4194) +1673: New(Ljava/lang/StringBuilder;,0) (4197) +1674: Dup(1,0) (4200) +1675: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4201) +1676: Constant(Ljava/lang/String;,"Invalid terminal ") (4204) +1677: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4206) +1678: LocalLoad(Ljava/lang/Object;,9) (4209) +1679: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4211) +1680: Constant(Ljava/lang/String;," for contextual precedence assignment") (4214) +1681: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4216) +1682: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (4219) +1683: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (4222) +1684: New(Ljava_cup/production;,0) (4225) +1685: Dup(1,0) (4228) +1686: LocalLoad(Ljava/lang/Object;,0) (4229) +1687: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4230) +1688: LocalLoad(Ljava/lang/Object;,0) (4233) +1689: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (4234) +1690: LocalLoad(Ljava/lang/Object;,0) (4237) +1691: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (4238) +1692: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (4241) +1693: LocalStore(Ljava/lang/Object;,11) (4244) +1694: LocalLoad(Ljava/lang/Object;,0) (4246) +1695: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (4247) +1696: Constant(L;,null) (4250) +1697: ConditionalBranch(Ljava/lang/Object;,ne,1763) (4250) +1698: LocalLoad(Ljava/lang/Object;,0) (4253) +1699: LocalLoad(Ljava/lang/Object;,0) (4254) +1700: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4255) +1701: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (4258) +1702: LocalLoad(Ljava/lang/Object;,0) (4261) +1703: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (4262) +1704: LocalLoad(Ljava/lang/Object;,0) (4265) +1705: LocalLoad(Ljava/lang/Object;,0) (4266) +1706: New(Ljava_cup/symbol_part;,0) (4267) +1707: Dup(1,0) (4270) +1708: LocalLoad(Ljava/lang/Object;,0) (4271) +1709: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (4272) +1710: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (4275) +1711: Constant(Ljava/lang/String;,"start_val") (4278) +1712: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_lab,(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;) (4280) +1713: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (4283) +1714: LocalLoad(Ljava/lang/Object;,0) (4286) +1715: New(Ljava_cup/symbol_part;,0) (4287) +1716: Dup(1,0) (4290) +1717: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (4291) +1718: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (4294) +1719: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (4297) +1720: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (4300) +1721: Constant(I,0) (4303) +1722: ConditionalBranch(I,ne,1729) (4303) +1723: LocalLoad(Ljava/lang/Object;,0) (4306) +1724: New(Ljava_cup/action_part;,0) (4307) +1725: Dup(1,0) (4310) +1726: Constant(Ljava/lang/String;,"RESULT = start_val;") (4311) +1727: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (4313) +1728: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (4316) +1729: LocalLoad(Ljava/lang/Object;,10) (4319) +1730: Constant(L;,null) (4321) +1731: ConditionalBranch(Ljava/lang/Object;,eq,1752) (4321) +1732: LocalLoad(Ljava/lang/Object;,10) (4324) +1733: Instanceof(Ljava_cup/terminal;) (4326) +1734: Constant(I,0) (4329) +1735: ConditionalBranch(I,eq,1752) (4329) +1736: New(Ljava_cup/production;,0) (4332) +1737: Dup(1,0) (4335) +1738: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (4336) +1739: LocalLoad(Ljava/lang/Object;,0) (4339) +1740: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (4340) +1741: LocalLoad(Ljava/lang/Object;,0) (4343) +1742: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (4344) +1743: LocalLoad(Ljava/lang/Object;,10) (4347) +1744: CheckCast(Ljava_cup/terminal;) (4349) +1745: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (4352) +1746: LocalLoad(Ljava/lang/Object;,10) (4355) +1747: CheckCast(Ljava_cup/terminal;) (4357) +1748: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (4360) +1749: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;III)V) (4363) +1750: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (4366) +1751: Goto(1761) (4369) +1752: New(Ljava_cup/production;,0) (4372) +1753: Dup(1,0) (4375) +1754: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (4376) +1755: LocalLoad(Ljava/lang/Object;,0) (4379) +1756: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (4380) +1757: LocalLoad(Ljava/lang/Object;,0) (4383) +1758: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (4384) +1759: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (4387) +1760: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (4390) +1761: LocalLoad(Ljava/lang/Object;,0) (4393) +1762: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (4394) +1763: LocalLoad(Ljava/lang/Object;,0) (4397) +1764: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (4398) +1765: LocalLoad(Ljava/lang/Object;,0) (4401) +1766: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4402) +1767: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4405) +1768: Constant(Ljava/lang/String;,"rhs") (4408) +1769: Constant(I,27) (4410) +1770: LocalLoad(Ljava/lang/Object;,3) (4412) +1771: LocalLoad(I,4) (4413) +1772: Constant(I,2) (4415) +1773: BinaryOp(I,sub) (4416) +1774: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4417) +1775: CheckCast(Ljava_cup/runtime/Symbol;) (4420) +1776: LocalLoad(Ljava/lang/Object;,3) (4423) +1777: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4424) +1778: CheckCast(Ljava_cup/runtime/Symbol;) (4427) +1779: LocalLoad(Ljava/lang/Object;,6) (4430) +1780: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4432) +1781: LocalStore(Ljava/lang/Object;,5) (4437) +1782: LocalLoad(Ljava/lang/Object;,5) (4439) +1783: Return(Ljava/lang/Object;) (4441) +1784: Constant(L;,null) (4442) +1785: LocalStore(Ljava/lang/Object;,6) (4443) +1786: LocalLoad(Ljava/lang/Object;,0) (4445) +1787: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4446) +1788: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4449) +1789: Constant(Ljava/lang/String;,"rhs_list") (4452) +1790: Constant(I,26) (4454) +1791: LocalLoad(Ljava/lang/Object;,3) (4456) +1792: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4457) +1793: CheckCast(Ljava_cup/runtime/Symbol;) (4460) +1794: LocalLoad(Ljava/lang/Object;,3) (4463) +1795: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4464) +1796: CheckCast(Ljava_cup/runtime/Symbol;) (4467) +1797: LocalLoad(Ljava/lang/Object;,6) (4470) +1798: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4472) +1799: LocalStore(Ljava/lang/Object;,5) (4477) +1800: LocalLoad(Ljava/lang/Object;,5) (4479) +1801: Return(Ljava/lang/Object;) (4481) +1802: Constant(L;,null) (4482) +1803: LocalStore(Ljava/lang/Object;,6) (4483) +1804: LocalLoad(Ljava/lang/Object;,0) (4485) +1805: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4486) +1806: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4489) +1807: Constant(Ljava/lang/String;,"rhs_list") (4492) +1808: Constant(I,26) (4494) +1809: LocalLoad(Ljava/lang/Object;,3) (4496) +1810: LocalLoad(I,4) (4497) +1811: Constant(I,2) (4499) +1812: BinaryOp(I,sub) (4500) +1813: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4501) +1814: CheckCast(Ljava_cup/runtime/Symbol;) (4504) +1815: LocalLoad(Ljava/lang/Object;,3) (4507) +1816: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4508) +1817: CheckCast(Ljava_cup/runtime/Symbol;) (4511) +1818: LocalLoad(Ljava/lang/Object;,6) (4514) +1819: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4516) +1820: LocalStore(Ljava/lang/Object;,5) (4521) +1821: LocalLoad(Ljava/lang/Object;,5) (4523) +1822: Return(Ljava/lang/Object;) (4525) +1823: Constant(L;,null) (4526) +1824: LocalStore(Ljava/lang/Object;,6) (4527) +1825: LocalLoad(Ljava/lang/Object;,3) (4529) +1826: LocalLoad(I,4) (4530) +1827: Constant(I,1) (4532) +1828: BinaryOp(I,sub) (4533) +1829: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4534) +1830: CheckCast(Ljava_cup/runtime/Symbol;) (4537) +1831: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4540) +1832: LocalStore(Ljava/lang/Object;,6) (4543) +1833: LocalLoad(Ljava/lang/Object;,0) (4545) +1834: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4546) +1835: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4549) +1836: Constant(Ljava/lang/String;,"production") (4552) +1837: Constant(I,21) (4554) +1838: LocalLoad(Ljava/lang/Object;,3) (4556) +1839: LocalLoad(I,4) (4557) +1840: Constant(I,2) (4559) +1841: BinaryOp(I,sub) (4560) +1842: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4561) +1843: CheckCast(Ljava_cup/runtime/Symbol;) (4564) +1844: LocalLoad(Ljava/lang/Object;,3) (4567) +1845: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4568) +1846: CheckCast(Ljava_cup/runtime/Symbol;) (4571) +1847: LocalLoad(Ljava/lang/Object;,6) (4574) +1848: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4576) +1849: LocalStore(Ljava/lang/Object;,5) (4581) +1850: LocalLoad(Ljava/lang/Object;,5) (4583) +1851: Return(Ljava/lang/Object;) (4585) +1852: Constant(L;,null) (4586) +1853: LocalStore(Ljava/lang/Object;,6) (4587) +1854: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (4589) +1855: Constant(Ljava/lang/String;,"Syntax Error") (4592) +1856: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (4594) +1857: LocalLoad(Ljava/lang/Object;,0) (4597) +1858: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4598) +1859: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4601) +1860: Constant(Ljava/lang/String;,"NT$12") (4604) +1861: Constant(I,58) (4606) +1862: LocalLoad(Ljava/lang/Object;,3) (4608) +1863: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4609) +1864: CheckCast(Ljava_cup/runtime/Symbol;) (4612) +1865: LocalLoad(Ljava/lang/Object;,3) (4615) +1866: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4616) +1867: CheckCast(Ljava_cup/runtime/Symbol;) (4619) +1868: LocalLoad(Ljava/lang/Object;,6) (4622) +1869: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4624) +1870: LocalStore(Ljava/lang/Object;,5) (4629) +1871: LocalLoad(Ljava/lang/Object;,5) (4631) +1872: Return(Ljava/lang/Object;) (4633) +1873: Constant(L;,null) (4634) +1874: LocalStore(Ljava/lang/Object;,6) (4635) +1875: LocalLoad(Ljava/lang/Object;,3) (4637) +1876: LocalLoad(I,4) (4638) +1877: Constant(I,3) (4640) +1878: BinaryOp(I,sub) (4641) +1879: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4642) +1880: CheckCast(Ljava_cup/runtime/Symbol;) (4645) +1881: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4648) +1882: LocalStore(Ljava/lang/Object;,6) (4651) +1883: LocalLoad(Ljava/lang/Object;,3) (4653) +1884: LocalLoad(I,4) (4654) +1885: Constant(I,4) (4656) +1886: BinaryOp(I,sub) (4657) +1887: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4658) +1888: CheckCast(Ljava_cup/runtime/Symbol;) (4661) +1889: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (4664) +1890: LocalStore(I,7) (4667) +1891: LocalLoad(Ljava/lang/Object;,3) (4669) +1892: LocalLoad(I,4) (4670) +1893: Constant(I,4) (4672) +1894: BinaryOp(I,sub) (4673) +1895: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4674) +1896: CheckCast(Ljava_cup/runtime/Symbol;) (4677) +1897: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (4680) +1898: LocalStore(I,8) (4683) +1899: LocalLoad(Ljava/lang/Object;,3) (4685) +1900: LocalLoad(I,4) (4686) +1901: Constant(I,4) (4688) +1902: BinaryOp(I,sub) (4689) +1903: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4690) +1904: CheckCast(Ljava_cup/runtime/Symbol;) (4693) +1905: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4696) +1906: CheckCast(Ljava/lang/String;) (4699) +1907: LocalStore(Ljava/lang/Object;,9) (4702) +1908: LocalLoad(Ljava/lang/Object;,0) (4704) +1909: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4705) +1910: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4708) +1911: Constant(Ljava/lang/String;,"production") (4711) +1912: Constant(I,21) (4713) +1913: LocalLoad(Ljava/lang/Object;,3) (4715) +1914: LocalLoad(I,4) (4716) +1915: Constant(I,4) (4718) +1916: BinaryOp(I,sub) (4719) +1917: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4720) +1918: CheckCast(Ljava_cup/runtime/Symbol;) (4723) +1919: LocalLoad(Ljava/lang/Object;,3) (4726) +1920: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4727) +1921: CheckCast(Ljava_cup/runtime/Symbol;) (4730) +1922: LocalLoad(Ljava/lang/Object;,6) (4733) +1923: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4735) +1924: LocalStore(Ljava/lang/Object;,5) (4740) +1925: LocalLoad(Ljava/lang/Object;,5) (4742) +1926: Return(Ljava/lang/Object;) (4744) +1927: Constant(L;,null) (4745) +1928: LocalStore(Ljava/lang/Object;,6) (4746) +1929: LocalLoad(Ljava/lang/Object;,3) (4748) +1930: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4749) +1931: CheckCast(Ljava_cup/runtime/Symbol;) (4752) +1932: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (4755) +1933: LocalStore(I,7) (4758) +1934: LocalLoad(Ljava/lang/Object;,3) (4760) +1935: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4761) +1936: CheckCast(Ljava_cup/runtime/Symbol;) (4764) +1937: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (4767) +1938: LocalStore(I,8) (4770) +1939: LocalLoad(Ljava/lang/Object;,3) (4772) +1940: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4773) +1941: CheckCast(Ljava_cup/runtime/Symbol;) (4776) +1942: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4779) +1943: CheckCast(Ljava/lang/String;) (4782) +1944: LocalStore(Ljava/lang/Object;,9) (4785) +1945: LocalLoad(Ljava/lang/Object;,0) (4787) +1946: LocalLoad(Ljava/lang/Object;,0) (4788) +1947: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (4789) +1948: LocalLoad(Ljava/lang/Object;,9) (4792) +1949: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (4794) +1950: CheckCast(Ljava_cup/non_terminal;) (4797) +1951: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4800) +1952: LocalLoad(Ljava/lang/Object;,0) (4803) +1953: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4804) +1954: Constant(L;,null) (4807) +1955: ConditionalBranch(Ljava/lang/Object;,ne,1972) (4807) +1956: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (4810) +1957: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (4813) +1958: Constant(I,0) (4816) +1959: ConditionalBranch(I,ne,1972) (4816) +1960: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (4819) +1961: New(Ljava/lang/StringBuilder;,0) (4822) +1962: Dup(1,0) (4825) +1963: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4826) +1964: Constant(Ljava/lang/String;,"LHS non terminal \"") (4829) +1965: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4831) +1966: LocalLoad(Ljava/lang/Object;,9) (4834) +1967: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4836) +1968: Constant(Ljava/lang/String;,"\" has not been declared") (4839) +1969: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4841) +1970: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (4844) +1971: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (4847) +1972: LocalLoad(Ljava/lang/Object;,0) (4850) +1973: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (4851) +1974: LocalLoad(Ljava/lang/Object;,0) (4854) +1975: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4855) +1976: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4858) +1977: Constant(Ljava/lang/String;,"NT$11") (4861) +1978: Constant(I,57) (4863) +1979: LocalLoad(Ljava/lang/Object;,3) (4865) +1980: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4866) +1981: CheckCast(Ljava_cup/runtime/Symbol;) (4869) +1982: LocalLoad(Ljava/lang/Object;,3) (4872) +1983: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4873) +1984: CheckCast(Ljava_cup/runtime/Symbol;) (4876) +1985: LocalLoad(Ljava/lang/Object;,6) (4879) +1986: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4881) +1987: LocalStore(Ljava/lang/Object;,5) (4886) +1988: LocalLoad(Ljava/lang/Object;,5) (4888) +1989: Return(Ljava/lang/Object;) (4890) +1990: Constant(L;,null) (4891) +1991: LocalStore(Ljava/lang/Object;,6) (4892) +1992: LocalLoad(Ljava/lang/Object;,0) (4894) +1993: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4895) +1994: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4898) +1995: Constant(Ljava/lang/String;,"production_list") (4901) +1996: Constant(I,11) (4903) +1997: LocalLoad(Ljava/lang/Object;,3) (4905) +1998: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4906) +1999: CheckCast(Ljava_cup/runtime/Symbol;) (4909) +2000: LocalLoad(Ljava/lang/Object;,3) (4912) +2001: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4913) +2002: CheckCast(Ljava_cup/runtime/Symbol;) (4916) +2003: LocalLoad(Ljava/lang/Object;,6) (4919) +2004: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4921) +2005: LocalStore(Ljava/lang/Object;,5) (4926) +2006: LocalLoad(Ljava/lang/Object;,5) (4928) +2007: Return(Ljava/lang/Object;) (4930) +2008: Constant(L;,null) (4931) +2009: LocalStore(Ljava/lang/Object;,6) (4932) +2010: LocalLoad(Ljava/lang/Object;,0) (4934) +2011: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4935) +2012: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4938) +2013: Constant(Ljava/lang/String;,"production_list") (4941) +2014: Constant(I,11) (4943) +2015: LocalLoad(Ljava/lang/Object;,3) (4945) +2016: LocalLoad(I,4) (4946) +2017: Constant(I,1) (4948) +2018: BinaryOp(I,sub) (4949) +2019: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4950) +2020: CheckCast(Ljava_cup/runtime/Symbol;) (4953) +2021: LocalLoad(Ljava/lang/Object;,3) (4956) +2022: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4957) +2023: CheckCast(Ljava_cup/runtime/Symbol;) (4960) +2024: LocalLoad(Ljava/lang/Object;,6) (4963) +2025: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4965) +2026: LocalStore(Ljava/lang/Object;,5) (4970) +2027: LocalLoad(Ljava/lang/Object;,5) (4972) +2028: Return(Ljava/lang/Object;) (4974) +2029: Constant(L;,null) (4975) +2030: LocalStore(Ljava/lang/Object;,6) (4976) +2031: LocalLoad(Ljava/lang/Object;,0) (4978) +2032: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4979) +2033: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4982) +2034: Constant(Ljava/lang/String;,"start_spec") (4985) +2035: Constant(I,10) (4987) +2036: LocalLoad(Ljava/lang/Object;,3) (4989) +2037: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4990) +2038: CheckCast(Ljava_cup/runtime/Symbol;) (4993) +2039: LocalLoad(Ljava/lang/Object;,3) (4996) +2040: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4997) +2041: CheckCast(Ljava_cup/runtime/Symbol;) (5000) +2042: LocalLoad(Ljava/lang/Object;,6) (5003) +2043: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5005) +2044: LocalStore(Ljava/lang/Object;,5) (5010) +2045: LocalLoad(Ljava/lang/Object;,5) (5012) +2046: Return(Ljava/lang/Object;) (5014) +2047: Constant(L;,null) (5015) +2048: LocalStore(Ljava/lang/Object;,6) (5016) +2049: LocalLoad(Ljava/lang/Object;,3) (5018) +2050: LocalLoad(I,4) (5019) +2051: Constant(I,1) (5021) +2052: BinaryOp(I,sub) (5022) +2053: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5023) +2054: CheckCast(Ljava_cup/runtime/Symbol;) (5026) +2055: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5029) +2056: LocalStore(Ljava/lang/Object;,6) (5032) +2057: LocalLoad(Ljava/lang/Object;,3) (5034) +2058: LocalLoad(I,4) (5035) +2059: Constant(I,2) (5037) +2060: BinaryOp(I,sub) (5038) +2061: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5039) +2062: CheckCast(Ljava_cup/runtime/Symbol;) (5042) +2063: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (5045) +2064: LocalStore(I,7) (5048) +2065: LocalLoad(Ljava/lang/Object;,3) (5050) +2066: LocalLoad(I,4) (5051) +2067: Constant(I,2) (5053) +2068: BinaryOp(I,sub) (5054) +2069: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5055) +2070: CheckCast(Ljava_cup/runtime/Symbol;) (5058) +2071: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (5061) +2072: LocalStore(I,8) (5064) +2073: LocalLoad(Ljava/lang/Object;,3) (5066) +2074: LocalLoad(I,4) (5067) +2075: Constant(I,2) (5069) +2076: BinaryOp(I,sub) (5070) +2077: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5071) +2078: CheckCast(Ljava_cup/runtime/Symbol;) (5074) +2079: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5077) +2080: CheckCast(Ljava/lang/String;) (5080) +2081: LocalStore(Ljava/lang/Object;,9) (5083) +2082: LocalLoad(Ljava/lang/Object;,0) (5085) +2083: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5086) +2084: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5089) +2085: Constant(Ljava/lang/String;,"start_spec") (5092) +2086: Constant(I,10) (5094) +2087: LocalLoad(Ljava/lang/Object;,3) (5096) +2088: LocalLoad(I,4) (5097) +2089: Constant(I,4) (5099) +2090: BinaryOp(I,sub) (5100) +2091: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5101) +2092: CheckCast(Ljava_cup/runtime/Symbol;) (5104) +2093: LocalLoad(Ljava/lang/Object;,3) (5107) +2094: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5108) +2095: CheckCast(Ljava_cup/runtime/Symbol;) (5111) +2096: LocalLoad(Ljava/lang/Object;,6) (5114) +2097: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5116) +2098: LocalStore(Ljava/lang/Object;,5) (5121) +2099: LocalLoad(Ljava/lang/Object;,5) (5123) +2100: Return(Ljava/lang/Object;) (5125) +2101: Constant(L;,null) (5126) +2102: LocalStore(Ljava/lang/Object;,6) (5127) +2103: LocalLoad(Ljava/lang/Object;,3) (5129) +2104: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5130) +2105: CheckCast(Ljava_cup/runtime/Symbol;) (5133) +2106: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (5136) +2107: LocalStore(I,7) (5139) +2108: LocalLoad(Ljava/lang/Object;,3) (5141) +2109: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5142) +2110: CheckCast(Ljava_cup/runtime/Symbol;) (5145) +2111: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (5148) +2112: LocalStore(I,8) (5151) +2113: LocalLoad(Ljava/lang/Object;,3) (5153) +2114: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5154) +2115: CheckCast(Ljava_cup/runtime/Symbol;) (5157) +2116: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5160) +2117: CheckCast(Ljava/lang/String;) (5163) +2118: LocalStore(Ljava/lang/Object;,9) (5166) +2119: LocalLoad(Ljava/lang/Object;,0) (5168) +2120: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (5169) +2121: LocalLoad(Ljava/lang/Object;,9) (5172) +2122: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (5174) +2123: CheckCast(Ljava_cup/non_terminal;) (5177) +2124: LocalStore(Ljava/lang/Object;,10) (5180) +2125: LocalLoad(Ljava/lang/Object;,10) (5182) +2126: Constant(L;,null) (5184) +2127: ConditionalBranch(Ljava/lang/Object;,ne,2141) (5184) +2128: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (5187) +2129: New(Ljava/lang/StringBuilder;,0) (5190) +2130: Dup(1,0) (5193) +2131: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (5194) +2132: Constant(Ljava/lang/String;,"Start non terminal \"") (5197) +2133: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5199) +2134: LocalLoad(Ljava/lang/Object;,9) (5202) +2135: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5204) +2136: Constant(Ljava/lang/String;,"\" has not been declared") (5207) +2137: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5209) +2138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (5212) +2139: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (5215) +2140: Goto(2182) (5218) +2141: LocalLoad(Ljava/lang/Object;,0) (5221) +2142: LocalLoad(Ljava/lang/Object;,10) (5222) +2143: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (5224) +2144: LocalLoad(Ljava/lang/Object;,0) (5227) +2145: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (5228) +2146: LocalLoad(Ljava/lang/Object;,0) (5231) +2147: LocalLoad(Ljava/lang/Object;,0) (5232) +2148: New(Ljava_cup/symbol_part;,0) (5233) +2149: Dup(1,0) (5236) +2150: LocalLoad(Ljava/lang/Object;,0) (5237) +2151: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (5238) +2152: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (5241) +2153: Constant(Ljava/lang/String;,"start_val") (5244) +2154: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_lab,(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;) (5246) +2155: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (5249) +2156: LocalLoad(Ljava/lang/Object;,0) (5252) +2157: New(Ljava_cup/symbol_part;,0) (5253) +2158: Dup(1,0) (5256) +2159: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (5257) +2160: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (5260) +2161: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (5263) +2162: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (5266) +2163: Constant(I,0) (5269) +2164: ConditionalBranch(I,ne,2171) (5269) +2165: LocalLoad(Ljava/lang/Object;,0) (5272) +2166: New(Ljava_cup/action_part;,0) (5273) +2167: Dup(1,0) (5276) +2168: Constant(Ljava/lang/String;,"RESULT = start_val;") (5277) +2169: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (5279) +2170: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (5282) +2171: New(Ljava_cup/production;,0) (5285) +2172: Dup(1,0) (5288) +2173: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (5289) +2174: LocalLoad(Ljava/lang/Object;,0) (5292) +2175: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (5293) +2176: LocalLoad(Ljava/lang/Object;,0) (5296) +2177: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (5297) +2178: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (5300) +2179: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (5303) +2180: LocalLoad(Ljava/lang/Object;,0) (5306) +2181: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (5307) +2182: LocalLoad(Ljava/lang/Object;,0) (5310) +2183: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5311) +2184: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5314) +2185: Constant(Ljava/lang/String;,"NT$10") (5317) +2186: Constant(I,56) (5319) +2187: LocalLoad(Ljava/lang/Object;,3) (5321) +2188: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5322) +2189: CheckCast(Ljava_cup/runtime/Symbol;) (5325) +2190: LocalLoad(Ljava/lang/Object;,3) (5328) +2191: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5329) +2192: CheckCast(Ljava_cup/runtime/Symbol;) (5332) +2193: LocalLoad(Ljava/lang/Object;,6) (5335) +2194: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5337) +2195: LocalStore(Ljava/lang/Object;,5) (5342) +2196: LocalLoad(Ljava/lang/Object;,5) (5344) +2197: Return(Ljava/lang/Object;) (5346) +2198: Constant(L;,null) (5347) +2199: LocalStore(Ljava/lang/Object;,6) (5348) +2200: LocalLoad(Ljava/lang/Object;,3) (5350) +2201: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5351) +2202: CheckCast(Ljava_cup/runtime/Symbol;) (5354) +2203: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (5357) +2204: LocalStore(I,7) (5360) +2205: LocalLoad(Ljava/lang/Object;,3) (5362) +2206: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5363) +2207: CheckCast(Ljava_cup/runtime/Symbol;) (5366) +2208: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (5369) +2209: LocalStore(I,8) (5372) +2210: LocalLoad(Ljava/lang/Object;,3) (5374) +2211: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5375) +2212: CheckCast(Ljava_cup/runtime/Symbol;) (5378) +2213: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5381) +2214: CheckCast(Ljava/lang/String;) (5384) +2215: LocalStore(Ljava/lang/Object;,9) (5387) +2216: LocalLoad(Ljava/lang/Object;,0) (5389) +2217: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (5390) +2218: LocalLoad(Ljava/lang/Object;,9) (5393) +2219: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (5395) +2220: Constant(L;,null) (5398) +2221: ConditionalBranch(Ljava/lang/Object;,ne,2234) (5398) +2222: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (5401) +2223: New(Ljava/lang/StringBuilder;,0) (5404) +2224: Dup(1,0) (5407) +2225: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (5408) +2226: Constant(Ljava/lang/String;,"Terminal \"") (5411) +2227: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5413) +2228: LocalLoad(Ljava/lang/Object;,9) (5416) +2229: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5418) +2230: Constant(Ljava/lang/String;,"\" has not been declared") (5421) +2231: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5423) +2232: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (5426) +2233: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (5429) +2234: LocalLoad(Ljava/lang/Object;,9) (5432) +2235: LocalStore(Ljava/lang/Object;,6) (5434) +2236: LocalLoad(Ljava/lang/Object;,0) (5436) +2237: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5437) +2238: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5440) +2239: Constant(Ljava/lang/String;,"term_id") (5443) +2240: Constant(I,41) (5445) +2241: LocalLoad(Ljava/lang/Object;,3) (5447) +2242: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5448) +2243: CheckCast(Ljava_cup/runtime/Symbol;) (5451) +2244: LocalLoad(Ljava/lang/Object;,3) (5454) +2245: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5455) +2246: CheckCast(Ljava_cup/runtime/Symbol;) (5458) +2247: LocalLoad(Ljava/lang/Object;,6) (5461) +2248: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5463) +2249: LocalStore(Ljava/lang/Object;,5) (5468) +2250: LocalLoad(Ljava/lang/Object;,5) (5470) +2251: Return(Ljava/lang/Object;) (5472) +2252: Constant(L;,null) (5473) +2253: LocalStore(Ljava/lang/Object;,6) (5474) +2254: LocalLoad(Ljava/lang/Object;,3) (5476) +2255: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5477) +2256: CheckCast(Ljava_cup/runtime/Symbol;) (5480) +2257: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (5483) +2258: LocalStore(I,7) (5486) +2259: LocalLoad(Ljava/lang/Object;,3) (5488) +2260: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5489) +2261: CheckCast(Ljava_cup/runtime/Symbol;) (5492) +2262: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (5495) +2263: LocalStore(I,8) (5498) +2264: LocalLoad(Ljava/lang/Object;,3) (5500) +2265: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5501) +2266: CheckCast(Ljava_cup/runtime/Symbol;) (5504) +2267: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5507) +2268: CheckCast(Ljava/lang/String;) (5510) +2269: LocalStore(Ljava/lang/Object;,9) (5513) +2270: LocalLoad(Ljava/lang/Object;,0) (5515) +2271: LocalLoad(Ljava/lang/Object;,9) (5516) +2272: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_precedence,(Ljava/lang/String;)V) (5518) +2273: LocalLoad(Ljava/lang/Object;,9) (5521) +2274: LocalStore(Ljava/lang/Object;,6) (5523) +2275: LocalLoad(Ljava/lang/Object;,0) (5525) +2276: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5526) +2277: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5529) +2278: Constant(Ljava/lang/String;,"terminal_id") (5532) +2279: Constant(I,40) (5534) +2280: LocalLoad(Ljava/lang/Object;,3) (5536) +2281: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5537) +2282: CheckCast(Ljava_cup/runtime/Symbol;) (5540) +2283: LocalLoad(Ljava/lang/Object;,3) (5543) +2284: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5544) +2285: CheckCast(Ljava_cup/runtime/Symbol;) (5547) +2286: LocalLoad(Ljava/lang/Object;,6) (5550) +2287: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5552) +2288: LocalStore(Ljava/lang/Object;,5) (5557) +2289: LocalLoad(Ljava/lang/Object;,5) (5559) +2290: Return(Ljava/lang/Object;) (5561) +2291: Constant(L;,null) (5562) +2292: LocalStore(Ljava/lang/Object;,6) (5563) +2293: LocalLoad(Ljava/lang/Object;,0) (5565) +2294: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5566) +2295: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5569) +2296: Constant(Ljava/lang/String;,"terminal_list") (5572) +2297: Constant(I,31) (5574) +2298: LocalLoad(Ljava/lang/Object;,3) (5576) +2299: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5577) +2300: CheckCast(Ljava_cup/runtime/Symbol;) (5580) +2301: LocalLoad(Ljava/lang/Object;,3) (5583) +2302: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5584) +2303: CheckCast(Ljava_cup/runtime/Symbol;) (5587) +2304: LocalLoad(Ljava/lang/Object;,6) (5590) +2305: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5592) +2306: LocalStore(Ljava/lang/Object;,5) (5597) +2307: LocalLoad(Ljava/lang/Object;,5) (5599) +2308: Return(Ljava/lang/Object;) (5601) +2309: Constant(L;,null) (5602) +2310: LocalStore(Ljava/lang/Object;,6) (5603) +2311: LocalLoad(Ljava/lang/Object;,0) (5605) +2312: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5606) +2313: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5609) +2314: Constant(Ljava/lang/String;,"terminal_list") (5612) +2315: Constant(I,31) (5614) +2316: LocalLoad(Ljava/lang/Object;,3) (5616) +2317: LocalLoad(I,4) (5617) +2318: Constant(I,2) (5619) +2319: BinaryOp(I,sub) (5620) +2320: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5621) +2321: CheckCast(Ljava_cup/runtime/Symbol;) (5624) +2322: LocalLoad(Ljava/lang/Object;,3) (5627) +2323: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5628) +2324: CheckCast(Ljava_cup/runtime/Symbol;) (5631) +2325: LocalLoad(Ljava/lang/Object;,6) (5634) +2326: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5636) +2327: LocalStore(Ljava/lang/Object;,5) (5641) +2328: LocalLoad(Ljava/lang/Object;,5) (5643) +2329: Return(Ljava/lang/Object;) (5645) +2330: Constant(L;,null) (5646) +2331: LocalStore(Ljava/lang/Object;,6) (5647) +2332: LocalLoad(Ljava/lang/Object;,3) (5649) +2333: LocalLoad(I,4) (5650) +2334: Constant(I,2) (5652) +2335: BinaryOp(I,sub) (5653) +2336: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5654) +2337: CheckCast(Ljava_cup/runtime/Symbol;) (5657) +2338: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5660) +2339: LocalStore(Ljava/lang/Object;,6) (5663) +2340: LocalLoad(Ljava/lang/Object;,0) (5665) +2341: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5666) +2342: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5669) +2343: Constant(Ljava/lang/String;,"preced") (5672) +2344: Constant(I,30) (5674) +2345: LocalLoad(Ljava/lang/Object;,3) (5676) +2346: LocalLoad(I,4) (5677) +2347: Constant(I,4) (5679) +2348: BinaryOp(I,sub) (5680) +2349: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5681) +2350: CheckCast(Ljava_cup/runtime/Symbol;) (5684) +2351: LocalLoad(Ljava/lang/Object;,3) (5687) +2352: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5688) +2353: CheckCast(Ljava_cup/runtime/Symbol;) (5691) +2354: LocalLoad(Ljava/lang/Object;,6) (5694) +2355: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5696) +2356: LocalStore(Ljava/lang/Object;,5) (5701) +2357: LocalLoad(Ljava/lang/Object;,5) (5703) +2358: Return(Ljava/lang/Object;) (5705) +2359: Constant(L;,null) (5706) +2360: LocalStore(Ljava/lang/Object;,6) (5707) +2361: LocalLoad(Ljava/lang/Object;,0) (5709) +2362: Constant(I,2) (5710) +2363: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,update_precedence,(I)V) (5711) +2364: LocalLoad(Ljava/lang/Object;,0) (5714) +2365: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5715) +2366: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5718) +2367: Constant(Ljava/lang/String;,"NT$9") (5721) +2368: Constant(I,55) (5723) +2369: LocalLoad(Ljava/lang/Object;,3) (5725) +2370: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5726) +2371: CheckCast(Ljava_cup/runtime/Symbol;) (5729) +2372: LocalLoad(Ljava/lang/Object;,3) (5732) +2373: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5733) +2374: CheckCast(Ljava_cup/runtime/Symbol;) (5736) +2375: LocalLoad(Ljava/lang/Object;,6) (5739) +2376: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5741) +2377: LocalStore(Ljava/lang/Object;,5) (5746) +2378: LocalLoad(Ljava/lang/Object;,5) (5748) +2379: Return(Ljava/lang/Object;) (5750) +2380: Constant(L;,null) (5751) +2381: LocalStore(Ljava/lang/Object;,6) (5752) +2382: LocalLoad(Ljava/lang/Object;,3) (5754) +2383: LocalLoad(I,4) (5755) +2384: Constant(I,2) (5757) +2385: BinaryOp(I,sub) (5758) +2386: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5759) +2387: CheckCast(Ljava_cup/runtime/Symbol;) (5762) +2388: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5765) +2389: LocalStore(Ljava/lang/Object;,6) (5768) +2390: LocalLoad(Ljava/lang/Object;,0) (5770) +2391: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5771) +2392: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5774) +2393: Constant(Ljava/lang/String;,"preced") (5777) +2394: Constant(I,30) (5779) +2395: LocalLoad(Ljava/lang/Object;,3) (5781) +2396: LocalLoad(I,4) (5782) +2397: Constant(I,4) (5784) +2398: BinaryOp(I,sub) (5785) +2399: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5786) +2400: CheckCast(Ljava_cup/runtime/Symbol;) (5789) +2401: LocalLoad(Ljava/lang/Object;,3) (5792) +2402: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5793) +2403: CheckCast(Ljava_cup/runtime/Symbol;) (5796) +2404: LocalLoad(Ljava/lang/Object;,6) (5799) +2405: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5801) +2406: LocalStore(Ljava/lang/Object;,5) (5806) +2407: LocalLoad(Ljava/lang/Object;,5) (5808) +2408: Return(Ljava/lang/Object;) (5810) +2409: Constant(L;,null) (5811) +2410: LocalStore(Ljava/lang/Object;,6) (5812) +2411: LocalLoad(Ljava/lang/Object;,0) (5814) +2412: Constant(I,1) (5815) +2413: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,update_precedence,(I)V) (5816) +2414: LocalLoad(Ljava/lang/Object;,0) (5819) +2415: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5820) +2416: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5823) +2417: Constant(Ljava/lang/String;,"NT$8") (5826) +2418: Constant(I,54) (5828) +2419: LocalLoad(Ljava/lang/Object;,3) (5830) +2420: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5831) +2421: CheckCast(Ljava_cup/runtime/Symbol;) (5834) +2422: LocalLoad(Ljava/lang/Object;,3) (5837) +2423: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5838) +2424: CheckCast(Ljava_cup/runtime/Symbol;) (5841) +2425: LocalLoad(Ljava/lang/Object;,6) (5844) +2426: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5846) +2427: LocalStore(Ljava/lang/Object;,5) (5851) +2428: LocalLoad(Ljava/lang/Object;,5) (5853) +2429: Return(Ljava/lang/Object;) (5855) +2430: Constant(L;,null) (5856) +2431: LocalStore(Ljava/lang/Object;,6) (5857) +2432: LocalLoad(Ljava/lang/Object;,3) (5859) +2433: LocalLoad(I,4) (5860) +2434: Constant(I,2) (5862) +2435: BinaryOp(I,sub) (5863) +2436: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5864) +2437: CheckCast(Ljava_cup/runtime/Symbol;) (5867) +2438: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5870) +2439: LocalStore(Ljava/lang/Object;,6) (5873) +2440: LocalLoad(Ljava/lang/Object;,0) (5875) +2441: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5876) +2442: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5879) +2443: Constant(Ljava/lang/String;,"preced") (5882) +2444: Constant(I,30) (5884) +2445: LocalLoad(Ljava/lang/Object;,3) (5886) +2446: LocalLoad(I,4) (5887) +2447: Constant(I,4) (5889) +2448: BinaryOp(I,sub) (5890) +2449: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5891) +2450: CheckCast(Ljava_cup/runtime/Symbol;) (5894) +2451: LocalLoad(Ljava/lang/Object;,3) (5897) +2452: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5898) +2453: CheckCast(Ljava_cup/runtime/Symbol;) (5901) +2454: LocalLoad(Ljava/lang/Object;,6) (5904) +2455: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5906) +2456: LocalStore(Ljava/lang/Object;,5) (5911) +2457: LocalLoad(Ljava/lang/Object;,5) (5913) +2458: Return(Ljava/lang/Object;) (5915) +2459: Constant(L;,null) (5916) +2460: LocalStore(Ljava/lang/Object;,6) (5917) +2461: LocalLoad(Ljava/lang/Object;,0) (5919) +2462: Constant(I,0) (5920) +2463: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,update_precedence,(I)V) (5921) +2464: LocalLoad(Ljava/lang/Object;,0) (5924) +2465: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5925) +2466: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5928) +2467: Constant(Ljava/lang/String;,"NT$7") (5931) +2468: Constant(I,53) (5933) +2469: LocalLoad(Ljava/lang/Object;,3) (5935) +2470: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5936) +2471: CheckCast(Ljava_cup/runtime/Symbol;) (5939) +2472: LocalLoad(Ljava/lang/Object;,3) (5942) +2473: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5943) +2474: CheckCast(Ljava_cup/runtime/Symbol;) (5946) +2475: LocalLoad(Ljava/lang/Object;,6) (5949) +2476: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5951) +2477: LocalStore(Ljava/lang/Object;,5) (5956) +2478: LocalLoad(Ljava/lang/Object;,5) (5958) +2479: Return(Ljava/lang/Object;) (5960) +2480: Constant(L;,null) (5961) +2481: LocalStore(Ljava/lang/Object;,6) (5962) +2482: LocalLoad(Ljava/lang/Object;,0) (5964) +2483: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5965) +2484: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5968) +2485: Constant(Ljava/lang/String;,"precedence_l") (5971) +2486: Constant(I,32) (5973) +2487: LocalLoad(Ljava/lang/Object;,3) (5975) +2488: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5976) +2489: CheckCast(Ljava_cup/runtime/Symbol;) (5979) +2490: LocalLoad(Ljava/lang/Object;,3) (5982) +2491: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5983) +2492: CheckCast(Ljava_cup/runtime/Symbol;) (5986) +2493: LocalLoad(Ljava/lang/Object;,6) (5989) +2494: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5991) +2495: LocalStore(Ljava/lang/Object;,5) (5996) +2496: LocalLoad(Ljava/lang/Object;,5) (5998) +2497: Return(Ljava/lang/Object;) (6000) +2498: Constant(L;,null) (6001) +2499: LocalStore(Ljava/lang/Object;,6) (6002) +2500: LocalLoad(Ljava/lang/Object;,0) (6004) +2501: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6005) +2502: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6008) +2503: Constant(Ljava/lang/String;,"precedence_l") (6011) +2504: Constant(I,32) (6013) +2505: LocalLoad(Ljava/lang/Object;,3) (6015) +2506: LocalLoad(I,4) (6016) +2507: Constant(I,1) (6018) +2508: BinaryOp(I,sub) (6019) +2509: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6020) +2510: CheckCast(Ljava_cup/runtime/Symbol;) (6023) +2511: LocalLoad(Ljava/lang/Object;,3) (6026) +2512: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6027) +2513: CheckCast(Ljava_cup/runtime/Symbol;) (6030) +2514: LocalLoad(Ljava/lang/Object;,6) (6033) +2515: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6035) +2516: LocalStore(Ljava/lang/Object;,5) (6040) +2517: LocalLoad(Ljava/lang/Object;,5) (6042) +2518: Return(Ljava/lang/Object;) (6044) +2519: Constant(L;,null) (6045) +2520: LocalStore(Ljava/lang/Object;,6) (6046) +2521: LocalLoad(Ljava/lang/Object;,0) (6048) +2522: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6049) +2523: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6052) +2524: Constant(Ljava/lang/String;,"precedence_list") (6055) +2525: Constant(I,29) (6057) +2526: LocalLoad(Ljava/lang/Object;,3) (6059) +2527: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6060) +2528: CheckCast(Ljava_cup/runtime/Symbol;) (6063) +2529: LocalLoad(Ljava/lang/Object;,3) (6066) +2530: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6067) +2531: CheckCast(Ljava_cup/runtime/Symbol;) (6070) +2532: LocalLoad(Ljava/lang/Object;,6) (6073) +2533: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6075) +2534: LocalStore(Ljava/lang/Object;,5) (6080) +2535: LocalLoad(Ljava/lang/Object;,5) (6082) +2536: Return(Ljava/lang/Object;) (6084) +2537: Constant(L;,null) (6085) +2538: LocalStore(Ljava/lang/Object;,6) (6086) +2539: LocalLoad(Ljava/lang/Object;,0) (6088) +2540: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6089) +2541: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6092) +2542: Constant(Ljava/lang/String;,"precedence_list") (6095) +2543: Constant(I,29) (6097) +2544: LocalLoad(Ljava/lang/Object;,3) (6099) +2545: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6100) +2546: CheckCast(Ljava_cup/runtime/Symbol;) (6103) +2547: LocalLoad(Ljava/lang/Object;,3) (6106) +2548: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6107) +2549: CheckCast(Ljava_cup/runtime/Symbol;) (6110) +2550: LocalLoad(Ljava/lang/Object;,6) (6113) +2551: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6115) +2552: LocalStore(Ljava/lang/Object;,5) (6120) +2553: LocalLoad(Ljava/lang/Object;,5) (6122) +2554: Return(Ljava/lang/Object;) (6124) +2555: Constant(L;,null) (6125) +2556: LocalStore(Ljava/lang/Object;,6) (6126) +2557: LocalLoad(Ljava/lang/Object;,0) (6128) +2558: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6129) +2559: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6132) +2560: Constant(Ljava/lang/String;,"non_term_name_list") (6135) +2561: Constant(I,20) (6137) +2562: LocalLoad(Ljava/lang/Object;,3) (6139) +2563: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6140) +2564: CheckCast(Ljava_cup/runtime/Symbol;) (6143) +2565: LocalLoad(Ljava/lang/Object;,3) (6146) +2566: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6147) +2567: CheckCast(Ljava_cup/runtime/Symbol;) (6150) +2568: LocalLoad(Ljava/lang/Object;,6) (6153) +2569: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6155) +2570: LocalStore(Ljava/lang/Object;,5) (6160) +2571: LocalLoad(Ljava/lang/Object;,5) (6162) +2572: Return(Ljava/lang/Object;) (6164) +2573: Constant(L;,null) (6165) +2574: LocalStore(Ljava/lang/Object;,6) (6166) +2575: LocalLoad(Ljava/lang/Object;,0) (6168) +2576: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6169) +2577: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6172) +2578: Constant(Ljava/lang/String;,"non_term_name_list") (6175) +2579: Constant(I,20) (6177) +2580: LocalLoad(Ljava/lang/Object;,3) (6179) +2581: LocalLoad(I,4) (6180) +2582: Constant(I,2) (6182) +2583: BinaryOp(I,sub) (6183) +2584: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6184) +2585: CheckCast(Ljava_cup/runtime/Symbol;) (6187) +2586: LocalLoad(Ljava/lang/Object;,3) (6190) +2587: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6191) +2588: CheckCast(Ljava_cup/runtime/Symbol;) (6194) +2589: LocalLoad(Ljava/lang/Object;,6) (6197) +2590: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6199) +2591: LocalStore(Ljava/lang/Object;,5) (6204) +2592: LocalLoad(Ljava/lang/Object;,5) (6206) +2593: Return(Ljava/lang/Object;) (6208) +2594: Constant(L;,null) (6209) +2595: LocalStore(Ljava/lang/Object;,6) (6210) +2596: LocalLoad(Ljava/lang/Object;,0) (6212) +2597: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6213) +2598: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6216) +2599: Constant(Ljava/lang/String;,"term_name_list") (6219) +2600: Constant(I,19) (6221) +2601: LocalLoad(Ljava/lang/Object;,3) (6223) +2602: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6224) +2603: CheckCast(Ljava_cup/runtime/Symbol;) (6227) +2604: LocalLoad(Ljava/lang/Object;,3) (6230) +2605: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6231) +2606: CheckCast(Ljava_cup/runtime/Symbol;) (6234) +2607: LocalLoad(Ljava/lang/Object;,6) (6237) +2608: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6239) +2609: LocalStore(Ljava/lang/Object;,5) (6244) +2610: LocalLoad(Ljava/lang/Object;,5) (6246) +2611: Return(Ljava/lang/Object;) (6248) +2612: Constant(L;,null) (6249) +2613: LocalStore(Ljava/lang/Object;,6) (6250) +2614: LocalLoad(Ljava/lang/Object;,0) (6252) +2615: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6253) +2616: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6256) +2617: Constant(Ljava/lang/String;,"term_name_list") (6259) +2618: Constant(I,19) (6261) +2619: LocalLoad(Ljava/lang/Object;,3) (6263) +2620: LocalLoad(I,4) (6264) +2621: Constant(I,2) (6266) +2622: BinaryOp(I,sub) (6267) +2623: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6268) +2624: CheckCast(Ljava_cup/runtime/Symbol;) (6271) +2625: LocalLoad(Ljava/lang/Object;,3) (6274) +2626: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6275) +2627: CheckCast(Ljava_cup/runtime/Symbol;) (6278) +2628: LocalLoad(Ljava/lang/Object;,6) (6281) +2629: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6283) +2630: LocalStore(Ljava/lang/Object;,5) (6288) +2631: LocalLoad(Ljava/lang/Object;,5) (6290) +2632: Return(Ljava/lang/Object;) (6292) +2633: Constant(L;,null) (6293) +2634: LocalStore(Ljava/lang/Object;,6) (6294) +2635: LocalLoad(Ljava/lang/Object;,3) (6296) +2636: LocalLoad(I,4) (6297) +2637: Constant(I,1) (6299) +2638: BinaryOp(I,sub) (6300) +2639: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6301) +2640: CheckCast(Ljava_cup/runtime/Symbol;) (6304) +2641: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (6307) +2642: LocalStore(Ljava/lang/Object;,6) (6310) +2643: LocalLoad(Ljava/lang/Object;,0) (6312) +2644: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6313) +2645: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6316) +2646: Constant(Ljava/lang/String;,"declares_non_term") (6319) +2647: Constant(I,34) (6321) +2648: LocalLoad(Ljava/lang/Object;,3) (6323) +2649: LocalLoad(I,4) (6324) +2650: Constant(I,2) (6326) +2651: BinaryOp(I,sub) (6327) +2652: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6328) +2653: CheckCast(Ljava_cup/runtime/Symbol;) (6331) +2654: LocalLoad(Ljava/lang/Object;,3) (6334) +2655: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6335) +2656: CheckCast(Ljava_cup/runtime/Symbol;) (6338) +2657: LocalLoad(Ljava/lang/Object;,6) (6341) +2658: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6343) +2659: LocalStore(Ljava/lang/Object;,5) (6348) +2660: LocalLoad(Ljava/lang/Object;,5) (6350) +2661: Return(Ljava/lang/Object;) (6352) +2662: Constant(L;,null) (6353) +2663: LocalStore(Ljava/lang/Object;,6) (6354) +2664: LocalLoad(Ljava/lang/Object;,0) (6356) +2665: New(Ljava/lang/String;,0) (6357) +2666: Dup(1,0) (6360) +2667: Invoke(SPECIAL,Ljava/lang/String;,,()V) (6361) +2668: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (6364) +2669: LocalLoad(Ljava/lang/Object;,0) (6367) +2670: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6368) +2671: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6371) +2672: Constant(Ljava/lang/String;,"NT$6") (6374) +2673: Constant(I,52) (6376) +2674: LocalLoad(Ljava/lang/Object;,3) (6378) +2675: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6379) +2676: CheckCast(Ljava_cup/runtime/Symbol;) (6382) +2677: LocalLoad(Ljava/lang/Object;,3) (6385) +2678: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6386) +2679: CheckCast(Ljava_cup/runtime/Symbol;) (6389) +2680: LocalLoad(Ljava/lang/Object;,6) (6392) +2681: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6394) +2682: LocalStore(Ljava/lang/Object;,5) (6399) +2683: LocalLoad(Ljava/lang/Object;,5) (6401) +2684: Return(Ljava/lang/Object;) (6403) +2685: Constant(L;,null) (6404) +2686: LocalStore(Ljava/lang/Object;,6) (6405) +2687: LocalLoad(Ljava/lang/Object;,3) (6407) +2688: LocalLoad(I,4) (6408) +2689: Constant(I,1) (6410) +2690: BinaryOp(I,sub) (6411) +2691: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6412) +2692: CheckCast(Ljava_cup/runtime/Symbol;) (6415) +2693: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (6418) +2694: LocalStore(Ljava/lang/Object;,6) (6421) +2695: LocalLoad(Ljava/lang/Object;,0) (6423) +2696: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6424) +2697: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6427) +2698: Constant(Ljava/lang/String;,"declares_term") (6430) +2699: Constant(I,33) (6432) +2700: LocalLoad(Ljava/lang/Object;,3) (6434) +2701: LocalLoad(I,4) (6435) +2702: Constant(I,2) (6437) +2703: BinaryOp(I,sub) (6438) +2704: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6439) +2705: CheckCast(Ljava_cup/runtime/Symbol;) (6442) +2706: LocalLoad(Ljava/lang/Object;,3) (6445) +2707: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6446) +2708: CheckCast(Ljava_cup/runtime/Symbol;) (6449) +2709: LocalLoad(Ljava/lang/Object;,6) (6452) +2710: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6454) +2711: LocalStore(Ljava/lang/Object;,5) (6459) +2712: LocalLoad(Ljava/lang/Object;,5) (6461) +2713: Return(Ljava/lang/Object;) (6463) +2714: Constant(L;,null) (6464) +2715: LocalStore(Ljava/lang/Object;,6) (6465) +2716: LocalLoad(Ljava/lang/Object;,0) (6467) +2717: New(Ljava/lang/String;,0) (6468) +2718: Dup(1,0) (6471) +2719: Invoke(SPECIAL,Ljava/lang/String;,,()V) (6472) +2720: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (6475) +2721: LocalLoad(Ljava/lang/Object;,0) (6478) +2722: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6479) +2723: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6482) +2724: Constant(Ljava/lang/String;,"NT$5") (6485) +2725: Constant(I,51) (6487) +2726: LocalLoad(Ljava/lang/Object;,3) (6489) +2727: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6490) +2728: CheckCast(Ljava_cup/runtime/Symbol;) (6493) +2729: LocalLoad(Ljava/lang/Object;,3) (6496) +2730: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6497) +2731: CheckCast(Ljava_cup/runtime/Symbol;) (6500) +2732: LocalLoad(Ljava/lang/Object;,6) (6503) +2733: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6505) +2734: LocalStore(Ljava/lang/Object;,5) (6510) +2735: LocalLoad(Ljava/lang/Object;,5) (6512) +2736: Return(Ljava/lang/Object;) (6514) +2737: Constant(L;,null) (6515) +2738: LocalStore(Ljava/lang/Object;,6) (6516) +2739: LocalLoad(Ljava/lang/Object;,3) (6518) +2740: LocalLoad(I,4) (6519) +2741: Constant(I,1) (6521) +2742: BinaryOp(I,sub) (6522) +2743: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6523) +2744: CheckCast(Ljava_cup/runtime/Symbol;) (6526) +2745: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (6529) +2746: LocalStore(Ljava/lang/Object;,6) (6532) +2747: LocalLoad(Ljava/lang/Object;,0) (6534) +2748: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6535) +2749: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6538) +2750: Constant(Ljava/lang/String;,"symbol") (6541) +2751: Constant(I,17) (6543) +2752: LocalLoad(Ljava/lang/Object;,3) (6545) +2753: LocalLoad(I,4) (6546) +2754: Constant(I,3) (6548) +2755: BinaryOp(I,sub) (6549) +2756: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6550) +2757: CheckCast(Ljava_cup/runtime/Symbol;) (6553) +2758: LocalLoad(Ljava/lang/Object;,3) (6556) +2759: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6557) +2760: CheckCast(Ljava_cup/runtime/Symbol;) (6560) +2761: LocalLoad(Ljava/lang/Object;,6) (6563) +2762: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6565) +2763: LocalStore(Ljava/lang/Object;,5) (6570) +2764: LocalLoad(Ljava/lang/Object;,5) (6572) +2765: Return(Ljava/lang/Object;) (6574) +2766: Constant(L;,null) (6575) +2767: LocalStore(Ljava/lang/Object;,6) (6576) +2768: LocalLoad(Ljava/lang/Object;,0) (6578) +2769: New(Ljava/lang/String;,0) (6579) +2770: Dup(1,0) (6582) +2771: Invoke(SPECIAL,Ljava/lang/String;,,()V) (6583) +2772: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (6586) +2773: LocalLoad(Ljava/lang/Object;,0) (6589) +2774: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6590) +2775: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6593) +2776: Constant(Ljava/lang/String;,"NT$4") (6596) +2777: Constant(I,50) (6598) +2778: LocalLoad(Ljava/lang/Object;,3) (6600) +2779: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6601) +2780: CheckCast(Ljava_cup/runtime/Symbol;) (6604) +2781: LocalLoad(Ljava/lang/Object;,3) (6607) +2782: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6608) +2783: CheckCast(Ljava_cup/runtime/Symbol;) (6611) +2784: LocalLoad(Ljava/lang/Object;,6) (6614) +2785: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6616) +2786: LocalStore(Ljava/lang/Object;,5) (6621) +2787: LocalLoad(Ljava/lang/Object;,5) (6623) +2788: Return(Ljava/lang/Object;) (6625) +2789: Constant(L;,null) (6626) +2790: LocalStore(Ljava/lang/Object;,6) (6627) +2791: LocalLoad(Ljava/lang/Object;,3) (6629) +2792: LocalLoad(I,4) (6630) +2793: Constant(I,1) (6632) +2794: BinaryOp(I,sub) (6633) +2795: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6634) +2796: CheckCast(Ljava_cup/runtime/Symbol;) (6637) +2797: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (6640) +2798: LocalStore(Ljava/lang/Object;,6) (6643) +2799: LocalLoad(Ljava/lang/Object;,0) (6645) +2800: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6646) +2801: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6649) +2802: Constant(Ljava/lang/String;,"symbol") (6652) +2803: Constant(I,17) (6654) +2804: LocalLoad(Ljava/lang/Object;,3) (6656) +2805: LocalLoad(I,4) (6657) +2806: Constant(I,3) (6659) +2807: BinaryOp(I,sub) (6660) +2808: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6661) +2809: CheckCast(Ljava_cup/runtime/Symbol;) (6664) +2810: LocalLoad(Ljava/lang/Object;,3) (6667) +2811: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6668) +2812: CheckCast(Ljava_cup/runtime/Symbol;) (6671) +2813: LocalLoad(Ljava/lang/Object;,6) (6674) +2814: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6676) +2815: LocalStore(Ljava/lang/Object;,5) (6681) +2816: LocalLoad(Ljava/lang/Object;,5) (6683) +2817: Return(Ljava/lang/Object;) (6685) +2818: Constant(L;,null) (6686) +2819: LocalStore(Ljava/lang/Object;,6) (6687) +2820: LocalLoad(Ljava/lang/Object;,0) (6689) +2821: New(Ljava/lang/String;,0) (6690) +2822: Dup(1,0) (6693) +2823: Invoke(SPECIAL,Ljava/lang/String;,,()V) (6694) +2824: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (6697) +2825: LocalLoad(Ljava/lang/Object;,0) (6700) +2826: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6701) +2827: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6704) +2828: Constant(Ljava/lang/String;,"NT$3") (6707) +2829: Constant(I,49) (6709) +2830: LocalLoad(Ljava/lang/Object;,3) (6711) +2831: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6712) +2832: CheckCast(Ljava_cup/runtime/Symbol;) (6715) +2833: LocalLoad(Ljava/lang/Object;,3) (6718) +2834: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6719) +2835: CheckCast(Ljava_cup/runtime/Symbol;) (6722) +2836: LocalLoad(Ljava/lang/Object;,6) (6725) +2837: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6727) +2838: LocalStore(Ljava/lang/Object;,5) (6732) +2839: LocalLoad(Ljava/lang/Object;,5) (6734) +2840: Return(Ljava/lang/Object;) (6736) +2841: Constant(L;,null) (6737) +2842: LocalStore(Ljava/lang/Object;,6) (6738) +2843: LocalLoad(Ljava/lang/Object;,0) (6740) +2844: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6741) +2845: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6744) +2846: Constant(Ljava/lang/String;,"symbol") (6747) +2847: Constant(I,17) (6749) +2848: LocalLoad(Ljava/lang/Object;,3) (6751) +2849: LocalLoad(I,4) (6752) +2850: Constant(I,1) (6754) +2851: BinaryOp(I,sub) (6755) +2852: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6756) +2853: CheckCast(Ljava_cup/runtime/Symbol;) (6759) +2854: LocalLoad(Ljava/lang/Object;,3) (6762) +2855: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6763) +2856: CheckCast(Ljava_cup/runtime/Symbol;) (6766) +2857: LocalLoad(Ljava/lang/Object;,6) (6769) +2858: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6771) +2859: LocalStore(Ljava/lang/Object;,5) (6776) +2860: LocalLoad(Ljava/lang/Object;,5) (6778) +2861: Return(Ljava/lang/Object;) (6780) +2862: Constant(L;,null) (6781) +2863: LocalStore(Ljava/lang/Object;,6) (6782) +2864: LocalLoad(Ljava/lang/Object;,0) (6784) +2865: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6785) +2866: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6788) +2867: Constant(Ljava/lang/String;,"symbol") (6791) +2868: Constant(I,17) (6793) +2869: LocalLoad(Ljava/lang/Object;,3) (6795) +2870: LocalLoad(I,4) (6796) +2871: Constant(I,2) (6798) +2872: BinaryOp(I,sub) (6799) +2873: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6800) +2874: CheckCast(Ljava_cup/runtime/Symbol;) (6803) +2875: LocalLoad(Ljava/lang/Object;,3) (6806) +2876: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6807) +2877: CheckCast(Ljava_cup/runtime/Symbol;) (6810) +2878: LocalLoad(Ljava/lang/Object;,6) (6813) +2879: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6815) +2880: LocalStore(Ljava/lang/Object;,5) (6820) +2881: LocalLoad(Ljava/lang/Object;,5) (6822) +2882: Return(Ljava/lang/Object;) (6824) +2883: Constant(L;,null) (6825) +2884: LocalStore(Ljava/lang/Object;,6) (6826) +2885: LocalLoad(Ljava/lang/Object;,0) (6828) +2886: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6829) +2887: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6832) +2888: Constant(Ljava/lang/String;,"symbol") (6835) +2889: Constant(I,17) (6837) +2890: LocalLoad(Ljava/lang/Object;,3) (6839) +2891: LocalLoad(I,4) (6840) +2892: Constant(I,1) (6842) +2893: BinaryOp(I,sub) (6843) +2894: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6844) +2895: CheckCast(Ljava_cup/runtime/Symbol;) (6847) +2896: LocalLoad(Ljava/lang/Object;,3) (6850) +2897: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6851) +2898: CheckCast(Ljava_cup/runtime/Symbol;) (6854) +2899: LocalLoad(Ljava/lang/Object;,6) (6857) +2900: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6859) +2901: LocalStore(Ljava/lang/Object;,5) (6864) +2902: LocalLoad(Ljava/lang/Object;,5) (6866) +2903: Return(Ljava/lang/Object;) (6868) +2904: Constant(L;,null) (6869) +2905: LocalStore(Ljava/lang/Object;,6) (6870) +2906: LocalLoad(Ljava/lang/Object;,0) (6872) +2907: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6873) +2908: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6876) +2909: Constant(Ljava/lang/String;,"symbol") (6879) +2910: Constant(I,17) (6881) +2911: LocalLoad(Ljava/lang/Object;,3) (6883) +2912: LocalLoad(I,4) (6884) +2913: Constant(I,2) (6886) +2914: BinaryOp(I,sub) (6887) +2915: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6888) +2916: CheckCast(Ljava_cup/runtime/Symbol;) (6891) +2917: LocalLoad(Ljava/lang/Object;,3) (6894) +2918: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6895) +2919: CheckCast(Ljava_cup/runtime/Symbol;) (6898) +2920: LocalLoad(Ljava/lang/Object;,6) (6901) +2921: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6903) +2922: LocalStore(Ljava/lang/Object;,5) (6908) +2923: LocalLoad(Ljava/lang/Object;,5) (6910) +2924: Return(Ljava/lang/Object;) (6912) +2925: Constant(L;,null) (6913) +2926: LocalStore(Ljava/lang/Object;,6) (6914) +2927: LocalLoad(Ljava/lang/Object;,0) (6916) +2928: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6917) +2929: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6920) +2930: Constant(Ljava/lang/String;,"symbol_list") (6923) +2931: Constant(I,9) (6925) +2932: LocalLoad(Ljava/lang/Object;,3) (6927) +2933: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6928) +2934: CheckCast(Ljava_cup/runtime/Symbol;) (6931) +2935: LocalLoad(Ljava/lang/Object;,3) (6934) +2936: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6935) +2937: CheckCast(Ljava_cup/runtime/Symbol;) (6938) +2938: LocalLoad(Ljava/lang/Object;,6) (6941) +2939: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6943) +2940: LocalStore(Ljava/lang/Object;,5) (6948) +2941: LocalLoad(Ljava/lang/Object;,5) (6950) +2942: Return(Ljava/lang/Object;) (6952) +2943: Constant(L;,null) (6953) +2944: LocalStore(Ljava/lang/Object;,6) (6954) +2945: LocalLoad(Ljava/lang/Object;,0) (6956) +2946: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6957) +2947: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6960) +2948: Constant(Ljava/lang/String;,"symbol_list") (6963) +2949: Constant(I,9) (6965) +2950: LocalLoad(Ljava/lang/Object;,3) (6967) +2951: LocalLoad(I,4) (6968) +2952: Constant(I,1) (6970) +2953: BinaryOp(I,sub) (6971) +2954: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6972) +2955: CheckCast(Ljava_cup/runtime/Symbol;) (6975) +2956: LocalLoad(Ljava/lang/Object;,3) (6978) +2957: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6979) +2958: CheckCast(Ljava_cup/runtime/Symbol;) (6982) +2959: LocalLoad(Ljava/lang/Object;,6) (6985) +2960: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6987) +2961: LocalStore(Ljava/lang/Object;,5) (6992) +2962: LocalLoad(Ljava/lang/Object;,5) (6994) +2963: Return(Ljava/lang/Object;) (6996) +2964: Constant(L;,null) (6997) +2965: LocalStore(Ljava/lang/Object;,6) (6998) +2966: LocalLoad(Ljava/lang/Object;,3) (7000) +2967: LocalLoad(I,4) (7001) +2968: Constant(I,1) (7003) +2969: BinaryOp(I,sub) (7004) +2970: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7005) +2971: CheckCast(Ljava_cup/runtime/Symbol;) (7008) +2972: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7011) +2973: LocalStore(I,7) (7014) +2974: LocalLoad(Ljava/lang/Object;,3) (7016) +2975: LocalLoad(I,4) (7017) +2976: Constant(I,1) (7019) +2977: BinaryOp(I,sub) (7020) +2978: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7021) +2979: CheckCast(Ljava_cup/runtime/Symbol;) (7024) +2980: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7027) +2981: LocalStore(I,8) (7030) +2982: LocalLoad(Ljava/lang/Object;,3) (7032) +2983: LocalLoad(I,4) (7033) +2984: Constant(I,1) (7035) +2985: BinaryOp(I,sub) (7036) +2986: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7037) +2987: CheckCast(Ljava_cup/runtime/Symbol;) (7040) +2988: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7043) +2989: CheckCast(Ljava/lang/String;) (7046) +2990: LocalStore(Ljava/lang/Object;,9) (7049) +2991: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (7051) +2992: Constant(L;,null) (7054) +2993: ConditionalBranch(Ljava/lang/Object;,eq,2998) (7054) +2994: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7057) +2995: Constant(Ljava/lang/String;,"Redundant scan code (skipping)") (7060) +2996: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (7062) +2997: Goto(3000) (7065) +2998: LocalLoad(Ljava/lang/Object;,9) (7068) +2999: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (7070) +3000: LocalLoad(Ljava/lang/Object;,0) (7073) +3001: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7074) +3002: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7077) +3003: Constant(Ljava/lang/String;,"scan_code") (7080) +3004: Constant(I,16) (7082) +3005: LocalLoad(Ljava/lang/Object;,3) (7084) +3006: LocalLoad(I,4) (7085) +3007: Constant(I,3) (7087) +3008: BinaryOp(I,sub) (7088) +3009: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7089) +3010: CheckCast(Ljava_cup/runtime/Symbol;) (7092) +3011: LocalLoad(Ljava/lang/Object;,3) (7095) +3012: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7096) +3013: CheckCast(Ljava_cup/runtime/Symbol;) (7099) +3014: LocalLoad(Ljava/lang/Object;,6) (7102) +3015: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7104) +3016: LocalStore(Ljava/lang/Object;,5) (7109) +3017: LocalLoad(Ljava/lang/Object;,5) (7111) +3018: Return(Ljava/lang/Object;) (7113) +3019: Constant(L;,null) (7114) +3020: LocalStore(Ljava/lang/Object;,6) (7115) +3021: LocalLoad(Ljava/lang/Object;,3) (7117) +3022: LocalLoad(I,4) (7118) +3023: Constant(I,1) (7120) +3024: BinaryOp(I,sub) (7121) +3025: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7122) +3026: CheckCast(Ljava_cup/runtime/Symbol;) (7125) +3027: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7128) +3028: LocalStore(I,7) (7131) +3029: LocalLoad(Ljava/lang/Object;,3) (7133) +3030: LocalLoad(I,4) (7134) +3031: Constant(I,1) (7136) +3032: BinaryOp(I,sub) (7137) +3033: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7138) +3034: CheckCast(Ljava_cup/runtime/Symbol;) (7141) +3035: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7144) +3036: LocalStore(I,8) (7147) +3037: LocalLoad(Ljava/lang/Object;,3) (7149) +3038: LocalLoad(I,4) (7150) +3039: Constant(I,1) (7152) +3040: BinaryOp(I,sub) (7153) +3041: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7154) +3042: CheckCast(Ljava_cup/runtime/Symbol;) (7157) +3043: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7160) +3044: CheckCast(Ljava/lang/String;) (7163) +3045: LocalStore(Ljava/lang/Object;,9) (7166) +3046: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (7168) +3047: Constant(L;,null) (7171) +3048: ConditionalBranch(Ljava/lang/Object;,eq,3053) (7171) +3049: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7174) +3050: Constant(Ljava/lang/String;,"Redundant init code (skipping)") (7177) +3051: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (7179) +3052: Goto(3055) (7182) +3053: LocalLoad(Ljava/lang/Object;,9) (7185) +3054: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (7187) +3055: LocalLoad(Ljava/lang/Object;,0) (7190) +3056: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7191) +3057: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7194) +3058: Constant(Ljava/lang/String;,"init_code") (7197) +3059: Constant(I,15) (7199) +3060: LocalLoad(Ljava/lang/Object;,3) (7201) +3061: LocalLoad(I,4) (7202) +3062: Constant(I,3) (7204) +3063: BinaryOp(I,sub) (7205) +3064: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7206) +3065: CheckCast(Ljava_cup/runtime/Symbol;) (7209) +3066: LocalLoad(Ljava/lang/Object;,3) (7212) +3067: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7213) +3068: CheckCast(Ljava_cup/runtime/Symbol;) (7216) +3069: LocalLoad(Ljava/lang/Object;,6) (7219) +3070: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7221) +3071: LocalStore(Ljava/lang/Object;,5) (7226) +3072: LocalLoad(Ljava/lang/Object;,5) (7228) +3073: Return(Ljava/lang/Object;) (7230) +3074: Constant(L;,null) (7231) +3075: LocalStore(Ljava/lang/Object;,6) (7232) +3076: LocalLoad(Ljava/lang/Object;,3) (7234) +3077: LocalLoad(I,4) (7235) +3078: Constant(I,1) (7237) +3079: BinaryOp(I,sub) (7238) +3080: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7239) +3081: CheckCast(Ljava_cup/runtime/Symbol;) (7242) +3082: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7245) +3083: LocalStore(I,7) (7248) +3084: LocalLoad(Ljava/lang/Object;,3) (7250) +3085: LocalLoad(I,4) (7251) +3086: Constant(I,1) (7253) +3087: BinaryOp(I,sub) (7254) +3088: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7255) +3089: CheckCast(Ljava_cup/runtime/Symbol;) (7258) +3090: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7261) +3091: LocalStore(I,8) (7264) +3092: LocalLoad(Ljava/lang/Object;,3) (7266) +3093: LocalLoad(I,4) (7267) +3094: Constant(I,1) (7269) +3095: BinaryOp(I,sub) (7270) +3096: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7271) +3097: CheckCast(Ljava_cup/runtime/Symbol;) (7274) +3098: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7277) +3099: CheckCast(Ljava/lang/String;) (7280) +3100: LocalStore(Ljava/lang/Object;,9) (7283) +3101: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (7285) +3102: Constant(L;,null) (7288) +3103: ConditionalBranch(Ljava/lang/Object;,eq,3108) (7288) +3104: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7291) +3105: Constant(Ljava/lang/String;,"Redundant parser code (skipping)") (7294) +3106: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (7296) +3107: Goto(3110) (7299) +3108: LocalLoad(Ljava/lang/Object;,9) (7302) +3109: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (7304) +3110: LocalLoad(Ljava/lang/Object;,0) (7307) +3111: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7308) +3112: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7311) +3113: Constant(Ljava/lang/String;,"parser_code_part") (7314) +3114: Constant(I,8) (7316) +3115: LocalLoad(Ljava/lang/Object;,3) (7318) +3116: LocalLoad(I,4) (7319) +3117: Constant(I,3) (7321) +3118: BinaryOp(I,sub) (7322) +3119: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7323) +3120: CheckCast(Ljava_cup/runtime/Symbol;) (7326) +3121: LocalLoad(Ljava/lang/Object;,3) (7329) +3122: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7330) +3123: CheckCast(Ljava_cup/runtime/Symbol;) (7333) +3124: LocalLoad(Ljava/lang/Object;,6) (7336) +3125: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7338) +3126: LocalStore(Ljava/lang/Object;,5) (7343) +3127: LocalLoad(Ljava/lang/Object;,5) (7345) +3128: Return(Ljava/lang/Object;) (7347) +3129: Constant(L;,null) (7348) +3130: LocalStore(Ljava/lang/Object;,6) (7349) +3131: LocalLoad(Ljava/lang/Object;,3) (7351) +3132: LocalLoad(I,4) (7352) +3133: Constant(I,1) (7354) +3134: BinaryOp(I,sub) (7355) +3135: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7356) +3136: CheckCast(Ljava_cup/runtime/Symbol;) (7359) +3137: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7362) +3138: LocalStore(I,7) (7365) +3139: LocalLoad(Ljava/lang/Object;,3) (7367) +3140: LocalLoad(I,4) (7368) +3141: Constant(I,1) (7370) +3142: BinaryOp(I,sub) (7371) +3143: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7372) +3144: CheckCast(Ljava_cup/runtime/Symbol;) (7375) +3145: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7378) +3146: LocalStore(I,8) (7381) +3147: LocalLoad(Ljava/lang/Object;,3) (7383) +3148: LocalLoad(I,4) (7384) +3149: Constant(I,1) (7386) +3150: BinaryOp(I,sub) (7387) +3151: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7388) +3152: CheckCast(Ljava_cup/runtime/Symbol;) (7391) +3153: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7394) +3154: CheckCast(Ljava/lang/String;) (7397) +3155: LocalStore(Ljava/lang/Object;,9) (7400) +3156: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (7402) +3157: Constant(L;,null) (7405) +3158: ConditionalBranch(Ljava/lang/Object;,eq,3163) (7405) +3159: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7408) +3160: Constant(Ljava/lang/String;,"Redundant action code (skipping)") (7411) +3161: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (7413) +3162: Goto(3165) (7416) +3163: LocalLoad(Ljava/lang/Object;,9) (7419) +3164: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (7421) +3165: LocalLoad(Ljava/lang/Object;,0) (7424) +3166: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7425) +3167: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7428) +3168: Constant(Ljava/lang/String;,"action_code_part") (7431) +3169: Constant(I,3) (7433) +3170: LocalLoad(Ljava/lang/Object;,3) (7434) +3171: LocalLoad(I,4) (7435) +3172: Constant(I,3) (7437) +3173: BinaryOp(I,sub) (7438) +3174: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7439) +3175: CheckCast(Ljava_cup/runtime/Symbol;) (7442) +3176: LocalLoad(Ljava/lang/Object;,3) (7445) +3177: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7446) +3178: CheckCast(Ljava_cup/runtime/Symbol;) (7449) +3179: LocalLoad(Ljava/lang/Object;,6) (7452) +3180: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7454) +3181: LocalStore(Ljava/lang/Object;,5) (7459) +3182: LocalLoad(Ljava/lang/Object;,5) (7461) +3183: Return(Ljava/lang/Object;) (7463) +3184: Constant(L;,null) (7464) +3185: LocalStore(Ljava/lang/Object;,6) (7465) +3186: LocalLoad(Ljava/lang/Object;,0) (7467) +3187: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7468) +3188: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7471) +3189: Constant(Ljava/lang/String;,"code_parts") (7474) +3190: Constant(I,4) (7476) +3191: LocalLoad(Ljava/lang/Object;,3) (7477) +3192: LocalLoad(I,4) (7478) +3193: Constant(I,1) (7480) +3194: BinaryOp(I,sub) (7481) +3195: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7482) +3196: CheckCast(Ljava_cup/runtime/Symbol;) (7485) +3197: LocalLoad(Ljava/lang/Object;,3) (7488) +3198: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7489) +3199: CheckCast(Ljava_cup/runtime/Symbol;) (7492) +3200: LocalLoad(Ljava/lang/Object;,6) (7495) +3201: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7497) +3202: LocalStore(Ljava/lang/Object;,5) (7502) +3203: LocalLoad(Ljava/lang/Object;,5) (7504) +3204: Return(Ljava/lang/Object;) (7506) +3205: Constant(L;,null) (7507) +3206: LocalStore(Ljava/lang/Object;,6) (7508) +3207: LocalLoad(Ljava/lang/Object;,0) (7510) +3208: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7511) +3209: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7514) +3210: Constant(Ljava/lang/String;,"code_parts") (7517) +3211: Constant(I,4) (7519) +3212: LocalLoad(Ljava/lang/Object;,3) (7520) +3213: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7521) +3214: CheckCast(Ljava_cup/runtime/Symbol;) (7524) +3215: LocalLoad(Ljava/lang/Object;,3) (7527) +3216: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7528) +3217: CheckCast(Ljava_cup/runtime/Symbol;) (7531) +3218: LocalLoad(Ljava/lang/Object;,6) (7534) +3219: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7536) +3220: LocalStore(Ljava/lang/Object;,5) (7541) +3221: LocalLoad(Ljava/lang/Object;,5) (7543) +3222: Return(Ljava/lang/Object;) (7545) +3223: Constant(L;,null) (7546) +3224: LocalStore(Ljava/lang/Object;,6) (7547) +3225: LocalLoad(Ljava/lang/Object;,0) (7549) +3226: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7550) +3227: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7553) +3228: Constant(Ljava/lang/String;,"code_part") (7556) +3229: Constant(I,5) (7558) +3230: LocalLoad(Ljava/lang/Object;,3) (7559) +3231: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7560) +3232: CheckCast(Ljava_cup/runtime/Symbol;) (7563) +3233: LocalLoad(Ljava/lang/Object;,3) (7566) +3234: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7567) +3235: CheckCast(Ljava_cup/runtime/Symbol;) (7570) +3236: LocalLoad(Ljava/lang/Object;,6) (7573) +3237: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7575) +3238: LocalStore(Ljava/lang/Object;,5) (7580) +3239: LocalLoad(Ljava/lang/Object;,5) (7582) +3240: Return(Ljava/lang/Object;) (7584) +3241: Constant(L;,null) (7585) +3242: LocalStore(Ljava/lang/Object;,6) (7586) +3243: LocalLoad(Ljava/lang/Object;,0) (7588) +3244: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7589) +3245: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7592) +3246: Constant(Ljava/lang/String;,"code_part") (7595) +3247: Constant(I,5) (7597) +3248: LocalLoad(Ljava/lang/Object;,3) (7598) +3249: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7599) +3250: CheckCast(Ljava_cup/runtime/Symbol;) (7602) +3251: LocalLoad(Ljava/lang/Object;,3) (7605) +3252: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7606) +3253: CheckCast(Ljava_cup/runtime/Symbol;) (7609) +3254: LocalLoad(Ljava/lang/Object;,6) (7612) +3255: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7614) +3256: LocalStore(Ljava/lang/Object;,5) (7619) +3257: LocalLoad(Ljava/lang/Object;,5) (7621) +3258: Return(Ljava/lang/Object;) (7623) +3259: Constant(L;,null) (7624) +3260: LocalStore(Ljava/lang/Object;,6) (7625) +3261: LocalLoad(Ljava/lang/Object;,0) (7627) +3262: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7628) +3263: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7631) +3264: Constant(Ljava/lang/String;,"code_part") (7634) +3265: Constant(I,5) (7636) +3266: LocalLoad(Ljava/lang/Object;,3) (7637) +3267: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7638) +3268: CheckCast(Ljava_cup/runtime/Symbol;) (7641) +3269: LocalLoad(Ljava/lang/Object;,3) (7644) +3270: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7645) +3271: CheckCast(Ljava_cup/runtime/Symbol;) (7648) +3272: LocalLoad(Ljava/lang/Object;,6) (7651) +3273: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7653) +3274: LocalStore(Ljava/lang/Object;,5) (7658) +3275: LocalLoad(Ljava/lang/Object;,5) (7660) +3276: Return(Ljava/lang/Object;) (7662) +3277: Constant(L;,null) (7663) +3278: LocalStore(Ljava/lang/Object;,6) (7664) +3279: LocalLoad(Ljava/lang/Object;,0) (7666) +3280: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7667) +3281: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7670) +3282: Constant(Ljava/lang/String;,"code_part") (7673) +3283: Constant(I,5) (7675) +3284: LocalLoad(Ljava/lang/Object;,3) (7676) +3285: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7677) +3286: CheckCast(Ljava_cup/runtime/Symbol;) (7680) +3287: LocalLoad(Ljava/lang/Object;,3) (7683) +3288: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7684) +3289: CheckCast(Ljava_cup/runtime/Symbol;) (7687) +3290: LocalLoad(Ljava/lang/Object;,6) (7690) +3291: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7692) +3292: LocalStore(Ljava/lang/Object;,5) (7697) +3293: LocalLoad(Ljava/lang/Object;,5) (7699) +3294: Return(Ljava/lang/Object;) (7701) +3295: Constant(L;,null) (7702) +3296: LocalStore(Ljava/lang/Object;,6) (7703) +3297: LocalLoad(Ljava/lang/Object;,3) (7705) +3298: LocalLoad(I,4) (7706) +3299: Constant(I,1) (7708) +3300: BinaryOp(I,sub) (7709) +3301: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7710) +3302: CheckCast(Ljava_cup/runtime/Symbol;) (7713) +3303: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7716) +3304: LocalStore(I,7) (7719) +3305: LocalLoad(Ljava/lang/Object;,3) (7721) +3306: LocalLoad(I,4) (7722) +3307: Constant(I,1) (7724) +3308: BinaryOp(I,sub) (7725) +3309: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7726) +3310: CheckCast(Ljava_cup/runtime/Symbol;) (7729) +3311: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7732) +3312: LocalStore(I,8) (7735) +3313: LocalLoad(Ljava/lang/Object;,3) (7737) +3314: LocalLoad(I,4) (7738) +3315: Constant(I,1) (7740) +3316: BinaryOp(I,sub) (7741) +3317: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7742) +3318: CheckCast(Ljava_cup/runtime/Symbol;) (7745) +3319: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7748) +3320: CheckCast(Ljava/lang/String;) (7751) +3321: LocalStore(Ljava/lang/Object;,9) (7754) +3322: LocalLoad(Ljava/lang/Object;,9) (7756) +3323: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (7758) +3324: New(Ljava/lang/StringBuilder;,0) (7761) +3325: Dup(1,0) (7764) +3326: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7765) +3327: LocalLoad(Ljava/lang/Object;,9) (7768) +3328: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (7770) +3329: Constant(Ljava/lang/String;,"Sym") (7773) +3330: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (7775) +3331: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (7778) +3332: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (7781) +3333: LocalLoad(Ljava/lang/Object;,0) (7784) +3334: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7785) +3335: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7788) +3336: Constant(Ljava/lang/String;,"class_name") (7791) +3337: Constant(I,35) (7793) +3338: LocalLoad(Ljava/lang/Object;,3) (7795) +3339: LocalLoad(I,4) (7796) +3340: Constant(I,2) (7798) +3341: BinaryOp(I,sub) (7799) +3342: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7800) +3343: CheckCast(Ljava_cup/runtime/Symbol;) (7803) +3344: LocalLoad(Ljava/lang/Object;,3) (7806) +3345: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7807) +3346: CheckCast(Ljava_cup/runtime/Symbol;) (7810) +3347: LocalLoad(Ljava/lang/Object;,6) (7813) +3348: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7815) +3349: LocalStore(Ljava/lang/Object;,5) (7820) +3350: LocalLoad(Ljava/lang/Object;,5) (7822) +3351: Return(Ljava/lang/Object;) (7824) +3352: Constant(L;,null) (7825) +3353: LocalStore(Ljava/lang/Object;,6) (7826) +3354: LocalLoad(Ljava/lang/Object;,0) (7828) +3355: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7829) +3356: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7832) +3357: Constant(Ljava/lang/String;,"class_name") (7835) +3358: Constant(I,35) (7837) +3359: LocalLoad(Ljava/lang/Object;,3) (7839) +3360: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7840) +3361: CheckCast(Ljava_cup/runtime/Symbol;) (7843) +3362: LocalLoad(Ljava/lang/Object;,3) (7846) +3363: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7847) +3364: CheckCast(Ljava_cup/runtime/Symbol;) (7850) +3365: LocalLoad(Ljava/lang/Object;,6) (7853) +3366: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7855) +3367: LocalStore(Ljava/lang/Object;,5) (7860) +3368: LocalLoad(Ljava/lang/Object;,5) (7862) +3369: Return(Ljava/lang/Object;) (7864) +3370: Constant(L;,null) (7865) +3371: LocalStore(Ljava/lang/Object;,6) (7866) +3372: LocalLoad(Ljava/lang/Object;,3) (7868) +3373: LocalLoad(I,4) (7869) +3374: Constant(I,1) (7871) +3375: BinaryOp(I,sub) (7872) +3376: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7873) +3377: CheckCast(Ljava_cup/runtime/Symbol;) (7876) +3378: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7879) +3379: LocalStore(Ljava/lang/Object;,6) (7882) +3380: LocalLoad(Ljava/lang/Object;,0) (7884) +3381: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7885) +3382: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7888) +3383: Constant(Ljava/lang/String;,"import_spec") (7891) +3384: Constant(I,13) (7893) +3385: LocalLoad(Ljava/lang/Object;,3) (7895) +3386: LocalLoad(I,4) (7896) +3387: Constant(I,3) (7898) +3388: BinaryOp(I,sub) (7899) +3389: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7900) +3390: CheckCast(Ljava_cup/runtime/Symbol;) (7903) +3391: LocalLoad(Ljava/lang/Object;,3) (7906) +3392: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7907) +3393: CheckCast(Ljava_cup/runtime/Symbol;) (7910) +3394: LocalLoad(Ljava/lang/Object;,6) (7913) +3395: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7915) +3396: LocalStore(Ljava/lang/Object;,5) (7920) +3397: LocalLoad(Ljava/lang/Object;,5) (7922) +3398: Return(Ljava/lang/Object;) (7924) +3399: Constant(L;,null) (7925) +3400: LocalStore(Ljava/lang/Object;,6) (7926) +3401: Get(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (7928) +3402: LocalLoad(Ljava/lang/Object;,0) (7931) +3403: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (7932) +3404: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (7935) +3405: Pop(1) (7938) +3406: LocalLoad(Ljava/lang/Object;,0) (7939) +3407: New(Ljava/lang/String;,0) (7940) +3408: Dup(1,0) (7943) +3409: Invoke(SPECIAL,Ljava/lang/String;,,()V) (7944) +3410: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (7947) +3411: LocalLoad(Ljava/lang/Object;,0) (7950) +3412: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7951) +3413: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7954) +3414: Constant(Ljava/lang/String;,"NT$2") (7957) +3415: Constant(I,48) (7959) +3416: LocalLoad(Ljava/lang/Object;,3) (7961) +3417: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7962) +3418: CheckCast(Ljava_cup/runtime/Symbol;) (7965) +3419: LocalLoad(Ljava/lang/Object;,3) (7968) +3420: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7969) +3421: CheckCast(Ljava_cup/runtime/Symbol;) (7972) +3422: LocalLoad(Ljava/lang/Object;,6) (7975) +3423: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7977) +3424: LocalStore(Ljava/lang/Object;,5) (7982) +3425: LocalLoad(Ljava/lang/Object;,5) (7984) +3426: Return(Ljava/lang/Object;) (7986) +3427: Constant(L;,null) (7987) +3428: LocalStore(Ljava/lang/Object;,6) (7988) +3429: LocalLoad(Ljava/lang/Object;,0) (7990) +3430: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7991) +3431: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7994) +3432: Constant(Ljava/lang/String;,"import_list") (7997) +3433: Constant(I,2) (7999) +3434: LocalLoad(Ljava/lang/Object;,3) (8000) +3435: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8001) +3436: CheckCast(Ljava_cup/runtime/Symbol;) (8004) +3437: LocalLoad(Ljava/lang/Object;,3) (8007) +3438: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8008) +3439: CheckCast(Ljava_cup/runtime/Symbol;) (8011) +3440: LocalLoad(Ljava/lang/Object;,6) (8014) +3441: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8016) +3442: LocalStore(Ljava/lang/Object;,5) (8021) +3443: LocalLoad(Ljava/lang/Object;,5) (8023) +3444: Return(Ljava/lang/Object;) (8025) +3445: Constant(L;,null) (8026) +3446: LocalStore(Ljava/lang/Object;,6) (8027) +3447: LocalLoad(Ljava/lang/Object;,0) (8029) +3448: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8030) +3449: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8033) +3450: Constant(Ljava/lang/String;,"import_list") (8036) +3451: Constant(I,2) (8038) +3452: LocalLoad(Ljava/lang/Object;,3) (8039) +3453: LocalLoad(I,4) (8040) +3454: Constant(I,1) (8042) +3455: BinaryOp(I,sub) (8043) +3456: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8044) +3457: CheckCast(Ljava_cup/runtime/Symbol;) (8047) +3458: LocalLoad(Ljava/lang/Object;,3) (8050) +3459: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8051) +3460: CheckCast(Ljava_cup/runtime/Symbol;) (8054) +3461: LocalLoad(Ljava/lang/Object;,6) (8057) +3462: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8059) +3463: LocalStore(Ljava/lang/Object;,5) (8064) +3464: LocalLoad(Ljava/lang/Object;,5) (8066) +3465: Return(Ljava/lang/Object;) (8068) +3466: Constant(L;,null) (8069) +3467: LocalStore(Ljava/lang/Object;,6) (8070) +3468: LocalLoad(Ljava/lang/Object;,0) (8072) +3469: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8073) +3470: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8076) +3471: Constant(Ljava/lang/String;,"package_spec") (8079) +3472: Constant(I,1) (8081) +3473: LocalLoad(Ljava/lang/Object;,3) (8082) +3474: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8083) +3475: CheckCast(Ljava_cup/runtime/Symbol;) (8086) +3476: LocalLoad(Ljava/lang/Object;,3) (8089) +3477: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8090) +3478: CheckCast(Ljava_cup/runtime/Symbol;) (8093) +3479: LocalLoad(Ljava/lang/Object;,6) (8096) +3480: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8098) +3481: LocalStore(Ljava/lang/Object;,5) (8103) +3482: LocalLoad(Ljava/lang/Object;,5) (8105) +3483: Return(Ljava/lang/Object;) (8107) +3484: Constant(L;,null) (8108) +3485: LocalStore(Ljava/lang/Object;,6) (8109) +3486: LocalLoad(Ljava/lang/Object;,3) (8111) +3487: LocalLoad(I,4) (8112) +3488: Constant(I,1) (8114) +3489: BinaryOp(I,sub) (8115) +3490: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8116) +3491: CheckCast(Ljava_cup/runtime/Symbol;) (8119) +3492: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (8122) +3493: LocalStore(Ljava/lang/Object;,6) (8125) +3494: LocalLoad(Ljava/lang/Object;,0) (8127) +3495: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8128) +3496: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8131) +3497: Constant(Ljava/lang/String;,"package_spec") (8134) +3498: Constant(I,1) (8136) +3499: LocalLoad(Ljava/lang/Object;,3) (8137) +3500: LocalLoad(I,4) (8138) +3501: Constant(I,3) (8140) +3502: BinaryOp(I,sub) (8141) +3503: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8142) +3504: CheckCast(Ljava_cup/runtime/Symbol;) (8145) +3505: LocalLoad(Ljava/lang/Object;,3) (8148) +3506: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8149) +3507: CheckCast(Ljava_cup/runtime/Symbol;) (8152) +3508: LocalLoad(Ljava/lang/Object;,6) (8155) +3509: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8157) +3510: LocalStore(Ljava/lang/Object;,5) (8162) +3511: LocalLoad(Ljava/lang/Object;,5) (8164) +3512: Return(Ljava/lang/Object;) (8166) +3513: Constant(L;,null) (8167) +3514: LocalStore(Ljava/lang/Object;,6) (8168) +3515: LocalLoad(Ljava/lang/Object;,0) (8170) +3516: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (8171) +3517: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (8174) +3518: LocalLoad(Ljava/lang/Object;,0) (8177) +3519: New(Ljava/lang/String;,0) (8178) +3520: Dup(1,0) (8181) +3521: Invoke(SPECIAL,Ljava/lang/String;,,()V) (8182) +3522: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (8185) +3523: LocalLoad(Ljava/lang/Object;,0) (8188) +3524: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8189) +3525: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8192) +3526: Constant(Ljava/lang/String;,"NT$1") (8195) +3527: Constant(I,47) (8197) +3528: LocalLoad(Ljava/lang/Object;,3) (8199) +3529: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8200) +3530: CheckCast(Ljava_cup/runtime/Symbol;) (8203) +3531: LocalLoad(Ljava/lang/Object;,3) (8206) +3532: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8207) +3533: CheckCast(Ljava_cup/runtime/Symbol;) (8210) +3534: LocalLoad(Ljava/lang/Object;,6) (8213) +3535: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8215) +3536: LocalStore(Ljava/lang/Object;,5) (8220) +3537: LocalLoad(Ljava/lang/Object;,5) (8222) +3538: Return(Ljava/lang/Object;) (8224) +3539: Constant(L;,null) (8225) +3540: LocalStore(Ljava/lang/Object;,6) (8226) +3541: LocalLoad(Ljava/lang/Object;,0) (8228) +3542: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8229) +3543: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8232) +3544: Constant(Ljava/lang/String;,"spec") (8235) +3545: Constant(I,0) (8237) +3546: LocalLoad(Ljava/lang/Object;,3) (8238) +3547: LocalLoad(I,4) (8239) +3548: Constant(I,4) (8241) +3549: BinaryOp(I,sub) (8242) +3550: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8243) +3551: CheckCast(Ljava_cup/runtime/Symbol;) (8246) +3552: LocalLoad(Ljava/lang/Object;,3) (8249) +3553: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8250) +3554: CheckCast(Ljava_cup/runtime/Symbol;) (8253) +3555: LocalLoad(Ljava/lang/Object;,6) (8256) +3556: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8258) +3557: LocalStore(Ljava/lang/Object;,5) (8263) +3558: LocalLoad(Ljava/lang/Object;,5) (8265) +3559: Return(Ljava/lang/Object;) (8267) +3560: Constant(L;,null) (8268) +3561: LocalStore(Ljava/lang/Object;,6) (8269) +3562: LocalLoad(Ljava/lang/Object;,0) (8271) +3563: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8272) +3564: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8275) +3565: Constant(Ljava/lang/String;,"spec") (8278) +3566: Constant(I,0) (8280) +3567: LocalLoad(Ljava/lang/Object;,3) (8281) +3568: LocalLoad(I,4) (8282) +3569: Constant(I,8) (8284) +3570: BinaryOp(I,sub) (8286) +3571: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8287) +3572: CheckCast(Ljava_cup/runtime/Symbol;) (8290) +3573: LocalLoad(Ljava/lang/Object;,3) (8293) +3574: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8294) +3575: CheckCast(Ljava_cup/runtime/Symbol;) (8297) +3576: LocalLoad(Ljava/lang/Object;,6) (8300) +3577: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8302) +3578: LocalStore(Ljava/lang/Object;,5) (8307) +3579: LocalLoad(Ljava/lang/Object;,5) (8309) +3580: Return(Ljava/lang/Object;) (8311) +3581: Constant(L;,null) (8312) +3582: LocalStore(Ljava/lang/Object;,6) (8313) +3583: LocalLoad(Ljava/lang/Object;,0) (8315) +3584: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (8316) +3585: Constant(Ljava/lang/String;,"error") (8319) +3586: New(Ljava_cup/symbol_part;,0) (8321) +3587: Dup(1,0) (8324) +3588: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (8325) +3589: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (8328) +3590: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (8331) +3591: Pop(1) (8334) +3592: LocalLoad(Ljava/lang/Object;,0) (8335) +3593: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (8336) +3594: Constant(Ljava/lang/String;,"$START") (8339) +3595: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (8341) +3596: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (8344) +3597: Pop(1) (8347) +3598: LocalLoad(Ljava/lang/Object;,0) (8348) +3599: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8349) +3600: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8352) +3601: Constant(Ljava/lang/String;,"NT$0") (8355) +3602: Constant(I,46) (8357) +3603: LocalLoad(Ljava/lang/Object;,3) (8359) +3604: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8360) +3605: CheckCast(Ljava_cup/runtime/Symbol;) (8363) +3606: LocalLoad(Ljava/lang/Object;,3) (8366) +3607: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8367) +3608: CheckCast(Ljava_cup/runtime/Symbol;) (8370) +3609: LocalLoad(Ljava/lang/Object;,6) (8373) +3610: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8375) +3611: LocalStore(Ljava/lang/Object;,5) (8380) +3612: LocalLoad(Ljava/lang/Object;,5) (8382) +3613: Return(Ljava/lang/Object;) (8384) +3614: Constant(L;,null) (8385) +3615: LocalStore(Ljava/lang/Object;,6) (8386) +3616: LocalLoad(Ljava/lang/Object;,3) (8388) +3617: LocalLoad(I,4) (8389) +3618: Constant(I,1) (8391) +3619: BinaryOp(I,sub) (8392) +3620: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8393) +3621: CheckCast(Ljava_cup/runtime/Symbol;) (8396) +3622: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (8399) +3623: LocalStore(I,7) (8402) +3624: LocalLoad(Ljava/lang/Object;,3) (8404) +3625: LocalLoad(I,4) (8405) +3626: Constant(I,1) (8407) +3627: BinaryOp(I,sub) (8408) +3628: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8409) +3629: CheckCast(Ljava_cup/runtime/Symbol;) (8412) +3630: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (8415) +3631: LocalStore(I,8) (8418) +3632: LocalLoad(Ljava/lang/Object;,3) (8420) +3633: LocalLoad(I,4) (8421) +3634: Constant(I,1) (8423) +3635: BinaryOp(I,sub) (8424) +3636: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8425) +3637: CheckCast(Ljava_cup/runtime/Symbol;) (8428) +3638: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (8431) +3639: LocalStore(Ljava/lang/Object;,9) (8434) +3640: LocalLoad(Ljava/lang/Object;,9) (8436) +3641: LocalStore(Ljava/lang/Object;,6) (8438) +3642: LocalLoad(Ljava/lang/Object;,0) (8440) +3643: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8441) +3644: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8444) +3645: Constant(Ljava/lang/String;,"$START") (8447) +3646: Constant(I,0) (8449) +3647: LocalLoad(Ljava/lang/Object;,3) (8450) +3648: LocalLoad(I,4) (8451) +3649: Constant(I,1) (8453) +3650: BinaryOp(I,sub) (8454) +3651: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8455) +3652: CheckCast(Ljava_cup/runtime/Symbol;) (8458) +3653: LocalLoad(Ljava/lang/Object;,3) (8461) +3654: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8462) +3655: CheckCast(Ljava_cup/runtime/Symbol;) (8465) +3656: LocalLoad(Ljava/lang/Object;,6) (8468) +3657: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8470) +3658: LocalStore(Ljava/lang/Object;,5) (8475) +3659: LocalLoad(Ljava/lang/Object;,2) (8477) +3660: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,done_parsing,()V) (8478) +3661: LocalLoad(Ljava/lang/Object;,5) (8481) +3662: Return(Ljava/lang/Object;) (8483) +3663: New(Ljava/lang/Exception;,0) (8484) +3664: Dup(1,0) (8487) +3665: Constant(Ljava/lang/String;,"Invalid action number found in internal parse table") (8488) +3666: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (8490) +3667: Throw() (8493) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +1: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,1) (0) + Handles null at 4257 +5: Switch(4252,0,4198,1,4160,2,4134,3,4108,4,4077,5,4043,6,4020,7,3994,8,3971,9,3938,10,3904,11,3881,12,3819,13,3796,14,3773,15,3750,16,3727,17,3704,18,3678,19,3618,20,3558,21,3498,22,3438,23,3412,24,3389,25,3363,26,3337,27,3311,28,3285,29,3257,30,3223,31,3195,32,3161,33,3133,34,3099,35,3071,36,3037,37,3011,38,2988,39,2962,40,2939,41,2916,42,2893,43,2867,44,2844,45,2818,46,2784,47,2758,48,2724,49,2698,50,2664,51,2638,52,2615,53,2571,54,2512,55,2410,56,2351,57,2328,58,2302,59,2279,60,2211,61,2152,62,2126,63,2092,64,2066,65,2043,66,1855,67,1770,68,1744,69,1721,70,1622,71,1577,72,1533,73,1508,74,1453,75,1421,76,1345,77,1300,78,1259,79,1181,80,1150,81,1109,82,1084,83,1043,84,1002,85,970,86,947,87,924,88,892,89,811,90,722,91,681,92,653,93,612,94,584,95,543,96,502,97,477,98,452,99,427,100,402,101,377,102,352,103,327,104,302,105,277,106,252,107,227,108,202,109,177,110,152,111,124,112,98,113,75,114,52,115,29,116,6) (1) + Handles null at 4257 +6: Constant(L;,null) (484) + Handles null at 4257 +7: LocalStore(Ljava/lang/Object;,6) (485) + Handles null at 4257 +8: LocalLoad(Ljava/lang/Object;,0) (487) + Handles null at 4257 +9: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (488) + Handles null at 4257 +10: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (491) + Handles null at 4257 +11: Constant(Ljava/lang/String;,"empty") (494) + Handles null at 4257 +12: Constant(I,28) (496) + Handles null at 4257 +13: LocalLoad(Ljava/lang/Object;,3) (498) + Handles null at 4257 +14: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (499) + Handles null at 4257 +15: CheckCast(Ljava_cup/runtime/Symbol;) (502) + Handles null at 4257 +16: LocalLoad(Ljava/lang/Object;,3) (505) + Handles null at 4257 +17: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (506) + Handles null at 4257 +18: CheckCast(Ljava_cup/runtime/Symbol;) (509) + Handles null at 4257 +19: LocalLoad(Ljava/lang/Object;,6) (512) + Handles null at 4257 +20: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (514) + Handles null at 4257 +21: LocalStore(Ljava/lang/Object;,5) (519) + Handles null at 4257 +22: LocalLoad(Ljava/lang/Object;,5) (521) + Handles null at 4257 +23: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (523) + Handles null at 4257 +24: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (523) + Handles null at 4257 +25: LocalLoad(Ljava/lang/Object;,0) (523) + Handles null at 4257 +26: Constant(I,0) (523) + Handles null at 4257 +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (523) + Handles null at 4257 +28: Return(Ljava/lang/Object;) (523) + Handles null at 4257 +29: Constant(L;,null) (524) + Handles null at 4257 +30: LocalStore(Ljava/lang/Object;,6) (525) + Handles null at 4257 +31: LocalLoad(Ljava/lang/Object;,0) (527) + Handles null at 4257 +32: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (528) + Handles null at 4257 +33: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (531) + Handles null at 4257 +34: Constant(Ljava/lang/String;,"opt_semi") (534) + Handles null at 4257 +35: Constant(I,6) (536) + Handles null at 4257 +36: LocalLoad(Ljava/lang/Object;,3) (538) + Handles null at 4257 +37: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (539) + Handles null at 4257 +38: CheckCast(Ljava_cup/runtime/Symbol;) (542) + Handles null at 4257 +39: LocalLoad(Ljava/lang/Object;,3) (545) + Handles null at 4257 +40: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (546) + Handles null at 4257 +41: CheckCast(Ljava_cup/runtime/Symbol;) (549) + Handles null at 4257 +42: LocalLoad(Ljava/lang/Object;,6) (552) + Handles null at 4257 +43: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (554) + Handles null at 4257 +44: LocalStore(Ljava/lang/Object;,5) (559) + Handles null at 4257 +45: LocalLoad(Ljava/lang/Object;,5) (561) + Handles null at 4257 +46: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (563) + Handles null at 4257 +47: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (563) + Handles null at 4257 +48: LocalLoad(Ljava/lang/Object;,0) (563) + Handles null at 4257 +49: Constant(I,0) (563) + Handles null at 4257 +50: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (563) + Handles null at 4257 +51: Return(Ljava/lang/Object;) (563) + Handles null at 4257 +52: Constant(L;,null) (564) + Handles null at 4257 +53: LocalStore(Ljava/lang/Object;,6) (565) + Handles null at 4257 +54: LocalLoad(Ljava/lang/Object;,0) (567) + Handles null at 4257 +55: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (568) + Handles null at 4257 +56: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (571) + Handles null at 4257 +57: Constant(Ljava/lang/String;,"opt_semi") (574) + Handles null at 4257 +58: Constant(I,6) (576) + Handles null at 4257 +59: LocalLoad(Ljava/lang/Object;,3) (578) + Handles null at 4257 +60: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (579) + Handles null at 4257 +61: CheckCast(Ljava_cup/runtime/Symbol;) (582) + Handles null at 4257 +62: LocalLoad(Ljava/lang/Object;,3) (585) + Handles null at 4257 +63: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (586) + Handles null at 4257 +64: CheckCast(Ljava_cup/runtime/Symbol;) (589) + Handles null at 4257 +65: LocalLoad(Ljava/lang/Object;,6) (592) + Handles null at 4257 +66: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (594) + Handles null at 4257 +67: LocalStore(Ljava/lang/Object;,5) (599) + Handles null at 4257 +68: LocalLoad(Ljava/lang/Object;,5) (601) + Handles null at 4257 +69: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (603) + Handles null at 4257 +70: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (603) + Handles null at 4257 +71: LocalLoad(Ljava/lang/Object;,0) (603) + Handles null at 4257 +72: Constant(I,0) (603) + Handles null at 4257 +73: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (603) + Handles null at 4257 +74: Return(Ljava/lang/Object;) (603) + Handles null at 4257 +75: Constant(L;,null) (604) + Handles null at 4257 +76: LocalStore(Ljava/lang/Object;,6) (605) + Handles null at 4257 +77: LocalLoad(Ljava/lang/Object;,0) (607) + Handles null at 4257 +78: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (608) + Handles null at 4257 +79: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (611) + Handles null at 4257 +80: Constant(Ljava/lang/String;,"non_terminal") (614) + Handles null at 4257 +81: Constant(I,7) (616) + Handles null at 4257 +82: LocalLoad(Ljava/lang/Object;,3) (618) + Handles null at 4257 +83: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (619) + Handles null at 4257 +84: CheckCast(Ljava_cup/runtime/Symbol;) (622) + Handles null at 4257 +85: LocalLoad(Ljava/lang/Object;,3) (625) + Handles null at 4257 +86: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (626) + Handles null at 4257 +87: CheckCast(Ljava_cup/runtime/Symbol;) (629) + Handles null at 4257 +88: LocalLoad(Ljava/lang/Object;,6) (632) + Handles null at 4257 +89: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (634) + Handles null at 4257 +90: LocalStore(Ljava/lang/Object;,5) (639) + Handles null at 4257 +91: LocalLoad(Ljava/lang/Object;,5) (641) + Handles null at 4257 +92: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (643) + Handles null at 4257 +93: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (643) + Handles null at 4257 +94: LocalLoad(Ljava/lang/Object;,0) (643) + Handles null at 4257 +95: Constant(I,0) (643) + Handles null at 4257 +96: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (643) + Handles null at 4257 +97: Return(Ljava/lang/Object;) (643) + Handles null at 4257 +98: Constant(L;,null) (644) + Handles null at 4257 +99: LocalStore(Ljava/lang/Object;,6) (645) + Handles null at 4257 +100: LocalLoad(Ljava/lang/Object;,0) (647) + Handles null at 4257 +101: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (648) + Handles null at 4257 +102: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (651) + Handles null at 4257 +103: Constant(Ljava/lang/String;,"non_terminal") (654) + Handles null at 4257 +104: Constant(I,7) (656) + Handles null at 4257 +105: LocalLoad(Ljava/lang/Object;,3) (658) + Handles null at 4257 +106: LocalLoad(I,4) (659) + Handles null at 4257 +107: Constant(I,1) (661) + Handles null at 4257 +108: BinaryOp(I,sub) (662) + Handles null at 4257 +109: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (663) + Handles null at 4257 +110: CheckCast(Ljava_cup/runtime/Symbol;) (666) + Handles null at 4257 +111: LocalLoad(Ljava/lang/Object;,3) (669) + Handles null at 4257 +112: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (670) + Handles null at 4257 +113: CheckCast(Ljava_cup/runtime/Symbol;) (673) + Handles null at 4257 +114: LocalLoad(Ljava/lang/Object;,6) (676) + Handles null at 4257 +115: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (678) + Handles null at 4257 +116: LocalStore(Ljava/lang/Object;,5) (683) + Handles null at 4257 +117: LocalLoad(Ljava/lang/Object;,5) (685) + Handles null at 4257 +118: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (687) + Handles null at 4257 +119: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (687) + Handles null at 4257 +120: LocalLoad(Ljava/lang/Object;,0) (687) + Handles null at 4257 +121: Constant(I,0) (687) + Handles null at 4257 +122: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (687) + Handles null at 4257 +123: Return(Ljava/lang/Object;) (687) + Handles null at 4257 +124: Constant(L;,null) (688) + Handles null at 4257 +125: LocalStore(Ljava/lang/Object;,6) (689) + Handles null at 4257 +126: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (691) + Handles null at 4257 +127: Constant(Ljava/lang/String;,"Illegal use of reserved word") (694) + Handles null at 4257 +128: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (696) + Handles null at 4257 +129: Constant(Ljava/lang/String;,"ILLEGAL") (699) + Handles null at 4257 +130: LocalStore(Ljava/lang/Object;,6) (701) + Handles null at 4257 +131: LocalLoad(Ljava/lang/Object;,0) (703) + Handles null at 4257 +132: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (704) + Handles null at 4257 +133: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (707) + Handles null at 4257 +134: Constant(Ljava/lang/String;,"robust_id") (710) + Handles null at 4257 +135: Constant(I,42) (712) + Handles null at 4257 +136: LocalLoad(Ljava/lang/Object;,3) (714) + Handles null at 4257 +137: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (715) + Handles null at 4257 +138: CheckCast(Ljava_cup/runtime/Symbol;) (718) + Handles null at 4257 +139: LocalLoad(Ljava/lang/Object;,3) (721) + Handles null at 4257 +140: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (722) + Handles null at 4257 +141: CheckCast(Ljava_cup/runtime/Symbol;) (725) + Handles null at 4257 +142: LocalLoad(Ljava/lang/Object;,6) (728) + Handles null at 4257 +143: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (730) + Handles null at 4257 +144: LocalStore(Ljava/lang/Object;,5) (735) + Handles null at 4257 +145: LocalLoad(Ljava/lang/Object;,5) (737) + Handles null at 4257 +146: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (739) + Handles null at 4257 +147: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (739) + Handles null at 4257 +148: LocalLoad(Ljava/lang/Object;,0) (739) + Handles null at 4257 +149: Constant(I,0) (739) + Handles null at 4257 +150: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (739) + Handles null at 4257 +151: Return(Ljava/lang/Object;) (739) + Handles null at 4257 +152: Constant(L;,null) (740) + Handles null at 4257 +153: LocalStore(Ljava/lang/Object;,6) (741) + Handles null at 4257 +154: Constant(Ljava/lang/String;,"nonassoc") (743) + Handles null at 4257 +155: LocalStore(Ljava/lang/Object;,6) (745) + Handles null at 4257 +156: LocalLoad(Ljava/lang/Object;,0) (747) + Handles null at 4257 +157: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (748) + Handles null at 4257 +158: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (751) + Handles null at 4257 +159: Constant(Ljava/lang/String;,"robust_id") (754) + Handles null at 4257 +160: Constant(I,42) (756) + Handles null at 4257 +161: LocalLoad(Ljava/lang/Object;,3) (758) + Handles null at 4257 +162: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (759) + Handles null at 4257 +163: CheckCast(Ljava_cup/runtime/Symbol;) (762) + Handles null at 4257 +164: LocalLoad(Ljava/lang/Object;,3) (765) + Handles null at 4257 +165: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (766) + Handles null at 4257 +166: CheckCast(Ljava_cup/runtime/Symbol;) (769) + Handles null at 4257 +167: LocalLoad(Ljava/lang/Object;,6) (772) + Handles null at 4257 +168: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (774) + Handles null at 4257 +169: LocalStore(Ljava/lang/Object;,5) (779) + Handles null at 4257 +170: LocalLoad(Ljava/lang/Object;,5) (781) + Handles null at 4257 +171: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (783) + Handles null at 4257 +172: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (783) + Handles null at 4257 +173: LocalLoad(Ljava/lang/Object;,0) (783) + Handles null at 4257 +174: Constant(I,0) (783) + Handles null at 4257 +175: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (783) + Handles null at 4257 +176: Return(Ljava/lang/Object;) (783) + Handles null at 4257 +177: Constant(L;,null) (784) + Handles null at 4257 +178: LocalStore(Ljava/lang/Object;,6) (785) + Handles null at 4257 +179: Constant(Ljava/lang/String;,"right") (787) + Handles null at 4257 +180: LocalStore(Ljava/lang/Object;,6) (789) + Handles null at 4257 +181: LocalLoad(Ljava/lang/Object;,0) (791) + Handles null at 4257 +182: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (792) + Handles null at 4257 +183: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (795) + Handles null at 4257 +184: Constant(Ljava/lang/String;,"robust_id") (798) + Handles null at 4257 +185: Constant(I,42) (800) + Handles null at 4257 +186: LocalLoad(Ljava/lang/Object;,3) (802) + Handles null at 4257 +187: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (803) + Handles null at 4257 +188: CheckCast(Ljava_cup/runtime/Symbol;) (806) + Handles null at 4257 +189: LocalLoad(Ljava/lang/Object;,3) (809) + Handles null at 4257 +190: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (810) + Handles null at 4257 +191: CheckCast(Ljava_cup/runtime/Symbol;) (813) + Handles null at 4257 +192: LocalLoad(Ljava/lang/Object;,6) (816) + Handles null at 4257 +193: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (818) + Handles null at 4257 +194: LocalStore(Ljava/lang/Object;,5) (823) + Handles null at 4257 +195: LocalLoad(Ljava/lang/Object;,5) (825) + Handles null at 4257 +196: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (827) + Handles null at 4257 +197: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (827) + Handles null at 4257 +198: LocalLoad(Ljava/lang/Object;,0) (827) + Handles null at 4257 +199: Constant(I,0) (827) + Handles null at 4257 +200: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (827) + Handles null at 4257 +201: Return(Ljava/lang/Object;) (827) + Handles null at 4257 +202: Constant(L;,null) (828) + Handles null at 4257 +203: LocalStore(Ljava/lang/Object;,6) (829) + Handles null at 4257 +204: Constant(Ljava/lang/String;,"left") (831) + Handles null at 4257 +205: LocalStore(Ljava/lang/Object;,6) (833) + Handles null at 4257 +206: LocalLoad(Ljava/lang/Object;,0) (835) + Handles null at 4257 +207: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (836) + Handles null at 4257 +208: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (839) + Handles null at 4257 +209: Constant(Ljava/lang/String;,"robust_id") (842) + Handles null at 4257 +210: Constant(I,42) (844) + Handles null at 4257 +211: LocalLoad(Ljava/lang/Object;,3) (846) + Handles null at 4257 +212: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (847) + Handles null at 4257 +213: CheckCast(Ljava_cup/runtime/Symbol;) (850) + Handles null at 4257 +214: LocalLoad(Ljava/lang/Object;,3) (853) + Handles null at 4257 +215: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (854) + Handles null at 4257 +216: CheckCast(Ljava_cup/runtime/Symbol;) (857) + Handles null at 4257 +217: LocalLoad(Ljava/lang/Object;,6) (860) + Handles null at 4257 +218: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (862) + Handles null at 4257 +219: LocalStore(Ljava/lang/Object;,5) (867) + Handles null at 4257 +220: LocalLoad(Ljava/lang/Object;,5) (869) + Handles null at 4257 +221: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (871) + Handles null at 4257 +222: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (871) + Handles null at 4257 +223: LocalLoad(Ljava/lang/Object;,0) (871) + Handles null at 4257 +224: Constant(I,0) (871) + Handles null at 4257 +225: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (871) + Handles null at 4257 +226: Return(Ljava/lang/Object;) (871) + Handles null at 4257 +227: Constant(L;,null) (872) + Handles null at 4257 +228: LocalStore(Ljava/lang/Object;,6) (873) + Handles null at 4257 +229: Constant(Ljava/lang/String;,"precedence") (875) + Handles null at 4257 +230: LocalStore(Ljava/lang/Object;,6) (877) + Handles null at 4257 +231: LocalLoad(Ljava/lang/Object;,0) (879) + Handles null at 4257 +232: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (880) + Handles null at 4257 +233: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (883) + Handles null at 4257 +234: Constant(Ljava/lang/String;,"robust_id") (886) + Handles null at 4257 +235: Constant(I,42) (888) + Handles null at 4257 +236: LocalLoad(Ljava/lang/Object;,3) (890) + Handles null at 4257 +237: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (891) + Handles null at 4257 +238: CheckCast(Ljava_cup/runtime/Symbol;) (894) + Handles null at 4257 +239: LocalLoad(Ljava/lang/Object;,3) (897) + Handles null at 4257 +240: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (898) + Handles null at 4257 +241: CheckCast(Ljava_cup/runtime/Symbol;) (901) + Handles null at 4257 +242: LocalLoad(Ljava/lang/Object;,6) (904) + Handles null at 4257 +243: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (906) + Handles null at 4257 +244: LocalStore(Ljava/lang/Object;,5) (911) + Handles null at 4257 +245: LocalLoad(Ljava/lang/Object;,5) (913) + Handles null at 4257 +246: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (915) + Handles null at 4257 +247: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (915) + Handles null at 4257 +248: LocalLoad(Ljava/lang/Object;,0) (915) + Handles null at 4257 +249: Constant(I,0) (915) + Handles null at 4257 +250: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (915) + Handles null at 4257 +251: Return(Ljava/lang/Object;) (915) + Handles null at 4257 +252: Constant(L;,null) (916) + Handles null at 4257 +253: LocalStore(Ljava/lang/Object;,6) (917) + Handles null at 4257 +254: Constant(Ljava/lang/String;,"start") (919) + Handles null at 4257 +255: LocalStore(Ljava/lang/Object;,6) (921) + Handles null at 4257 +256: LocalLoad(Ljava/lang/Object;,0) (923) + Handles null at 4257 +257: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (924) + Handles null at 4257 +258: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (927) + Handles null at 4257 +259: Constant(Ljava/lang/String;,"robust_id") (930) + Handles null at 4257 +260: Constant(I,42) (932) + Handles null at 4257 +261: LocalLoad(Ljava/lang/Object;,3) (934) + Handles null at 4257 +262: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (935) + Handles null at 4257 +263: CheckCast(Ljava_cup/runtime/Symbol;) (938) + Handles null at 4257 +264: LocalLoad(Ljava/lang/Object;,3) (941) + Handles null at 4257 +265: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (942) + Handles null at 4257 +266: CheckCast(Ljava_cup/runtime/Symbol;) (945) + Handles null at 4257 +267: LocalLoad(Ljava/lang/Object;,6) (948) + Handles null at 4257 +268: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (950) + Handles null at 4257 +269: LocalStore(Ljava/lang/Object;,5) (955) + Handles null at 4257 +270: LocalLoad(Ljava/lang/Object;,5) (957) + Handles null at 4257 +271: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (959) + Handles null at 4257 +272: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (959) + Handles null at 4257 +273: LocalLoad(Ljava/lang/Object;,0) (959) + Handles null at 4257 +274: Constant(I,0) (959) + Handles null at 4257 +275: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (959) + Handles null at 4257 +276: Return(Ljava/lang/Object;) (959) + Handles null at 4257 +277: Constant(L;,null) (960) + Handles null at 4257 +278: LocalStore(Ljava/lang/Object;,6) (961) + Handles null at 4257 +279: Constant(Ljava/lang/String;,"with") (963) + Handles null at 4257 +280: LocalStore(Ljava/lang/Object;,6) (965) + Handles null at 4257 +281: LocalLoad(Ljava/lang/Object;,0) (967) + Handles null at 4257 +282: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (968) + Handles null at 4257 +283: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (971) + Handles null at 4257 +284: Constant(Ljava/lang/String;,"robust_id") (974) + Handles null at 4257 +285: Constant(I,42) (976) + Handles null at 4257 +286: LocalLoad(Ljava/lang/Object;,3) (978) + Handles null at 4257 +287: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (979) + Handles null at 4257 +288: CheckCast(Ljava_cup/runtime/Symbol;) (982) + Handles null at 4257 +289: LocalLoad(Ljava/lang/Object;,3) (985) + Handles null at 4257 +290: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (986) + Handles null at 4257 +291: CheckCast(Ljava_cup/runtime/Symbol;) (989) + Handles null at 4257 +292: LocalLoad(Ljava/lang/Object;,6) (992) + Handles null at 4257 +293: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (994) + Handles null at 4257 +294: LocalStore(Ljava/lang/Object;,5) (999) + Handles null at 4257 +295: LocalLoad(Ljava/lang/Object;,5) (1001) + Handles null at 4257 +296: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1003) + Handles null at 4257 +297: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1003) + Handles null at 4257 +298: LocalLoad(Ljava/lang/Object;,0) (1003) + Handles null at 4257 +299: Constant(I,0) (1003) + Handles null at 4257 +300: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1003) + Handles null at 4257 +301: Return(Ljava/lang/Object;) (1003) + Handles null at 4257 +302: Constant(L;,null) (1004) + Handles null at 4257 +303: LocalStore(Ljava/lang/Object;,6) (1005) + Handles null at 4257 +304: Constant(Ljava/lang/String;,"scan") (1007) + Handles null at 4257 +305: LocalStore(Ljava/lang/Object;,6) (1009) + Handles null at 4257 +306: LocalLoad(Ljava/lang/Object;,0) (1011) + Handles null at 4257 +307: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1012) + Handles null at 4257 +308: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1015) + Handles null at 4257 +309: Constant(Ljava/lang/String;,"robust_id") (1018) + Handles null at 4257 +310: Constant(I,42) (1020) + Handles null at 4257 +311: LocalLoad(Ljava/lang/Object;,3) (1022) + Handles null at 4257 +312: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1023) + Handles null at 4257 +313: CheckCast(Ljava_cup/runtime/Symbol;) (1026) + Handles null at 4257 +314: LocalLoad(Ljava/lang/Object;,3) (1029) + Handles null at 4257 +315: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1030) + Handles null at 4257 +316: CheckCast(Ljava_cup/runtime/Symbol;) (1033) + Handles null at 4257 +317: LocalLoad(Ljava/lang/Object;,6) (1036) + Handles null at 4257 +318: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1038) + Handles null at 4257 +319: LocalStore(Ljava/lang/Object;,5) (1043) + Handles null at 4257 +320: LocalLoad(Ljava/lang/Object;,5) (1045) + Handles null at 4257 +321: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1047) + Handles null at 4257 +322: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1047) + Handles null at 4257 +323: LocalLoad(Ljava/lang/Object;,0) (1047) + Handles null at 4257 +324: Constant(I,0) (1047) + Handles null at 4257 +325: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1047) + Handles null at 4257 +326: Return(Ljava/lang/Object;) (1047) + Handles null at 4257 +327: Constant(L;,null) (1048) + Handles null at 4257 +328: LocalStore(Ljava/lang/Object;,6) (1049) + Handles null at 4257 +329: Constant(Ljava/lang/String;,"init") (1051) + Handles null at 4257 +330: LocalStore(Ljava/lang/Object;,6) (1053) + Handles null at 4257 +331: LocalLoad(Ljava/lang/Object;,0) (1055) + Handles null at 4257 +332: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1056) + Handles null at 4257 +333: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1059) + Handles null at 4257 +334: Constant(Ljava/lang/String;,"robust_id") (1062) + Handles null at 4257 +335: Constant(I,42) (1064) + Handles null at 4257 +336: LocalLoad(Ljava/lang/Object;,3) (1066) + Handles null at 4257 +337: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1067) + Handles null at 4257 +338: CheckCast(Ljava_cup/runtime/Symbol;) (1070) + Handles null at 4257 +339: LocalLoad(Ljava/lang/Object;,3) (1073) + Handles null at 4257 +340: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1074) + Handles null at 4257 +341: CheckCast(Ljava_cup/runtime/Symbol;) (1077) + Handles null at 4257 +342: LocalLoad(Ljava/lang/Object;,6) (1080) + Handles null at 4257 +343: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1082) + Handles null at 4257 +344: LocalStore(Ljava/lang/Object;,5) (1087) + Handles null at 4257 +345: LocalLoad(Ljava/lang/Object;,5) (1089) + Handles null at 4257 +346: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1091) + Handles null at 4257 +347: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1091) + Handles null at 4257 +348: LocalLoad(Ljava/lang/Object;,0) (1091) + Handles null at 4257 +349: Constant(I,0) (1091) + Handles null at 4257 +350: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1091) + Handles null at 4257 +351: Return(Ljava/lang/Object;) (1091) + Handles null at 4257 +352: Constant(L;,null) (1092) + Handles null at 4257 +353: LocalStore(Ljava/lang/Object;,6) (1093) + Handles null at 4257 +354: Constant(Ljava/lang/String;,"nonterminal") (1095) + Handles null at 4257 +355: LocalStore(Ljava/lang/Object;,6) (1097) + Handles null at 4257 +356: LocalLoad(Ljava/lang/Object;,0) (1099) + Handles null at 4257 +357: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1100) + Handles null at 4257 +358: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1103) + Handles null at 4257 +359: Constant(Ljava/lang/String;,"robust_id") (1106) + Handles null at 4257 +360: Constant(I,42) (1108) + Handles null at 4257 +361: LocalLoad(Ljava/lang/Object;,3) (1110) + Handles null at 4257 +362: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1111) + Handles null at 4257 +363: CheckCast(Ljava_cup/runtime/Symbol;) (1114) + Handles null at 4257 +364: LocalLoad(Ljava/lang/Object;,3) (1117) + Handles null at 4257 +365: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1118) + Handles null at 4257 +366: CheckCast(Ljava_cup/runtime/Symbol;) (1121) + Handles null at 4257 +367: LocalLoad(Ljava/lang/Object;,6) (1124) + Handles null at 4257 +368: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1126) + Handles null at 4257 +369: LocalStore(Ljava/lang/Object;,5) (1131) + Handles null at 4257 +370: LocalLoad(Ljava/lang/Object;,5) (1133) + Handles null at 4257 +371: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1135) + Handles null at 4257 +372: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1135) + Handles null at 4257 +373: LocalLoad(Ljava/lang/Object;,0) (1135) + Handles null at 4257 +374: Constant(I,0) (1135) + Handles null at 4257 +375: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1135) + Handles null at 4257 +376: Return(Ljava/lang/Object;) (1135) + Handles null at 4257 +377: Constant(L;,null) (1136) + Handles null at 4257 +378: LocalStore(Ljava/lang/Object;,6) (1137) + Handles null at 4257 +379: Constant(Ljava/lang/String;,"non") (1139) + Handles null at 4257 +380: LocalStore(Ljava/lang/Object;,6) (1141) + Handles null at 4257 +381: LocalLoad(Ljava/lang/Object;,0) (1143) + Handles null at 4257 +382: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1144) + Handles null at 4257 +383: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1147) + Handles null at 4257 +384: Constant(Ljava/lang/String;,"robust_id") (1150) + Handles null at 4257 +385: Constant(I,42) (1152) + Handles null at 4257 +386: LocalLoad(Ljava/lang/Object;,3) (1154) + Handles null at 4257 +387: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1155) + Handles null at 4257 +388: CheckCast(Ljava_cup/runtime/Symbol;) (1158) + Handles null at 4257 +389: LocalLoad(Ljava/lang/Object;,3) (1161) + Handles null at 4257 +390: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1162) + Handles null at 4257 +391: CheckCast(Ljava_cup/runtime/Symbol;) (1165) + Handles null at 4257 +392: LocalLoad(Ljava/lang/Object;,6) (1168) + Handles null at 4257 +393: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1170) + Handles null at 4257 +394: LocalStore(Ljava/lang/Object;,5) (1175) + Handles null at 4257 +395: LocalLoad(Ljava/lang/Object;,5) (1177) + Handles null at 4257 +396: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1179) + Handles null at 4257 +397: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1179) + Handles null at 4257 +398: LocalLoad(Ljava/lang/Object;,0) (1179) + Handles null at 4257 +399: Constant(I,0) (1179) + Handles null at 4257 +400: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1179) + Handles null at 4257 +401: Return(Ljava/lang/Object;) (1179) + Handles null at 4257 +402: Constant(L;,null) (1180) + Handles null at 4257 +403: LocalStore(Ljava/lang/Object;,6) (1181) + Handles null at 4257 +404: Constant(Ljava/lang/String;,"terminal") (1183) + Handles null at 4257 +405: LocalStore(Ljava/lang/Object;,6) (1185) + Handles null at 4257 +406: LocalLoad(Ljava/lang/Object;,0) (1187) + Handles null at 4257 +407: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1188) + Handles null at 4257 +408: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1191) + Handles null at 4257 +409: Constant(Ljava/lang/String;,"robust_id") (1194) + Handles null at 4257 +410: Constant(I,42) (1196) + Handles null at 4257 +411: LocalLoad(Ljava/lang/Object;,3) (1198) + Handles null at 4257 +412: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1199) + Handles null at 4257 +413: CheckCast(Ljava_cup/runtime/Symbol;) (1202) + Handles null at 4257 +414: LocalLoad(Ljava/lang/Object;,3) (1205) + Handles null at 4257 +415: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1206) + Handles null at 4257 +416: CheckCast(Ljava_cup/runtime/Symbol;) (1209) + Handles null at 4257 +417: LocalLoad(Ljava/lang/Object;,6) (1212) + Handles null at 4257 +418: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1214) + Handles null at 4257 +419: LocalStore(Ljava/lang/Object;,5) (1219) + Handles null at 4257 +420: LocalLoad(Ljava/lang/Object;,5) (1221) + Handles null at 4257 +421: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1223) + Handles null at 4257 +422: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1223) + Handles null at 4257 +423: LocalLoad(Ljava/lang/Object;,0) (1223) + Handles null at 4257 +424: Constant(I,0) (1223) + Handles null at 4257 +425: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1223) + Handles null at 4257 +426: Return(Ljava/lang/Object;) (1223) + Handles null at 4257 +427: Constant(L;,null) (1224) + Handles null at 4257 +428: LocalStore(Ljava/lang/Object;,6) (1225) + Handles null at 4257 +429: Constant(Ljava/lang/String;,"parser") (1227) + Handles null at 4257 +430: LocalStore(Ljava/lang/Object;,6) (1229) + Handles null at 4257 +431: LocalLoad(Ljava/lang/Object;,0) (1231) + Handles null at 4257 +432: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1232) + Handles null at 4257 +433: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1235) + Handles null at 4257 +434: Constant(Ljava/lang/String;,"robust_id") (1238) + Handles null at 4257 +435: Constant(I,42) (1240) + Handles null at 4257 +436: LocalLoad(Ljava/lang/Object;,3) (1242) + Handles null at 4257 +437: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1243) + Handles null at 4257 +438: CheckCast(Ljava_cup/runtime/Symbol;) (1246) + Handles null at 4257 +439: LocalLoad(Ljava/lang/Object;,3) (1249) + Handles null at 4257 +440: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1250) + Handles null at 4257 +441: CheckCast(Ljava_cup/runtime/Symbol;) (1253) + Handles null at 4257 +442: LocalLoad(Ljava/lang/Object;,6) (1256) + Handles null at 4257 +443: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1258) + Handles null at 4257 +444: LocalStore(Ljava/lang/Object;,5) (1263) + Handles null at 4257 +445: LocalLoad(Ljava/lang/Object;,5) (1265) + Handles null at 4257 +446: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1267) + Handles null at 4257 +447: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1267) + Handles null at 4257 +448: LocalLoad(Ljava/lang/Object;,0) (1267) + Handles null at 4257 +449: Constant(I,0) (1267) + Handles null at 4257 +450: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1267) + Handles null at 4257 +451: Return(Ljava/lang/Object;) (1267) + Handles null at 4257 +452: Constant(L;,null) (1268) + Handles null at 4257 +453: LocalStore(Ljava/lang/Object;,6) (1269) + Handles null at 4257 +454: Constant(Ljava/lang/String;,"action") (1271) + Handles null at 4257 +455: LocalStore(Ljava/lang/Object;,6) (1273) + Handles null at 4257 +456: LocalLoad(Ljava/lang/Object;,0) (1275) + Handles null at 4257 +457: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1276) + Handles null at 4257 +458: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1279) + Handles null at 4257 +459: Constant(Ljava/lang/String;,"robust_id") (1282) + Handles null at 4257 +460: Constant(I,42) (1284) + Handles null at 4257 +461: LocalLoad(Ljava/lang/Object;,3) (1286) + Handles null at 4257 +462: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1287) + Handles null at 4257 +463: CheckCast(Ljava_cup/runtime/Symbol;) (1290) + Handles null at 4257 +464: LocalLoad(Ljava/lang/Object;,3) (1293) + Handles null at 4257 +465: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1294) + Handles null at 4257 +466: CheckCast(Ljava_cup/runtime/Symbol;) (1297) + Handles null at 4257 +467: LocalLoad(Ljava/lang/Object;,6) (1300) + Handles null at 4257 +468: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1302) + Handles null at 4257 +469: LocalStore(Ljava/lang/Object;,5) (1307) + Handles null at 4257 +470: LocalLoad(Ljava/lang/Object;,5) (1309) + Handles null at 4257 +471: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1311) + Handles null at 4257 +472: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1311) + Handles null at 4257 +473: LocalLoad(Ljava/lang/Object;,0) (1311) + Handles null at 4257 +474: Constant(I,0) (1311) + Handles null at 4257 +475: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1311) + Handles null at 4257 +476: Return(Ljava/lang/Object;) (1311) + Handles null at 4257 +477: Constant(L;,null) (1312) + Handles null at 4257 +478: LocalStore(Ljava/lang/Object;,6) (1313) + Handles null at 4257 +479: Constant(Ljava/lang/String;,"code") (1315) + Handles null at 4257 +480: LocalStore(Ljava/lang/Object;,6) (1317) + Handles null at 4257 +481: LocalLoad(Ljava/lang/Object;,0) (1319) + Handles null at 4257 +482: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1320) + Handles null at 4257 +483: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1323) + Handles null at 4257 +484: Constant(Ljava/lang/String;,"robust_id") (1326) + Handles null at 4257 +485: Constant(I,42) (1328) + Handles null at 4257 +486: LocalLoad(Ljava/lang/Object;,3) (1330) + Handles null at 4257 +487: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1331) + Handles null at 4257 +488: CheckCast(Ljava_cup/runtime/Symbol;) (1334) + Handles null at 4257 +489: LocalLoad(Ljava/lang/Object;,3) (1337) + Handles null at 4257 +490: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1338) + Handles null at 4257 +491: CheckCast(Ljava_cup/runtime/Symbol;) (1341) + Handles null at 4257 +492: LocalLoad(Ljava/lang/Object;,6) (1344) + Handles null at 4257 +493: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1346) + Handles null at 4257 +494: LocalStore(Ljava/lang/Object;,5) (1351) + Handles null at 4257 +495: LocalLoad(Ljava/lang/Object;,5) (1353) + Handles null at 4257 +496: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1355) + Handles null at 4257 +497: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1355) + Handles null at 4257 +498: LocalLoad(Ljava/lang/Object;,0) (1355) + Handles null at 4257 +499: Constant(I,0) (1355) + Handles null at 4257 +500: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1355) + Handles null at 4257 +501: Return(Ljava/lang/Object;) (1355) + Handles null at 4257 +502: Constant(L;,null) (1356) + Handles null at 4257 +503: LocalStore(Ljava/lang/Object;,6) (1357) + Handles null at 4257 +504: LocalLoad(Ljava/lang/Object;,3) (1359) + Handles null at 4257 +505: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1360) + Handles null at 4257 +506: CheckCast(Ljava_cup/runtime/Symbol;) (1363) + Handles null at 4257 +507: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1366) + Handles null at 4257 +508: LocalStore(I,7) (1369) + Handles null at 4257 +509: LocalLoad(Ljava/lang/Object;,3) (1371) + Handles null at 4257 +510: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1372) + Handles null at 4257 +511: CheckCast(Ljava_cup/runtime/Symbol;) (1375) + Handles null at 4257 +512: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1378) + Handles null at 4257 +513: LocalStore(I,8) (1381) + Handles null at 4257 +514: LocalLoad(Ljava/lang/Object;,3) (1383) + Handles null at 4257 +515: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1384) + Handles null at 4257 +516: CheckCast(Ljava_cup/runtime/Symbol;) (1387) + Handles null at 4257 +517: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1390) + Handles null at 4257 +518: CheckCast(Ljava/lang/String;) (1393) + Handles null at 4257 +519: LocalStore(Ljava/lang/Object;,9) (1396) + Handles null at 4257 +520: LocalLoad(Ljava/lang/Object;,9) (1398) + Handles null at 4257 +521: LocalStore(Ljava/lang/Object;,6) (1400) + Handles null at 4257 +522: LocalLoad(Ljava/lang/Object;,0) (1402) + Handles null at 4257 +523: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1403) + Handles null at 4257 +524: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1406) + Handles null at 4257 +525: Constant(Ljava/lang/String;,"robust_id") (1409) + Handles null at 4257 +526: Constant(I,42) (1411) + Handles null at 4257 +527: LocalLoad(Ljava/lang/Object;,3) (1413) + Handles null at 4257 +528: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1414) + Handles null at 4257 +529: CheckCast(Ljava_cup/runtime/Symbol;) (1417) + Handles null at 4257 +530: LocalLoad(Ljava/lang/Object;,3) (1420) + Handles null at 4257 +531: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1421) + Handles null at 4257 +532: CheckCast(Ljava_cup/runtime/Symbol;) (1424) + Handles null at 4257 +533: LocalLoad(Ljava/lang/Object;,6) (1427) + Handles null at 4257 +534: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1429) + Handles null at 4257 +535: LocalStore(Ljava/lang/Object;,5) (1434) + Handles null at 4257 +536: LocalLoad(Ljava/lang/Object;,5) (1436) + Handles null at 4257 +537: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1438) + Handles null at 4257 +538: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1438) + Handles null at 4257 +539: LocalLoad(Ljava/lang/Object;,0) (1438) + Handles null at 4257 +540: Constant(I,0) (1438) + Handles null at 4257 +541: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1438) + Handles null at 4257 +542: Return(Ljava/lang/Object;) (1438) + Handles null at 4257 +543: Constant(L;,null) (1439) + Handles null at 4257 +544: LocalStore(Ljava/lang/Object;,6) (1440) + Handles null at 4257 +545: LocalLoad(Ljava/lang/Object;,3) (1442) + Handles null at 4257 +546: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1443) + Handles null at 4257 +547: CheckCast(Ljava_cup/runtime/Symbol;) (1446) + Handles null at 4257 +548: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1449) + Handles null at 4257 +549: LocalStore(I,7) (1452) + Handles null at 4257 +550: LocalLoad(Ljava/lang/Object;,3) (1454) + Handles null at 4257 +551: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1455) + Handles null at 4257 +552: CheckCast(Ljava_cup/runtime/Symbol;) (1458) + Handles null at 4257 +553: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1461) + Handles null at 4257 +554: LocalStore(I,8) (1464) + Handles null at 4257 +555: LocalLoad(Ljava/lang/Object;,3) (1466) + Handles null at 4257 +556: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1467) + Handles null at 4257 +557: CheckCast(Ljava_cup/runtime/Symbol;) (1470) + Handles null at 4257 +558: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1473) + Handles null at 4257 +559: CheckCast(Ljava/lang/String;) (1476) + Handles null at 4257 +560: LocalStore(Ljava/lang/Object;,9) (1479) + Handles null at 4257 +561: LocalLoad(Ljava/lang/Object;,9) (1481) + Handles null at 4257 +562: LocalStore(Ljava/lang/Object;,6) (1483) + Handles null at 4257 +563: LocalLoad(Ljava/lang/Object;,0) (1485) + Handles null at 4257 +564: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1486) + Handles null at 4257 +565: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1489) + Handles null at 4257 +566: Constant(Ljava/lang/String;,"label_id") (1492) + Handles null at 4257 +567: Constant(I,38) (1494) + Handles null at 4257 +568: LocalLoad(Ljava/lang/Object;,3) (1496) + Handles null at 4257 +569: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1497) + Handles null at 4257 +570: CheckCast(Ljava_cup/runtime/Symbol;) (1500) + Handles null at 4257 +571: LocalLoad(Ljava/lang/Object;,3) (1503) + Handles null at 4257 +572: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1504) + Handles null at 4257 +573: CheckCast(Ljava_cup/runtime/Symbol;) (1507) + Handles null at 4257 +574: LocalLoad(Ljava/lang/Object;,6) (1510) + Handles null at 4257 +575: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1512) + Handles null at 4257 +576: LocalStore(Ljava/lang/Object;,5) (1517) + Handles null at 4257 +577: LocalLoad(Ljava/lang/Object;,5) (1519) + Handles null at 4257 +578: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1521) + Handles null at 4257 +579: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1521) + Handles null at 4257 +580: LocalLoad(Ljava/lang/Object;,0) (1521) + Handles null at 4257 +581: Constant(I,0) (1521) + Handles null at 4257 +582: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1521) + Handles null at 4257 +583: Return(Ljava/lang/Object;) (1521) + Handles null at 4257 +584: Constant(L;,null) (1522) + Handles null at 4257 +585: LocalStore(Ljava/lang/Object;,6) (1523) + Handles null at 4257 +586: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (1525) + Handles null at 4257 +587: Constant(Ljava/lang/String;,"Illegal use of reserved word") (1528) + Handles null at 4257 +588: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (1530) + Handles null at 4257 +589: Constant(Ljava/lang/String;,"ILLEGAL") (1533) + Handles null at 4257 +590: LocalStore(Ljava/lang/Object;,6) (1535) + Handles null at 4257 +591: LocalLoad(Ljava/lang/Object;,0) (1537) + Handles null at 4257 +592: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1538) + Handles null at 4257 +593: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1541) + Handles null at 4257 +594: Constant(Ljava/lang/String;,"symbol_id") (1544) + Handles null at 4257 +595: Constant(I,37) (1546) + Handles null at 4257 +596: LocalLoad(Ljava/lang/Object;,3) (1548) + Handles null at 4257 +597: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1549) + Handles null at 4257 +598: CheckCast(Ljava_cup/runtime/Symbol;) (1552) + Handles null at 4257 +599: LocalLoad(Ljava/lang/Object;,3) (1555) + Handles null at 4257 +600: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1556) + Handles null at 4257 +601: CheckCast(Ljava_cup/runtime/Symbol;) (1559) + Handles null at 4257 +602: LocalLoad(Ljava/lang/Object;,6) (1562) + Handles null at 4257 +603: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1564) + Handles null at 4257 +604: LocalStore(Ljava/lang/Object;,5) (1569) + Handles null at 4257 +605: LocalLoad(Ljava/lang/Object;,5) (1571) + Handles null at 4257 +606: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1573) + Handles null at 4257 +607: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1573) + Handles null at 4257 +608: LocalLoad(Ljava/lang/Object;,0) (1573) + Handles null at 4257 +609: Constant(I,0) (1573) + Handles null at 4257 +610: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1573) + Handles null at 4257 +611: Return(Ljava/lang/Object;) (1573) + Handles null at 4257 +612: Constant(L;,null) (1574) + Handles null at 4257 +613: LocalStore(Ljava/lang/Object;,6) (1575) + Handles null at 4257 +614: LocalLoad(Ljava/lang/Object;,3) (1577) + Handles null at 4257 +615: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1578) + Handles null at 4257 +616: CheckCast(Ljava_cup/runtime/Symbol;) (1581) + Handles null at 4257 +617: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1584) + Handles null at 4257 +618: LocalStore(I,7) (1587) + Handles null at 4257 +619: LocalLoad(Ljava/lang/Object;,3) (1589) + Handles null at 4257 +620: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1590) + Handles null at 4257 +621: CheckCast(Ljava_cup/runtime/Symbol;) (1593) + Handles null at 4257 +622: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1596) + Handles null at 4257 +623: LocalStore(I,8) (1599) + Handles null at 4257 +624: LocalLoad(Ljava/lang/Object;,3) (1601) + Handles null at 4257 +625: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1602) + Handles null at 4257 +626: CheckCast(Ljava_cup/runtime/Symbol;) (1605) + Handles null at 4257 +627: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1608) + Handles null at 4257 +628: CheckCast(Ljava/lang/String;) (1611) + Handles null at 4257 +629: LocalStore(Ljava/lang/Object;,9) (1614) + Handles null at 4257 +630: LocalLoad(Ljava/lang/Object;,9) (1616) + Handles null at 4257 +631: LocalStore(Ljava/lang/Object;,6) (1618) + Handles null at 4257 +632: LocalLoad(Ljava/lang/Object;,0) (1620) + Handles null at 4257 +633: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1621) + Handles null at 4257 +634: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1624) + Handles null at 4257 +635: Constant(Ljava/lang/String;,"symbol_id") (1627) + Handles null at 4257 +636: Constant(I,37) (1629) + Handles null at 4257 +637: LocalLoad(Ljava/lang/Object;,3) (1631) + Handles null at 4257 +638: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1632) + Handles null at 4257 +639: CheckCast(Ljava_cup/runtime/Symbol;) (1635) + Handles null at 4257 +640: LocalLoad(Ljava/lang/Object;,3) (1638) + Handles null at 4257 +641: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1639) + Handles null at 4257 +642: CheckCast(Ljava_cup/runtime/Symbol;) (1642) + Handles null at 4257 +643: LocalLoad(Ljava/lang/Object;,6) (1645) + Handles null at 4257 +644: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1647) + Handles null at 4257 +645: LocalStore(Ljava/lang/Object;,5) (1652) + Handles null at 4257 +646: LocalLoad(Ljava/lang/Object;,5) (1654) + Handles null at 4257 +647: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1656) + Handles null at 4257 +648: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1656) + Handles null at 4257 +649: LocalLoad(Ljava/lang/Object;,0) (1656) + Handles null at 4257 +650: Constant(I,0) (1656) + Handles null at 4257 +651: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1656) + Handles null at 4257 +652: Return(Ljava/lang/Object;) (1656) + Handles null at 4257 +653: Constant(L;,null) (1657) + Handles null at 4257 +654: LocalStore(Ljava/lang/Object;,6) (1658) + Handles null at 4257 +655: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (1660) + Handles null at 4257 +656: Constant(Ljava/lang/String;,"Illegal use of reserved word") (1663) + Handles null at 4257 +657: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (1665) + Handles null at 4257 +658: Constant(Ljava/lang/String;,"ILLEGAL") (1668) + Handles null at 4257 +659: LocalStore(Ljava/lang/Object;,6) (1670) + Handles null at 4257 +660: LocalLoad(Ljava/lang/Object;,0) (1672) + Handles null at 4257 +661: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1673) + Handles null at 4257 +662: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1676) + Handles null at 4257 +663: Constant(Ljava/lang/String;,"nt_id") (1679) + Handles null at 4257 +664: Constant(I,36) (1681) + Handles null at 4257 +665: LocalLoad(Ljava/lang/Object;,3) (1683) + Handles null at 4257 +666: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1684) + Handles null at 4257 +667: CheckCast(Ljava_cup/runtime/Symbol;) (1687) + Handles null at 4257 +668: LocalLoad(Ljava/lang/Object;,3) (1690) + Handles null at 4257 +669: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1691) + Handles null at 4257 +670: CheckCast(Ljava_cup/runtime/Symbol;) (1694) + Handles null at 4257 +671: LocalLoad(Ljava/lang/Object;,6) (1697) + Handles null at 4257 +672: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1699) + Handles null at 4257 +673: LocalStore(Ljava/lang/Object;,5) (1704) + Handles null at 4257 +674: LocalLoad(Ljava/lang/Object;,5) (1706) + Handles null at 4257 +675: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1708) + Handles null at 4257 +676: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1708) + Handles null at 4257 +677: LocalLoad(Ljava/lang/Object;,0) (1708) + Handles null at 4257 +678: Constant(I,0) (1708) + Handles null at 4257 +679: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1708) + Handles null at 4257 +680: Return(Ljava/lang/Object;) (1708) + Handles null at 4257 +681: Constant(L;,null) (1709) + Handles null at 4257 +682: LocalStore(Ljava/lang/Object;,6) (1710) + Handles null at 4257 +683: LocalLoad(Ljava/lang/Object;,3) (1712) + Handles null at 4257 +684: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1713) + Handles null at 4257 +685: CheckCast(Ljava_cup/runtime/Symbol;) (1716) + Handles null at 4257 +686: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1719) + Handles null at 4257 +687: LocalStore(I,7) (1722) + Handles null at 4257 +688: LocalLoad(Ljava/lang/Object;,3) (1724) + Handles null at 4257 +689: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1725) + Handles null at 4257 +690: CheckCast(Ljava_cup/runtime/Symbol;) (1728) + Handles null at 4257 +691: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1731) + Handles null at 4257 +692: LocalStore(I,8) (1734) + Handles null at 4257 +693: LocalLoad(Ljava/lang/Object;,3) (1736) + Handles null at 4257 +694: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1737) + Handles null at 4257 +695: CheckCast(Ljava_cup/runtime/Symbol;) (1740) + Handles null at 4257 +696: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1743) + Handles null at 4257 +697: CheckCast(Ljava/lang/String;) (1746) + Handles null at 4257 +698: LocalStore(Ljava/lang/Object;,9) (1749) + Handles null at 4257 +699: LocalLoad(Ljava/lang/Object;,9) (1751) + Handles null at 4257 +700: LocalStore(Ljava/lang/Object;,6) (1753) + Handles null at 4257 +701: LocalLoad(Ljava/lang/Object;,0) (1755) + Handles null at 4257 +702: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1756) + Handles null at 4257 +703: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1759) + Handles null at 4257 +704: Constant(Ljava/lang/String;,"nt_id") (1762) + Handles null at 4257 +705: Constant(I,36) (1764) + Handles null at 4257 +706: LocalLoad(Ljava/lang/Object;,3) (1766) + Handles null at 4257 +707: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1767) + Handles null at 4257 +708: CheckCast(Ljava_cup/runtime/Symbol;) (1770) + Handles null at 4257 +709: LocalLoad(Ljava/lang/Object;,3) (1773) + Handles null at 4257 +710: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1774) + Handles null at 4257 +711: CheckCast(Ljava_cup/runtime/Symbol;) (1777) + Handles null at 4257 +712: LocalLoad(Ljava/lang/Object;,6) (1780) + Handles null at 4257 +713: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1782) + Handles null at 4257 +714: LocalStore(Ljava/lang/Object;,5) (1787) + Handles null at 4257 +715: LocalLoad(Ljava/lang/Object;,5) (1789) + Handles null at 4257 +716: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1791) + Handles null at 4257 +717: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1791) + Handles null at 4257 +718: LocalLoad(Ljava/lang/Object;,0) (1791) + Handles null at 4257 +719: Constant(I,0) (1791) + Handles null at 4257 +720: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1791) + Handles null at 4257 +721: Return(Ljava/lang/Object;) (1791) + Handles null at 4257 +722: Constant(L;,null) (1792) + Handles null at 4257 +723: LocalStore(Ljava/lang/Object;,6) (1793) + Handles null at 4257 +724: LocalLoad(Ljava/lang/Object;,3) (1795) + Handles null at 4257 +725: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1796) + Handles null at 4257 +726: CheckCast(Ljava_cup/runtime/Symbol;) (1799) + Handles null at 4257 +727: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1802) + Handles null at 4257 +728: LocalStore(I,7) (1805) + Handles null at 4257 +729: LocalLoad(Ljava/lang/Object;,3) (1807) + Handles null at 4257 +730: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1808) + Handles null at 4257 +731: CheckCast(Ljava_cup/runtime/Symbol;) (1811) + Handles null at 4257 +732: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (1814) + Handles null at 4257 +733: LocalStore(I,8) (1817) + Handles null at 4257 +734: LocalLoad(Ljava/lang/Object;,3) (1819) + Handles null at 4257 +735: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1820) + Handles null at 4257 +736: CheckCast(Ljava_cup/runtime/Symbol;) (1823) + Handles null at 4257 +737: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1826) + Handles null at 4257 +738: CheckCast(Ljava/lang/String;) (1829) + Handles null at 4257 +739: LocalStore(Ljava/lang/Object;,9) (1832) + Handles null at 4257 +740: LocalLoad(Ljava/lang/Object;,0) (1834) + Handles null at 4257 +741: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (1835) + Handles null at 4257 +742: LocalLoad(Ljava/lang/Object;,9) (1838) + Handles null at 4257 +743: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (1840) + Handles null at 4257 +744: Constant(L;,null) (1843) + Handles null at 4257 +745: ConditionalBranch(Ljava/lang/Object;,eq,759) (1843) + Handles null at 4257 +746: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (1846) + Handles null at 4257 +747: New(Ljava/lang/StringBuilder;,0) (1849) + Handles null at 4257 +748: Dup(1,0) (1852) + Handles null at 4257 +749: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1853) + Handles null at 4257 +750: Constant(Ljava/lang/String;,"java_cup.runtime.Symbol \"") (1856) + Handles null at 4257 +751: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1858) + Handles null at 4257 +752: LocalLoad(Ljava/lang/Object;,9) (1861) + Handles null at 4257 +753: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1863) + Handles null at 4257 +754: Constant(Ljava/lang/String;,"\" has already been declared") (1866) + Handles null at 4257 +755: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1868) + Handles null at 4257 +756: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1871) + Handles null at 4257 +757: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (1874) + Handles null at 4257 +758: Goto(790) (1877) + Handles null at 4257 +759: LocalLoad(Ljava/lang/Object;,0) (1880) + Handles null at 4257 +760: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (1881) + Handles null at 4257 +761: Constant(Ljava/lang/String;,"") (1884) + Handles null at 4257 +762: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (1886) + Handles null at 4257 +763: Constant(I,0) (1889) + Handles null at 4257 +764: ConditionalBranch(I,eq,768) (1889) + Handles null at 4257 +765: LocalLoad(Ljava/lang/Object;,0) (1892) + Handles null at 4257 +766: Constant(Ljava/lang/String;,"Object") (1893) + Handles null at 4257 +767: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (1895) + Handles null at 4257 +768: New(Ljava_cup/non_terminal;,0) (1898) + Handles null at 4257 +769: Dup(1,0) (1901) + Handles null at 4257 +770: LocalLoad(Ljava/lang/Object;,9) (1902) + Handles null at 4257 +771: LocalLoad(Ljava/lang/Object;,0) (1904) + Handles null at 4257 +772: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (1905) + Handles null at 4257 +773: Invoke(SPECIAL,Ljava_cup/non_terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (1908) + Handles null at 4257 +774: LocalStore(Ljava/lang/Object;,10) (1911) + Handles null at 4257 +775: LocalLoad(Ljava/lang/Object;,0) (1913) + Handles null at 4257 +776: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (1914) + Handles null at 4257 +777: LocalLoad(Ljava/lang/Object;,9) (1917) + Handles null at 4257 +778: LocalLoad(Ljava/lang/Object;,10) (1919) + Handles null at 4257 +779: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (1921) + Handles null at 4257 +780: Pop(1) (1924) + Handles null at 4257 +781: LocalLoad(Ljava/lang/Object;,0) (1925) + Handles null at 4257 +782: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (1926) + Handles null at 4257 +783: LocalLoad(Ljava/lang/Object;,9) (1929) + Handles null at 4257 +784: New(Ljava_cup/symbol_part;,0) (1931) + Handles null at 4257 +785: Dup(1,0) (1934) + Handles null at 4257 +786: LocalLoad(Ljava/lang/Object;,10) (1935) + Handles null at 4257 +787: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (1937) + Handles null at 4257 +788: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (1940) + Handles null at 4257 +789: Pop(1) (1943) + Handles null at 4257 +790: LocalLoad(Ljava/lang/Object;,0) (1944) + Handles null at 4257 +791: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (1945) + Handles null at 4257 +792: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (1948) + Handles null at 4257 +793: Constant(Ljava/lang/String;,"new_non_term_id") (1951) + Handles null at 4257 +794: Constant(I,25) (1953) + Handles null at 4257 +795: LocalLoad(Ljava/lang/Object;,3) (1955) + Handles null at 4257 +796: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1956) + Handles null at 4257 +797: CheckCast(Ljava_cup/runtime/Symbol;) (1959) + Handles null at 4257 +798: LocalLoad(Ljava/lang/Object;,3) (1962) + Handles null at 4257 +799: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1963) + Handles null at 4257 +800: CheckCast(Ljava_cup/runtime/Symbol;) (1966) + Handles null at 4257 +801: LocalLoad(Ljava/lang/Object;,6) (1969) + Handles null at 4257 +802: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1971) + Handles null at 4257 +803: LocalStore(Ljava/lang/Object;,5) (1976) + Handles null at 4257 +804: LocalLoad(Ljava/lang/Object;,5) (1978) + Handles null at 4257 +805: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (1980) + Handles null at 4257 +806: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (1980) + Handles null at 4257 +807: LocalLoad(Ljava/lang/Object;,0) (1980) + Handles null at 4257 +808: Constant(I,0) (1980) + Handles null at 4257 +809: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1980) + Handles null at 4257 +810: Return(Ljava/lang/Object;) (1980) + Handles null at 4257 +811: Constant(L;,null) (1981) + Handles null at 4257 +812: LocalStore(Ljava/lang/Object;,6) (1982) + Handles null at 4257 +813: LocalLoad(Ljava/lang/Object;,3) (1984) + Handles null at 4257 +814: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1985) + Handles null at 4257 +815: CheckCast(Ljava_cup/runtime/Symbol;) (1988) + Handles null at 4257 +816: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (1991) + Handles null at 4257 +817: LocalStore(I,7) (1994) + Handles null at 4257 +818: LocalLoad(Ljava/lang/Object;,3) (1996) + Handles null at 4257 +819: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (1997) + Handles null at 4257 +820: CheckCast(Ljava_cup/runtime/Symbol;) (2000) + Handles null at 4257 +821: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2003) + Handles null at 4257 +822: LocalStore(I,8) (2006) + Handles null at 4257 +823: LocalLoad(Ljava/lang/Object;,3) (2008) + Handles null at 4257 +824: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2009) + Handles null at 4257 +825: CheckCast(Ljava_cup/runtime/Symbol;) (2012) + Handles null at 4257 +826: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2015) + Handles null at 4257 +827: CheckCast(Ljava/lang/String;) (2018) + Handles null at 4257 +828: LocalStore(Ljava/lang/Object;,9) (2021) + Handles null at 4257 +829: LocalLoad(Ljava/lang/Object;,0) (2023) + Handles null at 4257 +830: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (2024) + Handles null at 4257 +831: LocalLoad(Ljava/lang/Object;,9) (2027) + Handles null at 4257 +832: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (2029) + Handles null at 4257 +833: Constant(L;,null) (2032) + Handles null at 4257 +834: ConditionalBranch(Ljava/lang/Object;,eq,848) (2032) + Handles null at 4257 +835: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (2035) + Handles null at 4257 +836: New(Ljava/lang/StringBuilder;,0) (2038) + Handles null at 4257 +837: Dup(1,0) (2041) + Handles null at 4257 +838: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2042) + Handles null at 4257 +839: Constant(Ljava/lang/String;,"java_cup.runtime.Symbol \"") (2045) + Handles null at 4257 +840: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2047) + Handles null at 4257 +841: LocalLoad(Ljava/lang/Object;,9) (2050) + Handles null at 4257 +842: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2052) + Handles null at 4257 +843: Constant(Ljava/lang/String;,"\" has already been declared") (2055) + Handles null at 4257 +844: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2057) + Handles null at 4257 +845: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2060) + Handles null at 4257 +846: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (2063) + Handles null at 4257 +847: Goto(871) (2066) + Handles null at 4257 +848: LocalLoad(Ljava/lang/Object;,0) (2069) + Handles null at 4257 +849: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2070) + Handles null at 4257 +850: Constant(Ljava/lang/String;,"") (2073) + Handles null at 4257 +851: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (2075) + Handles null at 4257 +852: Constant(I,0) (2078) + Handles null at 4257 +853: ConditionalBranch(I,eq,857) (2078) + Handles null at 4257 +854: LocalLoad(Ljava/lang/Object;,0) (2081) + Handles null at 4257 +855: Constant(Ljava/lang/String;,"Object") (2082) + Handles null at 4257 +856: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2084) + Handles null at 4257 +857: LocalLoad(Ljava/lang/Object;,0) (2087) + Handles null at 4257 +858: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (2088) + Handles null at 4257 +859: LocalLoad(Ljava/lang/Object;,9) (2091) + Handles null at 4257 +860: New(Ljava_cup/symbol_part;,0) (2093) + Handles null at 4257 +861: Dup(1,0) (2096) + Handles null at 4257 +862: New(Ljava_cup/terminal;,0) (2097) + Handles null at 4257 +863: Dup(1,0) (2100) + Handles null at 4257 +864: LocalLoad(Ljava/lang/Object;,9) (2101) + Handles null at 4257 +865: LocalLoad(Ljava/lang/Object;,0) (2103) + Handles null at 4257 +866: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2104) + Handles null at 4257 +867: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (2107) + Handles null at 4257 +868: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (2110) + Handles null at 4257 +869: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (2113) + Handles null at 4257 +870: Pop(1) (2116) + Handles null at 4257 +871: LocalLoad(Ljava/lang/Object;,0) (2117) + Handles null at 4257 +872: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2118) + Handles null at 4257 +873: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2121) + Handles null at 4257 +874: Constant(Ljava/lang/String;,"new_term_id") (2124) + Handles null at 4257 +875: Constant(I,24) (2126) + Handles null at 4257 +876: LocalLoad(Ljava/lang/Object;,3) (2128) + Handles null at 4257 +877: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2129) + Handles null at 4257 +878: CheckCast(Ljava_cup/runtime/Symbol;) (2132) + Handles null at 4257 +879: LocalLoad(Ljava/lang/Object;,3) (2135) + Handles null at 4257 +880: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2136) + Handles null at 4257 +881: CheckCast(Ljava_cup/runtime/Symbol;) (2139) + Handles null at 4257 +882: LocalLoad(Ljava/lang/Object;,6) (2142) + Handles null at 4257 +883: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2144) + Handles null at 4257 +884: LocalStore(Ljava/lang/Object;,5) (2149) + Handles null at 4257 +885: LocalLoad(Ljava/lang/Object;,5) (2151) + Handles null at 4257 +886: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2153) + Handles null at 4257 +887: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2153) + Handles null at 4257 +888: LocalLoad(Ljava/lang/Object;,0) (2153) + Handles null at 4257 +889: Constant(I,0) (2153) + Handles null at 4257 +890: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2153) + Handles null at 4257 +891: Return(Ljava/lang/Object;) (2153) + Handles null at 4257 +892: Constant(L;,null) (2154) + Handles null at 4257 +893: LocalStore(Ljava/lang/Object;,6) (2155) + Handles null at 4257 +894: LocalLoad(Ljava/lang/Object;,0) (2157) + Handles null at 4257 +895: LocalLoad(Ljava/lang/Object;,0) (2158) + Handles null at 4257 +896: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2159) + Handles null at 4257 +897: Constant(Ljava/lang/String;,"[]") (2162) + Handles null at 4257 +898: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (2164) + Handles null at 4257 +899: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2167) + Handles null at 4257 +900: LocalLoad(Ljava/lang/Object;,0) (2170) + Handles null at 4257 +901: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2171) + Handles null at 4257 +902: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2174) + Handles null at 4257 +903: Constant(Ljava/lang/String;,"type_id") (2177) + Handles null at 4257 +904: Constant(I,18) (2179) + Handles null at 4257 +905: LocalLoad(Ljava/lang/Object;,3) (2181) + Handles null at 4257 +906: LocalLoad(I,4) (2182) + Handles null at 4257 +907: Constant(I,2) (2184) + Handles null at 4257 +908: BinaryOp(I,sub) (2185) + Handles null at 4257 +909: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2186) + Handles null at 4257 +910: CheckCast(Ljava_cup/runtime/Symbol;) (2189) + Handles null at 4257 +911: LocalLoad(Ljava/lang/Object;,3) (2192) + Handles null at 4257 +912: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2193) + Handles null at 4257 +913: CheckCast(Ljava_cup/runtime/Symbol;) (2196) + Handles null at 4257 +914: LocalLoad(Ljava/lang/Object;,6) (2199) + Handles null at 4257 +915: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2201) + Handles null at 4257 +916: LocalStore(Ljava/lang/Object;,5) (2206) + Handles null at 4257 +917: LocalLoad(Ljava/lang/Object;,5) (2208) + Handles null at 4257 +918: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2210) + Handles null at 4257 +919: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2210) + Handles null at 4257 +920: LocalLoad(Ljava/lang/Object;,0) (2210) + Handles null at 4257 +921: Constant(I,0) (2210) + Handles null at 4257 +922: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2210) + Handles null at 4257 +923: Return(Ljava/lang/Object;) (2210) + Handles null at 4257 +924: Constant(L;,null) (2211) + Handles null at 4257 +925: LocalStore(Ljava/lang/Object;,6) (2212) + Handles null at 4257 +926: LocalLoad(Ljava/lang/Object;,0) (2214) + Handles null at 4257 +927: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2215) + Handles null at 4257 +928: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2218) + Handles null at 4257 +929: Constant(Ljava/lang/String;,"type_id") (2221) + Handles null at 4257 +930: Constant(I,18) (2223) + Handles null at 4257 +931: LocalLoad(Ljava/lang/Object;,3) (2225) + Handles null at 4257 +932: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2226) + Handles null at 4257 +933: CheckCast(Ljava_cup/runtime/Symbol;) (2229) + Handles null at 4257 +934: LocalLoad(Ljava/lang/Object;,3) (2232) + Handles null at 4257 +935: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2233) + Handles null at 4257 +936: CheckCast(Ljava_cup/runtime/Symbol;) (2236) + Handles null at 4257 +937: LocalLoad(Ljava/lang/Object;,6) (2239) + Handles null at 4257 +938: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2241) + Handles null at 4257 +939: LocalStore(Ljava/lang/Object;,5) (2246) + Handles null at 4257 +940: LocalLoad(Ljava/lang/Object;,5) (2248) + Handles null at 4257 +941: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2250) + Handles null at 4257 +942: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2250) + Handles null at 4257 +943: LocalLoad(Ljava/lang/Object;,0) (2250) + Handles null at 4257 +944: Constant(I,0) (2250) + Handles null at 4257 +945: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2250) + Handles null at 4257 +946: Return(Ljava/lang/Object;) (2250) + Handles null at 4257 +947: Constant(L;,null) (2251) + Handles null at 4257 +948: LocalStore(Ljava/lang/Object;,6) (2252) + Handles null at 4257 +949: LocalLoad(Ljava/lang/Object;,0) (2254) + Handles null at 4257 +950: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2255) + Handles null at 4257 +951: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2258) + Handles null at 4257 +952: Constant(Ljava/lang/String;,"import_id") (2261) + Handles null at 4257 +953: Constant(I,14) (2263) + Handles null at 4257 +954: LocalLoad(Ljava/lang/Object;,3) (2265) + Handles null at 4257 +955: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2266) + Handles null at 4257 +956: CheckCast(Ljava_cup/runtime/Symbol;) (2269) + Handles null at 4257 +957: LocalLoad(Ljava/lang/Object;,3) (2272) + Handles null at 4257 +958: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2273) + Handles null at 4257 +959: CheckCast(Ljava_cup/runtime/Symbol;) (2276) + Handles null at 4257 +960: LocalLoad(Ljava/lang/Object;,6) (2279) + Handles null at 4257 +961: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2281) + Handles null at 4257 +962: LocalStore(Ljava/lang/Object;,5) (2286) + Handles null at 4257 +963: LocalLoad(Ljava/lang/Object;,5) (2288) + Handles null at 4257 +964: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2290) + Handles null at 4257 +965: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2290) + Handles null at 4257 +966: LocalLoad(Ljava/lang/Object;,0) (2290) + Handles null at 4257 +967: Constant(I,0) (2290) + Handles null at 4257 +968: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2290) + Handles null at 4257 +969: Return(Ljava/lang/Object;) (2290) + Handles null at 4257 +970: Constant(L;,null) (2291) + Handles null at 4257 +971: LocalStore(Ljava/lang/Object;,6) (2292) + Handles null at 4257 +972: LocalLoad(Ljava/lang/Object;,0) (2294) + Handles null at 4257 +973: LocalLoad(Ljava/lang/Object;,0) (2295) + Handles null at 4257 +974: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2296) + Handles null at 4257 +975: Constant(Ljava/lang/String;,".*") (2299) + Handles null at 4257 +976: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (2301) + Handles null at 4257 +977: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2304) + Handles null at 4257 +978: LocalLoad(Ljava/lang/Object;,0) (2307) + Handles null at 4257 +979: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2308) + Handles null at 4257 +980: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2311) + Handles null at 4257 +981: Constant(Ljava/lang/String;,"import_id") (2314) + Handles null at 4257 +982: Constant(I,14) (2316) + Handles null at 4257 +983: LocalLoad(Ljava/lang/Object;,3) (2318) + Handles null at 4257 +984: LocalLoad(I,4) (2319) + Handles null at 4257 +985: Constant(I,2) (2321) + Handles null at 4257 +986: BinaryOp(I,sub) (2322) + Handles null at 4257 +987: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2323) + Handles null at 4257 +988: CheckCast(Ljava_cup/runtime/Symbol;) (2326) + Handles null at 4257 +989: LocalLoad(Ljava/lang/Object;,3) (2329) + Handles null at 4257 +990: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2330) + Handles null at 4257 +991: CheckCast(Ljava_cup/runtime/Symbol;) (2333) + Handles null at 4257 +992: LocalLoad(Ljava/lang/Object;,6) (2336) + Handles null at 4257 +993: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2338) + Handles null at 4257 +994: LocalStore(Ljava/lang/Object;,5) (2343) + Handles null at 4257 +995: LocalLoad(Ljava/lang/Object;,5) (2345) + Handles null at 4257 +996: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2347) + Handles null at 4257 +997: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2347) + Handles null at 4257 +998: LocalLoad(Ljava/lang/Object;,0) (2347) + Handles null at 4257 +999: Constant(I,0) (2347) + Handles null at 4257 +1000: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2347) + Handles null at 4257 +1001: Return(Ljava/lang/Object;) (2347) + Handles null at 4257 +1002: Constant(L;,null) (2348) + Handles null at 4257 +1003: LocalStore(Ljava/lang/Object;,6) (2349) + Handles null at 4257 +1004: New(Ljava/lang/StringBuilder;,0) (2351) + Handles null at 4257 +1005: Dup(1,0) (2354) + Handles null at 4257 +1006: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2355) + Handles null at 4257 +1007: Constant(Ljava/lang/String;," ? super ") (2358) + Handles null at 4257 +1008: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2360) + Handles null at 4257 +1009: LocalLoad(Ljava/lang/Object;,0) (2363) + Handles null at 4257 +1010: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2364) + Handles null at 4257 +1011: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2367) + Handles null at 4257 +1012: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2370) + Handles null at 4257 +1013: LocalStore(Ljava/lang/Object;,6) (2373) + Handles null at 4257 +1014: LocalLoad(Ljava/lang/Object;,0) (2375) + Handles null at 4257 +1015: New(Ljava/lang/String;,0) (2376) + Handles null at 4257 +1016: Dup(1,0) (2379) + Handles null at 4257 +1017: Invoke(SPECIAL,Ljava/lang/String;,,()V) (2380) + Handles null at 4257 +1018: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2383) + Handles null at 4257 +1019: LocalLoad(Ljava/lang/Object;,0) (2386) + Handles null at 4257 +1020: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2387) + Handles null at 4257 +1021: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2390) + Handles null at 4257 +1022: Constant(Ljava/lang/String;,"wildcard") (2393) + Handles null at 4257 +1023: Constant(I,45) (2395) + Handles null at 4257 +1024: LocalLoad(Ljava/lang/Object;,3) (2397) + Handles null at 4257 +1025: LocalLoad(I,4) (2398) + Handles null at 4257 +1026: Constant(I,2) (2400) + Handles null at 4257 +1027: BinaryOp(I,sub) (2401) + Handles null at 4257 +1028: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2402) + Handles null at 4257 +1029: CheckCast(Ljava_cup/runtime/Symbol;) (2405) + Handles null at 4257 +1030: LocalLoad(Ljava/lang/Object;,3) (2408) + Handles null at 4257 +1031: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2409) + Handles null at 4257 +1032: CheckCast(Ljava_cup/runtime/Symbol;) (2412) + Handles null at 4257 +1033: LocalLoad(Ljava/lang/Object;,6) (2415) + Handles null at 4257 +1034: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2417) + Handles null at 4257 +1035: LocalStore(Ljava/lang/Object;,5) (2422) + Handles null at 4257 +1036: LocalLoad(Ljava/lang/Object;,5) (2424) + Handles null at 4257 +1037: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2426) + Handles null at 4257 +1038: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2426) + Handles null at 4257 +1039: LocalLoad(Ljava/lang/Object;,0) (2426) + Handles null at 4257 +1040: Constant(I,0) (2426) + Handles null at 4257 +1041: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2426) + Handles null at 4257 +1042: Return(Ljava/lang/Object;) (2426) + Handles null at 4257 +1043: Constant(L;,null) (2427) + Handles null at 4257 +1044: LocalStore(Ljava/lang/Object;,6) (2428) + Handles null at 4257 +1045: New(Ljava/lang/StringBuilder;,0) (2430) + Handles null at 4257 +1046: Dup(1,0) (2433) + Handles null at 4257 +1047: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2434) + Handles null at 4257 +1048: Constant(Ljava/lang/String;," ? extends ") (2437) + Handles null at 4257 +1049: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2439) + Handles null at 4257 +1050: LocalLoad(Ljava/lang/Object;,0) (2442) + Handles null at 4257 +1051: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2443) + Handles null at 4257 +1052: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2446) + Handles null at 4257 +1053: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2449) + Handles null at 4257 +1054: LocalStore(Ljava/lang/Object;,6) (2452) + Handles null at 4257 +1055: LocalLoad(Ljava/lang/Object;,0) (2454) + Handles null at 4257 +1056: New(Ljava/lang/String;,0) (2455) + Handles null at 4257 +1057: Dup(1,0) (2458) + Handles null at 4257 +1058: Invoke(SPECIAL,Ljava/lang/String;,,()V) (2459) + Handles null at 4257 +1059: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2462) + Handles null at 4257 +1060: LocalLoad(Ljava/lang/Object;,0) (2465) + Handles null at 4257 +1061: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2466) + Handles null at 4257 +1062: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2469) + Handles null at 4257 +1063: Constant(Ljava/lang/String;,"wildcard") (2472) + Handles null at 4257 +1064: Constant(I,45) (2474) + Handles null at 4257 +1065: LocalLoad(Ljava/lang/Object;,3) (2476) + Handles null at 4257 +1066: LocalLoad(I,4) (2477) + Handles null at 4257 +1067: Constant(I,2) (2479) + Handles null at 4257 +1068: BinaryOp(I,sub) (2480) + Handles null at 4257 +1069: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2481) + Handles null at 4257 +1070: CheckCast(Ljava_cup/runtime/Symbol;) (2484) + Handles null at 4257 +1071: LocalLoad(Ljava/lang/Object;,3) (2487) + Handles null at 4257 +1072: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2488) + Handles null at 4257 +1073: CheckCast(Ljava_cup/runtime/Symbol;) (2491) + Handles null at 4257 +1074: LocalLoad(Ljava/lang/Object;,6) (2494) + Handles null at 4257 +1075: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2496) + Handles null at 4257 +1076: LocalStore(Ljava/lang/Object;,5) (2501) + Handles null at 4257 +1077: LocalLoad(Ljava/lang/Object;,5) (2503) + Handles null at 4257 +1078: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2505) + Handles null at 4257 +1079: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2505) + Handles null at 4257 +1080: LocalLoad(Ljava/lang/Object;,0) (2505) + Handles null at 4257 +1081: Constant(I,0) (2505) + Handles null at 4257 +1082: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2505) + Handles null at 4257 +1083: Return(Ljava/lang/Object;) (2505) + Handles null at 4257 +1084: Constant(L;,null) (2506) + Handles null at 4257 +1085: LocalStore(Ljava/lang/Object;,6) (2507) + Handles null at 4257 +1086: Constant(Ljava/lang/String;," ? ") (2509) + Handles null at 4257 +1087: LocalStore(Ljava/lang/Object;,6) (2511) + Handles null at 4257 +1088: LocalLoad(Ljava/lang/Object;,0) (2513) + Handles null at 4257 +1089: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2514) + Handles null at 4257 +1090: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2517) + Handles null at 4257 +1091: Constant(Ljava/lang/String;,"wildcard") (2520) + Handles null at 4257 +1092: Constant(I,45) (2522) + Handles null at 4257 +1093: LocalLoad(Ljava/lang/Object;,3) (2524) + Handles null at 4257 +1094: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2525) + Handles null at 4257 +1095: CheckCast(Ljava_cup/runtime/Symbol;) (2528) + Handles null at 4257 +1096: LocalLoad(Ljava/lang/Object;,3) (2531) + Handles null at 4257 +1097: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2532) + Handles null at 4257 +1098: CheckCast(Ljava_cup/runtime/Symbol;) (2535) + Handles null at 4257 +1099: LocalLoad(Ljava/lang/Object;,6) (2538) + Handles null at 4257 +1100: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2540) + Handles null at 4257 +1101: LocalStore(Ljava/lang/Object;,5) (2545) + Handles null at 4257 +1102: LocalLoad(Ljava/lang/Object;,5) (2547) + Handles null at 4257 +1103: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2549) + Handles null at 4257 +1104: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2549) + Handles null at 4257 +1105: LocalLoad(Ljava/lang/Object;,0) (2549) + Handles null at 4257 +1106: Constant(I,0) (2549) + Handles null at 4257 +1107: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2549) + Handles null at 4257 +1108: Return(Ljava/lang/Object;) (2549) + Handles null at 4257 +1109: Constant(L;,null) (2550) + Handles null at 4257 +1110: LocalStore(Ljava/lang/Object;,6) (2551) + Handles null at 4257 +1111: LocalLoad(Ljava/lang/Object;,3) (2553) + Handles null at 4257 +1112: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2554) + Handles null at 4257 +1113: CheckCast(Ljava_cup/runtime/Symbol;) (2557) + Handles null at 4257 +1114: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2560) + Handles null at 4257 +1115: LocalStore(I,7) (2563) + Handles null at 4257 +1116: LocalLoad(Ljava/lang/Object;,3) (2565) + Handles null at 4257 +1117: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2566) + Handles null at 4257 +1118: CheckCast(Ljava_cup/runtime/Symbol;) (2569) + Handles null at 4257 +1119: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2572) + Handles null at 4257 +1120: LocalStore(I,8) (2575) + Handles null at 4257 +1121: LocalLoad(Ljava/lang/Object;,3) (2577) + Handles null at 4257 +1122: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2578) + Handles null at 4257 +1123: CheckCast(Ljava_cup/runtime/Symbol;) (2581) + Handles null at 4257 +1124: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2584) + Handles null at 4257 +1125: CheckCast(Ljava/lang/String;) (2587) + Handles null at 4257 +1126: LocalStore(Ljava/lang/Object;,9) (2590) + Handles null at 4257 +1127: LocalLoad(Ljava/lang/Object;,9) (2592) + Handles null at 4257 +1128: LocalStore(Ljava/lang/Object;,6) (2594) + Handles null at 4257 +1129: LocalLoad(Ljava/lang/Object;,0) (2596) + Handles null at 4257 +1130: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2597) + Handles null at 4257 +1131: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2600) + Handles null at 4257 +1132: Constant(Ljava/lang/String;,"typearguement") (2603) + Handles null at 4257 +1133: Constant(I,44) (2605) + Handles null at 4257 +1134: LocalLoad(Ljava/lang/Object;,3) (2607) + Handles null at 4257 +1135: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2608) + Handles null at 4257 +1136: CheckCast(Ljava_cup/runtime/Symbol;) (2611) + Handles null at 4257 +1137: LocalLoad(Ljava/lang/Object;,3) (2614) + Handles null at 4257 +1138: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2615) + Handles null at 4257 +1139: CheckCast(Ljava_cup/runtime/Symbol;) (2618) + Handles null at 4257 +1140: LocalLoad(Ljava/lang/Object;,6) (2621) + Handles null at 4257 +1141: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2623) + Handles null at 4257 +1142: LocalStore(Ljava/lang/Object;,5) (2628) + Handles null at 4257 +1143: LocalLoad(Ljava/lang/Object;,5) (2630) + Handles null at 4257 +1144: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2632) + Handles null at 4257 +1145: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2632) + Handles null at 4257 +1146: LocalLoad(Ljava/lang/Object;,0) (2632) + Handles null at 4257 +1147: Constant(I,0) (2632) + Handles null at 4257 +1148: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2632) + Handles null at 4257 +1149: Return(Ljava/lang/Object;) (2632) + Handles null at 4257 +1150: Constant(L;,null) (2633) + Handles null at 4257 +1151: LocalStore(Ljava/lang/Object;,6) (2634) + Handles null at 4257 +1152: LocalLoad(Ljava/lang/Object;,0) (2636) + Handles null at 4257 +1153: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2637) + Handles null at 4257 +1154: LocalStore(Ljava/lang/Object;,6) (2640) + Handles null at 4257 +1155: LocalLoad(Ljava/lang/Object;,0) (2642) + Handles null at 4257 +1156: New(Ljava/lang/String;,0) (2643) + Handles null at 4257 +1157: Dup(1,0) (2646) + Handles null at 4257 +1158: Invoke(SPECIAL,Ljava/lang/String;,,()V) (2647) + Handles null at 4257 +1159: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2650) + Handles null at 4257 +1160: LocalLoad(Ljava/lang/Object;,0) (2653) + Handles null at 4257 +1161: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2654) + Handles null at 4257 +1162: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2657) + Handles null at 4257 +1163: Constant(Ljava/lang/String;,"typearguement") (2660) + Handles null at 4257 +1164: Constant(I,44) (2662) + Handles null at 4257 +1165: LocalLoad(Ljava/lang/Object;,3) (2664) + Handles null at 4257 +1166: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2665) + Handles null at 4257 +1167: CheckCast(Ljava_cup/runtime/Symbol;) (2668) + Handles null at 4257 +1168: LocalLoad(Ljava/lang/Object;,3) (2671) + Handles null at 4257 +1169: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2672) + Handles null at 4257 +1170: CheckCast(Ljava_cup/runtime/Symbol;) (2675) + Handles null at 4257 +1171: LocalLoad(Ljava/lang/Object;,6) (2678) + Handles null at 4257 +1172: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2680) + Handles null at 4257 +1173: LocalStore(Ljava/lang/Object;,5) (2685) + Handles null at 4257 +1174: LocalLoad(Ljava/lang/Object;,5) (2687) + Handles null at 4257 +1175: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2689) + Handles null at 4257 +1176: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2689) + Handles null at 4257 +1177: LocalLoad(Ljava/lang/Object;,0) (2689) + Handles null at 4257 +1178: Constant(I,0) (2689) + Handles null at 4257 +1179: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2689) + Handles null at 4257 +1180: Return(Ljava/lang/Object;) (2689) + Handles null at 4257 +1181: Constant(L;,null) (2690) + Handles null at 4257 +1182: LocalStore(Ljava/lang/Object;,6) (2691) + Handles null at 4257 +1183: LocalLoad(Ljava/lang/Object;,3) (2693) + Handles null at 4257 +1184: LocalLoad(I,4) (2694) + Handles null at 4257 +1185: Constant(I,2) (2696) + Handles null at 4257 +1186: BinaryOp(I,sub) (2697) + Handles null at 4257 +1187: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2698) + Handles null at 4257 +1188: CheckCast(Ljava_cup/runtime/Symbol;) (2701) + Handles null at 4257 +1189: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2704) + Handles null at 4257 +1190: LocalStore(I,7) (2707) + Handles null at 4257 +1191: LocalLoad(Ljava/lang/Object;,3) (2709) + Handles null at 4257 +1192: LocalLoad(I,4) (2710) + Handles null at 4257 +1193: Constant(I,2) (2712) + Handles null at 4257 +1194: BinaryOp(I,sub) (2713) + Handles null at 4257 +1195: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2714) + Handles null at 4257 +1196: CheckCast(Ljava_cup/runtime/Symbol;) (2717) + Handles null at 4257 +1197: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2720) + Handles null at 4257 +1198: LocalStore(I,8) (2723) + Handles null at 4257 +1199: LocalLoad(Ljava/lang/Object;,3) (2725) + Handles null at 4257 +1200: LocalLoad(I,4) (2726) + Handles null at 4257 +1201: Constant(I,2) (2728) + Handles null at 4257 +1202: BinaryOp(I,sub) (2729) + Handles null at 4257 +1203: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2730) + Handles null at 4257 +1204: CheckCast(Ljava_cup/runtime/Symbol;) (2733) + Handles null at 4257 +1205: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2736) + Handles null at 4257 +1206: CheckCast(Ljava/lang/String;) (2739) + Handles null at 4257 +1207: LocalStore(Ljava/lang/Object;,9) (2742) + Handles null at 4257 +1208: LocalLoad(Ljava/lang/Object;,3) (2744) + Handles null at 4257 +1209: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2745) + Handles null at 4257 +1210: CheckCast(Ljava_cup/runtime/Symbol;) (2748) + Handles null at 4257 +1211: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2751) + Handles null at 4257 +1212: LocalStore(I,10) (2754) + Handles null at 4257 +1213: LocalLoad(Ljava/lang/Object;,3) (2756) + Handles null at 4257 +1214: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2757) + Handles null at 4257 +1215: CheckCast(Ljava_cup/runtime/Symbol;) (2760) + Handles null at 4257 +1216: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2763) + Handles null at 4257 +1217: LocalStore(I,11) (2766) + Handles null at 4257 +1218: LocalLoad(Ljava/lang/Object;,3) (2768) + Handles null at 4257 +1219: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2769) + Handles null at 4257 +1220: CheckCast(Ljava_cup/runtime/Symbol;) (2772) + Handles null at 4257 +1221: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2775) + Handles null at 4257 +1222: CheckCast(Ljava/lang/String;) (2778) + Handles null at 4257 +1223: LocalStore(Ljava/lang/Object;,12) (2781) + Handles null at 4257 +1224: New(Ljava/lang/StringBuilder;,0) (2783) + Handles null at 4257 +1225: Dup(1,0) (2786) + Handles null at 4257 +1226: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2787) + Handles null at 4257 +1227: LocalLoad(Ljava/lang/Object;,9) (2790) + Handles null at 4257 +1228: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2792) + Handles null at 4257 +1229: Constant(Ljava/lang/String;,",") (2795) + Handles null at 4257 +1230: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2797) + Handles null at 4257 +1231: LocalLoad(Ljava/lang/Object;,12) (2800) + Handles null at 4257 +1232: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2802) + Handles null at 4257 +1233: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2805) + Handles null at 4257 +1234: LocalStore(Ljava/lang/Object;,6) (2808) + Handles null at 4257 +1235: LocalLoad(Ljava/lang/Object;,0) (2810) + Handles null at 4257 +1236: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2811) + Handles null at 4257 +1237: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2814) + Handles null at 4257 +1238: Constant(Ljava/lang/String;,"typearglist") (2817) + Handles null at 4257 +1239: Constant(I,43) (2819) + Handles null at 4257 +1240: LocalLoad(Ljava/lang/Object;,3) (2821) + Handles null at 4257 +1241: LocalLoad(I,4) (2822) + Handles null at 4257 +1242: Constant(I,2) (2824) + Handles null at 4257 +1243: BinaryOp(I,sub) (2825) + Handles null at 4257 +1244: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (2826) + Handles null at 4257 +1245: CheckCast(Ljava_cup/runtime/Symbol;) (2829) + Handles null at 4257 +1246: LocalLoad(Ljava/lang/Object;,3) (2832) + Handles null at 4257 +1247: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2833) + Handles null at 4257 +1248: CheckCast(Ljava_cup/runtime/Symbol;) (2836) + Handles null at 4257 +1249: LocalLoad(Ljava/lang/Object;,6) (2839) + Handles null at 4257 +1250: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2841) + Handles null at 4257 +1251: LocalStore(Ljava/lang/Object;,5) (2846) + Handles null at 4257 +1252: LocalLoad(Ljava/lang/Object;,5) (2848) + Handles null at 4257 +1253: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2850) + Handles null at 4257 +1254: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2850) + Handles null at 4257 +1255: LocalLoad(Ljava/lang/Object;,0) (2850) + Handles null at 4257 +1256: Constant(I,0) (2850) + Handles null at 4257 +1257: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2850) + Handles null at 4257 +1258: Return(Ljava/lang/Object;) (2850) + Handles null at 4257 +1259: Constant(L;,null) (2851) + Handles null at 4257 +1260: LocalStore(Ljava/lang/Object;,6) (2852) + Handles null at 4257 +1261: LocalLoad(Ljava/lang/Object;,3) (2854) + Handles null at 4257 +1262: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2855) + Handles null at 4257 +1263: CheckCast(Ljava_cup/runtime/Symbol;) (2858) + Handles null at 4257 +1264: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2861) + Handles null at 4257 +1265: LocalStore(I,7) (2864) + Handles null at 4257 +1266: LocalLoad(Ljava/lang/Object;,3) (2866) + Handles null at 4257 +1267: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2867) + Handles null at 4257 +1268: CheckCast(Ljava_cup/runtime/Symbol;) (2870) + Handles null at 4257 +1269: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2873) + Handles null at 4257 +1270: LocalStore(I,8) (2876) + Handles null at 4257 +1271: LocalLoad(Ljava/lang/Object;,3) (2878) + Handles null at 4257 +1272: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2879) + Handles null at 4257 +1273: CheckCast(Ljava_cup/runtime/Symbol;) (2882) + Handles null at 4257 +1274: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2885) + Handles null at 4257 +1275: CheckCast(Ljava/lang/String;) (2888) + Handles null at 4257 +1276: LocalStore(Ljava/lang/Object;,9) (2891) + Handles null at 4257 +1277: LocalLoad(Ljava/lang/Object;,9) (2893) + Handles null at 4257 +1278: LocalStore(Ljava/lang/Object;,6) (2895) + Handles null at 4257 +1279: LocalLoad(Ljava/lang/Object;,0) (2897) + Handles null at 4257 +1280: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2898) + Handles null at 4257 +1281: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2901) + Handles null at 4257 +1282: Constant(Ljava/lang/String;,"typearglist") (2904) + Handles null at 4257 +1283: Constant(I,43) (2906) + Handles null at 4257 +1284: LocalLoad(Ljava/lang/Object;,3) (2908) + Handles null at 4257 +1285: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2909) + Handles null at 4257 +1286: CheckCast(Ljava_cup/runtime/Symbol;) (2912) + Handles null at 4257 +1287: LocalLoad(Ljava/lang/Object;,3) (2915) + Handles null at 4257 +1288: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2916) + Handles null at 4257 +1289: CheckCast(Ljava_cup/runtime/Symbol;) (2919) + Handles null at 4257 +1290: LocalLoad(Ljava/lang/Object;,6) (2922) + Handles null at 4257 +1291: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (2924) + Handles null at 4257 +1292: LocalStore(Ljava/lang/Object;,5) (2929) + Handles null at 4257 +1293: LocalLoad(Ljava/lang/Object;,5) (2931) + Handles null at 4257 +1294: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (2933) + Handles null at 4257 +1295: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (2933) + Handles null at 4257 +1296: LocalLoad(Ljava/lang/Object;,0) (2933) + Handles null at 4257 +1297: Constant(I,0) (2933) + Handles null at 4257 +1298: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2933) + Handles null at 4257 +1299: Return(Ljava/lang/Object;) (2933) + Handles null at 4257 +1300: Constant(L;,null) (2934) + Handles null at 4257 +1301: LocalStore(Ljava/lang/Object;,6) (2935) + Handles null at 4257 +1302: LocalLoad(Ljava/lang/Object;,3) (2937) + Handles null at 4257 +1303: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2938) + Handles null at 4257 +1304: CheckCast(Ljava_cup/runtime/Symbol;) (2941) + Handles null at 4257 +1305: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (2944) + Handles null at 4257 +1306: LocalStore(I,7) (2947) + Handles null at 4257 +1307: LocalLoad(Ljava/lang/Object;,3) (2949) + Handles null at 4257 +1308: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2950) + Handles null at 4257 +1309: CheckCast(Ljava_cup/runtime/Symbol;) (2953) + Handles null at 4257 +1310: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (2956) + Handles null at 4257 +1311: LocalStore(I,8) (2959) + Handles null at 4257 +1312: LocalLoad(Ljava/lang/Object;,3) (2961) + Handles null at 4257 +1313: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (2962) + Handles null at 4257 +1314: CheckCast(Ljava_cup/runtime/Symbol;) (2965) + Handles null at 4257 +1315: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (2968) + Handles null at 4257 +1316: CheckCast(Ljava/lang/String;) (2971) + Handles null at 4257 +1317: LocalStore(Ljava/lang/Object;,9) (2974) + Handles null at 4257 +1318: LocalLoad(Ljava/lang/Object;,0) (2976) + Handles null at 4257 +1319: LocalLoad(Ljava/lang/Object;,0) (2977) + Handles null at 4257 +1320: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2978) + Handles null at 4257 +1321: LocalLoad(Ljava/lang/Object;,9) (2981) + Handles null at 4257 +1322: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (2983) + Handles null at 4257 +1323: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (2986) + Handles null at 4257 +1324: LocalLoad(Ljava/lang/Object;,0) (2989) + Handles null at 4257 +1325: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (2990) + Handles null at 4257 +1326: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (2993) + Handles null at 4257 +1327: Constant(Ljava/lang/String;,"multipart_id") (2996) + Handles null at 4257 +1328: Constant(I,12) (2998) + Handles null at 4257 +1329: LocalLoad(Ljava/lang/Object;,3) (3000) + Handles null at 4257 +1330: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3001) + Handles null at 4257 +1331: CheckCast(Ljava_cup/runtime/Symbol;) (3004) + Handles null at 4257 +1332: LocalLoad(Ljava/lang/Object;,3) (3007) + Handles null at 4257 +1333: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3008) + Handles null at 4257 +1334: CheckCast(Ljava_cup/runtime/Symbol;) (3011) + Handles null at 4257 +1335: LocalLoad(Ljava/lang/Object;,6) (3014) + Handles null at 4257 +1336: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3016) + Handles null at 4257 +1337: LocalStore(Ljava/lang/Object;,5) (3021) + Handles null at 4257 +1338: LocalLoad(Ljava/lang/Object;,5) (3023) + Handles null at 4257 +1339: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3025) + Handles null at 4257 +1340: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3025) + Handles null at 4257 +1341: LocalLoad(Ljava/lang/Object;,0) (3025) + Handles null at 4257 +1342: Constant(I,0) (3025) + Handles null at 4257 +1343: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3025) + Handles null at 4257 +1344: Return(Ljava/lang/Object;) (3025) + Handles null at 4257 +1345: Constant(L;,null) (3026) + Handles null at 4257 +1346: LocalStore(Ljava/lang/Object;,6) (3027) + Handles null at 4257 +1347: LocalLoad(Ljava/lang/Object;,3) (3029) + Handles null at 4257 +1348: LocalLoad(I,4) (3030) + Handles null at 4257 +1349: Constant(I,3) (3032) + Handles null at 4257 +1350: BinaryOp(I,sub) (3033) + Handles null at 4257 +1351: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3034) + Handles null at 4257 +1352: CheckCast(Ljava_cup/runtime/Symbol;) (3037) + Handles null at 4257 +1353: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3040) + Handles null at 4257 +1354: LocalStore(Ljava/lang/Object;,6) (3043) + Handles null at 4257 +1355: LocalLoad(Ljava/lang/Object;,3) (3045) + Handles null at 4257 +1356: LocalLoad(I,4) (3046) + Handles null at 4257 +1357: Constant(I,1) (3048) + Handles null at 4257 +1358: BinaryOp(I,sub) (3049) + Handles null at 4257 +1359: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3050) + Handles null at 4257 +1360: CheckCast(Ljava_cup/runtime/Symbol;) (3053) + Handles null at 4257 +1361: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3056) + Handles null at 4257 +1362: LocalStore(I,7) (3059) + Handles null at 4257 +1363: LocalLoad(Ljava/lang/Object;,3) (3061) + Handles null at 4257 +1364: LocalLoad(I,4) (3062) + Handles null at 4257 +1365: Constant(I,1) (3064) + Handles null at 4257 +1366: BinaryOp(I,sub) (3065) + Handles null at 4257 +1367: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3066) + Handles null at 4257 +1368: CheckCast(Ljava_cup/runtime/Symbol;) (3069) + Handles null at 4257 +1369: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3072) + Handles null at 4257 +1370: LocalStore(I,8) (3075) + Handles null at 4257 +1371: LocalLoad(Ljava/lang/Object;,3) (3077) + Handles null at 4257 +1372: LocalLoad(I,4) (3078) + Handles null at 4257 +1373: Constant(I,1) (3080) + Handles null at 4257 +1374: BinaryOp(I,sub) (3081) + Handles null at 4257 +1375: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3082) + Handles null at 4257 +1376: CheckCast(Ljava_cup/runtime/Symbol;) (3085) + Handles null at 4257 +1377: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3088) + Handles null at 4257 +1378: CheckCast(Ljava/lang/String;) (3091) + Handles null at 4257 +1379: LocalStore(Ljava/lang/Object;,9) (3094) + Handles null at 4257 +1380: LocalLoad(Ljava/lang/Object;,0) (3096) + Handles null at 4257 +1381: LocalLoad(Ljava/lang/Object;,0) (3097) + Handles null at 4257 +1382: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_names) (3098) + Handles null at 4257 +1383: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (3101) + Handles null at 4257 +1384: CheckCast(Ljava/lang/String;) (3104) + Handles null at 4257 +1385: New(Ljava/lang/StringBuilder;,0) (3107) + Handles null at 4257 +1386: Dup(1,0) (3110) + Handles null at 4257 +1387: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (3111) + Handles null at 4257 +1388: Constant(Ljava/lang/String;,"<") (3114) + Handles null at 4257 +1389: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3116) + Handles null at 4257 +1390: LocalLoad(Ljava/lang/Object;,9) (3119) + Handles null at 4257 +1391: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3121) + Handles null at 4257 +1392: Constant(Ljava/lang/String;,">") (3124) + Handles null at 4257 +1393: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3126) + Handles null at 4257 +1394: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (3129) + Handles null at 4257 +1395: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (3132) + Handles null at 4257 +1396: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3135) + Handles null at 4257 +1397: LocalLoad(Ljava/lang/Object;,0) (3138) + Handles null at 4257 +1398: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3139) + Handles null at 4257 +1399: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3142) + Handles null at 4257 +1400: Constant(Ljava/lang/String;,"multipart_id") (3145) + Handles null at 4257 +1401: Constant(I,12) (3147) + Handles null at 4257 +1402: LocalLoad(Ljava/lang/Object;,3) (3149) + Handles null at 4257 +1403: LocalLoad(I,4) (3150) + Handles null at 4257 +1404: Constant(I,4) (3152) + Handles null at 4257 +1405: BinaryOp(I,sub) (3153) + Handles null at 4257 +1406: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3154) + Handles null at 4257 +1407: CheckCast(Ljava_cup/runtime/Symbol;) (3157) + Handles null at 4257 +1408: LocalLoad(Ljava/lang/Object;,3) (3160) + Handles null at 4257 +1409: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3161) + Handles null at 4257 +1410: CheckCast(Ljava_cup/runtime/Symbol;) (3164) + Handles null at 4257 +1411: LocalLoad(Ljava/lang/Object;,6) (3167) + Handles null at 4257 +1412: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3169) + Handles null at 4257 +1413: LocalStore(Ljava/lang/Object;,5) (3174) + Handles null at 4257 +1414: LocalLoad(Ljava/lang/Object;,5) (3176) + Handles null at 4257 +1415: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3178) + Handles null at 4257 +1416: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3178) + Handles null at 4257 +1417: LocalLoad(Ljava/lang/Object;,0) (3178) + Handles null at 4257 +1418: Constant(I,0) (3178) + Handles null at 4257 +1419: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3178) + Handles null at 4257 +1420: Return(Ljava/lang/Object;) (3178) + Handles null at 4257 +1421: Constant(L;,null) (3179) + Handles null at 4257 +1422: LocalStore(Ljava/lang/Object;,6) (3180) + Handles null at 4257 +1423: LocalLoad(Ljava/lang/Object;,0) (3182) + Handles null at 4257 +1424: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_names) (3183) + Handles null at 4257 +1425: LocalLoad(Ljava/lang/Object;,0) (3186) + Handles null at 4257 +1426: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3187) + Handles null at 4257 +1427: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (3190) + Handles null at 4257 +1428: Pop(1) (3193) + Handles null at 4257 +1429: LocalLoad(Ljava/lang/Object;,0) (3194) + Handles null at 4257 +1430: Constant(Ljava/lang/String;,"") (3195) + Handles null at 4257 +1431: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3197) + Handles null at 4257 +1432: LocalLoad(Ljava/lang/Object;,0) (3200) + Handles null at 4257 +1433: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3201) + Handles null at 4257 +1434: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3204) + Handles null at 4257 +1435: Constant(Ljava/lang/String;,"NT$13") (3207) + Handles null at 4257 +1436: Constant(I,59) (3209) + Handles null at 4257 +1437: LocalLoad(Ljava/lang/Object;,3) (3211) + Handles null at 4257 +1438: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3212) + Handles null at 4257 +1439: CheckCast(Ljava_cup/runtime/Symbol;) (3215) + Handles null at 4257 +1440: LocalLoad(Ljava/lang/Object;,3) (3218) + Handles null at 4257 +1441: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3219) + Handles null at 4257 +1442: CheckCast(Ljava_cup/runtime/Symbol;) (3222) + Handles null at 4257 +1443: LocalLoad(Ljava/lang/Object;,6) (3225) + Handles null at 4257 +1444: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3227) + Handles null at 4257 +1445: LocalStore(Ljava/lang/Object;,5) (3232) + Handles null at 4257 +1446: LocalLoad(Ljava/lang/Object;,5) (3234) + Handles null at 4257 +1447: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3236) + Handles null at 4257 +1448: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3236) + Handles null at 4257 +1449: LocalLoad(Ljava/lang/Object;,0) (3236) + Handles null at 4257 +1450: Constant(I,0) (3236) + Handles null at 4257 +1451: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3236) + Handles null at 4257 +1452: Return(Ljava/lang/Object;) (3236) + Handles null at 4257 +1453: Constant(L;,null) (3237) + Handles null at 4257 +1454: LocalStore(Ljava/lang/Object;,6) (3238) + Handles null at 4257 +1455: LocalLoad(Ljava/lang/Object;,3) (3240) + Handles null at 4257 +1456: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3241) + Handles null at 4257 +1457: CheckCast(Ljava_cup/runtime/Symbol;) (3244) + Handles null at 4257 +1458: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3247) + Handles null at 4257 +1459: LocalStore(I,7) (3250) + Handles null at 4257 +1460: LocalLoad(Ljava/lang/Object;,3) (3252) + Handles null at 4257 +1461: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3253) + Handles null at 4257 +1462: CheckCast(Ljava_cup/runtime/Symbol;) (3256) + Handles null at 4257 +1463: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3259) + Handles null at 4257 +1464: LocalStore(I,8) (3262) + Handles null at 4257 +1465: LocalLoad(Ljava/lang/Object;,3) (3264) + Handles null at 4257 +1466: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3265) + Handles null at 4257 +1467: CheckCast(Ljava_cup/runtime/Symbol;) (3268) + Handles null at 4257 +1468: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3271) + Handles null at 4257 +1469: CheckCast(Ljava/lang/String;) (3274) + Handles null at 4257 +1470: LocalStore(Ljava/lang/Object;,9) (3277) + Handles null at 4257 +1471: LocalLoad(Ljava/lang/Object;,0) (3279) + Handles null at 4257 +1472: LocalLoad(Ljava/lang/Object;,0) (3280) + Handles null at 4257 +1473: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3281) + Handles null at 4257 +1474: New(Ljava/lang/StringBuilder;,0) (3284) + Handles null at 4257 +1475: Dup(1,0) (3287) + Handles null at 4257 +1476: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (3288) + Handles null at 4257 +1477: Constant(Ljava/lang/String;,".") (3291) + Handles null at 4257 +1478: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3293) + Handles null at 4257 +1479: LocalLoad(Ljava/lang/Object;,9) (3296) + Handles null at 4257 +1480: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3298) + Handles null at 4257 +1481: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (3301) + Handles null at 4257 +1482: Invoke(VIRTUAL,Ljava/lang/String;,concat,(Ljava/lang/String;)Ljava/lang/String;) (3304) + Handles null at 4257 +1483: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (3307) + Handles null at 4257 +1484: LocalLoad(Ljava/lang/Object;,0) (3310) + Handles null at 4257 +1485: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3311) + Handles null at 4257 +1486: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3314) + Handles null at 4257 +1487: Constant(Ljava/lang/String;,"multipart_id") (3317) + Handles null at 4257 +1488: Constant(I,12) (3319) + Handles null at 4257 +1489: LocalLoad(Ljava/lang/Object;,3) (3321) + Handles null at 4257 +1490: LocalLoad(I,4) (3322) + Handles null at 4257 +1491: Constant(I,2) (3324) + Handles null at 4257 +1492: BinaryOp(I,sub) (3325) + Handles null at 4257 +1493: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3326) + Handles null at 4257 +1494: CheckCast(Ljava_cup/runtime/Symbol;) (3329) + Handles null at 4257 +1495: LocalLoad(Ljava/lang/Object;,3) (3332) + Handles null at 4257 +1496: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3333) + Handles null at 4257 +1497: CheckCast(Ljava_cup/runtime/Symbol;) (3336) + Handles null at 4257 +1498: LocalLoad(Ljava/lang/Object;,6) (3339) + Handles null at 4257 +1499: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3341) + Handles null at 4257 +1500: LocalStore(Ljava/lang/Object;,5) (3346) + Handles null at 4257 +1501: LocalLoad(Ljava/lang/Object;,5) (3348) + Handles null at 4257 +1502: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3350) + Handles null at 4257 +1503: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3350) + Handles null at 4257 +1504: LocalLoad(Ljava/lang/Object;,0) (3350) + Handles null at 4257 +1505: Constant(I,0) (3350) + Handles null at 4257 +1506: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3350) + Handles null at 4257 +1507: Return(Ljava/lang/Object;) (3350) + Handles null at 4257 +1508: Constant(L;,null) (3351) + Handles null at 4257 +1509: LocalStore(Ljava/lang/Object;,6) (3352) + Handles null at 4257 +1510: Constant(L;,null) (3354) + Handles null at 4257 +1511: LocalStore(Ljava/lang/Object;,6) (3355) + Handles null at 4257 +1512: LocalLoad(Ljava/lang/Object;,0) (3357) + Handles null at 4257 +1513: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3358) + Handles null at 4257 +1514: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3361) + Handles null at 4257 +1515: Constant(Ljava/lang/String;,"opt_label") (3364) + Handles null at 4257 +1516: Constant(I,39) (3366) + Handles null at 4257 +1517: LocalLoad(Ljava/lang/Object;,3) (3368) + Handles null at 4257 +1518: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3369) + Handles null at 4257 +1519: CheckCast(Ljava_cup/runtime/Symbol;) (3372) + Handles null at 4257 +1520: LocalLoad(Ljava/lang/Object;,3) (3375) + Handles null at 4257 +1521: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3376) + Handles null at 4257 +1522: CheckCast(Ljava_cup/runtime/Symbol;) (3379) + Handles null at 4257 +1523: LocalLoad(Ljava/lang/Object;,6) (3382) + Handles null at 4257 +1524: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3384) + Handles null at 4257 +1525: LocalStore(Ljava/lang/Object;,5) (3389) + Handles null at 4257 +1526: LocalLoad(Ljava/lang/Object;,5) (3391) + Handles null at 4257 +1527: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3393) + Handles null at 4257 +1528: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3393) + Handles null at 4257 +1529: LocalLoad(Ljava/lang/Object;,0) (3393) + Handles null at 4257 +1530: Constant(I,0) (3393) + Handles null at 4257 +1531: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3393) + Handles null at 4257 +1532: Return(Ljava/lang/Object;) (3393) + Handles null at 4257 +1533: Constant(L;,null) (3394) + Handles null at 4257 +1534: LocalStore(Ljava/lang/Object;,6) (3395) + Handles null at 4257 +1535: LocalLoad(Ljava/lang/Object;,3) (3397) + Handles null at 4257 +1536: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3398) + Handles null at 4257 +1537: CheckCast(Ljava_cup/runtime/Symbol;) (3401) + Handles null at 4257 +1538: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3404) + Handles null at 4257 +1539: LocalStore(I,7) (3407) + Handles null at 4257 +1540: LocalLoad(Ljava/lang/Object;,3) (3409) + Handles null at 4257 +1541: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3410) + Handles null at 4257 +1542: CheckCast(Ljava_cup/runtime/Symbol;) (3413) + Handles null at 4257 +1543: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3416) + Handles null at 4257 +1544: LocalStore(I,8) (3419) + Handles null at 4257 +1545: LocalLoad(Ljava/lang/Object;,3) (3421) + Handles null at 4257 +1546: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3422) + Handles null at 4257 +1547: CheckCast(Ljava_cup/runtime/Symbol;) (3425) + Handles null at 4257 +1548: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3428) + Handles null at 4257 +1549: CheckCast(Ljava/lang/String;) (3431) + Handles null at 4257 +1550: LocalStore(Ljava/lang/Object;,9) (3434) + Handles null at 4257 +1551: LocalLoad(Ljava/lang/Object;,9) (3436) + Handles null at 4257 +1552: LocalStore(Ljava/lang/Object;,6) (3438) + Handles null at 4257 +1553: LocalLoad(Ljava/lang/Object;,0) (3440) + Handles null at 4257 +1554: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3441) + Handles null at 4257 +1555: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3444) + Handles null at 4257 +1556: Constant(Ljava/lang/String;,"opt_label") (3447) + Handles null at 4257 +1557: Constant(I,39) (3449) + Handles null at 4257 +1558: LocalLoad(Ljava/lang/Object;,3) (3451) + Handles null at 4257 +1559: LocalLoad(I,4) (3452) + Handles null at 4257 +1560: Constant(I,1) (3454) + Handles null at 4257 +1561: BinaryOp(I,sub) (3455) + Handles null at 4257 +1562: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3456) + Handles null at 4257 +1563: CheckCast(Ljava_cup/runtime/Symbol;) (3459) + Handles null at 4257 +1564: LocalLoad(Ljava/lang/Object;,3) (3462) + Handles null at 4257 +1565: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3463) + Handles null at 4257 +1566: CheckCast(Ljava_cup/runtime/Symbol;) (3466) + Handles null at 4257 +1567: LocalLoad(Ljava/lang/Object;,6) (3469) + Handles null at 4257 +1568: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3471) + Handles null at 4257 +1569: LocalStore(Ljava/lang/Object;,5) (3476) + Handles null at 4257 +1570: LocalLoad(Ljava/lang/Object;,5) (3478) + Handles null at 4257 +1571: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3480) + Handles null at 4257 +1572: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3480) + Handles null at 4257 +1573: LocalLoad(Ljava/lang/Object;,0) (3480) + Handles null at 4257 +1574: Constant(I,0) (3480) + Handles null at 4257 +1575: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3480) + Handles null at 4257 +1576: Return(Ljava/lang/Object;) (3480) + Handles null at 4257 +1577: Constant(L;,null) (3481) + Handles null at 4257 +1578: LocalStore(Ljava/lang/Object;,6) (3482) + Handles null at 4257 +1579: LocalLoad(Ljava/lang/Object;,3) (3484) + Handles null at 4257 +1580: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3485) + Handles null at 4257 +1581: CheckCast(Ljava_cup/runtime/Symbol;) (3488) + Handles null at 4257 +1582: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3491) + Handles null at 4257 +1583: LocalStore(I,7) (3494) + Handles null at 4257 +1584: LocalLoad(Ljava/lang/Object;,3) (3496) + Handles null at 4257 +1585: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3497) + Handles null at 4257 +1586: CheckCast(Ljava_cup/runtime/Symbol;) (3500) + Handles null at 4257 +1587: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3503) + Handles null at 4257 +1588: LocalStore(I,8) (3506) + Handles null at 4257 +1589: LocalLoad(Ljava/lang/Object;,3) (3508) + Handles null at 4257 +1590: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3509) + Handles null at 4257 +1591: CheckCast(Ljava_cup/runtime/Symbol;) (3512) + Handles null at 4257 +1592: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3515) + Handles null at 4257 +1593: CheckCast(Ljava/lang/String;) (3518) + Handles null at 4257 +1594: LocalStore(Ljava/lang/Object;,9) (3521) + Handles null at 4257 +1595: LocalLoad(Ljava/lang/Object;,0) (3523) + Handles null at 4257 +1596: New(Ljava_cup/action_part;,0) (3524) + Handles null at 4257 +1597: Dup(1,0) (3527) + Handles null at 4257 +1598: LocalLoad(Ljava/lang/Object;,9) (3528) + Handles null at 4257 +1599: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (3530) + Handles null at 4257 +1600: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3533) + Handles null at 4257 +1601: LocalLoad(Ljava/lang/Object;,0) (3536) + Handles null at 4257 +1602: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3537) + Handles null at 4257 +1603: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3540) + Handles null at 4257 +1604: Constant(Ljava/lang/String;,"prod_part") (3543) + Handles null at 4257 +1605: Constant(I,23) (3545) + Handles null at 4257 +1606: LocalLoad(Ljava/lang/Object;,3) (3547) + Handles null at 4257 +1607: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3548) + Handles null at 4257 +1608: CheckCast(Ljava_cup/runtime/Symbol;) (3551) + Handles null at 4257 +1609: LocalLoad(Ljava/lang/Object;,3) (3554) + Handles null at 4257 +1610: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3555) + Handles null at 4257 +1611: CheckCast(Ljava_cup/runtime/Symbol;) (3558) + Handles null at 4257 +1612: LocalLoad(Ljava/lang/Object;,6) (3561) + Handles null at 4257 +1613: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3563) + Handles null at 4257 +1614: LocalStore(Ljava/lang/Object;,5) (3568) + Handles null at 4257 +1615: LocalLoad(Ljava/lang/Object;,5) (3570) + Handles null at 4257 +1616: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3572) + Handles null at 4257 +1617: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3572) + Handles null at 4257 +1618: LocalLoad(Ljava/lang/Object;,0) (3572) + Handles null at 4257 +1619: Constant(I,0) (3572) + Handles null at 4257 +1620: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3572) + Handles null at 4257 +1621: Return(Ljava/lang/Object;) (3572) + Handles null at 4257 +1622: Constant(L;,null) (3573) + Handles null at 4257 +1623: LocalStore(Ljava/lang/Object;,6) (3574) + Handles null at 4257 +1624: LocalLoad(Ljava/lang/Object;,3) (3576) + Handles null at 4257 +1625: LocalLoad(I,4) (3577) + Handles null at 4257 +1626: Constant(I,1) (3579) + Handles null at 4257 +1627: BinaryOp(I,sub) (3580) + Handles null at 4257 +1628: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3581) + Handles null at 4257 +1629: CheckCast(Ljava_cup/runtime/Symbol;) (3584) + Handles null at 4257 +1630: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3587) + Handles null at 4257 +1631: LocalStore(I,7) (3590) + Handles null at 4257 +1632: LocalLoad(Ljava/lang/Object;,3) (3592) + Handles null at 4257 +1633: LocalLoad(I,4) (3593) + Handles null at 4257 +1634: Constant(I,1) (3595) + Handles null at 4257 +1635: BinaryOp(I,sub) (3596) + Handles null at 4257 +1636: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3597) + Handles null at 4257 +1637: CheckCast(Ljava_cup/runtime/Symbol;) (3600) + Handles null at 4257 +1638: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3603) + Handles null at 4257 +1639: LocalStore(I,8) (3606) + Handles null at 4257 +1640: LocalLoad(Ljava/lang/Object;,3) (3608) + Handles null at 4257 +1641: LocalLoad(I,4) (3609) + Handles null at 4257 +1642: Constant(I,1) (3611) + Handles null at 4257 +1643: BinaryOp(I,sub) (3612) + Handles null at 4257 +1644: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3613) + Handles null at 4257 +1645: CheckCast(Ljava_cup/runtime/Symbol;) (3616) + Handles null at 4257 +1646: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3619) + Handles null at 4257 +1647: CheckCast(Ljava/lang/String;) (3622) + Handles null at 4257 +1648: LocalStore(Ljava/lang/Object;,9) (3625) + Handles null at 4257 +1649: LocalLoad(Ljava/lang/Object;,3) (3627) + Handles null at 4257 +1650: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3628) + Handles null at 4257 +1651: CheckCast(Ljava_cup/runtime/Symbol;) (3631) + Handles null at 4257 +1652: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3634) + Handles null at 4257 +1653: LocalStore(I,10) (3637) + Handles null at 4257 +1654: LocalLoad(Ljava/lang/Object;,3) (3639) + Handles null at 4257 +1655: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3640) + Handles null at 4257 +1656: CheckCast(Ljava_cup/runtime/Symbol;) (3643) + Handles null at 4257 +1657: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (3646) + Handles null at 4257 +1658: LocalStore(I,11) (3649) + Handles null at 4257 +1659: LocalLoad(Ljava/lang/Object;,3) (3651) + Handles null at 4257 +1660: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3652) + Handles null at 4257 +1661: CheckCast(Ljava_cup/runtime/Symbol;) (3655) + Handles null at 4257 +1662: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (3658) + Handles null at 4257 +1663: CheckCast(Ljava/lang/String;) (3661) + Handles null at 4257 +1664: LocalStore(Ljava/lang/Object;,12) (3664) + Handles null at 4257 +1665: LocalLoad(Ljava/lang/Object;,0) (3666) + Handles null at 4257 +1666: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (3667) + Handles null at 4257 +1667: LocalLoad(Ljava/lang/Object;,9) (3670) + Handles null at 4257 +1668: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (3672) + Handles null at 4257 +1669: CheckCast(Ljava_cup/production_part;) (3675) + Handles null at 4257 +1670: LocalStore(Ljava/lang/Object;,13) (3678) + Handles null at 4257 +1671: LocalLoad(Ljava/lang/Object;,13) (3680) + Handles null at 4257 +1672: Constant(L;,null) (3682) + Handles null at 4257 +1673: ConditionalBranch(Ljava/lang/Object;,ne,1691) (3682) + Handles null at 4257 +1674: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (3685) + Handles null at 4257 +1675: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (3688) + Handles null at 4257 +1676: Constant(I,0) (3691) + Handles null at 4257 +1677: ConditionalBranch(I,ne,1697) (3691) + Handles null at 4257 +1678: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (3694) + Handles null at 4257 +1679: New(Ljava/lang/StringBuilder;,0) (3697) + Handles null at 4257 +1680: Dup(1,0) (3700) + Handles null at 4257 +1681: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (3701) + Handles null at 4257 +1682: Constant(Ljava/lang/String;,"java_cup.runtime.Symbol \"") (3704) + Handles null at 4257 +1683: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3706) + Handles null at 4257 +1684: LocalLoad(Ljava/lang/Object;,9) (3709) + Handles null at 4257 +1685: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3711) + Handles null at 4257 +1686: Constant(Ljava/lang/String;,"\" has not been declared") (3714) + Handles null at 4257 +1687: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (3716) + Handles null at 4257 +1688: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (3719) + Handles null at 4257 +1689: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (3722) + Handles null at 4257 +1690: Goto(1697) (3725) + Handles null at 4257 +1691: LocalLoad(Ljava/lang/Object;,0) (3728) + Handles null at 4257 +1692: LocalLoad(Ljava/lang/Object;,0) (3729) + Handles null at 4257 +1693: LocalLoad(Ljava/lang/Object;,13) (3730) + Handles null at 4257 +1694: LocalLoad(Ljava/lang/Object;,12) (3732) + Handles null at 4257 +1695: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_lab,(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;) (3734) + Handles null at 4257 +1696: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3737) + Handles null at 4257 +1697: LocalLoad(Ljava/lang/Object;,0) (3740) + Handles null at 4257 +1698: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3741) + Handles null at 4257 +1699: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3744) + Handles null at 4257 +1700: Constant(Ljava/lang/String;,"prod_part") (3747) + Handles null at 4257 +1701: Constant(I,23) (3749) + Handles null at 4257 +1702: LocalLoad(Ljava/lang/Object;,3) (3751) + Handles null at 4257 +1703: LocalLoad(I,4) (3752) + Handles null at 4257 +1704: Constant(I,1) (3754) + Handles null at 4257 +1705: BinaryOp(I,sub) (3755) + Handles null at 4257 +1706: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3756) + Handles null at 4257 +1707: CheckCast(Ljava_cup/runtime/Symbol;) (3759) + Handles null at 4257 +1708: LocalLoad(Ljava/lang/Object;,3) (3762) + Handles null at 4257 +1709: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3763) + Handles null at 4257 +1710: CheckCast(Ljava_cup/runtime/Symbol;) (3766) + Handles null at 4257 +1711: LocalLoad(Ljava/lang/Object;,6) (3769) + Handles null at 4257 +1712: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3771) + Handles null at 4257 +1713: LocalStore(Ljava/lang/Object;,5) (3776) + Handles null at 4257 +1714: LocalLoad(Ljava/lang/Object;,5) (3778) + Handles null at 4257 +1715: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3780) + Handles null at 4257 +1716: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3780) + Handles null at 4257 +1717: LocalLoad(Ljava/lang/Object;,0) (3780) + Handles null at 4257 +1718: Constant(I,0) (3780) + Handles null at 4257 +1719: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3780) + Handles null at 4257 +1720: Return(Ljava/lang/Object;) (3780) + Handles null at 4257 +1721: Constant(L;,null) (3781) + Handles null at 4257 +1722: LocalStore(Ljava/lang/Object;,6) (3782) + Handles null at 4257 +1723: LocalLoad(Ljava/lang/Object;,0) (3784) + Handles null at 4257 +1724: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3785) + Handles null at 4257 +1725: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3788) + Handles null at 4257 +1726: Constant(Ljava/lang/String;,"prod_part_list") (3791) + Handles null at 4257 +1727: Constant(I,22) (3793) + Handles null at 4257 +1728: LocalLoad(Ljava/lang/Object;,3) (3795) + Handles null at 4257 +1729: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3796) + Handles null at 4257 +1730: CheckCast(Ljava_cup/runtime/Symbol;) (3799) + Handles null at 4257 +1731: LocalLoad(Ljava/lang/Object;,3) (3802) + Handles null at 4257 +1732: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3803) + Handles null at 4257 +1733: CheckCast(Ljava_cup/runtime/Symbol;) (3806) + Handles null at 4257 +1734: LocalLoad(Ljava/lang/Object;,6) (3809) + Handles null at 4257 +1735: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3811) + Handles null at 4257 +1736: LocalStore(Ljava/lang/Object;,5) (3816) + Handles null at 4257 +1737: LocalLoad(Ljava/lang/Object;,5) (3818) + Handles null at 4257 +1738: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3820) + Handles null at 4257 +1739: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3820) + Handles null at 4257 +1740: LocalLoad(Ljava/lang/Object;,0) (3820) + Handles null at 4257 +1741: Constant(I,0) (3820) + Handles null at 4257 +1742: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3820) + Handles null at 4257 +1743: Return(Ljava/lang/Object;) (3820) + Handles null at 4257 +1744: Constant(L;,null) (3821) + Handles null at 4257 +1745: LocalStore(Ljava/lang/Object;,6) (3822) + Handles null at 4257 +1746: LocalLoad(Ljava/lang/Object;,0) (3824) + Handles null at 4257 +1747: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3825) + Handles null at 4257 +1748: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (3828) + Handles null at 4257 +1749: Constant(Ljava/lang/String;,"prod_part_list") (3831) + Handles null at 4257 +1750: Constant(I,22) (3833) + Handles null at 4257 +1751: LocalLoad(Ljava/lang/Object;,3) (3835) + Handles null at 4257 +1752: LocalLoad(I,4) (3836) + Handles null at 4257 +1753: Constant(I,1) (3838) + Handles null at 4257 +1754: BinaryOp(I,sub) (3839) + Handles null at 4257 +1755: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (3840) + Handles null at 4257 +1756: CheckCast(Ljava_cup/runtime/Symbol;) (3843) + Handles null at 4257 +1757: LocalLoad(Ljava/lang/Object;,3) (3846) + Handles null at 4257 +1758: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (3847) + Handles null at 4257 +1759: CheckCast(Ljava_cup/runtime/Symbol;) (3850) + Handles null at 4257 +1760: LocalLoad(Ljava/lang/Object;,6) (3853) + Handles null at 4257 +1761: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (3855) + Handles null at 4257 +1762: LocalStore(Ljava/lang/Object;,5) (3860) + Handles null at 4257 +1763: LocalLoad(Ljava/lang/Object;,5) (3862) + Handles null at 4257 +1764: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (3864) + Handles null at 4257 +1765: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (3864) + Handles null at 4257 +1766: LocalLoad(Ljava/lang/Object;,0) (3864) + Handles null at 4257 +1767: Constant(I,0) (3864) + Handles null at 4257 +1768: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3864) + Handles null at 4257 +1769: Return(Ljava/lang/Object;) (3864) + Handles null at 4257 +1770: Constant(L;,null) (3865) + Handles null at 4257 +1771: LocalStore(Ljava/lang/Object;,6) (3866) + Handles null at 4257 +1772: LocalLoad(Ljava/lang/Object;,0) (3868) + Handles null at 4257 +1773: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (3869) + Handles null at 4257 +1774: Constant(L;,null) (3872) + Handles null at 4257 +1775: ConditionalBranch(Ljava/lang/Object;,eq,1832) (3872) + Handles null at 4257 +1776: New(Ljava_cup/production;,0) (3875) + Handles null at 4257 +1777: Dup(1,0) (3878) + Handles null at 4257 +1778: LocalLoad(Ljava/lang/Object;,0) (3879) + Handles null at 4257 +1779: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (3880) + Handles null at 4257 +1780: LocalLoad(Ljava/lang/Object;,0) (3883) + Handles null at 4257 +1781: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (3884) + Handles null at 4257 +1782: LocalLoad(Ljava/lang/Object;,0) (3887) + Handles null at 4257 +1783: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (3888) + Handles null at 4257 +1784: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (3891) + Handles null at 4257 +1785: LocalStore(Ljava/lang/Object;,7) (3894) + Handles null at 4257 +1786: LocalLoad(Ljava/lang/Object;,0) (3896) + Handles null at 4257 +1787: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (3897) + Handles null at 4257 +1788: Constant(L;,null) (3900) + Handles null at 4257 +1789: ConditionalBranch(Ljava/lang/Object;,ne,1832) (3900) + Handles null at 4257 +1790: LocalLoad(Ljava/lang/Object;,0) (3903) + Handles null at 4257 +1791: LocalLoad(Ljava/lang/Object;,0) (3904) + Handles null at 4257 +1792: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (3905) + Handles null at 4257 +1793: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (3908) + Handles null at 4257 +1794: LocalLoad(Ljava/lang/Object;,0) (3911) + Handles null at 4257 +1795: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (3912) + Handles null at 4257 +1796: LocalLoad(Ljava/lang/Object;,0) (3915) + Handles null at 4257 +1797: LocalLoad(Ljava/lang/Object;,0) (3916) + Handles null at 4257 +1798: New(Ljava_cup/symbol_part;,0) (3917) + Handles null at 4257 +1799: Dup(1,0) (3920) + Handles null at 4257 +1800: LocalLoad(Ljava/lang/Object;,0) (3921) + Handles null at 4257 +1801: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (3922) + Handles null at 4257 +1802: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (3925) + Handles null at 4257 +1803: Constant(Ljava/lang/String;,"start_val") (3928) + Handles null at 4257 +1804: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_lab,(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;) (3930) + Handles null at 4257 +1805: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3933) + Handles null at 4257 +1806: LocalLoad(Ljava/lang/Object;,0) (3936) + Handles null at 4257 +1807: New(Ljava_cup/symbol_part;,0) (3937) + Handles null at 4257 +1808: Dup(1,0) (3940) + Handles null at 4257 +1809: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (3941) + Handles null at 4257 +1810: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (3944) + Handles null at 4257 +1811: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3947) + Handles null at 4257 +1812: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (3950) + Handles null at 4257 +1813: Constant(I,0) (3953) + Handles null at 4257 +1814: ConditionalBranch(I,ne,1821) (3953) + Handles null at 4257 +1815: LocalLoad(Ljava/lang/Object;,0) (3956) + Handles null at 4257 +1816: New(Ljava_cup/action_part;,0) (3957) + Handles null at 4257 +1817: Dup(1,0) (3960) + Handles null at 4257 +1818: Constant(Ljava/lang/String;,"RESULT = start_val;") (3961) + Handles null at 4257 +1819: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (3963) + Handles null at 4257 +1820: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (3966) + Handles null at 4257 +1821: New(Ljava_cup/production;,0) (3969) + Handles null at 4257 +1822: Dup(1,0) (3972) + Handles null at 4257 +1823: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (3973) + Handles null at 4257 +1824: LocalLoad(Ljava/lang/Object;,0) (3976) + Handles null at 4257 +1825: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (3977) + Handles null at 4257 +1826: LocalLoad(Ljava/lang/Object;,0) (3980) + Handles null at 4257 +1827: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (3981) + Handles null at 4257 +1828: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (3984) + Handles null at 4257 +1829: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (3987) + Handles null at 4257 +1830: LocalLoad(Ljava/lang/Object;,0) (3990) + Handles null at 4257 +1831: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (3991) + Handles null at 4257 +1832: LocalLoad(Ljava/lang/Object;,0) (3994) + Handles null at 4257 +1833: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (3995) + Handles null at 4257 +1834: LocalLoad(Ljava/lang/Object;,0) (3998) + Handles null at 4257 +1835: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (3999) + Handles null at 4257 +1836: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4002) + Handles null at 4257 +1837: Constant(Ljava/lang/String;,"rhs") (4005) + Handles null at 4257 +1838: Constant(I,27) (4007) + Handles null at 4257 +1839: LocalLoad(Ljava/lang/Object;,3) (4009) + Handles null at 4257 +1840: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4010) + Handles null at 4257 +1841: CheckCast(Ljava_cup/runtime/Symbol;) (4013) + Handles null at 4257 +1842: LocalLoad(Ljava/lang/Object;,3) (4016) + Handles null at 4257 +1843: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4017) + Handles null at 4257 +1844: CheckCast(Ljava_cup/runtime/Symbol;) (4020) + Handles null at 4257 +1845: LocalLoad(Ljava/lang/Object;,6) (4023) + Handles null at 4257 +1846: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4025) + Handles null at 4257 +1847: LocalStore(Ljava/lang/Object;,5) (4030) + Handles null at 4257 +1848: LocalLoad(Ljava/lang/Object;,5) (4032) + Handles null at 4257 +1849: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4034) + Handles null at 4257 +1850: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4034) + Handles null at 4257 +1851: LocalLoad(Ljava/lang/Object;,0) (4034) + Handles null at 4257 +1852: Constant(I,0) (4034) + Handles null at 4257 +1853: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4034) + Handles null at 4257 +1854: Return(Ljava/lang/Object;) (4034) + Handles null at 4257 +1855: Constant(L;,null) (4035) + Handles null at 4257 +1856: LocalStore(Ljava/lang/Object;,6) (4036) + Handles null at 4257 +1857: LocalLoad(Ljava/lang/Object;,3) (4038) + Handles null at 4257 +1858: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4039) + Handles null at 4257 +1859: CheckCast(Ljava_cup/runtime/Symbol;) (4042) + Handles null at 4257 +1860: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (4045) + Handles null at 4257 +1861: LocalStore(I,7) (4048) + Handles null at 4257 +1862: LocalLoad(Ljava/lang/Object;,3) (4050) + Handles null at 4257 +1863: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4051) + Handles null at 4257 +1864: CheckCast(Ljava_cup/runtime/Symbol;) (4054) + Handles null at 4257 +1865: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (4057) + Handles null at 4257 +1866: LocalStore(I,8) (4060) + Handles null at 4257 +1867: LocalLoad(Ljava/lang/Object;,3) (4062) + Handles null at 4257 +1868: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4063) + Handles null at 4257 +1869: CheckCast(Ljava_cup/runtime/Symbol;) (4066) + Handles null at 4257 +1870: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4069) + Handles null at 4257 +1871: CheckCast(Ljava/lang/String;) (4072) + Handles null at 4257 +1872: LocalStore(Ljava/lang/Object;,9) (4075) + Handles null at 4257 +1873: Constant(L;,null) (4077) + Handles null at 4257 +1874: LocalStore(Ljava/lang/Object;,10) (4078) + Handles null at 4257 +1875: LocalLoad(Ljava/lang/Object;,0) (4080) + Handles null at 4257 +1876: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4081) + Handles null at 4257 +1877: Constant(L;,null) (4084) + Handles null at 4257 +1878: ConditionalBranch(Ljava/lang/Object;,eq,2017) (4084) + Handles null at 4257 +1879: LocalLoad(Ljava/lang/Object;,9) (4087) + Handles null at 4257 +1880: Constant(L;,null) (4089) + Handles null at 4257 +1881: ConditionalBranch(Ljava/lang/Object;,ne,1888) (4089) + Handles null at 4257 +1882: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (4092) + Handles null at 4257 +1883: Constant(Ljava/lang/String;,"No terminal for contextual precedence") (4095) + Handles null at 4257 +1884: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (4097) + Handles null at 4257 +1885: Constant(L;,null) (4100) + Handles null at 4257 +1886: LocalStore(Ljava/lang/Object;,10) (4101) + Handles null at 4257 +1887: Goto(1895) (4103) + Handles null at 4257 +1888: LocalLoad(Ljava/lang/Object;,0) (4106) + Handles null at 4257 +1889: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (4107) + Handles null at 4257 +1890: LocalLoad(Ljava/lang/Object;,9) (4110) + Handles null at 4257 +1891: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (4112) + Handles null at 4257 +1892: CheckCast(Ljava_cup/symbol_part;) (4115) + Handles null at 4257 +1893: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (4118) + Handles null at 4257 +1894: LocalStore(Ljava/lang/Object;,10) (4121) + Handles null at 4257 +1895: LocalLoad(Ljava/lang/Object;,10) (4123) + Handles null at 4257 +1896: Constant(L;,null) (4125) + Handles null at 4257 +1897: ConditionalBranch(Ljava/lang/Object;,eq,1926) (4125) + Handles null at 4257 +1898: LocalLoad(Ljava/lang/Object;,10) (4128) + Handles null at 4257 +1899: Instanceof(Ljava_cup/terminal;) (4130) + Handles null at 4257 +1900: Constant(I,0) (4133) + Handles null at 4257 +1901: ConditionalBranch(I,eq,1926) (4133) + Handles null at 4257 +1902: New(Ljava_cup/production;,0) (4136) + Handles null at 4257 +1903: Dup(1,0) (4139) + Handles null at 4257 +1904: LocalLoad(Ljava/lang/Object;,0) (4140) + Handles null at 4257 +1905: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4141) + Handles null at 4257 +1906: LocalLoad(Ljava/lang/Object;,0) (4144) + Handles null at 4257 +1907: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (4145) + Handles null at 4257 +1908: LocalLoad(Ljava/lang/Object;,0) (4148) + Handles null at 4257 +1909: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (4149) + Handles null at 4257 +1910: LocalLoad(Ljava/lang/Object;,10) (4152) + Handles null at 4257 +1911: CheckCast(Ljava_cup/terminal;) (4154) + Handles null at 4257 +1912: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (4157) + Handles null at 4257 +1913: LocalLoad(Ljava/lang/Object;,10) (4160) + Handles null at 4257 +1914: CheckCast(Ljava_cup/terminal;) (4162) + Handles null at 4257 +1915: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (4165) + Handles null at 4257 +1916: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;III)V) (4168) + Handles null at 4257 +1917: LocalStore(Ljava/lang/Object;,11) (4171) + Handles null at 4257 +1918: LocalLoad(Ljava/lang/Object;,0) (4173) + Handles null at 4257 +1919: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (4174) + Handles null at 4257 +1920: LocalLoad(Ljava/lang/Object;,9) (4177) + Handles null at 4257 +1921: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (4179) + Handles null at 4257 +1922: CheckCast(Ljava_cup/symbol_part;) (4182) + Handles null at 4257 +1923: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (4185) + Handles null at 4257 +1924: Invoke(VIRTUAL,Ljava_cup/symbol;,note_use,()V) (4188) + Handles null at 4257 +1925: Goto(1948) (4191) + Handles null at 4257 +1926: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (4194) + Handles null at 4257 +1927: New(Ljava/lang/StringBuilder;,0) (4197) + Handles null at 4257 +1928: Dup(1,0) (4200) + Handles null at 4257 +1929: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4201) + Handles null at 4257 +1930: Constant(Ljava/lang/String;,"Invalid terminal ") (4204) + Handles null at 4257 +1931: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4206) + Handles null at 4257 +1932: LocalLoad(Ljava/lang/Object;,9) (4209) + Handles null at 4257 +1933: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4211) + Handles null at 4257 +1934: Constant(Ljava/lang/String;," for contextual precedence assignment") (4214) + Handles null at 4257 +1935: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4216) + Handles null at 4257 +1936: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (4219) + Handles null at 4257 +1937: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (4222) + Handles null at 4257 +1938: New(Ljava_cup/production;,0) (4225) + Handles null at 4257 +1939: Dup(1,0) (4228) + Handles null at 4257 +1940: LocalLoad(Ljava/lang/Object;,0) (4229) + Handles null at 4257 +1941: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4230) + Handles null at 4257 +1942: LocalLoad(Ljava/lang/Object;,0) (4233) + Handles null at 4257 +1943: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (4234) + Handles null at 4257 +1944: LocalLoad(Ljava/lang/Object;,0) (4237) + Handles null at 4257 +1945: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (4238) + Handles null at 4257 +1946: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (4241) + Handles null at 4257 +1947: LocalStore(Ljava/lang/Object;,11) (4244) + Handles null at 4257 +1948: LocalLoad(Ljava/lang/Object;,0) (4246) + Handles null at 4257 +1949: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (4247) + Handles null at 4257 +1950: Constant(L;,null) (4250) + Handles null at 4257 +1951: ConditionalBranch(Ljava/lang/Object;,ne,2017) (4250) + Handles null at 4257 +1952: LocalLoad(Ljava/lang/Object;,0) (4253) + Handles null at 4257 +1953: LocalLoad(Ljava/lang/Object;,0) (4254) + Handles null at 4257 +1954: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4255) + Handles null at 4257 +1955: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (4258) + Handles null at 4257 +1956: LocalLoad(Ljava/lang/Object;,0) (4261) + Handles null at 4257 +1957: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (4262) + Handles null at 4257 +1958: LocalLoad(Ljava/lang/Object;,0) (4265) + Handles null at 4257 +1959: LocalLoad(Ljava/lang/Object;,0) (4266) + Handles null at 4257 +1960: New(Ljava_cup/symbol_part;,0) (4267) + Handles null at 4257 +1961: Dup(1,0) (4270) + Handles null at 4257 +1962: LocalLoad(Ljava/lang/Object;,0) (4271) + Handles null at 4257 +1963: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (4272) + Handles null at 4257 +1964: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (4275) + Handles null at 4257 +1965: Constant(Ljava/lang/String;,"start_val") (4278) + Handles null at 4257 +1966: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_lab,(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;) (4280) + Handles null at 4257 +1967: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (4283) + Handles null at 4257 +1968: LocalLoad(Ljava/lang/Object;,0) (4286) + Handles null at 4257 +1969: New(Ljava_cup/symbol_part;,0) (4287) + Handles null at 4257 +1970: Dup(1,0) (4290) + Handles null at 4257 +1971: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (4291) + Handles null at 4257 +1972: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (4294) + Handles null at 4257 +1973: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (4297) + Handles null at 4257 +1974: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (4300) + Handles null at 4257 +1975: Constant(I,0) (4303) + Handles null at 4257 +1976: ConditionalBranch(I,ne,1983) (4303) + Handles null at 4257 +1977: LocalLoad(Ljava/lang/Object;,0) (4306) + Handles null at 4257 +1978: New(Ljava_cup/action_part;,0) (4307) + Handles null at 4257 +1979: Dup(1,0) (4310) + Handles null at 4257 +1980: Constant(Ljava/lang/String;,"RESULT = start_val;") (4311) + Handles null at 4257 +1981: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (4313) + Handles null at 4257 +1982: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (4316) + Handles null at 4257 +1983: LocalLoad(Ljava/lang/Object;,10) (4319) + Handles null at 4257 +1984: Constant(L;,null) (4321) + Handles null at 4257 +1985: ConditionalBranch(Ljava/lang/Object;,eq,2006) (4321) + Handles null at 4257 +1986: LocalLoad(Ljava/lang/Object;,10) (4324) + Handles null at 4257 +1987: Instanceof(Ljava_cup/terminal;) (4326) + Handles null at 4257 +1988: Constant(I,0) (4329) + Handles null at 4257 +1989: ConditionalBranch(I,eq,2006) (4329) + Handles null at 4257 +1990: New(Ljava_cup/production;,0) (4332) + Handles null at 4257 +1991: Dup(1,0) (4335) + Handles null at 4257 +1992: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (4336) + Handles null at 4257 +1993: LocalLoad(Ljava/lang/Object;,0) (4339) + Handles null at 4257 +1994: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (4340) + Handles null at 4257 +1995: LocalLoad(Ljava/lang/Object;,0) (4343) + Handles null at 4257 +1996: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (4344) + Handles null at 4257 +1997: LocalLoad(Ljava/lang/Object;,10) (4347) + Handles null at 4257 +1998: CheckCast(Ljava_cup/terminal;) (4349) + Handles null at 4257 +1999: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (4352) + Handles null at 4257 +2000: LocalLoad(Ljava/lang/Object;,10) (4355) + Handles null at 4257 +2001: CheckCast(Ljava_cup/terminal;) (4357) + Handles null at 4257 +2002: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (4360) + Handles null at 4257 +2003: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;III)V) (4363) + Handles null at 4257 +2004: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (4366) + Handles null at 4257 +2005: Goto(2015) (4369) + Handles null at 4257 +2006: New(Ljava_cup/production;,0) (4372) + Handles null at 4257 +2007: Dup(1,0) (4375) + Handles null at 4257 +2008: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (4376) + Handles null at 4257 +2009: LocalLoad(Ljava/lang/Object;,0) (4379) + Handles null at 4257 +2010: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (4380) + Handles null at 4257 +2011: LocalLoad(Ljava/lang/Object;,0) (4383) + Handles null at 4257 +2012: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (4384) + Handles null at 4257 +2013: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (4387) + Handles null at 4257 +2014: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (4390) + Handles null at 4257 +2015: LocalLoad(Ljava/lang/Object;,0) (4393) + Handles null at 4257 +2016: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (4394) + Handles null at 4257 +2017: LocalLoad(Ljava/lang/Object;,0) (4397) + Handles null at 4257 +2018: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (4398) + Handles null at 4257 +2019: LocalLoad(Ljava/lang/Object;,0) (4401) + Handles null at 4257 +2020: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4402) + Handles null at 4257 +2021: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4405) + Handles null at 4257 +2022: Constant(Ljava/lang/String;,"rhs") (4408) + Handles null at 4257 +2023: Constant(I,27) (4410) + Handles null at 4257 +2024: LocalLoad(Ljava/lang/Object;,3) (4412) + Handles null at 4257 +2025: LocalLoad(I,4) (4413) + Handles null at 4257 +2026: Constant(I,2) (4415) + Handles null at 4257 +2027: BinaryOp(I,sub) (4416) + Handles null at 4257 +2028: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4417) + Handles null at 4257 +2029: CheckCast(Ljava_cup/runtime/Symbol;) (4420) + Handles null at 4257 +2030: LocalLoad(Ljava/lang/Object;,3) (4423) + Handles null at 4257 +2031: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4424) + Handles null at 4257 +2032: CheckCast(Ljava_cup/runtime/Symbol;) (4427) + Handles null at 4257 +2033: LocalLoad(Ljava/lang/Object;,6) (4430) + Handles null at 4257 +2034: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4432) + Handles null at 4257 +2035: LocalStore(Ljava/lang/Object;,5) (4437) + Handles null at 4257 +2036: LocalLoad(Ljava/lang/Object;,5) (4439) + Handles null at 4257 +2037: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4441) + Handles null at 4257 +2038: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4441) + Handles null at 4257 +2039: LocalLoad(Ljava/lang/Object;,0) (4441) + Handles null at 4257 +2040: Constant(I,0) (4441) + Handles null at 4257 +2041: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4441) + Handles null at 4257 +2042: Return(Ljava/lang/Object;) (4441) + Handles null at 4257 +2043: Constant(L;,null) (4442) + Handles null at 4257 +2044: LocalStore(Ljava/lang/Object;,6) (4443) + Handles null at 4257 +2045: LocalLoad(Ljava/lang/Object;,0) (4445) + Handles null at 4257 +2046: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4446) + Handles null at 4257 +2047: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4449) + Handles null at 4257 +2048: Constant(Ljava/lang/String;,"rhs_list") (4452) + Handles null at 4257 +2049: Constant(I,26) (4454) + Handles null at 4257 +2050: LocalLoad(Ljava/lang/Object;,3) (4456) + Handles null at 4257 +2051: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4457) + Handles null at 4257 +2052: CheckCast(Ljava_cup/runtime/Symbol;) (4460) + Handles null at 4257 +2053: LocalLoad(Ljava/lang/Object;,3) (4463) + Handles null at 4257 +2054: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4464) + Handles null at 4257 +2055: CheckCast(Ljava_cup/runtime/Symbol;) (4467) + Handles null at 4257 +2056: LocalLoad(Ljava/lang/Object;,6) (4470) + Handles null at 4257 +2057: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4472) + Handles null at 4257 +2058: LocalStore(Ljava/lang/Object;,5) (4477) + Handles null at 4257 +2059: LocalLoad(Ljava/lang/Object;,5) (4479) + Handles null at 4257 +2060: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4481) + Handles null at 4257 +2061: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4481) + Handles null at 4257 +2062: LocalLoad(Ljava/lang/Object;,0) (4481) + Handles null at 4257 +2063: Constant(I,0) (4481) + Handles null at 4257 +2064: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4481) + Handles null at 4257 +2065: Return(Ljava/lang/Object;) (4481) + Handles null at 4257 +2066: Constant(L;,null) (4482) + Handles null at 4257 +2067: LocalStore(Ljava/lang/Object;,6) (4483) + Handles null at 4257 +2068: LocalLoad(Ljava/lang/Object;,0) (4485) + Handles null at 4257 +2069: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4486) + Handles null at 4257 +2070: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4489) + Handles null at 4257 +2071: Constant(Ljava/lang/String;,"rhs_list") (4492) + Handles null at 4257 +2072: Constant(I,26) (4494) + Handles null at 4257 +2073: LocalLoad(Ljava/lang/Object;,3) (4496) + Handles null at 4257 +2074: LocalLoad(I,4) (4497) + Handles null at 4257 +2075: Constant(I,2) (4499) + Handles null at 4257 +2076: BinaryOp(I,sub) (4500) + Handles null at 4257 +2077: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4501) + Handles null at 4257 +2078: CheckCast(Ljava_cup/runtime/Symbol;) (4504) + Handles null at 4257 +2079: LocalLoad(Ljava/lang/Object;,3) (4507) + Handles null at 4257 +2080: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4508) + Handles null at 4257 +2081: CheckCast(Ljava_cup/runtime/Symbol;) (4511) + Handles null at 4257 +2082: LocalLoad(Ljava/lang/Object;,6) (4514) + Handles null at 4257 +2083: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4516) + Handles null at 4257 +2084: LocalStore(Ljava/lang/Object;,5) (4521) + Handles null at 4257 +2085: LocalLoad(Ljava/lang/Object;,5) (4523) + Handles null at 4257 +2086: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4525) + Handles null at 4257 +2087: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4525) + Handles null at 4257 +2088: LocalLoad(Ljava/lang/Object;,0) (4525) + Handles null at 4257 +2089: Constant(I,0) (4525) + Handles null at 4257 +2090: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4525) + Handles null at 4257 +2091: Return(Ljava/lang/Object;) (4525) + Handles null at 4257 +2092: Constant(L;,null) (4526) + Handles null at 4257 +2093: LocalStore(Ljava/lang/Object;,6) (4527) + Handles null at 4257 +2094: LocalLoad(Ljava/lang/Object;,3) (4529) + Handles null at 4257 +2095: LocalLoad(I,4) (4530) + Handles null at 4257 +2096: Constant(I,1) (4532) + Handles null at 4257 +2097: BinaryOp(I,sub) (4533) + Handles null at 4257 +2098: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4534) + Handles null at 4257 +2099: CheckCast(Ljava_cup/runtime/Symbol;) (4537) + Handles null at 4257 +2100: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4540) + Handles null at 4257 +2101: LocalStore(Ljava/lang/Object;,6) (4543) + Handles null at 4257 +2102: LocalLoad(Ljava/lang/Object;,0) (4545) + Handles null at 4257 +2103: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4546) + Handles null at 4257 +2104: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4549) + Handles null at 4257 +2105: Constant(Ljava/lang/String;,"production") (4552) + Handles null at 4257 +2106: Constant(I,21) (4554) + Handles null at 4257 +2107: LocalLoad(Ljava/lang/Object;,3) (4556) + Handles null at 4257 +2108: LocalLoad(I,4) (4557) + Handles null at 4257 +2109: Constant(I,2) (4559) + Handles null at 4257 +2110: BinaryOp(I,sub) (4560) + Handles null at 4257 +2111: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4561) + Handles null at 4257 +2112: CheckCast(Ljava_cup/runtime/Symbol;) (4564) + Handles null at 4257 +2113: LocalLoad(Ljava/lang/Object;,3) (4567) + Handles null at 4257 +2114: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4568) + Handles null at 4257 +2115: CheckCast(Ljava_cup/runtime/Symbol;) (4571) + Handles null at 4257 +2116: LocalLoad(Ljava/lang/Object;,6) (4574) + Handles null at 4257 +2117: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4576) + Handles null at 4257 +2118: LocalStore(Ljava/lang/Object;,5) (4581) + Handles null at 4257 +2119: LocalLoad(Ljava/lang/Object;,5) (4583) + Handles null at 4257 +2120: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4585) + Handles null at 4257 +2121: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4585) + Handles null at 4257 +2122: LocalLoad(Ljava/lang/Object;,0) (4585) + Handles null at 4257 +2123: Constant(I,0) (4585) + Handles null at 4257 +2124: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4585) + Handles null at 4257 +2125: Return(Ljava/lang/Object;) (4585) + Handles null at 4257 +2126: Constant(L;,null) (4586) + Handles null at 4257 +2127: LocalStore(Ljava/lang/Object;,6) (4587) + Handles null at 4257 +2128: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (4589) + Handles null at 4257 +2129: Constant(Ljava/lang/String;,"Syntax Error") (4592) + Handles null at 4257 +2130: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (4594) + Handles null at 4257 +2131: LocalLoad(Ljava/lang/Object;,0) (4597) + Handles null at 4257 +2132: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4598) + Handles null at 4257 +2133: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4601) + Handles null at 4257 +2134: Constant(Ljava/lang/String;,"NT$12") (4604) + Handles null at 4257 +2135: Constant(I,58) (4606) + Handles null at 4257 +2136: LocalLoad(Ljava/lang/Object;,3) (4608) + Handles null at 4257 +2137: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4609) + Handles null at 4257 +2138: CheckCast(Ljava_cup/runtime/Symbol;) (4612) + Handles null at 4257 +2139: LocalLoad(Ljava/lang/Object;,3) (4615) + Handles null at 4257 +2140: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4616) + Handles null at 4257 +2141: CheckCast(Ljava_cup/runtime/Symbol;) (4619) + Handles null at 4257 +2142: LocalLoad(Ljava/lang/Object;,6) (4622) + Handles null at 4257 +2143: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4624) + Handles null at 4257 +2144: LocalStore(Ljava/lang/Object;,5) (4629) + Handles null at 4257 +2145: LocalLoad(Ljava/lang/Object;,5) (4631) + Handles null at 4257 +2146: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4633) + Handles null at 4257 +2147: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4633) + Handles null at 4257 +2148: LocalLoad(Ljava/lang/Object;,0) (4633) + Handles null at 4257 +2149: Constant(I,0) (4633) + Handles null at 4257 +2150: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4633) + Handles null at 4257 +2151: Return(Ljava/lang/Object;) (4633) + Handles null at 4257 +2152: Constant(L;,null) (4634) + Handles null at 4257 +2153: LocalStore(Ljava/lang/Object;,6) (4635) + Handles null at 4257 +2154: LocalLoad(Ljava/lang/Object;,3) (4637) + Handles null at 4257 +2155: LocalLoad(I,4) (4638) + Handles null at 4257 +2156: Constant(I,3) (4640) + Handles null at 4257 +2157: BinaryOp(I,sub) (4641) + Handles null at 4257 +2158: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4642) + Handles null at 4257 +2159: CheckCast(Ljava_cup/runtime/Symbol;) (4645) + Handles null at 4257 +2160: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4648) + Handles null at 4257 +2161: LocalStore(Ljava/lang/Object;,6) (4651) + Handles null at 4257 +2162: LocalLoad(Ljava/lang/Object;,3) (4653) + Handles null at 4257 +2163: LocalLoad(I,4) (4654) + Handles null at 4257 +2164: Constant(I,4) (4656) + Handles null at 4257 +2165: BinaryOp(I,sub) (4657) + Handles null at 4257 +2166: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4658) + Handles null at 4257 +2167: CheckCast(Ljava_cup/runtime/Symbol;) (4661) + Handles null at 4257 +2168: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (4664) + Handles null at 4257 +2169: LocalStore(I,7) (4667) + Handles null at 4257 +2170: LocalLoad(Ljava/lang/Object;,3) (4669) + Handles null at 4257 +2171: LocalLoad(I,4) (4670) + Handles null at 4257 +2172: Constant(I,4) (4672) + Handles null at 4257 +2173: BinaryOp(I,sub) (4673) + Handles null at 4257 +2174: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4674) + Handles null at 4257 +2175: CheckCast(Ljava_cup/runtime/Symbol;) (4677) + Handles null at 4257 +2176: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (4680) + Handles null at 4257 +2177: LocalStore(I,8) (4683) + Handles null at 4257 +2178: LocalLoad(Ljava/lang/Object;,3) (4685) + Handles null at 4257 +2179: LocalLoad(I,4) (4686) + Handles null at 4257 +2180: Constant(I,4) (4688) + Handles null at 4257 +2181: BinaryOp(I,sub) (4689) + Handles null at 4257 +2182: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4690) + Handles null at 4257 +2183: CheckCast(Ljava_cup/runtime/Symbol;) (4693) + Handles null at 4257 +2184: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4696) + Handles null at 4257 +2185: CheckCast(Ljava/lang/String;) (4699) + Handles null at 4257 +2186: LocalStore(Ljava/lang/Object;,9) (4702) + Handles null at 4257 +2187: LocalLoad(Ljava/lang/Object;,0) (4704) + Handles null at 4257 +2188: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4705) + Handles null at 4257 +2189: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4708) + Handles null at 4257 +2190: Constant(Ljava/lang/String;,"production") (4711) + Handles null at 4257 +2191: Constant(I,21) (4713) + Handles null at 4257 +2192: LocalLoad(Ljava/lang/Object;,3) (4715) + Handles null at 4257 +2193: LocalLoad(I,4) (4716) + Handles null at 4257 +2194: Constant(I,4) (4718) + Handles null at 4257 +2195: BinaryOp(I,sub) (4719) + Handles null at 4257 +2196: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4720) + Handles null at 4257 +2197: CheckCast(Ljava_cup/runtime/Symbol;) (4723) + Handles null at 4257 +2198: LocalLoad(Ljava/lang/Object;,3) (4726) + Handles null at 4257 +2199: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4727) + Handles null at 4257 +2200: CheckCast(Ljava_cup/runtime/Symbol;) (4730) + Handles null at 4257 +2201: LocalLoad(Ljava/lang/Object;,6) (4733) + Handles null at 4257 +2202: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4735) + Handles null at 4257 +2203: LocalStore(Ljava/lang/Object;,5) (4740) + Handles null at 4257 +2204: LocalLoad(Ljava/lang/Object;,5) (4742) + Handles null at 4257 +2205: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4744) + Handles null at 4257 +2206: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4744) + Handles null at 4257 +2207: LocalLoad(Ljava/lang/Object;,0) (4744) + Handles null at 4257 +2208: Constant(I,0) (4744) + Handles null at 4257 +2209: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4744) + Handles null at 4257 +2210: Return(Ljava/lang/Object;) (4744) + Handles null at 4257 +2211: Constant(L;,null) (4745) + Handles null at 4257 +2212: LocalStore(Ljava/lang/Object;,6) (4746) + Handles null at 4257 +2213: LocalLoad(Ljava/lang/Object;,3) (4748) + Handles null at 4257 +2214: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4749) + Handles null at 4257 +2215: CheckCast(Ljava_cup/runtime/Symbol;) (4752) + Handles null at 4257 +2216: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (4755) + Handles null at 4257 +2217: LocalStore(I,7) (4758) + Handles null at 4257 +2218: LocalLoad(Ljava/lang/Object;,3) (4760) + Handles null at 4257 +2219: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4761) + Handles null at 4257 +2220: CheckCast(Ljava_cup/runtime/Symbol;) (4764) + Handles null at 4257 +2221: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (4767) + Handles null at 4257 +2222: LocalStore(I,8) (4770) + Handles null at 4257 +2223: LocalLoad(Ljava/lang/Object;,3) (4772) + Handles null at 4257 +2224: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4773) + Handles null at 4257 +2225: CheckCast(Ljava_cup/runtime/Symbol;) (4776) + Handles null at 4257 +2226: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (4779) + Handles null at 4257 +2227: CheckCast(Ljava/lang/String;) (4782) + Handles null at 4257 +2228: LocalStore(Ljava/lang/Object;,9) (4785) + Handles null at 4257 +2229: LocalLoad(Ljava/lang/Object;,0) (4787) + Handles null at 4257 +2230: LocalLoad(Ljava/lang/Object;,0) (4788) + Handles null at 4257 +2231: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (4789) + Handles null at 4257 +2232: LocalLoad(Ljava/lang/Object;,9) (4792) + Handles null at 4257 +2233: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (4794) + Handles null at 4257 +2234: CheckCast(Ljava_cup/non_terminal;) (4797) + Handles null at 4257 +2235: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4800) + Handles null at 4257 +2236: LocalLoad(Ljava/lang/Object;,0) (4803) + Handles null at 4257 +2237: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,lhs_nt) (4804) + Handles null at 4257 +2238: Constant(L;,null) (4807) + Handles null at 4257 +2239: ConditionalBranch(Ljava/lang/Object;,ne,2256) (4807) + Handles null at 4257 +2240: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (4810) + Handles null at 4257 +2241: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (4813) + Handles null at 4257 +2242: Constant(I,0) (4816) + Handles null at 4257 +2243: ConditionalBranch(I,ne,2256) (4816) + Handles null at 4257 +2244: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (4819) + Handles null at 4257 +2245: New(Ljava/lang/StringBuilder;,0) (4822) + Handles null at 4257 +2246: Dup(1,0) (4825) + Handles null at 4257 +2247: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4826) + Handles null at 4257 +2248: Constant(Ljava/lang/String;,"LHS non terminal \"") (4829) + Handles null at 4257 +2249: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4831) + Handles null at 4257 +2250: LocalLoad(Ljava/lang/Object;,9) (4834) + Handles null at 4257 +2251: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4836) + Handles null at 4257 +2252: Constant(Ljava/lang/String;,"\" has not been declared") (4839) + Handles null at 4257 +2253: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (4841) + Handles null at 4257 +2254: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (4844) + Handles null at 4257 +2255: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (4847) + Handles null at 4257 +2256: LocalLoad(Ljava/lang/Object;,0) (4850) + Handles null at 4257 +2257: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (4851) + Handles null at 4257 +2258: LocalLoad(Ljava/lang/Object;,0) (4854) + Handles null at 4257 +2259: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4855) + Handles null at 4257 +2260: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4858) + Handles null at 4257 +2261: Constant(Ljava/lang/String;,"NT$11") (4861) + Handles null at 4257 +2262: Constant(I,57) (4863) + Handles null at 4257 +2263: LocalLoad(Ljava/lang/Object;,3) (4865) + Handles null at 4257 +2264: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4866) + Handles null at 4257 +2265: CheckCast(Ljava_cup/runtime/Symbol;) (4869) + Handles null at 4257 +2266: LocalLoad(Ljava/lang/Object;,3) (4872) + Handles null at 4257 +2267: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4873) + Handles null at 4257 +2268: CheckCast(Ljava_cup/runtime/Symbol;) (4876) + Handles null at 4257 +2269: LocalLoad(Ljava/lang/Object;,6) (4879) + Handles null at 4257 +2270: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4881) + Handles null at 4257 +2271: LocalStore(Ljava/lang/Object;,5) (4886) + Handles null at 4257 +2272: LocalLoad(Ljava/lang/Object;,5) (4888) + Handles null at 4257 +2273: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4890) + Handles null at 4257 +2274: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4890) + Handles null at 4257 +2275: LocalLoad(Ljava/lang/Object;,0) (4890) + Handles null at 4257 +2276: Constant(I,0) (4890) + Handles null at 4257 +2277: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4890) + Handles null at 4257 +2278: Return(Ljava/lang/Object;) (4890) + Handles null at 4257 +2279: Constant(L;,null) (4891) + Handles null at 4257 +2280: LocalStore(Ljava/lang/Object;,6) (4892) + Handles null at 4257 +2281: LocalLoad(Ljava/lang/Object;,0) (4894) + Handles null at 4257 +2282: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4895) + Handles null at 4257 +2283: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4898) + Handles null at 4257 +2284: Constant(Ljava/lang/String;,"production_list") (4901) + Handles null at 4257 +2285: Constant(I,11) (4903) + Handles null at 4257 +2286: LocalLoad(Ljava/lang/Object;,3) (4905) + Handles null at 4257 +2287: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4906) + Handles null at 4257 +2288: CheckCast(Ljava_cup/runtime/Symbol;) (4909) + Handles null at 4257 +2289: LocalLoad(Ljava/lang/Object;,3) (4912) + Handles null at 4257 +2290: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4913) + Handles null at 4257 +2291: CheckCast(Ljava_cup/runtime/Symbol;) (4916) + Handles null at 4257 +2292: LocalLoad(Ljava/lang/Object;,6) (4919) + Handles null at 4257 +2293: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4921) + Handles null at 4257 +2294: LocalStore(Ljava/lang/Object;,5) (4926) + Handles null at 4257 +2295: LocalLoad(Ljava/lang/Object;,5) (4928) + Handles null at 4257 +2296: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4930) + Handles null at 4257 +2297: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4930) + Handles null at 4257 +2298: LocalLoad(Ljava/lang/Object;,0) (4930) + Handles null at 4257 +2299: Constant(I,0) (4930) + Handles null at 4257 +2300: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4930) + Handles null at 4257 +2301: Return(Ljava/lang/Object;) (4930) + Handles null at 4257 +2302: Constant(L;,null) (4931) + Handles null at 4257 +2303: LocalStore(Ljava/lang/Object;,6) (4932) + Handles null at 4257 +2304: LocalLoad(Ljava/lang/Object;,0) (4934) + Handles null at 4257 +2305: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4935) + Handles null at 4257 +2306: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4938) + Handles null at 4257 +2307: Constant(Ljava/lang/String;,"production_list") (4941) + Handles null at 4257 +2308: Constant(I,11) (4943) + Handles null at 4257 +2309: LocalLoad(Ljava/lang/Object;,3) (4945) + Handles null at 4257 +2310: LocalLoad(I,4) (4946) + Handles null at 4257 +2311: Constant(I,1) (4948) + Handles null at 4257 +2312: BinaryOp(I,sub) (4949) + Handles null at 4257 +2313: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (4950) + Handles null at 4257 +2314: CheckCast(Ljava_cup/runtime/Symbol;) (4953) + Handles null at 4257 +2315: LocalLoad(Ljava/lang/Object;,3) (4956) + Handles null at 4257 +2316: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4957) + Handles null at 4257 +2317: CheckCast(Ljava_cup/runtime/Symbol;) (4960) + Handles null at 4257 +2318: LocalLoad(Ljava/lang/Object;,6) (4963) + Handles null at 4257 +2319: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (4965) + Handles null at 4257 +2320: LocalStore(Ljava/lang/Object;,5) (4970) + Handles null at 4257 +2321: LocalLoad(Ljava/lang/Object;,5) (4972) + Handles null at 4257 +2322: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (4974) + Handles null at 4257 +2323: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (4974) + Handles null at 4257 +2324: LocalLoad(Ljava/lang/Object;,0) (4974) + Handles null at 4257 +2325: Constant(I,0) (4974) + Handles null at 4257 +2326: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4974) + Handles null at 4257 +2327: Return(Ljava/lang/Object;) (4974) + Handles null at 4257 +2328: Constant(L;,null) (4975) + Handles null at 4257 +2329: LocalStore(Ljava/lang/Object;,6) (4976) + Handles null at 4257 +2330: LocalLoad(Ljava/lang/Object;,0) (4978) + Handles null at 4257 +2331: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (4979) + Handles null at 4257 +2332: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (4982) + Handles null at 4257 +2333: Constant(Ljava/lang/String;,"start_spec") (4985) + Handles null at 4257 +2334: Constant(I,10) (4987) + Handles null at 4257 +2335: LocalLoad(Ljava/lang/Object;,3) (4989) + Handles null at 4257 +2336: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4990) + Handles null at 4257 +2337: CheckCast(Ljava_cup/runtime/Symbol;) (4993) + Handles null at 4257 +2338: LocalLoad(Ljava/lang/Object;,3) (4996) + Handles null at 4257 +2339: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (4997) + Handles null at 4257 +2340: CheckCast(Ljava_cup/runtime/Symbol;) (5000) + Handles null at 4257 +2341: LocalLoad(Ljava/lang/Object;,6) (5003) + Handles null at 4257 +2342: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5005) + Handles null at 4257 +2343: LocalStore(Ljava/lang/Object;,5) (5010) + Handles null at 4257 +2344: LocalLoad(Ljava/lang/Object;,5) (5012) + Handles null at 4257 +2345: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5014) + Handles null at 4257 +2346: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5014) + Handles null at 4257 +2347: LocalLoad(Ljava/lang/Object;,0) (5014) + Handles null at 4257 +2348: Constant(I,0) (5014) + Handles null at 4257 +2349: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5014) + Handles null at 4257 +2350: Return(Ljava/lang/Object;) (5014) + Handles null at 4257 +2351: Constant(L;,null) (5015) + Handles null at 4257 +2352: LocalStore(Ljava/lang/Object;,6) (5016) + Handles null at 4257 +2353: LocalLoad(Ljava/lang/Object;,3) (5018) + Handles null at 4257 +2354: LocalLoad(I,4) (5019) + Handles null at 4257 +2355: Constant(I,1) (5021) + Handles null at 4257 +2356: BinaryOp(I,sub) (5022) + Handles null at 4257 +2357: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5023) + Handles null at 4257 +2358: CheckCast(Ljava_cup/runtime/Symbol;) (5026) + Handles null at 4257 +2359: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5029) + Handles null at 4257 +2360: LocalStore(Ljava/lang/Object;,6) (5032) + Handles null at 4257 +2361: LocalLoad(Ljava/lang/Object;,3) (5034) + Handles null at 4257 +2362: LocalLoad(I,4) (5035) + Handles null at 4257 +2363: Constant(I,2) (5037) + Handles null at 4257 +2364: BinaryOp(I,sub) (5038) + Handles null at 4257 +2365: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5039) + Handles null at 4257 +2366: CheckCast(Ljava_cup/runtime/Symbol;) (5042) + Handles null at 4257 +2367: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (5045) + Handles null at 4257 +2368: LocalStore(I,7) (5048) + Handles null at 4257 +2369: LocalLoad(Ljava/lang/Object;,3) (5050) + Handles null at 4257 +2370: LocalLoad(I,4) (5051) + Handles null at 4257 +2371: Constant(I,2) (5053) + Handles null at 4257 +2372: BinaryOp(I,sub) (5054) + Handles null at 4257 +2373: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5055) + Handles null at 4257 +2374: CheckCast(Ljava_cup/runtime/Symbol;) (5058) + Handles null at 4257 +2375: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (5061) + Handles null at 4257 +2376: LocalStore(I,8) (5064) + Handles null at 4257 +2377: LocalLoad(Ljava/lang/Object;,3) (5066) + Handles null at 4257 +2378: LocalLoad(I,4) (5067) + Handles null at 4257 +2379: Constant(I,2) (5069) + Handles null at 4257 +2380: BinaryOp(I,sub) (5070) + Handles null at 4257 +2381: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5071) + Handles null at 4257 +2382: CheckCast(Ljava_cup/runtime/Symbol;) (5074) + Handles null at 4257 +2383: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5077) + Handles null at 4257 +2384: CheckCast(Ljava/lang/String;) (5080) + Handles null at 4257 +2385: LocalStore(Ljava/lang/Object;,9) (5083) + Handles null at 4257 +2386: LocalLoad(Ljava/lang/Object;,0) (5085) + Handles null at 4257 +2387: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5086) + Handles null at 4257 +2388: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5089) + Handles null at 4257 +2389: Constant(Ljava/lang/String;,"start_spec") (5092) + Handles null at 4257 +2390: Constant(I,10) (5094) + Handles null at 4257 +2391: LocalLoad(Ljava/lang/Object;,3) (5096) + Handles null at 4257 +2392: LocalLoad(I,4) (5097) + Handles null at 4257 +2393: Constant(I,4) (5099) + Handles null at 4257 +2394: BinaryOp(I,sub) (5100) + Handles null at 4257 +2395: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5101) + Handles null at 4257 +2396: CheckCast(Ljava_cup/runtime/Symbol;) (5104) + Handles null at 4257 +2397: LocalLoad(Ljava/lang/Object;,3) (5107) + Handles null at 4257 +2398: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5108) + Handles null at 4257 +2399: CheckCast(Ljava_cup/runtime/Symbol;) (5111) + Handles null at 4257 +2400: LocalLoad(Ljava/lang/Object;,6) (5114) + Handles null at 4257 +2401: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5116) + Handles null at 4257 +2402: LocalStore(Ljava/lang/Object;,5) (5121) + Handles null at 4257 +2403: LocalLoad(Ljava/lang/Object;,5) (5123) + Handles null at 4257 +2404: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5125) + Handles null at 4257 +2405: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5125) + Handles null at 4257 +2406: LocalLoad(Ljava/lang/Object;,0) (5125) + Handles null at 4257 +2407: Constant(I,0) (5125) + Handles null at 4257 +2408: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5125) + Handles null at 4257 +2409: Return(Ljava/lang/Object;) (5125) + Handles null at 4257 +2410: Constant(L;,null) (5126) + Handles null at 4257 +2411: LocalStore(Ljava/lang/Object;,6) (5127) + Handles null at 4257 +2412: LocalLoad(Ljava/lang/Object;,3) (5129) + Handles null at 4257 +2413: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5130) + Handles null at 4257 +2414: CheckCast(Ljava_cup/runtime/Symbol;) (5133) + Handles null at 4257 +2415: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (5136) + Handles null at 4257 +2416: LocalStore(I,7) (5139) + Handles null at 4257 +2417: LocalLoad(Ljava/lang/Object;,3) (5141) + Handles null at 4257 +2418: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5142) + Handles null at 4257 +2419: CheckCast(Ljava_cup/runtime/Symbol;) (5145) + Handles null at 4257 +2420: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (5148) + Handles null at 4257 +2421: LocalStore(I,8) (5151) + Handles null at 4257 +2422: LocalLoad(Ljava/lang/Object;,3) (5153) + Handles null at 4257 +2423: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5154) + Handles null at 4257 +2424: CheckCast(Ljava_cup/runtime/Symbol;) (5157) + Handles null at 4257 +2425: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5160) + Handles null at 4257 +2426: CheckCast(Ljava/lang/String;) (5163) + Handles null at 4257 +2427: LocalStore(Ljava/lang/Object;,9) (5166) + Handles null at 4257 +2428: LocalLoad(Ljava/lang/Object;,0) (5168) + Handles null at 4257 +2429: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (5169) + Handles null at 4257 +2430: LocalLoad(Ljava/lang/Object;,9) (5172) + Handles null at 4257 +2431: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (5174) + Handles null at 4257 +2432: CheckCast(Ljava_cup/non_terminal;) (5177) + Handles null at 4257 +2433: LocalStore(Ljava/lang/Object;,10) (5180) + Handles null at 4257 +2434: LocalLoad(Ljava/lang/Object;,10) (5182) + Handles null at 4257 +2435: Constant(L;,null) (5184) + Handles null at 4257 +2436: ConditionalBranch(Ljava/lang/Object;,ne,2450) (5184) + Handles null at 4257 +2437: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (5187) + Handles null at 4257 +2438: New(Ljava/lang/StringBuilder;,0) (5190) + Handles null at 4257 +2439: Dup(1,0) (5193) + Handles null at 4257 +2440: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (5194) + Handles null at 4257 +2441: Constant(Ljava/lang/String;,"Start non terminal \"") (5197) + Handles null at 4257 +2442: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5199) + Handles null at 4257 +2443: LocalLoad(Ljava/lang/Object;,9) (5202) + Handles null at 4257 +2444: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5204) + Handles null at 4257 +2445: Constant(Ljava/lang/String;,"\" has not been declared") (5207) + Handles null at 4257 +2446: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5209) + Handles null at 4257 +2447: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (5212) + Handles null at 4257 +2448: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (5215) + Handles null at 4257 +2449: Goto(2491) (5218) + Handles null at 4257 +2450: LocalLoad(Ljava/lang/Object;,0) (5221) + Handles null at 4257 +2451: LocalLoad(Ljava/lang/Object;,10) (5222) + Handles null at 4257 +2452: Put(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (5224) + Handles null at 4257 +2453: LocalLoad(Ljava/lang/Object;,0) (5227) + Handles null at 4257 +2454: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (5228) + Handles null at 4257 +2455: LocalLoad(Ljava/lang/Object;,0) (5231) + Handles null at 4257 +2456: LocalLoad(Ljava/lang/Object;,0) (5232) + Handles null at 4257 +2457: New(Ljava_cup/symbol_part;,0) (5233) + Handles null at 4257 +2458: Dup(1,0) (5236) + Handles null at 4257 +2459: LocalLoad(Ljava/lang/Object;,0) (5237) + Handles null at 4257 +2460: Get(Ljava_cup/non_terminal;,NONSTATIC,Ljava_cup/CUP$parser$actions;,start_nt) (5238) + Handles null at 4257 +2461: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (5241) + Handles null at 4257 +2462: Constant(Ljava/lang/String;,"start_val") (5244) + Handles null at 4257 +2463: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_lab,(Ljava_cup/production_part;Ljava/lang/String;)Ljava_cup/production_part;) (5246) + Handles null at 4257 +2464: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (5249) + Handles null at 4257 +2465: LocalLoad(Ljava/lang/Object;,0) (5252) + Handles null at 4257 +2466: New(Ljava_cup/symbol_part;,0) (5253) + Handles null at 4257 +2467: Dup(1,0) (5256) + Handles null at 4257 +2468: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (5257) + Handles null at 4257 +2469: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (5260) + Handles null at 4257 +2470: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (5263) + Handles null at 4257 +2471: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (5266) + Handles null at 4257 +2472: Constant(I,0) (5269) + Handles null at 4257 +2473: ConditionalBranch(I,ne,2480) (5269) + Handles null at 4257 +2474: LocalLoad(Ljava/lang/Object;,0) (5272) + Handles null at 4257 +2475: New(Ljava_cup/action_part;,0) (5273) + Handles null at 4257 +2476: Dup(1,0) (5276) + Handles null at 4257 +2477: Constant(Ljava/lang/String;,"RESULT = start_val;") (5277) + Handles null at 4257 +2478: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (5279) + Handles null at 4257 +2479: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_rhs_part,(Ljava_cup/production_part;)V) (5282) + Handles null at 4257 +2480: New(Ljava_cup/production;,0) (5285) + Handles null at 4257 +2481: Dup(1,0) (5288) + Handles null at 4257 +2482: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (5289) + Handles null at 4257 +2483: LocalLoad(Ljava/lang/Object;,0) (5292) + Handles null at 4257 +2484: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_parts) (5293) + Handles null at 4257 +2485: LocalLoad(Ljava/lang/Object;,0) (5296) + Handles null at 4257 +2486: Get(I,NONSTATIC,Ljava_cup/CUP$parser$actions;,rhs_pos) (5297) + Handles null at 4257 +2487: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V) (5300) + Handles null at 4257 +2488: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (5303) + Handles null at 4257 +2489: LocalLoad(Ljava/lang/Object;,0) (5306) + Handles null at 4257 +2490: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,new_rhs,()V) (5307) + Handles null at 4257 +2491: LocalLoad(Ljava/lang/Object;,0) (5310) + Handles null at 4257 +2492: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5311) + Handles null at 4257 +2493: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5314) + Handles null at 4257 +2494: Constant(Ljava/lang/String;,"NT$10") (5317) + Handles null at 4257 +2495: Constant(I,56) (5319) + Handles null at 4257 +2496: LocalLoad(Ljava/lang/Object;,3) (5321) + Handles null at 4257 +2497: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5322) + Handles null at 4257 +2498: CheckCast(Ljava_cup/runtime/Symbol;) (5325) + Handles null at 4257 +2499: LocalLoad(Ljava/lang/Object;,3) (5328) + Handles null at 4257 +2500: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5329) + Handles null at 4257 +2501: CheckCast(Ljava_cup/runtime/Symbol;) (5332) + Handles null at 4257 +2502: LocalLoad(Ljava/lang/Object;,6) (5335) + Handles null at 4257 +2503: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5337) + Handles null at 4257 +2504: LocalStore(Ljava/lang/Object;,5) (5342) + Handles null at 4257 +2505: LocalLoad(Ljava/lang/Object;,5) (5344) + Handles null at 4257 +2506: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5346) + Handles null at 4257 +2507: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5346) + Handles null at 4257 +2508: LocalLoad(Ljava/lang/Object;,0) (5346) + Handles null at 4257 +2509: Constant(I,0) (5346) + Handles null at 4257 +2510: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5346) + Handles null at 4257 +2511: Return(Ljava/lang/Object;) (5346) + Handles null at 4257 +2512: Constant(L;,null) (5347) + Handles null at 4257 +2513: LocalStore(Ljava/lang/Object;,6) (5348) + Handles null at 4257 +2514: LocalLoad(Ljava/lang/Object;,3) (5350) + Handles null at 4257 +2515: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5351) + Handles null at 4257 +2516: CheckCast(Ljava_cup/runtime/Symbol;) (5354) + Handles null at 4257 +2517: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (5357) + Handles null at 4257 +2518: LocalStore(I,7) (5360) + Handles null at 4257 +2519: LocalLoad(Ljava/lang/Object;,3) (5362) + Handles null at 4257 +2520: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5363) + Handles null at 4257 +2521: CheckCast(Ljava_cup/runtime/Symbol;) (5366) + Handles null at 4257 +2522: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (5369) + Handles null at 4257 +2523: LocalStore(I,8) (5372) + Handles null at 4257 +2524: LocalLoad(Ljava/lang/Object;,3) (5374) + Handles null at 4257 +2525: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5375) + Handles null at 4257 +2526: CheckCast(Ljava_cup/runtime/Symbol;) (5378) + Handles null at 4257 +2527: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5381) + Handles null at 4257 +2528: CheckCast(Ljava/lang/String;) (5384) + Handles null at 4257 +2529: LocalStore(Ljava/lang/Object;,9) (5387) + Handles null at 4257 +2530: LocalLoad(Ljava/lang/Object;,0) (5389) + Handles null at 4257 +2531: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (5390) + Handles null at 4257 +2532: LocalLoad(Ljava/lang/Object;,9) (5393) + Handles null at 4257 +2533: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (5395) + Handles null at 4257 +2534: Constant(L;,null) (5398) + Handles null at 4257 +2535: ConditionalBranch(Ljava/lang/Object;,ne,2548) (5398) + Handles null at 4257 +2536: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (5401) + Handles null at 4257 +2537: New(Ljava/lang/StringBuilder;,0) (5404) + Handles null at 4257 +2538: Dup(1,0) (5407) + Handles null at 4257 +2539: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (5408) + Handles null at 4257 +2540: Constant(Ljava/lang/String;,"Terminal \"") (5411) + Handles null at 4257 +2541: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5413) + Handles null at 4257 +2542: LocalLoad(Ljava/lang/Object;,9) (5416) + Handles null at 4257 +2543: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5418) + Handles null at 4257 +2544: Constant(Ljava/lang/String;,"\" has not been declared") (5421) + Handles null at 4257 +2545: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (5423) + Handles null at 4257 +2546: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (5426) + Handles null at 4257 +2547: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (5429) + Handles null at 4257 +2548: LocalLoad(Ljava/lang/Object;,9) (5432) + Handles null at 4257 +2549: LocalStore(Ljava/lang/Object;,6) (5434) + Handles null at 4257 +2550: LocalLoad(Ljava/lang/Object;,0) (5436) + Handles null at 4257 +2551: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5437) + Handles null at 4257 +2552: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5440) + Handles null at 4257 +2553: Constant(Ljava/lang/String;,"term_id") (5443) + Handles null at 4257 +2554: Constant(I,41) (5445) + Handles null at 4257 +2555: LocalLoad(Ljava/lang/Object;,3) (5447) + Handles null at 4257 +2556: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5448) + Handles null at 4257 +2557: CheckCast(Ljava_cup/runtime/Symbol;) (5451) + Handles null at 4257 +2558: LocalLoad(Ljava/lang/Object;,3) (5454) + Handles null at 4257 +2559: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5455) + Handles null at 4257 +2560: CheckCast(Ljava_cup/runtime/Symbol;) (5458) + Handles null at 4257 +2561: LocalLoad(Ljava/lang/Object;,6) (5461) + Handles null at 4257 +2562: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5463) + Handles null at 4257 +2563: LocalStore(Ljava/lang/Object;,5) (5468) + Handles null at 4257 +2564: LocalLoad(Ljava/lang/Object;,5) (5470) + Handles null at 4257 +2565: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5472) + Handles null at 4257 +2566: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5472) + Handles null at 4257 +2567: LocalLoad(Ljava/lang/Object;,0) (5472) + Handles null at 4257 +2568: Constant(I,0) (5472) + Handles null at 4257 +2569: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5472) + Handles null at 4257 +2570: Return(Ljava/lang/Object;) (5472) + Handles null at 4257 +2571: Constant(L;,null) (5473) + Handles null at 4257 +2572: LocalStore(Ljava/lang/Object;,6) (5474) + Handles null at 4257 +2573: LocalLoad(Ljava/lang/Object;,3) (5476) + Handles null at 4257 +2574: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5477) + Handles null at 4257 +2575: CheckCast(Ljava_cup/runtime/Symbol;) (5480) + Handles null at 4257 +2576: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (5483) + Handles null at 4257 +2577: LocalStore(I,7) (5486) + Handles null at 4257 +2578: LocalLoad(Ljava/lang/Object;,3) (5488) + Handles null at 4257 +2579: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5489) + Handles null at 4257 +2580: CheckCast(Ljava_cup/runtime/Symbol;) (5492) + Handles null at 4257 +2581: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (5495) + Handles null at 4257 +2582: LocalStore(I,8) (5498) + Handles null at 4257 +2583: LocalLoad(Ljava/lang/Object;,3) (5500) + Handles null at 4257 +2584: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5501) + Handles null at 4257 +2585: CheckCast(Ljava_cup/runtime/Symbol;) (5504) + Handles null at 4257 +2586: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5507) + Handles null at 4257 +2587: CheckCast(Ljava/lang/String;) (5510) + Handles null at 4257 +2588: LocalStore(Ljava/lang/Object;,9) (5513) + Handles null at 4257 +2589: LocalLoad(Ljava/lang/Object;,0) (5515) + Handles null at 4257 +2590: LocalLoad(Ljava/lang/Object;,9) (5516) + Handles null at 4257 +2591: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,add_precedence,(Ljava/lang/String;)V) (5518) + Handles null at 4257 +2592: LocalLoad(Ljava/lang/Object;,9) (5521) + Handles null at 4257 +2593: LocalStore(Ljava/lang/Object;,6) (5523) + Handles null at 4257 +2594: LocalLoad(Ljava/lang/Object;,0) (5525) + Handles null at 4257 +2595: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5526) + Handles null at 4257 +2596: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5529) + Handles null at 4257 +2597: Constant(Ljava/lang/String;,"terminal_id") (5532) + Handles null at 4257 +2598: Constant(I,40) (5534) + Handles null at 4257 +2599: LocalLoad(Ljava/lang/Object;,3) (5536) + Handles null at 4257 +2600: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5537) + Handles null at 4257 +2601: CheckCast(Ljava_cup/runtime/Symbol;) (5540) + Handles null at 4257 +2602: LocalLoad(Ljava/lang/Object;,3) (5543) + Handles null at 4257 +2603: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5544) + Handles null at 4257 +2604: CheckCast(Ljava_cup/runtime/Symbol;) (5547) + Handles null at 4257 +2605: LocalLoad(Ljava/lang/Object;,6) (5550) + Handles null at 4257 +2606: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5552) + Handles null at 4257 +2607: LocalStore(Ljava/lang/Object;,5) (5557) + Handles null at 4257 +2608: LocalLoad(Ljava/lang/Object;,5) (5559) + Handles null at 4257 +2609: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5561) + Handles null at 4257 +2610: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5561) + Handles null at 4257 +2611: LocalLoad(Ljava/lang/Object;,0) (5561) + Handles null at 4257 +2612: Constant(I,0) (5561) + Handles null at 4257 +2613: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5561) + Handles null at 4257 +2614: Return(Ljava/lang/Object;) (5561) + Handles null at 4257 +2615: Constant(L;,null) (5562) + Handles null at 4257 +2616: LocalStore(Ljava/lang/Object;,6) (5563) + Handles null at 4257 +2617: LocalLoad(Ljava/lang/Object;,0) (5565) + Handles null at 4257 +2618: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5566) + Handles null at 4257 +2619: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5569) + Handles null at 4257 +2620: Constant(Ljava/lang/String;,"terminal_list") (5572) + Handles null at 4257 +2621: Constant(I,31) (5574) + Handles null at 4257 +2622: LocalLoad(Ljava/lang/Object;,3) (5576) + Handles null at 4257 +2623: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5577) + Handles null at 4257 +2624: CheckCast(Ljava_cup/runtime/Symbol;) (5580) + Handles null at 4257 +2625: LocalLoad(Ljava/lang/Object;,3) (5583) + Handles null at 4257 +2626: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5584) + Handles null at 4257 +2627: CheckCast(Ljava_cup/runtime/Symbol;) (5587) + Handles null at 4257 +2628: LocalLoad(Ljava/lang/Object;,6) (5590) + Handles null at 4257 +2629: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5592) + Handles null at 4257 +2630: LocalStore(Ljava/lang/Object;,5) (5597) + Handles null at 4257 +2631: LocalLoad(Ljava/lang/Object;,5) (5599) + Handles null at 4257 +2632: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5601) + Handles null at 4257 +2633: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5601) + Handles null at 4257 +2634: LocalLoad(Ljava/lang/Object;,0) (5601) + Handles null at 4257 +2635: Constant(I,0) (5601) + Handles null at 4257 +2636: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5601) + Handles null at 4257 +2637: Return(Ljava/lang/Object;) (5601) + Handles null at 4257 +2638: Constant(L;,null) (5602) + Handles null at 4257 +2639: LocalStore(Ljava/lang/Object;,6) (5603) + Handles null at 4257 +2640: LocalLoad(Ljava/lang/Object;,0) (5605) + Handles null at 4257 +2641: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5606) + Handles null at 4257 +2642: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5609) + Handles null at 4257 +2643: Constant(Ljava/lang/String;,"terminal_list") (5612) + Handles null at 4257 +2644: Constant(I,31) (5614) + Handles null at 4257 +2645: LocalLoad(Ljava/lang/Object;,3) (5616) + Handles null at 4257 +2646: LocalLoad(I,4) (5617) + Handles null at 4257 +2647: Constant(I,2) (5619) + Handles null at 4257 +2648: BinaryOp(I,sub) (5620) + Handles null at 4257 +2649: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5621) + Handles null at 4257 +2650: CheckCast(Ljava_cup/runtime/Symbol;) (5624) + Handles null at 4257 +2651: LocalLoad(Ljava/lang/Object;,3) (5627) + Handles null at 4257 +2652: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5628) + Handles null at 4257 +2653: CheckCast(Ljava_cup/runtime/Symbol;) (5631) + Handles null at 4257 +2654: LocalLoad(Ljava/lang/Object;,6) (5634) + Handles null at 4257 +2655: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5636) + Handles null at 4257 +2656: LocalStore(Ljava/lang/Object;,5) (5641) + Handles null at 4257 +2657: LocalLoad(Ljava/lang/Object;,5) (5643) + Handles null at 4257 +2658: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5645) + Handles null at 4257 +2659: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5645) + Handles null at 4257 +2660: LocalLoad(Ljava/lang/Object;,0) (5645) + Handles null at 4257 +2661: Constant(I,0) (5645) + Handles null at 4257 +2662: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5645) + Handles null at 4257 +2663: Return(Ljava/lang/Object;) (5645) + Handles null at 4257 +2664: Constant(L;,null) (5646) + Handles null at 4257 +2665: LocalStore(Ljava/lang/Object;,6) (5647) + Handles null at 4257 +2666: LocalLoad(Ljava/lang/Object;,3) (5649) + Handles null at 4257 +2667: LocalLoad(I,4) (5650) + Handles null at 4257 +2668: Constant(I,2) (5652) + Handles null at 4257 +2669: BinaryOp(I,sub) (5653) + Handles null at 4257 +2670: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5654) + Handles null at 4257 +2671: CheckCast(Ljava_cup/runtime/Symbol;) (5657) + Handles null at 4257 +2672: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5660) + Handles null at 4257 +2673: LocalStore(Ljava/lang/Object;,6) (5663) + Handles null at 4257 +2674: LocalLoad(Ljava/lang/Object;,0) (5665) + Handles null at 4257 +2675: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5666) + Handles null at 4257 +2676: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5669) + Handles null at 4257 +2677: Constant(Ljava/lang/String;,"preced") (5672) + Handles null at 4257 +2678: Constant(I,30) (5674) + Handles null at 4257 +2679: LocalLoad(Ljava/lang/Object;,3) (5676) + Handles null at 4257 +2680: LocalLoad(I,4) (5677) + Handles null at 4257 +2681: Constant(I,4) (5679) + Handles null at 4257 +2682: BinaryOp(I,sub) (5680) + Handles null at 4257 +2683: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5681) + Handles null at 4257 +2684: CheckCast(Ljava_cup/runtime/Symbol;) (5684) + Handles null at 4257 +2685: LocalLoad(Ljava/lang/Object;,3) (5687) + Handles null at 4257 +2686: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5688) + Handles null at 4257 +2687: CheckCast(Ljava_cup/runtime/Symbol;) (5691) + Handles null at 4257 +2688: LocalLoad(Ljava/lang/Object;,6) (5694) + Handles null at 4257 +2689: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5696) + Handles null at 4257 +2690: LocalStore(Ljava/lang/Object;,5) (5701) + Handles null at 4257 +2691: LocalLoad(Ljava/lang/Object;,5) (5703) + Handles null at 4257 +2692: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5705) + Handles null at 4257 +2693: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5705) + Handles null at 4257 +2694: LocalLoad(Ljava/lang/Object;,0) (5705) + Handles null at 4257 +2695: Constant(I,0) (5705) + Handles null at 4257 +2696: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5705) + Handles null at 4257 +2697: Return(Ljava/lang/Object;) (5705) + Handles null at 4257 +2698: Constant(L;,null) (5706) + Handles null at 4257 +2699: LocalStore(Ljava/lang/Object;,6) (5707) + Handles null at 4257 +2700: LocalLoad(Ljava/lang/Object;,0) (5709) + Handles null at 4257 +2701: Constant(I,2) (5710) + Handles null at 4257 +2702: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,update_precedence,(I)V) (5711) + Handles null at 4257 +2703: LocalLoad(Ljava/lang/Object;,0) (5714) + Handles null at 4257 +2704: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5715) + Handles null at 4257 +2705: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5718) + Handles null at 4257 +2706: Constant(Ljava/lang/String;,"NT$9") (5721) + Handles null at 4257 +2707: Constant(I,55) (5723) + Handles null at 4257 +2708: LocalLoad(Ljava/lang/Object;,3) (5725) + Handles null at 4257 +2709: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5726) + Handles null at 4257 +2710: CheckCast(Ljava_cup/runtime/Symbol;) (5729) + Handles null at 4257 +2711: LocalLoad(Ljava/lang/Object;,3) (5732) + Handles null at 4257 +2712: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5733) + Handles null at 4257 +2713: CheckCast(Ljava_cup/runtime/Symbol;) (5736) + Handles null at 4257 +2714: LocalLoad(Ljava/lang/Object;,6) (5739) + Handles null at 4257 +2715: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5741) + Handles null at 4257 +2716: LocalStore(Ljava/lang/Object;,5) (5746) + Handles null at 4257 +2717: LocalLoad(Ljava/lang/Object;,5) (5748) + Handles null at 4257 +2718: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5750) + Handles null at 4257 +2719: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5750) + Handles null at 4257 +2720: LocalLoad(Ljava/lang/Object;,0) (5750) + Handles null at 4257 +2721: Constant(I,0) (5750) + Handles null at 4257 +2722: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5750) + Handles null at 4257 +2723: Return(Ljava/lang/Object;) (5750) + Handles null at 4257 +2724: Constant(L;,null) (5751) + Handles null at 4257 +2725: LocalStore(Ljava/lang/Object;,6) (5752) + Handles null at 4257 +2726: LocalLoad(Ljava/lang/Object;,3) (5754) + Handles null at 4257 +2727: LocalLoad(I,4) (5755) + Handles null at 4257 +2728: Constant(I,2) (5757) + Handles null at 4257 +2729: BinaryOp(I,sub) (5758) + Handles null at 4257 +2730: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5759) + Handles null at 4257 +2731: CheckCast(Ljava_cup/runtime/Symbol;) (5762) + Handles null at 4257 +2732: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5765) + Handles null at 4257 +2733: LocalStore(Ljava/lang/Object;,6) (5768) + Handles null at 4257 +2734: LocalLoad(Ljava/lang/Object;,0) (5770) + Handles null at 4257 +2735: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5771) + Handles null at 4257 +2736: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5774) + Handles null at 4257 +2737: Constant(Ljava/lang/String;,"preced") (5777) + Handles null at 4257 +2738: Constant(I,30) (5779) + Handles null at 4257 +2739: LocalLoad(Ljava/lang/Object;,3) (5781) + Handles null at 4257 +2740: LocalLoad(I,4) (5782) + Handles null at 4257 +2741: Constant(I,4) (5784) + Handles null at 4257 +2742: BinaryOp(I,sub) (5785) + Handles null at 4257 +2743: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5786) + Handles null at 4257 +2744: CheckCast(Ljava_cup/runtime/Symbol;) (5789) + Handles null at 4257 +2745: LocalLoad(Ljava/lang/Object;,3) (5792) + Handles null at 4257 +2746: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5793) + Handles null at 4257 +2747: CheckCast(Ljava_cup/runtime/Symbol;) (5796) + Handles null at 4257 +2748: LocalLoad(Ljava/lang/Object;,6) (5799) + Handles null at 4257 +2749: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5801) + Handles null at 4257 +2750: LocalStore(Ljava/lang/Object;,5) (5806) + Handles null at 4257 +2751: LocalLoad(Ljava/lang/Object;,5) (5808) + Handles null at 4257 +2752: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5810) + Handles null at 4257 +2753: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5810) + Handles null at 4257 +2754: LocalLoad(Ljava/lang/Object;,0) (5810) + Handles null at 4257 +2755: Constant(I,0) (5810) + Handles null at 4257 +2756: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5810) + Handles null at 4257 +2757: Return(Ljava/lang/Object;) (5810) + Handles null at 4257 +2758: Constant(L;,null) (5811) + Handles null at 4257 +2759: LocalStore(Ljava/lang/Object;,6) (5812) + Handles null at 4257 +2760: LocalLoad(Ljava/lang/Object;,0) (5814) + Handles null at 4257 +2761: Constant(I,1) (5815) + Handles null at 4257 +2762: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,update_precedence,(I)V) (5816) + Handles null at 4257 +2763: LocalLoad(Ljava/lang/Object;,0) (5819) + Handles null at 4257 +2764: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5820) + Handles null at 4257 +2765: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5823) + Handles null at 4257 +2766: Constant(Ljava/lang/String;,"NT$8") (5826) + Handles null at 4257 +2767: Constant(I,54) (5828) + Handles null at 4257 +2768: LocalLoad(Ljava/lang/Object;,3) (5830) + Handles null at 4257 +2769: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5831) + Handles null at 4257 +2770: CheckCast(Ljava_cup/runtime/Symbol;) (5834) + Handles null at 4257 +2771: LocalLoad(Ljava/lang/Object;,3) (5837) + Handles null at 4257 +2772: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5838) + Handles null at 4257 +2773: CheckCast(Ljava_cup/runtime/Symbol;) (5841) + Handles null at 4257 +2774: LocalLoad(Ljava/lang/Object;,6) (5844) + Handles null at 4257 +2775: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5846) + Handles null at 4257 +2776: LocalStore(Ljava/lang/Object;,5) (5851) + Handles null at 4257 +2777: LocalLoad(Ljava/lang/Object;,5) (5853) + Handles null at 4257 +2778: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5855) + Handles null at 4257 +2779: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5855) + Handles null at 4257 +2780: LocalLoad(Ljava/lang/Object;,0) (5855) + Handles null at 4257 +2781: Constant(I,0) (5855) + Handles null at 4257 +2782: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5855) + Handles null at 4257 +2783: Return(Ljava/lang/Object;) (5855) + Handles null at 4257 +2784: Constant(L;,null) (5856) + Handles null at 4257 +2785: LocalStore(Ljava/lang/Object;,6) (5857) + Handles null at 4257 +2786: LocalLoad(Ljava/lang/Object;,3) (5859) + Handles null at 4257 +2787: LocalLoad(I,4) (5860) + Handles null at 4257 +2788: Constant(I,2) (5862) + Handles null at 4257 +2789: BinaryOp(I,sub) (5863) + Handles null at 4257 +2790: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5864) + Handles null at 4257 +2791: CheckCast(Ljava_cup/runtime/Symbol;) (5867) + Handles null at 4257 +2792: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (5870) + Handles null at 4257 +2793: LocalStore(Ljava/lang/Object;,6) (5873) + Handles null at 4257 +2794: LocalLoad(Ljava/lang/Object;,0) (5875) + Handles null at 4257 +2795: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5876) + Handles null at 4257 +2796: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5879) + Handles null at 4257 +2797: Constant(Ljava/lang/String;,"preced") (5882) + Handles null at 4257 +2798: Constant(I,30) (5884) + Handles null at 4257 +2799: LocalLoad(Ljava/lang/Object;,3) (5886) + Handles null at 4257 +2800: LocalLoad(I,4) (5887) + Handles null at 4257 +2801: Constant(I,4) (5889) + Handles null at 4257 +2802: BinaryOp(I,sub) (5890) + Handles null at 4257 +2803: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (5891) + Handles null at 4257 +2804: CheckCast(Ljava_cup/runtime/Symbol;) (5894) + Handles null at 4257 +2805: LocalLoad(Ljava/lang/Object;,3) (5897) + Handles null at 4257 +2806: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5898) + Handles null at 4257 +2807: CheckCast(Ljava_cup/runtime/Symbol;) (5901) + Handles null at 4257 +2808: LocalLoad(Ljava/lang/Object;,6) (5904) + Handles null at 4257 +2809: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5906) + Handles null at 4257 +2810: LocalStore(Ljava/lang/Object;,5) (5911) + Handles null at 4257 +2811: LocalLoad(Ljava/lang/Object;,5) (5913) + Handles null at 4257 +2812: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5915) + Handles null at 4257 +2813: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5915) + Handles null at 4257 +2814: LocalLoad(Ljava/lang/Object;,0) (5915) + Handles null at 4257 +2815: Constant(I,0) (5915) + Handles null at 4257 +2816: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5915) + Handles null at 4257 +2817: Return(Ljava/lang/Object;) (5915) + Handles null at 4257 +2818: Constant(L;,null) (5916) + Handles null at 4257 +2819: LocalStore(Ljava/lang/Object;,6) (5917) + Handles null at 4257 +2820: LocalLoad(Ljava/lang/Object;,0) (5919) + Handles null at 4257 +2821: Constant(I,0) (5920) + Handles null at 4257 +2822: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,update_precedence,(I)V) (5921) + Handles null at 4257 +2823: LocalLoad(Ljava/lang/Object;,0) (5924) + Handles null at 4257 +2824: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5925) + Handles null at 4257 +2825: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5928) + Handles null at 4257 +2826: Constant(Ljava/lang/String;,"NT$7") (5931) + Handles null at 4257 +2827: Constant(I,53) (5933) + Handles null at 4257 +2828: LocalLoad(Ljava/lang/Object;,3) (5935) + Handles null at 4257 +2829: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5936) + Handles null at 4257 +2830: CheckCast(Ljava_cup/runtime/Symbol;) (5939) + Handles null at 4257 +2831: LocalLoad(Ljava/lang/Object;,3) (5942) + Handles null at 4257 +2832: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5943) + Handles null at 4257 +2833: CheckCast(Ljava_cup/runtime/Symbol;) (5946) + Handles null at 4257 +2834: LocalLoad(Ljava/lang/Object;,6) (5949) + Handles null at 4257 +2835: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5951) + Handles null at 4257 +2836: LocalStore(Ljava/lang/Object;,5) (5956) + Handles null at 4257 +2837: LocalLoad(Ljava/lang/Object;,5) (5958) + Handles null at 4257 +2838: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (5960) + Handles null at 4257 +2839: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (5960) + Handles null at 4257 +2840: LocalLoad(Ljava/lang/Object;,0) (5960) + Handles null at 4257 +2841: Constant(I,0) (5960) + Handles null at 4257 +2842: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5960) + Handles null at 4257 +2843: Return(Ljava/lang/Object;) (5960) + Handles null at 4257 +2844: Constant(L;,null) (5961) + Handles null at 4257 +2845: LocalStore(Ljava/lang/Object;,6) (5962) + Handles null at 4257 +2846: LocalLoad(Ljava/lang/Object;,0) (5964) + Handles null at 4257 +2847: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (5965) + Handles null at 4257 +2848: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (5968) + Handles null at 4257 +2849: Constant(Ljava/lang/String;,"precedence_l") (5971) + Handles null at 4257 +2850: Constant(I,32) (5973) + Handles null at 4257 +2851: LocalLoad(Ljava/lang/Object;,3) (5975) + Handles null at 4257 +2852: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5976) + Handles null at 4257 +2853: CheckCast(Ljava_cup/runtime/Symbol;) (5979) + Handles null at 4257 +2854: LocalLoad(Ljava/lang/Object;,3) (5982) + Handles null at 4257 +2855: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5983) + Handles null at 4257 +2856: CheckCast(Ljava_cup/runtime/Symbol;) (5986) + Handles null at 4257 +2857: LocalLoad(Ljava/lang/Object;,6) (5989) + Handles null at 4257 +2858: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (5991) + Handles null at 4257 +2859: LocalStore(Ljava/lang/Object;,5) (5996) + Handles null at 4257 +2860: LocalLoad(Ljava/lang/Object;,5) (5998) + Handles null at 4257 +2861: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6000) + Handles null at 4257 +2862: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6000) + Handles null at 4257 +2863: LocalLoad(Ljava/lang/Object;,0) (6000) + Handles null at 4257 +2864: Constant(I,0) (6000) + Handles null at 4257 +2865: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6000) + Handles null at 4257 +2866: Return(Ljava/lang/Object;) (6000) + Handles null at 4257 +2867: Constant(L;,null) (6001) + Handles null at 4257 +2868: LocalStore(Ljava/lang/Object;,6) (6002) + Handles null at 4257 +2869: LocalLoad(Ljava/lang/Object;,0) (6004) + Handles null at 4257 +2870: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6005) + Handles null at 4257 +2871: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6008) + Handles null at 4257 +2872: Constant(Ljava/lang/String;,"precedence_l") (6011) + Handles null at 4257 +2873: Constant(I,32) (6013) + Handles null at 4257 +2874: LocalLoad(Ljava/lang/Object;,3) (6015) + Handles null at 4257 +2875: LocalLoad(I,4) (6016) + Handles null at 4257 +2876: Constant(I,1) (6018) + Handles null at 4257 +2877: BinaryOp(I,sub) (6019) + Handles null at 4257 +2878: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6020) + Handles null at 4257 +2879: CheckCast(Ljava_cup/runtime/Symbol;) (6023) + Handles null at 4257 +2880: LocalLoad(Ljava/lang/Object;,3) (6026) + Handles null at 4257 +2881: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6027) + Handles null at 4257 +2882: CheckCast(Ljava_cup/runtime/Symbol;) (6030) + Handles null at 4257 +2883: LocalLoad(Ljava/lang/Object;,6) (6033) + Handles null at 4257 +2884: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6035) + Handles null at 4257 +2885: LocalStore(Ljava/lang/Object;,5) (6040) + Handles null at 4257 +2886: LocalLoad(Ljava/lang/Object;,5) (6042) + Handles null at 4257 +2887: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6044) + Handles null at 4257 +2888: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6044) + Handles null at 4257 +2889: LocalLoad(Ljava/lang/Object;,0) (6044) + Handles null at 4257 +2890: Constant(I,0) (6044) + Handles null at 4257 +2891: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6044) + Handles null at 4257 +2892: Return(Ljava/lang/Object;) (6044) + Handles null at 4257 +2893: Constant(L;,null) (6045) + Handles null at 4257 +2894: LocalStore(Ljava/lang/Object;,6) (6046) + Handles null at 4257 +2895: LocalLoad(Ljava/lang/Object;,0) (6048) + Handles null at 4257 +2896: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6049) + Handles null at 4257 +2897: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6052) + Handles null at 4257 +2898: Constant(Ljava/lang/String;,"precedence_list") (6055) + Handles null at 4257 +2899: Constant(I,29) (6057) + Handles null at 4257 +2900: LocalLoad(Ljava/lang/Object;,3) (6059) + Handles null at 4257 +2901: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6060) + Handles null at 4257 +2902: CheckCast(Ljava_cup/runtime/Symbol;) (6063) + Handles null at 4257 +2903: LocalLoad(Ljava/lang/Object;,3) (6066) + Handles null at 4257 +2904: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6067) + Handles null at 4257 +2905: CheckCast(Ljava_cup/runtime/Symbol;) (6070) + Handles null at 4257 +2906: LocalLoad(Ljava/lang/Object;,6) (6073) + Handles null at 4257 +2907: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6075) + Handles null at 4257 +2908: LocalStore(Ljava/lang/Object;,5) (6080) + Handles null at 4257 +2909: LocalLoad(Ljava/lang/Object;,5) (6082) + Handles null at 4257 +2910: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6084) + Handles null at 4257 +2911: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6084) + Handles null at 4257 +2912: LocalLoad(Ljava/lang/Object;,0) (6084) + Handles null at 4257 +2913: Constant(I,0) (6084) + Handles null at 4257 +2914: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6084) + Handles null at 4257 +2915: Return(Ljava/lang/Object;) (6084) + Handles null at 4257 +2916: Constant(L;,null) (6085) + Handles null at 4257 +2917: LocalStore(Ljava/lang/Object;,6) (6086) + Handles null at 4257 +2918: LocalLoad(Ljava/lang/Object;,0) (6088) + Handles null at 4257 +2919: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6089) + Handles null at 4257 +2920: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6092) + Handles null at 4257 +2921: Constant(Ljava/lang/String;,"precedence_list") (6095) + Handles null at 4257 +2922: Constant(I,29) (6097) + Handles null at 4257 +2923: LocalLoad(Ljava/lang/Object;,3) (6099) + Handles null at 4257 +2924: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6100) + Handles null at 4257 +2925: CheckCast(Ljava_cup/runtime/Symbol;) (6103) + Handles null at 4257 +2926: LocalLoad(Ljava/lang/Object;,3) (6106) + Handles null at 4257 +2927: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6107) + Handles null at 4257 +2928: CheckCast(Ljava_cup/runtime/Symbol;) (6110) + Handles null at 4257 +2929: LocalLoad(Ljava/lang/Object;,6) (6113) + Handles null at 4257 +2930: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6115) + Handles null at 4257 +2931: LocalStore(Ljava/lang/Object;,5) (6120) + Handles null at 4257 +2932: LocalLoad(Ljava/lang/Object;,5) (6122) + Handles null at 4257 +2933: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6124) + Handles null at 4257 +2934: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6124) + Handles null at 4257 +2935: LocalLoad(Ljava/lang/Object;,0) (6124) + Handles null at 4257 +2936: Constant(I,0) (6124) + Handles null at 4257 +2937: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6124) + Handles null at 4257 +2938: Return(Ljava/lang/Object;) (6124) + Handles null at 4257 +2939: Constant(L;,null) (6125) + Handles null at 4257 +2940: LocalStore(Ljava/lang/Object;,6) (6126) + Handles null at 4257 +2941: LocalLoad(Ljava/lang/Object;,0) (6128) + Handles null at 4257 +2942: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6129) + Handles null at 4257 +2943: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6132) + Handles null at 4257 +2944: Constant(Ljava/lang/String;,"non_term_name_list") (6135) + Handles null at 4257 +2945: Constant(I,20) (6137) + Handles null at 4257 +2946: LocalLoad(Ljava/lang/Object;,3) (6139) + Handles null at 4257 +2947: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6140) + Handles null at 4257 +2948: CheckCast(Ljava_cup/runtime/Symbol;) (6143) + Handles null at 4257 +2949: LocalLoad(Ljava/lang/Object;,3) (6146) + Handles null at 4257 +2950: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6147) + Handles null at 4257 +2951: CheckCast(Ljava_cup/runtime/Symbol;) (6150) + Handles null at 4257 +2952: LocalLoad(Ljava/lang/Object;,6) (6153) + Handles null at 4257 +2953: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6155) + Handles null at 4257 +2954: LocalStore(Ljava/lang/Object;,5) (6160) + Handles null at 4257 +2955: LocalLoad(Ljava/lang/Object;,5) (6162) + Handles null at 4257 +2956: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6164) + Handles null at 4257 +2957: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6164) + Handles null at 4257 +2958: LocalLoad(Ljava/lang/Object;,0) (6164) + Handles null at 4257 +2959: Constant(I,0) (6164) + Handles null at 4257 +2960: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6164) + Handles null at 4257 +2961: Return(Ljava/lang/Object;) (6164) + Handles null at 4257 +2962: Constant(L;,null) (6165) + Handles null at 4257 +2963: LocalStore(Ljava/lang/Object;,6) (6166) + Handles null at 4257 +2964: LocalLoad(Ljava/lang/Object;,0) (6168) + Handles null at 4257 +2965: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6169) + Handles null at 4257 +2966: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6172) + Handles null at 4257 +2967: Constant(Ljava/lang/String;,"non_term_name_list") (6175) + Handles null at 4257 +2968: Constant(I,20) (6177) + Handles null at 4257 +2969: LocalLoad(Ljava/lang/Object;,3) (6179) + Handles null at 4257 +2970: LocalLoad(I,4) (6180) + Handles null at 4257 +2971: Constant(I,2) (6182) + Handles null at 4257 +2972: BinaryOp(I,sub) (6183) + Handles null at 4257 +2973: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6184) + Handles null at 4257 +2974: CheckCast(Ljava_cup/runtime/Symbol;) (6187) + Handles null at 4257 +2975: LocalLoad(Ljava/lang/Object;,3) (6190) + Handles null at 4257 +2976: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6191) + Handles null at 4257 +2977: CheckCast(Ljava_cup/runtime/Symbol;) (6194) + Handles null at 4257 +2978: LocalLoad(Ljava/lang/Object;,6) (6197) + Handles null at 4257 +2979: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6199) + Handles null at 4257 +2980: LocalStore(Ljava/lang/Object;,5) (6204) + Handles null at 4257 +2981: LocalLoad(Ljava/lang/Object;,5) (6206) + Handles null at 4257 +2982: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6208) + Handles null at 4257 +2983: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6208) + Handles null at 4257 +2984: LocalLoad(Ljava/lang/Object;,0) (6208) + Handles null at 4257 +2985: Constant(I,0) (6208) + Handles null at 4257 +2986: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6208) + Handles null at 4257 +2987: Return(Ljava/lang/Object;) (6208) + Handles null at 4257 +2988: Constant(L;,null) (6209) + Handles null at 4257 +2989: LocalStore(Ljava/lang/Object;,6) (6210) + Handles null at 4257 +2990: LocalLoad(Ljava/lang/Object;,0) (6212) + Handles null at 4257 +2991: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6213) + Handles null at 4257 +2992: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6216) + Handles null at 4257 +2993: Constant(Ljava/lang/String;,"term_name_list") (6219) + Handles null at 4257 +2994: Constant(I,19) (6221) + Handles null at 4257 +2995: LocalLoad(Ljava/lang/Object;,3) (6223) + Handles null at 4257 +2996: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6224) + Handles null at 4257 +2997: CheckCast(Ljava_cup/runtime/Symbol;) (6227) + Handles null at 4257 +2998: LocalLoad(Ljava/lang/Object;,3) (6230) + Handles null at 4257 +2999: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6231) + Handles null at 4257 +3000: CheckCast(Ljava_cup/runtime/Symbol;) (6234) + Handles null at 4257 +3001: LocalLoad(Ljava/lang/Object;,6) (6237) + Handles null at 4257 +3002: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6239) + Handles null at 4257 +3003: LocalStore(Ljava/lang/Object;,5) (6244) + Handles null at 4257 +3004: LocalLoad(Ljava/lang/Object;,5) (6246) + Handles null at 4257 +3005: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6248) + Handles null at 4257 +3006: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6248) + Handles null at 4257 +3007: LocalLoad(Ljava/lang/Object;,0) (6248) + Handles null at 4257 +3008: Constant(I,0) (6248) + Handles null at 4257 +3009: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6248) + Handles null at 4257 +3010: Return(Ljava/lang/Object;) (6248) + Handles null at 4257 +3011: Constant(L;,null) (6249) + Handles null at 4257 +3012: LocalStore(Ljava/lang/Object;,6) (6250) + Handles null at 4257 +3013: LocalLoad(Ljava/lang/Object;,0) (6252) + Handles null at 4257 +3014: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6253) + Handles null at 4257 +3015: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6256) + Handles null at 4257 +3016: Constant(Ljava/lang/String;,"term_name_list") (6259) + Handles null at 4257 +3017: Constant(I,19) (6261) + Handles null at 4257 +3018: LocalLoad(Ljava/lang/Object;,3) (6263) + Handles null at 4257 +3019: LocalLoad(I,4) (6264) + Handles null at 4257 +3020: Constant(I,2) (6266) + Handles null at 4257 +3021: BinaryOp(I,sub) (6267) + Handles null at 4257 +3022: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6268) + Handles null at 4257 +3023: CheckCast(Ljava_cup/runtime/Symbol;) (6271) + Handles null at 4257 +3024: LocalLoad(Ljava/lang/Object;,3) (6274) + Handles null at 4257 +3025: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6275) + Handles null at 4257 +3026: CheckCast(Ljava_cup/runtime/Symbol;) (6278) + Handles null at 4257 +3027: LocalLoad(Ljava/lang/Object;,6) (6281) + Handles null at 4257 +3028: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6283) + Handles null at 4257 +3029: LocalStore(Ljava/lang/Object;,5) (6288) + Handles null at 4257 +3030: LocalLoad(Ljava/lang/Object;,5) (6290) + Handles null at 4257 +3031: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6292) + Handles null at 4257 +3032: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6292) + Handles null at 4257 +3033: LocalLoad(Ljava/lang/Object;,0) (6292) + Handles null at 4257 +3034: Constant(I,0) (6292) + Handles null at 4257 +3035: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6292) + Handles null at 4257 +3036: Return(Ljava/lang/Object;) (6292) + Handles null at 4257 +3037: Constant(L;,null) (6293) + Handles null at 4257 +3038: LocalStore(Ljava/lang/Object;,6) (6294) + Handles null at 4257 +3039: LocalLoad(Ljava/lang/Object;,3) (6296) + Handles null at 4257 +3040: LocalLoad(I,4) (6297) + Handles null at 4257 +3041: Constant(I,1) (6299) + Handles null at 4257 +3042: BinaryOp(I,sub) (6300) + Handles null at 4257 +3043: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6301) + Handles null at 4257 +3044: CheckCast(Ljava_cup/runtime/Symbol;) (6304) + Handles null at 4257 +3045: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (6307) + Handles null at 4257 +3046: LocalStore(Ljava/lang/Object;,6) (6310) + Handles null at 4257 +3047: LocalLoad(Ljava/lang/Object;,0) (6312) + Handles null at 4257 +3048: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6313) + Handles null at 4257 +3049: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6316) + Handles null at 4257 +3050: Constant(Ljava/lang/String;,"declares_non_term") (6319) + Handles null at 4257 +3051: Constant(I,34) (6321) + Handles null at 4257 +3052: LocalLoad(Ljava/lang/Object;,3) (6323) + Handles null at 4257 +3053: LocalLoad(I,4) (6324) + Handles null at 4257 +3054: Constant(I,2) (6326) + Handles null at 4257 +3055: BinaryOp(I,sub) (6327) + Handles null at 4257 +3056: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6328) + Handles null at 4257 +3057: CheckCast(Ljava_cup/runtime/Symbol;) (6331) + Handles null at 4257 +3058: LocalLoad(Ljava/lang/Object;,3) (6334) + Handles null at 4257 +3059: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6335) + Handles null at 4257 +3060: CheckCast(Ljava_cup/runtime/Symbol;) (6338) + Handles null at 4257 +3061: LocalLoad(Ljava/lang/Object;,6) (6341) + Handles null at 4257 +3062: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6343) + Handles null at 4257 +3063: LocalStore(Ljava/lang/Object;,5) (6348) + Handles null at 4257 +3064: LocalLoad(Ljava/lang/Object;,5) (6350) + Handles null at 4257 +3065: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6352) + Handles null at 4257 +3066: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6352) + Handles null at 4257 +3067: LocalLoad(Ljava/lang/Object;,0) (6352) + Handles null at 4257 +3068: Constant(I,0) (6352) + Handles null at 4257 +3069: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6352) + Handles null at 4257 +3070: Return(Ljava/lang/Object;) (6352) + Handles null at 4257 +3071: Constant(L;,null) (6353) + Handles null at 4257 +3072: LocalStore(Ljava/lang/Object;,6) (6354) + Handles null at 4257 +3073: LocalLoad(Ljava/lang/Object;,0) (6356) + Handles null at 4257 +3074: New(Ljava/lang/String;,0) (6357) + Handles null at 4257 +3075: Dup(1,0) (6360) + Handles null at 4257 +3076: Invoke(SPECIAL,Ljava/lang/String;,,()V) (6361) + Handles null at 4257 +3077: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (6364) + Handles null at 4257 +3078: LocalLoad(Ljava/lang/Object;,0) (6367) + Handles null at 4257 +3079: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6368) + Handles null at 4257 +3080: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6371) + Handles null at 4257 +3081: Constant(Ljava/lang/String;,"NT$6") (6374) + Handles null at 4257 +3082: Constant(I,52) (6376) + Handles null at 4257 +3083: LocalLoad(Ljava/lang/Object;,3) (6378) + Handles null at 4257 +3084: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6379) + Handles null at 4257 +3085: CheckCast(Ljava_cup/runtime/Symbol;) (6382) + Handles null at 4257 +3086: LocalLoad(Ljava/lang/Object;,3) (6385) + Handles null at 4257 +3087: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6386) + Handles null at 4257 +3088: CheckCast(Ljava_cup/runtime/Symbol;) (6389) + Handles null at 4257 +3089: LocalLoad(Ljava/lang/Object;,6) (6392) + Handles null at 4257 +3090: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6394) + Handles null at 4257 +3091: LocalStore(Ljava/lang/Object;,5) (6399) + Handles null at 4257 +3092: LocalLoad(Ljava/lang/Object;,5) (6401) + Handles null at 4257 +3093: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6403) + Handles null at 4257 +3094: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6403) + Handles null at 4257 +3095: LocalLoad(Ljava/lang/Object;,0) (6403) + Handles null at 4257 +3096: Constant(I,0) (6403) + Handles null at 4257 +3097: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6403) + Handles null at 4257 +3098: Return(Ljava/lang/Object;) (6403) + Handles null at 4257 +3099: Constant(L;,null) (6404) + Handles null at 4257 +3100: LocalStore(Ljava/lang/Object;,6) (6405) + Handles null at 4257 +3101: LocalLoad(Ljava/lang/Object;,3) (6407) + Handles null at 4257 +3102: LocalLoad(I,4) (6408) + Handles null at 4257 +3103: Constant(I,1) (6410) + Handles null at 4257 +3104: BinaryOp(I,sub) (6411) + Handles null at 4257 +3105: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6412) + Handles null at 4257 +3106: CheckCast(Ljava_cup/runtime/Symbol;) (6415) + Handles null at 4257 +3107: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (6418) + Handles null at 4257 +3108: LocalStore(Ljava/lang/Object;,6) (6421) + Handles null at 4257 +3109: LocalLoad(Ljava/lang/Object;,0) (6423) + Handles null at 4257 +3110: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6424) + Handles null at 4257 +3111: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6427) + Handles null at 4257 +3112: Constant(Ljava/lang/String;,"declares_term") (6430) + Handles null at 4257 +3113: Constant(I,33) (6432) + Handles null at 4257 +3114: LocalLoad(Ljava/lang/Object;,3) (6434) + Handles null at 4257 +3115: LocalLoad(I,4) (6435) + Handles null at 4257 +3116: Constant(I,2) (6437) + Handles null at 4257 +3117: BinaryOp(I,sub) (6438) + Handles null at 4257 +3118: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6439) + Handles null at 4257 +3119: CheckCast(Ljava_cup/runtime/Symbol;) (6442) + Handles null at 4257 +3120: LocalLoad(Ljava/lang/Object;,3) (6445) + Handles null at 4257 +3121: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6446) + Handles null at 4257 +3122: CheckCast(Ljava_cup/runtime/Symbol;) (6449) + Handles null at 4257 +3123: LocalLoad(Ljava/lang/Object;,6) (6452) + Handles null at 4257 +3124: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6454) + Handles null at 4257 +3125: LocalStore(Ljava/lang/Object;,5) (6459) + Handles null at 4257 +3126: LocalLoad(Ljava/lang/Object;,5) (6461) + Handles null at 4257 +3127: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6463) + Handles null at 4257 +3128: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6463) + Handles null at 4257 +3129: LocalLoad(Ljava/lang/Object;,0) (6463) + Handles null at 4257 +3130: Constant(I,0) (6463) + Handles null at 4257 +3131: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6463) + Handles null at 4257 +3132: Return(Ljava/lang/Object;) (6463) + Handles null at 4257 +3133: Constant(L;,null) (6464) + Handles null at 4257 +3134: LocalStore(Ljava/lang/Object;,6) (6465) + Handles null at 4257 +3135: LocalLoad(Ljava/lang/Object;,0) (6467) + Handles null at 4257 +3136: New(Ljava/lang/String;,0) (6468) + Handles null at 4257 +3137: Dup(1,0) (6471) + Handles null at 4257 +3138: Invoke(SPECIAL,Ljava/lang/String;,,()V) (6472) + Handles null at 4257 +3139: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (6475) + Handles null at 4257 +3140: LocalLoad(Ljava/lang/Object;,0) (6478) + Handles null at 4257 +3141: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6479) + Handles null at 4257 +3142: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6482) + Handles null at 4257 +3143: Constant(Ljava/lang/String;,"NT$5") (6485) + Handles null at 4257 +3144: Constant(I,51) (6487) + Handles null at 4257 +3145: LocalLoad(Ljava/lang/Object;,3) (6489) + Handles null at 4257 +3146: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6490) + Handles null at 4257 +3147: CheckCast(Ljava_cup/runtime/Symbol;) (6493) + Handles null at 4257 +3148: LocalLoad(Ljava/lang/Object;,3) (6496) + Handles null at 4257 +3149: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6497) + Handles null at 4257 +3150: CheckCast(Ljava_cup/runtime/Symbol;) (6500) + Handles null at 4257 +3151: LocalLoad(Ljava/lang/Object;,6) (6503) + Handles null at 4257 +3152: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6505) + Handles null at 4257 +3153: LocalStore(Ljava/lang/Object;,5) (6510) + Handles null at 4257 +3154: LocalLoad(Ljava/lang/Object;,5) (6512) + Handles null at 4257 +3155: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6514) + Handles null at 4257 +3156: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6514) + Handles null at 4257 +3157: LocalLoad(Ljava/lang/Object;,0) (6514) + Handles null at 4257 +3158: Constant(I,0) (6514) + Handles null at 4257 +3159: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6514) + Handles null at 4257 +3160: Return(Ljava/lang/Object;) (6514) + Handles null at 4257 +3161: Constant(L;,null) (6515) + Handles null at 4257 +3162: LocalStore(Ljava/lang/Object;,6) (6516) + Handles null at 4257 +3163: LocalLoad(Ljava/lang/Object;,3) (6518) + Handles null at 4257 +3164: LocalLoad(I,4) (6519) + Handles null at 4257 +3165: Constant(I,1) (6521) + Handles null at 4257 +3166: BinaryOp(I,sub) (6522) + Handles null at 4257 +3167: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6523) + Handles null at 4257 +3168: CheckCast(Ljava_cup/runtime/Symbol;) (6526) + Handles null at 4257 +3169: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (6529) + Handles null at 4257 +3170: LocalStore(Ljava/lang/Object;,6) (6532) + Handles null at 4257 +3171: LocalLoad(Ljava/lang/Object;,0) (6534) + Handles null at 4257 +3172: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6535) + Handles null at 4257 +3173: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6538) + Handles null at 4257 +3174: Constant(Ljava/lang/String;,"symbol") (6541) + Handles null at 4257 +3175: Constant(I,17) (6543) + Handles null at 4257 +3176: LocalLoad(Ljava/lang/Object;,3) (6545) + Handles null at 4257 +3177: LocalLoad(I,4) (6546) + Handles null at 4257 +3178: Constant(I,3) (6548) + Handles null at 4257 +3179: BinaryOp(I,sub) (6549) + Handles null at 4257 +3180: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6550) + Handles null at 4257 +3181: CheckCast(Ljava_cup/runtime/Symbol;) (6553) + Handles null at 4257 +3182: LocalLoad(Ljava/lang/Object;,3) (6556) + Handles null at 4257 +3183: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6557) + Handles null at 4257 +3184: CheckCast(Ljava_cup/runtime/Symbol;) (6560) + Handles null at 4257 +3185: LocalLoad(Ljava/lang/Object;,6) (6563) + Handles null at 4257 +3186: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6565) + Handles null at 4257 +3187: LocalStore(Ljava/lang/Object;,5) (6570) + Handles null at 4257 +3188: LocalLoad(Ljava/lang/Object;,5) (6572) + Handles null at 4257 +3189: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6574) + Handles null at 4257 +3190: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6574) + Handles null at 4257 +3191: LocalLoad(Ljava/lang/Object;,0) (6574) + Handles null at 4257 +3192: Constant(I,0) (6574) + Handles null at 4257 +3193: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6574) + Handles null at 4257 +3194: Return(Ljava/lang/Object;) (6574) + Handles null at 4257 +3195: Constant(L;,null) (6575) + Handles null at 4257 +3196: LocalStore(Ljava/lang/Object;,6) (6576) + Handles null at 4257 +3197: LocalLoad(Ljava/lang/Object;,0) (6578) + Handles null at 4257 +3198: New(Ljava/lang/String;,0) (6579) + Handles null at 4257 +3199: Dup(1,0) (6582) + Handles null at 4257 +3200: Invoke(SPECIAL,Ljava/lang/String;,,()V) (6583) + Handles null at 4257 +3201: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (6586) + Handles null at 4257 +3202: LocalLoad(Ljava/lang/Object;,0) (6589) + Handles null at 4257 +3203: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6590) + Handles null at 4257 +3204: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6593) + Handles null at 4257 +3205: Constant(Ljava/lang/String;,"NT$4") (6596) + Handles null at 4257 +3206: Constant(I,50) (6598) + Handles null at 4257 +3207: LocalLoad(Ljava/lang/Object;,3) (6600) + Handles null at 4257 +3208: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6601) + Handles null at 4257 +3209: CheckCast(Ljava_cup/runtime/Symbol;) (6604) + Handles null at 4257 +3210: LocalLoad(Ljava/lang/Object;,3) (6607) + Handles null at 4257 +3211: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6608) + Handles null at 4257 +3212: CheckCast(Ljava_cup/runtime/Symbol;) (6611) + Handles null at 4257 +3213: LocalLoad(Ljava/lang/Object;,6) (6614) + Handles null at 4257 +3214: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6616) + Handles null at 4257 +3215: LocalStore(Ljava/lang/Object;,5) (6621) + Handles null at 4257 +3216: LocalLoad(Ljava/lang/Object;,5) (6623) + Handles null at 4257 +3217: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6625) + Handles null at 4257 +3218: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6625) + Handles null at 4257 +3219: LocalLoad(Ljava/lang/Object;,0) (6625) + Handles null at 4257 +3220: Constant(I,0) (6625) + Handles null at 4257 +3221: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6625) + Handles null at 4257 +3222: Return(Ljava/lang/Object;) (6625) + Handles null at 4257 +3223: Constant(L;,null) (6626) + Handles null at 4257 +3224: LocalStore(Ljava/lang/Object;,6) (6627) + Handles null at 4257 +3225: LocalLoad(Ljava/lang/Object;,3) (6629) + Handles null at 4257 +3226: LocalLoad(I,4) (6630) + Handles null at 4257 +3227: Constant(I,1) (6632) + Handles null at 4257 +3228: BinaryOp(I,sub) (6633) + Handles null at 4257 +3229: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6634) + Handles null at 4257 +3230: CheckCast(Ljava_cup/runtime/Symbol;) (6637) + Handles null at 4257 +3231: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (6640) + Handles null at 4257 +3232: LocalStore(Ljava/lang/Object;,6) (6643) + Handles null at 4257 +3233: LocalLoad(Ljava/lang/Object;,0) (6645) + Handles null at 4257 +3234: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6646) + Handles null at 4257 +3235: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6649) + Handles null at 4257 +3236: Constant(Ljava/lang/String;,"symbol") (6652) + Handles null at 4257 +3237: Constant(I,17) (6654) + Handles null at 4257 +3238: LocalLoad(Ljava/lang/Object;,3) (6656) + Handles null at 4257 +3239: LocalLoad(I,4) (6657) + Handles null at 4257 +3240: Constant(I,3) (6659) + Handles null at 4257 +3241: BinaryOp(I,sub) (6660) + Handles null at 4257 +3242: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6661) + Handles null at 4257 +3243: CheckCast(Ljava_cup/runtime/Symbol;) (6664) + Handles null at 4257 +3244: LocalLoad(Ljava/lang/Object;,3) (6667) + Handles null at 4257 +3245: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6668) + Handles null at 4257 +3246: CheckCast(Ljava_cup/runtime/Symbol;) (6671) + Handles null at 4257 +3247: LocalLoad(Ljava/lang/Object;,6) (6674) + Handles null at 4257 +3248: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6676) + Handles null at 4257 +3249: LocalStore(Ljava/lang/Object;,5) (6681) + Handles null at 4257 +3250: LocalLoad(Ljava/lang/Object;,5) (6683) + Handles null at 4257 +3251: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6685) + Handles null at 4257 +3252: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6685) + Handles null at 4257 +3253: LocalLoad(Ljava/lang/Object;,0) (6685) + Handles null at 4257 +3254: Constant(I,0) (6685) + Handles null at 4257 +3255: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6685) + Handles null at 4257 +3256: Return(Ljava/lang/Object;) (6685) + Handles null at 4257 +3257: Constant(L;,null) (6686) + Handles null at 4257 +3258: LocalStore(Ljava/lang/Object;,6) (6687) + Handles null at 4257 +3259: LocalLoad(Ljava/lang/Object;,0) (6689) + Handles null at 4257 +3260: New(Ljava/lang/String;,0) (6690) + Handles null at 4257 +3261: Dup(1,0) (6693) + Handles null at 4257 +3262: Invoke(SPECIAL,Ljava/lang/String;,,()V) (6694) + Handles null at 4257 +3263: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (6697) + Handles null at 4257 +3264: LocalLoad(Ljava/lang/Object;,0) (6700) + Handles null at 4257 +3265: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6701) + Handles null at 4257 +3266: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6704) + Handles null at 4257 +3267: Constant(Ljava/lang/String;,"NT$3") (6707) + Handles null at 4257 +3268: Constant(I,49) (6709) + Handles null at 4257 +3269: LocalLoad(Ljava/lang/Object;,3) (6711) + Handles null at 4257 +3270: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6712) + Handles null at 4257 +3271: CheckCast(Ljava_cup/runtime/Symbol;) (6715) + Handles null at 4257 +3272: LocalLoad(Ljava/lang/Object;,3) (6718) + Handles null at 4257 +3273: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6719) + Handles null at 4257 +3274: CheckCast(Ljava_cup/runtime/Symbol;) (6722) + Handles null at 4257 +3275: LocalLoad(Ljava/lang/Object;,6) (6725) + Handles null at 4257 +3276: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6727) + Handles null at 4257 +3277: LocalStore(Ljava/lang/Object;,5) (6732) + Handles null at 4257 +3278: LocalLoad(Ljava/lang/Object;,5) (6734) + Handles null at 4257 +3279: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6736) + Handles null at 4257 +3280: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6736) + Handles null at 4257 +3281: LocalLoad(Ljava/lang/Object;,0) (6736) + Handles null at 4257 +3282: Constant(I,0) (6736) + Handles null at 4257 +3283: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6736) + Handles null at 4257 +3284: Return(Ljava/lang/Object;) (6736) + Handles null at 4257 +3285: Constant(L;,null) (6737) + Handles null at 4257 +3286: LocalStore(Ljava/lang/Object;,6) (6738) + Handles null at 4257 +3287: LocalLoad(Ljava/lang/Object;,0) (6740) + Handles null at 4257 +3288: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6741) + Handles null at 4257 +3289: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6744) + Handles null at 4257 +3290: Constant(Ljava/lang/String;,"symbol") (6747) + Handles null at 4257 +3291: Constant(I,17) (6749) + Handles null at 4257 +3292: LocalLoad(Ljava/lang/Object;,3) (6751) + Handles null at 4257 +3293: LocalLoad(I,4) (6752) + Handles null at 4257 +3294: Constant(I,1) (6754) + Handles null at 4257 +3295: BinaryOp(I,sub) (6755) + Handles null at 4257 +3296: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6756) + Handles null at 4257 +3297: CheckCast(Ljava_cup/runtime/Symbol;) (6759) + Handles null at 4257 +3298: LocalLoad(Ljava/lang/Object;,3) (6762) + Handles null at 4257 +3299: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6763) + Handles null at 4257 +3300: CheckCast(Ljava_cup/runtime/Symbol;) (6766) + Handles null at 4257 +3301: LocalLoad(Ljava/lang/Object;,6) (6769) + Handles null at 4257 +3302: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6771) + Handles null at 4257 +3303: LocalStore(Ljava/lang/Object;,5) (6776) + Handles null at 4257 +3304: LocalLoad(Ljava/lang/Object;,5) (6778) + Handles null at 4257 +3305: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6780) + Handles null at 4257 +3306: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6780) + Handles null at 4257 +3307: LocalLoad(Ljava/lang/Object;,0) (6780) + Handles null at 4257 +3308: Constant(I,0) (6780) + Handles null at 4257 +3309: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6780) + Handles null at 4257 +3310: Return(Ljava/lang/Object;) (6780) + Handles null at 4257 +3311: Constant(L;,null) (6781) + Handles null at 4257 +3312: LocalStore(Ljava/lang/Object;,6) (6782) + Handles null at 4257 +3313: LocalLoad(Ljava/lang/Object;,0) (6784) + Handles null at 4257 +3314: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6785) + Handles null at 4257 +3315: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6788) + Handles null at 4257 +3316: Constant(Ljava/lang/String;,"symbol") (6791) + Handles null at 4257 +3317: Constant(I,17) (6793) + Handles null at 4257 +3318: LocalLoad(Ljava/lang/Object;,3) (6795) + Handles null at 4257 +3319: LocalLoad(I,4) (6796) + Handles null at 4257 +3320: Constant(I,2) (6798) + Handles null at 4257 +3321: BinaryOp(I,sub) (6799) + Handles null at 4257 +3322: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6800) + Handles null at 4257 +3323: CheckCast(Ljava_cup/runtime/Symbol;) (6803) + Handles null at 4257 +3324: LocalLoad(Ljava/lang/Object;,3) (6806) + Handles null at 4257 +3325: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6807) + Handles null at 4257 +3326: CheckCast(Ljava_cup/runtime/Symbol;) (6810) + Handles null at 4257 +3327: LocalLoad(Ljava/lang/Object;,6) (6813) + Handles null at 4257 +3328: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6815) + Handles null at 4257 +3329: LocalStore(Ljava/lang/Object;,5) (6820) + Handles null at 4257 +3330: LocalLoad(Ljava/lang/Object;,5) (6822) + Handles null at 4257 +3331: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6824) + Handles null at 4257 +3332: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6824) + Handles null at 4257 +3333: LocalLoad(Ljava/lang/Object;,0) (6824) + Handles null at 4257 +3334: Constant(I,0) (6824) + Handles null at 4257 +3335: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6824) + Handles null at 4257 +3336: Return(Ljava/lang/Object;) (6824) + Handles null at 4257 +3337: Constant(L;,null) (6825) + Handles null at 4257 +3338: LocalStore(Ljava/lang/Object;,6) (6826) + Handles null at 4257 +3339: LocalLoad(Ljava/lang/Object;,0) (6828) + Handles null at 4257 +3340: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6829) + Handles null at 4257 +3341: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6832) + Handles null at 4257 +3342: Constant(Ljava/lang/String;,"symbol") (6835) + Handles null at 4257 +3343: Constant(I,17) (6837) + Handles null at 4257 +3344: LocalLoad(Ljava/lang/Object;,3) (6839) + Handles null at 4257 +3345: LocalLoad(I,4) (6840) + Handles null at 4257 +3346: Constant(I,1) (6842) + Handles null at 4257 +3347: BinaryOp(I,sub) (6843) + Handles null at 4257 +3348: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6844) + Handles null at 4257 +3349: CheckCast(Ljava_cup/runtime/Symbol;) (6847) + Handles null at 4257 +3350: LocalLoad(Ljava/lang/Object;,3) (6850) + Handles null at 4257 +3351: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6851) + Handles null at 4257 +3352: CheckCast(Ljava_cup/runtime/Symbol;) (6854) + Handles null at 4257 +3353: LocalLoad(Ljava/lang/Object;,6) (6857) + Handles null at 4257 +3354: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6859) + Handles null at 4257 +3355: LocalStore(Ljava/lang/Object;,5) (6864) + Handles null at 4257 +3356: LocalLoad(Ljava/lang/Object;,5) (6866) + Handles null at 4257 +3357: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6868) + Handles null at 4257 +3358: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6868) + Handles null at 4257 +3359: LocalLoad(Ljava/lang/Object;,0) (6868) + Handles null at 4257 +3360: Constant(I,0) (6868) + Handles null at 4257 +3361: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6868) + Handles null at 4257 +3362: Return(Ljava/lang/Object;) (6868) + Handles null at 4257 +3363: Constant(L;,null) (6869) + Handles null at 4257 +3364: LocalStore(Ljava/lang/Object;,6) (6870) + Handles null at 4257 +3365: LocalLoad(Ljava/lang/Object;,0) (6872) + Handles null at 4257 +3366: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6873) + Handles null at 4257 +3367: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6876) + Handles null at 4257 +3368: Constant(Ljava/lang/String;,"symbol") (6879) + Handles null at 4257 +3369: Constant(I,17) (6881) + Handles null at 4257 +3370: LocalLoad(Ljava/lang/Object;,3) (6883) + Handles null at 4257 +3371: LocalLoad(I,4) (6884) + Handles null at 4257 +3372: Constant(I,2) (6886) + Handles null at 4257 +3373: BinaryOp(I,sub) (6887) + Handles null at 4257 +3374: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6888) + Handles null at 4257 +3375: CheckCast(Ljava_cup/runtime/Symbol;) (6891) + Handles null at 4257 +3376: LocalLoad(Ljava/lang/Object;,3) (6894) + Handles null at 4257 +3377: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6895) + Handles null at 4257 +3378: CheckCast(Ljava_cup/runtime/Symbol;) (6898) + Handles null at 4257 +3379: LocalLoad(Ljava/lang/Object;,6) (6901) + Handles null at 4257 +3380: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6903) + Handles null at 4257 +3381: LocalStore(Ljava/lang/Object;,5) (6908) + Handles null at 4257 +3382: LocalLoad(Ljava/lang/Object;,5) (6910) + Handles null at 4257 +3383: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6912) + Handles null at 4257 +3384: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6912) + Handles null at 4257 +3385: LocalLoad(Ljava/lang/Object;,0) (6912) + Handles null at 4257 +3386: Constant(I,0) (6912) + Handles null at 4257 +3387: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6912) + Handles null at 4257 +3388: Return(Ljava/lang/Object;) (6912) + Handles null at 4257 +3389: Constant(L;,null) (6913) + Handles null at 4257 +3390: LocalStore(Ljava/lang/Object;,6) (6914) + Handles null at 4257 +3391: LocalLoad(Ljava/lang/Object;,0) (6916) + Handles null at 4257 +3392: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6917) + Handles null at 4257 +3393: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6920) + Handles null at 4257 +3394: Constant(Ljava/lang/String;,"symbol_list") (6923) + Handles null at 4257 +3395: Constant(I,9) (6925) + Handles null at 4257 +3396: LocalLoad(Ljava/lang/Object;,3) (6927) + Handles null at 4257 +3397: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6928) + Handles null at 4257 +3398: CheckCast(Ljava_cup/runtime/Symbol;) (6931) + Handles null at 4257 +3399: LocalLoad(Ljava/lang/Object;,3) (6934) + Handles null at 4257 +3400: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6935) + Handles null at 4257 +3401: CheckCast(Ljava_cup/runtime/Symbol;) (6938) + Handles null at 4257 +3402: LocalLoad(Ljava/lang/Object;,6) (6941) + Handles null at 4257 +3403: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6943) + Handles null at 4257 +3404: LocalStore(Ljava/lang/Object;,5) (6948) + Handles null at 4257 +3405: LocalLoad(Ljava/lang/Object;,5) (6950) + Handles null at 4257 +3406: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6952) + Handles null at 4257 +3407: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6952) + Handles null at 4257 +3408: LocalLoad(Ljava/lang/Object;,0) (6952) + Handles null at 4257 +3409: Constant(I,0) (6952) + Handles null at 4257 +3410: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6952) + Handles null at 4257 +3411: Return(Ljava/lang/Object;) (6952) + Handles null at 4257 +3412: Constant(L;,null) (6953) + Handles null at 4257 +3413: LocalStore(Ljava/lang/Object;,6) (6954) + Handles null at 4257 +3414: LocalLoad(Ljava/lang/Object;,0) (6956) + Handles null at 4257 +3415: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (6957) + Handles null at 4257 +3416: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (6960) + Handles null at 4257 +3417: Constant(Ljava/lang/String;,"symbol_list") (6963) + Handles null at 4257 +3418: Constant(I,9) (6965) + Handles null at 4257 +3419: LocalLoad(Ljava/lang/Object;,3) (6967) + Handles null at 4257 +3420: LocalLoad(I,4) (6968) + Handles null at 4257 +3421: Constant(I,1) (6970) + Handles null at 4257 +3422: BinaryOp(I,sub) (6971) + Handles null at 4257 +3423: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (6972) + Handles null at 4257 +3424: CheckCast(Ljava_cup/runtime/Symbol;) (6975) + Handles null at 4257 +3425: LocalLoad(Ljava/lang/Object;,3) (6978) + Handles null at 4257 +3426: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (6979) + Handles null at 4257 +3427: CheckCast(Ljava_cup/runtime/Symbol;) (6982) + Handles null at 4257 +3428: LocalLoad(Ljava/lang/Object;,6) (6985) + Handles null at 4257 +3429: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (6987) + Handles null at 4257 +3430: LocalStore(Ljava/lang/Object;,5) (6992) + Handles null at 4257 +3431: LocalLoad(Ljava/lang/Object;,5) (6994) + Handles null at 4257 +3432: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (6996) + Handles null at 4257 +3433: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (6996) + Handles null at 4257 +3434: LocalLoad(Ljava/lang/Object;,0) (6996) + Handles null at 4257 +3435: Constant(I,0) (6996) + Handles null at 4257 +3436: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6996) + Handles null at 4257 +3437: Return(Ljava/lang/Object;) (6996) + Handles null at 4257 +3438: Constant(L;,null) (6997) + Handles null at 4257 +3439: LocalStore(Ljava/lang/Object;,6) (6998) + Handles null at 4257 +3440: LocalLoad(Ljava/lang/Object;,3) (7000) + Handles null at 4257 +3441: LocalLoad(I,4) (7001) + Handles null at 4257 +3442: Constant(I,1) (7003) + Handles null at 4257 +3443: BinaryOp(I,sub) (7004) + Handles null at 4257 +3444: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7005) + Handles null at 4257 +3445: CheckCast(Ljava_cup/runtime/Symbol;) (7008) + Handles null at 4257 +3446: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7011) + Handles null at 4257 +3447: LocalStore(I,7) (7014) + Handles null at 4257 +3448: LocalLoad(Ljava/lang/Object;,3) (7016) + Handles null at 4257 +3449: LocalLoad(I,4) (7017) + Handles null at 4257 +3450: Constant(I,1) (7019) + Handles null at 4257 +3451: BinaryOp(I,sub) (7020) + Handles null at 4257 +3452: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7021) + Handles null at 4257 +3453: CheckCast(Ljava_cup/runtime/Symbol;) (7024) + Handles null at 4257 +3454: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7027) + Handles null at 4257 +3455: LocalStore(I,8) (7030) + Handles null at 4257 +3456: LocalLoad(Ljava/lang/Object;,3) (7032) + Handles null at 4257 +3457: LocalLoad(I,4) (7033) + Handles null at 4257 +3458: Constant(I,1) (7035) + Handles null at 4257 +3459: BinaryOp(I,sub) (7036) + Handles null at 4257 +3460: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7037) + Handles null at 4257 +3461: CheckCast(Ljava_cup/runtime/Symbol;) (7040) + Handles null at 4257 +3462: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7043) + Handles null at 4257 +3463: CheckCast(Ljava/lang/String;) (7046) + Handles null at 4257 +3464: LocalStore(Ljava/lang/Object;,9) (7049) + Handles null at 4257 +3465: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (7051) + Handles null at 4257 +3466: Constant(L;,null) (7054) + Handles null at 4257 +3467: ConditionalBranch(Ljava/lang/Object;,eq,3472) (7054) + Handles null at 4257 +3468: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7057) + Handles null at 4257 +3469: Constant(Ljava/lang/String;,"Redundant scan code (skipping)") (7060) + Handles null at 4257 +3470: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (7062) + Handles null at 4257 +3471: Goto(3474) (7065) + Handles null at 4257 +3472: LocalLoad(Ljava/lang/Object;,9) (7068) + Handles null at 4257 +3473: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (7070) + Handles null at 4257 +3474: LocalLoad(Ljava/lang/Object;,0) (7073) + Handles null at 4257 +3475: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7074) + Handles null at 4257 +3476: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7077) + Handles null at 4257 +3477: Constant(Ljava/lang/String;,"scan_code") (7080) + Handles null at 4257 +3478: Constant(I,16) (7082) + Handles null at 4257 +3479: LocalLoad(Ljava/lang/Object;,3) (7084) + Handles null at 4257 +3480: LocalLoad(I,4) (7085) + Handles null at 4257 +3481: Constant(I,3) (7087) + Handles null at 4257 +3482: BinaryOp(I,sub) (7088) + Handles null at 4257 +3483: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7089) + Handles null at 4257 +3484: CheckCast(Ljava_cup/runtime/Symbol;) (7092) + Handles null at 4257 +3485: LocalLoad(Ljava/lang/Object;,3) (7095) + Handles null at 4257 +3486: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7096) + Handles null at 4257 +3487: CheckCast(Ljava_cup/runtime/Symbol;) (7099) + Handles null at 4257 +3488: LocalLoad(Ljava/lang/Object;,6) (7102) + Handles null at 4257 +3489: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7104) + Handles null at 4257 +3490: LocalStore(Ljava/lang/Object;,5) (7109) + Handles null at 4257 +3491: LocalLoad(Ljava/lang/Object;,5) (7111) + Handles null at 4257 +3492: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7113) + Handles null at 4257 +3493: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7113) + Handles null at 4257 +3494: LocalLoad(Ljava/lang/Object;,0) (7113) + Handles null at 4257 +3495: Constant(I,0) (7113) + Handles null at 4257 +3496: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7113) + Handles null at 4257 +3497: Return(Ljava/lang/Object;) (7113) + Handles null at 4257 +3498: Constant(L;,null) (7114) + Handles null at 4257 +3499: LocalStore(Ljava/lang/Object;,6) (7115) + Handles null at 4257 +3500: LocalLoad(Ljava/lang/Object;,3) (7117) + Handles null at 4257 +3501: LocalLoad(I,4) (7118) + Handles null at 4257 +3502: Constant(I,1) (7120) + Handles null at 4257 +3503: BinaryOp(I,sub) (7121) + Handles null at 4257 +3504: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7122) + Handles null at 4257 +3505: CheckCast(Ljava_cup/runtime/Symbol;) (7125) + Handles null at 4257 +3506: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7128) + Handles null at 4257 +3507: LocalStore(I,7) (7131) + Handles null at 4257 +3508: LocalLoad(Ljava/lang/Object;,3) (7133) + Handles null at 4257 +3509: LocalLoad(I,4) (7134) + Handles null at 4257 +3510: Constant(I,1) (7136) + Handles null at 4257 +3511: BinaryOp(I,sub) (7137) + Handles null at 4257 +3512: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7138) + Handles null at 4257 +3513: CheckCast(Ljava_cup/runtime/Symbol;) (7141) + Handles null at 4257 +3514: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7144) + Handles null at 4257 +3515: LocalStore(I,8) (7147) + Handles null at 4257 +3516: LocalLoad(Ljava/lang/Object;,3) (7149) + Handles null at 4257 +3517: LocalLoad(I,4) (7150) + Handles null at 4257 +3518: Constant(I,1) (7152) + Handles null at 4257 +3519: BinaryOp(I,sub) (7153) + Handles null at 4257 +3520: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7154) + Handles null at 4257 +3521: CheckCast(Ljava_cup/runtime/Symbol;) (7157) + Handles null at 4257 +3522: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7160) + Handles null at 4257 +3523: CheckCast(Ljava/lang/String;) (7163) + Handles null at 4257 +3524: LocalStore(Ljava/lang/Object;,9) (7166) + Handles null at 4257 +3525: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (7168) + Handles null at 4257 +3526: Constant(L;,null) (7171) + Handles null at 4257 +3527: ConditionalBranch(Ljava/lang/Object;,eq,3532) (7171) + Handles null at 4257 +3528: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7174) + Handles null at 4257 +3529: Constant(Ljava/lang/String;,"Redundant init code (skipping)") (7177) + Handles null at 4257 +3530: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (7179) + Handles null at 4257 +3531: Goto(3534) (7182) + Handles null at 4257 +3532: LocalLoad(Ljava/lang/Object;,9) (7185) + Handles null at 4257 +3533: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (7187) + Handles null at 4257 +3534: LocalLoad(Ljava/lang/Object;,0) (7190) + Handles null at 4257 +3535: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7191) + Handles null at 4257 +3536: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7194) + Handles null at 4257 +3537: Constant(Ljava/lang/String;,"init_code") (7197) + Handles null at 4257 +3538: Constant(I,15) (7199) + Handles null at 4257 +3539: LocalLoad(Ljava/lang/Object;,3) (7201) + Handles null at 4257 +3540: LocalLoad(I,4) (7202) + Handles null at 4257 +3541: Constant(I,3) (7204) + Handles null at 4257 +3542: BinaryOp(I,sub) (7205) + Handles null at 4257 +3543: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7206) + Handles null at 4257 +3544: CheckCast(Ljava_cup/runtime/Symbol;) (7209) + Handles null at 4257 +3545: LocalLoad(Ljava/lang/Object;,3) (7212) + Handles null at 4257 +3546: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7213) + Handles null at 4257 +3547: CheckCast(Ljava_cup/runtime/Symbol;) (7216) + Handles null at 4257 +3548: LocalLoad(Ljava/lang/Object;,6) (7219) + Handles null at 4257 +3549: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7221) + Handles null at 4257 +3550: LocalStore(Ljava/lang/Object;,5) (7226) + Handles null at 4257 +3551: LocalLoad(Ljava/lang/Object;,5) (7228) + Handles null at 4257 +3552: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7230) + Handles null at 4257 +3553: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7230) + Handles null at 4257 +3554: LocalLoad(Ljava/lang/Object;,0) (7230) + Handles null at 4257 +3555: Constant(I,0) (7230) + Handles null at 4257 +3556: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7230) + Handles null at 4257 +3557: Return(Ljava/lang/Object;) (7230) + Handles null at 4257 +3558: Constant(L;,null) (7231) + Handles null at 4257 +3559: LocalStore(Ljava/lang/Object;,6) (7232) + Handles null at 4257 +3560: LocalLoad(Ljava/lang/Object;,3) (7234) + Handles null at 4257 +3561: LocalLoad(I,4) (7235) + Handles null at 4257 +3562: Constant(I,1) (7237) + Handles null at 4257 +3563: BinaryOp(I,sub) (7238) + Handles null at 4257 +3564: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7239) + Handles null at 4257 +3565: CheckCast(Ljava_cup/runtime/Symbol;) (7242) + Handles null at 4257 +3566: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7245) + Handles null at 4257 +3567: LocalStore(I,7) (7248) + Handles null at 4257 +3568: LocalLoad(Ljava/lang/Object;,3) (7250) + Handles null at 4257 +3569: LocalLoad(I,4) (7251) + Handles null at 4257 +3570: Constant(I,1) (7253) + Handles null at 4257 +3571: BinaryOp(I,sub) (7254) + Handles null at 4257 +3572: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7255) + Handles null at 4257 +3573: CheckCast(Ljava_cup/runtime/Symbol;) (7258) + Handles null at 4257 +3574: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7261) + Handles null at 4257 +3575: LocalStore(I,8) (7264) + Handles null at 4257 +3576: LocalLoad(Ljava/lang/Object;,3) (7266) + Handles null at 4257 +3577: LocalLoad(I,4) (7267) + Handles null at 4257 +3578: Constant(I,1) (7269) + Handles null at 4257 +3579: BinaryOp(I,sub) (7270) + Handles null at 4257 +3580: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7271) + Handles null at 4257 +3581: CheckCast(Ljava_cup/runtime/Symbol;) (7274) + Handles null at 4257 +3582: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7277) + Handles null at 4257 +3583: CheckCast(Ljava/lang/String;) (7280) + Handles null at 4257 +3584: LocalStore(Ljava/lang/Object;,9) (7283) + Handles null at 4257 +3585: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (7285) + Handles null at 4257 +3586: Constant(L;,null) (7288) + Handles null at 4257 +3587: ConditionalBranch(Ljava/lang/Object;,eq,3592) (7288) + Handles null at 4257 +3588: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7291) + Handles null at 4257 +3589: Constant(Ljava/lang/String;,"Redundant parser code (skipping)") (7294) + Handles null at 4257 +3590: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (7296) + Handles null at 4257 +3591: Goto(3594) (7299) + Handles null at 4257 +3592: LocalLoad(Ljava/lang/Object;,9) (7302) + Handles null at 4257 +3593: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (7304) + Handles null at 4257 +3594: LocalLoad(Ljava/lang/Object;,0) (7307) + Handles null at 4257 +3595: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7308) + Handles null at 4257 +3596: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7311) + Handles null at 4257 +3597: Constant(Ljava/lang/String;,"parser_code_part") (7314) + Handles null at 4257 +3598: Constant(I,8) (7316) + Handles null at 4257 +3599: LocalLoad(Ljava/lang/Object;,3) (7318) + Handles null at 4257 +3600: LocalLoad(I,4) (7319) + Handles null at 4257 +3601: Constant(I,3) (7321) + Handles null at 4257 +3602: BinaryOp(I,sub) (7322) + Handles null at 4257 +3603: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7323) + Handles null at 4257 +3604: CheckCast(Ljava_cup/runtime/Symbol;) (7326) + Handles null at 4257 +3605: LocalLoad(Ljava/lang/Object;,3) (7329) + Handles null at 4257 +3606: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7330) + Handles null at 4257 +3607: CheckCast(Ljava_cup/runtime/Symbol;) (7333) + Handles null at 4257 +3608: LocalLoad(Ljava/lang/Object;,6) (7336) + Handles null at 4257 +3609: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7338) + Handles null at 4257 +3610: LocalStore(Ljava/lang/Object;,5) (7343) + Handles null at 4257 +3611: LocalLoad(Ljava/lang/Object;,5) (7345) + Handles null at 4257 +3612: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7347) + Handles null at 4257 +3613: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7347) + Handles null at 4257 +3614: LocalLoad(Ljava/lang/Object;,0) (7347) + Handles null at 4257 +3615: Constant(I,0) (7347) + Handles null at 4257 +3616: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7347) + Handles null at 4257 +3617: Return(Ljava/lang/Object;) (7347) + Handles null at 4257 +3618: Constant(L;,null) (7348) + Handles null at 4257 +3619: LocalStore(Ljava/lang/Object;,6) (7349) + Handles null at 4257 +3620: LocalLoad(Ljava/lang/Object;,3) (7351) + Handles null at 4257 +3621: LocalLoad(I,4) (7352) + Handles null at 4257 +3622: Constant(I,1) (7354) + Handles null at 4257 +3623: BinaryOp(I,sub) (7355) + Handles null at 4257 +3624: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7356) + Handles null at 4257 +3625: CheckCast(Ljava_cup/runtime/Symbol;) (7359) + Handles null at 4257 +3626: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7362) + Handles null at 4257 +3627: LocalStore(I,7) (7365) + Handles null at 4257 +3628: LocalLoad(Ljava/lang/Object;,3) (7367) + Handles null at 4257 +3629: LocalLoad(I,4) (7368) + Handles null at 4257 +3630: Constant(I,1) (7370) + Handles null at 4257 +3631: BinaryOp(I,sub) (7371) + Handles null at 4257 +3632: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7372) + Handles null at 4257 +3633: CheckCast(Ljava_cup/runtime/Symbol;) (7375) + Handles null at 4257 +3634: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7378) + Handles null at 4257 +3635: LocalStore(I,8) (7381) + Handles null at 4257 +3636: LocalLoad(Ljava/lang/Object;,3) (7383) + Handles null at 4257 +3637: LocalLoad(I,4) (7384) + Handles null at 4257 +3638: Constant(I,1) (7386) + Handles null at 4257 +3639: BinaryOp(I,sub) (7387) + Handles null at 4257 +3640: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7388) + Handles null at 4257 +3641: CheckCast(Ljava_cup/runtime/Symbol;) (7391) + Handles null at 4257 +3642: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7394) + Handles null at 4257 +3643: CheckCast(Ljava/lang/String;) (7397) + Handles null at 4257 +3644: LocalStore(Ljava/lang/Object;,9) (7400) + Handles null at 4257 +3645: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (7402) + Handles null at 4257 +3646: Constant(L;,null) (7405) + Handles null at 4257 +3647: ConditionalBranch(Ljava/lang/Object;,eq,3652) (7405) + Handles null at 4257 +3648: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7408) + Handles null at 4257 +3649: Constant(Ljava/lang/String;,"Redundant action code (skipping)") (7411) + Handles null at 4257 +3650: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (7413) + Handles null at 4257 +3651: Goto(3654) (7416) + Handles null at 4257 +3652: LocalLoad(Ljava/lang/Object;,9) (7419) + Handles null at 4257 +3653: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (7421) + Handles null at 4257 +3654: LocalLoad(Ljava/lang/Object;,0) (7424) + Handles null at 4257 +3655: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7425) + Handles null at 4257 +3656: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7428) + Handles null at 4257 +3657: Constant(Ljava/lang/String;,"action_code_part") (7431) + Handles null at 4257 +3658: Constant(I,3) (7433) + Handles null at 4257 +3659: LocalLoad(Ljava/lang/Object;,3) (7434) + Handles null at 4257 +3660: LocalLoad(I,4) (7435) + Handles null at 4257 +3661: Constant(I,3) (7437) + Handles null at 4257 +3662: BinaryOp(I,sub) (7438) + Handles null at 4257 +3663: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7439) + Handles null at 4257 +3664: CheckCast(Ljava_cup/runtime/Symbol;) (7442) + Handles null at 4257 +3665: LocalLoad(Ljava/lang/Object;,3) (7445) + Handles null at 4257 +3666: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7446) + Handles null at 4257 +3667: CheckCast(Ljava_cup/runtime/Symbol;) (7449) + Handles null at 4257 +3668: LocalLoad(Ljava/lang/Object;,6) (7452) + Handles null at 4257 +3669: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7454) + Handles null at 4257 +3670: LocalStore(Ljava/lang/Object;,5) (7459) + Handles null at 4257 +3671: LocalLoad(Ljava/lang/Object;,5) (7461) + Handles null at 4257 +3672: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7463) + Handles null at 4257 +3673: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7463) + Handles null at 4257 +3674: LocalLoad(Ljava/lang/Object;,0) (7463) + Handles null at 4257 +3675: Constant(I,0) (7463) + Handles null at 4257 +3676: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7463) + Handles null at 4257 +3677: Return(Ljava/lang/Object;) (7463) + Handles null at 4257 +3678: Constant(L;,null) (7464) + Handles null at 4257 +3679: LocalStore(Ljava/lang/Object;,6) (7465) + Handles null at 4257 +3680: LocalLoad(Ljava/lang/Object;,0) (7467) + Handles null at 4257 +3681: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7468) + Handles null at 4257 +3682: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7471) + Handles null at 4257 +3683: Constant(Ljava/lang/String;,"code_parts") (7474) + Handles null at 4257 +3684: Constant(I,4) (7476) + Handles null at 4257 +3685: LocalLoad(Ljava/lang/Object;,3) (7477) + Handles null at 4257 +3686: LocalLoad(I,4) (7478) + Handles null at 4257 +3687: Constant(I,1) (7480) + Handles null at 4257 +3688: BinaryOp(I,sub) (7481) + Handles null at 4257 +3689: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7482) + Handles null at 4257 +3690: CheckCast(Ljava_cup/runtime/Symbol;) (7485) + Handles null at 4257 +3691: LocalLoad(Ljava/lang/Object;,3) (7488) + Handles null at 4257 +3692: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7489) + Handles null at 4257 +3693: CheckCast(Ljava_cup/runtime/Symbol;) (7492) + Handles null at 4257 +3694: LocalLoad(Ljava/lang/Object;,6) (7495) + Handles null at 4257 +3695: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7497) + Handles null at 4257 +3696: LocalStore(Ljava/lang/Object;,5) (7502) + Handles null at 4257 +3697: LocalLoad(Ljava/lang/Object;,5) (7504) + Handles null at 4257 +3698: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7506) + Handles null at 4257 +3699: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7506) + Handles null at 4257 +3700: LocalLoad(Ljava/lang/Object;,0) (7506) + Handles null at 4257 +3701: Constant(I,0) (7506) + Handles null at 4257 +3702: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7506) + Handles null at 4257 +3703: Return(Ljava/lang/Object;) (7506) + Handles null at 4257 +3704: Constant(L;,null) (7507) + Handles null at 4257 +3705: LocalStore(Ljava/lang/Object;,6) (7508) + Handles null at 4257 +3706: LocalLoad(Ljava/lang/Object;,0) (7510) + Handles null at 4257 +3707: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7511) + Handles null at 4257 +3708: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7514) + Handles null at 4257 +3709: Constant(Ljava/lang/String;,"code_parts") (7517) + Handles null at 4257 +3710: Constant(I,4) (7519) + Handles null at 4257 +3711: LocalLoad(Ljava/lang/Object;,3) (7520) + Handles null at 4257 +3712: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7521) + Handles null at 4257 +3713: CheckCast(Ljava_cup/runtime/Symbol;) (7524) + Handles null at 4257 +3714: LocalLoad(Ljava/lang/Object;,3) (7527) + Handles null at 4257 +3715: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7528) + Handles null at 4257 +3716: CheckCast(Ljava_cup/runtime/Symbol;) (7531) + Handles null at 4257 +3717: LocalLoad(Ljava/lang/Object;,6) (7534) + Handles null at 4257 +3718: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7536) + Handles null at 4257 +3719: LocalStore(Ljava/lang/Object;,5) (7541) + Handles null at 4257 +3720: LocalLoad(Ljava/lang/Object;,5) (7543) + Handles null at 4257 +3721: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7545) + Handles null at 4257 +3722: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7545) + Handles null at 4257 +3723: LocalLoad(Ljava/lang/Object;,0) (7545) + Handles null at 4257 +3724: Constant(I,0) (7545) + Handles null at 4257 +3725: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7545) + Handles null at 4257 +3726: Return(Ljava/lang/Object;) (7545) + Handles null at 4257 +3727: Constant(L;,null) (7546) + Handles null at 4257 +3728: LocalStore(Ljava/lang/Object;,6) (7547) + Handles null at 4257 +3729: LocalLoad(Ljava/lang/Object;,0) (7549) + Handles null at 4257 +3730: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7550) + Handles null at 4257 +3731: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7553) + Handles null at 4257 +3732: Constant(Ljava/lang/String;,"code_part") (7556) + Handles null at 4257 +3733: Constant(I,5) (7558) + Handles null at 4257 +3734: LocalLoad(Ljava/lang/Object;,3) (7559) + Handles null at 4257 +3735: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7560) + Handles null at 4257 +3736: CheckCast(Ljava_cup/runtime/Symbol;) (7563) + Handles null at 4257 +3737: LocalLoad(Ljava/lang/Object;,3) (7566) + Handles null at 4257 +3738: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7567) + Handles null at 4257 +3739: CheckCast(Ljava_cup/runtime/Symbol;) (7570) + Handles null at 4257 +3740: LocalLoad(Ljava/lang/Object;,6) (7573) + Handles null at 4257 +3741: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7575) + Handles null at 4257 +3742: LocalStore(Ljava/lang/Object;,5) (7580) + Handles null at 4257 +3743: LocalLoad(Ljava/lang/Object;,5) (7582) + Handles null at 4257 +3744: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7584) + Handles null at 4257 +3745: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7584) + Handles null at 4257 +3746: LocalLoad(Ljava/lang/Object;,0) (7584) + Handles null at 4257 +3747: Constant(I,0) (7584) + Handles null at 4257 +3748: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7584) + Handles null at 4257 +3749: Return(Ljava/lang/Object;) (7584) + Handles null at 4257 +3750: Constant(L;,null) (7585) + Handles null at 4257 +3751: LocalStore(Ljava/lang/Object;,6) (7586) + Handles null at 4257 +3752: LocalLoad(Ljava/lang/Object;,0) (7588) + Handles null at 4257 +3753: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7589) + Handles null at 4257 +3754: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7592) + Handles null at 4257 +3755: Constant(Ljava/lang/String;,"code_part") (7595) + Handles null at 4257 +3756: Constant(I,5) (7597) + Handles null at 4257 +3757: LocalLoad(Ljava/lang/Object;,3) (7598) + Handles null at 4257 +3758: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7599) + Handles null at 4257 +3759: CheckCast(Ljava_cup/runtime/Symbol;) (7602) + Handles null at 4257 +3760: LocalLoad(Ljava/lang/Object;,3) (7605) + Handles null at 4257 +3761: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7606) + Handles null at 4257 +3762: CheckCast(Ljava_cup/runtime/Symbol;) (7609) + Handles null at 4257 +3763: LocalLoad(Ljava/lang/Object;,6) (7612) + Handles null at 4257 +3764: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7614) + Handles null at 4257 +3765: LocalStore(Ljava/lang/Object;,5) (7619) + Handles null at 4257 +3766: LocalLoad(Ljava/lang/Object;,5) (7621) + Handles null at 4257 +3767: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7623) + Handles null at 4257 +3768: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7623) + Handles null at 4257 +3769: LocalLoad(Ljava/lang/Object;,0) (7623) + Handles null at 4257 +3770: Constant(I,0) (7623) + Handles null at 4257 +3771: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7623) + Handles null at 4257 +3772: Return(Ljava/lang/Object;) (7623) + Handles null at 4257 +3773: Constant(L;,null) (7624) + Handles null at 4257 +3774: LocalStore(Ljava/lang/Object;,6) (7625) + Handles null at 4257 +3775: LocalLoad(Ljava/lang/Object;,0) (7627) + Handles null at 4257 +3776: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7628) + Handles null at 4257 +3777: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7631) + Handles null at 4257 +3778: Constant(Ljava/lang/String;,"code_part") (7634) + Handles null at 4257 +3779: Constant(I,5) (7636) + Handles null at 4257 +3780: LocalLoad(Ljava/lang/Object;,3) (7637) + Handles null at 4257 +3781: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7638) + Handles null at 4257 +3782: CheckCast(Ljava_cup/runtime/Symbol;) (7641) + Handles null at 4257 +3783: LocalLoad(Ljava/lang/Object;,3) (7644) + Handles null at 4257 +3784: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7645) + Handles null at 4257 +3785: CheckCast(Ljava_cup/runtime/Symbol;) (7648) + Handles null at 4257 +3786: LocalLoad(Ljava/lang/Object;,6) (7651) + Handles null at 4257 +3787: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7653) + Handles null at 4257 +3788: LocalStore(Ljava/lang/Object;,5) (7658) + Handles null at 4257 +3789: LocalLoad(Ljava/lang/Object;,5) (7660) + Handles null at 4257 +3790: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7662) + Handles null at 4257 +3791: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7662) + Handles null at 4257 +3792: LocalLoad(Ljava/lang/Object;,0) (7662) + Handles null at 4257 +3793: Constant(I,0) (7662) + Handles null at 4257 +3794: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7662) + Handles null at 4257 +3795: Return(Ljava/lang/Object;) (7662) + Handles null at 4257 +3796: Constant(L;,null) (7663) + Handles null at 4257 +3797: LocalStore(Ljava/lang/Object;,6) (7664) + Handles null at 4257 +3798: LocalLoad(Ljava/lang/Object;,0) (7666) + Handles null at 4257 +3799: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7667) + Handles null at 4257 +3800: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7670) + Handles null at 4257 +3801: Constant(Ljava/lang/String;,"code_part") (7673) + Handles null at 4257 +3802: Constant(I,5) (7675) + Handles null at 4257 +3803: LocalLoad(Ljava/lang/Object;,3) (7676) + Handles null at 4257 +3804: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7677) + Handles null at 4257 +3805: CheckCast(Ljava_cup/runtime/Symbol;) (7680) + Handles null at 4257 +3806: LocalLoad(Ljava/lang/Object;,3) (7683) + Handles null at 4257 +3807: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7684) + Handles null at 4257 +3808: CheckCast(Ljava_cup/runtime/Symbol;) (7687) + Handles null at 4257 +3809: LocalLoad(Ljava/lang/Object;,6) (7690) + Handles null at 4257 +3810: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7692) + Handles null at 4257 +3811: LocalStore(Ljava/lang/Object;,5) (7697) + Handles null at 4257 +3812: LocalLoad(Ljava/lang/Object;,5) (7699) + Handles null at 4257 +3813: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7701) + Handles null at 4257 +3814: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7701) + Handles null at 4257 +3815: LocalLoad(Ljava/lang/Object;,0) (7701) + Handles null at 4257 +3816: Constant(I,0) (7701) + Handles null at 4257 +3817: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7701) + Handles null at 4257 +3818: Return(Ljava/lang/Object;) (7701) + Handles null at 4257 +3819: Constant(L;,null) (7702) + Handles null at 4257 +3820: LocalStore(Ljava/lang/Object;,6) (7703) + Handles null at 4257 +3821: LocalLoad(Ljava/lang/Object;,3) (7705) + Handles null at 4257 +3822: LocalLoad(I,4) (7706) + Handles null at 4257 +3823: Constant(I,1) (7708) + Handles null at 4257 +3824: BinaryOp(I,sub) (7709) + Handles null at 4257 +3825: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7710) + Handles null at 4257 +3826: CheckCast(Ljava_cup/runtime/Symbol;) (7713) + Handles null at 4257 +3827: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7716) + Handles null at 4257 +3828: LocalStore(I,7) (7719) + Handles null at 4257 +3829: LocalLoad(Ljava/lang/Object;,3) (7721) + Handles null at 4257 +3830: LocalLoad(I,4) (7722) + Handles null at 4257 +3831: Constant(I,1) (7724) + Handles null at 4257 +3832: BinaryOp(I,sub) (7725) + Handles null at 4257 +3833: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7726) + Handles null at 4257 +3834: CheckCast(Ljava_cup/runtime/Symbol;) (7729) + Handles null at 4257 +3835: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7732) + Handles null at 4257 +3836: LocalStore(I,8) (7735) + Handles null at 4257 +3837: LocalLoad(Ljava/lang/Object;,3) (7737) + Handles null at 4257 +3838: LocalLoad(I,4) (7738) + Handles null at 4257 +3839: Constant(I,1) (7740) + Handles null at 4257 +3840: BinaryOp(I,sub) (7741) + Handles null at 4257 +3841: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7742) + Handles null at 4257 +3842: CheckCast(Ljava_cup/runtime/Symbol;) (7745) + Handles null at 4257 +3843: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7748) + Handles null at 4257 +3844: CheckCast(Ljava/lang/String;) (7751) + Handles null at 4257 +3845: LocalStore(Ljava/lang/Object;,9) (7754) + Handles null at 4257 +3846: LocalLoad(Ljava/lang/Object;,9) (7756) + Handles null at 4257 +3847: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (7758) + Handles null at 4257 +3848: New(Ljava/lang/StringBuilder;,0) (7761) + Handles null at 4257 +3849: Dup(1,0) (7764) + Handles null at 4257 +3850: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7765) + Handles null at 4257 +3851: LocalLoad(Ljava/lang/Object;,9) (7768) + Handles null at 4257 +3852: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (7770) + Handles null at 4257 +3853: Constant(Ljava/lang/String;,"Sym") (7773) + Handles null at 4257 +3854: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (7775) + Handles null at 4257 +3855: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (7778) + Handles null at 4257 +3856: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (7781) + Handles null at 4257 +3857: LocalLoad(Ljava/lang/Object;,0) (7784) + Handles null at 4257 +3858: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7785) + Handles null at 4257 +3859: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7788) + Handles null at 4257 +3860: Constant(Ljava/lang/String;,"class_name") (7791) + Handles null at 4257 +3861: Constant(I,35) (7793) + Handles null at 4257 +3862: LocalLoad(Ljava/lang/Object;,3) (7795) + Handles null at 4257 +3863: LocalLoad(I,4) (7796) + Handles null at 4257 +3864: Constant(I,2) (7798) + Handles null at 4257 +3865: BinaryOp(I,sub) (7799) + Handles null at 4257 +3866: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7800) + Handles null at 4257 +3867: CheckCast(Ljava_cup/runtime/Symbol;) (7803) + Handles null at 4257 +3868: LocalLoad(Ljava/lang/Object;,3) (7806) + Handles null at 4257 +3869: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7807) + Handles null at 4257 +3870: CheckCast(Ljava_cup/runtime/Symbol;) (7810) + Handles null at 4257 +3871: LocalLoad(Ljava/lang/Object;,6) (7813) + Handles null at 4257 +3872: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7815) + Handles null at 4257 +3873: LocalStore(Ljava/lang/Object;,5) (7820) + Handles null at 4257 +3874: LocalLoad(Ljava/lang/Object;,5) (7822) + Handles null at 4257 +3875: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7824) + Handles null at 4257 +3876: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7824) + Handles null at 4257 +3877: LocalLoad(Ljava/lang/Object;,0) (7824) + Handles null at 4257 +3878: Constant(I,0) (7824) + Handles null at 4257 +3879: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7824) + Handles null at 4257 +3880: Return(Ljava/lang/Object;) (7824) + Handles null at 4257 +3881: Constant(L;,null) (7825) + Handles null at 4257 +3882: LocalStore(Ljava/lang/Object;,6) (7826) + Handles null at 4257 +3883: LocalLoad(Ljava/lang/Object;,0) (7828) + Handles null at 4257 +3884: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7829) + Handles null at 4257 +3885: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7832) + Handles null at 4257 +3886: Constant(Ljava/lang/String;,"class_name") (7835) + Handles null at 4257 +3887: Constant(I,35) (7837) + Handles null at 4257 +3888: LocalLoad(Ljava/lang/Object;,3) (7839) + Handles null at 4257 +3889: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7840) + Handles null at 4257 +3890: CheckCast(Ljava_cup/runtime/Symbol;) (7843) + Handles null at 4257 +3891: LocalLoad(Ljava/lang/Object;,3) (7846) + Handles null at 4257 +3892: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7847) + Handles null at 4257 +3893: CheckCast(Ljava_cup/runtime/Symbol;) (7850) + Handles null at 4257 +3894: LocalLoad(Ljava/lang/Object;,6) (7853) + Handles null at 4257 +3895: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7855) + Handles null at 4257 +3896: LocalStore(Ljava/lang/Object;,5) (7860) + Handles null at 4257 +3897: LocalLoad(Ljava/lang/Object;,5) (7862) + Handles null at 4257 +3898: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7864) + Handles null at 4257 +3899: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7864) + Handles null at 4257 +3900: LocalLoad(Ljava/lang/Object;,0) (7864) + Handles null at 4257 +3901: Constant(I,0) (7864) + Handles null at 4257 +3902: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7864) + Handles null at 4257 +3903: Return(Ljava/lang/Object;) (7864) + Handles null at 4257 +3904: Constant(L;,null) (7865) + Handles null at 4257 +3905: LocalStore(Ljava/lang/Object;,6) (7866) + Handles null at 4257 +3906: LocalLoad(Ljava/lang/Object;,3) (7868) + Handles null at 4257 +3907: LocalLoad(I,4) (7869) + Handles null at 4257 +3908: Constant(I,1) (7871) + Handles null at 4257 +3909: BinaryOp(I,sub) (7872) + Handles null at 4257 +3910: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7873) + Handles null at 4257 +3911: CheckCast(Ljava_cup/runtime/Symbol;) (7876) + Handles null at 4257 +3912: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (7879) + Handles null at 4257 +3913: LocalStore(Ljava/lang/Object;,6) (7882) + Handles null at 4257 +3914: LocalLoad(Ljava/lang/Object;,0) (7884) + Handles null at 4257 +3915: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7885) + Handles null at 4257 +3916: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7888) + Handles null at 4257 +3917: Constant(Ljava/lang/String;,"import_spec") (7891) + Handles null at 4257 +3918: Constant(I,13) (7893) + Handles null at 4257 +3919: LocalLoad(Ljava/lang/Object;,3) (7895) + Handles null at 4257 +3920: LocalLoad(I,4) (7896) + Handles null at 4257 +3921: Constant(I,3) (7898) + Handles null at 4257 +3922: BinaryOp(I,sub) (7899) + Handles null at 4257 +3923: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (7900) + Handles null at 4257 +3924: CheckCast(Ljava_cup/runtime/Symbol;) (7903) + Handles null at 4257 +3925: LocalLoad(Ljava/lang/Object;,3) (7906) + Handles null at 4257 +3926: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7907) + Handles null at 4257 +3927: CheckCast(Ljava_cup/runtime/Symbol;) (7910) + Handles null at 4257 +3928: LocalLoad(Ljava/lang/Object;,6) (7913) + Handles null at 4257 +3929: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7915) + Handles null at 4257 +3930: LocalStore(Ljava/lang/Object;,5) (7920) + Handles null at 4257 +3931: LocalLoad(Ljava/lang/Object;,5) (7922) + Handles null at 4257 +3932: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7924) + Handles null at 4257 +3933: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7924) + Handles null at 4257 +3934: LocalLoad(Ljava/lang/Object;,0) (7924) + Handles null at 4257 +3935: Constant(I,0) (7924) + Handles null at 4257 +3936: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7924) + Handles null at 4257 +3937: Return(Ljava/lang/Object;) (7924) + Handles null at 4257 +3938: Constant(L;,null) (7925) + Handles null at 4257 +3939: LocalStore(Ljava/lang/Object;,6) (7926) + Handles null at 4257 +3940: Get(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (7928) + Handles null at 4257 +3941: LocalLoad(Ljava/lang/Object;,0) (7931) + Handles null at 4257 +3942: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (7932) + Handles null at 4257 +3943: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (7935) + Handles null at 4257 +3944: Pop(1) (7938) + Handles null at 4257 +3945: LocalLoad(Ljava/lang/Object;,0) (7939) + Handles null at 4257 +3946: New(Ljava/lang/String;,0) (7940) + Handles null at 4257 +3947: Dup(1,0) (7943) + Handles null at 4257 +3948: Invoke(SPECIAL,Ljava/lang/String;,,()V) (7944) + Handles null at 4257 +3949: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (7947) + Handles null at 4257 +3950: LocalLoad(Ljava/lang/Object;,0) (7950) + Handles null at 4257 +3951: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7951) + Handles null at 4257 +3952: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7954) + Handles null at 4257 +3953: Constant(Ljava/lang/String;,"NT$2") (7957) + Handles null at 4257 +3954: Constant(I,48) (7959) + Handles null at 4257 +3955: LocalLoad(Ljava/lang/Object;,3) (7961) + Handles null at 4257 +3956: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7962) + Handles null at 4257 +3957: CheckCast(Ljava_cup/runtime/Symbol;) (7965) + Handles null at 4257 +3958: LocalLoad(Ljava/lang/Object;,3) (7968) + Handles null at 4257 +3959: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (7969) + Handles null at 4257 +3960: CheckCast(Ljava_cup/runtime/Symbol;) (7972) + Handles null at 4257 +3961: LocalLoad(Ljava/lang/Object;,6) (7975) + Handles null at 4257 +3962: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (7977) + Handles null at 4257 +3963: LocalStore(Ljava/lang/Object;,5) (7982) + Handles null at 4257 +3964: LocalLoad(Ljava/lang/Object;,5) (7984) + Handles null at 4257 +3965: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (7986) + Handles null at 4257 +3966: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (7986) + Handles null at 4257 +3967: LocalLoad(Ljava/lang/Object;,0) (7986) + Handles null at 4257 +3968: Constant(I,0) (7986) + Handles null at 4257 +3969: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7986) + Handles null at 4257 +3970: Return(Ljava/lang/Object;) (7986) + Handles null at 4257 +3971: Constant(L;,null) (7987) + Handles null at 4257 +3972: LocalStore(Ljava/lang/Object;,6) (7988) + Handles null at 4257 +3973: LocalLoad(Ljava/lang/Object;,0) (7990) + Handles null at 4257 +3974: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (7991) + Handles null at 4257 +3975: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (7994) + Handles null at 4257 +3976: Constant(Ljava/lang/String;,"import_list") (7997) + Handles null at 4257 +3977: Constant(I,2) (7999) + Handles null at 4257 +3978: LocalLoad(Ljava/lang/Object;,3) (8000) + Handles null at 4257 +3979: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8001) + Handles null at 4257 +3980: CheckCast(Ljava_cup/runtime/Symbol;) (8004) + Handles null at 4257 +3981: LocalLoad(Ljava/lang/Object;,3) (8007) + Handles null at 4257 +3982: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8008) + Handles null at 4257 +3983: CheckCast(Ljava_cup/runtime/Symbol;) (8011) + Handles null at 4257 +3984: LocalLoad(Ljava/lang/Object;,6) (8014) + Handles null at 4257 +3985: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8016) + Handles null at 4257 +3986: LocalStore(Ljava/lang/Object;,5) (8021) + Handles null at 4257 +3987: LocalLoad(Ljava/lang/Object;,5) (8023) + Handles null at 4257 +3988: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8025) + Handles null at 4257 +3989: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8025) + Handles null at 4257 +3990: LocalLoad(Ljava/lang/Object;,0) (8025) + Handles null at 4257 +3991: Constant(I,0) (8025) + Handles null at 4257 +3992: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8025) + Handles null at 4257 +3993: Return(Ljava/lang/Object;) (8025) + Handles null at 4257 +3994: Constant(L;,null) (8026) + Handles null at 4257 +3995: LocalStore(Ljava/lang/Object;,6) (8027) + Handles null at 4257 +3996: LocalLoad(Ljava/lang/Object;,0) (8029) + Handles null at 4257 +3997: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8030) + Handles null at 4257 +3998: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8033) + Handles null at 4257 +3999: Constant(Ljava/lang/String;,"import_list") (8036) + Handles null at 4257 +4000: Constant(I,2) (8038) + Handles null at 4257 +4001: LocalLoad(Ljava/lang/Object;,3) (8039) + Handles null at 4257 +4002: LocalLoad(I,4) (8040) + Handles null at 4257 +4003: Constant(I,1) (8042) + Handles null at 4257 +4004: BinaryOp(I,sub) (8043) + Handles null at 4257 +4005: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8044) + Handles null at 4257 +4006: CheckCast(Ljava_cup/runtime/Symbol;) (8047) + Handles null at 4257 +4007: LocalLoad(Ljava/lang/Object;,3) (8050) + Handles null at 4257 +4008: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8051) + Handles null at 4257 +4009: CheckCast(Ljava_cup/runtime/Symbol;) (8054) + Handles null at 4257 +4010: LocalLoad(Ljava/lang/Object;,6) (8057) + Handles null at 4257 +4011: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8059) + Handles null at 4257 +4012: LocalStore(Ljava/lang/Object;,5) (8064) + Handles null at 4257 +4013: LocalLoad(Ljava/lang/Object;,5) (8066) + Handles null at 4257 +4014: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8068) + Handles null at 4257 +4015: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8068) + Handles null at 4257 +4016: LocalLoad(Ljava/lang/Object;,0) (8068) + Handles null at 4257 +4017: Constant(I,0) (8068) + Handles null at 4257 +4018: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8068) + Handles null at 4257 +4019: Return(Ljava/lang/Object;) (8068) + Handles null at 4257 +4020: Constant(L;,null) (8069) + Handles null at 4257 +4021: LocalStore(Ljava/lang/Object;,6) (8070) + Handles null at 4257 +4022: LocalLoad(Ljava/lang/Object;,0) (8072) + Handles null at 4257 +4023: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8073) + Handles null at 4257 +4024: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8076) + Handles null at 4257 +4025: Constant(Ljava/lang/String;,"package_spec") (8079) + Handles null at 4257 +4026: Constant(I,1) (8081) + Handles null at 4257 +4027: LocalLoad(Ljava/lang/Object;,3) (8082) + Handles null at 4257 +4028: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8083) + Handles null at 4257 +4029: CheckCast(Ljava_cup/runtime/Symbol;) (8086) + Handles null at 4257 +4030: LocalLoad(Ljava/lang/Object;,3) (8089) + Handles null at 4257 +4031: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8090) + Handles null at 4257 +4032: CheckCast(Ljava_cup/runtime/Symbol;) (8093) + Handles null at 4257 +4033: LocalLoad(Ljava/lang/Object;,6) (8096) + Handles null at 4257 +4034: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8098) + Handles null at 4257 +4035: LocalStore(Ljava/lang/Object;,5) (8103) + Handles null at 4257 +4036: LocalLoad(Ljava/lang/Object;,5) (8105) + Handles null at 4257 +4037: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8107) + Handles null at 4257 +4038: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8107) + Handles null at 4257 +4039: LocalLoad(Ljava/lang/Object;,0) (8107) + Handles null at 4257 +4040: Constant(I,0) (8107) + Handles null at 4257 +4041: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8107) + Handles null at 4257 +4042: Return(Ljava/lang/Object;) (8107) + Handles null at 4257 +4043: Constant(L;,null) (8108) + Handles null at 4257 +4044: LocalStore(Ljava/lang/Object;,6) (8109) + Handles null at 4257 +4045: LocalLoad(Ljava/lang/Object;,3) (8111) + Handles null at 4257 +4046: LocalLoad(I,4) (8112) + Handles null at 4257 +4047: Constant(I,1) (8114) + Handles null at 4257 +4048: BinaryOp(I,sub) (8115) + Handles null at 4257 +4049: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8116) + Handles null at 4257 +4050: CheckCast(Ljava_cup/runtime/Symbol;) (8119) + Handles null at 4257 +4051: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (8122) + Handles null at 4257 +4052: LocalStore(Ljava/lang/Object;,6) (8125) + Handles null at 4257 +4053: LocalLoad(Ljava/lang/Object;,0) (8127) + Handles null at 4257 +4054: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8128) + Handles null at 4257 +4055: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8131) + Handles null at 4257 +4056: Constant(Ljava/lang/String;,"package_spec") (8134) + Handles null at 4257 +4057: Constant(I,1) (8136) + Handles null at 4257 +4058: LocalLoad(Ljava/lang/Object;,3) (8137) + Handles null at 4257 +4059: LocalLoad(I,4) (8138) + Handles null at 4257 +4060: Constant(I,3) (8140) + Handles null at 4257 +4061: BinaryOp(I,sub) (8141) + Handles null at 4257 +4062: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8142) + Handles null at 4257 +4063: CheckCast(Ljava_cup/runtime/Symbol;) (8145) + Handles null at 4257 +4064: LocalLoad(Ljava/lang/Object;,3) (8148) + Handles null at 4257 +4065: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8149) + Handles null at 4257 +4066: CheckCast(Ljava_cup/runtime/Symbol;) (8152) + Handles null at 4257 +4067: LocalLoad(Ljava/lang/Object;,6) (8155) + Handles null at 4257 +4068: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8157) + Handles null at 4257 +4069: LocalStore(Ljava/lang/Object;,5) (8162) + Handles null at 4257 +4070: LocalLoad(Ljava/lang/Object;,5) (8164) + Handles null at 4257 +4071: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8166) + Handles null at 4257 +4072: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8166) + Handles null at 4257 +4073: LocalLoad(Ljava/lang/Object;,0) (8166) + Handles null at 4257 +4074: Constant(I,0) (8166) + Handles null at 4257 +4075: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8166) + Handles null at 4257 +4076: Return(Ljava/lang/Object;) (8166) + Handles null at 4257 +4077: Constant(L;,null) (8167) + Handles null at 4257 +4078: LocalStore(Ljava/lang/Object;,6) (8168) + Handles null at 4257 +4079: LocalLoad(Ljava/lang/Object;,0) (8170) + Handles null at 4257 +4080: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (8171) + Handles null at 4257 +4081: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (8174) + Handles null at 4257 +4082: LocalLoad(Ljava/lang/Object;,0) (8177) + Handles null at 4257 +4083: New(Ljava/lang/String;,0) (8178) + Handles null at 4257 +4084: Dup(1,0) (8181) + Handles null at 4257 +4085: Invoke(SPECIAL,Ljava/lang/String;,,()V) (8182) + Handles null at 4257 +4086: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/CUP$parser$actions;,multipart_name) (8185) + Handles null at 4257 +4087: LocalLoad(Ljava/lang/Object;,0) (8188) + Handles null at 4257 +4088: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8189) + Handles null at 4257 +4089: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8192) + Handles null at 4257 +4090: Constant(Ljava/lang/String;,"NT$1") (8195) + Handles null at 4257 +4091: Constant(I,47) (8197) + Handles null at 4257 +4092: LocalLoad(Ljava/lang/Object;,3) (8199) + Handles null at 4257 +4093: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8200) + Handles null at 4257 +4094: CheckCast(Ljava_cup/runtime/Symbol;) (8203) + Handles null at 4257 +4095: LocalLoad(Ljava/lang/Object;,3) (8206) + Handles null at 4257 +4096: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8207) + Handles null at 4257 +4097: CheckCast(Ljava_cup/runtime/Symbol;) (8210) + Handles null at 4257 +4098: LocalLoad(Ljava/lang/Object;,6) (8213) + Handles null at 4257 +4099: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8215) + Handles null at 4257 +4100: LocalStore(Ljava/lang/Object;,5) (8220) + Handles null at 4257 +4101: LocalLoad(Ljava/lang/Object;,5) (8222) + Handles null at 4257 +4102: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8224) + Handles null at 4257 +4103: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8224) + Handles null at 4257 +4104: LocalLoad(Ljava/lang/Object;,0) (8224) + Handles null at 4257 +4105: Constant(I,0) (8224) + Handles null at 4257 +4106: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8224) + Handles null at 4257 +4107: Return(Ljava/lang/Object;) (8224) + Handles null at 4257 +4108: Constant(L;,null) (8225) + Handles null at 4257 +4109: LocalStore(Ljava/lang/Object;,6) (8226) + Handles null at 4257 +4110: LocalLoad(Ljava/lang/Object;,0) (8228) + Handles null at 4257 +4111: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8229) + Handles null at 4257 +4112: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8232) + Handles null at 4257 +4113: Constant(Ljava/lang/String;,"spec") (8235) + Handles null at 4257 +4114: Constant(I,0) (8237) + Handles null at 4257 +4115: LocalLoad(Ljava/lang/Object;,3) (8238) + Handles null at 4257 +4116: LocalLoad(I,4) (8239) + Handles null at 4257 +4117: Constant(I,4) (8241) + Handles null at 4257 +4118: BinaryOp(I,sub) (8242) + Handles null at 4257 +4119: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8243) + Handles null at 4257 +4120: CheckCast(Ljava_cup/runtime/Symbol;) (8246) + Handles null at 4257 +4121: LocalLoad(Ljava/lang/Object;,3) (8249) + Handles null at 4257 +4122: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8250) + Handles null at 4257 +4123: CheckCast(Ljava_cup/runtime/Symbol;) (8253) + Handles null at 4257 +4124: LocalLoad(Ljava/lang/Object;,6) (8256) + Handles null at 4257 +4125: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8258) + Handles null at 4257 +4126: LocalStore(Ljava/lang/Object;,5) (8263) + Handles null at 4257 +4127: LocalLoad(Ljava/lang/Object;,5) (8265) + Handles null at 4257 +4128: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8267) + Handles null at 4257 +4129: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8267) + Handles null at 4257 +4130: LocalLoad(Ljava/lang/Object;,0) (8267) + Handles null at 4257 +4131: Constant(I,0) (8267) + Handles null at 4257 +4132: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8267) + Handles null at 4257 +4133: Return(Ljava/lang/Object;) (8267) + Handles null at 4257 +4134: Constant(L;,null) (8268) + Handles null at 4257 +4135: LocalStore(Ljava/lang/Object;,6) (8269) + Handles null at 4257 +4136: LocalLoad(Ljava/lang/Object;,0) (8271) + Handles null at 4257 +4137: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8272) + Handles null at 4257 +4138: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8275) + Handles null at 4257 +4139: Constant(Ljava/lang/String;,"spec") (8278) + Handles null at 4257 +4140: Constant(I,0) (8280) + Handles null at 4257 +4141: LocalLoad(Ljava/lang/Object;,3) (8281) + Handles null at 4257 +4142: LocalLoad(I,4) (8282) + Handles null at 4257 +4143: Constant(I,8) (8284) + Handles null at 4257 +4144: BinaryOp(I,sub) (8286) + Handles null at 4257 +4145: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8287) + Handles null at 4257 +4146: CheckCast(Ljava_cup/runtime/Symbol;) (8290) + Handles null at 4257 +4147: LocalLoad(Ljava/lang/Object;,3) (8293) + Handles null at 4257 +4148: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8294) + Handles null at 4257 +4149: CheckCast(Ljava_cup/runtime/Symbol;) (8297) + Handles null at 4257 +4150: LocalLoad(Ljava/lang/Object;,6) (8300) + Handles null at 4257 +4151: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8302) + Handles null at 4257 +4152: LocalStore(Ljava/lang/Object;,5) (8307) + Handles null at 4257 +4153: LocalLoad(Ljava/lang/Object;,5) (8309) + Handles null at 4257 +4154: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8311) + Handles null at 4257 +4155: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8311) + Handles null at 4257 +4156: LocalLoad(Ljava/lang/Object;,0) (8311) + Handles null at 4257 +4157: Constant(I,0) (8311) + Handles null at 4257 +4158: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8311) + Handles null at 4257 +4159: Return(Ljava/lang/Object;) (8311) + Handles null at 4257 +4160: Constant(L;,null) (8312) + Handles null at 4257 +4161: LocalStore(Ljava/lang/Object;,6) (8313) + Handles null at 4257 +4162: LocalLoad(Ljava/lang/Object;,0) (8315) + Handles null at 4257 +4163: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,symbols) (8316) + Handles null at 4257 +4164: Constant(Ljava/lang/String;,"error") (8319) + Handles null at 4257 +4165: New(Ljava_cup/symbol_part;,0) (8321) + Handles null at 4257 +4166: Dup(1,0) (8324) + Handles null at 4257 +4167: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (8325) + Handles null at 4257 +4168: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (8328) + Handles null at 4257 +4169: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (8331) + Handles null at 4257 +4170: Pop(1) (8334) + Handles null at 4257 +4171: LocalLoad(Ljava/lang/Object;,0) (8335) + Handles null at 4257 +4172: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/CUP$parser$actions;,non_terms) (8336) + Handles null at 4257 +4173: Constant(Ljava/lang/String;,"$START") (8339) + Handles null at 4257 +4174: Get(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (8341) + Handles null at 4257 +4175: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (8344) + Handles null at 4257 +4176: Pop(1) (8347) + Handles null at 4257 +4177: LocalLoad(Ljava/lang/Object;,0) (8348) + Handles null at 4257 +4178: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8349) + Handles null at 4257 +4179: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8352) + Handles null at 4257 +4180: Constant(Ljava/lang/String;,"NT$0") (8355) + Handles null at 4257 +4181: Constant(I,46) (8357) + Handles null at 4257 +4182: LocalLoad(Ljava/lang/Object;,3) (8359) + Handles null at 4257 +4183: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8360) + Handles null at 4257 +4184: CheckCast(Ljava_cup/runtime/Symbol;) (8363) + Handles null at 4257 +4185: LocalLoad(Ljava/lang/Object;,3) (8366) + Handles null at 4257 +4186: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8367) + Handles null at 4257 +4187: CheckCast(Ljava_cup/runtime/Symbol;) (8370) + Handles null at 4257 +4188: LocalLoad(Ljava/lang/Object;,6) (8373) + Handles null at 4257 +4189: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8375) + Handles null at 4257 +4190: LocalStore(Ljava/lang/Object;,5) (8380) + Handles null at 4257 +4191: LocalLoad(Ljava/lang/Object;,5) (8382) + Handles null at 4257 +4192: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8384) + Handles null at 4257 +4193: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8384) + Handles null at 4257 +4194: LocalLoad(Ljava/lang/Object;,0) (8384) + Handles null at 4257 +4195: Constant(I,0) (8384) + Handles null at 4257 +4196: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8384) + Handles null at 4257 +4197: Return(Ljava/lang/Object;) (8384) + Handles null at 4257 +4198: Constant(L;,null) (8385) + Handles null at 4257 +4199: LocalStore(Ljava/lang/Object;,6) (8386) + Handles null at 4257 +4200: LocalLoad(Ljava/lang/Object;,3) (8388) + Handles null at 4257 +4201: LocalLoad(I,4) (8389) + Handles null at 4257 +4202: Constant(I,1) (8391) + Handles null at 4257 +4203: BinaryOp(I,sub) (8392) + Handles null at 4257 +4204: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8393) + Handles null at 4257 +4205: CheckCast(Ljava_cup/runtime/Symbol;) (8396) + Handles null at 4257 +4206: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (8399) + Handles null at 4257 +4207: LocalStore(I,7) (8402) + Handles null at 4257 +4208: LocalLoad(Ljava/lang/Object;,3) (8404) + Handles null at 4257 +4209: LocalLoad(I,4) (8405) + Handles null at 4257 +4210: Constant(I,1) (8407) + Handles null at 4257 +4211: BinaryOp(I,sub) (8408) + Handles null at 4257 +4212: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8409) + Handles null at 4257 +4213: CheckCast(Ljava_cup/runtime/Symbol;) (8412) + Handles null at 4257 +4214: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (8415) + Handles null at 4257 +4215: LocalStore(I,8) (8418) + Handles null at 4257 +4216: LocalLoad(Ljava/lang/Object;,3) (8420) + Handles null at 4257 +4217: LocalLoad(I,4) (8421) + Handles null at 4257 +4218: Constant(I,1) (8423) + Handles null at 4257 +4219: BinaryOp(I,sub) (8424) + Handles null at 4257 +4220: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8425) + Handles null at 4257 +4221: CheckCast(Ljava_cup/runtime/Symbol;) (8428) + Handles null at 4257 +4222: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (8431) + Handles null at 4257 +4223: LocalStore(Ljava/lang/Object;,9) (8434) + Handles null at 4257 +4224: LocalLoad(Ljava/lang/Object;,9) (8436) + Handles null at 4257 +4225: LocalStore(Ljava/lang/Object;,6) (8438) + Handles null at 4257 +4226: LocalLoad(Ljava/lang/Object;,0) (8440) + Handles null at 4257 +4227: Get(Ljava_cup/parser;,NONSTATIC,Ljava_cup/CUP$parser$actions;,parser) (8441) + Handles null at 4257 +4228: Invoke(VIRTUAL,Ljava_cup/parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (8444) + Handles null at 4257 +4229: Constant(Ljava/lang/String;,"$START") (8447) + Handles null at 4257 +4230: Constant(I,0) (8449) + Handles null at 4257 +4231: LocalLoad(Ljava/lang/Object;,3) (8450) + Handles null at 4257 +4232: LocalLoad(I,4) (8451) + Handles null at 4257 +4233: Constant(I,1) (8453) + Handles null at 4257 +4234: BinaryOp(I,sub) (8454) + Handles null at 4257 +4235: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (8455) + Handles null at 4257 +4236: CheckCast(Ljava_cup/runtime/Symbol;) (8458) + Handles null at 4257 +4237: LocalLoad(Ljava/lang/Object;,3) (8461) + Handles null at 4257 +4238: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (8462) + Handles null at 4257 +4239: CheckCast(Ljava_cup/runtime/Symbol;) (8465) + Handles null at 4257 +4240: LocalLoad(Ljava/lang/Object;,6) (8468) + Handles null at 4257 +4241: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (8470) + Handles null at 4257 +4242: LocalStore(Ljava/lang/Object;,5) (8475) + Handles null at 4257 +4243: LocalLoad(Ljava/lang/Object;,2) (8477) + Handles null at 4257 +4244: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,done_parsing,()V) (8478) + Handles null at 4257 +4245: LocalLoad(Ljava/lang/Object;,5) (8481) + Handles null at 4257 +4246: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (8483) + Handles null at 4257 +4247: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (8483) + Handles null at 4257 +4248: LocalLoad(Ljava/lang/Object;,0) (8483) + Handles null at 4257 +4249: Constant(I,0) (8483) + Handles null at 4257 +4250: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8483) + Handles null at 4257 +4251: Return(Ljava/lang/Object;) (8483) + Handles null at 4257 +4252: New(Ljava/lang/Exception;,0) (8484) + Handles null at 4257 +4253: Dup(1,0) (8487) + Handles null at 4257 +4254: Constant(Ljava/lang/String;,"Invalid action number found in internal parse table") (8488) + Handles null at 4257 +4255: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (8490) + Handles null at 4257 +4256: Throw() (8493) + Handles null at 4257 +4257: Constant(Ljava/lang/String;,"java_cup/CUP$parser$actions") (0) +4258: Constant(Ljava/lang/String;,"CUP$parser$do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (0) +4259: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +4260: Constant(I,1) (0) +4261: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +4262: Throw() (0) +Class: java_cup/ErrorManager +Instrumenting getFatalCount ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"getFatalCount()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getFatalCount()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +13: Constant(Ljava/lang/String;,"getFatalCount()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting getErrorCount ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"getErrorCount()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getErrorCount()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +13: Constant(Ljava/lang/String;,"getErrorCount()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting getWarningCount ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"getWarningCount()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getWarningCount()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +13: Constant(Ljava/lang/String;,"getWarningCount()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting getManager ()Ljava_cup/ErrorManager;: +Initial ShrikeBT code: +0: Get(Ljava_cup/ErrorManager;,STATIC,Ljava_cup/ErrorManager;,errorManager) (0) +1: Return(Ljava/lang/Object;) (3) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"getManager()Ljava_cup/ErrorManager;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava_cup/ErrorManager;,STATIC,Ljava_cup/ErrorManager;,errorManager) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (3) + Handles null at 11 +6: Constant(Ljava/lang/String;,"getManager()Ljava_cup/ErrorManager;") (3) + Handles null at 11 +7: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (3) + Handles null at 11 +8: Constant(I,0) (3) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3) + Handles null at 11 +10: Return(Ljava/lang/Object;) (3) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +12: Constant(Ljava/lang/String;,"getManager()Ljava_cup/ErrorManager;") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(I,0) (5) +4: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: Constant(I,0) (10) +7: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (11) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: Constant(I,0) (15) +10: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (16) +11: Return(V) (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 21 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 21 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 21 +7: Constant(I,0) (5) + Handles null at 21 +8: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (6) + Handles null at 21 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 21 +10: Constant(I,0) (10) + Handles null at 21 +11: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (11) + Handles null at 21 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 21 +13: Constant(I,0) (15) + Handles null at 21 +14: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (16) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (19) + Handles null at 21 +16: Constant(Ljava/lang/String;,"()V") (19) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 21 +18: Constant(I,0) (19) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (19) + Handles null at 21 +20: Return(V) (19) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +22: Constant(Ljava/lang/String;,"()V") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting emit_fatal (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"Fatal : ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,1) (15) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) +9: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (22) +10: LocalLoad(Ljava/lang/Object;,0) (25) +11: Dup(1,0) (26) +12: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (27) +13: Constant(I,1) (30) +14: BinaryOp(I,add) (31) +15: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (32) +16: Return(V) (35) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"emit_fatal(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 26 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 26 +6: Dup(1,0) (6) + Handles null at 26 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 26 +8: Constant(Ljava/lang/String;,"Fatal : ") (10) + Handles null at 26 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 26 +10: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 26 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 26 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) + Handles null at 26 +13: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (22) + Handles null at 26 +14: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 26 +15: Dup(1,0) (26) + Handles null at 26 +16: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (27) + Handles null at 26 +17: Constant(I,1) (30) + Handles null at 26 +18: BinaryOp(I,add) (31) + Handles null at 26 +19: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (32) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (35) + Handles null at 26 +21: Constant(Ljava/lang/String;,"emit_fatal(Ljava/lang/String;)V") (35) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 26 +23: Constant(I,0) (35) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 26 +25: Return(V) (35) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +27: Constant(Ljava/lang/String;,"emit_fatal(Ljava/lang/String;)V") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting emit_fatal (Ljava/lang/String;Ljava_cup/runtime/Symbol;)V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"Fatal: ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,1) (15) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: Constant(Ljava/lang/String;," @ ") (19) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +10: LocalLoad(Ljava/lang/Object;,2) (24) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (25) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) +13: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (31) +14: LocalLoad(Ljava/lang/Object;,0) (34) +15: Dup(1,0) (35) +16: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (36) +17: Constant(I,1) (39) +18: BinaryOp(I,add) (40) +19: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (41) +20: Return(V) (44) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"emit_fatal(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 30 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 30 +6: Dup(1,0) (6) + Handles null at 30 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 30 +8: Constant(Ljava/lang/String;,"Fatal: ") (10) + Handles null at 30 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 30 +10: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 30 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 30 +12: Constant(Ljava/lang/String;," @ ") (19) + Handles null at 30 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 30 +14: LocalLoad(Ljava/lang/Object;,2) (24) + Handles null at 30 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (25) + Handles null at 30 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) + Handles null at 30 +17: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (31) + Handles null at 30 +18: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 30 +19: Dup(1,0) (35) + Handles null at 30 +20: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (36) + Handles null at 30 +21: Constant(I,1) (39) + Handles null at 30 +22: BinaryOp(I,add) (40) + Handles null at 30 +23: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,fatals) (41) + Handles null at 30 +24: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (44) + Handles null at 30 +25: Constant(Ljava/lang/String;,"emit_fatal(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (44) + Handles null at 30 +26: LocalLoad(Ljava/lang/Object;,0) (44) + Handles null at 30 +27: Constant(I,0) (44) + Handles null at 30 +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (44) + Handles null at 30 +29: Return(V) (44) + Handles null at 30 +30: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +31: Constant(Ljava/lang/String;,"emit_fatal(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (0) +32: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +33: Constant(I,1) (0) +34: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +35: Throw() (0) +Instrumenting emit_warning (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"Warning : ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,1) (15) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) +9: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (22) +10: LocalLoad(Ljava/lang/Object;,0) (25) +11: Dup(1,0) (26) +12: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (27) +13: Constant(I,1) (30) +14: BinaryOp(I,add) (31) +15: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (32) +16: Return(V) (35) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 26 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 26 +6: Dup(1,0) (6) + Handles null at 26 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 26 +8: Constant(Ljava/lang/String;,"Warning : ") (10) + Handles null at 26 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 26 +10: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 26 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 26 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) + Handles null at 26 +13: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (22) + Handles null at 26 +14: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 26 +15: Dup(1,0) (26) + Handles null at 26 +16: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (27) + Handles null at 26 +17: Constant(I,1) (30) + Handles null at 26 +18: BinaryOp(I,add) (31) + Handles null at 26 +19: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (32) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (35) + Handles null at 26 +21: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;)V") (35) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 26 +23: Constant(I,0) (35) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 26 +25: Return(V) (35) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +27: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;)V") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting emit_warning (Ljava/lang/String;Ljava_cup/runtime/Symbol;)V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"Fatal: ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,1) (15) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: Constant(Ljava/lang/String;," @ ") (19) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +10: LocalLoad(Ljava/lang/Object;,2) (24) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (25) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) +13: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (31) +14: LocalLoad(Ljava/lang/Object;,0) (34) +15: Dup(1,0) (35) +16: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (36) +17: Constant(I,1) (39) +18: BinaryOp(I,add) (40) +19: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (41) +20: Return(V) (44) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 30 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 30 +6: Dup(1,0) (6) + Handles null at 30 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 30 +8: Constant(Ljava/lang/String;,"Fatal: ") (10) + Handles null at 30 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 30 +10: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 30 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 30 +12: Constant(Ljava/lang/String;," @ ") (19) + Handles null at 30 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 30 +14: LocalLoad(Ljava/lang/Object;,2) (24) + Handles null at 30 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (25) + Handles null at 30 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) + Handles null at 30 +17: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (31) + Handles null at 30 +18: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 30 +19: Dup(1,0) (35) + Handles null at 30 +20: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (36) + Handles null at 30 +21: Constant(I,1) (39) + Handles null at 30 +22: BinaryOp(I,add) (40) + Handles null at 30 +23: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,warnings) (41) + Handles null at 30 +24: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (44) + Handles null at 30 +25: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (44) + Handles null at 30 +26: LocalLoad(Ljava/lang/Object;,0) (44) + Handles null at 30 +27: Constant(I,0) (44) + Handles null at 30 +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (44) + Handles null at 30 +29: Return(V) (44) + Handles null at 30 +30: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +31: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (0) +32: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +33: Constant(I,1) (0) +34: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +35: Throw() (0) +Instrumenting emit_error (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"Error : ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,1) (15) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) +9: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (22) +10: LocalLoad(Ljava/lang/Object;,0) (25) +11: Dup(1,0) (26) +12: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (27) +13: Constant(I,1) (30) +14: BinaryOp(I,add) (31) +15: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (32) +16: Return(V) (35) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 26 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 26 +6: Dup(1,0) (6) + Handles null at 26 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 26 +8: Constant(Ljava/lang/String;,"Error : ") (10) + Handles null at 26 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 26 +10: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 26 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 26 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) + Handles null at 26 +13: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (22) + Handles null at 26 +14: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 26 +15: Dup(1,0) (26) + Handles null at 26 +16: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (27) + Handles null at 26 +17: Constant(I,1) (30) + Handles null at 26 +18: BinaryOp(I,add) (31) + Handles null at 26 +19: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (32) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (35) + Handles null at 26 +21: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;)V") (35) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 26 +23: Constant(I,0) (35) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 26 +25: Return(V) (35) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +27: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;)V") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting emit_error (Ljava/lang/String;Ljava_cup/runtime/Symbol;)V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"Error: ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,1) (15) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: Constant(Ljava/lang/String;," @ ") (19) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +10: LocalLoad(Ljava/lang/Object;,2) (24) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (25) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) +13: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (31) +14: LocalLoad(Ljava/lang/Object;,0) (34) +15: Dup(1,0) (35) +16: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (36) +17: Constant(I,1) (39) +18: BinaryOp(I,add) (40) +19: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (41) +20: Return(V) (44) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 30 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 30 +6: Dup(1,0) (6) + Handles null at 30 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 30 +8: Constant(Ljava/lang/String;,"Error: ") (10) + Handles null at 30 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 30 +10: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 30 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 30 +12: Constant(Ljava/lang/String;," @ ") (19) + Handles null at 30 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 30 +14: LocalLoad(Ljava/lang/Object;,2) (24) + Handles null at 30 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (25) + Handles null at 30 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) + Handles null at 30 +17: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (31) + Handles null at 30 +18: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 30 +19: Dup(1,0) (35) + Handles null at 30 +20: Get(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (36) + Handles null at 30 +21: Constant(I,1) (39) + Handles null at 30 +22: BinaryOp(I,add) (40) + Handles null at 30 +23: Put(I,NONSTATIC,Ljava_cup/ErrorManager;,errors) (41) + Handles null at 30 +24: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (44) + Handles null at 30 +25: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (44) + Handles null at 30 +26: LocalLoad(Ljava/lang/Object;,0) (44) + Handles null at 30 +27: Constant(I,0) (44) + Handles null at 30 +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (44) + Handles null at 30 +29: Return(V) (44) + Handles null at 30 +30: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +31: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V") (0) +32: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +33: Constant(I,1) (0) +34: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +35: Throw() (0) +Instrumenting convSymbol (Ljava_cup/runtime/Symbol;)Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1) +2: Constant(L;,null) (4) +3: ConditionalBranch(Ljava/lang/Object;,ne,6) (4) +4: Constant(Ljava/lang/String;,"") (7) +5: Goto(18) (9) +6: New(Ljava/lang/StringBuilder;,0) (12) +7: Dup(1,0) (15) +8: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (16) +9: Constant(Ljava/lang/String;," (\"") (19) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +11: LocalLoad(Ljava/lang/Object;,0) (24) +12: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (25) +13: Invoke(VIRTUAL,Ljava/lang/Object;,toString,()Ljava/lang/String;) (28) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) +15: Constant(Ljava/lang/String;,"\")") (34) +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (39) +18: LocalStore(Ljava/lang/Object;,1) (42) +19: Constant(Ljava/lang/Class;,com.ibm.wala.shrikeBT.ConstantInstruction$ClassToken@c444855) (43) +20: Invoke(VIRTUAL,Ljava/lang/Class;,getFields,()[Ljava/lang/reflect/Field;) (46) +21: LocalStore(Ljava/lang/Object;,2) (49) +22: Constant(I,0) (50) +23: LocalStore(I,3) (51) +24: LocalLoad(I,3) (52) +25: LocalLoad(Ljava/lang/Object;,2) (53) +26: ArrayLength() (54) +27: ConditionalBranch(I,ge,63) (55) +28: LocalLoad(Ljava/lang/Object;,2) (58) +29: LocalLoad(I,3) (59) +30: ArrayLoad(Ljava/lang/Object;) (60) +31: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getModifiers,()I) (61) +32: Invoke(STATIC,Ljava/lang/reflect/Modifier;,isPublic,(I)Z) (64) +33: Constant(I,0) (67) +34: ConditionalBranch(I,ne,36) (67) +35: Goto(58) (70) +36: LocalLoad(Ljava/lang/Object;,2) (73) + Handles Ljava/lang/Exception; at 57 +37: LocalLoad(I,3) (74) + Handles Ljava/lang/Exception; at 57 +38: ArrayLoad(Ljava/lang/Object;) (75) + Handles Ljava/lang/Exception; at 57 +39: Constant(L;,null) (76) + Handles Ljava/lang/Exception; at 57 +40: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getInt,(Ljava/lang/Object;)I) (77) + Handles Ljava/lang/Exception; at 57 +41: LocalLoad(Ljava/lang/Object;,0) (80) + Handles Ljava/lang/Exception; at 57 +42: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (81) + Handles Ljava/lang/Exception; at 57 +43: ConditionalBranch(I,ne,56) (84) + Handles Ljava/lang/Exception; at 57 +44: New(Ljava/lang/StringBuilder;,0) (87) + Handles Ljava/lang/Exception; at 57 +45: Dup(1,0) (90) + Handles Ljava/lang/Exception; at 57 +46: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (91) + Handles Ljava/lang/Exception; at 57 +47: LocalLoad(Ljava/lang/Object;,2) (94) + Handles Ljava/lang/Exception; at 57 +48: LocalLoad(I,3) (95) + Handles Ljava/lang/Exception; at 57 +49: ArrayLoad(Ljava/lang/Object;) (96) + Handles Ljava/lang/Exception; at 57 +50: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getName,()Ljava/lang/String;) (97) + Handles Ljava/lang/Exception; at 57 +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (100) + Handles Ljava/lang/Exception; at 57 +52: LocalLoad(Ljava/lang/Object;,1) (103) + Handles Ljava/lang/Exception; at 57 +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (104) + Handles Ljava/lang/Exception; at 57 +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (107) + Handles Ljava/lang/Exception; at 57 +55: Return(Ljava/lang/Object;) (110) +56: Goto(58) (111) +57: LocalStore(Ljava/lang/Object;,4) (114) +58: LocalLoad(I,3) (116) +59: Constant(I,1) (116) +60: BinaryOp(I,add) (116) +61: LocalStore(I,3) (116) +62: Goto(24) (119) +63: New(Ljava/lang/StringBuilder;,0) (122) +64: Dup(1,0) (125) +65: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (126) +66: LocalLoad(Ljava/lang/Object;,0) (129) +67: Invoke(VIRTUAL,Ljava_cup/runtime/Symbol;,toString,()Ljava/lang/String;) (130) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (133) +69: LocalLoad(Ljava/lang/Object;,1) (136) +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (137) +71: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (140) +72: Return(Ljava/lang/Object;) (143) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"convSymbol(Ljava_cup/runtime/Symbol;)Ljava/lang/String;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 87 +5: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (1) + Handles null at 87 +6: Constant(L;,null) (4) + Handles null at 87 +7: ConditionalBranch(Ljava/lang/Object;,ne,10) (4) + Handles null at 87 +8: Constant(Ljava/lang/String;,"") (7) + Handles null at 87 +9: Goto(22) (9) + Handles null at 87 +10: New(Ljava/lang/StringBuilder;,0) (12) + Handles null at 87 +11: Dup(1,0) (15) + Handles null at 87 +12: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (16) + Handles null at 87 +13: Constant(Ljava/lang/String;," (\"") (19) + Handles null at 87 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 87 +15: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 87 +16: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (25) + Handles null at 87 +17: Invoke(VIRTUAL,Ljava/lang/Object;,toString,()Ljava/lang/String;) (28) + Handles null at 87 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) + Handles null at 87 +19: Constant(Ljava/lang/String;,"\")") (34) + Handles null at 87 +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) + Handles null at 87 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (39) + Handles null at 87 +22: LocalStore(Ljava/lang/Object;,1) (42) + Handles null at 87 +23: Constant(Ljava/lang/Class;,com.ibm.wala.shrikeBT.ConstantInstruction$ClassToken@c444855) (43) + Handles null at 87 +24: Invoke(VIRTUAL,Ljava/lang/Class;,getFields,()[Ljava/lang/reflect/Field;) (46) + Handles null at 87 +25: LocalStore(Ljava/lang/Object;,2) (49) + Handles null at 87 +26: Constant(I,0) (50) + Handles null at 87 +27: LocalStore(I,3) (51) + Handles null at 87 +28: LocalLoad(I,3) (52) + Handles null at 87 +29: LocalLoad(Ljava/lang/Object;,2) (53) + Handles null at 87 +30: ArrayLength() (54) + Handles null at 87 +31: ConditionalBranch(I,ge,72) (55) + Handles null at 87 +32: LocalLoad(Ljava/lang/Object;,2) (58) + Handles null at 87 +33: LocalLoad(I,3) (59) + Handles null at 87 +34: ArrayLoad(Ljava/lang/Object;) (60) + Handles null at 87 +35: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getModifiers,()I) (61) + Handles null at 87 +36: Invoke(STATIC,Ljava/lang/reflect/Modifier;,isPublic,(I)Z) (64) + Handles null at 87 +37: Constant(I,0) (67) + Handles null at 87 +38: ConditionalBranch(I,ne,40) (67) + Handles null at 87 +39: Goto(67) (70) + Handles null at 87 +40: LocalLoad(Ljava/lang/Object;,2) (73) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +41: LocalLoad(I,3) (74) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +42: ArrayLoad(Ljava/lang/Object;) (75) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +43: Constant(L;,null) (76) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +44: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getInt,(Ljava/lang/Object;)I) (77) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +45: LocalLoad(Ljava/lang/Object;,0) (80) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +46: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (81) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +47: ConditionalBranch(I,ne,65) (84) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +48: New(Ljava/lang/StringBuilder;,0) (87) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +49: Dup(1,0) (90) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +50: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (91) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +51: LocalLoad(Ljava/lang/Object;,2) (94) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +52: LocalLoad(I,3) (95) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +53: ArrayLoad(Ljava/lang/Object;) (96) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +54: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getName,()Ljava/lang/String;) (97) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +55: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (100) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +56: LocalLoad(Ljava/lang/Object;,1) (103) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (104) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (107) + Handles Ljava/lang/Exception; at 66 + Handles null at 87 +59: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (110) + Handles null at 87 +60: Constant(Ljava/lang/String;,"convSymbol(Ljava_cup/runtime/Symbol;)Ljava/lang/String;") (110) + Handles null at 87 +61: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (110) + Handles null at 87 +62: Constant(I,0) (110) + Handles null at 87 +63: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (110) + Handles null at 87 +64: Return(Ljava/lang/Object;) (110) + Handles null at 87 +65: Goto(67) (111) + Handles null at 87 +66: LocalStore(Ljava/lang/Object;,4) (114) + Handles null at 87 +67: LocalLoad(I,3) (116) + Handles null at 87 +68: Constant(I,1) (116) + Handles null at 87 +69: BinaryOp(I,add) (116) + Handles null at 87 +70: LocalStore(I,3) (116) + Handles null at 87 +71: Goto(28) (119) + Handles null at 87 +72: New(Ljava/lang/StringBuilder;,0) (122) + Handles null at 87 +73: Dup(1,0) (125) + Handles null at 87 +74: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (126) + Handles null at 87 +75: LocalLoad(Ljava/lang/Object;,0) (129) + Handles null at 87 +76: Invoke(VIRTUAL,Ljava_cup/runtime/Symbol;,toString,()Ljava/lang/String;) (130) + Handles null at 87 +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (133) + Handles null at 87 +78: LocalLoad(Ljava/lang/Object;,1) (136) + Handles null at 87 +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (137) + Handles null at 87 +80: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (140) + Handles null at 87 +81: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (143) + Handles null at 87 +82: Constant(Ljava/lang/String;,"convSymbol(Ljava_cup/runtime/Symbol;)Ljava/lang/String;") (143) + Handles null at 87 +83: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (143) + Handles null at 87 +84: Constant(I,0) (143) + Handles null at 87 +85: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (143) + Handles null at 87 +86: Return(Ljava/lang/Object;) (143) + Handles null at 87 +87: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +88: Constant(Ljava/lang/String;,"convSymbol(Ljava_cup/runtime/Symbol;)Ljava/lang/String;") (0) +89: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +90: Constant(I,1) (0) +91: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +92: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: New(Ljava_cup/ErrorManager;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava_cup/ErrorManager;,,()V) (4) +3: Put(Ljava_cup/ErrorManager;,STATIC,Ljava_cup/ErrorManager;,errorManager) (7) +4: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/ErrorManager;,0) (0) + Handles null at 14 +5: Dup(1,0) (3) + Handles null at 14 +6: Invoke(SPECIAL,Ljava_cup/ErrorManager;,,()V) (4) + Handles null at 14 +7: Put(Ljava_cup/ErrorManager;,STATIC,Ljava_cup/ErrorManager;,errorManager) (7) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (10) + Handles null at 14 +9: Constant(Ljava/lang/String;,"()V") (10) + Handles null at 14 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (10) + Handles null at 14 +11: Constant(I,0) (10) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 14 +13: Return(V) (10) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/ErrorManager") (0) +15: Constant(Ljava/lang/String;,"()V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Class: java_cup/Lexer +Instrumenting zzUnpackAction ()[I: +Initial ShrikeBT code: +0: Constant(I,132) (0) +1: New([I,1) (3) +2: LocalStore(Ljava/lang/Object;,0) (5) +3: Constant(I,0) (6) +4: LocalStore(I,1) (7) +5: Constant(Ljava/lang/String;,"\ \ +   \ + !\"#$%&") (8) +6: LocalLoad(I,1) (10) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackAction,(Ljava/lang/String;I[I)I) (12) +9: LocalStore(I,1) (15) +10: LocalLoad(Ljava/lang/Object;,0) (16) +11: Return(Ljava/lang/Object;) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackAction()[I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,132) (0) + Handles null at 21 +5: New([I,1) (3) + Handles null at 21 +6: LocalStore(Ljava/lang/Object;,0) (5) + Handles null at 21 +7: Constant(I,0) (6) + Handles null at 21 +8: LocalStore(I,1) (7) + Handles null at 21 +9: Constant(Ljava/lang/String;,"\ \ +   \ + !\"#$%&") (8) + Handles null at 21 +10: LocalLoad(I,1) (10) + Handles null at 21 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 21 +12: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackAction,(Ljava/lang/String;I[I)I) (12) + Handles null at 21 +13: LocalStore(I,1) (15) + Handles null at 21 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/Lexer") (17) + Handles null at 21 +16: Constant(Ljava/lang/String;,"zzUnpackAction()[I") (17) + Handles null at 21 +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (17) + Handles null at 21 +18: Constant(I,0) (17) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 21 +20: Return(Ljava/lang/Object;) (17) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +22: Constant(Ljava/lang/String;,"zzUnpackAction()[I") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting zzUnpackAction (Ljava/lang/String;I[I)I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,3) (1) +2: LocalLoad(I,1) (2) +3: LocalStore(I,4) (3) +4: LocalLoad(Ljava/lang/Object;,0) (5) +5: Invoke(VIRTUAL,Ljava/lang/String;,length,()I) (6) +6: LocalStore(I,5) (9) +7: LocalLoad(I,3) (11) +8: LocalLoad(I,5) (12) +9: ConditionalBranch(I,ge,42) (14) +10: LocalLoad(Ljava/lang/Object;,0) (17) +11: LocalLoad(I,3) (18) +12: LocalLoad(I,3) (19) +13: Constant(I,1) (19) +14: BinaryOp(I,add) (19) +15: LocalStore(I,3) (19) +16: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (22) +17: LocalStore(I,6) (25) +18: LocalLoad(Ljava/lang/Object;,0) (27) +19: LocalLoad(I,3) (28) +20: LocalLoad(I,3) (29) +21: Constant(I,1) (29) +22: BinaryOp(I,add) (29) +23: LocalStore(I,3) (29) +24: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (32) +25: LocalStore(I,7) (35) +26: LocalLoad(Ljava/lang/Object;,2) (37) +27: LocalLoad(I,4) (38) +28: LocalLoad(I,4) (40) +29: Constant(I,1) (40) +30: BinaryOp(I,add) (40) +31: LocalStore(I,4) (40) +32: LocalLoad(I,7) (43) +33: ArrayStore(I) (45) +34: LocalLoad(I,6) (46) +35: Constant(I,-1) (46) +36: BinaryOp(I,add) (46) +37: LocalStore(I,6) (46) +38: LocalLoad(I,6) (49) +39: Constant(I,0) (51) +40: ConditionalBranch(I,gt,26) (51) +41: Goto(7) (54) +42: LocalLoad(I,4) (57) +43: Return(I) (59) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackAction(Ljava/lang/String;I[I)I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 53 +5: LocalStore(I,3) (1) + Handles null at 53 +6: LocalLoad(I,1) (2) + Handles null at 53 +7: LocalStore(I,4) (3) + Handles null at 53 +8: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 53 +9: Invoke(VIRTUAL,Ljava/lang/String;,length,()I) (6) + Handles null at 53 +10: LocalStore(I,5) (9) + Handles null at 53 +11: LocalLoad(I,3) (11) + Handles null at 53 +12: LocalLoad(I,5) (12) + Handles null at 53 +13: ConditionalBranch(I,ge,46) (14) + Handles null at 53 +14: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 53 +15: LocalLoad(I,3) (18) + Handles null at 53 +16: LocalLoad(I,3) (19) + Handles null at 53 +17: Constant(I,1) (19) + Handles null at 53 +18: BinaryOp(I,add) (19) + Handles null at 53 +19: LocalStore(I,3) (19) + Handles null at 53 +20: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (22) + Handles null at 53 +21: LocalStore(I,6) (25) + Handles null at 53 +22: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 53 +23: LocalLoad(I,3) (28) + Handles null at 53 +24: LocalLoad(I,3) (29) + Handles null at 53 +25: Constant(I,1) (29) + Handles null at 53 +26: BinaryOp(I,add) (29) + Handles null at 53 +27: LocalStore(I,3) (29) + Handles null at 53 +28: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (32) + Handles null at 53 +29: LocalStore(I,7) (35) + Handles null at 53 +30: LocalLoad(Ljava/lang/Object;,2) (37) + Handles null at 53 +31: LocalLoad(I,4) (38) + Handles null at 53 +32: LocalLoad(I,4) (40) + Handles null at 53 +33: Constant(I,1) (40) + Handles null at 53 +34: BinaryOp(I,add) (40) + Handles null at 53 +35: LocalStore(I,4) (40) + Handles null at 53 +36: LocalLoad(I,7) (43) + Handles null at 53 +37: ArrayStore(I) (45) + Handles null at 53 +38: LocalLoad(I,6) (46) + Handles null at 53 +39: Constant(I,-1) (46) + Handles null at 53 +40: BinaryOp(I,add) (46) + Handles null at 53 +41: LocalStore(I,6) (46) + Handles null at 53 +42: LocalLoad(I,6) (49) + Handles null at 53 +43: Constant(I,0) (51) + Handles null at 53 +44: ConditionalBranch(I,gt,30) (51) + Handles null at 53 +45: Goto(11) (54) + Handles null at 53 +46: LocalLoad(I,4) (57) + Handles null at 53 +47: Constant(Ljava/lang/String;,"java_cup/Lexer") (59) + Handles null at 53 +48: Constant(Ljava/lang/String;,"zzUnpackAction(Ljava/lang/String;I[I)I") (59) + Handles null at 53 +49: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (59) + Handles null at 53 +50: Constant(I,0) (59) + Handles null at 53 +51: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (59) + Handles null at 53 +52: Return(I) (59) + Handles null at 53 +53: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +54: Constant(Ljava/lang/String;,"zzUnpackAction(Ljava/lang/String;I[I)I") (0) +55: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +56: Constant(I,1) (0) +57: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +58: Throw() (0) +Instrumenting zzUnpackRowMap ()[I: +Initial ShrikeBT code: +0: Constant(I,132) (0) +1: New([I,1) (3) +2: LocalStore(Ljava/lang/Object;,0) (5) +3: Constant(I,0) (6) +4: LocalStore(I,1) (7) +5: Constant(Ljava/lang/String;,"*T~T?T?TTTTTTT??????TT????????T???????????T??????????T?T?????????????????????????????????????T?????????????????????????????????????") (8) +6: LocalLoad(I,1) (10) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackRowMap,(Ljava/lang/String;I[I)I) (12) +9: LocalStore(I,1) (15) +10: LocalLoad(Ljava/lang/Object;,0) (16) +11: Return(Ljava/lang/Object;) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackRowMap()[I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,132) (0) + Handles null at 21 +5: New([I,1) (3) + Handles null at 21 +6: LocalStore(Ljava/lang/Object;,0) (5) + Handles null at 21 +7: Constant(I,0) (6) + Handles null at 21 +8: LocalStore(I,1) (7) + Handles null at 21 +9: Constant(Ljava/lang/String;,"*T~T?T?TTTTTTT??????TT????????T???????????T??????????T?T?????????????????????????????????????T?????????????????????????????????????") (8) + Handles null at 21 +10: LocalLoad(I,1) (10) + Handles null at 21 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 21 +12: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackRowMap,(Ljava/lang/String;I[I)I) (12) + Handles null at 21 +13: LocalStore(I,1) (15) + Handles null at 21 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/Lexer") (17) + Handles null at 21 +16: Constant(Ljava/lang/String;,"zzUnpackRowMap()[I") (17) + Handles null at 21 +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (17) + Handles null at 21 +18: Constant(I,0) (17) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 21 +20: Return(Ljava/lang/Object;) (17) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +22: Constant(Ljava/lang/String;,"zzUnpackRowMap()[I") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting zzUnpackRowMap (Ljava/lang/String;I[I)I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,3) (1) +2: LocalLoad(I,1) (2) +3: LocalStore(I,4) (3) +4: LocalLoad(Ljava/lang/Object;,0) (5) +5: Invoke(VIRTUAL,Ljava/lang/String;,length,()I) (6) +6: LocalStore(I,5) (9) +7: LocalLoad(I,3) (11) +8: LocalLoad(I,5) (12) +9: ConditionalBranch(I,ge,37) (14) +10: LocalLoad(Ljava/lang/Object;,0) (17) +11: LocalLoad(I,3) (18) +12: LocalLoad(I,3) (19) +13: Constant(I,1) (19) +14: BinaryOp(I,add) (19) +15: LocalStore(I,3) (19) +16: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (22) +17: Constant(I,16) (25) +18: Shift(I,SHL) (27) +19: LocalStore(I,6) (28) +20: LocalLoad(Ljava/lang/Object;,2) (30) +21: LocalLoad(I,4) (31) +22: LocalLoad(I,4) (33) +23: Constant(I,1) (33) +24: BinaryOp(I,add) (33) +25: LocalStore(I,4) (33) +26: LocalLoad(I,6) (36) +27: LocalLoad(Ljava/lang/Object;,0) (38) +28: LocalLoad(I,3) (39) +29: LocalLoad(I,3) (40) +30: Constant(I,1) (40) +31: BinaryOp(I,add) (40) +32: LocalStore(I,3) (40) +33: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (43) +34: BinaryOp(I,or) (46) +35: ArrayStore(I) (47) +36: Goto(7) (48) +37: LocalLoad(I,4) (51) +38: Return(I) (53) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackRowMap(Ljava/lang/String;I[I)I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 48 +5: LocalStore(I,3) (1) + Handles null at 48 +6: LocalLoad(I,1) (2) + Handles null at 48 +7: LocalStore(I,4) (3) + Handles null at 48 +8: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 48 +9: Invoke(VIRTUAL,Ljava/lang/String;,length,()I) (6) + Handles null at 48 +10: LocalStore(I,5) (9) + Handles null at 48 +11: LocalLoad(I,3) (11) + Handles null at 48 +12: LocalLoad(I,5) (12) + Handles null at 48 +13: ConditionalBranch(I,ge,41) (14) + Handles null at 48 +14: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 48 +15: LocalLoad(I,3) (18) + Handles null at 48 +16: LocalLoad(I,3) (19) + Handles null at 48 +17: Constant(I,1) (19) + Handles null at 48 +18: BinaryOp(I,add) (19) + Handles null at 48 +19: LocalStore(I,3) (19) + Handles null at 48 +20: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (22) + Handles null at 48 +21: Constant(I,16) (25) + Handles null at 48 +22: Shift(I,SHL) (27) + Handles null at 48 +23: LocalStore(I,6) (28) + Handles null at 48 +24: LocalLoad(Ljava/lang/Object;,2) (30) + Handles null at 48 +25: LocalLoad(I,4) (31) + Handles null at 48 +26: LocalLoad(I,4) (33) + Handles null at 48 +27: Constant(I,1) (33) + Handles null at 48 +28: BinaryOp(I,add) (33) + Handles null at 48 +29: LocalStore(I,4) (33) + Handles null at 48 +30: LocalLoad(I,6) (36) + Handles null at 48 +31: LocalLoad(Ljava/lang/Object;,0) (38) + Handles null at 48 +32: LocalLoad(I,3) (39) + Handles null at 48 +33: LocalLoad(I,3) (40) + Handles null at 48 +34: Constant(I,1) (40) + Handles null at 48 +35: BinaryOp(I,add) (40) + Handles null at 48 +36: LocalStore(I,3) (40) + Handles null at 48 +37: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (43) + Handles null at 48 +38: BinaryOp(I,or) (46) + Handles null at 48 +39: ArrayStore(I) (47) + Handles null at 48 +40: Goto(11) (48) + Handles null at 48 +41: LocalLoad(I,4) (51) + Handles null at 48 +42: Constant(Ljava/lang/String;,"java_cup/Lexer") (53) + Handles null at 48 +43: Constant(Ljava/lang/String;,"zzUnpackRowMap(Ljava/lang/String;I[I)I") (53) + Handles null at 48 +44: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (53) + Handles null at 48 +45: Constant(I,0) (53) + Handles null at 48 +46: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (53) + Handles null at 48 +47: Return(I) (53) + Handles null at 48 +48: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +49: Constant(Ljava/lang/String;,"zzUnpackRowMap(Ljava/lang/String;I[I)I") (0) +50: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +51: Constant(I,1) (0) +52: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +53: Throw() (0) +Instrumenting zzUnpackTrans ()[I: +Initial ShrikeBT code: +0: Constant(I,4116) (0) +1: New([I,1) (3) +2: LocalStore(Ljava/lang/Object;,0) (5) +3: Constant(I,0) (6) +4: LocalStore(I,1) (7) +5: Constant(Ljava/lang/String;,"\ \ +    ! ,+\"#*\ +$,%\ +&'\ +( \ +)\ +*+, \ +-\ +./\ +0\ +1\ +234\ +5\ +\ +6 *7\"'\"#8$#9,:\ +;\ +<=\ +> \ +?\ \ +\ @\ +A\ +B\ \ +C\ +D \ +E\ + F\ +G\ +H\ +I\ +\ +J\ +K\ #8$#L\ +M\ +N\ +O\ + P\ +Q\ +R\ +S\ +T \ +U\ +\ +V\ \ +W \ +X\ \ +\ +Y\ +Z\ +[\ +\]\ \ + ^_\ +`\ +a\ +b\ +c\ \ +\ +d\ +e\ +f\ +\ +g\ +h \ +i\ \ +j\ +k\ +l\ +\ m\ +n\ +o \ +\ p\ +\ +q\ +r\ \ +\ +s\ +t\ +u\ +v\ +w\ +x\ +y\ +z\ +\ +{ \ +\ +|\ +}\ +~\ + \ +?\ +\ +?\ +?\ +?\ +?") (8) +6: LocalLoad(I,1) (10) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackTrans,(Ljava/lang/String;I[I)I) (12) +9: LocalStore(I,1) (15) +10: LocalLoad(Ljava/lang/Object;,0) (16) +11: Return(Ljava/lang/Object;) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackTrans()[I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,4116) (0) + Handles null at 21 +5: New([I,1) (3) + Handles null at 21 +6: LocalStore(Ljava/lang/Object;,0) (5) + Handles null at 21 +7: Constant(I,0) (6) + Handles null at 21 +8: LocalStore(I,1) (7) + Handles null at 21 +9: Constant(Ljava/lang/String;,"\ \ +    ! ,+\"#*\ +$,%\ +&'\ +( \ +)\ +*+, \ +-\ +./\ +0\ +1\ +234\ +5\ +\ +6 *7\"'\"#8$#9,:\ +;\ +<=\ +> \ +?\ \ +\ @\ +A\ +B\ \ +C\ +D \ +E\ + F\ +G\ +H\ +I\ +\ +J\ +K\ #8$#L\ +M\ +N\ +O\ + P\ +Q\ +R\ +S\ +T \ +U\ +\ +V\ \ +W \ +X\ \ +\ +Y\ +Z\ +[\ +\]\ \ + ^_\ +`\ +a\ +b\ +c\ \ +\ +d\ +e\ +f\ +\ +g\ +h \ +i\ \ +j\ +k\ +l\ +\ m\ +n\ +o \ +\ p\ +\ +q\ +r\ \ +\ +s\ +t\ +u\ +v\ +w\ +x\ +y\ +z\ +\ +{ \ +\ +|\ +}\ +~\ + \ +?\ +\ +?\ +?\ +?\ +?") (8) + Handles null at 21 +10: LocalLoad(I,1) (10) + Handles null at 21 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 21 +12: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackTrans,(Ljava/lang/String;I[I)I) (12) + Handles null at 21 +13: LocalStore(I,1) (15) + Handles null at 21 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/Lexer") (17) + Handles null at 21 +16: Constant(Ljava/lang/String;,"zzUnpackTrans()[I") (17) + Handles null at 21 +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (17) + Handles null at 21 +18: Constant(I,0) (17) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 21 +20: Return(Ljava/lang/Object;) (17) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +22: Constant(Ljava/lang/String;,"zzUnpackTrans()[I") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting zzUnpackTrans (Ljava/lang/String;I[I)I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,3) (1) +2: LocalLoad(I,1) (2) +3: LocalStore(I,4) (3) +4: LocalLoad(Ljava/lang/Object;,0) (5) +5: Invoke(VIRTUAL,Ljava/lang/String;,length,()I) (6) +6: LocalStore(I,5) (9) +7: LocalLoad(I,3) (11) +8: LocalLoad(I,5) (12) +9: ConditionalBranch(I,ge,46) (14) +10: LocalLoad(Ljava/lang/Object;,0) (17) +11: LocalLoad(I,3) (18) +12: LocalLoad(I,3) (19) +13: Constant(I,1) (19) +14: BinaryOp(I,add) (19) +15: LocalStore(I,3) (19) +16: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (22) +17: LocalStore(I,6) (25) +18: LocalLoad(Ljava/lang/Object;,0) (27) +19: LocalLoad(I,3) (28) +20: LocalLoad(I,3) (29) +21: Constant(I,1) (29) +22: BinaryOp(I,add) (29) +23: LocalStore(I,3) (29) +24: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (32) +25: LocalStore(I,7) (35) +26: LocalLoad(I,7) (37) +27: Constant(I,-1) (37) +28: BinaryOp(I,add) (37) +29: LocalStore(I,7) (37) +30: LocalLoad(Ljava/lang/Object;,2) (40) +31: LocalLoad(I,4) (41) +32: LocalLoad(I,4) (43) +33: Constant(I,1) (43) +34: BinaryOp(I,add) (43) +35: LocalStore(I,4) (43) +36: LocalLoad(I,7) (46) +37: ArrayStore(I) (48) +38: LocalLoad(I,6) (49) +39: Constant(I,-1) (49) +40: BinaryOp(I,add) (49) +41: LocalStore(I,6) (49) +42: LocalLoad(I,6) (52) +43: Constant(I,0) (54) +44: ConditionalBranch(I,gt,30) (54) +45: Goto(7) (57) +46: LocalLoad(I,4) (60) +47: Return(I) (62) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackTrans(Ljava/lang/String;I[I)I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 57 +5: LocalStore(I,3) (1) + Handles null at 57 +6: LocalLoad(I,1) (2) + Handles null at 57 +7: LocalStore(I,4) (3) + Handles null at 57 +8: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 57 +9: Invoke(VIRTUAL,Ljava/lang/String;,length,()I) (6) + Handles null at 57 +10: LocalStore(I,5) (9) + Handles null at 57 +11: LocalLoad(I,3) (11) + Handles null at 57 +12: LocalLoad(I,5) (12) + Handles null at 57 +13: ConditionalBranch(I,ge,50) (14) + Handles null at 57 +14: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 57 +15: LocalLoad(I,3) (18) + Handles null at 57 +16: LocalLoad(I,3) (19) + Handles null at 57 +17: Constant(I,1) (19) + Handles null at 57 +18: BinaryOp(I,add) (19) + Handles null at 57 +19: LocalStore(I,3) (19) + Handles null at 57 +20: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (22) + Handles null at 57 +21: LocalStore(I,6) (25) + Handles null at 57 +22: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 57 +23: LocalLoad(I,3) (28) + Handles null at 57 +24: LocalLoad(I,3) (29) + Handles null at 57 +25: Constant(I,1) (29) + Handles null at 57 +26: BinaryOp(I,add) (29) + Handles null at 57 +27: LocalStore(I,3) (29) + Handles null at 57 +28: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (32) + Handles null at 57 +29: LocalStore(I,7) (35) + Handles null at 57 +30: LocalLoad(I,7) (37) + Handles null at 57 +31: Constant(I,-1) (37) + Handles null at 57 +32: BinaryOp(I,add) (37) + Handles null at 57 +33: LocalStore(I,7) (37) + Handles null at 57 +34: LocalLoad(Ljava/lang/Object;,2) (40) + Handles null at 57 +35: LocalLoad(I,4) (41) + Handles null at 57 +36: LocalLoad(I,4) (43) + Handles null at 57 +37: Constant(I,1) (43) + Handles null at 57 +38: BinaryOp(I,add) (43) + Handles null at 57 +39: LocalStore(I,4) (43) + Handles null at 57 +40: LocalLoad(I,7) (46) + Handles null at 57 +41: ArrayStore(I) (48) + Handles null at 57 +42: LocalLoad(I,6) (49) + Handles null at 57 +43: Constant(I,-1) (49) + Handles null at 57 +44: BinaryOp(I,add) (49) + Handles null at 57 +45: LocalStore(I,6) (49) + Handles null at 57 +46: LocalLoad(I,6) (52) + Handles null at 57 +47: Constant(I,0) (54) + Handles null at 57 +48: ConditionalBranch(I,gt,34) (54) + Handles null at 57 +49: Goto(11) (57) + Handles null at 57 +50: LocalLoad(I,4) (60) + Handles null at 57 +51: Constant(Ljava/lang/String;,"java_cup/Lexer") (62) + Handles null at 57 +52: Constant(Ljava/lang/String;,"zzUnpackTrans(Ljava/lang/String;I[I)I") (62) + Handles null at 57 +53: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (62) + Handles null at 57 +54: Constant(I,0) (62) + Handles null at 57 +55: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (62) + Handles null at 57 +56: Return(I) (62) + Handles null at 57 +57: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +58: Constant(Ljava/lang/String;,"zzUnpackTrans(Ljava/lang/String;I[I)I") (0) +59: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +60: Constant(I,1) (0) +61: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +62: Throw() (0) +Instrumenting zzUnpackAttribute ()[I: +Initial ShrikeBT code: +0: Constant(I,132) (0) +1: New([I,1) (3) +2: LocalStore(Ljava/lang/Object;,0) (5) +3: Constant(I,0) (6) +4: LocalStore(I,1) (7) +5: Constant(Ljava/lang/String;,"\ \ \ \ \ \ \ \ +\ \ \ %") (8) +6: LocalLoad(I,1) (10) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackAttribute,(Ljava/lang/String;I[I)I) (12) +9: LocalStore(I,1) (15) +10: LocalLoad(Ljava/lang/Object;,0) (16) +11: Return(Ljava/lang/Object;) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackAttribute()[I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,132) (0) + Handles null at 21 +5: New([I,1) (3) + Handles null at 21 +6: LocalStore(Ljava/lang/Object;,0) (5) + Handles null at 21 +7: Constant(I,0) (6) + Handles null at 21 +8: LocalStore(I,1) (7) + Handles null at 21 +9: Constant(Ljava/lang/String;,"\ \ \ \ \ \ \ \ +\ \ \ %") (8) + Handles null at 21 +10: LocalLoad(I,1) (10) + Handles null at 21 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 21 +12: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackAttribute,(Ljava/lang/String;I[I)I) (12) + Handles null at 21 +13: LocalStore(I,1) (15) + Handles null at 21 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/Lexer") (17) + Handles null at 21 +16: Constant(Ljava/lang/String;,"zzUnpackAttribute()[I") (17) + Handles null at 21 +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (17) + Handles null at 21 +18: Constant(I,0) (17) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 21 +20: Return(Ljava/lang/Object;) (17) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +22: Constant(Ljava/lang/String;,"zzUnpackAttribute()[I") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting zzUnpackAttribute (Ljava/lang/String;I[I)I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,3) (1) +2: LocalLoad(I,1) (2) +3: LocalStore(I,4) (3) +4: LocalLoad(Ljava/lang/Object;,0) (5) +5: Invoke(VIRTUAL,Ljava/lang/String;,length,()I) (6) +6: LocalStore(I,5) (9) +7: LocalLoad(I,3) (11) +8: LocalLoad(I,5) (12) +9: ConditionalBranch(I,ge,42) (14) +10: LocalLoad(Ljava/lang/Object;,0) (17) +11: LocalLoad(I,3) (18) +12: LocalLoad(I,3) (19) +13: Constant(I,1) (19) +14: BinaryOp(I,add) (19) +15: LocalStore(I,3) (19) +16: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (22) +17: LocalStore(I,6) (25) +18: LocalLoad(Ljava/lang/Object;,0) (27) +19: LocalLoad(I,3) (28) +20: LocalLoad(I,3) (29) +21: Constant(I,1) (29) +22: BinaryOp(I,add) (29) +23: LocalStore(I,3) (29) +24: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (32) +25: LocalStore(I,7) (35) +26: LocalLoad(Ljava/lang/Object;,2) (37) +27: LocalLoad(I,4) (38) +28: LocalLoad(I,4) (40) +29: Constant(I,1) (40) +30: BinaryOp(I,add) (40) +31: LocalStore(I,4) (40) +32: LocalLoad(I,7) (43) +33: ArrayStore(I) (45) +34: LocalLoad(I,6) (46) +35: Constant(I,-1) (46) +36: BinaryOp(I,add) (46) +37: LocalStore(I,6) (46) +38: LocalLoad(I,6) (49) +39: Constant(I,0) (51) +40: ConditionalBranch(I,gt,26) (51) +41: Goto(7) (54) +42: LocalLoad(I,4) (57) +43: Return(I) (59) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackAttribute(Ljava/lang/String;I[I)I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 53 +5: LocalStore(I,3) (1) + Handles null at 53 +6: LocalLoad(I,1) (2) + Handles null at 53 +7: LocalStore(I,4) (3) + Handles null at 53 +8: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 53 +9: Invoke(VIRTUAL,Ljava/lang/String;,length,()I) (6) + Handles null at 53 +10: LocalStore(I,5) (9) + Handles null at 53 +11: LocalLoad(I,3) (11) + Handles null at 53 +12: LocalLoad(I,5) (12) + Handles null at 53 +13: ConditionalBranch(I,ge,46) (14) + Handles null at 53 +14: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 53 +15: LocalLoad(I,3) (18) + Handles null at 53 +16: LocalLoad(I,3) (19) + Handles null at 53 +17: Constant(I,1) (19) + Handles null at 53 +18: BinaryOp(I,add) (19) + Handles null at 53 +19: LocalStore(I,3) (19) + Handles null at 53 +20: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (22) + Handles null at 53 +21: LocalStore(I,6) (25) + Handles null at 53 +22: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 53 +23: LocalLoad(I,3) (28) + Handles null at 53 +24: LocalLoad(I,3) (29) + Handles null at 53 +25: Constant(I,1) (29) + Handles null at 53 +26: BinaryOp(I,add) (29) + Handles null at 53 +27: LocalStore(I,3) (29) + Handles null at 53 +28: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (32) + Handles null at 53 +29: LocalStore(I,7) (35) + Handles null at 53 +30: LocalLoad(Ljava/lang/Object;,2) (37) + Handles null at 53 +31: LocalLoad(I,4) (38) + Handles null at 53 +32: LocalLoad(I,4) (40) + Handles null at 53 +33: Constant(I,1) (40) + Handles null at 53 +34: BinaryOp(I,add) (40) + Handles null at 53 +35: LocalStore(I,4) (40) + Handles null at 53 +36: LocalLoad(I,7) (43) + Handles null at 53 +37: ArrayStore(I) (45) + Handles null at 53 +38: LocalLoad(I,6) (46) + Handles null at 53 +39: Constant(I,-1) (46) + Handles null at 53 +40: BinaryOp(I,add) (46) + Handles null at 53 +41: LocalStore(I,6) (46) + Handles null at 53 +42: LocalLoad(I,6) (49) + Handles null at 53 +43: Constant(I,0) (51) + Handles null at 53 +44: ConditionalBranch(I,gt,30) (51) + Handles null at 53 +45: Goto(11) (54) + Handles null at 53 +46: LocalLoad(I,4) (57) + Handles null at 53 +47: Constant(Ljava/lang/String;,"java_cup/Lexer") (59) + Handles null at 53 +48: Constant(Ljava/lang/String;,"zzUnpackAttribute(Ljava/lang/String;I[I)I") (59) + Handles null at 53 +49: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (59) + Handles null at 53 +50: Constant(I,0) (59) + Handles null at 53 +51: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (59) + Handles null at 53 +52: Return(I) (59) + Handles null at 53 +53: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +54: Constant(Ljava/lang/String;,"zzUnpackAttribute(Ljava/lang/String;I[I)I") (0) +55: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +56: Constant(I,1) (0) +57: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +58: Throw() (0) +Instrumenting (Ljava_cup/runtime/ComplexSymbolFactory;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: New(Ljava/io/InputStreamReader;,0) (1) +2: Dup(1,0) (4) +3: Get(Ljava/io/InputStream;,STATIC,Ljava/lang/System;,in) (5) +4: Invoke(SPECIAL,Ljava/io/InputStreamReader;,,(Ljava/io/InputStream;)V) (8) +5: Invoke(SPECIAL,Ljava_cup/Lexer;,,(Ljava/io/Reader;)V) (11) +6: LocalLoad(Ljava/lang/Object;,0) (14) +7: LocalLoad(Ljava/lang/Object;,1) (15) +8: Put(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (16) +9: Return(V) (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 19 +5: New(Ljava/io/InputStreamReader;,0) (1) + Handles null at 19 +6: Dup(1,0) (4) + Handles null at 19 +7: Get(Ljava/io/InputStream;,STATIC,Ljava/lang/System;,in) (5) + Handles null at 19 +8: Invoke(SPECIAL,Ljava/io/InputStreamReader;,,(Ljava/io/InputStream;)V) (8) + Handles null at 19 +9: Invoke(SPECIAL,Ljava_cup/Lexer;,,(Ljava/io/Reader;)V) (11) + Handles null at 19 +10: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 19 +11: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 19 +12: Put(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (16) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/Lexer") (19) + Handles null at 19 +14: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory;)V") (19) + Handles null at 19 +15: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 19 +16: Constant(I,0) (19) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (19) + Handles null at 19 +18: Return(V) (19) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +20: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory;)V") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting symbol (Ljava/lang/String;I)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (6) +5: Dup(1,0) (9) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (11) +8: Constant(I,1) (14) +9: BinaryOp(I,add) (15) +10: LocalLoad(Ljava/lang/Object;,0) (16) +11: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (17) +12: Constant(I,1) (20) +13: BinaryOp(I,add) (21) +14: LocalLoad(Ljava/lang/Object;,0) (22) +15: Invoke(VIRTUAL,Ljava_cup/Lexer;,yylength,()I) (23) +16: BinaryOp(I,sub) (26) +17: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (27) +18: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (30) +19: Dup(1,0) (33) +20: LocalLoad(Ljava/lang/Object;,0) (34) +21: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (35) +22: Constant(I,1) (38) +23: BinaryOp(I,add) (39) +24: LocalLoad(Ljava/lang/Object;,0) (40) +25: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (41) +26: Constant(I,1) (44) +27: BinaryOp(I,add) (45) +28: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (46) +29: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)Ljava_cup/runtime/Symbol;) (49) +30: Return(Ljava/lang/Object;) (52) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"symbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 40 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (1) + Handles null at 40 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 40 +7: LocalLoad(I,2) (5) + Handles null at 40 +8: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (6) + Handles null at 40 +9: Dup(1,0) (9) + Handles null at 40 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 40 +11: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (11) + Handles null at 40 +12: Constant(I,1) (14) + Handles null at 40 +13: BinaryOp(I,add) (15) + Handles null at 40 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 40 +15: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (17) + Handles null at 40 +16: Constant(I,1) (20) + Handles null at 40 +17: BinaryOp(I,add) (21) + Handles null at 40 +18: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 40 +19: Invoke(VIRTUAL,Ljava_cup/Lexer;,yylength,()I) (23) + Handles null at 40 +20: BinaryOp(I,sub) (26) + Handles null at 40 +21: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (27) + Handles null at 40 +22: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (30) + Handles null at 40 +23: Dup(1,0) (33) + Handles null at 40 +24: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 40 +25: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (35) + Handles null at 40 +26: Constant(I,1) (38) + Handles null at 40 +27: BinaryOp(I,add) (39) + Handles null at 40 +28: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 40 +29: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (41) + Handles null at 40 +30: Constant(I,1) (44) + Handles null at 40 +31: BinaryOp(I,add) (45) + Handles null at 40 +32: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (46) + Handles null at 40 +33: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)Ljava_cup/runtime/Symbol;) (49) + Handles null at 40 +34: Constant(Ljava/lang/String;,"java_cup/Lexer") (52) + Handles null at 40 +35: Constant(Ljava/lang/String;,"symbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (52) + Handles null at 40 +36: LocalLoad(Ljava/lang/Object;,0) (52) + Handles null at 40 +37: Constant(I,0) (52) + Handles null at 40 +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (52) + Handles null at 40 +39: Return(Ljava/lang/Object;) (52) + Handles null at 40 +40: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +41: Constant(Ljava/lang/String;,"symbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (0) +42: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +43: Constant(I,1) (0) +44: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +45: Throw() (0) +Instrumenting symbol (Ljava/lang/String;ILjava/lang/String;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (6) +5: Dup(1,0) (9) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (11) +8: Constant(I,1) (14) +9: BinaryOp(I,add) (15) +10: LocalLoad(Ljava/lang/Object;,0) (16) +11: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (17) +12: Constant(I,1) (20) +13: BinaryOp(I,add) (21) +14: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (22) +15: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (25) +16: Dup(1,0) (28) +17: LocalLoad(Ljava/lang/Object;,0) (29) +18: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (30) +19: Constant(I,1) (33) +20: BinaryOp(I,add) (34) +21: LocalLoad(Ljava/lang/Object;,0) (35) +22: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (36) +23: LocalLoad(Ljava/lang/Object;,0) (39) +24: Invoke(VIRTUAL,Ljava_cup/Lexer;,yylength,()I) (40) +25: BinaryOp(I,add) (43) +26: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (44) +27: LocalLoad(Ljava/lang/Object;,3) (47) +28: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (48) +29: Return(Ljava/lang/Object;) (51) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"symbol(Ljava/lang/String;ILjava/lang/String;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 39 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (1) + Handles null at 39 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 39 +7: LocalLoad(I,2) (5) + Handles null at 39 +8: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (6) + Handles null at 39 +9: Dup(1,0) (9) + Handles null at 39 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 39 +11: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (11) + Handles null at 39 +12: Constant(I,1) (14) + Handles null at 39 +13: BinaryOp(I,add) (15) + Handles null at 39 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 39 +15: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (17) + Handles null at 39 +16: Constant(I,1) (20) + Handles null at 39 +17: BinaryOp(I,add) (21) + Handles null at 39 +18: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (22) + Handles null at 39 +19: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (25) + Handles null at 39 +20: Dup(1,0) (28) + Handles null at 39 +21: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 39 +22: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (30) + Handles null at 39 +23: Constant(I,1) (33) + Handles null at 39 +24: BinaryOp(I,add) (34) + Handles null at 39 +25: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 39 +26: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (36) + Handles null at 39 +27: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 39 +28: Invoke(VIRTUAL,Ljava_cup/Lexer;,yylength,()I) (40) + Handles null at 39 +29: BinaryOp(I,add) (43) + Handles null at 39 +30: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (44) + Handles null at 39 +31: LocalLoad(Ljava/lang/Object;,3) (47) + Handles null at 39 +32: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (48) + Handles null at 39 +33: Constant(Ljava/lang/String;,"java_cup/Lexer") (51) + Handles null at 39 +34: Constant(Ljava/lang/String;,"symbol(Ljava/lang/String;ILjava/lang/String;)Ljava_cup/runtime/Symbol;") (51) + Handles null at 39 +35: LocalLoad(Ljava/lang/Object;,0) (51) + Handles null at 39 +36: Constant(I,0) (51) + Handles null at 39 +37: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (51) + Handles null at 39 +38: Return(Ljava/lang/Object;) (51) + Handles null at 39 +39: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +40: Constant(Ljava/lang/String;,"symbol(Ljava/lang/String;ILjava/lang/String;)Ljava_cup/runtime/Symbol;") (0) +41: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +42: Constant(I,1) (0) +43: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +44: Throw() (0) +Instrumenting emit_warning (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"Scanner at ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,0) (15) +7: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (16) +8: Constant(I,1) (19) +9: BinaryOp(I,add) (20) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (21) +11: Constant(Ljava/lang/String;,"(") (24) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) +13: LocalLoad(Ljava/lang/Object;,0) (29) +14: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (30) +15: Constant(I,1) (33) +16: BinaryOp(I,add) (34) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (35) +18: Constant(Ljava/lang/String;,"): ") (38) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) +20: LocalLoad(Ljava/lang/Object;,1) (43) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (44) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (47) +23: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (50) +24: Return(V) (53) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (0) + Handles null at 34 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 34 +6: Dup(1,0) (6) + Handles null at 34 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 34 +8: Constant(Ljava/lang/String;,"Scanner at ") (10) + Handles null at 34 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 34 +10: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 34 +11: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (16) + Handles null at 34 +12: Constant(I,1) (19) + Handles null at 34 +13: BinaryOp(I,add) (20) + Handles null at 34 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (21) + Handles null at 34 +15: Constant(Ljava/lang/String;,"(") (24) + Handles null at 34 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) + Handles null at 34 +17: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 34 +18: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (30) + Handles null at 34 +19: Constant(I,1) (33) + Handles null at 34 +20: BinaryOp(I,add) (34) + Handles null at 34 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (35) + Handles null at 34 +22: Constant(Ljava/lang/String;,"): ") (38) + Handles null at 34 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) + Handles null at 34 +24: LocalLoad(Ljava/lang/Object;,1) (43) + Handles null at 34 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (44) + Handles null at 34 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (47) + Handles null at 34 +27: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (50) + Handles null at 34 +28: Constant(Ljava/lang/String;,"java_cup/Lexer") (53) + Handles null at 34 +29: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;)V") (53) + Handles null at 34 +30: LocalLoad(Ljava/lang/Object;,0) (53) + Handles null at 34 +31: Constant(I,0) (53) + Handles null at 34 +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (53) + Handles null at 34 +33: Return(V) (53) + Handles null at 34 +34: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +35: Constant(Ljava/lang/String;,"emit_warning(Ljava/lang/String;)V") (0) +36: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +37: Constant(I,1) (0) +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +39: Throw() (0) +Instrumenting emit_error (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"Scanner at ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,0) (15) +7: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (16) +8: Constant(I,1) (19) +9: BinaryOp(I,add) (20) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (21) +11: Constant(Ljava/lang/String;,"(") (24) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) +13: LocalLoad(Ljava/lang/Object;,0) (29) +14: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (30) +15: Constant(I,1) (33) +16: BinaryOp(I,add) (34) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (35) +18: Constant(Ljava/lang/String;,"): ") (38) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) +20: LocalLoad(Ljava/lang/Object;,1) (43) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (44) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (47) +23: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (50) +24: Return(V) (53) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (0) + Handles null at 34 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 34 +6: Dup(1,0) (6) + Handles null at 34 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 34 +8: Constant(Ljava/lang/String;,"Scanner at ") (10) + Handles null at 34 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 34 +10: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 34 +11: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (16) + Handles null at 34 +12: Constant(I,1) (19) + Handles null at 34 +13: BinaryOp(I,add) (20) + Handles null at 34 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (21) + Handles null at 34 +15: Constant(Ljava/lang/String;,"(") (24) + Handles null at 34 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) + Handles null at 34 +17: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 34 +18: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (30) + Handles null at 34 +19: Constant(I,1) (33) + Handles null at 34 +20: BinaryOp(I,add) (34) + Handles null at 34 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (35) + Handles null at 34 +22: Constant(Ljava/lang/String;,"): ") (38) + Handles null at 34 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) + Handles null at 34 +24: LocalLoad(Ljava/lang/Object;,1) (43) + Handles null at 34 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (44) + Handles null at 34 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (47) + Handles null at 34 +27: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (50) + Handles null at 34 +28: Constant(Ljava/lang/String;,"java_cup/Lexer") (53) + Handles null at 34 +29: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;)V") (53) + Handles null at 34 +30: LocalLoad(Ljava/lang/Object;,0) (53) + Handles null at 34 +31: Constant(I,0) (53) + Handles null at 34 +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (53) + Handles null at 34 +33: Return(V) (53) + Handles null at 34 +34: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +35: Constant(Ljava/lang/String;,"emit_error(Ljava/lang/String;)V") (0) +36: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +37: Constant(I,1) (0) +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +39: Throw() (0) +Instrumenting (Ljava/io/Reader;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(I,0) (5) +4: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: Constant(I,16384) (10) +7: New([C,1) (13) +8: Put([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (15) +9: LocalLoad(Ljava/lang/Object;,0) (18) +10: Constant(I,1) (19) +11: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtBOL) (20) +12: LocalLoad(Ljava/lang/Object;,0) (23) +13: LocalLoad(Ljava/lang/Object;,1) (24) +14: Put(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (25) +15: Return(V) (28) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"(Ljava/io/Reader;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 25 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 25 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 25 +7: Constant(I,0) (5) + Handles null at 25 +8: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (6) + Handles null at 25 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +10: Constant(I,16384) (10) + Handles null at 25 +11: New([C,1) (13) + Handles null at 25 +12: Put([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (15) + Handles null at 25 +13: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 25 +14: Constant(I,1) (19) + Handles null at 25 +15: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtBOL) (20) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 25 +17: LocalLoad(Ljava/lang/Object;,1) (24) + Handles null at 25 +18: Put(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (25) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/Lexer") (28) + Handles null at 25 +20: Constant(Ljava/lang/String;,"(Ljava/io/Reader;)V") (28) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 25 +22: Constant(I,0) (28) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (28) + Handles null at 25 +24: Return(V) (28) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +26: Constant(Ljava/lang/String;,"(Ljava/io/Reader;)V") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting (Ljava/io/InputStream;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: New(Ljava/io/InputStreamReader;,0) (1) +2: Dup(1,0) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Invoke(SPECIAL,Ljava/io/InputStreamReader;,,(Ljava/io/InputStream;)V) (6) +5: Invoke(SPECIAL,Ljava_cup/Lexer;,,(Ljava/io/Reader;)V) (9) +6: Return(V) (12) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"(Ljava/io/InputStream;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: New(Ljava/io/InputStreamReader;,0) (1) + Handles null at 16 +6: Dup(1,0) (4) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 16 +8: Invoke(SPECIAL,Ljava/io/InputStreamReader;,,(Ljava/io/InputStream;)V) (6) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/Lexer;,,(Ljava/io/Reader;)V) (9) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/Lexer") (12) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(Ljava/io/InputStream;)V") (12) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 16 +13: Constant(I,0) (12) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 16 +15: Return(V) (12) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +17: Constant(Ljava/lang/String;,"(Ljava/io/InputStream;)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting zzUnpackCMap (Ljava/lang/String;)[C: +Initial ShrikeBT code: +0: Constant(I,65536) (0) +1: New([C,1) (2) +2: LocalStore(Ljava/lang/Object;,1) (4) +3: Constant(I,0) (5) +4: LocalStore(I,2) (6) +5: Constant(I,0) (7) +6: LocalStore(I,3) (8) +7: LocalLoad(I,2) (9) +8: Constant(I,2200) (10) +9: ConditionalBranch(I,ge,42) (13) +10: LocalLoad(Ljava/lang/Object;,0) (16) +11: LocalLoad(I,2) (17) +12: LocalLoad(I,2) (18) +13: Constant(I,1) (18) +14: BinaryOp(I,add) (18) +15: LocalStore(I,2) (18) +16: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (21) +17: LocalStore(I,4) (24) +18: LocalLoad(Ljava/lang/Object;,0) (26) +19: LocalLoad(I,2) (27) +20: LocalLoad(I,2) (28) +21: Constant(I,1) (28) +22: BinaryOp(I,add) (28) +23: LocalStore(I,2) (28) +24: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (31) +25: LocalStore(I,5) (34) +26: LocalLoad(Ljava/lang/Object;,1) (36) +27: LocalLoad(I,3) (37) +28: LocalLoad(I,3) (38) +29: Constant(I,1) (38) +30: BinaryOp(I,add) (38) +31: LocalStore(I,3) (38) +32: LocalLoad(I,5) (41) +33: ArrayStore(C) (43) +34: LocalLoad(I,4) (44) +35: Constant(I,-1) (44) +36: BinaryOp(I,add) (44) +37: LocalStore(I,4) (44) +38: LocalLoad(I,4) (47) +39: Constant(I,0) (49) +40: ConditionalBranch(I,gt,26) (49) +41: Goto(7) (52) +42: LocalLoad(Ljava/lang/Object;,1) (55) +43: Return(Ljava/lang/Object;) (56) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzUnpackCMap(Ljava/lang/String;)[C") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,65536) (0) + Handles null at 53 +5: New([C,1) (2) + Handles null at 53 +6: LocalStore(Ljava/lang/Object;,1) (4) + Handles null at 53 +7: Constant(I,0) (5) + Handles null at 53 +8: LocalStore(I,2) (6) + Handles null at 53 +9: Constant(I,0) (7) + Handles null at 53 +10: LocalStore(I,3) (8) + Handles null at 53 +11: LocalLoad(I,2) (9) + Handles null at 53 +12: Constant(I,2200) (10) + Handles null at 53 +13: ConditionalBranch(I,ge,46) (13) + Handles null at 53 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 53 +15: LocalLoad(I,2) (17) + Handles null at 53 +16: LocalLoad(I,2) (18) + Handles null at 53 +17: Constant(I,1) (18) + Handles null at 53 +18: BinaryOp(I,add) (18) + Handles null at 53 +19: LocalStore(I,2) (18) + Handles null at 53 +20: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (21) + Handles null at 53 +21: LocalStore(I,4) (24) + Handles null at 53 +22: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 53 +23: LocalLoad(I,2) (27) + Handles null at 53 +24: LocalLoad(I,2) (28) + Handles null at 53 +25: Constant(I,1) (28) + Handles null at 53 +26: BinaryOp(I,add) (28) + Handles null at 53 +27: LocalStore(I,2) (28) + Handles null at 53 +28: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (31) + Handles null at 53 +29: LocalStore(I,5) (34) + Handles null at 53 +30: LocalLoad(Ljava/lang/Object;,1) (36) + Handles null at 53 +31: LocalLoad(I,3) (37) + Handles null at 53 +32: LocalLoad(I,3) (38) + Handles null at 53 +33: Constant(I,1) (38) + Handles null at 53 +34: BinaryOp(I,add) (38) + Handles null at 53 +35: LocalStore(I,3) (38) + Handles null at 53 +36: LocalLoad(I,5) (41) + Handles null at 53 +37: ArrayStore(C) (43) + Handles null at 53 +38: LocalLoad(I,4) (44) + Handles null at 53 +39: Constant(I,-1) (44) + Handles null at 53 +40: BinaryOp(I,add) (44) + Handles null at 53 +41: LocalStore(I,4) (44) + Handles null at 53 +42: LocalLoad(I,4) (47) + Handles null at 53 +43: Constant(I,0) (49) + Handles null at 53 +44: ConditionalBranch(I,gt,30) (49) + Handles null at 53 +45: Goto(11) (52) + Handles null at 53 +46: LocalLoad(Ljava/lang/Object;,1) (55) + Handles null at 53 +47: Constant(Ljava/lang/String;,"java_cup/Lexer") (56) + Handles null at 53 +48: Constant(Ljava/lang/String;,"zzUnpackCMap(Ljava/lang/String;)[C") (56) + Handles null at 53 +49: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (56) + Handles null at 53 +50: Constant(I,0) (56) + Handles null at 53 +51: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (56) + Handles null at 53 +52: Return(Ljava/lang/Object;) (56) + Handles null at 53 +53: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +54: Constant(Ljava/lang/String;,"zzUnpackCMap(Ljava/lang/String;)[C") (0) +55: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +56: Constant(I,1) (0) +57: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +58: Throw() (0) +Instrumenting zzRefill ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,le,41) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (8) +6: LocalLoad(Ljava/lang/Object;,0) (11) +7: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (12) +8: LocalLoad(Ljava/lang/Object;,0) (15) +9: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (16) +10: Constant(I,0) (19) +11: LocalLoad(Ljava/lang/Object;,0) (20) +12: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (21) +13: LocalLoad(Ljava/lang/Object;,0) (24) +14: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (25) +15: BinaryOp(I,sub) (28) +16: Invoke(STATIC,Ljava/lang/System;,arraycopy,(Ljava/lang/Object;ILjava/lang/Object;II)V) (29) +17: LocalLoad(Ljava/lang/Object;,0) (32) +18: Dup(1,0) (33) +19: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (34) +20: LocalLoad(Ljava/lang/Object;,0) (37) +21: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (38) +22: BinaryOp(I,sub) (41) +23: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (42) +24: LocalLoad(Ljava/lang/Object;,0) (45) +25: Dup(1,0) (46) +26: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (47) +27: LocalLoad(Ljava/lang/Object;,0) (50) +28: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (51) +29: BinaryOp(I,sub) (54) +30: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (55) +31: LocalLoad(Ljava/lang/Object;,0) (58) +32: Dup(1,0) (59) +33: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (60) +34: LocalLoad(Ljava/lang/Object;,0) (63) +35: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (64) +36: BinaryOp(I,sub) (67) +37: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (68) +38: LocalLoad(Ljava/lang/Object;,0) (71) +39: Constant(I,0) (72) +40: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (73) +41: LocalLoad(Ljava/lang/Object;,0) (76) +42: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (77) +43: LocalLoad(Ljava/lang/Object;,0) (80) +44: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (81) +45: ArrayLength() (84) +46: ConditionalBranch(I,lt,65) (85) +47: LocalLoad(Ljava/lang/Object;,0) (88) +48: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (89) +49: Constant(I,2) (92) +50: BinaryOp(I,mul) (93) +51: New([C,1) (94) +52: LocalStore(Ljava/lang/Object;,1) (96) +53: LocalLoad(Ljava/lang/Object;,0) (97) +54: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (98) +55: Constant(I,0) (101) +56: LocalLoad(Ljava/lang/Object;,1) (102) +57: Constant(I,0) (103) +58: LocalLoad(Ljava/lang/Object;,0) (104) +59: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (105) +60: ArrayLength() (108) +61: Invoke(STATIC,Ljava/lang/System;,arraycopy,(Ljava/lang/Object;ILjava/lang/Object;II)V) (109) +62: LocalLoad(Ljava/lang/Object;,0) (112) +63: LocalLoad(Ljava/lang/Object;,1) (113) +64: Put([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (114) +65: LocalLoad(Ljava/lang/Object;,0) (117) +66: Get(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (118) +67: LocalLoad(Ljava/lang/Object;,0) (121) +68: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (122) +69: LocalLoad(Ljava/lang/Object;,0) (125) +70: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (126) +71: LocalLoad(Ljava/lang/Object;,0) (129) +72: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (130) +73: ArrayLength() (133) +74: LocalLoad(Ljava/lang/Object;,0) (134) +75: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (135) +76: BinaryOp(I,sub) (138) +77: Invoke(VIRTUAL,Ljava/io/Reader;,read,([CII)I) (139) +78: LocalStore(I,1) (142) +79: LocalLoad(I,1) (143) +80: Constant(I,0) (144) +81: ConditionalBranch(I,le,90) (144) +82: LocalLoad(Ljava/lang/Object;,0) (147) +83: Dup(1,0) (148) +84: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (149) +85: LocalLoad(I,1) (152) +86: BinaryOp(I,add) (153) +87: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (154) +88: Constant(I,0) (157) +89: Return(I) (158) +90: LocalLoad(I,1) (159) +91: Constant(I,0) (160) +92: ConditionalBranch(I,ne,116) (160) +93: LocalLoad(Ljava/lang/Object;,0) (163) +94: Get(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (164) +95: Invoke(VIRTUAL,Ljava/io/Reader;,read,()I) (167) +96: LocalStore(I,2) (170) +97: LocalLoad(I,2) (171) +98: Constant(I,-1) (172) +99: ConditionalBranch(I,ne,102) (173) +100: Constant(I,1) (176) +101: Return(I) (177) +102: LocalLoad(Ljava/lang/Object;,0) (178) +103: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (179) +104: LocalLoad(Ljava/lang/Object;,0) (182) +105: Dup(1,0) (183) +106: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (184) +107: Dup(1,1) (187) +108: Constant(I,1) (188) +109: BinaryOp(I,add) (189) +110: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (190) +111: LocalLoad(I,2) (193) +112: Conversion(I,C) (194) +113: ArrayStore(C) (195) +114: Constant(I,0) (196) +115: Return(I) (197) +116: Constant(I,1) (198) +117: Return(I) (199) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzRefill()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 142 +5: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (1) + Handles null at 142 +6: Constant(I,0) (4) + Handles null at 142 +7: ConditionalBranch(I,le,45) (4) + Handles null at 142 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 142 +9: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (8) + Handles null at 142 +10: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 142 +11: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (12) + Handles null at 142 +12: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 142 +13: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (16) + Handles null at 142 +14: Constant(I,0) (19) + Handles null at 142 +15: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 142 +16: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (21) + Handles null at 142 +17: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 142 +18: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (25) + Handles null at 142 +19: BinaryOp(I,sub) (28) + Handles null at 142 +20: Invoke(STATIC,Ljava/lang/System;,arraycopy,(Ljava/lang/Object;ILjava/lang/Object;II)V) (29) + Handles null at 142 +21: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 142 +22: Dup(1,0) (33) + Handles null at 142 +23: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (34) + Handles null at 142 +24: LocalLoad(Ljava/lang/Object;,0) (37) + Handles null at 142 +25: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (38) + Handles null at 142 +26: BinaryOp(I,sub) (41) + Handles null at 142 +27: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (42) + Handles null at 142 +28: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 142 +29: Dup(1,0) (46) + Handles null at 142 +30: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (47) + Handles null at 142 +31: LocalLoad(Ljava/lang/Object;,0) (50) + Handles null at 142 +32: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (51) + Handles null at 142 +33: BinaryOp(I,sub) (54) + Handles null at 142 +34: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (55) + Handles null at 142 +35: LocalLoad(Ljava/lang/Object;,0) (58) + Handles null at 142 +36: Dup(1,0) (59) + Handles null at 142 +37: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (60) + Handles null at 142 +38: LocalLoad(Ljava/lang/Object;,0) (63) + Handles null at 142 +39: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (64) + Handles null at 142 +40: BinaryOp(I,sub) (67) + Handles null at 142 +41: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (68) + Handles null at 142 +42: LocalLoad(Ljava/lang/Object;,0) (71) + Handles null at 142 +43: Constant(I,0) (72) + Handles null at 142 +44: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (73) + Handles null at 142 +45: LocalLoad(Ljava/lang/Object;,0) (76) + Handles null at 142 +46: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (77) + Handles null at 142 +47: LocalLoad(Ljava/lang/Object;,0) (80) + Handles null at 142 +48: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (81) + Handles null at 142 +49: ArrayLength() (84) + Handles null at 142 +50: ConditionalBranch(I,lt,69) (85) + Handles null at 142 +51: LocalLoad(Ljava/lang/Object;,0) (88) + Handles null at 142 +52: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (89) + Handles null at 142 +53: Constant(I,2) (92) + Handles null at 142 +54: BinaryOp(I,mul) (93) + Handles null at 142 +55: New([C,1) (94) + Handles null at 142 +56: LocalStore(Ljava/lang/Object;,1) (96) + Handles null at 142 +57: LocalLoad(Ljava/lang/Object;,0) (97) + Handles null at 142 +58: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (98) + Handles null at 142 +59: Constant(I,0) (101) + Handles null at 142 +60: LocalLoad(Ljava/lang/Object;,1) (102) + Handles null at 142 +61: Constant(I,0) (103) + Handles null at 142 +62: LocalLoad(Ljava/lang/Object;,0) (104) + Handles null at 142 +63: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (105) + Handles null at 142 +64: ArrayLength() (108) + Handles null at 142 +65: Invoke(STATIC,Ljava/lang/System;,arraycopy,(Ljava/lang/Object;ILjava/lang/Object;II)V) (109) + Handles null at 142 +66: LocalLoad(Ljava/lang/Object;,0) (112) + Handles null at 142 +67: LocalLoad(Ljava/lang/Object;,1) (113) + Handles null at 142 +68: Put([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (114) + Handles null at 142 +69: LocalLoad(Ljava/lang/Object;,0) (117) + Handles null at 142 +70: Get(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (118) + Handles null at 142 +71: LocalLoad(Ljava/lang/Object;,0) (121) + Handles null at 142 +72: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (122) + Handles null at 142 +73: LocalLoad(Ljava/lang/Object;,0) (125) + Handles null at 142 +74: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (126) + Handles null at 142 +75: LocalLoad(Ljava/lang/Object;,0) (129) + Handles null at 142 +76: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (130) + Handles null at 142 +77: ArrayLength() (133) + Handles null at 142 +78: LocalLoad(Ljava/lang/Object;,0) (134) + Handles null at 142 +79: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (135) + Handles null at 142 +80: BinaryOp(I,sub) (138) + Handles null at 142 +81: Invoke(VIRTUAL,Ljava/io/Reader;,read,([CII)I) (139) + Handles null at 142 +82: LocalStore(I,1) (142) + Handles null at 142 +83: LocalLoad(I,1) (143) + Handles null at 142 +84: Constant(I,0) (144) + Handles null at 142 +85: ConditionalBranch(I,le,99) (144) + Handles null at 142 +86: LocalLoad(Ljava/lang/Object;,0) (147) + Handles null at 142 +87: Dup(1,0) (148) + Handles null at 142 +88: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (149) + Handles null at 142 +89: LocalLoad(I,1) (152) + Handles null at 142 +90: BinaryOp(I,add) (153) + Handles null at 142 +91: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (154) + Handles null at 142 +92: Constant(I,0) (157) + Handles null at 142 +93: Constant(Ljava/lang/String;,"java_cup/Lexer") (158) + Handles null at 142 +94: Constant(Ljava/lang/String;,"zzRefill()Z") (158) + Handles null at 142 +95: LocalLoad(Ljava/lang/Object;,0) (158) + Handles null at 142 +96: Constant(I,0) (158) + Handles null at 142 +97: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (158) + Handles null at 142 +98: Return(I) (158) + Handles null at 142 +99: LocalLoad(I,1) (159) + Handles null at 142 +100: Constant(I,0) (160) + Handles null at 142 +101: ConditionalBranch(I,ne,135) (160) + Handles null at 142 +102: LocalLoad(Ljava/lang/Object;,0) (163) + Handles null at 142 +103: Get(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (164) + Handles null at 142 +104: Invoke(VIRTUAL,Ljava/io/Reader;,read,()I) (167) + Handles null at 142 +105: LocalStore(I,2) (170) + Handles null at 142 +106: LocalLoad(I,2) (171) + Handles null at 142 +107: Constant(I,-1) (172) + Handles null at 142 +108: ConditionalBranch(I,ne,116) (173) + Handles null at 142 +109: Constant(I,1) (176) + Handles null at 142 +110: Constant(Ljava/lang/String;,"java_cup/Lexer") (177) + Handles null at 142 +111: Constant(Ljava/lang/String;,"zzRefill()Z") (177) + Handles null at 142 +112: LocalLoad(Ljava/lang/Object;,0) (177) + Handles null at 142 +113: Constant(I,0) (177) + Handles null at 142 +114: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (177) + Handles null at 142 +115: Return(I) (177) + Handles null at 142 +116: LocalLoad(Ljava/lang/Object;,0) (178) + Handles null at 142 +117: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (179) + Handles null at 142 +118: LocalLoad(Ljava/lang/Object;,0) (182) + Handles null at 142 +119: Dup(1,0) (183) + Handles null at 142 +120: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (184) + Handles null at 142 +121: Dup(1,1) (187) + Handles null at 142 +122: Constant(I,1) (188) + Handles null at 142 +123: BinaryOp(I,add) (189) + Handles null at 142 +124: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (190) + Handles null at 142 +125: LocalLoad(I,2) (193) + Handles null at 142 +126: Conversion(I,C) (194) + Handles null at 142 +127: ArrayStore(C) (195) + Handles null at 142 +128: Constant(I,0) (196) + Handles null at 142 +129: Constant(Ljava/lang/String;,"java_cup/Lexer") (197) + Handles null at 142 +130: Constant(Ljava/lang/String;,"zzRefill()Z") (197) + Handles null at 142 +131: LocalLoad(Ljava/lang/Object;,0) (197) + Handles null at 142 +132: Constant(I,0) (197) + Handles null at 142 +133: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (197) + Handles null at 142 +134: Return(I) (197) + Handles null at 142 +135: Constant(I,1) (198) + Handles null at 142 +136: Constant(Ljava/lang/String;,"java_cup/Lexer") (199) + Handles null at 142 +137: Constant(Ljava/lang/String;,"zzRefill()Z") (199) + Handles null at 142 +138: LocalLoad(Ljava/lang/Object;,0) (199) + Handles null at 142 +139: Constant(I,0) (199) + Handles null at 142 +140: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (199) + Handles null at 142 +141: Return(I) (199) + Handles null at 142 +142: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +143: Constant(Ljava/lang/String;,"zzRefill()Z") (0) +144: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +145: Constant(I,1) (0) +146: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +147: Throw() (0) +Instrumenting yyclose ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (7) +6: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (10) +7: LocalLoad(Ljava/lang/Object;,0) (13) +8: Get(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (14) +9: Constant(L;,null) (17) +10: ConditionalBranch(Ljava/lang/Object;,eq,14) (17) +11: LocalLoad(Ljava/lang/Object;,0) (20) +12: Get(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (21) +13: Invoke(VIRTUAL,Ljava/io/Reader;,close,()V) (24) +14: Return(V) (27) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"yyclose()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: Constant(I,1) (1) + Handles null at 24 +6: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (2) + Handles null at 24 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 24 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 24 +9: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (7) + Handles null at 24 +10: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (10) + Handles null at 24 +11: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 24 +12: Get(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (14) + Handles null at 24 +13: Constant(L;,null) (17) + Handles null at 24 +14: ConditionalBranch(Ljava/lang/Object;,eq,18) (17) + Handles null at 24 +15: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 24 +16: Get(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (21) + Handles null at 24 +17: Invoke(VIRTUAL,Ljava/io/Reader;,close,()V) (24) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/Lexer") (27) + Handles null at 24 +19: Constant(Ljava/lang/String;,"yyclose()V") (27) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 24 +21: Constant(I,0) (27) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (27) + Handles null at 24 +23: Return(V) (27) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +25: Constant(Ljava/lang/String;,"yyclose()V") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting yyreset (Ljava/io/Reader;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Constant(I,1) (6) +5: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtBOL) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: Constant(I,0) (11) +8: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (12) +9: LocalLoad(Ljava/lang/Object;,0) (15) +10: Constant(I,0) (16) +11: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzEOFDone) (17) +12: LocalLoad(Ljava/lang/Object;,0) (20) +13: LocalLoad(Ljava/lang/Object;,0) (21) +14: Constant(I,0) (22) +15: Dup(1,1) (23) +16: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (24) +17: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (27) +18: LocalLoad(Ljava/lang/Object;,0) (30) +19: LocalLoad(Ljava/lang/Object;,0) (31) +20: Constant(I,0) (32) +21: Dup(1,1) (33) +22: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (34) +23: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (37) +24: LocalLoad(Ljava/lang/Object;,0) (40) +25: LocalLoad(Ljava/lang/Object;,0) (41) +26: LocalLoad(Ljava/lang/Object;,0) (42) +27: Constant(I,0) (43) +28: Dup(1,1) (44) +29: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (45) +30: Dup(1,1) (48) +31: Put(I,NONSTATIC,Ljava_cup/Lexer;,yychar) (49) +32: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (52) +33: LocalLoad(Ljava/lang/Object;,0) (55) +34: Constant(I,0) (56) +35: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (57) +36: Return(V) (60) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"yyreset(Ljava/io/Reader;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 46 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 46 +6: Put(Ljava/io/Reader;,NONSTATIC,Ljava_cup/Lexer;,zzReader) (2) + Handles null at 46 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 46 +8: Constant(I,1) (6) + Handles null at 46 +9: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtBOL) (7) + Handles null at 46 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 46 +11: Constant(I,0) (11) + Handles null at 46 +12: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (12) + Handles null at 46 +13: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 46 +14: Constant(I,0) (16) + Handles null at 46 +15: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzEOFDone) (17) + Handles null at 46 +16: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 46 +17: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 46 +18: Constant(I,0) (22) + Handles null at 46 +19: Dup(1,1) (23) + Handles null at 46 +20: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (24) + Handles null at 46 +21: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (27) + Handles null at 46 +22: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 46 +23: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 46 +24: Constant(I,0) (32) + Handles null at 46 +25: Dup(1,1) (33) + Handles null at 46 +26: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (34) + Handles null at 46 +27: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (37) + Handles null at 46 +28: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 46 +29: LocalLoad(Ljava/lang/Object;,0) (41) + Handles null at 46 +30: LocalLoad(Ljava/lang/Object;,0) (42) + Handles null at 46 +31: Constant(I,0) (43) + Handles null at 46 +32: Dup(1,1) (44) + Handles null at 46 +33: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (45) + Handles null at 46 +34: Dup(1,1) (48) + Handles null at 46 +35: Put(I,NONSTATIC,Ljava_cup/Lexer;,yychar) (49) + Handles null at 46 +36: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (52) + Handles null at 46 +37: LocalLoad(Ljava/lang/Object;,0) (55) + Handles null at 46 +38: Constant(I,0) (56) + Handles null at 46 +39: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (57) + Handles null at 46 +40: Constant(Ljava/lang/String;,"java_cup/Lexer") (60) + Handles null at 46 +41: Constant(Ljava/lang/String;,"yyreset(Ljava/io/Reader;)V") (60) + Handles null at 46 +42: LocalLoad(Ljava/lang/Object;,0) (60) + Handles null at 46 +43: Constant(I,0) (60) + Handles null at 46 +44: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (60) + Handles null at 46 +45: Return(V) (60) + Handles null at 46 +46: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +47: Constant(Ljava/lang/String;,"yyreset(Ljava/io/Reader;)V") (0) +48: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +49: Constant(I,1) (0) +50: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +51: Throw() (0) +Instrumenting yystate ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"yystate()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/Lexer") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"yystate()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +13: Constant(Ljava/lang/String;,"yystate()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting yybegin (I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"yybegin(I)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/Lexer") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"yybegin(I)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +14: Constant(Ljava/lang/String;,"yybegin(I)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting yytext ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/String;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (5) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (9) +6: LocalLoad(Ljava/lang/Object;,0) (12) +7: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (13) +8: LocalLoad(Ljava/lang/Object;,0) (16) +9: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (17) +10: BinaryOp(I,sub) (20) +11: Invoke(SPECIAL,Ljava/lang/String;,,([CII)V) (21) +12: Return(Ljava/lang/Object;) (24) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"yytext()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/String;,0) (0) + Handles null at 22 +5: Dup(1,0) (3) + Handles null at 22 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 22 +7: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (5) + Handles null at 22 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 22 +9: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (9) + Handles null at 22 +10: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 22 +11: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (13) + Handles null at 22 +12: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 22 +13: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (17) + Handles null at 22 +14: BinaryOp(I,sub) (20) + Handles null at 22 +15: Invoke(SPECIAL,Ljava/lang/String;,,([CII)V) (21) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/Lexer") (24) + Handles null at 22 +17: Constant(Ljava/lang/String;,"yytext()Ljava/lang/String;") (24) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 22 +19: Constant(I,0) (24) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (24) + Handles null at 22 +21: Return(Ljava/lang/Object;) (24) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +23: Constant(Ljava/lang/String;,"yytext()Ljava/lang/String;") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting yycharat (I)C: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (5) +4: LocalLoad(I,1) (8) +5: BinaryOp(I,add) (9) +6: ArrayLoad(C) (10) +7: Return(I) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"yycharat(I)C") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 17 +5: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (1) + Handles null at 17 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 17 +7: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (5) + Handles null at 17 +8: LocalLoad(I,1) (8) + Handles null at 17 +9: BinaryOp(I,add) (9) + Handles null at 17 +10: ArrayLoad(C) (10) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/Lexer") (11) + Handles null at 17 +12: Constant(Ljava/lang/String;,"yycharat(I)C") (11) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 17 +14: Constant(I,0) (11) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 17 +16: Return(I) (11) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +18: Constant(Ljava/lang/String;,"yycharat(I)C") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting yylength ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (5) +4: BinaryOp(I,sub) (8) +5: Return(I) (9) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"yylength()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 15 +7: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (5) + Handles null at 15 +8: BinaryOp(I,sub) (8) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/Lexer") (9) + Handles null at 15 +10: Constant(Ljava/lang/String;,"yylength()I") (9) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 15 +12: Constant(I,0) (9) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (9) + Handles null at 15 +14: Return(I) (9) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +16: Constant(Ljava/lang/String;,"yylength()I") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting zzScanError (I)V: +Initial ShrikeBT code: +0: Get([Ljava/lang/String;,STATIC,Ljava_cup/Lexer;,ZZ_ERROR_MSG) (0) + Handles Ljava/lang/ArrayIndexOutOfBoundsException; at 5 +1: LocalLoad(I,1) (3) + Handles Ljava/lang/ArrayIndexOutOfBoundsException; at 5 +2: ArrayLoad(Ljava/lang/Object;) (4) + Handles Ljava/lang/ArrayIndexOutOfBoundsException; at 5 +3: LocalStore(Ljava/lang/Object;,2) (5) + Handles Ljava/lang/ArrayIndexOutOfBoundsException; at 5 +4: Goto(10) (6) +5: LocalStore(Ljava/lang/Object;,3) (9) +6: Get([Ljava/lang/String;,STATIC,Ljava_cup/Lexer;,ZZ_ERROR_MSG) (10) +7: Constant(I,0) (13) +8: ArrayLoad(Ljava/lang/Object;) (14) +9: LocalStore(Ljava/lang/Object;,2) (15) +10: New(Ljava/lang/Error;,0) (16) +11: Dup(1,0) (19) +12: LocalLoad(Ljava/lang/Object;,2) (20) +13: Invoke(SPECIAL,Ljava/lang/Error;,,(Ljava/lang/String;)V) (21) +14: Throw() (24) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzScanError(I)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get([Ljava/lang/String;,STATIC,Ljava_cup/Lexer;,ZZ_ERROR_MSG) (0) + Handles Ljava/lang/ArrayIndexOutOfBoundsException; at 9 + Handles null at 19 +5: LocalLoad(I,1) (3) + Handles Ljava/lang/ArrayIndexOutOfBoundsException; at 9 + Handles null at 19 +6: ArrayLoad(Ljava/lang/Object;) (4) + Handles Ljava/lang/ArrayIndexOutOfBoundsException; at 9 + Handles null at 19 +7: LocalStore(Ljava/lang/Object;,2) (5) + Handles Ljava/lang/ArrayIndexOutOfBoundsException; at 9 + Handles null at 19 +8: Goto(14) (6) + Handles null at 19 +9: LocalStore(Ljava/lang/Object;,3) (9) + Handles null at 19 +10: Get([Ljava/lang/String;,STATIC,Ljava_cup/Lexer;,ZZ_ERROR_MSG) (10) + Handles null at 19 +11: Constant(I,0) (13) + Handles null at 19 +12: ArrayLoad(Ljava/lang/Object;) (14) + Handles null at 19 +13: LocalStore(Ljava/lang/Object;,2) (15) + Handles null at 19 +14: New(Ljava/lang/Error;,0) (16) + Handles null at 19 +15: Dup(1,0) (19) + Handles null at 19 +16: LocalLoad(Ljava/lang/Object;,2) (20) + Handles null at 19 +17: Invoke(SPECIAL,Ljava/lang/Error;,,(Ljava/lang/String;)V) (21) + Handles null at 19 +18: Throw() (24) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +20: Constant(Ljava/lang/String;,"zzScanError(I)V") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting yypushback (I)V: +Initial ShrikeBT code: +0: LocalLoad(I,1) (0) +1: LocalLoad(Ljava/lang/Object;,0) (1) +2: Invoke(VIRTUAL,Ljava_cup/Lexer;,yylength,()I) (2) +3: ConditionalBranch(I,le,7) (5) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: Constant(I,2) (9) +6: Invoke(SPECIAL,Ljava_cup/Lexer;,zzScanError,(I)V) (10) +7: LocalLoad(Ljava/lang/Object;,0) (13) +8: Dup(1,0) (14) +9: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (15) +10: LocalLoad(I,1) (18) +11: BinaryOp(I,sub) (19) +12: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (20) +13: Return(V) (23) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"yypushback(I)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,1) (0) + Handles null at 23 +5: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 23 +6: Invoke(VIRTUAL,Ljava_cup/Lexer;,yylength,()I) (2) + Handles null at 23 +7: ConditionalBranch(I,le,11) (5) + Handles null at 23 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 23 +9: Constant(I,2) (9) + Handles null at 23 +10: Invoke(SPECIAL,Ljava_cup/Lexer;,zzScanError,(I)V) (10) + Handles null at 23 +11: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 23 +12: Dup(1,0) (14) + Handles null at 23 +13: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (15) + Handles null at 23 +14: LocalLoad(I,1) (18) + Handles null at 23 +15: BinaryOp(I,sub) (19) + Handles null at 23 +16: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (20) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/Lexer") (23) + Handles null at 23 +18: Constant(Ljava/lang/String;,"yypushback(I)V") (23) + Handles null at 23 +19: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 23 +20: Constant(I,0) (23) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (23) + Handles null at 23 +22: Return(V) (23) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +24: Constant(Ljava/lang/String;,"yypushback(I)V") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting zzDoEOF ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/Lexer;,zzEOFDone) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,9) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: Constant(I,1) (8) +6: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzEOFDone) (9) +7: LocalLoad(Ljava/lang/Object;,0) (12) +8: Invoke(VIRTUAL,Ljava_cup/Lexer;,yyclose,()V) (13) +9: Return(V) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"zzDoEOF()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 19 +5: Get(Z,NONSTATIC,Ljava_cup/Lexer;,zzEOFDone) (1) + Handles null at 19 +6: Constant(I,0) (4) + Handles null at 19 +7: ConditionalBranch(I,ne,13) (4) + Handles null at 19 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 19 +9: Constant(I,1) (8) + Handles null at 19 +10: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzEOFDone) (9) + Handles null at 19 +11: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 19 +12: Invoke(VIRTUAL,Ljava_cup/Lexer;,yyclose,()V) (13) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/Lexer") (16) + Handles null at 19 +14: Constant(Ljava/lang/String;,"zzDoEOF()V") (16) + Handles null at 19 +15: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 19 +16: Constant(I,0) (16) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 19 +18: Return(V) (16) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +20: Constant(Ljava/lang/String;,"zzDoEOF()V") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting next_token ()Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (1) +2: LocalStore(I,5) (4) +3: LocalLoad(Ljava/lang/Object;,0) (6) +4: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (7) +5: LocalStore(Ljava/lang/Object;,6) (10) +6: Get([C,STATIC,Ljava_cup/Lexer;,ZZ_CMAP) (12) +7: LocalStore(Ljava/lang/Object;,7) (15) +8: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_TRANS) (17) +9: LocalStore(Ljava/lang/Object;,8) (20) +10: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_ROWMAP) (22) +11: LocalStore(Ljava/lang/Object;,9) (25) +12: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_ATTRIBUTE) (27) +13: LocalStore(Ljava/lang/Object;,10) (30) +14: LocalLoad(Ljava/lang/Object;,0) (32) +15: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (33) +16: LocalStore(I,4) (36) +17: Constant(I,0) (38) +18: LocalStore(I,11) (39) +19: LocalLoad(Ljava/lang/Object;,0) (41) +20: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (42) +21: LocalStore(I,3) (45) +22: LocalLoad(I,3) (46) +23: LocalLoad(I,4) (47) +24: ConditionalBranch(I,ge,82) (49) +25: LocalLoad(Ljava/lang/Object;,6) (52) +26: LocalLoad(I,3) (54) +27: ArrayLoad(C) (55) +28: Switch(69,10,53,11,29,12,29,13,41,133,29,8232,29,8233,29) (56) +29: LocalLoad(Ljava/lang/Object;,0) (124) +30: Dup(1,0) (125) +31: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (126) +32: Constant(I,1) (129) +33: BinaryOp(I,add) (130) +34: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (131) +35: LocalLoad(Ljava/lang/Object;,0) (134) +36: Constant(I,0) (135) +37: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (136) +38: Constant(I,0) (139) +39: LocalStore(I,11) (140) +40: Goto(77) (142) +41: LocalLoad(Ljava/lang/Object;,0) (145) +42: Dup(1,0) (146) +43: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (147) +44: Constant(I,1) (150) +45: BinaryOp(I,add) (151) +46: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (152) +47: LocalLoad(Ljava/lang/Object;,0) (155) +48: Constant(I,0) (156) +49: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (157) +50: Constant(I,1) (160) +51: LocalStore(I,11) (161) +52: Goto(77) (163) +53: LocalLoad(I,11) (166) +54: Constant(I,0) (168) +55: ConditionalBranch(I,eq,59) (168) +56: Constant(I,0) (171) +57: LocalStore(I,11) (172) +58: Goto(77) (174) +59: LocalLoad(Ljava/lang/Object;,0) (177) +60: Dup(1,0) (178) +61: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (179) +62: Constant(I,1) (182) +63: BinaryOp(I,add) (183) +64: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (184) +65: LocalLoad(Ljava/lang/Object;,0) (187) +66: Constant(I,0) (188) +67: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (189) +68: Goto(77) (192) +69: Constant(I,0) (195) +70: LocalStore(I,11) (196) +71: LocalLoad(Ljava/lang/Object;,0) (198) +72: Dup(1,0) (199) +73: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (200) +74: Constant(I,1) (203) +75: BinaryOp(I,add) (204) +76: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (205) +77: LocalLoad(I,3) (208) +78: Constant(I,1) (208) +79: BinaryOp(I,add) (208) +80: LocalStore(I,3) (208) +81: Goto(22) (211) +82: LocalLoad(I,11) (214) +83: Constant(I,0) (216) +84: ConditionalBranch(I,eq,141) (216) +85: LocalLoad(I,4) (219) +86: LocalLoad(I,5) (221) +87: ConditionalBranch(I,ge,98) (223) +88: LocalLoad(Ljava/lang/Object;,6) (226) +89: LocalLoad(I,4) (228) +90: ArrayLoad(C) (230) +91: Constant(I,10) (231) +92: ConditionalBranch(I,ne,95) (233) +93: Constant(I,1) (236) +94: Goto(96) (237) +95: Constant(I,0) (240) +96: LocalStore(I,12) (241) +97: Goto(132) (243) +98: LocalLoad(Ljava/lang/Object;,0) (246) +99: Get(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (247) +100: Constant(I,0) (250) +101: ConditionalBranch(I,eq,105) (250) +102: Constant(I,0) (253) +103: LocalStore(I,12) (254) +104: Goto(132) (256) +105: LocalLoad(Ljava/lang/Object;,0) (259) +106: Invoke(SPECIAL,Ljava_cup/Lexer;,zzRefill,()Z) (260) +107: LocalStore(I,13) (263) +108: LocalLoad(Ljava/lang/Object;,0) (265) +109: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (266) +110: LocalStore(I,5) (269) +111: LocalLoad(Ljava/lang/Object;,0) (271) +112: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (272) +113: LocalStore(I,4) (275) +114: LocalLoad(Ljava/lang/Object;,0) (277) +115: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (278) +116: LocalStore(Ljava/lang/Object;,6) (281) +117: LocalLoad(I,13) (283) +118: Constant(I,0) (285) +119: ConditionalBranch(I,eq,123) (285) +120: Constant(I,0) (288) +121: LocalStore(I,12) (289) +122: Goto(132) (291) +123: LocalLoad(Ljava/lang/Object;,6) (294) +124: LocalLoad(I,4) (296) +125: ArrayLoad(C) (298) +126: Constant(I,10) (299) +127: ConditionalBranch(I,ne,130) (301) +128: Constant(I,1) (304) +129: Goto(131) (305) +130: Constant(I,0) (308) +131: LocalStore(I,12) (309) +132: LocalLoad(I,12) (311) +133: Constant(I,0) (313) +134: ConditionalBranch(I,eq,141) (313) +135: LocalLoad(Ljava/lang/Object;,0) (316) +136: Dup(1,0) (317) +137: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (318) +138: Constant(I,1) (321) +139: BinaryOp(I,sub) (322) +140: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (323) +141: Constant(I,-1) (326) +142: LocalStore(I,2) (327) +143: LocalLoad(Ljava/lang/Object;,0) (328) +144: LocalLoad(Ljava/lang/Object;,0) (329) +145: LocalLoad(I,4) (330) +146: Dup(1,1) (332) +147: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (333) +148: Dup(1,1) (336) +149: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (337) +150: LocalStore(I,3) (340) +151: LocalLoad(Ljava/lang/Object;,0) (341) +152: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_LEXSTATE) (342) +153: LocalLoad(Ljava/lang/Object;,0) (345) +154: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (346) +155: ArrayLoad(I) (349) +156: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (350) +157: LocalLoad(I,3) (353) +158: LocalLoad(I,5) (354) +159: ConditionalBranch(I,ge,169) (356) +160: LocalLoad(Ljava/lang/Object;,6) (359) +161: LocalLoad(I,3) (361) +162: LocalLoad(I,3) (362) +163: Constant(I,1) (362) +164: BinaryOp(I,add) (362) +165: LocalStore(I,3) (362) +166: ArrayLoad(C) (365) +167: LocalStore(I,1) (366) +168: Goto(211) (367) +169: LocalLoad(Ljava/lang/Object;,0) (370) +170: Get(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (371) +171: Constant(I,0) (374) +172: ConditionalBranch(I,eq,176) (374) +173: Constant(I,-1) (377) +174: LocalStore(I,1) (378) +175: Goto(251) (379) +176: LocalLoad(Ljava/lang/Object;,0) (382) +177: LocalLoad(I,3) (383) +178: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (384) +179: LocalLoad(Ljava/lang/Object;,0) (387) +180: LocalLoad(I,4) (388) +181: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (390) +182: LocalLoad(Ljava/lang/Object;,0) (393) +183: Invoke(SPECIAL,Ljava_cup/Lexer;,zzRefill,()Z) (394) +184: LocalStore(I,12) (397) +185: LocalLoad(Ljava/lang/Object;,0) (399) +186: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (400) +187: LocalStore(I,3) (403) +188: LocalLoad(Ljava/lang/Object;,0) (404) +189: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (405) +190: LocalStore(I,4) (408) +191: LocalLoad(Ljava/lang/Object;,0) (410) +192: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (411) +193: LocalStore(Ljava/lang/Object;,6) (414) +194: LocalLoad(Ljava/lang/Object;,0) (416) +195: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (417) +196: LocalStore(I,5) (420) +197: LocalLoad(I,12) (422) +198: Constant(I,0) (424) +199: ConditionalBranch(I,eq,203) (424) +200: Constant(I,-1) (427) +201: LocalStore(I,1) (428) +202: Goto(251) (429) +203: LocalLoad(Ljava/lang/Object;,6) (432) +204: LocalLoad(I,3) (434) +205: LocalLoad(I,3) (435) +206: Constant(I,1) (435) +207: BinaryOp(I,add) (435) +208: LocalStore(I,3) (435) +209: ArrayLoad(C) (438) +210: LocalStore(I,1) (439) +211: LocalLoad(Ljava/lang/Object;,8) (440) +212: LocalLoad(Ljava/lang/Object;,9) (442) +213: LocalLoad(Ljava/lang/Object;,0) (444) +214: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (445) +215: ArrayLoad(I) (448) +216: LocalLoad(Ljava/lang/Object;,7) (449) +217: LocalLoad(I,1) (451) +218: ArrayLoad(C) (452) +219: BinaryOp(I,add) (453) +220: ArrayLoad(I) (454) +221: LocalStore(I,12) (455) +222: LocalLoad(I,12) (457) +223: Constant(I,-1) (459) +224: ConditionalBranch(I,ne,226) (460) +225: Goto(251) (463) +226: LocalLoad(Ljava/lang/Object;,0) (466) +227: LocalLoad(I,12) (467) +228: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (469) +229: LocalLoad(Ljava/lang/Object;,10) (472) +230: LocalLoad(Ljava/lang/Object;,0) (474) +231: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (475) +232: ArrayLoad(I) (478) +233: LocalStore(I,13) (479) +234: LocalLoad(I,13) (481) +235: Constant(I,1) (483) +236: BinaryOp(I,and) (484) +237: Constant(I,1) (485) +238: ConditionalBranch(I,ne,250) (486) +239: LocalLoad(Ljava/lang/Object;,0) (489) +240: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (490) +241: LocalStore(I,2) (493) +242: LocalLoad(I,3) (494) +243: LocalStore(I,4) (495) +244: LocalLoad(I,13) (497) +245: Constant(I,8) (499) +246: BinaryOp(I,and) (501) +247: Constant(I,8) (502) +248: ConditionalBranch(I,ne,250) (504) +249: Goto(251) (507) +250: Goto(157) (510) +251: LocalLoad(Ljava/lang/Object;,0) (513) +252: LocalLoad(I,4) (514) +253: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (516) +254: LocalLoad(I,2) (519) +255: Constant(I,0) (520) +256: ConditionalBranch(I,ge,259) (520) +257: LocalLoad(I,2) (523) +258: Goto(262) (524) +259: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_ACTION) (527) +260: LocalLoad(I,2) (530) +261: ArrayLoad(I) (531) +262: Switch(540,1,519,2,539,3,495,4,399,5,293,6,269,7,477,8,413,9,287,10,281,11,344,12,374,13,407,14,275,15,380,16,323,17,443,18,317,19,299,20,533,21,501,22,437,23,483,24,507,25,513,26,350,27,431,28,362,29,356,30,387,31,393,32,368,33,425,34,305,35,311,36,419,37,263,38,489,39,268,40,274,41,280,42,286,43,292,44,298,45,304,46,310,47,316,48,322,49,343,50,349,51,355,52,361,53,367,54,373,55,379,56,386,57,392,58,398,59,406,60,412,61,418,62,424,63,430,64,436,65,442,66,476,67,482,68,488,69,494,70,500,71,506,72,512,73,518,74,532,75,538,76,539) (532) +263: LocalLoad(Ljava/lang/Object;,0) (852) +264: Constant(Ljava/lang/String;,"PRECEDENCE") (853) +265: Constant(I,20) (855) +266: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (857) +267: Return(Ljava/lang/Object;) (860) +268: Goto(562) (861) +269: LocalLoad(Ljava/lang/Object;,0) (864) +270: Constant(Ljava/lang/String;,"SEMI") (865) +271: Constant(I,13) (867) +272: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (869) +273: Return(Ljava/lang/Object;) (872) +274: Goto(562) (873) +275: LocalLoad(Ljava/lang/Object;,0) (876) +276: Constant(Ljava/lang/String;,"LT") (877) +277: Constant(I,29) (879) +278: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (881) +279: Return(Ljava/lang/Object;) (884) +280: Goto(562) (885) +281: LocalLoad(Ljava/lang/Object;,0) (888) +282: Constant(Ljava/lang/String;,"LBRACK") (889) +283: Constant(I,25) (891) +284: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (893) +285: Return(Ljava/lang/Object;) (896) +286: Goto(562) (897) +287: LocalLoad(Ljava/lang/Object;,0) (900) +288: Constant(Ljava/lang/String;,"BAR") (901) +289: Constant(I,19) (903) +290: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (905) +291: Return(Ljava/lang/Object;) (908) +292: Goto(562) (909) +293: LocalLoad(Ljava/lang/Object;,0) (912) +294: Constant(Ljava/lang/String;,"QESTION") (913) +295: Constant(I,30) (915) +296: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (917) +297: Return(Ljava/lang/Object;) (920) +298: Goto(562) (921) +299: LocalLoad(Ljava/lang/Object;,0) (924) +300: Constant(Ljava/lang/String;,"NON") (925) +301: Constant(I,8) (927) +302: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (929) +303: Return(Ljava/lang/Object;) (932) +304: Goto(562) (933) +305: LocalLoad(Ljava/lang/Object;,0) (936) +306: Constant(Ljava/lang/String;,"EXTENDS") (937) +307: Constant(I,32) (939) +308: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (941) +309: Return(Ljava/lang/Object;) (944) +310: Goto(562) (945) +311: LocalLoad(Ljava/lang/Object;,0) (948) +312: Constant(Ljava/lang/String;,"PARSER") (949) +313: Constant(I,7) (951) +314: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (953) +315: Return(Ljava/lang/Object;) (956) +316: Goto(562) (957) +317: LocalLoad(Ljava/lang/Object;,0) (960) +318: Constant(Ljava/lang/String;,"COLON_COLON_EQUALS") (961) +319: Constant(I,18) (963) +320: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (965) +321: Return(Ljava/lang/Object;) (968) +322: Goto(562) (969) +323: LocalLoad(Ljava/lang/Object;,0) (972) +324: New(Ljava/lang/StringBuffer;,0) (973) +325: Dup(1,0) (976) +326: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,()V) (977) +327: Put(Ljava/lang/StringBuffer;,NONSTATIC,Ljava_cup/Lexer;,sb) (980) +328: LocalLoad(Ljava/lang/Object;,0) (983) +329: LocalLoad(Ljava/lang/Object;,0) (984) +330: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (985) +331: Constant(I,1) (988) +332: BinaryOp(I,add) (989) +333: Put(I,NONSTATIC,Ljava_cup/Lexer;,csline) (990) +334: LocalLoad(Ljava/lang/Object;,0) (993) +335: LocalLoad(Ljava/lang/Object;,0) (994) +336: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (995) +337: Constant(I,1) (998) +338: BinaryOp(I,add) (999) +339: Put(I,NONSTATIC,Ljava_cup/Lexer;,cscolumn) (1000) +340: LocalLoad(Ljava/lang/Object;,0) (1003) +341: Constant(I,2) (1004) +342: Invoke(VIRTUAL,Ljava_cup/Lexer;,yybegin,(I)V) (1005) +343: Goto(562) (1008) +344: LocalLoad(Ljava/lang/Object;,0) (1011) +345: Constant(Ljava/lang/String;,"RBRACK") (1012) +346: Constant(I,26) (1014) +347: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1016) +348: Return(Ljava/lang/Object;) (1019) +349: Goto(562) (1020) +350: LocalLoad(Ljava/lang/Object;,0) (1023) +351: Constant(Ljava/lang/String;,"RIGHT") (1024) +352: Constant(I,22) (1026) +353: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1028) +354: Return(Ljava/lang/Object;) (1031) +355: Goto(562) (1032) +356: LocalLoad(Ljava/lang/Object;,0) (1035) +357: Constant(Ljava/lang/String;,"SUPER") (1036) +358: Constant(I,31) (1038) +359: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1040) +360: Return(Ljava/lang/Object;) (1043) +361: Goto(562) (1044) +362: LocalLoad(Ljava/lang/Object;,0) (1047) +363: Constant(Ljava/lang/String;,"START") (1048) +364: Constant(I,12) (1050) +365: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1052) +366: Return(Ljava/lang/Object;) (1055) +367: Goto(562) (1056) +368: LocalLoad(Ljava/lang/Object;,0) (1059) +369: Constant(Ljava/lang/String;,"IMPORT") (1060) +370: Constant(I,3) (1062) +371: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1063) +372: Return(Ljava/lang/Object;) (1066) +373: Goto(562) (1067) +374: LocalLoad(Ljava/lang/Object;,0) (1070) +375: Constant(Ljava/lang/String;,"COLON") (1071) +376: Constant(I,17) (1073) +377: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1075) +378: Return(Ljava/lang/Object;) (1078) +379: Goto(562) (1079) +380: LocalLoad(Ljava/lang/Object;,0) (1082) +381: Get(Ljava/lang/StringBuffer;,NONSTATIC,Ljava_cup/Lexer;,sb) (1083) +382: LocalLoad(Ljava/lang/Object;,0) (1086) +383: Invoke(VIRTUAL,Ljava_cup/Lexer;,yytext,()Ljava/lang/String;) (1087) +384: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (1090) +385: Pop(1) (1093) +386: Goto(562) (1094) +387: LocalLoad(Ljava/lang/Object;,0) (1097) +388: Constant(Ljava/lang/String;,"PARSER") (1098) +389: Constant(I,6) (1100) +390: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1102) +391: Return(Ljava/lang/Object;) (1105) +392: Goto(562) (1106) +393: LocalLoad(Ljava/lang/Object;,0) (1109) +394: Constant(Ljava/lang/String;,"ACTION") (1110) +395: Constant(I,5) (1112) +396: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1113) +397: Return(Ljava/lang/Object;) (1116) +398: Goto(562) (1117) +399: LocalLoad(Ljava/lang/Object;,0) (1120) +400: Constant(Ljava/lang/String;,"ID") (1121) +401: Constant(I,34) (1123) +402: LocalLoad(Ljava/lang/Object;,0) (1125) +403: Invoke(VIRTUAL,Ljava_cup/Lexer;,yytext,()Ljava/lang/String;) (1126) +404: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;ILjava/lang/String;)Ljava_cup/runtime/Symbol;) (1129) +405: Return(Ljava/lang/Object;) (1132) +406: Goto(562) (1133) +407: LocalLoad(Ljava/lang/Object;,0) (1136) +408: Constant(Ljava/lang/String;,"GT") (1137) +409: Constant(I,28) (1139) +410: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1141) +411: Return(Ljava/lang/Object;) (1144) +412: Goto(562) (1145) +413: LocalLoad(Ljava/lang/Object;,0) (1148) +414: Constant(Ljava/lang/String;,"DOT") (1149) +415: Constant(I,16) (1151) +416: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1153) +417: Return(Ljava/lang/Object;) (1156) +418: Goto(562) (1157) +419: LocalLoad(Ljava/lang/Object;,0) (1160) +420: Constant(Ljava/lang/String;,"NONASSOC") (1161) +421: Constant(I,23) (1163) +422: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1165) +423: Return(Ljava/lang/Object;) (1168) +424: Goto(562) (1169) +425: LocalLoad(Ljava/lang/Object;,0) (1172) +426: Constant(Ljava/lang/String;,"PACKAGE") (1173) +427: Constant(I,2) (1175) +428: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1176) +429: Return(Ljava/lang/Object;) (1179) +430: Goto(562) (1180) +431: LocalLoad(Ljava/lang/Object;,0) (1183) +432: Constant(Ljava/lang/String;,"CLASS") (1184) +433: Constant(I,33) (1186) +434: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1188) +435: Return(Ljava/lang/Object;) (1191) +436: Goto(562) (1192) +437: LocalLoad(Ljava/lang/Object;,0) (1195) +438: Constant(Ljava/lang/String;,"LEFT") (1196) +439: Constant(I,21) (1198) +440: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1200) +441: Return(Ljava/lang/Object;) (1203) +442: Goto(562) (1204) +443: LocalLoad(Ljava/lang/Object;,0) (1207) +444: Constant(I,0) (1208) +445: Invoke(VIRTUAL,Ljava_cup/Lexer;,yybegin,(I)V) (1209) +446: LocalLoad(Ljava/lang/Object;,0) (1212) +447: Get(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (1213) +448: Constant(Ljava/lang/String;,"CODE_STRING") (1216) +449: Constant(I,35) (1218) +450: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (1220) +451: Dup(1,0) (1223) +452: LocalLoad(Ljava/lang/Object;,0) (1224) +453: Get(I,NONSTATIC,Ljava_cup/Lexer;,csline) (1225) +454: LocalLoad(Ljava/lang/Object;,0) (1228) +455: Get(I,NONSTATIC,Ljava_cup/Lexer;,cscolumn) (1229) +456: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (1232) +457: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (1235) +458: Dup(1,0) (1238) +459: LocalLoad(Ljava/lang/Object;,0) (1239) +460: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (1240) +461: Constant(I,1) (1243) +462: BinaryOp(I,add) (1244) +463: LocalLoad(Ljava/lang/Object;,0) (1245) +464: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (1246) +465: Constant(I,1) (1249) +466: BinaryOp(I,add) (1250) +467: LocalLoad(Ljava/lang/Object;,0) (1251) +468: Invoke(VIRTUAL,Ljava_cup/Lexer;,yylength,()I) (1252) +469: BinaryOp(I,add) (1255) +470: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (1256) +471: LocalLoad(Ljava/lang/Object;,0) (1259) +472: Get(Ljava/lang/StringBuffer;,NONSTATIC,Ljava_cup/Lexer;,sb) (1260) +473: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,toString,()Ljava/lang/String;) (1263) +474: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1266) +475: Return(Ljava/lang/Object;) (1269) +476: Goto(562) (1270) +477: LocalLoad(Ljava/lang/Object;,0) (1273) +478: Constant(Ljava/lang/String;,"COMMA") (1274) +479: Constant(I,14) (1276) +480: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1278) +481: Return(Ljava/lang/Object;) (1281) +482: Goto(562) (1282) +483: LocalLoad(Ljava/lang/Object;,0) (1285) +484: Constant(Ljava/lang/String;,"SCAN") (1286) +485: Constant(I,10) (1288) +486: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1290) +487: Return(Ljava/lang/Object;) (1293) +488: Goto(562) (1294) +489: LocalLoad(Ljava/lang/Object;,0) (1297) +490: Constant(Ljava/lang/String;,"NONTERMINAL") (1298) +491: Constant(I,27) (1300) +492: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1302) +493: Return(Ljava/lang/Object;) (1305) +494: Goto(562) (1306) +495: LocalLoad(Ljava/lang/Object;,0) (1309) +496: Constant(Ljava/lang/String;,"STAR") (1310) +497: Constant(I,15) (1312) +498: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1314) +499: Return(Ljava/lang/Object;) (1317) +500: Goto(562) (1318) +501: LocalLoad(Ljava/lang/Object;,0) (1321) +502: Constant(Ljava/lang/String;,"INIT") (1322) +503: Constant(I,9) (1324) +504: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1326) +505: Return(Ljava/lang/Object;) (1329) +506: Goto(562) (1330) +507: LocalLoad(Ljava/lang/Object;,0) (1333) +508: Constant(Ljava/lang/String;,"WITH") (1334) +509: Constant(I,11) (1336) +510: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1338) +511: Return(Ljava/lang/Object;) (1341) +512: Goto(562) (1342) +513: LocalLoad(Ljava/lang/Object;,0) (1345) +514: Constant(Ljava/lang/String;,"PERCENT_PREC") (1346) +515: Constant(I,24) (1348) +516: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1350) +517: Return(Ljava/lang/Object;) (1353) +518: Goto(562) (1354) +519: LocalLoad(Ljava/lang/Object;,0) (1357) +520: New(Ljava/lang/StringBuilder;,0) (1358) +521: Dup(1,0) (1361) +522: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1362) +523: Constant(Ljava/lang/String;,"Unrecognized character '") (1365) +524: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1367) +525: LocalLoad(Ljava/lang/Object;,0) (1370) +526: Invoke(VIRTUAL,Ljava_cup/Lexer;,yytext,()Ljava/lang/String;) (1371) +527: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1374) +528: Constant(Ljava/lang/String;,"' -- ignored") (1377) +529: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1379) +530: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1382) +531: Invoke(VIRTUAL,Ljava_cup/Lexer;,emit_warning,(Ljava/lang/String;)V) (1385) +532: Goto(562) (1388) +533: LocalLoad(Ljava/lang/Object;,0) (1391) +534: Constant(Ljava/lang/String;,"CODE") (1392) +535: Constant(I,4) (1394) +536: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1395) +537: Return(Ljava/lang/Object;) (1398) +538: Goto(562) (1399) +539: Goto(562) (1402) +540: LocalLoad(I,1) (1405) +541: Constant(I,-1) (1406) +542: ConditionalBranch(I,ne,559) (1407) +543: LocalLoad(Ljava/lang/Object;,0) (1410) +544: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (1411) +545: LocalLoad(Ljava/lang/Object;,0) (1414) +546: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (1415) +547: ConditionalBranch(I,ne,559) (1418) +548: LocalLoad(Ljava/lang/Object;,0) (1421) +549: Constant(I,1) (1422) +550: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (1423) +551: LocalLoad(Ljava/lang/Object;,0) (1426) +552: Invoke(SPECIAL,Ljava_cup/Lexer;,zzDoEOF,()V) (1427) +553: LocalLoad(Ljava/lang/Object;,0) (1430) +554: Get(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (1431) +555: Constant(Ljava/lang/String;,"EOF") (1434) +556: Constant(I,0) (1436) +557: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory;,newSymbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1437) +558: Return(Ljava/lang/Object;) (1440) +559: LocalLoad(Ljava/lang/Object;,0) (1441) +560: Constant(I,1) (1442) +561: Invoke(SPECIAL,Ljava_cup/Lexer;,zzScanError,(I)V) (1443) +562: Goto(14) (1446) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 742 +5: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (1) + Handles null at 742 +6: LocalStore(I,5) (4) + Handles null at 742 +7: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 742 +8: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (7) + Handles null at 742 +9: LocalStore(Ljava/lang/Object;,6) (10) + Handles null at 742 +10: Get([C,STATIC,Ljava_cup/Lexer;,ZZ_CMAP) (12) + Handles null at 742 +11: LocalStore(Ljava/lang/Object;,7) (15) + Handles null at 742 +12: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_TRANS) (17) + Handles null at 742 +13: LocalStore(Ljava/lang/Object;,8) (20) + Handles null at 742 +14: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_ROWMAP) (22) + Handles null at 742 +15: LocalStore(Ljava/lang/Object;,9) (25) + Handles null at 742 +16: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_ATTRIBUTE) (27) + Handles null at 742 +17: LocalStore(Ljava/lang/Object;,10) (30) + Handles null at 742 +18: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 742 +19: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (33) + Handles null at 742 +20: LocalStore(I,4) (36) + Handles null at 742 +21: Constant(I,0) (38) + Handles null at 742 +22: LocalStore(I,11) (39) + Handles null at 742 +23: LocalLoad(Ljava/lang/Object;,0) (41) + Handles null at 742 +24: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (42) + Handles null at 742 +25: LocalStore(I,3) (45) + Handles null at 742 +26: LocalLoad(I,3) (46) + Handles null at 742 +27: LocalLoad(I,4) (47) + Handles null at 742 +28: ConditionalBranch(I,ge,86) (49) + Handles null at 742 +29: LocalLoad(Ljava/lang/Object;,6) (52) + Handles null at 742 +30: LocalLoad(I,3) (54) + Handles null at 742 +31: ArrayLoad(C) (55) + Handles null at 742 +32: Switch(73,10,57,11,33,12,33,13,45,133,33,8232,33,8233,33) (56) + Handles null at 742 +33: LocalLoad(Ljava/lang/Object;,0) (124) + Handles null at 742 +34: Dup(1,0) (125) + Handles null at 742 +35: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (126) + Handles null at 742 +36: Constant(I,1) (129) + Handles null at 742 +37: BinaryOp(I,add) (130) + Handles null at 742 +38: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (131) + Handles null at 742 +39: LocalLoad(Ljava/lang/Object;,0) (134) + Handles null at 742 +40: Constant(I,0) (135) + Handles null at 742 +41: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (136) + Handles null at 742 +42: Constant(I,0) (139) + Handles null at 742 +43: LocalStore(I,11) (140) + Handles null at 742 +44: Goto(81) (142) + Handles null at 742 +45: LocalLoad(Ljava/lang/Object;,0) (145) + Handles null at 742 +46: Dup(1,0) (146) + Handles null at 742 +47: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (147) + Handles null at 742 +48: Constant(I,1) (150) + Handles null at 742 +49: BinaryOp(I,add) (151) + Handles null at 742 +50: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (152) + Handles null at 742 +51: LocalLoad(Ljava/lang/Object;,0) (155) + Handles null at 742 +52: Constant(I,0) (156) + Handles null at 742 +53: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (157) + Handles null at 742 +54: Constant(I,1) (160) + Handles null at 742 +55: LocalStore(I,11) (161) + Handles null at 742 +56: Goto(81) (163) + Handles null at 742 +57: LocalLoad(I,11) (166) + Handles null at 742 +58: Constant(I,0) (168) + Handles null at 742 +59: ConditionalBranch(I,eq,63) (168) + Handles null at 742 +60: Constant(I,0) (171) + Handles null at 742 +61: LocalStore(I,11) (172) + Handles null at 742 +62: Goto(81) (174) + Handles null at 742 +63: LocalLoad(Ljava/lang/Object;,0) (177) + Handles null at 742 +64: Dup(1,0) (178) + Handles null at 742 +65: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (179) + Handles null at 742 +66: Constant(I,1) (182) + Handles null at 742 +67: BinaryOp(I,add) (183) + Handles null at 742 +68: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (184) + Handles null at 742 +69: LocalLoad(Ljava/lang/Object;,0) (187) + Handles null at 742 +70: Constant(I,0) (188) + Handles null at 742 +71: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (189) + Handles null at 742 +72: Goto(81) (192) + Handles null at 742 +73: Constant(I,0) (195) + Handles null at 742 +74: LocalStore(I,11) (196) + Handles null at 742 +75: LocalLoad(Ljava/lang/Object;,0) (198) + Handles null at 742 +76: Dup(1,0) (199) + Handles null at 742 +77: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (200) + Handles null at 742 +78: Constant(I,1) (203) + Handles null at 742 +79: BinaryOp(I,add) (204) + Handles null at 742 +80: Put(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (205) + Handles null at 742 +81: LocalLoad(I,3) (208) + Handles null at 742 +82: Constant(I,1) (208) + Handles null at 742 +83: BinaryOp(I,add) (208) + Handles null at 742 +84: LocalStore(I,3) (208) + Handles null at 742 +85: Goto(26) (211) + Handles null at 742 +86: LocalLoad(I,11) (214) + Handles null at 742 +87: Constant(I,0) (216) + Handles null at 742 +88: ConditionalBranch(I,eq,145) (216) + Handles null at 742 +89: LocalLoad(I,4) (219) + Handles null at 742 +90: LocalLoad(I,5) (221) + Handles null at 742 +91: ConditionalBranch(I,ge,102) (223) + Handles null at 742 +92: LocalLoad(Ljava/lang/Object;,6) (226) + Handles null at 742 +93: LocalLoad(I,4) (228) + Handles null at 742 +94: ArrayLoad(C) (230) + Handles null at 742 +95: Constant(I,10) (231) + Handles null at 742 +96: ConditionalBranch(I,ne,99) (233) + Handles null at 742 +97: Constant(I,1) (236) + Handles null at 742 +98: Goto(100) (237) + Handles null at 742 +99: Constant(I,0) (240) + Handles null at 742 +100: LocalStore(I,12) (241) + Handles null at 742 +101: Goto(136) (243) + Handles null at 742 +102: LocalLoad(Ljava/lang/Object;,0) (246) + Handles null at 742 +103: Get(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (247) + Handles null at 742 +104: Constant(I,0) (250) + Handles null at 742 +105: ConditionalBranch(I,eq,109) (250) + Handles null at 742 +106: Constant(I,0) (253) + Handles null at 742 +107: LocalStore(I,12) (254) + Handles null at 742 +108: Goto(136) (256) + Handles null at 742 +109: LocalLoad(Ljava/lang/Object;,0) (259) + Handles null at 742 +110: Invoke(SPECIAL,Ljava_cup/Lexer;,zzRefill,()Z) (260) + Handles null at 742 +111: LocalStore(I,13) (263) + Handles null at 742 +112: LocalLoad(Ljava/lang/Object;,0) (265) + Handles null at 742 +113: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (266) + Handles null at 742 +114: LocalStore(I,5) (269) + Handles null at 742 +115: LocalLoad(Ljava/lang/Object;,0) (271) + Handles null at 742 +116: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (272) + Handles null at 742 +117: LocalStore(I,4) (275) + Handles null at 742 +118: LocalLoad(Ljava/lang/Object;,0) (277) + Handles null at 742 +119: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (278) + Handles null at 742 +120: LocalStore(Ljava/lang/Object;,6) (281) + Handles null at 742 +121: LocalLoad(I,13) (283) + Handles null at 742 +122: Constant(I,0) (285) + Handles null at 742 +123: ConditionalBranch(I,eq,127) (285) + Handles null at 742 +124: Constant(I,0) (288) + Handles null at 742 +125: LocalStore(I,12) (289) + Handles null at 742 +126: Goto(136) (291) + Handles null at 742 +127: LocalLoad(Ljava/lang/Object;,6) (294) + Handles null at 742 +128: LocalLoad(I,4) (296) + Handles null at 742 +129: ArrayLoad(C) (298) + Handles null at 742 +130: Constant(I,10) (299) + Handles null at 742 +131: ConditionalBranch(I,ne,134) (301) + Handles null at 742 +132: Constant(I,1) (304) + Handles null at 742 +133: Goto(135) (305) + Handles null at 742 +134: Constant(I,0) (308) + Handles null at 742 +135: LocalStore(I,12) (309) + Handles null at 742 +136: LocalLoad(I,12) (311) + Handles null at 742 +137: Constant(I,0) (313) + Handles null at 742 +138: ConditionalBranch(I,eq,145) (313) + Handles null at 742 +139: LocalLoad(Ljava/lang/Object;,0) (316) + Handles null at 742 +140: Dup(1,0) (317) + Handles null at 742 +141: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (318) + Handles null at 742 +142: Constant(I,1) (321) + Handles null at 742 +143: BinaryOp(I,sub) (322) + Handles null at 742 +144: Put(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (323) + Handles null at 742 +145: Constant(I,-1) (326) + Handles null at 742 +146: LocalStore(I,2) (327) + Handles null at 742 +147: LocalLoad(Ljava/lang/Object;,0) (328) + Handles null at 742 +148: LocalLoad(Ljava/lang/Object;,0) (329) + Handles null at 742 +149: LocalLoad(I,4) (330) + Handles null at 742 +150: Dup(1,1) (332) + Handles null at 742 +151: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (333) + Handles null at 742 +152: Dup(1,1) (336) + Handles null at 742 +153: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (337) + Handles null at 742 +154: LocalStore(I,3) (340) + Handles null at 742 +155: LocalLoad(Ljava/lang/Object;,0) (341) + Handles null at 742 +156: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_LEXSTATE) (342) + Handles null at 742 +157: LocalLoad(Ljava/lang/Object;,0) (345) + Handles null at 742 +158: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzLexicalState) (346) + Handles null at 742 +159: ArrayLoad(I) (349) + Handles null at 742 +160: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (350) + Handles null at 742 +161: LocalLoad(I,3) (353) + Handles null at 742 +162: LocalLoad(I,5) (354) + Handles null at 742 +163: ConditionalBranch(I,ge,173) (356) + Handles null at 742 +164: LocalLoad(Ljava/lang/Object;,6) (359) + Handles null at 742 +165: LocalLoad(I,3) (361) + Handles null at 742 +166: LocalLoad(I,3) (362) + Handles null at 742 +167: Constant(I,1) (362) + Handles null at 742 +168: BinaryOp(I,add) (362) + Handles null at 742 +169: LocalStore(I,3) (362) + Handles null at 742 +170: ArrayLoad(C) (365) + Handles null at 742 +171: LocalStore(I,1) (366) + Handles null at 742 +172: Goto(215) (367) + Handles null at 742 +173: LocalLoad(Ljava/lang/Object;,0) (370) + Handles null at 742 +174: Get(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (371) + Handles null at 742 +175: Constant(I,0) (374) + Handles null at 742 +176: ConditionalBranch(I,eq,180) (374) + Handles null at 742 +177: Constant(I,-1) (377) + Handles null at 742 +178: LocalStore(I,1) (378) + Handles null at 742 +179: Goto(255) (379) + Handles null at 742 +180: LocalLoad(Ljava/lang/Object;,0) (382) + Handles null at 742 +181: LocalLoad(I,3) (383) + Handles null at 742 +182: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (384) + Handles null at 742 +183: LocalLoad(Ljava/lang/Object;,0) (387) + Handles null at 742 +184: LocalLoad(I,4) (388) + Handles null at 742 +185: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (390) + Handles null at 742 +186: LocalLoad(Ljava/lang/Object;,0) (393) + Handles null at 742 +187: Invoke(SPECIAL,Ljava_cup/Lexer;,zzRefill,()Z) (394) + Handles null at 742 +188: LocalStore(I,12) (397) + Handles null at 742 +189: LocalLoad(Ljava/lang/Object;,0) (399) + Handles null at 742 +190: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (400) + Handles null at 742 +191: LocalStore(I,3) (403) + Handles null at 742 +192: LocalLoad(Ljava/lang/Object;,0) (404) + Handles null at 742 +193: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (405) + Handles null at 742 +194: LocalStore(I,4) (408) + Handles null at 742 +195: LocalLoad(Ljava/lang/Object;,0) (410) + Handles null at 742 +196: Get([C,NONSTATIC,Ljava_cup/Lexer;,zzBuffer) (411) + Handles null at 742 +197: LocalStore(Ljava/lang/Object;,6) (414) + Handles null at 742 +198: LocalLoad(Ljava/lang/Object;,0) (416) + Handles null at 742 +199: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzEndRead) (417) + Handles null at 742 +200: LocalStore(I,5) (420) + Handles null at 742 +201: LocalLoad(I,12) (422) + Handles null at 742 +202: Constant(I,0) (424) + Handles null at 742 +203: ConditionalBranch(I,eq,207) (424) + Handles null at 742 +204: Constant(I,-1) (427) + Handles null at 742 +205: LocalStore(I,1) (428) + Handles null at 742 +206: Goto(255) (429) + Handles null at 742 +207: LocalLoad(Ljava/lang/Object;,6) (432) + Handles null at 742 +208: LocalLoad(I,3) (434) + Handles null at 742 +209: LocalLoad(I,3) (435) + Handles null at 742 +210: Constant(I,1) (435) + Handles null at 742 +211: BinaryOp(I,add) (435) + Handles null at 742 +212: LocalStore(I,3) (435) + Handles null at 742 +213: ArrayLoad(C) (438) + Handles null at 742 +214: LocalStore(I,1) (439) + Handles null at 742 +215: LocalLoad(Ljava/lang/Object;,8) (440) + Handles null at 742 +216: LocalLoad(Ljava/lang/Object;,9) (442) + Handles null at 742 +217: LocalLoad(Ljava/lang/Object;,0) (444) + Handles null at 742 +218: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (445) + Handles null at 742 +219: ArrayLoad(I) (448) + Handles null at 742 +220: LocalLoad(Ljava/lang/Object;,7) (449) + Handles null at 742 +221: LocalLoad(I,1) (451) + Handles null at 742 +222: ArrayLoad(C) (452) + Handles null at 742 +223: BinaryOp(I,add) (453) + Handles null at 742 +224: ArrayLoad(I) (454) + Handles null at 742 +225: LocalStore(I,12) (455) + Handles null at 742 +226: LocalLoad(I,12) (457) + Handles null at 742 +227: Constant(I,-1) (459) + Handles null at 742 +228: ConditionalBranch(I,ne,230) (460) + Handles null at 742 +229: Goto(255) (463) + Handles null at 742 +230: LocalLoad(Ljava/lang/Object;,0) (466) + Handles null at 742 +231: LocalLoad(I,12) (467) + Handles null at 742 +232: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (469) + Handles null at 742 +233: LocalLoad(Ljava/lang/Object;,10) (472) + Handles null at 742 +234: LocalLoad(Ljava/lang/Object;,0) (474) + Handles null at 742 +235: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (475) + Handles null at 742 +236: ArrayLoad(I) (478) + Handles null at 742 +237: LocalStore(I,13) (479) + Handles null at 742 +238: LocalLoad(I,13) (481) + Handles null at 742 +239: Constant(I,1) (483) + Handles null at 742 +240: BinaryOp(I,and) (484) + Handles null at 742 +241: Constant(I,1) (485) + Handles null at 742 +242: ConditionalBranch(I,ne,254) (486) + Handles null at 742 +243: LocalLoad(Ljava/lang/Object;,0) (489) + Handles null at 742 +244: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzState) (490) + Handles null at 742 +245: LocalStore(I,2) (493) + Handles null at 742 +246: LocalLoad(I,3) (494) + Handles null at 742 +247: LocalStore(I,4) (495) + Handles null at 742 +248: LocalLoad(I,13) (497) + Handles null at 742 +249: Constant(I,8) (499) + Handles null at 742 +250: BinaryOp(I,and) (501) + Handles null at 742 +251: Constant(I,8) (502) + Handles null at 742 +252: ConditionalBranch(I,ne,254) (504) + Handles null at 742 +253: Goto(255) (507) + Handles null at 742 +254: Goto(161) (510) + Handles null at 742 +255: LocalLoad(Ljava/lang/Object;,0) (513) + Handles null at 742 +256: LocalLoad(I,4) (514) + Handles null at 742 +257: Put(I,NONSTATIC,Ljava_cup/Lexer;,zzMarkedPos) (516) + Handles null at 742 +258: LocalLoad(I,2) (519) + Handles null at 742 +259: Constant(I,0) (520) + Handles null at 742 +260: ConditionalBranch(I,ge,263) (520) + Handles null at 742 +261: LocalLoad(I,2) (523) + Handles null at 742 +262: Goto(266) (524) + Handles null at 742 +263: Get([I,STATIC,Ljava_cup/Lexer;,ZZ_ACTION) (527) + Handles null at 742 +264: LocalLoad(I,2) (530) + Handles null at 742 +265: ArrayLoad(I) (531) + Handles null at 742 +266: Switch(714,1,688,2,713,3,644,4,493,5,322,6,278,7,611,8,517,9,311,10,300,11,398,12,453,13,506,14,289,15,464,16,377,17,572,18,366,19,333,20,702,21,655,22,561,23,622,24,666,25,677,26,409,27,550,28,431,29,420,30,471,31,482,32,442,33,539,34,344,35,355,36,528,37,267,38,633,39,277,40,288,41,299,42,310,43,321,44,332,45,343,46,354,47,365,48,376,49,397,50,408,51,419,52,430,53,441,54,452,55,463,56,470,57,481,58,492,59,505,60,516,61,527,62,538,63,549,64,560,65,571,66,610,67,621,68,632,69,643,70,654,71,665,72,676,73,687,74,701,75,712,76,713) (532) + Handles null at 742 +267: LocalLoad(Ljava/lang/Object;,0) (852) + Handles null at 742 +268: Constant(Ljava/lang/String;,"PRECEDENCE") (853) + Handles null at 742 +269: Constant(I,20) (855) + Handles null at 742 +270: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (857) + Handles null at 742 +271: Constant(Ljava/lang/String;,"java_cup/Lexer") (860) + Handles null at 742 +272: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (860) + Handles null at 742 +273: LocalLoad(Ljava/lang/Object;,0) (860) + Handles null at 742 +274: Constant(I,0) (860) + Handles null at 742 +275: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (860) + Handles null at 742 +276: Return(Ljava/lang/Object;) (860) + Handles null at 742 +277: Goto(741) (861) + Handles null at 742 +278: LocalLoad(Ljava/lang/Object;,0) (864) + Handles null at 742 +279: Constant(Ljava/lang/String;,"SEMI") (865) + Handles null at 742 +280: Constant(I,13) (867) + Handles null at 742 +281: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (869) + Handles null at 742 +282: Constant(Ljava/lang/String;,"java_cup/Lexer") (872) + Handles null at 742 +283: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (872) + Handles null at 742 +284: LocalLoad(Ljava/lang/Object;,0) (872) + Handles null at 742 +285: Constant(I,0) (872) + Handles null at 742 +286: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (872) + Handles null at 742 +287: Return(Ljava/lang/Object;) (872) + Handles null at 742 +288: Goto(741) (873) + Handles null at 742 +289: LocalLoad(Ljava/lang/Object;,0) (876) + Handles null at 742 +290: Constant(Ljava/lang/String;,"LT") (877) + Handles null at 742 +291: Constant(I,29) (879) + Handles null at 742 +292: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (881) + Handles null at 742 +293: Constant(Ljava/lang/String;,"java_cup/Lexer") (884) + Handles null at 742 +294: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (884) + Handles null at 742 +295: LocalLoad(Ljava/lang/Object;,0) (884) + Handles null at 742 +296: Constant(I,0) (884) + Handles null at 742 +297: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (884) + Handles null at 742 +298: Return(Ljava/lang/Object;) (884) + Handles null at 742 +299: Goto(741) (885) + Handles null at 742 +300: LocalLoad(Ljava/lang/Object;,0) (888) + Handles null at 742 +301: Constant(Ljava/lang/String;,"LBRACK") (889) + Handles null at 742 +302: Constant(I,25) (891) + Handles null at 742 +303: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (893) + Handles null at 742 +304: Constant(Ljava/lang/String;,"java_cup/Lexer") (896) + Handles null at 742 +305: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (896) + Handles null at 742 +306: LocalLoad(Ljava/lang/Object;,0) (896) + Handles null at 742 +307: Constant(I,0) (896) + Handles null at 742 +308: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (896) + Handles null at 742 +309: Return(Ljava/lang/Object;) (896) + Handles null at 742 +310: Goto(741) (897) + Handles null at 742 +311: LocalLoad(Ljava/lang/Object;,0) (900) + Handles null at 742 +312: Constant(Ljava/lang/String;,"BAR") (901) + Handles null at 742 +313: Constant(I,19) (903) + Handles null at 742 +314: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (905) + Handles null at 742 +315: Constant(Ljava/lang/String;,"java_cup/Lexer") (908) + Handles null at 742 +316: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (908) + Handles null at 742 +317: LocalLoad(Ljava/lang/Object;,0) (908) + Handles null at 742 +318: Constant(I,0) (908) + Handles null at 742 +319: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (908) + Handles null at 742 +320: Return(Ljava/lang/Object;) (908) + Handles null at 742 +321: Goto(741) (909) + Handles null at 742 +322: LocalLoad(Ljava/lang/Object;,0) (912) + Handles null at 742 +323: Constant(Ljava/lang/String;,"QESTION") (913) + Handles null at 742 +324: Constant(I,30) (915) + Handles null at 742 +325: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (917) + Handles null at 742 +326: Constant(Ljava/lang/String;,"java_cup/Lexer") (920) + Handles null at 742 +327: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (920) + Handles null at 742 +328: LocalLoad(Ljava/lang/Object;,0) (920) + Handles null at 742 +329: Constant(I,0) (920) + Handles null at 742 +330: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (920) + Handles null at 742 +331: Return(Ljava/lang/Object;) (920) + Handles null at 742 +332: Goto(741) (921) + Handles null at 742 +333: LocalLoad(Ljava/lang/Object;,0) (924) + Handles null at 742 +334: Constant(Ljava/lang/String;,"NON") (925) + Handles null at 742 +335: Constant(I,8) (927) + Handles null at 742 +336: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (929) + Handles null at 742 +337: Constant(Ljava/lang/String;,"java_cup/Lexer") (932) + Handles null at 742 +338: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (932) + Handles null at 742 +339: LocalLoad(Ljava/lang/Object;,0) (932) + Handles null at 742 +340: Constant(I,0) (932) + Handles null at 742 +341: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (932) + Handles null at 742 +342: Return(Ljava/lang/Object;) (932) + Handles null at 742 +343: Goto(741) (933) + Handles null at 742 +344: LocalLoad(Ljava/lang/Object;,0) (936) + Handles null at 742 +345: Constant(Ljava/lang/String;,"EXTENDS") (937) + Handles null at 742 +346: Constant(I,32) (939) + Handles null at 742 +347: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (941) + Handles null at 742 +348: Constant(Ljava/lang/String;,"java_cup/Lexer") (944) + Handles null at 742 +349: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (944) + Handles null at 742 +350: LocalLoad(Ljava/lang/Object;,0) (944) + Handles null at 742 +351: Constant(I,0) (944) + Handles null at 742 +352: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (944) + Handles null at 742 +353: Return(Ljava/lang/Object;) (944) + Handles null at 742 +354: Goto(741) (945) + Handles null at 742 +355: LocalLoad(Ljava/lang/Object;,0) (948) + Handles null at 742 +356: Constant(Ljava/lang/String;,"PARSER") (949) + Handles null at 742 +357: Constant(I,7) (951) + Handles null at 742 +358: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (953) + Handles null at 742 +359: Constant(Ljava/lang/String;,"java_cup/Lexer") (956) + Handles null at 742 +360: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (956) + Handles null at 742 +361: LocalLoad(Ljava/lang/Object;,0) (956) + Handles null at 742 +362: Constant(I,0) (956) + Handles null at 742 +363: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (956) + Handles null at 742 +364: Return(Ljava/lang/Object;) (956) + Handles null at 742 +365: Goto(741) (957) + Handles null at 742 +366: LocalLoad(Ljava/lang/Object;,0) (960) + Handles null at 742 +367: Constant(Ljava/lang/String;,"COLON_COLON_EQUALS") (961) + Handles null at 742 +368: Constant(I,18) (963) + Handles null at 742 +369: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (965) + Handles null at 742 +370: Constant(Ljava/lang/String;,"java_cup/Lexer") (968) + Handles null at 742 +371: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (968) + Handles null at 742 +372: LocalLoad(Ljava/lang/Object;,0) (968) + Handles null at 742 +373: Constant(I,0) (968) + Handles null at 742 +374: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (968) + Handles null at 742 +375: Return(Ljava/lang/Object;) (968) + Handles null at 742 +376: Goto(741) (969) + Handles null at 742 +377: LocalLoad(Ljava/lang/Object;,0) (972) + Handles null at 742 +378: New(Ljava/lang/StringBuffer;,0) (973) + Handles null at 742 +379: Dup(1,0) (976) + Handles null at 742 +380: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,()V) (977) + Handles null at 742 +381: Put(Ljava/lang/StringBuffer;,NONSTATIC,Ljava_cup/Lexer;,sb) (980) + Handles null at 742 +382: LocalLoad(Ljava/lang/Object;,0) (983) + Handles null at 742 +383: LocalLoad(Ljava/lang/Object;,0) (984) + Handles null at 742 +384: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (985) + Handles null at 742 +385: Constant(I,1) (988) + Handles null at 742 +386: BinaryOp(I,add) (989) + Handles null at 742 +387: Put(I,NONSTATIC,Ljava_cup/Lexer;,csline) (990) + Handles null at 742 +388: LocalLoad(Ljava/lang/Object;,0) (993) + Handles null at 742 +389: LocalLoad(Ljava/lang/Object;,0) (994) + Handles null at 742 +390: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (995) + Handles null at 742 +391: Constant(I,1) (998) + Handles null at 742 +392: BinaryOp(I,add) (999) + Handles null at 742 +393: Put(I,NONSTATIC,Ljava_cup/Lexer;,cscolumn) (1000) + Handles null at 742 +394: LocalLoad(Ljava/lang/Object;,0) (1003) + Handles null at 742 +395: Constant(I,2) (1004) + Handles null at 742 +396: Invoke(VIRTUAL,Ljava_cup/Lexer;,yybegin,(I)V) (1005) + Handles null at 742 +397: Goto(741) (1008) + Handles null at 742 +398: LocalLoad(Ljava/lang/Object;,0) (1011) + Handles null at 742 +399: Constant(Ljava/lang/String;,"RBRACK") (1012) + Handles null at 742 +400: Constant(I,26) (1014) + Handles null at 742 +401: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1016) + Handles null at 742 +402: Constant(Ljava/lang/String;,"java_cup/Lexer") (1019) + Handles null at 742 +403: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1019) + Handles null at 742 +404: LocalLoad(Ljava/lang/Object;,0) (1019) + Handles null at 742 +405: Constant(I,0) (1019) + Handles null at 742 +406: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1019) + Handles null at 742 +407: Return(Ljava/lang/Object;) (1019) + Handles null at 742 +408: Goto(741) (1020) + Handles null at 742 +409: LocalLoad(Ljava/lang/Object;,0) (1023) + Handles null at 742 +410: Constant(Ljava/lang/String;,"RIGHT") (1024) + Handles null at 742 +411: Constant(I,22) (1026) + Handles null at 742 +412: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1028) + Handles null at 742 +413: Constant(Ljava/lang/String;,"java_cup/Lexer") (1031) + Handles null at 742 +414: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1031) + Handles null at 742 +415: LocalLoad(Ljava/lang/Object;,0) (1031) + Handles null at 742 +416: Constant(I,0) (1031) + Handles null at 742 +417: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1031) + Handles null at 742 +418: Return(Ljava/lang/Object;) (1031) + Handles null at 742 +419: Goto(741) (1032) + Handles null at 742 +420: LocalLoad(Ljava/lang/Object;,0) (1035) + Handles null at 742 +421: Constant(Ljava/lang/String;,"SUPER") (1036) + Handles null at 742 +422: Constant(I,31) (1038) + Handles null at 742 +423: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1040) + Handles null at 742 +424: Constant(Ljava/lang/String;,"java_cup/Lexer") (1043) + Handles null at 742 +425: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1043) + Handles null at 742 +426: LocalLoad(Ljava/lang/Object;,0) (1043) + Handles null at 742 +427: Constant(I,0) (1043) + Handles null at 742 +428: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1043) + Handles null at 742 +429: Return(Ljava/lang/Object;) (1043) + Handles null at 742 +430: Goto(741) (1044) + Handles null at 742 +431: LocalLoad(Ljava/lang/Object;,0) (1047) + Handles null at 742 +432: Constant(Ljava/lang/String;,"START") (1048) + Handles null at 742 +433: Constant(I,12) (1050) + Handles null at 742 +434: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1052) + Handles null at 742 +435: Constant(Ljava/lang/String;,"java_cup/Lexer") (1055) + Handles null at 742 +436: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1055) + Handles null at 742 +437: LocalLoad(Ljava/lang/Object;,0) (1055) + Handles null at 742 +438: Constant(I,0) (1055) + Handles null at 742 +439: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1055) + Handles null at 742 +440: Return(Ljava/lang/Object;) (1055) + Handles null at 742 +441: Goto(741) (1056) + Handles null at 742 +442: LocalLoad(Ljava/lang/Object;,0) (1059) + Handles null at 742 +443: Constant(Ljava/lang/String;,"IMPORT") (1060) + Handles null at 742 +444: Constant(I,3) (1062) + Handles null at 742 +445: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1063) + Handles null at 742 +446: Constant(Ljava/lang/String;,"java_cup/Lexer") (1066) + Handles null at 742 +447: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1066) + Handles null at 742 +448: LocalLoad(Ljava/lang/Object;,0) (1066) + Handles null at 742 +449: Constant(I,0) (1066) + Handles null at 742 +450: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1066) + Handles null at 742 +451: Return(Ljava/lang/Object;) (1066) + Handles null at 742 +452: Goto(741) (1067) + Handles null at 742 +453: LocalLoad(Ljava/lang/Object;,0) (1070) + Handles null at 742 +454: Constant(Ljava/lang/String;,"COLON") (1071) + Handles null at 742 +455: Constant(I,17) (1073) + Handles null at 742 +456: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1075) + Handles null at 742 +457: Constant(Ljava/lang/String;,"java_cup/Lexer") (1078) + Handles null at 742 +458: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1078) + Handles null at 742 +459: LocalLoad(Ljava/lang/Object;,0) (1078) + Handles null at 742 +460: Constant(I,0) (1078) + Handles null at 742 +461: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1078) + Handles null at 742 +462: Return(Ljava/lang/Object;) (1078) + Handles null at 742 +463: Goto(741) (1079) + Handles null at 742 +464: LocalLoad(Ljava/lang/Object;,0) (1082) + Handles null at 742 +465: Get(Ljava/lang/StringBuffer;,NONSTATIC,Ljava_cup/Lexer;,sb) (1083) + Handles null at 742 +466: LocalLoad(Ljava/lang/Object;,0) (1086) + Handles null at 742 +467: Invoke(VIRTUAL,Ljava_cup/Lexer;,yytext,()Ljava/lang/String;) (1087) + Handles null at 742 +468: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (1090) + Handles null at 742 +469: Pop(1) (1093) + Handles null at 742 +470: Goto(741) (1094) + Handles null at 742 +471: LocalLoad(Ljava/lang/Object;,0) (1097) + Handles null at 742 +472: Constant(Ljava/lang/String;,"PARSER") (1098) + Handles null at 742 +473: Constant(I,6) (1100) + Handles null at 742 +474: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1102) + Handles null at 742 +475: Constant(Ljava/lang/String;,"java_cup/Lexer") (1105) + Handles null at 742 +476: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1105) + Handles null at 742 +477: LocalLoad(Ljava/lang/Object;,0) (1105) + Handles null at 742 +478: Constant(I,0) (1105) + Handles null at 742 +479: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1105) + Handles null at 742 +480: Return(Ljava/lang/Object;) (1105) + Handles null at 742 +481: Goto(741) (1106) + Handles null at 742 +482: LocalLoad(Ljava/lang/Object;,0) (1109) + Handles null at 742 +483: Constant(Ljava/lang/String;,"ACTION") (1110) + Handles null at 742 +484: Constant(I,5) (1112) + Handles null at 742 +485: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1113) + Handles null at 742 +486: Constant(Ljava/lang/String;,"java_cup/Lexer") (1116) + Handles null at 742 +487: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1116) + Handles null at 742 +488: LocalLoad(Ljava/lang/Object;,0) (1116) + Handles null at 742 +489: Constant(I,0) (1116) + Handles null at 742 +490: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1116) + Handles null at 742 +491: Return(Ljava/lang/Object;) (1116) + Handles null at 742 +492: Goto(741) (1117) + Handles null at 742 +493: LocalLoad(Ljava/lang/Object;,0) (1120) + Handles null at 742 +494: Constant(Ljava/lang/String;,"ID") (1121) + Handles null at 742 +495: Constant(I,34) (1123) + Handles null at 742 +496: LocalLoad(Ljava/lang/Object;,0) (1125) + Handles null at 742 +497: Invoke(VIRTUAL,Ljava_cup/Lexer;,yytext,()Ljava/lang/String;) (1126) + Handles null at 742 +498: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;ILjava/lang/String;)Ljava_cup/runtime/Symbol;) (1129) + Handles null at 742 +499: Constant(Ljava/lang/String;,"java_cup/Lexer") (1132) + Handles null at 742 +500: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1132) + Handles null at 742 +501: LocalLoad(Ljava/lang/Object;,0) (1132) + Handles null at 742 +502: Constant(I,0) (1132) + Handles null at 742 +503: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1132) + Handles null at 742 +504: Return(Ljava/lang/Object;) (1132) + Handles null at 742 +505: Goto(741) (1133) + Handles null at 742 +506: LocalLoad(Ljava/lang/Object;,0) (1136) + Handles null at 742 +507: Constant(Ljava/lang/String;,"GT") (1137) + Handles null at 742 +508: Constant(I,28) (1139) + Handles null at 742 +509: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1141) + Handles null at 742 +510: Constant(Ljava/lang/String;,"java_cup/Lexer") (1144) + Handles null at 742 +511: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1144) + Handles null at 742 +512: LocalLoad(Ljava/lang/Object;,0) (1144) + Handles null at 742 +513: Constant(I,0) (1144) + Handles null at 742 +514: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1144) + Handles null at 742 +515: Return(Ljava/lang/Object;) (1144) + Handles null at 742 +516: Goto(741) (1145) + Handles null at 742 +517: LocalLoad(Ljava/lang/Object;,0) (1148) + Handles null at 742 +518: Constant(Ljava/lang/String;,"DOT") (1149) + Handles null at 742 +519: Constant(I,16) (1151) + Handles null at 742 +520: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1153) + Handles null at 742 +521: Constant(Ljava/lang/String;,"java_cup/Lexer") (1156) + Handles null at 742 +522: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1156) + Handles null at 742 +523: LocalLoad(Ljava/lang/Object;,0) (1156) + Handles null at 742 +524: Constant(I,0) (1156) + Handles null at 742 +525: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1156) + Handles null at 742 +526: Return(Ljava/lang/Object;) (1156) + Handles null at 742 +527: Goto(741) (1157) + Handles null at 742 +528: LocalLoad(Ljava/lang/Object;,0) (1160) + Handles null at 742 +529: Constant(Ljava/lang/String;,"NONASSOC") (1161) + Handles null at 742 +530: Constant(I,23) (1163) + Handles null at 742 +531: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1165) + Handles null at 742 +532: Constant(Ljava/lang/String;,"java_cup/Lexer") (1168) + Handles null at 742 +533: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1168) + Handles null at 742 +534: LocalLoad(Ljava/lang/Object;,0) (1168) + Handles null at 742 +535: Constant(I,0) (1168) + Handles null at 742 +536: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1168) + Handles null at 742 +537: Return(Ljava/lang/Object;) (1168) + Handles null at 742 +538: Goto(741) (1169) + Handles null at 742 +539: LocalLoad(Ljava/lang/Object;,0) (1172) + Handles null at 742 +540: Constant(Ljava/lang/String;,"PACKAGE") (1173) + Handles null at 742 +541: Constant(I,2) (1175) + Handles null at 742 +542: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1176) + Handles null at 742 +543: Constant(Ljava/lang/String;,"java_cup/Lexer") (1179) + Handles null at 742 +544: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1179) + Handles null at 742 +545: LocalLoad(Ljava/lang/Object;,0) (1179) + Handles null at 742 +546: Constant(I,0) (1179) + Handles null at 742 +547: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1179) + Handles null at 742 +548: Return(Ljava/lang/Object;) (1179) + Handles null at 742 +549: Goto(741) (1180) + Handles null at 742 +550: LocalLoad(Ljava/lang/Object;,0) (1183) + Handles null at 742 +551: Constant(Ljava/lang/String;,"CLASS") (1184) + Handles null at 742 +552: Constant(I,33) (1186) + Handles null at 742 +553: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1188) + Handles null at 742 +554: Constant(Ljava/lang/String;,"java_cup/Lexer") (1191) + Handles null at 742 +555: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1191) + Handles null at 742 +556: LocalLoad(Ljava/lang/Object;,0) (1191) + Handles null at 742 +557: Constant(I,0) (1191) + Handles null at 742 +558: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1191) + Handles null at 742 +559: Return(Ljava/lang/Object;) (1191) + Handles null at 742 +560: Goto(741) (1192) + Handles null at 742 +561: LocalLoad(Ljava/lang/Object;,0) (1195) + Handles null at 742 +562: Constant(Ljava/lang/String;,"LEFT") (1196) + Handles null at 742 +563: Constant(I,21) (1198) + Handles null at 742 +564: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1200) + Handles null at 742 +565: Constant(Ljava/lang/String;,"java_cup/Lexer") (1203) + Handles null at 742 +566: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1203) + Handles null at 742 +567: LocalLoad(Ljava/lang/Object;,0) (1203) + Handles null at 742 +568: Constant(I,0) (1203) + Handles null at 742 +569: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1203) + Handles null at 742 +570: Return(Ljava/lang/Object;) (1203) + Handles null at 742 +571: Goto(741) (1204) + Handles null at 742 +572: LocalLoad(Ljava/lang/Object;,0) (1207) + Handles null at 742 +573: Constant(I,0) (1208) + Handles null at 742 +574: Invoke(VIRTUAL,Ljava_cup/Lexer;,yybegin,(I)V) (1209) + Handles null at 742 +575: LocalLoad(Ljava/lang/Object;,0) (1212) + Handles null at 742 +576: Get(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (1213) + Handles null at 742 +577: Constant(Ljava/lang/String;,"CODE_STRING") (1216) + Handles null at 742 +578: Constant(I,35) (1218) + Handles null at 742 +579: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (1220) + Handles null at 742 +580: Dup(1,0) (1223) + Handles null at 742 +581: LocalLoad(Ljava/lang/Object;,0) (1224) + Handles null at 742 +582: Get(I,NONSTATIC,Ljava_cup/Lexer;,csline) (1225) + Handles null at 742 +583: LocalLoad(Ljava/lang/Object;,0) (1228) + Handles null at 742 +584: Get(I,NONSTATIC,Ljava_cup/Lexer;,cscolumn) (1229) + Handles null at 742 +585: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (1232) + Handles null at 742 +586: New(Ljava_cup/runtime/ComplexSymbolFactory$Location;,0) (1235) + Handles null at 742 +587: Dup(1,0) (1238) + Handles null at 742 +588: LocalLoad(Ljava/lang/Object;,0) (1239) + Handles null at 742 +589: Get(I,NONSTATIC,Ljava_cup/Lexer;,yyline) (1240) + Handles null at 742 +590: Constant(I,1) (1243) + Handles null at 742 +591: BinaryOp(I,add) (1244) + Handles null at 742 +592: LocalLoad(Ljava/lang/Object;,0) (1245) + Handles null at 742 +593: Get(I,NONSTATIC,Ljava_cup/Lexer;,yycolumn) (1246) + Handles null at 742 +594: Constant(I,1) (1249) + Handles null at 742 +595: BinaryOp(I,add) (1250) + Handles null at 742 +596: LocalLoad(Ljava/lang/Object;,0) (1251) + Handles null at 742 +597: Invoke(VIRTUAL,Ljava_cup/Lexer;,yylength,()I) (1252) + Handles null at 742 +598: BinaryOp(I,add) (1255) + Handles null at 742 +599: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (1256) + Handles null at 742 +600: LocalLoad(Ljava/lang/Object;,0) (1259) + Handles null at 742 +601: Get(Ljava/lang/StringBuffer;,NONSTATIC,Ljava_cup/Lexer;,sb) (1260) + Handles null at 742 +602: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,toString,()Ljava/lang/String;) (1263) + Handles null at 742 +603: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;) (1266) + Handles null at 742 +604: Constant(Ljava/lang/String;,"java_cup/Lexer") (1269) + Handles null at 742 +605: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1269) + Handles null at 742 +606: LocalLoad(Ljava/lang/Object;,0) (1269) + Handles null at 742 +607: Constant(I,0) (1269) + Handles null at 742 +608: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1269) + Handles null at 742 +609: Return(Ljava/lang/Object;) (1269) + Handles null at 742 +610: Goto(741) (1270) + Handles null at 742 +611: LocalLoad(Ljava/lang/Object;,0) (1273) + Handles null at 742 +612: Constant(Ljava/lang/String;,"COMMA") (1274) + Handles null at 742 +613: Constant(I,14) (1276) + Handles null at 742 +614: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1278) + Handles null at 742 +615: Constant(Ljava/lang/String;,"java_cup/Lexer") (1281) + Handles null at 742 +616: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1281) + Handles null at 742 +617: LocalLoad(Ljava/lang/Object;,0) (1281) + Handles null at 742 +618: Constant(I,0) (1281) + Handles null at 742 +619: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1281) + Handles null at 742 +620: Return(Ljava/lang/Object;) (1281) + Handles null at 742 +621: Goto(741) (1282) + Handles null at 742 +622: LocalLoad(Ljava/lang/Object;,0) (1285) + Handles null at 742 +623: Constant(Ljava/lang/String;,"SCAN") (1286) + Handles null at 742 +624: Constant(I,10) (1288) + Handles null at 742 +625: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1290) + Handles null at 742 +626: Constant(Ljava/lang/String;,"java_cup/Lexer") (1293) + Handles null at 742 +627: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1293) + Handles null at 742 +628: LocalLoad(Ljava/lang/Object;,0) (1293) + Handles null at 742 +629: Constant(I,0) (1293) + Handles null at 742 +630: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1293) + Handles null at 742 +631: Return(Ljava/lang/Object;) (1293) + Handles null at 742 +632: Goto(741) (1294) + Handles null at 742 +633: LocalLoad(Ljava/lang/Object;,0) (1297) + Handles null at 742 +634: Constant(Ljava/lang/String;,"NONTERMINAL") (1298) + Handles null at 742 +635: Constant(I,27) (1300) + Handles null at 742 +636: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1302) + Handles null at 742 +637: Constant(Ljava/lang/String;,"java_cup/Lexer") (1305) + Handles null at 742 +638: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1305) + Handles null at 742 +639: LocalLoad(Ljava/lang/Object;,0) (1305) + Handles null at 742 +640: Constant(I,0) (1305) + Handles null at 742 +641: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1305) + Handles null at 742 +642: Return(Ljava/lang/Object;) (1305) + Handles null at 742 +643: Goto(741) (1306) + Handles null at 742 +644: LocalLoad(Ljava/lang/Object;,0) (1309) + Handles null at 742 +645: Constant(Ljava/lang/String;,"STAR") (1310) + Handles null at 742 +646: Constant(I,15) (1312) + Handles null at 742 +647: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1314) + Handles null at 742 +648: Constant(Ljava/lang/String;,"java_cup/Lexer") (1317) + Handles null at 742 +649: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1317) + Handles null at 742 +650: LocalLoad(Ljava/lang/Object;,0) (1317) + Handles null at 742 +651: Constant(I,0) (1317) + Handles null at 742 +652: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1317) + Handles null at 742 +653: Return(Ljava/lang/Object;) (1317) + Handles null at 742 +654: Goto(741) (1318) + Handles null at 742 +655: LocalLoad(Ljava/lang/Object;,0) (1321) + Handles null at 742 +656: Constant(Ljava/lang/String;,"INIT") (1322) + Handles null at 742 +657: Constant(I,9) (1324) + Handles null at 742 +658: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1326) + Handles null at 742 +659: Constant(Ljava/lang/String;,"java_cup/Lexer") (1329) + Handles null at 742 +660: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1329) + Handles null at 742 +661: LocalLoad(Ljava/lang/Object;,0) (1329) + Handles null at 742 +662: Constant(I,0) (1329) + Handles null at 742 +663: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1329) + Handles null at 742 +664: Return(Ljava/lang/Object;) (1329) + Handles null at 742 +665: Goto(741) (1330) + Handles null at 742 +666: LocalLoad(Ljava/lang/Object;,0) (1333) + Handles null at 742 +667: Constant(Ljava/lang/String;,"WITH") (1334) + Handles null at 742 +668: Constant(I,11) (1336) + Handles null at 742 +669: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1338) + Handles null at 742 +670: Constant(Ljava/lang/String;,"java_cup/Lexer") (1341) + Handles null at 742 +671: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1341) + Handles null at 742 +672: LocalLoad(Ljava/lang/Object;,0) (1341) + Handles null at 742 +673: Constant(I,0) (1341) + Handles null at 742 +674: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1341) + Handles null at 742 +675: Return(Ljava/lang/Object;) (1341) + Handles null at 742 +676: Goto(741) (1342) + Handles null at 742 +677: LocalLoad(Ljava/lang/Object;,0) (1345) + Handles null at 742 +678: Constant(Ljava/lang/String;,"PERCENT_PREC") (1346) + Handles null at 742 +679: Constant(I,24) (1348) + Handles null at 742 +680: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1350) + Handles null at 742 +681: Constant(Ljava/lang/String;,"java_cup/Lexer") (1353) + Handles null at 742 +682: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1353) + Handles null at 742 +683: LocalLoad(Ljava/lang/Object;,0) (1353) + Handles null at 742 +684: Constant(I,0) (1353) + Handles null at 742 +685: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1353) + Handles null at 742 +686: Return(Ljava/lang/Object;) (1353) + Handles null at 742 +687: Goto(741) (1354) + Handles null at 742 +688: LocalLoad(Ljava/lang/Object;,0) (1357) + Handles null at 742 +689: New(Ljava/lang/StringBuilder;,0) (1358) + Handles null at 742 +690: Dup(1,0) (1361) + Handles null at 742 +691: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1362) + Handles null at 742 +692: Constant(Ljava/lang/String;,"Unrecognized character '") (1365) + Handles null at 742 +693: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1367) + Handles null at 742 +694: LocalLoad(Ljava/lang/Object;,0) (1370) + Handles null at 742 +695: Invoke(VIRTUAL,Ljava_cup/Lexer;,yytext,()Ljava/lang/String;) (1371) + Handles null at 742 +696: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1374) + Handles null at 742 +697: Constant(Ljava/lang/String;,"' -- ignored") (1377) + Handles null at 742 +698: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1379) + Handles null at 742 +699: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1382) + Handles null at 742 +700: Invoke(VIRTUAL,Ljava_cup/Lexer;,emit_warning,(Ljava/lang/String;)V) (1385) + Handles null at 742 +701: Goto(741) (1388) + Handles null at 742 +702: LocalLoad(Ljava/lang/Object;,0) (1391) + Handles null at 742 +703: Constant(Ljava/lang/String;,"CODE") (1392) + Handles null at 742 +704: Constant(I,4) (1394) + Handles null at 742 +705: Invoke(VIRTUAL,Ljava_cup/Lexer;,symbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1395) + Handles null at 742 +706: Constant(Ljava/lang/String;,"java_cup/Lexer") (1398) + Handles null at 742 +707: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1398) + Handles null at 742 +708: LocalLoad(Ljava/lang/Object;,0) (1398) + Handles null at 742 +709: Constant(I,0) (1398) + Handles null at 742 +710: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1398) + Handles null at 742 +711: Return(Ljava/lang/Object;) (1398) + Handles null at 742 +712: Goto(741) (1399) + Handles null at 742 +713: Goto(741) (1402) + Handles null at 742 +714: LocalLoad(I,1) (1405) + Handles null at 742 +715: Constant(I,-1) (1406) + Handles null at 742 +716: ConditionalBranch(I,ne,738) (1407) + Handles null at 742 +717: LocalLoad(Ljava/lang/Object;,0) (1410) + Handles null at 742 +718: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzStartRead) (1411) + Handles null at 742 +719: LocalLoad(Ljava/lang/Object;,0) (1414) + Handles null at 742 +720: Get(I,NONSTATIC,Ljava_cup/Lexer;,zzCurrentPos) (1415) + Handles null at 742 +721: ConditionalBranch(I,ne,738) (1418) + Handles null at 742 +722: LocalLoad(Ljava/lang/Object;,0) (1421) + Handles null at 742 +723: Constant(I,1) (1422) + Handles null at 742 +724: Put(Z,NONSTATIC,Ljava_cup/Lexer;,zzAtEOF) (1423) + Handles null at 742 +725: LocalLoad(Ljava/lang/Object;,0) (1426) + Handles null at 742 +726: Invoke(SPECIAL,Ljava_cup/Lexer;,zzDoEOF,()V) (1427) + Handles null at 742 +727: LocalLoad(Ljava/lang/Object;,0) (1430) + Handles null at 742 +728: Get(Ljava_cup/runtime/ComplexSymbolFactory;,NONSTATIC,Ljava_cup/Lexer;,symbolFactory) (1431) + Handles null at 742 +729: Constant(Ljava/lang/String;,"EOF") (1434) + Handles null at 742 +730: Constant(I,0) (1436) + Handles null at 742 +731: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory;,newSymbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (1437) + Handles null at 742 +732: Constant(Ljava/lang/String;,"java_cup/Lexer") (1440) + Handles null at 742 +733: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (1440) + Handles null at 742 +734: LocalLoad(Ljava/lang/Object;,0) (1440) + Handles null at 742 +735: Constant(I,0) (1440) + Handles null at 742 +736: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1440) + Handles null at 742 +737: Return(Ljava/lang/Object;) (1440) + Handles null at 742 +738: LocalLoad(Ljava/lang/Object;,0) (1441) + Handles null at 742 +739: Constant(I,1) (1442) + Handles null at 742 +740: Invoke(SPECIAL,Ljava_cup/Lexer;,zzScanError,(I)V) (1443) + Handles null at 742 +741: Goto(18) (1446) + Handles null at 742 +742: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +743: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (0) +744: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +745: Constant(I,1) (0) +746: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +747: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: Constant(I,4) (0) +1: New([I,1) (1) +2: Dup(1,0) (3) +3: Constant(I,0) (4) +4: Constant(I,0) (5) +5: ArrayStore(I) (6) +6: Dup(1,0) (7) +7: Constant(I,1) (8) +8: Constant(I,0) (9) +9: ArrayStore(I) (10) +10: Dup(1,0) (11) +11: Constant(I,2) (12) +12: Constant(I,1) (13) +13: ArrayStore(I) (14) +14: Dup(1,0) (15) +15: Constant(I,3) (16) +16: Constant(I,1) (17) +17: ArrayStore(I) (18) +18: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_LEXSTATE) (19) +19: Constant(Ljava/lang/String;,"\ \ + \ +\  \"&% #!($' )!? pS??\ &'\ -  +c\ +Y \ +!\ \ ?6\ +\ +\ +  \ \ +\ + \ +\ \ +\ +\ +\ +)\ +\ +\  0\ +'\ +\"\ + $ $\ 9+\ +  &\ ++?)!9C U ?K     4 \ +!\ +X)F\ +  \ +\ + ,\ +&5\ + \ + X/\ +\  \ +\ +& $\ +\ +$R ?'?&5      \ + )?//?&\ +6\ \  /?\ VZ)^5??J?4?C.?\ +/ P%\ g\ +P4 2 \ +\ +  /\ +&)\ \ +0#\ ?#\ +? 1??>j& \ + l!?@6(  ? \ + Y") (22) +20: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackCMap,(Ljava/lang/String;)[C) (24) +21: Put([C,STATIC,Ljava_cup/Lexer;,ZZ_CMAP) (27) +22: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackAction,()[I) (30) +23: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_ACTION) (33) +24: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackRowMap,()[I) (36) +25: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_ROWMAP) (39) +26: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackTrans,()[I) (42) +27: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_TRANS) (45) +28: Constant(I,3) (48) +29: New([Ljava/lang/String;,1) (49) +30: Dup(1,0) (52) +31: Constant(I,0) (53) +32: Constant(Ljava/lang/String;,"Unkown internal scanner error") (54) +33: ArrayStore(Ljava/lang/Object;) (56) +34: Dup(1,0) (57) +35: Constant(I,1) (58) +36: Constant(Ljava/lang/String;,"Error: could not match input") (59) +37: ArrayStore(Ljava/lang/Object;) (61) +38: Dup(1,0) (62) +39: Constant(I,2) (63) +40: Constant(Ljava/lang/String;,"Error: pushback value was too large") (64) +41: ArrayStore(Ljava/lang/Object;) (66) +42: Put([Ljava/lang/String;,STATIC,Ljava_cup/Lexer;,ZZ_ERROR_MSG) (67) +43: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackAttribute,()[I) (70) +44: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_ATTRIBUTE) (73) +45: Return(V) (76) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,4) (0) + Handles null at 55 +5: New([I,1) (1) + Handles null at 55 +6: Dup(1,0) (3) + Handles null at 55 +7: Constant(I,0) (4) + Handles null at 55 +8: Constant(I,0) (5) + Handles null at 55 +9: ArrayStore(I) (6) + Handles null at 55 +10: Dup(1,0) (7) + Handles null at 55 +11: Constant(I,1) (8) + Handles null at 55 +12: Constant(I,0) (9) + Handles null at 55 +13: ArrayStore(I) (10) + Handles null at 55 +14: Dup(1,0) (11) + Handles null at 55 +15: Constant(I,2) (12) + Handles null at 55 +16: Constant(I,1) (13) + Handles null at 55 +17: ArrayStore(I) (14) + Handles null at 55 +18: Dup(1,0) (15) + Handles null at 55 +19: Constant(I,3) (16) + Handles null at 55 +20: Constant(I,1) (17) + Handles null at 55 +21: ArrayStore(I) (18) + Handles null at 55 +22: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_LEXSTATE) (19) + Handles null at 55 +23: Constant(Ljava/lang/String;,"\ \ + \ +\  \"&% #!($' )!? pS??\ &'\ -  +c\ +Y \ +!\ \ ?6\ +\ +\ +  \ \ +\ + \ +\ \ +\ +\ +\ +)\ +\ +\  0\ +'\ +\"\ + $ $\ 9+\ +  &\ ++?)!9C U ?K     4 \ +!\ +X)F\ +  \ +\ + ,\ +&5\ + \ + X/\ +\  \ +\ +& $\ +\ +$R ?'?&5      \ + )?//?&\ +6\ \  /?\ VZ)^5??J?4?C.?\ +/ P%\ g\ +P4 2 \ +\ +  /\ +&)\ \ +0#\ ?#\ +? 1??>j& \ + l!?@6(  ? \ + Y") (22) + Handles null at 55 +24: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackCMap,(Ljava/lang/String;)[C) (24) + Handles null at 55 +25: Put([C,STATIC,Ljava_cup/Lexer;,ZZ_CMAP) (27) + Handles null at 55 +26: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackAction,()[I) (30) + Handles null at 55 +27: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_ACTION) (33) + Handles null at 55 +28: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackRowMap,()[I) (36) + Handles null at 55 +29: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_ROWMAP) (39) + Handles null at 55 +30: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackTrans,()[I) (42) + Handles null at 55 +31: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_TRANS) (45) + Handles null at 55 +32: Constant(I,3) (48) + Handles null at 55 +33: New([Ljava/lang/String;,1) (49) + Handles null at 55 +34: Dup(1,0) (52) + Handles null at 55 +35: Constant(I,0) (53) + Handles null at 55 +36: Constant(Ljava/lang/String;,"Unkown internal scanner error") (54) + Handles null at 55 +37: ArrayStore(Ljava/lang/Object;) (56) + Handles null at 55 +38: Dup(1,0) (57) + Handles null at 55 +39: Constant(I,1) (58) + Handles null at 55 +40: Constant(Ljava/lang/String;,"Error: could not match input") (59) + Handles null at 55 +41: ArrayStore(Ljava/lang/Object;) (61) + Handles null at 55 +42: Dup(1,0) (62) + Handles null at 55 +43: Constant(I,2) (63) + Handles null at 55 +44: Constant(Ljava/lang/String;,"Error: pushback value was too large") (64) + Handles null at 55 +45: ArrayStore(Ljava/lang/Object;) (66) + Handles null at 55 +46: Put([Ljava/lang/String;,STATIC,Ljava_cup/Lexer;,ZZ_ERROR_MSG) (67) + Handles null at 55 +47: Invoke(STATIC,Ljava_cup/Lexer;,zzUnpackAttribute,()[I) (70) + Handles null at 55 +48: Put([I,STATIC,Ljava_cup/Lexer;,ZZ_ATTRIBUTE) (73) + Handles null at 55 +49: Constant(Ljava/lang/String;,"java_cup/Lexer") (76) + Handles null at 55 +50: Constant(Ljava/lang/String;,"()V") (76) + Handles null at 55 +51: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (76) + Handles null at 55 +52: Constant(I,0) (76) + Handles null at 55 +53: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (76) + Handles null at 55 +54: Return(V) (76) + Handles null at 55 +55: Constant(Ljava/lang/String;,"java_cup/Lexer") (0) +56: Constant(Ljava/lang/String;,"()V") (0) +57: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +58: Constant(I,1) (0) +59: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +60: Throw() (0) +Class: java_cup/Main +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/Main") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/Main") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting main ([Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,1) (1) +2: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (2) +3: Put(J,STATIC,Ljava_cup/Main;,start_time) (5) +4: Invoke(STATIC,Ljava_cup/terminal;,clear,()V) (8) +5: Invoke(STATIC,Ljava_cup/production;,clear,()V) (11) +6: Invoke(STATIC,Ljava_cup/action_production;,clear,()V) (14) +7: Invoke(STATIC,Ljava_cup/emit;,clear,()V) (17) +8: Invoke(STATIC,Ljava_cup/non_terminal;,clear,()V) (20) +9: Invoke(STATIC,Ljava_cup/parse_reduce_row;,clear,()V) (23) +10: Invoke(STATIC,Ljava_cup/parse_action_row;,clear,()V) (26) +11: Invoke(STATIC,Ljava_cup/lalr_state;,clear,()V) (29) +12: LocalLoad(Ljava/lang/Object;,0) (32) +13: Invoke(STATIC,Ljava_cup/Main;,parse_args,([Ljava/lang/String;)V) (33) +14: Get(Z,STATIC,Ljava_cup/Main;,lr_values) (36) +15: Invoke(STATIC,Ljava_cup/emit;,set_lr_values,(Z)V) (39) +16: Get(Z,STATIC,Ljava_cup/Main;,locations) (42) +17: Invoke(STATIC,Ljava_cup/emit;,set_locations,(Z)V) (45) +18: Get(Z,STATIC,Ljava_cup/Main;,xmlactions) (48) +19: Invoke(STATIC,Ljava_cup/emit;,set_xmlactions,(Z)V) (51) +20: Get(Z,STATIC,Ljava_cup/Main;,genericlabels) (54) +21: Invoke(STATIC,Ljava_cup/emit;,set_genericlabels,(Z)V) (57) +22: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (60) +23: Constant(I,0) (63) +24: ConditionalBranch(I,eq,28) (63) +25: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (66) +26: Constant(Ljava/lang/String;,"Opening files...") (69) +27: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (71) +28: New(Ljava/io/BufferedInputStream;,0) (74) +29: Dup(1,0) (77) +30: Get(Ljava/io/InputStream;,STATIC,Ljava/lang/System;,in) (78) +31: Invoke(SPECIAL,Ljava/io/BufferedInputStream;,,(Ljava/io/InputStream;)V) (81) +32: Put(Ljava/io/BufferedInputStream;,STATIC,Ljava_cup/Main;,input_file) (84) +33: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (87) +34: Put(J,STATIC,Ljava_cup/Main;,prelim_end) (90) +35: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (93) +36: Constant(I,0) (96) +37: ConditionalBranch(I,eq,41) (96) +38: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (99) +39: Constant(Ljava/lang/String;,"Parsing specification from standard input...") (102) +40: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (104) +41: Invoke(STATIC,Ljava_cup/Main;,parse_grammar_spec,()V) (107) +42: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (110) +43: Put(J,STATIC,Ljava_cup/Main;,parse_end) (113) +44: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (116) +45: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (119) +46: Constant(I,0) (122) +47: ConditionalBranch(I,ne,83) (122) +48: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (125) +49: Constant(I,0) (128) +50: ConditionalBranch(I,eq,54) (128) +51: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (131) +52: Constant(Ljava/lang/String;,"Checking specification...") (134) +53: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (136) +54: Invoke(STATIC,Ljava_cup/Main;,check_unused,()V) (139) +55: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (142) +56: Put(J,STATIC,Ljava_cup/Main;,check_end) (145) +57: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (148) +58: Constant(I,0) (151) +59: ConditionalBranch(I,eq,63) (151) +60: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (154) +61: Constant(Ljava/lang/String;,"Building parse tables...") (157) +62: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (159) +63: Invoke(STATIC,Ljava_cup/Main;,build_parser,()V) (162) +64: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (165) +65: Put(J,STATIC,Ljava_cup/Main;,build_end) (168) +66: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (171) +67: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (174) +68: Constant(I,0) (177) +69: ConditionalBranch(I,eq,73) (177) +70: Constant(I,0) (180) +71: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (181) +72: Goto(83) (184) +73: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (187) +74: Constant(I,0) (190) +75: ConditionalBranch(I,eq,79) (190) +76: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (193) +77: Constant(Ljava/lang/String;,"Writing parser...") (196) +78: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (198) +79: Invoke(STATIC,Ljava_cup/Main;,open_files,()V) (201) +80: Invoke(STATIC,Ljava_cup/Main;,emit_parser,()V) (204) +81: Constant(I,1) (207) +82: LocalStore(I,1) (208) +83: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (209) +84: Put(J,STATIC,Ljava_cup/Main;,emit_end) (212) +85: Get(Z,STATIC,Ljava_cup/Main;,opt_dump_grammar) (215) +86: Constant(I,0) (218) +87: ConditionalBranch(I,eq,89) (218) +88: Invoke(STATIC,Ljava_cup/Main;,dump_grammar,()V) (221) +89: Get(Z,STATIC,Ljava_cup/Main;,opt_dump_states) (224) +90: Constant(I,0) (227) +91: ConditionalBranch(I,eq,93) (227) +92: Invoke(STATIC,Ljava_cup/Main;,dump_machine,()V) (230) +93: Get(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (233) +94: Constant(I,0) (236) +95: ConditionalBranch(I,eq,97) (236) +96: Invoke(STATIC,Ljava_cup/Main;,dump_tables,()V) (239) +97: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (242) +98: Put(J,STATIC,Ljava_cup/Main;,dump_end) (245) +99: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (248) +100: Constant(I,0) (251) +101: ConditionalBranch(I,eq,105) (251) +102: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (254) +103: Constant(Ljava/lang/String;,"Closing files...") (257) +104: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (259) +105: Invoke(STATIC,Ljava_cup/Main;,close_files,()V) (262) +106: Get(Z,STATIC,Ljava_cup/Main;,no_summary) (265) +107: Constant(I,0) (268) +108: ConditionalBranch(I,ne,111) (268) +109: LocalLoad(I,1) (271) +110: Invoke(STATIC,Ljava_cup/Main;,emit_summary,(Z)V) (272) +111: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (275) +112: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (278) +113: Constant(I,0) (281) +114: ConditionalBranch(I,eq,117) (281) +115: Constant(I,100) (284) +116: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (286) +117: Return(V) (289) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"main([Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 127 +5: LocalStore(I,1) (1) + Handles null at 127 +6: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (2) + Handles null at 127 +7: Put(J,STATIC,Ljava_cup/Main;,start_time) (5) + Handles null at 127 +8: Invoke(STATIC,Ljava_cup/terminal;,clear,()V) (8) + Handles null at 127 +9: Invoke(STATIC,Ljava_cup/production;,clear,()V) (11) + Handles null at 127 +10: Invoke(STATIC,Ljava_cup/action_production;,clear,()V) (14) + Handles null at 127 +11: Invoke(STATIC,Ljava_cup/emit;,clear,()V) (17) + Handles null at 127 +12: Invoke(STATIC,Ljava_cup/non_terminal;,clear,()V) (20) + Handles null at 127 +13: Invoke(STATIC,Ljava_cup/parse_reduce_row;,clear,()V) (23) + Handles null at 127 +14: Invoke(STATIC,Ljava_cup/parse_action_row;,clear,()V) (26) + Handles null at 127 +15: Invoke(STATIC,Ljava_cup/lalr_state;,clear,()V) (29) + Handles null at 127 +16: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 127 +17: Invoke(STATIC,Ljava_cup/Main;,parse_args,([Ljava/lang/String;)V) (33) + Handles null at 127 +18: Get(Z,STATIC,Ljava_cup/Main;,lr_values) (36) + Handles null at 127 +19: Invoke(STATIC,Ljava_cup/emit;,set_lr_values,(Z)V) (39) + Handles null at 127 +20: Get(Z,STATIC,Ljava_cup/Main;,locations) (42) + Handles null at 127 +21: Invoke(STATIC,Ljava_cup/emit;,set_locations,(Z)V) (45) + Handles null at 127 +22: Get(Z,STATIC,Ljava_cup/Main;,xmlactions) (48) + Handles null at 127 +23: Invoke(STATIC,Ljava_cup/emit;,set_xmlactions,(Z)V) (51) + Handles null at 127 +24: Get(Z,STATIC,Ljava_cup/Main;,genericlabels) (54) + Handles null at 127 +25: Invoke(STATIC,Ljava_cup/emit;,set_genericlabels,(Z)V) (57) + Handles null at 127 +26: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (60) + Handles null at 127 +27: Constant(I,0) (63) + Handles null at 127 +28: ConditionalBranch(I,eq,32) (63) + Handles null at 127 +29: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (66) + Handles null at 127 +30: Constant(Ljava/lang/String;,"Opening files...") (69) + Handles null at 127 +31: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (71) + Handles null at 127 +32: New(Ljava/io/BufferedInputStream;,0) (74) + Handles null at 127 +33: Dup(1,0) (77) + Handles null at 127 +34: Get(Ljava/io/InputStream;,STATIC,Ljava/lang/System;,in) (78) + Handles null at 127 +35: Invoke(SPECIAL,Ljava/io/BufferedInputStream;,,(Ljava/io/InputStream;)V) (81) + Handles null at 127 +36: Put(Ljava/io/BufferedInputStream;,STATIC,Ljava_cup/Main;,input_file) (84) + Handles null at 127 +37: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (87) + Handles null at 127 +38: Put(J,STATIC,Ljava_cup/Main;,prelim_end) (90) + Handles null at 127 +39: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (93) + Handles null at 127 +40: Constant(I,0) (96) + Handles null at 127 +41: ConditionalBranch(I,eq,45) (96) + Handles null at 127 +42: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (99) + Handles null at 127 +43: Constant(Ljava/lang/String;,"Parsing specification from standard input...") (102) + Handles null at 127 +44: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (104) + Handles null at 127 +45: Invoke(STATIC,Ljava_cup/Main;,parse_grammar_spec,()V) (107) + Handles null at 127 +46: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (110) + Handles null at 127 +47: Put(J,STATIC,Ljava_cup/Main;,parse_end) (113) + Handles null at 127 +48: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (116) + Handles null at 127 +49: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (119) + Handles null at 127 +50: Constant(I,0) (122) + Handles null at 127 +51: ConditionalBranch(I,ne,87) (122) + Handles null at 127 +52: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (125) + Handles null at 127 +53: Constant(I,0) (128) + Handles null at 127 +54: ConditionalBranch(I,eq,58) (128) + Handles null at 127 +55: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (131) + Handles null at 127 +56: Constant(Ljava/lang/String;,"Checking specification...") (134) + Handles null at 127 +57: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (136) + Handles null at 127 +58: Invoke(STATIC,Ljava_cup/Main;,check_unused,()V) (139) + Handles null at 127 +59: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (142) + Handles null at 127 +60: Put(J,STATIC,Ljava_cup/Main;,check_end) (145) + Handles null at 127 +61: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (148) + Handles null at 127 +62: Constant(I,0) (151) + Handles null at 127 +63: ConditionalBranch(I,eq,67) (151) + Handles null at 127 +64: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (154) + Handles null at 127 +65: Constant(Ljava/lang/String;,"Building parse tables...") (157) + Handles null at 127 +66: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (159) + Handles null at 127 +67: Invoke(STATIC,Ljava_cup/Main;,build_parser,()V) (162) + Handles null at 127 +68: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (165) + Handles null at 127 +69: Put(J,STATIC,Ljava_cup/Main;,build_end) (168) + Handles null at 127 +70: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (171) + Handles null at 127 +71: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (174) + Handles null at 127 +72: Constant(I,0) (177) + Handles null at 127 +73: ConditionalBranch(I,eq,77) (177) + Handles null at 127 +74: Constant(I,0) (180) + Handles null at 127 +75: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (181) + Handles null at 127 +76: Goto(87) (184) + Handles null at 127 +77: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (187) + Handles null at 127 +78: Constant(I,0) (190) + Handles null at 127 +79: ConditionalBranch(I,eq,83) (190) + Handles null at 127 +80: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (193) + Handles null at 127 +81: Constant(Ljava/lang/String;,"Writing parser...") (196) + Handles null at 127 +82: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (198) + Handles null at 127 +83: Invoke(STATIC,Ljava_cup/Main;,open_files,()V) (201) + Handles null at 127 +84: Invoke(STATIC,Ljava_cup/Main;,emit_parser,()V) (204) + Handles null at 127 +85: Constant(I,1) (207) + Handles null at 127 +86: LocalStore(I,1) (208) + Handles null at 127 +87: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (209) + Handles null at 127 +88: Put(J,STATIC,Ljava_cup/Main;,emit_end) (212) + Handles null at 127 +89: Get(Z,STATIC,Ljava_cup/Main;,opt_dump_grammar) (215) + Handles null at 127 +90: Constant(I,0) (218) + Handles null at 127 +91: ConditionalBranch(I,eq,93) (218) + Handles null at 127 +92: Invoke(STATIC,Ljava_cup/Main;,dump_grammar,()V) (221) + Handles null at 127 +93: Get(Z,STATIC,Ljava_cup/Main;,opt_dump_states) (224) + Handles null at 127 +94: Constant(I,0) (227) + Handles null at 127 +95: ConditionalBranch(I,eq,97) (227) + Handles null at 127 +96: Invoke(STATIC,Ljava_cup/Main;,dump_machine,()V) (230) + Handles null at 127 +97: Get(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (233) + Handles null at 127 +98: Constant(I,0) (236) + Handles null at 127 +99: ConditionalBranch(I,eq,101) (236) + Handles null at 127 +100: Invoke(STATIC,Ljava_cup/Main;,dump_tables,()V) (239) + Handles null at 127 +101: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (242) + Handles null at 127 +102: Put(J,STATIC,Ljava_cup/Main;,dump_end) (245) + Handles null at 127 +103: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (248) + Handles null at 127 +104: Constant(I,0) (251) + Handles null at 127 +105: ConditionalBranch(I,eq,109) (251) + Handles null at 127 +106: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (254) + Handles null at 127 +107: Constant(Ljava/lang/String;,"Closing files...") (257) + Handles null at 127 +108: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (259) + Handles null at 127 +109: Invoke(STATIC,Ljava_cup/Main;,close_files,()V) (262) + Handles null at 127 +110: Get(Z,STATIC,Ljava_cup/Main;,no_summary) (265) + Handles null at 127 +111: Constant(I,0) (268) + Handles null at 127 +112: ConditionalBranch(I,ne,115) (268) + Handles null at 127 +113: LocalLoad(I,1) (271) + Handles null at 127 +114: Invoke(STATIC,Ljava_cup/Main;,emit_summary,(Z)V) (272) + Handles null at 127 +115: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (275) + Handles null at 127 +116: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (278) + Handles null at 127 +117: Constant(I,0) (281) + Handles null at 127 +118: ConditionalBranch(I,eq,121) (281) + Handles null at 127 +119: Constant(I,100) (284) + Handles null at 127 +120: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (286) + Handles null at 127 +121: Constant(Ljava/lang/String;,"java_cup/Main") (289) + Handles null at 127 +122: Constant(Ljava/lang/String;,"main([Ljava/lang/String;)V") (289) + Handles null at 127 +123: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (289) + Handles null at 127 +124: Constant(I,0) (289) + Handles null at 127 +125: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (289) + Handles null at 127 +126: Return(V) (289) + Handles null at 127 +127: Constant(Ljava/lang/String;,"java_cup/Main") (0) +128: Constant(Ljava/lang/String;,"main([Ljava/lang/String;)V") (0) +129: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +130: Constant(I,1) (0) +131: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +132: Throw() (0) +Instrumenting usage (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (3) +2: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (6) +3: LocalLoad(Ljava/lang/Object;,0) (9) +4: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (10) +5: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (13) +6: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (16) +7: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (19) +8: Constant(Ljava/lang/String;,"CUP v0.11b 20140808 (SVN rev 54)\ +Usage: java_cup [options] [filename]\ + and expects a specification file on standard input if no filename is given.\ + Legal options include:\ + -package name specify package generated classes go in [default none]\ + -destdir name specify the destination directory, to store the generated files in\ + -parser name specify parser class name [default \"parser\"]\ + -typearg args specify type arguments for parser class\ + -symbols name specify name for symbol constant class [default \"sym\"]\ + -interface put symbols in an interface, rather than a class\ + -nonterms put non terminals in symbol constant class\ + -expect # number of conflicts expected/allowed [default 0]\ + -compact_red compact tables by defaulting to most frequent reduce\ + -nowarn don't warn about useless productions, etc.\ + -nosummary don't print the usual summary of parse states, etc.\ + -nopositions don't propagate the left and right token position values\ + -locations generate handles xleft/xright for symbol positions in actions\ + -xmlactions make the generated parser yield its parse tree as XML\ + -genericlabels automatically generate labels to all symbols in XML mode\ + -noscanner don't refer to java_cup.runtime.Scanner\ + -progress print messages to indicate progress of the system\ + -time print time usage summary\ + -dump_grammar produce a human readable dump of the symbols and grammar\ + -dump_states produce a dump of parse state machine\ + -dump_tables produce a dump of the parse tables\ + -dump produce a dump of all of the above\ + -version print the version information for CUP and exit\ +") (22) +9: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (24) +10: Constant(I,1) (27) +11: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (28) +12: Return(V) (31) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"usage(Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 22 +5: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (3) + Handles null at 22 +6: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (6) + Handles null at 22 +7: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 22 +8: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (10) + Handles null at 22 +9: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (13) + Handles null at 22 +10: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (16) + Handles null at 22 +11: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (19) + Handles null at 22 +12: Constant(Ljava/lang/String;,"CUP v0.11b 20140808 (SVN rev 54)\ +Usage: java_cup [options] [filename]\ + and expects a specification file on standard input if no filename is given.\ + Legal options include:\ + -package name specify package generated classes go in [default none]\ + -destdir name specify the destination directory, to store the generated files in\ + -parser name specify parser class name [default \"parser\"]\ + -typearg args specify type arguments for parser class\ + -symbols name specify name for symbol constant class [default \"sym\"]\ + -interface put symbols in an interface, rather than a class\ + -nonterms put non terminals in symbol constant class\ + -expect # number of conflicts expected/allowed [default 0]\ + -compact_red compact tables by defaulting to most frequent reduce\ + -nowarn don't warn about useless productions, etc.\ + -nosummary don't print the usual summary of parse states, etc.\ + -nopositions don't propagate the left and right token position values\ + -locations generate handles xleft/xright for symbol positions in actions\ + -xmlactions make the generated parser yield its parse tree as XML\ + -genericlabels automatically generate labels to all symbols in XML mode\ + -noscanner don't refer to java_cup.runtime.Scanner\ + -progress print messages to indicate progress of the system\ + -time print time usage summary\ + -dump_grammar produce a human readable dump of the symbols and grammar\ + -dump_states produce a dump of parse state machine\ + -dump_tables produce a dump of the parse tables\ + -dump produce a dump of all of the above\ + -version print the version information for CUP and exit\ +") (22) + Handles null at 22 +13: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (24) + Handles null at 22 +14: Constant(I,1) (27) + Handles null at 22 +15: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (28) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/Main") (31) + Handles null at 22 +17: Constant(Ljava/lang/String;,"usage(Ljava/lang/String;)V") (31) + Handles null at 22 +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (31) + Handles null at 22 +19: Constant(I,0) (31) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (31) + Handles null at 22 +21: Return(V) (31) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/Main") (0) +23: Constant(Ljava/lang/String;,"usage(Ljava/lang/String;)V") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting parse_args ([Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: ArrayLength() (1) +2: LocalStore(I,1) (2) +3: Constant(I,0) (3) +4: LocalStore(I,2) (4) +5: LocalLoad(I,2) (5) +6: LocalLoad(I,1) (6) +7: ConditionalBranch(I,ge,466) (7) +8: LocalLoad(Ljava/lang/Object;,0) (10) +9: LocalLoad(I,2) (11) +10: ArrayLoad(Ljava/lang/Object;) (12) +11: Constant(Ljava/lang/String;,"-package") (13) +12: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (15) +13: Constant(I,0) (18) +14: ConditionalBranch(I,eq,43) (18) +15: LocalLoad(I,2) (21) +16: Constant(I,1) (21) +17: BinaryOp(I,add) (21) +18: LocalStore(I,2) (21) +19: LocalLoad(I,2) (24) +20: LocalLoad(I,1) (25) +21: ConditionalBranch(I,ge,36) (26) +22: LocalLoad(Ljava/lang/Object;,0) (29) +23: LocalLoad(I,2) (30) +24: ArrayLoad(Ljava/lang/Object;) (31) +25: Constant(Ljava/lang/String;,"-") (32) +26: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (34) +27: Constant(I,0) (37) +28: ConditionalBranch(I,ne,36) (37) +29: LocalLoad(Ljava/lang/Object;,0) (40) +30: LocalLoad(I,2) (41) +31: ArrayLoad(Ljava/lang/Object;) (42) +32: Constant(Ljava/lang/String;,".cup") (43) +33: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (45) +34: Constant(I,0) (48) +35: ConditionalBranch(I,eq,38) (48) +36: Constant(Ljava/lang/String;,"-package must have a name argument") (51) +37: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (53) +38: LocalLoad(Ljava/lang/Object;,0) (56) +39: LocalLoad(I,2) (57) +40: ArrayLoad(Ljava/lang/Object;) (58) +41: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (59) +42: Goto(461) (62) +43: LocalLoad(Ljava/lang/Object;,0) (65) +44: LocalLoad(I,2) (66) +45: ArrayLoad(Ljava/lang/Object;) (67) +46: Constant(Ljava/lang/String;,"-destdir") (68) +47: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (70) +48: Constant(I,0) (73) +49: ConditionalBranch(I,eq,81) (73) +50: LocalLoad(I,2) (76) +51: Constant(I,1) (76) +52: BinaryOp(I,add) (76) +53: LocalStore(I,2) (76) +54: LocalLoad(I,2) (79) +55: LocalLoad(I,1) (80) +56: ConditionalBranch(I,ge,71) (81) +57: LocalLoad(Ljava/lang/Object;,0) (84) +58: LocalLoad(I,2) (85) +59: ArrayLoad(Ljava/lang/Object;) (86) +60: Constant(Ljava/lang/String;,"-") (87) +61: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (89) +62: Constant(I,0) (92) +63: ConditionalBranch(I,ne,71) (92) +64: LocalLoad(Ljava/lang/Object;,0) (95) +65: LocalLoad(I,2) (96) +66: ArrayLoad(Ljava/lang/Object;) (97) +67: Constant(Ljava/lang/String;,".cup") (98) +68: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (100) +69: Constant(I,0) (103) +70: ConditionalBranch(I,eq,73) (103) +71: Constant(Ljava/lang/String;,"-destdir must have a name argument") (106) +72: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (108) +73: New(Ljava/io/File;,0) (111) +74: Dup(1,0) (114) +75: LocalLoad(Ljava/lang/Object;,0) (115) +76: LocalLoad(I,2) (116) +77: ArrayLoad(Ljava/lang/Object;) (117) +78: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;)V) (118) +79: Put(Ljava/io/File;,STATIC,Ljava_cup/Main;,dest_dir) (121) +80: Goto(461) (124) +81: LocalLoad(Ljava/lang/Object;,0) (127) +82: LocalLoad(I,2) (128) +83: ArrayLoad(Ljava/lang/Object;) (129) +84: Constant(Ljava/lang/String;,"-parser") (130) +85: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (132) +86: Constant(I,0) (135) +87: ConditionalBranch(I,eq,116) (135) +88: LocalLoad(I,2) (138) +89: Constant(I,1) (138) +90: BinaryOp(I,add) (138) +91: LocalStore(I,2) (138) +92: LocalLoad(I,2) (141) +93: LocalLoad(I,1) (142) +94: ConditionalBranch(I,ge,109) (143) +95: LocalLoad(Ljava/lang/Object;,0) (146) +96: LocalLoad(I,2) (147) +97: ArrayLoad(Ljava/lang/Object;) (148) +98: Constant(Ljava/lang/String;,"-") (149) +99: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (151) +100: Constant(I,0) (154) +101: ConditionalBranch(I,ne,109) (154) +102: LocalLoad(Ljava/lang/Object;,0) (157) +103: LocalLoad(I,2) (158) +104: ArrayLoad(Ljava/lang/Object;) (159) +105: Constant(Ljava/lang/String;,".cup") (160) +106: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (162) +107: Constant(I,0) (165) +108: ConditionalBranch(I,eq,111) (165) +109: Constant(Ljava/lang/String;,"-parser must have a name argument") (168) +110: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (170) +111: LocalLoad(Ljava/lang/Object;,0) (173) +112: LocalLoad(I,2) (174) +113: ArrayLoad(Ljava/lang/Object;) (175) +114: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (176) +115: Goto(461) (179) +116: LocalLoad(Ljava/lang/Object;,0) (182) +117: LocalLoad(I,2) (183) +118: ArrayLoad(Ljava/lang/Object;) (184) +119: Constant(Ljava/lang/String;,"-symbols") (185) +120: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (187) +121: Constant(I,0) (190) +122: ConditionalBranch(I,eq,151) (190) +123: LocalLoad(I,2) (193) +124: Constant(I,1) (193) +125: BinaryOp(I,add) (193) +126: LocalStore(I,2) (193) +127: LocalLoad(I,2) (196) +128: LocalLoad(I,1) (197) +129: ConditionalBranch(I,ge,144) (198) +130: LocalLoad(Ljava/lang/Object;,0) (201) +131: LocalLoad(I,2) (202) +132: ArrayLoad(Ljava/lang/Object;) (203) +133: Constant(Ljava/lang/String;,"-") (204) +134: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (206) +135: Constant(I,0) (209) +136: ConditionalBranch(I,ne,144) (209) +137: LocalLoad(Ljava/lang/Object;,0) (212) +138: LocalLoad(I,2) (213) +139: ArrayLoad(Ljava/lang/Object;) (214) +140: Constant(Ljava/lang/String;,".cup") (215) +141: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (217) +142: Constant(I,0) (220) +143: ConditionalBranch(I,eq,146) (220) +144: Constant(Ljava/lang/String;,"-symbols must have a name argument") (223) +145: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (225) +146: LocalLoad(Ljava/lang/Object;,0) (228) +147: LocalLoad(I,2) (229) +148: ArrayLoad(Ljava/lang/Object;) (230) +149: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (231) +150: Goto(461) (234) +151: LocalLoad(Ljava/lang/Object;,0) (237) +152: LocalLoad(I,2) (238) +153: ArrayLoad(Ljava/lang/Object;) (239) +154: Constant(Ljava/lang/String;,"-nonterms") (240) +155: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (242) +156: Constant(I,0) (245) +157: ConditionalBranch(I,eq,161) (245) +158: Constant(I,1) (248) +159: Put(Z,STATIC,Ljava_cup/Main;,include_non_terms) (249) +160: Goto(461) (252) +161: LocalLoad(Ljava/lang/Object;,0) (255) +162: LocalLoad(I,2) (256) +163: ArrayLoad(Ljava/lang/Object;) (257) +164: Constant(Ljava/lang/String;,"-expect") (258) +165: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (260) +166: Constant(I,0) (263) +167: ConditionalBranch(I,eq,201) (263) +168: LocalLoad(I,2) (266) +169: Constant(I,1) (266) +170: BinaryOp(I,add) (266) +171: LocalStore(I,2) (266) +172: LocalLoad(I,2) (269) +173: LocalLoad(I,1) (270) +174: ConditionalBranch(I,ge,189) (271) +175: LocalLoad(Ljava/lang/Object;,0) (274) +176: LocalLoad(I,2) (275) +177: ArrayLoad(Ljava/lang/Object;) (276) +178: Constant(Ljava/lang/String;,"-") (277) +179: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (279) +180: Constant(I,0) (282) +181: ConditionalBranch(I,ne,189) (282) +182: LocalLoad(Ljava/lang/Object;,0) (285) +183: LocalLoad(I,2) (286) +184: ArrayLoad(Ljava/lang/Object;) (287) +185: Constant(Ljava/lang/String;,".cup") (288) +186: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (290) +187: Constant(I,0) (293) +188: ConditionalBranch(I,eq,191) (293) +189: Constant(Ljava/lang/String;,"-expect must have a name argument") (296) +190: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (298) +191: LocalLoad(Ljava/lang/Object;,0) (301) + Handles Ljava/lang/NumberFormatException; at 197 +192: LocalLoad(I,2) (302) + Handles Ljava/lang/NumberFormatException; at 197 +193: ArrayLoad(Ljava/lang/Object;) (303) + Handles Ljava/lang/NumberFormatException; at 197 +194: Invoke(STATIC,Ljava/lang/Integer;,parseInt,(Ljava/lang/String;)I) (304) + Handles Ljava/lang/NumberFormatException; at 197 +195: Put(I,STATIC,Ljava_cup/Main;,expect_conflicts) (307) + Handles Ljava/lang/NumberFormatException; at 197 +196: Goto(461) (310) +197: LocalStore(Ljava/lang/Object;,3) (313) +198: Constant(Ljava/lang/String;,"-expect must be followed by a decimal integer") (314) +199: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (316) +200: Goto(461) (319) +201: LocalLoad(Ljava/lang/Object;,0) (322) +202: LocalLoad(I,2) (323) +203: ArrayLoad(Ljava/lang/Object;) (324) +204: Constant(Ljava/lang/String;,"-compact_red") (325) +205: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (327) +206: Constant(I,0) (330) +207: ConditionalBranch(I,eq,211) (330) +208: Constant(I,1) (333) +209: Put(Z,STATIC,Ljava_cup/Main;,opt_compact_red) (334) +210: Goto(461) (337) +211: LocalLoad(Ljava/lang/Object;,0) (340) +212: LocalLoad(I,2) (341) +213: ArrayLoad(Ljava/lang/Object;) (342) +214: Constant(Ljava/lang/String;,"-nosummary") (343) +215: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (345) +216: Constant(I,0) (348) +217: ConditionalBranch(I,eq,221) (348) +218: Constant(I,1) (351) +219: Put(Z,STATIC,Ljava_cup/Main;,no_summary) (352) +220: Goto(461) (355) +221: LocalLoad(Ljava/lang/Object;,0) (358) +222: LocalLoad(I,2) (359) +223: ArrayLoad(Ljava/lang/Object;) (360) +224: Constant(Ljava/lang/String;,"-nowarn") (361) +225: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (363) +226: Constant(I,0) (366) +227: ConditionalBranch(I,eq,231) (366) +228: Constant(I,1) (369) +229: Put(Z,STATIC,Ljava_cup/emit;,nowarn) (370) +230: Goto(461) (373) +231: LocalLoad(Ljava/lang/Object;,0) (376) +232: LocalLoad(I,2) (377) +233: ArrayLoad(Ljava/lang/Object;) (378) +234: Constant(Ljava/lang/String;,"-dump_states") (379) +235: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (381) +236: Constant(I,0) (384) +237: ConditionalBranch(I,eq,241) (384) +238: Constant(I,1) (387) +239: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_states) (388) +240: Goto(461) (391) +241: LocalLoad(Ljava/lang/Object;,0) (394) +242: LocalLoad(I,2) (395) +243: ArrayLoad(Ljava/lang/Object;) (396) +244: Constant(Ljava/lang/String;,"-dump_tables") (397) +245: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (399) +246: Constant(I,0) (402) +247: ConditionalBranch(I,eq,251) (402) +248: Constant(I,1) (405) +249: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (406) +250: Goto(461) (409) +251: LocalLoad(Ljava/lang/Object;,0) (412) +252: LocalLoad(I,2) (413) +253: ArrayLoad(Ljava/lang/Object;) (414) +254: Constant(Ljava/lang/String;,"-progress") (415) +255: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (417) +256: Constant(I,0) (420) +257: ConditionalBranch(I,eq,261) (420) +258: Constant(I,1) (423) +259: Put(Z,STATIC,Ljava_cup/Main;,print_progress) (424) +260: Goto(461) (427) +261: LocalLoad(Ljava/lang/Object;,0) (430) +262: LocalLoad(I,2) (431) +263: ArrayLoad(Ljava/lang/Object;) (432) +264: Constant(Ljava/lang/String;,"-dump_grammar") (433) +265: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (435) +266: Constant(I,0) (438) +267: ConditionalBranch(I,eq,271) (438) +268: Constant(I,1) (441) +269: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_grammar) (442) +270: Goto(461) (445) +271: LocalLoad(Ljava/lang/Object;,0) (448) +272: LocalLoad(I,2) (449) +273: ArrayLoad(Ljava/lang/Object;) (450) +274: Constant(Ljava/lang/String;,"-dump") (451) +275: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (453) +276: Constant(I,0) (456) +277: ConditionalBranch(I,eq,285) (456) +278: Constant(I,1) (459) +279: Dup(1,0) (460) +280: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_grammar) (461) +281: Dup(1,0) (464) +282: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (465) +283: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_states) (468) +284: Goto(461) (471) +285: LocalLoad(Ljava/lang/Object;,0) (474) +286: LocalLoad(I,2) (475) +287: ArrayLoad(Ljava/lang/Object;) (476) +288: Constant(Ljava/lang/String;,"-time") (477) +289: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (479) +290: Constant(I,0) (482) +291: ConditionalBranch(I,eq,295) (482) +292: Constant(I,1) (485) +293: Put(Z,STATIC,Ljava_cup/Main;,opt_show_timing) (486) +294: Goto(461) (489) +295: LocalLoad(Ljava/lang/Object;,0) (492) +296: LocalLoad(I,2) (493) +297: ArrayLoad(Ljava/lang/Object;) (494) +298: Constant(Ljava/lang/String;,"-debug") (495) +299: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (497) +300: Constant(I,0) (500) +301: ConditionalBranch(I,eq,305) (500) +302: Constant(I,1) (503) +303: Put(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (504) +304: Goto(461) (507) +305: LocalLoad(Ljava/lang/Object;,0) (510) +306: LocalLoad(I,2) (511) +307: ArrayLoad(Ljava/lang/Object;) (512) +308: Constant(Ljava/lang/String;,"-nopositions") (513) +309: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (515) +310: Constant(I,0) (518) +311: ConditionalBranch(I,eq,315) (518) +312: Constant(I,0) (521) +313: Put(Z,STATIC,Ljava_cup/Main;,lr_values) (522) +314: Goto(461) (525) +315: LocalLoad(Ljava/lang/Object;,0) (528) +316: LocalLoad(I,2) (529) +317: ArrayLoad(Ljava/lang/Object;) (530) +318: Constant(Ljava/lang/String;,"-locations") (531) +319: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (533) +320: Constant(I,0) (536) +321: ConditionalBranch(I,eq,325) (536) +322: Constant(I,1) (539) +323: Put(Z,STATIC,Ljava_cup/Main;,locations) (540) +324: Goto(461) (543) +325: LocalLoad(Ljava/lang/Object;,0) (546) +326: LocalLoad(I,2) (547) +327: ArrayLoad(Ljava/lang/Object;) (548) +328: Constant(Ljava/lang/String;,"-xmlactions") (549) +329: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (551) +330: Constant(I,0) (554) +331: ConditionalBranch(I,eq,335) (554) +332: Constant(I,1) (557) +333: Put(Z,STATIC,Ljava_cup/Main;,xmlactions) (558) +334: Goto(461) (561) +335: LocalLoad(Ljava/lang/Object;,0) (564) +336: LocalLoad(I,2) (565) +337: ArrayLoad(Ljava/lang/Object;) (566) +338: Constant(Ljava/lang/String;,"-genericlabels") (567) +339: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (569) +340: Constant(I,0) (572) +341: ConditionalBranch(I,eq,345) (572) +342: Constant(I,1) (575) +343: Put(Z,STATIC,Ljava_cup/Main;,genericlabels) (576) +344: Goto(461) (579) +345: LocalLoad(Ljava/lang/Object;,0) (582) +346: LocalLoad(I,2) (583) +347: ArrayLoad(Ljava/lang/Object;) (584) +348: Constant(Ljava/lang/String;,"-interface") (585) +349: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (587) +350: Constant(I,0) (590) +351: ConditionalBranch(I,eq,355) (590) +352: Constant(I,1) (593) +353: Put(Z,STATIC,Ljava_cup/Main;,sym_interface) (594) +354: Goto(461) (597) +355: LocalLoad(Ljava/lang/Object;,0) (600) +356: LocalLoad(I,2) (601) +357: ArrayLoad(Ljava/lang/Object;) (602) +358: Constant(Ljava/lang/String;,"-noscanner") (603) +359: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (605) +360: Constant(I,0) (608) +361: ConditionalBranch(I,eq,365) (608) +362: Constant(I,1) (611) +363: Put(Z,STATIC,Ljava_cup/Main;,suppress_scanner) (612) +364: Goto(461) (615) +365: LocalLoad(Ljava/lang/Object;,0) (618) +366: LocalLoad(I,2) (619) +367: ArrayLoad(Ljava/lang/Object;) (620) +368: Constant(Ljava/lang/String;,"-version") (621) +369: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (623) +370: Constant(I,0) (626) +371: ConditionalBranch(I,eq,378) (626) +372: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (629) +373: Constant(Ljava/lang/String;,"CUP v0.11b 20140808 (SVN rev 54)") (632) +374: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (634) +375: Constant(I,1) (637) +376: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (638) +377: Goto(461) (641) +378: LocalLoad(Ljava/lang/Object;,0) (644) +379: LocalLoad(I,2) (645) +380: ArrayLoad(Ljava/lang/Object;) (646) +381: Constant(Ljava/lang/String;,"-typearg") (647) +382: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (649) +383: Constant(I,0) (652) +384: ConditionalBranch(I,eq,413) (652) +385: LocalLoad(I,2) (655) +386: Constant(I,1) (655) +387: BinaryOp(I,add) (655) +388: LocalStore(I,2) (655) +389: LocalLoad(I,2) (658) +390: LocalLoad(I,1) (659) +391: ConditionalBranch(I,ge,406) (660) +392: LocalLoad(Ljava/lang/Object;,0) (663) +393: LocalLoad(I,2) (664) +394: ArrayLoad(Ljava/lang/Object;) (665) +395: Constant(Ljava/lang/String;,"-") (666) +396: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (668) +397: Constant(I,0) (671) +398: ConditionalBranch(I,ne,406) (671) +399: LocalLoad(Ljava/lang/Object;,0) (674) +400: LocalLoad(I,2) (675) +401: ArrayLoad(Ljava/lang/Object;) (676) +402: Constant(Ljava/lang/String;,".cup") (677) +403: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (679) +404: Constant(I,0) (682) +405: ConditionalBranch(I,eq,408) (682) +406: Constant(Ljava/lang/String;,"-symbols must have a name argument") (685) +407: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (687) +408: LocalLoad(Ljava/lang/Object;,0) (690) +409: LocalLoad(I,2) (691) +410: ArrayLoad(Ljava/lang/Object;) (692) +411: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,class_type_argument) (693) +412: Goto(461) (696) +413: LocalLoad(Ljava/lang/Object;,0) (699) +414: LocalLoad(I,2) (700) +415: ArrayLoad(Ljava/lang/Object;) (701) +416: Constant(Ljava/lang/String;,"-") (702) +417: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (704) +418: Constant(I,0) (707) +419: ConditionalBranch(I,ne,448) (707) +420: LocalLoad(I,2) (710) +421: LocalLoad(I,1) (711) +422: Constant(I,1) (712) +423: BinaryOp(I,sub) (713) +424: ConditionalBranch(I,ne,448) (714) +425: New(Ljava/io/FileInputStream;,0) (717) + Handles Ljava/io/FileNotFoundException; at 433 +426: Dup(1,0) (720) + Handles Ljava/io/FileNotFoundException; at 433 +427: LocalLoad(Ljava/lang/Object;,0) (721) + Handles Ljava/io/FileNotFoundException; at 433 +428: LocalLoad(I,2) (722) + Handles Ljava/io/FileNotFoundException; at 433 +429: ArrayLoad(Ljava/lang/Object;) (723) + Handles Ljava/io/FileNotFoundException; at 433 +430: Invoke(SPECIAL,Ljava/io/FileInputStream;,,(Ljava/lang/String;)V) (724) + Handles Ljava/io/FileNotFoundException; at 433 +431: Invoke(STATIC,Ljava/lang/System;,setIn,(Ljava/io/InputStream;)V) (727) + Handles Ljava/io/FileNotFoundException; at 433 +432: Goto(461) (730) +433: LocalStore(Ljava/lang/Object;,3) (733) +434: New(Ljava/lang/StringBuilder;,0) (734) +435: Dup(1,0) (737) +436: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (738) +437: Constant(Ljava/lang/String;,"Unable to open \"") (741) +438: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (743) +439: LocalLoad(Ljava/lang/Object;,0) (746) +440: LocalLoad(I,2) (747) +441: ArrayLoad(Ljava/lang/Object;) (748) +442: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (749) +443: Constant(Ljava/lang/String;,"\" for input") (752) +444: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (754) +445: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (757) +446: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (760) +447: Goto(461) (763) +448: New(Ljava/lang/StringBuilder;,0) (766) +449: Dup(1,0) (769) +450: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (770) +451: Constant(Ljava/lang/String;,"Unrecognized option \"") (773) +452: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (775) +453: LocalLoad(Ljava/lang/Object;,0) (778) +454: LocalLoad(I,2) (779) +455: ArrayLoad(Ljava/lang/Object;) (780) +456: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (781) +457: Constant(Ljava/lang/String;,"\"") (784) +458: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (786) +459: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (789) +460: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (792) +461: LocalLoad(I,2) (795) +462: Constant(I,1) (795) +463: BinaryOp(I,add) (795) +464: LocalStore(I,2) (795) +465: Goto(5) (798) +466: Return(V) (801) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"parse_args([Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 476 +5: ArrayLength() (1) + Handles null at 476 +6: LocalStore(I,1) (2) + Handles null at 476 +7: Constant(I,0) (3) + Handles null at 476 +8: LocalStore(I,2) (4) + Handles null at 476 +9: LocalLoad(I,2) (5) + Handles null at 476 +10: LocalLoad(I,1) (6) + Handles null at 476 +11: ConditionalBranch(I,ge,470) (7) + Handles null at 476 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 476 +13: LocalLoad(I,2) (11) + Handles null at 476 +14: ArrayLoad(Ljava/lang/Object;) (12) + Handles null at 476 +15: Constant(Ljava/lang/String;,"-package") (13) + Handles null at 476 +16: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (15) + Handles null at 476 +17: Constant(I,0) (18) + Handles null at 476 +18: ConditionalBranch(I,eq,47) (18) + Handles null at 476 +19: LocalLoad(I,2) (21) + Handles null at 476 +20: Constant(I,1) (21) + Handles null at 476 +21: BinaryOp(I,add) (21) + Handles null at 476 +22: LocalStore(I,2) (21) + Handles null at 476 +23: LocalLoad(I,2) (24) + Handles null at 476 +24: LocalLoad(I,1) (25) + Handles null at 476 +25: ConditionalBranch(I,ge,40) (26) + Handles null at 476 +26: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 476 +27: LocalLoad(I,2) (30) + Handles null at 476 +28: ArrayLoad(Ljava/lang/Object;) (31) + Handles null at 476 +29: Constant(Ljava/lang/String;,"-") (32) + Handles null at 476 +30: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (34) + Handles null at 476 +31: Constant(I,0) (37) + Handles null at 476 +32: ConditionalBranch(I,ne,40) (37) + Handles null at 476 +33: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 476 +34: LocalLoad(I,2) (41) + Handles null at 476 +35: ArrayLoad(Ljava/lang/Object;) (42) + Handles null at 476 +36: Constant(Ljava/lang/String;,".cup") (43) + Handles null at 476 +37: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (45) + Handles null at 476 +38: Constant(I,0) (48) + Handles null at 476 +39: ConditionalBranch(I,eq,42) (48) + Handles null at 476 +40: Constant(Ljava/lang/String;,"-package must have a name argument") (51) + Handles null at 476 +41: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (53) + Handles null at 476 +42: LocalLoad(Ljava/lang/Object;,0) (56) + Handles null at 476 +43: LocalLoad(I,2) (57) + Handles null at 476 +44: ArrayLoad(Ljava/lang/Object;) (58) + Handles null at 476 +45: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (59) + Handles null at 476 +46: Goto(465) (62) + Handles null at 476 +47: LocalLoad(Ljava/lang/Object;,0) (65) + Handles null at 476 +48: LocalLoad(I,2) (66) + Handles null at 476 +49: ArrayLoad(Ljava/lang/Object;) (67) + Handles null at 476 +50: Constant(Ljava/lang/String;,"-destdir") (68) + Handles null at 476 +51: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (70) + Handles null at 476 +52: Constant(I,0) (73) + Handles null at 476 +53: ConditionalBranch(I,eq,85) (73) + Handles null at 476 +54: LocalLoad(I,2) (76) + Handles null at 476 +55: Constant(I,1) (76) + Handles null at 476 +56: BinaryOp(I,add) (76) + Handles null at 476 +57: LocalStore(I,2) (76) + Handles null at 476 +58: LocalLoad(I,2) (79) + Handles null at 476 +59: LocalLoad(I,1) (80) + Handles null at 476 +60: ConditionalBranch(I,ge,75) (81) + Handles null at 476 +61: LocalLoad(Ljava/lang/Object;,0) (84) + Handles null at 476 +62: LocalLoad(I,2) (85) + Handles null at 476 +63: ArrayLoad(Ljava/lang/Object;) (86) + Handles null at 476 +64: Constant(Ljava/lang/String;,"-") (87) + Handles null at 476 +65: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (89) + Handles null at 476 +66: Constant(I,0) (92) + Handles null at 476 +67: ConditionalBranch(I,ne,75) (92) + Handles null at 476 +68: LocalLoad(Ljava/lang/Object;,0) (95) + Handles null at 476 +69: LocalLoad(I,2) (96) + Handles null at 476 +70: ArrayLoad(Ljava/lang/Object;) (97) + Handles null at 476 +71: Constant(Ljava/lang/String;,".cup") (98) + Handles null at 476 +72: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (100) + Handles null at 476 +73: Constant(I,0) (103) + Handles null at 476 +74: ConditionalBranch(I,eq,77) (103) + Handles null at 476 +75: Constant(Ljava/lang/String;,"-destdir must have a name argument") (106) + Handles null at 476 +76: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (108) + Handles null at 476 +77: New(Ljava/io/File;,0) (111) + Handles null at 476 +78: Dup(1,0) (114) + Handles null at 476 +79: LocalLoad(Ljava/lang/Object;,0) (115) + Handles null at 476 +80: LocalLoad(I,2) (116) + Handles null at 476 +81: ArrayLoad(Ljava/lang/Object;) (117) + Handles null at 476 +82: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;)V) (118) + Handles null at 476 +83: Put(Ljava/io/File;,STATIC,Ljava_cup/Main;,dest_dir) (121) + Handles null at 476 +84: Goto(465) (124) + Handles null at 476 +85: LocalLoad(Ljava/lang/Object;,0) (127) + Handles null at 476 +86: LocalLoad(I,2) (128) + Handles null at 476 +87: ArrayLoad(Ljava/lang/Object;) (129) + Handles null at 476 +88: Constant(Ljava/lang/String;,"-parser") (130) + Handles null at 476 +89: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (132) + Handles null at 476 +90: Constant(I,0) (135) + Handles null at 476 +91: ConditionalBranch(I,eq,120) (135) + Handles null at 476 +92: LocalLoad(I,2) (138) + Handles null at 476 +93: Constant(I,1) (138) + Handles null at 476 +94: BinaryOp(I,add) (138) + Handles null at 476 +95: LocalStore(I,2) (138) + Handles null at 476 +96: LocalLoad(I,2) (141) + Handles null at 476 +97: LocalLoad(I,1) (142) + Handles null at 476 +98: ConditionalBranch(I,ge,113) (143) + Handles null at 476 +99: LocalLoad(Ljava/lang/Object;,0) (146) + Handles null at 476 +100: LocalLoad(I,2) (147) + Handles null at 476 +101: ArrayLoad(Ljava/lang/Object;) (148) + Handles null at 476 +102: Constant(Ljava/lang/String;,"-") (149) + Handles null at 476 +103: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (151) + Handles null at 476 +104: Constant(I,0) (154) + Handles null at 476 +105: ConditionalBranch(I,ne,113) (154) + Handles null at 476 +106: LocalLoad(Ljava/lang/Object;,0) (157) + Handles null at 476 +107: LocalLoad(I,2) (158) + Handles null at 476 +108: ArrayLoad(Ljava/lang/Object;) (159) + Handles null at 476 +109: Constant(Ljava/lang/String;,".cup") (160) + Handles null at 476 +110: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (162) + Handles null at 476 +111: Constant(I,0) (165) + Handles null at 476 +112: ConditionalBranch(I,eq,115) (165) + Handles null at 476 +113: Constant(Ljava/lang/String;,"-parser must have a name argument") (168) + Handles null at 476 +114: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (170) + Handles null at 476 +115: LocalLoad(Ljava/lang/Object;,0) (173) + Handles null at 476 +116: LocalLoad(I,2) (174) + Handles null at 476 +117: ArrayLoad(Ljava/lang/Object;) (175) + Handles null at 476 +118: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (176) + Handles null at 476 +119: Goto(465) (179) + Handles null at 476 +120: LocalLoad(Ljava/lang/Object;,0) (182) + Handles null at 476 +121: LocalLoad(I,2) (183) + Handles null at 476 +122: ArrayLoad(Ljava/lang/Object;) (184) + Handles null at 476 +123: Constant(Ljava/lang/String;,"-symbols") (185) + Handles null at 476 +124: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (187) + Handles null at 476 +125: Constant(I,0) (190) + Handles null at 476 +126: ConditionalBranch(I,eq,155) (190) + Handles null at 476 +127: LocalLoad(I,2) (193) + Handles null at 476 +128: Constant(I,1) (193) + Handles null at 476 +129: BinaryOp(I,add) (193) + Handles null at 476 +130: LocalStore(I,2) (193) + Handles null at 476 +131: LocalLoad(I,2) (196) + Handles null at 476 +132: LocalLoad(I,1) (197) + Handles null at 476 +133: ConditionalBranch(I,ge,148) (198) + Handles null at 476 +134: LocalLoad(Ljava/lang/Object;,0) (201) + Handles null at 476 +135: LocalLoad(I,2) (202) + Handles null at 476 +136: ArrayLoad(Ljava/lang/Object;) (203) + Handles null at 476 +137: Constant(Ljava/lang/String;,"-") (204) + Handles null at 476 +138: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (206) + Handles null at 476 +139: Constant(I,0) (209) + Handles null at 476 +140: ConditionalBranch(I,ne,148) (209) + Handles null at 476 +141: LocalLoad(Ljava/lang/Object;,0) (212) + Handles null at 476 +142: LocalLoad(I,2) (213) + Handles null at 476 +143: ArrayLoad(Ljava/lang/Object;) (214) + Handles null at 476 +144: Constant(Ljava/lang/String;,".cup") (215) + Handles null at 476 +145: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (217) + Handles null at 476 +146: Constant(I,0) (220) + Handles null at 476 +147: ConditionalBranch(I,eq,150) (220) + Handles null at 476 +148: Constant(Ljava/lang/String;,"-symbols must have a name argument") (223) + Handles null at 476 +149: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (225) + Handles null at 476 +150: LocalLoad(Ljava/lang/Object;,0) (228) + Handles null at 476 +151: LocalLoad(I,2) (229) + Handles null at 476 +152: ArrayLoad(Ljava/lang/Object;) (230) + Handles null at 476 +153: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (231) + Handles null at 476 +154: Goto(465) (234) + Handles null at 476 +155: LocalLoad(Ljava/lang/Object;,0) (237) + Handles null at 476 +156: LocalLoad(I,2) (238) + Handles null at 476 +157: ArrayLoad(Ljava/lang/Object;) (239) + Handles null at 476 +158: Constant(Ljava/lang/String;,"-nonterms") (240) + Handles null at 476 +159: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (242) + Handles null at 476 +160: Constant(I,0) (245) + Handles null at 476 +161: ConditionalBranch(I,eq,165) (245) + Handles null at 476 +162: Constant(I,1) (248) + Handles null at 476 +163: Put(Z,STATIC,Ljava_cup/Main;,include_non_terms) (249) + Handles null at 476 +164: Goto(465) (252) + Handles null at 476 +165: LocalLoad(Ljava/lang/Object;,0) (255) + Handles null at 476 +166: LocalLoad(I,2) (256) + Handles null at 476 +167: ArrayLoad(Ljava/lang/Object;) (257) + Handles null at 476 +168: Constant(Ljava/lang/String;,"-expect") (258) + Handles null at 476 +169: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (260) + Handles null at 476 +170: Constant(I,0) (263) + Handles null at 476 +171: ConditionalBranch(I,eq,205) (263) + Handles null at 476 +172: LocalLoad(I,2) (266) + Handles null at 476 +173: Constant(I,1) (266) + Handles null at 476 +174: BinaryOp(I,add) (266) + Handles null at 476 +175: LocalStore(I,2) (266) + Handles null at 476 +176: LocalLoad(I,2) (269) + Handles null at 476 +177: LocalLoad(I,1) (270) + Handles null at 476 +178: ConditionalBranch(I,ge,193) (271) + Handles null at 476 +179: LocalLoad(Ljava/lang/Object;,0) (274) + Handles null at 476 +180: LocalLoad(I,2) (275) + Handles null at 476 +181: ArrayLoad(Ljava/lang/Object;) (276) + Handles null at 476 +182: Constant(Ljava/lang/String;,"-") (277) + Handles null at 476 +183: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (279) + Handles null at 476 +184: Constant(I,0) (282) + Handles null at 476 +185: ConditionalBranch(I,ne,193) (282) + Handles null at 476 +186: LocalLoad(Ljava/lang/Object;,0) (285) + Handles null at 476 +187: LocalLoad(I,2) (286) + Handles null at 476 +188: ArrayLoad(Ljava/lang/Object;) (287) + Handles null at 476 +189: Constant(Ljava/lang/String;,".cup") (288) + Handles null at 476 +190: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (290) + Handles null at 476 +191: Constant(I,0) (293) + Handles null at 476 +192: ConditionalBranch(I,eq,195) (293) + Handles null at 476 +193: Constant(Ljava/lang/String;,"-expect must have a name argument") (296) + Handles null at 476 +194: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (298) + Handles null at 476 +195: LocalLoad(Ljava/lang/Object;,0) (301) + Handles Ljava/lang/NumberFormatException; at 201 + Handles null at 476 +196: LocalLoad(I,2) (302) + Handles Ljava/lang/NumberFormatException; at 201 + Handles null at 476 +197: ArrayLoad(Ljava/lang/Object;) (303) + Handles Ljava/lang/NumberFormatException; at 201 + Handles null at 476 +198: Invoke(STATIC,Ljava/lang/Integer;,parseInt,(Ljava/lang/String;)I) (304) + Handles Ljava/lang/NumberFormatException; at 201 + Handles null at 476 +199: Put(I,STATIC,Ljava_cup/Main;,expect_conflicts) (307) + Handles Ljava/lang/NumberFormatException; at 201 + Handles null at 476 +200: Goto(465) (310) + Handles null at 476 +201: LocalStore(Ljava/lang/Object;,3) (313) + Handles null at 476 +202: Constant(Ljava/lang/String;,"-expect must be followed by a decimal integer") (314) + Handles null at 476 +203: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (316) + Handles null at 476 +204: Goto(465) (319) + Handles null at 476 +205: LocalLoad(Ljava/lang/Object;,0) (322) + Handles null at 476 +206: LocalLoad(I,2) (323) + Handles null at 476 +207: ArrayLoad(Ljava/lang/Object;) (324) + Handles null at 476 +208: Constant(Ljava/lang/String;,"-compact_red") (325) + Handles null at 476 +209: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (327) + Handles null at 476 +210: Constant(I,0) (330) + Handles null at 476 +211: ConditionalBranch(I,eq,215) (330) + Handles null at 476 +212: Constant(I,1) (333) + Handles null at 476 +213: Put(Z,STATIC,Ljava_cup/Main;,opt_compact_red) (334) + Handles null at 476 +214: Goto(465) (337) + Handles null at 476 +215: LocalLoad(Ljava/lang/Object;,0) (340) + Handles null at 476 +216: LocalLoad(I,2) (341) + Handles null at 476 +217: ArrayLoad(Ljava/lang/Object;) (342) + Handles null at 476 +218: Constant(Ljava/lang/String;,"-nosummary") (343) + Handles null at 476 +219: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (345) + Handles null at 476 +220: Constant(I,0) (348) + Handles null at 476 +221: ConditionalBranch(I,eq,225) (348) + Handles null at 476 +222: Constant(I,1) (351) + Handles null at 476 +223: Put(Z,STATIC,Ljava_cup/Main;,no_summary) (352) + Handles null at 476 +224: Goto(465) (355) + Handles null at 476 +225: LocalLoad(Ljava/lang/Object;,0) (358) + Handles null at 476 +226: LocalLoad(I,2) (359) + Handles null at 476 +227: ArrayLoad(Ljava/lang/Object;) (360) + Handles null at 476 +228: Constant(Ljava/lang/String;,"-nowarn") (361) + Handles null at 476 +229: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (363) + Handles null at 476 +230: Constant(I,0) (366) + Handles null at 476 +231: ConditionalBranch(I,eq,235) (366) + Handles null at 476 +232: Constant(I,1) (369) + Handles null at 476 +233: Put(Z,STATIC,Ljava_cup/emit;,nowarn) (370) + Handles null at 476 +234: Goto(465) (373) + Handles null at 476 +235: LocalLoad(Ljava/lang/Object;,0) (376) + Handles null at 476 +236: LocalLoad(I,2) (377) + Handles null at 476 +237: ArrayLoad(Ljava/lang/Object;) (378) + Handles null at 476 +238: Constant(Ljava/lang/String;,"-dump_states") (379) + Handles null at 476 +239: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (381) + Handles null at 476 +240: Constant(I,0) (384) + Handles null at 476 +241: ConditionalBranch(I,eq,245) (384) + Handles null at 476 +242: Constant(I,1) (387) + Handles null at 476 +243: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_states) (388) + Handles null at 476 +244: Goto(465) (391) + Handles null at 476 +245: LocalLoad(Ljava/lang/Object;,0) (394) + Handles null at 476 +246: LocalLoad(I,2) (395) + Handles null at 476 +247: ArrayLoad(Ljava/lang/Object;) (396) + Handles null at 476 +248: Constant(Ljava/lang/String;,"-dump_tables") (397) + Handles null at 476 +249: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (399) + Handles null at 476 +250: Constant(I,0) (402) + Handles null at 476 +251: ConditionalBranch(I,eq,255) (402) + Handles null at 476 +252: Constant(I,1) (405) + Handles null at 476 +253: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (406) + Handles null at 476 +254: Goto(465) (409) + Handles null at 476 +255: LocalLoad(Ljava/lang/Object;,0) (412) + Handles null at 476 +256: LocalLoad(I,2) (413) + Handles null at 476 +257: ArrayLoad(Ljava/lang/Object;) (414) + Handles null at 476 +258: Constant(Ljava/lang/String;,"-progress") (415) + Handles null at 476 +259: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (417) + Handles null at 476 +260: Constant(I,0) (420) + Handles null at 476 +261: ConditionalBranch(I,eq,265) (420) + Handles null at 476 +262: Constant(I,1) (423) + Handles null at 476 +263: Put(Z,STATIC,Ljava_cup/Main;,print_progress) (424) + Handles null at 476 +264: Goto(465) (427) + Handles null at 476 +265: LocalLoad(Ljava/lang/Object;,0) (430) + Handles null at 476 +266: LocalLoad(I,2) (431) + Handles null at 476 +267: ArrayLoad(Ljava/lang/Object;) (432) + Handles null at 476 +268: Constant(Ljava/lang/String;,"-dump_grammar") (433) + Handles null at 476 +269: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (435) + Handles null at 476 +270: Constant(I,0) (438) + Handles null at 476 +271: ConditionalBranch(I,eq,275) (438) + Handles null at 476 +272: Constant(I,1) (441) + Handles null at 476 +273: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_grammar) (442) + Handles null at 476 +274: Goto(465) (445) + Handles null at 476 +275: LocalLoad(Ljava/lang/Object;,0) (448) + Handles null at 476 +276: LocalLoad(I,2) (449) + Handles null at 476 +277: ArrayLoad(Ljava/lang/Object;) (450) + Handles null at 476 +278: Constant(Ljava/lang/String;,"-dump") (451) + Handles null at 476 +279: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (453) + Handles null at 476 +280: Constant(I,0) (456) + Handles null at 476 +281: ConditionalBranch(I,eq,289) (456) + Handles null at 476 +282: Constant(I,1) (459) + Handles null at 476 +283: Dup(1,0) (460) + Handles null at 476 +284: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_grammar) (461) + Handles null at 476 +285: Dup(1,0) (464) + Handles null at 476 +286: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (465) + Handles null at 476 +287: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_states) (468) + Handles null at 476 +288: Goto(465) (471) + Handles null at 476 +289: LocalLoad(Ljava/lang/Object;,0) (474) + Handles null at 476 +290: LocalLoad(I,2) (475) + Handles null at 476 +291: ArrayLoad(Ljava/lang/Object;) (476) + Handles null at 476 +292: Constant(Ljava/lang/String;,"-time") (477) + Handles null at 476 +293: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (479) + Handles null at 476 +294: Constant(I,0) (482) + Handles null at 476 +295: ConditionalBranch(I,eq,299) (482) + Handles null at 476 +296: Constant(I,1) (485) + Handles null at 476 +297: Put(Z,STATIC,Ljava_cup/Main;,opt_show_timing) (486) + Handles null at 476 +298: Goto(465) (489) + Handles null at 476 +299: LocalLoad(Ljava/lang/Object;,0) (492) + Handles null at 476 +300: LocalLoad(I,2) (493) + Handles null at 476 +301: ArrayLoad(Ljava/lang/Object;) (494) + Handles null at 476 +302: Constant(Ljava/lang/String;,"-debug") (495) + Handles null at 476 +303: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (497) + Handles null at 476 +304: Constant(I,0) (500) + Handles null at 476 +305: ConditionalBranch(I,eq,309) (500) + Handles null at 476 +306: Constant(I,1) (503) + Handles null at 476 +307: Put(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (504) + Handles null at 476 +308: Goto(465) (507) + Handles null at 476 +309: LocalLoad(Ljava/lang/Object;,0) (510) + Handles null at 476 +310: LocalLoad(I,2) (511) + Handles null at 476 +311: ArrayLoad(Ljava/lang/Object;) (512) + Handles null at 476 +312: Constant(Ljava/lang/String;,"-nopositions") (513) + Handles null at 476 +313: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (515) + Handles null at 476 +314: Constant(I,0) (518) + Handles null at 476 +315: ConditionalBranch(I,eq,319) (518) + Handles null at 476 +316: Constant(I,0) (521) + Handles null at 476 +317: Put(Z,STATIC,Ljava_cup/Main;,lr_values) (522) + Handles null at 476 +318: Goto(465) (525) + Handles null at 476 +319: LocalLoad(Ljava/lang/Object;,0) (528) + Handles null at 476 +320: LocalLoad(I,2) (529) + Handles null at 476 +321: ArrayLoad(Ljava/lang/Object;) (530) + Handles null at 476 +322: Constant(Ljava/lang/String;,"-locations") (531) + Handles null at 476 +323: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (533) + Handles null at 476 +324: Constant(I,0) (536) + Handles null at 476 +325: ConditionalBranch(I,eq,329) (536) + Handles null at 476 +326: Constant(I,1) (539) + Handles null at 476 +327: Put(Z,STATIC,Ljava_cup/Main;,locations) (540) + Handles null at 476 +328: Goto(465) (543) + Handles null at 476 +329: LocalLoad(Ljava/lang/Object;,0) (546) + Handles null at 476 +330: LocalLoad(I,2) (547) + Handles null at 476 +331: ArrayLoad(Ljava/lang/Object;) (548) + Handles null at 476 +332: Constant(Ljava/lang/String;,"-xmlactions") (549) + Handles null at 476 +333: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (551) + Handles null at 476 +334: Constant(I,0) (554) + Handles null at 476 +335: ConditionalBranch(I,eq,339) (554) + Handles null at 476 +336: Constant(I,1) (557) + Handles null at 476 +337: Put(Z,STATIC,Ljava_cup/Main;,xmlactions) (558) + Handles null at 476 +338: Goto(465) (561) + Handles null at 476 +339: LocalLoad(Ljava/lang/Object;,0) (564) + Handles null at 476 +340: LocalLoad(I,2) (565) + Handles null at 476 +341: ArrayLoad(Ljava/lang/Object;) (566) + Handles null at 476 +342: Constant(Ljava/lang/String;,"-genericlabels") (567) + Handles null at 476 +343: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (569) + Handles null at 476 +344: Constant(I,0) (572) + Handles null at 476 +345: ConditionalBranch(I,eq,349) (572) + Handles null at 476 +346: Constant(I,1) (575) + Handles null at 476 +347: Put(Z,STATIC,Ljava_cup/Main;,genericlabels) (576) + Handles null at 476 +348: Goto(465) (579) + Handles null at 476 +349: LocalLoad(Ljava/lang/Object;,0) (582) + Handles null at 476 +350: LocalLoad(I,2) (583) + Handles null at 476 +351: ArrayLoad(Ljava/lang/Object;) (584) + Handles null at 476 +352: Constant(Ljava/lang/String;,"-interface") (585) + Handles null at 476 +353: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (587) + Handles null at 476 +354: Constant(I,0) (590) + Handles null at 476 +355: ConditionalBranch(I,eq,359) (590) + Handles null at 476 +356: Constant(I,1) (593) + Handles null at 476 +357: Put(Z,STATIC,Ljava_cup/Main;,sym_interface) (594) + Handles null at 476 +358: Goto(465) (597) + Handles null at 476 +359: LocalLoad(Ljava/lang/Object;,0) (600) + Handles null at 476 +360: LocalLoad(I,2) (601) + Handles null at 476 +361: ArrayLoad(Ljava/lang/Object;) (602) + Handles null at 476 +362: Constant(Ljava/lang/String;,"-noscanner") (603) + Handles null at 476 +363: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (605) + Handles null at 476 +364: Constant(I,0) (608) + Handles null at 476 +365: ConditionalBranch(I,eq,369) (608) + Handles null at 476 +366: Constant(I,1) (611) + Handles null at 476 +367: Put(Z,STATIC,Ljava_cup/Main;,suppress_scanner) (612) + Handles null at 476 +368: Goto(465) (615) + Handles null at 476 +369: LocalLoad(Ljava/lang/Object;,0) (618) + Handles null at 476 +370: LocalLoad(I,2) (619) + Handles null at 476 +371: ArrayLoad(Ljava/lang/Object;) (620) + Handles null at 476 +372: Constant(Ljava/lang/String;,"-version") (621) + Handles null at 476 +373: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (623) + Handles null at 476 +374: Constant(I,0) (626) + Handles null at 476 +375: ConditionalBranch(I,eq,382) (626) + Handles null at 476 +376: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (629) + Handles null at 476 +377: Constant(Ljava/lang/String;,"CUP v0.11b 20140808 (SVN rev 54)") (632) + Handles null at 476 +378: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (634) + Handles null at 476 +379: Constant(I,1) (637) + Handles null at 476 +380: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (638) + Handles null at 476 +381: Goto(465) (641) + Handles null at 476 +382: LocalLoad(Ljava/lang/Object;,0) (644) + Handles null at 476 +383: LocalLoad(I,2) (645) + Handles null at 476 +384: ArrayLoad(Ljava/lang/Object;) (646) + Handles null at 476 +385: Constant(Ljava/lang/String;,"-typearg") (647) + Handles null at 476 +386: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (649) + Handles null at 476 +387: Constant(I,0) (652) + Handles null at 476 +388: ConditionalBranch(I,eq,417) (652) + Handles null at 476 +389: LocalLoad(I,2) (655) + Handles null at 476 +390: Constant(I,1) (655) + Handles null at 476 +391: BinaryOp(I,add) (655) + Handles null at 476 +392: LocalStore(I,2) (655) + Handles null at 476 +393: LocalLoad(I,2) (658) + Handles null at 476 +394: LocalLoad(I,1) (659) + Handles null at 476 +395: ConditionalBranch(I,ge,410) (660) + Handles null at 476 +396: LocalLoad(Ljava/lang/Object;,0) (663) + Handles null at 476 +397: LocalLoad(I,2) (664) + Handles null at 476 +398: ArrayLoad(Ljava/lang/Object;) (665) + Handles null at 476 +399: Constant(Ljava/lang/String;,"-") (666) + Handles null at 476 +400: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (668) + Handles null at 476 +401: Constant(I,0) (671) + Handles null at 476 +402: ConditionalBranch(I,ne,410) (671) + Handles null at 476 +403: LocalLoad(Ljava/lang/Object;,0) (674) + Handles null at 476 +404: LocalLoad(I,2) (675) + Handles null at 476 +405: ArrayLoad(Ljava/lang/Object;) (676) + Handles null at 476 +406: Constant(Ljava/lang/String;,".cup") (677) + Handles null at 476 +407: Invoke(VIRTUAL,Ljava/lang/String;,endsWith,(Ljava/lang/String;)Z) (679) + Handles null at 476 +408: Constant(I,0) (682) + Handles null at 476 +409: ConditionalBranch(I,eq,412) (682) + Handles null at 476 +410: Constant(Ljava/lang/String;,"-symbols must have a name argument") (685) + Handles null at 476 +411: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (687) + Handles null at 476 +412: LocalLoad(Ljava/lang/Object;,0) (690) + Handles null at 476 +413: LocalLoad(I,2) (691) + Handles null at 476 +414: ArrayLoad(Ljava/lang/Object;) (692) + Handles null at 476 +415: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,class_type_argument) (693) + Handles null at 476 +416: Goto(465) (696) + Handles null at 476 +417: LocalLoad(Ljava/lang/Object;,0) (699) + Handles null at 476 +418: LocalLoad(I,2) (700) + Handles null at 476 +419: ArrayLoad(Ljava/lang/Object;) (701) + Handles null at 476 +420: Constant(Ljava/lang/String;,"-") (702) + Handles null at 476 +421: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (704) + Handles null at 476 +422: Constant(I,0) (707) + Handles null at 476 +423: ConditionalBranch(I,ne,452) (707) + Handles null at 476 +424: LocalLoad(I,2) (710) + Handles null at 476 +425: LocalLoad(I,1) (711) + Handles null at 476 +426: Constant(I,1) (712) + Handles null at 476 +427: BinaryOp(I,sub) (713) + Handles null at 476 +428: ConditionalBranch(I,ne,452) (714) + Handles null at 476 +429: New(Ljava/io/FileInputStream;,0) (717) + Handles Ljava/io/FileNotFoundException; at 437 + Handles null at 476 +430: Dup(1,0) (720) + Handles Ljava/io/FileNotFoundException; at 437 + Handles null at 476 +431: LocalLoad(Ljava/lang/Object;,0) (721) + Handles Ljava/io/FileNotFoundException; at 437 + Handles null at 476 +432: LocalLoad(I,2) (722) + Handles Ljava/io/FileNotFoundException; at 437 + Handles null at 476 +433: ArrayLoad(Ljava/lang/Object;) (723) + Handles Ljava/io/FileNotFoundException; at 437 + Handles null at 476 +434: Invoke(SPECIAL,Ljava/io/FileInputStream;,,(Ljava/lang/String;)V) (724) + Handles Ljava/io/FileNotFoundException; at 437 + Handles null at 476 +435: Invoke(STATIC,Ljava/lang/System;,setIn,(Ljava/io/InputStream;)V) (727) + Handles Ljava/io/FileNotFoundException; at 437 + Handles null at 476 +436: Goto(465) (730) + Handles null at 476 +437: LocalStore(Ljava/lang/Object;,3) (733) + Handles null at 476 +438: New(Ljava/lang/StringBuilder;,0) (734) + Handles null at 476 +439: Dup(1,0) (737) + Handles null at 476 +440: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (738) + Handles null at 476 +441: Constant(Ljava/lang/String;,"Unable to open \"") (741) + Handles null at 476 +442: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (743) + Handles null at 476 +443: LocalLoad(Ljava/lang/Object;,0) (746) + Handles null at 476 +444: LocalLoad(I,2) (747) + Handles null at 476 +445: ArrayLoad(Ljava/lang/Object;) (748) + Handles null at 476 +446: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (749) + Handles null at 476 +447: Constant(Ljava/lang/String;,"\" for input") (752) + Handles null at 476 +448: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (754) + Handles null at 476 +449: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (757) + Handles null at 476 +450: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (760) + Handles null at 476 +451: Goto(465) (763) + Handles null at 476 +452: New(Ljava/lang/StringBuilder;,0) (766) + Handles null at 476 +453: Dup(1,0) (769) + Handles null at 476 +454: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (770) + Handles null at 476 +455: Constant(Ljava/lang/String;,"Unrecognized option \"") (773) + Handles null at 476 +456: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (775) + Handles null at 476 +457: LocalLoad(Ljava/lang/Object;,0) (778) + Handles null at 476 +458: LocalLoad(I,2) (779) + Handles null at 476 +459: ArrayLoad(Ljava/lang/Object;) (780) + Handles null at 476 +460: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (781) + Handles null at 476 +461: Constant(Ljava/lang/String;,"\"") (784) + Handles null at 476 +462: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (786) + Handles null at 476 +463: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (789) + Handles null at 476 +464: Invoke(STATIC,Ljava_cup/Main;,usage,(Ljava/lang/String;)V) (792) + Handles null at 476 +465: LocalLoad(I,2) (795) + Handles null at 476 +466: Constant(I,1) (795) + Handles null at 476 +467: BinaryOp(I,add) (795) + Handles null at 476 +468: LocalStore(I,2) (795) + Handles null at 476 +469: Goto(9) (798) + Handles null at 476 +470: Constant(Ljava/lang/String;,"java_cup/Main") (801) + Handles null at 476 +471: Constant(Ljava/lang/String;,"parse_args([Ljava/lang/String;)V") (801) + Handles null at 476 +472: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (801) + Handles null at 476 +473: Constant(I,0) (801) + Handles null at 476 +474: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (801) + Handles null at 476 +475: Return(V) (801) + Handles null at 476 +476: Constant(Ljava/lang/String;,"java_cup/Main") (0) +477: Constant(Ljava/lang/String;,"parse_args([Ljava/lang/String;)V") (0) +478: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +479: Constant(I,1) (0) +480: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +481: Throw() (0) +Instrumenting open_files ()V: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (7) +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (10) +5: Constant(Ljava/lang/String;,".java") (13) +6: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (15) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (18) +8: LocalStore(Ljava/lang/Object;,1) (21) +9: New(Ljava/io/File;,0) (22) +10: Dup(1,0) (25) +11: Get(Ljava/io/File;,STATIC,Ljava_cup/Main;,dest_dir) (26) +12: LocalLoad(Ljava/lang/Object;,1) (29) +13: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/io/File;Ljava/lang/String;)V) (30) +14: LocalStore(Ljava/lang/Object;,0) (33) +15: New(Ljava/io/PrintWriter;,0) (34) + Handles Ljava/lang/Exception; at 28 +16: Dup(1,0) (37) + Handles Ljava/lang/Exception; at 28 +17: New(Ljava/io/BufferedOutputStream;,0) (38) + Handles Ljava/lang/Exception; at 28 +18: Dup(1,0) (41) + Handles Ljava/lang/Exception; at 28 +19: New(Ljava/io/FileOutputStream;,0) (42) + Handles Ljava/lang/Exception; at 28 +20: Dup(1,0) (45) + Handles Ljava/lang/Exception; at 28 +21: LocalLoad(Ljava/lang/Object;,0) (46) + Handles Ljava/lang/Exception; at 28 +22: Invoke(SPECIAL,Ljava/io/FileOutputStream;,,(Ljava/io/File;)V) (47) + Handles Ljava/lang/Exception; at 28 +23: Constant(I,4096) (50) + Handles Ljava/lang/Exception; at 28 +24: Invoke(SPECIAL,Ljava/io/BufferedOutputStream;,,(Ljava/io/OutputStream;I)V) (53) + Handles Ljava/lang/Exception; at 28 +25: Invoke(SPECIAL,Ljava/io/PrintWriter;,,(Ljava/io/OutputStream;)V) (56) + Handles Ljava/lang/Exception; at 28 +26: Put(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,parser_class_file) (59) + Handles Ljava/lang/Exception; at 28 +27: Goto(43) (62) +28: LocalStore(Ljava/lang/Object;,2) (65) +29: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (66) +30: New(Ljava/lang/StringBuilder;,0) (69) +31: Dup(1,0) (72) +32: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (73) +33: Constant(Ljava/lang/String;,"Can't open \"") (76) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (78) +35: LocalLoad(Ljava/lang/Object;,1) (81) +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (82) +37: Constant(Ljava/lang/String;,"\" for output") (85) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (87) +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (90) +40: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (93) +41: Constant(I,3) (96) +42: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (97) +43: New(Ljava/lang/StringBuilder;,0) (100) +44: Dup(1,0) (103) +45: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (104) +46: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (107) +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (110) +48: Constant(Ljava/lang/String;,".java") (113) +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (115) +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (118) +51: LocalStore(Ljava/lang/Object;,1) (121) +52: New(Ljava/io/File;,0) (122) +53: Dup(1,0) (125) +54: Get(Ljava/io/File;,STATIC,Ljava_cup/Main;,dest_dir) (126) +55: LocalLoad(Ljava/lang/Object;,1) (129) +56: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/io/File;Ljava/lang/String;)V) (130) +57: LocalStore(Ljava/lang/Object;,0) (133) +58: New(Ljava/io/PrintWriter;,0) (134) + Handles Ljava/lang/Exception; at 71 +59: Dup(1,0) (137) + Handles Ljava/lang/Exception; at 71 +60: New(Ljava/io/BufferedOutputStream;,0) (138) + Handles Ljava/lang/Exception; at 71 +61: Dup(1,0) (141) + Handles Ljava/lang/Exception; at 71 +62: New(Ljava/io/FileOutputStream;,0) (142) + Handles Ljava/lang/Exception; at 71 +63: Dup(1,0) (145) + Handles Ljava/lang/Exception; at 71 +64: LocalLoad(Ljava/lang/Object;,0) (146) + Handles Ljava/lang/Exception; at 71 +65: Invoke(SPECIAL,Ljava/io/FileOutputStream;,,(Ljava/io/File;)V) (147) + Handles Ljava/lang/Exception; at 71 +66: Constant(I,4096) (150) + Handles Ljava/lang/Exception; at 71 +67: Invoke(SPECIAL,Ljava/io/BufferedOutputStream;,,(Ljava/io/OutputStream;I)V) (153) + Handles Ljava/lang/Exception; at 71 +68: Invoke(SPECIAL,Ljava/io/PrintWriter;,,(Ljava/io/OutputStream;)V) (156) + Handles Ljava/lang/Exception; at 71 +69: Put(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,symbol_class_file) (159) + Handles Ljava/lang/Exception; at 71 +70: Goto(86) (162) +71: LocalStore(Ljava/lang/Object;,2) (165) +72: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (166) +73: New(Ljava/lang/StringBuilder;,0) (169) +74: Dup(1,0) (172) +75: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (173) +76: Constant(Ljava/lang/String;,"Can't open \"") (176) +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (178) +78: LocalLoad(Ljava/lang/Object;,1) (181) +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (182) +80: Constant(Ljava/lang/String;,"\" for output") (185) +81: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (187) +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (190) +83: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (193) +84: Constant(I,4) (196) +85: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (197) +86: Return(V) (200) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"open_files()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 96 +5: Dup(1,0) (3) + Handles null at 96 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 96 +7: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (7) + Handles null at 96 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (10) + Handles null at 96 +9: Constant(Ljava/lang/String;,".java") (13) + Handles null at 96 +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (15) + Handles null at 96 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (18) + Handles null at 96 +12: LocalStore(Ljava/lang/Object;,1) (21) + Handles null at 96 +13: New(Ljava/io/File;,0) (22) + Handles null at 96 +14: Dup(1,0) (25) + Handles null at 96 +15: Get(Ljava/io/File;,STATIC,Ljava_cup/Main;,dest_dir) (26) + Handles null at 96 +16: LocalLoad(Ljava/lang/Object;,1) (29) + Handles null at 96 +17: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/io/File;Ljava/lang/String;)V) (30) + Handles null at 96 +18: LocalStore(Ljava/lang/Object;,0) (33) + Handles null at 96 +19: New(Ljava/io/PrintWriter;,0) (34) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +20: Dup(1,0) (37) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +21: New(Ljava/io/BufferedOutputStream;,0) (38) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +22: Dup(1,0) (41) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +23: New(Ljava/io/FileOutputStream;,0) (42) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +24: Dup(1,0) (45) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +25: LocalLoad(Ljava/lang/Object;,0) (46) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +26: Invoke(SPECIAL,Ljava/io/FileOutputStream;,,(Ljava/io/File;)V) (47) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +27: Constant(I,4096) (50) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +28: Invoke(SPECIAL,Ljava/io/BufferedOutputStream;,,(Ljava/io/OutputStream;I)V) (53) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +29: Invoke(SPECIAL,Ljava/io/PrintWriter;,,(Ljava/io/OutputStream;)V) (56) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +30: Put(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,parser_class_file) (59) + Handles Ljava/lang/Exception; at 32 + Handles null at 96 +31: Goto(47) (62) + Handles null at 96 +32: LocalStore(Ljava/lang/Object;,2) (65) + Handles null at 96 +33: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (66) + Handles null at 96 +34: New(Ljava/lang/StringBuilder;,0) (69) + Handles null at 96 +35: Dup(1,0) (72) + Handles null at 96 +36: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (73) + Handles null at 96 +37: Constant(Ljava/lang/String;,"Can't open \"") (76) + Handles null at 96 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (78) + Handles null at 96 +39: LocalLoad(Ljava/lang/Object;,1) (81) + Handles null at 96 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (82) + Handles null at 96 +41: Constant(Ljava/lang/String;,"\" for output") (85) + Handles null at 96 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (87) + Handles null at 96 +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (90) + Handles null at 96 +44: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (93) + Handles null at 96 +45: Constant(I,3) (96) + Handles null at 96 +46: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (97) + Handles null at 96 +47: New(Ljava/lang/StringBuilder;,0) (100) + Handles null at 96 +48: Dup(1,0) (103) + Handles null at 96 +49: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (104) + Handles null at 96 +50: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (107) + Handles null at 96 +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (110) + Handles null at 96 +52: Constant(Ljava/lang/String;,".java") (113) + Handles null at 96 +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (115) + Handles null at 96 +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (118) + Handles null at 96 +55: LocalStore(Ljava/lang/Object;,1) (121) + Handles null at 96 +56: New(Ljava/io/File;,0) (122) + Handles null at 96 +57: Dup(1,0) (125) + Handles null at 96 +58: Get(Ljava/io/File;,STATIC,Ljava_cup/Main;,dest_dir) (126) + Handles null at 96 +59: LocalLoad(Ljava/lang/Object;,1) (129) + Handles null at 96 +60: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/io/File;Ljava/lang/String;)V) (130) + Handles null at 96 +61: LocalStore(Ljava/lang/Object;,0) (133) + Handles null at 96 +62: New(Ljava/io/PrintWriter;,0) (134) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +63: Dup(1,0) (137) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +64: New(Ljava/io/BufferedOutputStream;,0) (138) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +65: Dup(1,0) (141) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +66: New(Ljava/io/FileOutputStream;,0) (142) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +67: Dup(1,0) (145) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +68: LocalLoad(Ljava/lang/Object;,0) (146) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +69: Invoke(SPECIAL,Ljava/io/FileOutputStream;,,(Ljava/io/File;)V) (147) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +70: Constant(I,4096) (150) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +71: Invoke(SPECIAL,Ljava/io/BufferedOutputStream;,,(Ljava/io/OutputStream;I)V) (153) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +72: Invoke(SPECIAL,Ljava/io/PrintWriter;,,(Ljava/io/OutputStream;)V) (156) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +73: Put(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,symbol_class_file) (159) + Handles Ljava/lang/Exception; at 75 + Handles null at 96 +74: Goto(90) (162) + Handles null at 96 +75: LocalStore(Ljava/lang/Object;,2) (165) + Handles null at 96 +76: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (166) + Handles null at 96 +77: New(Ljava/lang/StringBuilder;,0) (169) + Handles null at 96 +78: Dup(1,0) (172) + Handles null at 96 +79: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (173) + Handles null at 96 +80: Constant(Ljava/lang/String;,"Can't open \"") (176) + Handles null at 96 +81: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (178) + Handles null at 96 +82: LocalLoad(Ljava/lang/Object;,1) (181) + Handles null at 96 +83: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (182) + Handles null at 96 +84: Constant(Ljava/lang/String;,"\" for output") (185) + Handles null at 96 +85: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (187) + Handles null at 96 +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (190) + Handles null at 96 +87: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (193) + Handles null at 96 +88: Constant(I,4) (196) + Handles null at 96 +89: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (197) + Handles null at 96 +90: Constant(Ljava/lang/String;,"java_cup/Main") (200) + Handles null at 96 +91: Constant(Ljava/lang/String;,"open_files()V") (200) + Handles null at 96 +92: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (200) + Handles null at 96 +93: Constant(I,0) (200) + Handles null at 96 +94: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (200) + Handles null at 96 +95: Return(V) (200) + Handles null at 96 +96: Constant(Ljava/lang/String;,"java_cup/Main") (0) +97: Constant(Ljava/lang/String;,"open_files()V") (0) +98: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +99: Constant(I,1) (0) +100: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +101: Throw() (0) +Instrumenting close_files ()V: +Initial ShrikeBT code: +0: Get(Ljava/io/BufferedInputStream;,STATIC,Ljava_cup/Main;,input_file) (0) +1: Constant(L;,null) (3) +2: ConditionalBranch(Ljava/lang/Object;,eq,5) (3) +3: Get(Ljava/io/BufferedInputStream;,STATIC,Ljava_cup/Main;,input_file) (6) +4: Invoke(VIRTUAL,Ljava/io/BufferedInputStream;,close,()V) (9) +5: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,parser_class_file) (12) +6: Constant(L;,null) (15) +7: ConditionalBranch(Ljava/lang/Object;,eq,10) (15) +8: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,parser_class_file) (18) +9: Invoke(VIRTUAL,Ljava/io/PrintWriter;,close,()V) (21) +10: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,symbol_class_file) (24) +11: Constant(L;,null) (27) +12: ConditionalBranch(Ljava/lang/Object;,eq,15) (27) +13: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,symbol_class_file) (30) +14: Invoke(VIRTUAL,Ljava/io/PrintWriter;,close,()V) (33) +15: Return(V) (36) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"close_files()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/BufferedInputStream;,STATIC,Ljava_cup/Main;,input_file) (0) + Handles null at 25 +5: Constant(L;,null) (3) + Handles null at 25 +6: ConditionalBranch(Ljava/lang/Object;,eq,9) (3) + Handles null at 25 +7: Get(Ljava/io/BufferedInputStream;,STATIC,Ljava_cup/Main;,input_file) (6) + Handles null at 25 +8: Invoke(VIRTUAL,Ljava/io/BufferedInputStream;,close,()V) (9) + Handles null at 25 +9: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,parser_class_file) (12) + Handles null at 25 +10: Constant(L;,null) (15) + Handles null at 25 +11: ConditionalBranch(Ljava/lang/Object;,eq,14) (15) + Handles null at 25 +12: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,parser_class_file) (18) + Handles null at 25 +13: Invoke(VIRTUAL,Ljava/io/PrintWriter;,close,()V) (21) + Handles null at 25 +14: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,symbol_class_file) (24) + Handles null at 25 +15: Constant(L;,null) (27) + Handles null at 25 +16: ConditionalBranch(Ljava/lang/Object;,eq,19) (27) + Handles null at 25 +17: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,symbol_class_file) (30) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava/io/PrintWriter;,close,()V) (33) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/Main") (36) + Handles null at 25 +20: Constant(Ljava/lang/String;,"close_files()V") (36) + Handles null at 25 +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (36) + Handles null at 25 +22: Constant(I,0) (36) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (36) + Handles null at 25 +24: Return(V) (36) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/Main") (0) +26: Constant(Ljava/lang/String;,"close_files()V") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting parse_grammar_spec ()V: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,1) (7) +4: New(Ljava_cup/parser;,0) (8) +5: Dup(1,0) (11) +6: New(Ljava_cup/Lexer;,0) (12) +7: Dup(1,0) (15) +8: LocalLoad(Ljava/lang/Object;,1) (16) +9: Invoke(SPECIAL,Ljava_cup/Lexer;,,(Ljava_cup/runtime/ComplexSymbolFactory;)V) (17) +10: LocalLoad(Ljava/lang/Object;,1) (20) +11: Invoke(SPECIAL,Ljava_cup/parser;,,(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V) (21) +12: LocalStore(Ljava/lang/Object;,0) (24) +13: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (25) + Handles Ljava/lang/Exception; at 24 +14: Constant(I,0) (28) + Handles Ljava/lang/Exception; at 24 +15: ConditionalBranch(I,eq,20) (28) + Handles Ljava/lang/Exception; at 24 +16: LocalLoad(Ljava/lang/Object;,0) (31) + Handles Ljava/lang/Exception; at 24 +17: Invoke(VIRTUAL,Ljava_cup/parser;,debug_parse,()Ljava_cup/runtime/Symbol;) (32) + Handles Ljava/lang/Exception; at 24 +18: Pop(1) (35) + Handles Ljava/lang/Exception; at 24 +19: Goto(23) (36) + Handles Ljava/lang/Exception; at 24 +20: LocalLoad(Ljava/lang/Object;,0) (39) + Handles Ljava/lang/Exception; at 24 +21: Invoke(VIRTUAL,Ljava_cup/parser;,parse,()Ljava_cup/runtime/Symbol;) (40) + Handles Ljava/lang/Exception; at 24 +22: Pop(1) (43) + Handles Ljava/lang/Exception; at 24 +23: Goto(30) (44) +24: LocalStore(Ljava/lang/Object;,2) (47) +25: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (48) +26: Constant(Ljava/lang/String;,"Internal error: Unexpected exception") (51) +27: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (53) +28: LocalLoad(Ljava/lang/Object;,2) (56) +29: Throw() (57) +30: Return(V) (58) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"parse_grammar_spec()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory;,0) (0) + Handles null at 40 +5: Dup(1,0) (3) + Handles null at 40 +6: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory;,,()V) (4) + Handles null at 40 +7: LocalStore(Ljava/lang/Object;,1) (7) + Handles null at 40 +8: New(Ljava_cup/parser;,0) (8) + Handles null at 40 +9: Dup(1,0) (11) + Handles null at 40 +10: New(Ljava_cup/Lexer;,0) (12) + Handles null at 40 +11: Dup(1,0) (15) + Handles null at 40 +12: LocalLoad(Ljava/lang/Object;,1) (16) + Handles null at 40 +13: Invoke(SPECIAL,Ljava_cup/Lexer;,,(Ljava_cup/runtime/ComplexSymbolFactory;)V) (17) + Handles null at 40 +14: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 40 +15: Invoke(SPECIAL,Ljava_cup/parser;,,(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V) (21) + Handles null at 40 +16: LocalStore(Ljava/lang/Object;,0) (24) + Handles null at 40 +17: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (25) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +18: Constant(I,0) (28) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +19: ConditionalBranch(I,eq,24) (28) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +20: LocalLoad(Ljava/lang/Object;,0) (31) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +21: Invoke(VIRTUAL,Ljava_cup/parser;,debug_parse,()Ljava_cup/runtime/Symbol;) (32) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +22: Pop(1) (35) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +23: Goto(27) (36) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +24: LocalLoad(Ljava/lang/Object;,0) (39) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +25: Invoke(VIRTUAL,Ljava_cup/parser;,parse,()Ljava_cup/runtime/Symbol;) (40) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +26: Pop(1) (43) + Handles Ljava/lang/Exception; at 28 + Handles null at 40 +27: Goto(34) (44) + Handles null at 40 +28: LocalStore(Ljava/lang/Object;,2) (47) + Handles null at 40 +29: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (48) + Handles null at 40 +30: Constant(Ljava/lang/String;,"Internal error: Unexpected exception") (51) + Handles null at 40 +31: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (53) + Handles null at 40 +32: LocalLoad(Ljava/lang/Object;,2) (56) + Handles null at 40 +33: Throw() (57) + Handles null at 40 +34: Constant(Ljava/lang/String;,"java_cup/Main") (58) + Handles null at 40 +35: Constant(Ljava/lang/String;,"parse_grammar_spec()V") (58) + Handles null at 40 +36: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (58) + Handles null at 40 +37: Constant(I,0) (58) + Handles null at 40 +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (58) + Handles null at 40 +39: Return(V) (58) + Handles null at 40 +40: Constant(Ljava/lang/String;,"java_cup/Main") (0) +41: Constant(Ljava/lang/String;,"parse_grammar_spec()V") (0) +42: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +43: Constant(I,1) (0) +44: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +45: Throw() (0) +Instrumenting check_unused ()V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava_cup/terminal;,all,()Ljava/util/Enumeration;) (0) +1: LocalStore(Ljava/lang/Object;,2) (3) +2: LocalLoad(Ljava/lang/Object;,2) (4) +3: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (5) +4: Constant(I,0) (10) +5: ConditionalBranch(I,eq,43) (10) +6: LocalLoad(Ljava/lang/Object;,2) (13) +7: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (14) +8: CheckCast(Ljava_cup/terminal;) (19) +9: LocalStore(Ljava/lang/Object;,0) (22) +10: LocalLoad(Ljava/lang/Object;,0) (23) +11: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (24) +12: ConditionalBranch(Ljava/lang/Object;,ne,14) (27) +13: Goto(2) (30) +14: LocalLoad(Ljava/lang/Object;,0) (33) +15: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (34) +16: ConditionalBranch(Ljava/lang/Object;,ne,18) (37) +17: Goto(2) (40) +18: LocalLoad(Ljava/lang/Object;,0) (43) +19: Invoke(VIRTUAL,Ljava_cup/terminal;,use_count,()I) (44) +20: Constant(I,0) (47) +21: ConditionalBranch(I,ne,2) (47) +22: Get(I,STATIC,Ljava_cup/emit;,unused_term) (50) +23: Constant(I,1) (53) +24: BinaryOp(I,add) (54) +25: Put(I,STATIC,Ljava_cup/emit;,unused_term) (55) +26: Get(Z,STATIC,Ljava_cup/emit;,nowarn) (58) +27: Constant(I,0) (61) +28: ConditionalBranch(I,ne,2) (61) +29: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (64) +30: New(Ljava/lang/StringBuilder;,0) (67) +31: Dup(1,0) (70) +32: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (71) +33: Constant(Ljava/lang/String;,"Terminal \"") (74) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (76) +35: LocalLoad(Ljava/lang/Object;,0) (79) +36: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (80) +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (83) +38: Constant(Ljava/lang/String;,"\" was declared but never used") (86) +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (88) +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (91) +41: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (94) +42: Goto(2) (97) +43: Invoke(STATIC,Ljava_cup/non_terminal;,all,()Ljava/util/Enumeration;) (100) +44: LocalStore(Ljava/lang/Object;,2) (103) +45: LocalLoad(Ljava/lang/Object;,2) (104) +46: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (105) +47: Constant(I,0) (110) +48: ConditionalBranch(I,eq,78) (110) +49: LocalLoad(Ljava/lang/Object;,2) (113) +50: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (114) +51: CheckCast(Ljava_cup/non_terminal;) (119) +52: LocalStore(Ljava/lang/Object;,1) (122) +53: LocalLoad(Ljava/lang/Object;,1) (123) +54: Invoke(VIRTUAL,Ljava_cup/non_terminal;,use_count,()I) (124) +55: Constant(I,0) (127) +56: ConditionalBranch(I,ne,45) (127) +57: Get(I,STATIC,Ljava_cup/emit;,unused_term) (130) +58: Constant(I,1) (133) +59: BinaryOp(I,add) (134) +60: Put(I,STATIC,Ljava_cup/emit;,unused_term) (135) +61: Get(Z,STATIC,Ljava_cup/emit;,nowarn) (138) +62: Constant(I,0) (141) +63: ConditionalBranch(I,ne,45) (141) +64: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (144) +65: New(Ljava/lang/StringBuilder;,0) (147) +66: Dup(1,0) (150) +67: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (151) +68: Constant(Ljava/lang/String;,"Non terminal \"") (154) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) +70: LocalLoad(Ljava/lang/Object;,1) (159) +71: Invoke(VIRTUAL,Ljava_cup/non_terminal;,name,()Ljava/lang/String;) (160) +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (163) +73: Constant(Ljava/lang/String;,"\" was declared but never used") (166) +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (168) +75: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (171) +76: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (174) +77: Goto(45) (177) +78: Return(V) (180) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"check_unused()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava_cup/terminal;,all,()Ljava/util/Enumeration;) (0) + Handles null at 88 +5: LocalStore(Ljava/lang/Object;,2) (3) + Handles null at 88 +6: LocalLoad(Ljava/lang/Object;,2) (4) + Handles null at 88 +7: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (5) + Handles null at 88 +8: Constant(I,0) (10) + Handles null at 88 +9: ConditionalBranch(I,eq,47) (10) + Handles null at 88 +10: LocalLoad(Ljava/lang/Object;,2) (13) + Handles null at 88 +11: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (14) + Handles null at 88 +12: CheckCast(Ljava_cup/terminal;) (19) + Handles null at 88 +13: LocalStore(Ljava/lang/Object;,0) (22) + Handles null at 88 +14: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 88 +15: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (24) + Handles null at 88 +16: ConditionalBranch(Ljava/lang/Object;,ne,18) (27) + Handles null at 88 +17: Goto(6) (30) + Handles null at 88 +18: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 88 +19: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (34) + Handles null at 88 +20: ConditionalBranch(Ljava/lang/Object;,ne,22) (37) + Handles null at 88 +21: Goto(6) (40) + Handles null at 88 +22: LocalLoad(Ljava/lang/Object;,0) (43) + Handles null at 88 +23: Invoke(VIRTUAL,Ljava_cup/terminal;,use_count,()I) (44) + Handles null at 88 +24: Constant(I,0) (47) + Handles null at 88 +25: ConditionalBranch(I,ne,6) (47) + Handles null at 88 +26: Get(I,STATIC,Ljava_cup/emit;,unused_term) (50) + Handles null at 88 +27: Constant(I,1) (53) + Handles null at 88 +28: BinaryOp(I,add) (54) + Handles null at 88 +29: Put(I,STATIC,Ljava_cup/emit;,unused_term) (55) + Handles null at 88 +30: Get(Z,STATIC,Ljava_cup/emit;,nowarn) (58) + Handles null at 88 +31: Constant(I,0) (61) + Handles null at 88 +32: ConditionalBranch(I,ne,6) (61) + Handles null at 88 +33: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (64) + Handles null at 88 +34: New(Ljava/lang/StringBuilder;,0) (67) + Handles null at 88 +35: Dup(1,0) (70) + Handles null at 88 +36: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (71) + Handles null at 88 +37: Constant(Ljava/lang/String;,"Terminal \"") (74) + Handles null at 88 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (76) + Handles null at 88 +39: LocalLoad(Ljava/lang/Object;,0) (79) + Handles null at 88 +40: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (80) + Handles null at 88 +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (83) + Handles null at 88 +42: Constant(Ljava/lang/String;,"\" was declared but never used") (86) + Handles null at 88 +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (88) + Handles null at 88 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (91) + Handles null at 88 +45: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (94) + Handles null at 88 +46: Goto(6) (97) + Handles null at 88 +47: Invoke(STATIC,Ljava_cup/non_terminal;,all,()Ljava/util/Enumeration;) (100) + Handles null at 88 +48: LocalStore(Ljava/lang/Object;,2) (103) + Handles null at 88 +49: LocalLoad(Ljava/lang/Object;,2) (104) + Handles null at 88 +50: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (105) + Handles null at 88 +51: Constant(I,0) (110) + Handles null at 88 +52: ConditionalBranch(I,eq,82) (110) + Handles null at 88 +53: LocalLoad(Ljava/lang/Object;,2) (113) + Handles null at 88 +54: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (114) + Handles null at 88 +55: CheckCast(Ljava_cup/non_terminal;) (119) + Handles null at 88 +56: LocalStore(Ljava/lang/Object;,1) (122) + Handles null at 88 +57: LocalLoad(Ljava/lang/Object;,1) (123) + Handles null at 88 +58: Invoke(VIRTUAL,Ljava_cup/non_terminal;,use_count,()I) (124) + Handles null at 88 +59: Constant(I,0) (127) + Handles null at 88 +60: ConditionalBranch(I,ne,49) (127) + Handles null at 88 +61: Get(I,STATIC,Ljava_cup/emit;,unused_term) (130) + Handles null at 88 +62: Constant(I,1) (133) + Handles null at 88 +63: BinaryOp(I,add) (134) + Handles null at 88 +64: Put(I,STATIC,Ljava_cup/emit;,unused_term) (135) + Handles null at 88 +65: Get(Z,STATIC,Ljava_cup/emit;,nowarn) (138) + Handles null at 88 +66: Constant(I,0) (141) + Handles null at 88 +67: ConditionalBranch(I,ne,49) (141) + Handles null at 88 +68: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (144) + Handles null at 88 +69: New(Ljava/lang/StringBuilder;,0) (147) + Handles null at 88 +70: Dup(1,0) (150) + Handles null at 88 +71: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (151) + Handles null at 88 +72: Constant(Ljava/lang/String;,"Non terminal \"") (154) + Handles null at 88 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) + Handles null at 88 +74: LocalLoad(Ljava/lang/Object;,1) (159) + Handles null at 88 +75: Invoke(VIRTUAL,Ljava_cup/non_terminal;,name,()Ljava/lang/String;) (160) + Handles null at 88 +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (163) + Handles null at 88 +77: Constant(Ljava/lang/String;,"\" was declared but never used") (166) + Handles null at 88 +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (168) + Handles null at 88 +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (171) + Handles null at 88 +80: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (174) + Handles null at 88 +81: Goto(49) (177) + Handles null at 88 +82: Constant(Ljava/lang/String;,"java_cup/Main") (180) + Handles null at 88 +83: Constant(Ljava/lang/String;,"check_unused()V") (180) + Handles null at 88 +84: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (180) + Handles null at 88 +85: Constant(I,0) (180) + Handles null at 88 +86: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (180) + Handles null at 88 +87: Return(V) (180) + Handles null at 88 +88: Constant(Ljava/lang/String;,"java_cup/Main") (0) +89: Constant(Ljava/lang/String;,"check_unused()V") (0) +90: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +91: Constant(I,1) (0) +92: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +93: Throw() (0) +Instrumenting build_parser ()V: +Initial ShrikeBT code: +0: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (0) +1: Constant(I,0) (3) +2: ConditionalBranch(I,ne,6) (3) +3: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (6) +4: Constant(I,0) (9) +5: ConditionalBranch(I,eq,9) (9) +6: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (12) +7: Constant(Ljava/lang/String;," Computing non-terminal nullability...") (15) +8: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (17) +9: Invoke(STATIC,Ljava_cup/non_terminal;,compute_nullability,()V) (20) +10: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (23) +11: Put(J,STATIC,Ljava_cup/Main;,nullability_end) (26) +12: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (29) +13: Constant(I,0) (32) +14: ConditionalBranch(I,ne,18) (32) +15: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (35) +16: Constant(I,0) (38) +17: ConditionalBranch(I,eq,21) (38) +18: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (41) +19: Constant(Ljava/lang/String;," Computing first sets...") (44) +20: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (46) +21: Invoke(STATIC,Ljava_cup/non_terminal;,compute_first_sets,()V) (49) +22: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (52) +23: Put(J,STATIC,Ljava_cup/Main;,first_end) (55) +24: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (58) +25: Constant(I,0) (61) +26: ConditionalBranch(I,ne,30) (61) +27: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (64) +28: Constant(I,0) (67) +29: ConditionalBranch(I,eq,33) (67) +30: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (70) +31: Constant(Ljava/lang/String;," Building state machine...") (73) +32: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (75) +33: Get(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (78) +34: Invoke(STATIC,Ljava_cup/lalr_state;,build_machine,(Ljava_cup/production;)Ljava_cup/lalr_state;) (81) +35: Put(Ljava_cup/lalr_state;,STATIC,Ljava_cup/Main;,start_state) (84) +36: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (87) +37: Put(J,STATIC,Ljava_cup/Main;,machine_end) (90) +38: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (93) +39: Constant(I,0) (96) +40: ConditionalBranch(I,ne,44) (96) +41: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (99) +42: Constant(I,0) (102) +43: ConditionalBranch(I,eq,47) (102) +44: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (105) +45: Constant(Ljava/lang/String;," Filling in tables...") (108) +46: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (110) +47: New(Ljava_cup/parse_action_table;,0) (113) +48: Dup(1,0) (116) +49: Invoke(SPECIAL,Ljava_cup/parse_action_table;,,()V) (117) +50: Put(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (120) +51: New(Ljava_cup/parse_reduce_table;,0) (123) +52: Dup(1,0) (126) +53: Invoke(SPECIAL,Ljava_cup/parse_reduce_table;,,()V) (127) +54: Put(Ljava_cup/parse_reduce_table;,STATIC,Ljava_cup/Main;,reduce_table) (130) +55: Invoke(STATIC,Ljava_cup/lalr_state;,all,()Ljava/util/Enumeration;) (133) +56: LocalStore(Ljava/lang/Object;,0) (136) +57: LocalLoad(Ljava/lang/Object;,0) (137) +58: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (138) +59: Constant(I,0) (143) +60: ConditionalBranch(I,eq,70) (143) +61: LocalLoad(Ljava/lang/Object;,0) (146) +62: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (147) +63: CheckCast(Ljava_cup/lalr_state;) (152) +64: LocalStore(Ljava/lang/Object;,1) (155) +65: LocalLoad(Ljava/lang/Object;,1) (156) +66: Get(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (157) +67: Get(Ljava_cup/parse_reduce_table;,STATIC,Ljava_cup/Main;,reduce_table) (160) +68: Invoke(VIRTUAL,Ljava_cup/lalr_state;,build_table_entries,(Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;)V) (163) +69: Goto(57) (166) +70: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (169) +71: Put(J,STATIC,Ljava_cup/Main;,table_end) (172) +72: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (175) +73: Constant(I,0) (178) +74: ConditionalBranch(I,ne,78) (178) +75: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (181) +76: Constant(I,0) (184) +77: ConditionalBranch(I,eq,81) (184) +78: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (187) +79: Constant(Ljava/lang/String;," Checking for non-reduced productions...") (190) +80: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (192) +81: Get(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (195) +82: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,check_reductions,()V) (198) +83: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (201) +84: Put(J,STATIC,Ljava_cup/Main;,reduce_check_end) (204) +85: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (207) +86: Get(I,STATIC,Ljava_cup/Main;,expect_conflicts) (210) +87: ConditionalBranch(I,le,91) (213) +88: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (216) +89: Constant(Ljava/lang/String;,"*** More conflicts encountered than expected -- parser generation aborted") (219) +90: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (221) +91: Return(V) (224) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"build_parser()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (0) + Handles null at 101 +5: Constant(I,0) (3) + Handles null at 101 +6: ConditionalBranch(I,ne,10) (3) + Handles null at 101 +7: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (6) + Handles null at 101 +8: Constant(I,0) (9) + Handles null at 101 +9: ConditionalBranch(I,eq,13) (9) + Handles null at 101 +10: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (12) + Handles null at 101 +11: Constant(Ljava/lang/String;," Computing non-terminal nullability...") (15) + Handles null at 101 +12: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (17) + Handles null at 101 +13: Invoke(STATIC,Ljava_cup/non_terminal;,compute_nullability,()V) (20) + Handles null at 101 +14: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (23) + Handles null at 101 +15: Put(J,STATIC,Ljava_cup/Main;,nullability_end) (26) + Handles null at 101 +16: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (29) + Handles null at 101 +17: Constant(I,0) (32) + Handles null at 101 +18: ConditionalBranch(I,ne,22) (32) + Handles null at 101 +19: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (35) + Handles null at 101 +20: Constant(I,0) (38) + Handles null at 101 +21: ConditionalBranch(I,eq,25) (38) + Handles null at 101 +22: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (41) + Handles null at 101 +23: Constant(Ljava/lang/String;," Computing first sets...") (44) + Handles null at 101 +24: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (46) + Handles null at 101 +25: Invoke(STATIC,Ljava_cup/non_terminal;,compute_first_sets,()V) (49) + Handles null at 101 +26: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (52) + Handles null at 101 +27: Put(J,STATIC,Ljava_cup/Main;,first_end) (55) + Handles null at 101 +28: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (58) + Handles null at 101 +29: Constant(I,0) (61) + Handles null at 101 +30: ConditionalBranch(I,ne,34) (61) + Handles null at 101 +31: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (64) + Handles null at 101 +32: Constant(I,0) (67) + Handles null at 101 +33: ConditionalBranch(I,eq,37) (67) + Handles null at 101 +34: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (70) + Handles null at 101 +35: Constant(Ljava/lang/String;," Building state machine...") (73) + Handles null at 101 +36: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (75) + Handles null at 101 +37: Get(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (78) + Handles null at 101 +38: Invoke(STATIC,Ljava_cup/lalr_state;,build_machine,(Ljava_cup/production;)Ljava_cup/lalr_state;) (81) + Handles null at 101 +39: Put(Ljava_cup/lalr_state;,STATIC,Ljava_cup/Main;,start_state) (84) + Handles null at 101 +40: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (87) + Handles null at 101 +41: Put(J,STATIC,Ljava_cup/Main;,machine_end) (90) + Handles null at 101 +42: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (93) + Handles null at 101 +43: Constant(I,0) (96) + Handles null at 101 +44: ConditionalBranch(I,ne,48) (96) + Handles null at 101 +45: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (99) + Handles null at 101 +46: Constant(I,0) (102) + Handles null at 101 +47: ConditionalBranch(I,eq,51) (102) + Handles null at 101 +48: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (105) + Handles null at 101 +49: Constant(Ljava/lang/String;," Filling in tables...") (108) + Handles null at 101 +50: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (110) + Handles null at 101 +51: New(Ljava_cup/parse_action_table;,0) (113) + Handles null at 101 +52: Dup(1,0) (116) + Handles null at 101 +53: Invoke(SPECIAL,Ljava_cup/parse_action_table;,,()V) (117) + Handles null at 101 +54: Put(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (120) + Handles null at 101 +55: New(Ljava_cup/parse_reduce_table;,0) (123) + Handles null at 101 +56: Dup(1,0) (126) + Handles null at 101 +57: Invoke(SPECIAL,Ljava_cup/parse_reduce_table;,,()V) (127) + Handles null at 101 +58: Put(Ljava_cup/parse_reduce_table;,STATIC,Ljava_cup/Main;,reduce_table) (130) + Handles null at 101 +59: Invoke(STATIC,Ljava_cup/lalr_state;,all,()Ljava/util/Enumeration;) (133) + Handles null at 101 +60: LocalStore(Ljava/lang/Object;,0) (136) + Handles null at 101 +61: LocalLoad(Ljava/lang/Object;,0) (137) + Handles null at 101 +62: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (138) + Handles null at 101 +63: Constant(I,0) (143) + Handles null at 101 +64: ConditionalBranch(I,eq,74) (143) + Handles null at 101 +65: LocalLoad(Ljava/lang/Object;,0) (146) + Handles null at 101 +66: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (147) + Handles null at 101 +67: CheckCast(Ljava_cup/lalr_state;) (152) + Handles null at 101 +68: LocalStore(Ljava/lang/Object;,1) (155) + Handles null at 101 +69: LocalLoad(Ljava/lang/Object;,1) (156) + Handles null at 101 +70: Get(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (157) + Handles null at 101 +71: Get(Ljava_cup/parse_reduce_table;,STATIC,Ljava_cup/Main;,reduce_table) (160) + Handles null at 101 +72: Invoke(VIRTUAL,Ljava_cup/lalr_state;,build_table_entries,(Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;)V) (163) + Handles null at 101 +73: Goto(61) (166) + Handles null at 101 +74: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (169) + Handles null at 101 +75: Put(J,STATIC,Ljava_cup/Main;,table_end) (172) + Handles null at 101 +76: Get(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (175) + Handles null at 101 +77: Constant(I,0) (178) + Handles null at 101 +78: ConditionalBranch(I,ne,82) (178) + Handles null at 101 +79: Get(Z,STATIC,Ljava_cup/Main;,print_progress) (181) + Handles null at 101 +80: Constant(I,0) (184) + Handles null at 101 +81: ConditionalBranch(I,eq,85) (184) + Handles null at 101 +82: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (187) + Handles null at 101 +83: Constant(Ljava/lang/String;," Checking for non-reduced productions...") (190) + Handles null at 101 +84: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (192) + Handles null at 101 +85: Get(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (195) + Handles null at 101 +86: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,check_reductions,()V) (198) + Handles null at 101 +87: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (201) + Handles null at 101 +88: Put(J,STATIC,Ljava_cup/Main;,reduce_check_end) (204) + Handles null at 101 +89: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (207) + Handles null at 101 +90: Get(I,STATIC,Ljava_cup/Main;,expect_conflicts) (210) + Handles null at 101 +91: ConditionalBranch(I,le,95) (213) + Handles null at 101 +92: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (216) + Handles null at 101 +93: Constant(Ljava/lang/String;,"*** More conflicts encountered than expected -- parser generation aborted") (219) + Handles null at 101 +94: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;)V) (221) + Handles null at 101 +95: Constant(Ljava/lang/String;,"java_cup/Main") (224) + Handles null at 101 +96: Constant(Ljava/lang/String;,"build_parser()V") (224) + Handles null at 101 +97: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (224) + Handles null at 101 +98: Constant(I,0) (224) + Handles null at 101 +99: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (224) + Handles null at 101 +100: Return(V) (224) + Handles null at 101 +101: Constant(Ljava/lang/String;,"java_cup/Main") (0) +102: Constant(Ljava/lang/String;,"build_parser()V") (0) +103: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +104: Constant(I,1) (0) +105: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +106: Throw() (0) +Instrumenting emit_parser ()V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,symbol_class_file) (0) +1: Get(Z,STATIC,Ljava_cup/Main;,include_non_terms) (3) +2: Get(Z,STATIC,Ljava_cup/Main;,sym_interface) (6) +3: Invoke(STATIC,Ljava_cup/emit;,symbols,(Ljava/io/PrintWriter;ZZ)V) (9) +4: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,parser_class_file) (12) +5: Get(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (15) +6: Get(Ljava_cup/parse_reduce_table;,STATIC,Ljava_cup/Main;,reduce_table) (18) +7: Get(Ljava_cup/lalr_state;,STATIC,Ljava_cup/Main;,start_state) (21) +8: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (24) +9: Get(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (27) +10: Get(Z,STATIC,Ljava_cup/Main;,opt_compact_red) (30) +11: Get(Z,STATIC,Ljava_cup/Main;,suppress_scanner) (33) +12: Invoke(STATIC,Ljava_cup/emit;,parser,(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;ILjava_cup/production;ZZ)V) (36) +13: Return(V) (39) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"emit_parser()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,symbol_class_file) (0) + Handles null at 23 +5: Get(Z,STATIC,Ljava_cup/Main;,include_non_terms) (3) + Handles null at 23 +6: Get(Z,STATIC,Ljava_cup/Main;,sym_interface) (6) + Handles null at 23 +7: Invoke(STATIC,Ljava_cup/emit;,symbols,(Ljava/io/PrintWriter;ZZ)V) (9) + Handles null at 23 +8: Get(Ljava/io/PrintWriter;,STATIC,Ljava_cup/Main;,parser_class_file) (12) + Handles null at 23 +9: Get(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (15) + Handles null at 23 +10: Get(Ljava_cup/parse_reduce_table;,STATIC,Ljava_cup/Main;,reduce_table) (18) + Handles null at 23 +11: Get(Ljava_cup/lalr_state;,STATIC,Ljava_cup/Main;,start_state) (21) + Handles null at 23 +12: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (24) + Handles null at 23 +13: Get(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (27) + Handles null at 23 +14: Get(Z,STATIC,Ljava_cup/Main;,opt_compact_red) (30) + Handles null at 23 +15: Get(Z,STATIC,Ljava_cup/Main;,suppress_scanner) (33) + Handles null at 23 +16: Invoke(STATIC,Ljava_cup/emit;,parser,(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;ILjava_cup/production;ZZ)V) (36) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/Main") (39) + Handles null at 23 +18: Constant(Ljava/lang/String;,"emit_parser()V") (39) + Handles null at 23 +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (39) + Handles null at 23 +20: Constant(I,0) (39) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (39) + Handles null at 23 +22: Return(V) (39) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/Main") (0) +24: Constant(Ljava/lang/String;,"emit_parser()V") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting plural (I)Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(I,0) (0) +1: Constant(I,1) (1) +2: ConditionalBranch(I,ne,5) (2) +3: Constant(Ljava/lang/String;,"") (5) +4: Return(Ljava/lang/Object;) (7) +5: Constant(Ljava/lang/String;,"s") (8) +6: Return(Ljava/lang/Object;) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"plural(I)Ljava/lang/String;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,0) (0) + Handles null at 21 +5: Constant(I,1) (1) + Handles null at 21 +6: ConditionalBranch(I,ne,14) (2) + Handles null at 21 +7: Constant(Ljava/lang/String;,"") (5) + Handles null at 21 +8: Constant(Ljava/lang/String;,"java_cup/Main") (7) + Handles null at 21 +9: Constant(Ljava/lang/String;,"plural(I)Ljava/lang/String;") (7) + Handles null at 21 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (7) + Handles null at 21 +11: Constant(I,0) (7) + Handles null at 21 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 21 +13: Return(Ljava/lang/Object;) (7) + Handles null at 21 +14: Constant(Ljava/lang/String;,"s") (8) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/Main") (10) + Handles null at 21 +16: Constant(Ljava/lang/String;,"plural(I)Ljava/lang/String;") (10) + Handles null at 21 +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (10) + Handles null at 21 +18: Constant(I,0) (10) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 21 +20: Return(Ljava/lang/Object;) (10) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/Main") (0) +22: Constant(Ljava/lang/String;,"plural(I)Ljava/lang/String;") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting emit_summary (Z)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) +1: Put(J,STATIC,Ljava_cup/Main;,final_time) (3) +2: Get(Z,STATIC,Ljava_cup/Main;,no_summary) (6) +3: Constant(I,0) (9) +4: ConditionalBranch(I,eq,6) (9) +5: Return(V) (12) +6: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (13) +7: Constant(Ljava/lang/String;,"------- CUP v0.11b 20140808 (SVN rev 54) Parser Generation Summary -------") (16) +8: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (18) +9: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (21) +10: New(Ljava/lang/StringBuilder;,0) (24) +11: Dup(1,0) (27) +12: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (28) +13: Constant(Ljava/lang/String;," ") (31) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) +15: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (36) +16: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (39) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (42) +18: Constant(Ljava/lang/String;," error") (45) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (47) +20: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (50) +21: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (53) +22: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (56) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) +24: Constant(Ljava/lang/String;," and ") (62) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (64) +26: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (67) +27: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getWarningCount,()I) (70) +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (73) +29: Constant(Ljava/lang/String;," warning") (76) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (78) +31: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (81) +32: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getWarningCount,()I) (84) +33: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (87) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (90) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (93) +36: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (96) +37: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (99) +38: New(Ljava/lang/StringBuilder;,0) (102) +39: Dup(1,0) (105) +40: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (106) +41: Constant(Ljava/lang/String;," ") (109) +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (111) +43: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (114) +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (117) +45: Constant(Ljava/lang/String;," terminal") (120) +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (122) +47: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (125) +48: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (128) +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (131) +50: Constant(Ljava/lang/String;,", ") (134) +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (136) +52: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (139) +53: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (142) +54: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (145) +55: New(Ljava/lang/StringBuilder;,0) (148) +56: Dup(1,0) (151) +57: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (152) +58: Invoke(STATIC,Ljava_cup/non_terminal;,number,()I) (155) +59: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (158) +60: Constant(Ljava/lang/String;," non-terminal") (161) +61: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (163) +62: Invoke(STATIC,Ljava_cup/non_terminal;,number,()I) (166) +63: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (169) +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (172) +65: Constant(Ljava/lang/String;,", and ") (175) +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (177) +67: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (180) +68: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (183) +69: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (186) +70: New(Ljava/lang/StringBuilder;,0) (189) +71: Dup(1,0) (192) +72: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (193) +73: Invoke(STATIC,Ljava_cup/production;,number,()I) (196) +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (199) +75: Constant(Ljava/lang/String;," production") (202) +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (204) +77: Invoke(STATIC,Ljava_cup/production;,number,()I) (207) +78: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (210) +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (213) +80: Constant(Ljava/lang/String;," declared, ") (216) +81: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (218) +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (221) +83: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (224) +84: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (227) +85: New(Ljava/lang/StringBuilder;,0) (230) +86: Dup(1,0) (233) +87: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (234) +88: Constant(Ljava/lang/String;," producing ") (237) +89: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (239) +90: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (242) +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (245) +92: Constant(Ljava/lang/String;," unique parse states.") (248) +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (250) +94: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (253) +95: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (256) +96: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (259) +97: New(Ljava/lang/StringBuilder;,0) (262) +98: Dup(1,0) (265) +99: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (266) +100: Constant(Ljava/lang/String;," ") (269) +101: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (271) +102: Get(I,STATIC,Ljava_cup/emit;,unused_term) (274) +103: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (277) +104: Constant(Ljava/lang/String;," terminal") (280) +105: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (282) +106: Get(I,STATIC,Ljava_cup/emit;,unused_term) (285) +107: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (288) +108: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (291) +109: Constant(Ljava/lang/String;," declared but not used.") (294) +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (296) +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (299) +112: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (302) +113: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (305) +114: New(Ljava/lang/StringBuilder;,0) (308) +115: Dup(1,0) (311) +116: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (312) +117: Constant(Ljava/lang/String;," ") (315) +118: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (317) +119: Get(I,STATIC,Ljava_cup/emit;,unused_non_term) (320) +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (323) +121: Constant(Ljava/lang/String;," non-terminal") (326) +122: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (328) +123: Get(I,STATIC,Ljava_cup/emit;,unused_term) (331) +124: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (334) +125: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (337) +126: Constant(Ljava/lang/String;," declared but not used.") (340) +127: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (342) +128: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (345) +129: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (348) +130: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (351) +131: New(Ljava/lang/StringBuilder;,0) (354) +132: Dup(1,0) (357) +133: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (358) +134: Constant(Ljava/lang/String;," ") (361) +135: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (363) +136: Get(I,STATIC,Ljava_cup/emit;,not_reduced) (366) +137: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (369) +138: Constant(Ljava/lang/String;," production") (372) +139: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (374) +140: Get(I,STATIC,Ljava_cup/emit;,not_reduced) (377) +141: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (380) +142: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (383) +143: Constant(Ljava/lang/String;," never reduced.") (386) +144: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (388) +145: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (391) +146: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (394) +147: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (397) +148: New(Ljava/lang/StringBuilder;,0) (400) +149: Dup(1,0) (403) +150: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (404) +151: Constant(Ljava/lang/String;," ") (407) +152: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (409) +153: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (412) +154: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (415) +155: Constant(Ljava/lang/String;," conflict") (418) +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (420) +157: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (423) +158: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (426) +159: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (429) +160: Constant(Ljava/lang/String;," detected") (432) +161: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (434) +162: Constant(Ljava/lang/String;," (") (437) +163: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (439) +164: Get(I,STATIC,Ljava_cup/Main;,expect_conflicts) (442) +165: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (445) +166: Constant(Ljava/lang/String;," expected).") (448) +167: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (450) +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (453) +169: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (456) +170: LocalLoad(I,0) (459) +171: Constant(I,0) (460) +172: ConditionalBranch(I,eq,190) (460) +173: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (463) +174: New(Ljava/lang/StringBuilder;,0) (466) +175: Dup(1,0) (469) +176: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (470) +177: Constant(Ljava/lang/String;," Code written to \"") (473) +178: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (475) +179: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (478) +180: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (481) +181: Constant(Ljava/lang/String;,".java\", and \"") (484) +182: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (486) +183: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (489) +184: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (492) +185: Constant(Ljava/lang/String;,".java\".") (495) +186: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (497) +187: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (500) +188: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (503) +189: Goto(193) (506) +190: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (509) +191: Constant(Ljava/lang/String;," No code produced.") (512) +192: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (514) +193: Get(Z,STATIC,Ljava_cup/Main;,opt_show_timing) (517) +194: Constant(I,0) (520) +195: ConditionalBranch(I,eq,197) (520) +196: Invoke(STATIC,Ljava_cup/Main;,show_times,()V) (523) +197: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (526) +198: Constant(Ljava/lang/String;,"---------------------------------------------------- (CUP v0.11b 20140808 (SVN rev 54))") (529) +199: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (531) +200: Return(V) (534) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"emit_summary(Z)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) + Handles null at 215 +5: Put(J,STATIC,Ljava_cup/Main;,final_time) (3) + Handles null at 215 +6: Get(Z,STATIC,Ljava_cup/Main;,no_summary) (6) + Handles null at 215 +7: Constant(I,0) (9) + Handles null at 215 +8: ConditionalBranch(I,eq,15) (9) + Handles null at 215 +9: Constant(Ljava/lang/String;,"java_cup/Main") (12) + Handles null at 215 +10: Constant(Ljava/lang/String;,"emit_summary(Z)V") (12) + Handles null at 215 +11: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (12) + Handles null at 215 +12: Constant(I,0) (12) + Handles null at 215 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 215 +14: Return(V) (12) + Handles null at 215 +15: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (13) + Handles null at 215 +16: Constant(Ljava/lang/String;,"------- CUP v0.11b 20140808 (SVN rev 54) Parser Generation Summary -------") (16) + Handles null at 215 +17: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (18) + Handles null at 215 +18: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (21) + Handles null at 215 +19: New(Ljava/lang/StringBuilder;,0) (24) + Handles null at 215 +20: Dup(1,0) (27) + Handles null at 215 +21: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (28) + Handles null at 215 +22: Constant(Ljava/lang/String;," ") (31) + Handles null at 215 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) + Handles null at 215 +24: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (36) + Handles null at 215 +25: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (39) + Handles null at 215 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (42) + Handles null at 215 +27: Constant(Ljava/lang/String;," error") (45) + Handles null at 215 +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (47) + Handles null at 215 +29: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (50) + Handles null at 215 +30: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getErrorCount,()I) (53) + Handles null at 215 +31: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (56) + Handles null at 215 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) + Handles null at 215 +33: Constant(Ljava/lang/String;," and ") (62) + Handles null at 215 +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (64) + Handles null at 215 +35: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (67) + Handles null at 215 +36: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getWarningCount,()I) (70) + Handles null at 215 +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (73) + Handles null at 215 +38: Constant(Ljava/lang/String;," warning") (76) + Handles null at 215 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (78) + Handles null at 215 +40: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (81) + Handles null at 215 +41: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,getWarningCount,()I) (84) + Handles null at 215 +42: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (87) + Handles null at 215 +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (90) + Handles null at 215 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (93) + Handles null at 215 +45: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (96) + Handles null at 215 +46: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (99) + Handles null at 215 +47: New(Ljava/lang/StringBuilder;,0) (102) + Handles null at 215 +48: Dup(1,0) (105) + Handles null at 215 +49: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (106) + Handles null at 215 +50: Constant(Ljava/lang/String;," ") (109) + Handles null at 215 +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (111) + Handles null at 215 +52: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (114) + Handles null at 215 +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (117) + Handles null at 215 +54: Constant(Ljava/lang/String;," terminal") (120) + Handles null at 215 +55: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (122) + Handles null at 215 +56: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (125) + Handles null at 215 +57: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (128) + Handles null at 215 +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (131) + Handles null at 215 +59: Constant(Ljava/lang/String;,", ") (134) + Handles null at 215 +60: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (136) + Handles null at 215 +61: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (139) + Handles null at 215 +62: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (142) + Handles null at 215 +63: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (145) + Handles null at 215 +64: New(Ljava/lang/StringBuilder;,0) (148) + Handles null at 215 +65: Dup(1,0) (151) + Handles null at 215 +66: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (152) + Handles null at 215 +67: Invoke(STATIC,Ljava_cup/non_terminal;,number,()I) (155) + Handles null at 215 +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (158) + Handles null at 215 +69: Constant(Ljava/lang/String;," non-terminal") (161) + Handles null at 215 +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (163) + Handles null at 215 +71: Invoke(STATIC,Ljava_cup/non_terminal;,number,()I) (166) + Handles null at 215 +72: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (169) + Handles null at 215 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (172) + Handles null at 215 +74: Constant(Ljava/lang/String;,", and ") (175) + Handles null at 215 +75: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (177) + Handles null at 215 +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (180) + Handles null at 215 +77: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (183) + Handles null at 215 +78: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (186) + Handles null at 215 +79: New(Ljava/lang/StringBuilder;,0) (189) + Handles null at 215 +80: Dup(1,0) (192) + Handles null at 215 +81: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (193) + Handles null at 215 +82: Invoke(STATIC,Ljava_cup/production;,number,()I) (196) + Handles null at 215 +83: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (199) + Handles null at 215 +84: Constant(Ljava/lang/String;," production") (202) + Handles null at 215 +85: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (204) + Handles null at 215 +86: Invoke(STATIC,Ljava_cup/production;,number,()I) (207) + Handles null at 215 +87: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (210) + Handles null at 215 +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (213) + Handles null at 215 +89: Constant(Ljava/lang/String;," declared, ") (216) + Handles null at 215 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (218) + Handles null at 215 +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (221) + Handles null at 215 +92: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (224) + Handles null at 215 +93: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (227) + Handles null at 215 +94: New(Ljava/lang/StringBuilder;,0) (230) + Handles null at 215 +95: Dup(1,0) (233) + Handles null at 215 +96: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (234) + Handles null at 215 +97: Constant(Ljava/lang/String;," producing ") (237) + Handles null at 215 +98: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (239) + Handles null at 215 +99: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (242) + Handles null at 215 +100: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (245) + Handles null at 215 +101: Constant(Ljava/lang/String;," unique parse states.") (248) + Handles null at 215 +102: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (250) + Handles null at 215 +103: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (253) + Handles null at 215 +104: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (256) + Handles null at 215 +105: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (259) + Handles null at 215 +106: New(Ljava/lang/StringBuilder;,0) (262) + Handles null at 215 +107: Dup(1,0) (265) + Handles null at 215 +108: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (266) + Handles null at 215 +109: Constant(Ljava/lang/String;," ") (269) + Handles null at 215 +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (271) + Handles null at 215 +111: Get(I,STATIC,Ljava_cup/emit;,unused_term) (274) + Handles null at 215 +112: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (277) + Handles null at 215 +113: Constant(Ljava/lang/String;," terminal") (280) + Handles null at 215 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (282) + Handles null at 215 +115: Get(I,STATIC,Ljava_cup/emit;,unused_term) (285) + Handles null at 215 +116: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (288) + Handles null at 215 +117: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (291) + Handles null at 215 +118: Constant(Ljava/lang/String;," declared but not used.") (294) + Handles null at 215 +119: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (296) + Handles null at 215 +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (299) + Handles null at 215 +121: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (302) + Handles null at 215 +122: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (305) + Handles null at 215 +123: New(Ljava/lang/StringBuilder;,0) (308) + Handles null at 215 +124: Dup(1,0) (311) + Handles null at 215 +125: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (312) + Handles null at 215 +126: Constant(Ljava/lang/String;," ") (315) + Handles null at 215 +127: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (317) + Handles null at 215 +128: Get(I,STATIC,Ljava_cup/emit;,unused_non_term) (320) + Handles null at 215 +129: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (323) + Handles null at 215 +130: Constant(Ljava/lang/String;," non-terminal") (326) + Handles null at 215 +131: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (328) + Handles null at 215 +132: Get(I,STATIC,Ljava_cup/emit;,unused_term) (331) + Handles null at 215 +133: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (334) + Handles null at 215 +134: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (337) + Handles null at 215 +135: Constant(Ljava/lang/String;," declared but not used.") (340) + Handles null at 215 +136: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (342) + Handles null at 215 +137: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (345) + Handles null at 215 +138: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (348) + Handles null at 215 +139: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (351) + Handles null at 215 +140: New(Ljava/lang/StringBuilder;,0) (354) + Handles null at 215 +141: Dup(1,0) (357) + Handles null at 215 +142: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (358) + Handles null at 215 +143: Constant(Ljava/lang/String;," ") (361) + Handles null at 215 +144: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (363) + Handles null at 215 +145: Get(I,STATIC,Ljava_cup/emit;,not_reduced) (366) + Handles null at 215 +146: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (369) + Handles null at 215 +147: Constant(Ljava/lang/String;," production") (372) + Handles null at 215 +148: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (374) + Handles null at 215 +149: Get(I,STATIC,Ljava_cup/emit;,not_reduced) (377) + Handles null at 215 +150: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (380) + Handles null at 215 +151: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (383) + Handles null at 215 +152: Constant(Ljava/lang/String;," never reduced.") (386) + Handles null at 215 +153: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (388) + Handles null at 215 +154: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (391) + Handles null at 215 +155: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (394) + Handles null at 215 +156: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (397) + Handles null at 215 +157: New(Ljava/lang/StringBuilder;,0) (400) + Handles null at 215 +158: Dup(1,0) (403) + Handles null at 215 +159: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (404) + Handles null at 215 +160: Constant(Ljava/lang/String;," ") (407) + Handles null at 215 +161: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (409) + Handles null at 215 +162: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (412) + Handles null at 215 +163: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (415) + Handles null at 215 +164: Constant(Ljava/lang/String;," conflict") (418) + Handles null at 215 +165: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (420) + Handles null at 215 +166: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (423) + Handles null at 215 +167: Invoke(STATIC,Ljava_cup/Main;,plural,(I)Ljava/lang/String;) (426) + Handles null at 215 +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (429) + Handles null at 215 +169: Constant(Ljava/lang/String;," detected") (432) + Handles null at 215 +170: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (434) + Handles null at 215 +171: Constant(Ljava/lang/String;," (") (437) + Handles null at 215 +172: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (439) + Handles null at 215 +173: Get(I,STATIC,Ljava_cup/Main;,expect_conflicts) (442) + Handles null at 215 +174: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (445) + Handles null at 215 +175: Constant(Ljava/lang/String;," expected).") (448) + Handles null at 215 +176: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (450) + Handles null at 215 +177: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (453) + Handles null at 215 +178: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (456) + Handles null at 215 +179: LocalLoad(I,0) (459) + Handles null at 215 +180: Constant(I,0) (460) + Handles null at 215 +181: ConditionalBranch(I,eq,199) (460) + Handles null at 215 +182: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (463) + Handles null at 215 +183: New(Ljava/lang/StringBuilder;,0) (466) + Handles null at 215 +184: Dup(1,0) (469) + Handles null at 215 +185: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (470) + Handles null at 215 +186: Constant(Ljava/lang/String;," Code written to \"") (473) + Handles null at 215 +187: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (475) + Handles null at 215 +188: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (478) + Handles null at 215 +189: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (481) + Handles null at 215 +190: Constant(Ljava/lang/String;,".java\", and \"") (484) + Handles null at 215 +191: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (486) + Handles null at 215 +192: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (489) + Handles null at 215 +193: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (492) + Handles null at 215 +194: Constant(Ljava/lang/String;,".java\".") (495) + Handles null at 215 +195: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (497) + Handles null at 215 +196: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (500) + Handles null at 215 +197: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (503) + Handles null at 215 +198: Goto(202) (506) + Handles null at 215 +199: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (509) + Handles null at 215 +200: Constant(Ljava/lang/String;," No code produced.") (512) + Handles null at 215 +201: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (514) + Handles null at 215 +202: Get(Z,STATIC,Ljava_cup/Main;,opt_show_timing) (517) + Handles null at 215 +203: Constant(I,0) (520) + Handles null at 215 +204: ConditionalBranch(I,eq,206) (520) + Handles null at 215 +205: Invoke(STATIC,Ljava_cup/Main;,show_times,()V) (523) + Handles null at 215 +206: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (526) + Handles null at 215 +207: Constant(Ljava/lang/String;,"---------------------------------------------------- (CUP v0.11b 20140808 (SVN rev 54))") (529) + Handles null at 215 +208: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (531) + Handles null at 215 +209: Constant(Ljava/lang/String;,"java_cup/Main") (534) + Handles null at 215 +210: Constant(Ljava/lang/String;,"emit_summary(Z)V") (534) + Handles null at 215 +211: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (534) + Handles null at 215 +212: Constant(I,0) (534) + Handles null at 215 +213: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (534) + Handles null at 215 +214: Return(V) (534) + Handles null at 215 +215: Constant(Ljava/lang/String;,"java_cup/Main") (0) +216: Constant(Ljava/lang/String;,"emit_summary(Z)V") (0) +217: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +218: Constant(I,1) (0) +219: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +220: Throw() (0) +Instrumenting show_times ()V: +Initial ShrikeBT code: +0: Get(J,STATIC,Ljava_cup/Main;,final_time) (0) +1: Get(J,STATIC,Ljava_cup/Main;,start_time) (3) +2: BinaryOp(J,sub) (6) +3: LocalStore(J,0) (7) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (8) +5: Constant(Ljava/lang/String;,". . . . . . . . . . . . . . . . . . . . . . . . . ") (11) +6: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (13) +7: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (16) +8: Constant(Ljava/lang/String;," Timing Summary") (19) +9: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (21) +10: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (24) +11: New(Ljava/lang/StringBuilder;,0) (27) +12: Dup(1,0) (30) +13: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (31) +14: Constant(Ljava/lang/String;," Total time ") (34) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) +16: Get(J,STATIC,Ljava_cup/Main;,final_time) (39) +17: Get(J,STATIC,Ljava_cup/Main;,start_time) (42) +18: BinaryOp(J,sub) (45) +19: LocalLoad(J,0) (46) +20: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (47) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (50) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (53) +23: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (56) +24: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (59) +25: New(Ljava/lang/StringBuilder;,0) (62) +26: Dup(1,0) (65) +27: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (66) +28: Constant(Ljava/lang/String;," Startup ") (69) +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (71) +30: Get(J,STATIC,Ljava_cup/Main;,prelim_end) (74) +31: Get(J,STATIC,Ljava_cup/Main;,start_time) (77) +32: BinaryOp(J,sub) (80) +33: LocalLoad(J,0) (81) +34: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (82) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (85) +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (88) +37: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (91) +38: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (94) +39: New(Ljava/lang/StringBuilder;,0) (97) +40: Dup(1,0) (100) +41: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (101) +42: Constant(Ljava/lang/String;," Parse ") (104) +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (106) +44: Get(J,STATIC,Ljava_cup/Main;,parse_end) (109) +45: Get(J,STATIC,Ljava_cup/Main;,prelim_end) (112) +46: BinaryOp(J,sub) (115) +47: LocalLoad(J,0) (116) +48: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (117) +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (120) +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (123) +51: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (126) +52: Get(J,STATIC,Ljava_cup/Main;,check_end) (129) +53: Constant(J,0) (132) +54: Comparison(J,cmp) (133) +55: Constant(I,0) (134) +56: ConditionalBranch(I,eq,71) (134) +57: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (137) +58: New(Ljava/lang/StringBuilder;,0) (140) +59: Dup(1,0) (143) +60: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (144) +61: Constant(Ljava/lang/String;," Checking ") (147) +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (149) +63: Get(J,STATIC,Ljava_cup/Main;,check_end) (152) +64: Get(J,STATIC,Ljava_cup/Main;,parse_end) (155) +65: BinaryOp(J,sub) (158) +66: LocalLoad(J,0) (159) +67: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (160) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (163) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (166) +70: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (169) +71: Get(J,STATIC,Ljava_cup/Main;,check_end) (172) +72: Constant(J,0) (175) +73: Comparison(J,cmp) (176) +74: Constant(I,0) (177) +75: ConditionalBranch(I,eq,95) (177) +76: Get(J,STATIC,Ljava_cup/Main;,build_end) (180) +77: Constant(J,0) (183) +78: Comparison(J,cmp) (184) +79: Constant(I,0) (185) +80: ConditionalBranch(I,eq,95) (185) +81: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (188) +82: New(Ljava/lang/StringBuilder;,0) (191) +83: Dup(1,0) (194) +84: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (195) +85: Constant(Ljava/lang/String;," Parser Build ") (198) +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (200) +87: Get(J,STATIC,Ljava_cup/Main;,build_end) (203) +88: Get(J,STATIC,Ljava_cup/Main;,check_end) (206) +89: BinaryOp(J,sub) (209) +90: LocalLoad(J,0) (210) +91: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (211) +92: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (214) +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (217) +94: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (220) +95: Get(J,STATIC,Ljava_cup/Main;,nullability_end) (223) +96: Constant(J,0) (226) +97: Comparison(J,cmp) (227) +98: Constant(I,0) (228) +99: ConditionalBranch(I,eq,119) (228) +100: Get(J,STATIC,Ljava_cup/Main;,check_end) (231) +101: Constant(J,0) (234) +102: Comparison(J,cmp) (235) +103: Constant(I,0) (236) +104: ConditionalBranch(I,eq,119) (236) +105: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (239) +106: New(Ljava/lang/StringBuilder;,0) (242) +107: Dup(1,0) (245) +108: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (246) +109: Constant(Ljava/lang/String;," Nullability ") (249) +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) +111: Get(J,STATIC,Ljava_cup/Main;,nullability_end) (254) +112: Get(J,STATIC,Ljava_cup/Main;,check_end) (257) +113: BinaryOp(J,sub) (260) +114: LocalLoad(J,0) (261) +115: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (262) +116: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (265) +117: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (268) +118: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (271) +119: Get(J,STATIC,Ljava_cup/Main;,first_end) (274) +120: Constant(J,0) (277) +121: Comparison(J,cmp) (278) +122: Constant(I,0) (279) +123: ConditionalBranch(I,eq,143) (279) +124: Get(J,STATIC,Ljava_cup/Main;,nullability_end) (282) +125: Constant(J,0) (285) +126: Comparison(J,cmp) (286) +127: Constant(I,0) (287) +128: ConditionalBranch(I,eq,143) (287) +129: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (290) +130: New(Ljava/lang/StringBuilder;,0) (293) +131: Dup(1,0) (296) +132: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (297) +133: Constant(Ljava/lang/String;," First sets ") (300) +134: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (302) +135: Get(J,STATIC,Ljava_cup/Main;,first_end) (305) +136: Get(J,STATIC,Ljava_cup/Main;,nullability_end) (308) +137: BinaryOp(J,sub) (311) +138: LocalLoad(J,0) (312) +139: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (313) +140: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (316) +141: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (319) +142: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (322) +143: Get(J,STATIC,Ljava_cup/Main;,machine_end) (325) +144: Constant(J,0) (328) +145: Comparison(J,cmp) (329) +146: Constant(I,0) (330) +147: ConditionalBranch(I,eq,167) (330) +148: Get(J,STATIC,Ljava_cup/Main;,first_end) (333) +149: Constant(J,0) (336) +150: Comparison(J,cmp) (337) +151: Constant(I,0) (338) +152: ConditionalBranch(I,eq,167) (338) +153: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (341) +154: New(Ljava/lang/StringBuilder;,0) (344) +155: Dup(1,0) (347) +156: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (348) +157: Constant(Ljava/lang/String;," State build ") (351) +158: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (353) +159: Get(J,STATIC,Ljava_cup/Main;,machine_end) (356) +160: Get(J,STATIC,Ljava_cup/Main;,first_end) (359) +161: BinaryOp(J,sub) (362) +162: LocalLoad(J,0) (363) +163: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (364) +164: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (367) +165: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (370) +166: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (373) +167: Get(J,STATIC,Ljava_cup/Main;,table_end) (376) +168: Constant(J,0) (379) +169: Comparison(J,cmp) (380) +170: Constant(I,0) (381) +171: ConditionalBranch(I,eq,191) (381) +172: Get(J,STATIC,Ljava_cup/Main;,machine_end) (384) +173: Constant(J,0) (387) +174: Comparison(J,cmp) (388) +175: Constant(I,0) (389) +176: ConditionalBranch(I,eq,191) (389) +177: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (392) +178: New(Ljava/lang/StringBuilder;,0) (395) +179: Dup(1,0) (398) +180: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (399) +181: Constant(Ljava/lang/String;," Table build ") (402) +182: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (404) +183: Get(J,STATIC,Ljava_cup/Main;,table_end) (407) +184: Get(J,STATIC,Ljava_cup/Main;,machine_end) (410) +185: BinaryOp(J,sub) (413) +186: LocalLoad(J,0) (414) +187: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (415) +188: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (418) +189: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (421) +190: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (424) +191: Get(J,STATIC,Ljava_cup/Main;,reduce_check_end) (427) +192: Constant(J,0) (430) +193: Comparison(J,cmp) (431) +194: Constant(I,0) (432) +195: ConditionalBranch(I,eq,215) (432) +196: Get(J,STATIC,Ljava_cup/Main;,table_end) (435) +197: Constant(J,0) (438) +198: Comparison(J,cmp) (439) +199: Constant(I,0) (440) +200: ConditionalBranch(I,eq,215) (440) +201: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (443) +202: New(Ljava/lang/StringBuilder;,0) (446) +203: Dup(1,0) (449) +204: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (450) +205: Constant(Ljava/lang/String;," Checking ") (453) +206: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (455) +207: Get(J,STATIC,Ljava_cup/Main;,reduce_check_end) (458) +208: Get(J,STATIC,Ljava_cup/Main;,table_end) (461) +209: BinaryOp(J,sub) (464) +210: LocalLoad(J,0) (465) +211: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (466) +212: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (469) +213: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (472) +214: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (475) +215: Get(J,STATIC,Ljava_cup/Main;,emit_end) (478) +216: Constant(J,0) (481) +217: Comparison(J,cmp) (482) +218: Constant(I,0) (483) +219: ConditionalBranch(I,eq,239) (483) +220: Get(J,STATIC,Ljava_cup/Main;,build_end) (486) +221: Constant(J,0) (489) +222: Comparison(J,cmp) (490) +223: Constant(I,0) (491) +224: ConditionalBranch(I,eq,239) (491) +225: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (494) +226: New(Ljava/lang/StringBuilder;,0) (497) +227: Dup(1,0) (500) +228: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (501) +229: Constant(Ljava/lang/String;," Code Output ") (504) +230: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (506) +231: Get(J,STATIC,Ljava_cup/Main;,emit_end) (509) +232: Get(J,STATIC,Ljava_cup/Main;,build_end) (512) +233: BinaryOp(J,sub) (515) +234: LocalLoad(J,0) (516) +235: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (517) +236: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (520) +237: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (523) +238: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (526) +239: Get(J,STATIC,Ljava_cup/emit;,symbols_time) (529) +240: Constant(J,0) (532) +241: Comparison(J,cmp) (533) +242: Constant(I,0) (534) +243: ConditionalBranch(I,eq,256) (534) +244: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (537) +245: New(Ljava/lang/StringBuilder;,0) (540) +246: Dup(1,0) (543) +247: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (544) +248: Constant(Ljava/lang/String;," Symbols ") (547) +249: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (549) +250: Get(J,STATIC,Ljava_cup/emit;,symbols_time) (552) +251: LocalLoad(J,0) (555) +252: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (556) +253: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (559) +254: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (562) +255: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (565) +256: Get(J,STATIC,Ljava_cup/emit;,parser_time) (568) +257: Constant(J,0) (571) +258: Comparison(J,cmp) (572) +259: Constant(I,0) (573) +260: ConditionalBranch(I,eq,273) (573) +261: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (576) +262: New(Ljava/lang/StringBuilder;,0) (579) +263: Dup(1,0) (582) +264: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (583) +265: Constant(Ljava/lang/String;," Parser class ") (586) +266: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (588) +267: Get(J,STATIC,Ljava_cup/emit;,parser_time) (591) +268: LocalLoad(J,0) (594) +269: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (595) +270: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (598) +271: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (601) +272: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (604) +273: Get(J,STATIC,Ljava_cup/emit;,action_code_time) (607) +274: Constant(J,0) (610) +275: Comparison(J,cmp) (611) +276: Constant(I,0) (612) +277: ConditionalBranch(I,eq,290) (612) +278: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (615) +279: New(Ljava/lang/StringBuilder;,0) (618) +280: Dup(1,0) (621) +281: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (622) +282: Constant(Ljava/lang/String;," Actions ") (625) +283: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (627) +284: Get(J,STATIC,Ljava_cup/emit;,action_code_time) (630) +285: LocalLoad(J,0) (633) +286: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (634) +287: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (637) +288: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (640) +289: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (643) +290: Get(J,STATIC,Ljava_cup/emit;,production_table_time) (646) +291: Constant(J,0) (649) +292: Comparison(J,cmp) (650) +293: Constant(I,0) (651) +294: ConditionalBranch(I,eq,307) (651) +295: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (654) +296: New(Ljava/lang/StringBuilder;,0) (657) +297: Dup(1,0) (660) +298: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (661) +299: Constant(Ljava/lang/String;," Prod table ") (664) +300: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (667) +301: Get(J,STATIC,Ljava_cup/emit;,production_table_time) (670) +302: LocalLoad(J,0) (673) +303: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (674) +304: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (677) +305: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (680) +306: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (683) +307: Get(J,STATIC,Ljava_cup/emit;,action_table_time) (686) +308: Constant(J,0) (689) +309: Comparison(J,cmp) (690) +310: Constant(I,0) (691) +311: ConditionalBranch(I,eq,324) (691) +312: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (694) +313: New(Ljava/lang/StringBuilder;,0) (697) +314: Dup(1,0) (700) +315: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (701) +316: Constant(Ljava/lang/String;," Action tab ") (704) +317: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (707) +318: Get(J,STATIC,Ljava_cup/emit;,action_table_time) (710) +319: LocalLoad(J,0) (713) +320: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (714) +321: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (717) +322: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (720) +323: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (723) +324: Get(J,STATIC,Ljava_cup/emit;,goto_table_time) (726) +325: Constant(J,0) (729) +326: Comparison(J,cmp) (730) +327: Constant(I,0) (731) +328: ConditionalBranch(I,eq,341) (731) +329: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (734) +330: New(Ljava/lang/StringBuilder;,0) (737) +331: Dup(1,0) (740) +332: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (741) +333: Constant(Ljava/lang/String;," Reduce tab ") (744) +334: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (747) +335: Get(J,STATIC,Ljava_cup/emit;,goto_table_time) (750) +336: LocalLoad(J,0) (753) +337: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (754) +338: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (757) +339: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (760) +340: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (763) +341: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (766) +342: New(Ljava/lang/StringBuilder;,0) (769) +343: Dup(1,0) (772) +344: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (773) +345: Constant(Ljava/lang/String;," Dump Output ") (776) +346: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (779) +347: Get(J,STATIC,Ljava_cup/Main;,dump_end) (782) +348: Get(J,STATIC,Ljava_cup/Main;,emit_end) (785) +349: BinaryOp(J,sub) (788) +350: LocalLoad(J,0) (789) +351: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (790) +352: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (793) +353: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (796) +354: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (799) +355: Return(V) (802) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"show_times()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(J,STATIC,Ljava_cup/Main;,final_time) (0) + Handles null at 365 +5: Get(J,STATIC,Ljava_cup/Main;,start_time) (3) + Handles null at 365 +6: BinaryOp(J,sub) (6) + Handles null at 365 +7: LocalStore(J,0) (7) + Handles null at 365 +8: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (8) + Handles null at 365 +9: Constant(Ljava/lang/String;,". . . . . . . . . . . . . . . . . . . . . . . . . ") (11) + Handles null at 365 +10: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (13) + Handles null at 365 +11: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (16) + Handles null at 365 +12: Constant(Ljava/lang/String;," Timing Summary") (19) + Handles null at 365 +13: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (21) + Handles null at 365 +14: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (24) + Handles null at 365 +15: New(Ljava/lang/StringBuilder;,0) (27) + Handles null at 365 +16: Dup(1,0) (30) + Handles null at 365 +17: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (31) + Handles null at 365 +18: Constant(Ljava/lang/String;," Total time ") (34) + Handles null at 365 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) + Handles null at 365 +20: Get(J,STATIC,Ljava_cup/Main;,final_time) (39) + Handles null at 365 +21: Get(J,STATIC,Ljava_cup/Main;,start_time) (42) + Handles null at 365 +22: BinaryOp(J,sub) (45) + Handles null at 365 +23: LocalLoad(J,0) (46) + Handles null at 365 +24: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (47) + Handles null at 365 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (50) + Handles null at 365 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (53) + Handles null at 365 +27: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (56) + Handles null at 365 +28: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (59) + Handles null at 365 +29: New(Ljava/lang/StringBuilder;,0) (62) + Handles null at 365 +30: Dup(1,0) (65) + Handles null at 365 +31: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (66) + Handles null at 365 +32: Constant(Ljava/lang/String;," Startup ") (69) + Handles null at 365 +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (71) + Handles null at 365 +34: Get(J,STATIC,Ljava_cup/Main;,prelim_end) (74) + Handles null at 365 +35: Get(J,STATIC,Ljava_cup/Main;,start_time) (77) + Handles null at 365 +36: BinaryOp(J,sub) (80) + Handles null at 365 +37: LocalLoad(J,0) (81) + Handles null at 365 +38: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (82) + Handles null at 365 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (85) + Handles null at 365 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (88) + Handles null at 365 +41: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (91) + Handles null at 365 +42: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (94) + Handles null at 365 +43: New(Ljava/lang/StringBuilder;,0) (97) + Handles null at 365 +44: Dup(1,0) (100) + Handles null at 365 +45: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (101) + Handles null at 365 +46: Constant(Ljava/lang/String;," Parse ") (104) + Handles null at 365 +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (106) + Handles null at 365 +48: Get(J,STATIC,Ljava_cup/Main;,parse_end) (109) + Handles null at 365 +49: Get(J,STATIC,Ljava_cup/Main;,prelim_end) (112) + Handles null at 365 +50: BinaryOp(J,sub) (115) + Handles null at 365 +51: LocalLoad(J,0) (116) + Handles null at 365 +52: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (117) + Handles null at 365 +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (120) + Handles null at 365 +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (123) + Handles null at 365 +55: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (126) + Handles null at 365 +56: Get(J,STATIC,Ljava_cup/Main;,check_end) (129) + Handles null at 365 +57: Constant(J,0) (132) + Handles null at 365 +58: Comparison(J,cmp) (133) + Handles null at 365 +59: Constant(I,0) (134) + Handles null at 365 +60: ConditionalBranch(I,eq,75) (134) + Handles null at 365 +61: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (137) + Handles null at 365 +62: New(Ljava/lang/StringBuilder;,0) (140) + Handles null at 365 +63: Dup(1,0) (143) + Handles null at 365 +64: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (144) + Handles null at 365 +65: Constant(Ljava/lang/String;," Checking ") (147) + Handles null at 365 +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (149) + Handles null at 365 +67: Get(J,STATIC,Ljava_cup/Main;,check_end) (152) + Handles null at 365 +68: Get(J,STATIC,Ljava_cup/Main;,parse_end) (155) + Handles null at 365 +69: BinaryOp(J,sub) (158) + Handles null at 365 +70: LocalLoad(J,0) (159) + Handles null at 365 +71: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (160) + Handles null at 365 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (163) + Handles null at 365 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (166) + Handles null at 365 +74: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (169) + Handles null at 365 +75: Get(J,STATIC,Ljava_cup/Main;,check_end) (172) + Handles null at 365 +76: Constant(J,0) (175) + Handles null at 365 +77: Comparison(J,cmp) (176) + Handles null at 365 +78: Constant(I,0) (177) + Handles null at 365 +79: ConditionalBranch(I,eq,99) (177) + Handles null at 365 +80: Get(J,STATIC,Ljava_cup/Main;,build_end) (180) + Handles null at 365 +81: Constant(J,0) (183) + Handles null at 365 +82: Comparison(J,cmp) (184) + Handles null at 365 +83: Constant(I,0) (185) + Handles null at 365 +84: ConditionalBranch(I,eq,99) (185) + Handles null at 365 +85: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (188) + Handles null at 365 +86: New(Ljava/lang/StringBuilder;,0) (191) + Handles null at 365 +87: Dup(1,0) (194) + Handles null at 365 +88: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (195) + Handles null at 365 +89: Constant(Ljava/lang/String;," Parser Build ") (198) + Handles null at 365 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (200) + Handles null at 365 +91: Get(J,STATIC,Ljava_cup/Main;,build_end) (203) + Handles null at 365 +92: Get(J,STATIC,Ljava_cup/Main;,check_end) (206) + Handles null at 365 +93: BinaryOp(J,sub) (209) + Handles null at 365 +94: LocalLoad(J,0) (210) + Handles null at 365 +95: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (211) + Handles null at 365 +96: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (214) + Handles null at 365 +97: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (217) + Handles null at 365 +98: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (220) + Handles null at 365 +99: Get(J,STATIC,Ljava_cup/Main;,nullability_end) (223) + Handles null at 365 +100: Constant(J,0) (226) + Handles null at 365 +101: Comparison(J,cmp) (227) + Handles null at 365 +102: Constant(I,0) (228) + Handles null at 365 +103: ConditionalBranch(I,eq,123) (228) + Handles null at 365 +104: Get(J,STATIC,Ljava_cup/Main;,check_end) (231) + Handles null at 365 +105: Constant(J,0) (234) + Handles null at 365 +106: Comparison(J,cmp) (235) + Handles null at 365 +107: Constant(I,0) (236) + Handles null at 365 +108: ConditionalBranch(I,eq,123) (236) + Handles null at 365 +109: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (239) + Handles null at 365 +110: New(Ljava/lang/StringBuilder;,0) (242) + Handles null at 365 +111: Dup(1,0) (245) + Handles null at 365 +112: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (246) + Handles null at 365 +113: Constant(Ljava/lang/String;," Nullability ") (249) + Handles null at 365 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) + Handles null at 365 +115: Get(J,STATIC,Ljava_cup/Main;,nullability_end) (254) + Handles null at 365 +116: Get(J,STATIC,Ljava_cup/Main;,check_end) (257) + Handles null at 365 +117: BinaryOp(J,sub) (260) + Handles null at 365 +118: LocalLoad(J,0) (261) + Handles null at 365 +119: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (262) + Handles null at 365 +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (265) + Handles null at 365 +121: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (268) + Handles null at 365 +122: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (271) + Handles null at 365 +123: Get(J,STATIC,Ljava_cup/Main;,first_end) (274) + Handles null at 365 +124: Constant(J,0) (277) + Handles null at 365 +125: Comparison(J,cmp) (278) + Handles null at 365 +126: Constant(I,0) (279) + Handles null at 365 +127: ConditionalBranch(I,eq,147) (279) + Handles null at 365 +128: Get(J,STATIC,Ljava_cup/Main;,nullability_end) (282) + Handles null at 365 +129: Constant(J,0) (285) + Handles null at 365 +130: Comparison(J,cmp) (286) + Handles null at 365 +131: Constant(I,0) (287) + Handles null at 365 +132: ConditionalBranch(I,eq,147) (287) + Handles null at 365 +133: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (290) + Handles null at 365 +134: New(Ljava/lang/StringBuilder;,0) (293) + Handles null at 365 +135: Dup(1,0) (296) + Handles null at 365 +136: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (297) + Handles null at 365 +137: Constant(Ljava/lang/String;," First sets ") (300) + Handles null at 365 +138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (302) + Handles null at 365 +139: Get(J,STATIC,Ljava_cup/Main;,first_end) (305) + Handles null at 365 +140: Get(J,STATIC,Ljava_cup/Main;,nullability_end) (308) + Handles null at 365 +141: BinaryOp(J,sub) (311) + Handles null at 365 +142: LocalLoad(J,0) (312) + Handles null at 365 +143: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (313) + Handles null at 365 +144: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (316) + Handles null at 365 +145: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (319) + Handles null at 365 +146: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (322) + Handles null at 365 +147: Get(J,STATIC,Ljava_cup/Main;,machine_end) (325) + Handles null at 365 +148: Constant(J,0) (328) + Handles null at 365 +149: Comparison(J,cmp) (329) + Handles null at 365 +150: Constant(I,0) (330) + Handles null at 365 +151: ConditionalBranch(I,eq,171) (330) + Handles null at 365 +152: Get(J,STATIC,Ljava_cup/Main;,first_end) (333) + Handles null at 365 +153: Constant(J,0) (336) + Handles null at 365 +154: Comparison(J,cmp) (337) + Handles null at 365 +155: Constant(I,0) (338) + Handles null at 365 +156: ConditionalBranch(I,eq,171) (338) + Handles null at 365 +157: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (341) + Handles null at 365 +158: New(Ljava/lang/StringBuilder;,0) (344) + Handles null at 365 +159: Dup(1,0) (347) + Handles null at 365 +160: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (348) + Handles null at 365 +161: Constant(Ljava/lang/String;," State build ") (351) + Handles null at 365 +162: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (353) + Handles null at 365 +163: Get(J,STATIC,Ljava_cup/Main;,machine_end) (356) + Handles null at 365 +164: Get(J,STATIC,Ljava_cup/Main;,first_end) (359) + Handles null at 365 +165: BinaryOp(J,sub) (362) + Handles null at 365 +166: LocalLoad(J,0) (363) + Handles null at 365 +167: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (364) + Handles null at 365 +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (367) + Handles null at 365 +169: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (370) + Handles null at 365 +170: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (373) + Handles null at 365 +171: Get(J,STATIC,Ljava_cup/Main;,table_end) (376) + Handles null at 365 +172: Constant(J,0) (379) + Handles null at 365 +173: Comparison(J,cmp) (380) + Handles null at 365 +174: Constant(I,0) (381) + Handles null at 365 +175: ConditionalBranch(I,eq,195) (381) + Handles null at 365 +176: Get(J,STATIC,Ljava_cup/Main;,machine_end) (384) + Handles null at 365 +177: Constant(J,0) (387) + Handles null at 365 +178: Comparison(J,cmp) (388) + Handles null at 365 +179: Constant(I,0) (389) + Handles null at 365 +180: ConditionalBranch(I,eq,195) (389) + Handles null at 365 +181: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (392) + Handles null at 365 +182: New(Ljava/lang/StringBuilder;,0) (395) + Handles null at 365 +183: Dup(1,0) (398) + Handles null at 365 +184: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (399) + Handles null at 365 +185: Constant(Ljava/lang/String;," Table build ") (402) + Handles null at 365 +186: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (404) + Handles null at 365 +187: Get(J,STATIC,Ljava_cup/Main;,table_end) (407) + Handles null at 365 +188: Get(J,STATIC,Ljava_cup/Main;,machine_end) (410) + Handles null at 365 +189: BinaryOp(J,sub) (413) + Handles null at 365 +190: LocalLoad(J,0) (414) + Handles null at 365 +191: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (415) + Handles null at 365 +192: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (418) + Handles null at 365 +193: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (421) + Handles null at 365 +194: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (424) + Handles null at 365 +195: Get(J,STATIC,Ljava_cup/Main;,reduce_check_end) (427) + Handles null at 365 +196: Constant(J,0) (430) + Handles null at 365 +197: Comparison(J,cmp) (431) + Handles null at 365 +198: Constant(I,0) (432) + Handles null at 365 +199: ConditionalBranch(I,eq,219) (432) + Handles null at 365 +200: Get(J,STATIC,Ljava_cup/Main;,table_end) (435) + Handles null at 365 +201: Constant(J,0) (438) + Handles null at 365 +202: Comparison(J,cmp) (439) + Handles null at 365 +203: Constant(I,0) (440) + Handles null at 365 +204: ConditionalBranch(I,eq,219) (440) + Handles null at 365 +205: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (443) + Handles null at 365 +206: New(Ljava/lang/StringBuilder;,0) (446) + Handles null at 365 +207: Dup(1,0) (449) + Handles null at 365 +208: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (450) + Handles null at 365 +209: Constant(Ljava/lang/String;," Checking ") (453) + Handles null at 365 +210: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (455) + Handles null at 365 +211: Get(J,STATIC,Ljava_cup/Main;,reduce_check_end) (458) + Handles null at 365 +212: Get(J,STATIC,Ljava_cup/Main;,table_end) (461) + Handles null at 365 +213: BinaryOp(J,sub) (464) + Handles null at 365 +214: LocalLoad(J,0) (465) + Handles null at 365 +215: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (466) + Handles null at 365 +216: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (469) + Handles null at 365 +217: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (472) + Handles null at 365 +218: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (475) + Handles null at 365 +219: Get(J,STATIC,Ljava_cup/Main;,emit_end) (478) + Handles null at 365 +220: Constant(J,0) (481) + Handles null at 365 +221: Comparison(J,cmp) (482) + Handles null at 365 +222: Constant(I,0) (483) + Handles null at 365 +223: ConditionalBranch(I,eq,243) (483) + Handles null at 365 +224: Get(J,STATIC,Ljava_cup/Main;,build_end) (486) + Handles null at 365 +225: Constant(J,0) (489) + Handles null at 365 +226: Comparison(J,cmp) (490) + Handles null at 365 +227: Constant(I,0) (491) + Handles null at 365 +228: ConditionalBranch(I,eq,243) (491) + Handles null at 365 +229: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (494) + Handles null at 365 +230: New(Ljava/lang/StringBuilder;,0) (497) + Handles null at 365 +231: Dup(1,0) (500) + Handles null at 365 +232: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (501) + Handles null at 365 +233: Constant(Ljava/lang/String;," Code Output ") (504) + Handles null at 365 +234: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (506) + Handles null at 365 +235: Get(J,STATIC,Ljava_cup/Main;,emit_end) (509) + Handles null at 365 +236: Get(J,STATIC,Ljava_cup/Main;,build_end) (512) + Handles null at 365 +237: BinaryOp(J,sub) (515) + Handles null at 365 +238: LocalLoad(J,0) (516) + Handles null at 365 +239: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (517) + Handles null at 365 +240: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (520) + Handles null at 365 +241: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (523) + Handles null at 365 +242: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (526) + Handles null at 365 +243: Get(J,STATIC,Ljava_cup/emit;,symbols_time) (529) + Handles null at 365 +244: Constant(J,0) (532) + Handles null at 365 +245: Comparison(J,cmp) (533) + Handles null at 365 +246: Constant(I,0) (534) + Handles null at 365 +247: ConditionalBranch(I,eq,260) (534) + Handles null at 365 +248: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (537) + Handles null at 365 +249: New(Ljava/lang/StringBuilder;,0) (540) + Handles null at 365 +250: Dup(1,0) (543) + Handles null at 365 +251: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (544) + Handles null at 365 +252: Constant(Ljava/lang/String;," Symbols ") (547) + Handles null at 365 +253: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (549) + Handles null at 365 +254: Get(J,STATIC,Ljava_cup/emit;,symbols_time) (552) + Handles null at 365 +255: LocalLoad(J,0) (555) + Handles null at 365 +256: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (556) + Handles null at 365 +257: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (559) + Handles null at 365 +258: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (562) + Handles null at 365 +259: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (565) + Handles null at 365 +260: Get(J,STATIC,Ljava_cup/emit;,parser_time) (568) + Handles null at 365 +261: Constant(J,0) (571) + Handles null at 365 +262: Comparison(J,cmp) (572) + Handles null at 365 +263: Constant(I,0) (573) + Handles null at 365 +264: ConditionalBranch(I,eq,277) (573) + Handles null at 365 +265: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (576) + Handles null at 365 +266: New(Ljava/lang/StringBuilder;,0) (579) + Handles null at 365 +267: Dup(1,0) (582) + Handles null at 365 +268: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (583) + Handles null at 365 +269: Constant(Ljava/lang/String;," Parser class ") (586) + Handles null at 365 +270: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (588) + Handles null at 365 +271: Get(J,STATIC,Ljava_cup/emit;,parser_time) (591) + Handles null at 365 +272: LocalLoad(J,0) (594) + Handles null at 365 +273: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (595) + Handles null at 365 +274: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (598) + Handles null at 365 +275: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (601) + Handles null at 365 +276: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (604) + Handles null at 365 +277: Get(J,STATIC,Ljava_cup/emit;,action_code_time) (607) + Handles null at 365 +278: Constant(J,0) (610) + Handles null at 365 +279: Comparison(J,cmp) (611) + Handles null at 365 +280: Constant(I,0) (612) + Handles null at 365 +281: ConditionalBranch(I,eq,294) (612) + Handles null at 365 +282: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (615) + Handles null at 365 +283: New(Ljava/lang/StringBuilder;,0) (618) + Handles null at 365 +284: Dup(1,0) (621) + Handles null at 365 +285: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (622) + Handles null at 365 +286: Constant(Ljava/lang/String;," Actions ") (625) + Handles null at 365 +287: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (627) + Handles null at 365 +288: Get(J,STATIC,Ljava_cup/emit;,action_code_time) (630) + Handles null at 365 +289: LocalLoad(J,0) (633) + Handles null at 365 +290: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (634) + Handles null at 365 +291: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (637) + Handles null at 365 +292: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (640) + Handles null at 365 +293: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (643) + Handles null at 365 +294: Get(J,STATIC,Ljava_cup/emit;,production_table_time) (646) + Handles null at 365 +295: Constant(J,0) (649) + Handles null at 365 +296: Comparison(J,cmp) (650) + Handles null at 365 +297: Constant(I,0) (651) + Handles null at 365 +298: ConditionalBranch(I,eq,311) (651) + Handles null at 365 +299: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (654) + Handles null at 365 +300: New(Ljava/lang/StringBuilder;,0) (657) + Handles null at 365 +301: Dup(1,0) (660) + Handles null at 365 +302: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (661) + Handles null at 365 +303: Constant(Ljava/lang/String;," Prod table ") (664) + Handles null at 365 +304: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (667) + Handles null at 365 +305: Get(J,STATIC,Ljava_cup/emit;,production_table_time) (670) + Handles null at 365 +306: LocalLoad(J,0) (673) + Handles null at 365 +307: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (674) + Handles null at 365 +308: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (677) + Handles null at 365 +309: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (680) + Handles null at 365 +310: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (683) + Handles null at 365 +311: Get(J,STATIC,Ljava_cup/emit;,action_table_time) (686) + Handles null at 365 +312: Constant(J,0) (689) + Handles null at 365 +313: Comparison(J,cmp) (690) + Handles null at 365 +314: Constant(I,0) (691) + Handles null at 365 +315: ConditionalBranch(I,eq,328) (691) + Handles null at 365 +316: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (694) + Handles null at 365 +317: New(Ljava/lang/StringBuilder;,0) (697) + Handles null at 365 +318: Dup(1,0) (700) + Handles null at 365 +319: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (701) + Handles null at 365 +320: Constant(Ljava/lang/String;," Action tab ") (704) + Handles null at 365 +321: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (707) + Handles null at 365 +322: Get(J,STATIC,Ljava_cup/emit;,action_table_time) (710) + Handles null at 365 +323: LocalLoad(J,0) (713) + Handles null at 365 +324: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (714) + Handles null at 365 +325: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (717) + Handles null at 365 +326: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (720) + Handles null at 365 +327: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (723) + Handles null at 365 +328: Get(J,STATIC,Ljava_cup/emit;,goto_table_time) (726) + Handles null at 365 +329: Constant(J,0) (729) + Handles null at 365 +330: Comparison(J,cmp) (730) + Handles null at 365 +331: Constant(I,0) (731) + Handles null at 365 +332: ConditionalBranch(I,eq,345) (731) + Handles null at 365 +333: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (734) + Handles null at 365 +334: New(Ljava/lang/StringBuilder;,0) (737) + Handles null at 365 +335: Dup(1,0) (740) + Handles null at 365 +336: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (741) + Handles null at 365 +337: Constant(Ljava/lang/String;," Reduce tab ") (744) + Handles null at 365 +338: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (747) + Handles null at 365 +339: Get(J,STATIC,Ljava_cup/emit;,goto_table_time) (750) + Handles null at 365 +340: LocalLoad(J,0) (753) + Handles null at 365 +341: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (754) + Handles null at 365 +342: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (757) + Handles null at 365 +343: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (760) + Handles null at 365 +344: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (763) + Handles null at 365 +345: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (766) + Handles null at 365 +346: New(Ljava/lang/StringBuilder;,0) (769) + Handles null at 365 +347: Dup(1,0) (772) + Handles null at 365 +348: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (773) + Handles null at 365 +349: Constant(Ljava/lang/String;," Dump Output ") (776) + Handles null at 365 +350: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (779) + Handles null at 365 +351: Get(J,STATIC,Ljava_cup/Main;,dump_end) (782) + Handles null at 365 +352: Get(J,STATIC,Ljava_cup/Main;,emit_end) (785) + Handles null at 365 +353: BinaryOp(J,sub) (788) + Handles null at 365 +354: LocalLoad(J,0) (789) + Handles null at 365 +355: Invoke(STATIC,Ljava_cup/Main;,timestr,(JJ)Ljava/lang/String;) (790) + Handles null at 365 +356: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (793) + Handles null at 365 +357: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (796) + Handles null at 365 +358: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (799) + Handles null at 365 +359: Constant(Ljava/lang/String;,"java_cup/Main") (802) + Handles null at 365 +360: Constant(Ljava/lang/String;,"show_times()V") (802) + Handles null at 365 +361: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (802) + Handles null at 365 +362: Constant(I,0) (802) + Handles null at 365 +363: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (802) + Handles null at 365 +364: Return(V) (802) + Handles null at 365 +365: Constant(Ljava/lang/String;,"java_cup/Main") (0) +366: Constant(Ljava/lang/String;,"show_times()V") (0) +367: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +368: Constant(I,1) (0) +369: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +370: Throw() (0) +Instrumenting timestr (JJ)Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(J,0) (0) +1: LocalStore(J,5) (1) +2: Constant(J,0) (3) +3: LocalStore(J,7) (4) +4: LocalLoad(J,0) (6) +5: Constant(J,0) (7) +6: Comparison(J,cmp) (8) +7: Constant(I,0) (9) +8: ConditionalBranch(I,ge,11) (9) +9: Constant(I,1) (12) +10: Goto(12) (13) +11: Constant(I,0) (16) +12: LocalStore(I,4) (17) +13: LocalLoad(I,4) (19) +14: Constant(I,0) (21) +15: ConditionalBranch(I,eq,19) (21) +16: LocalLoad(J,0) (24) +17: UnaryOp(J,neg) (25) +18: LocalStore(J,0) (26) +19: LocalLoad(J,0) (27) +20: Constant(J,1000) (28) +21: BinaryOp(J,rem) (31) +22: LocalStore(J,5) (32) +23: LocalLoad(J,0) (34) +24: Constant(J,1000) (35) +25: BinaryOp(J,div) (38) +26: LocalStore(J,7) (39) +27: LocalLoad(J,7) (41) +28: Constant(J,10) (43) +29: Comparison(J,cmp) (46) +30: Constant(I,0) (47) +31: ConditionalBranch(I,ge,35) (47) +32: Constant(Ljava/lang/String;," ") (50) +33: LocalStore(Ljava/lang/Object;,11) (53) +34: Goto(53) (55) +35: LocalLoad(J,7) (58) +36: Constant(J,100) (60) +37: Comparison(J,cmp) (63) +38: Constant(I,0) (64) +39: ConditionalBranch(I,ge,43) (64) +40: Constant(Ljava/lang/String;," ") (67) +41: LocalStore(Ljava/lang/Object;,11) (69) +42: Goto(53) (71) +43: LocalLoad(J,7) (74) +44: Constant(J,1000) (76) +45: Comparison(J,cmp) (79) +46: Constant(I,0) (80) +47: ConditionalBranch(I,ge,51) (80) +48: Constant(Ljava/lang/String;," ") (83) +49: LocalStore(Ljava/lang/Object;,11) (86) +50: Goto(53) (88) +51: Constant(Ljava/lang/String;,"") (91) +52: LocalStore(Ljava/lang/Object;,11) (93) +53: LocalLoad(J,0) (95) +54: Constant(J,1000) (96) +55: BinaryOp(J,mul) (99) +56: LocalLoad(J,2) (100) +57: BinaryOp(J,div) (101) +58: LocalStore(J,9) (102) +59: New(Ljava/lang/StringBuilder;,0) (104) +60: Dup(1,0) (107) +61: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (108) +62: LocalLoad(I,4) (111) +63: Constant(I,0) (113) +64: ConditionalBranch(I,eq,67) (113) +65: Constant(Ljava/lang/String;,"-") (116) +66: Goto(68) (118) +67: Constant(Ljava/lang/String;,"") (121) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (123) +69: LocalLoad(Ljava/lang/Object;,11) (126) +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (128) +71: LocalLoad(J,7) (131) +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (133) +73: Constant(Ljava/lang/String;,".") (136) +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) +75: LocalLoad(J,5) (142) +76: Constant(J,1000) (144) +77: BinaryOp(J,rem) (147) +78: Constant(J,100) (148) +79: BinaryOp(J,div) (151) +80: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (152) +81: LocalLoad(J,5) (155) +82: Constant(J,100) (157) +83: BinaryOp(J,rem) (160) +84: Constant(J,10) (161) +85: BinaryOp(J,div) (164) +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (165) +87: LocalLoad(J,5) (168) +88: Constant(J,10) (170) +89: BinaryOp(J,rem) (173) +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (174) +91: Constant(Ljava/lang/String;,"sec") (177) +92: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (180) +93: Constant(Ljava/lang/String;," (") (183) +94: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (185) +95: LocalLoad(J,9) (188) +96: Constant(J,10) (190) +97: BinaryOp(J,div) (193) +98: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (194) +99: Constant(Ljava/lang/String;,".") (197) +100: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (200) +101: LocalLoad(J,9) (203) +102: Constant(J,10) (205) +103: BinaryOp(J,rem) (208) +104: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (209) +105: Constant(Ljava/lang/String;,"%)") (212) +106: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (215) +107: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (218) +108: Return(Ljava/lang/Object;) (221) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"timestr(JJ)Ljava/lang/String;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(J,0) (0) + Handles null at 118 +5: LocalStore(J,5) (1) + Handles null at 118 +6: Constant(J,0) (3) + Handles null at 118 +7: LocalStore(J,7) (4) + Handles null at 118 +8: LocalLoad(J,0) (6) + Handles null at 118 +9: Constant(J,0) (7) + Handles null at 118 +10: Comparison(J,cmp) (8) + Handles null at 118 +11: Constant(I,0) (9) + Handles null at 118 +12: ConditionalBranch(I,ge,15) (9) + Handles null at 118 +13: Constant(I,1) (12) + Handles null at 118 +14: Goto(16) (13) + Handles null at 118 +15: Constant(I,0) (16) + Handles null at 118 +16: LocalStore(I,4) (17) + Handles null at 118 +17: LocalLoad(I,4) (19) + Handles null at 118 +18: Constant(I,0) (21) + Handles null at 118 +19: ConditionalBranch(I,eq,23) (21) + Handles null at 118 +20: LocalLoad(J,0) (24) + Handles null at 118 +21: UnaryOp(J,neg) (25) + Handles null at 118 +22: LocalStore(J,0) (26) + Handles null at 118 +23: LocalLoad(J,0) (27) + Handles null at 118 +24: Constant(J,1000) (28) + Handles null at 118 +25: BinaryOp(J,rem) (31) + Handles null at 118 +26: LocalStore(J,5) (32) + Handles null at 118 +27: LocalLoad(J,0) (34) + Handles null at 118 +28: Constant(J,1000) (35) + Handles null at 118 +29: BinaryOp(J,div) (38) + Handles null at 118 +30: LocalStore(J,7) (39) + Handles null at 118 +31: LocalLoad(J,7) (41) + Handles null at 118 +32: Constant(J,10) (43) + Handles null at 118 +33: Comparison(J,cmp) (46) + Handles null at 118 +34: Constant(I,0) (47) + Handles null at 118 +35: ConditionalBranch(I,ge,39) (47) + Handles null at 118 +36: Constant(Ljava/lang/String;," ") (50) + Handles null at 118 +37: LocalStore(Ljava/lang/Object;,11) (53) + Handles null at 118 +38: Goto(57) (55) + Handles null at 118 +39: LocalLoad(J,7) (58) + Handles null at 118 +40: Constant(J,100) (60) + Handles null at 118 +41: Comparison(J,cmp) (63) + Handles null at 118 +42: Constant(I,0) (64) + Handles null at 118 +43: ConditionalBranch(I,ge,47) (64) + Handles null at 118 +44: Constant(Ljava/lang/String;," ") (67) + Handles null at 118 +45: LocalStore(Ljava/lang/Object;,11) (69) + Handles null at 118 +46: Goto(57) (71) + Handles null at 118 +47: LocalLoad(J,7) (74) + Handles null at 118 +48: Constant(J,1000) (76) + Handles null at 118 +49: Comparison(J,cmp) (79) + Handles null at 118 +50: Constant(I,0) (80) + Handles null at 118 +51: ConditionalBranch(I,ge,55) (80) + Handles null at 118 +52: Constant(Ljava/lang/String;," ") (83) + Handles null at 118 +53: LocalStore(Ljava/lang/Object;,11) (86) + Handles null at 118 +54: Goto(57) (88) + Handles null at 118 +55: Constant(Ljava/lang/String;,"") (91) + Handles null at 118 +56: LocalStore(Ljava/lang/Object;,11) (93) + Handles null at 118 +57: LocalLoad(J,0) (95) + Handles null at 118 +58: Constant(J,1000) (96) + Handles null at 118 +59: BinaryOp(J,mul) (99) + Handles null at 118 +60: LocalLoad(J,2) (100) + Handles null at 118 +61: BinaryOp(J,div) (101) + Handles null at 118 +62: LocalStore(J,9) (102) + Handles null at 118 +63: New(Ljava/lang/StringBuilder;,0) (104) + Handles null at 118 +64: Dup(1,0) (107) + Handles null at 118 +65: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (108) + Handles null at 118 +66: LocalLoad(I,4) (111) + Handles null at 118 +67: Constant(I,0) (113) + Handles null at 118 +68: ConditionalBranch(I,eq,71) (113) + Handles null at 118 +69: Constant(Ljava/lang/String;,"-") (116) + Handles null at 118 +70: Goto(72) (118) + Handles null at 118 +71: Constant(Ljava/lang/String;,"") (121) + Handles null at 118 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (123) + Handles null at 118 +73: LocalLoad(Ljava/lang/Object;,11) (126) + Handles null at 118 +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (128) + Handles null at 118 +75: LocalLoad(J,7) (131) + Handles null at 118 +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (133) + Handles null at 118 +77: Constant(Ljava/lang/String;,".") (136) + Handles null at 118 +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) + Handles null at 118 +79: LocalLoad(J,5) (142) + Handles null at 118 +80: Constant(J,1000) (144) + Handles null at 118 +81: BinaryOp(J,rem) (147) + Handles null at 118 +82: Constant(J,100) (148) + Handles null at 118 +83: BinaryOp(J,div) (151) + Handles null at 118 +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (152) + Handles null at 118 +85: LocalLoad(J,5) (155) + Handles null at 118 +86: Constant(J,100) (157) + Handles null at 118 +87: BinaryOp(J,rem) (160) + Handles null at 118 +88: Constant(J,10) (161) + Handles null at 118 +89: BinaryOp(J,div) (164) + Handles null at 118 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (165) + Handles null at 118 +91: LocalLoad(J,5) (168) + Handles null at 118 +92: Constant(J,10) (170) + Handles null at 118 +93: BinaryOp(J,rem) (173) + Handles null at 118 +94: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (174) + Handles null at 118 +95: Constant(Ljava/lang/String;,"sec") (177) + Handles null at 118 +96: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (180) + Handles null at 118 +97: Constant(Ljava/lang/String;," (") (183) + Handles null at 118 +98: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (185) + Handles null at 118 +99: LocalLoad(J,9) (188) + Handles null at 118 +100: Constant(J,10) (190) + Handles null at 118 +101: BinaryOp(J,div) (193) + Handles null at 118 +102: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (194) + Handles null at 118 +103: Constant(Ljava/lang/String;,".") (197) + Handles null at 118 +104: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (200) + Handles null at 118 +105: LocalLoad(J,9) (203) + Handles null at 118 +106: Constant(J,10) (205) + Handles null at 118 +107: BinaryOp(J,rem) (208) + Handles null at 118 +108: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(J)Ljava/lang/StringBuilder;) (209) + Handles null at 118 +109: Constant(Ljava/lang/String;,"%)") (212) + Handles null at 118 +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (215) + Handles null at 118 +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (218) + Handles null at 118 +112: Constant(Ljava/lang/String;,"java_cup/Main") (221) + Handles null at 118 +113: Constant(Ljava/lang/String;,"timestr(JJ)Ljava/lang/String;") (221) + Handles null at 118 +114: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (221) + Handles null at 118 +115: Constant(I,0) (221) + Handles null at 118 +116: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (221) + Handles null at 118 +117: Return(Ljava/lang/Object;) (221) + Handles null at 118 +118: Constant(Ljava/lang/String;,"java_cup/Main") (0) +119: Constant(Ljava/lang/String;,"timestr(JJ)Ljava/lang/String;") (0) +120: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +121: Constant(I,1) (0) +122: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +123: Throw() (0) +Instrumenting dump_grammar ()V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: Constant(Ljava/lang/String;,"===== Terminals =====") (3) +2: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (6) +3: Constant(I,0) (9) +4: LocalStore(I,0) (10) +5: Constant(I,0) (11) +6: LocalStore(I,1) (12) +7: LocalLoad(I,0) (13) +8: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (14) +9: ConditionalBranch(I,ge,46) (17) +10: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (20) +11: New(Ljava/lang/StringBuilder;,0) (23) +12: Dup(1,0) (26) +13: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) +14: Constant(Ljava/lang/String;,"[") (30) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) +16: LocalLoad(I,0) (36) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (37) +18: Constant(Ljava/lang/String;,"]") (40) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) +20: LocalLoad(I,0) (46) +21: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (47) +22: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (50) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (53) +24: Constant(Ljava/lang/String;," ") (56) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (62) +27: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (65) +28: LocalLoad(I,1) (68) +29: Constant(I,1) (69) +30: BinaryOp(I,add) (70) +31: Constant(I,5) (71) +32: BinaryOp(I,rem) (72) +33: Constant(I,0) (73) +34: ConditionalBranch(I,ne,37) (73) +35: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (76) +36: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (79) +37: LocalLoad(I,0) (82) +38: Constant(I,1) (82) +39: BinaryOp(I,add) (82) +40: LocalStore(I,0) (82) +41: LocalLoad(I,1) (85) +42: Constant(I,1) (85) +43: BinaryOp(I,add) (85) +44: LocalStore(I,1) (85) +45: Goto(7) (88) +46: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (91) +47: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (94) +48: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (97) +49: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (100) +50: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (103) +51: Constant(Ljava/lang/String;,"===== Non terminals =====") (106) +52: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (109) +53: Constant(I,0) (112) +54: LocalStore(I,0) (113) +55: Constant(I,0) (114) +56: LocalStore(I,1) (115) +57: LocalLoad(I,0) (116) +58: Invoke(STATIC,Ljava_cup/non_terminal;,number,()I) (117) +59: ConditionalBranch(I,ge,96) (120) +60: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (123) +61: New(Ljava/lang/StringBuilder;,0) (126) +62: Dup(1,0) (129) +63: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (130) +64: Constant(Ljava/lang/String;,"[") (133) +65: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (136) +66: LocalLoad(I,0) (139) +67: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (140) +68: Constant(Ljava/lang/String;,"]") (143) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (146) +70: LocalLoad(I,0) (149) +71: Invoke(STATIC,Ljava_cup/non_terminal;,find,(I)Ljava_cup/non_terminal;) (150) +72: Invoke(VIRTUAL,Ljava_cup/non_terminal;,name,()Ljava/lang/String;) (153) +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) +74: Constant(Ljava/lang/String;," ") (159) +75: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (162) +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (165) +77: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (168) +78: LocalLoad(I,1) (171) +79: Constant(I,1) (172) +80: BinaryOp(I,add) (173) +81: Constant(I,5) (174) +82: BinaryOp(I,rem) (175) +83: Constant(I,0) (176) +84: ConditionalBranch(I,ne,87) (176) +85: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (179) +86: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (182) +87: LocalLoad(I,0) (185) +88: Constant(I,1) (185) +89: BinaryOp(I,add) (185) +90: LocalStore(I,0) (185) +91: LocalLoad(I,1) (188) +92: Constant(I,1) (188) +93: BinaryOp(I,add) (188) +94: LocalStore(I,1) (188) +95: Goto(57) (191) +96: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (194) +97: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (197) +98: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (200) +99: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (203) +100: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (206) +101: Constant(Ljava/lang/String;,"===== Productions =====") (209) +102: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (212) +103: Constant(I,0) (215) +104: LocalStore(I,0) (216) +105: LocalLoad(I,0) (217) +106: Invoke(STATIC,Ljava_cup/production;,number,()I) (218) +107: ConditionalBranch(I,ge,173) (221) +108: LocalLoad(I,0) (224) +109: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (225) +110: LocalStore(Ljava/lang/Object;,1) (228) +111: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (229) +112: New(Ljava/lang/StringBuilder;,0) (232) +113: Dup(1,0) (235) +114: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (236) +115: Constant(Ljava/lang/String;,"[") (239) +116: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (242) +117: LocalLoad(I,0) (245) +118: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (246) +119: Constant(Ljava/lang/String;,"] ") (249) +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (252) +121: LocalLoad(Ljava/lang/Object;,1) (255) +122: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (256) +123: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (259) +124: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (262) +125: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (265) +126: Constant(Ljava/lang/String;," ::= ") (268) +127: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (271) +128: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (274) +129: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (277) +130: Constant(I,0) (280) +131: LocalStore(I,2) (281) +132: LocalLoad(I,2) (282) +133: LocalLoad(Ljava/lang/Object;,1) (283) +134: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (284) +135: ConditionalBranch(I,ge,166) (287) +136: LocalLoad(Ljava/lang/Object;,1) (290) +137: LocalLoad(I,2) (291) +138: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (292) +139: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (295) +140: Constant(I,0) (298) +141: ConditionalBranch(I,eq,146) (298) +142: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (301) +143: Constant(Ljava/lang/String;,"{action} ") (304) +144: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (307) +145: Goto(161) (310) +146: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (313) +147: New(Ljava/lang/StringBuilder;,0) (316) +148: Dup(1,0) (319) +149: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (320) +150: LocalLoad(Ljava/lang/Object;,1) (323) +151: LocalLoad(I,2) (324) +152: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (325) +153: CheckCast(Ljava_cup/symbol_part;) (328) +154: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (331) +155: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (334) +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (337) +157: Constant(Ljava/lang/String;," ") (340) +158: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (343) +159: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (346) +160: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (349) +161: LocalLoad(I,2) (352) +162: Constant(I,1) (352) +163: BinaryOp(I,add) (352) +164: LocalStore(I,2) (352) +165: Goto(132) (355) +166: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (358) +167: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (361) +168: LocalLoad(I,0) (364) +169: Constant(I,1) (364) +170: BinaryOp(I,add) (364) +171: LocalStore(I,0) (364) +172: Goto(105) (367) +173: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (370) +174: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (373) +175: Return(V) (376) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"dump_grammar()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 185 +5: Constant(Ljava/lang/String;,"===== Terminals =====") (3) + Handles null at 185 +6: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (6) + Handles null at 185 +7: Constant(I,0) (9) + Handles null at 185 +8: LocalStore(I,0) (10) + Handles null at 185 +9: Constant(I,0) (11) + Handles null at 185 +10: LocalStore(I,1) (12) + Handles null at 185 +11: LocalLoad(I,0) (13) + Handles null at 185 +12: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (14) + Handles null at 185 +13: ConditionalBranch(I,ge,50) (17) + Handles null at 185 +14: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (20) + Handles null at 185 +15: New(Ljava/lang/StringBuilder;,0) (23) + Handles null at 185 +16: Dup(1,0) (26) + Handles null at 185 +17: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) + Handles null at 185 +18: Constant(Ljava/lang/String;,"[") (30) + Handles null at 185 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) + Handles null at 185 +20: LocalLoad(I,0) (36) + Handles null at 185 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (37) + Handles null at 185 +22: Constant(Ljava/lang/String;,"]") (40) + Handles null at 185 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) + Handles null at 185 +24: LocalLoad(I,0) (46) + Handles null at 185 +25: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (47) + Handles null at 185 +26: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (50) + Handles null at 185 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (53) + Handles null at 185 +28: Constant(Ljava/lang/String;," ") (56) + Handles null at 185 +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) + Handles null at 185 +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (62) + Handles null at 185 +31: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (65) + Handles null at 185 +32: LocalLoad(I,1) (68) + Handles null at 185 +33: Constant(I,1) (69) + Handles null at 185 +34: BinaryOp(I,add) (70) + Handles null at 185 +35: Constant(I,5) (71) + Handles null at 185 +36: BinaryOp(I,rem) (72) + Handles null at 185 +37: Constant(I,0) (73) + Handles null at 185 +38: ConditionalBranch(I,ne,41) (73) + Handles null at 185 +39: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (76) + Handles null at 185 +40: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (79) + Handles null at 185 +41: LocalLoad(I,0) (82) + Handles null at 185 +42: Constant(I,1) (82) + Handles null at 185 +43: BinaryOp(I,add) (82) + Handles null at 185 +44: LocalStore(I,0) (82) + Handles null at 185 +45: LocalLoad(I,1) (85) + Handles null at 185 +46: Constant(I,1) (85) + Handles null at 185 +47: BinaryOp(I,add) (85) + Handles null at 185 +48: LocalStore(I,1) (85) + Handles null at 185 +49: Goto(11) (88) + Handles null at 185 +50: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (91) + Handles null at 185 +51: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (94) + Handles null at 185 +52: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (97) + Handles null at 185 +53: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (100) + Handles null at 185 +54: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (103) + Handles null at 185 +55: Constant(Ljava/lang/String;,"===== Non terminals =====") (106) + Handles null at 185 +56: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (109) + Handles null at 185 +57: Constant(I,0) (112) + Handles null at 185 +58: LocalStore(I,0) (113) + Handles null at 185 +59: Constant(I,0) (114) + Handles null at 185 +60: LocalStore(I,1) (115) + Handles null at 185 +61: LocalLoad(I,0) (116) + Handles null at 185 +62: Invoke(STATIC,Ljava_cup/non_terminal;,number,()I) (117) + Handles null at 185 +63: ConditionalBranch(I,ge,100) (120) + Handles null at 185 +64: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (123) + Handles null at 185 +65: New(Ljava/lang/StringBuilder;,0) (126) + Handles null at 185 +66: Dup(1,0) (129) + Handles null at 185 +67: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (130) + Handles null at 185 +68: Constant(Ljava/lang/String;,"[") (133) + Handles null at 185 +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (136) + Handles null at 185 +70: LocalLoad(I,0) (139) + Handles null at 185 +71: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (140) + Handles null at 185 +72: Constant(Ljava/lang/String;,"]") (143) + Handles null at 185 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (146) + Handles null at 185 +74: LocalLoad(I,0) (149) + Handles null at 185 +75: Invoke(STATIC,Ljava_cup/non_terminal;,find,(I)Ljava_cup/non_terminal;) (150) + Handles null at 185 +76: Invoke(VIRTUAL,Ljava_cup/non_terminal;,name,()Ljava/lang/String;) (153) + Handles null at 185 +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) + Handles null at 185 +78: Constant(Ljava/lang/String;," ") (159) + Handles null at 185 +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (162) + Handles null at 185 +80: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (165) + Handles null at 185 +81: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (168) + Handles null at 185 +82: LocalLoad(I,1) (171) + Handles null at 185 +83: Constant(I,1) (172) + Handles null at 185 +84: BinaryOp(I,add) (173) + Handles null at 185 +85: Constant(I,5) (174) + Handles null at 185 +86: BinaryOp(I,rem) (175) + Handles null at 185 +87: Constant(I,0) (176) + Handles null at 185 +88: ConditionalBranch(I,ne,91) (176) + Handles null at 185 +89: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (179) + Handles null at 185 +90: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (182) + Handles null at 185 +91: LocalLoad(I,0) (185) + Handles null at 185 +92: Constant(I,1) (185) + Handles null at 185 +93: BinaryOp(I,add) (185) + Handles null at 185 +94: LocalStore(I,0) (185) + Handles null at 185 +95: LocalLoad(I,1) (188) + Handles null at 185 +96: Constant(I,1) (188) + Handles null at 185 +97: BinaryOp(I,add) (188) + Handles null at 185 +98: LocalStore(I,1) (188) + Handles null at 185 +99: Goto(61) (191) + Handles null at 185 +100: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (194) + Handles null at 185 +101: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (197) + Handles null at 185 +102: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (200) + Handles null at 185 +103: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (203) + Handles null at 185 +104: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (206) + Handles null at 185 +105: Constant(Ljava/lang/String;,"===== Productions =====") (209) + Handles null at 185 +106: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (212) + Handles null at 185 +107: Constant(I,0) (215) + Handles null at 185 +108: LocalStore(I,0) (216) + Handles null at 185 +109: LocalLoad(I,0) (217) + Handles null at 185 +110: Invoke(STATIC,Ljava_cup/production;,number,()I) (218) + Handles null at 185 +111: ConditionalBranch(I,ge,177) (221) + Handles null at 185 +112: LocalLoad(I,0) (224) + Handles null at 185 +113: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (225) + Handles null at 185 +114: LocalStore(Ljava/lang/Object;,1) (228) + Handles null at 185 +115: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (229) + Handles null at 185 +116: New(Ljava/lang/StringBuilder;,0) (232) + Handles null at 185 +117: Dup(1,0) (235) + Handles null at 185 +118: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (236) + Handles null at 185 +119: Constant(Ljava/lang/String;,"[") (239) + Handles null at 185 +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (242) + Handles null at 185 +121: LocalLoad(I,0) (245) + Handles null at 185 +122: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (246) + Handles null at 185 +123: Constant(Ljava/lang/String;,"] ") (249) + Handles null at 185 +124: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (252) + Handles null at 185 +125: LocalLoad(Ljava/lang/Object;,1) (255) + Handles null at 185 +126: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (256) + Handles null at 185 +127: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (259) + Handles null at 185 +128: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (262) + Handles null at 185 +129: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (265) + Handles null at 185 +130: Constant(Ljava/lang/String;," ::= ") (268) + Handles null at 185 +131: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (271) + Handles null at 185 +132: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (274) + Handles null at 185 +133: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (277) + Handles null at 185 +134: Constant(I,0) (280) + Handles null at 185 +135: LocalStore(I,2) (281) + Handles null at 185 +136: LocalLoad(I,2) (282) + Handles null at 185 +137: LocalLoad(Ljava/lang/Object;,1) (283) + Handles null at 185 +138: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (284) + Handles null at 185 +139: ConditionalBranch(I,ge,170) (287) + Handles null at 185 +140: LocalLoad(Ljava/lang/Object;,1) (290) + Handles null at 185 +141: LocalLoad(I,2) (291) + Handles null at 185 +142: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (292) + Handles null at 185 +143: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (295) + Handles null at 185 +144: Constant(I,0) (298) + Handles null at 185 +145: ConditionalBranch(I,eq,150) (298) + Handles null at 185 +146: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (301) + Handles null at 185 +147: Constant(Ljava/lang/String;,"{action} ") (304) + Handles null at 185 +148: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (307) + Handles null at 185 +149: Goto(165) (310) + Handles null at 185 +150: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (313) + Handles null at 185 +151: New(Ljava/lang/StringBuilder;,0) (316) + Handles null at 185 +152: Dup(1,0) (319) + Handles null at 185 +153: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (320) + Handles null at 185 +154: LocalLoad(Ljava/lang/Object;,1) (323) + Handles null at 185 +155: LocalLoad(I,2) (324) + Handles null at 185 +156: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (325) + Handles null at 185 +157: CheckCast(Ljava_cup/symbol_part;) (328) + Handles null at 185 +158: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (331) + Handles null at 185 +159: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (334) + Handles null at 185 +160: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (337) + Handles null at 185 +161: Constant(Ljava/lang/String;," ") (340) + Handles null at 185 +162: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (343) + Handles null at 185 +163: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (346) + Handles null at 185 +164: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (349) + Handles null at 185 +165: LocalLoad(I,2) (352) + Handles null at 185 +166: Constant(I,1) (352) + Handles null at 185 +167: BinaryOp(I,add) (352) + Handles null at 185 +168: LocalStore(I,2) (352) + Handles null at 185 +169: Goto(136) (355) + Handles null at 185 +170: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (358) + Handles null at 185 +171: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (361) + Handles null at 185 +172: LocalLoad(I,0) (364) + Handles null at 185 +173: Constant(I,1) (364) + Handles null at 185 +174: BinaryOp(I,add) (364) + Handles null at 185 +175: LocalStore(I,0) (364) + Handles null at 185 +176: Goto(109) (367) + Handles null at 185 +177: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (370) + Handles null at 185 +178: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,()V) (373) + Handles null at 185 +179: Constant(Ljava/lang/String;,"java_cup/Main") (376) + Handles null at 185 +180: Constant(Ljava/lang/String;,"dump_grammar()V") (376) + Handles null at 185 +181: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (376) + Handles null at 185 +182: Constant(I,0) (376) + Handles null at 185 +183: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (376) + Handles null at 185 +184: Return(V) (376) + Handles null at 185 +185: Constant(Ljava/lang/String;,"java_cup/Main") (0) +186: Constant(Ljava/lang/String;,"dump_grammar()V") (0) +187: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +188: Constant(I,1) (0) +189: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +190: Throw() (0) +Instrumenting dump_machine ()V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (0) +1: New([Ljava_cup/lalr_state;,1) (3) +2: LocalStore(Ljava/lang/Object;,0) (6) +3: Invoke(STATIC,Ljava_cup/lalr_state;,all,()Ljava/util/Enumeration;) (7) +4: LocalStore(Ljava/lang/Object;,1) (10) +5: LocalLoad(Ljava/lang/Object;,1) (11) +6: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (12) +7: Constant(I,0) (17) +8: ConditionalBranch(I,eq,19) (17) +9: LocalLoad(Ljava/lang/Object;,1) (20) +10: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) +11: CheckCast(Ljava_cup/lalr_state;) (26) +12: LocalStore(Ljava/lang/Object;,2) (29) +13: LocalLoad(Ljava/lang/Object;,0) (30) +14: LocalLoad(Ljava/lang/Object;,2) (31) +15: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (32) +16: LocalLoad(Ljava/lang/Object;,2) (35) +17: ArrayStore(Ljava/lang/Object;) (36) +18: Goto(5) (37) +19: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (40) +20: Constant(Ljava/lang/String;,"===== Viable Prefix Recognizer =====") (43) +21: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (46) +22: Constant(I,0) (49) +23: LocalStore(I,1) (50) +24: LocalLoad(I,1) (51) +25: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (52) +26: ConditionalBranch(I,ge,48) (55) +27: LocalLoad(Ljava/lang/Object;,0) (58) +28: LocalLoad(I,1) (59) +29: ArrayLoad(Ljava/lang/Object;) (60) +30: Get(Ljava_cup/lalr_state;,STATIC,Ljava_cup/Main;,start_state) (61) +31: ConditionalBranch(Ljava/lang/Object;,ne,35) (64) +32: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (67) +33: Constant(Ljava/lang/String;,"START ") (70) +34: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (73) +35: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (76) +36: LocalLoad(Ljava/lang/Object;,0) (79) +37: LocalLoad(I,1) (80) +38: ArrayLoad(Ljava/lang/Object;) (81) +39: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/Object;)V) (82) +40: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (85) +41: Constant(Ljava/lang/String;,"-------------------") (88) +42: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (91) +43: LocalLoad(I,1) (94) +44: Constant(I,1) (94) +45: BinaryOp(I,add) (94) +46: LocalStore(I,1) (94) +47: Goto(24) (97) +48: Return(V) (100) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"dump_machine()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (0) + Handles null at 58 +5: New([Ljava_cup/lalr_state;,1) (3) + Handles null at 58 +6: LocalStore(Ljava/lang/Object;,0) (6) + Handles null at 58 +7: Invoke(STATIC,Ljava_cup/lalr_state;,all,()Ljava/util/Enumeration;) (7) + Handles null at 58 +8: LocalStore(Ljava/lang/Object;,1) (10) + Handles null at 58 +9: LocalLoad(Ljava/lang/Object;,1) (11) + Handles null at 58 +10: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (12) + Handles null at 58 +11: Constant(I,0) (17) + Handles null at 58 +12: ConditionalBranch(I,eq,23) (17) + Handles null at 58 +13: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 58 +14: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) + Handles null at 58 +15: CheckCast(Ljava_cup/lalr_state;) (26) + Handles null at 58 +16: LocalStore(Ljava/lang/Object;,2) (29) + Handles null at 58 +17: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 58 +18: LocalLoad(Ljava/lang/Object;,2) (31) + Handles null at 58 +19: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (32) + Handles null at 58 +20: LocalLoad(Ljava/lang/Object;,2) (35) + Handles null at 58 +21: ArrayStore(Ljava/lang/Object;) (36) + Handles null at 58 +22: Goto(9) (37) + Handles null at 58 +23: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (40) + Handles null at 58 +24: Constant(Ljava/lang/String;,"===== Viable Prefix Recognizer =====") (43) + Handles null at 58 +25: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (46) + Handles null at 58 +26: Constant(I,0) (49) + Handles null at 58 +27: LocalStore(I,1) (50) + Handles null at 58 +28: LocalLoad(I,1) (51) + Handles null at 58 +29: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (52) + Handles null at 58 +30: ConditionalBranch(I,ge,52) (55) + Handles null at 58 +31: LocalLoad(Ljava/lang/Object;,0) (58) + Handles null at 58 +32: LocalLoad(I,1) (59) + Handles null at 58 +33: ArrayLoad(Ljava/lang/Object;) (60) + Handles null at 58 +34: Get(Ljava_cup/lalr_state;,STATIC,Ljava_cup/Main;,start_state) (61) + Handles null at 58 +35: ConditionalBranch(Ljava/lang/Object;,ne,39) (64) + Handles null at 58 +36: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (67) + Handles null at 58 +37: Constant(Ljava/lang/String;,"START ") (70) + Handles null at 58 +38: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (73) + Handles null at 58 +39: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (76) + Handles null at 58 +40: LocalLoad(Ljava/lang/Object;,0) (79) + Handles null at 58 +41: LocalLoad(I,1) (80) + Handles null at 58 +42: ArrayLoad(Ljava/lang/Object;) (81) + Handles null at 58 +43: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/Object;)V) (82) + Handles null at 58 +44: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (85) + Handles null at 58 +45: Constant(Ljava/lang/String;,"-------------------") (88) + Handles null at 58 +46: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (91) + Handles null at 58 +47: LocalLoad(I,1) (94) + Handles null at 58 +48: Constant(I,1) (94) + Handles null at 58 +49: BinaryOp(I,add) (94) + Handles null at 58 +50: LocalStore(I,1) (94) + Handles null at 58 +51: Goto(28) (97) + Handles null at 58 +52: Constant(Ljava/lang/String;,"java_cup/Main") (100) + Handles null at 58 +53: Constant(Ljava/lang/String;,"dump_machine()V") (100) + Handles null at 58 +54: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (100) + Handles null at 58 +55: Constant(I,0) (100) + Handles null at 58 +56: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (100) + Handles null at 58 +57: Return(V) (100) + Handles null at 58 +58: Constant(Ljava/lang/String;,"java_cup/Main") (0) +59: Constant(Ljava/lang/String;,"dump_machine()V") (0) +60: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +61: Constant(I,1) (0) +62: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +63: Throw() (0) +Instrumenting dump_tables ()V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: Get(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (3) +2: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/Object;)V) (6) +3: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (9) +4: Get(Ljava_cup/parse_reduce_table;,STATIC,Ljava_cup/Main;,reduce_table) (12) +5: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/Object;)V) (15) +6: Return(V) (18) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"dump_tables()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 16 +5: Get(Ljava_cup/parse_action_table;,STATIC,Ljava_cup/Main;,action_table) (3) + Handles null at 16 +6: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/Object;)V) (6) + Handles null at 16 +7: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (9) + Handles null at 16 +8: Get(Ljava_cup/parse_reduce_table;,STATIC,Ljava_cup/Main;,reduce_table) (12) + Handles null at 16 +9: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/Object;)V) (15) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/Main") (18) + Handles null at 16 +11: Constant(Ljava/lang/String;,"dump_tables()V") (18) + Handles null at 16 +12: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (18) + Handles null at 16 +13: Constant(I,0) (18) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (18) + Handles null at 16 +15: Return(V) (18) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/Main") (0) +17: Constant(Ljava/lang/String;,"dump_tables()V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Put(Z,STATIC,Ljava_cup/Main;,print_progress) (1) +2: Constant(I,0) (4) +3: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_states) (5) +4: Constant(I,0) (8) +5: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (9) +6: Constant(I,0) (12) +7: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_grammar) (13) +8: Constant(I,0) (16) +9: Put(Z,STATIC,Ljava_cup/Main;,opt_show_timing) (17) +10: Constant(I,0) (20) +11: Put(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (21) +12: Constant(I,0) (24) +13: Put(Z,STATIC,Ljava_cup/Main;,opt_compact_red) (25) +14: Constant(I,0) (28) +15: Put(Z,STATIC,Ljava_cup/Main;,include_non_terms) (29) +16: Constant(I,0) (32) +17: Put(Z,STATIC,Ljava_cup/Main;,no_summary) (33) +18: Constant(I,0) (36) +19: Put(I,STATIC,Ljava_cup/Main;,expect_conflicts) (37) +20: Constant(I,1) (40) +21: Put(Z,STATIC,Ljava_cup/Main;,lr_values) (41) +22: Constant(I,0) (44) +23: Put(Z,STATIC,Ljava_cup/Main;,locations) (45) +24: Constant(I,0) (48) +25: Put(Z,STATIC,Ljava_cup/Main;,xmlactions) (49) +26: Constant(I,0) (52) +27: Put(Z,STATIC,Ljava_cup/Main;,genericlabels) (53) +28: Constant(I,0) (56) +29: Put(Z,STATIC,Ljava_cup/Main;,sym_interface) (57) +30: Constant(I,0) (60) +31: Put(Z,STATIC,Ljava_cup/Main;,suppress_scanner) (61) +32: Constant(J,0) (64) +33: Put(J,STATIC,Ljava_cup/Main;,start_time) (65) +34: Constant(J,0) (68) +35: Put(J,STATIC,Ljava_cup/Main;,prelim_end) (69) +36: Constant(J,0) (72) +37: Put(J,STATIC,Ljava_cup/Main;,parse_end) (73) +38: Constant(J,0) (76) +39: Put(J,STATIC,Ljava_cup/Main;,check_end) (77) +40: Constant(J,0) (80) +41: Put(J,STATIC,Ljava_cup/Main;,dump_end) (81) +42: Constant(J,0) (84) +43: Put(J,STATIC,Ljava_cup/Main;,build_end) (85) +44: Constant(J,0) (88) +45: Put(J,STATIC,Ljava_cup/Main;,nullability_end) (89) +46: Constant(J,0) (92) +47: Put(J,STATIC,Ljava_cup/Main;,first_end) (93) +48: Constant(J,0) (96) +49: Put(J,STATIC,Ljava_cup/Main;,machine_end) (97) +50: Constant(J,0) (100) +51: Put(J,STATIC,Ljava_cup/Main;,table_end) (101) +52: Constant(J,0) (104) +53: Put(J,STATIC,Ljava_cup/Main;,reduce_check_end) (105) +54: Constant(J,0) (108) +55: Put(J,STATIC,Ljava_cup/Main;,emit_end) (109) +56: Constant(J,0) (112) +57: Put(J,STATIC,Ljava_cup/Main;,final_time) (113) +58: Constant(L;,null) (116) +59: Put(Ljava/io/File;,STATIC,Ljava_cup/Main;,dest_dir) (117) +60: Return(V) (120) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/Main") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 70 +5: Put(Z,STATIC,Ljava_cup/Main;,print_progress) (1) + Handles null at 70 +6: Constant(I,0) (4) + Handles null at 70 +7: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_states) (5) + Handles null at 70 +8: Constant(I,0) (8) + Handles null at 70 +9: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_tables) (9) + Handles null at 70 +10: Constant(I,0) (12) + Handles null at 70 +11: Put(Z,STATIC,Ljava_cup/Main;,opt_dump_grammar) (13) + Handles null at 70 +12: Constant(I,0) (16) + Handles null at 70 +13: Put(Z,STATIC,Ljava_cup/Main;,opt_show_timing) (17) + Handles null at 70 +14: Constant(I,0) (20) + Handles null at 70 +15: Put(Z,STATIC,Ljava_cup/Main;,opt_do_debug) (21) + Handles null at 70 +16: Constant(I,0) (24) + Handles null at 70 +17: Put(Z,STATIC,Ljava_cup/Main;,opt_compact_red) (25) + Handles null at 70 +18: Constant(I,0) (28) + Handles null at 70 +19: Put(Z,STATIC,Ljava_cup/Main;,include_non_terms) (29) + Handles null at 70 +20: Constant(I,0) (32) + Handles null at 70 +21: Put(Z,STATIC,Ljava_cup/Main;,no_summary) (33) + Handles null at 70 +22: Constant(I,0) (36) + Handles null at 70 +23: Put(I,STATIC,Ljava_cup/Main;,expect_conflicts) (37) + Handles null at 70 +24: Constant(I,1) (40) + Handles null at 70 +25: Put(Z,STATIC,Ljava_cup/Main;,lr_values) (41) + Handles null at 70 +26: Constant(I,0) (44) + Handles null at 70 +27: Put(Z,STATIC,Ljava_cup/Main;,locations) (45) + Handles null at 70 +28: Constant(I,0) (48) + Handles null at 70 +29: Put(Z,STATIC,Ljava_cup/Main;,xmlactions) (49) + Handles null at 70 +30: Constant(I,0) (52) + Handles null at 70 +31: Put(Z,STATIC,Ljava_cup/Main;,genericlabels) (53) + Handles null at 70 +32: Constant(I,0) (56) + Handles null at 70 +33: Put(Z,STATIC,Ljava_cup/Main;,sym_interface) (57) + Handles null at 70 +34: Constant(I,0) (60) + Handles null at 70 +35: Put(Z,STATIC,Ljava_cup/Main;,suppress_scanner) (61) + Handles null at 70 +36: Constant(J,0) (64) + Handles null at 70 +37: Put(J,STATIC,Ljava_cup/Main;,start_time) (65) + Handles null at 70 +38: Constant(J,0) (68) + Handles null at 70 +39: Put(J,STATIC,Ljava_cup/Main;,prelim_end) (69) + Handles null at 70 +40: Constant(J,0) (72) + Handles null at 70 +41: Put(J,STATIC,Ljava_cup/Main;,parse_end) (73) + Handles null at 70 +42: Constant(J,0) (76) + Handles null at 70 +43: Put(J,STATIC,Ljava_cup/Main;,check_end) (77) + Handles null at 70 +44: Constant(J,0) (80) + Handles null at 70 +45: Put(J,STATIC,Ljava_cup/Main;,dump_end) (81) + Handles null at 70 +46: Constant(J,0) (84) + Handles null at 70 +47: Put(J,STATIC,Ljava_cup/Main;,build_end) (85) + Handles null at 70 +48: Constant(J,0) (88) + Handles null at 70 +49: Put(J,STATIC,Ljava_cup/Main;,nullability_end) (89) + Handles null at 70 +50: Constant(J,0) (92) + Handles null at 70 +51: Put(J,STATIC,Ljava_cup/Main;,first_end) (93) + Handles null at 70 +52: Constant(J,0) (96) + Handles null at 70 +53: Put(J,STATIC,Ljava_cup/Main;,machine_end) (97) + Handles null at 70 +54: Constant(J,0) (100) + Handles null at 70 +55: Put(J,STATIC,Ljava_cup/Main;,table_end) (101) + Handles null at 70 +56: Constant(J,0) (104) + Handles null at 70 +57: Put(J,STATIC,Ljava_cup/Main;,reduce_check_end) (105) + Handles null at 70 +58: Constant(J,0) (108) + Handles null at 70 +59: Put(J,STATIC,Ljava_cup/Main;,emit_end) (109) + Handles null at 70 +60: Constant(J,0) (112) + Handles null at 70 +61: Put(J,STATIC,Ljava_cup/Main;,final_time) (113) + Handles null at 70 +62: Constant(L;,null) (116) + Handles null at 70 +63: Put(Ljava/io/File;,STATIC,Ljava_cup/Main;,dest_dir) (117) + Handles null at 70 +64: Constant(Ljava/lang/String;,"java_cup/Main") (120) + Handles null at 70 +65: Constant(Ljava/lang/String;,"()V") (120) + Handles null at 70 +66: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (120) + Handles null at 70 +67: Constant(I,0) (120) + Handles null at 70 +68: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (120) + Handles null at 70 +69: Return(V) (120) + Handles null at 70 +70: Constant(Ljava/lang/String;,"java_cup/Main") (0) +71: Constant(Ljava/lang/String;,"()V") (0) +72: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +73: Constant(I,1) (0) +74: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +75: Throw() (0) +Class: java_cup/action_part +Instrumenting (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(L;,null) (1) +2: Invoke(SPECIAL,Ljava_cup/production_part;,,(Ljava/lang/String;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: LocalLoad(Ljava/lang/Object;,1) (6) +5: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/action_part;,_code_string) (7) +6: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: Constant(L;,null) (1) + Handles null at 16 +6: Invoke(SPECIAL,Ljava_cup/production_part;,,(Ljava/lang/String;)V) (2) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,1) (6) + Handles null at 16 +9: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/action_part;,_code_string) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/action_part") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(V) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +17: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting code_string ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/action_part;,_code_string) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +1: Constant(Ljava/lang/String;,"code_string()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/action_part;,_code_string) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/action_part") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"code_string()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +13: Constant(Ljava/lang/String;,"code_string()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting set_code_string (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/action_part;,_code_string) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +1: Constant(Ljava/lang/String;,"set_code_string(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/action_part;,_code_string) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/action_part") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"set_code_string(Ljava/lang/String;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +14: Constant(Ljava/lang/String;,"set_code_string(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting is_action ()Z: +Initial ShrikeBT code: +0: Constant(I,1) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +1: Constant(Ljava/lang/String;,"is_action()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,1) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/action_part") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"is_action()Z") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +12: Constant(Ljava/lang/String;,"is_action()Z") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting equals (Ljava_cup/action_part;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,17) (1) +3: LocalLoad(Ljava/lang/Object;,0) (4) +4: LocalLoad(Ljava/lang/Object;,1) (5) +5: Invoke(SPECIAL,Ljava_cup/production_part;,equals,(Ljava_cup/production_part;)Z) (6) +6: Constant(I,0) (9) +7: ConditionalBranch(I,eq,17) (9) +8: LocalLoad(Ljava/lang/Object;,1) (12) +9: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (13) +10: LocalLoad(Ljava/lang/Object;,0) (16) +11: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (17) +12: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (20) +13: Constant(I,0) (23) +14: ConditionalBranch(I,eq,17) (23) +15: Constant(I,1) (26) +16: Goto(18) (27) +17: Constant(I,0) (30) +18: Return(I) (31) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/action_part;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 28 +5: Constant(L;,null) (1) + Handles null at 28 +6: ConditionalBranch(Ljava/lang/Object;,eq,21) (1) + Handles null at 28 +7: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 28 +8: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 28 +9: Invoke(SPECIAL,Ljava_cup/production_part;,equals,(Ljava_cup/production_part;)Z) (6) + Handles null at 28 +10: Constant(I,0) (9) + Handles null at 28 +11: ConditionalBranch(I,eq,21) (9) + Handles null at 28 +12: LocalLoad(Ljava/lang/Object;,1) (12) + Handles null at 28 +13: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (13) + Handles null at 28 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 28 +15: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (17) + Handles null at 28 +16: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (20) + Handles null at 28 +17: Constant(I,0) (23) + Handles null at 28 +18: ConditionalBranch(I,eq,21) (23) + Handles null at 28 +19: Constant(I,1) (26) + Handles null at 28 +20: Goto(22) (27) + Handles null at 28 +21: Constant(I,0) (30) + Handles null at 28 +22: Constant(Ljava/lang/String;,"java_cup/action_part") (31) + Handles null at 28 +23: Constant(Ljava/lang/String;,"equals(Ljava_cup/action_part;)Z") (31) + Handles null at 28 +24: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 28 +25: Constant(I,0) (31) + Handles null at 28 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (31) + Handles null at 28 +27: Return(I) (31) + Handles null at 28 +28: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +29: Constant(Ljava/lang/String;,"equals(Ljava_cup/action_part;)Z") (0) +30: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +31: Constant(I,1) (0) +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +33: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/action_part;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/action_part;) (11) +9: Invoke(VIRTUAL,Ljava_cup/action_part;,equals,(Ljava_cup/action_part;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/action_part;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/action_part") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/action_part;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/action_part;,equals,(Ljava_cup/action_part;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/action_part") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/production_part;,hashCode,()I) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (5) +4: Constant(L;,null) (8) +5: ConditionalBranch(Ljava/lang/Object;,ne,8) (8) +6: Constant(I,0) (11) +7: Goto(11) (12) +8: LocalLoad(Ljava/lang/Object;,0) (15) +9: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (16) +10: Invoke(VIRTUAL,Ljava/lang/String;,hashCode,()I) (19) +11: BinaryOp(I,xor) (22) +12: Return(I) (23) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 22 +5: Invoke(SPECIAL,Ljava_cup/production_part;,hashCode,()I) (1) + Handles null at 22 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 22 +7: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (5) + Handles null at 22 +8: Constant(L;,null) (8) + Handles null at 22 +9: ConditionalBranch(Ljava/lang/Object;,ne,12) (8) + Handles null at 22 +10: Constant(I,0) (11) + Handles null at 22 +11: Goto(15) (12) + Handles null at 22 +12: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 22 +13: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (16) + Handles null at 22 +14: Invoke(VIRTUAL,Ljava/lang/String;,hashCode,()I) (19) + Handles null at 22 +15: BinaryOp(I,xor) (22) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/action_part") (23) + Handles null at 22 +17: Constant(Ljava/lang/String;,"hashCode()I") (23) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 22 +19: Constant(I,0) (23) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (23) + Handles null at 22 +21: Return(I) (23) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +23: Constant(Ljava/lang/String;,"hashCode()I") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: LocalLoad(Ljava/lang/Object;,0) (7) +4: Invoke(SPECIAL,Ljava_cup/production_part;,toString,()Ljava/lang/String;) (8) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) +6: Constant(Ljava/lang/String;,"{") (14) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: LocalLoad(Ljava/lang/Object;,0) (19) +9: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (20) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) +11: Constant(Ljava/lang/String;,"}") (26) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (31) +14: Return(Ljava/lang/Object;) (34) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 24 +5: Dup(1,0) (3) + Handles null at 24 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 24 +7: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 24 +8: Invoke(SPECIAL,Ljava_cup/production_part;,toString,()Ljava/lang/String;) (8) + Handles null at 24 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) + Handles null at 24 +10: Constant(Ljava/lang/String;,"{") (14) + Handles null at 24 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 24 +12: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 24 +13: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (20) + Handles null at 24 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) + Handles null at 24 +15: Constant(Ljava/lang/String;,"}") (26) + Handles null at 24 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 24 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (31) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/action_part") (34) + Handles null at 24 +19: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (34) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 24 +21: Constant(I,0) (34) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (34) + Handles null at 24 +23: Return(Ljava/lang/Object;) (34) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/action_part") (0) +25: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Class: java_cup/action_production +Instrumenting (Ljava_cup/production;Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,2) (1) +2: LocalLoad(Ljava/lang/Object;,3) (2) +3: LocalLoad(I,4) (3) +4: LocalLoad(Ljava/lang/Object;,5) (5) +5: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: LocalLoad(Ljava/lang/Object;,1) (11) +8: Put(Ljava_cup/production;,NONSTATIC,Ljava_cup/action_production;,_base_production) (12) +9: LocalLoad(Ljava/lang/Object;,0) (15) +10: LocalLoad(I,6) (16) +11: Put(I,NONSTATIC,Ljava_cup/action_production;,indexOfIntermediateResult) (18) +12: Return(V) (21) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_production") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/production;Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;I)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 22 +5: LocalLoad(Ljava/lang/Object;,2) (1) + Handles null at 22 +6: LocalLoad(Ljava/lang/Object;,3) (2) + Handles null at 22 +7: LocalLoad(I,4) (3) + Handles null at 22 +8: LocalLoad(Ljava/lang/Object;,5) (5) + Handles null at 22 +9: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V) (7) + Handles null at 22 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 22 +11: LocalLoad(Ljava/lang/Object;,1) (11) + Handles null at 22 +12: Put(Ljava_cup/production;,NONSTATIC,Ljava_cup/action_production;,_base_production) (12) + Handles null at 22 +13: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 22 +14: LocalLoad(I,6) (16) + Handles null at 22 +15: Put(I,NONSTATIC,Ljava_cup/action_production;,indexOfIntermediateResult) (18) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/action_production") (21) + Handles null at 22 +17: Constant(Ljava/lang/String;,"(Ljava_cup/production;Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;I)V") (21) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 22 +19: Constant(I,0) (21) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (21) + Handles null at 22 +21: Return(V) (21) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/action_production") (0) +23: Constant(Ljava/lang/String;,"(Ljava_cup/production;Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;I)V") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting getIndexOfIntermediateResult ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/action_production;,indexOfIntermediateResult) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_production") (0) +1: Constant(Ljava/lang/String;,"getIndexOfIntermediateResult()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/action_production;,indexOfIntermediateResult) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/action_production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getIndexOfIntermediateResult()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/action_production") (0) +13: Constant(Ljava/lang/String;,"getIndexOfIntermediateResult()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting base_production ()Ljava_cup/production;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/action_production;,_base_production) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/action_production") (0) +1: Constant(Ljava/lang/String;,"base_production()Ljava_cup/production;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/action_production;,_base_production) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/action_production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"base_production()Ljava_cup/production;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/action_production") (0) +13: Constant(Ljava/lang/String;,"base_production()Ljava_cup/production;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Class: java_cup/anttask/CUPTask +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Lorg/apache/tools/ant/Task;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(L;,null) (5) +4: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: Constant(L;,null) (10) +7: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (11) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: Constant(L;,null) (15) +10: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (16) +11: LocalLoad(Ljava/lang/Object;,0) (19) +12: Constant(L;,null) (20) +13: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (21) +14: LocalLoad(Ljava/lang/Object;,0) (24) +15: Constant(L;,null) (25) +16: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (26) +17: LocalLoad(Ljava/lang/Object;,0) (29) +18: Constant(I,0) (30) +19: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,_interface) (31) +20: LocalLoad(Ljava/lang/Object;,0) (34) +21: Constant(I,0) (35) +22: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nonterms) (36) +23: LocalLoad(Ljava/lang/Object;,0) (39) +24: Constant(L;,null) (40) +25: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (41) +26: LocalLoad(Ljava/lang/Object;,0) (44) +27: Constant(I,0) (45) +28: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,compact_red) (46) +29: LocalLoad(Ljava/lang/Object;,0) (49) +30: Constant(I,0) (50) +31: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nowarn) (51) +32: LocalLoad(Ljava/lang/Object;,0) (54) +33: Constant(I,0) (55) +34: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nosummary) (56) +35: LocalLoad(Ljava/lang/Object;,0) (59) +36: Constant(I,0) (60) +37: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,progress) (61) +38: LocalLoad(Ljava/lang/Object;,0) (64) +39: Constant(I,0) (65) +40: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_grammar) (66) +41: LocalLoad(Ljava/lang/Object;,0) (69) +42: Constant(I,0) (70) +43: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_states) (71) +44: LocalLoad(Ljava/lang/Object;,0) (74) +45: Constant(I,0) (75) +46: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_tables) (76) +47: LocalLoad(Ljava/lang/Object;,0) (79) +48: Constant(I,0) (80) +49: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump) (81) +50: LocalLoad(Ljava/lang/Object;,0) (84) +51: Constant(I,0) (85) +52: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,time) (86) +53: LocalLoad(Ljava/lang/Object;,0) (89) +54: Constant(I,0) (90) +55: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,debug) (91) +56: LocalLoad(Ljava/lang/Object;,0) (94) +57: Constant(I,0) (95) +58: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nopositions) (96) +59: LocalLoad(Ljava/lang/Object;,0) (99) +60: Constant(I,0) (100) +61: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,xmlactions) (101) +62: LocalLoad(Ljava/lang/Object;,0) (104) +63: Constant(I,0) (105) +64: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,genericlabels) (106) +65: LocalLoad(Ljava/lang/Object;,0) (109) +66: Constant(I,1) (110) +67: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,locations) (111) +68: LocalLoad(Ljava/lang/Object;,0) (114) +69: Constant(I,0) (115) +70: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,noscanner) (116) +71: LocalLoad(Ljava/lang/Object;,0) (119) +72: Constant(I,0) (120) +73: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (121) +74: LocalLoad(Ljava/lang/Object;,0) (124) +75: Constant(I,0) (125) +76: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (126) +77: Return(V) (129) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 87 +5: Invoke(SPECIAL,Lorg/apache/tools/ant/Task;,,()V) (1) + Handles null at 87 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 87 +7: Constant(L;,null) (5) + Handles null at 87 +8: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (6) + Handles null at 87 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 87 +10: Constant(L;,null) (10) + Handles null at 87 +11: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (11) + Handles null at 87 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 87 +13: Constant(L;,null) (15) + Handles null at 87 +14: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (16) + Handles null at 87 +15: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 87 +16: Constant(L;,null) (20) + Handles null at 87 +17: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (21) + Handles null at 87 +18: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 87 +19: Constant(L;,null) (25) + Handles null at 87 +20: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (26) + Handles null at 87 +21: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 87 +22: Constant(I,0) (30) + Handles null at 87 +23: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,_interface) (31) + Handles null at 87 +24: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 87 +25: Constant(I,0) (35) + Handles null at 87 +26: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nonterms) (36) + Handles null at 87 +27: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 87 +28: Constant(L;,null) (40) + Handles null at 87 +29: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (41) + Handles null at 87 +30: LocalLoad(Ljava/lang/Object;,0) (44) + Handles null at 87 +31: Constant(I,0) (45) + Handles null at 87 +32: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,compact_red) (46) + Handles null at 87 +33: LocalLoad(Ljava/lang/Object;,0) (49) + Handles null at 87 +34: Constant(I,0) (50) + Handles null at 87 +35: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nowarn) (51) + Handles null at 87 +36: LocalLoad(Ljava/lang/Object;,0) (54) + Handles null at 87 +37: Constant(I,0) (55) + Handles null at 87 +38: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nosummary) (56) + Handles null at 87 +39: LocalLoad(Ljava/lang/Object;,0) (59) + Handles null at 87 +40: Constant(I,0) (60) + Handles null at 87 +41: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,progress) (61) + Handles null at 87 +42: LocalLoad(Ljava/lang/Object;,0) (64) + Handles null at 87 +43: Constant(I,0) (65) + Handles null at 87 +44: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_grammar) (66) + Handles null at 87 +45: LocalLoad(Ljava/lang/Object;,0) (69) + Handles null at 87 +46: Constant(I,0) (70) + Handles null at 87 +47: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_states) (71) + Handles null at 87 +48: LocalLoad(Ljava/lang/Object;,0) (74) + Handles null at 87 +49: Constant(I,0) (75) + Handles null at 87 +50: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_tables) (76) + Handles null at 87 +51: LocalLoad(Ljava/lang/Object;,0) (79) + Handles null at 87 +52: Constant(I,0) (80) + Handles null at 87 +53: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump) (81) + Handles null at 87 +54: LocalLoad(Ljava/lang/Object;,0) (84) + Handles null at 87 +55: Constant(I,0) (85) + Handles null at 87 +56: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,time) (86) + Handles null at 87 +57: LocalLoad(Ljava/lang/Object;,0) (89) + Handles null at 87 +58: Constant(I,0) (90) + Handles null at 87 +59: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,debug) (91) + Handles null at 87 +60: LocalLoad(Ljava/lang/Object;,0) (94) + Handles null at 87 +61: Constant(I,0) (95) + Handles null at 87 +62: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nopositions) (96) + Handles null at 87 +63: LocalLoad(Ljava/lang/Object;,0) (99) + Handles null at 87 +64: Constant(I,0) (100) + Handles null at 87 +65: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,xmlactions) (101) + Handles null at 87 +66: LocalLoad(Ljava/lang/Object;,0) (104) + Handles null at 87 +67: Constant(I,0) (105) + Handles null at 87 +68: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,genericlabels) (106) + Handles null at 87 +69: LocalLoad(Ljava/lang/Object;,0) (109) + Handles null at 87 +70: Constant(I,1) (110) + Handles null at 87 +71: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,locations) (111) + Handles null at 87 +72: LocalLoad(Ljava/lang/Object;,0) (114) + Handles null at 87 +73: Constant(I,0) (115) + Handles null at 87 +74: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,noscanner) (116) + Handles null at 87 +75: LocalLoad(Ljava/lang/Object;,0) (119) + Handles null at 87 +76: Constant(I,0) (120) + Handles null at 87 +77: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (121) + Handles null at 87 +78: LocalLoad(Ljava/lang/Object;,0) (124) + Handles null at 87 +79: Constant(I,0) (125) + Handles null at 87 +80: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (126) + Handles null at 87 +81: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (129) + Handles null at 87 +82: Constant(Ljava/lang/String;,"()V") (129) + Handles null at 87 +83: LocalLoad(Ljava/lang/Object;,0) (129) + Handles null at 87 +84: Constant(I,0) (129) + Handles null at 87 +85: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (129) + Handles null at 87 +86: Return(V) (129) + Handles null at 87 +87: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +88: Constant(Ljava/lang/String;,"()V") (0) +89: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +90: Constant(I,1) (0) +91: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +92: Throw() (0) +Instrumenting execute ()V: +Initial ShrikeBT code: +0: New(Ljava/util/ArrayList;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/ArrayList;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,1) (7) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (9) +6: Constant(L;,null) (12) +7: ConditionalBranch(Ljava/lang/Object;,eq,18) (12) +8: LocalLoad(Ljava/lang/Object;,1) (15) +9: Constant(Ljava/lang/String;,"-parser") (16) +10: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (18) +11: Pop(1) (23) +12: LocalLoad(Ljava/lang/Object;,1) (24) +13: LocalLoad(Ljava/lang/Object;,0) (25) +14: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (26) +15: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (29) +16: Pop(1) (34) +17: Goto(21) (35) +18: LocalLoad(Ljava/lang/Object;,0) (38) +19: Constant(Ljava/lang/String;,"parser") (39) +20: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (41) +21: LocalLoad(Ljava/lang/Object;,0) (44) +22: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (45) +23: Constant(L;,null) (48) +24: ConditionalBranch(Ljava/lang/Object;,eq,34) (48) +25: LocalLoad(Ljava/lang/Object;,1) (51) +26: Constant(Ljava/lang/String;,"-package") (52) +27: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (54) +28: Pop(1) (59) +29: LocalLoad(Ljava/lang/Object;,1) (60) +30: LocalLoad(Ljava/lang/Object;,0) (61) +31: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (62) +32: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (65) +33: Pop(1) (70) +34: LocalLoad(Ljava/lang/Object;,0) (71) +35: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (72) +36: Constant(L;,null) (75) +37: ConditionalBranch(Ljava/lang/Object;,eq,48) (75) +38: LocalLoad(Ljava/lang/Object;,1) (78) +39: Constant(Ljava/lang/String;,"-symbols") (79) +40: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (81) +41: Pop(1) (86) +42: LocalLoad(Ljava/lang/Object;,1) (87) +43: LocalLoad(Ljava/lang/Object;,0) (88) +44: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (89) +45: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (92) +46: Pop(1) (97) +47: Goto(51) (98) +48: LocalLoad(Ljava/lang/Object;,0) (101) +49: Constant(Ljava/lang/String;,"sym") (102) +50: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (104) +51: LocalLoad(Ljava/lang/Object;,0) (107) +52: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (108) +53: Constant(L;,null) (111) +54: ConditionalBranch(Ljava/lang/Object;,eq,64) (111) +55: LocalLoad(Ljava/lang/Object;,1) (114) +56: Constant(Ljava/lang/String;,"-expect") (115) +57: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (117) +58: Pop(1) (122) +59: LocalLoad(Ljava/lang/Object;,1) (123) +60: LocalLoad(Ljava/lang/Object;,0) (124) +61: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (125) +62: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (128) +63: Pop(1) (133) +64: LocalLoad(Ljava/lang/Object;,0) (134) +65: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,_interface) (135) +66: Constant(I,0) (138) +67: ConditionalBranch(I,eq,72) (138) +68: LocalLoad(Ljava/lang/Object;,1) (141) +69: Constant(Ljava/lang/String;,"-interface") (142) +70: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (144) +71: Pop(1) (149) +72: LocalLoad(Ljava/lang/Object;,0) (150) +73: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nonterms) (151) +74: Constant(I,0) (154) +75: ConditionalBranch(I,eq,80) (154) +76: LocalLoad(Ljava/lang/Object;,1) (157) +77: Constant(Ljava/lang/String;,"-nonterms") (158) +78: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (160) +79: Pop(1) (165) +80: LocalLoad(Ljava/lang/Object;,0) (166) +81: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,compact_red) (167) +82: Constant(I,0) (170) +83: ConditionalBranch(I,eq,88) (170) +84: LocalLoad(Ljava/lang/Object;,1) (173) +85: Constant(Ljava/lang/String;,"-compact_red") (174) +86: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (176) +87: Pop(1) (181) +88: LocalLoad(Ljava/lang/Object;,0) (182) +89: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nowarn) (183) +90: Constant(I,0) (186) +91: ConditionalBranch(I,eq,96) (186) +92: LocalLoad(Ljava/lang/Object;,1) (189) +93: Constant(Ljava/lang/String;,"-nowarn") (190) +94: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (192) +95: Pop(1) (197) +96: LocalLoad(Ljava/lang/Object;,0) (198) +97: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nosummary) (199) +98: Constant(I,0) (202) +99: ConditionalBranch(I,eq,104) (202) +100: LocalLoad(Ljava/lang/Object;,1) (205) +101: Constant(Ljava/lang/String;,"-nosummary") (206) +102: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (208) +103: Pop(1) (213) +104: LocalLoad(Ljava/lang/Object;,0) (214) +105: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,progress) (215) +106: Constant(I,0) (218) +107: ConditionalBranch(I,eq,112) (218) +108: LocalLoad(Ljava/lang/Object;,1) (221) +109: Constant(Ljava/lang/String;,"-progress") (222) +110: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (224) +111: Pop(1) (229) +112: LocalLoad(Ljava/lang/Object;,0) (230) +113: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_grammar) (231) +114: Constant(I,0) (234) +115: ConditionalBranch(I,eq,120) (234) +116: LocalLoad(Ljava/lang/Object;,1) (237) +117: Constant(Ljava/lang/String;,"-dump_grammar") (238) +118: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (240) +119: Pop(1) (245) +120: LocalLoad(Ljava/lang/Object;,0) (246) +121: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_states) (247) +122: Constant(I,0) (250) +123: ConditionalBranch(I,eq,128) (250) +124: LocalLoad(Ljava/lang/Object;,1) (253) +125: Constant(Ljava/lang/String;,"-dump_states") (254) +126: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (256) +127: Pop(1) (261) +128: LocalLoad(Ljava/lang/Object;,0) (262) +129: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_tables) (263) +130: Constant(I,0) (266) +131: ConditionalBranch(I,eq,136) (266) +132: LocalLoad(Ljava/lang/Object;,1) (269) +133: Constant(Ljava/lang/String;,"-dump_tables") (270) +134: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (272) +135: Pop(1) (277) +136: LocalLoad(Ljava/lang/Object;,0) (278) +137: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump) (279) +138: Constant(I,0) (282) +139: ConditionalBranch(I,eq,144) (282) +140: LocalLoad(Ljava/lang/Object;,1) (285) +141: Constant(Ljava/lang/String;,"-dump") (286) +142: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (288) +143: Pop(1) (293) +144: LocalLoad(Ljava/lang/Object;,0) (294) +145: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,time) (295) +146: Constant(I,0) (298) +147: ConditionalBranch(I,eq,152) (298) +148: LocalLoad(Ljava/lang/Object;,1) (301) +149: Constant(Ljava/lang/String;,"-time") (302) +150: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (304) +151: Pop(1) (309) +152: LocalLoad(Ljava/lang/Object;,0) (310) +153: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,debug) (311) +154: Constant(I,0) (314) +155: ConditionalBranch(I,eq,160) (314) +156: LocalLoad(Ljava/lang/Object;,1) (317) +157: Constant(Ljava/lang/String;,"-debug") (318) +158: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (320) +159: Pop(1) (325) +160: LocalLoad(Ljava/lang/Object;,0) (326) +161: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nopositions) (327) +162: Constant(I,0) (330) +163: ConditionalBranch(I,eq,168) (330) +164: LocalLoad(Ljava/lang/Object;,1) (333) +165: Constant(Ljava/lang/String;,"-nopositions") (334) +166: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (336) +167: Pop(1) (341) +168: LocalLoad(Ljava/lang/Object;,0) (342) +169: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,locations) (343) +170: Constant(I,0) (346) +171: ConditionalBranch(I,eq,176) (346) +172: LocalLoad(Ljava/lang/Object;,1) (349) +173: Constant(Ljava/lang/String;,"-locations") (350) +174: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (352) +175: Pop(1) (357) +176: LocalLoad(Ljava/lang/Object;,0) (358) +177: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,genericlabels) (359) +178: Constant(I,0) (362) +179: ConditionalBranch(I,eq,184) (362) +180: LocalLoad(Ljava/lang/Object;,1) (365) +181: Constant(Ljava/lang/String;,"-genericlabels") (366) +182: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (368) +183: Pop(1) (373) +184: LocalLoad(Ljava/lang/Object;,0) (374) +185: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,xmlactions) (375) +186: Constant(I,0) (378) +187: ConditionalBranch(I,eq,192) (378) +188: LocalLoad(Ljava/lang/Object;,1) (381) +189: Constant(Ljava/lang/String;,"-xmlactions") (382) +190: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (384) +191: Pop(1) (389) +192: LocalLoad(Ljava/lang/Object;,0) (390) +193: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,noscanner) (391) +194: Constant(I,0) (394) +195: ConditionalBranch(I,eq,200) (394) +196: LocalLoad(Ljava/lang/Object;,1) (397) +197: Constant(Ljava/lang/String;,"-noscanner") (398) +198: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (400) +199: Pop(1) (405) +200: LocalLoad(Ljava/lang/Object;,0) (406) +201: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (407) +202: Constant(I,0) (410) +203: ConditionalBranch(I,ne,207) (410) +204: LocalLoad(Ljava/lang/Object;,0) (413) +205: Constant(Ljava/lang/String;,"This is CUP v0.11b 20140808 (SVN rev 54)") (414) +206: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (416) +207: LocalLoad(Ljava/lang/Object;,0) (419) +208: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (420) +209: Constant(I,0) (423) +210: ConditionalBranch(I,ne,214) (423) +211: LocalLoad(Ljava/lang/Object;,0) (426) +212: Constant(Ljava/lang/String;,"Authors : Scott E. Hudson, Frank Flannery, Michael Petter and C. Scott Ananian") (427) +213: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (429) +214: LocalLoad(Ljava/lang/Object;,0) (432) +215: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (433) +216: Constant(I,0) (436) +217: ConditionalBranch(I,ne,221) (436) +218: LocalLoad(Ljava/lang/Object;,0) (439) +219: Constant(Ljava/lang/String;,"Bugreports to petter@cs.tum.edu") (440) +220: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (442) +221: LocalLoad(Ljava/lang/Object;,0) (445) +222: LocalLoad(Ljava/lang/Object;,0) (446) +223: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (447) +224: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,inspect,(Ljava/lang/String;)Ljava/lang/String;) (450) +225: LocalStore(Ljava/lang/Object;,2) (453) +226: LocalLoad(Ljava/lang/Object;,0) (454) +227: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (455) +228: Constant(L;,null) (458) +229: ConditionalBranch(Ljava/lang/Object;,ne,249) (458) +230: LocalLoad(Ljava/lang/Object;,0) (461) +231: Constant(Ljava/lang/String;,"user.dir") (462) +232: Invoke(STATIC,Ljava/lang/System;,getProperty,(Ljava/lang/String;)Ljava/lang/String;) (464) +233: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (467) +234: LocalLoad(Ljava/lang/Object;,0) (470) +235: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (471) +236: Constant(I,0) (474) +237: ConditionalBranch(I,ne,249) (474) +238: LocalLoad(Ljava/lang/Object;,0) (477) +239: New(Ljava/lang/StringBuilder;,0) (478) +240: Dup(1,0) (481) +241: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (482) +242: Constant(Ljava/lang/String;,"No destination directory specified; using working directory: ") (485) +243: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (487) +244: LocalLoad(Ljava/lang/Object;,0) (490) +245: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (491) +246: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (494) +247: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (497) +248: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (500) +249: New(Ljava/io/File;,0) (503) +250: Dup(1,0) (506) +251: New(Ljava/lang/StringBuilder;,0) (507) +252: Dup(1,0) (510) +253: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (511) +254: LocalLoad(Ljava/lang/Object;,0) (514) +255: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (515) +256: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (518) +257: LocalLoad(Ljava/lang/Object;,2) (521) +258: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (522) +259: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (525) +260: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;)V) (528) +261: LocalStore(Ljava/lang/Object;,3) (531) +262: LocalLoad(Ljava/lang/Object;,3) (532) +263: Invoke(VIRTUAL,Ljava/io/File;,exists,()Z) (533) +264: Constant(I,0) (536) +265: ConditionalBranch(I,ne,290) (536) +266: LocalLoad(Ljava/lang/Object;,0) (539) +267: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (540) +268: Constant(I,0) (543) +269: ConditionalBranch(I,ne,283) (543) +270: LocalLoad(Ljava/lang/Object;,0) (546) +271: New(Ljava/lang/StringBuilder;,0) (547) +272: Dup(1,0) (550) +273: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (551) +274: Constant(Ljava/lang/String;,"Destination directory didn't exist; creating new one: ") (554) +275: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (556) +276: LocalLoad(Ljava/lang/Object;,0) (559) +277: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (560) +278: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (563) +279: LocalLoad(Ljava/lang/Object;,2) (566) +280: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (567) +281: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (570) +282: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (573) +283: LocalLoad(Ljava/lang/Object;,3) (576) +284: Invoke(VIRTUAL,Ljava/io/File;,mkdirs,()Z) (577) +285: Pop(1) (580) +286: LocalLoad(Ljava/lang/Object;,0) (581) +287: Constant(I,1) (582) +288: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (583) +289: Goto(498) (586) +290: LocalLoad(Ljava/lang/Object;,0) (589) +291: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (590) +292: Constant(I,0) (593) +293: ConditionalBranch(I,eq,302) (593) +294: LocalLoad(Ljava/lang/Object;,0) (596) +295: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (597) +296: Constant(I,0) (600) +297: ConditionalBranch(I,ne,302) (600) +298: LocalLoad(Ljava/lang/Object;,0) (603) +299: Constant(Ljava/lang/String;,"anyway, this generation will be processed because of option force set to \"true\"") (604) +300: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (606) +301: Goto(309) (609) +302: LocalLoad(Ljava/lang/Object;,0) (612) +303: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (613) +304: Constant(I,0) (616) +305: ConditionalBranch(I,ne,309) (616) +306: LocalLoad(Ljava/lang/Object;,0) (619) +307: Constant(Ljava/lang/String;,"checking, whether this run is necessary") (620) +308: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (622) +309: New(Ljava/io/File;,0) (625) +310: Dup(1,0) (628) +311: New(Ljava/lang/StringBuilder;,0) (629) +312: Dup(1,0) (632) +313: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (633) +314: LocalLoad(Ljava/lang/Object;,0) (636) +315: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (637) +316: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (640) +317: LocalLoad(Ljava/lang/Object;,2) (643) +318: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (644) +319: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (647) +320: New(Ljava/lang/StringBuilder;,0) (650) +321: Dup(1,0) (653) +322: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (654) +323: LocalLoad(Ljava/lang/Object;,0) (657) +324: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (658) +325: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (661) +326: Constant(Ljava/lang/String;,".java") (664) +327: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (666) +328: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (669) +329: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;Ljava/lang/String;)V) (672) +330: LocalStore(Ljava/lang/Object;,4) (675) +331: New(Ljava/io/File;,0) (677) +332: Dup(1,0) (680) +333: New(Ljava/lang/StringBuilder;,0) (681) +334: Dup(1,0) (684) +335: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (685) +336: LocalLoad(Ljava/lang/Object;,0) (688) +337: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (689) +338: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (692) +339: LocalLoad(Ljava/lang/Object;,2) (695) +340: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (696) +341: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (699) +342: New(Ljava/lang/StringBuilder;,0) (702) +343: Dup(1,0) (705) +344: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (706) +345: LocalLoad(Ljava/lang/Object;,0) (709) +346: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (710) +347: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (713) +348: Constant(Ljava/lang/String;,".java") (716) +349: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (718) +350: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (721) +351: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;Ljava/lang/String;)V) (724) +352: LocalStore(Ljava/lang/Object;,5) (727) +353: New(Ljava/io/File;,0) (729) +354: Dup(1,0) (732) +355: LocalLoad(Ljava/lang/Object;,0) (733) +356: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (734) +357: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;)V) (737) +358: LocalStore(Ljava/lang/Object;,6) (740) +359: LocalLoad(Ljava/lang/Object;,4) (742) +360: Invoke(VIRTUAL,Ljava/io/File;,exists,()Z) (744) +361: Constant(I,0) (747) +362: ConditionalBranch(I,eq,367) (747) +363: LocalLoad(Ljava/lang/Object;,5) (750) +364: Invoke(VIRTUAL,Ljava/io/File;,exists,()Z) (752) +365: Constant(I,0) (755) +366: ConditionalBranch(I,ne,378) (755) +367: LocalLoad(Ljava/lang/Object;,0) (758) +368: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (759) +369: Constant(I,0) (762) +370: ConditionalBranch(I,ne,374) (762) +371: LocalLoad(Ljava/lang/Object;,0) (765) +372: Constant(Ljava/lang/String;,"Either Parserfile or Symbolfile didn't exist") (766) +373: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (768) +374: LocalLoad(Ljava/lang/Object;,0) (771) +375: Constant(I,1) (772) +376: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (773) +377: Goto(385) (776) +378: LocalLoad(Ljava/lang/Object;,0) (779) +379: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (780) +380: Constant(I,0) (783) +381: ConditionalBranch(I,ne,385) (783) +382: LocalLoad(Ljava/lang/Object;,0) (786) +383: Constant(Ljava/lang/String;,"Parserfile and symbolfile are existing") (787) +384: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (789) +385: LocalLoad(Ljava/lang/Object;,4) (792) +386: Invoke(VIRTUAL,Ljava/io/File;,lastModified,()J) (794) +387: LocalLoad(Ljava/lang/Object;,6) (797) +388: Invoke(VIRTUAL,Ljava/io/File;,lastModified,()J) (799) +389: Comparison(J,cmp) (802) +390: Constant(I,0) (803) +391: ConditionalBranch(I,gt,412) (803) +392: LocalLoad(Ljava/lang/Object;,0) (806) +393: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (807) +394: Constant(I,0) (810) +395: ConditionalBranch(I,ne,408) (810) +396: LocalLoad(Ljava/lang/Object;,0) (813) +397: New(Ljava/lang/StringBuilder;,0) (814) +398: Dup(1,0) (817) +399: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (818) +400: Constant(Ljava/lang/String;,"Parserfile ") (821) +401: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (823) +402: LocalLoad(Ljava/lang/Object;,4) (826) +403: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (828) +404: Constant(Ljava/lang/String;," isn't actual") (831) +405: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (833) +406: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (836) +407: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (839) +408: LocalLoad(Ljava/lang/Object;,0) (842) +409: Constant(I,1) (843) +410: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (844) +411: Goto(428) (847) +412: LocalLoad(Ljava/lang/Object;,0) (850) +413: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (851) +414: Constant(I,0) (854) +415: ConditionalBranch(I,ne,428) (854) +416: LocalLoad(Ljava/lang/Object;,0) (857) +417: New(Ljava/lang/StringBuilder;,0) (858) +418: Dup(1,0) (861) +419: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (862) +420: Constant(Ljava/lang/String;,"Parserfile ") (865) +421: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (867) +422: LocalLoad(Ljava/lang/Object;,4) (870) +423: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (872) +424: Constant(Ljava/lang/String;," is actual") (875) +425: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (877) +426: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (880) +427: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (883) +428: LocalLoad(Ljava/lang/Object;,5) (886) +429: Invoke(VIRTUAL,Ljava/io/File;,lastModified,()J) (888) +430: LocalLoad(Ljava/lang/Object;,6) (891) +431: Invoke(VIRTUAL,Ljava/io/File;,lastModified,()J) (893) +432: Comparison(J,cmp) (896) +433: Constant(I,0) (897) +434: ConditionalBranch(I,gt,455) (897) +435: LocalLoad(Ljava/lang/Object;,0) (900) +436: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (901) +437: Constant(I,0) (904) +438: ConditionalBranch(I,ne,451) (904) +439: LocalLoad(Ljava/lang/Object;,0) (907) +440: New(Ljava/lang/StringBuilder;,0) (908) +441: Dup(1,0) (911) +442: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (912) +443: Constant(Ljava/lang/String;,"Symbolfile ") (915) +444: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (917) +445: LocalLoad(Ljava/lang/Object;,5) (920) +446: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (922) +447: Constant(Ljava/lang/String;," isn't actual") (925) +448: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (927) +449: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (930) +450: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (933) +451: LocalLoad(Ljava/lang/Object;,0) (936) +452: Constant(I,1) (937) +453: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (938) +454: Goto(471) (941) +455: LocalLoad(Ljava/lang/Object;,0) (944) +456: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (945) +457: Constant(I,0) (948) +458: ConditionalBranch(I,ne,471) (948) +459: LocalLoad(Ljava/lang/Object;,0) (951) +460: New(Ljava/lang/StringBuilder;,0) (952) +461: Dup(1,0) (955) +462: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (956) +463: Constant(Ljava/lang/String;,"Symbolfile") (959) +464: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (961) +465: LocalLoad(Ljava/lang/Object;,5) (964) +466: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (966) +467: Constant(Ljava/lang/String;," is actual") (969) +468: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (971) +469: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (974) +470: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (977) +471: LocalLoad(Ljava/lang/Object;,0) (980) +472: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (981) +473: Constant(I,0) (984) +474: ConditionalBranch(I,ne,498) (984) +475: LocalLoad(Ljava/lang/Object;,0) (987) +476: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (988) +477: Constant(I,0) (991) +478: ConditionalBranch(I,ne,490) (991) +479: LocalLoad(Ljava/lang/Object;,0) (994) +480: New(Ljava/lang/StringBuilder;,0) (995) +481: Dup(1,0) (998) +482: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (999) +483: Constant(Ljava/lang/String;,"skipping generation of ") (1002) +484: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1004) +485: LocalLoad(Ljava/lang/Object;,0) (1007) +486: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1008) +487: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1011) +488: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1014) +489: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (1017) +490: LocalLoad(Ljava/lang/Object;,0) (1020) +491: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (1021) +492: Constant(I,0) (1024) +493: ConditionalBranch(I,ne,497) (1024) +494: LocalLoad(Ljava/lang/Object;,0) (1027) +495: Constant(Ljava/lang/String;,"use option force=\"true\" to override") (1028) +496: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (1030) +497: Return(V) (1033) +498: LocalLoad(Ljava/lang/Object;,1) (1034) +499: Constant(Ljava/lang/String;,"-destdir") (1035) +500: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (1037) +501: Pop(1) (1042) +502: LocalLoad(Ljava/lang/Object;,1) (1043) +503: LocalLoad(Ljava/lang/Object;,3) (1044) +504: Invoke(VIRTUAL,Ljava/io/File;,getAbsolutePath,()Ljava/lang/String;) (1045) +505: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (1048) +506: Pop(1) (1053) +507: LocalLoad(Ljava/lang/Object;,0) (1054) +508: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1055) +509: Constant(L;,null) (1058) +510: ConditionalBranch(Ljava/lang/Object;,ne,516) (1058) +511: New(Lorg/apache/tools/ant/BuildException;,0) (1061) +512: Dup(1,0) (1064) +513: Constant(Ljava/lang/String;,"Input file needed: Specify ") (1065) +514: Invoke(SPECIAL,Lorg/apache/tools/ant/BuildException;,,(Ljava/lang/String;)V) (1067) +515: Throw() (1070) +516: New(Ljava/io/File;,0) (1071) +517: Dup(1,0) (1074) +518: LocalLoad(Ljava/lang/Object;,0) (1075) +519: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1076) +520: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;)V) (1079) +521: Invoke(VIRTUAL,Ljava/io/File;,exists,()Z) (1082) +522: Constant(I,0) (1085) +523: ConditionalBranch(I,ne,539) (1085) +524: New(Lorg/apache/tools/ant/BuildException;,0) (1088) +525: Dup(1,0) (1091) +526: New(Ljava/lang/StringBuilder;,0) (1092) +527: Dup(1,0) (1095) +528: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1096) +529: Constant(Ljava/lang/String;,"Input file not found: srcfile=\"") (1099) +530: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1101) +531: LocalLoad(Ljava/lang/Object;,0) (1104) +532: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1105) +533: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1108) +534: Constant(Ljava/lang/String;,"\" ") (1111) +535: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1113) +536: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1116) +537: Invoke(SPECIAL,Lorg/apache/tools/ant/BuildException;,,(Ljava/lang/String;)V) (1119) +538: Throw() (1122) +539: LocalLoad(Ljava/lang/Object;,1) (1123) +540: LocalLoad(Ljava/lang/Object;,0) (1124) +541: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1125) +542: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (1128) +543: Pop(1) (1133) +544: LocalLoad(Ljava/lang/Object;,1) (1134) +545: Invoke(INTERFACE,Ljava/util/List;,size,()I) (1135) +546: New([Ljava/lang/String;,1) (1140) +547: LocalStore(Ljava/lang/Object;,4) (1143) +548: Constant(I,0) (1145) +549: LocalStore(I,5) (1146) +550: LocalLoad(I,5) (1148) +551: LocalLoad(Ljava/lang/Object;,4) (1150) +552: ArrayLength() (1152) +553: ConditionalBranch(I,ge,566) (1153) +554: LocalLoad(Ljava/lang/Object;,4) (1156) +555: LocalLoad(I,5) (1158) +556: LocalLoad(Ljava/lang/Object;,1) (1160) +557: LocalLoad(I,5) (1161) +558: Invoke(INTERFACE,Ljava/util/List;,get,(I)Ljava/lang/Object;) (1163) +559: CheckCast(Ljava/lang/String;) (1168) +560: ArrayStore(Ljava/lang/Object;) (1171) +561: LocalLoad(I,5) (1172) +562: Constant(I,1) (1172) +563: BinaryOp(I,add) (1172) +564: LocalStore(I,5) (1172) +565: Goto(550) (1175) +566: LocalLoad(Ljava/lang/Object;,4) (1178) + Handles Ljava/lang/Exception; at 569 +567: Invoke(STATIC,Ljava_cup/Main;,main,([Ljava/lang/String;)V) (1180) + Handles Ljava/lang/Exception; at 569 +568: Goto(580) (1183) +569: LocalStore(Ljava/lang/Object;,5) (1186) +570: LocalLoad(Ljava/lang/Object;,0) (1188) +571: New(Ljava/lang/StringBuilder;,0) (1189) +572: Dup(1,0) (1192) +573: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1193) +574: Constant(Ljava/lang/String;,"CUP error occured int CUP task: ") (1196) +575: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1198) +576: LocalLoad(Ljava/lang/Object;,5) (1201) +577: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (1203) +578: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1206) +579: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (1209) +580: Return(V) (1212) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"execute()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/ArrayList;,0) (0) + Handles null at 595 +5: Dup(1,0) (3) + Handles null at 595 +6: Invoke(SPECIAL,Ljava/util/ArrayList;,,()V) (4) + Handles null at 595 +7: LocalStore(Ljava/lang/Object;,1) (7) + Handles null at 595 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 595 +9: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (9) + Handles null at 595 +10: Constant(L;,null) (12) + Handles null at 595 +11: ConditionalBranch(Ljava/lang/Object;,eq,22) (12) + Handles null at 595 +12: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 595 +13: Constant(Ljava/lang/String;,"-parser") (16) + Handles null at 595 +14: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (18) + Handles null at 595 +15: Pop(1) (23) + Handles null at 595 +16: LocalLoad(Ljava/lang/Object;,1) (24) + Handles null at 595 +17: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 595 +18: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (26) + Handles null at 595 +19: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (29) + Handles null at 595 +20: Pop(1) (34) + Handles null at 595 +21: Goto(25) (35) + Handles null at 595 +22: LocalLoad(Ljava/lang/Object;,0) (38) + Handles null at 595 +23: Constant(Ljava/lang/String;,"parser") (39) + Handles null at 595 +24: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (41) + Handles null at 595 +25: LocalLoad(Ljava/lang/Object;,0) (44) + Handles null at 595 +26: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (45) + Handles null at 595 +27: Constant(L;,null) (48) + Handles null at 595 +28: ConditionalBranch(Ljava/lang/Object;,eq,38) (48) + Handles null at 595 +29: LocalLoad(Ljava/lang/Object;,1) (51) + Handles null at 595 +30: Constant(Ljava/lang/String;,"-package") (52) + Handles null at 595 +31: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (54) + Handles null at 595 +32: Pop(1) (59) + Handles null at 595 +33: LocalLoad(Ljava/lang/Object;,1) (60) + Handles null at 595 +34: LocalLoad(Ljava/lang/Object;,0) (61) + Handles null at 595 +35: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (62) + Handles null at 595 +36: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (65) + Handles null at 595 +37: Pop(1) (70) + Handles null at 595 +38: LocalLoad(Ljava/lang/Object;,0) (71) + Handles null at 595 +39: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (72) + Handles null at 595 +40: Constant(L;,null) (75) + Handles null at 595 +41: ConditionalBranch(Ljava/lang/Object;,eq,52) (75) + Handles null at 595 +42: LocalLoad(Ljava/lang/Object;,1) (78) + Handles null at 595 +43: Constant(Ljava/lang/String;,"-symbols") (79) + Handles null at 595 +44: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (81) + Handles null at 595 +45: Pop(1) (86) + Handles null at 595 +46: LocalLoad(Ljava/lang/Object;,1) (87) + Handles null at 595 +47: LocalLoad(Ljava/lang/Object;,0) (88) + Handles null at 595 +48: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (89) + Handles null at 595 +49: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (92) + Handles null at 595 +50: Pop(1) (97) + Handles null at 595 +51: Goto(55) (98) + Handles null at 595 +52: LocalLoad(Ljava/lang/Object;,0) (101) + Handles null at 595 +53: Constant(Ljava/lang/String;,"sym") (102) + Handles null at 595 +54: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (104) + Handles null at 595 +55: LocalLoad(Ljava/lang/Object;,0) (107) + Handles null at 595 +56: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (108) + Handles null at 595 +57: Constant(L;,null) (111) + Handles null at 595 +58: ConditionalBranch(Ljava/lang/Object;,eq,68) (111) + Handles null at 595 +59: LocalLoad(Ljava/lang/Object;,1) (114) + Handles null at 595 +60: Constant(Ljava/lang/String;,"-expect") (115) + Handles null at 595 +61: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (117) + Handles null at 595 +62: Pop(1) (122) + Handles null at 595 +63: LocalLoad(Ljava/lang/Object;,1) (123) + Handles null at 595 +64: LocalLoad(Ljava/lang/Object;,0) (124) + Handles null at 595 +65: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (125) + Handles null at 595 +66: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (128) + Handles null at 595 +67: Pop(1) (133) + Handles null at 595 +68: LocalLoad(Ljava/lang/Object;,0) (134) + Handles null at 595 +69: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,_interface) (135) + Handles null at 595 +70: Constant(I,0) (138) + Handles null at 595 +71: ConditionalBranch(I,eq,76) (138) + Handles null at 595 +72: LocalLoad(Ljava/lang/Object;,1) (141) + Handles null at 595 +73: Constant(Ljava/lang/String;,"-interface") (142) + Handles null at 595 +74: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (144) + Handles null at 595 +75: Pop(1) (149) + Handles null at 595 +76: LocalLoad(Ljava/lang/Object;,0) (150) + Handles null at 595 +77: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nonterms) (151) + Handles null at 595 +78: Constant(I,0) (154) + Handles null at 595 +79: ConditionalBranch(I,eq,84) (154) + Handles null at 595 +80: LocalLoad(Ljava/lang/Object;,1) (157) + Handles null at 595 +81: Constant(Ljava/lang/String;,"-nonterms") (158) + Handles null at 595 +82: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (160) + Handles null at 595 +83: Pop(1) (165) + Handles null at 595 +84: LocalLoad(Ljava/lang/Object;,0) (166) + Handles null at 595 +85: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,compact_red) (167) + Handles null at 595 +86: Constant(I,0) (170) + Handles null at 595 +87: ConditionalBranch(I,eq,92) (170) + Handles null at 595 +88: LocalLoad(Ljava/lang/Object;,1) (173) + Handles null at 595 +89: Constant(Ljava/lang/String;,"-compact_red") (174) + Handles null at 595 +90: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (176) + Handles null at 595 +91: Pop(1) (181) + Handles null at 595 +92: LocalLoad(Ljava/lang/Object;,0) (182) + Handles null at 595 +93: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nowarn) (183) + Handles null at 595 +94: Constant(I,0) (186) + Handles null at 595 +95: ConditionalBranch(I,eq,100) (186) + Handles null at 595 +96: LocalLoad(Ljava/lang/Object;,1) (189) + Handles null at 595 +97: Constant(Ljava/lang/String;,"-nowarn") (190) + Handles null at 595 +98: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (192) + Handles null at 595 +99: Pop(1) (197) + Handles null at 595 +100: LocalLoad(Ljava/lang/Object;,0) (198) + Handles null at 595 +101: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nosummary) (199) + Handles null at 595 +102: Constant(I,0) (202) + Handles null at 595 +103: ConditionalBranch(I,eq,108) (202) + Handles null at 595 +104: LocalLoad(Ljava/lang/Object;,1) (205) + Handles null at 595 +105: Constant(Ljava/lang/String;,"-nosummary") (206) + Handles null at 595 +106: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (208) + Handles null at 595 +107: Pop(1) (213) + Handles null at 595 +108: LocalLoad(Ljava/lang/Object;,0) (214) + Handles null at 595 +109: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,progress) (215) + Handles null at 595 +110: Constant(I,0) (218) + Handles null at 595 +111: ConditionalBranch(I,eq,116) (218) + Handles null at 595 +112: LocalLoad(Ljava/lang/Object;,1) (221) + Handles null at 595 +113: Constant(Ljava/lang/String;,"-progress") (222) + Handles null at 595 +114: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (224) + Handles null at 595 +115: Pop(1) (229) + Handles null at 595 +116: LocalLoad(Ljava/lang/Object;,0) (230) + Handles null at 595 +117: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_grammar) (231) + Handles null at 595 +118: Constant(I,0) (234) + Handles null at 595 +119: ConditionalBranch(I,eq,124) (234) + Handles null at 595 +120: LocalLoad(Ljava/lang/Object;,1) (237) + Handles null at 595 +121: Constant(Ljava/lang/String;,"-dump_grammar") (238) + Handles null at 595 +122: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (240) + Handles null at 595 +123: Pop(1) (245) + Handles null at 595 +124: LocalLoad(Ljava/lang/Object;,0) (246) + Handles null at 595 +125: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_states) (247) + Handles null at 595 +126: Constant(I,0) (250) + Handles null at 595 +127: ConditionalBranch(I,eq,132) (250) + Handles null at 595 +128: LocalLoad(Ljava/lang/Object;,1) (253) + Handles null at 595 +129: Constant(Ljava/lang/String;,"-dump_states") (254) + Handles null at 595 +130: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (256) + Handles null at 595 +131: Pop(1) (261) + Handles null at 595 +132: LocalLoad(Ljava/lang/Object;,0) (262) + Handles null at 595 +133: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_tables) (263) + Handles null at 595 +134: Constant(I,0) (266) + Handles null at 595 +135: ConditionalBranch(I,eq,140) (266) + Handles null at 595 +136: LocalLoad(Ljava/lang/Object;,1) (269) + Handles null at 595 +137: Constant(Ljava/lang/String;,"-dump_tables") (270) + Handles null at 595 +138: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (272) + Handles null at 595 +139: Pop(1) (277) + Handles null at 595 +140: LocalLoad(Ljava/lang/Object;,0) (278) + Handles null at 595 +141: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump) (279) + Handles null at 595 +142: Constant(I,0) (282) + Handles null at 595 +143: ConditionalBranch(I,eq,148) (282) + Handles null at 595 +144: LocalLoad(Ljava/lang/Object;,1) (285) + Handles null at 595 +145: Constant(Ljava/lang/String;,"-dump") (286) + Handles null at 595 +146: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (288) + Handles null at 595 +147: Pop(1) (293) + Handles null at 595 +148: LocalLoad(Ljava/lang/Object;,0) (294) + Handles null at 595 +149: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,time) (295) + Handles null at 595 +150: Constant(I,0) (298) + Handles null at 595 +151: ConditionalBranch(I,eq,156) (298) + Handles null at 595 +152: LocalLoad(Ljava/lang/Object;,1) (301) + Handles null at 595 +153: Constant(Ljava/lang/String;,"-time") (302) + Handles null at 595 +154: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (304) + Handles null at 595 +155: Pop(1) (309) + Handles null at 595 +156: LocalLoad(Ljava/lang/Object;,0) (310) + Handles null at 595 +157: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,debug) (311) + Handles null at 595 +158: Constant(I,0) (314) + Handles null at 595 +159: ConditionalBranch(I,eq,164) (314) + Handles null at 595 +160: LocalLoad(Ljava/lang/Object;,1) (317) + Handles null at 595 +161: Constant(Ljava/lang/String;,"-debug") (318) + Handles null at 595 +162: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (320) + Handles null at 595 +163: Pop(1) (325) + Handles null at 595 +164: LocalLoad(Ljava/lang/Object;,0) (326) + Handles null at 595 +165: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nopositions) (327) + Handles null at 595 +166: Constant(I,0) (330) + Handles null at 595 +167: ConditionalBranch(I,eq,172) (330) + Handles null at 595 +168: LocalLoad(Ljava/lang/Object;,1) (333) + Handles null at 595 +169: Constant(Ljava/lang/String;,"-nopositions") (334) + Handles null at 595 +170: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (336) + Handles null at 595 +171: Pop(1) (341) + Handles null at 595 +172: LocalLoad(Ljava/lang/Object;,0) (342) + Handles null at 595 +173: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,locations) (343) + Handles null at 595 +174: Constant(I,0) (346) + Handles null at 595 +175: ConditionalBranch(I,eq,180) (346) + Handles null at 595 +176: LocalLoad(Ljava/lang/Object;,1) (349) + Handles null at 595 +177: Constant(Ljava/lang/String;,"-locations") (350) + Handles null at 595 +178: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (352) + Handles null at 595 +179: Pop(1) (357) + Handles null at 595 +180: LocalLoad(Ljava/lang/Object;,0) (358) + Handles null at 595 +181: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,genericlabels) (359) + Handles null at 595 +182: Constant(I,0) (362) + Handles null at 595 +183: ConditionalBranch(I,eq,188) (362) + Handles null at 595 +184: LocalLoad(Ljava/lang/Object;,1) (365) + Handles null at 595 +185: Constant(Ljava/lang/String;,"-genericlabels") (366) + Handles null at 595 +186: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (368) + Handles null at 595 +187: Pop(1) (373) + Handles null at 595 +188: LocalLoad(Ljava/lang/Object;,0) (374) + Handles null at 595 +189: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,xmlactions) (375) + Handles null at 595 +190: Constant(I,0) (378) + Handles null at 595 +191: ConditionalBranch(I,eq,196) (378) + Handles null at 595 +192: LocalLoad(Ljava/lang/Object;,1) (381) + Handles null at 595 +193: Constant(Ljava/lang/String;,"-xmlactions") (382) + Handles null at 595 +194: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (384) + Handles null at 595 +195: Pop(1) (389) + Handles null at 595 +196: LocalLoad(Ljava/lang/Object;,0) (390) + Handles null at 595 +197: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,noscanner) (391) + Handles null at 595 +198: Constant(I,0) (394) + Handles null at 595 +199: ConditionalBranch(I,eq,204) (394) + Handles null at 595 +200: LocalLoad(Ljava/lang/Object;,1) (397) + Handles null at 595 +201: Constant(Ljava/lang/String;,"-noscanner") (398) + Handles null at 595 +202: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (400) + Handles null at 595 +203: Pop(1) (405) + Handles null at 595 +204: LocalLoad(Ljava/lang/Object;,0) (406) + Handles null at 595 +205: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (407) + Handles null at 595 +206: Constant(I,0) (410) + Handles null at 595 +207: ConditionalBranch(I,ne,211) (410) + Handles null at 595 +208: LocalLoad(Ljava/lang/Object;,0) (413) + Handles null at 595 +209: Constant(Ljava/lang/String;,"This is CUP v0.11b 20140808 (SVN rev 54)") (414) + Handles null at 595 +210: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (416) + Handles null at 595 +211: LocalLoad(Ljava/lang/Object;,0) (419) + Handles null at 595 +212: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (420) + Handles null at 595 +213: Constant(I,0) (423) + Handles null at 595 +214: ConditionalBranch(I,ne,218) (423) + Handles null at 595 +215: LocalLoad(Ljava/lang/Object;,0) (426) + Handles null at 595 +216: Constant(Ljava/lang/String;,"Authors : Scott E. Hudson, Frank Flannery, Michael Petter and C. Scott Ananian") (427) + Handles null at 595 +217: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (429) + Handles null at 595 +218: LocalLoad(Ljava/lang/Object;,0) (432) + Handles null at 595 +219: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (433) + Handles null at 595 +220: Constant(I,0) (436) + Handles null at 595 +221: ConditionalBranch(I,ne,225) (436) + Handles null at 595 +222: LocalLoad(Ljava/lang/Object;,0) (439) + Handles null at 595 +223: Constant(Ljava/lang/String;,"Bugreports to petter@cs.tum.edu") (440) + Handles null at 595 +224: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (442) + Handles null at 595 +225: LocalLoad(Ljava/lang/Object;,0) (445) + Handles null at 595 +226: LocalLoad(Ljava/lang/Object;,0) (446) + Handles null at 595 +227: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (447) + Handles null at 595 +228: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,inspect,(Ljava/lang/String;)Ljava/lang/String;) (450) + Handles null at 595 +229: LocalStore(Ljava/lang/Object;,2) (453) + Handles null at 595 +230: LocalLoad(Ljava/lang/Object;,0) (454) + Handles null at 595 +231: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (455) + Handles null at 595 +232: Constant(L;,null) (458) + Handles null at 595 +233: ConditionalBranch(Ljava/lang/Object;,ne,253) (458) + Handles null at 595 +234: LocalLoad(Ljava/lang/Object;,0) (461) + Handles null at 595 +235: Constant(Ljava/lang/String;,"user.dir") (462) + Handles null at 595 +236: Invoke(STATIC,Ljava/lang/System;,getProperty,(Ljava/lang/String;)Ljava/lang/String;) (464) + Handles null at 595 +237: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (467) + Handles null at 595 +238: LocalLoad(Ljava/lang/Object;,0) (470) + Handles null at 595 +239: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (471) + Handles null at 595 +240: Constant(I,0) (474) + Handles null at 595 +241: ConditionalBranch(I,ne,253) (474) + Handles null at 595 +242: LocalLoad(Ljava/lang/Object;,0) (477) + Handles null at 595 +243: New(Ljava/lang/StringBuilder;,0) (478) + Handles null at 595 +244: Dup(1,0) (481) + Handles null at 595 +245: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (482) + Handles null at 595 +246: Constant(Ljava/lang/String;,"No destination directory specified; using working directory: ") (485) + Handles null at 595 +247: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (487) + Handles null at 595 +248: LocalLoad(Ljava/lang/Object;,0) (490) + Handles null at 595 +249: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (491) + Handles null at 595 +250: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (494) + Handles null at 595 +251: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (497) + Handles null at 595 +252: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (500) + Handles null at 595 +253: New(Ljava/io/File;,0) (503) + Handles null at 595 +254: Dup(1,0) (506) + Handles null at 595 +255: New(Ljava/lang/StringBuilder;,0) (507) + Handles null at 595 +256: Dup(1,0) (510) + Handles null at 595 +257: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (511) + Handles null at 595 +258: LocalLoad(Ljava/lang/Object;,0) (514) + Handles null at 595 +259: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (515) + Handles null at 595 +260: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (518) + Handles null at 595 +261: LocalLoad(Ljava/lang/Object;,2) (521) + Handles null at 595 +262: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (522) + Handles null at 595 +263: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (525) + Handles null at 595 +264: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;)V) (528) + Handles null at 595 +265: LocalStore(Ljava/lang/Object;,3) (531) + Handles null at 595 +266: LocalLoad(Ljava/lang/Object;,3) (532) + Handles null at 595 +267: Invoke(VIRTUAL,Ljava/io/File;,exists,()Z) (533) + Handles null at 595 +268: Constant(I,0) (536) + Handles null at 595 +269: ConditionalBranch(I,ne,294) (536) + Handles null at 595 +270: LocalLoad(Ljava/lang/Object;,0) (539) + Handles null at 595 +271: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (540) + Handles null at 595 +272: Constant(I,0) (543) + Handles null at 595 +273: ConditionalBranch(I,ne,287) (543) + Handles null at 595 +274: LocalLoad(Ljava/lang/Object;,0) (546) + Handles null at 595 +275: New(Ljava/lang/StringBuilder;,0) (547) + Handles null at 595 +276: Dup(1,0) (550) + Handles null at 595 +277: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (551) + Handles null at 595 +278: Constant(Ljava/lang/String;,"Destination directory didn't exist; creating new one: ") (554) + Handles null at 595 +279: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (556) + Handles null at 595 +280: LocalLoad(Ljava/lang/Object;,0) (559) + Handles null at 595 +281: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (560) + Handles null at 595 +282: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (563) + Handles null at 595 +283: LocalLoad(Ljava/lang/Object;,2) (566) + Handles null at 595 +284: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (567) + Handles null at 595 +285: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (570) + Handles null at 595 +286: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (573) + Handles null at 595 +287: LocalLoad(Ljava/lang/Object;,3) (576) + Handles null at 595 +288: Invoke(VIRTUAL,Ljava/io/File;,mkdirs,()Z) (577) + Handles null at 595 +289: Pop(1) (580) + Handles null at 595 +290: LocalLoad(Ljava/lang/Object;,0) (581) + Handles null at 595 +291: Constant(I,1) (582) + Handles null at 595 +292: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (583) + Handles null at 595 +293: Goto(507) (586) + Handles null at 595 +294: LocalLoad(Ljava/lang/Object;,0) (589) + Handles null at 595 +295: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (590) + Handles null at 595 +296: Constant(I,0) (593) + Handles null at 595 +297: ConditionalBranch(I,eq,306) (593) + Handles null at 595 +298: LocalLoad(Ljava/lang/Object;,0) (596) + Handles null at 595 +299: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (597) + Handles null at 595 +300: Constant(I,0) (600) + Handles null at 595 +301: ConditionalBranch(I,ne,306) (600) + Handles null at 595 +302: LocalLoad(Ljava/lang/Object;,0) (603) + Handles null at 595 +303: Constant(Ljava/lang/String;,"anyway, this generation will be processed because of option force set to \"true\"") (604) + Handles null at 595 +304: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (606) + Handles null at 595 +305: Goto(313) (609) + Handles null at 595 +306: LocalLoad(Ljava/lang/Object;,0) (612) + Handles null at 595 +307: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (613) + Handles null at 595 +308: Constant(I,0) (616) + Handles null at 595 +309: ConditionalBranch(I,ne,313) (616) + Handles null at 595 +310: LocalLoad(Ljava/lang/Object;,0) (619) + Handles null at 595 +311: Constant(Ljava/lang/String;,"checking, whether this run is necessary") (620) + Handles null at 595 +312: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (622) + Handles null at 595 +313: New(Ljava/io/File;,0) (625) + Handles null at 595 +314: Dup(1,0) (628) + Handles null at 595 +315: New(Ljava/lang/StringBuilder;,0) (629) + Handles null at 595 +316: Dup(1,0) (632) + Handles null at 595 +317: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (633) + Handles null at 595 +318: LocalLoad(Ljava/lang/Object;,0) (636) + Handles null at 595 +319: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (637) + Handles null at 595 +320: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (640) + Handles null at 595 +321: LocalLoad(Ljava/lang/Object;,2) (643) + Handles null at 595 +322: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (644) + Handles null at 595 +323: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (647) + Handles null at 595 +324: New(Ljava/lang/StringBuilder;,0) (650) + Handles null at 595 +325: Dup(1,0) (653) + Handles null at 595 +326: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (654) + Handles null at 595 +327: LocalLoad(Ljava/lang/Object;,0) (657) + Handles null at 595 +328: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (658) + Handles null at 595 +329: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (661) + Handles null at 595 +330: Constant(Ljava/lang/String;,".java") (664) + Handles null at 595 +331: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (666) + Handles null at 595 +332: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (669) + Handles null at 595 +333: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;Ljava/lang/String;)V) (672) + Handles null at 595 +334: LocalStore(Ljava/lang/Object;,4) (675) + Handles null at 595 +335: New(Ljava/io/File;,0) (677) + Handles null at 595 +336: Dup(1,0) (680) + Handles null at 595 +337: New(Ljava/lang/StringBuilder;,0) (681) + Handles null at 595 +338: Dup(1,0) (684) + Handles null at 595 +339: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (685) + Handles null at 595 +340: LocalLoad(Ljava/lang/Object;,0) (688) + Handles null at 595 +341: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (689) + Handles null at 595 +342: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (692) + Handles null at 595 +343: LocalLoad(Ljava/lang/Object;,2) (695) + Handles null at 595 +344: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (696) + Handles null at 595 +345: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (699) + Handles null at 595 +346: New(Ljava/lang/StringBuilder;,0) (702) + Handles null at 595 +347: Dup(1,0) (705) + Handles null at 595 +348: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (706) + Handles null at 595 +349: LocalLoad(Ljava/lang/Object;,0) (709) + Handles null at 595 +350: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (710) + Handles null at 595 +351: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (713) + Handles null at 595 +352: Constant(Ljava/lang/String;,".java") (716) + Handles null at 595 +353: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (718) + Handles null at 595 +354: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (721) + Handles null at 595 +355: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;Ljava/lang/String;)V) (724) + Handles null at 595 +356: LocalStore(Ljava/lang/Object;,5) (727) + Handles null at 595 +357: New(Ljava/io/File;,0) (729) + Handles null at 595 +358: Dup(1,0) (732) + Handles null at 595 +359: LocalLoad(Ljava/lang/Object;,0) (733) + Handles null at 595 +360: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (734) + Handles null at 595 +361: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;)V) (737) + Handles null at 595 +362: LocalStore(Ljava/lang/Object;,6) (740) + Handles null at 595 +363: LocalLoad(Ljava/lang/Object;,4) (742) + Handles null at 595 +364: Invoke(VIRTUAL,Ljava/io/File;,exists,()Z) (744) + Handles null at 595 +365: Constant(I,0) (747) + Handles null at 595 +366: ConditionalBranch(I,eq,371) (747) + Handles null at 595 +367: LocalLoad(Ljava/lang/Object;,5) (750) + Handles null at 595 +368: Invoke(VIRTUAL,Ljava/io/File;,exists,()Z) (752) + Handles null at 595 +369: Constant(I,0) (755) + Handles null at 595 +370: ConditionalBranch(I,ne,382) (755) + Handles null at 595 +371: LocalLoad(Ljava/lang/Object;,0) (758) + Handles null at 595 +372: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (759) + Handles null at 595 +373: Constant(I,0) (762) + Handles null at 595 +374: ConditionalBranch(I,ne,378) (762) + Handles null at 595 +375: LocalLoad(Ljava/lang/Object;,0) (765) + Handles null at 595 +376: Constant(Ljava/lang/String;,"Either Parserfile or Symbolfile didn't exist") (766) + Handles null at 595 +377: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (768) + Handles null at 595 +378: LocalLoad(Ljava/lang/Object;,0) (771) + Handles null at 595 +379: Constant(I,1) (772) + Handles null at 595 +380: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (773) + Handles null at 595 +381: Goto(389) (776) + Handles null at 595 +382: LocalLoad(Ljava/lang/Object;,0) (779) + Handles null at 595 +383: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (780) + Handles null at 595 +384: Constant(I,0) (783) + Handles null at 595 +385: ConditionalBranch(I,ne,389) (783) + Handles null at 595 +386: LocalLoad(Ljava/lang/Object;,0) (786) + Handles null at 595 +387: Constant(Ljava/lang/String;,"Parserfile and symbolfile are existing") (787) + Handles null at 595 +388: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (789) + Handles null at 595 +389: LocalLoad(Ljava/lang/Object;,4) (792) + Handles null at 595 +390: Invoke(VIRTUAL,Ljava/io/File;,lastModified,()J) (794) + Handles null at 595 +391: LocalLoad(Ljava/lang/Object;,6) (797) + Handles null at 595 +392: Invoke(VIRTUAL,Ljava/io/File;,lastModified,()J) (799) + Handles null at 595 +393: Comparison(J,cmp) (802) + Handles null at 595 +394: Constant(I,0) (803) + Handles null at 595 +395: ConditionalBranch(I,gt,416) (803) + Handles null at 595 +396: LocalLoad(Ljava/lang/Object;,0) (806) + Handles null at 595 +397: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (807) + Handles null at 595 +398: Constant(I,0) (810) + Handles null at 595 +399: ConditionalBranch(I,ne,412) (810) + Handles null at 595 +400: LocalLoad(Ljava/lang/Object;,0) (813) + Handles null at 595 +401: New(Ljava/lang/StringBuilder;,0) (814) + Handles null at 595 +402: Dup(1,0) (817) + Handles null at 595 +403: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (818) + Handles null at 595 +404: Constant(Ljava/lang/String;,"Parserfile ") (821) + Handles null at 595 +405: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (823) + Handles null at 595 +406: LocalLoad(Ljava/lang/Object;,4) (826) + Handles null at 595 +407: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (828) + Handles null at 595 +408: Constant(Ljava/lang/String;," isn't actual") (831) + Handles null at 595 +409: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (833) + Handles null at 595 +410: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (836) + Handles null at 595 +411: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (839) + Handles null at 595 +412: LocalLoad(Ljava/lang/Object;,0) (842) + Handles null at 595 +413: Constant(I,1) (843) + Handles null at 595 +414: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (844) + Handles null at 595 +415: Goto(432) (847) + Handles null at 595 +416: LocalLoad(Ljava/lang/Object;,0) (850) + Handles null at 595 +417: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (851) + Handles null at 595 +418: Constant(I,0) (854) + Handles null at 595 +419: ConditionalBranch(I,ne,432) (854) + Handles null at 595 +420: LocalLoad(Ljava/lang/Object;,0) (857) + Handles null at 595 +421: New(Ljava/lang/StringBuilder;,0) (858) + Handles null at 595 +422: Dup(1,0) (861) + Handles null at 595 +423: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (862) + Handles null at 595 +424: Constant(Ljava/lang/String;,"Parserfile ") (865) + Handles null at 595 +425: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (867) + Handles null at 595 +426: LocalLoad(Ljava/lang/Object;,4) (870) + Handles null at 595 +427: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (872) + Handles null at 595 +428: Constant(Ljava/lang/String;," is actual") (875) + Handles null at 595 +429: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (877) + Handles null at 595 +430: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (880) + Handles null at 595 +431: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (883) + Handles null at 595 +432: LocalLoad(Ljava/lang/Object;,5) (886) + Handles null at 595 +433: Invoke(VIRTUAL,Ljava/io/File;,lastModified,()J) (888) + Handles null at 595 +434: LocalLoad(Ljava/lang/Object;,6) (891) + Handles null at 595 +435: Invoke(VIRTUAL,Ljava/io/File;,lastModified,()J) (893) + Handles null at 595 +436: Comparison(J,cmp) (896) + Handles null at 595 +437: Constant(I,0) (897) + Handles null at 595 +438: ConditionalBranch(I,gt,459) (897) + Handles null at 595 +439: LocalLoad(Ljava/lang/Object;,0) (900) + Handles null at 595 +440: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (901) + Handles null at 595 +441: Constant(I,0) (904) + Handles null at 595 +442: ConditionalBranch(I,ne,455) (904) + Handles null at 595 +443: LocalLoad(Ljava/lang/Object;,0) (907) + Handles null at 595 +444: New(Ljava/lang/StringBuilder;,0) (908) + Handles null at 595 +445: Dup(1,0) (911) + Handles null at 595 +446: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (912) + Handles null at 595 +447: Constant(Ljava/lang/String;,"Symbolfile ") (915) + Handles null at 595 +448: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (917) + Handles null at 595 +449: LocalLoad(Ljava/lang/Object;,5) (920) + Handles null at 595 +450: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (922) + Handles null at 595 +451: Constant(Ljava/lang/String;," isn't actual") (925) + Handles null at 595 +452: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (927) + Handles null at 595 +453: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (930) + Handles null at 595 +454: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (933) + Handles null at 595 +455: LocalLoad(Ljava/lang/Object;,0) (936) + Handles null at 595 +456: Constant(I,1) (937) + Handles null at 595 +457: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (938) + Handles null at 595 +458: Goto(475) (941) + Handles null at 595 +459: LocalLoad(Ljava/lang/Object;,0) (944) + Handles null at 595 +460: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (945) + Handles null at 595 +461: Constant(I,0) (948) + Handles null at 595 +462: ConditionalBranch(I,ne,475) (948) + Handles null at 595 +463: LocalLoad(Ljava/lang/Object;,0) (951) + Handles null at 595 +464: New(Ljava/lang/StringBuilder;,0) (952) + Handles null at 595 +465: Dup(1,0) (955) + Handles null at 595 +466: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (956) + Handles null at 595 +467: Constant(Ljava/lang/String;,"Symbolfile") (959) + Handles null at 595 +468: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (961) + Handles null at 595 +469: LocalLoad(Ljava/lang/Object;,5) (964) + Handles null at 595 +470: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (966) + Handles null at 595 +471: Constant(Ljava/lang/String;," is actual") (969) + Handles null at 595 +472: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (971) + Handles null at 595 +473: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (974) + Handles null at 595 +474: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (977) + Handles null at 595 +475: LocalLoad(Ljava/lang/Object;,0) (980) + Handles null at 595 +476: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (981) + Handles null at 595 +477: Constant(I,0) (984) + Handles null at 595 +478: ConditionalBranch(I,ne,507) (984) + Handles null at 595 +479: LocalLoad(Ljava/lang/Object;,0) (987) + Handles null at 595 +480: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (988) + Handles null at 595 +481: Constant(I,0) (991) + Handles null at 595 +482: ConditionalBranch(I,ne,494) (991) + Handles null at 595 +483: LocalLoad(Ljava/lang/Object;,0) (994) + Handles null at 595 +484: New(Ljava/lang/StringBuilder;,0) (995) + Handles null at 595 +485: Dup(1,0) (998) + Handles null at 595 +486: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (999) + Handles null at 595 +487: Constant(Ljava/lang/String;,"skipping generation of ") (1002) + Handles null at 595 +488: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1004) + Handles null at 595 +489: LocalLoad(Ljava/lang/Object;,0) (1007) + Handles null at 595 +490: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1008) + Handles null at 595 +491: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1011) + Handles null at 595 +492: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1014) + Handles null at 595 +493: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (1017) + Handles null at 595 +494: LocalLoad(Ljava/lang/Object;,0) (1020) + Handles null at 595 +495: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (1021) + Handles null at 595 +496: Constant(I,0) (1024) + Handles null at 595 +497: ConditionalBranch(I,ne,501) (1024) + Handles null at 595 +498: LocalLoad(Ljava/lang/Object;,0) (1027) + Handles null at 595 +499: Constant(Ljava/lang/String;,"use option force=\"true\" to override") (1028) + Handles null at 595 +500: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (1030) + Handles null at 595 +501: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (1033) + Handles null at 595 +502: Constant(Ljava/lang/String;,"execute()V") (1033) + Handles null at 595 +503: LocalLoad(Ljava/lang/Object;,0) (1033) + Handles null at 595 +504: Constant(I,0) (1033) + Handles null at 595 +505: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1033) + Handles null at 595 +506: Return(V) (1033) + Handles null at 595 +507: LocalLoad(Ljava/lang/Object;,1) (1034) + Handles null at 595 +508: Constant(Ljava/lang/String;,"-destdir") (1035) + Handles null at 595 +509: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (1037) + Handles null at 595 +510: Pop(1) (1042) + Handles null at 595 +511: LocalLoad(Ljava/lang/Object;,1) (1043) + Handles null at 595 +512: LocalLoad(Ljava/lang/Object;,3) (1044) + Handles null at 595 +513: Invoke(VIRTUAL,Ljava/io/File;,getAbsolutePath,()Ljava/lang/String;) (1045) + Handles null at 595 +514: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (1048) + Handles null at 595 +515: Pop(1) (1053) + Handles null at 595 +516: LocalLoad(Ljava/lang/Object;,0) (1054) + Handles null at 595 +517: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1055) + Handles null at 595 +518: Constant(L;,null) (1058) + Handles null at 595 +519: ConditionalBranch(Ljava/lang/Object;,ne,525) (1058) + Handles null at 595 +520: New(Lorg/apache/tools/ant/BuildException;,0) (1061) + Handles null at 595 +521: Dup(1,0) (1064) + Handles null at 595 +522: Constant(Ljava/lang/String;,"Input file needed: Specify ") (1065) + Handles null at 595 +523: Invoke(SPECIAL,Lorg/apache/tools/ant/BuildException;,,(Ljava/lang/String;)V) (1067) + Handles null at 595 +524: Throw() (1070) + Handles null at 595 +525: New(Ljava/io/File;,0) (1071) + Handles null at 595 +526: Dup(1,0) (1074) + Handles null at 595 +527: LocalLoad(Ljava/lang/Object;,0) (1075) + Handles null at 595 +528: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1076) + Handles null at 595 +529: Invoke(SPECIAL,Ljava/io/File;,,(Ljava/lang/String;)V) (1079) + Handles null at 595 +530: Invoke(VIRTUAL,Ljava/io/File;,exists,()Z) (1082) + Handles null at 595 +531: Constant(I,0) (1085) + Handles null at 595 +532: ConditionalBranch(I,ne,548) (1085) + Handles null at 595 +533: New(Lorg/apache/tools/ant/BuildException;,0) (1088) + Handles null at 595 +534: Dup(1,0) (1091) + Handles null at 595 +535: New(Ljava/lang/StringBuilder;,0) (1092) + Handles null at 595 +536: Dup(1,0) (1095) + Handles null at 595 +537: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1096) + Handles null at 595 +538: Constant(Ljava/lang/String;,"Input file not found: srcfile=\"") (1099) + Handles null at 595 +539: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1101) + Handles null at 595 +540: LocalLoad(Ljava/lang/Object;,0) (1104) + Handles null at 595 +541: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1105) + Handles null at 595 +542: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1108) + Handles null at 595 +543: Constant(Ljava/lang/String;,"\" ") (1111) + Handles null at 595 +544: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1113) + Handles null at 595 +545: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1116) + Handles null at 595 +546: Invoke(SPECIAL,Lorg/apache/tools/ant/BuildException;,,(Ljava/lang/String;)V) (1119) + Handles null at 595 +547: Throw() (1122) + Handles null at 595 +548: LocalLoad(Ljava/lang/Object;,1) (1123) + Handles null at 595 +549: LocalLoad(Ljava/lang/Object;,0) (1124) + Handles null at 595 +550: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1125) + Handles null at 595 +551: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (1128) + Handles null at 595 +552: Pop(1) (1133) + Handles null at 595 +553: LocalLoad(Ljava/lang/Object;,1) (1134) + Handles null at 595 +554: Invoke(INTERFACE,Ljava/util/List;,size,()I) (1135) + Handles null at 595 +555: New([Ljava/lang/String;,1) (1140) + Handles null at 595 +556: LocalStore(Ljava/lang/Object;,4) (1143) + Handles null at 595 +557: Constant(I,0) (1145) + Handles null at 595 +558: LocalStore(I,5) (1146) + Handles null at 595 +559: LocalLoad(I,5) (1148) + Handles null at 595 +560: LocalLoad(Ljava/lang/Object;,4) (1150) + Handles null at 595 +561: ArrayLength() (1152) + Handles null at 595 +562: ConditionalBranch(I,ge,575) (1153) + Handles null at 595 +563: LocalLoad(Ljava/lang/Object;,4) (1156) + Handles null at 595 +564: LocalLoad(I,5) (1158) + Handles null at 595 +565: LocalLoad(Ljava/lang/Object;,1) (1160) + Handles null at 595 +566: LocalLoad(I,5) (1161) + Handles null at 595 +567: Invoke(INTERFACE,Ljava/util/List;,get,(I)Ljava/lang/Object;) (1163) + Handles null at 595 +568: CheckCast(Ljava/lang/String;) (1168) + Handles null at 595 +569: ArrayStore(Ljava/lang/Object;) (1171) + Handles null at 595 +570: LocalLoad(I,5) (1172) + Handles null at 595 +571: Constant(I,1) (1172) + Handles null at 595 +572: BinaryOp(I,add) (1172) + Handles null at 595 +573: LocalStore(I,5) (1172) + Handles null at 595 +574: Goto(559) (1175) + Handles null at 595 +575: LocalLoad(Ljava/lang/Object;,4) (1178) + Handles Ljava/lang/Exception; at 578 + Handles null at 595 +576: Invoke(STATIC,Ljava_cup/Main;,main,([Ljava/lang/String;)V) (1180) + Handles Ljava/lang/Exception; at 578 + Handles null at 595 +577: Goto(589) (1183) + Handles null at 595 +578: LocalStore(Ljava/lang/Object;,5) (1186) + Handles null at 595 +579: LocalLoad(Ljava/lang/Object;,0) (1188) + Handles null at 595 +580: New(Ljava/lang/StringBuilder;,0) (1189) + Handles null at 595 +581: Dup(1,0) (1192) + Handles null at 595 +582: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1193) + Handles null at 595 +583: Constant(Ljava/lang/String;,"CUP error occured int CUP task: ") (1196) + Handles null at 595 +584: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1198) + Handles null at 595 +585: LocalLoad(Ljava/lang/Object;,5) (1201) + Handles null at 595 +586: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (1203) + Handles null at 595 +587: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1206) + Handles null at 595 +588: Invoke(VIRTUAL,Ljava_cup/anttask/CUPTask;,log,(Ljava/lang/String;)V) (1209) + Handles null at 595 +589: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (1212) + Handles null at 595 +590: Constant(Ljava/lang/String;,"execute()V") (1212) + Handles null at 595 +591: LocalLoad(Ljava/lang/Object;,0) (1212) + Handles null at 595 +592: Constant(I,0) (1212) + Handles null at 595 +593: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1212) + Handles null at 595 +594: Return(V) (1212) + Handles null at 595 +595: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +596: Constant(Ljava/lang/String;,"execute()V") (0) +597: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +598: Constant(I,1) (0) +599: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +600: Throw() (0) +Instrumenting inspect (Ljava/lang/String;)Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/io/BufferedReader;,0) (0) + Handles Ljava/io/IOException; at 52 +1: Dup(1,0) (3) + Handles Ljava/io/IOException; at 52 +2: New(Ljava/io/FileReader;,0) (4) + Handles Ljava/io/IOException; at 52 +3: Dup(1,0) (7) + Handles Ljava/io/IOException; at 52 +4: LocalLoad(Ljava/lang/Object;,1) (8) + Handles Ljava/io/IOException; at 52 +5: Invoke(SPECIAL,Ljava/io/FileReader;,,(Ljava/lang/String;)V) (9) + Handles Ljava/io/IOException; at 52 +6: Invoke(SPECIAL,Ljava/io/BufferedReader;,,(Ljava/io/Reader;)V) (12) + Handles Ljava/io/IOException; at 52 +7: LocalStore(Ljava/lang/Object;,2) (15) + Handles Ljava/io/IOException; at 52 +8: LocalLoad(Ljava/lang/Object;,2) (16) + Handles Ljava/io/IOException; at 52 +9: Invoke(VIRTUAL,Ljava/io/BufferedReader;,ready,()Z) (17) + Handles Ljava/io/IOException; at 52 +10: Constant(I,0) (20) + Handles Ljava/io/IOException; at 52 +11: ConditionalBranch(I,eq,51) (20) + Handles Ljava/io/IOException; at 52 +12: LocalLoad(Ljava/lang/Object;,2) (23) + Handles Ljava/io/IOException; at 52 +13: Invoke(VIRTUAL,Ljava/io/BufferedReader;,readLine,()Ljava/lang/String;) (24) + Handles Ljava/io/IOException; at 52 +14: LocalStore(Ljava/lang/Object;,3) (27) + Handles Ljava/io/IOException; at 52 +15: LocalLoad(Ljava/lang/Object;,3) (28) + Handles Ljava/io/IOException; at 52 +16: Constant(Ljava/lang/String;,"package") (29) + Handles Ljava/io/IOException; at 52 +17: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (31) + Handles Ljava/io/IOException; at 52 +18: Constant(I,0) (34) + Handles Ljava/io/IOException; at 52 +19: ConditionalBranch(I,eq,50) (34) + Handles Ljava/io/IOException; at 52 +20: LocalLoad(Ljava/lang/Object;,3) (37) + Handles Ljava/io/IOException; at 52 +21: Constant(Ljava/lang/String;,";") (38) + Handles Ljava/io/IOException; at 52 +22: Invoke(VIRTUAL,Ljava/lang/String;,indexOf,(Ljava/lang/String;)I) (40) + Handles Ljava/io/IOException; at 52 +23: Constant(I,-1) (43) + Handles Ljava/io/IOException; at 52 +24: ConditionalBranch(I,eq,50) (44) + Handles Ljava/io/IOException; at 52 +25: LocalLoad(Ljava/lang/Object;,3) (47) + Handles Ljava/io/IOException; at 52 +26: Constant(I,8) (48) + Handles Ljava/io/IOException; at 52 +27: LocalLoad(Ljava/lang/Object;,3) (50) + Handles Ljava/io/IOException; at 52 +28: Constant(Ljava/lang/String;,";") (51) + Handles Ljava/io/IOException; at 52 +29: Invoke(VIRTUAL,Ljava/lang/String;,indexOf,(Ljava/lang/String;)I) (53) + Handles Ljava/io/IOException; at 52 +30: Invoke(VIRTUAL,Ljava/lang/String;,substring,(II)Ljava/lang/String;) (56) + Handles Ljava/io/IOException; at 52 +31: LocalStore(Ljava/lang/Object;,4) (59) + Handles Ljava/io/IOException; at 52 +32: LocalLoad(Ljava/lang/Object;,4) (61) + Handles Ljava/io/IOException; at 52 +33: Constant(I,46) (63) + Handles Ljava/io/IOException; at 52 +34: Constant(Ljava/lang/String;,"file.separator") (65) + Handles Ljava/io/IOException; at 52 +35: Invoke(STATIC,Ljava/lang/System;,getProperty,(Ljava/lang/String;)Ljava/lang/String;) (67) + Handles Ljava/io/IOException; at 52 +36: Constant(I,0) (70) + Handles Ljava/io/IOException; at 52 +37: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (71) + Handles Ljava/io/IOException; at 52 +38: Invoke(VIRTUAL,Ljava/lang/String;,replace,(CC)Ljava/lang/String;) (74) + Handles Ljava/io/IOException; at 52 +39: LocalStore(Ljava/lang/Object;,4) (77) + Handles Ljava/io/IOException; at 52 +40: New(Ljava/lang/StringBuilder;,0) (79) + Handles Ljava/io/IOException; at 52 +41: Dup(1,0) (82) + Handles Ljava/io/IOException; at 52 +42: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (83) + Handles Ljava/io/IOException; at 52 +43: Constant(Ljava/lang/String;,"file.separator") (86) + Handles Ljava/io/IOException; at 52 +44: Invoke(STATIC,Ljava/lang/System;,getProperty,(Ljava/lang/String;)Ljava/lang/String;) (88) + Handles Ljava/io/IOException; at 52 +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) + Handles Ljava/io/IOException; at 52 +46: LocalLoad(Ljava/lang/Object;,4) (94) + Handles Ljava/io/IOException; at 52 +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (96) + Handles Ljava/io/IOException; at 52 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (99) + Handles Ljava/io/IOException; at 52 +49: Return(Ljava/lang/Object;) (102) +50: Goto(8) (103) + Handles Ljava/io/IOException; at 52 +51: Goto(53) (106) +52: LocalStore(Ljava/lang/Object;,2) (109) +53: Constant(Ljava/lang/String;,"") (110) +54: Return(Ljava/lang/Object;) (112) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"inspect(Ljava/lang/String;)Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/io/BufferedReader;,0) (0) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +5: Dup(1,0) (3) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +6: New(Ljava/io/FileReader;,0) (4) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +7: Dup(1,0) (7) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +8: LocalLoad(Ljava/lang/Object;,1) (8) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +9: Invoke(SPECIAL,Ljava/io/FileReader;,,(Ljava/lang/String;)V) (9) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +10: Invoke(SPECIAL,Ljava/io/BufferedReader;,,(Ljava/io/Reader;)V) (12) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +11: LocalStore(Ljava/lang/Object;,2) (15) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +12: LocalLoad(Ljava/lang/Object;,2) (16) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +13: Invoke(VIRTUAL,Ljava/io/BufferedReader;,ready,()Z) (17) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +14: Constant(I,0) (20) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +15: ConditionalBranch(I,eq,60) (20) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +16: LocalLoad(Ljava/lang/Object;,2) (23) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +17: Invoke(VIRTUAL,Ljava/io/BufferedReader;,readLine,()Ljava/lang/String;) (24) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +18: LocalStore(Ljava/lang/Object;,3) (27) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +19: LocalLoad(Ljava/lang/Object;,3) (28) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +20: Constant(Ljava/lang/String;,"package") (29) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +21: Invoke(VIRTUAL,Ljava/lang/String;,startsWith,(Ljava/lang/String;)Z) (31) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +22: Constant(I,0) (34) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +23: ConditionalBranch(I,eq,59) (34) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +24: LocalLoad(Ljava/lang/Object;,3) (37) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +25: Constant(Ljava/lang/String;,";") (38) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +26: Invoke(VIRTUAL,Ljava/lang/String;,indexOf,(Ljava/lang/String;)I) (40) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +27: Constant(I,-1) (43) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +28: ConditionalBranch(I,eq,59) (44) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +29: LocalLoad(Ljava/lang/Object;,3) (47) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +30: Constant(I,8) (48) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +31: LocalLoad(Ljava/lang/Object;,3) (50) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +32: Constant(Ljava/lang/String;,";") (51) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +33: Invoke(VIRTUAL,Ljava/lang/String;,indexOf,(Ljava/lang/String;)I) (53) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +34: Invoke(VIRTUAL,Ljava/lang/String;,substring,(II)Ljava/lang/String;) (56) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +35: LocalStore(Ljava/lang/Object;,4) (59) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +36: LocalLoad(Ljava/lang/Object;,4) (61) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +37: Constant(I,46) (63) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +38: Constant(Ljava/lang/String;,"file.separator") (65) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +39: Invoke(STATIC,Ljava/lang/System;,getProperty,(Ljava/lang/String;)Ljava/lang/String;) (67) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +40: Constant(I,0) (70) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +41: Invoke(VIRTUAL,Ljava/lang/String;,charAt,(I)C) (71) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +42: Invoke(VIRTUAL,Ljava/lang/String;,replace,(CC)Ljava/lang/String;) (74) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +43: LocalStore(Ljava/lang/Object;,4) (77) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +44: New(Ljava/lang/StringBuilder;,0) (79) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +45: Dup(1,0) (82) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +46: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (83) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +47: Constant(Ljava/lang/String;,"file.separator") (86) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +48: Invoke(STATIC,Ljava/lang/System;,getProperty,(Ljava/lang/String;)Ljava/lang/String;) (88) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +50: LocalLoad(Ljava/lang/Object;,4) (94) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (96) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +52: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (99) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +53: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (102) + Handles null at 69 +54: Constant(Ljava/lang/String;,"inspect(Ljava/lang/String;)Ljava/lang/String;") (102) + Handles null at 69 +55: LocalLoad(Ljava/lang/Object;,0) (102) + Handles null at 69 +56: Constant(I,0) (102) + Handles null at 69 +57: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (102) + Handles null at 69 +58: Return(Ljava/lang/Object;) (102) + Handles null at 69 +59: Goto(12) (103) + Handles Ljava/io/IOException; at 61 + Handles null at 69 +60: Goto(62) (106) + Handles null at 69 +61: LocalStore(Ljava/lang/Object;,2) (109) + Handles null at 69 +62: Constant(Ljava/lang/String;,"") (110) + Handles null at 69 +63: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (112) + Handles null at 69 +64: Constant(Ljava/lang/String;,"inspect(Ljava/lang/String;)Ljava/lang/String;") (112) + Handles null at 69 +65: LocalLoad(Ljava/lang/Object;,0) (112) + Handles null at 69 +66: Constant(I,0) (112) + Handles null at 69 +67: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (112) + Handles null at 69 +68: Return(Ljava/lang/Object;) (112) + Handles null at 69 +69: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +70: Constant(Ljava/lang/String;,"inspect(Ljava/lang/String;)Ljava/lang/String;") (0) +71: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +72: Constant(I,1) (0) +73: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +74: Throw() (0) +Instrumenting getQuiet ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"getQuiet()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getQuiet()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"getQuiet()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setQuiet (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setQuiet(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,quiet) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setQuiet(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setQuiet(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting getForce ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"getForce()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getForce()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"getForce()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setForce (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setForce(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,force) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setForce(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setForce(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting getPackage ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"getPackage()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getPackage()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"getPackage()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setPackage (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setPackage(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,_package) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setPackage(Ljava/lang/String;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setPackage(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting getDestdir ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"getDestdir()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getDestdir()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"getDestdir()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setDestdir (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setDestdir(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,destdir) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setDestdir(Ljava/lang/String;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setDestdir(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isInterface ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,_interface) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isInterface()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,_interface) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isInterface()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isInterface()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setInterface (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,_interface) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setInterface(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,_interface) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setInterface(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setInterface(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting getSrcfile ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"getSrcfile()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getSrcfile()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"getSrcfile()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setSrcfile (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setSrcfile(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,srcfile) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setSrcfile(Ljava/lang/String;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setSrcfile(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting getParser ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"getParser()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getParser()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"getParser()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setParser (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setParser(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,parser) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setParser(Ljava/lang/String;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setParser(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting getSymbols ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"getSymbols()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getSymbols()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"getSymbols()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setSymbols (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setSymbols(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,symbols) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setSymbols(Ljava/lang/String;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setSymbols(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isNonterms ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nonterms) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isNonterms()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nonterms) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isNonterms()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isNonterms()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setNonterms (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nonterms) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setNonterms(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nonterms) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setNonterms(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setNonterms(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting getExpect ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"getExpect()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getExpect()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"getExpect()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setExpect (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setExpect(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/anttask/CUPTask;,expect) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setExpect(Ljava/lang/String;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setExpect(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isCompact_red ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,compact_red) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isCompact_red()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,compact_red) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isCompact_red()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isCompact_red()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setCompact_red (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,compact_red) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setCompact_red(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,compact_red) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setCompact_red(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setCompact_red(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isNowarn ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nowarn) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isNowarn()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nowarn) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isNowarn()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isNowarn()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setNowarn (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nowarn) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setNowarn(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nowarn) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setNowarn(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setNowarn(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isNosummary ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nosummary) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isNosummary()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nosummary) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isNosummary()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isNosummary()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setNosummary (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nosummary) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setNosummary(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nosummary) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setNosummary(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setNosummary(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isProgress ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,progress) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isProgress()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,progress) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isProgress()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isProgress()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setProgress (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,progress) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setProgress(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,progress) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setProgress(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setProgress(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isDump_grammar ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_grammar) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isDump_grammar()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_grammar) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isDump_grammar()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isDump_grammar()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setDump_grammar (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_grammar) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setDump_grammar(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_grammar) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setDump_grammar(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setDump_grammar(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isDump_states ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_states) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isDump_states()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_states) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isDump_states()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isDump_states()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setDump_states (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_states) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setDump_states(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_states) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setDump_states(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setDump_states(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isDump_tables ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_tables) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isDump_tables()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_tables) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isDump_tables()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isDump_tables()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setDump_tables (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_tables) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setDump_tables(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump_tables) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setDump_tables(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setDump_tables(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isDump ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isDump()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isDump()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isDump()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setDump (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setDump(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,dump) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setDump(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setDump(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isTime ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,time) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isTime()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,time) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isTime()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isTime()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setTime (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,time) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setTime(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,time) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setTime(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setTime(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isDebug ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,debug) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isDebug()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,debug) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isDebug()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isDebug()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setDebug (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,debug) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setDebug(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,debug) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setDebug(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setDebug(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isNopositions ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nopositions) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isNopositions()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nopositions) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isNopositions()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isNopositions()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setNopositions (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nopositions) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setNopositions(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,nopositions) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setNopositions(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setNopositions(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isLocations ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,locations) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isLocations()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,locations) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isLocations()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isLocations()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setLocations (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,locations) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setLocations(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,locations) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setLocations(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setLocations(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isNoscanner ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,noscanner) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isNoscanner()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,noscanner) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isNoscanner()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isNoscanner()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setNoscanner (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,noscanner) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setNoscanner(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,noscanner) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setNoscanner(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setNoscanner(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isXmlactions ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,xmlactions) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isXmlactions()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,xmlactions) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isXmlactions()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isXmlactions()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setXmlactions (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,xmlactions) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setXmlactions(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,xmlactions) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setXmlactions(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setXmlactions(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting isGenericlabels ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,genericlabels) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"isGenericlabels()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,genericlabels) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"isGenericlabels()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +13: Constant(Ljava/lang/String;,"isGenericlabels()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting setGenericlabels (Z)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,genericlabels) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +1: Constant(Ljava/lang/String;,"setGenericlabels(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/anttask/CUPTask;,genericlabels) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setGenericlabels(Z)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/anttask/CUPTask") (0) +14: Constant(Ljava/lang/String;,"setGenericlabels(Z)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Class: java_cup/assoc +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/assoc") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/assoc") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/assoc") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Class: java_cup/emit +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/emit") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/emit") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting lr_values ()Z: +Initial ShrikeBT code: +0: Get(Z,STATIC,Ljava_cup/emit;,_lr_values) (0) +1: Return(I) (3) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"lr_values()Z") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Z,STATIC,Ljava_cup/emit;,_lr_values) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/emit") (3) + Handles null at 11 +6: Constant(Ljava/lang/String;,"lr_values()Z") (3) + Handles null at 11 +7: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (3) + Handles null at 11 +8: Constant(I,0) (3) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3) + Handles null at 11 +10: Return(I) (3) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/emit") (0) +12: Constant(Ljava/lang/String;,"lr_values()Z") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting locations ()Z: +Initial ShrikeBT code: +0: Get(Z,STATIC,Ljava_cup/emit;,_locations) (0) +1: Return(I) (3) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"locations()Z") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Z,STATIC,Ljava_cup/emit;,_locations) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/emit") (3) + Handles null at 11 +6: Constant(Ljava/lang/String;,"locations()Z") (3) + Handles null at 11 +7: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (3) + Handles null at 11 +8: Constant(I,0) (3) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3) + Handles null at 11 +10: Return(I) (3) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/emit") (0) +12: Constant(Ljava/lang/String;,"locations()Z") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting set_lr_values (Z)V: +Initial ShrikeBT code: +0: LocalLoad(I,0) (0) +1: Put(Z,STATIC,Ljava_cup/emit;,_lr_values) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"set_lr_values(Z)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,0) (0) + Handles null at 12 +5: Put(Z,STATIC,Ljava_cup/emit;,_lr_values) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/emit") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"set_lr_values(Z)V") (4) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/emit") (0) +13: Constant(Ljava/lang/String;,"set_lr_values(Z)V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting set_locations (Z)V: +Initial ShrikeBT code: +0: LocalLoad(I,0) (0) +1: Put(Z,STATIC,Ljava_cup/emit;,_locations) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"set_locations(Z)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,0) (0) + Handles null at 12 +5: Put(Z,STATIC,Ljava_cup/emit;,_locations) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/emit") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"set_locations(Z)V") (4) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/emit") (0) +13: Constant(Ljava/lang/String;,"set_locations(Z)V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting set_genericlabels (Z)V: +Initial ShrikeBT code: +0: LocalLoad(I,0) (0) +1: Put(Z,STATIC,Ljava_cup/emit;,_genericlabels) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"set_genericlabels(Z)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,0) (0) + Handles null at 12 +5: Put(Z,STATIC,Ljava_cup/emit;,_genericlabels) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/emit") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"set_genericlabels(Z)V") (4) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/emit") (0) +13: Constant(Ljava/lang/String;,"set_genericlabels(Z)V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting set_xmlactions (Z)V: +Initial ShrikeBT code: +0: LocalLoad(I,0) (0) +1: Put(Z,STATIC,Ljava_cup/emit;,_xmlactions) (1) +2: LocalLoad(I,0) (4) +3: Constant(I,0) (5) +4: ConditionalBranch(I,ne,6) (5) +5: Return(V) (8) +6: Constant(I,1) (9) +7: Put(Z,STATIC,Ljava_cup/emit;,_locations) (10) +8: Constant(I,1) (13) +9: Put(Z,STATIC,Ljava_cup/emit;,_lr_values) (14) +10: Return(V) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"set_xmlactions(Z)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,0) (0) + Handles null at 25 +5: Put(Z,STATIC,Ljava_cup/emit;,_xmlactions) (1) + Handles null at 25 +6: LocalLoad(I,0) (4) + Handles null at 25 +7: Constant(I,0) (5) + Handles null at 25 +8: ConditionalBranch(I,ne,15) (5) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/emit") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"set_xmlactions(Z)V") (8) + Handles null at 25 +11: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(V) (8) + Handles null at 25 +15: Constant(I,1) (9) + Handles null at 25 +16: Put(Z,STATIC,Ljava_cup/emit;,_locations) (10) + Handles null at 25 +17: Constant(I,1) (13) + Handles null at 25 +18: Put(Z,STATIC,Ljava_cup/emit;,_lr_values) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/emit") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"set_xmlactions(Z)V") (17) + Handles null at 25 +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(V) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/emit") (0) +26: Constant(Ljava/lang/String;,"set_xmlactions(Z)V") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting clear ()V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Put(Z,STATIC,Ljava_cup/emit;,_genericlabels) (1) +2: Constant(I,0) (4) +3: Put(Z,STATIC,Ljava_cup/emit;,_xmlactions) (5) +4: Constant(I,0) (8) +5: Put(Z,STATIC,Ljava_cup/emit;,_locations) (9) +6: Constant(I,1) (12) +7: Put(Z,STATIC,Ljava_cup/emit;,_lr_values) (13) +8: Constant(L;,null) (16) +9: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (17) +10: New(Ljava/util/Stack;,0) (20) +11: Dup(1,0) (23) +12: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (24) +13: Put(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (27) +14: Constant(L;,null) (30) +15: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (31) +16: Constant(I,0) (34) +17: Put(I,STATIC,Ljava_cup/emit;,not_reduced) (35) +18: Constant(I,0) (38) +19: Put(I,STATIC,Ljava_cup/emit;,num_conflicts) (39) +20: Constant(L;,null) (42) +21: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (43) +22: Constant(Ljava/lang/String;,"parser") (46) +23: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (48) +24: Constant(L;,null) (51) +25: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (52) +26: Constant(L;,null) (55) +27: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (56) +28: Constant(L;,null) (59) +29: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (60) +30: Constant(Ljava/lang/String;,"sym") (63) +31: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (65) +32: Constant(I,0) (68) +33: Put(I,STATIC,Ljava_cup/emit;,unused_non_term) (69) +34: Constant(I,0) (72) +35: Put(I,STATIC,Ljava_cup/emit;,unused_term) (73) +36: Return(V) (76) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"clear()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 46 +5: Put(Z,STATIC,Ljava_cup/emit;,_genericlabels) (1) + Handles null at 46 +6: Constant(I,0) (4) + Handles null at 46 +7: Put(Z,STATIC,Ljava_cup/emit;,_xmlactions) (5) + Handles null at 46 +8: Constant(I,0) (8) + Handles null at 46 +9: Put(Z,STATIC,Ljava_cup/emit;,_locations) (9) + Handles null at 46 +10: Constant(I,1) (12) + Handles null at 46 +11: Put(Z,STATIC,Ljava_cup/emit;,_lr_values) (13) + Handles null at 46 +12: Constant(L;,null) (16) + Handles null at 46 +13: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (17) + Handles null at 46 +14: New(Ljava/util/Stack;,0) (20) + Handles null at 46 +15: Dup(1,0) (23) + Handles null at 46 +16: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (24) + Handles null at 46 +17: Put(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (27) + Handles null at 46 +18: Constant(L;,null) (30) + Handles null at 46 +19: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (31) + Handles null at 46 +20: Constant(I,0) (34) + Handles null at 46 +21: Put(I,STATIC,Ljava_cup/emit;,not_reduced) (35) + Handles null at 46 +22: Constant(I,0) (38) + Handles null at 46 +23: Put(I,STATIC,Ljava_cup/emit;,num_conflicts) (39) + Handles null at 46 +24: Constant(L;,null) (42) + Handles null at 46 +25: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (43) + Handles null at 46 +26: Constant(Ljava/lang/String;,"parser") (46) + Handles null at 46 +27: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (48) + Handles null at 46 +28: Constant(L;,null) (51) + Handles null at 46 +29: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (52) + Handles null at 46 +30: Constant(L;,null) (55) + Handles null at 46 +31: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (56) + Handles null at 46 +32: Constant(L;,null) (59) + Handles null at 46 +33: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (60) + Handles null at 46 +34: Constant(Ljava/lang/String;,"sym") (63) + Handles null at 46 +35: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (65) + Handles null at 46 +36: Constant(I,0) (68) + Handles null at 46 +37: Put(I,STATIC,Ljava_cup/emit;,unused_non_term) (69) + Handles null at 46 +38: Constant(I,0) (72) + Handles null at 46 +39: Put(I,STATIC,Ljava_cup/emit;,unused_term) (73) + Handles null at 46 +40: Constant(Ljava/lang/String;,"java_cup/emit") (76) + Handles null at 46 +41: Constant(Ljava/lang/String;,"clear()V") (76) + Handles null at 46 +42: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (76) + Handles null at 46 +43: Constant(I,0) (76) + Handles null at 46 +44: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (76) + Handles null at 46 +45: Return(V) (76) + Handles null at 46 +46: Constant(Ljava/lang/String;,"java_cup/emit") (0) +47: Constant(Ljava/lang/String;,"clear()V") (0) +48: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +49: Constant(I,1) (0) +50: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +51: Throw() (0) +Instrumenting pre (Ljava/lang/String;)Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,prefix) (7) +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (10) +5: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (13) +6: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +7: Constant(Ljava/lang/String;,"$") (19) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +9: LocalLoad(Ljava/lang/Object;,0) (24) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (25) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) +12: Return(Ljava/lang/Object;) (31) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"pre(Ljava/lang/String;)Ljava/lang/String;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 22 +5: Dup(1,0) (3) + Handles null at 22 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 22 +7: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,prefix) (7) + Handles null at 22 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (10) + Handles null at 22 +9: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (13) + Handles null at 22 +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 22 +11: Constant(Ljava/lang/String;,"$") (19) + Handles null at 22 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 22 +13: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 22 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (25) + Handles null at 22 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/emit") (31) + Handles null at 22 +17: Constant(Ljava/lang/String;,"pre(Ljava/lang/String;)Ljava/lang/String;") (31) + Handles null at 22 +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (31) + Handles null at 22 +19: Constant(I,0) (31) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (31) + Handles null at 22 +21: Return(Ljava/lang/Object;) (31) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/emit") (0) +23: Constant(Ljava/lang/String;,"pre(Ljava/lang/String;)Ljava/lang/String;") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting typeArgument ()Ljava/lang/String;: +Initial ShrikeBT code: +0: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,class_type_argument) (0) +1: Constant(L;,null) (3) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (3) +3: Constant(Ljava/lang/String;,"") (6) +4: Goto(15) (8) +5: New(Ljava/lang/StringBuilder;,0) (11) +6: Dup(1,0) (14) +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (15) +8: Constant(Ljava/lang/String;,"<") (18) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (20) +10: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,class_type_argument) (23) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) +12: Constant(Ljava/lang/String;,">") (29) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (34) +15: Return(Ljava/lang/Object;) (37) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"typeArgument()Ljava/lang/String;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,class_type_argument) (0) + Handles null at 25 +5: Constant(L;,null) (3) + Handles null at 25 +6: ConditionalBranch(Ljava/lang/Object;,ne,9) (3) + Handles null at 25 +7: Constant(Ljava/lang/String;,"") (6) + Handles null at 25 +8: Goto(19) (8) + Handles null at 25 +9: New(Ljava/lang/StringBuilder;,0) (11) + Handles null at 25 +10: Dup(1,0) (14) + Handles null at 25 +11: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (15) + Handles null at 25 +12: Constant(Ljava/lang/String;,"<") (18) + Handles null at 25 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (20) + Handles null at 25 +14: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,class_type_argument) (23) + Handles null at 25 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) + Handles null at 25 +16: Constant(Ljava/lang/String;,">") (29) + Handles null at 25 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (34) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/emit") (37) + Handles null at 25 +20: Constant(Ljava/lang/String;,"typeArgument()Ljava/lang/String;") (37) + Handles null at 25 +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (37) + Handles null at 25 +22: Constant(I,0) (37) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (37) + Handles null at 25 +24: Return(Ljava/lang/Object;) (37) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/emit") (0) +26: Constant(Ljava/lang/String;,"typeArgument()Ljava/lang/String;") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting emit_package (Ljava/io/PrintWriter;)V: +Initial ShrikeBT code: +0: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (0) +1: Constant(L;,null) (3) +2: ConditionalBranch(Ljava/lang/Object;,eq,17) (3) +3: LocalLoad(Ljava/lang/Object;,0) (6) +4: New(Ljava/lang/StringBuilder;,0) (7) +5: Dup(1,0) (10) +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (11) +7: Constant(Ljava/lang/String;,"package ") (14) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +9: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (19) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (22) +11: Constant(Ljava/lang/String;,";") (25) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (27) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (30) +14: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (33) +15: LocalLoad(Ljava/lang/Object;,0) (36) +16: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (37) +17: Return(V) (40) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"emit_package(Ljava/io/PrintWriter;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (0) + Handles null at 27 +5: Constant(L;,null) (3) + Handles null at 27 +6: ConditionalBranch(Ljava/lang/Object;,eq,21) (3) + Handles null at 27 +7: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 27 +8: New(Ljava/lang/StringBuilder;,0) (7) + Handles null at 27 +9: Dup(1,0) (10) + Handles null at 27 +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (11) + Handles null at 27 +11: Constant(Ljava/lang/String;,"package ") (14) + Handles null at 27 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 27 +13: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (19) + Handles null at 27 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (22) + Handles null at 27 +15: Constant(Ljava/lang/String;,";") (25) + Handles null at 27 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (27) + Handles null at 27 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (30) + Handles null at 27 +18: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (33) + Handles null at 27 +19: LocalLoad(Ljava/lang/Object;,0) (36) + Handles null at 27 +20: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (37) + Handles null at 27 +21: Constant(Ljava/lang/String;,"java_cup/emit") (40) + Handles null at 27 +22: Constant(Ljava/lang/String;,"emit_package(Ljava/io/PrintWriter;)V") (40) + Handles null at 27 +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (40) + Handles null at 27 +24: Constant(I,0) (40) + Handles null at 27 +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (40) + Handles null at 27 +26: Return(V) (40) + Handles null at 27 +27: Constant(Ljava/lang/String;,"java_cup/emit") (0) +28: Constant(Ljava/lang/String;,"emit_package(Ljava/io/PrintWriter;)V") (0) +29: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +30: Constant(I,1) (0) +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +32: Throw() (0) +Instrumenting symbols (Ljava/io/PrintWriter;ZZ)V: +Initial ShrikeBT code: +0: LocalLoad(I,2) (0) +1: Constant(I,0) (1) +2: ConditionalBranch(I,eq,5) (1) +3: Constant(Ljava/lang/String;,"interface") (4) +4: Goto(6) (6) +5: Constant(Ljava/lang/String;,"class") (9) +6: LocalStore(Ljava/lang/Object;,5) (11) +7: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (13) +8: LocalStore(J,6) (16) +9: LocalLoad(Ljava/lang/Object;,0) (18) +10: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (19) +11: LocalLoad(Ljava/lang/Object;,0) (22) +12: Constant(Ljava/lang/String;,"//----------------------------------------------------") (23) +13: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (25) +14: LocalLoad(Ljava/lang/Object;,0) (28) +15: Constant(Ljava/lang/String;,"// The following code was generated by CUP v0.11b 20140808 (SVN rev 54)") (29) +16: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (31) +17: LocalLoad(Ljava/lang/Object;,0) (34) +18: Constant(Ljava/lang/String;,"//----------------------------------------------------") (35) +19: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (37) +20: LocalLoad(Ljava/lang/Object;,0) (40) +21: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (41) +22: LocalLoad(Ljava/lang/Object;,0) (44) +23: Invoke(STATIC,Ljava_cup/emit;,emit_package,(Ljava/io/PrintWriter;)V) (45) +24: LocalLoad(Ljava/lang/Object;,0) (48) +25: New(Ljava/lang/StringBuilder;,0) (49) +26: Dup(1,0) (52) +27: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (53) +28: Constant(Ljava/lang/String;,"/** CUP generated ") (56) +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) +30: LocalLoad(Ljava/lang/Object;,5) (61) +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (63) +32: Constant(Ljava/lang/String;," containing symbol constants. */") (66) +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (68) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (71) +35: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (74) +36: LocalLoad(Ljava/lang/Object;,0) (77) +37: New(Ljava/lang/StringBuilder;,0) (78) +38: Dup(1,0) (81) +39: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (82) +40: Constant(Ljava/lang/String;,"public ") (85) +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (87) +42: LocalLoad(Ljava/lang/Object;,5) (90) +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (92) +44: Constant(Ljava/lang/String;," ") (95) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) +46: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (100) +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (103) +48: Constant(Ljava/lang/String;," {") (106) +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (108) +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (111) +51: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (114) +52: LocalLoad(Ljava/lang/Object;,0) (117) +53: Constant(Ljava/lang/String;," /* terminals */") (118) +54: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (120) +55: Invoke(STATIC,Ljava_cup/terminal;,all,()Ljava/util/Enumeration;) (123) +56: LocalStore(Ljava/lang/Object;,8) (126) +57: LocalLoad(Ljava/lang/Object;,8) (128) +58: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (130) +59: Constant(I,0) (135) +60: ConditionalBranch(I,eq,84) (135) +61: LocalLoad(Ljava/lang/Object;,8) (138) +62: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (140) +63: CheckCast(Ljava_cup/terminal;) (145) +64: LocalStore(Ljava/lang/Object;,3) (148) +65: LocalLoad(Ljava/lang/Object;,0) (149) +66: New(Ljava/lang/StringBuilder;,0) (150) +67: Dup(1,0) (153) +68: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (154) +69: Constant(Ljava/lang/String;," public static final int ") (157) +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (159) +71: LocalLoad(Ljava/lang/Object;,3) (162) +72: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (163) +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (166) +74: Constant(Ljava/lang/String;," = ") (169) +75: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (171) +76: LocalLoad(Ljava/lang/Object;,3) (174) +77: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (175) +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (178) +79: Constant(Ljava/lang/String;,";") (181) +80: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (183) +81: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (186) +82: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (189) +83: Goto(57) (192) +84: LocalLoad(Ljava/lang/Object;,0) (195) +85: Constant(Ljava/lang/String;," public static final String[] terminalNames = new String[] {") (196) +86: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (198) +87: Constant(I,0) (201) +88: LocalStore(I,8) (202) +89: LocalLoad(I,8) (204) +90: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (206) +91: ConditionalBranch(I,ge,118) (209) +92: LocalLoad(Ljava/lang/Object;,0) (212) +93: Constant(Ljava/lang/String;," \"") (213) +94: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (215) +95: LocalLoad(Ljava/lang/Object;,0) (218) +96: LocalLoad(I,8) (219) +97: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (221) +98: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (224) +99: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (227) +100: LocalLoad(Ljava/lang/Object;,0) (230) +101: Constant(Ljava/lang/String;,"\"") (231) +102: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (233) +103: LocalLoad(I,8) (236) +104: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (238) +105: Constant(I,1) (241) +106: BinaryOp(I,sub) (242) +107: ConditionalBranch(I,ge,111) (243) +108: LocalLoad(Ljava/lang/Object;,0) (246) +109: Constant(Ljava/lang/String;,",") (247) +110: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (249) +111: LocalLoad(Ljava/lang/Object;,0) (252) +112: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (253) +113: LocalLoad(I,8) (256) +114: Constant(I,1) (256) +115: BinaryOp(I,add) (256) +116: LocalStore(I,8) (256) +117: Goto(89) (259) +118: LocalLoad(Ljava/lang/Object;,0) (262) +119: Constant(Ljava/lang/String;," };") (263) +120: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (265) +121: LocalLoad(I,1) (268) +122: Constant(I,0) (269) +123: ConditionalBranch(I,eq,158) (269) +124: LocalLoad(Ljava/lang/Object;,0) (272) +125: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (273) +126: LocalLoad(Ljava/lang/Object;,0) (276) +127: Constant(Ljava/lang/String;," /* non terminals */") (277) +128: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (279) +129: Invoke(STATIC,Ljava_cup/non_terminal;,all,()Ljava/util/Enumeration;) (282) +130: LocalStore(Ljava/lang/Object;,8) (285) +131: LocalLoad(Ljava/lang/Object;,8) (287) +132: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (289) +133: Constant(I,0) (294) +134: ConditionalBranch(I,eq,158) (294) +135: LocalLoad(Ljava/lang/Object;,8) (297) +136: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (299) +137: CheckCast(Ljava_cup/non_terminal;) (304) +138: LocalStore(Ljava/lang/Object;,4) (307) +139: LocalLoad(Ljava/lang/Object;,0) (309) +140: New(Ljava/lang/StringBuilder;,0) (310) +141: Dup(1,0) (313) +142: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (314) +143: Constant(Ljava/lang/String;," static final int ") (317) +144: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (319) +145: LocalLoad(Ljava/lang/Object;,4) (322) +146: Invoke(VIRTUAL,Ljava_cup/non_terminal;,name,()Ljava/lang/String;) (324) +147: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (327) +148: Constant(Ljava/lang/String;," = ") (330) +149: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (332) +150: LocalLoad(Ljava/lang/Object;,4) (335) +151: Invoke(VIRTUAL,Ljava_cup/non_terminal;,index,()I) (337) +152: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (340) +153: Constant(Ljava/lang/String;,";") (343) +154: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (345) +155: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (348) +156: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (351) +157: Goto(131) (354) +158: LocalLoad(Ljava/lang/Object;,0) (357) +159: Constant(Ljava/lang/String;,"}") (358) +160: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (360) +161: LocalLoad(Ljava/lang/Object;,0) (363) +162: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (364) +163: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (367) +164: LocalLoad(J,6) (370) +165: BinaryOp(J,sub) (372) +166: Put(J,STATIC,Ljava_cup/emit;,symbols_time) (373) +167: Return(V) (376) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"symbols(Ljava/io/PrintWriter;ZZ)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,2) (0) + Handles null at 177 +5: Constant(I,0) (1) + Handles null at 177 +6: ConditionalBranch(I,eq,9) (1) + Handles null at 177 +7: Constant(Ljava/lang/String;,"interface") (4) + Handles null at 177 +8: Goto(10) (6) + Handles null at 177 +9: Constant(Ljava/lang/String;,"class") (9) + Handles null at 177 +10: LocalStore(Ljava/lang/Object;,5) (11) + Handles null at 177 +11: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (13) + Handles null at 177 +12: LocalStore(J,6) (16) + Handles null at 177 +13: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 177 +14: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (19) + Handles null at 177 +15: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 177 +16: Constant(Ljava/lang/String;,"//----------------------------------------------------") (23) + Handles null at 177 +17: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (25) + Handles null at 177 +18: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 177 +19: Constant(Ljava/lang/String;,"// The following code was generated by CUP v0.11b 20140808 (SVN rev 54)") (29) + Handles null at 177 +20: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (31) + Handles null at 177 +21: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 177 +22: Constant(Ljava/lang/String;,"//----------------------------------------------------") (35) + Handles null at 177 +23: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (37) + Handles null at 177 +24: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 177 +25: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (41) + Handles null at 177 +26: LocalLoad(Ljava/lang/Object;,0) (44) + Handles null at 177 +27: Invoke(STATIC,Ljava_cup/emit;,emit_package,(Ljava/io/PrintWriter;)V) (45) + Handles null at 177 +28: LocalLoad(Ljava/lang/Object;,0) (48) + Handles null at 177 +29: New(Ljava/lang/StringBuilder;,0) (49) + Handles null at 177 +30: Dup(1,0) (52) + Handles null at 177 +31: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (53) + Handles null at 177 +32: Constant(Ljava/lang/String;,"/** CUP generated ") (56) + Handles null at 177 +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) + Handles null at 177 +34: LocalLoad(Ljava/lang/Object;,5) (61) + Handles null at 177 +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (63) + Handles null at 177 +36: Constant(Ljava/lang/String;," containing symbol constants. */") (66) + Handles null at 177 +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (68) + Handles null at 177 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (71) + Handles null at 177 +39: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (74) + Handles null at 177 +40: LocalLoad(Ljava/lang/Object;,0) (77) + Handles null at 177 +41: New(Ljava/lang/StringBuilder;,0) (78) + Handles null at 177 +42: Dup(1,0) (81) + Handles null at 177 +43: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (82) + Handles null at 177 +44: Constant(Ljava/lang/String;,"public ") (85) + Handles null at 177 +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (87) + Handles null at 177 +46: LocalLoad(Ljava/lang/Object;,5) (90) + Handles null at 177 +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (92) + Handles null at 177 +48: Constant(Ljava/lang/String;," ") (95) + Handles null at 177 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) + Handles null at 177 +50: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (100) + Handles null at 177 +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (103) + Handles null at 177 +52: Constant(Ljava/lang/String;," {") (106) + Handles null at 177 +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (108) + Handles null at 177 +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (111) + Handles null at 177 +55: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (114) + Handles null at 177 +56: LocalLoad(Ljava/lang/Object;,0) (117) + Handles null at 177 +57: Constant(Ljava/lang/String;," /* terminals */") (118) + Handles null at 177 +58: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (120) + Handles null at 177 +59: Invoke(STATIC,Ljava_cup/terminal;,all,()Ljava/util/Enumeration;) (123) + Handles null at 177 +60: LocalStore(Ljava/lang/Object;,8) (126) + Handles null at 177 +61: LocalLoad(Ljava/lang/Object;,8) (128) + Handles null at 177 +62: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (130) + Handles null at 177 +63: Constant(I,0) (135) + Handles null at 177 +64: ConditionalBranch(I,eq,88) (135) + Handles null at 177 +65: LocalLoad(Ljava/lang/Object;,8) (138) + Handles null at 177 +66: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (140) + Handles null at 177 +67: CheckCast(Ljava_cup/terminal;) (145) + Handles null at 177 +68: LocalStore(Ljava/lang/Object;,3) (148) + Handles null at 177 +69: LocalLoad(Ljava/lang/Object;,0) (149) + Handles null at 177 +70: New(Ljava/lang/StringBuilder;,0) (150) + Handles null at 177 +71: Dup(1,0) (153) + Handles null at 177 +72: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (154) + Handles null at 177 +73: Constant(Ljava/lang/String;," public static final int ") (157) + Handles null at 177 +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (159) + Handles null at 177 +75: LocalLoad(Ljava/lang/Object;,3) (162) + Handles null at 177 +76: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (163) + Handles null at 177 +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (166) + Handles null at 177 +78: Constant(Ljava/lang/String;," = ") (169) + Handles null at 177 +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (171) + Handles null at 177 +80: LocalLoad(Ljava/lang/Object;,3) (174) + Handles null at 177 +81: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (175) + Handles null at 177 +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (178) + Handles null at 177 +83: Constant(Ljava/lang/String;,";") (181) + Handles null at 177 +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (183) + Handles null at 177 +85: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (186) + Handles null at 177 +86: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (189) + Handles null at 177 +87: Goto(61) (192) + Handles null at 177 +88: LocalLoad(Ljava/lang/Object;,0) (195) + Handles null at 177 +89: Constant(Ljava/lang/String;," public static final String[] terminalNames = new String[] {") (196) + Handles null at 177 +90: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (198) + Handles null at 177 +91: Constant(I,0) (201) + Handles null at 177 +92: LocalStore(I,8) (202) + Handles null at 177 +93: LocalLoad(I,8) (204) + Handles null at 177 +94: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (206) + Handles null at 177 +95: ConditionalBranch(I,ge,122) (209) + Handles null at 177 +96: LocalLoad(Ljava/lang/Object;,0) (212) + Handles null at 177 +97: Constant(Ljava/lang/String;," \"") (213) + Handles null at 177 +98: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (215) + Handles null at 177 +99: LocalLoad(Ljava/lang/Object;,0) (218) + Handles null at 177 +100: LocalLoad(I,8) (219) + Handles null at 177 +101: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (221) + Handles null at 177 +102: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (224) + Handles null at 177 +103: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (227) + Handles null at 177 +104: LocalLoad(Ljava/lang/Object;,0) (230) + Handles null at 177 +105: Constant(Ljava/lang/String;,"\"") (231) + Handles null at 177 +106: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (233) + Handles null at 177 +107: LocalLoad(I,8) (236) + Handles null at 177 +108: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (238) + Handles null at 177 +109: Constant(I,1) (241) + Handles null at 177 +110: BinaryOp(I,sub) (242) + Handles null at 177 +111: ConditionalBranch(I,ge,115) (243) + Handles null at 177 +112: LocalLoad(Ljava/lang/Object;,0) (246) + Handles null at 177 +113: Constant(Ljava/lang/String;,",") (247) + Handles null at 177 +114: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (249) + Handles null at 177 +115: LocalLoad(Ljava/lang/Object;,0) (252) + Handles null at 177 +116: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (253) + Handles null at 177 +117: LocalLoad(I,8) (256) + Handles null at 177 +118: Constant(I,1) (256) + Handles null at 177 +119: BinaryOp(I,add) (256) + Handles null at 177 +120: LocalStore(I,8) (256) + Handles null at 177 +121: Goto(93) (259) + Handles null at 177 +122: LocalLoad(Ljava/lang/Object;,0) (262) + Handles null at 177 +123: Constant(Ljava/lang/String;," };") (263) + Handles null at 177 +124: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (265) + Handles null at 177 +125: LocalLoad(I,1) (268) + Handles null at 177 +126: Constant(I,0) (269) + Handles null at 177 +127: ConditionalBranch(I,eq,162) (269) + Handles null at 177 +128: LocalLoad(Ljava/lang/Object;,0) (272) + Handles null at 177 +129: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (273) + Handles null at 177 +130: LocalLoad(Ljava/lang/Object;,0) (276) + Handles null at 177 +131: Constant(Ljava/lang/String;," /* non terminals */") (277) + Handles null at 177 +132: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (279) + Handles null at 177 +133: Invoke(STATIC,Ljava_cup/non_terminal;,all,()Ljava/util/Enumeration;) (282) + Handles null at 177 +134: LocalStore(Ljava/lang/Object;,8) (285) + Handles null at 177 +135: LocalLoad(Ljava/lang/Object;,8) (287) + Handles null at 177 +136: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (289) + Handles null at 177 +137: Constant(I,0) (294) + Handles null at 177 +138: ConditionalBranch(I,eq,162) (294) + Handles null at 177 +139: LocalLoad(Ljava/lang/Object;,8) (297) + Handles null at 177 +140: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (299) + Handles null at 177 +141: CheckCast(Ljava_cup/non_terminal;) (304) + Handles null at 177 +142: LocalStore(Ljava/lang/Object;,4) (307) + Handles null at 177 +143: LocalLoad(Ljava/lang/Object;,0) (309) + Handles null at 177 +144: New(Ljava/lang/StringBuilder;,0) (310) + Handles null at 177 +145: Dup(1,0) (313) + Handles null at 177 +146: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (314) + Handles null at 177 +147: Constant(Ljava/lang/String;," static final int ") (317) + Handles null at 177 +148: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (319) + Handles null at 177 +149: LocalLoad(Ljava/lang/Object;,4) (322) + Handles null at 177 +150: Invoke(VIRTUAL,Ljava_cup/non_terminal;,name,()Ljava/lang/String;) (324) + Handles null at 177 +151: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (327) + Handles null at 177 +152: Constant(Ljava/lang/String;," = ") (330) + Handles null at 177 +153: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (332) + Handles null at 177 +154: LocalLoad(Ljava/lang/Object;,4) (335) + Handles null at 177 +155: Invoke(VIRTUAL,Ljava_cup/non_terminal;,index,()I) (337) + Handles null at 177 +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (340) + Handles null at 177 +157: Constant(Ljava/lang/String;,";") (343) + Handles null at 177 +158: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (345) + Handles null at 177 +159: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (348) + Handles null at 177 +160: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (351) + Handles null at 177 +161: Goto(135) (354) + Handles null at 177 +162: LocalLoad(Ljava/lang/Object;,0) (357) + Handles null at 177 +163: Constant(Ljava/lang/String;,"}") (358) + Handles null at 177 +164: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (360) + Handles null at 177 +165: LocalLoad(Ljava/lang/Object;,0) (363) + Handles null at 177 +166: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (364) + Handles null at 177 +167: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (367) + Handles null at 177 +168: LocalLoad(J,6) (370) + Handles null at 177 +169: BinaryOp(J,sub) (372) + Handles null at 177 +170: Put(J,STATIC,Ljava_cup/emit;,symbols_time) (373) + Handles null at 177 +171: Constant(Ljava/lang/String;,"java_cup/emit") (376) + Handles null at 177 +172: Constant(Ljava/lang/String;,"symbols(Ljava/io/PrintWriter;ZZ)V") (376) + Handles null at 177 +173: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (376) + Handles null at 177 +174: Constant(I,0) (376) + Handles null at 177 +175: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (376) + Handles null at 177 +176: Return(V) (376) + Handles null at 177 +177: Constant(Ljava/lang/String;,"java_cup/emit") (0) +178: Constant(Ljava/lang/String;,"symbols(Ljava/io/PrintWriter;ZZ)V") (0) +179: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +180: Constant(I,1) (0) +181: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +182: Throw() (0) +Instrumenting emit_action_code (Ljava/io/PrintWriter;Ljava_cup/production;)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) +1: LocalStore(J,3) (3) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (5) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: Constant(Ljava/lang/String;,"/** Cup generated class to encapsulate user supplied action code.*/") (9) +6: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (11) +7: LocalLoad(Ljava/lang/Object;,0) (14) +8: Constant(Ljava/lang/String;,"@SuppressWarnings({\"rawtypes\", \"unchecked\", \"unused\"})") (15) +9: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (17) +10: LocalLoad(Ljava/lang/Object;,0) (20) +11: New(Ljava/lang/StringBuilder;,0) (21) +12: Dup(1,0) (24) +13: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (25) +14: Constant(Ljava/lang/String;,"class ") (28) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (30) +16: Constant(Ljava/lang/String;,"actions") (33) +17: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (35) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) +19: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (41) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (44) +21: Constant(Ljava/lang/String;," {") (47) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (49) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (52) +24: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (55) +25: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (58) +26: Constant(L;,null) (61) +27: ConditionalBranch(Ljava/lang/Object;,eq,33) (61) +28: LocalLoad(Ljava/lang/Object;,0) (64) +29: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (65) +30: LocalLoad(Ljava/lang/Object;,0) (68) +31: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (69) +32: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (72) +33: LocalLoad(Ljava/lang/Object;,0) (75) +34: New(Ljava/lang/StringBuilder;,0) (76) +35: Dup(1,0) (79) +36: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (80) +37: Constant(Ljava/lang/String;," private final ") (83) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (85) +39: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (88) +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) +41: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (94) +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) +43: Constant(Ljava/lang/String;," parser;") (100) +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (102) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (105) +46: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (108) +47: LocalLoad(Ljava/lang/Object;,0) (111) +48: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (112) +49: LocalLoad(Ljava/lang/Object;,0) (115) +50: Constant(Ljava/lang/String;," /** Constructor */") (116) +51: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (118) +52: LocalLoad(Ljava/lang/Object;,0) (121) +53: New(Ljava/lang/StringBuilder;,0) (122) +54: Dup(1,0) (125) +55: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (126) +56: Constant(Ljava/lang/String;," ") (129) +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (131) +58: Constant(Ljava/lang/String;,"actions") (134) +59: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (136) +60: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) +61: Constant(Ljava/lang/String;,"(") (142) +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (144) +63: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (147) +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (150) +65: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (153) +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) +67: Constant(Ljava/lang/String;," parser) {") (159) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (161) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (164) +70: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (167) +71: LocalLoad(Ljava/lang/Object;,0) (170) +72: Constant(Ljava/lang/String;," this.parser = parser;") (171) +73: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (173) +74: LocalLoad(Ljava/lang/Object;,0) (176) +75: Constant(Ljava/lang/String;," }") (177) +76: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (179) +77: LocalLoad(Ljava/lang/Object;,0) (182) +78: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (183) +79: Constant(I,0) (186) +80: LocalStore(I,5) (187) +81: LocalLoad(I,5) (189) +82: Invoke(STATIC,Ljava_cup/production;,number,()I) (191) +83: Constant(I,300) (194) +84: BinaryOp(I,div) (197) +85: ConditionalBranch(I,gt,668) (198) +86: LocalLoad(Ljava/lang/Object;,0) (201) +87: New(Ljava/lang/StringBuilder;,0) (202) +88: Dup(1,0) (205) +89: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (206) +90: Constant(Ljava/lang/String;," /** Method ") (209) +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (211) +92: LocalLoad(I,5) (214) +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (216) +94: Constant(Ljava/lang/String;," with the actual generated action code for actions ") (219) +95: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (221) +96: LocalLoad(I,5) (224) +97: Constant(I,300) (226) +98: BinaryOp(I,mul) (229) +99: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (230) +100: Constant(Ljava/lang/String;," to ") (233) +101: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (235) +102: LocalLoad(I,5) (238) +103: Constant(I,1) (240) +104: BinaryOp(I,add) (241) +105: Constant(I,300) (242) +106: BinaryOp(I,mul) (245) +107: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (246) +108: Constant(Ljava/lang/String;,". */") (249) +109: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (254) +111: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (257) +112: LocalLoad(Ljava/lang/Object;,0) (260) +113: New(Ljava/lang/StringBuilder;,0) (261) +114: Dup(1,0) (264) +115: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (265) +116: Constant(Ljava/lang/String;," public final java_cup.runtime.Symbol ") (268) +117: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (270) +118: Constant(Ljava/lang/String;,"do_action_part") (273) +119: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (275) +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (278) +121: Constant(Ljava/lang/String;,"%08d") (281) +122: Constant(I,1) (283) +123: New([Ljava/lang/Object;,1) (284) +124: Dup(1,0) (287) +125: Constant(I,0) (288) +126: New(Ljava/lang/Integer;,0) (289) +127: Dup(1,0) (292) +128: LocalLoad(I,5) (293) +129: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (295) +130: ArrayStore(Ljava/lang/Object;) (298) +131: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (299) +132: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (302) +133: Constant(Ljava/lang/String;,"(") (305) +134: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (307) +135: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (310) +136: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (313) +137: LocalLoad(Ljava/lang/Object;,0) (316) +138: New(Ljava/lang/StringBuilder;,0) (317) +139: Dup(1,0) (320) +140: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (321) +141: Constant(Ljava/lang/String;," int ") (324) +142: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (326) +143: Constant(Ljava/lang/String;,"act_num,") (329) +144: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (331) +145: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (334) +146: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (337) +147: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (340) +148: LocalLoad(Ljava/lang/Object;,0) (343) +149: New(Ljava/lang/StringBuilder;,0) (344) +150: Dup(1,0) (347) +151: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (348) +152: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser ") (351) +153: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (353) +154: Constant(Ljava/lang/String;,"parser,") (356) +155: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (358) +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (361) +157: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (364) +158: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (367) +159: LocalLoad(Ljava/lang/Object;,0) (370) +160: New(Ljava/lang/StringBuilder;,0) (371) +161: Dup(1,0) (374) +162: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (375) +163: Constant(Ljava/lang/String;," java.util.Stack ") (378) +164: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (380) +165: Constant(Ljava/lang/String;,"stack,") (383) +166: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (385) +167: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (388) +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (391) +169: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (394) +170: LocalLoad(Ljava/lang/Object;,0) (397) +171: New(Ljava/lang/StringBuilder;,0) (398) +172: Dup(1,0) (401) +173: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (402) +174: Constant(Ljava/lang/String;," int ") (405) +175: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (407) +176: Constant(Ljava/lang/String;,"top)") (410) +177: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (412) +178: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (415) +179: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (418) +180: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (421) +181: LocalLoad(Ljava/lang/Object;,0) (424) +182: Constant(Ljava/lang/String;," throws java.lang.Exception") (425) +183: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (427) +184: LocalLoad(Ljava/lang/Object;,0) (430) +185: Constant(Ljava/lang/String;," {") (431) +186: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (433) +187: LocalLoad(Ljava/lang/Object;,0) (436) +188: Constant(Ljava/lang/String;," /* Symbol object for return from actions */") (437) +189: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (439) +190: LocalLoad(Ljava/lang/Object;,0) (442) +191: New(Ljava/lang/StringBuilder;,0) (443) +192: Dup(1,0) (446) +193: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (447) +194: Constant(Ljava/lang/String;," java_cup.runtime.Symbol ") (450) +195: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (452) +196: Constant(Ljava/lang/String;,"result") (455) +197: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (457) +198: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (460) +199: Constant(Ljava/lang/String;,";") (463) +200: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (465) +201: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (468) +202: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (471) +203: LocalLoad(Ljava/lang/Object;,0) (474) +204: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (475) +205: LocalLoad(Ljava/lang/Object;,0) (478) +206: Constant(Ljava/lang/String;," /* select the action based on the action number */") (479) +207: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (481) +208: LocalLoad(Ljava/lang/Object;,0) (484) +209: New(Ljava/lang/StringBuilder;,0) (485) +210: Dup(1,0) (488) +211: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (489) +212: Constant(Ljava/lang/String;," switch (") (492) +213: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (494) +214: Constant(Ljava/lang/String;,"act_num") (497) +215: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (499) +216: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (502) +217: Constant(Ljava/lang/String;,")") (505) +218: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (507) +219: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (510) +220: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (513) +221: LocalLoad(Ljava/lang/Object;,0) (516) +222: Constant(Ljava/lang/String;," {") (517) +223: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (519) +224: LocalLoad(I,5) (522) +225: Constant(I,300) (524) +226: BinaryOp(I,mul) (527) +227: LocalStore(I,6) (528) +228: LocalLoad(I,6) (530) +229: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (532) +230: LocalStore(Ljava/lang/Object;,2) (535) +231: LocalLoad(I,6) (536) +232: LocalLoad(I,5) (538) +233: Constant(I,1) (540) +234: BinaryOp(I,add) (541) +235: Constant(I,300) (542) +236: BinaryOp(I,mul) (545) +237: Invoke(STATIC,Ljava_cup/production;,number,()I) (546) +238: Invoke(STATIC,Ljava/lang/Math;,min,(II)I) (549) +239: ConditionalBranch(I,ge,631) (552) +240: LocalLoad(Ljava/lang/Object;,0) (555) +241: Constant(Ljava/lang/String;," /*. . . . . . . . . . . . . . . . . . . .*/") (556) +242: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (558) +243: LocalLoad(Ljava/lang/Object;,0) (561) +244: New(Ljava/lang/StringBuilder;,0) (562) +245: Dup(1,0) (565) +246: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (566) +247: Constant(Ljava/lang/String;," case ") (569) +248: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (571) +249: LocalLoad(Ljava/lang/Object;,2) (574) +250: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (575) +251: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (578) +252: Constant(Ljava/lang/String;,": // ") (581) +253: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (583) +254: LocalLoad(Ljava/lang/Object;,2) (586) +255: Invoke(VIRTUAL,Ljava_cup/production;,to_simple_string,()Ljava/lang/String;) (587) +256: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (590) +257: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (593) +258: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (596) +259: LocalLoad(Ljava/lang/Object;,0) (599) +260: Constant(Ljava/lang/String;," {") (600) +261: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (602) +262: Constant(Ljava/lang/String;,"null") (605) +263: LocalStore(Ljava/lang/Object;,7) (607) +264: LocalLoad(Ljava/lang/Object;,2) (609) +265: Instanceof(Ljava_cup/action_production;) (610) +266: Constant(I,0) (613) +267: ConditionalBranch(I,eq,319) (613) +268: LocalLoad(Ljava/lang/Object;,2) (616) +269: CheckCast(Ljava_cup/action_production;) (617) +270: Invoke(VIRTUAL,Ljava_cup/action_production;,getIndexOfIntermediateResult,()I) (620) +271: LocalStore(I,8) (623) +272: LocalLoad(I,8) (625) +273: Constant(I,-1) (627) +274: ConditionalBranch(I,eq,319) (628) +275: New(Ljava/lang/StringBuilder;,0) (631) +276: Dup(1,0) (634) +277: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (635) +278: Constant(Ljava/lang/String;,"(") (638) +279: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (640) +280: LocalLoad(Ljava/lang/Object;,2) (643) +281: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (644) +282: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (647) +283: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (650) +284: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (653) +285: Constant(Ljava/lang/String;,") ") (656) +286: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (658) +287: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol) ") (661) +288: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (663) +289: Constant(Ljava/lang/String;,"stack") (666) +290: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (668) +291: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (671) +292: LocalLoad(I,8) (674) +293: Constant(I,1) (676) +294: ConditionalBranch(I,ne,297) (677) +295: Constant(Ljava/lang/String;,".peek()") (680) +296: Goto(314) (682) +297: New(Ljava/lang/StringBuilder;,0) (685) +298: Dup(1,0) (688) +299: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (689) +300: Constant(Ljava/lang/String;,".elementAt(") (692) +301: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (694) +302: Constant(Ljava/lang/String;,"top") (697) +303: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (699) +304: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (702) +305: Constant(Ljava/lang/String;,"-") (705) +306: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (707) +307: LocalLoad(I,8) (710) +308: Constant(I,1) (712) +309: BinaryOp(I,sub) (713) +310: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (714) +311: Constant(Ljava/lang/String;,")") (717) +312: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (719) +313: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (722) +314: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (725) +315: Constant(Ljava/lang/String;,").value") (728) +316: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (730) +317: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (733) +318: LocalStore(Ljava/lang/Object;,7) (736) +319: LocalLoad(Ljava/lang/Object;,0) (738) +320: New(Ljava/lang/StringBuilder;,0) (739) +321: Dup(1,0) (742) +322: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (743) +323: Constant(Ljava/lang/String;," ") (746) +324: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (748) +325: LocalLoad(Ljava/lang/Object;,2) (751) +326: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (752) +327: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (755) +328: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (758) +329: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (761) +330: Constant(Ljava/lang/String;," RESULT =") (764) +331: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (766) +332: LocalLoad(Ljava/lang/Object;,7) (769) +333: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (771) +334: Constant(Ljava/lang/String;,";") (774) +335: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (776) +336: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (779) +337: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (782) +338: LocalLoad(Ljava/lang/Object;,2) (785) +339: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (786) +340: Constant(I,1) (789) +341: BinaryOp(I,sub) (790) +342: LocalStore(I,8) (791) +343: LocalLoad(I,8) (793) +344: Constant(I,0) (795) +345: ConditionalBranch(I,lt,437) (795) +346: LocalLoad(Ljava/lang/Object;,2) (798) +347: LocalLoad(I,8) (799) +348: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (801) +349: Instanceof(Ljava_cup/symbol_part;) (804) +350: Constant(I,0) (807) +351: ConditionalBranch(I,ne,353) (807) +352: Goto(432) (810) +353: LocalLoad(Ljava/lang/Object;,2) (813) +354: LocalLoad(I,8) (814) +355: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (816) +356: CheckCast(Ljava_cup/symbol_part;) (819) +357: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (822) +358: LocalStore(Ljava/lang/Object;,9) (825) +359: LocalLoad(Ljava/lang/Object;,9) (827) +360: Instanceof(Ljava_cup/non_terminal;) (829) +361: Constant(I,0) (832) +362: ConditionalBranch(I,ne,364) (832) +363: Goto(432) (835) +364: LocalLoad(Ljava/lang/Object;,9) (838) +365: CheckCast(Ljava_cup/non_terminal;) (840) +366: Get(Z,NONSTATIC,Ljava_cup/non_terminal;,is_embedded_action) (843) +367: Constant(I,0) (846) +368: ConditionalBranch(I,ne,370) (846) +369: Goto(432) (849) +370: LocalLoad(Ljava/lang/Object;,2) (852) +371: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (853) +372: LocalLoad(I,8) (856) +373: BinaryOp(I,sub) (858) +374: Constant(I,1) (859) +375: BinaryOp(I,sub) (860) +376: LocalStore(I,10) (861) +377: LocalLoad(Ljava/lang/Object;,0) (863) +378: New(Ljava/lang/StringBuilder;,0) (864) +379: Dup(1,0) (867) +380: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (868) +381: Constant(Ljava/lang/String;," // propagate RESULT from ") (871) +382: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (873) +383: LocalLoad(Ljava/lang/Object;,9) (876) +384: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (878) +385: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (881) +386: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (884) +387: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (887) +388: LocalLoad(Ljava/lang/Object;,0) (890) +389: New(Ljava/lang/StringBuilder;,0) (891) +390: Dup(1,0) (894) +391: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (895) +392: Constant(Ljava/lang/String;," RESULT = (") (898) +393: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (900) +394: LocalLoad(Ljava/lang/Object;,2) (903) +395: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (904) +396: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (907) +397: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (910) +398: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (913) +399: Constant(Ljava/lang/String;,") ") (916) +400: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (918) +401: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol) ") (921) +402: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (923) +403: Constant(Ljava/lang/String;,"stack") (926) +404: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (928) +405: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (931) +406: LocalLoad(I,10) (934) +407: Constant(I,0) (936) +408: ConditionalBranch(I,ne,411) (936) +409: Constant(Ljava/lang/String;,".peek()") (939) +410: Goto(426) (941) +411: New(Ljava/lang/StringBuilder;,0) (944) +412: Dup(1,0) (947) +413: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (948) +414: Constant(Ljava/lang/String;,".elementAt(") (951) +415: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (953) +416: Constant(Ljava/lang/String;,"top") (956) +417: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (958) +418: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (961) +419: Constant(Ljava/lang/String;,"-") (964) +420: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (966) +421: LocalLoad(I,10) (969) +422: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (971) +423: Constant(Ljava/lang/String;,")") (974) +424: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (976) +425: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (979) +426: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (982) +427: Constant(Ljava/lang/String;,").value;") (985) +428: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (987) +429: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (990) +430: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (993) +431: Goto(437) (996) +432: LocalLoad(I,8) (999) +433: Constant(I,-1) (999) +434: BinaryOp(I,add) (999) +435: LocalStore(I,8) (999) +436: Goto(343) (1002) +437: LocalLoad(Ljava/lang/Object;,2) (1005) +438: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (1006) +439: Constant(L;,null) (1009) +440: ConditionalBranch(Ljava/lang/Object;,eq,457) (1009) +441: LocalLoad(Ljava/lang/Object;,2) (1012) +442: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (1013) +443: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (1016) +444: Constant(L;,null) (1019) +445: ConditionalBranch(Ljava/lang/Object;,eq,457) (1019) +446: LocalLoad(Ljava/lang/Object;,2) (1022) +447: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (1023) +448: Constant(Ljava/lang/String;,"") (1026) +449: Invoke(VIRTUAL,Ljava_cup/action_part;,equals,(Ljava/lang/Object;)Z) (1028) +450: Constant(I,0) (1031) +451: ConditionalBranch(I,ne,457) (1031) +452: LocalLoad(Ljava/lang/Object;,0) (1034) +453: LocalLoad(Ljava/lang/Object;,2) (1035) +454: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (1036) +455: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (1039) +456: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1042) +457: Invoke(STATIC,Ljava_cup/emit;,lr_values,()Z) (1045) +458: Constant(I,0) (1048) +459: ConditionalBranch(I,eq,557) (1048) +460: New(Ljava/lang/StringBuilder;,0) (1051) +461: Dup(1,0) (1054) +462: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1055) +463: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol)") (1058) +464: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1060) +465: Constant(Ljava/lang/String;,"stack") (1063) +466: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1065) +467: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1068) +468: Constant(Ljava/lang/String;,".peek()") (1071) +469: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1073) +470: Constant(Ljava/lang/String;,")") (1076) +471: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1078) +472: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1081) +473: LocalStore(Ljava/lang/Object;,10) (1084) +474: LocalLoad(Ljava/lang/Object;,2) (1086) +475: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (1087) +476: Constant(I,0) (1090) +477: ConditionalBranch(I,ne,481) (1090) +478: LocalLoad(Ljava/lang/Object;,10) (1093) +479: LocalStore(Ljava/lang/Object;,9) (1095) +480: Goto(519) (1097) +481: LocalLoad(Ljava/lang/Object;,2) (1100) +482: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (1101) +483: Constant(I,1) (1104) +484: BinaryOp(I,sub) (1105) +485: LocalStore(I,8) (1106) +486: New(Ljava/lang/StringBuilder;,0) (1108) +487: Dup(1,0) (1111) +488: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1112) +489: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol)") (1115) +490: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1117) +491: Constant(Ljava/lang/String;,"stack") (1120) +492: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1122) +493: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1125) +494: LocalLoad(I,8) (1128) +495: Constant(I,0) (1130) +496: ConditionalBranch(I,ne,499) (1130) +497: Constant(Ljava/lang/String;,".peek()") (1133) +498: Goto(514) (1135) +499: New(Ljava/lang/StringBuilder;,0) (1138) +500: Dup(1,0) (1141) +501: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1142) +502: Constant(Ljava/lang/String;,".elementAt(") (1145) +503: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1147) +504: Constant(Ljava/lang/String;,"top") (1150) +505: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1152) +506: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1155) +507: Constant(Ljava/lang/String;,"-") (1158) +508: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1160) +509: LocalLoad(I,8) (1163) +510: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1165) +511: Constant(Ljava/lang/String;,")") (1168) +512: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1170) +513: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1173) +514: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1176) +515: Constant(Ljava/lang/String;,")") (1179) +516: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1181) +517: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1184) +518: LocalStore(Ljava/lang/Object;,9) (1187) +519: LocalLoad(Ljava/lang/Object;,0) (1189) +520: New(Ljava/lang/StringBuilder;,0) (1190) +521: Dup(1,0) (1193) +522: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1194) +523: Constant(Ljava/lang/String;," ") (1197) +524: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1199) +525: Constant(Ljava/lang/String;,"result") (1202) +526: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1204) +527: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1207) +528: Constant(Ljava/lang/String;," = parser.getSymbolFactory().newSymbol(") (1210) +529: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1212) +530: Constant(Ljava/lang/String;,"\"") (1215) +531: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1217) +532: LocalLoad(Ljava/lang/Object;,2) (1220) +533: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1221) +534: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1224) +535: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1227) +536: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1230) +537: Constant(Ljava/lang/String;,"\",") (1233) +538: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1235) +539: LocalLoad(Ljava/lang/Object;,2) (1238) +540: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1239) +541: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1242) +542: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (1245) +543: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1248) +544: Constant(Ljava/lang/String;,", ") (1251) +545: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1253) +546: LocalLoad(Ljava/lang/Object;,9) (1256) +547: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1258) +548: Constant(Ljava/lang/String;,", ") (1261) +549: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1263) +550: LocalLoad(Ljava/lang/Object;,10) (1266) +551: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1268) +552: Constant(Ljava/lang/String;,", RESULT);") (1271) +553: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1273) +554: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1276) +555: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1279) +556: Goto(586) (1282) +557: LocalLoad(Ljava/lang/Object;,0) (1285) +558: New(Ljava/lang/StringBuilder;,0) (1286) +559: Dup(1,0) (1289) +560: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1290) +561: Constant(Ljava/lang/String;," ") (1293) +562: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1295) +563: Constant(Ljava/lang/String;,"result") (1298) +564: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1300) +565: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1303) +566: Constant(Ljava/lang/String;," = parser.getSymbolFactory().newSymbol(") (1306) +567: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1308) +568: Constant(Ljava/lang/String;,"\"") (1311) +569: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1313) +570: LocalLoad(Ljava/lang/Object;,2) (1316) +571: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1317) +572: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1320) +573: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1323) +574: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1326) +575: Constant(Ljava/lang/String;,"\",") (1329) +576: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1331) +577: LocalLoad(Ljava/lang/Object;,2) (1334) +578: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1335) +579: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1338) +580: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (1341) +581: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1344) +582: Constant(Ljava/lang/String;,", RESULT);") (1347) +583: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1349) +584: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1352) +585: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1355) +586: LocalLoad(Ljava/lang/Object;,0) (1358) +587: Constant(Ljava/lang/String;," }") (1359) +588: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1361) +589: LocalLoad(Ljava/lang/Object;,2) (1364) +590: LocalLoad(Ljava/lang/Object;,1) (1365) +591: ConditionalBranch(Ljava/lang/Object;,ne,608) (1366) +592: LocalLoad(Ljava/lang/Object;,0) (1369) +593: Constant(Ljava/lang/String;," /* ACCEPT */") (1370) +594: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1372) +595: LocalLoad(Ljava/lang/Object;,0) (1375) +596: New(Ljava/lang/StringBuilder;,0) (1376) +597: Dup(1,0) (1379) +598: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1380) +599: Constant(Ljava/lang/String;," ") (1383) +600: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1385) +601: Constant(Ljava/lang/String;,"parser") (1388) +602: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1390) +603: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1393) +604: Constant(Ljava/lang/String;,".done_parsing();") (1396) +605: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1398) +606: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1401) +607: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1404) +608: LocalLoad(Ljava/lang/Object;,0) (1407) +609: New(Ljava/lang/StringBuilder;,0) (1408) +610: Dup(1,0) (1411) +611: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1412) +612: Constant(Ljava/lang/String;," return ") (1415) +613: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1417) +614: Constant(Ljava/lang/String;,"result") (1420) +615: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1422) +616: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1425) +617: Constant(Ljava/lang/String;,";") (1428) +618: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1430) +619: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1433) +620: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1436) +621: LocalLoad(Ljava/lang/Object;,0) (1439) +622: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1440) +623: LocalLoad(I,6) (1443) +624: Constant(I,1) (1443) +625: BinaryOp(I,add) (1443) +626: LocalStore(I,6) (1443) +627: LocalLoad(I,6) (1446) +628: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (1448) +629: LocalStore(Ljava/lang/Object;,2) (1451) +630: Goto(231) (1452) +631: LocalLoad(Ljava/lang/Object;,0) (1455) +632: Constant(Ljava/lang/String;," /* . . . . . .*/") (1456) +633: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1458) +634: LocalLoad(Ljava/lang/Object;,0) (1461) +635: Constant(Ljava/lang/String;," default:") (1462) +636: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1464) +637: LocalLoad(Ljava/lang/Object;,0) (1467) +638: Constant(Ljava/lang/String;," throw new Exception(") (1468) +639: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1470) +640: LocalLoad(Ljava/lang/Object;,0) (1473) +641: New(Ljava/lang/StringBuilder;,0) (1474) +642: Dup(1,0) (1477) +643: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1478) +644: Constant(Ljava/lang/String;," \"Invalid action number \"+") (1481) +645: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1483) +646: Constant(Ljava/lang/String;,"act_num") (1486) +647: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1488) +648: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1491) +649: Constant(Ljava/lang/String;,"+\"found in ") (1494) +650: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1496) +651: Constant(Ljava/lang/String;,"internal parse table\");") (1499) +652: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1501) +653: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1504) +654: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1507) +655: LocalLoad(Ljava/lang/Object;,0) (1510) +656: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1511) +657: LocalLoad(Ljava/lang/Object;,0) (1514) +658: Constant(Ljava/lang/String;," }") (1515) +659: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1517) +660: LocalLoad(Ljava/lang/Object;,0) (1520) +661: Constant(Ljava/lang/String;," } /* end of method */") (1521) +662: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1523) +663: LocalLoad(I,5) (1526) +664: Constant(I,1) (1526) +665: BinaryOp(I,add) (1526) +666: LocalStore(I,5) (1526) +667: Goto(81) (1529) +668: LocalLoad(Ljava/lang/Object;,0) (1532) +669: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1533) +670: LocalLoad(Ljava/lang/Object;,0) (1536) +671: Constant(Ljava/lang/String;," /** Method splitting the generated action code into several parts. */") (1537) +672: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1539) +673: LocalLoad(Ljava/lang/Object;,0) (1542) +674: New(Ljava/lang/StringBuilder;,0) (1543) +675: Dup(1,0) (1546) +676: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1547) +677: Constant(Ljava/lang/String;," public final java_cup.runtime.Symbol ") (1550) +678: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1552) +679: Constant(Ljava/lang/String;,"do_action") (1555) +680: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1557) +681: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1560) +682: Constant(Ljava/lang/String;,"(") (1563) +683: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1565) +684: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1568) +685: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1571) +686: LocalLoad(Ljava/lang/Object;,0) (1574) +687: New(Ljava/lang/StringBuilder;,0) (1575) +688: Dup(1,0) (1578) +689: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1579) +690: Constant(Ljava/lang/String;," int ") (1582) +691: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1584) +692: Constant(Ljava/lang/String;,"act_num,") (1587) +693: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1589) +694: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1592) +695: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1595) +696: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1598) +697: LocalLoad(Ljava/lang/Object;,0) (1601) +698: New(Ljava/lang/StringBuilder;,0) (1602) +699: Dup(1,0) (1605) +700: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1606) +701: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser ") (1609) +702: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1611) +703: Constant(Ljava/lang/String;,"parser,") (1614) +704: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1616) +705: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1619) +706: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1622) +707: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1625) +708: LocalLoad(Ljava/lang/Object;,0) (1628) +709: New(Ljava/lang/StringBuilder;,0) (1629) +710: Dup(1,0) (1632) +711: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1633) +712: Constant(Ljava/lang/String;," java.util.Stack ") (1636) +713: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1638) +714: Constant(Ljava/lang/String;,"stack,") (1641) +715: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1643) +716: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1646) +717: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1649) +718: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1652) +719: LocalLoad(Ljava/lang/Object;,0) (1655) +720: New(Ljava/lang/StringBuilder;,0) (1656) +721: Dup(1,0) (1659) +722: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1660) +723: Constant(Ljava/lang/String;," int ") (1663) +724: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1665) +725: Constant(Ljava/lang/String;,"top)") (1668) +726: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1670) +727: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1673) +728: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1676) +729: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1679) +730: LocalLoad(Ljava/lang/Object;,0) (1682) +731: Constant(Ljava/lang/String;," throws java.lang.Exception") (1683) +732: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1685) +733: LocalLoad(Ljava/lang/Object;,0) (1688) +734: Constant(Ljava/lang/String;," {") (1689) +735: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1691) +736: Invoke(STATIC,Ljava_cup/production;,number,()I) (1694) +737: Constant(I,300) (1697) +738: ConditionalBranch(I,ge,821) (1700) +739: LocalLoad(Ljava/lang/Object;,0) (1703) +740: New(Ljava/lang/StringBuilder;,0) (1704) +741: Dup(1,0) (1707) +742: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1708) +743: Constant(Ljava/lang/String;," return ") (1711) +744: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1713) +745: Constant(Ljava/lang/String;,"do_action_part") (1716) +746: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1718) +747: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1721) +748: Constant(Ljava/lang/String;,"%08d") (1724) +749: Constant(I,1) (1726) +750: New([Ljava/lang/Object;,1) (1727) +751: Dup(1,0) (1730) +752: Constant(I,0) (1731) +753: New(Ljava/lang/Integer;,0) (1732) +754: Dup(1,0) (1735) +755: Constant(I,0) (1736) +756: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (1737) +757: ArrayStore(Ljava/lang/Object;) (1740) +758: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (1741) +759: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1744) +760: Constant(Ljava/lang/String;,"(") (1747) +761: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1749) +762: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1752) +763: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1755) +764: LocalLoad(Ljava/lang/Object;,0) (1758) +765: New(Ljava/lang/StringBuilder;,0) (1759) +766: Dup(1,0) (1762) +767: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1763) +768: Constant(Ljava/lang/String;," ") (1766) +769: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1768) +770: Constant(Ljava/lang/String;,"act_num,") (1771) +771: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1773) +772: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1776) +773: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1779) +774: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1782) +775: LocalLoad(Ljava/lang/Object;,0) (1785) +776: New(Ljava/lang/StringBuilder;,0) (1786) +777: Dup(1,0) (1789) +778: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1790) +779: Constant(Ljava/lang/String;," ") (1793) +780: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1795) +781: Constant(Ljava/lang/String;,"parser,") (1798) +782: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1800) +783: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1803) +784: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1806) +785: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1809) +786: LocalLoad(Ljava/lang/Object;,0) (1812) +787: New(Ljava/lang/StringBuilder;,0) (1813) +788: Dup(1,0) (1816) +789: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1817) +790: Constant(Ljava/lang/String;," ") (1820) +791: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1822) +792: Constant(Ljava/lang/String;,"stack,") (1825) +793: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1827) +794: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1830) +795: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1833) +796: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1836) +797: LocalLoad(Ljava/lang/Object;,0) (1839) +798: New(Ljava/lang/StringBuilder;,0) (1840) +799: Dup(1,0) (1843) +800: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1844) +801: Constant(Ljava/lang/String;," ") (1847) +802: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1849) +803: Constant(Ljava/lang/String;,"top);") (1852) +804: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1854) +805: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1857) +806: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1860) +807: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1863) +808: LocalLoad(Ljava/lang/Object;,0) (1866) +809: Constant(Ljava/lang/String;," }") (1867) +810: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1869) +811: LocalLoad(Ljava/lang/Object;,0) (1872) +812: Constant(Ljava/lang/String;,"}") (1873) +813: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1875) +814: LocalLoad(Ljava/lang/Object;,0) (1878) +815: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1879) +816: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (1882) +817: LocalLoad(J,3) (1885) +818: BinaryOp(J,sub) (1886) +819: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (1887) +820: Return(V) (1890) +821: LocalLoad(Ljava/lang/Object;,0) (1891) +822: Constant(Ljava/lang/String;," /* select the action handler based on the action number */") (1892) +823: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1894) +824: LocalLoad(Ljava/lang/Object;,0) (1897) +825: New(Ljava/lang/StringBuilder;,0) (1898) +826: Dup(1,0) (1901) +827: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1902) +828: Constant(Ljava/lang/String;," switch (") (1905) +829: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1907) +830: Constant(Ljava/lang/String;,"act_num") (1910) +831: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1912) +832: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1915) +833: Constant(Ljava/lang/String;,"/") (1918) +834: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1920) +835: Constant(I,300) (1923) +836: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1926) +837: Constant(Ljava/lang/String;,")") (1929) +838: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1931) +839: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1934) +840: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1937) +841: LocalLoad(Ljava/lang/Object;,0) (1940) +842: Constant(Ljava/lang/String;," {") (1941) +843: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1943) +844: Constant(I,0) (1946) +845: LocalStore(I,5) (1947) +846: LocalLoad(I,5) (1949) +847: Invoke(STATIC,Ljava_cup/production;,number,()I) (1951) +848: Constant(I,300) (1954) +849: BinaryOp(I,div) (1957) +850: ConditionalBranch(I,gt,959) (1958) +851: LocalLoad(Ljava/lang/Object;,0) (1961) +852: New(Ljava/lang/StringBuilder;,0) (1962) +853: Dup(1,0) (1965) +854: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1966) +855: Constant(Ljava/lang/String;," /*. . . . . . . . ") (1969) +856: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1971) +857: LocalLoad(I,5) (1974) +858: Constant(I,300) (1976) +859: BinaryOp(I,mul) (1979) +860: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1980) +861: Constant(Ljava/lang/String;," < #action < ") (1983) +862: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1985) +863: LocalLoad(I,5) (1988) +864: Constant(I,1) (1990) +865: BinaryOp(I,add) (1991) +866: Constant(I,300) (1992) +867: BinaryOp(I,mul) (1995) +868: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1996) +869: Constant(Ljava/lang/String;,". . . . . . . . . . . .*/") (1999) +870: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2001) +871: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2004) +872: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2007) +873: LocalLoad(Ljava/lang/Object;,0) (2010) +874: New(Ljava/lang/StringBuilder;,0) (2011) +875: Dup(1,0) (2014) +876: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2015) +877: Constant(Ljava/lang/String;," case ") (2018) +878: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2020) +879: LocalLoad(I,5) (2023) +880: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (2025) +881: Constant(Ljava/lang/String;,": ") (2028) +882: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2030) +883: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2033) +884: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2036) +885: LocalLoad(Ljava/lang/Object;,0) (2039) +886: New(Ljava/lang/StringBuilder;,0) (2040) +887: Dup(1,0) (2043) +888: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2044) +889: Constant(Ljava/lang/String;," return ") (2047) +890: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2049) +891: Constant(Ljava/lang/String;,"do_action_part") (2052) +892: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2054) +893: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2057) +894: Constant(Ljava/lang/String;,"%08d") (2060) +895: Constant(I,1) (2062) +896: New([Ljava/lang/Object;,1) (2063) +897: Dup(1,0) (2066) +898: Constant(I,0) (2067) +899: New(Ljava/lang/Integer;,0) (2068) +900: Dup(1,0) (2071) +901: LocalLoad(I,5) (2072) +902: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (2074) +903: ArrayStore(Ljava/lang/Object;) (2077) +904: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (2078) +905: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2081) +906: Constant(Ljava/lang/String;,"(") (2084) +907: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2086) +908: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2089) +909: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2092) +910: LocalLoad(Ljava/lang/Object;,0) (2095) +911: New(Ljava/lang/StringBuilder;,0) (2096) +912: Dup(1,0) (2099) +913: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2100) +914: Constant(Ljava/lang/String;," ") (2103) +915: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2105) +916: Constant(Ljava/lang/String;,"act_num,") (2108) +917: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2110) +918: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2113) +919: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2116) +920: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2119) +921: LocalLoad(Ljava/lang/Object;,0) (2122) +922: New(Ljava/lang/StringBuilder;,0) (2123) +923: Dup(1,0) (2126) +924: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2127) +925: Constant(Ljava/lang/String;," ") (2130) +926: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2132) +927: Constant(Ljava/lang/String;,"parser,") (2135) +928: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2137) +929: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2140) +930: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2143) +931: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2146) +932: LocalLoad(Ljava/lang/Object;,0) (2149) +933: New(Ljava/lang/StringBuilder;,0) (2150) +934: Dup(1,0) (2153) +935: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2154) +936: Constant(Ljava/lang/String;," ") (2157) +937: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2159) +938: Constant(Ljava/lang/String;,"stack,") (2162) +939: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2164) +940: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2167) +941: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2170) +942: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2173) +943: LocalLoad(Ljava/lang/Object;,0) (2176) +944: New(Ljava/lang/StringBuilder;,0) (2177) +945: Dup(1,0) (2180) +946: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2181) +947: Constant(Ljava/lang/String;," ") (2184) +948: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2186) +949: Constant(Ljava/lang/String;,"top);") (2189) +950: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2191) +951: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2194) +952: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2197) +953: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2200) +954: LocalLoad(I,5) (2203) +955: Constant(I,1) (2203) +956: BinaryOp(I,add) (2203) +957: LocalStore(I,5) (2203) +958: Goto(846) (2206) +959: LocalLoad(Ljava/lang/Object;,0) (2209) +960: Constant(Ljava/lang/String;," /* . . . no valid action number: . . .*/") (2210) +961: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2212) +962: LocalLoad(Ljava/lang/Object;,0) (2215) +963: Constant(Ljava/lang/String;," default:") (2216) +964: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2218) +965: LocalLoad(Ljava/lang/Object;,0) (2221) +966: Constant(Ljava/lang/String;," throw new Exception(\"Invalid action number found in internal parse table\");") (2222) +967: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2224) +968: LocalLoad(Ljava/lang/Object;,0) (2227) +969: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (2228) +970: LocalLoad(Ljava/lang/Object;,0) (2231) +971: Constant(Ljava/lang/String;," } /* end of switch */") (2232) +972: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2234) +973: LocalLoad(Ljava/lang/Object;,0) (2237) +974: Constant(Ljava/lang/String;," }") (2238) +975: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2240) +976: LocalLoad(Ljava/lang/Object;,0) (2243) +977: Constant(Ljava/lang/String;,"}") (2244) +978: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2246) +979: LocalLoad(Ljava/lang/Object;,0) (2249) +980: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (2250) +981: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (2253) +982: LocalLoad(J,3) (2256) +983: BinaryOp(J,sub) (2257) +984: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (2258) +985: Return(V) (2261) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"emit_action_code(Ljava/io/PrintWriter;Ljava_cup/production;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) + Handles null at 1000 +5: LocalStore(J,3) (3) + Handles null at 1000 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 1000 +7: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (5) + Handles null at 1000 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 1000 +9: Constant(Ljava/lang/String;,"/** Cup generated class to encapsulate user supplied action code.*/") (9) + Handles null at 1000 +10: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (11) + Handles null at 1000 +11: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 1000 +12: Constant(Ljava/lang/String;,"@SuppressWarnings({\"rawtypes\", \"unchecked\", \"unused\"})") (15) + Handles null at 1000 +13: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (17) + Handles null at 1000 +14: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 1000 +15: New(Ljava/lang/StringBuilder;,0) (21) + Handles null at 1000 +16: Dup(1,0) (24) + Handles null at 1000 +17: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (25) + Handles null at 1000 +18: Constant(Ljava/lang/String;,"class ") (28) + Handles null at 1000 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (30) + Handles null at 1000 +20: Constant(Ljava/lang/String;,"actions") (33) + Handles null at 1000 +21: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (35) + Handles null at 1000 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) + Handles null at 1000 +23: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (41) + Handles null at 1000 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (44) + Handles null at 1000 +25: Constant(Ljava/lang/String;," {") (47) + Handles null at 1000 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (49) + Handles null at 1000 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (52) + Handles null at 1000 +28: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (55) + Handles null at 1000 +29: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (58) + Handles null at 1000 +30: Constant(L;,null) (61) + Handles null at 1000 +31: ConditionalBranch(Ljava/lang/Object;,eq,37) (61) + Handles null at 1000 +32: LocalLoad(Ljava/lang/Object;,0) (64) + Handles null at 1000 +33: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (65) + Handles null at 1000 +34: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 1000 +35: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (69) + Handles null at 1000 +36: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (72) + Handles null at 1000 +37: LocalLoad(Ljava/lang/Object;,0) (75) + Handles null at 1000 +38: New(Ljava/lang/StringBuilder;,0) (76) + Handles null at 1000 +39: Dup(1,0) (79) + Handles null at 1000 +40: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (80) + Handles null at 1000 +41: Constant(Ljava/lang/String;," private final ") (83) + Handles null at 1000 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (85) + Handles null at 1000 +43: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (88) + Handles null at 1000 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) + Handles null at 1000 +45: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (94) + Handles null at 1000 +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) + Handles null at 1000 +47: Constant(Ljava/lang/String;," parser;") (100) + Handles null at 1000 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (102) + Handles null at 1000 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (105) + Handles null at 1000 +50: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (108) + Handles null at 1000 +51: LocalLoad(Ljava/lang/Object;,0) (111) + Handles null at 1000 +52: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (112) + Handles null at 1000 +53: LocalLoad(Ljava/lang/Object;,0) (115) + Handles null at 1000 +54: Constant(Ljava/lang/String;," /** Constructor */") (116) + Handles null at 1000 +55: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (118) + Handles null at 1000 +56: LocalLoad(Ljava/lang/Object;,0) (121) + Handles null at 1000 +57: New(Ljava/lang/StringBuilder;,0) (122) + Handles null at 1000 +58: Dup(1,0) (125) + Handles null at 1000 +59: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (126) + Handles null at 1000 +60: Constant(Ljava/lang/String;," ") (129) + Handles null at 1000 +61: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (131) + Handles null at 1000 +62: Constant(Ljava/lang/String;,"actions") (134) + Handles null at 1000 +63: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (136) + Handles null at 1000 +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) + Handles null at 1000 +65: Constant(Ljava/lang/String;,"(") (142) + Handles null at 1000 +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (144) + Handles null at 1000 +67: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (147) + Handles null at 1000 +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (150) + Handles null at 1000 +69: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (153) + Handles null at 1000 +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) + Handles null at 1000 +71: Constant(Ljava/lang/String;," parser) {") (159) + Handles null at 1000 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (161) + Handles null at 1000 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (164) + Handles null at 1000 +74: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (167) + Handles null at 1000 +75: LocalLoad(Ljava/lang/Object;,0) (170) + Handles null at 1000 +76: Constant(Ljava/lang/String;," this.parser = parser;") (171) + Handles null at 1000 +77: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (173) + Handles null at 1000 +78: LocalLoad(Ljava/lang/Object;,0) (176) + Handles null at 1000 +79: Constant(Ljava/lang/String;," }") (177) + Handles null at 1000 +80: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (179) + Handles null at 1000 +81: LocalLoad(Ljava/lang/Object;,0) (182) + Handles null at 1000 +82: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (183) + Handles null at 1000 +83: Constant(I,0) (186) + Handles null at 1000 +84: LocalStore(I,5) (187) + Handles null at 1000 +85: LocalLoad(I,5) (189) + Handles null at 1000 +86: Invoke(STATIC,Ljava_cup/production;,number,()I) (191) + Handles null at 1000 +87: Constant(I,300) (194) + Handles null at 1000 +88: BinaryOp(I,div) (197) + Handles null at 1000 +89: ConditionalBranch(I,gt,672) (198) + Handles null at 1000 +90: LocalLoad(Ljava/lang/Object;,0) (201) + Handles null at 1000 +91: New(Ljava/lang/StringBuilder;,0) (202) + Handles null at 1000 +92: Dup(1,0) (205) + Handles null at 1000 +93: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (206) + Handles null at 1000 +94: Constant(Ljava/lang/String;," /** Method ") (209) + Handles null at 1000 +95: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (211) + Handles null at 1000 +96: LocalLoad(I,5) (214) + Handles null at 1000 +97: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (216) + Handles null at 1000 +98: Constant(Ljava/lang/String;," with the actual generated action code for actions ") (219) + Handles null at 1000 +99: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (221) + Handles null at 1000 +100: LocalLoad(I,5) (224) + Handles null at 1000 +101: Constant(I,300) (226) + Handles null at 1000 +102: BinaryOp(I,mul) (229) + Handles null at 1000 +103: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (230) + Handles null at 1000 +104: Constant(Ljava/lang/String;," to ") (233) + Handles null at 1000 +105: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (235) + Handles null at 1000 +106: LocalLoad(I,5) (238) + Handles null at 1000 +107: Constant(I,1) (240) + Handles null at 1000 +108: BinaryOp(I,add) (241) + Handles null at 1000 +109: Constant(I,300) (242) + Handles null at 1000 +110: BinaryOp(I,mul) (245) + Handles null at 1000 +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (246) + Handles null at 1000 +112: Constant(Ljava/lang/String;,". */") (249) + Handles null at 1000 +113: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) + Handles null at 1000 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (254) + Handles null at 1000 +115: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (257) + Handles null at 1000 +116: LocalLoad(Ljava/lang/Object;,0) (260) + Handles null at 1000 +117: New(Ljava/lang/StringBuilder;,0) (261) + Handles null at 1000 +118: Dup(1,0) (264) + Handles null at 1000 +119: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (265) + Handles null at 1000 +120: Constant(Ljava/lang/String;," public final java_cup.runtime.Symbol ") (268) + Handles null at 1000 +121: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (270) + Handles null at 1000 +122: Constant(Ljava/lang/String;,"do_action_part") (273) + Handles null at 1000 +123: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (275) + Handles null at 1000 +124: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (278) + Handles null at 1000 +125: Constant(Ljava/lang/String;,"%08d") (281) + Handles null at 1000 +126: Constant(I,1) (283) + Handles null at 1000 +127: New([Ljava/lang/Object;,1) (284) + Handles null at 1000 +128: Dup(1,0) (287) + Handles null at 1000 +129: Constant(I,0) (288) + Handles null at 1000 +130: New(Ljava/lang/Integer;,0) (289) + Handles null at 1000 +131: Dup(1,0) (292) + Handles null at 1000 +132: LocalLoad(I,5) (293) + Handles null at 1000 +133: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (295) + Handles null at 1000 +134: ArrayStore(Ljava/lang/Object;) (298) + Handles null at 1000 +135: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (299) + Handles null at 1000 +136: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (302) + Handles null at 1000 +137: Constant(Ljava/lang/String;,"(") (305) + Handles null at 1000 +138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (307) + Handles null at 1000 +139: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (310) + Handles null at 1000 +140: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (313) + Handles null at 1000 +141: LocalLoad(Ljava/lang/Object;,0) (316) + Handles null at 1000 +142: New(Ljava/lang/StringBuilder;,0) (317) + Handles null at 1000 +143: Dup(1,0) (320) + Handles null at 1000 +144: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (321) + Handles null at 1000 +145: Constant(Ljava/lang/String;," int ") (324) + Handles null at 1000 +146: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (326) + Handles null at 1000 +147: Constant(Ljava/lang/String;,"act_num,") (329) + Handles null at 1000 +148: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (331) + Handles null at 1000 +149: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (334) + Handles null at 1000 +150: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (337) + Handles null at 1000 +151: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (340) + Handles null at 1000 +152: LocalLoad(Ljava/lang/Object;,0) (343) + Handles null at 1000 +153: New(Ljava/lang/StringBuilder;,0) (344) + Handles null at 1000 +154: Dup(1,0) (347) + Handles null at 1000 +155: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (348) + Handles null at 1000 +156: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser ") (351) + Handles null at 1000 +157: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (353) + Handles null at 1000 +158: Constant(Ljava/lang/String;,"parser,") (356) + Handles null at 1000 +159: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (358) + Handles null at 1000 +160: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (361) + Handles null at 1000 +161: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (364) + Handles null at 1000 +162: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (367) + Handles null at 1000 +163: LocalLoad(Ljava/lang/Object;,0) (370) + Handles null at 1000 +164: New(Ljava/lang/StringBuilder;,0) (371) + Handles null at 1000 +165: Dup(1,0) (374) + Handles null at 1000 +166: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (375) + Handles null at 1000 +167: Constant(Ljava/lang/String;," java.util.Stack ") (378) + Handles null at 1000 +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (380) + Handles null at 1000 +169: Constant(Ljava/lang/String;,"stack,") (383) + Handles null at 1000 +170: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (385) + Handles null at 1000 +171: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (388) + Handles null at 1000 +172: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (391) + Handles null at 1000 +173: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (394) + Handles null at 1000 +174: LocalLoad(Ljava/lang/Object;,0) (397) + Handles null at 1000 +175: New(Ljava/lang/StringBuilder;,0) (398) + Handles null at 1000 +176: Dup(1,0) (401) + Handles null at 1000 +177: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (402) + Handles null at 1000 +178: Constant(Ljava/lang/String;," int ") (405) + Handles null at 1000 +179: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (407) + Handles null at 1000 +180: Constant(Ljava/lang/String;,"top)") (410) + Handles null at 1000 +181: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (412) + Handles null at 1000 +182: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (415) + Handles null at 1000 +183: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (418) + Handles null at 1000 +184: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (421) + Handles null at 1000 +185: LocalLoad(Ljava/lang/Object;,0) (424) + Handles null at 1000 +186: Constant(Ljava/lang/String;," throws java.lang.Exception") (425) + Handles null at 1000 +187: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (427) + Handles null at 1000 +188: LocalLoad(Ljava/lang/Object;,0) (430) + Handles null at 1000 +189: Constant(Ljava/lang/String;," {") (431) + Handles null at 1000 +190: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (433) + Handles null at 1000 +191: LocalLoad(Ljava/lang/Object;,0) (436) + Handles null at 1000 +192: Constant(Ljava/lang/String;," /* Symbol object for return from actions */") (437) + Handles null at 1000 +193: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (439) + Handles null at 1000 +194: LocalLoad(Ljava/lang/Object;,0) (442) + Handles null at 1000 +195: New(Ljava/lang/StringBuilder;,0) (443) + Handles null at 1000 +196: Dup(1,0) (446) + Handles null at 1000 +197: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (447) + Handles null at 1000 +198: Constant(Ljava/lang/String;," java_cup.runtime.Symbol ") (450) + Handles null at 1000 +199: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (452) + Handles null at 1000 +200: Constant(Ljava/lang/String;,"result") (455) + Handles null at 1000 +201: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (457) + Handles null at 1000 +202: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (460) + Handles null at 1000 +203: Constant(Ljava/lang/String;,";") (463) + Handles null at 1000 +204: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (465) + Handles null at 1000 +205: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (468) + Handles null at 1000 +206: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (471) + Handles null at 1000 +207: LocalLoad(Ljava/lang/Object;,0) (474) + Handles null at 1000 +208: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (475) + Handles null at 1000 +209: LocalLoad(Ljava/lang/Object;,0) (478) + Handles null at 1000 +210: Constant(Ljava/lang/String;," /* select the action based on the action number */") (479) + Handles null at 1000 +211: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (481) + Handles null at 1000 +212: LocalLoad(Ljava/lang/Object;,0) (484) + Handles null at 1000 +213: New(Ljava/lang/StringBuilder;,0) (485) + Handles null at 1000 +214: Dup(1,0) (488) + Handles null at 1000 +215: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (489) + Handles null at 1000 +216: Constant(Ljava/lang/String;," switch (") (492) + Handles null at 1000 +217: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (494) + Handles null at 1000 +218: Constant(Ljava/lang/String;,"act_num") (497) + Handles null at 1000 +219: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (499) + Handles null at 1000 +220: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (502) + Handles null at 1000 +221: Constant(Ljava/lang/String;,")") (505) + Handles null at 1000 +222: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (507) + Handles null at 1000 +223: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (510) + Handles null at 1000 +224: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (513) + Handles null at 1000 +225: LocalLoad(Ljava/lang/Object;,0) (516) + Handles null at 1000 +226: Constant(Ljava/lang/String;," {") (517) + Handles null at 1000 +227: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (519) + Handles null at 1000 +228: LocalLoad(I,5) (522) + Handles null at 1000 +229: Constant(I,300) (524) + Handles null at 1000 +230: BinaryOp(I,mul) (527) + Handles null at 1000 +231: LocalStore(I,6) (528) + Handles null at 1000 +232: LocalLoad(I,6) (530) + Handles null at 1000 +233: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (532) + Handles null at 1000 +234: LocalStore(Ljava/lang/Object;,2) (535) + Handles null at 1000 +235: LocalLoad(I,6) (536) + Handles null at 1000 +236: LocalLoad(I,5) (538) + Handles null at 1000 +237: Constant(I,1) (540) + Handles null at 1000 +238: BinaryOp(I,add) (541) + Handles null at 1000 +239: Constant(I,300) (542) + Handles null at 1000 +240: BinaryOp(I,mul) (545) + Handles null at 1000 +241: Invoke(STATIC,Ljava_cup/production;,number,()I) (546) + Handles null at 1000 +242: Invoke(STATIC,Ljava/lang/Math;,min,(II)I) (549) + Handles null at 1000 +243: ConditionalBranch(I,ge,635) (552) + Handles null at 1000 +244: LocalLoad(Ljava/lang/Object;,0) (555) + Handles null at 1000 +245: Constant(Ljava/lang/String;," /*. . . . . . . . . . . . . . . . . . . .*/") (556) + Handles null at 1000 +246: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (558) + Handles null at 1000 +247: LocalLoad(Ljava/lang/Object;,0) (561) + Handles null at 1000 +248: New(Ljava/lang/StringBuilder;,0) (562) + Handles null at 1000 +249: Dup(1,0) (565) + Handles null at 1000 +250: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (566) + Handles null at 1000 +251: Constant(Ljava/lang/String;," case ") (569) + Handles null at 1000 +252: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (571) + Handles null at 1000 +253: LocalLoad(Ljava/lang/Object;,2) (574) + Handles null at 1000 +254: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (575) + Handles null at 1000 +255: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (578) + Handles null at 1000 +256: Constant(Ljava/lang/String;,": // ") (581) + Handles null at 1000 +257: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (583) + Handles null at 1000 +258: LocalLoad(Ljava/lang/Object;,2) (586) + Handles null at 1000 +259: Invoke(VIRTUAL,Ljava_cup/production;,to_simple_string,()Ljava/lang/String;) (587) + Handles null at 1000 +260: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (590) + Handles null at 1000 +261: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (593) + Handles null at 1000 +262: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (596) + Handles null at 1000 +263: LocalLoad(Ljava/lang/Object;,0) (599) + Handles null at 1000 +264: Constant(Ljava/lang/String;," {") (600) + Handles null at 1000 +265: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (602) + Handles null at 1000 +266: Constant(Ljava/lang/String;,"null") (605) + Handles null at 1000 +267: LocalStore(Ljava/lang/Object;,7) (607) + Handles null at 1000 +268: LocalLoad(Ljava/lang/Object;,2) (609) + Handles null at 1000 +269: Instanceof(Ljava_cup/action_production;) (610) + Handles null at 1000 +270: Constant(I,0) (613) + Handles null at 1000 +271: ConditionalBranch(I,eq,323) (613) + Handles null at 1000 +272: LocalLoad(Ljava/lang/Object;,2) (616) + Handles null at 1000 +273: CheckCast(Ljava_cup/action_production;) (617) + Handles null at 1000 +274: Invoke(VIRTUAL,Ljava_cup/action_production;,getIndexOfIntermediateResult,()I) (620) + Handles null at 1000 +275: LocalStore(I,8) (623) + Handles null at 1000 +276: LocalLoad(I,8) (625) + Handles null at 1000 +277: Constant(I,-1) (627) + Handles null at 1000 +278: ConditionalBranch(I,eq,323) (628) + Handles null at 1000 +279: New(Ljava/lang/StringBuilder;,0) (631) + Handles null at 1000 +280: Dup(1,0) (634) + Handles null at 1000 +281: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (635) + Handles null at 1000 +282: Constant(Ljava/lang/String;,"(") (638) + Handles null at 1000 +283: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (640) + Handles null at 1000 +284: LocalLoad(Ljava/lang/Object;,2) (643) + Handles null at 1000 +285: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (644) + Handles null at 1000 +286: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (647) + Handles null at 1000 +287: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (650) + Handles null at 1000 +288: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (653) + Handles null at 1000 +289: Constant(Ljava/lang/String;,") ") (656) + Handles null at 1000 +290: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (658) + Handles null at 1000 +291: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol) ") (661) + Handles null at 1000 +292: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (663) + Handles null at 1000 +293: Constant(Ljava/lang/String;,"stack") (666) + Handles null at 1000 +294: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (668) + Handles null at 1000 +295: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (671) + Handles null at 1000 +296: LocalLoad(I,8) (674) + Handles null at 1000 +297: Constant(I,1) (676) + Handles null at 1000 +298: ConditionalBranch(I,ne,301) (677) + Handles null at 1000 +299: Constant(Ljava/lang/String;,".peek()") (680) + Handles null at 1000 +300: Goto(318) (682) + Handles null at 1000 +301: New(Ljava/lang/StringBuilder;,0) (685) + Handles null at 1000 +302: Dup(1,0) (688) + Handles null at 1000 +303: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (689) + Handles null at 1000 +304: Constant(Ljava/lang/String;,".elementAt(") (692) + Handles null at 1000 +305: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (694) + Handles null at 1000 +306: Constant(Ljava/lang/String;,"top") (697) + Handles null at 1000 +307: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (699) + Handles null at 1000 +308: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (702) + Handles null at 1000 +309: Constant(Ljava/lang/String;,"-") (705) + Handles null at 1000 +310: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (707) + Handles null at 1000 +311: LocalLoad(I,8) (710) + Handles null at 1000 +312: Constant(I,1) (712) + Handles null at 1000 +313: BinaryOp(I,sub) (713) + Handles null at 1000 +314: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (714) + Handles null at 1000 +315: Constant(Ljava/lang/String;,")") (717) + Handles null at 1000 +316: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (719) + Handles null at 1000 +317: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (722) + Handles null at 1000 +318: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (725) + Handles null at 1000 +319: Constant(Ljava/lang/String;,").value") (728) + Handles null at 1000 +320: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (730) + Handles null at 1000 +321: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (733) + Handles null at 1000 +322: LocalStore(Ljava/lang/Object;,7) (736) + Handles null at 1000 +323: LocalLoad(Ljava/lang/Object;,0) (738) + Handles null at 1000 +324: New(Ljava/lang/StringBuilder;,0) (739) + Handles null at 1000 +325: Dup(1,0) (742) + Handles null at 1000 +326: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (743) + Handles null at 1000 +327: Constant(Ljava/lang/String;," ") (746) + Handles null at 1000 +328: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (748) + Handles null at 1000 +329: LocalLoad(Ljava/lang/Object;,2) (751) + Handles null at 1000 +330: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (752) + Handles null at 1000 +331: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (755) + Handles null at 1000 +332: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (758) + Handles null at 1000 +333: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (761) + Handles null at 1000 +334: Constant(Ljava/lang/String;," RESULT =") (764) + Handles null at 1000 +335: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (766) + Handles null at 1000 +336: LocalLoad(Ljava/lang/Object;,7) (769) + Handles null at 1000 +337: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (771) + Handles null at 1000 +338: Constant(Ljava/lang/String;,";") (774) + Handles null at 1000 +339: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (776) + Handles null at 1000 +340: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (779) + Handles null at 1000 +341: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (782) + Handles null at 1000 +342: LocalLoad(Ljava/lang/Object;,2) (785) + Handles null at 1000 +343: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (786) + Handles null at 1000 +344: Constant(I,1) (789) + Handles null at 1000 +345: BinaryOp(I,sub) (790) + Handles null at 1000 +346: LocalStore(I,8) (791) + Handles null at 1000 +347: LocalLoad(I,8) (793) + Handles null at 1000 +348: Constant(I,0) (795) + Handles null at 1000 +349: ConditionalBranch(I,lt,441) (795) + Handles null at 1000 +350: LocalLoad(Ljava/lang/Object;,2) (798) + Handles null at 1000 +351: LocalLoad(I,8) (799) + Handles null at 1000 +352: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (801) + Handles null at 1000 +353: Instanceof(Ljava_cup/symbol_part;) (804) + Handles null at 1000 +354: Constant(I,0) (807) + Handles null at 1000 +355: ConditionalBranch(I,ne,357) (807) + Handles null at 1000 +356: Goto(436) (810) + Handles null at 1000 +357: LocalLoad(Ljava/lang/Object;,2) (813) + Handles null at 1000 +358: LocalLoad(I,8) (814) + Handles null at 1000 +359: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (816) + Handles null at 1000 +360: CheckCast(Ljava_cup/symbol_part;) (819) + Handles null at 1000 +361: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (822) + Handles null at 1000 +362: LocalStore(Ljava/lang/Object;,9) (825) + Handles null at 1000 +363: LocalLoad(Ljava/lang/Object;,9) (827) + Handles null at 1000 +364: Instanceof(Ljava_cup/non_terminal;) (829) + Handles null at 1000 +365: Constant(I,0) (832) + Handles null at 1000 +366: ConditionalBranch(I,ne,368) (832) + Handles null at 1000 +367: Goto(436) (835) + Handles null at 1000 +368: LocalLoad(Ljava/lang/Object;,9) (838) + Handles null at 1000 +369: CheckCast(Ljava_cup/non_terminal;) (840) + Handles null at 1000 +370: Get(Z,NONSTATIC,Ljava_cup/non_terminal;,is_embedded_action) (843) + Handles null at 1000 +371: Constant(I,0) (846) + Handles null at 1000 +372: ConditionalBranch(I,ne,374) (846) + Handles null at 1000 +373: Goto(436) (849) + Handles null at 1000 +374: LocalLoad(Ljava/lang/Object;,2) (852) + Handles null at 1000 +375: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (853) + Handles null at 1000 +376: LocalLoad(I,8) (856) + Handles null at 1000 +377: BinaryOp(I,sub) (858) + Handles null at 1000 +378: Constant(I,1) (859) + Handles null at 1000 +379: BinaryOp(I,sub) (860) + Handles null at 1000 +380: LocalStore(I,10) (861) + Handles null at 1000 +381: LocalLoad(Ljava/lang/Object;,0) (863) + Handles null at 1000 +382: New(Ljava/lang/StringBuilder;,0) (864) + Handles null at 1000 +383: Dup(1,0) (867) + Handles null at 1000 +384: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (868) + Handles null at 1000 +385: Constant(Ljava/lang/String;," // propagate RESULT from ") (871) + Handles null at 1000 +386: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (873) + Handles null at 1000 +387: LocalLoad(Ljava/lang/Object;,9) (876) + Handles null at 1000 +388: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (878) + Handles null at 1000 +389: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (881) + Handles null at 1000 +390: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (884) + Handles null at 1000 +391: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (887) + Handles null at 1000 +392: LocalLoad(Ljava/lang/Object;,0) (890) + Handles null at 1000 +393: New(Ljava/lang/StringBuilder;,0) (891) + Handles null at 1000 +394: Dup(1,0) (894) + Handles null at 1000 +395: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (895) + Handles null at 1000 +396: Constant(Ljava/lang/String;," RESULT = (") (898) + Handles null at 1000 +397: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (900) + Handles null at 1000 +398: LocalLoad(Ljava/lang/Object;,2) (903) + Handles null at 1000 +399: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (904) + Handles null at 1000 +400: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (907) + Handles null at 1000 +401: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (910) + Handles null at 1000 +402: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (913) + Handles null at 1000 +403: Constant(Ljava/lang/String;,") ") (916) + Handles null at 1000 +404: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (918) + Handles null at 1000 +405: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol) ") (921) + Handles null at 1000 +406: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (923) + Handles null at 1000 +407: Constant(Ljava/lang/String;,"stack") (926) + Handles null at 1000 +408: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (928) + Handles null at 1000 +409: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (931) + Handles null at 1000 +410: LocalLoad(I,10) (934) + Handles null at 1000 +411: Constant(I,0) (936) + Handles null at 1000 +412: ConditionalBranch(I,ne,415) (936) + Handles null at 1000 +413: Constant(Ljava/lang/String;,".peek()") (939) + Handles null at 1000 +414: Goto(430) (941) + Handles null at 1000 +415: New(Ljava/lang/StringBuilder;,0) (944) + Handles null at 1000 +416: Dup(1,0) (947) + Handles null at 1000 +417: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (948) + Handles null at 1000 +418: Constant(Ljava/lang/String;,".elementAt(") (951) + Handles null at 1000 +419: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (953) + Handles null at 1000 +420: Constant(Ljava/lang/String;,"top") (956) + Handles null at 1000 +421: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (958) + Handles null at 1000 +422: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (961) + Handles null at 1000 +423: Constant(Ljava/lang/String;,"-") (964) + Handles null at 1000 +424: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (966) + Handles null at 1000 +425: LocalLoad(I,10) (969) + Handles null at 1000 +426: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (971) + Handles null at 1000 +427: Constant(Ljava/lang/String;,")") (974) + Handles null at 1000 +428: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (976) + Handles null at 1000 +429: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (979) + Handles null at 1000 +430: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (982) + Handles null at 1000 +431: Constant(Ljava/lang/String;,").value;") (985) + Handles null at 1000 +432: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (987) + Handles null at 1000 +433: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (990) + Handles null at 1000 +434: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (993) + Handles null at 1000 +435: Goto(441) (996) + Handles null at 1000 +436: LocalLoad(I,8) (999) + Handles null at 1000 +437: Constant(I,-1) (999) + Handles null at 1000 +438: BinaryOp(I,add) (999) + Handles null at 1000 +439: LocalStore(I,8) (999) + Handles null at 1000 +440: Goto(347) (1002) + Handles null at 1000 +441: LocalLoad(Ljava/lang/Object;,2) (1005) + Handles null at 1000 +442: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (1006) + Handles null at 1000 +443: Constant(L;,null) (1009) + Handles null at 1000 +444: ConditionalBranch(Ljava/lang/Object;,eq,461) (1009) + Handles null at 1000 +445: LocalLoad(Ljava/lang/Object;,2) (1012) + Handles null at 1000 +446: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (1013) + Handles null at 1000 +447: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (1016) + Handles null at 1000 +448: Constant(L;,null) (1019) + Handles null at 1000 +449: ConditionalBranch(Ljava/lang/Object;,eq,461) (1019) + Handles null at 1000 +450: LocalLoad(Ljava/lang/Object;,2) (1022) + Handles null at 1000 +451: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (1023) + Handles null at 1000 +452: Constant(Ljava/lang/String;,"") (1026) + Handles null at 1000 +453: Invoke(VIRTUAL,Ljava_cup/action_part;,equals,(Ljava/lang/Object;)Z) (1028) + Handles null at 1000 +454: Constant(I,0) (1031) + Handles null at 1000 +455: ConditionalBranch(I,ne,461) (1031) + Handles null at 1000 +456: LocalLoad(Ljava/lang/Object;,0) (1034) + Handles null at 1000 +457: LocalLoad(Ljava/lang/Object;,2) (1035) + Handles null at 1000 +458: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (1036) + Handles null at 1000 +459: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (1039) + Handles null at 1000 +460: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1042) + Handles null at 1000 +461: Invoke(STATIC,Ljava_cup/emit;,lr_values,()Z) (1045) + Handles null at 1000 +462: Constant(I,0) (1048) + Handles null at 1000 +463: ConditionalBranch(I,eq,561) (1048) + Handles null at 1000 +464: New(Ljava/lang/StringBuilder;,0) (1051) + Handles null at 1000 +465: Dup(1,0) (1054) + Handles null at 1000 +466: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1055) + Handles null at 1000 +467: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol)") (1058) + Handles null at 1000 +468: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1060) + Handles null at 1000 +469: Constant(Ljava/lang/String;,"stack") (1063) + Handles null at 1000 +470: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1065) + Handles null at 1000 +471: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1068) + Handles null at 1000 +472: Constant(Ljava/lang/String;,".peek()") (1071) + Handles null at 1000 +473: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1073) + Handles null at 1000 +474: Constant(Ljava/lang/String;,")") (1076) + Handles null at 1000 +475: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1078) + Handles null at 1000 +476: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1081) + Handles null at 1000 +477: LocalStore(Ljava/lang/Object;,10) (1084) + Handles null at 1000 +478: LocalLoad(Ljava/lang/Object;,2) (1086) + Handles null at 1000 +479: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (1087) + Handles null at 1000 +480: Constant(I,0) (1090) + Handles null at 1000 +481: ConditionalBranch(I,ne,485) (1090) + Handles null at 1000 +482: LocalLoad(Ljava/lang/Object;,10) (1093) + Handles null at 1000 +483: LocalStore(Ljava/lang/Object;,9) (1095) + Handles null at 1000 +484: Goto(523) (1097) + Handles null at 1000 +485: LocalLoad(Ljava/lang/Object;,2) (1100) + Handles null at 1000 +486: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (1101) + Handles null at 1000 +487: Constant(I,1) (1104) + Handles null at 1000 +488: BinaryOp(I,sub) (1105) + Handles null at 1000 +489: LocalStore(I,8) (1106) + Handles null at 1000 +490: New(Ljava/lang/StringBuilder;,0) (1108) + Handles null at 1000 +491: Dup(1,0) (1111) + Handles null at 1000 +492: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1112) + Handles null at 1000 +493: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol)") (1115) + Handles null at 1000 +494: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1117) + Handles null at 1000 +495: Constant(Ljava/lang/String;,"stack") (1120) + Handles null at 1000 +496: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1122) + Handles null at 1000 +497: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1125) + Handles null at 1000 +498: LocalLoad(I,8) (1128) + Handles null at 1000 +499: Constant(I,0) (1130) + Handles null at 1000 +500: ConditionalBranch(I,ne,503) (1130) + Handles null at 1000 +501: Constant(Ljava/lang/String;,".peek()") (1133) + Handles null at 1000 +502: Goto(518) (1135) + Handles null at 1000 +503: New(Ljava/lang/StringBuilder;,0) (1138) + Handles null at 1000 +504: Dup(1,0) (1141) + Handles null at 1000 +505: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1142) + Handles null at 1000 +506: Constant(Ljava/lang/String;,".elementAt(") (1145) + Handles null at 1000 +507: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1147) + Handles null at 1000 +508: Constant(Ljava/lang/String;,"top") (1150) + Handles null at 1000 +509: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1152) + Handles null at 1000 +510: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1155) + Handles null at 1000 +511: Constant(Ljava/lang/String;,"-") (1158) + Handles null at 1000 +512: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1160) + Handles null at 1000 +513: LocalLoad(I,8) (1163) + Handles null at 1000 +514: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1165) + Handles null at 1000 +515: Constant(Ljava/lang/String;,")") (1168) + Handles null at 1000 +516: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1170) + Handles null at 1000 +517: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1173) + Handles null at 1000 +518: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1176) + Handles null at 1000 +519: Constant(Ljava/lang/String;,")") (1179) + Handles null at 1000 +520: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1181) + Handles null at 1000 +521: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1184) + Handles null at 1000 +522: LocalStore(Ljava/lang/Object;,9) (1187) + Handles null at 1000 +523: LocalLoad(Ljava/lang/Object;,0) (1189) + Handles null at 1000 +524: New(Ljava/lang/StringBuilder;,0) (1190) + Handles null at 1000 +525: Dup(1,0) (1193) + Handles null at 1000 +526: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1194) + Handles null at 1000 +527: Constant(Ljava/lang/String;," ") (1197) + Handles null at 1000 +528: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1199) + Handles null at 1000 +529: Constant(Ljava/lang/String;,"result") (1202) + Handles null at 1000 +530: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1204) + Handles null at 1000 +531: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1207) + Handles null at 1000 +532: Constant(Ljava/lang/String;," = parser.getSymbolFactory().newSymbol(") (1210) + Handles null at 1000 +533: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1212) + Handles null at 1000 +534: Constant(Ljava/lang/String;,"\"") (1215) + Handles null at 1000 +535: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1217) + Handles null at 1000 +536: LocalLoad(Ljava/lang/Object;,2) (1220) + Handles null at 1000 +537: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1221) + Handles null at 1000 +538: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1224) + Handles null at 1000 +539: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1227) + Handles null at 1000 +540: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1230) + Handles null at 1000 +541: Constant(Ljava/lang/String;,"\",") (1233) + Handles null at 1000 +542: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1235) + Handles null at 1000 +543: LocalLoad(Ljava/lang/Object;,2) (1238) + Handles null at 1000 +544: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1239) + Handles null at 1000 +545: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1242) + Handles null at 1000 +546: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (1245) + Handles null at 1000 +547: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1248) + Handles null at 1000 +548: Constant(Ljava/lang/String;,", ") (1251) + Handles null at 1000 +549: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1253) + Handles null at 1000 +550: LocalLoad(Ljava/lang/Object;,9) (1256) + Handles null at 1000 +551: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1258) + Handles null at 1000 +552: Constant(Ljava/lang/String;,", ") (1261) + Handles null at 1000 +553: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1263) + Handles null at 1000 +554: LocalLoad(Ljava/lang/Object;,10) (1266) + Handles null at 1000 +555: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1268) + Handles null at 1000 +556: Constant(Ljava/lang/String;,", RESULT);") (1271) + Handles null at 1000 +557: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1273) + Handles null at 1000 +558: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1276) + Handles null at 1000 +559: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1279) + Handles null at 1000 +560: Goto(590) (1282) + Handles null at 1000 +561: LocalLoad(Ljava/lang/Object;,0) (1285) + Handles null at 1000 +562: New(Ljava/lang/StringBuilder;,0) (1286) + Handles null at 1000 +563: Dup(1,0) (1289) + Handles null at 1000 +564: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1290) + Handles null at 1000 +565: Constant(Ljava/lang/String;," ") (1293) + Handles null at 1000 +566: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1295) + Handles null at 1000 +567: Constant(Ljava/lang/String;,"result") (1298) + Handles null at 1000 +568: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1300) + Handles null at 1000 +569: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1303) + Handles null at 1000 +570: Constant(Ljava/lang/String;," = parser.getSymbolFactory().newSymbol(") (1306) + Handles null at 1000 +571: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1308) + Handles null at 1000 +572: Constant(Ljava/lang/String;,"\"") (1311) + Handles null at 1000 +573: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1313) + Handles null at 1000 +574: LocalLoad(Ljava/lang/Object;,2) (1316) + Handles null at 1000 +575: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1317) + Handles null at 1000 +576: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1320) + Handles null at 1000 +577: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1323) + Handles null at 1000 +578: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1326) + Handles null at 1000 +579: Constant(Ljava/lang/String;,"\",") (1329) + Handles null at 1000 +580: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1331) + Handles null at 1000 +581: LocalLoad(Ljava/lang/Object;,2) (1334) + Handles null at 1000 +582: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1335) + Handles null at 1000 +583: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1338) + Handles null at 1000 +584: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (1341) + Handles null at 1000 +585: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1344) + Handles null at 1000 +586: Constant(Ljava/lang/String;,", RESULT);") (1347) + Handles null at 1000 +587: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1349) + Handles null at 1000 +588: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1352) + Handles null at 1000 +589: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1355) + Handles null at 1000 +590: LocalLoad(Ljava/lang/Object;,0) (1358) + Handles null at 1000 +591: Constant(Ljava/lang/String;," }") (1359) + Handles null at 1000 +592: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1361) + Handles null at 1000 +593: LocalLoad(Ljava/lang/Object;,2) (1364) + Handles null at 1000 +594: LocalLoad(Ljava/lang/Object;,1) (1365) + Handles null at 1000 +595: ConditionalBranch(Ljava/lang/Object;,ne,612) (1366) + Handles null at 1000 +596: LocalLoad(Ljava/lang/Object;,0) (1369) + Handles null at 1000 +597: Constant(Ljava/lang/String;," /* ACCEPT */") (1370) + Handles null at 1000 +598: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1372) + Handles null at 1000 +599: LocalLoad(Ljava/lang/Object;,0) (1375) + Handles null at 1000 +600: New(Ljava/lang/StringBuilder;,0) (1376) + Handles null at 1000 +601: Dup(1,0) (1379) + Handles null at 1000 +602: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1380) + Handles null at 1000 +603: Constant(Ljava/lang/String;," ") (1383) + Handles null at 1000 +604: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1385) + Handles null at 1000 +605: Constant(Ljava/lang/String;,"parser") (1388) + Handles null at 1000 +606: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1390) + Handles null at 1000 +607: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1393) + Handles null at 1000 +608: Constant(Ljava/lang/String;,".done_parsing();") (1396) + Handles null at 1000 +609: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1398) + Handles null at 1000 +610: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1401) + Handles null at 1000 +611: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1404) + Handles null at 1000 +612: LocalLoad(Ljava/lang/Object;,0) (1407) + Handles null at 1000 +613: New(Ljava/lang/StringBuilder;,0) (1408) + Handles null at 1000 +614: Dup(1,0) (1411) + Handles null at 1000 +615: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1412) + Handles null at 1000 +616: Constant(Ljava/lang/String;," return ") (1415) + Handles null at 1000 +617: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1417) + Handles null at 1000 +618: Constant(Ljava/lang/String;,"result") (1420) + Handles null at 1000 +619: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1422) + Handles null at 1000 +620: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1425) + Handles null at 1000 +621: Constant(Ljava/lang/String;,";") (1428) + Handles null at 1000 +622: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1430) + Handles null at 1000 +623: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1433) + Handles null at 1000 +624: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1436) + Handles null at 1000 +625: LocalLoad(Ljava/lang/Object;,0) (1439) + Handles null at 1000 +626: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1440) + Handles null at 1000 +627: LocalLoad(I,6) (1443) + Handles null at 1000 +628: Constant(I,1) (1443) + Handles null at 1000 +629: BinaryOp(I,add) (1443) + Handles null at 1000 +630: LocalStore(I,6) (1443) + Handles null at 1000 +631: LocalLoad(I,6) (1446) + Handles null at 1000 +632: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (1448) + Handles null at 1000 +633: LocalStore(Ljava/lang/Object;,2) (1451) + Handles null at 1000 +634: Goto(235) (1452) + Handles null at 1000 +635: LocalLoad(Ljava/lang/Object;,0) (1455) + Handles null at 1000 +636: Constant(Ljava/lang/String;," /* . . . . . .*/") (1456) + Handles null at 1000 +637: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1458) + Handles null at 1000 +638: LocalLoad(Ljava/lang/Object;,0) (1461) + Handles null at 1000 +639: Constant(Ljava/lang/String;," default:") (1462) + Handles null at 1000 +640: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1464) + Handles null at 1000 +641: LocalLoad(Ljava/lang/Object;,0) (1467) + Handles null at 1000 +642: Constant(Ljava/lang/String;," throw new Exception(") (1468) + Handles null at 1000 +643: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1470) + Handles null at 1000 +644: LocalLoad(Ljava/lang/Object;,0) (1473) + Handles null at 1000 +645: New(Ljava/lang/StringBuilder;,0) (1474) + Handles null at 1000 +646: Dup(1,0) (1477) + Handles null at 1000 +647: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1478) + Handles null at 1000 +648: Constant(Ljava/lang/String;," \"Invalid action number \"+") (1481) + Handles null at 1000 +649: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1483) + Handles null at 1000 +650: Constant(Ljava/lang/String;,"act_num") (1486) + Handles null at 1000 +651: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1488) + Handles null at 1000 +652: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1491) + Handles null at 1000 +653: Constant(Ljava/lang/String;,"+\"found in ") (1494) + Handles null at 1000 +654: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1496) + Handles null at 1000 +655: Constant(Ljava/lang/String;,"internal parse table\");") (1499) + Handles null at 1000 +656: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1501) + Handles null at 1000 +657: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1504) + Handles null at 1000 +658: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1507) + Handles null at 1000 +659: LocalLoad(Ljava/lang/Object;,0) (1510) + Handles null at 1000 +660: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1511) + Handles null at 1000 +661: LocalLoad(Ljava/lang/Object;,0) (1514) + Handles null at 1000 +662: Constant(Ljava/lang/String;," }") (1515) + Handles null at 1000 +663: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1517) + Handles null at 1000 +664: LocalLoad(Ljava/lang/Object;,0) (1520) + Handles null at 1000 +665: Constant(Ljava/lang/String;," } /* end of method */") (1521) + Handles null at 1000 +666: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1523) + Handles null at 1000 +667: LocalLoad(I,5) (1526) + Handles null at 1000 +668: Constant(I,1) (1526) + Handles null at 1000 +669: BinaryOp(I,add) (1526) + Handles null at 1000 +670: LocalStore(I,5) (1526) + Handles null at 1000 +671: Goto(85) (1529) + Handles null at 1000 +672: LocalLoad(Ljava/lang/Object;,0) (1532) + Handles null at 1000 +673: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1533) + Handles null at 1000 +674: LocalLoad(Ljava/lang/Object;,0) (1536) + Handles null at 1000 +675: Constant(Ljava/lang/String;," /** Method splitting the generated action code into several parts. */") (1537) + Handles null at 1000 +676: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1539) + Handles null at 1000 +677: LocalLoad(Ljava/lang/Object;,0) (1542) + Handles null at 1000 +678: New(Ljava/lang/StringBuilder;,0) (1543) + Handles null at 1000 +679: Dup(1,0) (1546) + Handles null at 1000 +680: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1547) + Handles null at 1000 +681: Constant(Ljava/lang/String;," public final java_cup.runtime.Symbol ") (1550) + Handles null at 1000 +682: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1552) + Handles null at 1000 +683: Constant(Ljava/lang/String;,"do_action") (1555) + Handles null at 1000 +684: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1557) + Handles null at 1000 +685: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1560) + Handles null at 1000 +686: Constant(Ljava/lang/String;,"(") (1563) + Handles null at 1000 +687: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1565) + Handles null at 1000 +688: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1568) + Handles null at 1000 +689: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1571) + Handles null at 1000 +690: LocalLoad(Ljava/lang/Object;,0) (1574) + Handles null at 1000 +691: New(Ljava/lang/StringBuilder;,0) (1575) + Handles null at 1000 +692: Dup(1,0) (1578) + Handles null at 1000 +693: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1579) + Handles null at 1000 +694: Constant(Ljava/lang/String;," int ") (1582) + Handles null at 1000 +695: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1584) + Handles null at 1000 +696: Constant(Ljava/lang/String;,"act_num,") (1587) + Handles null at 1000 +697: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1589) + Handles null at 1000 +698: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1592) + Handles null at 1000 +699: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1595) + Handles null at 1000 +700: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1598) + Handles null at 1000 +701: LocalLoad(Ljava/lang/Object;,0) (1601) + Handles null at 1000 +702: New(Ljava/lang/StringBuilder;,0) (1602) + Handles null at 1000 +703: Dup(1,0) (1605) + Handles null at 1000 +704: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1606) + Handles null at 1000 +705: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser ") (1609) + Handles null at 1000 +706: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1611) + Handles null at 1000 +707: Constant(Ljava/lang/String;,"parser,") (1614) + Handles null at 1000 +708: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1616) + Handles null at 1000 +709: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1619) + Handles null at 1000 +710: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1622) + Handles null at 1000 +711: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1625) + Handles null at 1000 +712: LocalLoad(Ljava/lang/Object;,0) (1628) + Handles null at 1000 +713: New(Ljava/lang/StringBuilder;,0) (1629) + Handles null at 1000 +714: Dup(1,0) (1632) + Handles null at 1000 +715: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1633) + Handles null at 1000 +716: Constant(Ljava/lang/String;," java.util.Stack ") (1636) + Handles null at 1000 +717: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1638) + Handles null at 1000 +718: Constant(Ljava/lang/String;,"stack,") (1641) + Handles null at 1000 +719: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1643) + Handles null at 1000 +720: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1646) + Handles null at 1000 +721: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1649) + Handles null at 1000 +722: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1652) + Handles null at 1000 +723: LocalLoad(Ljava/lang/Object;,0) (1655) + Handles null at 1000 +724: New(Ljava/lang/StringBuilder;,0) (1656) + Handles null at 1000 +725: Dup(1,0) (1659) + Handles null at 1000 +726: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1660) + Handles null at 1000 +727: Constant(Ljava/lang/String;," int ") (1663) + Handles null at 1000 +728: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1665) + Handles null at 1000 +729: Constant(Ljava/lang/String;,"top)") (1668) + Handles null at 1000 +730: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1670) + Handles null at 1000 +731: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1673) + Handles null at 1000 +732: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1676) + Handles null at 1000 +733: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1679) + Handles null at 1000 +734: LocalLoad(Ljava/lang/Object;,0) (1682) + Handles null at 1000 +735: Constant(Ljava/lang/String;," throws java.lang.Exception") (1683) + Handles null at 1000 +736: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1685) + Handles null at 1000 +737: LocalLoad(Ljava/lang/Object;,0) (1688) + Handles null at 1000 +738: Constant(Ljava/lang/String;," {") (1689) + Handles null at 1000 +739: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1691) + Handles null at 1000 +740: Invoke(STATIC,Ljava_cup/production;,number,()I) (1694) + Handles null at 1000 +741: Constant(I,300) (1697) + Handles null at 1000 +742: ConditionalBranch(I,ge,830) (1700) + Handles null at 1000 +743: LocalLoad(Ljava/lang/Object;,0) (1703) + Handles null at 1000 +744: New(Ljava/lang/StringBuilder;,0) (1704) + Handles null at 1000 +745: Dup(1,0) (1707) + Handles null at 1000 +746: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1708) + Handles null at 1000 +747: Constant(Ljava/lang/String;," return ") (1711) + Handles null at 1000 +748: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1713) + Handles null at 1000 +749: Constant(Ljava/lang/String;,"do_action_part") (1716) + Handles null at 1000 +750: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1718) + Handles null at 1000 +751: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1721) + Handles null at 1000 +752: Constant(Ljava/lang/String;,"%08d") (1724) + Handles null at 1000 +753: Constant(I,1) (1726) + Handles null at 1000 +754: New([Ljava/lang/Object;,1) (1727) + Handles null at 1000 +755: Dup(1,0) (1730) + Handles null at 1000 +756: Constant(I,0) (1731) + Handles null at 1000 +757: New(Ljava/lang/Integer;,0) (1732) + Handles null at 1000 +758: Dup(1,0) (1735) + Handles null at 1000 +759: Constant(I,0) (1736) + Handles null at 1000 +760: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (1737) + Handles null at 1000 +761: ArrayStore(Ljava/lang/Object;) (1740) + Handles null at 1000 +762: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (1741) + Handles null at 1000 +763: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1744) + Handles null at 1000 +764: Constant(Ljava/lang/String;,"(") (1747) + Handles null at 1000 +765: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1749) + Handles null at 1000 +766: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1752) + Handles null at 1000 +767: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1755) + Handles null at 1000 +768: LocalLoad(Ljava/lang/Object;,0) (1758) + Handles null at 1000 +769: New(Ljava/lang/StringBuilder;,0) (1759) + Handles null at 1000 +770: Dup(1,0) (1762) + Handles null at 1000 +771: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1763) + Handles null at 1000 +772: Constant(Ljava/lang/String;," ") (1766) + Handles null at 1000 +773: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1768) + Handles null at 1000 +774: Constant(Ljava/lang/String;,"act_num,") (1771) + Handles null at 1000 +775: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1773) + Handles null at 1000 +776: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1776) + Handles null at 1000 +777: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1779) + Handles null at 1000 +778: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1782) + Handles null at 1000 +779: LocalLoad(Ljava/lang/Object;,0) (1785) + Handles null at 1000 +780: New(Ljava/lang/StringBuilder;,0) (1786) + Handles null at 1000 +781: Dup(1,0) (1789) + Handles null at 1000 +782: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1790) + Handles null at 1000 +783: Constant(Ljava/lang/String;," ") (1793) + Handles null at 1000 +784: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1795) + Handles null at 1000 +785: Constant(Ljava/lang/String;,"parser,") (1798) + Handles null at 1000 +786: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1800) + Handles null at 1000 +787: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1803) + Handles null at 1000 +788: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1806) + Handles null at 1000 +789: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1809) + Handles null at 1000 +790: LocalLoad(Ljava/lang/Object;,0) (1812) + Handles null at 1000 +791: New(Ljava/lang/StringBuilder;,0) (1813) + Handles null at 1000 +792: Dup(1,0) (1816) + Handles null at 1000 +793: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1817) + Handles null at 1000 +794: Constant(Ljava/lang/String;," ") (1820) + Handles null at 1000 +795: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1822) + Handles null at 1000 +796: Constant(Ljava/lang/String;,"stack,") (1825) + Handles null at 1000 +797: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1827) + Handles null at 1000 +798: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1830) + Handles null at 1000 +799: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1833) + Handles null at 1000 +800: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1836) + Handles null at 1000 +801: LocalLoad(Ljava/lang/Object;,0) (1839) + Handles null at 1000 +802: New(Ljava/lang/StringBuilder;,0) (1840) + Handles null at 1000 +803: Dup(1,0) (1843) + Handles null at 1000 +804: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1844) + Handles null at 1000 +805: Constant(Ljava/lang/String;," ") (1847) + Handles null at 1000 +806: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1849) + Handles null at 1000 +807: Constant(Ljava/lang/String;,"top);") (1852) + Handles null at 1000 +808: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1854) + Handles null at 1000 +809: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1857) + Handles null at 1000 +810: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1860) + Handles null at 1000 +811: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1863) + Handles null at 1000 +812: LocalLoad(Ljava/lang/Object;,0) (1866) + Handles null at 1000 +813: Constant(Ljava/lang/String;," }") (1867) + Handles null at 1000 +814: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1869) + Handles null at 1000 +815: LocalLoad(Ljava/lang/Object;,0) (1872) + Handles null at 1000 +816: Constant(Ljava/lang/String;,"}") (1873) + Handles null at 1000 +817: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1875) + Handles null at 1000 +818: LocalLoad(Ljava/lang/Object;,0) (1878) + Handles null at 1000 +819: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1879) + Handles null at 1000 +820: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (1882) + Handles null at 1000 +821: LocalLoad(J,3) (1885) + Handles null at 1000 +822: BinaryOp(J,sub) (1886) + Handles null at 1000 +823: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (1887) + Handles null at 1000 +824: Constant(Ljava/lang/String;,"java_cup/emit") (1890) + Handles null at 1000 +825: Constant(Ljava/lang/String;,"emit_action_code(Ljava/io/PrintWriter;Ljava_cup/production;)V") (1890) + Handles null at 1000 +826: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (1890) + Handles null at 1000 +827: Constant(I,0) (1890) + Handles null at 1000 +828: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1890) + Handles null at 1000 +829: Return(V) (1890) + Handles null at 1000 +830: LocalLoad(Ljava/lang/Object;,0) (1891) + Handles null at 1000 +831: Constant(Ljava/lang/String;," /* select the action handler based on the action number */") (1892) + Handles null at 1000 +832: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1894) + Handles null at 1000 +833: LocalLoad(Ljava/lang/Object;,0) (1897) + Handles null at 1000 +834: New(Ljava/lang/StringBuilder;,0) (1898) + Handles null at 1000 +835: Dup(1,0) (1901) + Handles null at 1000 +836: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1902) + Handles null at 1000 +837: Constant(Ljava/lang/String;," switch (") (1905) + Handles null at 1000 +838: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1907) + Handles null at 1000 +839: Constant(Ljava/lang/String;,"act_num") (1910) + Handles null at 1000 +840: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1912) + Handles null at 1000 +841: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1915) + Handles null at 1000 +842: Constant(Ljava/lang/String;,"/") (1918) + Handles null at 1000 +843: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1920) + Handles null at 1000 +844: Constant(I,300) (1923) + Handles null at 1000 +845: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1926) + Handles null at 1000 +846: Constant(Ljava/lang/String;,")") (1929) + Handles null at 1000 +847: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1931) + Handles null at 1000 +848: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1934) + Handles null at 1000 +849: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1937) + Handles null at 1000 +850: LocalLoad(Ljava/lang/Object;,0) (1940) + Handles null at 1000 +851: Constant(Ljava/lang/String;," {") (1941) + Handles null at 1000 +852: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1943) + Handles null at 1000 +853: Constant(I,0) (1946) + Handles null at 1000 +854: LocalStore(I,5) (1947) + Handles null at 1000 +855: LocalLoad(I,5) (1949) + Handles null at 1000 +856: Invoke(STATIC,Ljava_cup/production;,number,()I) (1951) + Handles null at 1000 +857: Constant(I,300) (1954) + Handles null at 1000 +858: BinaryOp(I,div) (1957) + Handles null at 1000 +859: ConditionalBranch(I,gt,968) (1958) + Handles null at 1000 +860: LocalLoad(Ljava/lang/Object;,0) (1961) + Handles null at 1000 +861: New(Ljava/lang/StringBuilder;,0) (1962) + Handles null at 1000 +862: Dup(1,0) (1965) + Handles null at 1000 +863: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1966) + Handles null at 1000 +864: Constant(Ljava/lang/String;," /*. . . . . . . . ") (1969) + Handles null at 1000 +865: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1971) + Handles null at 1000 +866: LocalLoad(I,5) (1974) + Handles null at 1000 +867: Constant(I,300) (1976) + Handles null at 1000 +868: BinaryOp(I,mul) (1979) + Handles null at 1000 +869: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1980) + Handles null at 1000 +870: Constant(Ljava/lang/String;," < #action < ") (1983) + Handles null at 1000 +871: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1985) + Handles null at 1000 +872: LocalLoad(I,5) (1988) + Handles null at 1000 +873: Constant(I,1) (1990) + Handles null at 1000 +874: BinaryOp(I,add) (1991) + Handles null at 1000 +875: Constant(I,300) (1992) + Handles null at 1000 +876: BinaryOp(I,mul) (1995) + Handles null at 1000 +877: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1996) + Handles null at 1000 +878: Constant(Ljava/lang/String;,". . . . . . . . . . . .*/") (1999) + Handles null at 1000 +879: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2001) + Handles null at 1000 +880: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2004) + Handles null at 1000 +881: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2007) + Handles null at 1000 +882: LocalLoad(Ljava/lang/Object;,0) (2010) + Handles null at 1000 +883: New(Ljava/lang/StringBuilder;,0) (2011) + Handles null at 1000 +884: Dup(1,0) (2014) + Handles null at 1000 +885: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2015) + Handles null at 1000 +886: Constant(Ljava/lang/String;," case ") (2018) + Handles null at 1000 +887: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2020) + Handles null at 1000 +888: LocalLoad(I,5) (2023) + Handles null at 1000 +889: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (2025) + Handles null at 1000 +890: Constant(Ljava/lang/String;,": ") (2028) + Handles null at 1000 +891: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2030) + Handles null at 1000 +892: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2033) + Handles null at 1000 +893: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2036) + Handles null at 1000 +894: LocalLoad(Ljava/lang/Object;,0) (2039) + Handles null at 1000 +895: New(Ljava/lang/StringBuilder;,0) (2040) + Handles null at 1000 +896: Dup(1,0) (2043) + Handles null at 1000 +897: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2044) + Handles null at 1000 +898: Constant(Ljava/lang/String;," return ") (2047) + Handles null at 1000 +899: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2049) + Handles null at 1000 +900: Constant(Ljava/lang/String;,"do_action_part") (2052) + Handles null at 1000 +901: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2054) + Handles null at 1000 +902: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2057) + Handles null at 1000 +903: Constant(Ljava/lang/String;,"%08d") (2060) + Handles null at 1000 +904: Constant(I,1) (2062) + Handles null at 1000 +905: New([Ljava/lang/Object;,1) (2063) + Handles null at 1000 +906: Dup(1,0) (2066) + Handles null at 1000 +907: Constant(I,0) (2067) + Handles null at 1000 +908: New(Ljava/lang/Integer;,0) (2068) + Handles null at 1000 +909: Dup(1,0) (2071) + Handles null at 1000 +910: LocalLoad(I,5) (2072) + Handles null at 1000 +911: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (2074) + Handles null at 1000 +912: ArrayStore(Ljava/lang/Object;) (2077) + Handles null at 1000 +913: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (2078) + Handles null at 1000 +914: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2081) + Handles null at 1000 +915: Constant(Ljava/lang/String;,"(") (2084) + Handles null at 1000 +916: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2086) + Handles null at 1000 +917: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2089) + Handles null at 1000 +918: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2092) + Handles null at 1000 +919: LocalLoad(Ljava/lang/Object;,0) (2095) + Handles null at 1000 +920: New(Ljava/lang/StringBuilder;,0) (2096) + Handles null at 1000 +921: Dup(1,0) (2099) + Handles null at 1000 +922: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2100) + Handles null at 1000 +923: Constant(Ljava/lang/String;," ") (2103) + Handles null at 1000 +924: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2105) + Handles null at 1000 +925: Constant(Ljava/lang/String;,"act_num,") (2108) + Handles null at 1000 +926: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2110) + Handles null at 1000 +927: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2113) + Handles null at 1000 +928: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2116) + Handles null at 1000 +929: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2119) + Handles null at 1000 +930: LocalLoad(Ljava/lang/Object;,0) (2122) + Handles null at 1000 +931: New(Ljava/lang/StringBuilder;,0) (2123) + Handles null at 1000 +932: Dup(1,0) (2126) + Handles null at 1000 +933: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2127) + Handles null at 1000 +934: Constant(Ljava/lang/String;," ") (2130) + Handles null at 1000 +935: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2132) + Handles null at 1000 +936: Constant(Ljava/lang/String;,"parser,") (2135) + Handles null at 1000 +937: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2137) + Handles null at 1000 +938: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2140) + Handles null at 1000 +939: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2143) + Handles null at 1000 +940: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2146) + Handles null at 1000 +941: LocalLoad(Ljava/lang/Object;,0) (2149) + Handles null at 1000 +942: New(Ljava/lang/StringBuilder;,0) (2150) + Handles null at 1000 +943: Dup(1,0) (2153) + Handles null at 1000 +944: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2154) + Handles null at 1000 +945: Constant(Ljava/lang/String;," ") (2157) + Handles null at 1000 +946: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2159) + Handles null at 1000 +947: Constant(Ljava/lang/String;,"stack,") (2162) + Handles null at 1000 +948: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2164) + Handles null at 1000 +949: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2167) + Handles null at 1000 +950: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2170) + Handles null at 1000 +951: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2173) + Handles null at 1000 +952: LocalLoad(Ljava/lang/Object;,0) (2176) + Handles null at 1000 +953: New(Ljava/lang/StringBuilder;,0) (2177) + Handles null at 1000 +954: Dup(1,0) (2180) + Handles null at 1000 +955: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2181) + Handles null at 1000 +956: Constant(Ljava/lang/String;," ") (2184) + Handles null at 1000 +957: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2186) + Handles null at 1000 +958: Constant(Ljava/lang/String;,"top);") (2189) + Handles null at 1000 +959: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2191) + Handles null at 1000 +960: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2194) + Handles null at 1000 +961: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2197) + Handles null at 1000 +962: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2200) + Handles null at 1000 +963: LocalLoad(I,5) (2203) + Handles null at 1000 +964: Constant(I,1) (2203) + Handles null at 1000 +965: BinaryOp(I,add) (2203) + Handles null at 1000 +966: LocalStore(I,5) (2203) + Handles null at 1000 +967: Goto(855) (2206) + Handles null at 1000 +968: LocalLoad(Ljava/lang/Object;,0) (2209) + Handles null at 1000 +969: Constant(Ljava/lang/String;," /* . . . no valid action number: . . .*/") (2210) + Handles null at 1000 +970: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2212) + Handles null at 1000 +971: LocalLoad(Ljava/lang/Object;,0) (2215) + Handles null at 1000 +972: Constant(Ljava/lang/String;," default:") (2216) + Handles null at 1000 +973: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2218) + Handles null at 1000 +974: LocalLoad(Ljava/lang/Object;,0) (2221) + Handles null at 1000 +975: Constant(Ljava/lang/String;," throw new Exception(\"Invalid action number found in internal parse table\");") (2222) + Handles null at 1000 +976: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2224) + Handles null at 1000 +977: LocalLoad(Ljava/lang/Object;,0) (2227) + Handles null at 1000 +978: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (2228) + Handles null at 1000 +979: LocalLoad(Ljava/lang/Object;,0) (2231) + Handles null at 1000 +980: Constant(Ljava/lang/String;," } /* end of switch */") (2232) + Handles null at 1000 +981: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2234) + Handles null at 1000 +982: LocalLoad(Ljava/lang/Object;,0) (2237) + Handles null at 1000 +983: Constant(Ljava/lang/String;," }") (2238) + Handles null at 1000 +984: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2240) + Handles null at 1000 +985: LocalLoad(Ljava/lang/Object;,0) (2243) + Handles null at 1000 +986: Constant(Ljava/lang/String;,"}") (2244) + Handles null at 1000 +987: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2246) + Handles null at 1000 +988: LocalLoad(Ljava/lang/Object;,0) (2249) + Handles null at 1000 +989: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (2250) + Handles null at 1000 +990: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (2253) + Handles null at 1000 +991: LocalLoad(J,3) (2256) + Handles null at 1000 +992: BinaryOp(J,sub) (2257) + Handles null at 1000 +993: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (2258) + Handles null at 1000 +994: Constant(Ljava/lang/String;,"java_cup/emit") (2261) + Handles null at 1000 +995: Constant(Ljava/lang/String;,"emit_action_code(Ljava/io/PrintWriter;Ljava_cup/production;)V") (2261) + Handles null at 1000 +996: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (2261) + Handles null at 1000 +997: Constant(I,0) (2261) + Handles null at 1000 +998: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2261) + Handles null at 1000 +999: Return(V) (2261) + Handles null at 1000 +1000: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1001: Constant(Ljava/lang/String;,"emit_action_code(Ljava/io/PrintWriter;Ljava_cup/production;)V") (0) +1002: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +1003: Constant(I,1) (0) +1004: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +1005: Throw() (0) +Instrumenting emit_production_table (Ljava/io/PrintWriter;)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) +1: LocalStore(J,3) (3) +2: Invoke(STATIC,Ljava_cup/production;,number,()I) (4) +3: New([Ljava_cup/production;,1) (7) +4: LocalStore(Ljava/lang/Object;,1) (10) +5: Invoke(STATIC,Ljava_cup/production;,all,()Ljava/util/Enumeration;) (11) +6: LocalStore(Ljava/lang/Object;,5) (14) +7: LocalLoad(Ljava/lang/Object;,5) (16) +8: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (18) +9: Constant(I,0) (23) +10: ConditionalBranch(I,eq,21) (23) +11: LocalLoad(Ljava/lang/Object;,5) (26) +12: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (28) +13: CheckCast(Ljava_cup/production;) (33) +14: LocalStore(Ljava/lang/Object;,2) (36) +15: LocalLoad(Ljava/lang/Object;,1) (37) +16: LocalLoad(Ljava/lang/Object;,2) (38) +17: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (39) +18: LocalLoad(Ljava/lang/Object;,2) (42) +19: ArrayStore(Ljava/lang/Object;) (43) +20: Goto(7) (44) +21: Invoke(STATIC,Ljava_cup/production;,number,()I) (47) +22: Constant(I,2) (50) +23: New([[S,2) (51) +24: LocalStore(Ljava/lang/Object;,5) (55) +25: Constant(I,0) (57) +26: LocalStore(I,6) (58) +27: LocalLoad(I,6) (60) +28: Invoke(STATIC,Ljava_cup/production;,number,()I) (62) +29: ConditionalBranch(I,ge,57) (65) +30: LocalLoad(Ljava/lang/Object;,1) (68) +31: LocalLoad(I,6) (69) +32: ArrayLoad(Ljava/lang/Object;) (71) +33: LocalStore(Ljava/lang/Object;,2) (72) +34: LocalLoad(Ljava/lang/Object;,5) (73) +35: LocalLoad(I,6) (75) +36: ArrayLoad(Ljava/lang/Object;) (77) +37: Constant(I,0) (78) +38: LocalLoad(Ljava/lang/Object;,2) (79) +39: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (80) +40: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (83) +41: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (86) +42: Conversion(I,S) (89) +43: ArrayStore(S) (90) +44: LocalLoad(Ljava/lang/Object;,5) (91) +45: LocalLoad(I,6) (93) +46: ArrayLoad(Ljava/lang/Object;) (95) +47: Constant(I,1) (96) +48: LocalLoad(Ljava/lang/Object;,2) (97) +49: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (98) +50: Conversion(I,S) (101) +51: ArrayStore(S) (102) +52: LocalLoad(I,6) (103) +53: Constant(I,1) (103) +54: BinaryOp(I,add) (103) +55: LocalStore(I,6) (103) +56: Goto(27) (106) +57: LocalLoad(Ljava/lang/Object;,0) (109) +58: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (110) +59: LocalLoad(Ljava/lang/Object;,0) (113) +60: Constant(Ljava/lang/String;," /** Production table. */") (114) +61: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (116) +62: LocalLoad(Ljava/lang/Object;,0) (119) +63: Constant(Ljava/lang/String;," protected static final short _production_table[][] = ") (120) +64: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (122) +65: LocalLoad(Ljava/lang/Object;,0) (125) +66: Constant(Ljava/lang/String;," unpackFromStrings(") (126) +67: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (128) +68: LocalLoad(Ljava/lang/Object;,0) (131) +69: LocalLoad(Ljava/lang/Object;,5) (132) +70: Invoke(STATIC,Ljava_cup/emit;,do_table_as_string,(Ljava/io/PrintWriter;[[S)V) (134) +71: LocalLoad(Ljava/lang/Object;,0) (137) +72: Constant(Ljava/lang/String;,");") (138) +73: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (140) +74: LocalLoad(Ljava/lang/Object;,0) (143) +75: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (144) +76: LocalLoad(Ljava/lang/Object;,0) (147) +77: Constant(Ljava/lang/String;," /** Access to production table. */") (148) +78: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (150) +79: LocalLoad(Ljava/lang/Object;,0) (153) +80: Constant(Ljava/lang/String;," public short[][] production_table() {return _production_table;}") (154) +81: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (156) +82: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (159) +83: LocalLoad(J,3) (162) +84: BinaryOp(J,sub) (163) +85: Put(J,STATIC,Ljava_cup/emit;,production_table_time) (164) +86: Return(V) (167) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"emit_production_table(Ljava/io/PrintWriter;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) + Handles null at 96 +5: LocalStore(J,3) (3) + Handles null at 96 +6: Invoke(STATIC,Ljava_cup/production;,number,()I) (4) + Handles null at 96 +7: New([Ljava_cup/production;,1) (7) + Handles null at 96 +8: LocalStore(Ljava/lang/Object;,1) (10) + Handles null at 96 +9: Invoke(STATIC,Ljava_cup/production;,all,()Ljava/util/Enumeration;) (11) + Handles null at 96 +10: LocalStore(Ljava/lang/Object;,5) (14) + Handles null at 96 +11: LocalLoad(Ljava/lang/Object;,5) (16) + Handles null at 96 +12: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (18) + Handles null at 96 +13: Constant(I,0) (23) + Handles null at 96 +14: ConditionalBranch(I,eq,25) (23) + Handles null at 96 +15: LocalLoad(Ljava/lang/Object;,5) (26) + Handles null at 96 +16: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (28) + Handles null at 96 +17: CheckCast(Ljava_cup/production;) (33) + Handles null at 96 +18: LocalStore(Ljava/lang/Object;,2) (36) + Handles null at 96 +19: LocalLoad(Ljava/lang/Object;,1) (37) + Handles null at 96 +20: LocalLoad(Ljava/lang/Object;,2) (38) + Handles null at 96 +21: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (39) + Handles null at 96 +22: LocalLoad(Ljava/lang/Object;,2) (42) + Handles null at 96 +23: ArrayStore(Ljava/lang/Object;) (43) + Handles null at 96 +24: Goto(11) (44) + Handles null at 96 +25: Invoke(STATIC,Ljava_cup/production;,number,()I) (47) + Handles null at 96 +26: Constant(I,2) (50) + Handles null at 96 +27: New([[S,2) (51) + Handles null at 96 +28: LocalStore(Ljava/lang/Object;,5) (55) + Handles null at 96 +29: Constant(I,0) (57) + Handles null at 96 +30: LocalStore(I,6) (58) + Handles null at 96 +31: LocalLoad(I,6) (60) + Handles null at 96 +32: Invoke(STATIC,Ljava_cup/production;,number,()I) (62) + Handles null at 96 +33: ConditionalBranch(I,ge,61) (65) + Handles null at 96 +34: LocalLoad(Ljava/lang/Object;,1) (68) + Handles null at 96 +35: LocalLoad(I,6) (69) + Handles null at 96 +36: ArrayLoad(Ljava/lang/Object;) (71) + Handles null at 96 +37: LocalStore(Ljava/lang/Object;,2) (72) + Handles null at 96 +38: LocalLoad(Ljava/lang/Object;,5) (73) + Handles null at 96 +39: LocalLoad(I,6) (75) + Handles null at 96 +40: ArrayLoad(Ljava/lang/Object;) (77) + Handles null at 96 +41: Constant(I,0) (78) + Handles null at 96 +42: LocalLoad(Ljava/lang/Object;,2) (79) + Handles null at 96 +43: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (80) + Handles null at 96 +44: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (83) + Handles null at 96 +45: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (86) + Handles null at 96 +46: Conversion(I,S) (89) + Handles null at 96 +47: ArrayStore(S) (90) + Handles null at 96 +48: LocalLoad(Ljava/lang/Object;,5) (91) + Handles null at 96 +49: LocalLoad(I,6) (93) + Handles null at 96 +50: ArrayLoad(Ljava/lang/Object;) (95) + Handles null at 96 +51: Constant(I,1) (96) + Handles null at 96 +52: LocalLoad(Ljava/lang/Object;,2) (97) + Handles null at 96 +53: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (98) + Handles null at 96 +54: Conversion(I,S) (101) + Handles null at 96 +55: ArrayStore(S) (102) + Handles null at 96 +56: LocalLoad(I,6) (103) + Handles null at 96 +57: Constant(I,1) (103) + Handles null at 96 +58: BinaryOp(I,add) (103) + Handles null at 96 +59: LocalStore(I,6) (103) + Handles null at 96 +60: Goto(31) (106) + Handles null at 96 +61: LocalLoad(Ljava/lang/Object;,0) (109) + Handles null at 96 +62: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (110) + Handles null at 96 +63: LocalLoad(Ljava/lang/Object;,0) (113) + Handles null at 96 +64: Constant(Ljava/lang/String;," /** Production table. */") (114) + Handles null at 96 +65: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (116) + Handles null at 96 +66: LocalLoad(Ljava/lang/Object;,0) (119) + Handles null at 96 +67: Constant(Ljava/lang/String;," protected static final short _production_table[][] = ") (120) + Handles null at 96 +68: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (122) + Handles null at 96 +69: LocalLoad(Ljava/lang/Object;,0) (125) + Handles null at 96 +70: Constant(Ljava/lang/String;," unpackFromStrings(") (126) + Handles null at 96 +71: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (128) + Handles null at 96 +72: LocalLoad(Ljava/lang/Object;,0) (131) + Handles null at 96 +73: LocalLoad(Ljava/lang/Object;,5) (132) + Handles null at 96 +74: Invoke(STATIC,Ljava_cup/emit;,do_table_as_string,(Ljava/io/PrintWriter;[[S)V) (134) + Handles null at 96 +75: LocalLoad(Ljava/lang/Object;,0) (137) + Handles null at 96 +76: Constant(Ljava/lang/String;,");") (138) + Handles null at 96 +77: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (140) + Handles null at 96 +78: LocalLoad(Ljava/lang/Object;,0) (143) + Handles null at 96 +79: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (144) + Handles null at 96 +80: LocalLoad(Ljava/lang/Object;,0) (147) + Handles null at 96 +81: Constant(Ljava/lang/String;," /** Access to production table. */") (148) + Handles null at 96 +82: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (150) + Handles null at 96 +83: LocalLoad(Ljava/lang/Object;,0) (153) + Handles null at 96 +84: Constant(Ljava/lang/String;," public short[][] production_table() {return _production_table;}") (154) + Handles null at 96 +85: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (156) + Handles null at 96 +86: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (159) + Handles null at 96 +87: LocalLoad(J,3) (162) + Handles null at 96 +88: BinaryOp(J,sub) (163) + Handles null at 96 +89: Put(J,STATIC,Ljava_cup/emit;,production_table_time) (164) + Handles null at 96 +90: Constant(Ljava/lang/String;,"java_cup/emit") (167) + Handles null at 96 +91: Constant(Ljava/lang/String;,"emit_production_table(Ljava/io/PrintWriter;)V") (167) + Handles null at 96 +92: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (167) + Handles null at 96 +93: Constant(I,0) (167) + Handles null at 96 +94: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (167) + Handles null at 96 +95: Return(V) (167) + Handles null at 96 +96: Constant(Ljava/lang/String;,"java_cup/emit") (0) +97: Constant(Ljava/lang/String;,"emit_production_table(Ljava/io/PrintWriter;)V") (0) +98: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +99: Constant(I,1) (0) +100: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +101: Throw() (0) +Instrumenting do_action_table (Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Z)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) +1: LocalStore(J,6) (3) +2: LocalLoad(Ljava/lang/Object;,1) (5) +3: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,num_states,()I) (6) +4: New([[S,1) (9) +5: LocalStore(Ljava/lang/Object;,8) (12) +6: Constant(I,0) (14) +7: LocalStore(I,9) (15) +8: LocalLoad(I,9) (17) +9: LocalLoad(Ljava/lang/Object;,1) (19) +10: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,num_states,()I) (20) +11: ConditionalBranch(I,ge,195) (23) +12: LocalLoad(Ljava/lang/Object;,1) (26) +13: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (27) +14: LocalLoad(I,9) (30) +15: ArrayLoad(Ljava/lang/Object;) (32) +16: LocalStore(Ljava/lang/Object;,3) (33) +17: LocalLoad(I,2) (34) +18: Constant(I,0) (35) +19: ConditionalBranch(I,eq,23) (35) +20: LocalLoad(Ljava/lang/Object;,3) (38) +21: Invoke(VIRTUAL,Ljava_cup/parse_action_row;,compute_default,()V) (39) +22: Goto(26) (42) +23: LocalLoad(Ljava/lang/Object;,3) (45) +24: Constant(I,-1) (46) +25: Put(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (47) +26: Constant(I,2) (50) +27: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (51) +28: BinaryOp(I,mul) (54) +29: New([S,1) (55) +30: LocalStore(Ljava/lang/Object;,10) (57) +31: Constant(I,0) (59) +32: LocalStore(I,11) (60) +33: Constant(I,0) (62) +34: LocalStore(I,12) (63) +35: LocalLoad(I,12) (65) +36: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (67) +37: ConditionalBranch(I,ge,135) (70) +38: LocalLoad(Ljava/lang/Object;,3) (73) +39: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (74) +40: LocalLoad(I,12) (77) +41: ArrayLoad(Ljava/lang/Object;) (79) +42: LocalStore(Ljava/lang/Object;,4) (80) +43: LocalLoad(Ljava/lang/Object;,4) (82) +44: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (84) +45: Constant(I,0) (87) +46: ConditionalBranch(I,eq,130) (87) +47: LocalLoad(Ljava/lang/Object;,4) (90) +48: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (92) +49: Constant(I,1) (95) +50: ConditionalBranch(I,ne,75) (96) +51: LocalLoad(Ljava/lang/Object;,10) (99) +52: LocalLoad(I,11) (101) +53: LocalLoad(I,11) (103) +54: Constant(I,1) (103) +55: BinaryOp(I,add) (103) +56: LocalStore(I,11) (103) +57: LocalLoad(I,12) (106) +58: Conversion(I,S) (108) +59: ArrayStore(S) (109) +60: LocalLoad(Ljava/lang/Object;,10) (110) +61: LocalLoad(I,11) (112) +62: LocalLoad(I,11) (114) +63: Constant(I,1) (114) +64: BinaryOp(I,add) (114) +65: LocalStore(I,11) (114) +66: LocalLoad(Ljava/lang/Object;,4) (117) +67: CheckCast(Ljava_cup/shift_action;) (119) +68: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (122) +69: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (125) +70: Constant(I,1) (128) +71: BinaryOp(I,add) (129) +72: Conversion(I,S) (130) +73: ArrayStore(S) (131) +74: Goto(130) (132) +75: LocalLoad(Ljava/lang/Object;,4) (135) +76: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (137) +77: Constant(I,2) (140) +78: ConditionalBranch(I,ne,110) (141) +79: LocalLoad(Ljava/lang/Object;,4) (144) +80: CheckCast(Ljava_cup/reduce_action;) (146) +81: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (149) +82: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (152) +83: LocalStore(I,5) (155) +84: LocalLoad(I,5) (157) +85: LocalLoad(Ljava/lang/Object;,3) (159) +86: Get(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (160) +87: ConditionalBranch(I,eq,130) (163) +88: LocalLoad(Ljava/lang/Object;,10) (166) +89: LocalLoad(I,11) (168) +90: LocalLoad(I,11) (170) +91: Constant(I,1) (170) +92: BinaryOp(I,add) (170) +93: LocalStore(I,11) (170) +94: LocalLoad(I,12) (173) +95: Conversion(I,S) (175) +96: ArrayStore(S) (176) +97: LocalLoad(Ljava/lang/Object;,10) (177) +98: LocalLoad(I,11) (179) +99: LocalLoad(I,11) (181) +100: Constant(I,1) (181) +101: BinaryOp(I,add) (181) +102: LocalStore(I,11) (181) +103: LocalLoad(I,5) (184) +104: Constant(I,1) (186) +105: BinaryOp(I,add) (187) +106: UnaryOp(I,neg) (188) +107: Conversion(I,S) (189) +108: ArrayStore(S) (190) +109: Goto(130) (191) +110: LocalLoad(Ljava/lang/Object;,4) (194) +111: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (196) +112: Constant(I,3) (199) +113: ConditionalBranch(I,ne,115) (200) +114: Goto(130) (203) +115: New(Ljava_cup/internal_error;,0) (206) +116: Dup(1,0) (209) +117: New(Ljava/lang/StringBuilder;,0) (210) +118: Dup(1,0) (213) +119: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (214) +120: Constant(Ljava/lang/String;,"Unrecognized action code ") (217) +121: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (219) +122: LocalLoad(Ljava/lang/Object;,4) (222) +123: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (224) +124: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (227) +125: Constant(Ljava/lang/String;," found in parse table") (230) +126: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (232) +127: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (235) +128: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (238) +129: Throw() (241) +130: LocalLoad(I,12) (242) +131: Constant(I,1) (242) +132: BinaryOp(I,add) (242) +133: LocalStore(I,12) (242) +134: Goto(35) (245) +135: LocalLoad(Ljava/lang/Object;,8) (248) +136: LocalLoad(I,9) (250) +137: LocalLoad(I,11) (252) +138: Constant(I,2) (254) +139: BinaryOp(I,add) (255) +140: New([S,1) (256) +141: ArrayStore(Ljava/lang/Object;) (258) +142: LocalLoad(Ljava/lang/Object;,10) (259) +143: Constant(I,0) (261) +144: LocalLoad(Ljava/lang/Object;,8) (262) +145: LocalLoad(I,9) (264) +146: ArrayLoad(Ljava/lang/Object;) (266) +147: Constant(I,0) (267) +148: LocalLoad(I,11) (268) +149: Invoke(STATIC,Ljava/lang/System;,arraycopy,(Ljava/lang/Object;ILjava/lang/Object;II)V) (270) +150: LocalLoad(Ljava/lang/Object;,8) (273) +151: LocalLoad(I,9) (275) +152: ArrayLoad(Ljava/lang/Object;) (277) +153: LocalLoad(I,11) (278) +154: LocalLoad(I,11) (280) +155: Constant(I,1) (280) +156: BinaryOp(I,add) (280) +157: LocalStore(I,11) (280) +158: Constant(I,-1) (283) +159: ArrayStore(S) (284) +160: LocalLoad(Ljava/lang/Object;,3) (285) +161: Get(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (286) +162: Constant(I,-1) (289) +163: ConditionalBranch(I,eq,180) (290) +164: LocalLoad(Ljava/lang/Object;,8) (293) +165: LocalLoad(I,9) (295) +166: ArrayLoad(Ljava/lang/Object;) (297) +167: LocalLoad(I,11) (298) +168: LocalLoad(I,11) (300) +169: Constant(I,1) (300) +170: BinaryOp(I,add) (300) +171: LocalStore(I,11) (300) +172: LocalLoad(Ljava/lang/Object;,3) (303) +173: Get(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (304) +174: Constant(I,1) (307) +175: BinaryOp(I,add) (308) +176: UnaryOp(I,neg) (309) +177: Conversion(I,S) (310) +178: ArrayStore(S) (311) +179: Goto(190) (312) +180: LocalLoad(Ljava/lang/Object;,8) (315) +181: LocalLoad(I,9) (317) +182: ArrayLoad(Ljava/lang/Object;) (319) +183: LocalLoad(I,11) (320) +184: LocalLoad(I,11) (322) +185: Constant(I,1) (322) +186: BinaryOp(I,add) (322) +187: LocalStore(I,11) (322) +188: Constant(I,0) (325) +189: ArrayStore(S) (326) +190: LocalLoad(I,9) (327) +191: Constant(I,1) (327) +192: BinaryOp(I,add) (327) +193: LocalStore(I,9) (327) +194: Goto(8) (330) +195: LocalLoad(Ljava/lang/Object;,0) (333) +196: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (334) +197: LocalLoad(Ljava/lang/Object;,0) (337) +198: Constant(Ljava/lang/String;," /** Parse-action table. */") (338) +199: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (340) +200: LocalLoad(Ljava/lang/Object;,0) (343) +201: Constant(Ljava/lang/String;," protected static final short[][] _action_table = ") (344) +202: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (346) +203: LocalLoad(Ljava/lang/Object;,0) (349) +204: Constant(Ljava/lang/String;," unpackFromStrings(") (350) +205: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (352) +206: LocalLoad(Ljava/lang/Object;,0) (355) +207: LocalLoad(Ljava/lang/Object;,8) (356) +208: Invoke(STATIC,Ljava_cup/emit;,do_table_as_string,(Ljava/io/PrintWriter;[[S)V) (358) +209: LocalLoad(Ljava/lang/Object;,0) (361) +210: Constant(Ljava/lang/String;,");") (362) +211: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (364) +212: LocalLoad(Ljava/lang/Object;,0) (367) +213: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (368) +214: LocalLoad(Ljava/lang/Object;,0) (371) +215: Constant(Ljava/lang/String;," /** Access to parse-action table. */") (372) +216: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (374) +217: LocalLoad(Ljava/lang/Object;,0) (377) +218: Constant(Ljava/lang/String;," public short[][] action_table() {return _action_table;}") (378) +219: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (380) +220: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (383) +221: LocalLoad(J,6) (386) +222: BinaryOp(J,sub) (388) +223: Put(J,STATIC,Ljava_cup/emit;,action_table_time) (389) +224: Return(V) (392) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"do_action_table(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Z)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) + Handles null at 234 +5: LocalStore(J,6) (3) + Handles null at 234 +6: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 234 +7: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,num_states,()I) (6) + Handles null at 234 +8: New([[S,1) (9) + Handles null at 234 +9: LocalStore(Ljava/lang/Object;,8) (12) + Handles null at 234 +10: Constant(I,0) (14) + Handles null at 234 +11: LocalStore(I,9) (15) + Handles null at 234 +12: LocalLoad(I,9) (17) + Handles null at 234 +13: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 234 +14: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,num_states,()I) (20) + Handles null at 234 +15: ConditionalBranch(I,ge,199) (23) + Handles null at 234 +16: LocalLoad(Ljava/lang/Object;,1) (26) + Handles null at 234 +17: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (27) + Handles null at 234 +18: LocalLoad(I,9) (30) + Handles null at 234 +19: ArrayLoad(Ljava/lang/Object;) (32) + Handles null at 234 +20: LocalStore(Ljava/lang/Object;,3) (33) + Handles null at 234 +21: LocalLoad(I,2) (34) + Handles null at 234 +22: Constant(I,0) (35) + Handles null at 234 +23: ConditionalBranch(I,eq,27) (35) + Handles null at 234 +24: LocalLoad(Ljava/lang/Object;,3) (38) + Handles null at 234 +25: Invoke(VIRTUAL,Ljava_cup/parse_action_row;,compute_default,()V) (39) + Handles null at 234 +26: Goto(30) (42) + Handles null at 234 +27: LocalLoad(Ljava/lang/Object;,3) (45) + Handles null at 234 +28: Constant(I,-1) (46) + Handles null at 234 +29: Put(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (47) + Handles null at 234 +30: Constant(I,2) (50) + Handles null at 234 +31: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (51) + Handles null at 234 +32: BinaryOp(I,mul) (54) + Handles null at 234 +33: New([S,1) (55) + Handles null at 234 +34: LocalStore(Ljava/lang/Object;,10) (57) + Handles null at 234 +35: Constant(I,0) (59) + Handles null at 234 +36: LocalStore(I,11) (60) + Handles null at 234 +37: Constant(I,0) (62) + Handles null at 234 +38: LocalStore(I,12) (63) + Handles null at 234 +39: LocalLoad(I,12) (65) + Handles null at 234 +40: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (67) + Handles null at 234 +41: ConditionalBranch(I,ge,139) (70) + Handles null at 234 +42: LocalLoad(Ljava/lang/Object;,3) (73) + Handles null at 234 +43: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (74) + Handles null at 234 +44: LocalLoad(I,12) (77) + Handles null at 234 +45: ArrayLoad(Ljava/lang/Object;) (79) + Handles null at 234 +46: LocalStore(Ljava/lang/Object;,4) (80) + Handles null at 234 +47: LocalLoad(Ljava/lang/Object;,4) (82) + Handles null at 234 +48: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (84) + Handles null at 234 +49: Constant(I,0) (87) + Handles null at 234 +50: ConditionalBranch(I,eq,134) (87) + Handles null at 234 +51: LocalLoad(Ljava/lang/Object;,4) (90) + Handles null at 234 +52: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (92) + Handles null at 234 +53: Constant(I,1) (95) + Handles null at 234 +54: ConditionalBranch(I,ne,79) (96) + Handles null at 234 +55: LocalLoad(Ljava/lang/Object;,10) (99) + Handles null at 234 +56: LocalLoad(I,11) (101) + Handles null at 234 +57: LocalLoad(I,11) (103) + Handles null at 234 +58: Constant(I,1) (103) + Handles null at 234 +59: BinaryOp(I,add) (103) + Handles null at 234 +60: LocalStore(I,11) (103) + Handles null at 234 +61: LocalLoad(I,12) (106) + Handles null at 234 +62: Conversion(I,S) (108) + Handles null at 234 +63: ArrayStore(S) (109) + Handles null at 234 +64: LocalLoad(Ljava/lang/Object;,10) (110) + Handles null at 234 +65: LocalLoad(I,11) (112) + Handles null at 234 +66: LocalLoad(I,11) (114) + Handles null at 234 +67: Constant(I,1) (114) + Handles null at 234 +68: BinaryOp(I,add) (114) + Handles null at 234 +69: LocalStore(I,11) (114) + Handles null at 234 +70: LocalLoad(Ljava/lang/Object;,4) (117) + Handles null at 234 +71: CheckCast(Ljava_cup/shift_action;) (119) + Handles null at 234 +72: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (122) + Handles null at 234 +73: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (125) + Handles null at 234 +74: Constant(I,1) (128) + Handles null at 234 +75: BinaryOp(I,add) (129) + Handles null at 234 +76: Conversion(I,S) (130) + Handles null at 234 +77: ArrayStore(S) (131) + Handles null at 234 +78: Goto(134) (132) + Handles null at 234 +79: LocalLoad(Ljava/lang/Object;,4) (135) + Handles null at 234 +80: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (137) + Handles null at 234 +81: Constant(I,2) (140) + Handles null at 234 +82: ConditionalBranch(I,ne,114) (141) + Handles null at 234 +83: LocalLoad(Ljava/lang/Object;,4) (144) + Handles null at 234 +84: CheckCast(Ljava_cup/reduce_action;) (146) + Handles null at 234 +85: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (149) + Handles null at 234 +86: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (152) + Handles null at 234 +87: LocalStore(I,5) (155) + Handles null at 234 +88: LocalLoad(I,5) (157) + Handles null at 234 +89: LocalLoad(Ljava/lang/Object;,3) (159) + Handles null at 234 +90: Get(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (160) + Handles null at 234 +91: ConditionalBranch(I,eq,134) (163) + Handles null at 234 +92: LocalLoad(Ljava/lang/Object;,10) (166) + Handles null at 234 +93: LocalLoad(I,11) (168) + Handles null at 234 +94: LocalLoad(I,11) (170) + Handles null at 234 +95: Constant(I,1) (170) + Handles null at 234 +96: BinaryOp(I,add) (170) + Handles null at 234 +97: LocalStore(I,11) (170) + Handles null at 234 +98: LocalLoad(I,12) (173) + Handles null at 234 +99: Conversion(I,S) (175) + Handles null at 234 +100: ArrayStore(S) (176) + Handles null at 234 +101: LocalLoad(Ljava/lang/Object;,10) (177) + Handles null at 234 +102: LocalLoad(I,11) (179) + Handles null at 234 +103: LocalLoad(I,11) (181) + Handles null at 234 +104: Constant(I,1) (181) + Handles null at 234 +105: BinaryOp(I,add) (181) + Handles null at 234 +106: LocalStore(I,11) (181) + Handles null at 234 +107: LocalLoad(I,5) (184) + Handles null at 234 +108: Constant(I,1) (186) + Handles null at 234 +109: BinaryOp(I,add) (187) + Handles null at 234 +110: UnaryOp(I,neg) (188) + Handles null at 234 +111: Conversion(I,S) (189) + Handles null at 234 +112: ArrayStore(S) (190) + Handles null at 234 +113: Goto(134) (191) + Handles null at 234 +114: LocalLoad(Ljava/lang/Object;,4) (194) + Handles null at 234 +115: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (196) + Handles null at 234 +116: Constant(I,3) (199) + Handles null at 234 +117: ConditionalBranch(I,ne,119) (200) + Handles null at 234 +118: Goto(134) (203) + Handles null at 234 +119: New(Ljava_cup/internal_error;,0) (206) + Handles null at 234 +120: Dup(1,0) (209) + Handles null at 234 +121: New(Ljava/lang/StringBuilder;,0) (210) + Handles null at 234 +122: Dup(1,0) (213) + Handles null at 234 +123: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (214) + Handles null at 234 +124: Constant(Ljava/lang/String;,"Unrecognized action code ") (217) + Handles null at 234 +125: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (219) + Handles null at 234 +126: LocalLoad(Ljava/lang/Object;,4) (222) + Handles null at 234 +127: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (224) + Handles null at 234 +128: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (227) + Handles null at 234 +129: Constant(Ljava/lang/String;," found in parse table") (230) + Handles null at 234 +130: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (232) + Handles null at 234 +131: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (235) + Handles null at 234 +132: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (238) + Handles null at 234 +133: Throw() (241) + Handles null at 234 +134: LocalLoad(I,12) (242) + Handles null at 234 +135: Constant(I,1) (242) + Handles null at 234 +136: BinaryOp(I,add) (242) + Handles null at 234 +137: LocalStore(I,12) (242) + Handles null at 234 +138: Goto(39) (245) + Handles null at 234 +139: LocalLoad(Ljava/lang/Object;,8) (248) + Handles null at 234 +140: LocalLoad(I,9) (250) + Handles null at 234 +141: LocalLoad(I,11) (252) + Handles null at 234 +142: Constant(I,2) (254) + Handles null at 234 +143: BinaryOp(I,add) (255) + Handles null at 234 +144: New([S,1) (256) + Handles null at 234 +145: ArrayStore(Ljava/lang/Object;) (258) + Handles null at 234 +146: LocalLoad(Ljava/lang/Object;,10) (259) + Handles null at 234 +147: Constant(I,0) (261) + Handles null at 234 +148: LocalLoad(Ljava/lang/Object;,8) (262) + Handles null at 234 +149: LocalLoad(I,9) (264) + Handles null at 234 +150: ArrayLoad(Ljava/lang/Object;) (266) + Handles null at 234 +151: Constant(I,0) (267) + Handles null at 234 +152: LocalLoad(I,11) (268) + Handles null at 234 +153: Invoke(STATIC,Ljava/lang/System;,arraycopy,(Ljava/lang/Object;ILjava/lang/Object;II)V) (270) + Handles null at 234 +154: LocalLoad(Ljava/lang/Object;,8) (273) + Handles null at 234 +155: LocalLoad(I,9) (275) + Handles null at 234 +156: ArrayLoad(Ljava/lang/Object;) (277) + Handles null at 234 +157: LocalLoad(I,11) (278) + Handles null at 234 +158: LocalLoad(I,11) (280) + Handles null at 234 +159: Constant(I,1) (280) + Handles null at 234 +160: BinaryOp(I,add) (280) + Handles null at 234 +161: LocalStore(I,11) (280) + Handles null at 234 +162: Constant(I,-1) (283) + Handles null at 234 +163: ArrayStore(S) (284) + Handles null at 234 +164: LocalLoad(Ljava/lang/Object;,3) (285) + Handles null at 234 +165: Get(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (286) + Handles null at 234 +166: Constant(I,-1) (289) + Handles null at 234 +167: ConditionalBranch(I,eq,184) (290) + Handles null at 234 +168: LocalLoad(Ljava/lang/Object;,8) (293) + Handles null at 234 +169: LocalLoad(I,9) (295) + Handles null at 234 +170: ArrayLoad(Ljava/lang/Object;) (297) + Handles null at 234 +171: LocalLoad(I,11) (298) + Handles null at 234 +172: LocalLoad(I,11) (300) + Handles null at 234 +173: Constant(I,1) (300) + Handles null at 234 +174: BinaryOp(I,add) (300) + Handles null at 234 +175: LocalStore(I,11) (300) + Handles null at 234 +176: LocalLoad(Ljava/lang/Object;,3) (303) + Handles null at 234 +177: Get(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (304) + Handles null at 234 +178: Constant(I,1) (307) + Handles null at 234 +179: BinaryOp(I,add) (308) + Handles null at 234 +180: UnaryOp(I,neg) (309) + Handles null at 234 +181: Conversion(I,S) (310) + Handles null at 234 +182: ArrayStore(S) (311) + Handles null at 234 +183: Goto(194) (312) + Handles null at 234 +184: LocalLoad(Ljava/lang/Object;,8) (315) + Handles null at 234 +185: LocalLoad(I,9) (317) + Handles null at 234 +186: ArrayLoad(Ljava/lang/Object;) (319) + Handles null at 234 +187: LocalLoad(I,11) (320) + Handles null at 234 +188: LocalLoad(I,11) (322) + Handles null at 234 +189: Constant(I,1) (322) + Handles null at 234 +190: BinaryOp(I,add) (322) + Handles null at 234 +191: LocalStore(I,11) (322) + Handles null at 234 +192: Constant(I,0) (325) + Handles null at 234 +193: ArrayStore(S) (326) + Handles null at 234 +194: LocalLoad(I,9) (327) + Handles null at 234 +195: Constant(I,1) (327) + Handles null at 234 +196: BinaryOp(I,add) (327) + Handles null at 234 +197: LocalStore(I,9) (327) + Handles null at 234 +198: Goto(12) (330) + Handles null at 234 +199: LocalLoad(Ljava/lang/Object;,0) (333) + Handles null at 234 +200: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (334) + Handles null at 234 +201: LocalLoad(Ljava/lang/Object;,0) (337) + Handles null at 234 +202: Constant(Ljava/lang/String;," /** Parse-action table. */") (338) + Handles null at 234 +203: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (340) + Handles null at 234 +204: LocalLoad(Ljava/lang/Object;,0) (343) + Handles null at 234 +205: Constant(Ljava/lang/String;," protected static final short[][] _action_table = ") (344) + Handles null at 234 +206: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (346) + Handles null at 234 +207: LocalLoad(Ljava/lang/Object;,0) (349) + Handles null at 234 +208: Constant(Ljava/lang/String;," unpackFromStrings(") (350) + Handles null at 234 +209: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (352) + Handles null at 234 +210: LocalLoad(Ljava/lang/Object;,0) (355) + Handles null at 234 +211: LocalLoad(Ljava/lang/Object;,8) (356) + Handles null at 234 +212: Invoke(STATIC,Ljava_cup/emit;,do_table_as_string,(Ljava/io/PrintWriter;[[S)V) (358) + Handles null at 234 +213: LocalLoad(Ljava/lang/Object;,0) (361) + Handles null at 234 +214: Constant(Ljava/lang/String;,");") (362) + Handles null at 234 +215: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (364) + Handles null at 234 +216: LocalLoad(Ljava/lang/Object;,0) (367) + Handles null at 234 +217: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (368) + Handles null at 234 +218: LocalLoad(Ljava/lang/Object;,0) (371) + Handles null at 234 +219: Constant(Ljava/lang/String;," /** Access to parse-action table. */") (372) + Handles null at 234 +220: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (374) + Handles null at 234 +221: LocalLoad(Ljava/lang/Object;,0) (377) + Handles null at 234 +222: Constant(Ljava/lang/String;," public short[][] action_table() {return _action_table;}") (378) + Handles null at 234 +223: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (380) + Handles null at 234 +224: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (383) + Handles null at 234 +225: LocalLoad(J,6) (386) + Handles null at 234 +226: BinaryOp(J,sub) (388) + Handles null at 234 +227: Put(J,STATIC,Ljava_cup/emit;,action_table_time) (389) + Handles null at 234 +228: Constant(Ljava/lang/String;,"java_cup/emit") (392) + Handles null at 234 +229: Constant(Ljava/lang/String;,"do_action_table(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Z)V") (392) + Handles null at 234 +230: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (392) + Handles null at 234 +231: Constant(I,0) (392) + Handles null at 234 +232: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (392) + Handles null at 234 +233: Return(V) (392) + Handles null at 234 +234: Constant(Ljava/lang/String;,"java_cup/emit") (0) +235: Constant(Ljava/lang/String;,"do_action_table(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Z)V") (0) +236: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +237: Constant(I,1) (0) +238: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +239: Throw() (0) +Instrumenting do_reduce_table (Ljava/io/PrintWriter;Ljava_cup/parse_reduce_table;)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) +1: LocalStore(J,4) (3) +2: LocalLoad(Ljava/lang/Object;,1) (5) +3: Invoke(VIRTUAL,Ljava_cup/parse_reduce_table;,num_states,()I) (6) +4: New([[S,1) (9) +5: LocalStore(Ljava/lang/Object;,6) (12) +6: Constant(I,0) (14) +7: LocalStore(I,7) (15) +8: LocalLoad(I,7) (17) +9: LocalLoad(Ljava/lang/Object;,1) (19) +10: Invoke(VIRTUAL,Ljava_cup/parse_reduce_table;,num_states,()I) (20) +11: ConditionalBranch(I,ge,99) (23) +12: Constant(I,2) (26) +13: Invoke(STATIC,Ljava_cup/parse_reduce_row;,size,()I) (27) +14: BinaryOp(I,mul) (30) +15: New([S,1) (31) +16: LocalStore(Ljava/lang/Object;,8) (33) +17: Constant(I,0) (35) +18: LocalStore(I,9) (36) +19: Constant(I,0) (38) +20: LocalStore(I,10) (39) +21: LocalLoad(I,10) (41) +22: Invoke(STATIC,Ljava_cup/parse_reduce_row;,size,()I) (43) +23: ConditionalBranch(I,ge,59) (46) +24: LocalLoad(Ljava/lang/Object;,1) (49) +25: Get([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (50) +26: LocalLoad(I,7) (53) +27: ArrayLoad(Ljava/lang/Object;) (55) +28: Get([Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/parse_reduce_row;,under_non_term) (56) +29: LocalLoad(I,10) (59) +30: ArrayLoad(Ljava/lang/Object;) (61) +31: LocalStore(Ljava/lang/Object;,2) (62) +32: LocalLoad(Ljava/lang/Object;,2) (63) +33: Constant(L;,null) (64) +34: ConditionalBranch(Ljava/lang/Object;,eq,54) (64) +35: LocalLoad(Ljava/lang/Object;,8) (67) +36: LocalLoad(I,9) (69) +37: LocalLoad(I,9) (71) +38: Constant(I,1) (71) +39: BinaryOp(I,add) (71) +40: LocalStore(I,9) (71) +41: LocalLoad(I,10) (74) +42: Conversion(I,S) (76) +43: ArrayStore(S) (77) +44: LocalLoad(Ljava/lang/Object;,8) (78) +45: LocalLoad(I,9) (80) +46: LocalLoad(I,9) (82) +47: Constant(I,1) (82) +48: BinaryOp(I,add) (82) +49: LocalStore(I,9) (82) +50: LocalLoad(Ljava/lang/Object;,2) (85) +51: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (86) +52: Conversion(I,S) (89) +53: ArrayStore(S) (90) +54: LocalLoad(I,10) (91) +55: Constant(I,1) (91) +56: BinaryOp(I,add) (91) +57: LocalStore(I,10) (91) +58: Goto(21) (94) +59: LocalLoad(Ljava/lang/Object;,6) (97) +60: LocalLoad(I,7) (99) +61: LocalLoad(I,9) (101) +62: Constant(I,2) (103) +63: BinaryOp(I,add) (104) +64: New([S,1) (105) +65: ArrayStore(Ljava/lang/Object;) (107) +66: LocalLoad(Ljava/lang/Object;,8) (108) +67: Constant(I,0) (110) +68: LocalLoad(Ljava/lang/Object;,6) (111) +69: LocalLoad(I,7) (113) +70: ArrayLoad(Ljava/lang/Object;) (115) +71: Constant(I,0) (116) +72: LocalLoad(I,9) (117) +73: Invoke(STATIC,Ljava/lang/System;,arraycopy,(Ljava/lang/Object;ILjava/lang/Object;II)V) (119) +74: LocalLoad(Ljava/lang/Object;,6) (122) +75: LocalLoad(I,7) (124) +76: ArrayLoad(Ljava/lang/Object;) (126) +77: LocalLoad(I,9) (127) +78: LocalLoad(I,9) (129) +79: Constant(I,1) (129) +80: BinaryOp(I,add) (129) +81: LocalStore(I,9) (129) +82: Constant(I,-1) (132) +83: ArrayStore(S) (133) +84: LocalLoad(Ljava/lang/Object;,6) (134) +85: LocalLoad(I,7) (136) +86: ArrayLoad(Ljava/lang/Object;) (138) +87: LocalLoad(I,9) (139) +88: LocalLoad(I,9) (141) +89: Constant(I,1) (141) +90: BinaryOp(I,add) (141) +91: LocalStore(I,9) (141) +92: Constant(I,-1) (144) +93: ArrayStore(S) (145) +94: LocalLoad(I,7) (146) +95: Constant(I,1) (146) +96: BinaryOp(I,add) (146) +97: LocalStore(I,7) (146) +98: Goto(8) (149) +99: LocalLoad(Ljava/lang/Object;,0) (152) +100: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (153) +101: LocalLoad(Ljava/lang/Object;,0) (156) +102: Constant(Ljava/lang/String;," /** reduce_goto table. */") (157) +103: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (159) +104: LocalLoad(Ljava/lang/Object;,0) (162) +105: Constant(Ljava/lang/String;," protected static final short[][] _reduce_table = ") (163) +106: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (165) +107: LocalLoad(Ljava/lang/Object;,0) (168) +108: Constant(Ljava/lang/String;," unpackFromStrings(") (169) +109: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (171) +110: LocalLoad(Ljava/lang/Object;,0) (174) +111: LocalLoad(Ljava/lang/Object;,6) (175) +112: Invoke(STATIC,Ljava_cup/emit;,do_table_as_string,(Ljava/io/PrintWriter;[[S)V) (177) +113: LocalLoad(Ljava/lang/Object;,0) (180) +114: Constant(Ljava/lang/String;,");") (181) +115: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (183) +116: LocalLoad(Ljava/lang/Object;,0) (186) +117: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (187) +118: LocalLoad(Ljava/lang/Object;,0) (190) +119: Constant(Ljava/lang/String;," /** Access to reduce_goto table. */") (191) +120: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (193) +121: LocalLoad(Ljava/lang/Object;,0) (196) +122: Constant(Ljava/lang/String;," public short[][] reduce_table() {return _reduce_table;}") (197) +123: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (199) +124: LocalLoad(Ljava/lang/Object;,0) (202) +125: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (203) +126: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (206) +127: LocalLoad(J,4) (209) +128: BinaryOp(J,sub) (211) +129: Put(J,STATIC,Ljava_cup/emit;,goto_table_time) (212) +130: Return(V) (215) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"do_reduce_table(Ljava/io/PrintWriter;Ljava_cup/parse_reduce_table;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) + Handles null at 140 +5: LocalStore(J,4) (3) + Handles null at 140 +6: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 140 +7: Invoke(VIRTUAL,Ljava_cup/parse_reduce_table;,num_states,()I) (6) + Handles null at 140 +8: New([[S,1) (9) + Handles null at 140 +9: LocalStore(Ljava/lang/Object;,6) (12) + Handles null at 140 +10: Constant(I,0) (14) + Handles null at 140 +11: LocalStore(I,7) (15) + Handles null at 140 +12: LocalLoad(I,7) (17) + Handles null at 140 +13: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 140 +14: Invoke(VIRTUAL,Ljava_cup/parse_reduce_table;,num_states,()I) (20) + Handles null at 140 +15: ConditionalBranch(I,ge,103) (23) + Handles null at 140 +16: Constant(I,2) (26) + Handles null at 140 +17: Invoke(STATIC,Ljava_cup/parse_reduce_row;,size,()I) (27) + Handles null at 140 +18: BinaryOp(I,mul) (30) + Handles null at 140 +19: New([S,1) (31) + Handles null at 140 +20: LocalStore(Ljava/lang/Object;,8) (33) + Handles null at 140 +21: Constant(I,0) (35) + Handles null at 140 +22: LocalStore(I,9) (36) + Handles null at 140 +23: Constant(I,0) (38) + Handles null at 140 +24: LocalStore(I,10) (39) + Handles null at 140 +25: LocalLoad(I,10) (41) + Handles null at 140 +26: Invoke(STATIC,Ljava_cup/parse_reduce_row;,size,()I) (43) + Handles null at 140 +27: ConditionalBranch(I,ge,63) (46) + Handles null at 140 +28: LocalLoad(Ljava/lang/Object;,1) (49) + Handles null at 140 +29: Get([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (50) + Handles null at 140 +30: LocalLoad(I,7) (53) + Handles null at 140 +31: ArrayLoad(Ljava/lang/Object;) (55) + Handles null at 140 +32: Get([Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/parse_reduce_row;,under_non_term) (56) + Handles null at 140 +33: LocalLoad(I,10) (59) + Handles null at 140 +34: ArrayLoad(Ljava/lang/Object;) (61) + Handles null at 140 +35: LocalStore(Ljava/lang/Object;,2) (62) + Handles null at 140 +36: LocalLoad(Ljava/lang/Object;,2) (63) + Handles null at 140 +37: Constant(L;,null) (64) + Handles null at 140 +38: ConditionalBranch(Ljava/lang/Object;,eq,58) (64) + Handles null at 140 +39: LocalLoad(Ljava/lang/Object;,8) (67) + Handles null at 140 +40: LocalLoad(I,9) (69) + Handles null at 140 +41: LocalLoad(I,9) (71) + Handles null at 140 +42: Constant(I,1) (71) + Handles null at 140 +43: BinaryOp(I,add) (71) + Handles null at 140 +44: LocalStore(I,9) (71) + Handles null at 140 +45: LocalLoad(I,10) (74) + Handles null at 140 +46: Conversion(I,S) (76) + Handles null at 140 +47: ArrayStore(S) (77) + Handles null at 140 +48: LocalLoad(Ljava/lang/Object;,8) (78) + Handles null at 140 +49: LocalLoad(I,9) (80) + Handles null at 140 +50: LocalLoad(I,9) (82) + Handles null at 140 +51: Constant(I,1) (82) + Handles null at 140 +52: BinaryOp(I,add) (82) + Handles null at 140 +53: LocalStore(I,9) (82) + Handles null at 140 +54: LocalLoad(Ljava/lang/Object;,2) (85) + Handles null at 140 +55: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (86) + Handles null at 140 +56: Conversion(I,S) (89) + Handles null at 140 +57: ArrayStore(S) (90) + Handles null at 140 +58: LocalLoad(I,10) (91) + Handles null at 140 +59: Constant(I,1) (91) + Handles null at 140 +60: BinaryOp(I,add) (91) + Handles null at 140 +61: LocalStore(I,10) (91) + Handles null at 140 +62: Goto(25) (94) + Handles null at 140 +63: LocalLoad(Ljava/lang/Object;,6) (97) + Handles null at 140 +64: LocalLoad(I,7) (99) + Handles null at 140 +65: LocalLoad(I,9) (101) + Handles null at 140 +66: Constant(I,2) (103) + Handles null at 140 +67: BinaryOp(I,add) (104) + Handles null at 140 +68: New([S,1) (105) + Handles null at 140 +69: ArrayStore(Ljava/lang/Object;) (107) + Handles null at 140 +70: LocalLoad(Ljava/lang/Object;,8) (108) + Handles null at 140 +71: Constant(I,0) (110) + Handles null at 140 +72: LocalLoad(Ljava/lang/Object;,6) (111) + Handles null at 140 +73: LocalLoad(I,7) (113) + Handles null at 140 +74: ArrayLoad(Ljava/lang/Object;) (115) + Handles null at 140 +75: Constant(I,0) (116) + Handles null at 140 +76: LocalLoad(I,9) (117) + Handles null at 140 +77: Invoke(STATIC,Ljava/lang/System;,arraycopy,(Ljava/lang/Object;ILjava/lang/Object;II)V) (119) + Handles null at 140 +78: LocalLoad(Ljava/lang/Object;,6) (122) + Handles null at 140 +79: LocalLoad(I,7) (124) + Handles null at 140 +80: ArrayLoad(Ljava/lang/Object;) (126) + Handles null at 140 +81: LocalLoad(I,9) (127) + Handles null at 140 +82: LocalLoad(I,9) (129) + Handles null at 140 +83: Constant(I,1) (129) + Handles null at 140 +84: BinaryOp(I,add) (129) + Handles null at 140 +85: LocalStore(I,9) (129) + Handles null at 140 +86: Constant(I,-1) (132) + Handles null at 140 +87: ArrayStore(S) (133) + Handles null at 140 +88: LocalLoad(Ljava/lang/Object;,6) (134) + Handles null at 140 +89: LocalLoad(I,7) (136) + Handles null at 140 +90: ArrayLoad(Ljava/lang/Object;) (138) + Handles null at 140 +91: LocalLoad(I,9) (139) + Handles null at 140 +92: LocalLoad(I,9) (141) + Handles null at 140 +93: Constant(I,1) (141) + Handles null at 140 +94: BinaryOp(I,add) (141) + Handles null at 140 +95: LocalStore(I,9) (141) + Handles null at 140 +96: Constant(I,-1) (144) + Handles null at 140 +97: ArrayStore(S) (145) + Handles null at 140 +98: LocalLoad(I,7) (146) + Handles null at 140 +99: Constant(I,1) (146) + Handles null at 140 +100: BinaryOp(I,add) (146) + Handles null at 140 +101: LocalStore(I,7) (146) + Handles null at 140 +102: Goto(12) (149) + Handles null at 140 +103: LocalLoad(Ljava/lang/Object;,0) (152) + Handles null at 140 +104: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (153) + Handles null at 140 +105: LocalLoad(Ljava/lang/Object;,0) (156) + Handles null at 140 +106: Constant(Ljava/lang/String;," /** reduce_goto table. */") (157) + Handles null at 140 +107: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (159) + Handles null at 140 +108: LocalLoad(Ljava/lang/Object;,0) (162) + Handles null at 140 +109: Constant(Ljava/lang/String;," protected static final short[][] _reduce_table = ") (163) + Handles null at 140 +110: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (165) + Handles null at 140 +111: LocalLoad(Ljava/lang/Object;,0) (168) + Handles null at 140 +112: Constant(Ljava/lang/String;," unpackFromStrings(") (169) + Handles null at 140 +113: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (171) + Handles null at 140 +114: LocalLoad(Ljava/lang/Object;,0) (174) + Handles null at 140 +115: LocalLoad(Ljava/lang/Object;,6) (175) + Handles null at 140 +116: Invoke(STATIC,Ljava_cup/emit;,do_table_as_string,(Ljava/io/PrintWriter;[[S)V) (177) + Handles null at 140 +117: LocalLoad(Ljava/lang/Object;,0) (180) + Handles null at 140 +118: Constant(Ljava/lang/String;,");") (181) + Handles null at 140 +119: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (183) + Handles null at 140 +120: LocalLoad(Ljava/lang/Object;,0) (186) + Handles null at 140 +121: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (187) + Handles null at 140 +122: LocalLoad(Ljava/lang/Object;,0) (190) + Handles null at 140 +123: Constant(Ljava/lang/String;," /** Access to reduce_goto table. */") (191) + Handles null at 140 +124: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (193) + Handles null at 140 +125: LocalLoad(Ljava/lang/Object;,0) (196) + Handles null at 140 +126: Constant(Ljava/lang/String;," public short[][] reduce_table() {return _reduce_table;}") (197) + Handles null at 140 +127: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (199) + Handles null at 140 +128: LocalLoad(Ljava/lang/Object;,0) (202) + Handles null at 140 +129: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (203) + Handles null at 140 +130: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (206) + Handles null at 140 +131: LocalLoad(J,4) (209) + Handles null at 140 +132: BinaryOp(J,sub) (211) + Handles null at 140 +133: Put(J,STATIC,Ljava_cup/emit;,goto_table_time) (212) + Handles null at 140 +134: Constant(Ljava/lang/String;,"java_cup/emit") (215) + Handles null at 140 +135: Constant(Ljava/lang/String;,"do_reduce_table(Ljava/io/PrintWriter;Ljava_cup/parse_reduce_table;)V") (215) + Handles null at 140 +136: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (215) + Handles null at 140 +137: Constant(I,0) (215) + Handles null at 140 +138: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (215) + Handles null at 140 +139: Return(V) (215) + Handles null at 140 +140: Constant(Ljava/lang/String;,"java_cup/emit") (0) +141: Constant(Ljava/lang/String;,"do_reduce_table(Ljava/io/PrintWriter;Ljava_cup/parse_reduce_table;)V") (0) +142: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +143: Constant(I,1) (0) +144: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +145: Throw() (0) +Instrumenting do_table_as_string (Ljava/io/PrintWriter;[[S)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(Ljava/lang/String;,"new String[] {") (1) +2: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (3) +3: LocalLoad(Ljava/lang/Object;,0) (6) +4: Constant(Ljava/lang/String;," \"") (7) +5: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (9) +6: Constant(I,0) (12) +7: LocalStore(I,2) (13) +8: Constant(I,0) (14) +9: LocalStore(I,3) (15) +10: LocalLoad(I,3) (16) +11: LocalLoad(Ljava/lang/Object;,0) (17) +12: LocalLoad(Ljava/lang/Object;,1) (18) +13: ArrayLength() (19) +14: Constant(I,16) (20) +15: Shift(I,SHR) (22) +16: Conversion(I,C) (23) +17: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (24) +18: BinaryOp(I,add) (27) +19: LocalStore(I,3) (28) +20: LocalLoad(Ljava/lang/Object;,0) (29) +21: LocalLoad(I,2) (30) +22: LocalLoad(I,3) (31) +23: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (32) +24: LocalStore(I,2) (35) +25: LocalLoad(I,3) (36) +26: LocalLoad(Ljava/lang/Object;,0) (37) +27: LocalLoad(Ljava/lang/Object;,1) (38) +28: ArrayLength() (39) +29: Constant(I,65535) (40) +30: BinaryOp(I,and) (42) +31: Conversion(I,C) (43) +32: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (44) +33: BinaryOp(I,add) (47) +34: LocalStore(I,3) (48) +35: LocalLoad(Ljava/lang/Object;,0) (49) +36: LocalLoad(I,2) (50) +37: LocalLoad(I,3) (51) +38: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (52) +39: LocalStore(I,2) (55) +40: Constant(I,0) (56) +41: LocalStore(I,4) (57) +42: LocalLoad(I,4) (59) +43: LocalLoad(Ljava/lang/Object;,1) (61) +44: ArrayLength() (62) +45: ConditionalBranch(I,ge,116) (63) +46: LocalLoad(I,3) (66) +47: LocalLoad(Ljava/lang/Object;,0) (67) +48: LocalLoad(Ljava/lang/Object;,1) (68) +49: LocalLoad(I,4) (69) +50: ArrayLoad(Ljava/lang/Object;) (71) +51: ArrayLength() (72) +52: Constant(I,16) (73) +53: Shift(I,SHR) (75) +54: Conversion(I,C) (76) +55: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (77) +56: BinaryOp(I,add) (80) +57: LocalStore(I,3) (81) +58: LocalLoad(Ljava/lang/Object;,0) (82) +59: LocalLoad(I,2) (83) +60: LocalLoad(I,3) (84) +61: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (85) +62: LocalStore(I,2) (88) +63: LocalLoad(I,3) (89) +64: LocalLoad(Ljava/lang/Object;,0) (90) +65: LocalLoad(Ljava/lang/Object;,1) (91) +66: LocalLoad(I,4) (92) +67: ArrayLoad(Ljava/lang/Object;) (94) +68: ArrayLength() (95) +69: Constant(I,65535) (96) +70: BinaryOp(I,and) (98) +71: Conversion(I,C) (99) +72: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (100) +73: BinaryOp(I,add) (103) +74: LocalStore(I,3) (104) +75: LocalLoad(Ljava/lang/Object;,0) (105) +76: LocalLoad(I,2) (106) +77: LocalLoad(I,3) (107) +78: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (108) +79: LocalStore(I,2) (111) +80: Constant(I,0) (112) +81: LocalStore(I,5) (113) +82: LocalLoad(I,5) (115) +83: LocalLoad(Ljava/lang/Object;,1) (117) +84: LocalLoad(I,4) (118) +85: ArrayLoad(Ljava/lang/Object;) (120) +86: ArrayLength() (121) +87: ConditionalBranch(I,ge,111) (122) +88: LocalLoad(I,3) (125) +89: LocalLoad(Ljava/lang/Object;,0) (126) +90: Constant(I,2) (127) +91: LocalLoad(Ljava/lang/Object;,1) (128) +92: LocalLoad(I,4) (129) +93: ArrayLoad(Ljava/lang/Object;) (131) +94: LocalLoad(I,5) (132) +95: ArrayLoad(S) (134) +96: BinaryOp(I,add) (135) +97: Conversion(I,C) (136) +98: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (137) +99: BinaryOp(I,add) (140) +100: LocalStore(I,3) (141) +101: LocalLoad(Ljava/lang/Object;,0) (142) +102: LocalLoad(I,2) (143) +103: LocalLoad(I,3) (144) +104: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (145) +105: LocalStore(I,2) (148) +106: LocalLoad(I,5) (149) +107: Constant(I,1) (149) +108: BinaryOp(I,add) (149) +109: LocalStore(I,5) (149) +110: Goto(82) (152) +111: LocalLoad(I,4) (155) +112: Constant(I,1) (155) +113: BinaryOp(I,add) (155) +114: LocalStore(I,4) (155) +115: Goto(42) (158) +116: LocalLoad(Ljava/lang/Object;,0) (161) +117: Constant(Ljava/lang/String;,"\" }") (162) +118: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (164) +119: Return(V) (167) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"do_table_as_string(Ljava/io/PrintWriter;[[S)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 129 +5: Constant(Ljava/lang/String;,"new String[] {") (1) + Handles null at 129 +6: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (3) + Handles null at 129 +7: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 129 +8: Constant(Ljava/lang/String;," \"") (7) + Handles null at 129 +9: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (9) + Handles null at 129 +10: Constant(I,0) (12) + Handles null at 129 +11: LocalStore(I,2) (13) + Handles null at 129 +12: Constant(I,0) (14) + Handles null at 129 +13: LocalStore(I,3) (15) + Handles null at 129 +14: LocalLoad(I,3) (16) + Handles null at 129 +15: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 129 +16: LocalLoad(Ljava/lang/Object;,1) (18) + Handles null at 129 +17: ArrayLength() (19) + Handles null at 129 +18: Constant(I,16) (20) + Handles null at 129 +19: Shift(I,SHR) (22) + Handles null at 129 +20: Conversion(I,C) (23) + Handles null at 129 +21: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (24) + Handles null at 129 +22: BinaryOp(I,add) (27) + Handles null at 129 +23: LocalStore(I,3) (28) + Handles null at 129 +24: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 129 +25: LocalLoad(I,2) (30) + Handles null at 129 +26: LocalLoad(I,3) (31) + Handles null at 129 +27: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (32) + Handles null at 129 +28: LocalStore(I,2) (35) + Handles null at 129 +29: LocalLoad(I,3) (36) + Handles null at 129 +30: LocalLoad(Ljava/lang/Object;,0) (37) + Handles null at 129 +31: LocalLoad(Ljava/lang/Object;,1) (38) + Handles null at 129 +32: ArrayLength() (39) + Handles null at 129 +33: Constant(I,65535) (40) + Handles null at 129 +34: BinaryOp(I,and) (42) + Handles null at 129 +35: Conversion(I,C) (43) + Handles null at 129 +36: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (44) + Handles null at 129 +37: BinaryOp(I,add) (47) + Handles null at 129 +38: LocalStore(I,3) (48) + Handles null at 129 +39: LocalLoad(Ljava/lang/Object;,0) (49) + Handles null at 129 +40: LocalLoad(I,2) (50) + Handles null at 129 +41: LocalLoad(I,3) (51) + Handles null at 129 +42: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (52) + Handles null at 129 +43: LocalStore(I,2) (55) + Handles null at 129 +44: Constant(I,0) (56) + Handles null at 129 +45: LocalStore(I,4) (57) + Handles null at 129 +46: LocalLoad(I,4) (59) + Handles null at 129 +47: LocalLoad(Ljava/lang/Object;,1) (61) + Handles null at 129 +48: ArrayLength() (62) + Handles null at 129 +49: ConditionalBranch(I,ge,120) (63) + Handles null at 129 +50: LocalLoad(I,3) (66) + Handles null at 129 +51: LocalLoad(Ljava/lang/Object;,0) (67) + Handles null at 129 +52: LocalLoad(Ljava/lang/Object;,1) (68) + Handles null at 129 +53: LocalLoad(I,4) (69) + Handles null at 129 +54: ArrayLoad(Ljava/lang/Object;) (71) + Handles null at 129 +55: ArrayLength() (72) + Handles null at 129 +56: Constant(I,16) (73) + Handles null at 129 +57: Shift(I,SHR) (75) + Handles null at 129 +58: Conversion(I,C) (76) + Handles null at 129 +59: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (77) + Handles null at 129 +60: BinaryOp(I,add) (80) + Handles null at 129 +61: LocalStore(I,3) (81) + Handles null at 129 +62: LocalLoad(Ljava/lang/Object;,0) (82) + Handles null at 129 +63: LocalLoad(I,2) (83) + Handles null at 129 +64: LocalLoad(I,3) (84) + Handles null at 129 +65: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (85) + Handles null at 129 +66: LocalStore(I,2) (88) + Handles null at 129 +67: LocalLoad(I,3) (89) + Handles null at 129 +68: LocalLoad(Ljava/lang/Object;,0) (90) + Handles null at 129 +69: LocalLoad(Ljava/lang/Object;,1) (91) + Handles null at 129 +70: LocalLoad(I,4) (92) + Handles null at 129 +71: ArrayLoad(Ljava/lang/Object;) (94) + Handles null at 129 +72: ArrayLength() (95) + Handles null at 129 +73: Constant(I,65535) (96) + Handles null at 129 +74: BinaryOp(I,and) (98) + Handles null at 129 +75: Conversion(I,C) (99) + Handles null at 129 +76: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (100) + Handles null at 129 +77: BinaryOp(I,add) (103) + Handles null at 129 +78: LocalStore(I,3) (104) + Handles null at 129 +79: LocalLoad(Ljava/lang/Object;,0) (105) + Handles null at 129 +80: LocalLoad(I,2) (106) + Handles null at 129 +81: LocalLoad(I,3) (107) + Handles null at 129 +82: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (108) + Handles null at 129 +83: LocalStore(I,2) (111) + Handles null at 129 +84: Constant(I,0) (112) + Handles null at 129 +85: LocalStore(I,5) (113) + Handles null at 129 +86: LocalLoad(I,5) (115) + Handles null at 129 +87: LocalLoad(Ljava/lang/Object;,1) (117) + Handles null at 129 +88: LocalLoad(I,4) (118) + Handles null at 129 +89: ArrayLoad(Ljava/lang/Object;) (120) + Handles null at 129 +90: ArrayLength() (121) + Handles null at 129 +91: ConditionalBranch(I,ge,115) (122) + Handles null at 129 +92: LocalLoad(I,3) (125) + Handles null at 129 +93: LocalLoad(Ljava/lang/Object;,0) (126) + Handles null at 129 +94: Constant(I,2) (127) + Handles null at 129 +95: LocalLoad(Ljava/lang/Object;,1) (128) + Handles null at 129 +96: LocalLoad(I,4) (129) + Handles null at 129 +97: ArrayLoad(Ljava/lang/Object;) (131) + Handles null at 129 +98: LocalLoad(I,5) (132) + Handles null at 129 +99: ArrayLoad(S) (134) + Handles null at 129 +100: BinaryOp(I,add) (135) + Handles null at 129 +101: Conversion(I,C) (136) + Handles null at 129 +102: Invoke(STATIC,Ljava_cup/emit;,do_escaped,(Ljava/io/PrintWriter;C)I) (137) + Handles null at 129 +103: BinaryOp(I,add) (140) + Handles null at 129 +104: LocalStore(I,3) (141) + Handles null at 129 +105: LocalLoad(Ljava/lang/Object;,0) (142) + Handles null at 129 +106: LocalLoad(I,2) (143) + Handles null at 129 +107: LocalLoad(I,3) (144) + Handles null at 129 +108: Invoke(STATIC,Ljava_cup/emit;,do_newline,(Ljava/io/PrintWriter;II)I) (145) + Handles null at 129 +109: LocalStore(I,2) (148) + Handles null at 129 +110: LocalLoad(I,5) (149) + Handles null at 129 +111: Constant(I,1) (149) + Handles null at 129 +112: BinaryOp(I,add) (149) + Handles null at 129 +113: LocalStore(I,5) (149) + Handles null at 129 +114: Goto(86) (152) + Handles null at 129 +115: LocalLoad(I,4) (155) + Handles null at 129 +116: Constant(I,1) (155) + Handles null at 129 +117: BinaryOp(I,add) (155) + Handles null at 129 +118: LocalStore(I,4) (155) + Handles null at 129 +119: Goto(46) (158) + Handles null at 129 +120: LocalLoad(Ljava/lang/Object;,0) (161) + Handles null at 129 +121: Constant(Ljava/lang/String;,"\" }") (162) + Handles null at 129 +122: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (164) + Handles null at 129 +123: Constant(Ljava/lang/String;,"java_cup/emit") (167) + Handles null at 129 +124: Constant(Ljava/lang/String;,"do_table_as_string(Ljava/io/PrintWriter;[[S)V") (167) + Handles null at 129 +125: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (167) + Handles null at 129 +126: Constant(I,0) (167) + Handles null at 129 +127: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (167) + Handles null at 129 +128: Return(V) (167) + Handles null at 129 +129: Constant(Ljava/lang/String;,"java_cup/emit") (0) +130: Constant(Ljava/lang/String;,"do_table_as_string(Ljava/io/PrintWriter;[[S)V") (0) +131: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +132: Constant(I,1) (0) +133: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +134: Throw() (0) +Instrumenting do_newline (Ljava/io/PrintWriter;II)I: +Initial ShrikeBT code: +0: LocalLoad(I,2) (0) +1: Constant(I,65500) (1) +2: ConditionalBranch(I,le,10) (3) +3: LocalLoad(Ljava/lang/Object;,0) (6) +4: Constant(Ljava/lang/String;,"\", ") (7) +5: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (9) +6: LocalLoad(Ljava/lang/Object;,0) (12) +7: Constant(Ljava/lang/String;," \"") (13) +8: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (15) +9: Goto(24) (18) +10: LocalLoad(I,1) (21) +11: Constant(I,11) (22) +12: ConditionalBranch(I,le,20) (24) +13: LocalLoad(Ljava/lang/Object;,0) (27) +14: Constant(Ljava/lang/String;,"\" +") (28) +15: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (30) +16: LocalLoad(Ljava/lang/Object;,0) (33) +17: Constant(Ljava/lang/String;," \"") (34) +18: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (36) +19: Goto(24) (39) +20: LocalLoad(I,1) (42) +21: Constant(I,1) (43) +22: BinaryOp(I,add) (44) +23: Return(I) (45) +24: Constant(I,0) (46) +25: Return(I) (47) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"do_newline(Ljava/io/PrintWriter;II)I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,2) (0) + Handles null at 40 +5: Constant(I,65500) (1) + Handles null at 40 +6: ConditionalBranch(I,le,14) (3) + Handles null at 40 +7: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 40 +8: Constant(Ljava/lang/String;,"\", ") (7) + Handles null at 40 +9: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (9) + Handles null at 40 +10: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 40 +11: Constant(Ljava/lang/String;," \"") (13) + Handles null at 40 +12: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (15) + Handles null at 40 +13: Goto(33) (18) + Handles null at 40 +14: LocalLoad(I,1) (21) + Handles null at 40 +15: Constant(I,11) (22) + Handles null at 40 +16: ConditionalBranch(I,le,24) (24) + Handles null at 40 +17: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 40 +18: Constant(Ljava/lang/String;,"\" +") (28) + Handles null at 40 +19: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (30) + Handles null at 40 +20: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 40 +21: Constant(Ljava/lang/String;," \"") (34) + Handles null at 40 +22: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (36) + Handles null at 40 +23: Goto(33) (39) + Handles null at 40 +24: LocalLoad(I,1) (42) + Handles null at 40 +25: Constant(I,1) (43) + Handles null at 40 +26: BinaryOp(I,add) (44) + Handles null at 40 +27: Constant(Ljava/lang/String;,"java_cup/emit") (45) + Handles null at 40 +28: Constant(Ljava/lang/String;,"do_newline(Ljava/io/PrintWriter;II)I") (45) + Handles null at 40 +29: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (45) + Handles null at 40 +30: Constant(I,0) (45) + Handles null at 40 +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (45) + Handles null at 40 +32: Return(I) (45) + Handles null at 40 +33: Constant(I,0) (46) + Handles null at 40 +34: Constant(Ljava/lang/String;,"java_cup/emit") (47) + Handles null at 40 +35: Constant(Ljava/lang/String;,"do_newline(Ljava/io/PrintWriter;II)I") (47) + Handles null at 40 +36: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (47) + Handles null at 40 +37: Constant(I,0) (47) + Handles null at 40 +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (47) + Handles null at 40 +39: Return(I) (47) + Handles null at 40 +40: Constant(Ljava/lang/String;,"java_cup/emit") (0) +41: Constant(Ljava/lang/String;,"do_newline(Ljava/io/PrintWriter;II)I") (0) +42: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +43: Constant(I,1) (0) +44: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +45: Throw() (0) +Instrumenting do_escaped (Ljava/io/PrintWriter;C)I: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuffer;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,2) (7) +4: LocalLoad(I,1) (8) +5: Constant(I,255) (9) +6: ConditionalBranch(I,gt,22) (12) +7: LocalLoad(Ljava/lang/Object;,2) (15) +8: LocalLoad(I,1) (16) +9: Invoke(STATIC,Ljava/lang/Integer;,toOctalString,(I)Ljava/lang/String;) (17) +10: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (20) +11: Pop(1) (23) +12: LocalLoad(Ljava/lang/Object;,2) (24) +13: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,length,()I) (25) +14: Constant(I,3) (28) +15: ConditionalBranch(I,ge,42) (29) +16: LocalLoad(Ljava/lang/Object;,2) (32) +17: Constant(I,0) (33) +18: Constant(I,48) (34) +19: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,insert,(IC)Ljava/lang/StringBuffer;) (36) +20: Pop(1) (39) +21: Goto(12) (40) +22: LocalLoad(Ljava/lang/Object;,2) (43) +23: LocalLoad(I,1) (44) +24: Invoke(STATIC,Ljava/lang/Integer;,toHexString,(I)Ljava/lang/String;) (45) +25: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (48) +26: Pop(1) (51) +27: LocalLoad(Ljava/lang/Object;,2) (52) +28: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,length,()I) (53) +29: Constant(I,4) (56) +30: ConditionalBranch(I,ge,37) (57) +31: LocalLoad(Ljava/lang/Object;,2) (60) +32: Constant(I,0) (61) +33: Constant(I,48) (62) +34: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,insert,(IC)Ljava/lang/StringBuffer;) (64) +35: Pop(1) (67) +36: Goto(27) (68) +37: LocalLoad(Ljava/lang/Object;,2) (71) +38: Constant(I,0) (72) +39: Constant(I,117) (73) +40: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,insert,(IC)Ljava/lang/StringBuffer;) (75) +41: Pop(1) (78) +42: LocalLoad(Ljava/lang/Object;,2) (79) +43: Constant(I,0) (80) +44: Constant(I,92) (81) +45: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,insert,(IC)Ljava/lang/StringBuffer;) (83) +46: Pop(1) (86) +47: LocalLoad(Ljava/lang/Object;,0) (87) +48: LocalLoad(Ljava/lang/Object;,2) (88) +49: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,toString,()Ljava/lang/String;) (89) +50: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (92) +51: LocalLoad(I,1) (95) +52: Constant(I,0) (96) +53: ConditionalBranch(I,ne,56) (96) +54: Constant(I,2) (99) +55: Return(I) (100) +56: LocalLoad(I,1) (101) +57: Constant(I,1) (102) +58: ConditionalBranch(I,lt,64) (103) +59: LocalLoad(I,1) (106) +60: Constant(I,127) (107) +61: ConditionalBranch(I,gt,64) (109) +62: Constant(I,1) (112) +63: Return(I) (113) +64: LocalLoad(I,1) (114) +65: Constant(I,128) (115) +66: ConditionalBranch(I,lt,72) (118) +67: LocalLoad(I,1) (121) +68: Constant(I,2047) (122) +69: ConditionalBranch(I,gt,72) (125) +70: Constant(I,2) (128) +71: Return(I) (129) +72: Constant(I,3) (130) +73: Return(I) (131) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"do_escaped(Ljava/io/PrintWriter;C)I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuffer;,0) (0) + Handles null at 98 +5: Dup(1,0) (3) + Handles null at 98 +6: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,()V) (4) + Handles null at 98 +7: LocalStore(Ljava/lang/Object;,2) (7) + Handles null at 98 +8: LocalLoad(I,1) (8) + Handles null at 98 +9: Constant(I,255) (9) + Handles null at 98 +10: ConditionalBranch(I,gt,26) (12) + Handles null at 98 +11: LocalLoad(Ljava/lang/Object;,2) (15) + Handles null at 98 +12: LocalLoad(I,1) (16) + Handles null at 98 +13: Invoke(STATIC,Ljava/lang/Integer;,toOctalString,(I)Ljava/lang/String;) (17) + Handles null at 98 +14: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (20) + Handles null at 98 +15: Pop(1) (23) + Handles null at 98 +16: LocalLoad(Ljava/lang/Object;,2) (24) + Handles null at 98 +17: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,length,()I) (25) + Handles null at 98 +18: Constant(I,3) (28) + Handles null at 98 +19: ConditionalBranch(I,ge,46) (29) + Handles null at 98 +20: LocalLoad(Ljava/lang/Object;,2) (32) + Handles null at 98 +21: Constant(I,0) (33) + Handles null at 98 +22: Constant(I,48) (34) + Handles null at 98 +23: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,insert,(IC)Ljava/lang/StringBuffer;) (36) + Handles null at 98 +24: Pop(1) (39) + Handles null at 98 +25: Goto(16) (40) + Handles null at 98 +26: LocalLoad(Ljava/lang/Object;,2) (43) + Handles null at 98 +27: LocalLoad(I,1) (44) + Handles null at 98 +28: Invoke(STATIC,Ljava/lang/Integer;,toHexString,(I)Ljava/lang/String;) (45) + Handles null at 98 +29: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (48) + Handles null at 98 +30: Pop(1) (51) + Handles null at 98 +31: LocalLoad(Ljava/lang/Object;,2) (52) + Handles null at 98 +32: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,length,()I) (53) + Handles null at 98 +33: Constant(I,4) (56) + Handles null at 98 +34: ConditionalBranch(I,ge,41) (57) + Handles null at 98 +35: LocalLoad(Ljava/lang/Object;,2) (60) + Handles null at 98 +36: Constant(I,0) (61) + Handles null at 98 +37: Constant(I,48) (62) + Handles null at 98 +38: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,insert,(IC)Ljava/lang/StringBuffer;) (64) + Handles null at 98 +39: Pop(1) (67) + Handles null at 98 +40: Goto(31) (68) + Handles null at 98 +41: LocalLoad(Ljava/lang/Object;,2) (71) + Handles null at 98 +42: Constant(I,0) (72) + Handles null at 98 +43: Constant(I,117) (73) + Handles null at 98 +44: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,insert,(IC)Ljava/lang/StringBuffer;) (75) + Handles null at 98 +45: Pop(1) (78) + Handles null at 98 +46: LocalLoad(Ljava/lang/Object;,2) (79) + Handles null at 98 +47: Constant(I,0) (80) + Handles null at 98 +48: Constant(I,92) (81) + Handles null at 98 +49: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,insert,(IC)Ljava/lang/StringBuffer;) (83) + Handles null at 98 +50: Pop(1) (86) + Handles null at 98 +51: LocalLoad(Ljava/lang/Object;,0) (87) + Handles null at 98 +52: LocalLoad(Ljava/lang/Object;,2) (88) + Handles null at 98 +53: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,toString,()Ljava/lang/String;) (89) + Handles null at 98 +54: Invoke(VIRTUAL,Ljava/io/PrintWriter;,print,(Ljava/lang/String;)V) (92) + Handles null at 98 +55: LocalLoad(I,1) (95) + Handles null at 98 +56: Constant(I,0) (96) + Handles null at 98 +57: ConditionalBranch(I,ne,65) (96) + Handles null at 98 +58: Constant(I,2) (99) + Handles null at 98 +59: Constant(Ljava/lang/String;,"java_cup/emit") (100) + Handles null at 98 +60: Constant(Ljava/lang/String;,"do_escaped(Ljava/io/PrintWriter;C)I") (100) + Handles null at 98 +61: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (100) + Handles null at 98 +62: Constant(I,0) (100) + Handles null at 98 +63: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (100) + Handles null at 98 +64: Return(I) (100) + Handles null at 98 +65: LocalLoad(I,1) (101) + Handles null at 98 +66: Constant(I,1) (102) + Handles null at 98 +67: ConditionalBranch(I,lt,78) (103) + Handles null at 98 +68: LocalLoad(I,1) (106) + Handles null at 98 +69: Constant(I,127) (107) + Handles null at 98 +70: ConditionalBranch(I,gt,78) (109) + Handles null at 98 +71: Constant(I,1) (112) + Handles null at 98 +72: Constant(Ljava/lang/String;,"java_cup/emit") (113) + Handles null at 98 +73: Constant(Ljava/lang/String;,"do_escaped(Ljava/io/PrintWriter;C)I") (113) + Handles null at 98 +74: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (113) + Handles null at 98 +75: Constant(I,0) (113) + Handles null at 98 +76: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (113) + Handles null at 98 +77: Return(I) (113) + Handles null at 98 +78: LocalLoad(I,1) (114) + Handles null at 98 +79: Constant(I,128) (115) + Handles null at 98 +80: ConditionalBranch(I,lt,91) (118) + Handles null at 98 +81: LocalLoad(I,1) (121) + Handles null at 98 +82: Constant(I,2047) (122) + Handles null at 98 +83: ConditionalBranch(I,gt,91) (125) + Handles null at 98 +84: Constant(I,2) (128) + Handles null at 98 +85: Constant(Ljava/lang/String;,"java_cup/emit") (129) + Handles null at 98 +86: Constant(Ljava/lang/String;,"do_escaped(Ljava/io/PrintWriter;C)I") (129) + Handles null at 98 +87: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (129) + Handles null at 98 +88: Constant(I,0) (129) + Handles null at 98 +89: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (129) + Handles null at 98 +90: Return(I) (129) + Handles null at 98 +91: Constant(I,3) (130) + Handles null at 98 +92: Constant(Ljava/lang/String;,"java_cup/emit") (131) + Handles null at 98 +93: Constant(Ljava/lang/String;,"do_escaped(Ljava/io/PrintWriter;C)I") (131) + Handles null at 98 +94: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (131) + Handles null at 98 +95: Constant(I,0) (131) + Handles null at 98 +96: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (131) + Handles null at 98 +97: Return(I) (131) + Handles null at 98 +98: Constant(Ljava/lang/String;,"java_cup/emit") (0) +99: Constant(Ljava/lang/String;,"do_escaped(Ljava/io/PrintWriter;C)I") (0) +100: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +101: Constant(I,1) (0) +102: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +103: Throw() (0) +Instrumenting parser (Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;ILjava_cup/production;ZZ)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) +1: LocalStore(J,7) (3) +2: LocalLoad(Ljava/lang/Object;,0) (5) +3: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (6) +4: LocalLoad(Ljava/lang/Object;,0) (9) +5: Constant(Ljava/lang/String;,"//----------------------------------------------------") (10) +6: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (12) +7: LocalLoad(Ljava/lang/Object;,0) (15) +8: Constant(Ljava/lang/String;,"// The following code was generated by CUP v0.11b 20140808 (SVN rev 54)") (16) +9: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (18) +10: LocalLoad(Ljava/lang/Object;,0) (21) +11: Constant(Ljava/lang/String;,"//----------------------------------------------------") (22) +12: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (24) +13: LocalLoad(Ljava/lang/Object;,0) (27) +14: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (28) +15: LocalLoad(Ljava/lang/Object;,0) (31) +16: Invoke(STATIC,Ljava_cup/emit;,emit_package,(Ljava/io/PrintWriter;)V) (32) +17: Constant(I,0) (35) +18: LocalStore(I,9) (36) +19: LocalLoad(I,9) (38) +20: Get(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (40) +21: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (43) +22: ConditionalBranch(I,ge,42) (46) +23: LocalLoad(Ljava/lang/Object;,0) (49) +24: New(Ljava/lang/StringBuilder;,0) (50) +25: Dup(1,0) (53) +26: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (54) +27: Constant(Ljava/lang/String;,"import ") (57) +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) +29: Get(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (62) +30: LocalLoad(I,9) (65) +31: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (67) +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (70) +33: Constant(Ljava/lang/String;,";") (73) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (75) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (78) +36: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (81) +37: LocalLoad(I,9) (84) +38: Constant(I,1) (84) +39: BinaryOp(I,add) (84) +40: LocalStore(I,9) (84) +41: Goto(19) (87) +42: Invoke(STATIC,Ljava_cup/emit;,locations,()Z) (90) +43: Constant(I,0) (93) +44: ConditionalBranch(I,eq,48) (93) +45: LocalLoad(Ljava/lang/Object;,0) (96) +46: Constant(Ljava/lang/String;,"import java_cup.runtime.ComplexSymbolFactory.Location;") (97) +47: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (99) +48: LocalLoad(Ljava/lang/Object;,0) (102) +49: Constant(Ljava/lang/String;,"import java_cup.runtime.XMLElement;") (103) +50: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (105) +51: LocalLoad(Ljava/lang/Object;,0) (108) +52: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (109) +53: LocalLoad(Ljava/lang/Object;,0) (112) +54: Constant(Ljava/lang/String;,"/** CUP v0.11b 20140808 (SVN rev 54) generated parser.") (113) +55: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (115) +56: LocalLoad(Ljava/lang/Object;,0) (118) +57: Constant(Ljava/lang/String;," */") (119) +58: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (122) +59: LocalLoad(Ljava/lang/Object;,0) (125) +60: Constant(Ljava/lang/String;,"@SuppressWarnings({\"rawtypes\"})") (126) +61: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (129) +62: LocalLoad(Ljava/lang/Object;,0) (132) +63: New(Ljava/lang/StringBuilder;,0) (133) +64: Dup(1,0) (136) +65: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (137) +66: Constant(Ljava/lang/String;,"public class ") (140) +67: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (143) +68: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (146) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (149) +70: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (152) +71: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (155) +72: Constant(Ljava/lang/String;," extends java_cup.runtime.lr_parser {") (158) +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (161) +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (164) +75: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (167) +76: LocalLoad(Ljava/lang/Object;,0) (170) +77: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (171) +78: LocalLoad(Ljava/lang/Object;,0) (174) +79: Constant(Ljava/lang/String;," public final Class getSymbolContainer() {") (175) +80: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (178) +81: LocalLoad(Ljava/lang/Object;,0) (181) +82: New(Ljava/lang/StringBuilder;,0) (182) +83: Dup(1,0) (185) +84: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (186) +85: Constant(Ljava/lang/String;," return ") (189) +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (192) +87: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (195) +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (198) +89: Constant(Ljava/lang/String;,".class;") (201) +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (204) +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (207) +92: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (210) +93: LocalLoad(Ljava/lang/Object;,0) (213) +94: Constant(Ljava/lang/String;,"}") (214) +95: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (216) +96: LocalLoad(Ljava/lang/Object;,0) (219) +97: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (220) +98: LocalLoad(Ljava/lang/Object;,0) (223) +99: Constant(Ljava/lang/String;," /** Default constructor. */") (224) +100: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (227) +101: LocalLoad(Ljava/lang/Object;,0) (230) +102: New(Ljava/lang/StringBuilder;,0) (231) +103: Dup(1,0) (234) +104: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (235) +105: Constant(Ljava/lang/String;," public ") (238) +106: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (241) +107: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (244) +108: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (247) +109: Constant(Ljava/lang/String;,"() {super();}") (250) +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (253) +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (256) +112: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (259) +113: LocalLoad(I,6) (262) +114: Constant(I,0) (264) +115: ConditionalBranch(I,ne,150) (264) +116: LocalLoad(Ljava/lang/Object;,0) (267) +117: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (268) +118: LocalLoad(Ljava/lang/Object;,0) (271) +119: Constant(Ljava/lang/String;," /** Constructor which sets the default scanner. */") (272) +120: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (275) +121: LocalLoad(Ljava/lang/Object;,0) (278) +122: New(Ljava/lang/StringBuilder;,0) (279) +123: Dup(1,0) (282) +124: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (283) +125: Constant(Ljava/lang/String;," public ") (286) +126: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (289) +127: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (292) +128: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (295) +129: Constant(Ljava/lang/String;,"(java_cup.runtime.Scanner s) {super(s);}") (298) +130: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (301) +131: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (304) +132: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (307) +133: LocalLoad(Ljava/lang/Object;,0) (310) +134: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (311) +135: LocalLoad(Ljava/lang/Object;,0) (314) +136: Constant(Ljava/lang/String;," /** Constructor which sets the default scanner. */") (315) +137: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (318) +138: LocalLoad(Ljava/lang/Object;,0) (321) +139: New(Ljava/lang/StringBuilder;,0) (322) +140: Dup(1,0) (325) +141: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (326) +142: Constant(Ljava/lang/String;," public ") (329) +143: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (332) +144: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (335) +145: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (338) +146: Constant(Ljava/lang/String;,"(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}") (341) +147: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (344) +148: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (347) +149: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (350) +150: LocalLoad(Ljava/lang/Object;,0) (353) +151: Invoke(STATIC,Ljava_cup/emit;,emit_production_table,(Ljava/io/PrintWriter;)V) (354) +152: LocalLoad(Ljava/lang/Object;,0) (357) +153: LocalLoad(Ljava/lang/Object;,1) (358) +154: LocalLoad(I,5) (359) +155: Invoke(STATIC,Ljava_cup/emit;,do_action_table,(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Z)V) (361) +156: LocalLoad(Ljava/lang/Object;,0) (364) +157: LocalLoad(Ljava/lang/Object;,2) (365) +158: Invoke(STATIC,Ljava_cup/emit;,do_reduce_table,(Ljava/io/PrintWriter;Ljava_cup/parse_reduce_table;)V) (366) +159: LocalLoad(Ljava/lang/Object;,0) (369) +160: Constant(Ljava/lang/String;," /** Instance of action encapsulation class. */") (370) +161: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (373) +162: LocalLoad(Ljava/lang/Object;,0) (376) +163: New(Ljava/lang/StringBuilder;,0) (377) +164: Dup(1,0) (380) +165: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (381) +166: Constant(Ljava/lang/String;," protected ") (384) +167: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (387) +168: Constant(Ljava/lang/String;,"actions") (390) +169: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (392) +170: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (395) +171: Constant(Ljava/lang/String;," action_obj;") (398) +172: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (401) +173: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (404) +174: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (407) +175: LocalLoad(Ljava/lang/Object;,0) (410) +176: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (411) +177: LocalLoad(Ljava/lang/Object;,0) (414) +178: Constant(Ljava/lang/String;," /** Action encapsulation object initializer. */") (415) +179: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (418) +180: LocalLoad(Ljava/lang/Object;,0) (421) +181: Constant(Ljava/lang/String;," protected void init_actions()") (422) +182: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (425) +183: LocalLoad(Ljava/lang/Object;,0) (428) +184: Constant(Ljava/lang/String;," {") (429) +185: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (431) +186: LocalLoad(Ljava/lang/Object;,0) (434) +187: New(Ljava/lang/StringBuilder;,0) (435) +188: Dup(1,0) (438) +189: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (439) +190: Constant(Ljava/lang/String;," action_obj = new ") (442) +191: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (445) +192: Constant(Ljava/lang/String;,"actions") (448) +193: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (450) +194: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (453) +195: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (456) +196: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (459) +197: Constant(Ljava/lang/String;,"(this);") (462) +198: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (465) +199: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (468) +200: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (471) +201: LocalLoad(Ljava/lang/Object;,0) (474) +202: Constant(Ljava/lang/String;," }") (475) +203: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (477) +204: LocalLoad(Ljava/lang/Object;,0) (480) +205: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (481) +206: LocalLoad(Ljava/lang/Object;,0) (484) +207: Constant(Ljava/lang/String;," /** Invoke a user supplied parse action. */") (485) +208: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (488) +209: LocalLoad(Ljava/lang/Object;,0) (491) +210: Constant(Ljava/lang/String;," public java_cup.runtime.Symbol do_action(") (492) +211: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (495) +212: LocalLoad(Ljava/lang/Object;,0) (498) +213: Constant(Ljava/lang/String;," int act_num,") (499) +214: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (502) +215: LocalLoad(Ljava/lang/Object;,0) (505) +216: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser parser,") (506) +217: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (509) +218: LocalLoad(Ljava/lang/Object;,0) (512) +219: Constant(Ljava/lang/String;," java.util.Stack stack,") (513) +220: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (516) +221: LocalLoad(Ljava/lang/Object;,0) (519) +222: Constant(Ljava/lang/String;," int top)") (520) +223: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (523) +224: LocalLoad(Ljava/lang/Object;,0) (526) +225: Constant(Ljava/lang/String;," throws java.lang.Exception") (527) +226: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (529) +227: LocalLoad(Ljava/lang/Object;,0) (532) +228: Constant(Ljava/lang/String;," {") (533) +229: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (536) +230: LocalLoad(Ljava/lang/Object;,0) (539) +231: Constant(Ljava/lang/String;," /* call code in generated class */") (540) +232: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (543) +233: LocalLoad(Ljava/lang/Object;,0) (546) +234: New(Ljava/lang/StringBuilder;,0) (547) +235: Dup(1,0) (550) +236: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (551) +237: Constant(Ljava/lang/String;," return action_obj.") (554) +238: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (557) +239: Constant(Ljava/lang/String;,"do_action(") (560) +240: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (563) +241: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (566) +242: Constant(Ljava/lang/String;,"act_num, parser, stack, top);") (569) +243: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (572) +244: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (575) +245: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (578) +246: LocalLoad(Ljava/lang/Object;,0) (581) +247: Constant(Ljava/lang/String;," }") (582) +248: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (584) +249: LocalLoad(Ljava/lang/Object;,0) (587) +250: Constant(Ljava/lang/String;,"") (588) +251: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (590) +252: LocalLoad(Ljava/lang/Object;,0) (593) +253: Constant(Ljava/lang/String;," /** Indicates start state. */") (594) +254: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (597) +255: LocalLoad(Ljava/lang/Object;,0) (600) +256: New(Ljava/lang/StringBuilder;,0) (601) +257: Dup(1,0) (604) +258: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (605) +259: Constant(Ljava/lang/String;," public int start_state() {return ") (608) +260: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (611) +261: LocalLoad(I,3) (614) +262: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (615) +263: Constant(Ljava/lang/String;,";}") (618) +264: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (621) +265: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (624) +266: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (627) +267: LocalLoad(Ljava/lang/Object;,0) (630) +268: Constant(Ljava/lang/String;," /** Indicates start production. */") (631) +269: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (634) +270: LocalLoad(Ljava/lang/Object;,0) (637) +271: New(Ljava/lang/StringBuilder;,0) (638) +272: Dup(1,0) (641) +273: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (642) +274: Constant(Ljava/lang/String;," public int start_production() {return ") (645) +275: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (648) +276: Get(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (651) +277: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (654) +278: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (657) +279: Constant(Ljava/lang/String;,";}") (660) +280: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (663) +281: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (666) +282: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (669) +283: LocalLoad(Ljava/lang/Object;,0) (672) +284: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (673) +285: LocalLoad(Ljava/lang/Object;,0) (676) +286: Constant(Ljava/lang/String;," /** EOF Symbol index. */") (677) +287: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (680) +288: LocalLoad(Ljava/lang/Object;,0) (683) +289: New(Ljava/lang/StringBuilder;,0) (684) +290: Dup(1,0) (687) +291: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (688) +292: Constant(Ljava/lang/String;," public int EOF_sym() {return ") (691) +293: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (694) +294: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (697) +295: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (700) +296: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (703) +297: Constant(Ljava/lang/String;,";}") (706) +298: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (709) +299: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (712) +300: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (715) +301: LocalLoad(Ljava/lang/Object;,0) (718) +302: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (719) +303: LocalLoad(Ljava/lang/Object;,0) (722) +304: Constant(Ljava/lang/String;," /** error Symbol index. */") (723) +305: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (726) +306: LocalLoad(Ljava/lang/Object;,0) (729) +307: New(Ljava/lang/StringBuilder;,0) (730) +308: Dup(1,0) (733) +309: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (734) +310: Constant(Ljava/lang/String;," public int error_sym() {return ") (737) +311: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (740) +312: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (743) +313: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (746) +314: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (749) +315: Constant(Ljava/lang/String;,";}") (752) +316: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (755) +317: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (758) +318: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (761) +319: LocalLoad(Ljava/lang/Object;,0) (764) +320: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (765) +321: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (768) +322: Constant(L;,null) (771) +323: ConditionalBranch(Ljava/lang/Object;,eq,341) (771) +324: LocalLoad(Ljava/lang/Object;,0) (774) +325: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (775) +326: LocalLoad(Ljava/lang/Object;,0) (778) +327: Constant(Ljava/lang/String;," /** User initialization code. */") (779) +328: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (782) +329: LocalLoad(Ljava/lang/Object;,0) (785) +330: Constant(Ljava/lang/String;," public void user_init() throws java.lang.Exception") (786) +331: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (789) +332: LocalLoad(Ljava/lang/Object;,0) (792) +333: Constant(Ljava/lang/String;," {") (793) +334: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (795) +335: LocalLoad(Ljava/lang/Object;,0) (798) +336: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (799) +337: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (802) +338: LocalLoad(Ljava/lang/Object;,0) (805) +339: Constant(Ljava/lang/String;," }") (806) +340: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (808) +341: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (811) +342: Constant(L;,null) (814) +343: ConditionalBranch(Ljava/lang/Object;,eq,364) (814) +344: LocalLoad(Ljava/lang/Object;,0) (817) +345: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (818) +346: LocalLoad(Ljava/lang/Object;,0) (821) +347: Constant(Ljava/lang/String;," /** Scan to get the next Symbol. */") (822) +348: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (825) +349: LocalLoad(Ljava/lang/Object;,0) (828) +350: Constant(Ljava/lang/String;," public java_cup.runtime.Symbol scan()") (829) +351: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (832) +352: LocalLoad(Ljava/lang/Object;,0) (835) +353: Constant(Ljava/lang/String;," throws java.lang.Exception") (836) +354: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (838) +355: LocalLoad(Ljava/lang/Object;,0) (841) +356: Constant(Ljava/lang/String;," {") (842) +357: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (844) +358: LocalLoad(Ljava/lang/Object;,0) (847) +359: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (848) +360: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (851) +361: LocalLoad(Ljava/lang/Object;,0) (854) +362: Constant(Ljava/lang/String;," }") (855) +363: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (857) +364: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (860) +365: Constant(L;,null) (863) +366: ConditionalBranch(Ljava/lang/Object;,eq,372) (863) +367: LocalLoad(Ljava/lang/Object;,0) (866) +368: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (867) +369: LocalLoad(Ljava/lang/Object;,0) (870) +370: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (871) +371: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (874) +372: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (877) +373: Constant(I,0) (880) +374: ConditionalBranch(I,ne,379) (880) +375: LocalLoad(Ljava/lang/Object;,0) (883) +376: LocalLoad(Ljava/lang/Object;,4) (884) +377: Invoke(STATIC,Ljava_cup/emit;,emit_action_code,(Ljava/io/PrintWriter;Ljava_cup/production;)V) (886) +378: Goto(382) (889) +379: LocalLoad(Ljava/lang/Object;,0) (892) +380: LocalLoad(Ljava/lang/Object;,4) (893) +381: Invoke(STATIC,Ljava_cup/emit;,emit_xmlaction_code,(Ljava/io/PrintWriter;Ljava_cup/production;)V) (895) +382: LocalLoad(Ljava/lang/Object;,0) (898) +383: Constant(Ljava/lang/String;,"}") (899) +384: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (901) +385: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (904) +386: LocalLoad(J,7) (907) +387: BinaryOp(J,sub) (909) +388: Put(J,STATIC,Ljava_cup/emit;,parser_time) (910) +389: Return(V) (913) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"parser(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;ILjava_cup/production;ZZ)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) + Handles null at 399 +5: LocalStore(J,7) (3) + Handles null at 399 +6: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 399 +7: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (6) + Handles null at 399 +8: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 399 +9: Constant(Ljava/lang/String;,"//----------------------------------------------------") (10) + Handles null at 399 +10: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (12) + Handles null at 399 +11: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 399 +12: Constant(Ljava/lang/String;,"// The following code was generated by CUP v0.11b 20140808 (SVN rev 54)") (16) + Handles null at 399 +13: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (18) + Handles null at 399 +14: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 399 +15: Constant(Ljava/lang/String;,"//----------------------------------------------------") (22) + Handles null at 399 +16: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (24) + Handles null at 399 +17: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 399 +18: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (28) + Handles null at 399 +19: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 399 +20: Invoke(STATIC,Ljava_cup/emit;,emit_package,(Ljava/io/PrintWriter;)V) (32) + Handles null at 399 +21: Constant(I,0) (35) + Handles null at 399 +22: LocalStore(I,9) (36) + Handles null at 399 +23: LocalLoad(I,9) (38) + Handles null at 399 +24: Get(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (40) + Handles null at 399 +25: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (43) + Handles null at 399 +26: ConditionalBranch(I,ge,46) (46) + Handles null at 399 +27: LocalLoad(Ljava/lang/Object;,0) (49) + Handles null at 399 +28: New(Ljava/lang/StringBuilder;,0) (50) + Handles null at 399 +29: Dup(1,0) (53) + Handles null at 399 +30: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (54) + Handles null at 399 +31: Constant(Ljava/lang/String;,"import ") (57) + Handles null at 399 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) + Handles null at 399 +33: Get(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (62) + Handles null at 399 +34: LocalLoad(I,9) (65) + Handles null at 399 +35: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (67) + Handles null at 399 +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (70) + Handles null at 399 +37: Constant(Ljava/lang/String;,";") (73) + Handles null at 399 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (75) + Handles null at 399 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (78) + Handles null at 399 +40: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (81) + Handles null at 399 +41: LocalLoad(I,9) (84) + Handles null at 399 +42: Constant(I,1) (84) + Handles null at 399 +43: BinaryOp(I,add) (84) + Handles null at 399 +44: LocalStore(I,9) (84) + Handles null at 399 +45: Goto(23) (87) + Handles null at 399 +46: Invoke(STATIC,Ljava_cup/emit;,locations,()Z) (90) + Handles null at 399 +47: Constant(I,0) (93) + Handles null at 399 +48: ConditionalBranch(I,eq,52) (93) + Handles null at 399 +49: LocalLoad(Ljava/lang/Object;,0) (96) + Handles null at 399 +50: Constant(Ljava/lang/String;,"import java_cup.runtime.ComplexSymbolFactory.Location;") (97) + Handles null at 399 +51: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (99) + Handles null at 399 +52: LocalLoad(Ljava/lang/Object;,0) (102) + Handles null at 399 +53: Constant(Ljava/lang/String;,"import java_cup.runtime.XMLElement;") (103) + Handles null at 399 +54: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (105) + Handles null at 399 +55: LocalLoad(Ljava/lang/Object;,0) (108) + Handles null at 399 +56: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (109) + Handles null at 399 +57: LocalLoad(Ljava/lang/Object;,0) (112) + Handles null at 399 +58: Constant(Ljava/lang/String;,"/** CUP v0.11b 20140808 (SVN rev 54) generated parser.") (113) + Handles null at 399 +59: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (115) + Handles null at 399 +60: LocalLoad(Ljava/lang/Object;,0) (118) + Handles null at 399 +61: Constant(Ljava/lang/String;," */") (119) + Handles null at 399 +62: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (122) + Handles null at 399 +63: LocalLoad(Ljava/lang/Object;,0) (125) + Handles null at 399 +64: Constant(Ljava/lang/String;,"@SuppressWarnings({\"rawtypes\"})") (126) + Handles null at 399 +65: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (129) + Handles null at 399 +66: LocalLoad(Ljava/lang/Object;,0) (132) + Handles null at 399 +67: New(Ljava/lang/StringBuilder;,0) (133) + Handles null at 399 +68: Dup(1,0) (136) + Handles null at 399 +69: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (137) + Handles null at 399 +70: Constant(Ljava/lang/String;,"public class ") (140) + Handles null at 399 +71: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (143) + Handles null at 399 +72: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (146) + Handles null at 399 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (149) + Handles null at 399 +74: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (152) + Handles null at 399 +75: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (155) + Handles null at 399 +76: Constant(Ljava/lang/String;," extends java_cup.runtime.lr_parser {") (158) + Handles null at 399 +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (161) + Handles null at 399 +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (164) + Handles null at 399 +79: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (167) + Handles null at 399 +80: LocalLoad(Ljava/lang/Object;,0) (170) + Handles null at 399 +81: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (171) + Handles null at 399 +82: LocalLoad(Ljava/lang/Object;,0) (174) + Handles null at 399 +83: Constant(Ljava/lang/String;," public final Class getSymbolContainer() {") (175) + Handles null at 399 +84: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (178) + Handles null at 399 +85: LocalLoad(Ljava/lang/Object;,0) (181) + Handles null at 399 +86: New(Ljava/lang/StringBuilder;,0) (182) + Handles null at 399 +87: Dup(1,0) (185) + Handles null at 399 +88: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (186) + Handles null at 399 +89: Constant(Ljava/lang/String;," return ") (189) + Handles null at 399 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (192) + Handles null at 399 +91: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (195) + Handles null at 399 +92: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (198) + Handles null at 399 +93: Constant(Ljava/lang/String;,".class;") (201) + Handles null at 399 +94: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (204) + Handles null at 399 +95: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (207) + Handles null at 399 +96: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (210) + Handles null at 399 +97: LocalLoad(Ljava/lang/Object;,0) (213) + Handles null at 399 +98: Constant(Ljava/lang/String;,"}") (214) + Handles null at 399 +99: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (216) + Handles null at 399 +100: LocalLoad(Ljava/lang/Object;,0) (219) + Handles null at 399 +101: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (220) + Handles null at 399 +102: LocalLoad(Ljava/lang/Object;,0) (223) + Handles null at 399 +103: Constant(Ljava/lang/String;," /** Default constructor. */") (224) + Handles null at 399 +104: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (227) + Handles null at 399 +105: LocalLoad(Ljava/lang/Object;,0) (230) + Handles null at 399 +106: New(Ljava/lang/StringBuilder;,0) (231) + Handles null at 399 +107: Dup(1,0) (234) + Handles null at 399 +108: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (235) + Handles null at 399 +109: Constant(Ljava/lang/String;," public ") (238) + Handles null at 399 +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (241) + Handles null at 399 +111: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (244) + Handles null at 399 +112: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (247) + Handles null at 399 +113: Constant(Ljava/lang/String;,"() {super();}") (250) + Handles null at 399 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (253) + Handles null at 399 +115: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (256) + Handles null at 399 +116: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (259) + Handles null at 399 +117: LocalLoad(I,6) (262) + Handles null at 399 +118: Constant(I,0) (264) + Handles null at 399 +119: ConditionalBranch(I,ne,154) (264) + Handles null at 399 +120: LocalLoad(Ljava/lang/Object;,0) (267) + Handles null at 399 +121: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (268) + Handles null at 399 +122: LocalLoad(Ljava/lang/Object;,0) (271) + Handles null at 399 +123: Constant(Ljava/lang/String;," /** Constructor which sets the default scanner. */") (272) + Handles null at 399 +124: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (275) + Handles null at 399 +125: LocalLoad(Ljava/lang/Object;,0) (278) + Handles null at 399 +126: New(Ljava/lang/StringBuilder;,0) (279) + Handles null at 399 +127: Dup(1,0) (282) + Handles null at 399 +128: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (283) + Handles null at 399 +129: Constant(Ljava/lang/String;," public ") (286) + Handles null at 399 +130: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (289) + Handles null at 399 +131: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (292) + Handles null at 399 +132: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (295) + Handles null at 399 +133: Constant(Ljava/lang/String;,"(java_cup.runtime.Scanner s) {super(s);}") (298) + Handles null at 399 +134: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (301) + Handles null at 399 +135: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (304) + Handles null at 399 +136: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (307) + Handles null at 399 +137: LocalLoad(Ljava/lang/Object;,0) (310) + Handles null at 399 +138: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (311) + Handles null at 399 +139: LocalLoad(Ljava/lang/Object;,0) (314) + Handles null at 399 +140: Constant(Ljava/lang/String;," /** Constructor which sets the default scanner. */") (315) + Handles null at 399 +141: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (318) + Handles null at 399 +142: LocalLoad(Ljava/lang/Object;,0) (321) + Handles null at 399 +143: New(Ljava/lang/StringBuilder;,0) (322) + Handles null at 399 +144: Dup(1,0) (325) + Handles null at 399 +145: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (326) + Handles null at 399 +146: Constant(Ljava/lang/String;," public ") (329) + Handles null at 399 +147: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (332) + Handles null at 399 +148: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (335) + Handles null at 399 +149: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (338) + Handles null at 399 +150: Constant(Ljava/lang/String;,"(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}") (341) + Handles null at 399 +151: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (344) + Handles null at 399 +152: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (347) + Handles null at 399 +153: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (350) + Handles null at 399 +154: LocalLoad(Ljava/lang/Object;,0) (353) + Handles null at 399 +155: Invoke(STATIC,Ljava_cup/emit;,emit_production_table,(Ljava/io/PrintWriter;)V) (354) + Handles null at 399 +156: LocalLoad(Ljava/lang/Object;,0) (357) + Handles null at 399 +157: LocalLoad(Ljava/lang/Object;,1) (358) + Handles null at 399 +158: LocalLoad(I,5) (359) + Handles null at 399 +159: Invoke(STATIC,Ljava_cup/emit;,do_action_table,(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Z)V) (361) + Handles null at 399 +160: LocalLoad(Ljava/lang/Object;,0) (364) + Handles null at 399 +161: LocalLoad(Ljava/lang/Object;,2) (365) + Handles null at 399 +162: Invoke(STATIC,Ljava_cup/emit;,do_reduce_table,(Ljava/io/PrintWriter;Ljava_cup/parse_reduce_table;)V) (366) + Handles null at 399 +163: LocalLoad(Ljava/lang/Object;,0) (369) + Handles null at 399 +164: Constant(Ljava/lang/String;," /** Instance of action encapsulation class. */") (370) + Handles null at 399 +165: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (373) + Handles null at 399 +166: LocalLoad(Ljava/lang/Object;,0) (376) + Handles null at 399 +167: New(Ljava/lang/StringBuilder;,0) (377) + Handles null at 399 +168: Dup(1,0) (380) + Handles null at 399 +169: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (381) + Handles null at 399 +170: Constant(Ljava/lang/String;," protected ") (384) + Handles null at 399 +171: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (387) + Handles null at 399 +172: Constant(Ljava/lang/String;,"actions") (390) + Handles null at 399 +173: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (392) + Handles null at 399 +174: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (395) + Handles null at 399 +175: Constant(Ljava/lang/String;," action_obj;") (398) + Handles null at 399 +176: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (401) + Handles null at 399 +177: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (404) + Handles null at 399 +178: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (407) + Handles null at 399 +179: LocalLoad(Ljava/lang/Object;,0) (410) + Handles null at 399 +180: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (411) + Handles null at 399 +181: LocalLoad(Ljava/lang/Object;,0) (414) + Handles null at 399 +182: Constant(Ljava/lang/String;," /** Action encapsulation object initializer. */") (415) + Handles null at 399 +183: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (418) + Handles null at 399 +184: LocalLoad(Ljava/lang/Object;,0) (421) + Handles null at 399 +185: Constant(Ljava/lang/String;," protected void init_actions()") (422) + Handles null at 399 +186: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (425) + Handles null at 399 +187: LocalLoad(Ljava/lang/Object;,0) (428) + Handles null at 399 +188: Constant(Ljava/lang/String;," {") (429) + Handles null at 399 +189: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (431) + Handles null at 399 +190: LocalLoad(Ljava/lang/Object;,0) (434) + Handles null at 399 +191: New(Ljava/lang/StringBuilder;,0) (435) + Handles null at 399 +192: Dup(1,0) (438) + Handles null at 399 +193: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (439) + Handles null at 399 +194: Constant(Ljava/lang/String;," action_obj = new ") (442) + Handles null at 399 +195: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (445) + Handles null at 399 +196: Constant(Ljava/lang/String;,"actions") (448) + Handles null at 399 +197: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (450) + Handles null at 399 +198: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (453) + Handles null at 399 +199: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (456) + Handles null at 399 +200: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (459) + Handles null at 399 +201: Constant(Ljava/lang/String;,"(this);") (462) + Handles null at 399 +202: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (465) + Handles null at 399 +203: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (468) + Handles null at 399 +204: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (471) + Handles null at 399 +205: LocalLoad(Ljava/lang/Object;,0) (474) + Handles null at 399 +206: Constant(Ljava/lang/String;," }") (475) + Handles null at 399 +207: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (477) + Handles null at 399 +208: LocalLoad(Ljava/lang/Object;,0) (480) + Handles null at 399 +209: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (481) + Handles null at 399 +210: LocalLoad(Ljava/lang/Object;,0) (484) + Handles null at 399 +211: Constant(Ljava/lang/String;," /** Invoke a user supplied parse action. */") (485) + Handles null at 399 +212: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (488) + Handles null at 399 +213: LocalLoad(Ljava/lang/Object;,0) (491) + Handles null at 399 +214: Constant(Ljava/lang/String;," public java_cup.runtime.Symbol do_action(") (492) + Handles null at 399 +215: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (495) + Handles null at 399 +216: LocalLoad(Ljava/lang/Object;,0) (498) + Handles null at 399 +217: Constant(Ljava/lang/String;," int act_num,") (499) + Handles null at 399 +218: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (502) + Handles null at 399 +219: LocalLoad(Ljava/lang/Object;,0) (505) + Handles null at 399 +220: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser parser,") (506) + Handles null at 399 +221: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (509) + Handles null at 399 +222: LocalLoad(Ljava/lang/Object;,0) (512) + Handles null at 399 +223: Constant(Ljava/lang/String;," java.util.Stack stack,") (513) + Handles null at 399 +224: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (516) + Handles null at 399 +225: LocalLoad(Ljava/lang/Object;,0) (519) + Handles null at 399 +226: Constant(Ljava/lang/String;," int top)") (520) + Handles null at 399 +227: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (523) + Handles null at 399 +228: LocalLoad(Ljava/lang/Object;,0) (526) + Handles null at 399 +229: Constant(Ljava/lang/String;," throws java.lang.Exception") (527) + Handles null at 399 +230: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (529) + Handles null at 399 +231: LocalLoad(Ljava/lang/Object;,0) (532) + Handles null at 399 +232: Constant(Ljava/lang/String;," {") (533) + Handles null at 399 +233: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (536) + Handles null at 399 +234: LocalLoad(Ljava/lang/Object;,0) (539) + Handles null at 399 +235: Constant(Ljava/lang/String;," /* call code in generated class */") (540) + Handles null at 399 +236: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (543) + Handles null at 399 +237: LocalLoad(Ljava/lang/Object;,0) (546) + Handles null at 399 +238: New(Ljava/lang/StringBuilder;,0) (547) + Handles null at 399 +239: Dup(1,0) (550) + Handles null at 399 +240: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (551) + Handles null at 399 +241: Constant(Ljava/lang/String;," return action_obj.") (554) + Handles null at 399 +242: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (557) + Handles null at 399 +243: Constant(Ljava/lang/String;,"do_action(") (560) + Handles null at 399 +244: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (563) + Handles null at 399 +245: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (566) + Handles null at 399 +246: Constant(Ljava/lang/String;,"act_num, parser, stack, top);") (569) + Handles null at 399 +247: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (572) + Handles null at 399 +248: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (575) + Handles null at 399 +249: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (578) + Handles null at 399 +250: LocalLoad(Ljava/lang/Object;,0) (581) + Handles null at 399 +251: Constant(Ljava/lang/String;," }") (582) + Handles null at 399 +252: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (584) + Handles null at 399 +253: LocalLoad(Ljava/lang/Object;,0) (587) + Handles null at 399 +254: Constant(Ljava/lang/String;,"") (588) + Handles null at 399 +255: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (590) + Handles null at 399 +256: LocalLoad(Ljava/lang/Object;,0) (593) + Handles null at 399 +257: Constant(Ljava/lang/String;," /** Indicates start state. */") (594) + Handles null at 399 +258: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (597) + Handles null at 399 +259: LocalLoad(Ljava/lang/Object;,0) (600) + Handles null at 399 +260: New(Ljava/lang/StringBuilder;,0) (601) + Handles null at 399 +261: Dup(1,0) (604) + Handles null at 399 +262: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (605) + Handles null at 399 +263: Constant(Ljava/lang/String;," public int start_state() {return ") (608) + Handles null at 399 +264: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (611) + Handles null at 399 +265: LocalLoad(I,3) (614) + Handles null at 399 +266: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (615) + Handles null at 399 +267: Constant(Ljava/lang/String;,";}") (618) + Handles null at 399 +268: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (621) + Handles null at 399 +269: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (624) + Handles null at 399 +270: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (627) + Handles null at 399 +271: LocalLoad(Ljava/lang/Object;,0) (630) + Handles null at 399 +272: Constant(Ljava/lang/String;," /** Indicates start production. */") (631) + Handles null at 399 +273: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (634) + Handles null at 399 +274: LocalLoad(Ljava/lang/Object;,0) (637) + Handles null at 399 +275: New(Ljava/lang/StringBuilder;,0) (638) + Handles null at 399 +276: Dup(1,0) (641) + Handles null at 399 +277: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (642) + Handles null at 399 +278: Constant(Ljava/lang/String;," public int start_production() {return ") (645) + Handles null at 399 +279: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (648) + Handles null at 399 +280: Get(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (651) + Handles null at 399 +281: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (654) + Handles null at 399 +282: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (657) + Handles null at 399 +283: Constant(Ljava/lang/String;,";}") (660) + Handles null at 399 +284: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (663) + Handles null at 399 +285: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (666) + Handles null at 399 +286: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (669) + Handles null at 399 +287: LocalLoad(Ljava/lang/Object;,0) (672) + Handles null at 399 +288: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (673) + Handles null at 399 +289: LocalLoad(Ljava/lang/Object;,0) (676) + Handles null at 399 +290: Constant(Ljava/lang/String;," /** EOF Symbol index. */") (677) + Handles null at 399 +291: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (680) + Handles null at 399 +292: LocalLoad(Ljava/lang/Object;,0) (683) + Handles null at 399 +293: New(Ljava/lang/StringBuilder;,0) (684) + Handles null at 399 +294: Dup(1,0) (687) + Handles null at 399 +295: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (688) + Handles null at 399 +296: Constant(Ljava/lang/String;," public int EOF_sym() {return ") (691) + Handles null at 399 +297: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (694) + Handles null at 399 +298: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (697) + Handles null at 399 +299: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (700) + Handles null at 399 +300: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (703) + Handles null at 399 +301: Constant(Ljava/lang/String;,";}") (706) + Handles null at 399 +302: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (709) + Handles null at 399 +303: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (712) + Handles null at 399 +304: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (715) + Handles null at 399 +305: LocalLoad(Ljava/lang/Object;,0) (718) + Handles null at 399 +306: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (719) + Handles null at 399 +307: LocalLoad(Ljava/lang/Object;,0) (722) + Handles null at 399 +308: Constant(Ljava/lang/String;," /** error Symbol index. */") (723) + Handles null at 399 +309: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (726) + Handles null at 399 +310: LocalLoad(Ljava/lang/Object;,0) (729) + Handles null at 399 +311: New(Ljava/lang/StringBuilder;,0) (730) + Handles null at 399 +312: Dup(1,0) (733) + Handles null at 399 +313: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (734) + Handles null at 399 +314: Constant(Ljava/lang/String;," public int error_sym() {return ") (737) + Handles null at 399 +315: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (740) + Handles null at 399 +316: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (743) + Handles null at 399 +317: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (746) + Handles null at 399 +318: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (749) + Handles null at 399 +319: Constant(Ljava/lang/String;,";}") (752) + Handles null at 399 +320: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (755) + Handles null at 399 +321: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (758) + Handles null at 399 +322: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (761) + Handles null at 399 +323: LocalLoad(Ljava/lang/Object;,0) (764) + Handles null at 399 +324: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (765) + Handles null at 399 +325: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (768) + Handles null at 399 +326: Constant(L;,null) (771) + Handles null at 399 +327: ConditionalBranch(Ljava/lang/Object;,eq,345) (771) + Handles null at 399 +328: LocalLoad(Ljava/lang/Object;,0) (774) + Handles null at 399 +329: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (775) + Handles null at 399 +330: LocalLoad(Ljava/lang/Object;,0) (778) + Handles null at 399 +331: Constant(Ljava/lang/String;," /** User initialization code. */") (779) + Handles null at 399 +332: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (782) + Handles null at 399 +333: LocalLoad(Ljava/lang/Object;,0) (785) + Handles null at 399 +334: Constant(Ljava/lang/String;," public void user_init() throws java.lang.Exception") (786) + Handles null at 399 +335: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (789) + Handles null at 399 +336: LocalLoad(Ljava/lang/Object;,0) (792) + Handles null at 399 +337: Constant(Ljava/lang/String;," {") (793) + Handles null at 399 +338: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (795) + Handles null at 399 +339: LocalLoad(Ljava/lang/Object;,0) (798) + Handles null at 399 +340: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (799) + Handles null at 399 +341: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (802) + Handles null at 399 +342: LocalLoad(Ljava/lang/Object;,0) (805) + Handles null at 399 +343: Constant(Ljava/lang/String;," }") (806) + Handles null at 399 +344: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (808) + Handles null at 399 +345: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (811) + Handles null at 399 +346: Constant(L;,null) (814) + Handles null at 399 +347: ConditionalBranch(Ljava/lang/Object;,eq,368) (814) + Handles null at 399 +348: LocalLoad(Ljava/lang/Object;,0) (817) + Handles null at 399 +349: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (818) + Handles null at 399 +350: LocalLoad(Ljava/lang/Object;,0) (821) + Handles null at 399 +351: Constant(Ljava/lang/String;," /** Scan to get the next Symbol. */") (822) + Handles null at 399 +352: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (825) + Handles null at 399 +353: LocalLoad(Ljava/lang/Object;,0) (828) + Handles null at 399 +354: Constant(Ljava/lang/String;," public java_cup.runtime.Symbol scan()") (829) + Handles null at 399 +355: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (832) + Handles null at 399 +356: LocalLoad(Ljava/lang/Object;,0) (835) + Handles null at 399 +357: Constant(Ljava/lang/String;," throws java.lang.Exception") (836) + Handles null at 399 +358: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (838) + Handles null at 399 +359: LocalLoad(Ljava/lang/Object;,0) (841) + Handles null at 399 +360: Constant(Ljava/lang/String;," {") (842) + Handles null at 399 +361: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (844) + Handles null at 399 +362: LocalLoad(Ljava/lang/Object;,0) (847) + Handles null at 399 +363: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (848) + Handles null at 399 +364: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (851) + Handles null at 399 +365: LocalLoad(Ljava/lang/Object;,0) (854) + Handles null at 399 +366: Constant(Ljava/lang/String;," }") (855) + Handles null at 399 +367: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (857) + Handles null at 399 +368: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (860) + Handles null at 399 +369: Constant(L;,null) (863) + Handles null at 399 +370: ConditionalBranch(Ljava/lang/Object;,eq,376) (863) + Handles null at 399 +371: LocalLoad(Ljava/lang/Object;,0) (866) + Handles null at 399 +372: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (867) + Handles null at 399 +373: LocalLoad(Ljava/lang/Object;,0) (870) + Handles null at 399 +374: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (871) + Handles null at 399 +375: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (874) + Handles null at 399 +376: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (877) + Handles null at 399 +377: Constant(I,0) (880) + Handles null at 399 +378: ConditionalBranch(I,ne,383) (880) + Handles null at 399 +379: LocalLoad(Ljava/lang/Object;,0) (883) + Handles null at 399 +380: LocalLoad(Ljava/lang/Object;,4) (884) + Handles null at 399 +381: Invoke(STATIC,Ljava_cup/emit;,emit_action_code,(Ljava/io/PrintWriter;Ljava_cup/production;)V) (886) + Handles null at 399 +382: Goto(386) (889) + Handles null at 399 +383: LocalLoad(Ljava/lang/Object;,0) (892) + Handles null at 399 +384: LocalLoad(Ljava/lang/Object;,4) (893) + Handles null at 399 +385: Invoke(STATIC,Ljava_cup/emit;,emit_xmlaction_code,(Ljava/io/PrintWriter;Ljava_cup/production;)V) (895) + Handles null at 399 +386: LocalLoad(Ljava/lang/Object;,0) (898) + Handles null at 399 +387: Constant(Ljava/lang/String;,"}") (899) + Handles null at 399 +388: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (901) + Handles null at 399 +389: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (904) + Handles null at 399 +390: LocalLoad(J,7) (907) + Handles null at 399 +391: BinaryOp(J,sub) (909) + Handles null at 399 +392: Put(J,STATIC,Ljava_cup/emit;,parser_time) (910) + Handles null at 399 +393: Constant(Ljava/lang/String;,"java_cup/emit") (913) + Handles null at 399 +394: Constant(Ljava/lang/String;,"parser(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;ILjava_cup/production;ZZ)V") (913) + Handles null at 399 +395: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (913) + Handles null at 399 +396: Constant(I,0) (913) + Handles null at 399 +397: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (913) + Handles null at 399 +398: Return(V) (913) + Handles null at 399 +399: Constant(Ljava/lang/String;,"java_cup/emit") (0) +400: Constant(Ljava/lang/String;,"parser(Ljava/io/PrintWriter;Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;ILjava_cup/production;ZZ)V") (0) +401: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +402: Constant(I,1) (0) +403: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +404: Throw() (0) +Instrumenting emit_xmlaction_code (Ljava/io/PrintWriter;Ljava_cup/production;)V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) +1: LocalStore(J,3) (3) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (5) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: Constant(Ljava/lang/String;,"/** Cup generated class to encapsulate user supplied action code.*/") (9) +6: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (11) +7: LocalLoad(Ljava/lang/Object;,0) (14) +8: Constant(Ljava/lang/String;,"@SuppressWarnings({\"rawtypes\", \"unchecked\", \"unused\"})") (15) +9: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (17) +10: LocalLoad(Ljava/lang/Object;,0) (20) +11: New(Ljava/lang/StringBuilder;,0) (21) +12: Dup(1,0) (24) +13: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (25) +14: Constant(Ljava/lang/String;,"class ") (28) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (30) +16: Constant(Ljava/lang/String;,"actions") (33) +17: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (35) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) +19: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (41) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (44) +21: Constant(Ljava/lang/String;," {") (47) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (49) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (52) +24: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (55) +25: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (58) +26: Constant(L;,null) (61) +27: ConditionalBranch(Ljava/lang/Object;,eq,33) (61) +28: LocalLoad(Ljava/lang/Object;,0) (64) +29: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (65) +30: LocalLoad(Ljava/lang/Object;,0) (68) +31: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (69) +32: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (72) +33: LocalLoad(Ljava/lang/Object;,0) (75) +34: New(Ljava/lang/StringBuilder;,0) (76) +35: Dup(1,0) (79) +36: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (80) +37: Constant(Ljava/lang/String;," private final ") (83) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (85) +39: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (88) +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) +41: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (94) +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) +43: Constant(Ljava/lang/String;," parser;") (100) +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (102) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (105) +46: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (108) +47: LocalLoad(Ljava/lang/Object;,0) (111) +48: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (112) +49: LocalLoad(Ljava/lang/Object;,0) (115) +50: Constant(Ljava/lang/String;," /** Constructor */") (116) +51: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (118) +52: LocalLoad(Ljava/lang/Object;,0) (121) +53: New(Ljava/lang/StringBuilder;,0) (122) +54: Dup(1,0) (125) +55: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (126) +56: Constant(Ljava/lang/String;," ") (129) +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (131) +58: Constant(Ljava/lang/String;,"actions") (134) +59: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (136) +60: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) +61: Constant(Ljava/lang/String;,"(") (142) +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (144) +63: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (147) +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (150) +65: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (153) +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) +67: Constant(Ljava/lang/String;," parser) {") (159) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (161) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (164) +70: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (167) +71: LocalLoad(Ljava/lang/Object;,0) (170) +72: Constant(Ljava/lang/String;," this.parser = parser;") (171) +73: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (173) +74: LocalLoad(Ljava/lang/Object;,0) (176) +75: Constant(Ljava/lang/String;," }") (177) +76: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (179) +77: LocalLoad(Ljava/lang/Object;,0) (182) +78: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (183) +79: Constant(I,0) (186) +80: LocalStore(I,5) (187) +81: LocalLoad(I,5) (189) +82: Invoke(STATIC,Ljava_cup/production;,number,()I) (191) +83: Constant(I,300) (194) +84: BinaryOp(I,div) (197) +85: ConditionalBranch(I,gt,636) (198) +86: LocalLoad(Ljava/lang/Object;,0) (201) +87: New(Ljava/lang/StringBuilder;,0) (202) +88: Dup(1,0) (205) +89: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (206) +90: Constant(Ljava/lang/String;," /** Method ") (209) +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (211) +92: LocalLoad(I,5) (214) +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (216) +94: Constant(Ljava/lang/String;," with the actual generated action code for actions ") (219) +95: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (221) +96: LocalLoad(I,5) (224) +97: Constant(I,300) (226) +98: BinaryOp(I,mul) (229) +99: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (230) +100: Constant(Ljava/lang/String;," to ") (233) +101: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (235) +102: LocalLoad(I,5) (238) +103: Constant(I,1) (240) +104: BinaryOp(I,add) (241) +105: Constant(I,300) (242) +106: BinaryOp(I,mul) (245) +107: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (246) +108: Constant(Ljava/lang/String;,". */") (249) +109: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (254) +111: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (257) +112: LocalLoad(Ljava/lang/Object;,0) (260) +113: New(Ljava/lang/StringBuilder;,0) (261) +114: Dup(1,0) (264) +115: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (265) +116: Constant(Ljava/lang/String;," public final java_cup.runtime.Symbol ") (268) +117: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (270) +118: Constant(Ljava/lang/String;,"do_action_part") (273) +119: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (275) +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (278) +121: Constant(Ljava/lang/String;,"%08d") (281) +122: Constant(I,1) (283) +123: New([Ljava/lang/Object;,1) (284) +124: Dup(1,0) (287) +125: Constant(I,0) (288) +126: New(Ljava/lang/Integer;,0) (289) +127: Dup(1,0) (292) +128: LocalLoad(I,5) (293) +129: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (295) +130: ArrayStore(Ljava/lang/Object;) (298) +131: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (299) +132: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (302) +133: Constant(Ljava/lang/String;,"(") (305) +134: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (307) +135: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (310) +136: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (313) +137: LocalLoad(Ljava/lang/Object;,0) (316) +138: New(Ljava/lang/StringBuilder;,0) (317) +139: Dup(1,0) (320) +140: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (321) +141: Constant(Ljava/lang/String;," int ") (324) +142: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (326) +143: Constant(Ljava/lang/String;,"act_num,") (329) +144: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (331) +145: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (334) +146: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (337) +147: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (340) +148: LocalLoad(Ljava/lang/Object;,0) (343) +149: New(Ljava/lang/StringBuilder;,0) (344) +150: Dup(1,0) (347) +151: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (348) +152: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser ") (351) +153: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (353) +154: Constant(Ljava/lang/String;,"parser,") (356) +155: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (358) +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (361) +157: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (364) +158: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (367) +159: LocalLoad(Ljava/lang/Object;,0) (370) +160: New(Ljava/lang/StringBuilder;,0) (371) +161: Dup(1,0) (374) +162: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (375) +163: Constant(Ljava/lang/String;," java.util.Stack ") (378) +164: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (380) +165: Constant(Ljava/lang/String;,"stack,") (383) +166: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (385) +167: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (388) +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (391) +169: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (394) +170: LocalLoad(Ljava/lang/Object;,0) (397) +171: New(Ljava/lang/StringBuilder;,0) (398) +172: Dup(1,0) (401) +173: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (402) +174: Constant(Ljava/lang/String;," int ") (405) +175: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (407) +176: Constant(Ljava/lang/String;,"top)") (410) +177: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (412) +178: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (415) +179: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (418) +180: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (421) +181: LocalLoad(Ljava/lang/Object;,0) (424) +182: Constant(Ljava/lang/String;," throws java.lang.Exception") (425) +183: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (427) +184: LocalLoad(Ljava/lang/Object;,0) (430) +185: Constant(Ljava/lang/String;," {") (431) +186: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (433) +187: LocalLoad(Ljava/lang/Object;,0) (436) +188: Constant(Ljava/lang/String;," /* Symbol object for return from actions */") (437) +189: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (439) +190: LocalLoad(Ljava/lang/Object;,0) (442) +191: New(Ljava/lang/StringBuilder;,0) (443) +192: Dup(1,0) (446) +193: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (447) +194: Constant(Ljava/lang/String;," java_cup.runtime.Symbol ") (450) +195: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (452) +196: Constant(Ljava/lang/String;,"result") (455) +197: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (457) +198: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (460) +199: Constant(Ljava/lang/String;,";") (463) +200: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (465) +201: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (468) +202: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (471) +203: LocalLoad(Ljava/lang/Object;,0) (474) +204: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (475) +205: LocalLoad(Ljava/lang/Object;,0) (478) +206: Constant(Ljava/lang/String;," /* select the action based on the action number */") (479) +207: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (481) +208: LocalLoad(Ljava/lang/Object;,0) (484) +209: New(Ljava/lang/StringBuilder;,0) (485) +210: Dup(1,0) (488) +211: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (489) +212: Constant(Ljava/lang/String;," switch (") (492) +213: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (494) +214: Constant(Ljava/lang/String;,"act_num") (497) +215: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (499) +216: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (502) +217: Constant(Ljava/lang/String;,")") (505) +218: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (507) +219: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (510) +220: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (513) +221: LocalLoad(Ljava/lang/Object;,0) (516) +222: Constant(Ljava/lang/String;," {") (517) +223: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (519) +224: LocalLoad(I,5) (522) +225: Constant(I,300) (524) +226: BinaryOp(I,mul) (527) +227: LocalStore(I,6) (528) +228: LocalLoad(I,6) (530) +229: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (532) +230: LocalStore(Ljava/lang/Object;,2) (535) +231: LocalLoad(I,6) (536) +232: LocalLoad(I,5) (538) +233: Constant(I,1) (540) +234: BinaryOp(I,add) (541) +235: Constant(I,300) (542) +236: BinaryOp(I,mul) (545) +237: Invoke(STATIC,Ljava_cup/production;,number,()I) (546) +238: Invoke(STATIC,Ljava/lang/Math;,min,(II)I) (549) +239: ConditionalBranch(I,ge,599) (552) +240: LocalLoad(Ljava/lang/Object;,0) (555) +241: Constant(Ljava/lang/String;," /*. . . . . . . . . . . . . . . . . . . .*/") (556) +242: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (558) +243: LocalLoad(Ljava/lang/Object;,0) (561) +244: New(Ljava/lang/StringBuilder;,0) (562) +245: Dup(1,0) (565) +246: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (566) +247: Constant(Ljava/lang/String;," case ") (569) +248: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (571) +249: LocalLoad(Ljava/lang/Object;,2) (574) +250: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (575) +251: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (578) +252: Constant(Ljava/lang/String;,": // ") (581) +253: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (583) +254: LocalLoad(Ljava/lang/Object;,2) (586) +255: Invoke(VIRTUAL,Ljava_cup/production;,to_simple_string,()Ljava/lang/String;) (587) +256: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (590) +257: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (593) +258: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (596) +259: LocalLoad(Ljava/lang/Object;,0) (599) +260: Constant(Ljava/lang/String;," {") (600) +261: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (602) +262: LocalLoad(Ljava/lang/Object;,0) (605) +263: Constant(Ljava/lang/String;," XMLElement RESULT;") (606) +264: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (609) +265: Constant(Ljava/lang/String;,"") (612) +266: LocalStore(Ljava/lang/Object;,7) (614) +267: Constant(I,0) (616) +268: LocalStore(I,8) (617) +269: LocalLoad(I,8) (619) +270: LocalLoad(Ljava/lang/Object;,2) (621) +271: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (622) +272: ConditionalBranch(I,ge,355) (625) +273: LocalLoad(Ljava/lang/Object;,2) (628) +274: LocalLoad(I,8) (629) +275: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (631) +276: Instanceof(Ljava_cup/symbol_part;) (634) +277: Constant(I,0) (637) +278: ConditionalBranch(I,ne,280) (637) +279: Goto(350) (640) +280: LocalLoad(Ljava/lang/Object;,2) (643) +281: LocalLoad(I,8) (644) +282: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (646) +283: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (649) +284: LocalStore(Ljava/lang/Object;,9) (652) +285: LocalLoad(Ljava/lang/Object;,2) (654) +286: LocalLoad(I,8) (655) +287: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (657) +288: CheckCast(Ljava_cup/symbol_part;) (660) +289: LocalStore(Ljava/lang/Object;,10) (663) +290: LocalLoad(Ljava/lang/Object;,9) (665) +291: Constant(L;,null) (667) +292: ConditionalBranch(Ljava/lang/Object;,ne,308) (667) +293: Get(Z,STATIC,Ljava_cup/emit;,_genericlabels) (670) +294: Constant(I,0) (673) +295: ConditionalBranch(I,ne,297) (673) +296: Goto(350) (676) +297: New(Ljava/lang/StringBuilder;,0) (679) +298: Dup(1,0) (682) +299: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (683) +300: LocalLoad(Ljava/lang/Object;,10) (686) +301: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (688) +302: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (691) +303: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (694) +304: LocalLoad(I,8) (697) +305: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (699) +306: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (702) +307: LocalStore(Ljava/lang/Object;,9) (705) +308: LocalLoad(Ljava/lang/Object;,10) (707) +309: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (709) +310: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (712) +311: Constant(I,0) (715) +312: ConditionalBranch(I,eq,325) (715) +313: New(Ljava/lang/StringBuilder;,0) (718) +314: Dup(1,0) (721) +315: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (722) +316: LocalLoad(Ljava/lang/Object;,7) (725) +317: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (727) +318: Constant(Ljava/lang/String;,",(XMLElement)") (730) +319: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (733) +320: LocalLoad(Ljava/lang/Object;,9) (736) +321: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (738) +322: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (741) +323: LocalStore(Ljava/lang/Object;,7) (744) +324: Goto(350) (746) +325: New(Ljava/lang/StringBuilder;,0) (749) +326: Dup(1,0) (752) +327: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (753) +328: LocalLoad(Ljava/lang/Object;,7) (756) +329: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (758) +330: Constant(Ljava/lang/String;,",new XMLElement.Terminal(") (761) +331: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (764) +332: LocalLoad(Ljava/lang/Object;,9) (767) +333: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (769) +334: Constant(Ljava/lang/String;,"xleft,\"") (772) +335: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (775) +336: LocalLoad(Ljava/lang/Object;,9) (778) +337: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (780) +338: Constant(Ljava/lang/String;,"\",") (783) +339: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (785) +340: LocalLoad(Ljava/lang/Object;,9) (788) +341: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (790) +342: Constant(Ljava/lang/String;,",") (793) +343: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (795) +344: LocalLoad(Ljava/lang/Object;,9) (798) +345: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (800) +346: Constant(Ljava/lang/String;,"xright)") (803) +347: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (806) +348: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (809) +349: LocalStore(Ljava/lang/Object;,7) (812) +350: LocalLoad(I,8) (814) +351: Constant(I,1) (814) +352: BinaryOp(I,add) (814) +353: LocalStore(I,8) (814) +354: Goto(269) (817) +355: LocalLoad(Ljava/lang/Object;,2) (820) +356: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (821) +357: Constant(L;,null) (824) +358: ConditionalBranch(Ljava/lang/Object;,eq,375) (824) +359: LocalLoad(Ljava/lang/Object;,2) (827) +360: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (828) +361: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (831) +362: Constant(L;,null) (834) +363: ConditionalBranch(Ljava/lang/Object;,eq,375) (834) +364: LocalLoad(Ljava/lang/Object;,2) (837) +365: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (838) +366: Constant(Ljava/lang/String;,"") (841) +367: Invoke(VIRTUAL,Ljava_cup/action_part;,equals,(Ljava/lang/Object;)Z) (843) +368: Constant(I,0) (846) +369: ConditionalBranch(I,ne,375) (846) +370: LocalLoad(Ljava/lang/Object;,0) (849) +371: LocalLoad(Ljava/lang/Object;,2) (850) +372: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (851) +373: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (854) +374: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (857) +375: Constant(I,0) (860) +376: LocalStore(I,8) (861) +377: Constant(I,0) (863) +378: LocalStore(I,9) (864) +379: LocalLoad(I,9) (866) +380: LocalLoad(I,6) (868) +381: ConditionalBranch(I,ge,399) (870) +382: LocalLoad(I,9) (873) +383: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (875) +384: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (878) +385: LocalLoad(Ljava/lang/Object;,2) (881) +386: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (882) +387: Invoke(VIRTUAL,Ljava_cup/symbol_part;,equals,(Ljava_cup/symbol_part;)Z) (885) +388: Constant(I,0) (888) +389: ConditionalBranch(I,eq,394) (888) +390: LocalLoad(I,8) (891) +391: Constant(I,1) (891) +392: BinaryOp(I,add) (891) +393: LocalStore(I,8) (891) +394: LocalLoad(I,9) (894) +395: Constant(I,1) (894) +396: BinaryOp(I,add) (894) +397: LocalStore(I,9) (894) +398: Goto(379) (897) +399: LocalLoad(Ljava/lang/Object;,2) (900) +400: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (901) +401: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (904) +402: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (907) +403: Constant(I,36) (910) +404: Constant(I,95) (912) +405: Invoke(VIRTUAL,Ljava/lang/String;,replace,(CC)Ljava/lang/String;) (914) +406: LocalStore(Ljava/lang/Object;,9) (917) +407: LocalLoad(Ljava/lang/Object;,0) (919) +408: New(Ljava/lang/StringBuilder;,0) (920) +409: Dup(1,0) (923) +410: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (924) +411: Constant(Ljava/lang/String;," RESULT = new XMLElement.NonTerminal(\"") (927) +412: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (930) +413: LocalLoad(Ljava/lang/Object;,9) (933) +414: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (935) +415: Constant(Ljava/lang/String;,"\",") (938) +416: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (940) +417: LocalLoad(I,8) (943) +418: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (945) +419: LocalLoad(Ljava/lang/Object;,7) (948) +420: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (950) +421: Constant(Ljava/lang/String;,");") (953) +422: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (955) +423: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (958) +424: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (961) +425: Invoke(STATIC,Ljava_cup/emit;,lr_values,()Z) (964) +426: Constant(I,0) (967) +427: ConditionalBranch(I,eq,525) (967) +428: New(Ljava/lang/StringBuilder;,0) (970) +429: Dup(1,0) (973) +430: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (974) +431: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol)") (977) +432: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (979) +433: Constant(Ljava/lang/String;,"stack") (982) +434: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (984) +435: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (987) +436: Constant(Ljava/lang/String;,".peek()") (990) +437: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (992) +438: Constant(Ljava/lang/String;,")") (995) +439: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (997) +440: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1000) +441: LocalStore(Ljava/lang/Object;,12) (1003) +442: LocalLoad(Ljava/lang/Object;,2) (1005) +443: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (1006) +444: Constant(I,0) (1009) +445: ConditionalBranch(I,ne,449) (1009) +446: LocalLoad(Ljava/lang/Object;,12) (1012) +447: LocalStore(Ljava/lang/Object;,11) (1014) +448: Goto(487) (1016) +449: LocalLoad(Ljava/lang/Object;,2) (1019) +450: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (1020) +451: Constant(I,1) (1023) +452: BinaryOp(I,sub) (1024) +453: LocalStore(I,10) (1025) +454: New(Ljava/lang/StringBuilder;,0) (1027) +455: Dup(1,0) (1030) +456: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1031) +457: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol)") (1034) +458: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1036) +459: Constant(Ljava/lang/String;,"stack") (1039) +460: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1041) +461: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1044) +462: LocalLoad(I,10) (1047) +463: Constant(I,0) (1049) +464: ConditionalBranch(I,ne,467) (1049) +465: Constant(Ljava/lang/String;,".peek()") (1052) +466: Goto(482) (1054) +467: New(Ljava/lang/StringBuilder;,0) (1057) +468: Dup(1,0) (1060) +469: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1061) +470: Constant(Ljava/lang/String;,".elementAt(") (1064) +471: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1066) +472: Constant(Ljava/lang/String;,"top") (1069) +473: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1071) +474: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1074) +475: Constant(Ljava/lang/String;,"-") (1077) +476: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1079) +477: LocalLoad(I,10) (1082) +478: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1084) +479: Constant(Ljava/lang/String;,")") (1087) +480: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1089) +481: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1092) +482: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1095) +483: Constant(Ljava/lang/String;,")") (1098) +484: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1100) +485: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1103) +486: LocalStore(Ljava/lang/Object;,11) (1106) +487: LocalLoad(Ljava/lang/Object;,0) (1108) +488: New(Ljava/lang/StringBuilder;,0) (1109) +489: Dup(1,0) (1112) +490: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1113) +491: Constant(Ljava/lang/String;," ") (1116) +492: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1118) +493: Constant(Ljava/lang/String;,"result") (1121) +494: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1123) +495: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1126) +496: Constant(Ljava/lang/String;," = parser.getSymbolFactory().newSymbol(") (1129) +497: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1131) +498: Constant(Ljava/lang/String;,"\"") (1134) +499: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1136) +500: LocalLoad(Ljava/lang/Object;,2) (1139) +501: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1140) +502: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1143) +503: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1146) +504: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1149) +505: Constant(Ljava/lang/String;,"\",") (1152) +506: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1154) +507: LocalLoad(Ljava/lang/Object;,2) (1157) +508: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1158) +509: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1161) +510: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (1164) +511: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1167) +512: Constant(Ljava/lang/String;,", ") (1170) +513: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1172) +514: LocalLoad(Ljava/lang/Object;,11) (1175) +515: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1177) +516: Constant(Ljava/lang/String;,", ") (1180) +517: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1182) +518: LocalLoad(Ljava/lang/Object;,12) (1185) +519: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1187) +520: Constant(Ljava/lang/String;,", RESULT);") (1190) +521: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1192) +522: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1195) +523: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1198) +524: Goto(554) (1201) +525: LocalLoad(Ljava/lang/Object;,0) (1204) +526: New(Ljava/lang/StringBuilder;,0) (1205) +527: Dup(1,0) (1208) +528: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1209) +529: Constant(Ljava/lang/String;," ") (1212) +530: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1214) +531: Constant(Ljava/lang/String;,"result") (1217) +532: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1219) +533: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1222) +534: Constant(Ljava/lang/String;," = parser.getSymbolFactory().newSymbol(") (1225) +535: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1227) +536: Constant(Ljava/lang/String;,"\"") (1230) +537: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1232) +538: LocalLoad(Ljava/lang/Object;,2) (1235) +539: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1236) +540: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1239) +541: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1242) +542: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1245) +543: Constant(Ljava/lang/String;,"\",") (1248) +544: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1250) +545: LocalLoad(Ljava/lang/Object;,2) (1253) +546: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1254) +547: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1257) +548: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (1260) +549: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1263) +550: Constant(Ljava/lang/String;,", RESULT);") (1266) +551: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1268) +552: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1271) +553: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1274) +554: LocalLoad(Ljava/lang/Object;,0) (1277) +555: Constant(Ljava/lang/String;," }") (1278) +556: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1280) +557: LocalLoad(Ljava/lang/Object;,2) (1283) +558: LocalLoad(Ljava/lang/Object;,1) (1284) +559: ConditionalBranch(Ljava/lang/Object;,ne,576) (1285) +560: LocalLoad(Ljava/lang/Object;,0) (1288) +561: Constant(Ljava/lang/String;," /* ACCEPT */") (1289) +562: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1291) +563: LocalLoad(Ljava/lang/Object;,0) (1294) +564: New(Ljava/lang/StringBuilder;,0) (1295) +565: Dup(1,0) (1298) +566: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1299) +567: Constant(Ljava/lang/String;," ") (1302) +568: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1304) +569: Constant(Ljava/lang/String;,"parser") (1307) +570: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1309) +571: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1312) +572: Constant(Ljava/lang/String;,".done_parsing();") (1315) +573: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1317) +574: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1320) +575: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1323) +576: LocalLoad(Ljava/lang/Object;,0) (1326) +577: New(Ljava/lang/StringBuilder;,0) (1327) +578: Dup(1,0) (1330) +579: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1331) +580: Constant(Ljava/lang/String;," return ") (1334) +581: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1336) +582: Constant(Ljava/lang/String;,"result") (1339) +583: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1341) +584: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1344) +585: Constant(Ljava/lang/String;,";") (1347) +586: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1349) +587: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1352) +588: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1355) +589: LocalLoad(Ljava/lang/Object;,0) (1358) +590: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1359) +591: LocalLoad(I,6) (1362) +592: Constant(I,1) (1362) +593: BinaryOp(I,add) (1362) +594: LocalStore(I,6) (1362) +595: LocalLoad(I,6) (1365) +596: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (1367) +597: LocalStore(Ljava/lang/Object;,2) (1370) +598: Goto(231) (1371) +599: LocalLoad(Ljava/lang/Object;,0) (1374) +600: Constant(Ljava/lang/String;," /* . . . . . .*/") (1375) +601: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1377) +602: LocalLoad(Ljava/lang/Object;,0) (1380) +603: Constant(Ljava/lang/String;," default:") (1381) +604: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1383) +605: LocalLoad(Ljava/lang/Object;,0) (1386) +606: Constant(Ljava/lang/String;," throw new Exception(") (1387) +607: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1389) +608: LocalLoad(Ljava/lang/Object;,0) (1392) +609: New(Ljava/lang/StringBuilder;,0) (1393) +610: Dup(1,0) (1396) +611: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1397) +612: Constant(Ljava/lang/String;," \"Invalid action number \"+") (1400) +613: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1402) +614: Constant(Ljava/lang/String;,"act_num") (1405) +615: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1407) +616: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1410) +617: Constant(Ljava/lang/String;,"+\"found in ") (1413) +618: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1415) +619: Constant(Ljava/lang/String;,"internal parse table\");") (1418) +620: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1420) +621: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1423) +622: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1426) +623: LocalLoad(Ljava/lang/Object;,0) (1429) +624: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1430) +625: LocalLoad(Ljava/lang/Object;,0) (1433) +626: Constant(Ljava/lang/String;," }") (1434) +627: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1436) +628: LocalLoad(Ljava/lang/Object;,0) (1439) +629: Constant(Ljava/lang/String;," } /* end of method */") (1440) +630: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1442) +631: LocalLoad(I,5) (1445) +632: Constant(I,1) (1445) +633: BinaryOp(I,add) (1445) +634: LocalStore(I,5) (1445) +635: Goto(81) (1448) +636: LocalLoad(Ljava/lang/Object;,0) (1451) +637: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1452) +638: LocalLoad(Ljava/lang/Object;,0) (1455) +639: Constant(Ljava/lang/String;," /** Method splitting the generated action code into several parts. */") (1456) +640: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1458) +641: LocalLoad(Ljava/lang/Object;,0) (1461) +642: New(Ljava/lang/StringBuilder;,0) (1462) +643: Dup(1,0) (1465) +644: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1466) +645: Constant(Ljava/lang/String;," public final java_cup.runtime.Symbol ") (1469) +646: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1471) +647: Constant(Ljava/lang/String;,"do_action") (1474) +648: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1476) +649: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1479) +650: Constant(Ljava/lang/String;,"(") (1482) +651: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1484) +652: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1487) +653: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1490) +654: LocalLoad(Ljava/lang/Object;,0) (1493) +655: New(Ljava/lang/StringBuilder;,0) (1494) +656: Dup(1,0) (1497) +657: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1498) +658: Constant(Ljava/lang/String;," int ") (1501) +659: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1503) +660: Constant(Ljava/lang/String;,"act_num,") (1506) +661: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1508) +662: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1511) +663: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1514) +664: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1517) +665: LocalLoad(Ljava/lang/Object;,0) (1520) +666: New(Ljava/lang/StringBuilder;,0) (1521) +667: Dup(1,0) (1524) +668: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1525) +669: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser ") (1528) +670: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1530) +671: Constant(Ljava/lang/String;,"parser,") (1533) +672: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1535) +673: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1538) +674: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1541) +675: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1544) +676: LocalLoad(Ljava/lang/Object;,0) (1547) +677: New(Ljava/lang/StringBuilder;,0) (1548) +678: Dup(1,0) (1551) +679: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1552) +680: Constant(Ljava/lang/String;," java.util.Stack ") (1555) +681: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1557) +682: Constant(Ljava/lang/String;,"stack,") (1560) +683: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1562) +684: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1565) +685: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1568) +686: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1571) +687: LocalLoad(Ljava/lang/Object;,0) (1574) +688: New(Ljava/lang/StringBuilder;,0) (1575) +689: Dup(1,0) (1578) +690: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1579) +691: Constant(Ljava/lang/String;," int ") (1582) +692: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1584) +693: Constant(Ljava/lang/String;,"top)") (1587) +694: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1589) +695: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1592) +696: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1595) +697: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1598) +698: LocalLoad(Ljava/lang/Object;,0) (1601) +699: Constant(Ljava/lang/String;," throws java.lang.Exception") (1602) +700: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1604) +701: LocalLoad(Ljava/lang/Object;,0) (1607) +702: Constant(Ljava/lang/String;," {") (1608) +703: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1610) +704: Invoke(STATIC,Ljava_cup/production;,number,()I) (1613) +705: Constant(I,300) (1616) +706: ConditionalBranch(I,ge,789) (1619) +707: LocalLoad(Ljava/lang/Object;,0) (1622) +708: New(Ljava/lang/StringBuilder;,0) (1623) +709: Dup(1,0) (1626) +710: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1627) +711: Constant(Ljava/lang/String;," return ") (1630) +712: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1632) +713: Constant(Ljava/lang/String;,"do_action_part") (1635) +714: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1637) +715: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1640) +716: Constant(Ljava/lang/String;,"%08d") (1643) +717: Constant(I,1) (1645) +718: New([Ljava/lang/Object;,1) (1646) +719: Dup(1,0) (1649) +720: Constant(I,0) (1650) +721: New(Ljava/lang/Integer;,0) (1651) +722: Dup(1,0) (1654) +723: Constant(I,0) (1655) +724: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (1656) +725: ArrayStore(Ljava/lang/Object;) (1659) +726: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (1660) +727: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1663) +728: Constant(Ljava/lang/String;,"(") (1666) +729: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1668) +730: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1671) +731: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1674) +732: LocalLoad(Ljava/lang/Object;,0) (1677) +733: New(Ljava/lang/StringBuilder;,0) (1678) +734: Dup(1,0) (1681) +735: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1682) +736: Constant(Ljava/lang/String;," ") (1685) +737: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1687) +738: Constant(Ljava/lang/String;,"act_num,") (1690) +739: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1692) +740: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1695) +741: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1698) +742: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1701) +743: LocalLoad(Ljava/lang/Object;,0) (1704) +744: New(Ljava/lang/StringBuilder;,0) (1705) +745: Dup(1,0) (1708) +746: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1709) +747: Constant(Ljava/lang/String;," ") (1712) +748: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1714) +749: Constant(Ljava/lang/String;,"parser,") (1717) +750: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1719) +751: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1722) +752: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1725) +753: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1728) +754: LocalLoad(Ljava/lang/Object;,0) (1731) +755: New(Ljava/lang/StringBuilder;,0) (1732) +756: Dup(1,0) (1735) +757: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1736) +758: Constant(Ljava/lang/String;," ") (1739) +759: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1741) +760: Constant(Ljava/lang/String;,"stack,") (1744) +761: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1746) +762: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1749) +763: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1752) +764: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1755) +765: LocalLoad(Ljava/lang/Object;,0) (1758) +766: New(Ljava/lang/StringBuilder;,0) (1759) +767: Dup(1,0) (1762) +768: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1763) +769: Constant(Ljava/lang/String;," ") (1766) +770: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1768) +771: Constant(Ljava/lang/String;,"top);") (1771) +772: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1773) +773: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1776) +774: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1779) +775: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1782) +776: LocalLoad(Ljava/lang/Object;,0) (1785) +777: Constant(Ljava/lang/String;," }") (1786) +778: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1788) +779: LocalLoad(Ljava/lang/Object;,0) (1791) +780: Constant(Ljava/lang/String;,"}") (1792) +781: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1794) +782: LocalLoad(Ljava/lang/Object;,0) (1797) +783: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1798) +784: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (1801) +785: LocalLoad(J,3) (1804) +786: BinaryOp(J,sub) (1805) +787: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (1806) +788: Return(V) (1809) +789: LocalLoad(Ljava/lang/Object;,0) (1810) +790: Constant(Ljava/lang/String;," /* select the action handler based on the action number */") (1811) +791: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1813) +792: LocalLoad(Ljava/lang/Object;,0) (1816) +793: New(Ljava/lang/StringBuilder;,0) (1817) +794: Dup(1,0) (1820) +795: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1821) +796: Constant(Ljava/lang/String;," switch (") (1824) +797: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1826) +798: Constant(Ljava/lang/String;,"act_num") (1829) +799: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1831) +800: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1834) +801: Constant(Ljava/lang/String;,"/") (1837) +802: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1839) +803: Constant(I,300) (1842) +804: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1845) +805: Constant(Ljava/lang/String;,")") (1848) +806: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1850) +807: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1853) +808: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1856) +809: LocalLoad(Ljava/lang/Object;,0) (1859) +810: Constant(Ljava/lang/String;," {") (1860) +811: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1862) +812: Constant(I,0) (1865) +813: LocalStore(I,5) (1866) +814: LocalLoad(I,5) (1868) +815: Invoke(STATIC,Ljava_cup/production;,number,()I) (1870) +816: Constant(I,300) (1873) +817: BinaryOp(I,div) (1876) +818: ConditionalBranch(I,gt,927) (1877) +819: LocalLoad(Ljava/lang/Object;,0) (1880) +820: New(Ljava/lang/StringBuilder;,0) (1881) +821: Dup(1,0) (1884) +822: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1885) +823: Constant(Ljava/lang/String;," /*. . . . . . . . ") (1888) +824: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1890) +825: LocalLoad(I,5) (1893) +826: Constant(I,300) (1895) +827: BinaryOp(I,mul) (1898) +828: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1899) +829: Constant(Ljava/lang/String;," < #action < ") (1902) +830: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1904) +831: LocalLoad(I,5) (1907) +832: Constant(I,1) (1909) +833: BinaryOp(I,add) (1910) +834: Constant(I,300) (1911) +835: BinaryOp(I,mul) (1914) +836: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1915) +837: Constant(Ljava/lang/String;,". . . . . . . . . . . .*/") (1918) +838: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1920) +839: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1923) +840: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1926) +841: LocalLoad(Ljava/lang/Object;,0) (1929) +842: New(Ljava/lang/StringBuilder;,0) (1930) +843: Dup(1,0) (1933) +844: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1934) +845: Constant(Ljava/lang/String;," case ") (1937) +846: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1939) +847: LocalLoad(I,5) (1942) +848: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1944) +849: Constant(Ljava/lang/String;,": ") (1947) +850: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1949) +851: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1952) +852: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1955) +853: LocalLoad(Ljava/lang/Object;,0) (1958) +854: New(Ljava/lang/StringBuilder;,0) (1959) +855: Dup(1,0) (1962) +856: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1963) +857: Constant(Ljava/lang/String;," return ") (1966) +858: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1968) +859: Constant(Ljava/lang/String;,"do_action_part") (1971) +860: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1973) +861: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1976) +862: Constant(Ljava/lang/String;,"%08d") (1979) +863: Constant(I,1) (1981) +864: New([Ljava/lang/Object;,1) (1982) +865: Dup(1,0) (1985) +866: Constant(I,0) (1986) +867: New(Ljava/lang/Integer;,0) (1987) +868: Dup(1,0) (1990) +869: LocalLoad(I,5) (1991) +870: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (1993) +871: ArrayStore(Ljava/lang/Object;) (1996) +872: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (1997) +873: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2000) +874: Constant(Ljava/lang/String;,"(") (2003) +875: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2005) +876: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2008) +877: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2011) +878: LocalLoad(Ljava/lang/Object;,0) (2014) +879: New(Ljava/lang/StringBuilder;,0) (2015) +880: Dup(1,0) (2018) +881: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2019) +882: Constant(Ljava/lang/String;," ") (2022) +883: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2024) +884: Constant(Ljava/lang/String;,"act_num,") (2027) +885: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2029) +886: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2032) +887: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2035) +888: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2038) +889: LocalLoad(Ljava/lang/Object;,0) (2041) +890: New(Ljava/lang/StringBuilder;,0) (2042) +891: Dup(1,0) (2045) +892: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2046) +893: Constant(Ljava/lang/String;," ") (2049) +894: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2051) +895: Constant(Ljava/lang/String;,"parser,") (2054) +896: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2056) +897: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2059) +898: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2062) +899: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2065) +900: LocalLoad(Ljava/lang/Object;,0) (2068) +901: New(Ljava/lang/StringBuilder;,0) (2069) +902: Dup(1,0) (2072) +903: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2073) +904: Constant(Ljava/lang/String;," ") (2076) +905: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2078) +906: Constant(Ljava/lang/String;,"stack,") (2081) +907: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2083) +908: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2086) +909: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2089) +910: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2092) +911: LocalLoad(Ljava/lang/Object;,0) (2095) +912: New(Ljava/lang/StringBuilder;,0) (2096) +913: Dup(1,0) (2099) +914: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2100) +915: Constant(Ljava/lang/String;," ") (2103) +916: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2105) +917: Constant(Ljava/lang/String;,"top);") (2108) +918: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2110) +919: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2113) +920: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2116) +921: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2119) +922: LocalLoad(I,5) (2122) +923: Constant(I,1) (2122) +924: BinaryOp(I,add) (2122) +925: LocalStore(I,5) (2122) +926: Goto(814) (2125) +927: LocalLoad(Ljava/lang/Object;,0) (2128) +928: Constant(Ljava/lang/String;," /* . . . no valid action number: . . .*/") (2129) +929: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2131) +930: LocalLoad(Ljava/lang/Object;,0) (2134) +931: Constant(Ljava/lang/String;," default:") (2135) +932: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2137) +933: LocalLoad(Ljava/lang/Object;,0) (2140) +934: Constant(Ljava/lang/String;," throw new Exception(\"Invalid action number found in internal parse table\");") (2141) +935: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2143) +936: LocalLoad(Ljava/lang/Object;,0) (2146) +937: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (2147) +938: LocalLoad(Ljava/lang/Object;,0) (2150) +939: Constant(Ljava/lang/String;," } /* end of switch */") (2151) +940: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2153) +941: LocalLoad(Ljava/lang/Object;,0) (2156) +942: Constant(Ljava/lang/String;," }") (2157) +943: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2159) +944: LocalLoad(Ljava/lang/Object;,0) (2162) +945: Constant(Ljava/lang/String;,"}") (2163) +946: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2165) +947: LocalLoad(Ljava/lang/Object;,0) (2168) +948: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (2169) +949: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (2172) +950: LocalLoad(J,3) (2175) +951: BinaryOp(J,sub) (2176) +952: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (2177) +953: Return(V) (2180) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"emit_xmlaction_code(Ljava/io/PrintWriter;Ljava_cup/production;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (0) + Handles null at 968 +5: LocalStore(J,3) (3) + Handles null at 968 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 968 +7: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (5) + Handles null at 968 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 968 +9: Constant(Ljava/lang/String;,"/** Cup generated class to encapsulate user supplied action code.*/") (9) + Handles null at 968 +10: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (11) + Handles null at 968 +11: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 968 +12: Constant(Ljava/lang/String;,"@SuppressWarnings({\"rawtypes\", \"unchecked\", \"unused\"})") (15) + Handles null at 968 +13: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (17) + Handles null at 968 +14: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 968 +15: New(Ljava/lang/StringBuilder;,0) (21) + Handles null at 968 +16: Dup(1,0) (24) + Handles null at 968 +17: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (25) + Handles null at 968 +18: Constant(Ljava/lang/String;,"class ") (28) + Handles null at 968 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (30) + Handles null at 968 +20: Constant(Ljava/lang/String;,"actions") (33) + Handles null at 968 +21: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (35) + Handles null at 968 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) + Handles null at 968 +23: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (41) + Handles null at 968 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (44) + Handles null at 968 +25: Constant(Ljava/lang/String;," {") (47) + Handles null at 968 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (49) + Handles null at 968 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (52) + Handles null at 968 +28: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (55) + Handles null at 968 +29: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (58) + Handles null at 968 +30: Constant(L;,null) (61) + Handles null at 968 +31: ConditionalBranch(Ljava/lang/Object;,eq,37) (61) + Handles null at 968 +32: LocalLoad(Ljava/lang/Object;,0) (64) + Handles null at 968 +33: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (65) + Handles null at 968 +34: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 968 +35: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (69) + Handles null at 968 +36: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (72) + Handles null at 968 +37: LocalLoad(Ljava/lang/Object;,0) (75) + Handles null at 968 +38: New(Ljava/lang/StringBuilder;,0) (76) + Handles null at 968 +39: Dup(1,0) (79) + Handles null at 968 +40: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (80) + Handles null at 968 +41: Constant(Ljava/lang/String;," private final ") (83) + Handles null at 968 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (85) + Handles null at 968 +43: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (88) + Handles null at 968 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) + Handles null at 968 +45: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (94) + Handles null at 968 +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) + Handles null at 968 +47: Constant(Ljava/lang/String;," parser;") (100) + Handles null at 968 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (102) + Handles null at 968 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (105) + Handles null at 968 +50: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (108) + Handles null at 968 +51: LocalLoad(Ljava/lang/Object;,0) (111) + Handles null at 968 +52: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (112) + Handles null at 968 +53: LocalLoad(Ljava/lang/Object;,0) (115) + Handles null at 968 +54: Constant(Ljava/lang/String;," /** Constructor */") (116) + Handles null at 968 +55: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (118) + Handles null at 968 +56: LocalLoad(Ljava/lang/Object;,0) (121) + Handles null at 968 +57: New(Ljava/lang/StringBuilder;,0) (122) + Handles null at 968 +58: Dup(1,0) (125) + Handles null at 968 +59: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (126) + Handles null at 968 +60: Constant(Ljava/lang/String;," ") (129) + Handles null at 968 +61: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (131) + Handles null at 968 +62: Constant(Ljava/lang/String;,"actions") (134) + Handles null at 968 +63: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (136) + Handles null at 968 +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) + Handles null at 968 +65: Constant(Ljava/lang/String;,"(") (142) + Handles null at 968 +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (144) + Handles null at 968 +67: Get(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (147) + Handles null at 968 +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (150) + Handles null at 968 +69: Invoke(STATIC,Ljava_cup/emit;,typeArgument,()Ljava/lang/String;) (153) + Handles null at 968 +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) + Handles null at 968 +71: Constant(Ljava/lang/String;," parser) {") (159) + Handles null at 968 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (161) + Handles null at 968 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (164) + Handles null at 968 +74: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (167) + Handles null at 968 +75: LocalLoad(Ljava/lang/Object;,0) (170) + Handles null at 968 +76: Constant(Ljava/lang/String;," this.parser = parser;") (171) + Handles null at 968 +77: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (173) + Handles null at 968 +78: LocalLoad(Ljava/lang/Object;,0) (176) + Handles null at 968 +79: Constant(Ljava/lang/String;," }") (177) + Handles null at 968 +80: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (179) + Handles null at 968 +81: LocalLoad(Ljava/lang/Object;,0) (182) + Handles null at 968 +82: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (183) + Handles null at 968 +83: Constant(I,0) (186) + Handles null at 968 +84: LocalStore(I,5) (187) + Handles null at 968 +85: LocalLoad(I,5) (189) + Handles null at 968 +86: Invoke(STATIC,Ljava_cup/production;,number,()I) (191) + Handles null at 968 +87: Constant(I,300) (194) + Handles null at 968 +88: BinaryOp(I,div) (197) + Handles null at 968 +89: ConditionalBranch(I,gt,640) (198) + Handles null at 968 +90: LocalLoad(Ljava/lang/Object;,0) (201) + Handles null at 968 +91: New(Ljava/lang/StringBuilder;,0) (202) + Handles null at 968 +92: Dup(1,0) (205) + Handles null at 968 +93: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (206) + Handles null at 968 +94: Constant(Ljava/lang/String;," /** Method ") (209) + Handles null at 968 +95: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (211) + Handles null at 968 +96: LocalLoad(I,5) (214) + Handles null at 968 +97: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (216) + Handles null at 968 +98: Constant(Ljava/lang/String;," with the actual generated action code for actions ") (219) + Handles null at 968 +99: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (221) + Handles null at 968 +100: LocalLoad(I,5) (224) + Handles null at 968 +101: Constant(I,300) (226) + Handles null at 968 +102: BinaryOp(I,mul) (229) + Handles null at 968 +103: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (230) + Handles null at 968 +104: Constant(Ljava/lang/String;," to ") (233) + Handles null at 968 +105: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (235) + Handles null at 968 +106: LocalLoad(I,5) (238) + Handles null at 968 +107: Constant(I,1) (240) + Handles null at 968 +108: BinaryOp(I,add) (241) + Handles null at 968 +109: Constant(I,300) (242) + Handles null at 968 +110: BinaryOp(I,mul) (245) + Handles null at 968 +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (246) + Handles null at 968 +112: Constant(Ljava/lang/String;,". */") (249) + Handles null at 968 +113: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) + Handles null at 968 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (254) + Handles null at 968 +115: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (257) + Handles null at 968 +116: LocalLoad(Ljava/lang/Object;,0) (260) + Handles null at 968 +117: New(Ljava/lang/StringBuilder;,0) (261) + Handles null at 968 +118: Dup(1,0) (264) + Handles null at 968 +119: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (265) + Handles null at 968 +120: Constant(Ljava/lang/String;," public final java_cup.runtime.Symbol ") (268) + Handles null at 968 +121: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (270) + Handles null at 968 +122: Constant(Ljava/lang/String;,"do_action_part") (273) + Handles null at 968 +123: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (275) + Handles null at 968 +124: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (278) + Handles null at 968 +125: Constant(Ljava/lang/String;,"%08d") (281) + Handles null at 968 +126: Constant(I,1) (283) + Handles null at 968 +127: New([Ljava/lang/Object;,1) (284) + Handles null at 968 +128: Dup(1,0) (287) + Handles null at 968 +129: Constant(I,0) (288) + Handles null at 968 +130: New(Ljava/lang/Integer;,0) (289) + Handles null at 968 +131: Dup(1,0) (292) + Handles null at 968 +132: LocalLoad(I,5) (293) + Handles null at 968 +133: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (295) + Handles null at 968 +134: ArrayStore(Ljava/lang/Object;) (298) + Handles null at 968 +135: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (299) + Handles null at 968 +136: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (302) + Handles null at 968 +137: Constant(Ljava/lang/String;,"(") (305) + Handles null at 968 +138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (307) + Handles null at 968 +139: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (310) + Handles null at 968 +140: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (313) + Handles null at 968 +141: LocalLoad(Ljava/lang/Object;,0) (316) + Handles null at 968 +142: New(Ljava/lang/StringBuilder;,0) (317) + Handles null at 968 +143: Dup(1,0) (320) + Handles null at 968 +144: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (321) + Handles null at 968 +145: Constant(Ljava/lang/String;," int ") (324) + Handles null at 968 +146: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (326) + Handles null at 968 +147: Constant(Ljava/lang/String;,"act_num,") (329) + Handles null at 968 +148: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (331) + Handles null at 968 +149: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (334) + Handles null at 968 +150: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (337) + Handles null at 968 +151: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (340) + Handles null at 968 +152: LocalLoad(Ljava/lang/Object;,0) (343) + Handles null at 968 +153: New(Ljava/lang/StringBuilder;,0) (344) + Handles null at 968 +154: Dup(1,0) (347) + Handles null at 968 +155: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (348) + Handles null at 968 +156: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser ") (351) + Handles null at 968 +157: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (353) + Handles null at 968 +158: Constant(Ljava/lang/String;,"parser,") (356) + Handles null at 968 +159: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (358) + Handles null at 968 +160: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (361) + Handles null at 968 +161: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (364) + Handles null at 968 +162: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (367) + Handles null at 968 +163: LocalLoad(Ljava/lang/Object;,0) (370) + Handles null at 968 +164: New(Ljava/lang/StringBuilder;,0) (371) + Handles null at 968 +165: Dup(1,0) (374) + Handles null at 968 +166: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (375) + Handles null at 968 +167: Constant(Ljava/lang/String;," java.util.Stack ") (378) + Handles null at 968 +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (380) + Handles null at 968 +169: Constant(Ljava/lang/String;,"stack,") (383) + Handles null at 968 +170: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (385) + Handles null at 968 +171: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (388) + Handles null at 968 +172: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (391) + Handles null at 968 +173: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (394) + Handles null at 968 +174: LocalLoad(Ljava/lang/Object;,0) (397) + Handles null at 968 +175: New(Ljava/lang/StringBuilder;,0) (398) + Handles null at 968 +176: Dup(1,0) (401) + Handles null at 968 +177: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (402) + Handles null at 968 +178: Constant(Ljava/lang/String;," int ") (405) + Handles null at 968 +179: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (407) + Handles null at 968 +180: Constant(Ljava/lang/String;,"top)") (410) + Handles null at 968 +181: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (412) + Handles null at 968 +182: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (415) + Handles null at 968 +183: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (418) + Handles null at 968 +184: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (421) + Handles null at 968 +185: LocalLoad(Ljava/lang/Object;,0) (424) + Handles null at 968 +186: Constant(Ljava/lang/String;," throws java.lang.Exception") (425) + Handles null at 968 +187: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (427) + Handles null at 968 +188: LocalLoad(Ljava/lang/Object;,0) (430) + Handles null at 968 +189: Constant(Ljava/lang/String;," {") (431) + Handles null at 968 +190: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (433) + Handles null at 968 +191: LocalLoad(Ljava/lang/Object;,0) (436) + Handles null at 968 +192: Constant(Ljava/lang/String;," /* Symbol object for return from actions */") (437) + Handles null at 968 +193: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (439) + Handles null at 968 +194: LocalLoad(Ljava/lang/Object;,0) (442) + Handles null at 968 +195: New(Ljava/lang/StringBuilder;,0) (443) + Handles null at 968 +196: Dup(1,0) (446) + Handles null at 968 +197: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (447) + Handles null at 968 +198: Constant(Ljava/lang/String;," java_cup.runtime.Symbol ") (450) + Handles null at 968 +199: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (452) + Handles null at 968 +200: Constant(Ljava/lang/String;,"result") (455) + Handles null at 968 +201: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (457) + Handles null at 968 +202: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (460) + Handles null at 968 +203: Constant(Ljava/lang/String;,";") (463) + Handles null at 968 +204: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (465) + Handles null at 968 +205: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (468) + Handles null at 968 +206: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (471) + Handles null at 968 +207: LocalLoad(Ljava/lang/Object;,0) (474) + Handles null at 968 +208: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (475) + Handles null at 968 +209: LocalLoad(Ljava/lang/Object;,0) (478) + Handles null at 968 +210: Constant(Ljava/lang/String;," /* select the action based on the action number */") (479) + Handles null at 968 +211: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (481) + Handles null at 968 +212: LocalLoad(Ljava/lang/Object;,0) (484) + Handles null at 968 +213: New(Ljava/lang/StringBuilder;,0) (485) + Handles null at 968 +214: Dup(1,0) (488) + Handles null at 968 +215: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (489) + Handles null at 968 +216: Constant(Ljava/lang/String;," switch (") (492) + Handles null at 968 +217: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (494) + Handles null at 968 +218: Constant(Ljava/lang/String;,"act_num") (497) + Handles null at 968 +219: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (499) + Handles null at 968 +220: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (502) + Handles null at 968 +221: Constant(Ljava/lang/String;,")") (505) + Handles null at 968 +222: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (507) + Handles null at 968 +223: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (510) + Handles null at 968 +224: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (513) + Handles null at 968 +225: LocalLoad(Ljava/lang/Object;,0) (516) + Handles null at 968 +226: Constant(Ljava/lang/String;," {") (517) + Handles null at 968 +227: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (519) + Handles null at 968 +228: LocalLoad(I,5) (522) + Handles null at 968 +229: Constant(I,300) (524) + Handles null at 968 +230: BinaryOp(I,mul) (527) + Handles null at 968 +231: LocalStore(I,6) (528) + Handles null at 968 +232: LocalLoad(I,6) (530) + Handles null at 968 +233: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (532) + Handles null at 968 +234: LocalStore(Ljava/lang/Object;,2) (535) + Handles null at 968 +235: LocalLoad(I,6) (536) + Handles null at 968 +236: LocalLoad(I,5) (538) + Handles null at 968 +237: Constant(I,1) (540) + Handles null at 968 +238: BinaryOp(I,add) (541) + Handles null at 968 +239: Constant(I,300) (542) + Handles null at 968 +240: BinaryOp(I,mul) (545) + Handles null at 968 +241: Invoke(STATIC,Ljava_cup/production;,number,()I) (546) + Handles null at 968 +242: Invoke(STATIC,Ljava/lang/Math;,min,(II)I) (549) + Handles null at 968 +243: ConditionalBranch(I,ge,603) (552) + Handles null at 968 +244: LocalLoad(Ljava/lang/Object;,0) (555) + Handles null at 968 +245: Constant(Ljava/lang/String;," /*. . . . . . . . . . . . . . . . . . . .*/") (556) + Handles null at 968 +246: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (558) + Handles null at 968 +247: LocalLoad(Ljava/lang/Object;,0) (561) + Handles null at 968 +248: New(Ljava/lang/StringBuilder;,0) (562) + Handles null at 968 +249: Dup(1,0) (565) + Handles null at 968 +250: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (566) + Handles null at 968 +251: Constant(Ljava/lang/String;," case ") (569) + Handles null at 968 +252: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (571) + Handles null at 968 +253: LocalLoad(Ljava/lang/Object;,2) (574) + Handles null at 968 +254: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (575) + Handles null at 968 +255: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (578) + Handles null at 968 +256: Constant(Ljava/lang/String;,": // ") (581) + Handles null at 968 +257: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (583) + Handles null at 968 +258: LocalLoad(Ljava/lang/Object;,2) (586) + Handles null at 968 +259: Invoke(VIRTUAL,Ljava_cup/production;,to_simple_string,()Ljava/lang/String;) (587) + Handles null at 968 +260: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (590) + Handles null at 968 +261: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (593) + Handles null at 968 +262: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (596) + Handles null at 968 +263: LocalLoad(Ljava/lang/Object;,0) (599) + Handles null at 968 +264: Constant(Ljava/lang/String;," {") (600) + Handles null at 968 +265: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (602) + Handles null at 968 +266: LocalLoad(Ljava/lang/Object;,0) (605) + Handles null at 968 +267: Constant(Ljava/lang/String;," XMLElement RESULT;") (606) + Handles null at 968 +268: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (609) + Handles null at 968 +269: Constant(Ljava/lang/String;,"") (612) + Handles null at 968 +270: LocalStore(Ljava/lang/Object;,7) (614) + Handles null at 968 +271: Constant(I,0) (616) + Handles null at 968 +272: LocalStore(I,8) (617) + Handles null at 968 +273: LocalLoad(I,8) (619) + Handles null at 968 +274: LocalLoad(Ljava/lang/Object;,2) (621) + Handles null at 968 +275: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (622) + Handles null at 968 +276: ConditionalBranch(I,ge,359) (625) + Handles null at 968 +277: LocalLoad(Ljava/lang/Object;,2) (628) + Handles null at 968 +278: LocalLoad(I,8) (629) + Handles null at 968 +279: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (631) + Handles null at 968 +280: Instanceof(Ljava_cup/symbol_part;) (634) + Handles null at 968 +281: Constant(I,0) (637) + Handles null at 968 +282: ConditionalBranch(I,ne,284) (637) + Handles null at 968 +283: Goto(354) (640) + Handles null at 968 +284: LocalLoad(Ljava/lang/Object;,2) (643) + Handles null at 968 +285: LocalLoad(I,8) (644) + Handles null at 968 +286: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (646) + Handles null at 968 +287: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (649) + Handles null at 968 +288: LocalStore(Ljava/lang/Object;,9) (652) + Handles null at 968 +289: LocalLoad(Ljava/lang/Object;,2) (654) + Handles null at 968 +290: LocalLoad(I,8) (655) + Handles null at 968 +291: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (657) + Handles null at 968 +292: CheckCast(Ljava_cup/symbol_part;) (660) + Handles null at 968 +293: LocalStore(Ljava/lang/Object;,10) (663) + Handles null at 968 +294: LocalLoad(Ljava/lang/Object;,9) (665) + Handles null at 968 +295: Constant(L;,null) (667) + Handles null at 968 +296: ConditionalBranch(Ljava/lang/Object;,ne,312) (667) + Handles null at 968 +297: Get(Z,STATIC,Ljava_cup/emit;,_genericlabels) (670) + Handles null at 968 +298: Constant(I,0) (673) + Handles null at 968 +299: ConditionalBranch(I,ne,301) (673) + Handles null at 968 +300: Goto(354) (676) + Handles null at 968 +301: New(Ljava/lang/StringBuilder;,0) (679) + Handles null at 968 +302: Dup(1,0) (682) + Handles null at 968 +303: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (683) + Handles null at 968 +304: LocalLoad(Ljava/lang/Object;,10) (686) + Handles null at 968 +305: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (688) + Handles null at 968 +306: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (691) + Handles null at 968 +307: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (694) + Handles null at 968 +308: LocalLoad(I,8) (697) + Handles null at 968 +309: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (699) + Handles null at 968 +310: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (702) + Handles null at 968 +311: LocalStore(Ljava/lang/Object;,9) (705) + Handles null at 968 +312: LocalLoad(Ljava/lang/Object;,10) (707) + Handles null at 968 +313: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (709) + Handles null at 968 +314: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (712) + Handles null at 968 +315: Constant(I,0) (715) + Handles null at 968 +316: ConditionalBranch(I,eq,329) (715) + Handles null at 968 +317: New(Ljava/lang/StringBuilder;,0) (718) + Handles null at 968 +318: Dup(1,0) (721) + Handles null at 968 +319: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (722) + Handles null at 968 +320: LocalLoad(Ljava/lang/Object;,7) (725) + Handles null at 968 +321: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (727) + Handles null at 968 +322: Constant(Ljava/lang/String;,",(XMLElement)") (730) + Handles null at 968 +323: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (733) + Handles null at 968 +324: LocalLoad(Ljava/lang/Object;,9) (736) + Handles null at 968 +325: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (738) + Handles null at 968 +326: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (741) + Handles null at 968 +327: LocalStore(Ljava/lang/Object;,7) (744) + Handles null at 968 +328: Goto(354) (746) + Handles null at 968 +329: New(Ljava/lang/StringBuilder;,0) (749) + Handles null at 968 +330: Dup(1,0) (752) + Handles null at 968 +331: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (753) + Handles null at 968 +332: LocalLoad(Ljava/lang/Object;,7) (756) + Handles null at 968 +333: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (758) + Handles null at 968 +334: Constant(Ljava/lang/String;,",new XMLElement.Terminal(") (761) + Handles null at 968 +335: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (764) + Handles null at 968 +336: LocalLoad(Ljava/lang/Object;,9) (767) + Handles null at 968 +337: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (769) + Handles null at 968 +338: Constant(Ljava/lang/String;,"xleft,\"") (772) + Handles null at 968 +339: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (775) + Handles null at 968 +340: LocalLoad(Ljava/lang/Object;,9) (778) + Handles null at 968 +341: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (780) + Handles null at 968 +342: Constant(Ljava/lang/String;,"\",") (783) + Handles null at 968 +343: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (785) + Handles null at 968 +344: LocalLoad(Ljava/lang/Object;,9) (788) + Handles null at 968 +345: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (790) + Handles null at 968 +346: Constant(Ljava/lang/String;,",") (793) + Handles null at 968 +347: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (795) + Handles null at 968 +348: LocalLoad(Ljava/lang/Object;,9) (798) + Handles null at 968 +349: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (800) + Handles null at 968 +350: Constant(Ljava/lang/String;,"xright)") (803) + Handles null at 968 +351: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (806) + Handles null at 968 +352: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (809) + Handles null at 968 +353: LocalStore(Ljava/lang/Object;,7) (812) + Handles null at 968 +354: LocalLoad(I,8) (814) + Handles null at 968 +355: Constant(I,1) (814) + Handles null at 968 +356: BinaryOp(I,add) (814) + Handles null at 968 +357: LocalStore(I,8) (814) + Handles null at 968 +358: Goto(273) (817) + Handles null at 968 +359: LocalLoad(Ljava/lang/Object;,2) (820) + Handles null at 968 +360: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (821) + Handles null at 968 +361: Constant(L;,null) (824) + Handles null at 968 +362: ConditionalBranch(Ljava/lang/Object;,eq,379) (824) + Handles null at 968 +363: LocalLoad(Ljava/lang/Object;,2) (827) + Handles null at 968 +364: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (828) + Handles null at 968 +365: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (831) + Handles null at 968 +366: Constant(L;,null) (834) + Handles null at 968 +367: ConditionalBranch(Ljava/lang/Object;,eq,379) (834) + Handles null at 968 +368: LocalLoad(Ljava/lang/Object;,2) (837) + Handles null at 968 +369: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (838) + Handles null at 968 +370: Constant(Ljava/lang/String;,"") (841) + Handles null at 968 +371: Invoke(VIRTUAL,Ljava_cup/action_part;,equals,(Ljava/lang/Object;)Z) (843) + Handles null at 968 +372: Constant(I,0) (846) + Handles null at 968 +373: ConditionalBranch(I,ne,379) (846) + Handles null at 968 +374: LocalLoad(Ljava/lang/Object;,0) (849) + Handles null at 968 +375: LocalLoad(Ljava/lang/Object;,2) (850) + Handles null at 968 +376: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (851) + Handles null at 968 +377: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (854) + Handles null at 968 +378: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (857) + Handles null at 968 +379: Constant(I,0) (860) + Handles null at 968 +380: LocalStore(I,8) (861) + Handles null at 968 +381: Constant(I,0) (863) + Handles null at 968 +382: LocalStore(I,9) (864) + Handles null at 968 +383: LocalLoad(I,9) (866) + Handles null at 968 +384: LocalLoad(I,6) (868) + Handles null at 968 +385: ConditionalBranch(I,ge,403) (870) + Handles null at 968 +386: LocalLoad(I,9) (873) + Handles null at 968 +387: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (875) + Handles null at 968 +388: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (878) + Handles null at 968 +389: LocalLoad(Ljava/lang/Object;,2) (881) + Handles null at 968 +390: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (882) + Handles null at 968 +391: Invoke(VIRTUAL,Ljava_cup/symbol_part;,equals,(Ljava_cup/symbol_part;)Z) (885) + Handles null at 968 +392: Constant(I,0) (888) + Handles null at 968 +393: ConditionalBranch(I,eq,398) (888) + Handles null at 968 +394: LocalLoad(I,8) (891) + Handles null at 968 +395: Constant(I,1) (891) + Handles null at 968 +396: BinaryOp(I,add) (891) + Handles null at 968 +397: LocalStore(I,8) (891) + Handles null at 968 +398: LocalLoad(I,9) (894) + Handles null at 968 +399: Constant(I,1) (894) + Handles null at 968 +400: BinaryOp(I,add) (894) + Handles null at 968 +401: LocalStore(I,9) (894) + Handles null at 968 +402: Goto(383) (897) + Handles null at 968 +403: LocalLoad(Ljava/lang/Object;,2) (900) + Handles null at 968 +404: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (901) + Handles null at 968 +405: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (904) + Handles null at 968 +406: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (907) + Handles null at 968 +407: Constant(I,36) (910) + Handles null at 968 +408: Constant(I,95) (912) + Handles null at 968 +409: Invoke(VIRTUAL,Ljava/lang/String;,replace,(CC)Ljava/lang/String;) (914) + Handles null at 968 +410: LocalStore(Ljava/lang/Object;,9) (917) + Handles null at 968 +411: LocalLoad(Ljava/lang/Object;,0) (919) + Handles null at 968 +412: New(Ljava/lang/StringBuilder;,0) (920) + Handles null at 968 +413: Dup(1,0) (923) + Handles null at 968 +414: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (924) + Handles null at 968 +415: Constant(Ljava/lang/String;," RESULT = new XMLElement.NonTerminal(\"") (927) + Handles null at 968 +416: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (930) + Handles null at 968 +417: LocalLoad(Ljava/lang/Object;,9) (933) + Handles null at 968 +418: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (935) + Handles null at 968 +419: Constant(Ljava/lang/String;,"\",") (938) + Handles null at 968 +420: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (940) + Handles null at 968 +421: LocalLoad(I,8) (943) + Handles null at 968 +422: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (945) + Handles null at 968 +423: LocalLoad(Ljava/lang/Object;,7) (948) + Handles null at 968 +424: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (950) + Handles null at 968 +425: Constant(Ljava/lang/String;,");") (953) + Handles null at 968 +426: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (955) + Handles null at 968 +427: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (958) + Handles null at 968 +428: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (961) + Handles null at 968 +429: Invoke(STATIC,Ljava_cup/emit;,lr_values,()Z) (964) + Handles null at 968 +430: Constant(I,0) (967) + Handles null at 968 +431: ConditionalBranch(I,eq,529) (967) + Handles null at 968 +432: New(Ljava/lang/StringBuilder;,0) (970) + Handles null at 968 +433: Dup(1,0) (973) + Handles null at 968 +434: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (974) + Handles null at 968 +435: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol)") (977) + Handles null at 968 +436: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (979) + Handles null at 968 +437: Constant(Ljava/lang/String;,"stack") (982) + Handles null at 968 +438: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (984) + Handles null at 968 +439: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (987) + Handles null at 968 +440: Constant(Ljava/lang/String;,".peek()") (990) + Handles null at 968 +441: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (992) + Handles null at 968 +442: Constant(Ljava/lang/String;,")") (995) + Handles null at 968 +443: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (997) + Handles null at 968 +444: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1000) + Handles null at 968 +445: LocalStore(Ljava/lang/Object;,12) (1003) + Handles null at 968 +446: LocalLoad(Ljava/lang/Object;,2) (1005) + Handles null at 968 +447: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (1006) + Handles null at 968 +448: Constant(I,0) (1009) + Handles null at 968 +449: ConditionalBranch(I,ne,453) (1009) + Handles null at 968 +450: LocalLoad(Ljava/lang/Object;,12) (1012) + Handles null at 968 +451: LocalStore(Ljava/lang/Object;,11) (1014) + Handles null at 968 +452: Goto(491) (1016) + Handles null at 968 +453: LocalLoad(Ljava/lang/Object;,2) (1019) + Handles null at 968 +454: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (1020) + Handles null at 968 +455: Constant(I,1) (1023) + Handles null at 968 +456: BinaryOp(I,sub) (1024) + Handles null at 968 +457: LocalStore(I,10) (1025) + Handles null at 968 +458: New(Ljava/lang/StringBuilder;,0) (1027) + Handles null at 968 +459: Dup(1,0) (1030) + Handles null at 968 +460: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1031) + Handles null at 968 +461: Constant(Ljava/lang/String;,"((java_cup.runtime.Symbol)") (1034) + Handles null at 968 +462: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1036) + Handles null at 968 +463: Constant(Ljava/lang/String;,"stack") (1039) + Handles null at 968 +464: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1041) + Handles null at 968 +465: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1044) + Handles null at 968 +466: LocalLoad(I,10) (1047) + Handles null at 968 +467: Constant(I,0) (1049) + Handles null at 968 +468: ConditionalBranch(I,ne,471) (1049) + Handles null at 968 +469: Constant(Ljava/lang/String;,".peek()") (1052) + Handles null at 968 +470: Goto(486) (1054) + Handles null at 968 +471: New(Ljava/lang/StringBuilder;,0) (1057) + Handles null at 968 +472: Dup(1,0) (1060) + Handles null at 968 +473: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1061) + Handles null at 968 +474: Constant(Ljava/lang/String;,".elementAt(") (1064) + Handles null at 968 +475: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1066) + Handles null at 968 +476: Constant(Ljava/lang/String;,"top") (1069) + Handles null at 968 +477: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1071) + Handles null at 968 +478: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1074) + Handles null at 968 +479: Constant(Ljava/lang/String;,"-") (1077) + Handles null at 968 +480: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1079) + Handles null at 968 +481: LocalLoad(I,10) (1082) + Handles null at 968 +482: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1084) + Handles null at 968 +483: Constant(Ljava/lang/String;,")") (1087) + Handles null at 968 +484: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1089) + Handles null at 968 +485: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1092) + Handles null at 968 +486: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1095) + Handles null at 968 +487: Constant(Ljava/lang/String;,")") (1098) + Handles null at 968 +488: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1100) + Handles null at 968 +489: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1103) + Handles null at 968 +490: LocalStore(Ljava/lang/Object;,11) (1106) + Handles null at 968 +491: LocalLoad(Ljava/lang/Object;,0) (1108) + Handles null at 968 +492: New(Ljava/lang/StringBuilder;,0) (1109) + Handles null at 968 +493: Dup(1,0) (1112) + Handles null at 968 +494: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1113) + Handles null at 968 +495: Constant(Ljava/lang/String;," ") (1116) + Handles null at 968 +496: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1118) + Handles null at 968 +497: Constant(Ljava/lang/String;,"result") (1121) + Handles null at 968 +498: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1123) + Handles null at 968 +499: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1126) + Handles null at 968 +500: Constant(Ljava/lang/String;," = parser.getSymbolFactory().newSymbol(") (1129) + Handles null at 968 +501: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1131) + Handles null at 968 +502: Constant(Ljava/lang/String;,"\"") (1134) + Handles null at 968 +503: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1136) + Handles null at 968 +504: LocalLoad(Ljava/lang/Object;,2) (1139) + Handles null at 968 +505: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1140) + Handles null at 968 +506: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1143) + Handles null at 968 +507: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1146) + Handles null at 968 +508: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1149) + Handles null at 968 +509: Constant(Ljava/lang/String;,"\",") (1152) + Handles null at 968 +510: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1154) + Handles null at 968 +511: LocalLoad(Ljava/lang/Object;,2) (1157) + Handles null at 968 +512: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1158) + Handles null at 968 +513: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1161) + Handles null at 968 +514: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (1164) + Handles null at 968 +515: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1167) + Handles null at 968 +516: Constant(Ljava/lang/String;,", ") (1170) + Handles null at 968 +517: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1172) + Handles null at 968 +518: LocalLoad(Ljava/lang/Object;,11) (1175) + Handles null at 968 +519: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1177) + Handles null at 968 +520: Constant(Ljava/lang/String;,", ") (1180) + Handles null at 968 +521: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1182) + Handles null at 968 +522: LocalLoad(Ljava/lang/Object;,12) (1185) + Handles null at 968 +523: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1187) + Handles null at 968 +524: Constant(Ljava/lang/String;,", RESULT);") (1190) + Handles null at 968 +525: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1192) + Handles null at 968 +526: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1195) + Handles null at 968 +527: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1198) + Handles null at 968 +528: Goto(558) (1201) + Handles null at 968 +529: LocalLoad(Ljava/lang/Object;,0) (1204) + Handles null at 968 +530: New(Ljava/lang/StringBuilder;,0) (1205) + Handles null at 968 +531: Dup(1,0) (1208) + Handles null at 968 +532: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1209) + Handles null at 968 +533: Constant(Ljava/lang/String;," ") (1212) + Handles null at 968 +534: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1214) + Handles null at 968 +535: Constant(Ljava/lang/String;,"result") (1217) + Handles null at 968 +536: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1219) + Handles null at 968 +537: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1222) + Handles null at 968 +538: Constant(Ljava/lang/String;," = parser.getSymbolFactory().newSymbol(") (1225) + Handles null at 968 +539: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1227) + Handles null at 968 +540: Constant(Ljava/lang/String;,"\"") (1230) + Handles null at 968 +541: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1232) + Handles null at 968 +542: LocalLoad(Ljava/lang/Object;,2) (1235) + Handles null at 968 +543: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1236) + Handles null at 968 +544: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1239) + Handles null at 968 +545: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1242) + Handles null at 968 +546: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1245) + Handles null at 968 +547: Constant(Ljava/lang/String;,"\",") (1248) + Handles null at 968 +548: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1250) + Handles null at 968 +549: LocalLoad(Ljava/lang/Object;,2) (1253) + Handles null at 968 +550: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1254) + Handles null at 968 +551: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1257) + Handles null at 968 +552: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (1260) + Handles null at 968 +553: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1263) + Handles null at 968 +554: Constant(Ljava/lang/String;,", RESULT);") (1266) + Handles null at 968 +555: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1268) + Handles null at 968 +556: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1271) + Handles null at 968 +557: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1274) + Handles null at 968 +558: LocalLoad(Ljava/lang/Object;,0) (1277) + Handles null at 968 +559: Constant(Ljava/lang/String;," }") (1278) + Handles null at 968 +560: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1280) + Handles null at 968 +561: LocalLoad(Ljava/lang/Object;,2) (1283) + Handles null at 968 +562: LocalLoad(Ljava/lang/Object;,1) (1284) + Handles null at 968 +563: ConditionalBranch(Ljava/lang/Object;,ne,580) (1285) + Handles null at 968 +564: LocalLoad(Ljava/lang/Object;,0) (1288) + Handles null at 968 +565: Constant(Ljava/lang/String;," /* ACCEPT */") (1289) + Handles null at 968 +566: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1291) + Handles null at 968 +567: LocalLoad(Ljava/lang/Object;,0) (1294) + Handles null at 968 +568: New(Ljava/lang/StringBuilder;,0) (1295) + Handles null at 968 +569: Dup(1,0) (1298) + Handles null at 968 +570: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1299) + Handles null at 968 +571: Constant(Ljava/lang/String;," ") (1302) + Handles null at 968 +572: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1304) + Handles null at 968 +573: Constant(Ljava/lang/String;,"parser") (1307) + Handles null at 968 +574: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1309) + Handles null at 968 +575: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1312) + Handles null at 968 +576: Constant(Ljava/lang/String;,".done_parsing();") (1315) + Handles null at 968 +577: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1317) + Handles null at 968 +578: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1320) + Handles null at 968 +579: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1323) + Handles null at 968 +580: LocalLoad(Ljava/lang/Object;,0) (1326) + Handles null at 968 +581: New(Ljava/lang/StringBuilder;,0) (1327) + Handles null at 968 +582: Dup(1,0) (1330) + Handles null at 968 +583: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1331) + Handles null at 968 +584: Constant(Ljava/lang/String;," return ") (1334) + Handles null at 968 +585: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1336) + Handles null at 968 +586: Constant(Ljava/lang/String;,"result") (1339) + Handles null at 968 +587: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1341) + Handles null at 968 +588: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1344) + Handles null at 968 +589: Constant(Ljava/lang/String;,";") (1347) + Handles null at 968 +590: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1349) + Handles null at 968 +591: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1352) + Handles null at 968 +592: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1355) + Handles null at 968 +593: LocalLoad(Ljava/lang/Object;,0) (1358) + Handles null at 968 +594: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1359) + Handles null at 968 +595: LocalLoad(I,6) (1362) + Handles null at 968 +596: Constant(I,1) (1362) + Handles null at 968 +597: BinaryOp(I,add) (1362) + Handles null at 968 +598: LocalStore(I,6) (1362) + Handles null at 968 +599: LocalLoad(I,6) (1365) + Handles null at 968 +600: Invoke(STATIC,Ljava_cup/production;,find,(I)Ljava_cup/production;) (1367) + Handles null at 968 +601: LocalStore(Ljava/lang/Object;,2) (1370) + Handles null at 968 +602: Goto(235) (1371) + Handles null at 968 +603: LocalLoad(Ljava/lang/Object;,0) (1374) + Handles null at 968 +604: Constant(Ljava/lang/String;," /* . . . . . .*/") (1375) + Handles null at 968 +605: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1377) + Handles null at 968 +606: LocalLoad(Ljava/lang/Object;,0) (1380) + Handles null at 968 +607: Constant(Ljava/lang/String;," default:") (1381) + Handles null at 968 +608: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1383) + Handles null at 968 +609: LocalLoad(Ljava/lang/Object;,0) (1386) + Handles null at 968 +610: Constant(Ljava/lang/String;," throw new Exception(") (1387) + Handles null at 968 +611: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1389) + Handles null at 968 +612: LocalLoad(Ljava/lang/Object;,0) (1392) + Handles null at 968 +613: New(Ljava/lang/StringBuilder;,0) (1393) + Handles null at 968 +614: Dup(1,0) (1396) + Handles null at 968 +615: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1397) + Handles null at 968 +616: Constant(Ljava/lang/String;," \"Invalid action number \"+") (1400) + Handles null at 968 +617: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1402) + Handles null at 968 +618: Constant(Ljava/lang/String;,"act_num") (1405) + Handles null at 968 +619: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1407) + Handles null at 968 +620: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1410) + Handles null at 968 +621: Constant(Ljava/lang/String;,"+\"found in ") (1413) + Handles null at 968 +622: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1415) + Handles null at 968 +623: Constant(Ljava/lang/String;,"internal parse table\");") (1418) + Handles null at 968 +624: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1420) + Handles null at 968 +625: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1423) + Handles null at 968 +626: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1426) + Handles null at 968 +627: LocalLoad(Ljava/lang/Object;,0) (1429) + Handles null at 968 +628: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1430) + Handles null at 968 +629: LocalLoad(Ljava/lang/Object;,0) (1433) + Handles null at 968 +630: Constant(Ljava/lang/String;," }") (1434) + Handles null at 968 +631: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1436) + Handles null at 968 +632: LocalLoad(Ljava/lang/Object;,0) (1439) + Handles null at 968 +633: Constant(Ljava/lang/String;," } /* end of method */") (1440) + Handles null at 968 +634: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1442) + Handles null at 968 +635: LocalLoad(I,5) (1445) + Handles null at 968 +636: Constant(I,1) (1445) + Handles null at 968 +637: BinaryOp(I,add) (1445) + Handles null at 968 +638: LocalStore(I,5) (1445) + Handles null at 968 +639: Goto(85) (1448) + Handles null at 968 +640: LocalLoad(Ljava/lang/Object;,0) (1451) + Handles null at 968 +641: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1452) + Handles null at 968 +642: LocalLoad(Ljava/lang/Object;,0) (1455) + Handles null at 968 +643: Constant(Ljava/lang/String;," /** Method splitting the generated action code into several parts. */") (1456) + Handles null at 968 +644: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1458) + Handles null at 968 +645: LocalLoad(Ljava/lang/Object;,0) (1461) + Handles null at 968 +646: New(Ljava/lang/StringBuilder;,0) (1462) + Handles null at 968 +647: Dup(1,0) (1465) + Handles null at 968 +648: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1466) + Handles null at 968 +649: Constant(Ljava/lang/String;," public final java_cup.runtime.Symbol ") (1469) + Handles null at 968 +650: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1471) + Handles null at 968 +651: Constant(Ljava/lang/String;,"do_action") (1474) + Handles null at 968 +652: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1476) + Handles null at 968 +653: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1479) + Handles null at 968 +654: Constant(Ljava/lang/String;,"(") (1482) + Handles null at 968 +655: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1484) + Handles null at 968 +656: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1487) + Handles null at 968 +657: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1490) + Handles null at 968 +658: LocalLoad(Ljava/lang/Object;,0) (1493) + Handles null at 968 +659: New(Ljava/lang/StringBuilder;,0) (1494) + Handles null at 968 +660: Dup(1,0) (1497) + Handles null at 968 +661: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1498) + Handles null at 968 +662: Constant(Ljava/lang/String;," int ") (1501) + Handles null at 968 +663: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1503) + Handles null at 968 +664: Constant(Ljava/lang/String;,"act_num,") (1506) + Handles null at 968 +665: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1508) + Handles null at 968 +666: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1511) + Handles null at 968 +667: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1514) + Handles null at 968 +668: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1517) + Handles null at 968 +669: LocalLoad(Ljava/lang/Object;,0) (1520) + Handles null at 968 +670: New(Ljava/lang/StringBuilder;,0) (1521) + Handles null at 968 +671: Dup(1,0) (1524) + Handles null at 968 +672: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1525) + Handles null at 968 +673: Constant(Ljava/lang/String;," java_cup.runtime.lr_parser ") (1528) + Handles null at 968 +674: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1530) + Handles null at 968 +675: Constant(Ljava/lang/String;,"parser,") (1533) + Handles null at 968 +676: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1535) + Handles null at 968 +677: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1538) + Handles null at 968 +678: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1541) + Handles null at 968 +679: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1544) + Handles null at 968 +680: LocalLoad(Ljava/lang/Object;,0) (1547) + Handles null at 968 +681: New(Ljava/lang/StringBuilder;,0) (1548) + Handles null at 968 +682: Dup(1,0) (1551) + Handles null at 968 +683: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1552) + Handles null at 968 +684: Constant(Ljava/lang/String;," java.util.Stack ") (1555) + Handles null at 968 +685: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1557) + Handles null at 968 +686: Constant(Ljava/lang/String;,"stack,") (1560) + Handles null at 968 +687: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1562) + Handles null at 968 +688: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1565) + Handles null at 968 +689: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1568) + Handles null at 968 +690: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1571) + Handles null at 968 +691: LocalLoad(Ljava/lang/Object;,0) (1574) + Handles null at 968 +692: New(Ljava/lang/StringBuilder;,0) (1575) + Handles null at 968 +693: Dup(1,0) (1578) + Handles null at 968 +694: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1579) + Handles null at 968 +695: Constant(Ljava/lang/String;," int ") (1582) + Handles null at 968 +696: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1584) + Handles null at 968 +697: Constant(Ljava/lang/String;,"top)") (1587) + Handles null at 968 +698: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1589) + Handles null at 968 +699: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1592) + Handles null at 968 +700: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1595) + Handles null at 968 +701: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1598) + Handles null at 968 +702: LocalLoad(Ljava/lang/Object;,0) (1601) + Handles null at 968 +703: Constant(Ljava/lang/String;," throws java.lang.Exception") (1602) + Handles null at 968 +704: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1604) + Handles null at 968 +705: LocalLoad(Ljava/lang/Object;,0) (1607) + Handles null at 968 +706: Constant(Ljava/lang/String;," {") (1608) + Handles null at 968 +707: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1610) + Handles null at 968 +708: Invoke(STATIC,Ljava_cup/production;,number,()I) (1613) + Handles null at 968 +709: Constant(I,300) (1616) + Handles null at 968 +710: ConditionalBranch(I,ge,798) (1619) + Handles null at 968 +711: LocalLoad(Ljava/lang/Object;,0) (1622) + Handles null at 968 +712: New(Ljava/lang/StringBuilder;,0) (1623) + Handles null at 968 +713: Dup(1,0) (1626) + Handles null at 968 +714: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1627) + Handles null at 968 +715: Constant(Ljava/lang/String;," return ") (1630) + Handles null at 968 +716: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1632) + Handles null at 968 +717: Constant(Ljava/lang/String;,"do_action_part") (1635) + Handles null at 968 +718: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1637) + Handles null at 968 +719: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1640) + Handles null at 968 +720: Constant(Ljava/lang/String;,"%08d") (1643) + Handles null at 968 +721: Constant(I,1) (1645) + Handles null at 968 +722: New([Ljava/lang/Object;,1) (1646) + Handles null at 968 +723: Dup(1,0) (1649) + Handles null at 968 +724: Constant(I,0) (1650) + Handles null at 968 +725: New(Ljava/lang/Integer;,0) (1651) + Handles null at 968 +726: Dup(1,0) (1654) + Handles null at 968 +727: Constant(I,0) (1655) + Handles null at 968 +728: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (1656) + Handles null at 968 +729: ArrayStore(Ljava/lang/Object;) (1659) + Handles null at 968 +730: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (1660) + Handles null at 968 +731: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1663) + Handles null at 968 +732: Constant(Ljava/lang/String;,"(") (1666) + Handles null at 968 +733: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1668) + Handles null at 968 +734: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1671) + Handles null at 968 +735: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1674) + Handles null at 968 +736: LocalLoad(Ljava/lang/Object;,0) (1677) + Handles null at 968 +737: New(Ljava/lang/StringBuilder;,0) (1678) + Handles null at 968 +738: Dup(1,0) (1681) + Handles null at 968 +739: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1682) + Handles null at 968 +740: Constant(Ljava/lang/String;," ") (1685) + Handles null at 968 +741: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1687) + Handles null at 968 +742: Constant(Ljava/lang/String;,"act_num,") (1690) + Handles null at 968 +743: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1692) + Handles null at 968 +744: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1695) + Handles null at 968 +745: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1698) + Handles null at 968 +746: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1701) + Handles null at 968 +747: LocalLoad(Ljava/lang/Object;,0) (1704) + Handles null at 968 +748: New(Ljava/lang/StringBuilder;,0) (1705) + Handles null at 968 +749: Dup(1,0) (1708) + Handles null at 968 +750: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1709) + Handles null at 968 +751: Constant(Ljava/lang/String;," ") (1712) + Handles null at 968 +752: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1714) + Handles null at 968 +753: Constant(Ljava/lang/String;,"parser,") (1717) + Handles null at 968 +754: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1719) + Handles null at 968 +755: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1722) + Handles null at 968 +756: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1725) + Handles null at 968 +757: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1728) + Handles null at 968 +758: LocalLoad(Ljava/lang/Object;,0) (1731) + Handles null at 968 +759: New(Ljava/lang/StringBuilder;,0) (1732) + Handles null at 968 +760: Dup(1,0) (1735) + Handles null at 968 +761: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1736) + Handles null at 968 +762: Constant(Ljava/lang/String;," ") (1739) + Handles null at 968 +763: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1741) + Handles null at 968 +764: Constant(Ljava/lang/String;,"stack,") (1744) + Handles null at 968 +765: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1746) + Handles null at 968 +766: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1749) + Handles null at 968 +767: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1752) + Handles null at 968 +768: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1755) + Handles null at 968 +769: LocalLoad(Ljava/lang/Object;,0) (1758) + Handles null at 968 +770: New(Ljava/lang/StringBuilder;,0) (1759) + Handles null at 968 +771: Dup(1,0) (1762) + Handles null at 968 +772: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1763) + Handles null at 968 +773: Constant(Ljava/lang/String;," ") (1766) + Handles null at 968 +774: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1768) + Handles null at 968 +775: Constant(Ljava/lang/String;,"top);") (1771) + Handles null at 968 +776: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1773) + Handles null at 968 +777: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1776) + Handles null at 968 +778: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1779) + Handles null at 968 +779: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1782) + Handles null at 968 +780: LocalLoad(Ljava/lang/Object;,0) (1785) + Handles null at 968 +781: Constant(Ljava/lang/String;," }") (1786) + Handles null at 968 +782: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1788) + Handles null at 968 +783: LocalLoad(Ljava/lang/Object;,0) (1791) + Handles null at 968 +784: Constant(Ljava/lang/String;,"}") (1792) + Handles null at 968 +785: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1794) + Handles null at 968 +786: LocalLoad(Ljava/lang/Object;,0) (1797) + Handles null at 968 +787: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (1798) + Handles null at 968 +788: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (1801) + Handles null at 968 +789: LocalLoad(J,3) (1804) + Handles null at 968 +790: BinaryOp(J,sub) (1805) + Handles null at 968 +791: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (1806) + Handles null at 968 +792: Constant(Ljava/lang/String;,"java_cup/emit") (1809) + Handles null at 968 +793: Constant(Ljava/lang/String;,"emit_xmlaction_code(Ljava/io/PrintWriter;Ljava_cup/production;)V") (1809) + Handles null at 968 +794: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (1809) + Handles null at 968 +795: Constant(I,0) (1809) + Handles null at 968 +796: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1809) + Handles null at 968 +797: Return(V) (1809) + Handles null at 968 +798: LocalLoad(Ljava/lang/Object;,0) (1810) + Handles null at 968 +799: Constant(Ljava/lang/String;," /* select the action handler based on the action number */") (1811) + Handles null at 968 +800: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1813) + Handles null at 968 +801: LocalLoad(Ljava/lang/Object;,0) (1816) + Handles null at 968 +802: New(Ljava/lang/StringBuilder;,0) (1817) + Handles null at 968 +803: Dup(1,0) (1820) + Handles null at 968 +804: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1821) + Handles null at 968 +805: Constant(Ljava/lang/String;," switch (") (1824) + Handles null at 968 +806: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1826) + Handles null at 968 +807: Constant(Ljava/lang/String;,"act_num") (1829) + Handles null at 968 +808: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1831) + Handles null at 968 +809: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1834) + Handles null at 968 +810: Constant(Ljava/lang/String;,"/") (1837) + Handles null at 968 +811: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1839) + Handles null at 968 +812: Constant(I,300) (1842) + Handles null at 968 +813: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1845) + Handles null at 968 +814: Constant(Ljava/lang/String;,")") (1848) + Handles null at 968 +815: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1850) + Handles null at 968 +816: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1853) + Handles null at 968 +817: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1856) + Handles null at 968 +818: LocalLoad(Ljava/lang/Object;,0) (1859) + Handles null at 968 +819: Constant(Ljava/lang/String;," {") (1860) + Handles null at 968 +820: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1862) + Handles null at 968 +821: Constant(I,0) (1865) + Handles null at 968 +822: LocalStore(I,5) (1866) + Handles null at 968 +823: LocalLoad(I,5) (1868) + Handles null at 968 +824: Invoke(STATIC,Ljava_cup/production;,number,()I) (1870) + Handles null at 968 +825: Constant(I,300) (1873) + Handles null at 968 +826: BinaryOp(I,div) (1876) + Handles null at 968 +827: ConditionalBranch(I,gt,936) (1877) + Handles null at 968 +828: LocalLoad(Ljava/lang/Object;,0) (1880) + Handles null at 968 +829: New(Ljava/lang/StringBuilder;,0) (1881) + Handles null at 968 +830: Dup(1,0) (1884) + Handles null at 968 +831: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1885) + Handles null at 968 +832: Constant(Ljava/lang/String;," /*. . . . . . . . ") (1888) + Handles null at 968 +833: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1890) + Handles null at 968 +834: LocalLoad(I,5) (1893) + Handles null at 968 +835: Constant(I,300) (1895) + Handles null at 968 +836: BinaryOp(I,mul) (1898) + Handles null at 968 +837: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1899) + Handles null at 968 +838: Constant(Ljava/lang/String;," < #action < ") (1902) + Handles null at 968 +839: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1904) + Handles null at 968 +840: LocalLoad(I,5) (1907) + Handles null at 968 +841: Constant(I,1) (1909) + Handles null at 968 +842: BinaryOp(I,add) (1910) + Handles null at 968 +843: Constant(I,300) (1911) + Handles null at 968 +844: BinaryOp(I,mul) (1914) + Handles null at 968 +845: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1915) + Handles null at 968 +846: Constant(Ljava/lang/String;,". . . . . . . . . . . .*/") (1918) + Handles null at 968 +847: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1920) + Handles null at 968 +848: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1923) + Handles null at 968 +849: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1926) + Handles null at 968 +850: LocalLoad(Ljava/lang/Object;,0) (1929) + Handles null at 968 +851: New(Ljava/lang/StringBuilder;,0) (1930) + Handles null at 968 +852: Dup(1,0) (1933) + Handles null at 968 +853: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1934) + Handles null at 968 +854: Constant(Ljava/lang/String;," case ") (1937) + Handles null at 968 +855: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1939) + Handles null at 968 +856: LocalLoad(I,5) (1942) + Handles null at 968 +857: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (1944) + Handles null at 968 +858: Constant(Ljava/lang/String;,": ") (1947) + Handles null at 968 +859: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1949) + Handles null at 968 +860: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (1952) + Handles null at 968 +861: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (1955) + Handles null at 968 +862: LocalLoad(Ljava/lang/Object;,0) (1958) + Handles null at 968 +863: New(Ljava/lang/StringBuilder;,0) (1959) + Handles null at 968 +864: Dup(1,0) (1962) + Handles null at 968 +865: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (1963) + Handles null at 968 +866: Constant(Ljava/lang/String;," return ") (1966) + Handles null at 968 +867: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1968) + Handles null at 968 +868: Constant(Ljava/lang/String;,"do_action_part") (1971) + Handles null at 968 +869: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (1973) + Handles null at 968 +870: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (1976) + Handles null at 968 +871: Constant(Ljava/lang/String;,"%08d") (1979) + Handles null at 968 +872: Constant(I,1) (1981) + Handles null at 968 +873: New([Ljava/lang/Object;,1) (1982) + Handles null at 968 +874: Dup(1,0) (1985) + Handles null at 968 +875: Constant(I,0) (1986) + Handles null at 968 +876: New(Ljava/lang/Integer;,0) (1987) + Handles null at 968 +877: Dup(1,0) (1990) + Handles null at 968 +878: LocalLoad(I,5) (1991) + Handles null at 968 +879: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (1993) + Handles null at 968 +880: ArrayStore(Ljava/lang/Object;) (1996) + Handles null at 968 +881: Invoke(STATIC,Ljava/lang/String;,format,(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;) (1997) + Handles null at 968 +882: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2000) + Handles null at 968 +883: Constant(Ljava/lang/String;,"(") (2003) + Handles null at 968 +884: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2005) + Handles null at 968 +885: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2008) + Handles null at 968 +886: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2011) + Handles null at 968 +887: LocalLoad(Ljava/lang/Object;,0) (2014) + Handles null at 968 +888: New(Ljava/lang/StringBuilder;,0) (2015) + Handles null at 968 +889: Dup(1,0) (2018) + Handles null at 968 +890: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2019) + Handles null at 968 +891: Constant(Ljava/lang/String;," ") (2022) + Handles null at 968 +892: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2024) + Handles null at 968 +893: Constant(Ljava/lang/String;,"act_num,") (2027) + Handles null at 968 +894: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2029) + Handles null at 968 +895: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2032) + Handles null at 968 +896: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2035) + Handles null at 968 +897: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2038) + Handles null at 968 +898: LocalLoad(Ljava/lang/Object;,0) (2041) + Handles null at 968 +899: New(Ljava/lang/StringBuilder;,0) (2042) + Handles null at 968 +900: Dup(1,0) (2045) + Handles null at 968 +901: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2046) + Handles null at 968 +902: Constant(Ljava/lang/String;," ") (2049) + Handles null at 968 +903: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2051) + Handles null at 968 +904: Constant(Ljava/lang/String;,"parser,") (2054) + Handles null at 968 +905: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2056) + Handles null at 968 +906: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2059) + Handles null at 968 +907: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2062) + Handles null at 968 +908: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2065) + Handles null at 968 +909: LocalLoad(Ljava/lang/Object;,0) (2068) + Handles null at 968 +910: New(Ljava/lang/StringBuilder;,0) (2069) + Handles null at 968 +911: Dup(1,0) (2072) + Handles null at 968 +912: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2073) + Handles null at 968 +913: Constant(Ljava/lang/String;," ") (2076) + Handles null at 968 +914: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2078) + Handles null at 968 +915: Constant(Ljava/lang/String;,"stack,") (2081) + Handles null at 968 +916: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2083) + Handles null at 968 +917: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2086) + Handles null at 968 +918: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2089) + Handles null at 968 +919: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2092) + Handles null at 968 +920: LocalLoad(Ljava/lang/Object;,0) (2095) + Handles null at 968 +921: New(Ljava/lang/StringBuilder;,0) (2096) + Handles null at 968 +922: Dup(1,0) (2099) + Handles null at 968 +923: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (2100) + Handles null at 968 +924: Constant(Ljava/lang/String;," ") (2103) + Handles null at 968 +925: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2105) + Handles null at 968 +926: Constant(Ljava/lang/String;,"top);") (2108) + Handles null at 968 +927: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (2110) + Handles null at 968 +928: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (2113) + Handles null at 968 +929: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (2116) + Handles null at 968 +930: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2119) + Handles null at 968 +931: LocalLoad(I,5) (2122) + Handles null at 968 +932: Constant(I,1) (2122) + Handles null at 968 +933: BinaryOp(I,add) (2122) + Handles null at 968 +934: LocalStore(I,5) (2122) + Handles null at 968 +935: Goto(823) (2125) + Handles null at 968 +936: LocalLoad(Ljava/lang/Object;,0) (2128) + Handles null at 968 +937: Constant(Ljava/lang/String;," /* . . . no valid action number: . . .*/") (2129) + Handles null at 968 +938: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2131) + Handles null at 968 +939: LocalLoad(Ljava/lang/Object;,0) (2134) + Handles null at 968 +940: Constant(Ljava/lang/String;," default:") (2135) + Handles null at 968 +941: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2137) + Handles null at 968 +942: LocalLoad(Ljava/lang/Object;,0) (2140) + Handles null at 968 +943: Constant(Ljava/lang/String;," throw new Exception(\"Invalid action number found in internal parse table\");") (2141) + Handles null at 968 +944: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2143) + Handles null at 968 +945: LocalLoad(Ljava/lang/Object;,0) (2146) + Handles null at 968 +946: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (2147) + Handles null at 968 +947: LocalLoad(Ljava/lang/Object;,0) (2150) + Handles null at 968 +948: Constant(Ljava/lang/String;," } /* end of switch */") (2151) + Handles null at 968 +949: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2153) + Handles null at 968 +950: LocalLoad(Ljava/lang/Object;,0) (2156) + Handles null at 968 +951: Constant(Ljava/lang/String;," }") (2157) + Handles null at 968 +952: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2159) + Handles null at 968 +953: LocalLoad(Ljava/lang/Object;,0) (2162) + Handles null at 968 +954: Constant(Ljava/lang/String;,"}") (2163) + Handles null at 968 +955: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,(Ljava/lang/String;)V) (2165) + Handles null at 968 +956: LocalLoad(Ljava/lang/Object;,0) (2168) + Handles null at 968 +957: Invoke(VIRTUAL,Ljava/io/PrintWriter;,println,()V) (2169) + Handles null at 968 +958: Invoke(STATIC,Ljava/lang/System;,currentTimeMillis,()J) (2172) + Handles null at 968 +959: LocalLoad(J,3) (2175) + Handles null at 968 +960: BinaryOp(J,sub) (2176) + Handles null at 968 +961: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (2177) + Handles null at 968 +962: Constant(Ljava/lang/String;,"java_cup/emit") (2180) + Handles null at 968 +963: Constant(Ljava/lang/String;,"emit_xmlaction_code(Ljava/io/PrintWriter;Ljava_cup/production;)V") (2180) + Handles null at 968 +964: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (2180) + Handles null at 968 +965: Constant(I,0) (2180) + Handles null at 968 +966: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2180) + Handles null at 968 +967: Return(V) (2180) + Handles null at 968 +968: Constant(Ljava/lang/String;,"java_cup/emit") (0) +969: Constant(Ljava/lang/String;,"emit_xmlaction_code(Ljava/io/PrintWriter;Ljava_cup/production;)V") (0) +970: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +971: Constant(I,1) (0) +972: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +973: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"CUP$") (0) +1: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,prefix) (3) +2: Constant(L;,null) (6) +3: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (7) +4: Constant(Ljava/lang/String;,"sym") (10) +5: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (12) +6: Constant(Ljava/lang/String;,"parser") (15) +7: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (17) +8: Constant(L;,null) (20) +9: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,class_type_argument) (21) +10: Constant(L;,null) (24) +11: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (25) +12: Constant(L;,null) (28) +13: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (29) +14: Constant(L;,null) (32) +15: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (33) +16: Constant(L;,null) (36) +17: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (37) +18: Constant(L;,null) (40) +19: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (41) +20: New(Ljava/util/Stack;,0) (44) +21: Dup(1,0) (47) +22: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (48) +23: Put(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (51) +24: Constant(I,0) (54) +25: Put(I,STATIC,Ljava_cup/emit;,num_conflicts) (55) +26: Constant(I,0) (58) +27: Put(Z,STATIC,Ljava_cup/emit;,nowarn) (59) +28: Constant(I,0) (62) +29: Put(I,STATIC,Ljava_cup/emit;,not_reduced) (63) +30: Constant(I,0) (66) +31: Put(I,STATIC,Ljava_cup/emit;,unused_term) (67) +32: Constant(I,0) (70) +33: Put(I,STATIC,Ljava_cup/emit;,unused_non_term) (71) +34: Constant(J,0) (74) +35: Put(J,STATIC,Ljava_cup/emit;,symbols_time) (75) +36: Constant(J,0) (78) +37: Put(J,STATIC,Ljava_cup/emit;,parser_time) (79) +38: Constant(J,0) (82) +39: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (83) +40: Constant(J,0) (86) +41: Put(J,STATIC,Ljava_cup/emit;,production_table_time) (87) +42: Constant(J,0) (90) +43: Put(J,STATIC,Ljava_cup/emit;,action_table_time) (91) +44: Constant(J,0) (94) +45: Put(J,STATIC,Ljava_cup/emit;,goto_table_time) (95) +46: Return(V) (98) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/emit") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"CUP$") (0) + Handles null at 56 +5: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,prefix) (3) + Handles null at 56 +6: Constant(L;,null) (6) + Handles null at 56 +7: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,package_name) (7) + Handles null at 56 +8: Constant(Ljava/lang/String;,"sym") (10) + Handles null at 56 +9: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,symbol_const_class_name) (12) + Handles null at 56 +10: Constant(Ljava/lang/String;,"parser") (15) + Handles null at 56 +11: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_class_name) (17) + Handles null at 56 +12: Constant(L;,null) (20) + Handles null at 56 +13: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,class_type_argument) (21) + Handles null at 56 +14: Constant(L;,null) (24) + Handles null at 56 +15: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,action_code) (25) + Handles null at 56 +16: Constant(L;,null) (28) + Handles null at 56 +17: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,parser_code) (29) + Handles null at 56 +18: Constant(L;,null) (32) + Handles null at 56 +19: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,init_code) (33) + Handles null at 56 +20: Constant(L;,null) (36) + Handles null at 56 +21: Put(Ljava/lang/String;,STATIC,Ljava_cup/emit;,scan_code) (37) + Handles null at 56 +22: Constant(L;,null) (40) + Handles null at 56 +23: Put(Ljava_cup/production;,STATIC,Ljava_cup/emit;,start_production) (41) + Handles null at 56 +24: New(Ljava/util/Stack;,0) (44) + Handles null at 56 +25: Dup(1,0) (47) + Handles null at 56 +26: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (48) + Handles null at 56 +27: Put(Ljava/util/Stack;,STATIC,Ljava_cup/emit;,import_list) (51) + Handles null at 56 +28: Constant(I,0) (54) + Handles null at 56 +29: Put(I,STATIC,Ljava_cup/emit;,num_conflicts) (55) + Handles null at 56 +30: Constant(I,0) (58) + Handles null at 56 +31: Put(Z,STATIC,Ljava_cup/emit;,nowarn) (59) + Handles null at 56 +32: Constant(I,0) (62) + Handles null at 56 +33: Put(I,STATIC,Ljava_cup/emit;,not_reduced) (63) + Handles null at 56 +34: Constant(I,0) (66) + Handles null at 56 +35: Put(I,STATIC,Ljava_cup/emit;,unused_term) (67) + Handles null at 56 +36: Constant(I,0) (70) + Handles null at 56 +37: Put(I,STATIC,Ljava_cup/emit;,unused_non_term) (71) + Handles null at 56 +38: Constant(J,0) (74) + Handles null at 56 +39: Put(J,STATIC,Ljava_cup/emit;,symbols_time) (75) + Handles null at 56 +40: Constant(J,0) (78) + Handles null at 56 +41: Put(J,STATIC,Ljava_cup/emit;,parser_time) (79) + Handles null at 56 +42: Constant(J,0) (82) + Handles null at 56 +43: Put(J,STATIC,Ljava_cup/emit;,action_code_time) (83) + Handles null at 56 +44: Constant(J,0) (86) + Handles null at 56 +45: Put(J,STATIC,Ljava_cup/emit;,production_table_time) (87) + Handles null at 56 +46: Constant(J,0) (90) + Handles null at 56 +47: Put(J,STATIC,Ljava_cup/emit;,action_table_time) (91) + Handles null at 56 +48: Constant(J,0) (94) + Handles null at 56 +49: Put(J,STATIC,Ljava_cup/emit;,goto_table_time) (95) + Handles null at 56 +50: Constant(Ljava/lang/String;,"java_cup/emit") (98) + Handles null at 56 +51: Constant(Ljava/lang/String;,"()V") (98) + Handles null at 56 +52: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (98) + Handles null at 56 +53: Constant(I,0) (98) + Handles null at 56 +54: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (98) + Handles null at 56 +55: Return(V) (98) + Handles null at 56 +56: Constant(Ljava/lang/String;,"java_cup/emit") (0) +57: Constant(Ljava/lang/String;,"()V") (0) +58: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +59: Constant(I,1) (0) +60: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +61: Throw() (0) +Class: java_cup/internal_error +Instrumenting (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/internal_error") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/internal_error") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/internal_error") (0) +14: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting crash ()V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (0) +1: New(Ljava/lang/StringBuilder;,0) (3) +2: Dup(1,0) (6) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +4: Constant(Ljava/lang/String;,"JavaCUP Internal Error Detected: ") (10) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) +6: LocalLoad(Ljava/lang/Object;,0) (15) +7: Invoke(VIRTUAL,Ljava_cup/internal_error;,getMessage,()Ljava/lang/String;) (16) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (19) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (22) +10: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_fatal,(Ljava/lang/String;)V) (25) +11: LocalLoad(Ljava/lang/Object;,0) (28) +12: Invoke(VIRTUAL,Ljava_cup/internal_error;,printStackTrace,()V) (29) +13: Constant(I,-1) (32) +14: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (33) +15: Return(V) (36) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/internal_error") (0) +1: Constant(Ljava/lang/String;,"crash()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (0) + Handles null at 25 +5: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 25 +6: Dup(1,0) (6) + Handles null at 25 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 25 +8: Constant(Ljava/lang/String;,"JavaCUP Internal Error Detected: ") (10) + Handles null at 25 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (12) + Handles null at 25 +10: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 25 +11: Invoke(VIRTUAL,Ljava_cup/internal_error;,getMessage,()Ljava/lang/String;) (16) + Handles null at 25 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (19) + Handles null at 25 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (22) + Handles null at 25 +14: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_fatal,(Ljava/lang/String;)V) (25) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 25 +16: Invoke(VIRTUAL,Ljava_cup/internal_error;,printStackTrace,()V) (29) + Handles null at 25 +17: Constant(I,-1) (32) + Handles null at 25 +18: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (33) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/internal_error") (36) + Handles null at 25 +20: Constant(Ljava/lang/String;,"crash()V") (36) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (36) + Handles null at 25 +22: Constant(I,0) (36) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (36) + Handles null at 25 +24: Return(V) (36) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/internal_error") (0) +26: Constant(Ljava/lang/String;,"crash()V") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Class: java_cup/lalr_item +Instrumenting (Ljava_cup/production;ILjava_cup/terminal_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(I,2) (2) +3: Invoke(SPECIAL,Ljava_cup/lr_item_core;,,(Ljava_cup/production;I)V) (3) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: LocalLoad(Ljava/lang/Object;,3) (7) +6: Put(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/lalr_item;,_lookahead) (8) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: New(Ljava/util/Stack;,0) (12) +9: Dup(1,0) (15) +10: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (16) +11: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/lalr_item;,_propagate_items) (19) +12: LocalLoad(Ljava/lang/Object;,0) (22) +13: Constant(I,1) (23) +14: Put(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (24) +15: Return(V) (27) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/production;ILjava_cup/terminal_set;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 25 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 25 +6: LocalLoad(I,2) (2) + Handles null at 25 +7: Invoke(SPECIAL,Ljava_cup/lr_item_core;,,(Ljava_cup/production;I)V) (3) + Handles null at 25 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 25 +9: LocalLoad(Ljava/lang/Object;,3) (7) + Handles null at 25 +10: Put(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/lalr_item;,_lookahead) (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 25 +12: New(Ljava/util/Stack;,0) (12) + Handles null at 25 +13: Dup(1,0) (15) + Handles null at 25 +14: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (16) + Handles null at 25 +15: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/lalr_item;,_propagate_items) (19) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 25 +17: Constant(I,1) (23) + Handles null at 25 +18: Put(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (24) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/lalr_item") (27) + Handles null at 25 +20: Constant(Ljava/lang/String;,"(Ljava_cup/production;ILjava_cup/terminal_set;)V") (27) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 25 +22: Constant(I,0) (27) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (27) + Handles null at 25 +24: Return(V) (27) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +26: Constant(Ljava/lang/String;,"(Ljava_cup/production;ILjava_cup/terminal_set;)V") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting (Ljava_cup/production;Ljava_cup/terminal_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Constant(I,0) (2) +3: LocalLoad(Ljava/lang/Object;,2) (3) +4: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;ILjava_cup/terminal_set;)V) (4) +5: Return(V) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/production;Ljava_cup/terminal_set;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 15 +6: Constant(I,0) (2) + Handles null at 15 +7: LocalLoad(Ljava/lang/Object;,2) (3) + Handles null at 15 +8: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;ILjava_cup/terminal_set;)V) (4) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/lalr_item") (7) + Handles null at 15 +10: Constant(Ljava/lang/String;,"(Ljava_cup/production;Ljava_cup/terminal_set;)V") (7) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 15 +12: Constant(I,0) (7) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 15 +14: Return(V) (7) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +16: Constant(Ljava/lang/String;,"(Ljava_cup/production;Ljava_cup/terminal_set;)V") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting (Ljava_cup/production;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Constant(I,0) (2) +3: New(Ljava_cup/terminal_set;,0) (3) +4: Dup(1,0) (6) +5: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (7) +6: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;ILjava_cup/terminal_set;)V) (10) +7: Return(V) (13) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 17 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 17 +6: Constant(I,0) (2) + Handles null at 17 +7: New(Ljava_cup/terminal_set;,0) (3) + Handles null at 17 +8: Dup(1,0) (6) + Handles null at 17 +9: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (7) + Handles null at 17 +10: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;ILjava_cup/terminal_set;)V) (10) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/lalr_item") (13) + Handles null at 17 +12: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (13) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 17 +14: Constant(I,0) (13) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (13) + Handles null at 17 +16: Return(V) (13) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +18: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting lookahead ()Ljava_cup/terminal_set;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/lalr_item;,_lookahead) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"lookahead()Ljava_cup/terminal_set;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/lalr_item;,_lookahead) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_item") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"lookahead()Ljava_cup/terminal_set;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +13: Constant(Ljava/lang/String;,"lookahead()Ljava_cup/terminal_set;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting propagate_items ()Ljava/util/Stack;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/lalr_item;,_propagate_items) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"propagate_items()Ljava/util/Stack;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/lalr_item;,_propagate_items) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_item") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"propagate_items()Ljava/util/Stack;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +13: Constant(Ljava/lang/String;,"propagate_items()Ljava/util/Stack;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting add_propagate (Ljava_cup/lalr_item;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/lalr_item;,_propagate_items) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (5) +4: Pop(1) (8) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: Constant(I,1) (10) +7: Put(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (11) +8: Return(V) (14) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"add_propagate(Ljava_cup/lalr_item;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/lalr_item;,_propagate_items) (1) + Handles null at 18 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 18 +7: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (5) + Handles null at 18 +8: Pop(1) (8) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 18 +10: Constant(I,1) (10) + Handles null at 18 +11: Put(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (11) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/lalr_item") (14) + Handles null at 18 +13: Constant(Ljava/lang/String;,"add_propagate(Ljava_cup/lalr_item;)V") (14) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 18 +15: Constant(I,0) (14) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 18 +17: Return(V) (14) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +19: Constant(Ljava/lang/String;,"add_propagate(Ljava_cup/lalr_item;)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting propagate_lookaheads (Ljava_cup/terminal_set;)V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,2) (1) +2: LocalLoad(Ljava/lang/Object;,0) (2) +3: Get(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (3) +4: Constant(I,0) (6) +5: ConditionalBranch(I,ne,14) (6) +6: LocalLoad(Ljava/lang/Object;,1) (9) +7: Constant(L;,null) (10) +8: ConditionalBranch(Ljava/lang/Object;,eq,13) (10) +9: LocalLoad(Ljava/lang/Object;,1) (13) +10: Invoke(VIRTUAL,Ljava_cup/terminal_set;,empty,()Z) (14) +11: Constant(I,0) (17) +12: ConditionalBranch(I,eq,14) (17) +13: Return(V) (20) +14: LocalLoad(Ljava/lang/Object;,1) (21) +15: Constant(L;,null) (22) +16: ConditionalBranch(Ljava/lang/Object;,eq,22) (22) +17: LocalLoad(Ljava/lang/Object;,0) (25) +18: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (26) +19: LocalLoad(Ljava/lang/Object;,1) (29) +20: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (30) +21: LocalStore(I,2) (33) +22: LocalLoad(I,2) (34) +23: Constant(I,0) (35) +24: ConditionalBranch(I,ne,29) (35) +25: LocalLoad(Ljava/lang/Object;,0) (38) +26: Get(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (39) +27: Constant(I,0) (42) +28: ConditionalBranch(I,eq,52) (42) +29: LocalLoad(Ljava/lang/Object;,0) (45) +30: Constant(I,0) (46) +31: Put(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (47) +32: Constant(I,0) (50) +33: LocalStore(I,3) (51) +34: LocalLoad(I,3) (52) +35: LocalLoad(Ljava/lang/Object;,0) (53) +36: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (54) +37: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (57) +38: ConditionalBranch(I,ge,52) (60) +39: LocalLoad(Ljava/lang/Object;,0) (63) +40: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (64) +41: LocalLoad(I,3) (67) +42: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (68) +43: CheckCast(Ljava_cup/lalr_item;) (71) +44: LocalLoad(Ljava/lang/Object;,0) (74) +45: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (75) +46: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_lookaheads,(Ljava_cup/terminal_set;)V) (78) +47: LocalLoad(I,3) (81) +48: Constant(I,1) (81) +49: BinaryOp(I,add) (81) +50: LocalStore(I,3) (81) +51: Goto(34) (84) +52: Return(V) (87) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"propagate_lookaheads(Ljava_cup/terminal_set;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 67 +5: LocalStore(I,2) (1) + Handles null at 67 +6: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 67 +7: Get(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (3) + Handles null at 67 +8: Constant(I,0) (6) + Handles null at 67 +9: ConditionalBranch(I,ne,23) (6) + Handles null at 67 +10: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 67 +11: Constant(L;,null) (10) + Handles null at 67 +12: ConditionalBranch(Ljava/lang/Object;,eq,17) (10) + Handles null at 67 +13: LocalLoad(Ljava/lang/Object;,1) (13) + Handles null at 67 +14: Invoke(VIRTUAL,Ljava_cup/terminal_set;,empty,()Z) (14) + Handles null at 67 +15: Constant(I,0) (17) + Handles null at 67 +16: ConditionalBranch(I,eq,23) (17) + Handles null at 67 +17: Constant(Ljava/lang/String;,"java_cup/lalr_item") (20) + Handles null at 67 +18: Constant(Ljava/lang/String;,"propagate_lookaheads(Ljava_cup/terminal_set;)V") (20) + Handles null at 67 +19: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 67 +20: Constant(I,0) (20) + Handles null at 67 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (20) + Handles null at 67 +22: Return(V) (20) + Handles null at 67 +23: LocalLoad(Ljava/lang/Object;,1) (21) + Handles null at 67 +24: Constant(L;,null) (22) + Handles null at 67 +25: ConditionalBranch(Ljava/lang/Object;,eq,31) (22) + Handles null at 67 +26: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 67 +27: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (26) + Handles null at 67 +28: LocalLoad(Ljava/lang/Object;,1) (29) + Handles null at 67 +29: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (30) + Handles null at 67 +30: LocalStore(I,2) (33) + Handles null at 67 +31: LocalLoad(I,2) (34) + Handles null at 67 +32: Constant(I,0) (35) + Handles null at 67 +33: ConditionalBranch(I,ne,38) (35) + Handles null at 67 +34: LocalLoad(Ljava/lang/Object;,0) (38) + Handles null at 67 +35: Get(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (39) + Handles null at 67 +36: Constant(I,0) (42) + Handles null at 67 +37: ConditionalBranch(I,eq,61) (42) + Handles null at 67 +38: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 67 +39: Constant(I,0) (46) + Handles null at 67 +40: Put(Z,NONSTATIC,Ljava_cup/lalr_item;,needs_propagation) (47) + Handles null at 67 +41: Constant(I,0) (50) + Handles null at 67 +42: LocalStore(I,3) (51) + Handles null at 67 +43: LocalLoad(I,3) (52) + Handles null at 67 +44: LocalLoad(Ljava/lang/Object;,0) (53) + Handles null at 67 +45: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (54) + Handles null at 67 +46: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (57) + Handles null at 67 +47: ConditionalBranch(I,ge,61) (60) + Handles null at 67 +48: LocalLoad(Ljava/lang/Object;,0) (63) + Handles null at 67 +49: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (64) + Handles null at 67 +50: LocalLoad(I,3) (67) + Handles null at 67 +51: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (68) + Handles null at 67 +52: CheckCast(Ljava_cup/lalr_item;) (71) + Handles null at 67 +53: LocalLoad(Ljava/lang/Object;,0) (74) + Handles null at 67 +54: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (75) + Handles null at 67 +55: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_lookaheads,(Ljava_cup/terminal_set;)V) (78) + Handles null at 67 +56: LocalLoad(I,3) (81) + Handles null at 67 +57: Constant(I,1) (81) + Handles null at 67 +58: BinaryOp(I,add) (81) + Handles null at 67 +59: LocalStore(I,3) (81) + Handles null at 67 +60: Goto(43) (84) + Handles null at 67 +61: Constant(Ljava/lang/String;,"java_cup/lalr_item") (87) + Handles null at 67 +62: Constant(Ljava/lang/String;,"propagate_lookaheads(Ljava_cup/terminal_set;)V") (87) + Handles null at 67 +63: LocalLoad(Ljava/lang/Object;,0) (87) + Handles null at 67 +64: Constant(I,0) (87) + Handles null at 67 +65: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (87) + Handles null at 67 +66: Return(V) (87) + Handles null at 67 +67: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +68: Constant(Ljava/lang/String;,"propagate_lookaheads(Ljava_cup/terminal_set;)V") (0) +69: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +70: Constant(I,1) (0) +71: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +72: Throw() (0) +Instrumenting shift ()Ljava_cup/lalr_item;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,9) (4) +4: New(Ljava_cup/internal_error;,0) (7) +5: Dup(1,0) (10) +6: Constant(Ljava/lang/String;,"Attempt to shift past end of an lalr_item") (11) +7: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (13) +8: Throw() (16) +9: New(Ljava_cup/lalr_item;,0) (17) +10: Dup(1,0) (20) +11: LocalLoad(Ljava/lang/Object;,0) (21) +12: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (22) +13: LocalLoad(Ljava/lang/Object;,0) (25) +14: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_pos,()I) (26) +15: Constant(I,1) (29) +16: BinaryOp(I,add) (30) +17: New(Ljava_cup/terminal_set;,0) (31) +18: Dup(1,0) (34) +19: LocalLoad(Ljava/lang/Object;,0) (35) +20: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (36) +21: Invoke(SPECIAL,Ljava_cup/terminal_set;,,(Ljava_cup/terminal_set;)V) (39) +22: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;ILjava_cup/terminal_set;)V) (42) +23: LocalStore(Ljava/lang/Object;,1) (45) +24: LocalLoad(Ljava/lang/Object;,0) (46) +25: LocalLoad(Ljava/lang/Object;,1) (47) +26: Invoke(VIRTUAL,Ljava_cup/lalr_item;,add_propagate,(Ljava_cup/lalr_item;)V) (48) +27: LocalLoad(Ljava/lang/Object;,1) (51) +28: Return(Ljava/lang/Object;) (52) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"shift()Ljava_cup/lalr_item;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 38 +5: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (1) + Handles null at 38 +6: Constant(I,0) (4) + Handles null at 38 +7: ConditionalBranch(I,eq,13) (4) + Handles null at 38 +8: New(Ljava_cup/internal_error;,0) (7) + Handles null at 38 +9: Dup(1,0) (10) + Handles null at 38 +10: Constant(Ljava/lang/String;,"Attempt to shift past end of an lalr_item") (11) + Handles null at 38 +11: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (13) + Handles null at 38 +12: Throw() (16) + Handles null at 38 +13: New(Ljava_cup/lalr_item;,0) (17) + Handles null at 38 +14: Dup(1,0) (20) + Handles null at 38 +15: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 38 +16: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (22) + Handles null at 38 +17: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 38 +18: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_pos,()I) (26) + Handles null at 38 +19: Constant(I,1) (29) + Handles null at 38 +20: BinaryOp(I,add) (30) + Handles null at 38 +21: New(Ljava_cup/terminal_set;,0) (31) + Handles null at 38 +22: Dup(1,0) (34) + Handles null at 38 +23: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 38 +24: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (36) + Handles null at 38 +25: Invoke(SPECIAL,Ljava_cup/terminal_set;,,(Ljava_cup/terminal_set;)V) (39) + Handles null at 38 +26: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;ILjava_cup/terminal_set;)V) (42) + Handles null at 38 +27: LocalStore(Ljava/lang/Object;,1) (45) + Handles null at 38 +28: LocalLoad(Ljava/lang/Object;,0) (46) + Handles null at 38 +29: LocalLoad(Ljava/lang/Object;,1) (47) + Handles null at 38 +30: Invoke(VIRTUAL,Ljava_cup/lalr_item;,add_propagate,(Ljava_cup/lalr_item;)V) (48) + Handles null at 38 +31: LocalLoad(Ljava/lang/Object;,1) (51) + Handles null at 38 +32: Constant(Ljava/lang/String;,"java_cup/lalr_item") (52) + Handles null at 38 +33: Constant(Ljava/lang/String;,"shift()Ljava_cup/lalr_item;") (52) + Handles null at 38 +34: LocalLoad(Ljava/lang/Object;,0) (52) + Handles null at 38 +35: Constant(I,0) (52) + Handles null at 38 +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (52) + Handles null at 38 +37: Return(Ljava/lang/Object;) (52) + Handles null at 38 +38: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +39: Constant(Ljava/lang/String;,"shift()Ljava_cup/lalr_item;") (0) +40: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +41: Constant(I,1) (0) +42: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +43: Throw() (0) +Instrumenting calc_lookahead (Ljava_cup/terminal_set;)Ljava_cup/terminal_set;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,9) (4) +4: New(Ljava_cup/internal_error;,0) (7) +5: Dup(1,0) (10) +6: Constant(Ljava/lang/String;,"Attempt to calculate a lookahead set with a completed item") (11) +7: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (13) +8: Throw() (16) +9: New(Ljava_cup/terminal_set;,0) (17) +10: Dup(1,0) (20) +11: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (21) +12: LocalStore(Ljava/lang/Object;,2) (24) +13: LocalLoad(Ljava/lang/Object;,0) (25) +14: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_pos,()I) (26) +15: Constant(I,1) (29) +16: BinaryOp(I,add) (30) +17: LocalStore(I,3) (31) +18: LocalLoad(I,3) (32) +19: LocalLoad(Ljava/lang/Object;,0) (33) +20: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (34) +21: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (37) +22: ConditionalBranch(I,ge,65) (40) +23: LocalLoad(Ljava/lang/Object;,0) (43) +24: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (44) +25: LocalLoad(I,3) (47) +26: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (48) +27: LocalStore(Ljava/lang/Object;,4) (51) +28: LocalLoad(Ljava/lang/Object;,4) (53) +29: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (55) +30: Constant(I,0) (58) +31: ConditionalBranch(I,ne,60) (58) +32: LocalLoad(Ljava/lang/Object;,4) (61) +33: CheckCast(Ljava_cup/symbol_part;) (63) +34: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (66) +35: LocalStore(Ljava/lang/Object;,5) (69) +36: LocalLoad(Ljava/lang/Object;,5) (71) +37: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (73) +38: Constant(I,0) (76) +39: ConditionalBranch(I,ne,47) (76) +40: LocalLoad(Ljava/lang/Object;,2) (79) +41: LocalLoad(Ljava/lang/Object;,5) (80) +42: CheckCast(Ljava_cup/terminal;) (82) +43: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (85) +44: Pop(1) (88) +45: LocalLoad(Ljava/lang/Object;,2) (89) +46: Return(Ljava/lang/Object;) (90) +47: LocalLoad(Ljava/lang/Object;,2) (91) +48: LocalLoad(Ljava/lang/Object;,5) (92) +49: CheckCast(Ljava_cup/non_terminal;) (94) +50: Invoke(VIRTUAL,Ljava_cup/non_terminal;,first_set,()Ljava_cup/terminal_set;) (97) +51: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (100) +52: Pop(1) (103) +53: LocalLoad(Ljava/lang/Object;,5) (104) +54: CheckCast(Ljava_cup/non_terminal;) (106) +55: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (109) +56: Constant(I,0) (112) +57: ConditionalBranch(I,ne,60) (112) +58: LocalLoad(Ljava/lang/Object;,2) (115) +59: Return(Ljava/lang/Object;) (116) +60: LocalLoad(I,3) (117) +61: Constant(I,1) (117) +62: BinaryOp(I,add) (117) +63: LocalStore(I,3) (117) +64: Goto(18) (120) +65: LocalLoad(Ljava/lang/Object;,2) (123) +66: LocalLoad(Ljava/lang/Object;,1) (124) +67: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (125) +68: Pop(1) (128) +69: LocalLoad(Ljava/lang/Object;,2) (129) +70: Return(Ljava/lang/Object;) (130) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"calc_lookahead(Ljava_cup/terminal_set;)Ljava_cup/terminal_set;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 90 +5: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (1) + Handles null at 90 +6: Constant(I,0) (4) + Handles null at 90 +7: ConditionalBranch(I,eq,13) (4) + Handles null at 90 +8: New(Ljava_cup/internal_error;,0) (7) + Handles null at 90 +9: Dup(1,0) (10) + Handles null at 90 +10: Constant(Ljava/lang/String;,"Attempt to calculate a lookahead set with a completed item") (11) + Handles null at 90 +11: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (13) + Handles null at 90 +12: Throw() (16) + Handles null at 90 +13: New(Ljava_cup/terminal_set;,0) (17) + Handles null at 90 +14: Dup(1,0) (20) + Handles null at 90 +15: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (21) + Handles null at 90 +16: LocalStore(Ljava/lang/Object;,2) (24) + Handles null at 90 +17: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 90 +18: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_pos,()I) (26) + Handles null at 90 +19: Constant(I,1) (29) + Handles null at 90 +20: BinaryOp(I,add) (30) + Handles null at 90 +21: LocalStore(I,3) (31) + Handles null at 90 +22: LocalLoad(I,3) (32) + Handles null at 90 +23: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 90 +24: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (34) + Handles null at 90 +25: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (37) + Handles null at 90 +26: ConditionalBranch(I,ge,79) (40) + Handles null at 90 +27: LocalLoad(Ljava/lang/Object;,0) (43) + Handles null at 90 +28: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (44) + Handles null at 90 +29: LocalLoad(I,3) (47) + Handles null at 90 +30: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (48) + Handles null at 90 +31: LocalStore(Ljava/lang/Object;,4) (51) + Handles null at 90 +32: LocalLoad(Ljava/lang/Object;,4) (53) + Handles null at 90 +33: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (55) + Handles null at 90 +34: Constant(I,0) (58) + Handles null at 90 +35: ConditionalBranch(I,ne,74) (58) + Handles null at 90 +36: LocalLoad(Ljava/lang/Object;,4) (61) + Handles null at 90 +37: CheckCast(Ljava_cup/symbol_part;) (63) + Handles null at 90 +38: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (66) + Handles null at 90 +39: LocalStore(Ljava/lang/Object;,5) (69) + Handles null at 90 +40: LocalLoad(Ljava/lang/Object;,5) (71) + Handles null at 90 +41: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (73) + Handles null at 90 +42: Constant(I,0) (76) + Handles null at 90 +43: ConditionalBranch(I,ne,56) (76) + Handles null at 90 +44: LocalLoad(Ljava/lang/Object;,2) (79) + Handles null at 90 +45: LocalLoad(Ljava/lang/Object;,5) (80) + Handles null at 90 +46: CheckCast(Ljava_cup/terminal;) (82) + Handles null at 90 +47: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (85) + Handles null at 90 +48: Pop(1) (88) + Handles null at 90 +49: LocalLoad(Ljava/lang/Object;,2) (89) + Handles null at 90 +50: Constant(Ljava/lang/String;,"java_cup/lalr_item") (90) + Handles null at 90 +51: Constant(Ljava/lang/String;,"calc_lookahead(Ljava_cup/terminal_set;)Ljava_cup/terminal_set;") (90) + Handles null at 90 +52: LocalLoad(Ljava/lang/Object;,0) (90) + Handles null at 90 +53: Constant(I,0) (90) + Handles null at 90 +54: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (90) + Handles null at 90 +55: Return(Ljava/lang/Object;) (90) + Handles null at 90 +56: LocalLoad(Ljava/lang/Object;,2) (91) + Handles null at 90 +57: LocalLoad(Ljava/lang/Object;,5) (92) + Handles null at 90 +58: CheckCast(Ljava_cup/non_terminal;) (94) + Handles null at 90 +59: Invoke(VIRTUAL,Ljava_cup/non_terminal;,first_set,()Ljava_cup/terminal_set;) (97) + Handles null at 90 +60: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (100) + Handles null at 90 +61: Pop(1) (103) + Handles null at 90 +62: LocalLoad(Ljava/lang/Object;,5) (104) + Handles null at 90 +63: CheckCast(Ljava_cup/non_terminal;) (106) + Handles null at 90 +64: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (109) + Handles null at 90 +65: Constant(I,0) (112) + Handles null at 90 +66: ConditionalBranch(I,ne,74) (112) + Handles null at 90 +67: LocalLoad(Ljava/lang/Object;,2) (115) + Handles null at 90 +68: Constant(Ljava/lang/String;,"java_cup/lalr_item") (116) + Handles null at 90 +69: Constant(Ljava/lang/String;,"calc_lookahead(Ljava_cup/terminal_set;)Ljava_cup/terminal_set;") (116) + Handles null at 90 +70: LocalLoad(Ljava/lang/Object;,0) (116) + Handles null at 90 +71: Constant(I,0) (116) + Handles null at 90 +72: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (116) + Handles null at 90 +73: Return(Ljava/lang/Object;) (116) + Handles null at 90 +74: LocalLoad(I,3) (117) + Handles null at 90 +75: Constant(I,1) (117) + Handles null at 90 +76: BinaryOp(I,add) (117) + Handles null at 90 +77: LocalStore(I,3) (117) + Handles null at 90 +78: Goto(22) (120) + Handles null at 90 +79: LocalLoad(Ljava/lang/Object;,2) (123) + Handles null at 90 +80: LocalLoad(Ljava/lang/Object;,1) (124) + Handles null at 90 +81: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (125) + Handles null at 90 +82: Pop(1) (128) + Handles null at 90 +83: LocalLoad(Ljava/lang/Object;,2) (129) + Handles null at 90 +84: Constant(Ljava/lang/String;,"java_cup/lalr_item") (130) + Handles null at 90 +85: Constant(Ljava/lang/String;,"calc_lookahead(Ljava_cup/terminal_set;)Ljava_cup/terminal_set;") (130) + Handles null at 90 +86: LocalLoad(Ljava/lang/Object;,0) (130) + Handles null at 90 +87: Constant(I,0) (130) + Handles null at 90 +88: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (130) + Handles null at 90 +89: Return(Ljava/lang/Object;) (130) + Handles null at 90 +90: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +91: Constant(Ljava/lang/String;,"calc_lookahead(Ljava_cup/terminal_set;)Ljava_cup/terminal_set;") (0) +92: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +93: Constant(I,1) (0) +94: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +95: Throw() (0) +Instrumenting lookahead_visible ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,6) (4) +4: Constant(I,1) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_pos,()I) (10) +8: Constant(I,1) (13) +9: BinaryOp(I,add) (14) +10: LocalStore(I,3) (15) +11: LocalLoad(I,3) (16) +12: LocalLoad(Ljava/lang/Object;,0) (17) +13: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (18) +14: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (21) +15: ConditionalBranch(I,ge,47) (24) +16: LocalLoad(Ljava/lang/Object;,0) (27) +17: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (28) +18: LocalLoad(I,3) (31) +19: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (32) +20: LocalStore(Ljava/lang/Object;,1) (35) +21: LocalLoad(Ljava/lang/Object;,1) (36) +22: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (37) +23: Constant(I,0) (40) +24: ConditionalBranch(I,ne,42) (40) +25: LocalLoad(Ljava/lang/Object;,1) (43) +26: CheckCast(Ljava_cup/symbol_part;) (44) +27: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (47) +28: LocalStore(Ljava/lang/Object;,2) (50) +29: LocalLoad(Ljava/lang/Object;,2) (51) +30: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (52) +31: Constant(I,0) (55) +32: ConditionalBranch(I,ne,35) (55) +33: Constant(I,0) (58) +34: Return(I) (59) +35: LocalLoad(Ljava/lang/Object;,2) (60) +36: CheckCast(Ljava_cup/non_terminal;) (61) +37: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (64) +38: Constant(I,0) (67) +39: ConditionalBranch(I,ne,42) (67) +40: Constant(I,0) (70) +41: Return(I) (71) +42: LocalLoad(I,3) (72) +43: Constant(I,1) (72) +44: BinaryOp(I,add) (72) +45: LocalStore(I,3) (72) +46: Goto(11) (75) +47: Constant(I,1) (78) +48: Return(I) (79) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"lookahead_visible()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 73 +5: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (1) + Handles null at 73 +6: Constant(I,0) (4) + Handles null at 73 +7: ConditionalBranch(I,eq,15) (4) + Handles null at 73 +8: Constant(I,1) (7) + Handles null at 73 +9: Constant(Ljava/lang/String;,"java_cup/lalr_item") (8) + Handles null at 73 +10: Constant(Ljava/lang/String;,"lookahead_visible()Z") (8) + Handles null at 73 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 73 +12: Constant(I,0) (8) + Handles null at 73 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 73 +14: Return(I) (8) + Handles null at 73 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 73 +16: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_pos,()I) (10) + Handles null at 73 +17: Constant(I,1) (13) + Handles null at 73 +18: BinaryOp(I,add) (14) + Handles null at 73 +19: LocalStore(I,3) (15) + Handles null at 73 +20: LocalLoad(I,3) (16) + Handles null at 73 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 73 +22: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (18) + Handles null at 73 +23: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (21) + Handles null at 73 +24: ConditionalBranch(I,ge,66) (24) + Handles null at 73 +25: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 73 +26: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (28) + Handles null at 73 +27: LocalLoad(I,3) (31) + Handles null at 73 +28: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (32) + Handles null at 73 +29: LocalStore(Ljava/lang/Object;,1) (35) + Handles null at 73 +30: LocalLoad(Ljava/lang/Object;,1) (36) + Handles null at 73 +31: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (37) + Handles null at 73 +32: Constant(I,0) (40) + Handles null at 73 +33: ConditionalBranch(I,ne,61) (40) + Handles null at 73 +34: LocalLoad(Ljava/lang/Object;,1) (43) + Handles null at 73 +35: CheckCast(Ljava_cup/symbol_part;) (44) + Handles null at 73 +36: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (47) + Handles null at 73 +37: LocalStore(Ljava/lang/Object;,2) (50) + Handles null at 73 +38: LocalLoad(Ljava/lang/Object;,2) (51) + Handles null at 73 +39: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (52) + Handles null at 73 +40: Constant(I,0) (55) + Handles null at 73 +41: ConditionalBranch(I,ne,49) (55) + Handles null at 73 +42: Constant(I,0) (58) + Handles null at 73 +43: Constant(Ljava/lang/String;,"java_cup/lalr_item") (59) + Handles null at 73 +44: Constant(Ljava/lang/String;,"lookahead_visible()Z") (59) + Handles null at 73 +45: LocalLoad(Ljava/lang/Object;,0) (59) + Handles null at 73 +46: Constant(I,0) (59) + Handles null at 73 +47: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (59) + Handles null at 73 +48: Return(I) (59) + Handles null at 73 +49: LocalLoad(Ljava/lang/Object;,2) (60) + Handles null at 73 +50: CheckCast(Ljava_cup/non_terminal;) (61) + Handles null at 73 +51: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (64) + Handles null at 73 +52: Constant(I,0) (67) + Handles null at 73 +53: ConditionalBranch(I,ne,61) (67) + Handles null at 73 +54: Constant(I,0) (70) + Handles null at 73 +55: Constant(Ljava/lang/String;,"java_cup/lalr_item") (71) + Handles null at 73 +56: Constant(Ljava/lang/String;,"lookahead_visible()Z") (71) + Handles null at 73 +57: LocalLoad(Ljava/lang/Object;,0) (71) + Handles null at 73 +58: Constant(I,0) (71) + Handles null at 73 +59: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (71) + Handles null at 73 +60: Return(I) (71) + Handles null at 73 +61: LocalLoad(I,3) (72) + Handles null at 73 +62: Constant(I,1) (72) + Handles null at 73 +63: BinaryOp(I,add) (72) + Handles null at 73 +64: LocalStore(I,3) (72) + Handles null at 73 +65: Goto(20) (75) + Handles null at 73 +66: Constant(I,1) (78) + Handles null at 73 +67: Constant(Ljava/lang/String;,"java_cup/lalr_item") (79) + Handles null at 73 +68: Constant(Ljava/lang/String;,"lookahead_visible()Z") (79) + Handles null at 73 +69: LocalLoad(Ljava/lang/Object;,0) (79) + Handles null at 73 +70: Constant(I,0) (79) + Handles null at 73 +71: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (79) + Handles null at 73 +72: Return(I) (79) + Handles null at 73 +73: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +74: Constant(Ljava/lang/String;,"lookahead_visible()Z") (0) +75: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +76: Constant(I,1) (0) +77: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +78: Throw() (0) +Instrumenting equals (Ljava_cup/lalr_item;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (1) +3: Constant(I,0) (4) +4: Return(I) (5) +5: LocalLoad(Ljava/lang/Object;,0) (6) +6: LocalLoad(Ljava/lang/Object;,1) (7) +7: Invoke(SPECIAL,Ljava_cup/lr_item_core;,equals,(Ljava_cup/lr_item_core;)Z) (8) +8: Return(I) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 23 +5: Constant(L;,null) (1) + Handles null at 23 +6: ConditionalBranch(Ljava/lang/Object;,ne,14) (1) + Handles null at 23 +7: Constant(I,0) (4) + Handles null at 23 +8: Constant(Ljava/lang/String;,"java_cup/lalr_item") (5) + Handles null at 23 +9: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item;)Z") (5) + Handles null at 23 +10: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 23 +11: Constant(I,0) (5) + Handles null at 23 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 23 +13: Return(I) (5) + Handles null at 23 +14: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 23 +15: LocalLoad(Ljava/lang/Object;,1) (7) + Handles null at 23 +16: Invoke(SPECIAL,Ljava_cup/lr_item_core;,equals,(Ljava_cup/lr_item_core;)Z) (8) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/lalr_item") (11) + Handles null at 23 +18: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item;)Z") (11) + Handles null at 23 +19: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 23 +20: Constant(I,0) (11) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 23 +22: Return(I) (11) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +24: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item;)Z") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/lalr_item;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/lalr_item;) (11) +9: Invoke(VIRTUAL,Ljava_cup/lalr_item;,equals,(Ljava_cup/lalr_item;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/lalr_item;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/lalr_item") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/lalr_item;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/lalr_item;,equals,(Ljava_cup/lalr_item;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/lalr_item") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/lr_item_core;,hashCode,()I) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava_cup/lr_item_core;,hashCode,()I) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_item") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"hashCode()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +13: Constant(Ljava/lang/String;,"hashCode()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"") (0) +1: LocalStore(Ljava/lang/Object;,1) (2) +2: New(Ljava/lang/StringBuilder;,0) (3) +3: Dup(1,0) (6) +4: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) +5: LocalLoad(Ljava/lang/Object;,1) (10) +6: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) +7: Constant(Ljava/lang/String;,"[") (14) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) +10: LocalStore(Ljava/lang/Object;,1) (22) +11: New(Ljava/lang/StringBuilder;,0) (23) +12: Dup(1,0) (26) +13: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) +14: LocalLoad(Ljava/lang/Object;,1) (30) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) +16: LocalLoad(Ljava/lang/Object;,0) (34) +17: Invoke(SPECIAL,Ljava_cup/lr_item_core;,toString,()Ljava/lang/String;) (35) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (41) +20: LocalStore(Ljava/lang/Object;,1) (44) +21: New(Ljava/lang/StringBuilder;,0) (45) +22: Dup(1,0) (48) +23: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (49) +24: LocalLoad(Ljava/lang/Object;,1) (52) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (53) +26: Constant(Ljava/lang/String;,", ") (56) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (61) +29: LocalStore(Ljava/lang/Object;,1) (64) +30: LocalLoad(Ljava/lang/Object;,0) (65) +31: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (66) +32: Constant(L;,null) (69) +33: ConditionalBranch(Ljava/lang/Object;,eq,82) (69) +34: New(Ljava/lang/StringBuilder;,0) (72) +35: Dup(1,0) (75) +36: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (76) +37: LocalLoad(Ljava/lang/Object;,1) (79) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (80) +39: Constant(Ljava/lang/String;,"{") (83) +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (85) +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (88) +42: LocalStore(Ljava/lang/Object;,1) (91) +43: Constant(I,0) (92) +44: LocalStore(I,2) (93) +45: LocalLoad(I,2) (94) +46: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (95) +47: ConditionalBranch(I,ge,72) (98) +48: LocalLoad(Ljava/lang/Object;,0) (101) +49: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (102) +50: LocalLoad(I,2) (105) +51: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (106) +52: Constant(I,0) (109) +53: ConditionalBranch(I,eq,67) (109) +54: New(Ljava/lang/StringBuilder;,0) (112) +55: Dup(1,0) (115) +56: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (116) +57: LocalLoad(Ljava/lang/Object;,1) (119) +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (120) +59: LocalLoad(I,2) (123) +60: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (124) +61: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (127) +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (130) +63: Constant(Ljava/lang/String;," ") (133) +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (135) +65: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (138) +66: LocalStore(Ljava/lang/Object;,1) (141) +67: LocalLoad(I,2) (142) +68: Constant(I,1) (142) +69: BinaryOp(I,add) (142) +70: LocalStore(I,2) (142) +71: Goto(45) (145) +72: New(Ljava/lang/StringBuilder;,0) (148) +73: Dup(1,0) (151) +74: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (152) +75: LocalLoad(Ljava/lang/Object;,1) (155) +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) +77: Constant(Ljava/lang/String;,"}") (159) +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (161) +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (164) +80: LocalStore(Ljava/lang/Object;,1) (167) +81: Goto(91) (168) +82: New(Ljava/lang/StringBuilder;,0) (171) +83: Dup(1,0) (174) +84: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (175) +85: LocalLoad(Ljava/lang/Object;,1) (178) +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (179) +87: Constant(Ljava/lang/String;,"NULL LOOKAHEAD!!") (182) +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (184) +89: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (187) +90: LocalStore(Ljava/lang/Object;,1) (190) +91: New(Ljava/lang/StringBuilder;,0) (191) +92: Dup(1,0) (194) +93: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (195) +94: LocalLoad(Ljava/lang/Object;,1) (198) +95: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (199) +96: Constant(Ljava/lang/String;,"]") (202) +97: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (204) +98: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (207) +99: LocalStore(Ljava/lang/Object;,1) (210) +100: LocalLoad(Ljava/lang/Object;,1) (211) +101: Return(Ljava/lang/Object;) (212) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"") (0) + Handles null at 111 +5: LocalStore(Ljava/lang/Object;,1) (2) + Handles null at 111 +6: New(Ljava/lang/StringBuilder;,0) (3) + Handles null at 111 +7: Dup(1,0) (6) + Handles null at 111 +8: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (7) + Handles null at 111 +9: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 111 +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) + Handles null at 111 +11: Constant(Ljava/lang/String;,"[") (14) + Handles null at 111 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 111 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) + Handles null at 111 +14: LocalStore(Ljava/lang/Object;,1) (22) + Handles null at 111 +15: New(Ljava/lang/StringBuilder;,0) (23) + Handles null at 111 +16: Dup(1,0) (26) + Handles null at 111 +17: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) + Handles null at 111 +18: LocalLoad(Ljava/lang/Object;,1) (30) + Handles null at 111 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) + Handles null at 111 +20: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 111 +21: Invoke(SPECIAL,Ljava_cup/lr_item_core;,toString,()Ljava/lang/String;) (35) + Handles null at 111 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) + Handles null at 111 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (41) + Handles null at 111 +24: LocalStore(Ljava/lang/Object;,1) (44) + Handles null at 111 +25: New(Ljava/lang/StringBuilder;,0) (45) + Handles null at 111 +26: Dup(1,0) (48) + Handles null at 111 +27: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (49) + Handles null at 111 +28: LocalLoad(Ljava/lang/Object;,1) (52) + Handles null at 111 +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (53) + Handles null at 111 +30: Constant(Ljava/lang/String;,", ") (56) + Handles null at 111 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) + Handles null at 111 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (61) + Handles null at 111 +33: LocalStore(Ljava/lang/Object;,1) (64) + Handles null at 111 +34: LocalLoad(Ljava/lang/Object;,0) (65) + Handles null at 111 +35: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (66) + Handles null at 111 +36: Constant(L;,null) (69) + Handles null at 111 +37: ConditionalBranch(Ljava/lang/Object;,eq,86) (69) + Handles null at 111 +38: New(Ljava/lang/StringBuilder;,0) (72) + Handles null at 111 +39: Dup(1,0) (75) + Handles null at 111 +40: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (76) + Handles null at 111 +41: LocalLoad(Ljava/lang/Object;,1) (79) + Handles null at 111 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (80) + Handles null at 111 +43: Constant(Ljava/lang/String;,"{") (83) + Handles null at 111 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (85) + Handles null at 111 +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (88) + Handles null at 111 +46: LocalStore(Ljava/lang/Object;,1) (91) + Handles null at 111 +47: Constant(I,0) (92) + Handles null at 111 +48: LocalStore(I,2) (93) + Handles null at 111 +49: LocalLoad(I,2) (94) + Handles null at 111 +50: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (95) + Handles null at 111 +51: ConditionalBranch(I,ge,76) (98) + Handles null at 111 +52: LocalLoad(Ljava/lang/Object;,0) (101) + Handles null at 111 +53: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (102) + Handles null at 111 +54: LocalLoad(I,2) (105) + Handles null at 111 +55: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (106) + Handles null at 111 +56: Constant(I,0) (109) + Handles null at 111 +57: ConditionalBranch(I,eq,71) (109) + Handles null at 111 +58: New(Ljava/lang/StringBuilder;,0) (112) + Handles null at 111 +59: Dup(1,0) (115) + Handles null at 111 +60: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (116) + Handles null at 111 +61: LocalLoad(Ljava/lang/Object;,1) (119) + Handles null at 111 +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (120) + Handles null at 111 +63: LocalLoad(I,2) (123) + Handles null at 111 +64: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (124) + Handles null at 111 +65: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (127) + Handles null at 111 +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (130) + Handles null at 111 +67: Constant(Ljava/lang/String;," ") (133) + Handles null at 111 +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (135) + Handles null at 111 +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (138) + Handles null at 111 +70: LocalStore(Ljava/lang/Object;,1) (141) + Handles null at 111 +71: LocalLoad(I,2) (142) + Handles null at 111 +72: Constant(I,1) (142) + Handles null at 111 +73: BinaryOp(I,add) (142) + Handles null at 111 +74: LocalStore(I,2) (142) + Handles null at 111 +75: Goto(49) (145) + Handles null at 111 +76: New(Ljava/lang/StringBuilder;,0) (148) + Handles null at 111 +77: Dup(1,0) (151) + Handles null at 111 +78: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (152) + Handles null at 111 +79: LocalLoad(Ljava/lang/Object;,1) (155) + Handles null at 111 +80: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) + Handles null at 111 +81: Constant(Ljava/lang/String;,"}") (159) + Handles null at 111 +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (161) + Handles null at 111 +83: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (164) + Handles null at 111 +84: LocalStore(Ljava/lang/Object;,1) (167) + Handles null at 111 +85: Goto(95) (168) + Handles null at 111 +86: New(Ljava/lang/StringBuilder;,0) (171) + Handles null at 111 +87: Dup(1,0) (174) + Handles null at 111 +88: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (175) + Handles null at 111 +89: LocalLoad(Ljava/lang/Object;,1) (178) + Handles null at 111 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (179) + Handles null at 111 +91: Constant(Ljava/lang/String;,"NULL LOOKAHEAD!!") (182) + Handles null at 111 +92: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (184) + Handles null at 111 +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (187) + Handles null at 111 +94: LocalStore(Ljava/lang/Object;,1) (190) + Handles null at 111 +95: New(Ljava/lang/StringBuilder;,0) (191) + Handles null at 111 +96: Dup(1,0) (194) + Handles null at 111 +97: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (195) + Handles null at 111 +98: LocalLoad(Ljava/lang/Object;,1) (198) + Handles null at 111 +99: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (199) + Handles null at 111 +100: Constant(Ljava/lang/String;,"]") (202) + Handles null at 111 +101: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (204) + Handles null at 111 +102: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (207) + Handles null at 111 +103: LocalStore(Ljava/lang/Object;,1) (210) + Handles null at 111 +104: LocalLoad(Ljava/lang/Object;,1) (211) + Handles null at 111 +105: Constant(Ljava/lang/String;,"java_cup/lalr_item") (212) + Handles null at 111 +106: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (212) + Handles null at 111 +107: LocalLoad(Ljava/lang/Object;,0) (212) + Handles null at 111 +108: Constant(I,0) (212) + Handles null at 111 +109: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (212) + Handles null at 111 +110: Return(Ljava/lang/Object;) (212) + Handles null at 111 +111: Constant(Ljava/lang/String;,"java_cup/lalr_item") (0) +112: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +113: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +114: Constant(I,1) (0) +115: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +116: Throw() (0) +Class: java_cup/lalr_item_set +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: New(Ljava/util/Hashtable;,0) (5) +4: Dup(1,0) (8) +5: Constant(I,11) (9) +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (11) +7: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (14) +8: LocalLoad(Ljava/lang/Object;,0) (17) +9: Constant(L;,null) (18) +10: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (19) +11: Return(V) (22) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 21 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 21 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 21 +7: New(Ljava/util/Hashtable;,0) (5) + Handles null at 21 +8: Dup(1,0) (8) + Handles null at 21 +9: Constant(I,11) (9) + Handles null at 21 +10: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (11) + Handles null at 21 +11: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (14) + Handles null at 21 +12: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 21 +13: Constant(L;,null) (18) + Handles null at 21 +14: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (19) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (22) + Handles null at 21 +16: Constant(Ljava/lang/String;,"()V") (22) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 21 +18: Constant(I,0) (22) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (22) + Handles null at 21 +20: Return(V) (22) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +22: Constant(Ljava/lang/String;,"()V") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting (Ljava_cup/lalr_item_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: New(Ljava/util/Hashtable;,0) (5) +4: Dup(1,0) (8) +5: Constant(I,11) (9) +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (11) +7: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (14) +8: LocalLoad(Ljava/lang/Object;,0) (17) +9: Constant(L;,null) (18) +10: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (19) +11: LocalLoad(Ljava/lang/Object;,0) (22) +12: LocalLoad(Ljava/lang/Object;,1) (23) +13: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (24) +14: LocalLoad(Ljava/lang/Object;,0) (27) +15: LocalLoad(Ljava/lang/Object;,1) (28) +16: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (29) +17: Invoke(VIRTUAL,Ljava/util/Hashtable;,clone,()Ljava/lang/Object;) (32) +18: CheckCast(Ljava/util/Hashtable;) (35) +19: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (38) +20: Return(V) (41) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_item_set;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 30 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 30 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 30 +7: New(Ljava/util/Hashtable;,0) (5) + Handles null at 30 +8: Dup(1,0) (8) + Handles null at 30 +9: Constant(I,11) (9) + Handles null at 30 +10: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (11) + Handles null at 30 +11: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (14) + Handles null at 30 +12: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 30 +13: Constant(L;,null) (18) + Handles null at 30 +14: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (19) + Handles null at 30 +15: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 30 +16: LocalLoad(Ljava/lang/Object;,1) (23) + Handles null at 30 +17: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (24) + Handles null at 30 +18: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 30 +19: LocalLoad(Ljava/lang/Object;,1) (28) + Handles null at 30 +20: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (29) + Handles null at 30 +21: Invoke(VIRTUAL,Ljava/util/Hashtable;,clone,()Ljava/lang/Object;) (32) + Handles null at 30 +22: CheckCast(Ljava/util/Hashtable;) (35) + Handles null at 30 +23: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (38) + Handles null at 30 +24: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (41) + Handles null at 30 +25: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_item_set;)V") (41) + Handles null at 30 +26: LocalLoad(Ljava/lang/Object;,0) (41) + Handles null at 30 +27: Constant(I,0) (41) + Handles null at 30 +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (41) + Handles null at 30 +29: Return(V) (41) + Handles null at 30 +30: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +31: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_item_set;)V") (0) +32: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +33: Constant(I,1) (0) +34: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +35: Throw() (0) +Instrumenting all ()Ljava/util/Enumeration;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (1) +2: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (4) +3: Return(Ljava/lang/Object;) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(Ljava/lang/Object;) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +14: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting size ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (1) +2: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (4) +3: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"size()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"size()I") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(I) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +14: Constant(Ljava/lang/String;,"size()I") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting contains (Ljava_cup/lalr_item;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: Invoke(VIRTUAL,Ljava/util/Hashtable;,containsKey,(Ljava/lang/Object;)Z) (5) +4: Return(I) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"contains(Ljava_cup/lalr_item;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (1) + Handles null at 14 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 14 +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,containsKey,(Ljava/lang/Object;)Z) (5) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (8) + Handles null at 14 +9: Constant(Ljava/lang/String;,"contains(Ljava_cup/lalr_item;)Z") (8) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 14 +11: Constant(I,0) (8) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 14 +13: Return(I) (8) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +15: Constant(Ljava/lang/String;,"contains(Ljava_cup/lalr_item;)Z") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting find (Ljava_cup/lalr_item;)Ljava_cup/lalr_item;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (5) +4: CheckCast(Ljava_cup/lalr_item;) (8) +5: Return(Ljava/lang/Object;) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"find(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 15 +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (5) + Handles null at 15 +8: CheckCast(Ljava_cup/lalr_item;) (8) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (11) + Handles null at 15 +10: Constant(Ljava/lang/String;,"find(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;") (11) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 15 +12: Constant(I,0) (11) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 15 +14: Return(Ljava/lang/Object;) (11) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +16: Constant(Ljava/lang/String;,"find(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting is_subset_of (Ljava_cup/lalr_item_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (6) +5: LocalStore(Ljava/lang/Object;,2) (9) +6: LocalLoad(Ljava/lang/Object;,2) (10) +7: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) +8: Constant(I,0) (16) +9: ConditionalBranch(I,eq,19) (16) +10: LocalLoad(Ljava/lang/Object;,1) (19) +11: LocalLoad(Ljava/lang/Object;,2) (20) +12: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) +13: CheckCast(Ljava_cup/lalr_item;) (26) +14: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,contains,(Ljava_cup/lalr_item;)Z) (29) +15: Constant(I,0) (32) +16: ConditionalBranch(I,ne,6) (32) +17: Constant(I,0) (35) +18: Return(I) (36) +19: Constant(I,1) (37) +20: Return(I) (38) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/lalr_item_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 35 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 35 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 35 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 35 +8: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (6) + Handles null at 35 +9: LocalStore(Ljava/lang/Object;,2) (9) + Handles null at 35 +10: LocalLoad(Ljava/lang/Object;,2) (10) + Handles null at 35 +11: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) + Handles null at 35 +12: Constant(I,0) (16) + Handles null at 35 +13: ConditionalBranch(I,eq,28) (16) + Handles null at 35 +14: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 35 +15: LocalLoad(Ljava/lang/Object;,2) (20) + Handles null at 35 +16: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) + Handles null at 35 +17: CheckCast(Ljava_cup/lalr_item;) (26) + Handles null at 35 +18: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,contains,(Ljava_cup/lalr_item;)Z) (29) + Handles null at 35 +19: Constant(I,0) (32) + Handles null at 35 +20: ConditionalBranch(I,ne,10) (32) + Handles null at 35 +21: Constant(I,0) (35) + Handles null at 35 +22: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (36) + Handles null at 35 +23: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/lalr_item_set;)Z") (36) + Handles null at 35 +24: LocalLoad(Ljava/lang/Object;,0) (36) + Handles null at 35 +25: Constant(I,0) (36) + Handles null at 35 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (36) + Handles null at 35 +27: Return(I) (36) + Handles null at 35 +28: Constant(I,1) (37) + Handles null at 35 +29: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (38) + Handles null at 35 +30: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/lalr_item_set;)Z") (38) + Handles null at 35 +31: LocalLoad(Ljava/lang/Object;,0) (38) + Handles null at 35 +32: Constant(I,0) (38) + Handles null at 35 +33: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (38) + Handles null at 35 +34: Return(I) (38) + Handles null at 35 +35: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +36: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/lalr_item_set;)Z") (0) +37: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +38: Constant(I,1) (0) +39: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +40: Throw() (0) +Instrumenting is_superset_of (Ljava_cup/lalr_item_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,is_subset_of,(Ljava_cup/lalr_item_set;)Z) (7) +6: Return(I) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/lalr_item_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 16 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 16 +9: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,is_subset_of,(Ljava_cup/lalr_item_set;)Z) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/lalr_item_set;)Z") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(I) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +17: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/lalr_item_set;)Z") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting add (Ljava_cup/lalr_item;)Ljava_cup/lalr_item;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (10) +7: CheckCast(Ljava_cup/lalr_item;) (13) +8: LocalStore(Ljava/lang/Object;,2) (16) +9: LocalLoad(Ljava/lang/Object;,2) (17) +10: Constant(L;,null) (18) +11: ConditionalBranch(Ljava/lang/Object;,eq,20) (18) +12: LocalLoad(Ljava/lang/Object;,2) (21) +13: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (22) +14: LocalLoad(Ljava/lang/Object;,1) (25) +15: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (26) +16: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (29) +17: Pop(1) (32) +18: LocalLoad(Ljava/lang/Object;,2) (33) +19: Return(Ljava/lang/Object;) (34) +20: LocalLoad(Ljava/lang/Object;,0) (35) +21: Constant(L;,null) (36) +22: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (37) +23: LocalLoad(Ljava/lang/Object;,0) (40) +24: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (41) +25: LocalLoad(Ljava/lang/Object;,1) (44) +26: LocalLoad(Ljava/lang/Object;,1) (45) +27: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (46) +28: Pop(1) (49) +29: LocalLoad(Ljava/lang/Object;,1) (50) +30: Return(Ljava/lang/Object;) (51) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"add(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 45 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 45 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 45 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 45 +8: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (6) + Handles null at 45 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 45 +10: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (10) + Handles null at 45 +11: CheckCast(Ljava_cup/lalr_item;) (13) + Handles null at 45 +12: LocalStore(Ljava/lang/Object;,2) (16) + Handles null at 45 +13: LocalLoad(Ljava/lang/Object;,2) (17) + Handles null at 45 +14: Constant(L;,null) (18) + Handles null at 45 +15: ConditionalBranch(Ljava/lang/Object;,eq,29) (18) + Handles null at 45 +16: LocalLoad(Ljava/lang/Object;,2) (21) + Handles null at 45 +17: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (22) + Handles null at 45 +18: LocalLoad(Ljava/lang/Object;,1) (25) + Handles null at 45 +19: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (26) + Handles null at 45 +20: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (29) + Handles null at 45 +21: Pop(1) (32) + Handles null at 45 +22: LocalLoad(Ljava/lang/Object;,2) (33) + Handles null at 45 +23: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (34) + Handles null at 45 +24: Constant(Ljava/lang/String;,"add(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;") (34) + Handles null at 45 +25: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 45 +26: Constant(I,0) (34) + Handles null at 45 +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (34) + Handles null at 45 +28: Return(Ljava/lang/Object;) (34) + Handles null at 45 +29: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 45 +30: Constant(L;,null) (36) + Handles null at 45 +31: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (37) + Handles null at 45 +32: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 45 +33: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (41) + Handles null at 45 +34: LocalLoad(Ljava/lang/Object;,1) (44) + Handles null at 45 +35: LocalLoad(Ljava/lang/Object;,1) (45) + Handles null at 45 +36: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (46) + Handles null at 45 +37: Pop(1) (49) + Handles null at 45 +38: LocalLoad(Ljava/lang/Object;,1) (50) + Handles null at 45 +39: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (51) + Handles null at 45 +40: Constant(Ljava/lang/String;,"add(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;") (51) + Handles null at 45 +41: LocalLoad(Ljava/lang/Object;,0) (51) + Handles null at 45 +42: Constant(I,0) (51) + Handles null at 45 +43: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (51) + Handles null at 45 +44: Return(Ljava/lang/Object;) (51) + Handles null at 45 +45: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +46: Constant(Ljava/lang/String;,"add(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;") (0) +47: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +48: Constant(I,1) (0) +49: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +50: Throw() (0) +Instrumenting remove (Ljava_cup/lalr_item;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Constant(L;,null) (6) +5: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (11) +8: LocalLoad(Ljava/lang/Object;,1) (14) +9: Invoke(VIRTUAL,Ljava/util/Hashtable;,remove,(Ljava/lang/Object;)Ljava/lang/Object;) (15) +10: Pop(1) (18) +11: Return(V) (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"remove(Ljava_cup/lalr_item;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 21 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 21 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 21 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 21 +8: Constant(L;,null) (6) + Handles null at 21 +9: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (7) + Handles null at 21 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 21 +11: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/lalr_item_set;,_all) (11) + Handles null at 21 +12: LocalLoad(Ljava/lang/Object;,1) (14) + Handles null at 21 +13: Invoke(VIRTUAL,Ljava/util/Hashtable;,remove,(Ljava/lang/Object;)Ljava/lang/Object;) (15) + Handles null at 21 +14: Pop(1) (18) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (19) + Handles null at 21 +16: Constant(Ljava/lang/String;,"remove(Ljava_cup/lalr_item;)V") (19) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 21 +18: Constant(I,0) (19) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (19) + Handles null at 21 +20: Return(V) (19) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +22: Constant(Ljava/lang/String;,"remove(Ljava_cup/lalr_item;)V") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting add (Ljava_cup/lalr_item_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (6) +5: LocalStore(Ljava/lang/Object;,2) (9) +6: LocalLoad(Ljava/lang/Object;,2) (10) +7: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) +8: Constant(I,0) (16) +9: ConditionalBranch(I,eq,17) (16) +10: LocalLoad(Ljava/lang/Object;,0) (19) +11: LocalLoad(Ljava/lang/Object;,2) (20) +12: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) +13: CheckCast(Ljava_cup/lalr_item;) (26) +14: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (29) +15: Pop(1) (32) +16: Goto(6) (33) +17: Return(V) (36) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"add(Ljava_cup/lalr_item_set;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 27 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 27 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 27 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 27 +8: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (6) + Handles null at 27 +9: LocalStore(Ljava/lang/Object;,2) (9) + Handles null at 27 +10: LocalLoad(Ljava/lang/Object;,2) (10) + Handles null at 27 +11: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) + Handles null at 27 +12: Constant(I,0) (16) + Handles null at 27 +13: ConditionalBranch(I,eq,21) (16) + Handles null at 27 +14: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 27 +15: LocalLoad(Ljava/lang/Object;,2) (20) + Handles null at 27 +16: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) + Handles null at 27 +17: CheckCast(Ljava_cup/lalr_item;) (26) + Handles null at 27 +18: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (29) + Handles null at 27 +19: Pop(1) (32) + Handles null at 27 +20: Goto(10) (33) + Handles null at 27 +21: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (36) + Handles null at 27 +22: Constant(Ljava/lang/String;,"add(Ljava_cup/lalr_item_set;)V") (36) + Handles null at 27 +23: LocalLoad(Ljava/lang/Object;,0) (36) + Handles null at 27 +24: Constant(I,0) (36) + Handles null at 27 +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (36) + Handles null at 27 +26: Return(V) (36) + Handles null at 27 +27: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +28: Constant(Ljava/lang/String;,"add(Ljava_cup/lalr_item_set;)V") (0) +29: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +30: Constant(I,1) (0) +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +32: Throw() (0) +Instrumenting remove (Ljava_cup/lalr_item_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (6) +5: LocalStore(Ljava/lang/Object;,2) (9) +6: LocalLoad(Ljava/lang/Object;,2) (10) +7: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) +8: Constant(I,0) (16) +9: ConditionalBranch(I,eq,16) (16) +10: LocalLoad(Ljava/lang/Object;,0) (19) +11: LocalLoad(Ljava/lang/Object;,2) (20) +12: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) +13: CheckCast(Ljava_cup/lalr_item;) (26) +14: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,remove,(Ljava_cup/lalr_item;)V) (29) +15: Goto(6) (32) +16: Return(V) (35) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"remove(Ljava_cup/lalr_item_set;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 26 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 26 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 26 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 26 +8: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (6) + Handles null at 26 +9: LocalStore(Ljava/lang/Object;,2) (9) + Handles null at 26 +10: LocalLoad(Ljava/lang/Object;,2) (10) + Handles null at 26 +11: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) + Handles null at 26 +12: Constant(I,0) (16) + Handles null at 26 +13: ConditionalBranch(I,eq,20) (16) + Handles null at 26 +14: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 26 +15: LocalLoad(Ljava/lang/Object;,2) (20) + Handles null at 26 +16: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) + Handles null at 26 +17: CheckCast(Ljava_cup/lalr_item;) (26) + Handles null at 26 +18: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,remove,(Ljava_cup/lalr_item;)V) (29) + Handles null at 26 +19: Goto(10) (32) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (35) + Handles null at 26 +21: Constant(Ljava/lang/String;,"remove(Ljava_cup/lalr_item_set;)V") (35) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 26 +23: Constant(I,0) (35) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 26 +25: Return(V) (35) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +27: Constant(Ljava/lang/String;,"remove(Ljava_cup/lalr_item_set;)V") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting get_one ()Ljava_cup/lalr_item;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (1) +2: LocalStore(Ljava/lang/Object;,1) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (6) +5: Constant(I,0) (11) +6: ConditionalBranch(I,eq,16) (11) +7: LocalLoad(Ljava/lang/Object;,1) (14) +8: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (15) +9: CheckCast(Ljava_cup/lalr_item;) (20) +10: LocalStore(Ljava/lang/Object;,2) (23) +11: LocalLoad(Ljava/lang/Object;,0) (24) +12: LocalLoad(Ljava/lang/Object;,2) (25) +13: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,remove,(Ljava_cup/lalr_item;)V) (26) +14: LocalLoad(Ljava/lang/Object;,2) (29) +15: Return(Ljava/lang/Object;) (30) +16: Constant(L;,null) (31) +17: Return(Ljava/lang/Object;) (32) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"get_one()Ljava_cup/lalr_item;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 32 +5: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (1) + Handles null at 32 +6: LocalStore(Ljava/lang/Object;,1) (4) + Handles null at 32 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 32 +8: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (6) + Handles null at 32 +9: Constant(I,0) (11) + Handles null at 32 +10: ConditionalBranch(I,eq,25) (11) + Handles null at 32 +11: LocalLoad(Ljava/lang/Object;,1) (14) + Handles null at 32 +12: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (15) + Handles null at 32 +13: CheckCast(Ljava_cup/lalr_item;) (20) + Handles null at 32 +14: LocalStore(Ljava/lang/Object;,2) (23) + Handles null at 32 +15: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 32 +16: LocalLoad(Ljava/lang/Object;,2) (25) + Handles null at 32 +17: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,remove,(Ljava_cup/lalr_item;)V) (26) + Handles null at 32 +18: LocalLoad(Ljava/lang/Object;,2) (29) + Handles null at 32 +19: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (30) + Handles null at 32 +20: Constant(Ljava/lang/String;,"get_one()Ljava_cup/lalr_item;") (30) + Handles null at 32 +21: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 32 +22: Constant(I,0) (30) + Handles null at 32 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (30) + Handles null at 32 +24: Return(Ljava/lang/Object;) (30) + Handles null at 32 +25: Constant(L;,null) (31) + Handles null at 32 +26: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (32) + Handles null at 32 +27: Constant(Ljava/lang/String;,"get_one()Ljava_cup/lalr_item;") (32) + Handles null at 32 +28: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 32 +29: Constant(I,0) (32) + Handles null at 32 +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (32) + Handles null at 32 +31: Return(Ljava/lang/Object;) (32) + Handles null at 32 +32: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +33: Constant(Ljava/lang/String;,"get_one()Ljava_cup/lalr_item;") (0) +34: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +35: Constant(I,1) (0) +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +37: Throw() (0) +Instrumenting not_null (Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,8) (1) +3: New(Ljava_cup/internal_error;,0) (4) +4: Dup(1,0) (7) +5: Constant(Ljava/lang/String;,"Null object used in set operation") (8) +6: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (10) +7: Throw() (13) +8: Return(V) (14) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 18 +5: Constant(L;,null) (1) + Handles null at 18 +6: ConditionalBranch(Ljava/lang/Object;,ne,12) (1) + Handles null at 18 +7: New(Ljava_cup/internal_error;,0) (4) + Handles null at 18 +8: Dup(1,0) (7) + Handles null at 18 +9: Constant(Ljava/lang/String;,"Null object used in set operation") (8) + Handles null at 18 +10: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (10) + Handles null at 18 +11: Throw() (13) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (14) + Handles null at 18 +13: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (14) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 18 +15: Constant(I,0) (14) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 18 +17: Return(V) (14) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +19: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting compute_closure ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(L;,null) (1) +2: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (2) +3: New(Ljava_cup/lalr_item_set;,0) (5) +4: Dup(1,0) (8) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,(Ljava_cup/lalr_item_set;)V) (10) +7: LocalStore(Ljava/lang/Object;,1) (13) +8: LocalLoad(Ljava/lang/Object;,1) (14) +9: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,size,()I) (15) +10: Constant(I,0) (18) +11: ConditionalBranch(I,le,67) (18) +12: LocalLoad(Ljava/lang/Object;,1) (21) +13: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,get_one,()Ljava_cup/lalr_item;) (22) +14: LocalStore(Ljava/lang/Object;,2) (25) +15: LocalLoad(Ljava/lang/Object;,2) (26) +16: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_before_nt,()Ljava_cup/non_terminal;) (27) +17: LocalStore(Ljava/lang/Object;,5) (30) +18: LocalLoad(Ljava/lang/Object;,5) (32) +19: Constant(L;,null) (34) +20: ConditionalBranch(Ljava/lang/Object;,eq,8) (34) +21: LocalLoad(Ljava/lang/Object;,2) (37) +22: LocalLoad(Ljava/lang/Object;,2) (38) +23: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (39) +24: Invoke(VIRTUAL,Ljava_cup/lalr_item;,calc_lookahead,(Ljava_cup/terminal_set;)Ljava_cup/terminal_set;) (42) +25: LocalStore(Ljava/lang/Object;,6) (45) +26: LocalLoad(Ljava/lang/Object;,2) (47) +27: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead_visible,()Z) (48) +28: LocalStore(I,9) (51) +29: LocalLoad(Ljava/lang/Object;,5) (53) +30: Invoke(VIRTUAL,Ljava_cup/non_terminal;,productions,()Ljava/util/Enumeration;) (55) +31: LocalStore(Ljava/lang/Object;,7) (58) +32: LocalLoad(Ljava/lang/Object;,7) (60) +33: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (62) +34: Constant(I,0) (67) +35: ConditionalBranch(I,eq,8) (67) +36: LocalLoad(Ljava/lang/Object;,7) (70) +37: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (72) +38: CheckCast(Ljava_cup/production;) (77) +39: LocalStore(Ljava/lang/Object;,8) (80) +40: New(Ljava_cup/lalr_item;,0) (82) +41: Dup(1,0) (85) +42: LocalLoad(Ljava/lang/Object;,8) (86) +43: New(Ljava_cup/terminal_set;,0) (88) +44: Dup(1,0) (91) +45: LocalLoad(Ljava/lang/Object;,6) (92) +46: Invoke(SPECIAL,Ljava_cup/terminal_set;,,(Ljava_cup/terminal_set;)V) (94) +47: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;Ljava_cup/terminal_set;)V) (97) +48: LocalStore(Ljava/lang/Object;,3) (100) +49: LocalLoad(Ljava/lang/Object;,0) (101) +50: LocalLoad(Ljava/lang/Object;,3) (102) +51: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (103) +52: LocalStore(Ljava/lang/Object;,4) (106) +53: LocalLoad(I,9) (108) +54: Constant(I,0) (110) +55: ConditionalBranch(I,eq,59) (110) +56: LocalLoad(Ljava/lang/Object;,2) (113) +57: LocalLoad(Ljava/lang/Object;,4) (114) +58: Invoke(VIRTUAL,Ljava_cup/lalr_item;,add_propagate,(Ljava_cup/lalr_item;)V) (116) +59: LocalLoad(Ljava/lang/Object;,4) (119) +60: LocalLoad(Ljava/lang/Object;,3) (121) +61: ConditionalBranch(Ljava/lang/Object;,ne,32) (122) +62: LocalLoad(Ljava/lang/Object;,1) (125) +63: LocalLoad(Ljava/lang/Object;,3) (126) +64: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (127) +65: Pop(1) (130) +66: Goto(32) (131) +67: Return(V) (134) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"compute_closure()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 77 +5: Constant(L;,null) (1) + Handles null at 77 +6: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (2) + Handles null at 77 +7: New(Ljava_cup/lalr_item_set;,0) (5) + Handles null at 77 +8: Dup(1,0) (8) + Handles null at 77 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 77 +10: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,(Ljava_cup/lalr_item_set;)V) (10) + Handles null at 77 +11: LocalStore(Ljava/lang/Object;,1) (13) + Handles null at 77 +12: LocalLoad(Ljava/lang/Object;,1) (14) + Handles null at 77 +13: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,size,()I) (15) + Handles null at 77 +14: Constant(I,0) (18) + Handles null at 77 +15: ConditionalBranch(I,le,71) (18) + Handles null at 77 +16: LocalLoad(Ljava/lang/Object;,1) (21) + Handles null at 77 +17: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,get_one,()Ljava_cup/lalr_item;) (22) + Handles null at 77 +18: LocalStore(Ljava/lang/Object;,2) (25) + Handles null at 77 +19: LocalLoad(Ljava/lang/Object;,2) (26) + Handles null at 77 +20: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_before_nt,()Ljava_cup/non_terminal;) (27) + Handles null at 77 +21: LocalStore(Ljava/lang/Object;,5) (30) + Handles null at 77 +22: LocalLoad(Ljava/lang/Object;,5) (32) + Handles null at 77 +23: Constant(L;,null) (34) + Handles null at 77 +24: ConditionalBranch(Ljava/lang/Object;,eq,12) (34) + Handles null at 77 +25: LocalLoad(Ljava/lang/Object;,2) (37) + Handles null at 77 +26: LocalLoad(Ljava/lang/Object;,2) (38) + Handles null at 77 +27: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (39) + Handles null at 77 +28: Invoke(VIRTUAL,Ljava_cup/lalr_item;,calc_lookahead,(Ljava_cup/terminal_set;)Ljava_cup/terminal_set;) (42) + Handles null at 77 +29: LocalStore(Ljava/lang/Object;,6) (45) + Handles null at 77 +30: LocalLoad(Ljava/lang/Object;,2) (47) + Handles null at 77 +31: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead_visible,()Z) (48) + Handles null at 77 +32: LocalStore(I,9) (51) + Handles null at 77 +33: LocalLoad(Ljava/lang/Object;,5) (53) + Handles null at 77 +34: Invoke(VIRTUAL,Ljava_cup/non_terminal;,productions,()Ljava/util/Enumeration;) (55) + Handles null at 77 +35: LocalStore(Ljava/lang/Object;,7) (58) + Handles null at 77 +36: LocalLoad(Ljava/lang/Object;,7) (60) + Handles null at 77 +37: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (62) + Handles null at 77 +38: Constant(I,0) (67) + Handles null at 77 +39: ConditionalBranch(I,eq,12) (67) + Handles null at 77 +40: LocalLoad(Ljava/lang/Object;,7) (70) + Handles null at 77 +41: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (72) + Handles null at 77 +42: CheckCast(Ljava_cup/production;) (77) + Handles null at 77 +43: LocalStore(Ljava/lang/Object;,8) (80) + Handles null at 77 +44: New(Ljava_cup/lalr_item;,0) (82) + Handles null at 77 +45: Dup(1,0) (85) + Handles null at 77 +46: LocalLoad(Ljava/lang/Object;,8) (86) + Handles null at 77 +47: New(Ljava_cup/terminal_set;,0) (88) + Handles null at 77 +48: Dup(1,0) (91) + Handles null at 77 +49: LocalLoad(Ljava/lang/Object;,6) (92) + Handles null at 77 +50: Invoke(SPECIAL,Ljava_cup/terminal_set;,,(Ljava_cup/terminal_set;)V) (94) + Handles null at 77 +51: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;Ljava_cup/terminal_set;)V) (97) + Handles null at 77 +52: LocalStore(Ljava/lang/Object;,3) (100) + Handles null at 77 +53: LocalLoad(Ljava/lang/Object;,0) (101) + Handles null at 77 +54: LocalLoad(Ljava/lang/Object;,3) (102) + Handles null at 77 +55: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (103) + Handles null at 77 +56: LocalStore(Ljava/lang/Object;,4) (106) + Handles null at 77 +57: LocalLoad(I,9) (108) + Handles null at 77 +58: Constant(I,0) (110) + Handles null at 77 +59: ConditionalBranch(I,eq,63) (110) + Handles null at 77 +60: LocalLoad(Ljava/lang/Object;,2) (113) + Handles null at 77 +61: LocalLoad(Ljava/lang/Object;,4) (114) + Handles null at 77 +62: Invoke(VIRTUAL,Ljava_cup/lalr_item;,add_propagate,(Ljava_cup/lalr_item;)V) (116) + Handles null at 77 +63: LocalLoad(Ljava/lang/Object;,4) (119) + Handles null at 77 +64: LocalLoad(Ljava/lang/Object;,3) (121) + Handles null at 77 +65: ConditionalBranch(Ljava/lang/Object;,ne,36) (122) + Handles null at 77 +66: LocalLoad(Ljava/lang/Object;,1) (125) + Handles null at 77 +67: LocalLoad(Ljava/lang/Object;,3) (126) + Handles null at 77 +68: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (127) + Handles null at 77 +69: Pop(1) (130) + Handles null at 77 +70: Goto(36) (131) + Handles null at 77 +71: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (134) + Handles null at 77 +72: Constant(Ljava/lang/String;,"compute_closure()V") (134) + Handles null at 77 +73: LocalLoad(Ljava/lang/Object;,0) (134) + Handles null at 77 +74: Constant(I,0) (134) + Handles null at 77 +75: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (134) + Handles null at 77 +76: Return(V) (134) + Handles null at 77 +77: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +78: Constant(Ljava/lang/String;,"compute_closure()V") (0) +79: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +80: Constant(I,1) (0) +81: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +82: Throw() (0) +Instrumenting equals (Ljava_cup/lalr_item_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,8) (1) +3: LocalLoad(Ljava/lang/Object;,1) (4) +4: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,size,()I) (5) +5: LocalLoad(Ljava/lang/Object;,0) (8) +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,size,()I) (9) +7: ConditionalBranch(I,eq,10) (12) +8: Constant(I,0) (15) +9: Return(I) (16) +10: LocalLoad(Ljava/lang/Object;,0) (17) + Handles Ljava_cup/internal_error; at 14 +11: LocalLoad(Ljava/lang/Object;,1) (18) + Handles Ljava_cup/internal_error; at 14 +12: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,is_subset_of,(Ljava_cup/lalr_item_set;)Z) (19) + Handles Ljava_cup/internal_error; at 14 +13: Return(I) (22) +14: LocalStore(Ljava/lang/Object;,2) (23) +15: LocalLoad(Ljava/lang/Object;,2) (24) +16: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (25) +17: Constant(I,0) (28) +18: Return(I) (29) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 38 +5: Constant(L;,null) (1) + Handles null at 38 +6: ConditionalBranch(Ljava/lang/Object;,eq,12) (1) + Handles null at 38 +7: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 38 +8: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,size,()I) (5) + Handles null at 38 +9: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 38 +10: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,size,()I) (9) + Handles null at 38 +11: ConditionalBranch(I,eq,19) (12) + Handles null at 38 +12: Constant(I,0) (15) + Handles null at 38 +13: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (16) + Handles null at 38 +14: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item_set;)Z") (16) + Handles null at 38 +15: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 38 +16: Constant(I,0) (16) + Handles null at 38 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 38 +18: Return(I) (16) + Handles null at 38 +19: LocalLoad(Ljava/lang/Object;,0) (17) + Handles Ljava_cup/internal_error; at 28 + Handles null at 38 +20: LocalLoad(Ljava/lang/Object;,1) (18) + Handles Ljava_cup/internal_error; at 28 + Handles null at 38 +21: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,is_subset_of,(Ljava_cup/lalr_item_set;)Z) (19) + Handles Ljava_cup/internal_error; at 28 + Handles null at 38 +22: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (22) + Handles null at 38 +23: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item_set;)Z") (22) + Handles null at 38 +24: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 38 +25: Constant(I,0) (22) + Handles null at 38 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (22) + Handles null at 38 +27: Return(I) (22) + Handles null at 38 +28: LocalStore(Ljava/lang/Object;,2) (23) + Handles null at 38 +29: LocalLoad(Ljava/lang/Object;,2) (24) + Handles null at 38 +30: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (25) + Handles null at 38 +31: Constant(I,0) (28) + Handles null at 38 +32: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (29) + Handles null at 38 +33: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item_set;)Z") (29) + Handles null at 38 +34: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 38 +35: Constant(I,0) (29) + Handles null at 38 +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (29) + Handles null at 38 +37: Return(I) (29) + Handles null at 38 +38: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +39: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_item_set;)Z") (0) +40: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +41: Constant(I,1) (0) +42: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +43: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/lalr_item_set;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/lalr_item_set;) (11) +9: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,equals,(Ljava_cup/lalr_item_set;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/lalr_item_set;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/lalr_item_set;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,equals,(Ljava_cup/lalr_item_set;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,1) (1) +2: LocalLoad(Ljava/lang/Object;,0) (2) +3: Get(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (3) +4: Constant(L;,null) (6) +5: ConditionalBranch(Ljava/lang/Object;,ne,33) (6) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (10) +8: LocalStore(Ljava/lang/Object;,2) (13) +9: Constant(I,0) (14) +10: LocalStore(I,3) (15) +11: LocalLoad(Ljava/lang/Object;,2) (16) +12: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (17) +13: Constant(I,0) (22) +14: ConditionalBranch(I,eq,27) (22) +15: LocalLoad(I,1) (25) +16: LocalLoad(Ljava/lang/Object;,2) (26) +17: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (27) +18: CheckCast(Ljava_cup/lalr_item;) (32) +19: Invoke(VIRTUAL,Ljava_cup/lalr_item;,hashCode,()I) (35) +20: BinaryOp(I,xor) (38) +21: LocalStore(I,1) (39) +22: LocalLoad(I,3) (40) +23: Constant(I,1) (40) +24: BinaryOp(I,add) (40) +25: LocalStore(I,3) (40) +26: Goto(11) (43) +27: LocalLoad(Ljava/lang/Object;,0) (46) +28: New(Ljava/lang/Integer;,0) (47) +29: Dup(1,0) (50) +30: LocalLoad(I,1) (51) +31: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (52) +32: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (55) +33: LocalLoad(Ljava/lang/Object;,0) (58) +34: Get(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (59) +35: Invoke(VIRTUAL,Ljava/lang/Integer;,intValue,()I) (62) +36: Return(I) (65) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 46 +5: LocalStore(I,1) (1) + Handles null at 46 +6: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 46 +7: Get(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (3) + Handles null at 46 +8: Constant(L;,null) (6) + Handles null at 46 +9: ConditionalBranch(Ljava/lang/Object;,ne,37) (6) + Handles null at 46 +10: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 46 +11: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (10) + Handles null at 46 +12: LocalStore(Ljava/lang/Object;,2) (13) + Handles null at 46 +13: Constant(I,0) (14) + Handles null at 46 +14: LocalStore(I,3) (15) + Handles null at 46 +15: LocalLoad(Ljava/lang/Object;,2) (16) + Handles null at 46 +16: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (17) + Handles null at 46 +17: Constant(I,0) (22) + Handles null at 46 +18: ConditionalBranch(I,eq,31) (22) + Handles null at 46 +19: LocalLoad(I,1) (25) + Handles null at 46 +20: LocalLoad(Ljava/lang/Object;,2) (26) + Handles null at 46 +21: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (27) + Handles null at 46 +22: CheckCast(Ljava_cup/lalr_item;) (32) + Handles null at 46 +23: Invoke(VIRTUAL,Ljava_cup/lalr_item;,hashCode,()I) (35) + Handles null at 46 +24: BinaryOp(I,xor) (38) + Handles null at 46 +25: LocalStore(I,1) (39) + Handles null at 46 +26: LocalLoad(I,3) (40) + Handles null at 46 +27: Constant(I,1) (40) + Handles null at 46 +28: BinaryOp(I,add) (40) + Handles null at 46 +29: LocalStore(I,3) (40) + Handles null at 46 +30: Goto(15) (43) + Handles null at 46 +31: LocalLoad(Ljava/lang/Object;,0) (46) + Handles null at 46 +32: New(Ljava/lang/Integer;,0) (47) + Handles null at 46 +33: Dup(1,0) (50) + Handles null at 46 +34: LocalLoad(I,1) (51) + Handles null at 46 +35: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (52) + Handles null at 46 +36: Put(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (55) + Handles null at 46 +37: LocalLoad(Ljava/lang/Object;,0) (58) + Handles null at 46 +38: Get(Ljava/lang/Integer;,NONSTATIC,Ljava_cup/lalr_item_set;,hashcode_cache) (59) + Handles null at 46 +39: Invoke(VIRTUAL,Ljava/lang/Integer;,intValue,()I) (62) + Handles null at 46 +40: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (65) + Handles null at 46 +41: Constant(Ljava/lang/String;,"hashCode()I") (65) + Handles null at 46 +42: LocalLoad(Ljava/lang/Object;,0) (65) + Handles null at 46 +43: Constant(I,0) (65) + Handles null at 46 +44: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (65) + Handles null at 46 +45: Return(I) (65) + Handles null at 46 +46: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +47: Constant(Ljava/lang/String;,"hashCode()I") (0) +48: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +49: Constant(I,1) (0) +50: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +51: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuffer;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,1) (7) +4: LocalLoad(Ljava/lang/Object;,1) (8) +5: Constant(Ljava/lang/String;,"{\ +") (9) +6: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (11) +7: Pop(1) (14) +8: LocalLoad(Ljava/lang/Object;,0) (15) +9: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (16) +10: LocalStore(Ljava/lang/Object;,2) (19) +11: LocalLoad(Ljava/lang/Object;,2) (20) +12: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (21) +13: Constant(I,0) (26) +14: ConditionalBranch(I,eq,31) (26) +15: LocalLoad(Ljava/lang/Object;,1) (29) +16: New(Ljava/lang/StringBuilder;,0) (30) +17: Dup(1,0) (33) +18: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (34) +19: Constant(Ljava/lang/String;," ") (37) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (39) +21: LocalLoad(Ljava/lang/Object;,2) (42) +22: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (43) +23: CheckCast(Ljava_cup/lalr_item;) (48) +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (51) +25: Constant(Ljava/lang/String;,"\ +") (54) +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (56) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (59) +28: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (62) +29: Pop(1) (65) +30: Goto(11) (66) +31: LocalLoad(Ljava/lang/Object;,1) (69) +32: Constant(Ljava/lang/String;,"}") (70) +33: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (72) +34: Pop(1) (75) +35: LocalLoad(Ljava/lang/Object;,1) (76) +36: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,toString,()Ljava/lang/String;) (77) +37: Return(Ljava/lang/Object;) (80) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuffer;,0) (0) + Handles null at 47 +5: Dup(1,0) (3) + Handles null at 47 +6: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,()V) (4) + Handles null at 47 +7: LocalStore(Ljava/lang/Object;,1) (7) + Handles null at 47 +8: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 47 +9: Constant(Ljava/lang/String;,"{\ +") (9) + Handles null at 47 +10: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (11) + Handles null at 47 +11: Pop(1) (14) + Handles null at 47 +12: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 47 +13: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (16) + Handles null at 47 +14: LocalStore(Ljava/lang/Object;,2) (19) + Handles null at 47 +15: LocalLoad(Ljava/lang/Object;,2) (20) + Handles null at 47 +16: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (21) + Handles null at 47 +17: Constant(I,0) (26) + Handles null at 47 +18: ConditionalBranch(I,eq,35) (26) + Handles null at 47 +19: LocalLoad(Ljava/lang/Object;,1) (29) + Handles null at 47 +20: New(Ljava/lang/StringBuilder;,0) (30) + Handles null at 47 +21: Dup(1,0) (33) + Handles null at 47 +22: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (34) + Handles null at 47 +23: Constant(Ljava/lang/String;," ") (37) + Handles null at 47 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (39) + Handles null at 47 +25: LocalLoad(Ljava/lang/Object;,2) (42) + Handles null at 47 +26: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (43) + Handles null at 47 +27: CheckCast(Ljava_cup/lalr_item;) (48) + Handles null at 47 +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (51) + Handles null at 47 +29: Constant(Ljava/lang/String;,"\ +") (54) + Handles null at 47 +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (56) + Handles null at 47 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (59) + Handles null at 47 +32: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (62) + Handles null at 47 +33: Pop(1) (65) + Handles null at 47 +34: Goto(15) (66) + Handles null at 47 +35: LocalLoad(Ljava/lang/Object;,1) (69) + Handles null at 47 +36: Constant(Ljava/lang/String;,"}") (70) + Handles null at 47 +37: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (72) + Handles null at 47 +38: Pop(1) (75) + Handles null at 47 +39: LocalLoad(Ljava/lang/Object;,1) (76) + Handles null at 47 +40: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,toString,()Ljava/lang/String;) (77) + Handles null at 47 +41: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (80) + Handles null at 47 +42: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (80) + Handles null at 47 +43: LocalLoad(Ljava/lang/Object;,0) (80) + Handles null at 47 +44: Constant(I,0) (80) + Handles null at 47 +45: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (80) + Handles null at 47 +46: Return(Ljava/lang/Object;) (80) + Handles null at 47 +47: Constant(Ljava/lang/String;,"java_cup/lalr_item_set") (0) +48: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +49: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +50: Constant(I,1) (0) +51: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +52: Throw() (0) +Class: java_cup/lalr_state +Instrumenting (Ljava_cup/lalr_item_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(L;,null) (5) +4: Put(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_state;,_transitions) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Constant(L;,null) (10) +7: ConditionalBranch(Ljava/lang/Object;,ne,13) (10) +8: New(Ljava_cup/internal_error;,0) (13) +9: Dup(1,0) (16) +10: Constant(Ljava/lang/String;,"Attempt to construct an LALR state from a null item set") (17) +11: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (19) +12: Throw() (22) +13: LocalLoad(Ljava/lang/Object;,1) (23) +14: Invoke(STATIC,Ljava_cup/lalr_state;,find_state,(Ljava_cup/lalr_item_set;)Ljava_cup/lalr_state;) (24) +15: Constant(L;,null) (27) +16: ConditionalBranch(Ljava/lang/Object;,eq,22) (27) +17: New(Ljava_cup/internal_error;,0) (30) +18: Dup(1,0) (33) +19: Constant(Ljava/lang/String;,"Attempt to construct a duplicate LALR state") (34) +20: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (36) +21: Throw() (39) +22: LocalLoad(Ljava/lang/Object;,0) (40) +23: Get(I,STATIC,Ljava_cup/lalr_state;,next_index) (41) +24: Dup(1,0) (44) +25: Constant(I,1) (45) +26: BinaryOp(I,add) (46) +27: Put(I,STATIC,Ljava_cup/lalr_state;,next_index) (47) +28: Put(I,NONSTATIC,Ljava_cup/lalr_state;,_index) (50) +29: LocalLoad(Ljava/lang/Object;,0) (53) +30: LocalLoad(Ljava/lang/Object;,1) (54) +31: Put(Ljava_cup/lalr_item_set;,NONSTATIC,Ljava_cup/lalr_state;,_items) (55) +32: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (58) +33: LocalLoad(Ljava/lang/Object;,0) (61) +34: Get(Ljava_cup/lalr_item_set;,NONSTATIC,Ljava_cup/lalr_state;,_items) (62) +35: LocalLoad(Ljava/lang/Object;,0) (65) +36: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (66) +37: Pop(1) (69) +38: Return(V) (70) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_item_set;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 48 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 48 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 48 +7: Constant(L;,null) (5) + Handles null at 48 +8: Put(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_state;,_transitions) (6) + Handles null at 48 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 48 +10: Constant(L;,null) (10) + Handles null at 48 +11: ConditionalBranch(Ljava/lang/Object;,ne,17) (10) + Handles null at 48 +12: New(Ljava_cup/internal_error;,0) (13) + Handles null at 48 +13: Dup(1,0) (16) + Handles null at 48 +14: Constant(Ljava/lang/String;,"Attempt to construct an LALR state from a null item set") (17) + Handles null at 48 +15: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (19) + Handles null at 48 +16: Throw() (22) + Handles null at 48 +17: LocalLoad(Ljava/lang/Object;,1) (23) + Handles null at 48 +18: Invoke(STATIC,Ljava_cup/lalr_state;,find_state,(Ljava_cup/lalr_item_set;)Ljava_cup/lalr_state;) (24) + Handles null at 48 +19: Constant(L;,null) (27) + Handles null at 48 +20: ConditionalBranch(Ljava/lang/Object;,eq,26) (27) + Handles null at 48 +21: New(Ljava_cup/internal_error;,0) (30) + Handles null at 48 +22: Dup(1,0) (33) + Handles null at 48 +23: Constant(Ljava/lang/String;,"Attempt to construct a duplicate LALR state") (34) + Handles null at 48 +24: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (36) + Handles null at 48 +25: Throw() (39) + Handles null at 48 +26: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 48 +27: Get(I,STATIC,Ljava_cup/lalr_state;,next_index) (41) + Handles null at 48 +28: Dup(1,0) (44) + Handles null at 48 +29: Constant(I,1) (45) + Handles null at 48 +30: BinaryOp(I,add) (46) + Handles null at 48 +31: Put(I,STATIC,Ljava_cup/lalr_state;,next_index) (47) + Handles null at 48 +32: Put(I,NONSTATIC,Ljava_cup/lalr_state;,_index) (50) + Handles null at 48 +33: LocalLoad(Ljava/lang/Object;,0) (53) + Handles null at 48 +34: LocalLoad(Ljava/lang/Object;,1) (54) + Handles null at 48 +35: Put(Ljava_cup/lalr_item_set;,NONSTATIC,Ljava_cup/lalr_state;,_items) (55) + Handles null at 48 +36: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (58) + Handles null at 48 +37: LocalLoad(Ljava/lang/Object;,0) (61) + Handles null at 48 +38: Get(Ljava_cup/lalr_item_set;,NONSTATIC,Ljava_cup/lalr_state;,_items) (62) + Handles null at 48 +39: LocalLoad(Ljava/lang/Object;,0) (65) + Handles null at 48 +40: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (66) + Handles null at 48 +41: Pop(1) (69) + Handles null at 48 +42: Constant(Ljava/lang/String;,"java_cup/lalr_state") (70) + Handles null at 48 +43: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_item_set;)V") (70) + Handles null at 48 +44: LocalLoad(Ljava/lang/Object;,0) (70) + Handles null at 48 +45: Constant(I,0) (70) + Handles null at 48 +46: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (70) + Handles null at 48 +47: Return(V) (70) + Handles null at 48 +48: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +49: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_item_set;)V") (0) +50: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +51: Constant(I,1) (0) +52: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +53: Throw() (0) +Instrumenting all ()Ljava/util/Enumeration;: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (3) +2: Return(Ljava/lang/Object;) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (3) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_state") (6) + Handles null at 12 +7: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (6) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (6) + Handles null at 12 +9: Constant(I,0) (6) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 12 +11: Return(Ljava/lang/Object;) (6) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +13: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting clear ()V: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (3) +2: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (6) +3: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (9) +4: Constant(I,0) (12) +5: Put(I,STATIC,Ljava_cup/lalr_state;,next_index) (13) +6: Return(V) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"clear()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (0) + Handles null at 16 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (3) + Handles null at 16 +6: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (6) + Handles null at 16 +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (9) + Handles null at 16 +8: Constant(I,0) (12) + Handles null at 16 +9: Put(I,STATIC,Ljava_cup/lalr_state;,next_index) (13) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/lalr_state") (16) + Handles null at 16 +11: Constant(Ljava/lang/String;,"clear()V") (16) + Handles null at 16 +12: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (16) + Handles null at 16 +13: Constant(I,0) (16) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 16 +15: Return(V) (16) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +17: Constant(Ljava/lang/String;,"clear()V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting number ()I: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (3) +2: Return(I) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"number()I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (3) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_state") (6) + Handles null at 12 +7: Constant(Ljava/lang/String;,"number()I") (6) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (6) + Handles null at 12 +9: Constant(I,0) (6) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 12 +11: Return(I) (6) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +13: Constant(Ljava/lang/String;,"number()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting find_state (Ljava_cup/lalr_item_set;)Ljava_cup/lalr_state;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (1) +3: Constant(L;,null) (4) +4: Return(Ljava/lang/Object;) (5) +5: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (6) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (10) +8: CheckCast(Ljava_cup/lalr_state;) (13) +9: Return(Ljava/lang/Object;) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"find_state(Ljava_cup/lalr_item_set;)Ljava_cup/lalr_state;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: Constant(L;,null) (1) + Handles null at 24 +6: ConditionalBranch(Ljava/lang/Object;,ne,14) (1) + Handles null at 24 +7: Constant(L;,null) (4) + Handles null at 24 +8: Constant(Ljava/lang/String;,"java_cup/lalr_state") (5) + Handles null at 24 +9: Constant(Ljava/lang/String;,"find_state(Ljava_cup/lalr_item_set;)Ljava_cup/lalr_state;") (5) + Handles null at 24 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (5) + Handles null at 24 +11: Constant(I,0) (5) + Handles null at 24 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 24 +13: Return(Ljava/lang/Object;) (5) + Handles null at 24 +14: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (6) + Handles null at 24 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 24 +16: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (10) + Handles null at 24 +17: CheckCast(Ljava_cup/lalr_state;) (13) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/lalr_state") (16) + Handles null at 24 +19: Constant(Ljava/lang/String;,"find_state(Ljava_cup/lalr_item_set;)Ljava_cup/lalr_state;") (16) + Handles null at 24 +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (16) + Handles null at 24 +21: Constant(I,0) (16) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 24 +23: Return(Ljava/lang/Object;) (16) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +25: Constant(Ljava/lang/String;,"find_state(Ljava_cup/lalr_item_set;)Ljava_cup/lalr_state;") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting items ()Ljava_cup/lalr_item_set;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/lalr_item_set;,NONSTATIC,Ljava_cup/lalr_state;,_items) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"items()Ljava_cup/lalr_item_set;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/lalr_item_set;,NONSTATIC,Ljava_cup/lalr_state;,_items) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_state") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"items()Ljava_cup/lalr_item_set;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +13: Constant(Ljava/lang/String;,"items()Ljava_cup/lalr_item_set;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting transitions ()Ljava_cup/lalr_transition;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_state;,_transitions) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"transitions()Ljava_cup/lalr_transition;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_state;,_transitions) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_state") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"transitions()Ljava_cup/lalr_transition;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +13: Constant(Ljava/lang/String;,"transitions()Ljava_cup/lalr_transition;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting index ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/lalr_state;,_index) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"index()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/lalr_state;,_index) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_state") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"index()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +13: Constant(Ljava/lang/String;,"index()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting dump_state (Ljava_cup/lalr_state;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,7) (1) +3: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (4) +4: Constant(Ljava/lang/String;,"NULL lalr_state") (7) +5: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (9) +6: Return(V) (12) +7: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (13) +8: New(Ljava/lang/StringBuilder;,0) (16) +9: Dup(1,0) (19) +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (20) +11: Constant(Ljava/lang/String;,"lalr_state [") (23) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (25) +13: LocalLoad(Ljava/lang/Object;,0) (28) +14: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (29) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (32) +16: Constant(Ljava/lang/String;,"] {") (35) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (37) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (40) +19: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (43) +20: LocalLoad(Ljava/lang/Object;,0) (46) +21: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (47) +22: LocalStore(Ljava/lang/Object;,1) (50) +23: LocalLoad(Ljava/lang/Object;,1) (51) +24: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (52) +25: LocalStore(Ljava/lang/Object;,4) (55) +26: LocalLoad(Ljava/lang/Object;,4) (57) +27: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (59) +28: Constant(I,0) (64) +29: ConditionalBranch(I,eq,103) (64) +30: LocalLoad(Ljava/lang/Object;,4) (67) +31: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (69) +32: CheckCast(Ljava_cup/lalr_item;) (74) +33: LocalStore(Ljava/lang/Object;,2) (77) +34: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (78) +35: Constant(Ljava/lang/String;," [") (81) +36: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (83) +37: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (86) +38: LocalLoad(Ljava/lang/Object;,2) (89) +39: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (90) +40: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (93) +41: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (96) +42: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (99) +43: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (102) +44: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (105) +45: Constant(Ljava/lang/String;," ::= ") (108) +46: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (110) +47: Constant(I,0) (113) +48: LocalStore(I,5) (114) +49: LocalLoad(I,5) (116) +50: LocalLoad(Ljava/lang/Object;,2) (118) +51: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (119) +52: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (122) +53: ConditionalBranch(I,ge,92) (125) +54: LocalLoad(I,5) (128) +55: LocalLoad(Ljava/lang/Object;,2) (130) +56: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_pos,()I) (131) +57: ConditionalBranch(I,ne,61) (134) +58: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (137) +59: Constant(Ljava/lang/String;,"(*) ") (140) +60: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (142) +61: LocalLoad(Ljava/lang/Object;,2) (145) +62: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (146) +63: LocalLoad(I,5) (149) +64: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (151) +65: LocalStore(Ljava/lang/Object;,3) (154) +66: LocalLoad(Ljava/lang/Object;,3) (155) +67: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (156) +68: Constant(I,0) (159) +69: ConditionalBranch(I,eq,74) (159) +70: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (162) +71: Constant(Ljava/lang/String;,"{action} ") (165) +72: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (167) +73: Goto(87) (170) +74: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (173) +75: New(Ljava/lang/StringBuilder;,0) (176) +76: Dup(1,0) (179) +77: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (180) +78: LocalLoad(Ljava/lang/Object;,3) (183) +79: CheckCast(Ljava_cup/symbol_part;) (184) +80: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (187) +81: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (190) +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (193) +83: Constant(Ljava/lang/String;," ") (196) +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (198) +85: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (201) +86: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (204) +87: LocalLoad(I,5) (207) +88: Constant(I,1) (207) +89: BinaryOp(I,add) (207) +90: LocalStore(I,5) (207) +91: Goto(49) (210) +92: LocalLoad(Ljava/lang/Object;,2) (213) +93: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (214) +94: Constant(I,0) (217) +95: ConditionalBranch(I,eq,99) (217) +96: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (220) +97: Constant(Ljava/lang/String;,"(*) ") (223) +98: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (225) +99: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (228) +100: Constant(Ljava/lang/String;,"]") (231) +101: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (233) +102: Goto(26) (236) +103: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (239) +104: Constant(Ljava/lang/String;,"}") (242) +105: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (244) +106: Return(V) (247) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"dump_state(Ljava_cup/lalr_state;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 121 +5: Constant(L;,null) (1) + Handles null at 121 +6: ConditionalBranch(Ljava/lang/Object;,ne,16) (1) + Handles null at 121 +7: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (4) + Handles null at 121 +8: Constant(Ljava/lang/String;,"NULL lalr_state") (7) + Handles null at 121 +9: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (9) + Handles null at 121 +10: Constant(Ljava/lang/String;,"java_cup/lalr_state") (12) + Handles null at 121 +11: Constant(Ljava/lang/String;,"dump_state(Ljava_cup/lalr_state;)V") (12) + Handles null at 121 +12: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (12) + Handles null at 121 +13: Constant(I,0) (12) + Handles null at 121 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 121 +15: Return(V) (12) + Handles null at 121 +16: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (13) + Handles null at 121 +17: New(Ljava/lang/StringBuilder;,0) (16) + Handles null at 121 +18: Dup(1,0) (19) + Handles null at 121 +19: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (20) + Handles null at 121 +20: Constant(Ljava/lang/String;,"lalr_state [") (23) + Handles null at 121 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (25) + Handles null at 121 +22: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 121 +23: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (29) + Handles null at 121 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (32) + Handles null at 121 +25: Constant(Ljava/lang/String;,"] {") (35) + Handles null at 121 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (37) + Handles null at 121 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (40) + Handles null at 121 +28: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (43) + Handles null at 121 +29: LocalLoad(Ljava/lang/Object;,0) (46) + Handles null at 121 +30: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (47) + Handles null at 121 +31: LocalStore(Ljava/lang/Object;,1) (50) + Handles null at 121 +32: LocalLoad(Ljava/lang/Object;,1) (51) + Handles null at 121 +33: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (52) + Handles null at 121 +34: LocalStore(Ljava/lang/Object;,4) (55) + Handles null at 121 +35: LocalLoad(Ljava/lang/Object;,4) (57) + Handles null at 121 +36: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (59) + Handles null at 121 +37: Constant(I,0) (64) + Handles null at 121 +38: ConditionalBranch(I,eq,112) (64) + Handles null at 121 +39: LocalLoad(Ljava/lang/Object;,4) (67) + Handles null at 121 +40: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (69) + Handles null at 121 +41: CheckCast(Ljava_cup/lalr_item;) (74) + Handles null at 121 +42: LocalStore(Ljava/lang/Object;,2) (77) + Handles null at 121 +43: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (78) + Handles null at 121 +44: Constant(Ljava/lang/String;," [") (81) + Handles null at 121 +45: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (83) + Handles null at 121 +46: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (86) + Handles null at 121 +47: LocalLoad(Ljava/lang/Object;,2) (89) + Handles null at 121 +48: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (90) + Handles null at 121 +49: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (93) + Handles null at 121 +50: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (96) + Handles null at 121 +51: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (99) + Handles null at 121 +52: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (102) + Handles null at 121 +53: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (105) + Handles null at 121 +54: Constant(Ljava/lang/String;," ::= ") (108) + Handles null at 121 +55: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (110) + Handles null at 121 +56: Constant(I,0) (113) + Handles null at 121 +57: LocalStore(I,5) (114) + Handles null at 121 +58: LocalLoad(I,5) (116) + Handles null at 121 +59: LocalLoad(Ljava/lang/Object;,2) (118) + Handles null at 121 +60: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (119) + Handles null at 121 +61: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (122) + Handles null at 121 +62: ConditionalBranch(I,ge,101) (125) + Handles null at 121 +63: LocalLoad(I,5) (128) + Handles null at 121 +64: LocalLoad(Ljava/lang/Object;,2) (130) + Handles null at 121 +65: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_pos,()I) (131) + Handles null at 121 +66: ConditionalBranch(I,ne,70) (134) + Handles null at 121 +67: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (137) + Handles null at 121 +68: Constant(Ljava/lang/String;,"(*) ") (140) + Handles null at 121 +69: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (142) + Handles null at 121 +70: LocalLoad(Ljava/lang/Object;,2) (145) + Handles null at 121 +71: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (146) + Handles null at 121 +72: LocalLoad(I,5) (149) + Handles null at 121 +73: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (151) + Handles null at 121 +74: LocalStore(Ljava/lang/Object;,3) (154) + Handles null at 121 +75: LocalLoad(Ljava/lang/Object;,3) (155) + Handles null at 121 +76: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (156) + Handles null at 121 +77: Constant(I,0) (159) + Handles null at 121 +78: ConditionalBranch(I,eq,83) (159) + Handles null at 121 +79: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (162) + Handles null at 121 +80: Constant(Ljava/lang/String;,"{action} ") (165) + Handles null at 121 +81: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (167) + Handles null at 121 +82: Goto(96) (170) + Handles null at 121 +83: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (173) + Handles null at 121 +84: New(Ljava/lang/StringBuilder;,0) (176) + Handles null at 121 +85: Dup(1,0) (179) + Handles null at 121 +86: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (180) + Handles null at 121 +87: LocalLoad(Ljava/lang/Object;,3) (183) + Handles null at 121 +88: CheckCast(Ljava_cup/symbol_part;) (184) + Handles null at 121 +89: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (187) + Handles null at 121 +90: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (190) + Handles null at 121 +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (193) + Handles null at 121 +92: Constant(Ljava/lang/String;," ") (196) + Handles null at 121 +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (198) + Handles null at 121 +94: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (201) + Handles null at 121 +95: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (204) + Handles null at 121 +96: LocalLoad(I,5) (207) + Handles null at 121 +97: Constant(I,1) (207) + Handles null at 121 +98: BinaryOp(I,add) (207) + Handles null at 121 +99: LocalStore(I,5) (207) + Handles null at 121 +100: Goto(58) (210) + Handles null at 121 +101: LocalLoad(Ljava/lang/Object;,2) (213) + Handles null at 121 +102: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (214) + Handles null at 121 +103: Constant(I,0) (217) + Handles null at 121 +104: ConditionalBranch(I,eq,108) (217) + Handles null at 121 +105: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (220) + Handles null at 121 +106: Constant(Ljava/lang/String;,"(*) ") (223) + Handles null at 121 +107: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (225) + Handles null at 121 +108: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (228) + Handles null at 121 +109: Constant(Ljava/lang/String;,"]") (231) + Handles null at 121 +110: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (233) + Handles null at 121 +111: Goto(35) (236) + Handles null at 121 +112: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (239) + Handles null at 121 +113: Constant(Ljava/lang/String;,"}") (242) + Handles null at 121 +114: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (244) + Handles null at 121 +115: Constant(Ljava/lang/String;,"java_cup/lalr_state") (247) + Handles null at 121 +116: Constant(Ljava/lang/String;,"dump_state(Ljava_cup/lalr_state;)V") (247) + Handles null at 121 +117: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (247) + Handles null at 121 +118: Constant(I,0) (247) + Handles null at 121 +119: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (247) + Handles null at 121 +120: Return(V) (247) + Handles null at 121 +121: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +122: Constant(Ljava/lang/String;,"dump_state(Ljava_cup/lalr_state;)V") (0) +123: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +124: Constant(I,1) (0) +125: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +126: Throw() (0) +Instrumenting propagate_all_lookaheads ()V: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava_cup/lalr_state;,all,()Ljava/util/Enumeration;) (0) +1: LocalStore(Ljava/lang/Object;,0) (3) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (5) +4: Constant(I,0) (10) +5: ConditionalBranch(I,eq,11) (10) +6: LocalLoad(Ljava/lang/Object;,0) (13) +7: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (14) +8: CheckCast(Ljava_cup/lalr_state;) (19) +9: Invoke(VIRTUAL,Ljava_cup/lalr_state;,propagate_lookaheads,()V) (22) +10: Goto(2) (25) +11: Return(V) (28) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"propagate_all_lookaheads()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava_cup/lalr_state;,all,()Ljava/util/Enumeration;) (0) + Handles null at 21 +5: LocalStore(Ljava/lang/Object;,0) (3) + Handles null at 21 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 21 +7: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (5) + Handles null at 21 +8: Constant(I,0) (10) + Handles null at 21 +9: ConditionalBranch(I,eq,15) (10) + Handles null at 21 +10: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 21 +11: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (14) + Handles null at 21 +12: CheckCast(Ljava_cup/lalr_state;) (19) + Handles null at 21 +13: Invoke(VIRTUAL,Ljava_cup/lalr_state;,propagate_lookaheads,()V) (22) + Handles null at 21 +14: Goto(6) (25) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/lalr_state") (28) + Handles null at 21 +16: Constant(Ljava/lang/String;,"propagate_all_lookaheads()V") (28) + Handles null at 21 +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (28) + Handles null at 21 +18: Constant(I,0) (28) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (28) + Handles null at 21 +20: Return(V) (28) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +22: Constant(Ljava/lang/String;,"propagate_all_lookaheads()V") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting add_transition (Ljava_cup/symbol;Ljava_cup/lalr_state;)V: +Initial ShrikeBT code: +0: New(Ljava_cup/lalr_transition;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(Ljava/lang/Object;,2) (5) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: Get(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_state;,_transitions) (7) +6: Invoke(SPECIAL,Ljava_cup/lalr_transition;,,(Ljava_cup/symbol;Ljava_cup/lalr_state;Ljava_cup/lalr_transition;)V) (10) +7: LocalStore(Ljava/lang/Object;,3) (13) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: LocalLoad(Ljava/lang/Object;,3) (15) +10: Put(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_state;,_transitions) (16) +11: Return(V) (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"add_transition(Ljava_cup/symbol;Ljava_cup/lalr_state;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/lalr_transition;,0) (0) + Handles null at 21 +5: Dup(1,0) (3) + Handles null at 21 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 21 +7: LocalLoad(Ljava/lang/Object;,2) (5) + Handles null at 21 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 21 +9: Get(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_state;,_transitions) (7) + Handles null at 21 +10: Invoke(SPECIAL,Ljava_cup/lalr_transition;,,(Ljava_cup/symbol;Ljava_cup/lalr_state;Ljava_cup/lalr_transition;)V) (10) + Handles null at 21 +11: LocalStore(Ljava/lang/Object;,3) (13) + Handles null at 21 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 21 +13: LocalLoad(Ljava/lang/Object;,3) (15) + Handles null at 21 +14: Put(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_state;,_transitions) (16) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/lalr_state") (19) + Handles null at 21 +16: Constant(Ljava/lang/String;,"add_transition(Ljava_cup/symbol;Ljava_cup/lalr_state;)V") (19) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 21 +18: Constant(I,0) (19) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (19) + Handles null at 21 +20: Return(V) (19) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +22: Constant(Ljava/lang/String;,"add_transition(Ljava_cup/symbol;Ljava_cup/lalr_state;)V") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting build_machine (Ljava_cup/production;)Ljava_cup/lalr_state;: +Initial ShrikeBT code: +0: New(Ljava/util/Stack;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,6) (7) +4: LocalLoad(Ljava/lang/Object;,0) (9) +5: Constant(L;,null) (10) +6: ConditionalBranch(Ljava/lang/Object;,ne,12) (10) +7: New(Ljava_cup/internal_error;,0) (13) +8: Dup(1,0) (16) +9: Constant(Ljava/lang/String;,"Attempt to build viable prefix recognizer using a null production") (17) +10: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (19) +11: Throw() (22) +12: New(Ljava_cup/lalr_item_set;,0) (23) +13: Dup(1,0) (26) +14: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,()V) (27) +15: LocalStore(Ljava/lang/Object;,2) (30) +16: New(Ljava_cup/lalr_item;,0) (31) +17: Dup(1,0) (34) +18: LocalLoad(Ljava/lang/Object;,0) (35) +19: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;)V) (36) +20: LocalStore(Ljava/lang/Object;,10) (39) +21: LocalLoad(Ljava/lang/Object;,10) (41) +22: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (43) +23: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (46) +24: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (49) +25: Pop(1) (52) +26: LocalLoad(Ljava/lang/Object;,2) (53) +27: LocalLoad(Ljava/lang/Object;,10) (54) +28: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (56) +29: Pop(1) (59) +30: New(Ljava_cup/lalr_item_set;,0) (60) +31: Dup(1,0) (63) +32: LocalLoad(Ljava/lang/Object;,2) (64) +33: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,(Ljava_cup/lalr_item_set;)V) (65) +34: LocalStore(Ljava/lang/Object;,5) (68) +35: LocalLoad(Ljava/lang/Object;,2) (70) +36: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,compute_closure,()V) (71) +37: New(Ljava_cup/lalr_state;,0) (74) +38: Dup(1,0) (77) +39: LocalLoad(Ljava/lang/Object;,2) (78) +40: Invoke(SPECIAL,Ljava_cup/lalr_state;,,(Ljava_cup/lalr_item_set;)V) (79) +41: LocalStore(Ljava/lang/Object;,1) (82) +42: LocalLoad(Ljava/lang/Object;,6) (83) +43: LocalLoad(Ljava/lang/Object;,1) (85) +44: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (86) +45: Pop(1) (89) +46: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (90) +47: LocalLoad(Ljava/lang/Object;,5) (93) +48: LocalLoad(Ljava/lang/Object;,1) (95) +49: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (96) +50: Pop(1) (99) +51: LocalLoad(Ljava/lang/Object;,6) (100) +52: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (102) +53: Constant(I,0) (105) +54: ConditionalBranch(I,ne,213) (105) +55: LocalLoad(Ljava/lang/Object;,6) (108) +56: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (110) +57: CheckCast(Ljava_cup/lalr_state;) (113) +58: LocalStore(Ljava/lang/Object;,7) (116) +59: New(Ljava_cup/symbol_set;,0) (118) +60: Dup(1,0) (121) +61: Invoke(SPECIAL,Ljava_cup/symbol_set;,,()V) (122) +62: LocalStore(Ljava/lang/Object;,9) (125) +63: LocalLoad(Ljava/lang/Object;,7) (127) +64: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (129) +65: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (132) +66: LocalStore(Ljava/lang/Object;,16) (135) +67: LocalLoad(Ljava/lang/Object;,16) (137) +68: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (139) +69: Constant(I,0) (144) +70: ConditionalBranch(I,eq,86) (144) +71: LocalLoad(Ljava/lang/Object;,16) (147) +72: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (149) +73: CheckCast(Ljava_cup/lalr_item;) (154) +74: LocalStore(Ljava/lang/Object;,10) (157) +75: LocalLoad(Ljava/lang/Object;,10) (159) +76: Invoke(VIRTUAL,Ljava_cup/lalr_item;,symbol_after_dot,()Ljava_cup/symbol;) (161) +77: LocalStore(Ljava/lang/Object;,14) (164) +78: LocalLoad(Ljava/lang/Object;,14) (166) +79: Constant(L;,null) (168) +80: ConditionalBranch(Ljava/lang/Object;,eq,67) (168) +81: LocalLoad(Ljava/lang/Object;,9) (171) +82: LocalLoad(Ljava/lang/Object;,14) (173) +83: Invoke(VIRTUAL,Ljava_cup/symbol_set;,add,(Ljava_cup/symbol;)Z) (175) +84: Pop(1) (178) +85: Goto(67) (179) +86: LocalLoad(Ljava/lang/Object;,9) (182) +87: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (184) +88: LocalStore(Ljava/lang/Object;,17) (187) +89: LocalLoad(Ljava/lang/Object;,17) (189) +90: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (191) +91: Constant(I,0) (196) +92: ConditionalBranch(I,eq,51) (196) +93: LocalLoad(Ljava/lang/Object;,17) (199) +94: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (201) +95: CheckCast(Ljava_cup/symbol;) (206) +96: LocalStore(Ljava/lang/Object;,14) (209) +97: New(Ljava_cup/lalr_item_set;,0) (211) +98: Dup(1,0) (214) +99: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,()V) (215) +100: LocalStore(Ljava/lang/Object;,4) (218) +101: New(Ljava_cup/lalr_item_set;,0) (220) +102: Dup(1,0) (223) +103: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,()V) (224) +104: LocalStore(Ljava/lang/Object;,3) (227) +105: LocalLoad(Ljava/lang/Object;,7) (228) +106: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (230) +107: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (233) +108: LocalStore(Ljava/lang/Object;,16) (236) +109: LocalLoad(Ljava/lang/Object;,16) (238) +110: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (240) +111: Constant(I,0) (245) +112: ConditionalBranch(I,eq,135) (245) +113: LocalLoad(Ljava/lang/Object;,16) (248) +114: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (250) +115: CheckCast(Ljava_cup/lalr_item;) (255) +116: LocalStore(Ljava/lang/Object;,10) (258) +117: LocalLoad(Ljava/lang/Object;,10) (260) +118: Invoke(VIRTUAL,Ljava_cup/lalr_item;,symbol_after_dot,()Ljava_cup/symbol;) (262) +119: LocalStore(Ljava/lang/Object;,15) (265) +120: LocalLoad(Ljava/lang/Object;,14) (267) +121: LocalLoad(Ljava/lang/Object;,15) (269) +122: Invoke(VIRTUAL,Ljava/lang/Object;,equals,(Ljava/lang/Object;)Z) (271) +123: Constant(I,0) (274) +124: ConditionalBranch(I,eq,109) (274) +125: LocalLoad(Ljava/lang/Object;,3) (277) +126: LocalLoad(Ljava/lang/Object;,10) (278) +127: Invoke(VIRTUAL,Ljava_cup/lalr_item;,shift,()Ljava_cup/lalr_item;) (280) +128: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (283) +129: Pop(1) (286) +130: LocalLoad(Ljava/lang/Object;,4) (287) +131: LocalLoad(Ljava/lang/Object;,10) (289) +132: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (291) +133: Pop(1) (294) +134: Goto(109) (295) +135: New(Ljava_cup/lalr_item_set;,0) (298) +136: Dup(1,0) (301) +137: LocalLoad(Ljava/lang/Object;,3) (302) +138: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,(Ljava_cup/lalr_item_set;)V) (303) +139: LocalStore(Ljava/lang/Object;,5) (306) +140: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (308) +141: LocalLoad(Ljava/lang/Object;,5) (311) +142: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (313) +143: CheckCast(Ljava_cup/lalr_state;) (316) +144: LocalStore(Ljava/lang/Object;,8) (319) +145: LocalLoad(Ljava/lang/Object;,8) (321) +146: Constant(L;,null) (323) +147: ConditionalBranch(Ljava/lang/Object;,ne,165) (323) +148: LocalLoad(Ljava/lang/Object;,3) (326) +149: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,compute_closure,()V) (327) +150: New(Ljava_cup/lalr_state;,0) (330) +151: Dup(1,0) (333) +152: LocalLoad(Ljava/lang/Object;,3) (334) +153: Invoke(SPECIAL,Ljava_cup/lalr_state;,,(Ljava_cup/lalr_item_set;)V) (335) +154: LocalStore(Ljava/lang/Object;,8) (338) +155: LocalLoad(Ljava/lang/Object;,6) (340) +156: LocalLoad(Ljava/lang/Object;,8) (342) +157: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (344) +158: Pop(1) (347) +159: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (348) +160: LocalLoad(Ljava/lang/Object;,5) (351) +161: LocalLoad(Ljava/lang/Object;,8) (353) +162: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (355) +163: Pop(1) (358) +164: Goto(208) (359) +165: LocalLoad(Ljava/lang/Object;,4) (362) +166: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (364) +167: LocalStore(Ljava/lang/Object;,18) (367) +168: LocalLoad(Ljava/lang/Object;,18) (369) +169: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (371) +170: Constant(I,0) (376) +171: ConditionalBranch(I,eq,208) (376) +172: LocalLoad(Ljava/lang/Object;,18) (379) +173: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (381) +174: CheckCast(Ljava_cup/lalr_item;) (386) +175: LocalStore(Ljava/lang/Object;,13) (389) +176: Constant(I,0) (391) +177: LocalStore(I,19) (392) +178: LocalLoad(I,19) (394) +179: LocalLoad(Ljava/lang/Object;,13) (396) +180: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (398) +181: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (401) +182: ConditionalBranch(I,ge,207) (404) +183: LocalLoad(Ljava/lang/Object;,13) (407) +184: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (409) +185: LocalLoad(I,19) (412) +186: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (414) +187: CheckCast(Ljava_cup/lalr_item;) (417) +188: LocalStore(Ljava/lang/Object;,11) (420) +189: LocalLoad(Ljava/lang/Object;,8) (422) +190: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (424) +191: LocalLoad(Ljava/lang/Object;,11) (427) +192: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,find,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (429) +193: LocalStore(Ljava/lang/Object;,12) (432) +194: LocalLoad(Ljava/lang/Object;,12) (434) +195: Constant(L;,null) (436) +196: ConditionalBranch(Ljava/lang/Object;,eq,202) (436) +197: LocalLoad(Ljava/lang/Object;,13) (439) +198: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (441) +199: LocalLoad(Ljava/lang/Object;,12) (444) +200: LocalLoad(I,19) (446) +201: Invoke(VIRTUAL,Ljava/util/Stack;,setElementAt,(Ljava/lang/Object;I)V) (448) +202: LocalLoad(I,19) (451) +203: Constant(I,1) (451) +204: BinaryOp(I,add) (451) +205: LocalStore(I,19) (451) +206: Goto(178) (454) +207: Goto(168) (457) +208: LocalLoad(Ljava/lang/Object;,7) (460) +209: LocalLoad(Ljava/lang/Object;,14) (462) +210: LocalLoad(Ljava/lang/Object;,8) (464) +211: Invoke(VIRTUAL,Ljava_cup/lalr_state;,add_transition,(Ljava_cup/symbol;Ljava_cup/lalr_state;)V) (466) +212: Goto(89) (469) +213: Invoke(STATIC,Ljava_cup/lalr_state;,propagate_all_lookaheads,()V) (472) +214: LocalLoad(Ljava/lang/Object;,1) (475) +215: Return(Ljava/lang/Object;) (476) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"build_machine(Ljava_cup/production;)Ljava_cup/lalr_state;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/Stack;,0) (0) + Handles null at 225 +5: Dup(1,0) (3) + Handles null at 225 +6: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (4) + Handles null at 225 +7: LocalStore(Ljava/lang/Object;,6) (7) + Handles null at 225 +8: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 225 +9: Constant(L;,null) (10) + Handles null at 225 +10: ConditionalBranch(Ljava/lang/Object;,ne,16) (10) + Handles null at 225 +11: New(Ljava_cup/internal_error;,0) (13) + Handles null at 225 +12: Dup(1,0) (16) + Handles null at 225 +13: Constant(Ljava/lang/String;,"Attempt to build viable prefix recognizer using a null production") (17) + Handles null at 225 +14: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (19) + Handles null at 225 +15: Throw() (22) + Handles null at 225 +16: New(Ljava_cup/lalr_item_set;,0) (23) + Handles null at 225 +17: Dup(1,0) (26) + Handles null at 225 +18: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,()V) (27) + Handles null at 225 +19: LocalStore(Ljava/lang/Object;,2) (30) + Handles null at 225 +20: New(Ljava_cup/lalr_item;,0) (31) + Handles null at 225 +21: Dup(1,0) (34) + Handles null at 225 +22: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 225 +23: Invoke(SPECIAL,Ljava_cup/lalr_item;,,(Ljava_cup/production;)V) (36) + Handles null at 225 +24: LocalStore(Ljava/lang/Object;,10) (39) + Handles null at 225 +25: LocalLoad(Ljava/lang/Object;,10) (41) + Handles null at 225 +26: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (43) + Handles null at 225 +27: Get(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (46) + Handles null at 225 +28: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (49) + Handles null at 225 +29: Pop(1) (52) + Handles null at 225 +30: LocalLoad(Ljava/lang/Object;,2) (53) + Handles null at 225 +31: LocalLoad(Ljava/lang/Object;,10) (54) + Handles null at 225 +32: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (56) + Handles null at 225 +33: Pop(1) (59) + Handles null at 225 +34: New(Ljava_cup/lalr_item_set;,0) (60) + Handles null at 225 +35: Dup(1,0) (63) + Handles null at 225 +36: LocalLoad(Ljava/lang/Object;,2) (64) + Handles null at 225 +37: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,(Ljava_cup/lalr_item_set;)V) (65) + Handles null at 225 +38: LocalStore(Ljava/lang/Object;,5) (68) + Handles null at 225 +39: LocalLoad(Ljava/lang/Object;,2) (70) + Handles null at 225 +40: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,compute_closure,()V) (71) + Handles null at 225 +41: New(Ljava_cup/lalr_state;,0) (74) + Handles null at 225 +42: Dup(1,0) (77) + Handles null at 225 +43: LocalLoad(Ljava/lang/Object;,2) (78) + Handles null at 225 +44: Invoke(SPECIAL,Ljava_cup/lalr_state;,,(Ljava_cup/lalr_item_set;)V) (79) + Handles null at 225 +45: LocalStore(Ljava/lang/Object;,1) (82) + Handles null at 225 +46: LocalLoad(Ljava/lang/Object;,6) (83) + Handles null at 225 +47: LocalLoad(Ljava/lang/Object;,1) (85) + Handles null at 225 +48: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (86) + Handles null at 225 +49: Pop(1) (89) + Handles null at 225 +50: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (90) + Handles null at 225 +51: LocalLoad(Ljava/lang/Object;,5) (93) + Handles null at 225 +52: LocalLoad(Ljava/lang/Object;,1) (95) + Handles null at 225 +53: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (96) + Handles null at 225 +54: Pop(1) (99) + Handles null at 225 +55: LocalLoad(Ljava/lang/Object;,6) (100) + Handles null at 225 +56: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (102) + Handles null at 225 +57: Constant(I,0) (105) + Handles null at 225 +58: ConditionalBranch(I,ne,217) (105) + Handles null at 225 +59: LocalLoad(Ljava/lang/Object;,6) (108) + Handles null at 225 +60: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (110) + Handles null at 225 +61: CheckCast(Ljava_cup/lalr_state;) (113) + Handles null at 225 +62: LocalStore(Ljava/lang/Object;,7) (116) + Handles null at 225 +63: New(Ljava_cup/symbol_set;,0) (118) + Handles null at 225 +64: Dup(1,0) (121) + Handles null at 225 +65: Invoke(SPECIAL,Ljava_cup/symbol_set;,,()V) (122) + Handles null at 225 +66: LocalStore(Ljava/lang/Object;,9) (125) + Handles null at 225 +67: LocalLoad(Ljava/lang/Object;,7) (127) + Handles null at 225 +68: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (129) + Handles null at 225 +69: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (132) + Handles null at 225 +70: LocalStore(Ljava/lang/Object;,16) (135) + Handles null at 225 +71: LocalLoad(Ljava/lang/Object;,16) (137) + Handles null at 225 +72: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (139) + Handles null at 225 +73: Constant(I,0) (144) + Handles null at 225 +74: ConditionalBranch(I,eq,90) (144) + Handles null at 225 +75: LocalLoad(Ljava/lang/Object;,16) (147) + Handles null at 225 +76: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (149) + Handles null at 225 +77: CheckCast(Ljava_cup/lalr_item;) (154) + Handles null at 225 +78: LocalStore(Ljava/lang/Object;,10) (157) + Handles null at 225 +79: LocalLoad(Ljava/lang/Object;,10) (159) + Handles null at 225 +80: Invoke(VIRTUAL,Ljava_cup/lalr_item;,symbol_after_dot,()Ljava_cup/symbol;) (161) + Handles null at 225 +81: LocalStore(Ljava/lang/Object;,14) (164) + Handles null at 225 +82: LocalLoad(Ljava/lang/Object;,14) (166) + Handles null at 225 +83: Constant(L;,null) (168) + Handles null at 225 +84: ConditionalBranch(Ljava/lang/Object;,eq,71) (168) + Handles null at 225 +85: LocalLoad(Ljava/lang/Object;,9) (171) + Handles null at 225 +86: LocalLoad(Ljava/lang/Object;,14) (173) + Handles null at 225 +87: Invoke(VIRTUAL,Ljava_cup/symbol_set;,add,(Ljava_cup/symbol;)Z) (175) + Handles null at 225 +88: Pop(1) (178) + Handles null at 225 +89: Goto(71) (179) + Handles null at 225 +90: LocalLoad(Ljava/lang/Object;,9) (182) + Handles null at 225 +91: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (184) + Handles null at 225 +92: LocalStore(Ljava/lang/Object;,17) (187) + Handles null at 225 +93: LocalLoad(Ljava/lang/Object;,17) (189) + Handles null at 225 +94: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (191) + Handles null at 225 +95: Constant(I,0) (196) + Handles null at 225 +96: ConditionalBranch(I,eq,55) (196) + Handles null at 225 +97: LocalLoad(Ljava/lang/Object;,17) (199) + Handles null at 225 +98: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (201) + Handles null at 225 +99: CheckCast(Ljava_cup/symbol;) (206) + Handles null at 225 +100: LocalStore(Ljava/lang/Object;,14) (209) + Handles null at 225 +101: New(Ljava_cup/lalr_item_set;,0) (211) + Handles null at 225 +102: Dup(1,0) (214) + Handles null at 225 +103: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,()V) (215) + Handles null at 225 +104: LocalStore(Ljava/lang/Object;,4) (218) + Handles null at 225 +105: New(Ljava_cup/lalr_item_set;,0) (220) + Handles null at 225 +106: Dup(1,0) (223) + Handles null at 225 +107: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,()V) (224) + Handles null at 225 +108: LocalStore(Ljava/lang/Object;,3) (227) + Handles null at 225 +109: LocalLoad(Ljava/lang/Object;,7) (228) + Handles null at 225 +110: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (230) + Handles null at 225 +111: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (233) + Handles null at 225 +112: LocalStore(Ljava/lang/Object;,16) (236) + Handles null at 225 +113: LocalLoad(Ljava/lang/Object;,16) (238) + Handles null at 225 +114: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (240) + Handles null at 225 +115: Constant(I,0) (245) + Handles null at 225 +116: ConditionalBranch(I,eq,139) (245) + Handles null at 225 +117: LocalLoad(Ljava/lang/Object;,16) (248) + Handles null at 225 +118: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (250) + Handles null at 225 +119: CheckCast(Ljava_cup/lalr_item;) (255) + Handles null at 225 +120: LocalStore(Ljava/lang/Object;,10) (258) + Handles null at 225 +121: LocalLoad(Ljava/lang/Object;,10) (260) + Handles null at 225 +122: Invoke(VIRTUAL,Ljava_cup/lalr_item;,symbol_after_dot,()Ljava_cup/symbol;) (262) + Handles null at 225 +123: LocalStore(Ljava/lang/Object;,15) (265) + Handles null at 225 +124: LocalLoad(Ljava/lang/Object;,14) (267) + Handles null at 225 +125: LocalLoad(Ljava/lang/Object;,15) (269) + Handles null at 225 +126: Invoke(VIRTUAL,Ljava/lang/Object;,equals,(Ljava/lang/Object;)Z) (271) + Handles null at 225 +127: Constant(I,0) (274) + Handles null at 225 +128: ConditionalBranch(I,eq,113) (274) + Handles null at 225 +129: LocalLoad(Ljava/lang/Object;,3) (277) + Handles null at 225 +130: LocalLoad(Ljava/lang/Object;,10) (278) + Handles null at 225 +131: Invoke(VIRTUAL,Ljava_cup/lalr_item;,shift,()Ljava_cup/lalr_item;) (280) + Handles null at 225 +132: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (283) + Handles null at 225 +133: Pop(1) (286) + Handles null at 225 +134: LocalLoad(Ljava/lang/Object;,4) (287) + Handles null at 225 +135: LocalLoad(Ljava/lang/Object;,10) (289) + Handles null at 225 +136: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,add,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (291) + Handles null at 225 +137: Pop(1) (294) + Handles null at 225 +138: Goto(113) (295) + Handles null at 225 +139: New(Ljava_cup/lalr_item_set;,0) (298) + Handles null at 225 +140: Dup(1,0) (301) + Handles null at 225 +141: LocalLoad(Ljava/lang/Object;,3) (302) + Handles null at 225 +142: Invoke(SPECIAL,Ljava_cup/lalr_item_set;,,(Ljava_cup/lalr_item_set;)V) (303) + Handles null at 225 +143: LocalStore(Ljava/lang/Object;,5) (306) + Handles null at 225 +144: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (308) + Handles null at 225 +145: LocalLoad(Ljava/lang/Object;,5) (311) + Handles null at 225 +146: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (313) + Handles null at 225 +147: CheckCast(Ljava_cup/lalr_state;) (316) + Handles null at 225 +148: LocalStore(Ljava/lang/Object;,8) (319) + Handles null at 225 +149: LocalLoad(Ljava/lang/Object;,8) (321) + Handles null at 225 +150: Constant(L;,null) (323) + Handles null at 225 +151: ConditionalBranch(Ljava/lang/Object;,ne,169) (323) + Handles null at 225 +152: LocalLoad(Ljava/lang/Object;,3) (326) + Handles null at 225 +153: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,compute_closure,()V) (327) + Handles null at 225 +154: New(Ljava_cup/lalr_state;,0) (330) + Handles null at 225 +155: Dup(1,0) (333) + Handles null at 225 +156: LocalLoad(Ljava/lang/Object;,3) (334) + Handles null at 225 +157: Invoke(SPECIAL,Ljava_cup/lalr_state;,,(Ljava_cup/lalr_item_set;)V) (335) + Handles null at 225 +158: LocalStore(Ljava/lang/Object;,8) (338) + Handles null at 225 +159: LocalLoad(Ljava/lang/Object;,6) (340) + Handles null at 225 +160: LocalLoad(Ljava/lang/Object;,8) (342) + Handles null at 225 +161: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (344) + Handles null at 225 +162: Pop(1) (347) + Handles null at 225 +163: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (348) + Handles null at 225 +164: LocalLoad(Ljava/lang/Object;,5) (351) + Handles null at 225 +165: LocalLoad(Ljava/lang/Object;,8) (353) + Handles null at 225 +166: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (355) + Handles null at 225 +167: Pop(1) (358) + Handles null at 225 +168: Goto(212) (359) + Handles null at 225 +169: LocalLoad(Ljava/lang/Object;,4) (362) + Handles null at 225 +170: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (364) + Handles null at 225 +171: LocalStore(Ljava/lang/Object;,18) (367) + Handles null at 225 +172: LocalLoad(Ljava/lang/Object;,18) (369) + Handles null at 225 +173: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (371) + Handles null at 225 +174: Constant(I,0) (376) + Handles null at 225 +175: ConditionalBranch(I,eq,212) (376) + Handles null at 225 +176: LocalLoad(Ljava/lang/Object;,18) (379) + Handles null at 225 +177: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (381) + Handles null at 225 +178: CheckCast(Ljava_cup/lalr_item;) (386) + Handles null at 225 +179: LocalStore(Ljava/lang/Object;,13) (389) + Handles null at 225 +180: Constant(I,0) (391) + Handles null at 225 +181: LocalStore(I,19) (392) + Handles null at 225 +182: LocalLoad(I,19) (394) + Handles null at 225 +183: LocalLoad(Ljava/lang/Object;,13) (396) + Handles null at 225 +184: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (398) + Handles null at 225 +185: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (401) + Handles null at 225 +186: ConditionalBranch(I,ge,211) (404) + Handles null at 225 +187: LocalLoad(Ljava/lang/Object;,13) (407) + Handles null at 225 +188: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (409) + Handles null at 225 +189: LocalLoad(I,19) (412) + Handles null at 225 +190: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (414) + Handles null at 225 +191: CheckCast(Ljava_cup/lalr_item;) (417) + Handles null at 225 +192: LocalStore(Ljava/lang/Object;,11) (420) + Handles null at 225 +193: LocalLoad(Ljava/lang/Object;,8) (422) + Handles null at 225 +194: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (424) + Handles null at 225 +195: LocalLoad(Ljava/lang/Object;,11) (427) + Handles null at 225 +196: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,find,(Ljava_cup/lalr_item;)Ljava_cup/lalr_item;) (429) + Handles null at 225 +197: LocalStore(Ljava/lang/Object;,12) (432) + Handles null at 225 +198: LocalLoad(Ljava/lang/Object;,12) (434) + Handles null at 225 +199: Constant(L;,null) (436) + Handles null at 225 +200: ConditionalBranch(Ljava/lang/Object;,eq,206) (436) + Handles null at 225 +201: LocalLoad(Ljava/lang/Object;,13) (439) + Handles null at 225 +202: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_items,()Ljava/util/Stack;) (441) + Handles null at 225 +203: LocalLoad(Ljava/lang/Object;,12) (444) + Handles null at 225 +204: LocalLoad(I,19) (446) + Handles null at 225 +205: Invoke(VIRTUAL,Ljava/util/Stack;,setElementAt,(Ljava/lang/Object;I)V) (448) + Handles null at 225 +206: LocalLoad(I,19) (451) + Handles null at 225 +207: Constant(I,1) (451) + Handles null at 225 +208: BinaryOp(I,add) (451) + Handles null at 225 +209: LocalStore(I,19) (451) + Handles null at 225 +210: Goto(182) (454) + Handles null at 225 +211: Goto(172) (457) + Handles null at 225 +212: LocalLoad(Ljava/lang/Object;,7) (460) + Handles null at 225 +213: LocalLoad(Ljava/lang/Object;,14) (462) + Handles null at 225 +214: LocalLoad(Ljava/lang/Object;,8) (464) + Handles null at 225 +215: Invoke(VIRTUAL,Ljava_cup/lalr_state;,add_transition,(Ljava_cup/symbol;Ljava_cup/lalr_state;)V) (466) + Handles null at 225 +216: Goto(93) (469) + Handles null at 225 +217: Invoke(STATIC,Ljava_cup/lalr_state;,propagate_all_lookaheads,()V) (472) + Handles null at 225 +218: LocalLoad(Ljava/lang/Object;,1) (475) + Handles null at 225 +219: Constant(Ljava/lang/String;,"java_cup/lalr_state") (476) + Handles null at 225 +220: Constant(Ljava/lang/String;,"build_machine(Ljava_cup/production;)Ljava_cup/lalr_state;") (476) + Handles null at 225 +221: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (476) + Handles null at 225 +222: Constant(I,0) (476) + Handles null at 225 +223: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (476) + Handles null at 225 +224: Return(Ljava/lang/Object;) (476) + Handles null at 225 +225: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +226: Constant(Ljava/lang/String;,"build_machine(Ljava_cup/production;)Ljava_cup/lalr_state;") (0) +227: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +228: Constant(I,1) (0) +229: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +230: Throw() (0) +Instrumenting propagate_lookaheads ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (4) +3: LocalStore(Ljava/lang/Object;,1) (7) +4: LocalLoad(Ljava/lang/Object;,1) (8) +5: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (9) +6: Constant(I,0) (14) +7: ConditionalBranch(I,eq,14) (14) +8: LocalLoad(Ljava/lang/Object;,1) (17) +9: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (18) +10: CheckCast(Ljava_cup/lalr_item;) (23) +11: Constant(L;,null) (26) +12: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_lookaheads,(Ljava_cup/terminal_set;)V) (27) +13: Goto(4) (30) +14: Return(V) (33) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"propagate_lookaheads()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (1) + Handles null at 24 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (4) + Handles null at 24 +7: LocalStore(Ljava/lang/Object;,1) (7) + Handles null at 24 +8: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 24 +9: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (9) + Handles null at 24 +10: Constant(I,0) (14) + Handles null at 24 +11: ConditionalBranch(I,eq,18) (14) + Handles null at 24 +12: LocalLoad(Ljava/lang/Object;,1) (17) + Handles null at 24 +13: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (18) + Handles null at 24 +14: CheckCast(Ljava_cup/lalr_item;) (23) + Handles null at 24 +15: Constant(L;,null) (26) + Handles null at 24 +16: Invoke(VIRTUAL,Ljava_cup/lalr_item;,propagate_lookaheads,(Ljava_cup/terminal_set;)V) (27) + Handles null at 24 +17: Goto(8) (30) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/lalr_state") (33) + Handles null at 24 +19: Constant(Ljava/lang/String;,"propagate_lookaheads()V") (33) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 24 +21: Constant(I,0) (33) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (33) + Handles null at 24 +23: Return(V) (33) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +25: Constant(Ljava/lang/String;,"propagate_lookaheads()V") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting build_table_entries (Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;)V: +Initial ShrikeBT code: +0: New(Ljava_cup/terminal_set;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,9) (7) +4: LocalLoad(Ljava/lang/Object;,1) (9) +5: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (10) +6: LocalLoad(Ljava/lang/Object;,0) (13) +7: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (14) +8: ArrayLoad(Ljava/lang/Object;) (17) +9: LocalStore(Ljava/lang/Object;,3) (18) +10: LocalLoad(Ljava/lang/Object;,2) (19) +11: Get([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (20) +12: LocalLoad(Ljava/lang/Object;,0) (23) +13: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (24) +14: ArrayLoad(Ljava/lang/Object;) (27) +15: LocalStore(Ljava/lang/Object;,4) (28) +16: LocalLoad(Ljava/lang/Object;,0) (30) +17: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (31) +18: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (34) +19: LocalStore(Ljava/lang/Object;,10) (37) +20: LocalLoad(Ljava/lang/Object;,10) (39) +21: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (41) +22: Constant(I,0) (46) +23: ConditionalBranch(I,eq,117) (46) +24: LocalLoad(Ljava/lang/Object;,10) (49) +25: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (51) +26: CheckCast(Ljava_cup/lalr_item;) (56) +27: LocalStore(Ljava/lang/Object;,5) (59) +28: LocalLoad(Ljava/lang/Object;,5) (61) +29: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (63) +30: Constant(I,0) (66) +31: ConditionalBranch(I,eq,20) (66) +32: New(Ljava_cup/reduce_action;,0) (69) +33: Dup(1,0) (72) +34: LocalLoad(Ljava/lang/Object;,5) (73) +35: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (75) +36: Invoke(SPECIAL,Ljava_cup/reduce_action;,,(Ljava_cup/production;)V) (78) +37: LocalStore(Ljava/lang/Object;,6) (81) +38: Constant(I,0) (83) +39: LocalStore(I,11) (84) +40: LocalLoad(I,11) (86) +41: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (88) +42: ConditionalBranch(I,ge,116) (91) +43: LocalLoad(Ljava/lang/Object;,5) (94) +44: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (96) +45: LocalLoad(I,11) (99) +46: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (101) +47: Constant(I,0) (104) +48: ConditionalBranch(I,ne,50) (104) +49: Goto(111) (107) +50: LocalLoad(Ljava/lang/Object;,3) (110) +51: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (111) +52: LocalLoad(I,11) (114) +53: ArrayLoad(Ljava/lang/Object;) (116) +54: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (117) +55: Constant(I,0) (120) +56: ConditionalBranch(I,ne,63) (120) +57: LocalLoad(Ljava/lang/Object;,3) (123) +58: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (124) +59: LocalLoad(I,11) (127) +60: LocalLoad(Ljava/lang/Object;,6) (129) +61: ArrayStore(Ljava/lang/Object;) (131) +62: Goto(111) (132) +63: LocalLoad(I,11) (135) +64: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (137) +65: LocalStore(Ljava/lang/Object;,12) (140) +66: LocalLoad(Ljava/lang/Object;,3) (142) +67: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (143) +68: LocalLoad(I,11) (146) +69: ArrayLoad(Ljava/lang/Object;) (148) +70: LocalStore(Ljava/lang/Object;,7) (149) +71: LocalLoad(Ljava/lang/Object;,7) (151) +72: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (153) +73: Constant(I,1) (156) +74: ConditionalBranch(I,eq,93) (157) +75: LocalLoad(Ljava/lang/Object;,7) (160) +76: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (162) +77: Constant(I,3) (165) +78: ConditionalBranch(I,eq,93) (166) +79: LocalLoad(Ljava/lang/Object;,5) (169) +80: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (171) +81: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (174) +82: LocalLoad(Ljava/lang/Object;,7) (177) +83: CheckCast(Ljava_cup/reduce_action;) (179) +84: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (182) +85: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (185) +86: ConditionalBranch(I,ge,104) (188) +87: LocalLoad(Ljava/lang/Object;,3) (191) +88: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (192) +89: LocalLoad(I,11) (195) +90: LocalLoad(Ljava/lang/Object;,6) (197) +91: ArrayStore(Ljava/lang/Object;) (199) +92: Goto(104) (200) +93: LocalLoad(Ljava/lang/Object;,0) (203) +94: LocalLoad(Ljava/lang/Object;,5) (204) +95: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (206) +96: LocalLoad(I,11) (209) +97: LocalLoad(Ljava/lang/Object;,3) (211) +98: LocalLoad(Ljava/lang/Object;,6) (212) +99: Invoke(VIRTUAL,Ljava_cup/lalr_state;,fix_with_precedence,(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z) (214) +100: Constant(I,0) (217) +101: ConditionalBranch(I,eq,104) (217) +102: Constant(L;,null) (220) +103: LocalStore(Ljava/lang/Object;,12) (221) +104: LocalLoad(Ljava/lang/Object;,12) (223) +105: Constant(L;,null) (225) +106: ConditionalBranch(Ljava/lang/Object;,eq,111) (225) +107: LocalLoad(Ljava/lang/Object;,9) (228) +108: LocalLoad(Ljava/lang/Object;,12) (230) +109: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (232) +110: Pop(1) (235) +111: LocalLoad(I,11) (236) +112: Constant(I,1) (236) +113: BinaryOp(I,add) (236) +114: LocalStore(I,11) (236) +115: Goto(40) (239) +116: Goto(20) (242) +117: LocalLoad(Ljava/lang/Object;,0) (245) +118: Invoke(VIRTUAL,Ljava_cup/lalr_state;,transitions,()Ljava_cup/lalr_transition;) (246) +119: LocalStore(Ljava/lang/Object;,10) (249) +120: LocalLoad(Ljava/lang/Object;,10) (251) +121: Constant(L;,null) (253) +122: ConditionalBranch(Ljava/lang/Object;,eq,192) (253) +123: LocalLoad(Ljava/lang/Object;,10) (256) +124: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,on_symbol,()Ljava_cup/symbol;) (258) +125: LocalStore(Ljava/lang/Object;,8) (261) +126: LocalLoad(Ljava/lang/Object;,8) (263) +127: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (265) +128: Constant(I,0) (268) +129: ConditionalBranch(I,ne,181) (268) +130: New(Ljava_cup/shift_action;,0) (271) +131: Dup(1,0) (274) +132: LocalLoad(Ljava/lang/Object;,10) (275) +133: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,to_state,()Ljava_cup/lalr_state;) (277) +134: Invoke(SPECIAL,Ljava_cup/shift_action;,,(Ljava_cup/lalr_state;)V) (280) +135: LocalStore(Ljava/lang/Object;,6) (283) +136: LocalLoad(Ljava/lang/Object;,3) (285) +137: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (286) +138: LocalLoad(Ljava/lang/Object;,8) (289) +139: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (291) +140: ArrayLoad(Ljava/lang/Object;) (294) +141: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (295) +142: Constant(I,0) (298) +143: ConditionalBranch(I,ne,151) (298) +144: LocalLoad(Ljava/lang/Object;,3) (301) +145: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (302) +146: LocalLoad(Ljava/lang/Object;,8) (305) +147: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (307) +148: LocalLoad(Ljava/lang/Object;,6) (310) +149: ArrayStore(Ljava/lang/Object;) (312) +150: Goto(188) (313) +151: LocalLoad(Ljava/lang/Object;,3) (316) +152: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (317) +153: LocalLoad(Ljava/lang/Object;,8) (320) +154: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (322) +155: ArrayLoad(Ljava/lang/Object;) (325) +156: CheckCast(Ljava_cup/reduce_action;) (326) +157: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (329) +158: LocalStore(Ljava/lang/Object;,11) (332) +159: LocalLoad(Ljava/lang/Object;,0) (334) +160: LocalLoad(Ljava/lang/Object;,11) (335) +161: LocalLoad(Ljava/lang/Object;,8) (337) +162: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (339) +163: LocalLoad(Ljava/lang/Object;,3) (342) +164: LocalLoad(Ljava/lang/Object;,6) (343) +165: Invoke(VIRTUAL,Ljava_cup/lalr_state;,fix_with_precedence,(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z) (345) +166: Constant(I,0) (348) +167: ConditionalBranch(I,ne,180) (348) +168: LocalLoad(Ljava/lang/Object;,3) (351) +169: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (352) +170: LocalLoad(Ljava/lang/Object;,8) (355) +171: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (357) +172: LocalLoad(Ljava/lang/Object;,6) (360) +173: ArrayStore(Ljava/lang/Object;) (362) +174: LocalLoad(Ljava/lang/Object;,9) (363) +175: LocalLoad(Ljava/lang/Object;,8) (365) +176: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (367) +177: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (370) +178: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (373) +179: Pop(1) (376) +180: Goto(188) (377) +181: LocalLoad(Ljava/lang/Object;,4) (380) +182: Get([Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/parse_reduce_row;,under_non_term) (382) +183: LocalLoad(Ljava/lang/Object;,8) (385) +184: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (387) +185: LocalLoad(Ljava/lang/Object;,10) (390) +186: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,to_state,()Ljava_cup/lalr_state;) (392) +187: ArrayStore(Ljava/lang/Object;) (395) +188: LocalLoad(Ljava/lang/Object;,10) (396) +189: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,next,()Ljava_cup/lalr_transition;) (398) +190: LocalStore(Ljava/lang/Object;,10) (401) +191: Goto(120) (403) +192: LocalLoad(Ljava/lang/Object;,9) (406) +193: Invoke(VIRTUAL,Ljava_cup/terminal_set;,empty,()Z) (408) +194: Constant(I,0) (411) +195: ConditionalBranch(I,ne,199) (411) +196: LocalLoad(Ljava/lang/Object;,0) (414) +197: LocalLoad(Ljava/lang/Object;,9) (415) +198: Invoke(VIRTUAL,Ljava_cup/lalr_state;,report_conflicts,(Ljava_cup/terminal_set;)V) (417) +199: Return(V) (420) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"build_table_entries(Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/terminal_set;,0) (0) + Handles null at 209 +5: Dup(1,0) (3) + Handles null at 209 +6: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (4) + Handles null at 209 +7: LocalStore(Ljava/lang/Object;,9) (7) + Handles null at 209 +8: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 209 +9: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (10) + Handles null at 209 +10: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 209 +11: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (14) + Handles null at 209 +12: ArrayLoad(Ljava/lang/Object;) (17) + Handles null at 209 +13: LocalStore(Ljava/lang/Object;,3) (18) + Handles null at 209 +14: LocalLoad(Ljava/lang/Object;,2) (19) + Handles null at 209 +15: Get([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (20) + Handles null at 209 +16: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 209 +17: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (24) + Handles null at 209 +18: ArrayLoad(Ljava/lang/Object;) (27) + Handles null at 209 +19: LocalStore(Ljava/lang/Object;,4) (28) + Handles null at 209 +20: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 209 +21: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (31) + Handles null at 209 +22: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (34) + Handles null at 209 +23: LocalStore(Ljava/lang/Object;,10) (37) + Handles null at 209 +24: LocalLoad(Ljava/lang/Object;,10) (39) + Handles null at 209 +25: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (41) + Handles null at 209 +26: Constant(I,0) (46) + Handles null at 209 +27: ConditionalBranch(I,eq,121) (46) + Handles null at 209 +28: LocalLoad(Ljava/lang/Object;,10) (49) + Handles null at 209 +29: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (51) + Handles null at 209 +30: CheckCast(Ljava_cup/lalr_item;) (56) + Handles null at 209 +31: LocalStore(Ljava/lang/Object;,5) (59) + Handles null at 209 +32: LocalLoad(Ljava/lang/Object;,5) (61) + Handles null at 209 +33: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (63) + Handles null at 209 +34: Constant(I,0) (66) + Handles null at 209 +35: ConditionalBranch(I,eq,24) (66) + Handles null at 209 +36: New(Ljava_cup/reduce_action;,0) (69) + Handles null at 209 +37: Dup(1,0) (72) + Handles null at 209 +38: LocalLoad(Ljava/lang/Object;,5) (73) + Handles null at 209 +39: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (75) + Handles null at 209 +40: Invoke(SPECIAL,Ljava_cup/reduce_action;,,(Ljava_cup/production;)V) (78) + Handles null at 209 +41: LocalStore(Ljava/lang/Object;,6) (81) + Handles null at 209 +42: Constant(I,0) (83) + Handles null at 209 +43: LocalStore(I,11) (84) + Handles null at 209 +44: LocalLoad(I,11) (86) + Handles null at 209 +45: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (88) + Handles null at 209 +46: ConditionalBranch(I,ge,120) (91) + Handles null at 209 +47: LocalLoad(Ljava/lang/Object;,5) (94) + Handles null at 209 +48: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (96) + Handles null at 209 +49: LocalLoad(I,11) (99) + Handles null at 209 +50: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (101) + Handles null at 209 +51: Constant(I,0) (104) + Handles null at 209 +52: ConditionalBranch(I,ne,54) (104) + Handles null at 209 +53: Goto(115) (107) + Handles null at 209 +54: LocalLoad(Ljava/lang/Object;,3) (110) + Handles null at 209 +55: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (111) + Handles null at 209 +56: LocalLoad(I,11) (114) + Handles null at 209 +57: ArrayLoad(Ljava/lang/Object;) (116) + Handles null at 209 +58: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (117) + Handles null at 209 +59: Constant(I,0) (120) + Handles null at 209 +60: ConditionalBranch(I,ne,67) (120) + Handles null at 209 +61: LocalLoad(Ljava/lang/Object;,3) (123) + Handles null at 209 +62: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (124) + Handles null at 209 +63: LocalLoad(I,11) (127) + Handles null at 209 +64: LocalLoad(Ljava/lang/Object;,6) (129) + Handles null at 209 +65: ArrayStore(Ljava/lang/Object;) (131) + Handles null at 209 +66: Goto(115) (132) + Handles null at 209 +67: LocalLoad(I,11) (135) + Handles null at 209 +68: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (137) + Handles null at 209 +69: LocalStore(Ljava/lang/Object;,12) (140) + Handles null at 209 +70: LocalLoad(Ljava/lang/Object;,3) (142) + Handles null at 209 +71: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (143) + Handles null at 209 +72: LocalLoad(I,11) (146) + Handles null at 209 +73: ArrayLoad(Ljava/lang/Object;) (148) + Handles null at 209 +74: LocalStore(Ljava/lang/Object;,7) (149) + Handles null at 209 +75: LocalLoad(Ljava/lang/Object;,7) (151) + Handles null at 209 +76: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (153) + Handles null at 209 +77: Constant(I,1) (156) + Handles null at 209 +78: ConditionalBranch(I,eq,97) (157) + Handles null at 209 +79: LocalLoad(Ljava/lang/Object;,7) (160) + Handles null at 209 +80: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (162) + Handles null at 209 +81: Constant(I,3) (165) + Handles null at 209 +82: ConditionalBranch(I,eq,97) (166) + Handles null at 209 +83: LocalLoad(Ljava/lang/Object;,5) (169) + Handles null at 209 +84: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (171) + Handles null at 209 +85: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (174) + Handles null at 209 +86: LocalLoad(Ljava/lang/Object;,7) (177) + Handles null at 209 +87: CheckCast(Ljava_cup/reduce_action;) (179) + Handles null at 209 +88: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (182) + Handles null at 209 +89: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (185) + Handles null at 209 +90: ConditionalBranch(I,ge,108) (188) + Handles null at 209 +91: LocalLoad(Ljava/lang/Object;,3) (191) + Handles null at 209 +92: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (192) + Handles null at 209 +93: LocalLoad(I,11) (195) + Handles null at 209 +94: LocalLoad(Ljava/lang/Object;,6) (197) + Handles null at 209 +95: ArrayStore(Ljava/lang/Object;) (199) + Handles null at 209 +96: Goto(108) (200) + Handles null at 209 +97: LocalLoad(Ljava/lang/Object;,0) (203) + Handles null at 209 +98: LocalLoad(Ljava/lang/Object;,5) (204) + Handles null at 209 +99: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (206) + Handles null at 209 +100: LocalLoad(I,11) (209) + Handles null at 209 +101: LocalLoad(Ljava/lang/Object;,3) (211) + Handles null at 209 +102: LocalLoad(Ljava/lang/Object;,6) (212) + Handles null at 209 +103: Invoke(VIRTUAL,Ljava_cup/lalr_state;,fix_with_precedence,(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z) (214) + Handles null at 209 +104: Constant(I,0) (217) + Handles null at 209 +105: ConditionalBranch(I,eq,108) (217) + Handles null at 209 +106: Constant(L;,null) (220) + Handles null at 209 +107: LocalStore(Ljava/lang/Object;,12) (221) + Handles null at 209 +108: LocalLoad(Ljava/lang/Object;,12) (223) + Handles null at 209 +109: Constant(L;,null) (225) + Handles null at 209 +110: ConditionalBranch(Ljava/lang/Object;,eq,115) (225) + Handles null at 209 +111: LocalLoad(Ljava/lang/Object;,9) (228) + Handles null at 209 +112: LocalLoad(Ljava/lang/Object;,12) (230) + Handles null at 209 +113: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (232) + Handles null at 209 +114: Pop(1) (235) + Handles null at 209 +115: LocalLoad(I,11) (236) + Handles null at 209 +116: Constant(I,1) (236) + Handles null at 209 +117: BinaryOp(I,add) (236) + Handles null at 209 +118: LocalStore(I,11) (236) + Handles null at 209 +119: Goto(44) (239) + Handles null at 209 +120: Goto(24) (242) + Handles null at 209 +121: LocalLoad(Ljava/lang/Object;,0) (245) + Handles null at 209 +122: Invoke(VIRTUAL,Ljava_cup/lalr_state;,transitions,()Ljava_cup/lalr_transition;) (246) + Handles null at 209 +123: LocalStore(Ljava/lang/Object;,10) (249) + Handles null at 209 +124: LocalLoad(Ljava/lang/Object;,10) (251) + Handles null at 209 +125: Constant(L;,null) (253) + Handles null at 209 +126: ConditionalBranch(Ljava/lang/Object;,eq,196) (253) + Handles null at 209 +127: LocalLoad(Ljava/lang/Object;,10) (256) + Handles null at 209 +128: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,on_symbol,()Ljava_cup/symbol;) (258) + Handles null at 209 +129: LocalStore(Ljava/lang/Object;,8) (261) + Handles null at 209 +130: LocalLoad(Ljava/lang/Object;,8) (263) + Handles null at 209 +131: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (265) + Handles null at 209 +132: Constant(I,0) (268) + Handles null at 209 +133: ConditionalBranch(I,ne,185) (268) + Handles null at 209 +134: New(Ljava_cup/shift_action;,0) (271) + Handles null at 209 +135: Dup(1,0) (274) + Handles null at 209 +136: LocalLoad(Ljava/lang/Object;,10) (275) + Handles null at 209 +137: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,to_state,()Ljava_cup/lalr_state;) (277) + Handles null at 209 +138: Invoke(SPECIAL,Ljava_cup/shift_action;,,(Ljava_cup/lalr_state;)V) (280) + Handles null at 209 +139: LocalStore(Ljava/lang/Object;,6) (283) + Handles null at 209 +140: LocalLoad(Ljava/lang/Object;,3) (285) + Handles null at 209 +141: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (286) + Handles null at 209 +142: LocalLoad(Ljava/lang/Object;,8) (289) + Handles null at 209 +143: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (291) + Handles null at 209 +144: ArrayLoad(Ljava/lang/Object;) (294) + Handles null at 209 +145: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (295) + Handles null at 209 +146: Constant(I,0) (298) + Handles null at 209 +147: ConditionalBranch(I,ne,155) (298) + Handles null at 209 +148: LocalLoad(Ljava/lang/Object;,3) (301) + Handles null at 209 +149: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (302) + Handles null at 209 +150: LocalLoad(Ljava/lang/Object;,8) (305) + Handles null at 209 +151: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (307) + Handles null at 209 +152: LocalLoad(Ljava/lang/Object;,6) (310) + Handles null at 209 +153: ArrayStore(Ljava/lang/Object;) (312) + Handles null at 209 +154: Goto(192) (313) + Handles null at 209 +155: LocalLoad(Ljava/lang/Object;,3) (316) + Handles null at 209 +156: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (317) + Handles null at 209 +157: LocalLoad(Ljava/lang/Object;,8) (320) + Handles null at 209 +158: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (322) + Handles null at 209 +159: ArrayLoad(Ljava/lang/Object;) (325) + Handles null at 209 +160: CheckCast(Ljava_cup/reduce_action;) (326) + Handles null at 209 +161: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (329) + Handles null at 209 +162: LocalStore(Ljava/lang/Object;,11) (332) + Handles null at 209 +163: LocalLoad(Ljava/lang/Object;,0) (334) + Handles null at 209 +164: LocalLoad(Ljava/lang/Object;,11) (335) + Handles null at 209 +165: LocalLoad(Ljava/lang/Object;,8) (337) + Handles null at 209 +166: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (339) + Handles null at 209 +167: LocalLoad(Ljava/lang/Object;,3) (342) + Handles null at 209 +168: LocalLoad(Ljava/lang/Object;,6) (343) + Handles null at 209 +169: Invoke(VIRTUAL,Ljava_cup/lalr_state;,fix_with_precedence,(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z) (345) + Handles null at 209 +170: Constant(I,0) (348) + Handles null at 209 +171: ConditionalBranch(I,ne,184) (348) + Handles null at 209 +172: LocalLoad(Ljava/lang/Object;,3) (351) + Handles null at 209 +173: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (352) + Handles null at 209 +174: LocalLoad(Ljava/lang/Object;,8) (355) + Handles null at 209 +175: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (357) + Handles null at 209 +176: LocalLoad(Ljava/lang/Object;,6) (360) + Handles null at 209 +177: ArrayStore(Ljava/lang/Object;) (362) + Handles null at 209 +178: LocalLoad(Ljava/lang/Object;,9) (363) + Handles null at 209 +179: LocalLoad(Ljava/lang/Object;,8) (365) + Handles null at 209 +180: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (367) + Handles null at 209 +181: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (370) + Handles null at 209 +182: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (373) + Handles null at 209 +183: Pop(1) (376) + Handles null at 209 +184: Goto(192) (377) + Handles null at 209 +185: LocalLoad(Ljava/lang/Object;,4) (380) + Handles null at 209 +186: Get([Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/parse_reduce_row;,under_non_term) (382) + Handles null at 209 +187: LocalLoad(Ljava/lang/Object;,8) (385) + Handles null at 209 +188: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (387) + Handles null at 209 +189: LocalLoad(Ljava/lang/Object;,10) (390) + Handles null at 209 +190: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,to_state,()Ljava_cup/lalr_state;) (392) + Handles null at 209 +191: ArrayStore(Ljava/lang/Object;) (395) + Handles null at 209 +192: LocalLoad(Ljava/lang/Object;,10) (396) + Handles null at 209 +193: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,next,()Ljava_cup/lalr_transition;) (398) + Handles null at 209 +194: LocalStore(Ljava/lang/Object;,10) (401) + Handles null at 209 +195: Goto(124) (403) + Handles null at 209 +196: LocalLoad(Ljava/lang/Object;,9) (406) + Handles null at 209 +197: Invoke(VIRTUAL,Ljava_cup/terminal_set;,empty,()Z) (408) + Handles null at 209 +198: Constant(I,0) (411) + Handles null at 209 +199: ConditionalBranch(I,ne,203) (411) + Handles null at 209 +200: LocalLoad(Ljava/lang/Object;,0) (414) + Handles null at 209 +201: LocalLoad(Ljava/lang/Object;,9) (415) + Handles null at 209 +202: Invoke(VIRTUAL,Ljava_cup/lalr_state;,report_conflicts,(Ljava_cup/terminal_set;)V) (417) + Handles null at 209 +203: Constant(Ljava/lang/String;,"java_cup/lalr_state") (420) + Handles null at 209 +204: Constant(Ljava/lang/String;,"build_table_entries(Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;)V") (420) + Handles null at 209 +205: LocalLoad(Ljava/lang/Object;,0) (420) + Handles null at 209 +206: Constant(I,0) (420) + Handles null at 209 +207: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (420) + Handles null at 209 +208: Return(V) (420) + Handles null at 209 +209: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +210: Constant(Ljava/lang/String;,"build_table_entries(Ljava_cup/parse_action_table;Ljava_cup/parse_reduce_table;)V") (0) +211: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +212: Constant(I,1) (0) +213: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +214: Throw() (0) +Instrumenting fix_with_precedence (Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z: +Initial ShrikeBT code: +0: LocalLoad(I,2) (0) +1: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (1) +2: LocalStore(Ljava/lang/Object;,5) (4) +3: LocalLoad(Ljava/lang/Object;,1) (6) +4: Invoke(VIRTUAL,Ljava_cup/production;,precedence_num,()I) (7) +5: Constant(I,-1) (10) +6: ConditionalBranch(I,le,95) (11) +7: LocalLoad(Ljava/lang/Object;,1) (14) +8: Invoke(VIRTUAL,Ljava_cup/production;,precedence_num,()I) (15) +9: LocalLoad(Ljava/lang/Object;,5) (18) +10: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (20) +11: ConditionalBranch(I,le,25) (23) +12: LocalLoad(Ljava/lang/Object;,3) (26) +13: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (27) +14: LocalLoad(I,2) (30) +15: LocalLoad(Ljava/lang/Object;,0) (31) +16: LocalLoad(Ljava/lang/Object;,3) (32) +17: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (33) +18: LocalLoad(I,2) (36) +19: ArrayLoad(Ljava/lang/Object;) (37) +20: LocalLoad(Ljava/lang/Object;,4) (38) +21: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_reduce,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (40) +22: ArrayStore(Ljava/lang/Object;) (43) +23: Constant(I,1) (44) +24: Return(I) (45) +25: LocalLoad(Ljava/lang/Object;,1) (46) +26: Invoke(VIRTUAL,Ljava_cup/production;,precedence_num,()I) (47) +27: LocalLoad(Ljava/lang/Object;,5) (50) +28: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (52) +29: ConditionalBranch(I,ge,43) (55) +30: LocalLoad(Ljava/lang/Object;,3) (58) +31: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (59) +32: LocalLoad(I,2) (62) +33: LocalLoad(Ljava/lang/Object;,0) (63) +34: LocalLoad(Ljava/lang/Object;,3) (64) +35: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (65) +36: LocalLoad(I,2) (68) +37: ArrayLoad(Ljava/lang/Object;) (69) +38: LocalLoad(Ljava/lang/Object;,4) (70) +39: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_shift,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (72) +40: ArrayStore(Ljava/lang/Object;) (75) +41: Constant(I,1) (76) +42: Return(I) (77) +43: LocalLoad(Ljava/lang/Object;,5) (78) +44: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (80) +45: Constant(I,1) (83) +46: ConditionalBranch(I,ne,60) (84) +47: LocalLoad(Ljava/lang/Object;,3) (87) +48: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (88) +49: LocalLoad(I,2) (91) +50: LocalLoad(Ljava/lang/Object;,0) (92) +51: LocalLoad(Ljava/lang/Object;,3) (93) +52: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (94) +53: LocalLoad(I,2) (97) +54: ArrayLoad(Ljava/lang/Object;) (98) +55: LocalLoad(Ljava/lang/Object;,4) (99) +56: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_shift,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (101) +57: ArrayStore(Ljava/lang/Object;) (104) +58: Constant(I,1) (105) +59: Return(I) (106) +60: LocalLoad(Ljava/lang/Object;,5) (107) +61: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (109) +62: Constant(I,0) (112) +63: ConditionalBranch(I,ne,77) (112) +64: LocalLoad(Ljava/lang/Object;,3) (115) +65: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (116) +66: LocalLoad(I,2) (119) +67: LocalLoad(Ljava/lang/Object;,0) (120) +68: LocalLoad(Ljava/lang/Object;,3) (121) +69: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (122) +70: LocalLoad(I,2) (125) +71: ArrayLoad(Ljava/lang/Object;) (126) +72: LocalLoad(Ljava/lang/Object;,4) (127) +73: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_reduce,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (129) +74: ArrayStore(Ljava/lang/Object;) (132) +75: Constant(I,1) (133) +76: Return(I) (134) +77: LocalLoad(Ljava/lang/Object;,5) (135) +78: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (137) +79: Constant(I,2) (140) +80: ConditionalBranch(I,ne,90) (141) +81: LocalLoad(Ljava/lang/Object;,3) (144) +82: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (145) +83: LocalLoad(I,2) (148) +84: New(Ljava_cup/nonassoc_action;,0) (149) +85: Dup(1,0) (152) +86: Invoke(SPECIAL,Ljava_cup/nonassoc_action;,,()V) (153) +87: ArrayStore(Ljava/lang/Object;) (156) +88: Constant(I,1) (157) +89: Return(I) (158) +90: New(Ljava_cup/internal_error;,0) (159) +91: Dup(1,0) (162) +92: Constant(Ljava/lang/String;,"Unable to resolve conflict correctly") (163) +93: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (165) +94: Throw() (168) +95: LocalLoad(Ljava/lang/Object;,5) (169) +96: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (171) +97: Constant(I,-1) (174) +98: ConditionalBranch(I,le,112) (175) +99: LocalLoad(Ljava/lang/Object;,3) (178) +100: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (179) +101: LocalLoad(I,2) (182) +102: LocalLoad(Ljava/lang/Object;,0) (183) +103: LocalLoad(Ljava/lang/Object;,3) (184) +104: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (185) +105: LocalLoad(I,2) (188) +106: ArrayLoad(Ljava/lang/Object;) (189) +107: LocalLoad(Ljava/lang/Object;,4) (190) +108: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_shift,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (192) +109: ArrayStore(Ljava/lang/Object;) (195) +110: Constant(I,1) (196) +111: Return(I) (197) +112: Constant(I,0) (198) +113: Return(I) (199) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,2) (0) + Handles null at 153 +5: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (1) + Handles null at 153 +6: LocalStore(Ljava/lang/Object;,5) (4) + Handles null at 153 +7: LocalLoad(Ljava/lang/Object;,1) (6) + Handles null at 153 +8: Invoke(VIRTUAL,Ljava_cup/production;,precedence_num,()I) (7) + Handles null at 153 +9: Constant(I,-1) (10) + Handles null at 153 +10: ConditionalBranch(I,le,124) (11) + Handles null at 153 +11: LocalLoad(Ljava/lang/Object;,1) (14) + Handles null at 153 +12: Invoke(VIRTUAL,Ljava_cup/production;,precedence_num,()I) (15) + Handles null at 153 +13: LocalLoad(Ljava/lang/Object;,5) (18) + Handles null at 153 +14: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (20) + Handles null at 153 +15: ConditionalBranch(I,le,34) (23) + Handles null at 153 +16: LocalLoad(Ljava/lang/Object;,3) (26) + Handles null at 153 +17: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (27) + Handles null at 153 +18: LocalLoad(I,2) (30) + Handles null at 153 +19: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 153 +20: LocalLoad(Ljava/lang/Object;,3) (32) + Handles null at 153 +21: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (33) + Handles null at 153 +22: LocalLoad(I,2) (36) + Handles null at 153 +23: ArrayLoad(Ljava/lang/Object;) (37) + Handles null at 153 +24: LocalLoad(Ljava/lang/Object;,4) (38) + Handles null at 153 +25: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_reduce,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (40) + Handles null at 153 +26: ArrayStore(Ljava/lang/Object;) (43) + Handles null at 153 +27: Constant(I,1) (44) + Handles null at 153 +28: Constant(Ljava/lang/String;,"java_cup/lalr_state") (45) + Handles null at 153 +29: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (45) + Handles null at 153 +30: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 153 +31: Constant(I,0) (45) + Handles null at 153 +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (45) + Handles null at 153 +33: Return(I) (45) + Handles null at 153 +34: LocalLoad(Ljava/lang/Object;,1) (46) + Handles null at 153 +35: Invoke(VIRTUAL,Ljava_cup/production;,precedence_num,()I) (47) + Handles null at 153 +36: LocalLoad(Ljava/lang/Object;,5) (50) + Handles null at 153 +37: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (52) + Handles null at 153 +38: ConditionalBranch(I,ge,57) (55) + Handles null at 153 +39: LocalLoad(Ljava/lang/Object;,3) (58) + Handles null at 153 +40: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (59) + Handles null at 153 +41: LocalLoad(I,2) (62) + Handles null at 153 +42: LocalLoad(Ljava/lang/Object;,0) (63) + Handles null at 153 +43: LocalLoad(Ljava/lang/Object;,3) (64) + Handles null at 153 +44: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (65) + Handles null at 153 +45: LocalLoad(I,2) (68) + Handles null at 153 +46: ArrayLoad(Ljava/lang/Object;) (69) + Handles null at 153 +47: LocalLoad(Ljava/lang/Object;,4) (70) + Handles null at 153 +48: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_shift,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (72) + Handles null at 153 +49: ArrayStore(Ljava/lang/Object;) (75) + Handles null at 153 +50: Constant(I,1) (76) + Handles null at 153 +51: Constant(Ljava/lang/String;,"java_cup/lalr_state") (77) + Handles null at 153 +52: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (77) + Handles null at 153 +53: LocalLoad(Ljava/lang/Object;,0) (77) + Handles null at 153 +54: Constant(I,0) (77) + Handles null at 153 +55: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (77) + Handles null at 153 +56: Return(I) (77) + Handles null at 153 +57: LocalLoad(Ljava/lang/Object;,5) (78) + Handles null at 153 +58: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (80) + Handles null at 153 +59: Constant(I,1) (83) + Handles null at 153 +60: ConditionalBranch(I,ne,79) (84) + Handles null at 153 +61: LocalLoad(Ljava/lang/Object;,3) (87) + Handles null at 153 +62: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (88) + Handles null at 153 +63: LocalLoad(I,2) (91) + Handles null at 153 +64: LocalLoad(Ljava/lang/Object;,0) (92) + Handles null at 153 +65: LocalLoad(Ljava/lang/Object;,3) (93) + Handles null at 153 +66: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (94) + Handles null at 153 +67: LocalLoad(I,2) (97) + Handles null at 153 +68: ArrayLoad(Ljava/lang/Object;) (98) + Handles null at 153 +69: LocalLoad(Ljava/lang/Object;,4) (99) + Handles null at 153 +70: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_shift,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (101) + Handles null at 153 +71: ArrayStore(Ljava/lang/Object;) (104) + Handles null at 153 +72: Constant(I,1) (105) + Handles null at 153 +73: Constant(Ljava/lang/String;,"java_cup/lalr_state") (106) + Handles null at 153 +74: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (106) + Handles null at 153 +75: LocalLoad(Ljava/lang/Object;,0) (106) + Handles null at 153 +76: Constant(I,0) (106) + Handles null at 153 +77: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (106) + Handles null at 153 +78: Return(I) (106) + Handles null at 153 +79: LocalLoad(Ljava/lang/Object;,5) (107) + Handles null at 153 +80: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (109) + Handles null at 153 +81: Constant(I,0) (112) + Handles null at 153 +82: ConditionalBranch(I,ne,101) (112) + Handles null at 153 +83: LocalLoad(Ljava/lang/Object;,3) (115) + Handles null at 153 +84: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (116) + Handles null at 153 +85: LocalLoad(I,2) (119) + Handles null at 153 +86: LocalLoad(Ljava/lang/Object;,0) (120) + Handles null at 153 +87: LocalLoad(Ljava/lang/Object;,3) (121) + Handles null at 153 +88: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (122) + Handles null at 153 +89: LocalLoad(I,2) (125) + Handles null at 153 +90: ArrayLoad(Ljava/lang/Object;) (126) + Handles null at 153 +91: LocalLoad(Ljava/lang/Object;,4) (127) + Handles null at 153 +92: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_reduce,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (129) + Handles null at 153 +93: ArrayStore(Ljava/lang/Object;) (132) + Handles null at 153 +94: Constant(I,1) (133) + Handles null at 153 +95: Constant(Ljava/lang/String;,"java_cup/lalr_state") (134) + Handles null at 153 +96: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (134) + Handles null at 153 +97: LocalLoad(Ljava/lang/Object;,0) (134) + Handles null at 153 +98: Constant(I,0) (134) + Handles null at 153 +99: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (134) + Handles null at 153 +100: Return(I) (134) + Handles null at 153 +101: LocalLoad(Ljava/lang/Object;,5) (135) + Handles null at 153 +102: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (137) + Handles null at 153 +103: Constant(I,2) (140) + Handles null at 153 +104: ConditionalBranch(I,ne,119) (141) + Handles null at 153 +105: LocalLoad(Ljava/lang/Object;,3) (144) + Handles null at 153 +106: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (145) + Handles null at 153 +107: LocalLoad(I,2) (148) + Handles null at 153 +108: New(Ljava_cup/nonassoc_action;,0) (149) + Handles null at 153 +109: Dup(1,0) (152) + Handles null at 153 +110: Invoke(SPECIAL,Ljava_cup/nonassoc_action;,,()V) (153) + Handles null at 153 +111: ArrayStore(Ljava/lang/Object;) (156) + Handles null at 153 +112: Constant(I,1) (157) + Handles null at 153 +113: Constant(Ljava/lang/String;,"java_cup/lalr_state") (158) + Handles null at 153 +114: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (158) + Handles null at 153 +115: LocalLoad(Ljava/lang/Object;,0) (158) + Handles null at 153 +116: Constant(I,0) (158) + Handles null at 153 +117: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (158) + Handles null at 153 +118: Return(I) (158) + Handles null at 153 +119: New(Ljava_cup/internal_error;,0) (159) + Handles null at 153 +120: Dup(1,0) (162) + Handles null at 153 +121: Constant(Ljava/lang/String;,"Unable to resolve conflict correctly") (163) + Handles null at 153 +122: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (165) + Handles null at 153 +123: Throw() (168) + Handles null at 153 +124: LocalLoad(Ljava/lang/Object;,5) (169) + Handles null at 153 +125: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (171) + Handles null at 153 +126: Constant(I,-1) (174) + Handles null at 153 +127: ConditionalBranch(I,le,146) (175) + Handles null at 153 +128: LocalLoad(Ljava/lang/Object;,3) (178) + Handles null at 153 +129: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (179) + Handles null at 153 +130: LocalLoad(I,2) (182) + Handles null at 153 +131: LocalLoad(Ljava/lang/Object;,0) (183) + Handles null at 153 +132: LocalLoad(Ljava/lang/Object;,3) (184) + Handles null at 153 +133: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (185) + Handles null at 153 +134: LocalLoad(I,2) (188) + Handles null at 153 +135: ArrayLoad(Ljava/lang/Object;) (189) + Handles null at 153 +136: LocalLoad(Ljava/lang/Object;,4) (190) + Handles null at 153 +137: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_shift,(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;) (192) + Handles null at 153 +138: ArrayStore(Ljava/lang/Object;) (195) + Handles null at 153 +139: Constant(I,1) (196) + Handles null at 153 +140: Constant(Ljava/lang/String;,"java_cup/lalr_state") (197) + Handles null at 153 +141: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (197) + Handles null at 153 +142: LocalLoad(Ljava/lang/Object;,0) (197) + Handles null at 153 +143: Constant(I,0) (197) + Handles null at 153 +144: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (197) + Handles null at 153 +145: Return(I) (197) + Handles null at 153 +146: Constant(I,0) (198) + Handles null at 153 +147: Constant(Ljava/lang/String;,"java_cup/lalr_state") (199) + Handles null at 153 +148: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (199) + Handles null at 153 +149: LocalLoad(Ljava/lang/Object;,0) (199) + Handles null at 153 +150: Constant(I,0) (199) + Handles null at 153 +151: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (199) + Handles null at 153 +152: Return(I) (199) + Handles null at 153 +153: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +154: Constant(Ljava/lang/String;,"fix_with_precedence(Ljava_cup/production;ILjava_cup/parse_action_row;Ljava_cup/parse_action;)Z") (0) +155: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +156: Constant(I,1) (0) +157: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +158: Throw() (0) +Instrumenting insert_action (Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (1) +2: LocalLoad(I,3) (4) +3: ConditionalBranch(I,ne,13) (5) +4: LocalLoad(Ljava/lang/Object;,2) (8) +5: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (9) +6: LocalLoad(I,3) (12) +7: ConditionalBranch(I,ne,13) (13) +8: New(Ljava_cup/internal_error;,0) (16) +9: Dup(1,0) (19) +10: Constant(Ljava/lang/String;,"Conflict resolution of bogus actions") (20) +11: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (22) +12: Throw() (25) +13: LocalLoad(Ljava/lang/Object;,1) (26) +14: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (27) +15: LocalLoad(I,3) (30) +16: ConditionalBranch(I,ne,19) (31) +17: LocalLoad(Ljava/lang/Object;,1) (34) +18: Return(Ljava/lang/Object;) (35) +19: LocalLoad(Ljava/lang/Object;,2) (36) +20: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (37) +21: LocalLoad(I,3) (40) +22: ConditionalBranch(I,ne,25) (41) +23: LocalLoad(Ljava/lang/Object;,2) (44) +24: Return(Ljava/lang/Object;) (45) +25: New(Ljava_cup/internal_error;,0) (46) +26: Dup(1,0) (49) +27: Constant(Ljava/lang/String;,"Conflict resolution of bogus actions") (50) +28: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (52) +29: Throw() (55) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"insert_action(Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 44 +5: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (1) + Handles null at 44 +6: LocalLoad(I,3) (4) + Handles null at 44 +7: ConditionalBranch(I,ne,17) (5) + Handles null at 44 +8: LocalLoad(Ljava/lang/Object;,2) (8) + Handles null at 44 +9: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (9) + Handles null at 44 +10: LocalLoad(I,3) (12) + Handles null at 44 +11: ConditionalBranch(I,ne,17) (13) + Handles null at 44 +12: New(Ljava_cup/internal_error;,0) (16) + Handles null at 44 +13: Dup(1,0) (19) + Handles null at 44 +14: Constant(Ljava/lang/String;,"Conflict resolution of bogus actions") (20) + Handles null at 44 +15: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (22) + Handles null at 44 +16: Throw() (25) + Handles null at 44 +17: LocalLoad(Ljava/lang/Object;,1) (26) + Handles null at 44 +18: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (27) + Handles null at 44 +19: LocalLoad(I,3) (30) + Handles null at 44 +20: ConditionalBranch(I,ne,28) (31) + Handles null at 44 +21: LocalLoad(Ljava/lang/Object;,1) (34) + Handles null at 44 +22: Constant(Ljava/lang/String;,"java_cup/lalr_state") (35) + Handles null at 44 +23: Constant(Ljava/lang/String;,"insert_action(Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;") (35) + Handles null at 44 +24: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 44 +25: Constant(I,0) (35) + Handles null at 44 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 44 +27: Return(Ljava/lang/Object;) (35) + Handles null at 44 +28: LocalLoad(Ljava/lang/Object;,2) (36) + Handles null at 44 +29: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (37) + Handles null at 44 +30: LocalLoad(I,3) (40) + Handles null at 44 +31: ConditionalBranch(I,ne,39) (41) + Handles null at 44 +32: LocalLoad(Ljava/lang/Object;,2) (44) + Handles null at 44 +33: Constant(Ljava/lang/String;,"java_cup/lalr_state") (45) + Handles null at 44 +34: Constant(Ljava/lang/String;,"insert_action(Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;") (45) + Handles null at 44 +35: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 44 +36: Constant(I,0) (45) + Handles null at 44 +37: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (45) + Handles null at 44 +38: Return(Ljava/lang/Object;) (45) + Handles null at 44 +39: New(Ljava_cup/internal_error;,0) (46) + Handles null at 44 +40: Dup(1,0) (49) + Handles null at 44 +41: Constant(Ljava/lang/String;,"Conflict resolution of bogus actions") (50) + Handles null at 44 +42: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (52) + Handles null at 44 +43: Throw() (55) + Handles null at 44 +44: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +45: Constant(Ljava/lang/String;,"insert_action(Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;") (0) +46: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +47: Constant(I,1) (0) +48: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +49: Throw() (0) +Instrumenting insert_shift (Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Constant(I,1) (3) +4: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_action,(Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;) (4) +5: Return(Ljava/lang/Object;) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"insert_shift(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 15 +7: Constant(I,1) (3) + Handles null at 15 +8: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_action,(Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;) (4) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/lalr_state") (7) + Handles null at 15 +10: Constant(Ljava/lang/String;,"insert_shift(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;") (7) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 15 +12: Constant(I,0) (7) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 15 +14: Return(Ljava/lang/Object;) (7) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +16: Constant(Ljava/lang/String;,"insert_shift(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting insert_reduce (Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Constant(I,2) (3) +4: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_action,(Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;) (4) +5: Return(Ljava/lang/Object;) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"insert_reduce(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 15 +7: Constant(I,2) (3) + Handles null at 15 +8: Invoke(VIRTUAL,Ljava_cup/lalr_state;,insert_action,(Ljava_cup/parse_action;Ljava_cup/parse_action;I)Ljava_cup/parse_action;) (4) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/lalr_state") (7) + Handles null at 15 +10: Constant(Ljava/lang/String;,"insert_reduce(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;") (7) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 15 +12: Constant(I,0) (7) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 15 +14: Return(Ljava/lang/Object;) (7) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +16: Constant(Ljava/lang/String;,"insert_reduce(Ljava_cup/parse_action;Ljava_cup/parse_action;)Ljava_cup/parse_action;") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting report_conflicts (Ljava_cup/terminal_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (4) +3: LocalStore(Ljava/lang/Object;,6) (7) +4: LocalLoad(Ljava/lang/Object;,6) (9) +5: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) +6: Constant(I,0) (16) +7: ConditionalBranch(I,eq,85) (16) +8: LocalLoad(Ljava/lang/Object;,6) (19) +9: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) +10: CheckCast(Ljava_cup/lalr_item;) (26) +11: LocalStore(Ljava/lang/Object;,2) (29) +12: LocalLoad(Ljava/lang/Object;,2) (30) +13: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (31) +14: Constant(I,0) (34) +15: ConditionalBranch(I,eq,4) (34) +16: Constant(I,0) (37) +17: LocalStore(I,5) (38) +18: LocalLoad(Ljava/lang/Object;,0) (40) +19: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (41) +20: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (44) +21: LocalStore(Ljava/lang/Object;,7) (47) +22: LocalLoad(Ljava/lang/Object;,7) (49) +23: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (51) +24: Constant(I,0) (56) +25: ConditionalBranch(I,eq,57) (56) +26: LocalLoad(Ljava/lang/Object;,7) (59) +27: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (61) +28: CheckCast(Ljava_cup/lalr_item;) (66) +29: LocalStore(Ljava/lang/Object;,3) (69) +30: LocalLoad(Ljava/lang/Object;,2) (70) +31: LocalLoad(Ljava/lang/Object;,3) (71) +32: ConditionalBranch(Ljava/lang/Object;,ne,35) (72) +33: Constant(I,1) (75) +34: LocalStore(I,5) (76) +35: LocalLoad(Ljava/lang/Object;,2) (78) +36: LocalLoad(Ljava/lang/Object;,3) (79) +37: ConditionalBranch(Ljava/lang/Object;,eq,22) (80) +38: LocalLoad(Ljava/lang/Object;,3) (83) +39: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (84) +40: Constant(I,0) (87) +41: ConditionalBranch(I,eq,22) (87) +42: LocalLoad(I,5) (90) +43: Constant(I,0) (92) +44: ConditionalBranch(I,eq,22) (92) +45: LocalLoad(Ljava/lang/Object;,3) (95) +46: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (96) +47: LocalLoad(Ljava/lang/Object;,2) (99) +48: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (100) +49: Invoke(VIRTUAL,Ljava_cup/terminal_set;,intersects,(Ljava_cup/terminal_set;)Z) (103) +50: Constant(I,0) (106) +51: ConditionalBranch(I,eq,22) (106) +52: LocalLoad(Ljava/lang/Object;,0) (109) +53: LocalLoad(Ljava/lang/Object;,2) (110) +54: LocalLoad(Ljava/lang/Object;,3) (111) +55: Invoke(VIRTUAL,Ljava_cup/lalr_state;,report_reduce_reduce,(Ljava_cup/lalr_item;Ljava_cup/lalr_item;)V) (112) +56: Goto(22) (115) +57: LocalLoad(Ljava/lang/Object;,2) (118) +58: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (119) +59: LocalStore(Ljava/lang/Object;,7) (122) +60: Constant(I,0) (124) +61: LocalStore(I,8) (125) +62: LocalLoad(I,8) (127) +63: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (129) +64: ConditionalBranch(I,ge,84) (132) +65: LocalLoad(Ljava/lang/Object;,1) (135) +66: LocalLoad(I,8) (136) +67: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (138) +68: Constant(I,0) (141) +69: ConditionalBranch(I,eq,79) (141) +70: LocalLoad(Ljava/lang/Object;,7) (144) +71: LocalLoad(I,8) (146) +72: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (148) +73: Constant(I,0) (151) +74: ConditionalBranch(I,eq,79) (151) +75: LocalLoad(Ljava/lang/Object;,0) (154) +76: LocalLoad(Ljava/lang/Object;,2) (155) +77: LocalLoad(I,8) (156) +78: Invoke(VIRTUAL,Ljava_cup/lalr_state;,report_shift_reduce,(Ljava_cup/lalr_item;I)V) (158) +79: LocalLoad(I,8) (161) +80: Constant(I,1) (161) +81: BinaryOp(I,add) (161) +82: LocalStore(I,8) (161) +83: Goto(62) (164) +84: Goto(4) (167) +85: Return(V) (170) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"report_conflicts(Ljava_cup/terminal_set;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 95 +5: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (1) + Handles null at 95 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (4) + Handles null at 95 +7: LocalStore(Ljava/lang/Object;,6) (7) + Handles null at 95 +8: LocalLoad(Ljava/lang/Object;,6) (9) + Handles null at 95 +9: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) + Handles null at 95 +10: Constant(I,0) (16) + Handles null at 95 +11: ConditionalBranch(I,eq,89) (16) + Handles null at 95 +12: LocalLoad(Ljava/lang/Object;,6) (19) + Handles null at 95 +13: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) + Handles null at 95 +14: CheckCast(Ljava_cup/lalr_item;) (26) + Handles null at 95 +15: LocalStore(Ljava/lang/Object;,2) (29) + Handles null at 95 +16: LocalLoad(Ljava/lang/Object;,2) (30) + Handles null at 95 +17: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (31) + Handles null at 95 +18: Constant(I,0) (34) + Handles null at 95 +19: ConditionalBranch(I,eq,8) (34) + Handles null at 95 +20: Constant(I,0) (37) + Handles null at 95 +21: LocalStore(I,5) (38) + Handles null at 95 +22: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 95 +23: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (41) + Handles null at 95 +24: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (44) + Handles null at 95 +25: LocalStore(Ljava/lang/Object;,7) (47) + Handles null at 95 +26: LocalLoad(Ljava/lang/Object;,7) (49) + Handles null at 95 +27: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (51) + Handles null at 95 +28: Constant(I,0) (56) + Handles null at 95 +29: ConditionalBranch(I,eq,61) (56) + Handles null at 95 +30: LocalLoad(Ljava/lang/Object;,7) (59) + Handles null at 95 +31: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (61) + Handles null at 95 +32: CheckCast(Ljava_cup/lalr_item;) (66) + Handles null at 95 +33: LocalStore(Ljava/lang/Object;,3) (69) + Handles null at 95 +34: LocalLoad(Ljava/lang/Object;,2) (70) + Handles null at 95 +35: LocalLoad(Ljava/lang/Object;,3) (71) + Handles null at 95 +36: ConditionalBranch(Ljava/lang/Object;,ne,39) (72) + Handles null at 95 +37: Constant(I,1) (75) + Handles null at 95 +38: LocalStore(I,5) (76) + Handles null at 95 +39: LocalLoad(Ljava/lang/Object;,2) (78) + Handles null at 95 +40: LocalLoad(Ljava/lang/Object;,3) (79) + Handles null at 95 +41: ConditionalBranch(Ljava/lang/Object;,eq,26) (80) + Handles null at 95 +42: LocalLoad(Ljava/lang/Object;,3) (83) + Handles null at 95 +43: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (84) + Handles null at 95 +44: Constant(I,0) (87) + Handles null at 95 +45: ConditionalBranch(I,eq,26) (87) + Handles null at 95 +46: LocalLoad(I,5) (90) + Handles null at 95 +47: Constant(I,0) (92) + Handles null at 95 +48: ConditionalBranch(I,eq,26) (92) + Handles null at 95 +49: LocalLoad(Ljava/lang/Object;,3) (95) + Handles null at 95 +50: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (96) + Handles null at 95 +51: LocalLoad(Ljava/lang/Object;,2) (99) + Handles null at 95 +52: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (100) + Handles null at 95 +53: Invoke(VIRTUAL,Ljava_cup/terminal_set;,intersects,(Ljava_cup/terminal_set;)Z) (103) + Handles null at 95 +54: Constant(I,0) (106) + Handles null at 95 +55: ConditionalBranch(I,eq,26) (106) + Handles null at 95 +56: LocalLoad(Ljava/lang/Object;,0) (109) + Handles null at 95 +57: LocalLoad(Ljava/lang/Object;,2) (110) + Handles null at 95 +58: LocalLoad(Ljava/lang/Object;,3) (111) + Handles null at 95 +59: Invoke(VIRTUAL,Ljava_cup/lalr_state;,report_reduce_reduce,(Ljava_cup/lalr_item;Ljava_cup/lalr_item;)V) (112) + Handles null at 95 +60: Goto(26) (115) + Handles null at 95 +61: LocalLoad(Ljava/lang/Object;,2) (118) + Handles null at 95 +62: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (119) + Handles null at 95 +63: LocalStore(Ljava/lang/Object;,7) (122) + Handles null at 95 +64: Constant(I,0) (124) + Handles null at 95 +65: LocalStore(I,8) (125) + Handles null at 95 +66: LocalLoad(I,8) (127) + Handles null at 95 +67: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (129) + Handles null at 95 +68: ConditionalBranch(I,ge,88) (132) + Handles null at 95 +69: LocalLoad(Ljava/lang/Object;,1) (135) + Handles null at 95 +70: LocalLoad(I,8) (136) + Handles null at 95 +71: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (138) + Handles null at 95 +72: Constant(I,0) (141) + Handles null at 95 +73: ConditionalBranch(I,eq,83) (141) + Handles null at 95 +74: LocalLoad(Ljava/lang/Object;,7) (144) + Handles null at 95 +75: LocalLoad(I,8) (146) + Handles null at 95 +76: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (148) + Handles null at 95 +77: Constant(I,0) (151) + Handles null at 95 +78: ConditionalBranch(I,eq,83) (151) + Handles null at 95 +79: LocalLoad(Ljava/lang/Object;,0) (154) + Handles null at 95 +80: LocalLoad(Ljava/lang/Object;,2) (155) + Handles null at 95 +81: LocalLoad(I,8) (156) + Handles null at 95 +82: Invoke(VIRTUAL,Ljava_cup/lalr_state;,report_shift_reduce,(Ljava_cup/lalr_item;I)V) (158) + Handles null at 95 +83: LocalLoad(I,8) (161) + Handles null at 95 +84: Constant(I,1) (161) + Handles null at 95 +85: BinaryOp(I,add) (161) + Handles null at 95 +86: LocalStore(I,8) (161) + Handles null at 95 +87: Goto(66) (164) + Handles null at 95 +88: Goto(8) (167) + Handles null at 95 +89: Constant(Ljava/lang/String;,"java_cup/lalr_state") (170) + Handles null at 95 +90: Constant(Ljava/lang/String;,"report_conflicts(Ljava_cup/terminal_set;)V") (170) + Handles null at 95 +91: LocalLoad(Ljava/lang/Object;,0) (170) + Handles null at 95 +92: Constant(I,0) (170) + Handles null at 95 +93: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (170) + Handles null at 95 +94: Return(V) (170) + Handles null at 95 +95: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +96: Constant(Ljava/lang/String;,"report_conflicts(Ljava_cup/terminal_set;)V") (0) +97: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +98: Constant(I,1) (0) +99: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +100: Throw() (0) +Instrumenting report_reduce_reduce (Ljava_cup/lalr_item;Ljava_cup/lalr_item;)V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,3) (1) +2: New(Ljava/lang/StringBuilder;,0) (2) +3: Dup(1,0) (5) +4: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (6) +5: Constant(Ljava/lang/String;,"*** Reduce/Reduce conflict found in state #") (9) +6: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) +7: LocalLoad(Ljava/lang/Object;,0) (14) +8: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (15) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (18) +10: Constant(Ljava/lang/String;,"\ +") (21) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) +12: Constant(Ljava/lang/String;," between ") (26) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +14: LocalLoad(Ljava/lang/Object;,1) (31) +15: Invoke(VIRTUAL,Ljava_cup/lalr_item;,to_simple_string,()Ljava/lang/String;) (32) +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (35) +17: Constant(Ljava/lang/String;,"\ +") (38) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) +19: Constant(Ljava/lang/String;," and ") (43) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (45) +21: LocalLoad(Ljava/lang/Object;,2) (48) +22: Invoke(VIRTUAL,Ljava_cup/lalr_item;,to_simple_string,()Ljava/lang/String;) (49) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (52) +24: Constant(Ljava/lang/String;,"\ +") (55) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (57) +26: Constant(Ljava/lang/String;," under symbols: {") (60) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (62) +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (65) +29: LocalStore(Ljava/lang/Object;,4) (68) +30: Constant(I,0) (70) +31: LocalStore(I,5) (71) +32: LocalLoad(I,5) (73) +33: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (75) +34: ConditionalBranch(I,ge,78) (78) +35: LocalLoad(Ljava/lang/Object;,1) (81) +36: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (82) +37: LocalLoad(I,5) (85) +38: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (87) +39: Constant(I,0) (90) +40: ConditionalBranch(I,eq,73) (90) +41: LocalLoad(Ljava/lang/Object;,2) (93) +42: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (94) +43: LocalLoad(I,5) (97) +44: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (99) +45: Constant(I,0) (102) +46: ConditionalBranch(I,eq,73) (102) +47: LocalLoad(I,3) (105) +48: Constant(I,0) (106) +49: ConditionalBranch(I,eq,60) (106) +50: New(Ljava/lang/StringBuilder;,0) (109) +51: Dup(1,0) (112) +52: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (113) +53: LocalLoad(Ljava/lang/Object;,4) (116) +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (118) +55: Constant(Ljava/lang/String;,", ") (121) +56: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (123) +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (126) +58: LocalStore(Ljava/lang/Object;,4) (129) +59: Goto(62) (131) +60: Constant(I,1) (134) +61: LocalStore(I,3) (135) +62: New(Ljava/lang/StringBuilder;,0) (136) +63: Dup(1,0) (139) +64: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (140) +65: LocalLoad(Ljava/lang/Object;,4) (143) +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (145) +67: LocalLoad(I,5) (148) +68: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (150) +69: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (153) +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) +71: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (159) +72: LocalStore(Ljava/lang/Object;,4) (162) +73: LocalLoad(I,5) (164) +74: Constant(I,1) (164) +75: BinaryOp(I,add) (164) +76: LocalStore(I,5) (164) +77: Goto(32) (167) +78: New(Ljava/lang/StringBuilder;,0) (170) +79: Dup(1,0) (173) +80: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (174) +81: LocalLoad(Ljava/lang/Object;,4) (177) +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (179) +83: Constant(Ljava/lang/String;,"}\ + Resolved in favor of ") (182) +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (184) +85: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (187) +86: LocalStore(Ljava/lang/Object;,4) (190) +87: LocalLoad(Ljava/lang/Object;,1) (192) +88: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (193) +89: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (196) +90: LocalLoad(Ljava/lang/Object;,2) (199) +91: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (200) +92: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (203) +93: ConditionalBranch(I,ge,104) (206) +94: New(Ljava/lang/StringBuilder;,0) (209) +95: Dup(1,0) (212) +96: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (213) +97: LocalLoad(Ljava/lang/Object;,4) (216) +98: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (218) +99: Constant(Ljava/lang/String;,"the first production.\ +") (221) +100: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (223) +101: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (226) +102: LocalStore(Ljava/lang/Object;,4) (229) +103: Goto(113) (231) +104: New(Ljava/lang/StringBuilder;,0) (234) +105: Dup(1,0) (237) +106: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (238) +107: LocalLoad(Ljava/lang/Object;,4) (241) +108: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (243) +109: Constant(Ljava/lang/String;,"the second production.\ +") (246) +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (248) +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (251) +112: LocalStore(Ljava/lang/Object;,4) (254) +113: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (256) +114: Constant(I,1) (259) +115: BinaryOp(I,add) (260) +116: Put(I,STATIC,Ljava_cup/emit;,num_conflicts) (261) +117: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (264) +118: LocalLoad(Ljava/lang/Object;,4) (267) +119: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (269) +120: Return(V) (272) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"report_reduce_reduce(Ljava_cup/lalr_item;Ljava_cup/lalr_item;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 130 +5: LocalStore(I,3) (1) + Handles null at 130 +6: New(Ljava/lang/StringBuilder;,0) (2) + Handles null at 130 +7: Dup(1,0) (5) + Handles null at 130 +8: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (6) + Handles null at 130 +9: Constant(Ljava/lang/String;,"*** Reduce/Reduce conflict found in state #") (9) + Handles null at 130 +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) + Handles null at 130 +11: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 130 +12: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (15) + Handles null at 130 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (18) + Handles null at 130 +14: Constant(Ljava/lang/String;,"\ +") (21) + Handles null at 130 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) + Handles null at 130 +16: Constant(Ljava/lang/String;," between ") (26) + Handles null at 130 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 130 +18: LocalLoad(Ljava/lang/Object;,1) (31) + Handles null at 130 +19: Invoke(VIRTUAL,Ljava_cup/lalr_item;,to_simple_string,()Ljava/lang/String;) (32) + Handles null at 130 +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (35) + Handles null at 130 +21: Constant(Ljava/lang/String;,"\ +") (38) + Handles null at 130 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) + Handles null at 130 +23: Constant(Ljava/lang/String;," and ") (43) + Handles null at 130 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (45) + Handles null at 130 +25: LocalLoad(Ljava/lang/Object;,2) (48) + Handles null at 130 +26: Invoke(VIRTUAL,Ljava_cup/lalr_item;,to_simple_string,()Ljava/lang/String;) (49) + Handles null at 130 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (52) + Handles null at 130 +28: Constant(Ljava/lang/String;,"\ +") (55) + Handles null at 130 +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (57) + Handles null at 130 +30: Constant(Ljava/lang/String;," under symbols: {") (60) + Handles null at 130 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (62) + Handles null at 130 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (65) + Handles null at 130 +33: LocalStore(Ljava/lang/Object;,4) (68) + Handles null at 130 +34: Constant(I,0) (70) + Handles null at 130 +35: LocalStore(I,5) (71) + Handles null at 130 +36: LocalLoad(I,5) (73) + Handles null at 130 +37: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (75) + Handles null at 130 +38: ConditionalBranch(I,ge,82) (78) + Handles null at 130 +39: LocalLoad(Ljava/lang/Object;,1) (81) + Handles null at 130 +40: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (82) + Handles null at 130 +41: LocalLoad(I,5) (85) + Handles null at 130 +42: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (87) + Handles null at 130 +43: Constant(I,0) (90) + Handles null at 130 +44: ConditionalBranch(I,eq,77) (90) + Handles null at 130 +45: LocalLoad(Ljava/lang/Object;,2) (93) + Handles null at 130 +46: Invoke(VIRTUAL,Ljava_cup/lalr_item;,lookahead,()Ljava_cup/terminal_set;) (94) + Handles null at 130 +47: LocalLoad(I,5) (97) + Handles null at 130 +48: Invoke(VIRTUAL,Ljava_cup/terminal_set;,contains,(I)Z) (99) + Handles null at 130 +49: Constant(I,0) (102) + Handles null at 130 +50: ConditionalBranch(I,eq,77) (102) + Handles null at 130 +51: LocalLoad(I,3) (105) + Handles null at 130 +52: Constant(I,0) (106) + Handles null at 130 +53: ConditionalBranch(I,eq,64) (106) + Handles null at 130 +54: New(Ljava/lang/StringBuilder;,0) (109) + Handles null at 130 +55: Dup(1,0) (112) + Handles null at 130 +56: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (113) + Handles null at 130 +57: LocalLoad(Ljava/lang/Object;,4) (116) + Handles null at 130 +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (118) + Handles null at 130 +59: Constant(Ljava/lang/String;,", ") (121) + Handles null at 130 +60: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (123) + Handles null at 130 +61: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (126) + Handles null at 130 +62: LocalStore(Ljava/lang/Object;,4) (129) + Handles null at 130 +63: Goto(66) (131) + Handles null at 130 +64: Constant(I,1) (134) + Handles null at 130 +65: LocalStore(I,3) (135) + Handles null at 130 +66: New(Ljava/lang/StringBuilder;,0) (136) + Handles null at 130 +67: Dup(1,0) (139) + Handles null at 130 +68: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (140) + Handles null at 130 +69: LocalLoad(Ljava/lang/Object;,4) (143) + Handles null at 130 +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (145) + Handles null at 130 +71: LocalLoad(I,5) (148) + Handles null at 130 +72: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (150) + Handles null at 130 +73: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (153) + Handles null at 130 +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) + Handles null at 130 +75: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (159) + Handles null at 130 +76: LocalStore(Ljava/lang/Object;,4) (162) + Handles null at 130 +77: LocalLoad(I,5) (164) + Handles null at 130 +78: Constant(I,1) (164) + Handles null at 130 +79: BinaryOp(I,add) (164) + Handles null at 130 +80: LocalStore(I,5) (164) + Handles null at 130 +81: Goto(36) (167) + Handles null at 130 +82: New(Ljava/lang/StringBuilder;,0) (170) + Handles null at 130 +83: Dup(1,0) (173) + Handles null at 130 +84: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (174) + Handles null at 130 +85: LocalLoad(Ljava/lang/Object;,4) (177) + Handles null at 130 +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (179) + Handles null at 130 +87: Constant(Ljava/lang/String;,"}\ + Resolved in favor of ") (182) + Handles null at 130 +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (184) + Handles null at 130 +89: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (187) + Handles null at 130 +90: LocalStore(Ljava/lang/Object;,4) (190) + Handles null at 130 +91: LocalLoad(Ljava/lang/Object;,1) (192) + Handles null at 130 +92: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (193) + Handles null at 130 +93: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (196) + Handles null at 130 +94: LocalLoad(Ljava/lang/Object;,2) (199) + Handles null at 130 +95: Invoke(VIRTUAL,Ljava_cup/lalr_item;,the_production,()Ljava_cup/production;) (200) + Handles null at 130 +96: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (203) + Handles null at 130 +97: ConditionalBranch(I,ge,108) (206) + Handles null at 130 +98: New(Ljava/lang/StringBuilder;,0) (209) + Handles null at 130 +99: Dup(1,0) (212) + Handles null at 130 +100: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (213) + Handles null at 130 +101: LocalLoad(Ljava/lang/Object;,4) (216) + Handles null at 130 +102: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (218) + Handles null at 130 +103: Constant(Ljava/lang/String;,"the first production.\ +") (221) + Handles null at 130 +104: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (223) + Handles null at 130 +105: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (226) + Handles null at 130 +106: LocalStore(Ljava/lang/Object;,4) (229) + Handles null at 130 +107: Goto(117) (231) + Handles null at 130 +108: New(Ljava/lang/StringBuilder;,0) (234) + Handles null at 130 +109: Dup(1,0) (237) + Handles null at 130 +110: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (238) + Handles null at 130 +111: LocalLoad(Ljava/lang/Object;,4) (241) + Handles null at 130 +112: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (243) + Handles null at 130 +113: Constant(Ljava/lang/String;,"the second production.\ +") (246) + Handles null at 130 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (248) + Handles null at 130 +115: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (251) + Handles null at 130 +116: LocalStore(Ljava/lang/Object;,4) (254) + Handles null at 130 +117: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (256) + Handles null at 130 +118: Constant(I,1) (259) + Handles null at 130 +119: BinaryOp(I,add) (260) + Handles null at 130 +120: Put(I,STATIC,Ljava_cup/emit;,num_conflicts) (261) + Handles null at 130 +121: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (264) + Handles null at 130 +122: LocalLoad(Ljava/lang/Object;,4) (267) + Handles null at 130 +123: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (269) + Handles null at 130 +124: Constant(Ljava/lang/String;,"java_cup/lalr_state") (272) + Handles null at 130 +125: Constant(Ljava/lang/String;,"report_reduce_reduce(Ljava_cup/lalr_item;Ljava_cup/lalr_item;)V") (272) + Handles null at 130 +126: LocalLoad(Ljava/lang/Object;,0) (272) + Handles null at 130 +127: Constant(I,0) (272) + Handles null at 130 +128: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (272) + Handles null at 130 +129: Return(V) (272) + Handles null at 130 +130: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +131: Constant(Ljava/lang/String;,"report_reduce_reduce(Ljava_cup/lalr_item;Ljava_cup/lalr_item;)V") (0) +132: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +133: Constant(I,1) (0) +134: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +135: Throw() (0) +Instrumenting report_shift_reduce (Ljava_cup/lalr_item;I)V: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Constant(Ljava/lang/String;,"*** Shift/Reduce conflict found in state #") (7) +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) +5: LocalLoad(Ljava/lang/Object;,0) (12) +6: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (13) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (16) +8: Constant(Ljava/lang/String;,"\ +") (19) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +10: Constant(Ljava/lang/String;," between ") (24) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) +12: LocalLoad(Ljava/lang/Object;,1) (29) +13: Invoke(VIRTUAL,Ljava_cup/lalr_item;,to_simple_string,()Ljava/lang/String;) (30) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) +15: Constant(Ljava/lang/String;,"\ +") (36) +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (41) +18: LocalStore(Ljava/lang/Object;,5) (44) +19: LocalLoad(Ljava/lang/Object;,0) (46) +20: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (47) +21: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (50) +22: LocalStore(Ljava/lang/Object;,6) (53) +23: LocalLoad(Ljava/lang/Object;,6) (55) +24: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (57) +25: Constant(I,0) (62) +26: ConditionalBranch(I,eq,64) (62) +27: LocalLoad(Ljava/lang/Object;,6) (65) +28: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (67) +29: CheckCast(Ljava_cup/lalr_item;) (72) +30: LocalStore(Ljava/lang/Object;,3) (75) +31: LocalLoad(Ljava/lang/Object;,3) (76) +32: LocalLoad(Ljava/lang/Object;,1) (77) +33: ConditionalBranch(Ljava/lang/Object;,eq,23) (78) +34: LocalLoad(Ljava/lang/Object;,3) (81) +35: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (82) +36: Constant(I,0) (85) +37: ConditionalBranch(I,ne,23) (85) +38: LocalLoad(Ljava/lang/Object;,3) (88) +39: Invoke(VIRTUAL,Ljava_cup/lalr_item;,symbol_after_dot,()Ljava_cup/symbol;) (89) +40: LocalStore(Ljava/lang/Object;,4) (92) +41: LocalLoad(Ljava/lang/Object;,4) (94) +42: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (96) +43: Constant(I,0) (99) +44: ConditionalBranch(I,ne,23) (99) +45: LocalLoad(Ljava/lang/Object;,4) (102) +46: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (104) +47: LocalLoad(I,2) (107) +48: ConditionalBranch(I,ne,23) (108) +49: New(Ljava/lang/StringBuilder;,0) (111) +50: Dup(1,0) (114) +51: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (115) +52: LocalLoad(Ljava/lang/Object;,5) (118) +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (120) +54: Constant(Ljava/lang/String;," and ") (123) +55: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (125) +56: LocalLoad(Ljava/lang/Object;,3) (128) +57: Invoke(VIRTUAL,Ljava_cup/lalr_item;,to_simple_string,()Ljava/lang/String;) (129) +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (132) +59: Constant(Ljava/lang/String;,"\ +") (135) +60: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (137) +61: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (140) +62: LocalStore(Ljava/lang/Object;,5) (143) +63: Goto(23) (145) +64: New(Ljava/lang/StringBuilder;,0) (148) +65: Dup(1,0) (151) +66: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (152) +67: LocalLoad(Ljava/lang/Object;,5) (155) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (157) +69: Constant(Ljava/lang/String;," under symbol ") (160) +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (162) +71: LocalLoad(I,2) (165) +72: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (166) +73: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (169) +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (172) +75: Constant(Ljava/lang/String;,"\ +") (175) +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (177) +77: Constant(Ljava/lang/String;," Resolved in favor of shifting.\ +") (180) +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (182) +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (185) +80: LocalStore(Ljava/lang/Object;,5) (188) +81: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (190) +82: Constant(I,1) (193) +83: BinaryOp(I,add) (194) +84: Put(I,STATIC,Ljava_cup/emit;,num_conflicts) (195) +85: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (198) +86: LocalLoad(Ljava/lang/Object;,5) (201) +87: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (203) +88: Return(V) (206) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"report_shift_reduce(Ljava_cup/lalr_item;I)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 98 +5: Dup(1,0) (3) + Handles null at 98 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 98 +7: Constant(Ljava/lang/String;,"*** Shift/Reduce conflict found in state #") (7) + Handles null at 98 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) + Handles null at 98 +9: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 98 +10: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (13) + Handles null at 98 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (16) + Handles null at 98 +12: Constant(Ljava/lang/String;,"\ +") (19) + Handles null at 98 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 98 +14: Constant(Ljava/lang/String;," between ") (24) + Handles null at 98 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) + Handles null at 98 +16: LocalLoad(Ljava/lang/Object;,1) (29) + Handles null at 98 +17: Invoke(VIRTUAL,Ljava_cup/lalr_item;,to_simple_string,()Ljava/lang/String;) (30) + Handles null at 98 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) + Handles null at 98 +19: Constant(Ljava/lang/String;,"\ +") (36) + Handles null at 98 +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) + Handles null at 98 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (41) + Handles null at 98 +22: LocalStore(Ljava/lang/Object;,5) (44) + Handles null at 98 +23: LocalLoad(Ljava/lang/Object;,0) (46) + Handles null at 98 +24: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (47) + Handles null at 98 +25: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,all,()Ljava/util/Enumeration;) (50) + Handles null at 98 +26: LocalStore(Ljava/lang/Object;,6) (53) + Handles null at 98 +27: LocalLoad(Ljava/lang/Object;,6) (55) + Handles null at 98 +28: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (57) + Handles null at 98 +29: Constant(I,0) (62) + Handles null at 98 +30: ConditionalBranch(I,eq,68) (62) + Handles null at 98 +31: LocalLoad(Ljava/lang/Object;,6) (65) + Handles null at 98 +32: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (67) + Handles null at 98 +33: CheckCast(Ljava_cup/lalr_item;) (72) + Handles null at 98 +34: LocalStore(Ljava/lang/Object;,3) (75) + Handles null at 98 +35: LocalLoad(Ljava/lang/Object;,3) (76) + Handles null at 98 +36: LocalLoad(Ljava/lang/Object;,1) (77) + Handles null at 98 +37: ConditionalBranch(Ljava/lang/Object;,eq,27) (78) + Handles null at 98 +38: LocalLoad(Ljava/lang/Object;,3) (81) + Handles null at 98 +39: Invoke(VIRTUAL,Ljava_cup/lalr_item;,dot_at_end,()Z) (82) + Handles null at 98 +40: Constant(I,0) (85) + Handles null at 98 +41: ConditionalBranch(I,ne,27) (85) + Handles null at 98 +42: LocalLoad(Ljava/lang/Object;,3) (88) + Handles null at 98 +43: Invoke(VIRTUAL,Ljava_cup/lalr_item;,symbol_after_dot,()Ljava_cup/symbol;) (89) + Handles null at 98 +44: LocalStore(Ljava/lang/Object;,4) (92) + Handles null at 98 +45: LocalLoad(Ljava/lang/Object;,4) (94) + Handles null at 98 +46: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (96) + Handles null at 98 +47: Constant(I,0) (99) + Handles null at 98 +48: ConditionalBranch(I,ne,27) (99) + Handles null at 98 +49: LocalLoad(Ljava/lang/Object;,4) (102) + Handles null at 98 +50: Invoke(VIRTUAL,Ljava_cup/symbol;,index,()I) (104) + Handles null at 98 +51: LocalLoad(I,2) (107) + Handles null at 98 +52: ConditionalBranch(I,ne,27) (108) + Handles null at 98 +53: New(Ljava/lang/StringBuilder;,0) (111) + Handles null at 98 +54: Dup(1,0) (114) + Handles null at 98 +55: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (115) + Handles null at 98 +56: LocalLoad(Ljava/lang/Object;,5) (118) + Handles null at 98 +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (120) + Handles null at 98 +58: Constant(Ljava/lang/String;," and ") (123) + Handles null at 98 +59: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (125) + Handles null at 98 +60: LocalLoad(Ljava/lang/Object;,3) (128) + Handles null at 98 +61: Invoke(VIRTUAL,Ljava_cup/lalr_item;,to_simple_string,()Ljava/lang/String;) (129) + Handles null at 98 +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (132) + Handles null at 98 +63: Constant(Ljava/lang/String;,"\ +") (135) + Handles null at 98 +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (137) + Handles null at 98 +65: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (140) + Handles null at 98 +66: LocalStore(Ljava/lang/Object;,5) (143) + Handles null at 98 +67: Goto(27) (145) + Handles null at 98 +68: New(Ljava/lang/StringBuilder;,0) (148) + Handles null at 98 +69: Dup(1,0) (151) + Handles null at 98 +70: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (152) + Handles null at 98 +71: LocalLoad(Ljava/lang/Object;,5) (155) + Handles null at 98 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (157) + Handles null at 98 +73: Constant(Ljava/lang/String;," under symbol ") (160) + Handles null at 98 +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (162) + Handles null at 98 +75: LocalLoad(I,2) (165) + Handles null at 98 +76: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (166) + Handles null at 98 +77: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (169) + Handles null at 98 +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (172) + Handles null at 98 +79: Constant(Ljava/lang/String;,"\ +") (175) + Handles null at 98 +80: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (177) + Handles null at 98 +81: Constant(Ljava/lang/String;," Resolved in favor of shifting.\ +") (180) + Handles null at 98 +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (182) + Handles null at 98 +83: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (185) + Handles null at 98 +84: LocalStore(Ljava/lang/Object;,5) (188) + Handles null at 98 +85: Get(I,STATIC,Ljava_cup/emit;,num_conflicts) (190) + Handles null at 98 +86: Constant(I,1) (193) + Handles null at 98 +87: BinaryOp(I,add) (194) + Handles null at 98 +88: Put(I,STATIC,Ljava_cup/emit;,num_conflicts) (195) + Handles null at 98 +89: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (198) + Handles null at 98 +90: LocalLoad(Ljava/lang/Object;,5) (201) + Handles null at 98 +91: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (203) + Handles null at 98 +92: Constant(Ljava/lang/String;,"java_cup/lalr_state") (206) + Handles null at 98 +93: Constant(Ljava/lang/String;,"report_shift_reduce(Ljava_cup/lalr_item;I)V") (206) + Handles null at 98 +94: LocalLoad(Ljava/lang/Object;,0) (206) + Handles null at 98 +95: Constant(I,0) (206) + Handles null at 98 +96: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (206) + Handles null at 98 +97: Return(V) (206) + Handles null at 98 +98: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +99: Constant(Ljava/lang/String;,"report_shift_reduce(Ljava_cup/lalr_item;I)V") (0) +100: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +101: Constant(I,1) (0) +102: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +103: Throw() (0) +Instrumenting equals (Ljava_cup/lalr_state;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,12) (1) +3: LocalLoad(Ljava/lang/Object;,0) (4) +4: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (5) +5: LocalLoad(Ljava/lang/Object;,1) (8) +6: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (9) +7: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,equals,(Ljava_cup/lalr_item_set;)Z) (12) +8: Constant(I,0) (15) +9: ConditionalBranch(I,eq,12) (15) +10: Constant(I,1) (18) +11: Goto(13) (19) +12: Constant(I,0) (22) +13: Return(I) (23) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_state;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 23 +5: Constant(L;,null) (1) + Handles null at 23 +6: ConditionalBranch(Ljava/lang/Object;,eq,16) (1) + Handles null at 23 +7: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 23 +8: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (5) + Handles null at 23 +9: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 23 +10: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (9) + Handles null at 23 +11: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,equals,(Ljava_cup/lalr_item_set;)Z) (12) + Handles null at 23 +12: Constant(I,0) (15) + Handles null at 23 +13: ConditionalBranch(I,eq,16) (15) + Handles null at 23 +14: Constant(I,1) (18) + Handles null at 23 +15: Goto(17) (19) + Handles null at 23 +16: Constant(I,0) (22) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/lalr_state") (23) + Handles null at 23 +18: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_state;)Z") (23) + Handles null at 23 +19: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 23 +20: Constant(I,0) (23) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (23) + Handles null at 23 +22: Return(I) (23) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +24: Constant(Ljava/lang/String;,"equals(Ljava_cup/lalr_state;)Z") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/lalr_state;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/lalr_state;) (11) +9: Invoke(VIRTUAL,Ljava_cup/lalr_state;,equals,(Ljava_cup/lalr_state;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/lalr_state;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/lalr_state") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/lalr_state;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/lalr_state;,equals,(Ljava_cup/lalr_state;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/lalr_state") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,hashCode,()I) (4) +3: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Invoke(VIRTUAL,Ljava_cup/lalr_state;,items,()Ljava_cup/lalr_item_set;) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava_cup/lalr_item_set;,hashCode,()I) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/lalr_state") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"hashCode()I") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(I) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +14: Constant(Ljava/lang/String;,"hashCode()I") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Constant(Ljava/lang/String;,"lalr_state [") (7) +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) +5: LocalLoad(Ljava/lang/Object;,0) (12) +6: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (13) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (16) +8: Constant(Ljava/lang/String;,"]: ") (19) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +10: LocalLoad(Ljava/lang/Object;,0) (24) +11: Get(Ljava_cup/lalr_item_set;,NONSTATIC,Ljava_cup/lalr_state;,_items) (25) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (28) +13: Constant(Ljava/lang/String;,"\ +") (31) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (36) +16: LocalStore(Ljava/lang/Object;,1) (39) +17: LocalLoad(Ljava/lang/Object;,0) (40) +18: Invoke(VIRTUAL,Ljava_cup/lalr_state;,transitions,()Ljava_cup/lalr_transition;) (41) +19: LocalStore(Ljava/lang/Object;,2) (44) +20: LocalLoad(Ljava/lang/Object;,2) (45) +21: Constant(L;,null) (46) +22: ConditionalBranch(Ljava/lang/Object;,eq,45) (46) +23: New(Ljava/lang/StringBuilder;,0) (49) +24: Dup(1,0) (52) +25: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (53) +26: LocalLoad(Ljava/lang/Object;,1) (56) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (57) +28: LocalLoad(Ljava/lang/Object;,2) (60) +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (61) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (64) +31: LocalStore(Ljava/lang/Object;,1) (67) +32: New(Ljava/lang/StringBuilder;,0) (68) +33: Dup(1,0) (71) +34: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (72) +35: LocalLoad(Ljava/lang/Object;,1) (75) +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (76) +37: Constant(Ljava/lang/String;,"\ +") (79) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (81) +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (84) +40: LocalStore(Ljava/lang/Object;,1) (87) +41: LocalLoad(Ljava/lang/Object;,2) (88) +42: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,next,()Ljava_cup/lalr_transition;) (89) +43: LocalStore(Ljava/lang/Object;,2) (92) +44: Goto(20) (93) +45: LocalLoad(Ljava/lang/Object;,1) (96) +46: Return(Ljava/lang/Object;) (97) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 56 +5: Dup(1,0) (3) + Handles null at 56 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 56 +7: Constant(Ljava/lang/String;,"lalr_state [") (7) + Handles null at 56 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) + Handles null at 56 +9: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 56 +10: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (13) + Handles null at 56 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (16) + Handles null at 56 +12: Constant(Ljava/lang/String;,"]: ") (19) + Handles null at 56 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 56 +14: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 56 +15: Get(Ljava_cup/lalr_item_set;,NONSTATIC,Ljava_cup/lalr_state;,_items) (25) + Handles null at 56 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (28) + Handles null at 56 +17: Constant(Ljava/lang/String;,"\ +") (31) + Handles null at 56 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) + Handles null at 56 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (36) + Handles null at 56 +20: LocalStore(Ljava/lang/Object;,1) (39) + Handles null at 56 +21: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 56 +22: Invoke(VIRTUAL,Ljava_cup/lalr_state;,transitions,()Ljava_cup/lalr_transition;) (41) + Handles null at 56 +23: LocalStore(Ljava/lang/Object;,2) (44) + Handles null at 56 +24: LocalLoad(Ljava/lang/Object;,2) (45) + Handles null at 56 +25: Constant(L;,null) (46) + Handles null at 56 +26: ConditionalBranch(Ljava/lang/Object;,eq,49) (46) + Handles null at 56 +27: New(Ljava/lang/StringBuilder;,0) (49) + Handles null at 56 +28: Dup(1,0) (52) + Handles null at 56 +29: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (53) + Handles null at 56 +30: LocalLoad(Ljava/lang/Object;,1) (56) + Handles null at 56 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (57) + Handles null at 56 +32: LocalLoad(Ljava/lang/Object;,2) (60) + Handles null at 56 +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (61) + Handles null at 56 +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (64) + Handles null at 56 +35: LocalStore(Ljava/lang/Object;,1) (67) + Handles null at 56 +36: New(Ljava/lang/StringBuilder;,0) (68) + Handles null at 56 +37: Dup(1,0) (71) + Handles null at 56 +38: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (72) + Handles null at 56 +39: LocalLoad(Ljava/lang/Object;,1) (75) + Handles null at 56 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (76) + Handles null at 56 +41: Constant(Ljava/lang/String;,"\ +") (79) + Handles null at 56 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (81) + Handles null at 56 +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (84) + Handles null at 56 +44: LocalStore(Ljava/lang/Object;,1) (87) + Handles null at 56 +45: LocalLoad(Ljava/lang/Object;,2) (88) + Handles null at 56 +46: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,next,()Ljava_cup/lalr_transition;) (89) + Handles null at 56 +47: LocalStore(Ljava/lang/Object;,2) (92) + Handles null at 56 +48: Goto(24) (93) + Handles null at 56 +49: LocalLoad(Ljava/lang/Object;,1) (96) + Handles null at 56 +50: Constant(Ljava/lang/String;,"java_cup/lalr_state") (97) + Handles null at 56 +51: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (97) + Handles null at 56 +52: LocalLoad(Ljava/lang/Object;,0) (97) + Handles null at 56 +53: Constant(I,0) (97) + Handles null at 56 +54: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (97) + Handles null at 56 +55: Return(Ljava/lang/Object;) (97) + Handles null at 56 +56: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +57: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +58: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +59: Constant(I,1) (0) +60: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +61: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: New(Ljava/util/Hashtable;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (4) +3: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (7) +4: New(Ljava/util/Hashtable;,0) (10) +5: Dup(1,0) (13) +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (14) +7: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (17) +8: Constant(I,0) (20) +9: Put(I,STATIC,Ljava_cup/lalr_state;,next_index) (21) +10: Return(V) (24) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/Hashtable;,0) (0) + Handles null at 20 +5: Dup(1,0) (3) + Handles null at 20 +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (4) + Handles null at 20 +7: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all) (7) + Handles null at 20 +8: New(Ljava/util/Hashtable;,0) (10) + Handles null at 20 +9: Dup(1,0) (13) + Handles null at 20 +10: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (14) + Handles null at 20 +11: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/lalr_state;,_all_kernels) (17) + Handles null at 20 +12: Constant(I,0) (20) + Handles null at 20 +13: Put(I,STATIC,Ljava_cup/lalr_state;,next_index) (21) + Handles null at 20 +14: Constant(Ljava/lang/String;,"java_cup/lalr_state") (24) + Handles null at 20 +15: Constant(Ljava/lang/String;,"()V") (24) + Handles null at 20 +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (24) + Handles null at 20 +17: Constant(I,0) (24) + Handles null at 20 +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (24) + Handles null at 20 +19: Return(V) (24) + Handles null at 20 +20: Constant(Ljava/lang/String;,"java_cup/lalr_state") (0) +21: Constant(Ljava/lang/String;,"()V") (0) +22: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +23: Constant(I,1) (0) +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +25: Throw() (0) +Class: java_cup/lalr_transition +Instrumenting (Ljava_cup/symbol;Ljava_cup/lalr_state;Ljava_cup/lalr_transition;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: Constant(L;,null) (5) +4: ConditionalBranch(Ljava/lang/Object;,ne,10) (5) +5: New(Ljava_cup/internal_error;,0) (8) +6: Dup(1,0) (11) +7: Constant(Ljava/lang/String;,"Attempt to create transition on null symbol") (12) +8: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (14) +9: Throw() (17) +10: LocalLoad(Ljava/lang/Object;,2) (18) +11: Constant(L;,null) (19) +12: ConditionalBranch(Ljava/lang/Object;,ne,18) (19) +13: New(Ljava_cup/internal_error;,0) (22) +14: Dup(1,0) (25) +15: Constant(Ljava/lang/String;,"Attempt to create transition to null state") (26) +16: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (28) +17: Throw() (31) +18: LocalLoad(Ljava/lang/Object;,0) (32) +19: LocalLoad(Ljava/lang/Object;,1) (33) +20: Put(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lalr_transition;,_on_symbol) (34) +21: LocalLoad(Ljava/lang/Object;,0) (37) +22: LocalLoad(Ljava/lang/Object;,2) (38) +23: Put(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/lalr_transition;,_to_state) (39) +24: LocalLoad(Ljava/lang/Object;,0) (42) +25: LocalLoad(Ljava/lang/Object;,3) (43) +26: Put(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_transition;,_next) (44) +27: Return(V) (47) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava_cup/lalr_state;Ljava_cup/lalr_transition;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 37 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 37 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 37 +7: Constant(L;,null) (5) + Handles null at 37 +8: ConditionalBranch(Ljava/lang/Object;,ne,14) (5) + Handles null at 37 +9: New(Ljava_cup/internal_error;,0) (8) + Handles null at 37 +10: Dup(1,0) (11) + Handles null at 37 +11: Constant(Ljava/lang/String;,"Attempt to create transition on null symbol") (12) + Handles null at 37 +12: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (14) + Handles null at 37 +13: Throw() (17) + Handles null at 37 +14: LocalLoad(Ljava/lang/Object;,2) (18) + Handles null at 37 +15: Constant(L;,null) (19) + Handles null at 37 +16: ConditionalBranch(Ljava/lang/Object;,ne,22) (19) + Handles null at 37 +17: New(Ljava_cup/internal_error;,0) (22) + Handles null at 37 +18: Dup(1,0) (25) + Handles null at 37 +19: Constant(Ljava/lang/String;,"Attempt to create transition to null state") (26) + Handles null at 37 +20: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (28) + Handles null at 37 +21: Throw() (31) + Handles null at 37 +22: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 37 +23: LocalLoad(Ljava/lang/Object;,1) (33) + Handles null at 37 +24: Put(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lalr_transition;,_on_symbol) (34) + Handles null at 37 +25: LocalLoad(Ljava/lang/Object;,0) (37) + Handles null at 37 +26: LocalLoad(Ljava/lang/Object;,2) (38) + Handles null at 37 +27: Put(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/lalr_transition;,_to_state) (39) + Handles null at 37 +28: LocalLoad(Ljava/lang/Object;,0) (42) + Handles null at 37 +29: LocalLoad(Ljava/lang/Object;,3) (43) + Handles null at 37 +30: Put(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_transition;,_next) (44) + Handles null at 37 +31: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (47) + Handles null at 37 +32: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava_cup/lalr_state;Ljava_cup/lalr_transition;)V") (47) + Handles null at 37 +33: LocalLoad(Ljava/lang/Object;,0) (47) + Handles null at 37 +34: Constant(I,0) (47) + Handles null at 37 +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (47) + Handles null at 37 +36: Return(V) (47) + Handles null at 37 +37: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +38: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava_cup/lalr_state;Ljava_cup/lalr_transition;)V") (0) +39: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +40: Constant(I,1) (0) +41: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +42: Throw() (0) +Instrumenting (Ljava_cup/symbol;Ljava_cup/lalr_state;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Constant(L;,null) (3) +4: Invoke(SPECIAL,Ljava_cup/lalr_transition;,,(Ljava_cup/symbol;Ljava_cup/lalr_state;Ljava_cup/lalr_transition;)V) (4) +5: Return(V) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava_cup/lalr_state;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 15 +7: Constant(L;,null) (3) + Handles null at 15 +8: Invoke(SPECIAL,Ljava_cup/lalr_transition;,,(Ljava_cup/symbol;Ljava_cup/lalr_state;Ljava_cup/lalr_transition;)V) (4) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (7) + Handles null at 15 +10: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava_cup/lalr_state;)V") (7) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 15 +12: Constant(I,0) (7) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 15 +14: Return(V) (7) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +16: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava_cup/lalr_state;)V") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting on_symbol ()Ljava_cup/symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lalr_transition;,_on_symbol) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +1: Constant(Ljava/lang/String;,"on_symbol()Ljava_cup/symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lalr_transition;,_on_symbol) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"on_symbol()Ljava_cup/symbol;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +13: Constant(Ljava/lang/String;,"on_symbol()Ljava_cup/symbol;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting to_state ()Ljava_cup/lalr_state;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/lalr_transition;,_to_state) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +1: Constant(Ljava/lang/String;,"to_state()Ljava_cup/lalr_state;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/lalr_transition;,_to_state) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"to_state()Ljava_cup/lalr_state;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +13: Constant(Ljava/lang/String;,"to_state()Ljava_cup/lalr_state;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting next ()Ljava_cup/lalr_transition;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_transition;,_next) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +1: Constant(Ljava/lang/String;,"next()Ljava_cup/lalr_transition;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/lalr_transition;,NONSTATIC,Ljava_cup/lalr_transition;,_next) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"next()Ljava_cup/lalr_transition;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +13: Constant(Ljava/lang/String;,"next()Ljava_cup/lalr_transition;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Constant(Ljava/lang/String;,"transition on ") (7) +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) +5: LocalLoad(Ljava/lang/Object;,0) (12) +6: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,on_symbol,()Ljava_cup/symbol;) (13) +7: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (16) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (19) +9: Constant(Ljava/lang/String;," to state [") (22) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (24) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (27) +12: LocalStore(Ljava/lang/Object;,1) (30) +13: New(Ljava/lang/StringBuilder;,0) (31) +14: Dup(1,0) (34) +15: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (35) +16: LocalLoad(Ljava/lang/Object;,1) (38) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (39) +18: LocalLoad(Ljava/lang/Object;,0) (42) +19: Get(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/lalr_transition;,_to_state) (43) +20: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (46) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (49) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (52) +23: LocalStore(Ljava/lang/Object;,1) (55) +24: New(Ljava/lang/StringBuilder;,0) (56) +25: Dup(1,0) (59) +26: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (60) +27: LocalLoad(Ljava/lang/Object;,1) (63) +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (64) +29: Constant(Ljava/lang/String;,"]") (67) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (72) +32: LocalStore(Ljava/lang/Object;,1) (75) +33: LocalLoad(Ljava/lang/Object;,1) (76) +34: Return(Ljava/lang/Object;) (77) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 44 +5: Dup(1,0) (3) + Handles null at 44 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 44 +7: Constant(Ljava/lang/String;,"transition on ") (7) + Handles null at 44 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) + Handles null at 44 +9: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 44 +10: Invoke(VIRTUAL,Ljava_cup/lalr_transition;,on_symbol,()Ljava_cup/symbol;) (13) + Handles null at 44 +11: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (16) + Handles null at 44 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (19) + Handles null at 44 +13: Constant(Ljava/lang/String;," to state [") (22) + Handles null at 44 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (24) + Handles null at 44 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (27) + Handles null at 44 +16: LocalStore(Ljava/lang/Object;,1) (30) + Handles null at 44 +17: New(Ljava/lang/StringBuilder;,0) (31) + Handles null at 44 +18: Dup(1,0) (34) + Handles null at 44 +19: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (35) + Handles null at 44 +20: LocalLoad(Ljava/lang/Object;,1) (38) + Handles null at 44 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (39) + Handles null at 44 +22: LocalLoad(Ljava/lang/Object;,0) (42) + Handles null at 44 +23: Get(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/lalr_transition;,_to_state) (43) + Handles null at 44 +24: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (46) + Handles null at 44 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (49) + Handles null at 44 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (52) + Handles null at 44 +27: LocalStore(Ljava/lang/Object;,1) (55) + Handles null at 44 +28: New(Ljava/lang/StringBuilder;,0) (56) + Handles null at 44 +29: Dup(1,0) (59) + Handles null at 44 +30: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (60) + Handles null at 44 +31: LocalLoad(Ljava/lang/Object;,1) (63) + Handles null at 44 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (64) + Handles null at 44 +33: Constant(Ljava/lang/String;,"]") (67) + Handles null at 44 +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) + Handles null at 44 +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (72) + Handles null at 44 +36: LocalStore(Ljava/lang/Object;,1) (75) + Handles null at 44 +37: LocalLoad(Ljava/lang/Object;,1) (76) + Handles null at 44 +38: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (77) + Handles null at 44 +39: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (77) + Handles null at 44 +40: LocalLoad(Ljava/lang/Object;,0) (77) + Handles null at 44 +41: Constant(I,0) (77) + Handles null at 44 +42: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (77) + Handles null at 44 +43: Return(Ljava/lang/Object;) (77) + Handles null at 44 +44: Constant(Ljava/lang/String;,"java_cup/lalr_transition") (0) +45: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +46: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +47: Constant(I,1) (0) +48: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +49: Throw() (0) +Class: java_cup/lr_item_core +Instrumenting (Ljava_cup/production;I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(L;,null) (5) +4: Put(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lr_item_core;,_symbol_after_dot) (6) +5: Constant(L;,null) (9) +6: LocalStore(Ljava/lang/Object;,3) (10) +7: LocalLoad(Ljava/lang/Object;,1) (11) +8: Constant(L;,null) (12) +9: ConditionalBranch(Ljava/lang/Object;,ne,15) (12) +10: New(Ljava_cup/internal_error;,0) (15) +11: Dup(1,0) (18) +12: Constant(Ljava/lang/String;,"Attempt to create an lr_item_core with a null production") (19) +13: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (21) +14: Throw() (24) +15: LocalLoad(Ljava/lang/Object;,0) (25) +16: LocalLoad(Ljava/lang/Object;,1) (26) +17: Put(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (27) +18: LocalLoad(I,2) (30) +19: Constant(I,0) (31) +20: ConditionalBranch(I,lt,26) (31) +21: LocalLoad(I,2) (34) +22: LocalLoad(Ljava/lang/Object;,0) (35) +23: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (36) +24: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (39) +25: ConditionalBranch(I,le,31) (42) +26: New(Ljava_cup/internal_error;,0) (45) +27: Dup(1,0) (48) +28: Constant(Ljava/lang/String;,"Attempt to create an lr_item_core with a bad dot position") (49) +29: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (51) +30: Throw() (54) +31: LocalLoad(Ljava/lang/Object;,0) (55) +32: LocalLoad(I,2) (56) +33: Put(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (57) +34: LocalLoad(Ljava/lang/Object;,0) (60) +35: Constant(I,13) (61) +36: LocalLoad(Ljava/lang/Object;,0) (63) +37: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (64) +38: Invoke(VIRTUAL,Ljava_cup/production;,hashCode,()I) (67) +39: BinaryOp(I,mul) (70) +40: LocalLoad(I,2) (71) +41: BinaryOp(I,add) (72) +42: Put(I,NONSTATIC,Ljava_cup/lr_item_core;,_core_hash_cache) (73) +43: LocalLoad(Ljava/lang/Object;,0) (76) +44: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (77) +45: LocalLoad(Ljava/lang/Object;,0) (80) +46: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (81) +47: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (84) +48: ConditionalBranch(I,ge,64) (87) +49: LocalLoad(Ljava/lang/Object;,0) (90) +50: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (91) +51: LocalLoad(Ljava/lang/Object;,0) (94) +52: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (95) +53: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (98) +54: LocalStore(Ljava/lang/Object;,4) (101) +55: LocalLoad(Ljava/lang/Object;,4) (103) +56: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (105) +57: Constant(I,0) (108) +58: ConditionalBranch(I,ne,64) (108) +59: LocalLoad(Ljava/lang/Object;,0) (111) +60: LocalLoad(Ljava/lang/Object;,4) (112) +61: CheckCast(Ljava_cup/symbol_part;) (114) +62: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (117) +63: Put(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lr_item_core;,_symbol_after_dot) (120) +64: Return(V) (123) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/production;I)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 74 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 74 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 74 +7: Constant(L;,null) (5) + Handles null at 74 +8: Put(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lr_item_core;,_symbol_after_dot) (6) + Handles null at 74 +9: Constant(L;,null) (9) + Handles null at 74 +10: LocalStore(Ljava/lang/Object;,3) (10) + Handles null at 74 +11: LocalLoad(Ljava/lang/Object;,1) (11) + Handles null at 74 +12: Constant(L;,null) (12) + Handles null at 74 +13: ConditionalBranch(Ljava/lang/Object;,ne,19) (12) + Handles null at 74 +14: New(Ljava_cup/internal_error;,0) (15) + Handles null at 74 +15: Dup(1,0) (18) + Handles null at 74 +16: Constant(Ljava/lang/String;,"Attempt to create an lr_item_core with a null production") (19) + Handles null at 74 +17: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (21) + Handles null at 74 +18: Throw() (24) + Handles null at 74 +19: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 74 +20: LocalLoad(Ljava/lang/Object;,1) (26) + Handles null at 74 +21: Put(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (27) + Handles null at 74 +22: LocalLoad(I,2) (30) + Handles null at 74 +23: Constant(I,0) (31) + Handles null at 74 +24: ConditionalBranch(I,lt,30) (31) + Handles null at 74 +25: LocalLoad(I,2) (34) + Handles null at 74 +26: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 74 +27: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (36) + Handles null at 74 +28: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (39) + Handles null at 74 +29: ConditionalBranch(I,le,35) (42) + Handles null at 74 +30: New(Ljava_cup/internal_error;,0) (45) + Handles null at 74 +31: Dup(1,0) (48) + Handles null at 74 +32: Constant(Ljava/lang/String;,"Attempt to create an lr_item_core with a bad dot position") (49) + Handles null at 74 +33: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (51) + Handles null at 74 +34: Throw() (54) + Handles null at 74 +35: LocalLoad(Ljava/lang/Object;,0) (55) + Handles null at 74 +36: LocalLoad(I,2) (56) + Handles null at 74 +37: Put(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (57) + Handles null at 74 +38: LocalLoad(Ljava/lang/Object;,0) (60) + Handles null at 74 +39: Constant(I,13) (61) + Handles null at 74 +40: LocalLoad(Ljava/lang/Object;,0) (63) + Handles null at 74 +41: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (64) + Handles null at 74 +42: Invoke(VIRTUAL,Ljava_cup/production;,hashCode,()I) (67) + Handles null at 74 +43: BinaryOp(I,mul) (70) + Handles null at 74 +44: LocalLoad(I,2) (71) + Handles null at 74 +45: BinaryOp(I,add) (72) + Handles null at 74 +46: Put(I,NONSTATIC,Ljava_cup/lr_item_core;,_core_hash_cache) (73) + Handles null at 74 +47: LocalLoad(Ljava/lang/Object;,0) (76) + Handles null at 74 +48: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (77) + Handles null at 74 +49: LocalLoad(Ljava/lang/Object;,0) (80) + Handles null at 74 +50: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (81) + Handles null at 74 +51: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (84) + Handles null at 74 +52: ConditionalBranch(I,ge,68) (87) + Handles null at 74 +53: LocalLoad(Ljava/lang/Object;,0) (90) + Handles null at 74 +54: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (91) + Handles null at 74 +55: LocalLoad(Ljava/lang/Object;,0) (94) + Handles null at 74 +56: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (95) + Handles null at 74 +57: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (98) + Handles null at 74 +58: LocalStore(Ljava/lang/Object;,4) (101) + Handles null at 74 +59: LocalLoad(Ljava/lang/Object;,4) (103) + Handles null at 74 +60: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (105) + Handles null at 74 +61: Constant(I,0) (108) + Handles null at 74 +62: ConditionalBranch(I,ne,68) (108) + Handles null at 74 +63: LocalLoad(Ljava/lang/Object;,0) (111) + Handles null at 74 +64: LocalLoad(Ljava/lang/Object;,4) (112) + Handles null at 74 +65: CheckCast(Ljava_cup/symbol_part;) (114) + Handles null at 74 +66: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (117) + Handles null at 74 +67: Put(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lr_item_core;,_symbol_after_dot) (120) + Handles null at 74 +68: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (123) + Handles null at 74 +69: Constant(Ljava/lang/String;,"(Ljava_cup/production;I)V") (123) + Handles null at 74 +70: LocalLoad(Ljava/lang/Object;,0) (123) + Handles null at 74 +71: Constant(I,0) (123) + Handles null at 74 +72: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (123) + Handles null at 74 +73: Return(V) (123) + Handles null at 74 +74: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +75: Constant(Ljava/lang/String;,"(Ljava_cup/production;I)V") (0) +76: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +77: Constant(I,1) (0) +78: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +79: Throw() (0) +Instrumenting (Ljava_cup/production;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Constant(I,0) (2) +3: Invoke(SPECIAL,Ljava_cup/lr_item_core;,,(Ljava_cup/production;I)V) (3) +4: Return(V) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 14 +6: Constant(I,0) (2) + Handles null at 14 +7: Invoke(SPECIAL,Ljava_cup/lr_item_core;,,(Ljava_cup/production;I)V) (3) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (6) + Handles null at 14 +9: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (6) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 14 +11: Constant(I,0) (6) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 14 +13: Return(V) (6) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +15: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting the_production ()Ljava_cup/production;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"the_production()Ljava_cup/production;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"the_production()Ljava_cup/production;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +13: Constant(Ljava/lang/String;,"the_production()Ljava_cup/production;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting dot_pos ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"dot_pos()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"dot_pos()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +13: Constant(Ljava/lang/String;,"dot_pos()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting dot_at_end ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (5) +4: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (8) +5: ConditionalBranch(I,lt,8) (11) +6: Constant(I,1) (14) +7: Goto(9) (15) +8: Constant(I,0) (18) +9: Return(I) (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"dot_at_end()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 19 +5: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (1) + Handles null at 19 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 19 +7: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (5) + Handles null at 19 +8: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (8) + Handles null at 19 +9: ConditionalBranch(I,lt,12) (11) + Handles null at 19 +10: Constant(I,1) (14) + Handles null at 19 +11: Goto(13) (15) + Handles null at 19 +12: Constant(I,0) (18) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (19) + Handles null at 19 +14: Constant(Ljava/lang/String;,"dot_at_end()Z") (19) + Handles null at 19 +15: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 19 +16: Constant(I,0) (19) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (19) + Handles null at 19 +18: Return(I) (19) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +20: Constant(Ljava/lang/String;,"dot_at_end()Z") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting symbol_after_dot ()Ljava_cup/symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lr_item_core;,_symbol_after_dot) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"symbol_after_dot()Ljava_cup/symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/lr_item_core;,_symbol_after_dot) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"symbol_after_dot()Ljava_cup/symbol;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +13: Constant(Ljava/lang/String;,"symbol_after_dot()Ljava_cup/symbol;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting dot_before_nt ()Ljava_cup/non_terminal;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,symbol_after_dot,()Ljava_cup/symbol;) (1) +2: LocalStore(Ljava/lang/Object;,1) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Constant(L;,null) (6) +5: ConditionalBranch(Ljava/lang/Object;,eq,13) (6) +6: LocalLoad(Ljava/lang/Object;,1) (9) +7: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (10) +8: Constant(I,0) (13) +9: ConditionalBranch(I,eq,13) (13) +10: LocalLoad(Ljava/lang/Object;,1) (16) +11: CheckCast(Ljava_cup/non_terminal;) (17) +12: Return(Ljava/lang/Object;) (20) +13: Constant(L;,null) (21) +14: Return(Ljava/lang/Object;) (22) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"dot_before_nt()Ljava_cup/non_terminal;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 29 +5: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,symbol_after_dot,()Ljava_cup/symbol;) (1) + Handles null at 29 +6: LocalStore(Ljava/lang/Object;,1) (4) + Handles null at 29 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 29 +8: Constant(L;,null) (6) + Handles null at 29 +9: ConditionalBranch(Ljava/lang/Object;,eq,22) (6) + Handles null at 29 +10: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 29 +11: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (10) + Handles null at 29 +12: Constant(I,0) (13) + Handles null at 29 +13: ConditionalBranch(I,eq,22) (13) + Handles null at 29 +14: LocalLoad(Ljava/lang/Object;,1) (16) + Handles null at 29 +15: CheckCast(Ljava_cup/non_terminal;) (17) + Handles null at 29 +16: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (20) + Handles null at 29 +17: Constant(Ljava/lang/String;,"dot_before_nt()Ljava_cup/non_terminal;") (20) + Handles null at 29 +18: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 29 +19: Constant(I,0) (20) + Handles null at 29 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (20) + Handles null at 29 +21: Return(Ljava/lang/Object;) (20) + Handles null at 29 +22: Constant(L;,null) (21) + Handles null at 29 +23: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (22) + Handles null at 29 +24: Constant(Ljava/lang/String;,"dot_before_nt()Ljava_cup/non_terminal;") (22) + Handles null at 29 +25: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 29 +26: Constant(I,0) (22) + Handles null at 29 +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (22) + Handles null at 29 +28: Return(Ljava/lang/Object;) (22) + Handles null at 29 +29: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +30: Constant(Ljava/lang/String;,"dot_before_nt()Ljava_cup/non_terminal;") (0) +31: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +32: Constant(I,1) (0) +33: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +34: Throw() (0) +Instrumenting shift_core ()Ljava_cup/lr_item_core;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,dot_at_end,()Z) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,9) (4) +4: New(Ljava_cup/internal_error;,0) (7) +5: Dup(1,0) (10) +6: Constant(Ljava/lang/String;,"Attempt to shift past end of an lr_item_core") (11) +7: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (13) +8: Throw() (16) +9: New(Ljava_cup/lr_item_core;,0) (17) +10: Dup(1,0) (20) +11: LocalLoad(Ljava/lang/Object;,0) (21) +12: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (22) +13: LocalLoad(Ljava/lang/Object;,0) (25) +14: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (26) +15: Constant(I,1) (29) +16: BinaryOp(I,add) (30) +17: Invoke(SPECIAL,Ljava_cup/lr_item_core;,,(Ljava_cup/production;I)V) (31) +18: Return(Ljava/lang/Object;) (34) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"shift_core()Ljava_cup/lr_item_core;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 28 +5: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,dot_at_end,()Z) (1) + Handles null at 28 +6: Constant(I,0) (4) + Handles null at 28 +7: ConditionalBranch(I,eq,13) (4) + Handles null at 28 +8: New(Ljava_cup/internal_error;,0) (7) + Handles null at 28 +9: Dup(1,0) (10) + Handles null at 28 +10: Constant(Ljava/lang/String;,"Attempt to shift past end of an lr_item_core") (11) + Handles null at 28 +11: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (13) + Handles null at 28 +12: Throw() (16) + Handles null at 28 +13: New(Ljava_cup/lr_item_core;,0) (17) + Handles null at 28 +14: Dup(1,0) (20) + Handles null at 28 +15: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 28 +16: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (22) + Handles null at 28 +17: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 28 +18: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (26) + Handles null at 28 +19: Constant(I,1) (29) + Handles null at 28 +20: BinaryOp(I,add) (30) + Handles null at 28 +21: Invoke(SPECIAL,Ljava_cup/lr_item_core;,,(Ljava_cup/production;I)V) (31) + Handles null at 28 +22: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (34) + Handles null at 28 +23: Constant(Ljava/lang/String;,"shift_core()Ljava_cup/lr_item_core;") (34) + Handles null at 28 +24: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 28 +25: Constant(I,0) (34) + Handles null at 28 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (34) + Handles null at 28 +27: Return(Ljava/lang/Object;) (34) + Handles null at 28 +28: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +29: Constant(Ljava/lang/String;,"shift_core()Ljava_cup/lr_item_core;") (0) +30: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +31: Constant(I,1) (0) +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +33: Throw() (0) +Instrumenting core_equals (Ljava_cup/lr_item_core;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,17) (1) +3: LocalLoad(Ljava/lang/Object;,0) (4) +4: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (5) +5: LocalLoad(Ljava/lang/Object;,1) (8) +6: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (9) +7: Invoke(VIRTUAL,Ljava_cup/production;,equals,(Ljava_cup/production;)Z) (12) +8: Constant(I,0) (15) +9: ConditionalBranch(I,eq,17) (15) +10: LocalLoad(Ljava/lang/Object;,0) (18) +11: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (19) +12: LocalLoad(Ljava/lang/Object;,1) (22) +13: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (23) +14: ConditionalBranch(I,ne,17) (26) +15: Constant(I,1) (29) +16: Goto(18) (30) +17: Constant(I,0) (33) +18: Return(I) (34) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"core_equals(Ljava_cup/lr_item_core;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 28 +5: Constant(L;,null) (1) + Handles null at 28 +6: ConditionalBranch(Ljava/lang/Object;,eq,21) (1) + Handles null at 28 +7: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 28 +8: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (5) + Handles null at 28 +9: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 28 +10: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (9) + Handles null at 28 +11: Invoke(VIRTUAL,Ljava_cup/production;,equals,(Ljava_cup/production;)Z) (12) + Handles null at 28 +12: Constant(I,0) (15) + Handles null at 28 +13: ConditionalBranch(I,eq,21) (15) + Handles null at 28 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 28 +15: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (19) + Handles null at 28 +16: LocalLoad(Ljava/lang/Object;,1) (22) + Handles null at 28 +17: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (23) + Handles null at 28 +18: ConditionalBranch(I,ne,21) (26) + Handles null at 28 +19: Constant(I,1) (29) + Handles null at 28 +20: Goto(22) (30) + Handles null at 28 +21: Constant(I,0) (33) + Handles null at 28 +22: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (34) + Handles null at 28 +23: Constant(Ljava/lang/String;,"core_equals(Ljava_cup/lr_item_core;)Z") (34) + Handles null at 28 +24: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 28 +25: Constant(I,0) (34) + Handles null at 28 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (34) + Handles null at 28 +27: Return(I) (34) + Handles null at 28 +28: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +29: Constant(Ljava/lang/String;,"core_equals(Ljava_cup/lr_item_core;)Z") (0) +30: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +31: Constant(I,1) (0) +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +33: Throw() (0) +Instrumenting equals (Ljava_cup/lr_item_core;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,core_equals,(Ljava_cup/lr_item_core;)Z) (2) +3: Return(I) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/lr_item_core;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,core_equals,(Ljava_cup/lr_item_core;)Z) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"equals(Ljava_cup/lr_item_core;)Z") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(I) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +14: Constant(Ljava/lang/String;,"equals(Ljava_cup/lr_item_core;)Z") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/lr_item_core;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/lr_item_core;) (11) +9: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,equals,(Ljava_cup/lr_item_core;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/lr_item_core;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/lr_item_core;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,equals,(Ljava_cup/lr_item_core;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting core_hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_core_hash_cache) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"core_hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_core_hash_cache) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"core_hashCode()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +13: Constant(Ljava/lang/String;,"core_hashCode()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_core_hash_cache) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_core_hash_cache) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"hashCode()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +13: Constant(Ljava/lang/String;,"hashCode()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting obj_hash ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,hashCode,()I) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"obj_hash()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,hashCode,()I) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"obj_hash()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +13: Constant(Ljava/lang/String;,"obj_hash()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting to_simple_string ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (1) +2: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (4) +3: Constant(L;,null) (7) +4: ConditionalBranch(Ljava/lang/Object;,eq,25) (7) +5: LocalLoad(Ljava/lang/Object;,0) (10) +6: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (11) +7: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (14) +8: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (17) +9: Constant(L;,null) (20) +10: ConditionalBranch(Ljava/lang/Object;,eq,25) (20) +11: LocalLoad(Ljava/lang/Object;,0) (23) +12: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (24) +13: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (27) +14: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (30) +15: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (33) +16: Constant(L;,null) (36) +17: ConditionalBranch(Ljava/lang/Object;,eq,25) (36) +18: LocalLoad(Ljava/lang/Object;,0) (39) +19: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (40) +20: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (43) +21: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (46) +22: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (49) +23: LocalStore(Ljava/lang/Object;,1) (52) +24: Goto(27) (53) +25: Constant(Ljava/lang/String;,"$$NULL$$") (56) +26: LocalStore(Ljava/lang/Object;,1) (58) +27: New(Ljava/lang/StringBuilder;,0) (59) +28: Dup(1,0) (62) +29: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (63) +30: LocalLoad(Ljava/lang/Object;,1) (66) +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (67) +32: Constant(Ljava/lang/String;," ::= ") (70) +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (72) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (75) +35: LocalStore(Ljava/lang/Object;,1) (78) +36: Constant(I,0) (79) +37: LocalStore(I,3) (80) +38: LocalLoad(I,3) (81) +39: LocalLoad(Ljava/lang/Object;,0) (82) +40: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (83) +41: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (86) +42: ConditionalBranch(I,ge,144) (89) +43: LocalLoad(I,3) (92) +44: LocalLoad(Ljava/lang/Object;,0) (93) +45: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (94) +46: ConditionalBranch(I,ne,56) (97) +47: New(Ljava/lang/StringBuilder;,0) (100) +48: Dup(1,0) (103) +49: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (104) +50: LocalLoad(Ljava/lang/Object;,1) (107) +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (108) +52: Constant(Ljava/lang/String;,"(*) ") (111) +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (113) +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (116) +55: LocalStore(Ljava/lang/Object;,1) (119) +56: LocalLoad(Ljava/lang/Object;,0) (120) +57: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (121) +58: LocalLoad(I,3) (124) +59: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (125) +60: Constant(L;,null) (128) +61: ConditionalBranch(Ljava/lang/Object;,ne,72) (128) +62: New(Ljava/lang/StringBuilder;,0) (131) +63: Dup(1,0) (134) +64: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (135) +65: LocalLoad(Ljava/lang/Object;,1) (138) +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) +67: Constant(Ljava/lang/String;,"$$NULL$$ ") (142) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (144) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (147) +70: LocalStore(Ljava/lang/Object;,1) (150) +71: Goto(139) (151) +72: LocalLoad(Ljava/lang/Object;,0) (154) +73: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (155) +74: LocalLoad(I,3) (158) +75: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (159) +76: LocalStore(Ljava/lang/Object;,2) (162) +77: LocalLoad(Ljava/lang/Object;,2) (163) +78: Constant(L;,null) (164) +79: ConditionalBranch(Ljava/lang/Object;,ne,90) (164) +80: New(Ljava/lang/StringBuilder;,0) (167) +81: Dup(1,0) (170) +82: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (171) +83: LocalLoad(Ljava/lang/Object;,1) (174) +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (175) +85: Constant(Ljava/lang/String;,"$$NULL$$ ") (178) +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (180) +87: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (183) +88: LocalStore(Ljava/lang/Object;,1) (186) +89: Goto(139) (187) +90: LocalLoad(Ljava/lang/Object;,2) (190) +91: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (191) +92: Constant(I,0) (194) +93: ConditionalBranch(I,eq,104) (194) +94: New(Ljava/lang/StringBuilder;,0) (197) +95: Dup(1,0) (200) +96: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (201) +97: LocalLoad(Ljava/lang/Object;,1) (204) +98: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (205) +99: Constant(Ljava/lang/String;,"{ACTION} ") (208) +100: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (210) +101: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (213) +102: LocalStore(Ljava/lang/Object;,1) (216) +103: Goto(139) (217) +104: LocalLoad(Ljava/lang/Object;,2) (220) +105: CheckCast(Ljava_cup/symbol_part;) (221) +106: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (224) +107: Constant(L;,null) (227) +108: ConditionalBranch(Ljava/lang/Object;,eq,130) (227) +109: LocalLoad(Ljava/lang/Object;,2) (230) +110: CheckCast(Ljava_cup/symbol_part;) (231) +111: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (234) +112: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (237) +113: Constant(L;,null) (240) +114: ConditionalBranch(Ljava/lang/Object;,eq,130) (240) +115: New(Ljava/lang/StringBuilder;,0) (243) +116: Dup(1,0) (246) +117: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (247) +118: LocalLoad(Ljava/lang/Object;,1) (250) +119: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) +120: LocalLoad(Ljava/lang/Object;,2) (254) +121: CheckCast(Ljava_cup/symbol_part;) (255) +122: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (258) +123: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (261) +124: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (264) +125: Constant(Ljava/lang/String;," ") (267) +126: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (269) +127: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (272) +128: LocalStore(Ljava/lang/Object;,1) (275) +129: Goto(139) (276) +130: New(Ljava/lang/StringBuilder;,0) (279) +131: Dup(1,0) (282) +132: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (283) +133: LocalLoad(Ljava/lang/Object;,1) (286) +134: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (287) +135: Constant(Ljava/lang/String;,"$$NULL$$ ") (290) +136: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (292) +137: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (295) +138: LocalStore(Ljava/lang/Object;,1) (298) +139: LocalLoad(I,3) (299) +140: Constant(I,1) (299) +141: BinaryOp(I,add) (299) +142: LocalStore(I,3) (299) +143: Goto(38) (302) +144: LocalLoad(Ljava/lang/Object;,0) (305) +145: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (306) +146: LocalLoad(Ljava/lang/Object;,0) (309) +147: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (310) +148: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (313) +149: ConditionalBranch(I,ne,159) (316) +150: New(Ljava/lang/StringBuilder;,0) (319) +151: Dup(1,0) (322) +152: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (323) +153: LocalLoad(Ljava/lang/Object;,1) (326) +154: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (327) +155: Constant(Ljava/lang/String;,"(*) ") (330) +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (332) +157: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (335) +158: LocalStore(Ljava/lang/Object;,1) (338) +159: LocalLoad(Ljava/lang/Object;,1) (339) +160: Return(Ljava/lang/Object;) (340) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"to_simple_string()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 170 +5: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (1) + Handles null at 170 +6: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (4) + Handles null at 170 +7: Constant(L;,null) (7) + Handles null at 170 +8: ConditionalBranch(Ljava/lang/Object;,eq,29) (7) + Handles null at 170 +9: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 170 +10: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (11) + Handles null at 170 +11: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (14) + Handles null at 170 +12: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (17) + Handles null at 170 +13: Constant(L;,null) (20) + Handles null at 170 +14: ConditionalBranch(Ljava/lang/Object;,eq,29) (20) + Handles null at 170 +15: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 170 +16: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (24) + Handles null at 170 +17: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (27) + Handles null at 170 +18: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (30) + Handles null at 170 +19: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (33) + Handles null at 170 +20: Constant(L;,null) (36) + Handles null at 170 +21: ConditionalBranch(Ljava/lang/Object;,eq,29) (36) + Handles null at 170 +22: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 170 +23: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (40) + Handles null at 170 +24: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (43) + Handles null at 170 +25: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (46) + Handles null at 170 +26: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (49) + Handles null at 170 +27: LocalStore(Ljava/lang/Object;,1) (52) + Handles null at 170 +28: Goto(31) (53) + Handles null at 170 +29: Constant(Ljava/lang/String;,"$$NULL$$") (56) + Handles null at 170 +30: LocalStore(Ljava/lang/Object;,1) (58) + Handles null at 170 +31: New(Ljava/lang/StringBuilder;,0) (59) + Handles null at 170 +32: Dup(1,0) (62) + Handles null at 170 +33: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (63) + Handles null at 170 +34: LocalLoad(Ljava/lang/Object;,1) (66) + Handles null at 170 +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (67) + Handles null at 170 +36: Constant(Ljava/lang/String;," ::= ") (70) + Handles null at 170 +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (72) + Handles null at 170 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (75) + Handles null at 170 +39: LocalStore(Ljava/lang/Object;,1) (78) + Handles null at 170 +40: Constant(I,0) (79) + Handles null at 170 +41: LocalStore(I,3) (80) + Handles null at 170 +42: LocalLoad(I,3) (81) + Handles null at 170 +43: LocalLoad(Ljava/lang/Object;,0) (82) + Handles null at 170 +44: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (83) + Handles null at 170 +45: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (86) + Handles null at 170 +46: ConditionalBranch(I,ge,148) (89) + Handles null at 170 +47: LocalLoad(I,3) (92) + Handles null at 170 +48: LocalLoad(Ljava/lang/Object;,0) (93) + Handles null at 170 +49: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (94) + Handles null at 170 +50: ConditionalBranch(I,ne,60) (97) + Handles null at 170 +51: New(Ljava/lang/StringBuilder;,0) (100) + Handles null at 170 +52: Dup(1,0) (103) + Handles null at 170 +53: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (104) + Handles null at 170 +54: LocalLoad(Ljava/lang/Object;,1) (107) + Handles null at 170 +55: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (108) + Handles null at 170 +56: Constant(Ljava/lang/String;,"(*) ") (111) + Handles null at 170 +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (113) + Handles null at 170 +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (116) + Handles null at 170 +59: LocalStore(Ljava/lang/Object;,1) (119) + Handles null at 170 +60: LocalLoad(Ljava/lang/Object;,0) (120) + Handles null at 170 +61: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (121) + Handles null at 170 +62: LocalLoad(I,3) (124) + Handles null at 170 +63: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (125) + Handles null at 170 +64: Constant(L;,null) (128) + Handles null at 170 +65: ConditionalBranch(Ljava/lang/Object;,ne,76) (128) + Handles null at 170 +66: New(Ljava/lang/StringBuilder;,0) (131) + Handles null at 170 +67: Dup(1,0) (134) + Handles null at 170 +68: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (135) + Handles null at 170 +69: LocalLoad(Ljava/lang/Object;,1) (138) + Handles null at 170 +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) + Handles null at 170 +71: Constant(Ljava/lang/String;,"$$NULL$$ ") (142) + Handles null at 170 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (144) + Handles null at 170 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (147) + Handles null at 170 +74: LocalStore(Ljava/lang/Object;,1) (150) + Handles null at 170 +75: Goto(143) (151) + Handles null at 170 +76: LocalLoad(Ljava/lang/Object;,0) (154) + Handles null at 170 +77: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (155) + Handles null at 170 +78: LocalLoad(I,3) (158) + Handles null at 170 +79: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (159) + Handles null at 170 +80: LocalStore(Ljava/lang/Object;,2) (162) + Handles null at 170 +81: LocalLoad(Ljava/lang/Object;,2) (163) + Handles null at 170 +82: Constant(L;,null) (164) + Handles null at 170 +83: ConditionalBranch(Ljava/lang/Object;,ne,94) (164) + Handles null at 170 +84: New(Ljava/lang/StringBuilder;,0) (167) + Handles null at 170 +85: Dup(1,0) (170) + Handles null at 170 +86: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (171) + Handles null at 170 +87: LocalLoad(Ljava/lang/Object;,1) (174) + Handles null at 170 +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (175) + Handles null at 170 +89: Constant(Ljava/lang/String;,"$$NULL$$ ") (178) + Handles null at 170 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (180) + Handles null at 170 +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (183) + Handles null at 170 +92: LocalStore(Ljava/lang/Object;,1) (186) + Handles null at 170 +93: Goto(143) (187) + Handles null at 170 +94: LocalLoad(Ljava/lang/Object;,2) (190) + Handles null at 170 +95: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (191) + Handles null at 170 +96: Constant(I,0) (194) + Handles null at 170 +97: ConditionalBranch(I,eq,108) (194) + Handles null at 170 +98: New(Ljava/lang/StringBuilder;,0) (197) + Handles null at 170 +99: Dup(1,0) (200) + Handles null at 170 +100: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (201) + Handles null at 170 +101: LocalLoad(Ljava/lang/Object;,1) (204) + Handles null at 170 +102: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (205) + Handles null at 170 +103: Constant(Ljava/lang/String;,"{ACTION} ") (208) + Handles null at 170 +104: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (210) + Handles null at 170 +105: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (213) + Handles null at 170 +106: LocalStore(Ljava/lang/Object;,1) (216) + Handles null at 170 +107: Goto(143) (217) + Handles null at 170 +108: LocalLoad(Ljava/lang/Object;,2) (220) + Handles null at 170 +109: CheckCast(Ljava_cup/symbol_part;) (221) + Handles null at 170 +110: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (224) + Handles null at 170 +111: Constant(L;,null) (227) + Handles null at 170 +112: ConditionalBranch(Ljava/lang/Object;,eq,134) (227) + Handles null at 170 +113: LocalLoad(Ljava/lang/Object;,2) (230) + Handles null at 170 +114: CheckCast(Ljava_cup/symbol_part;) (231) + Handles null at 170 +115: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (234) + Handles null at 170 +116: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (237) + Handles null at 170 +117: Constant(L;,null) (240) + Handles null at 170 +118: ConditionalBranch(Ljava/lang/Object;,eq,134) (240) + Handles null at 170 +119: New(Ljava/lang/StringBuilder;,0) (243) + Handles null at 170 +120: Dup(1,0) (246) + Handles null at 170 +121: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (247) + Handles null at 170 +122: LocalLoad(Ljava/lang/Object;,1) (250) + Handles null at 170 +123: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) + Handles null at 170 +124: LocalLoad(Ljava/lang/Object;,2) (254) + Handles null at 170 +125: CheckCast(Ljava_cup/symbol_part;) (255) + Handles null at 170 +126: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (258) + Handles null at 170 +127: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (261) + Handles null at 170 +128: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (264) + Handles null at 170 +129: Constant(Ljava/lang/String;," ") (267) + Handles null at 170 +130: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (269) + Handles null at 170 +131: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (272) + Handles null at 170 +132: LocalStore(Ljava/lang/Object;,1) (275) + Handles null at 170 +133: Goto(143) (276) + Handles null at 170 +134: New(Ljava/lang/StringBuilder;,0) (279) + Handles null at 170 +135: Dup(1,0) (282) + Handles null at 170 +136: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (283) + Handles null at 170 +137: LocalLoad(Ljava/lang/Object;,1) (286) + Handles null at 170 +138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (287) + Handles null at 170 +139: Constant(Ljava/lang/String;,"$$NULL$$ ") (290) + Handles null at 170 +140: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (292) + Handles null at 170 +141: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (295) + Handles null at 170 +142: LocalStore(Ljava/lang/Object;,1) (298) + Handles null at 170 +143: LocalLoad(I,3) (299) + Handles null at 170 +144: Constant(I,1) (299) + Handles null at 170 +145: BinaryOp(I,add) (299) + Handles null at 170 +146: LocalStore(I,3) (299) + Handles null at 170 +147: Goto(42) (302) + Handles null at 170 +148: LocalLoad(Ljava/lang/Object;,0) (305) + Handles null at 170 +149: Get(I,NONSTATIC,Ljava_cup/lr_item_core;,_dot_pos) (306) + Handles null at 170 +150: LocalLoad(Ljava/lang/Object;,0) (309) + Handles null at 170 +151: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/lr_item_core;,_the_production) (310) + Handles null at 170 +152: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (313) + Handles null at 170 +153: ConditionalBranch(I,ne,163) (316) + Handles null at 170 +154: New(Ljava/lang/StringBuilder;,0) (319) + Handles null at 170 +155: Dup(1,0) (322) + Handles null at 170 +156: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (323) + Handles null at 170 +157: LocalLoad(Ljava/lang/Object;,1) (326) + Handles null at 170 +158: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (327) + Handles null at 170 +159: Constant(Ljava/lang/String;,"(*) ") (330) + Handles null at 170 +160: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (332) + Handles null at 170 +161: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (335) + Handles null at 170 +162: LocalStore(Ljava/lang/Object;,1) (338) + Handles null at 170 +163: LocalLoad(Ljava/lang/Object;,1) (339) + Handles null at 170 +164: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (340) + Handles null at 170 +165: Constant(Ljava/lang/String;,"to_simple_string()Ljava/lang/String;") (340) + Handles null at 170 +166: LocalLoad(Ljava/lang/Object;,0) (340) + Handles null at 170 +167: Constant(I,0) (340) + Handles null at 170 +168: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (340) + Handles null at 170 +169: Return(Ljava/lang/Object;) (340) + Handles null at 170 +170: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +171: Constant(Ljava/lang/String;,"to_simple_string()Ljava/lang/String;") (0) +172: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +173: Constant(I,1) (0) +174: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +175: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) + Handles Ljava_cup/internal_error; at 3 +1: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,to_simple_string,()Ljava/lang/String;) (1) + Handles Ljava_cup/internal_error; at 3 +2: Return(Ljava/lang/Object;) (4) +3: LocalStore(Ljava/lang/Object;,1) (5) +4: LocalLoad(Ljava/lang/Object;,1) (6) +5: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (7) +6: Constant(L;,null) (10) +7: Return(Ljava/lang/Object;) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles Ljava_cup/internal_error; at 12 + Handles null at 22 +5: Invoke(VIRTUAL,Ljava_cup/lr_item_core;,to_simple_string,()Ljava/lang/String;) (1) + Handles Ljava_cup/internal_error; at 12 + Handles null at 22 +6: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (4) + Handles null at 22 +7: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (4) + Handles null at 22 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 22 +9: Constant(I,0) (4) + Handles null at 22 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 22 +11: Return(Ljava/lang/Object;) (4) + Handles null at 22 +12: LocalStore(Ljava/lang/Object;,1) (5) + Handles null at 22 +13: LocalLoad(Ljava/lang/Object;,1) (6) + Handles null at 22 +14: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (7) + Handles null at 22 +15: Constant(L;,null) (10) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (11) + Handles null at 22 +17: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (11) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 22 +19: Constant(I,0) (11) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 22 +21: Return(Ljava/lang/Object;) (11) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/lr_item_core") (0) +23: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Class: java_cup/non_terminal +Instrumenting (Ljava/lang/String;Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Invoke(SPECIAL,Ljava_cup/symbol;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: Constant(I,0) (7) +6: Put(Z,NONSTATIC,Ljava_cup/non_terminal;,is_embedded_action) (8) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: New(Ljava/util/Hashtable;,0) (12) +9: Dup(1,0) (15) +10: Constant(I,11) (16) +11: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (18) +12: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/non_terminal;,_productions) (21) +13: LocalLoad(Ljava/lang/Object;,0) (24) +14: New(Ljava_cup/terminal_set;,0) (25) +15: Dup(1,0) (28) +16: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (29) +17: Put(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/non_terminal;,_first_set) (32) +18: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (35) +19: LocalLoad(Ljava/lang/Object;,1) (38) +20: LocalLoad(Ljava/lang/Object;,0) (39) +21: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (40) +22: LocalStore(Ljava/lang/Object;,3) (43) +23: LocalLoad(Ljava/lang/Object;,3) (44) +24: Constant(L;,null) (45) +25: ConditionalBranch(Ljava/lang/Object;,eq,40) (45) +26: New(Ljava_cup/internal_error;,0) (48) +27: Dup(1,0) (51) +28: New(Ljava/lang/StringBuilder;,0) (52) +29: Dup(1,0) (55) +30: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (56) +31: Constant(Ljava/lang/String;,"Duplicate non-terminal (") (59) +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (61) +33: LocalLoad(Ljava/lang/Object;,1) (64) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (65) +35: Constant(Ljava/lang/String;,") created") (68) +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (70) +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (73) +38: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (76) +39: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (79) +40: LocalLoad(Ljava/lang/Object;,0) (82) +41: Get(I,STATIC,Ljava_cup/non_terminal;,next_index) (83) +42: Dup(1,0) (86) +43: Constant(I,1) (87) +44: BinaryOp(I,add) (88) +45: Put(I,STATIC,Ljava_cup/non_terminal;,next_index) (89) +46: Put(I,NONSTATIC,Ljava_cup/non_terminal;,_index) (92) +47: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all_by_index) (95) +48: New(Ljava/lang/Integer;,0) (98) +49: Dup(1,0) (101) +50: LocalLoad(Ljava/lang/Object;,0) (102) +51: Get(I,NONSTATIC,Ljava_cup/non_terminal;,_index) (103) +52: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (106) +53: LocalLoad(Ljava/lang/Object;,0) (109) +54: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (110) +55: Pop(1) (113) +56: Return(V) (114) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 66 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 66 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 66 +7: Invoke(SPECIAL,Ljava_cup/symbol;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) + Handles null at 66 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 66 +9: Constant(I,0) (7) + Handles null at 66 +10: Put(Z,NONSTATIC,Ljava_cup/non_terminal;,is_embedded_action) (8) + Handles null at 66 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 66 +12: New(Ljava/util/Hashtable;,0) (12) + Handles null at 66 +13: Dup(1,0) (15) + Handles null at 66 +14: Constant(I,11) (16) + Handles null at 66 +15: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (18) + Handles null at 66 +16: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/non_terminal;,_productions) (21) + Handles null at 66 +17: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 66 +18: New(Ljava_cup/terminal_set;,0) (25) + Handles null at 66 +19: Dup(1,0) (28) + Handles null at 66 +20: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (29) + Handles null at 66 +21: Put(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/non_terminal;,_first_set) (32) + Handles null at 66 +22: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (35) + Handles null at 66 +23: LocalLoad(Ljava/lang/Object;,1) (38) + Handles null at 66 +24: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 66 +25: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (40) + Handles null at 66 +26: LocalStore(Ljava/lang/Object;,3) (43) + Handles null at 66 +27: LocalLoad(Ljava/lang/Object;,3) (44) + Handles null at 66 +28: Constant(L;,null) (45) + Handles null at 66 +29: ConditionalBranch(Ljava/lang/Object;,eq,44) (45) + Handles null at 66 +30: New(Ljava_cup/internal_error;,0) (48) + Handles null at 66 +31: Dup(1,0) (51) + Handles null at 66 +32: New(Ljava/lang/StringBuilder;,0) (52) + Handles null at 66 +33: Dup(1,0) (55) + Handles null at 66 +34: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (56) + Handles null at 66 +35: Constant(Ljava/lang/String;,"Duplicate non-terminal (") (59) + Handles null at 66 +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (61) + Handles null at 66 +37: LocalLoad(Ljava/lang/Object;,1) (64) + Handles null at 66 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (65) + Handles null at 66 +39: Constant(Ljava/lang/String;,") created") (68) + Handles null at 66 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (70) + Handles null at 66 +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (73) + Handles null at 66 +42: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (76) + Handles null at 66 +43: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (79) + Handles null at 66 +44: LocalLoad(Ljava/lang/Object;,0) (82) + Handles null at 66 +45: Get(I,STATIC,Ljava_cup/non_terminal;,next_index) (83) + Handles null at 66 +46: Dup(1,0) (86) + Handles null at 66 +47: Constant(I,1) (87) + Handles null at 66 +48: BinaryOp(I,add) (88) + Handles null at 66 +49: Put(I,STATIC,Ljava_cup/non_terminal;,next_index) (89) + Handles null at 66 +50: Put(I,NONSTATIC,Ljava_cup/non_terminal;,_index) (92) + Handles null at 66 +51: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all_by_index) (95) + Handles null at 66 +52: New(Ljava/lang/Integer;,0) (98) + Handles null at 66 +53: Dup(1,0) (101) + Handles null at 66 +54: LocalLoad(Ljava/lang/Object;,0) (102) + Handles null at 66 +55: Get(I,NONSTATIC,Ljava_cup/non_terminal;,_index) (103) + Handles null at 66 +56: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (106) + Handles null at 66 +57: LocalLoad(Ljava/lang/Object;,0) (109) + Handles null at 66 +58: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (110) + Handles null at 66 +59: Pop(1) (113) + Handles null at 66 +60: Constant(Ljava/lang/String;,"java_cup/non_terminal") (114) + Handles null at 66 +61: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (114) + Handles null at 66 +62: LocalLoad(Ljava/lang/Object;,0) (114) + Handles null at 66 +63: Constant(I,0) (114) + Handles null at 66 +64: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (114) + Handles null at 66 +65: Return(V) (114) + Handles null at 66 +66: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +67: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (0) +68: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +69: Constant(I,1) (0) +70: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +71: Throw() (0) +Instrumenting (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Constant(L;,null) (2) +3: Invoke(SPECIAL,Ljava_cup/non_terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) +4: Return(V) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 14 +6: Constant(L;,null) (2) + Handles null at 14 +7: Invoke(SPECIAL,Ljava_cup/non_terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/non_terminal") (6) + Handles null at 14 +9: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (6) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 14 +11: Constant(I,0) (6) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 14 +13: Return(V) (6) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +15: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting clear ()V: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (3) +2: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all_by_index) (6) +3: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (9) +4: Constant(I,0) (12) +5: Put(I,STATIC,Ljava_cup/non_terminal;,next_index) (13) +6: Constant(I,0) (16) +7: Put(I,STATIC,Ljava_cup/non_terminal;,next_nt) (17) +8: Return(V) (20) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"clear()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (0) + Handles null at 18 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (3) + Handles null at 18 +6: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all_by_index) (6) + Handles null at 18 +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (9) + Handles null at 18 +8: Constant(I,0) (12) + Handles null at 18 +9: Put(I,STATIC,Ljava_cup/non_terminal;,next_index) (13) + Handles null at 18 +10: Constant(I,0) (16) + Handles null at 18 +11: Put(I,STATIC,Ljava_cup/non_terminal;,next_nt) (17) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/non_terminal") (20) + Handles null at 18 +13: Constant(Ljava/lang/String;,"clear()V") (20) + Handles null at 18 +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (20) + Handles null at 18 +15: Constant(I,0) (20) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (20) + Handles null at 18 +17: Return(V) (20) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +19: Constant(Ljava/lang/String;,"clear()V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting all ()Ljava/util/Enumeration;: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (3) +2: Return(Ljava/lang/Object;) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (3) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/non_terminal") (6) + Handles null at 12 +7: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (6) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (6) + Handles null at 12 +9: Constant(I,0) (6) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 12 +11: Return(Ljava/lang/Object;) (6) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +13: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting find (Ljava/lang/String;)Ljava_cup/non_terminal;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (1) +3: Constant(L;,null) (4) +4: Return(Ljava/lang/Object;) (5) +5: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (6) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (10) +8: CheckCast(Ljava_cup/non_terminal;) (13) +9: Return(Ljava/lang/Object;) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"find(Ljava/lang/String;)Ljava_cup/non_terminal;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: Constant(L;,null) (1) + Handles null at 24 +6: ConditionalBranch(Ljava/lang/Object;,ne,14) (1) + Handles null at 24 +7: Constant(L;,null) (4) + Handles null at 24 +8: Constant(Ljava/lang/String;,"java_cup/non_terminal") (5) + Handles null at 24 +9: Constant(Ljava/lang/String;,"find(Ljava/lang/String;)Ljava_cup/non_terminal;") (5) + Handles null at 24 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (5) + Handles null at 24 +11: Constant(I,0) (5) + Handles null at 24 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 24 +13: Return(Ljava/lang/Object;) (5) + Handles null at 24 +14: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (6) + Handles null at 24 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 24 +16: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (10) + Handles null at 24 +17: CheckCast(Ljava_cup/non_terminal;) (13) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/non_terminal") (16) + Handles null at 24 +19: Constant(Ljava/lang/String;,"find(Ljava/lang/String;)Ljava_cup/non_terminal;") (16) + Handles null at 24 +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (16) + Handles null at 24 +21: Constant(I,0) (16) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 24 +23: Return(Ljava/lang/Object;) (16) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +25: Constant(Ljava/lang/String;,"find(Ljava/lang/String;)Ljava_cup/non_terminal;") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting find (I)Ljava_cup/non_terminal;: +Initial ShrikeBT code: +0: New(Ljava/lang/Integer;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,0) (4) +3: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (5) +4: LocalStore(Ljava/lang/Object;,1) (8) +5: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all_by_index) (9) +6: LocalLoad(Ljava/lang/Object;,1) (12) +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (13) +8: CheckCast(Ljava_cup/non_terminal;) (16) +9: Return(Ljava/lang/Object;) (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"find(I)Ljava_cup/non_terminal;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/Integer;,0) (0) + Handles null at 19 +5: Dup(1,0) (3) + Handles null at 19 +6: LocalLoad(I,0) (4) + Handles null at 19 +7: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (5) + Handles null at 19 +8: LocalStore(Ljava/lang/Object;,1) (8) + Handles null at 19 +9: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all_by_index) (9) + Handles null at 19 +10: LocalLoad(Ljava/lang/Object;,1) (12) + Handles null at 19 +11: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (13) + Handles null at 19 +12: CheckCast(Ljava_cup/non_terminal;) (16) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/non_terminal") (19) + Handles null at 19 +14: Constant(Ljava/lang/String;,"find(I)Ljava_cup/non_terminal;") (19) + Handles null at 19 +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (19) + Handles null at 19 +16: Constant(I,0) (19) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (19) + Handles null at 19 +18: Return(Ljava/lang/Object;) (19) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +20: Constant(Ljava/lang/String;,"find(I)Ljava_cup/non_terminal;") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting number ()I: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (3) +2: Return(I) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"number()I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (3) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/non_terminal") (6) + Handles null at 12 +7: Constant(Ljava/lang/String;,"number()I") (6) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (6) + Handles null at 12 +9: Constant(I,0) (6) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 12 +11: Return(I) (6) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +13: Constant(Ljava/lang/String;,"number()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting create_new (Ljava/lang/String;)Ljava_cup/non_terminal;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(L;,null) (1) +2: Invoke(STATIC,Ljava_cup/non_terminal;,create_new,(Ljava/lang/String;Ljava/lang/String;)Ljava_cup/non_terminal;) (2) +3: Return(Ljava/lang/Object;) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"create_new(Ljava/lang/String;)Ljava_cup/non_terminal;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Constant(L;,null) (1) + Handles null at 13 +6: Invoke(STATIC,Ljava_cup/non_terminal;,create_new,(Ljava/lang/String;Ljava/lang/String;)Ljava_cup/non_terminal;) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/non_terminal") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"create_new(Ljava/lang/String;)Ljava_cup/non_terminal;") (5) + Handles null at 13 +9: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(Ljava/lang/Object;) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +14: Constant(Ljava/lang/String;,"create_new(Ljava/lang/String;)Ljava_cup/non_terminal;") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting create_new ()Ljava_cup/non_terminal;: +Initial ShrikeBT code: +0: Constant(L;,null) (0) +1: Invoke(STATIC,Ljava_cup/non_terminal;,create_new,(Ljava/lang/String;)Ljava_cup/non_terminal;) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"create_new()Ljava_cup/non_terminal;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(L;,null) (0) + Handles null at 12 +5: Invoke(STATIC,Ljava_cup/non_terminal;,create_new,(Ljava/lang/String;)Ljava_cup/non_terminal;) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/non_terminal") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"create_new()Ljava_cup/non_terminal;") (4) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +13: Constant(Ljava/lang/String;,"create_new()Ljava_cup/non_terminal;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting create_new (Ljava/lang/String;Ljava/lang/String;)Ljava_cup/non_terminal;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (1) +3: Constant(Ljava/lang/String;,"NT$") (4) +4: LocalStore(Ljava/lang/Object;,0) (6) +5: New(Ljava_cup/non_terminal;,0) (7) +6: Dup(1,0) (10) +7: New(Ljava/lang/StringBuilder;,0) (11) +8: Dup(1,0) (14) +9: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (15) +10: LocalLoad(Ljava/lang/Object;,0) (18) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (19) +12: Get(I,STATIC,Ljava_cup/non_terminal;,next_nt) (22) +13: Dup(1,0) (25) +14: Constant(I,1) (26) +15: BinaryOp(I,add) (27) +16: Put(I,STATIC,Ljava_cup/non_terminal;,next_nt) (28) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (31) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (34) +19: LocalLoad(Ljava/lang/Object;,1) (37) +20: Invoke(SPECIAL,Ljava_cup/non_terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (38) +21: Return(Ljava/lang/Object;) (41) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"create_new(Ljava/lang/String;Ljava/lang/String;)Ljava_cup/non_terminal;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 31 +5: Constant(L;,null) (1) + Handles null at 31 +6: ConditionalBranch(Ljava/lang/Object;,ne,9) (1) + Handles null at 31 +7: Constant(Ljava/lang/String;,"NT$") (4) + Handles null at 31 +8: LocalStore(Ljava/lang/Object;,0) (6) + Handles null at 31 +9: New(Ljava_cup/non_terminal;,0) (7) + Handles null at 31 +10: Dup(1,0) (10) + Handles null at 31 +11: New(Ljava/lang/StringBuilder;,0) (11) + Handles null at 31 +12: Dup(1,0) (14) + Handles null at 31 +13: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (15) + Handles null at 31 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 31 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (19) + Handles null at 31 +16: Get(I,STATIC,Ljava_cup/non_terminal;,next_nt) (22) + Handles null at 31 +17: Dup(1,0) (25) + Handles null at 31 +18: Constant(I,1) (26) + Handles null at 31 +19: BinaryOp(I,add) (27) + Handles null at 31 +20: Put(I,STATIC,Ljava_cup/non_terminal;,next_nt) (28) + Handles null at 31 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (31) + Handles null at 31 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (34) + Handles null at 31 +23: LocalLoad(Ljava/lang/Object;,1) (37) + Handles null at 31 +24: Invoke(SPECIAL,Ljava_cup/non_terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (38) + Handles null at 31 +25: Constant(Ljava/lang/String;,"java_cup/non_terminal") (41) + Handles null at 31 +26: Constant(Ljava/lang/String;,"create_new(Ljava/lang/String;Ljava/lang/String;)Ljava_cup/non_terminal;") (41) + Handles null at 31 +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (41) + Handles null at 31 +28: Constant(I,0) (41) + Handles null at 31 +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (41) + Handles null at 31 +30: Return(Ljava/lang/Object;) (41) + Handles null at 31 +31: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +32: Constant(Ljava/lang/String;,"create_new(Ljava/lang/String;Ljava/lang/String;)Ljava_cup/non_terminal;") (0) +33: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +34: Constant(I,1) (0) +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +36: Throw() (0) +Instrumenting compute_nullability ()V: +Initial ShrikeBT code: +0: Constant(I,1) (0) +1: LocalStore(I,0) (1) +2: LocalLoad(I,0) (2) +3: Constant(I,0) (3) +4: ConditionalBranch(I,eq,31) (3) +5: Constant(I,0) (6) +6: LocalStore(I,0) (7) +7: Invoke(STATIC,Ljava_cup/non_terminal;,all,()Ljava/util/Enumeration;) (8) +8: LocalStore(Ljava/lang/Object;,2) (11) +9: LocalLoad(Ljava/lang/Object;,2) (12) +10: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (13) +11: Constant(I,0) (18) +12: ConditionalBranch(I,eq,2) (18) +13: LocalLoad(Ljava/lang/Object;,2) (21) +14: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (22) +15: CheckCast(Ljava_cup/non_terminal;) (27) +16: LocalStore(Ljava/lang/Object;,1) (30) +17: LocalLoad(Ljava/lang/Object;,1) (31) +18: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (32) +19: Constant(I,0) (35) +20: ConditionalBranch(I,ne,9) (35) +21: LocalLoad(Ljava/lang/Object;,1) (38) +22: Invoke(VIRTUAL,Ljava_cup/non_terminal;,looks_nullable,()Z) (39) +23: Constant(I,0) (42) +24: ConditionalBranch(I,eq,9) (42) +25: LocalLoad(Ljava/lang/Object;,1) (45) +26: Constant(I,1) (46) +27: Put(Z,NONSTATIC,Ljava_cup/non_terminal;,_nullable) (47) +28: Constant(I,1) (50) +29: LocalStore(I,0) (51) +30: Goto(9) (52) +31: Invoke(STATIC,Ljava_cup/production;,all,()Ljava/util/Enumeration;) (55) +32: LocalStore(Ljava/lang/Object;,2) (58) +33: LocalLoad(Ljava/lang/Object;,2) (59) +34: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (60) +35: Constant(I,0) (65) +36: ConditionalBranch(I,eq,47) (65) +37: LocalLoad(Ljava/lang/Object;,2) (68) +38: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (69) +39: CheckCast(Ljava_cup/production;) (74) +40: LocalStore(Ljava/lang/Object;,3) (77) +41: LocalLoad(Ljava/lang/Object;,3) (78) +42: LocalLoad(Ljava/lang/Object;,3) (79) +43: Invoke(VIRTUAL,Ljava_cup/production;,check_nullable,()Z) (80) +44: Invoke(VIRTUAL,Ljava_cup/production;,set_nullable,(Z)Z) (83) +45: Pop(1) (86) +46: Goto(33) (87) +47: Return(V) (90) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"compute_nullability()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,1) (0) + Handles null at 57 +5: LocalStore(I,0) (1) + Handles null at 57 +6: LocalLoad(I,0) (2) + Handles null at 57 +7: Constant(I,0) (3) + Handles null at 57 +8: ConditionalBranch(I,eq,35) (3) + Handles null at 57 +9: Constant(I,0) (6) + Handles null at 57 +10: LocalStore(I,0) (7) + Handles null at 57 +11: Invoke(STATIC,Ljava_cup/non_terminal;,all,()Ljava/util/Enumeration;) (8) + Handles null at 57 +12: LocalStore(Ljava/lang/Object;,2) (11) + Handles null at 57 +13: LocalLoad(Ljava/lang/Object;,2) (12) + Handles null at 57 +14: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (13) + Handles null at 57 +15: Constant(I,0) (18) + Handles null at 57 +16: ConditionalBranch(I,eq,6) (18) + Handles null at 57 +17: LocalLoad(Ljava/lang/Object;,2) (21) + Handles null at 57 +18: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (22) + Handles null at 57 +19: CheckCast(Ljava_cup/non_terminal;) (27) + Handles null at 57 +20: LocalStore(Ljava/lang/Object;,1) (30) + Handles null at 57 +21: LocalLoad(Ljava/lang/Object;,1) (31) + Handles null at 57 +22: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (32) + Handles null at 57 +23: Constant(I,0) (35) + Handles null at 57 +24: ConditionalBranch(I,ne,13) (35) + Handles null at 57 +25: LocalLoad(Ljava/lang/Object;,1) (38) + Handles null at 57 +26: Invoke(VIRTUAL,Ljava_cup/non_terminal;,looks_nullable,()Z) (39) + Handles null at 57 +27: Constant(I,0) (42) + Handles null at 57 +28: ConditionalBranch(I,eq,13) (42) + Handles null at 57 +29: LocalLoad(Ljava/lang/Object;,1) (45) + Handles null at 57 +30: Constant(I,1) (46) + Handles null at 57 +31: Put(Z,NONSTATIC,Ljava_cup/non_terminal;,_nullable) (47) + Handles null at 57 +32: Constant(I,1) (50) + Handles null at 57 +33: LocalStore(I,0) (51) + Handles null at 57 +34: Goto(13) (52) + Handles null at 57 +35: Invoke(STATIC,Ljava_cup/production;,all,()Ljava/util/Enumeration;) (55) + Handles null at 57 +36: LocalStore(Ljava/lang/Object;,2) (58) + Handles null at 57 +37: LocalLoad(Ljava/lang/Object;,2) (59) + Handles null at 57 +38: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (60) + Handles null at 57 +39: Constant(I,0) (65) + Handles null at 57 +40: ConditionalBranch(I,eq,51) (65) + Handles null at 57 +41: LocalLoad(Ljava/lang/Object;,2) (68) + Handles null at 57 +42: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (69) + Handles null at 57 +43: CheckCast(Ljava_cup/production;) (74) + Handles null at 57 +44: LocalStore(Ljava/lang/Object;,3) (77) + Handles null at 57 +45: LocalLoad(Ljava/lang/Object;,3) (78) + Handles null at 57 +46: LocalLoad(Ljava/lang/Object;,3) (79) + Handles null at 57 +47: Invoke(VIRTUAL,Ljava_cup/production;,check_nullable,()Z) (80) + Handles null at 57 +48: Invoke(VIRTUAL,Ljava_cup/production;,set_nullable,(Z)Z) (83) + Handles null at 57 +49: Pop(1) (86) + Handles null at 57 +50: Goto(37) (87) + Handles null at 57 +51: Constant(Ljava/lang/String;,"java_cup/non_terminal") (90) + Handles null at 57 +52: Constant(Ljava/lang/String;,"compute_nullability()V") (90) + Handles null at 57 +53: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (90) + Handles null at 57 +54: Constant(I,0) (90) + Handles null at 57 +55: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (90) + Handles null at 57 +56: Return(V) (90) + Handles null at 57 +57: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +58: Constant(Ljava/lang/String;,"compute_nullability()V") (0) +59: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +60: Constant(I,1) (0) +61: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +62: Throw() (0) +Instrumenting compute_first_sets ()V: +Initial ShrikeBT code: +0: Constant(I,1) (0) +1: LocalStore(I,0) (1) +2: LocalLoad(I,0) (2) +3: Constant(I,0) (3) +4: ConditionalBranch(I,eq,45) (3) +5: Constant(I,0) (6) +6: LocalStore(I,0) (7) +7: Invoke(STATIC,Ljava_cup/non_terminal;,all,()Ljava/util/Enumeration;) (8) +8: LocalStore(Ljava/lang/Object;,1) (11) +9: LocalLoad(Ljava/lang/Object;,1) (12) +10: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (13) +11: Constant(I,0) (18) +12: ConditionalBranch(I,eq,2) (18) +13: LocalLoad(Ljava/lang/Object;,1) (21) +14: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (22) +15: CheckCast(Ljava_cup/non_terminal;) (27) +16: LocalStore(Ljava/lang/Object;,3) (30) +17: LocalLoad(Ljava/lang/Object;,3) (31) +18: Invoke(VIRTUAL,Ljava_cup/non_terminal;,productions,()Ljava/util/Enumeration;) (32) +19: LocalStore(Ljava/lang/Object;,2) (35) +20: LocalLoad(Ljava/lang/Object;,2) (36) +21: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (37) +22: Constant(I,0) (42) +23: ConditionalBranch(I,eq,9) (42) +24: LocalLoad(Ljava/lang/Object;,2) (45) +25: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (46) +26: CheckCast(Ljava_cup/production;) (51) +27: LocalStore(Ljava/lang/Object;,4) (54) +28: LocalLoad(Ljava/lang/Object;,4) (56) +29: Invoke(VIRTUAL,Ljava_cup/production;,check_first_set,()Ljava_cup/terminal_set;) (58) +30: LocalStore(Ljava/lang/Object;,5) (61) +31: LocalLoad(Ljava/lang/Object;,5) (63) +32: LocalLoad(Ljava/lang/Object;,3) (65) +33: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/non_terminal;,_first_set) (66) +34: Invoke(VIRTUAL,Ljava_cup/terminal_set;,is_subset_of,(Ljava_cup/terminal_set;)Z) (69) +35: Constant(I,0) (72) +36: ConditionalBranch(I,ne,20) (72) +37: Constant(I,1) (75) +38: LocalStore(I,0) (76) +39: LocalLoad(Ljava/lang/Object;,3) (77) +40: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/non_terminal;,_first_set) (78) +41: LocalLoad(Ljava/lang/Object;,5) (81) +42: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (83) +43: Pop(1) (86) +44: Goto(20) (87) +45: Return(V) (90) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"compute_first_sets()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,1) (0) + Handles null at 55 +5: LocalStore(I,0) (1) + Handles null at 55 +6: LocalLoad(I,0) (2) + Handles null at 55 +7: Constant(I,0) (3) + Handles null at 55 +8: ConditionalBranch(I,eq,49) (3) + Handles null at 55 +9: Constant(I,0) (6) + Handles null at 55 +10: LocalStore(I,0) (7) + Handles null at 55 +11: Invoke(STATIC,Ljava_cup/non_terminal;,all,()Ljava/util/Enumeration;) (8) + Handles null at 55 +12: LocalStore(Ljava/lang/Object;,1) (11) + Handles null at 55 +13: LocalLoad(Ljava/lang/Object;,1) (12) + Handles null at 55 +14: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (13) + Handles null at 55 +15: Constant(I,0) (18) + Handles null at 55 +16: ConditionalBranch(I,eq,6) (18) + Handles null at 55 +17: LocalLoad(Ljava/lang/Object;,1) (21) + Handles null at 55 +18: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (22) + Handles null at 55 +19: CheckCast(Ljava_cup/non_terminal;) (27) + Handles null at 55 +20: LocalStore(Ljava/lang/Object;,3) (30) + Handles null at 55 +21: LocalLoad(Ljava/lang/Object;,3) (31) + Handles null at 55 +22: Invoke(VIRTUAL,Ljava_cup/non_terminal;,productions,()Ljava/util/Enumeration;) (32) + Handles null at 55 +23: LocalStore(Ljava/lang/Object;,2) (35) + Handles null at 55 +24: LocalLoad(Ljava/lang/Object;,2) (36) + Handles null at 55 +25: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (37) + Handles null at 55 +26: Constant(I,0) (42) + Handles null at 55 +27: ConditionalBranch(I,eq,13) (42) + Handles null at 55 +28: LocalLoad(Ljava/lang/Object;,2) (45) + Handles null at 55 +29: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (46) + Handles null at 55 +30: CheckCast(Ljava_cup/production;) (51) + Handles null at 55 +31: LocalStore(Ljava/lang/Object;,4) (54) + Handles null at 55 +32: LocalLoad(Ljava/lang/Object;,4) (56) + Handles null at 55 +33: Invoke(VIRTUAL,Ljava_cup/production;,check_first_set,()Ljava_cup/terminal_set;) (58) + Handles null at 55 +34: LocalStore(Ljava/lang/Object;,5) (61) + Handles null at 55 +35: LocalLoad(Ljava/lang/Object;,5) (63) + Handles null at 55 +36: LocalLoad(Ljava/lang/Object;,3) (65) + Handles null at 55 +37: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/non_terminal;,_first_set) (66) + Handles null at 55 +38: Invoke(VIRTUAL,Ljava_cup/terminal_set;,is_subset_of,(Ljava_cup/terminal_set;)Z) (69) + Handles null at 55 +39: Constant(I,0) (72) + Handles null at 55 +40: ConditionalBranch(I,ne,24) (72) + Handles null at 55 +41: Constant(I,1) (75) + Handles null at 55 +42: LocalStore(I,0) (76) + Handles null at 55 +43: LocalLoad(Ljava/lang/Object;,3) (77) + Handles null at 55 +44: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/non_terminal;,_first_set) (78) + Handles null at 55 +45: LocalLoad(Ljava/lang/Object;,5) (81) + Handles null at 55 +46: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (83) + Handles null at 55 +47: Pop(1) (86) + Handles null at 55 +48: Goto(24) (87) + Handles null at 55 +49: Constant(Ljava/lang/String;,"java_cup/non_terminal") (90) + Handles null at 55 +50: Constant(Ljava/lang/String;,"compute_first_sets()V") (90) + Handles null at 55 +51: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (90) + Handles null at 55 +52: Constant(I,0) (90) + Handles null at 55 +53: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (90) + Handles null at 55 +54: Return(V) (90) + Handles null at 55 +55: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +56: Constant(Ljava/lang/String;,"compute_first_sets()V") (0) +57: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +58: Constant(I,1) (0) +59: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +60: Throw() (0) +Instrumenting productions ()Ljava/util/Enumeration;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/non_terminal;,_productions) (1) +2: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (4) +3: Return(Ljava/lang/Object;) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"productions()Ljava/util/Enumeration;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/non_terminal;,_productions) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/non_terminal") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"productions()Ljava/util/Enumeration;") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(Ljava/lang/Object;) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +14: Constant(Ljava/lang/String;,"productions()Ljava/util/Enumeration;") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting num_productions ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/non_terminal;,_productions) (1) +2: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (4) +3: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"num_productions()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/non_terminal;,_productions) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/non_terminal") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"num_productions()I") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(I) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +14: Constant(Ljava/lang/String;,"num_productions()I") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting add_production (Ljava_cup/production;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,12) (1) +3: LocalLoad(Ljava/lang/Object;,1) (4) +4: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (5) +5: Constant(L;,null) (8) +6: ConditionalBranch(Ljava/lang/Object;,eq,12) (8) +7: LocalLoad(Ljava/lang/Object;,1) (11) +8: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (12) +9: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (15) +10: LocalLoad(Ljava/lang/Object;,0) (18) +11: ConditionalBranch(Ljava/lang/Object;,eq,17) (19) +12: New(Ljava_cup/internal_error;,0) (22) +13: Dup(1,0) (25) +14: Constant(Ljava/lang/String;,"Attempt to add invalid production to non terminal production table") (26) +15: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (28) +16: Throw() (31) +17: LocalLoad(Ljava/lang/Object;,0) (32) +18: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/non_terminal;,_productions) (33) +19: LocalLoad(Ljava/lang/Object;,1) (36) +20: LocalLoad(Ljava/lang/Object;,1) (37) +21: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (38) +22: Pop(1) (41) +23: Return(V) (42) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"add_production(Ljava_cup/production;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 33 +5: Constant(L;,null) (1) + Handles null at 33 +6: ConditionalBranch(Ljava/lang/Object;,eq,16) (1) + Handles null at 33 +7: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 33 +8: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (5) + Handles null at 33 +9: Constant(L;,null) (8) + Handles null at 33 +10: ConditionalBranch(Ljava/lang/Object;,eq,16) (8) + Handles null at 33 +11: LocalLoad(Ljava/lang/Object;,1) (11) + Handles null at 33 +12: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (12) + Handles null at 33 +13: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (15) + Handles null at 33 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 33 +15: ConditionalBranch(Ljava/lang/Object;,eq,21) (19) + Handles null at 33 +16: New(Ljava_cup/internal_error;,0) (22) + Handles null at 33 +17: Dup(1,0) (25) + Handles null at 33 +18: Constant(Ljava/lang/String;,"Attempt to add invalid production to non terminal production table") (26) + Handles null at 33 +19: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (28) + Handles null at 33 +20: Throw() (31) + Handles null at 33 +21: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 33 +22: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/non_terminal;,_productions) (33) + Handles null at 33 +23: LocalLoad(Ljava/lang/Object;,1) (36) + Handles null at 33 +24: LocalLoad(Ljava/lang/Object;,1) (37) + Handles null at 33 +25: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (38) + Handles null at 33 +26: Pop(1) (41) + Handles null at 33 +27: Constant(Ljava/lang/String;,"java_cup/non_terminal") (42) + Handles null at 33 +28: Constant(Ljava/lang/String;,"add_production(Ljava_cup/production;)V") (42) + Handles null at 33 +29: LocalLoad(Ljava/lang/Object;,0) (42) + Handles null at 33 +30: Constant(I,0) (42) + Handles null at 33 +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (42) + Handles null at 33 +32: Return(V) (42) + Handles null at 33 +33: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +34: Constant(Ljava/lang/String;,"add_production(Ljava_cup/production;)V") (0) +35: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +36: Constant(I,1) (0) +37: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +38: Throw() (0) +Instrumenting nullable ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/non_terminal;,_nullable) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"nullable()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/non_terminal;,_nullable) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/non_terminal") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"nullable()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +13: Constant(Ljava/lang/String;,"nullable()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting first_set ()Ljava_cup/terminal_set;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/non_terminal;,_first_set) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"first_set()Ljava_cup/terminal_set;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/non_terminal;,_first_set) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/non_terminal") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"first_set()Ljava_cup/terminal_set;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +13: Constant(Ljava/lang/String;,"first_set()Ljava_cup/terminal_set;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting is_non_term ()Z: +Initial ShrikeBT code: +0: Constant(I,1) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"is_non_term()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,1) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/non_terminal") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"is_non_term()Z") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +12: Constant(Ljava/lang/String;,"is_non_term()Z") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting looks_nullable ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/non_terminal;,productions,()Ljava/util/Enumeration;) (1) +2: LocalStore(Ljava/lang/Object;,1) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (6) +5: Constant(I,0) (11) +6: ConditionalBranch(I,eq,15) (11) +7: LocalLoad(Ljava/lang/Object;,1) (14) +8: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (15) +9: CheckCast(Ljava_cup/production;) (20) +10: Invoke(VIRTUAL,Ljava_cup/production;,check_nullable,()Z) (23) +11: Constant(I,0) (26) +12: ConditionalBranch(I,eq,3) (26) +13: Constant(I,1) (29) +14: Return(I) (30) +15: Constant(I,0) (31) +16: Return(I) (32) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"looks_nullable()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 31 +5: Invoke(VIRTUAL,Ljava_cup/non_terminal;,productions,()Ljava/util/Enumeration;) (1) + Handles null at 31 +6: LocalStore(Ljava/lang/Object;,1) (4) + Handles null at 31 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 31 +8: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (6) + Handles null at 31 +9: Constant(I,0) (11) + Handles null at 31 +10: ConditionalBranch(I,eq,24) (11) + Handles null at 31 +11: LocalLoad(Ljava/lang/Object;,1) (14) + Handles null at 31 +12: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (15) + Handles null at 31 +13: CheckCast(Ljava_cup/production;) (20) + Handles null at 31 +14: Invoke(VIRTUAL,Ljava_cup/production;,check_nullable,()Z) (23) + Handles null at 31 +15: Constant(I,0) (26) + Handles null at 31 +16: ConditionalBranch(I,eq,7) (26) + Handles null at 31 +17: Constant(I,1) (29) + Handles null at 31 +18: Constant(Ljava/lang/String;,"java_cup/non_terminal") (30) + Handles null at 31 +19: Constant(Ljava/lang/String;,"looks_nullable()Z") (30) + Handles null at 31 +20: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 31 +21: Constant(I,0) (30) + Handles null at 31 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (30) + Handles null at 31 +23: Return(I) (30) + Handles null at 31 +24: Constant(I,0) (31) + Handles null at 31 +25: Constant(Ljava/lang/String;,"java_cup/non_terminal") (32) + Handles null at 31 +26: Constant(Ljava/lang/String;,"looks_nullable()Z") (32) + Handles null at 31 +27: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 31 +28: Constant(I,0) (32) + Handles null at 31 +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (32) + Handles null at 31 +30: Return(I) (32) + Handles null at 31 +31: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +32: Constant(Ljava/lang/String;,"looks_nullable()Z") (0) +33: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +34: Constant(I,1) (0) +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +36: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: LocalLoad(Ljava/lang/Object;,0) (7) +4: Invoke(SPECIAL,Ljava_cup/symbol;,toString,()Ljava/lang/String;) (8) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) +6: Constant(Ljava/lang/String;,"[") (14) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: LocalLoad(Ljava/lang/Object;,0) (19) +9: Invoke(VIRTUAL,Ljava_cup/non_terminal;,index,()I) (20) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (23) +11: Constant(Ljava/lang/String;,"]") (26) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +13: LocalLoad(Ljava/lang/Object;,0) (31) +14: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (32) +15: Constant(I,0) (35) +16: ConditionalBranch(I,eq,19) (35) +17: Constant(Ljava/lang/String;,"*") (38) +18: Goto(20) (40) +19: Constant(Ljava/lang/String;,"") (43) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (45) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (48) +22: Return(Ljava/lang/Object;) (51) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 32 +5: Dup(1,0) (3) + Handles null at 32 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 32 +7: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 32 +8: Invoke(SPECIAL,Ljava_cup/symbol;,toString,()Ljava/lang/String;) (8) + Handles null at 32 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) + Handles null at 32 +10: Constant(Ljava/lang/String;,"[") (14) + Handles null at 32 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 32 +12: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 32 +13: Invoke(VIRTUAL,Ljava_cup/non_terminal;,index,()I) (20) + Handles null at 32 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (23) + Handles null at 32 +15: Constant(Ljava/lang/String;,"]") (26) + Handles null at 32 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 32 +17: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 32 +18: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (32) + Handles null at 32 +19: Constant(I,0) (35) + Handles null at 32 +20: ConditionalBranch(I,eq,23) (35) + Handles null at 32 +21: Constant(Ljava/lang/String;,"*") (38) + Handles null at 32 +22: Goto(24) (40) + Handles null at 32 +23: Constant(Ljava/lang/String;,"") (43) + Handles null at 32 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (45) + Handles null at 32 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (48) + Handles null at 32 +26: Constant(Ljava/lang/String;,"java_cup/non_terminal") (51) + Handles null at 32 +27: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (51) + Handles null at 32 +28: LocalLoad(Ljava/lang/Object;,0) (51) + Handles null at 32 +29: Constant(I,0) (51) + Handles null at 32 +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (51) + Handles null at 32 +31: Return(Ljava/lang/Object;) (51) + Handles null at 32 +32: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +33: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +34: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +35: Constant(I,1) (0) +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +37: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: New(Ljava/util/Hashtable;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (4) +3: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (7) +4: New(Ljava/util/Hashtable;,0) (10) +5: Dup(1,0) (13) +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (14) +7: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all_by_index) (17) +8: Constant(I,0) (20) +9: Put(I,STATIC,Ljava_cup/non_terminal;,next_index) (21) +10: Constant(I,0) (24) +11: Put(I,STATIC,Ljava_cup/non_terminal;,next_nt) (25) +12: New(Ljava_cup/non_terminal;,0) (28) +13: Dup(1,0) (31) +14: Constant(Ljava/lang/String;,"$START") (32) +15: Invoke(SPECIAL,Ljava_cup/non_terminal;,,(Ljava/lang/String;)V) (34) +16: Put(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (37) +17: Return(V) (40) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/Hashtable;,0) (0) + Handles null at 27 +5: Dup(1,0) (3) + Handles null at 27 +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (4) + Handles null at 27 +7: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all) (7) + Handles null at 27 +8: New(Ljava/util/Hashtable;,0) (10) + Handles null at 27 +9: Dup(1,0) (13) + Handles null at 27 +10: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (14) + Handles null at 27 +11: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/non_terminal;,_all_by_index) (17) + Handles null at 27 +12: Constant(I,0) (20) + Handles null at 27 +13: Put(I,STATIC,Ljava_cup/non_terminal;,next_index) (21) + Handles null at 27 +14: Constant(I,0) (24) + Handles null at 27 +15: Put(I,STATIC,Ljava_cup/non_terminal;,next_nt) (25) + Handles null at 27 +16: New(Ljava_cup/non_terminal;,0) (28) + Handles null at 27 +17: Dup(1,0) (31) + Handles null at 27 +18: Constant(Ljava/lang/String;,"$START") (32) + Handles null at 27 +19: Invoke(SPECIAL,Ljava_cup/non_terminal;,,(Ljava/lang/String;)V) (34) + Handles null at 27 +20: Put(Ljava_cup/non_terminal;,STATIC,Ljava_cup/non_terminal;,START_nt) (37) + Handles null at 27 +21: Constant(Ljava/lang/String;,"java_cup/non_terminal") (40) + Handles null at 27 +22: Constant(Ljava/lang/String;,"()V") (40) + Handles null at 27 +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (40) + Handles null at 27 +24: Constant(I,0) (40) + Handles null at 27 +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (40) + Handles null at 27 +26: Return(V) (40) + Handles null at 27 +27: Constant(Ljava/lang/String;,"java_cup/non_terminal") (0) +28: Constant(Ljava/lang/String;,"()V") (0) +29: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +30: Constant(I,1) (0) +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +32: Throw() (0) +Class: java_cup/nonassoc_action +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/parse_action;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava_cup/parse_action;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting kind ()I: +Initial ShrikeBT code: +0: Constant(I,3) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +1: Constant(Ljava/lang/String;,"kind()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,3) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"kind()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +12: Constant(Ljava/lang/String;,"kind()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting equals (Ljava_cup/parse_action;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,9) (1) +3: LocalLoad(Ljava/lang/Object;,1) (4) +4: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (5) +5: Constant(I,3) (8) +6: ConditionalBranch(I,ne,9) (9) +7: Constant(I,1) (12) +8: Goto(10) (13) +9: Constant(I,0) (16) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/parse_action;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 20 +5: Constant(L;,null) (1) + Handles null at 20 +6: ConditionalBranch(Ljava/lang/Object;,eq,13) (1) + Handles null at 20 +7: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 20 +8: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (5) + Handles null at 20 +9: Constant(I,3) (8) + Handles null at 20 +10: ConditionalBranch(I,ne,13) (9) + Handles null at 20 +11: Constant(I,1) (12) + Handles null at 20 +12: Goto(14) (13) + Handles null at 20 +13: Constant(I,0) (16) + Handles null at 20 +14: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (17) + Handles null at 20 +15: Constant(Ljava/lang/String;,"equals(Ljava_cup/parse_action;)Z") (17) + Handles null at 20 +16: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 20 +17: Constant(I,0) (17) + Handles null at 20 +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 20 +19: Return(I) (17) + Handles null at 20 +20: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +21: Constant(Ljava/lang/String;,"equals(Ljava_cup/parse_action;)Z") (0) +22: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +23: Constant(I,1) (0) +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +25: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/parse_action;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,9) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: LocalLoad(Ljava/lang/Object;,1) (8) +6: CheckCast(Ljava_cup/parse_action;) (9) +7: Invoke(VIRTUAL,Ljava_cup/nonassoc_action;,equals,(Ljava_cup/parse_action;)Z) (12) +8: Return(I) (15) +9: Constant(I,0) (16) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/parse_action;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,eq,18) (4) + Handles null at 25 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 25 +9: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 25 +10: CheckCast(Ljava_cup/parse_action;) (9) + Handles null at 25 +11: Invoke(VIRTUAL,Ljava_cup/nonassoc_action;,equals,(Ljava_cup/parse_action;)Z) (12) + Handles null at 25 +12: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (15) + Handles null at 25 +13: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (15) + Handles null at 25 +14: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 25 +15: Constant(I,0) (15) + Handles null at 25 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (15) + Handles null at 25 +17: Return(I) (15) + Handles null at 25 +18: Constant(I,0) (16) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: Constant(I,212853537) (0) +1: Return(I) (2) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,212853537) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (2) + Handles null at 11 +6: Constant(Ljava/lang/String;,"hashCode()I") (2) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 11 +8: Constant(I,0) (2) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2) + Handles null at 11 +10: Return(I) (2) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +12: Constant(Ljava/lang/String;,"hashCode()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"NONASSOC") (0) +1: Return(Ljava/lang/Object;) (2) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"NONASSOC") (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (2) + Handles null at 11 +6: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (2) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 11 +8: Constant(I,0) (2) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2) + Handles null at 11 +10: Return(Ljava/lang/Object;) (2) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/nonassoc_action") (0) +12: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Class: java_cup/parse_action +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/parse_action") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting kind ()I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +1: Constant(Ljava/lang/String;,"kind()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parse_action") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"kind()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +12: Constant(Ljava/lang/String;,"kind()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting equals (Ljava_cup/parse_action;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,9) (1) +3: LocalLoad(Ljava/lang/Object;,1) (4) +4: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (5) +5: Constant(I,0) (8) +6: ConditionalBranch(I,ne,9) (8) +7: Constant(I,1) (11) +8: Goto(10) (12) +9: Constant(I,0) (15) +10: Return(I) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/parse_action;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 20 +5: Constant(L;,null) (1) + Handles null at 20 +6: ConditionalBranch(Ljava/lang/Object;,eq,13) (1) + Handles null at 20 +7: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 20 +8: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (5) + Handles null at 20 +9: Constant(I,0) (8) + Handles null at 20 +10: ConditionalBranch(I,ne,13) (8) + Handles null at 20 +11: Constant(I,1) (11) + Handles null at 20 +12: Goto(14) (12) + Handles null at 20 +13: Constant(I,0) (15) + Handles null at 20 +14: Constant(Ljava/lang/String;,"java_cup/parse_action") (16) + Handles null at 20 +15: Constant(Ljava/lang/String;,"equals(Ljava_cup/parse_action;)Z") (16) + Handles null at 20 +16: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 20 +17: Constant(I,0) (16) + Handles null at 20 +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 20 +19: Return(I) (16) + Handles null at 20 +20: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +21: Constant(Ljava/lang/String;,"equals(Ljava_cup/parse_action;)Z") (0) +22: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +23: Constant(I,1) (0) +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +25: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/parse_action;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,9) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: LocalLoad(Ljava/lang/Object;,1) (8) +6: CheckCast(Ljava_cup/parse_action;) (9) +7: Invoke(VIRTUAL,Ljava_cup/parse_action;,equals,(Ljava_cup/parse_action;)Z) (12) +8: Return(I) (15) +9: Constant(I,0) (16) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/parse_action;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,eq,18) (4) + Handles null at 25 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 25 +9: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 25 +10: CheckCast(Ljava_cup/parse_action;) (9) + Handles null at 25 +11: Invoke(VIRTUAL,Ljava_cup/parse_action;,equals,(Ljava_cup/parse_action;)Z) (12) + Handles null at 25 +12: Constant(Ljava/lang/String;,"java_cup/parse_action") (15) + Handles null at 25 +13: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (15) + Handles null at 25 +14: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 25 +15: Constant(I,0) (15) + Handles null at 25 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (15) + Handles null at 25 +17: Return(I) (15) + Handles null at 25 +18: Constant(I,0) (16) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/parse_action") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: Constant(I,212853027) (0) +1: Return(I) (2) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,212853027) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parse_action") (2) + Handles null at 11 +6: Constant(Ljava/lang/String;,"hashCode()I") (2) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 11 +8: Constant(I,0) (2) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2) + Handles null at 11 +10: Return(I) (2) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +12: Constant(Ljava/lang/String;,"hashCode()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"ERROR") (0) +1: Return(Ljava/lang/Object;) (2) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"ERROR") (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parse_action") (2) + Handles null at 11 +6: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (2) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 11 +8: Constant(I,0) (2) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (2) + Handles null at 11 +10: Return(Ljava/lang/Object;) (2) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parse_action") (0) +12: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Class: java_cup/parse_action_row +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Get(I,STATIC,Ljava_cup/parse_action_row;,_size) (4) +3: Constant(I,0) (7) +4: ConditionalBranch(I,gt,7) (7) +5: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (10) +6: Put(I,STATIC,Ljava_cup/parse_action_row;,_size) (13) +7: LocalLoad(Ljava/lang/Object;,0) (16) +8: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (17) +9: New([Ljava_cup/parse_action;,1) (20) +10: Put([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (23) +11: Constant(I,0) (26) +12: LocalStore(I,1) (27) +13: LocalLoad(I,1) (28) +14: Get(I,STATIC,Ljava_cup/parse_action_row;,_size) (29) +15: ConditionalBranch(I,ge,28) (32) +16: LocalLoad(Ljava/lang/Object;,0) (35) +17: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (36) +18: LocalLoad(I,1) (39) +19: New(Ljava_cup/parse_action;,0) (40) +20: Dup(1,0) (43) +21: Invoke(SPECIAL,Ljava_cup/parse_action;,,()V) (44) +22: ArrayStore(Ljava/lang/Object;) (47) +23: LocalLoad(I,1) (48) +24: Constant(I,1) (48) +25: BinaryOp(I,add) (48) +26: LocalStore(I,1) (48) +27: Goto(13) (51) +28: Return(V) (54) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 38 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 38 +6: Get(I,STATIC,Ljava_cup/parse_action_row;,_size) (4) + Handles null at 38 +7: Constant(I,0) (7) + Handles null at 38 +8: ConditionalBranch(I,gt,11) (7) + Handles null at 38 +9: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (10) + Handles null at 38 +10: Put(I,STATIC,Ljava_cup/parse_action_row;,_size) (13) + Handles null at 38 +11: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 38 +12: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (17) + Handles null at 38 +13: New([Ljava_cup/parse_action;,1) (20) + Handles null at 38 +14: Put([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (23) + Handles null at 38 +15: Constant(I,0) (26) + Handles null at 38 +16: LocalStore(I,1) (27) + Handles null at 38 +17: LocalLoad(I,1) (28) + Handles null at 38 +18: Get(I,STATIC,Ljava_cup/parse_action_row;,_size) (29) + Handles null at 38 +19: ConditionalBranch(I,ge,32) (32) + Handles null at 38 +20: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 38 +21: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (36) + Handles null at 38 +22: LocalLoad(I,1) (39) + Handles null at 38 +23: New(Ljava_cup/parse_action;,0) (40) + Handles null at 38 +24: Dup(1,0) (43) + Handles null at 38 +25: Invoke(SPECIAL,Ljava_cup/parse_action;,,()V) (44) + Handles null at 38 +26: ArrayStore(Ljava/lang/Object;) (47) + Handles null at 38 +27: LocalLoad(I,1) (48) + Handles null at 38 +28: Constant(I,1) (48) + Handles null at 38 +29: BinaryOp(I,add) (48) + Handles null at 38 +30: LocalStore(I,1) (48) + Handles null at 38 +31: Goto(17) (51) + Handles null at 38 +32: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (54) + Handles null at 38 +33: Constant(Ljava/lang/String;,"()V") (54) + Handles null at 38 +34: LocalLoad(Ljava/lang/Object;,0) (54) + Handles null at 38 +35: Constant(I,0) (54) + Handles null at 38 +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (54) + Handles null at 38 +37: Return(V) (54) + Handles null at 38 +38: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +39: Constant(Ljava/lang/String;,"()V") (0) +40: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +41: Constant(I,1) (0) +42: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +43: Throw() (0) +Instrumenting size ()I: +Initial ShrikeBT code: +0: Get(I,STATIC,Ljava_cup/parse_action_row;,_size) (0) +1: Return(I) (3) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +1: Constant(Ljava/lang/String;,"size()I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(I,STATIC,Ljava_cup/parse_action_row;,_size) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (3) + Handles null at 11 +6: Constant(Ljava/lang/String;,"size()I") (3) + Handles null at 11 +7: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (3) + Handles null at 11 +8: Constant(I,0) (3) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3) + Handles null at 11 +10: Return(I) (3) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +12: Constant(Ljava/lang/String;,"size()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting clear ()V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Put(I,STATIC,Ljava_cup/parse_action_row;,_size) (1) +2: Constant(L;,null) (4) +3: Put([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (5) +4: Return(V) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +1: Constant(Ljava/lang/String;,"clear()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 14 +5: Put(I,STATIC,Ljava_cup/parse_action_row;,_size) (1) + Handles null at 14 +6: Constant(L;,null) (4) + Handles null at 14 +7: Put([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (5) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (8) + Handles null at 14 +9: Constant(Ljava/lang/String;,"clear()V") (8) + Handles null at 14 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (8) + Handles null at 14 +11: Constant(I,0) (8) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 14 +13: Return(V) (8) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +15: Constant(Ljava/lang/String;,"clear()V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting compute_default ()V: +Initial ShrikeBT code: +0: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (0) +1: Constant(L;,null) (3) +2: ConditionalBranch(Ljava/lang/Object;,ne,6) (3) +3: Invoke(STATIC,Ljava_cup/production;,number,()I) (6) +4: New([I,1) (9) +5: Put([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (11) +6: Constant(I,0) (14) +7: LocalStore(I,1) (15) +8: LocalLoad(I,1) (16) +9: Invoke(STATIC,Ljava_cup/production;,number,()I) (17) +10: ConditionalBranch(I,ge,20) (20) +11: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (23) +12: LocalLoad(I,1) (26) +13: Constant(I,0) (27) +14: ArrayStore(I) (28) +15: LocalLoad(I,1) (29) +16: Constant(I,1) (29) +17: BinaryOp(I,add) (29) +18: LocalStore(I,1) (29) +19: Goto(8) (32) +20: Constant(I,-1) (35) +21: LocalStore(I,3) (36) +22: Constant(I,0) (37) +23: LocalStore(I,4) (38) +24: Constant(I,0) (40) +25: LocalStore(I,1) (41) +26: LocalLoad(I,1) (42) +27: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (43) +28: ConditionalBranch(I,ge,67) (46) +29: LocalLoad(Ljava/lang/Object;,0) (49) +30: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (50) +31: LocalLoad(I,1) (53) +32: ArrayLoad(Ljava/lang/Object;) (54) +33: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (55) +34: Constant(I,2) (58) +35: ConditionalBranch(I,ne,62) (59) +36: LocalLoad(Ljava/lang/Object;,0) (62) +37: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (63) +38: LocalLoad(I,1) (66) +39: ArrayLoad(Ljava/lang/Object;) (67) +40: CheckCast(Ljava_cup/reduce_action;) (68) +41: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (71) +42: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (74) +43: LocalStore(I,2) (77) +44: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (78) +45: LocalLoad(I,2) (81) +46: Dup(2,0) (82) +47: ArrayLoad(I) (83) +48: Constant(I,1) (84) +49: BinaryOp(I,add) (85) +50: ArrayStore(I) (86) +51: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (87) +52: LocalLoad(I,2) (90) +53: ArrayLoad(I) (91) +54: LocalLoad(I,4) (92) +55: ConditionalBranch(I,le,62) (94) +56: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (97) +57: LocalLoad(I,2) (100) +58: ArrayLoad(I) (101) +59: LocalStore(I,4) (102) +60: LocalLoad(I,2) (104) +61: LocalStore(I,3) (105) +62: LocalLoad(I,1) (106) +63: Constant(I,1) (106) +64: BinaryOp(I,add) (106) +65: LocalStore(I,1) (106) +66: Goto(26) (109) +67: LocalLoad(Ljava/lang/Object;,0) (112) +68: LocalLoad(I,3) (113) +69: Put(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (114) +70: Return(V) (117) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +1: Constant(Ljava/lang/String;,"compute_default()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (0) + Handles null at 80 +5: Constant(L;,null) (3) + Handles null at 80 +6: ConditionalBranch(Ljava/lang/Object;,ne,10) (3) + Handles null at 80 +7: Invoke(STATIC,Ljava_cup/production;,number,()I) (6) + Handles null at 80 +8: New([I,1) (9) + Handles null at 80 +9: Put([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (11) + Handles null at 80 +10: Constant(I,0) (14) + Handles null at 80 +11: LocalStore(I,1) (15) + Handles null at 80 +12: LocalLoad(I,1) (16) + Handles null at 80 +13: Invoke(STATIC,Ljava_cup/production;,number,()I) (17) + Handles null at 80 +14: ConditionalBranch(I,ge,24) (20) + Handles null at 80 +15: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (23) + Handles null at 80 +16: LocalLoad(I,1) (26) + Handles null at 80 +17: Constant(I,0) (27) + Handles null at 80 +18: ArrayStore(I) (28) + Handles null at 80 +19: LocalLoad(I,1) (29) + Handles null at 80 +20: Constant(I,1) (29) + Handles null at 80 +21: BinaryOp(I,add) (29) + Handles null at 80 +22: LocalStore(I,1) (29) + Handles null at 80 +23: Goto(12) (32) + Handles null at 80 +24: Constant(I,-1) (35) + Handles null at 80 +25: LocalStore(I,3) (36) + Handles null at 80 +26: Constant(I,0) (37) + Handles null at 80 +27: LocalStore(I,4) (38) + Handles null at 80 +28: Constant(I,0) (40) + Handles null at 80 +29: LocalStore(I,1) (41) + Handles null at 80 +30: LocalLoad(I,1) (42) + Handles null at 80 +31: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (43) + Handles null at 80 +32: ConditionalBranch(I,ge,71) (46) + Handles null at 80 +33: LocalLoad(Ljava/lang/Object;,0) (49) + Handles null at 80 +34: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (50) + Handles null at 80 +35: LocalLoad(I,1) (53) + Handles null at 80 +36: ArrayLoad(Ljava/lang/Object;) (54) + Handles null at 80 +37: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (55) + Handles null at 80 +38: Constant(I,2) (58) + Handles null at 80 +39: ConditionalBranch(I,ne,66) (59) + Handles null at 80 +40: LocalLoad(Ljava/lang/Object;,0) (62) + Handles null at 80 +41: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (63) + Handles null at 80 +42: LocalLoad(I,1) (66) + Handles null at 80 +43: ArrayLoad(Ljava/lang/Object;) (67) + Handles null at 80 +44: CheckCast(Ljava_cup/reduce_action;) (68) + Handles null at 80 +45: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (71) + Handles null at 80 +46: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (74) + Handles null at 80 +47: LocalStore(I,2) (77) + Handles null at 80 +48: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (78) + Handles null at 80 +49: LocalLoad(I,2) (81) + Handles null at 80 +50: Dup(2,0) (82) + Handles null at 80 +51: ArrayLoad(I) (83) + Handles null at 80 +52: Constant(I,1) (84) + Handles null at 80 +53: BinaryOp(I,add) (85) + Handles null at 80 +54: ArrayStore(I) (86) + Handles null at 80 +55: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (87) + Handles null at 80 +56: LocalLoad(I,2) (90) + Handles null at 80 +57: ArrayLoad(I) (91) + Handles null at 80 +58: LocalLoad(I,4) (92) + Handles null at 80 +59: ConditionalBranch(I,le,66) (94) + Handles null at 80 +60: Get([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (97) + Handles null at 80 +61: LocalLoad(I,2) (100) + Handles null at 80 +62: ArrayLoad(I) (101) + Handles null at 80 +63: LocalStore(I,4) (102) + Handles null at 80 +64: LocalLoad(I,2) (104) + Handles null at 80 +65: LocalStore(I,3) (105) + Handles null at 80 +66: LocalLoad(I,1) (106) + Handles null at 80 +67: Constant(I,1) (106) + Handles null at 80 +68: BinaryOp(I,add) (106) + Handles null at 80 +69: LocalStore(I,1) (106) + Handles null at 80 +70: Goto(30) (109) + Handles null at 80 +71: LocalLoad(Ljava/lang/Object;,0) (112) + Handles null at 80 +72: LocalLoad(I,3) (113) + Handles null at 80 +73: Put(I,NONSTATIC,Ljava_cup/parse_action_row;,default_reduce) (114) + Handles null at 80 +74: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (117) + Handles null at 80 +75: Constant(Ljava/lang/String;,"compute_default()V") (117) + Handles null at 80 +76: LocalLoad(Ljava/lang/Object;,0) (117) + Handles null at 80 +77: Constant(I,0) (117) + Handles null at 80 +78: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (117) + Handles null at 80 +79: Return(V) (117) + Handles null at 80 +80: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +81: Constant(Ljava/lang/String;,"compute_default()V") (0) +82: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +83: Constant(I,1) (0) +84: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +85: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Put(I,STATIC,Ljava_cup/parse_action_row;,_size) (1) +2: Constant(L;,null) (4) +3: Put([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (5) +4: Return(V) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 14 +5: Put(I,STATIC,Ljava_cup/parse_action_row;,_size) (1) + Handles null at 14 +6: Constant(L;,null) (4) + Handles null at 14 +7: Put([I,STATIC,Ljava_cup/parse_action_row;,reduction_count) (5) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (8) + Handles null at 14 +9: Constant(Ljava/lang/String;,"()V") (8) + Handles null at 14 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (8) + Handles null at 14 +11: Constant(I,0) (8) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 14 +13: Return(V) (8) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/parse_action_row") (0) +15: Constant(Ljava/lang/String;,"()V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Class: java_cup/parse_action_table +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (5) +4: Put(I,NONSTATIC,Ljava_cup/parse_action_table;,_num_states) (8) +5: LocalLoad(Ljava/lang/Object;,0) (11) +6: LocalLoad(Ljava/lang/Object;,0) (12) +7: Get(I,NONSTATIC,Ljava_cup/parse_action_table;,_num_states) (13) +8: New([Ljava_cup/parse_action_row;,1) (16) +9: Put([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (19) +10: Constant(I,0) (22) +11: LocalStore(I,1) (23) +12: LocalLoad(I,1) (24) +13: LocalLoad(Ljava/lang/Object;,0) (25) +14: Get(I,NONSTATIC,Ljava_cup/parse_action_table;,_num_states) (26) +15: ConditionalBranch(I,ge,28) (29) +16: LocalLoad(Ljava/lang/Object;,0) (32) +17: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (33) +18: LocalLoad(I,1) (36) +19: New(Ljava_cup/parse_action_row;,0) (37) +20: Dup(1,0) (40) +21: Invoke(SPECIAL,Ljava_cup/parse_action_row;,,()V) (41) +22: ArrayStore(Ljava/lang/Object;) (44) +23: LocalLoad(I,1) (45) +24: Constant(I,1) (45) +25: BinaryOp(I,add) (45) +26: LocalStore(I,1) (45) +27: Goto(12) (48) +28: Return(V) (51) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 38 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 38 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 38 +7: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (5) + Handles null at 38 +8: Put(I,NONSTATIC,Ljava_cup/parse_action_table;,_num_states) (8) + Handles null at 38 +9: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 38 +10: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 38 +11: Get(I,NONSTATIC,Ljava_cup/parse_action_table;,_num_states) (13) + Handles null at 38 +12: New([Ljava_cup/parse_action_row;,1) (16) + Handles null at 38 +13: Put([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (19) + Handles null at 38 +14: Constant(I,0) (22) + Handles null at 38 +15: LocalStore(I,1) (23) + Handles null at 38 +16: LocalLoad(I,1) (24) + Handles null at 38 +17: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 38 +18: Get(I,NONSTATIC,Ljava_cup/parse_action_table;,_num_states) (26) + Handles null at 38 +19: ConditionalBranch(I,ge,32) (29) + Handles null at 38 +20: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 38 +21: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (33) + Handles null at 38 +22: LocalLoad(I,1) (36) + Handles null at 38 +23: New(Ljava_cup/parse_action_row;,0) (37) + Handles null at 38 +24: Dup(1,0) (40) + Handles null at 38 +25: Invoke(SPECIAL,Ljava_cup/parse_action_row;,,()V) (41) + Handles null at 38 +26: ArrayStore(Ljava/lang/Object;) (44) + Handles null at 38 +27: LocalLoad(I,1) (45) + Handles null at 38 +28: Constant(I,1) (45) + Handles null at 38 +29: BinaryOp(I,add) (45) + Handles null at 38 +30: LocalStore(I,1) (45) + Handles null at 38 +31: Goto(16) (48) + Handles null at 38 +32: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (51) + Handles null at 38 +33: Constant(Ljava/lang/String;,"()V") (51) + Handles null at 38 +34: LocalLoad(Ljava/lang/Object;,0) (51) + Handles null at 38 +35: Constant(I,0) (51) + Handles null at 38 +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (51) + Handles null at 38 +37: Return(V) (51) + Handles null at 38 +38: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (0) +39: Constant(Ljava/lang/String;,"()V") (0) +40: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +41: Constant(I,1) (0) +42: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +43: Throw() (0) +Instrumenting num_states ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/parse_action_table;,_num_states) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (0) +1: Constant(Ljava/lang/String;,"num_states()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/parse_action_table;,_num_states) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"num_states()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (0) +13: Constant(Ljava/lang/String;,"num_states()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting check_reductions ()V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,3) (1) +2: LocalLoad(I,3) (2) +3: LocalLoad(Ljava/lang/Object;,0) (3) +4: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,num_states,()I) (4) +5: ConditionalBranch(I,ge,40) (7) +6: Constant(I,0) (10) +7: LocalStore(I,4) (11) +8: LocalLoad(I,4) (13) +9: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (15) +10: ConditionalBranch(I,ge,35) (18) +11: LocalLoad(Ljava/lang/Object;,0) (21) +12: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (22) +13: LocalLoad(I,3) (25) +14: ArrayLoad(Ljava/lang/Object;) (26) +15: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (27) +16: LocalLoad(I,4) (30) +17: ArrayLoad(Ljava/lang/Object;) (32) +18: LocalStore(Ljava/lang/Object;,1) (33) +19: LocalLoad(Ljava/lang/Object;,1) (34) +20: Constant(L;,null) (35) +21: ConditionalBranch(Ljava/lang/Object;,eq,30) (35) +22: LocalLoad(Ljava/lang/Object;,1) (38) +23: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (39) +24: Constant(I,2) (42) +25: ConditionalBranch(I,ne,30) (43) +26: LocalLoad(Ljava/lang/Object;,1) (46) +27: CheckCast(Ljava_cup/reduce_action;) (47) +28: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (50) +29: Invoke(VIRTUAL,Ljava_cup/production;,note_reduction_use,()V) (53) +30: LocalLoad(I,4) (56) +31: Constant(I,1) (56) +32: BinaryOp(I,add) (56) +33: LocalStore(I,4) (56) +34: Goto(8) (59) +35: LocalLoad(I,3) (62) +36: Constant(I,1) (62) +37: BinaryOp(I,add) (62) +38: LocalStore(I,3) (62) +39: Goto(2) (65) +40: Invoke(STATIC,Ljava_cup/production;,all,()Ljava/util/Enumeration;) (68) +41: LocalStore(Ljava/lang/Object;,3) (71) +42: LocalLoad(Ljava/lang/Object;,3) (72) +43: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (73) +44: Constant(I,0) (78) +45: ConditionalBranch(I,eq,71) (78) +46: LocalLoad(Ljava/lang/Object;,3) (81) +47: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (82) +48: CheckCast(Ljava_cup/production;) (87) +49: LocalStore(Ljava/lang/Object;,2) (90) +50: LocalLoad(Ljava/lang/Object;,2) (91) +51: Invoke(VIRTUAL,Ljava_cup/production;,num_reductions,()I) (92) +52: Constant(I,0) (95) +53: ConditionalBranch(I,ne,42) (95) +54: Get(Z,STATIC,Ljava_cup/emit;,nowarn) (98) +55: Constant(I,0) (101) +56: ConditionalBranch(I,ne,42) (101) +57: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (104) +58: New(Ljava/lang/StringBuilder;,0) (107) +59: Dup(1,0) (110) +60: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (111) +61: Constant(Ljava/lang/String;,"*** Production \"") (114) +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (116) +63: LocalLoad(Ljava/lang/Object;,2) (119) +64: Invoke(VIRTUAL,Ljava_cup/production;,to_simple_string,()Ljava/lang/String;) (120) +65: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (123) +66: Constant(Ljava/lang/String;,"\" never reduced") (126) +67: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (128) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (131) +69: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (134) +70: Goto(42) (137) +71: Return(V) (140) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (0) +1: Constant(Ljava/lang/String;,"check_reductions()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 81 +5: LocalStore(I,3) (1) + Handles null at 81 +6: LocalLoad(I,3) (2) + Handles null at 81 +7: LocalLoad(Ljava/lang/Object;,0) (3) + Handles null at 81 +8: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,num_states,()I) (4) + Handles null at 81 +9: ConditionalBranch(I,ge,44) (7) + Handles null at 81 +10: Constant(I,0) (10) + Handles null at 81 +11: LocalStore(I,4) (11) + Handles null at 81 +12: LocalLoad(I,4) (13) + Handles null at 81 +13: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (15) + Handles null at 81 +14: ConditionalBranch(I,ge,39) (18) + Handles null at 81 +15: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 81 +16: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (22) + Handles null at 81 +17: LocalLoad(I,3) (25) + Handles null at 81 +18: ArrayLoad(Ljava/lang/Object;) (26) + Handles null at 81 +19: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (27) + Handles null at 81 +20: LocalLoad(I,4) (30) + Handles null at 81 +21: ArrayLoad(Ljava/lang/Object;) (32) + Handles null at 81 +22: LocalStore(Ljava/lang/Object;,1) (33) + Handles null at 81 +23: LocalLoad(Ljava/lang/Object;,1) (34) + Handles null at 81 +24: Constant(L;,null) (35) + Handles null at 81 +25: ConditionalBranch(Ljava/lang/Object;,eq,34) (35) + Handles null at 81 +26: LocalLoad(Ljava/lang/Object;,1) (38) + Handles null at 81 +27: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (39) + Handles null at 81 +28: Constant(I,2) (42) + Handles null at 81 +29: ConditionalBranch(I,ne,34) (43) + Handles null at 81 +30: LocalLoad(Ljava/lang/Object;,1) (46) + Handles null at 81 +31: CheckCast(Ljava_cup/reduce_action;) (47) + Handles null at 81 +32: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (50) + Handles null at 81 +33: Invoke(VIRTUAL,Ljava_cup/production;,note_reduction_use,()V) (53) + Handles null at 81 +34: LocalLoad(I,4) (56) + Handles null at 81 +35: Constant(I,1) (56) + Handles null at 81 +36: BinaryOp(I,add) (56) + Handles null at 81 +37: LocalStore(I,4) (56) + Handles null at 81 +38: Goto(12) (59) + Handles null at 81 +39: LocalLoad(I,3) (62) + Handles null at 81 +40: Constant(I,1) (62) + Handles null at 81 +41: BinaryOp(I,add) (62) + Handles null at 81 +42: LocalStore(I,3) (62) + Handles null at 81 +43: Goto(6) (65) + Handles null at 81 +44: Invoke(STATIC,Ljava_cup/production;,all,()Ljava/util/Enumeration;) (68) + Handles null at 81 +45: LocalStore(Ljava/lang/Object;,3) (71) + Handles null at 81 +46: LocalLoad(Ljava/lang/Object;,3) (72) + Handles null at 81 +47: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (73) + Handles null at 81 +48: Constant(I,0) (78) + Handles null at 81 +49: ConditionalBranch(I,eq,75) (78) + Handles null at 81 +50: LocalLoad(Ljava/lang/Object;,3) (81) + Handles null at 81 +51: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (82) + Handles null at 81 +52: CheckCast(Ljava_cup/production;) (87) + Handles null at 81 +53: LocalStore(Ljava/lang/Object;,2) (90) + Handles null at 81 +54: LocalLoad(Ljava/lang/Object;,2) (91) + Handles null at 81 +55: Invoke(VIRTUAL,Ljava_cup/production;,num_reductions,()I) (92) + Handles null at 81 +56: Constant(I,0) (95) + Handles null at 81 +57: ConditionalBranch(I,ne,46) (95) + Handles null at 81 +58: Get(Z,STATIC,Ljava_cup/emit;,nowarn) (98) + Handles null at 81 +59: Constant(I,0) (101) + Handles null at 81 +60: ConditionalBranch(I,ne,46) (101) + Handles null at 81 +61: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (104) + Handles null at 81 +62: New(Ljava/lang/StringBuilder;,0) (107) + Handles null at 81 +63: Dup(1,0) (110) + Handles null at 81 +64: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (111) + Handles null at 81 +65: Constant(Ljava/lang/String;,"*** Production \"") (114) + Handles null at 81 +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (116) + Handles null at 81 +67: LocalLoad(Ljava/lang/Object;,2) (119) + Handles null at 81 +68: Invoke(VIRTUAL,Ljava_cup/production;,to_simple_string,()Ljava/lang/String;) (120) + Handles null at 81 +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (123) + Handles null at 81 +70: Constant(Ljava/lang/String;,"\" never reduced") (126) + Handles null at 81 +71: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (128) + Handles null at 81 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (131) + Handles null at 81 +73: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_warning,(Ljava/lang/String;)V) (134) + Handles null at 81 +74: Goto(46) (137) + Handles null at 81 +75: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (140) + Handles null at 81 +76: Constant(Ljava/lang/String;,"check_reductions()V") (140) + Handles null at 81 +77: LocalLoad(Ljava/lang/Object;,0) (140) + Handles null at 81 +78: Constant(I,0) (140) + Handles null at 81 +79: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (140) + Handles null at 81 +80: Return(V) (140) + Handles null at 81 +81: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (0) +82: Constant(Ljava/lang/String;,"check_reductions()V") (0) +83: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +84: Constant(I,1) (0) +85: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +86: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"-------- ACTION_TABLE --------\ +") (0) +1: LocalStore(Ljava/lang/Object;,1) (2) +2: Constant(I,0) (3) +3: LocalStore(I,3) (4) +4: LocalLoad(I,3) (5) +5: LocalLoad(Ljava/lang/Object;,0) (6) +6: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,num_states,()I) (7) +7: ConditionalBranch(I,ge,101) (10) +8: New(Ljava/lang/StringBuilder;,0) (13) +9: Dup(1,0) (16) +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (17) +11: LocalLoad(Ljava/lang/Object;,1) (20) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +13: Constant(Ljava/lang/String;,"From state #") (24) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) +15: LocalLoad(I,3) (29) +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (30) +17: Constant(Ljava/lang/String;,"\ +") (33) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (35) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (38) +20: LocalStore(Ljava/lang/Object;,1) (41) +21: Constant(I,0) (42) +22: LocalStore(I,2) (43) +23: Constant(I,0) (44) +24: LocalStore(I,4) (45) +25: LocalLoad(I,4) (47) +26: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (49) +27: ConditionalBranch(I,ge,84) (52) +28: LocalLoad(Ljava/lang/Object;,0) (55) +29: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (56) +30: LocalLoad(I,3) (59) +31: ArrayLoad(Ljava/lang/Object;) (60) +32: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (61) +33: LocalLoad(I,4) (64) +34: ArrayLoad(Ljava/lang/Object;) (66) +35: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (67) +36: Constant(I,0) (70) +37: ConditionalBranch(I,eq,79) (70) +38: New(Ljava/lang/StringBuilder;,0) (73) +39: Dup(1,0) (76) +40: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (77) +41: LocalLoad(Ljava/lang/Object;,1) (80) +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (81) +43: Constant(Ljava/lang/String;," [term ") (84) +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (86) +45: LocalLoad(I,4) (89) +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (91) +47: Constant(Ljava/lang/String;,":") (94) +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (96) +49: LocalLoad(Ljava/lang/Object;,0) (99) +50: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (100) +51: LocalLoad(I,3) (103) +52: ArrayLoad(Ljava/lang/Object;) (104) +53: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (105) +54: LocalLoad(I,4) (108) +55: ArrayLoad(Ljava/lang/Object;) (110) +56: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (111) +57: Constant(Ljava/lang/String;,"]") (114) +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (116) +59: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (119) +60: LocalStore(Ljava/lang/Object;,1) (122) +61: LocalLoad(I,2) (123) +62: Constant(I,1) (123) +63: BinaryOp(I,add) (123) +64: LocalStore(I,2) (123) +65: LocalLoad(I,2) (126) +66: Constant(I,2) (127) +67: ConditionalBranch(I,ne,79) (128) +68: New(Ljava/lang/StringBuilder;,0) (131) +69: Dup(1,0) (134) +70: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (135) +71: LocalLoad(Ljava/lang/Object;,1) (138) +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) +73: Constant(Ljava/lang/String;,"\ +") (142) +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (144) +75: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (147) +76: LocalStore(Ljava/lang/Object;,1) (150) +77: Constant(I,0) (151) +78: LocalStore(I,2) (152) +79: LocalLoad(I,4) (153) +80: Constant(I,1) (153) +81: BinaryOp(I,add) (153) +82: LocalStore(I,4) (153) +83: Goto(25) (156) +84: LocalLoad(I,2) (159) +85: Constant(I,0) (160) +86: ConditionalBranch(I,eq,96) (160) +87: New(Ljava/lang/StringBuilder;,0) (163) +88: Dup(1,0) (166) +89: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (167) +90: LocalLoad(Ljava/lang/Object;,1) (170) +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (171) +92: Constant(Ljava/lang/String;,"\ +") (174) +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (176) +94: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (179) +95: LocalStore(Ljava/lang/Object;,1) (182) +96: LocalLoad(I,3) (183) +97: Constant(I,1) (183) +98: BinaryOp(I,add) (183) +99: LocalStore(I,3) (183) +100: Goto(4) (186) +101: New(Ljava/lang/StringBuilder;,0) (189) +102: Dup(1,0) (192) +103: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (193) +104: LocalLoad(Ljava/lang/Object;,1) (196) +105: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (197) +106: Constant(Ljava/lang/String;,"------------------------------") (200) +107: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (202) +108: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (205) +109: LocalStore(Ljava/lang/Object;,1) (208) +110: LocalLoad(Ljava/lang/Object;,1) (209) +111: Return(Ljava/lang/Object;) (210) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"-------- ACTION_TABLE --------\ +") (0) + Handles null at 121 +5: LocalStore(Ljava/lang/Object;,1) (2) + Handles null at 121 +6: Constant(I,0) (3) + Handles null at 121 +7: LocalStore(I,3) (4) + Handles null at 121 +8: LocalLoad(I,3) (5) + Handles null at 121 +9: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 121 +10: Invoke(VIRTUAL,Ljava_cup/parse_action_table;,num_states,()I) (7) + Handles null at 121 +11: ConditionalBranch(I,ge,105) (10) + Handles null at 121 +12: New(Ljava/lang/StringBuilder;,0) (13) + Handles null at 121 +13: Dup(1,0) (16) + Handles null at 121 +14: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (17) + Handles null at 121 +15: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 121 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 121 +17: Constant(Ljava/lang/String;,"From state #") (24) + Handles null at 121 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (26) + Handles null at 121 +19: LocalLoad(I,3) (29) + Handles null at 121 +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (30) + Handles null at 121 +21: Constant(Ljava/lang/String;,"\ +") (33) + Handles null at 121 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (35) + Handles null at 121 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (38) + Handles null at 121 +24: LocalStore(Ljava/lang/Object;,1) (41) + Handles null at 121 +25: Constant(I,0) (42) + Handles null at 121 +26: LocalStore(I,2) (43) + Handles null at 121 +27: Constant(I,0) (44) + Handles null at 121 +28: LocalStore(I,4) (45) + Handles null at 121 +29: LocalLoad(I,4) (47) + Handles null at 121 +30: Invoke(STATIC,Ljava_cup/parse_action_row;,size,()I) (49) + Handles null at 121 +31: ConditionalBranch(I,ge,88) (52) + Handles null at 121 +32: LocalLoad(Ljava/lang/Object;,0) (55) + Handles null at 121 +33: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (56) + Handles null at 121 +34: LocalLoad(I,3) (59) + Handles null at 121 +35: ArrayLoad(Ljava/lang/Object;) (60) + Handles null at 121 +36: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (61) + Handles null at 121 +37: LocalLoad(I,4) (64) + Handles null at 121 +38: ArrayLoad(Ljava/lang/Object;) (66) + Handles null at 121 +39: Invoke(VIRTUAL,Ljava_cup/parse_action;,kind,()I) (67) + Handles null at 121 +40: Constant(I,0) (70) + Handles null at 121 +41: ConditionalBranch(I,eq,83) (70) + Handles null at 121 +42: New(Ljava/lang/StringBuilder;,0) (73) + Handles null at 121 +43: Dup(1,0) (76) + Handles null at 121 +44: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (77) + Handles null at 121 +45: LocalLoad(Ljava/lang/Object;,1) (80) + Handles null at 121 +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (81) + Handles null at 121 +47: Constant(Ljava/lang/String;," [term ") (84) + Handles null at 121 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (86) + Handles null at 121 +49: LocalLoad(I,4) (89) + Handles null at 121 +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (91) + Handles null at 121 +51: Constant(Ljava/lang/String;,":") (94) + Handles null at 121 +52: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (96) + Handles null at 121 +53: LocalLoad(Ljava/lang/Object;,0) (99) + Handles null at 121 +54: Get([Ljava_cup/parse_action_row;,NONSTATIC,Ljava_cup/parse_action_table;,under_state) (100) + Handles null at 121 +55: LocalLoad(I,3) (103) + Handles null at 121 +56: ArrayLoad(Ljava/lang/Object;) (104) + Handles null at 121 +57: Get([Ljava_cup/parse_action;,NONSTATIC,Ljava_cup/parse_action_row;,under_term) (105) + Handles null at 121 +58: LocalLoad(I,4) (108) + Handles null at 121 +59: ArrayLoad(Ljava/lang/Object;) (110) + Handles null at 121 +60: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (111) + Handles null at 121 +61: Constant(Ljava/lang/String;,"]") (114) + Handles null at 121 +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (116) + Handles null at 121 +63: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (119) + Handles null at 121 +64: LocalStore(Ljava/lang/Object;,1) (122) + Handles null at 121 +65: LocalLoad(I,2) (123) + Handles null at 121 +66: Constant(I,1) (123) + Handles null at 121 +67: BinaryOp(I,add) (123) + Handles null at 121 +68: LocalStore(I,2) (123) + Handles null at 121 +69: LocalLoad(I,2) (126) + Handles null at 121 +70: Constant(I,2) (127) + Handles null at 121 +71: ConditionalBranch(I,ne,83) (128) + Handles null at 121 +72: New(Ljava/lang/StringBuilder;,0) (131) + Handles null at 121 +73: Dup(1,0) (134) + Handles null at 121 +74: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (135) + Handles null at 121 +75: LocalLoad(Ljava/lang/Object;,1) (138) + Handles null at 121 +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (139) + Handles null at 121 +77: Constant(Ljava/lang/String;,"\ +") (142) + Handles null at 121 +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (144) + Handles null at 121 +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (147) + Handles null at 121 +80: LocalStore(Ljava/lang/Object;,1) (150) + Handles null at 121 +81: Constant(I,0) (151) + Handles null at 121 +82: LocalStore(I,2) (152) + Handles null at 121 +83: LocalLoad(I,4) (153) + Handles null at 121 +84: Constant(I,1) (153) + Handles null at 121 +85: BinaryOp(I,add) (153) + Handles null at 121 +86: LocalStore(I,4) (153) + Handles null at 121 +87: Goto(29) (156) + Handles null at 121 +88: LocalLoad(I,2) (159) + Handles null at 121 +89: Constant(I,0) (160) + Handles null at 121 +90: ConditionalBranch(I,eq,100) (160) + Handles null at 121 +91: New(Ljava/lang/StringBuilder;,0) (163) + Handles null at 121 +92: Dup(1,0) (166) + Handles null at 121 +93: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (167) + Handles null at 121 +94: LocalLoad(Ljava/lang/Object;,1) (170) + Handles null at 121 +95: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (171) + Handles null at 121 +96: Constant(Ljava/lang/String;,"\ +") (174) + Handles null at 121 +97: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (176) + Handles null at 121 +98: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (179) + Handles null at 121 +99: LocalStore(Ljava/lang/Object;,1) (182) + Handles null at 121 +100: LocalLoad(I,3) (183) + Handles null at 121 +101: Constant(I,1) (183) + Handles null at 121 +102: BinaryOp(I,add) (183) + Handles null at 121 +103: LocalStore(I,3) (183) + Handles null at 121 +104: Goto(8) (186) + Handles null at 121 +105: New(Ljava/lang/StringBuilder;,0) (189) + Handles null at 121 +106: Dup(1,0) (192) + Handles null at 121 +107: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (193) + Handles null at 121 +108: LocalLoad(Ljava/lang/Object;,1) (196) + Handles null at 121 +109: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (197) + Handles null at 121 +110: Constant(Ljava/lang/String;,"------------------------------") (200) + Handles null at 121 +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (202) + Handles null at 121 +112: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (205) + Handles null at 121 +113: LocalStore(Ljava/lang/Object;,1) (208) + Handles null at 121 +114: LocalLoad(Ljava/lang/Object;,1) (209) + Handles null at 121 +115: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (210) + Handles null at 121 +116: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (210) + Handles null at 121 +117: LocalLoad(Ljava/lang/Object;,0) (210) + Handles null at 121 +118: Constant(I,0) (210) + Handles null at 121 +119: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (210) + Handles null at 121 +120: Return(Ljava/lang/Object;) (210) + Handles null at 121 +121: Constant(Ljava/lang/String;,"java_cup/parse_action_table") (0) +122: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +123: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +124: Constant(I,1) (0) +125: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +126: Throw() (0) +Class: java_cup/parse_reduce_row +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Get(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (4) +3: Constant(I,0) (7) +4: ConditionalBranch(I,gt,7) (7) +5: Invoke(STATIC,Ljava_cup/non_terminal;,number,()I) (10) +6: Put(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (13) +7: LocalLoad(Ljava/lang/Object;,0) (16) +8: Invoke(STATIC,Ljava_cup/parse_reduce_row;,size,()I) (17) +9: New([Ljava_cup/lalr_state;,1) (20) +10: Put([Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/parse_reduce_row;,under_non_term) (23) +11: Return(V) (26) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 21 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 21 +6: Get(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (4) + Handles null at 21 +7: Constant(I,0) (7) + Handles null at 21 +8: ConditionalBranch(I,gt,11) (7) + Handles null at 21 +9: Invoke(STATIC,Ljava_cup/non_terminal;,number,()I) (10) + Handles null at 21 +10: Put(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (13) + Handles null at 21 +11: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 21 +12: Invoke(STATIC,Ljava_cup/parse_reduce_row;,size,()I) (17) + Handles null at 21 +13: New([Ljava_cup/lalr_state;,1) (20) + Handles null at 21 +14: Put([Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/parse_reduce_row;,under_non_term) (23) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (26) + Handles null at 21 +16: Constant(Ljava/lang/String;,"()V") (26) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 21 +18: Constant(I,0) (26) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (26) + Handles null at 21 +20: Return(V) (26) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (0) +22: Constant(Ljava/lang/String;,"()V") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting size ()I: +Initial ShrikeBT code: +0: Get(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (0) +1: Return(I) (3) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (0) +1: Constant(Ljava/lang/String;,"size()I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (3) + Handles null at 11 +6: Constant(Ljava/lang/String;,"size()I") (3) + Handles null at 11 +7: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (3) + Handles null at 11 +8: Constant(I,0) (3) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3) + Handles null at 11 +10: Return(I) (3) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (0) +12: Constant(Ljava/lang/String;,"size()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting clear ()V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Put(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (0) +1: Constant(Ljava/lang/String;,"clear()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 12 +5: Put(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"clear()V") (4) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (0) +13: Constant(Ljava/lang/String;,"clear()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Put(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 12 +5: Put(I,STATIC,Ljava_cup/parse_reduce_row;,_size) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/parse_reduce_row") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Class: java_cup/parse_reduce_table +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (5) +4: Put(I,NONSTATIC,Ljava_cup/parse_reduce_table;,_num_states) (8) +5: LocalLoad(Ljava/lang/Object;,0) (11) +6: LocalLoad(Ljava/lang/Object;,0) (12) +7: Get(I,NONSTATIC,Ljava_cup/parse_reduce_table;,_num_states) (13) +8: New([Ljava_cup/parse_reduce_row;,1) (16) +9: Put([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (19) +10: Constant(I,0) (22) +11: LocalStore(I,1) (23) +12: LocalLoad(I,1) (24) +13: LocalLoad(Ljava/lang/Object;,0) (25) +14: Get(I,NONSTATIC,Ljava_cup/parse_reduce_table;,_num_states) (26) +15: ConditionalBranch(I,ge,28) (29) +16: LocalLoad(Ljava/lang/Object;,0) (32) +17: Get([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (33) +18: LocalLoad(I,1) (36) +19: New(Ljava_cup/parse_reduce_row;,0) (37) +20: Dup(1,0) (40) +21: Invoke(SPECIAL,Ljava_cup/parse_reduce_row;,,()V) (41) +22: ArrayStore(Ljava/lang/Object;) (44) +23: LocalLoad(I,1) (45) +24: Constant(I,1) (45) +25: BinaryOp(I,add) (45) +26: LocalStore(I,1) (45) +27: Goto(12) (48) +28: Return(V) (51) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 38 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 38 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 38 +7: Invoke(STATIC,Ljava_cup/lalr_state;,number,()I) (5) + Handles null at 38 +8: Put(I,NONSTATIC,Ljava_cup/parse_reduce_table;,_num_states) (8) + Handles null at 38 +9: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 38 +10: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 38 +11: Get(I,NONSTATIC,Ljava_cup/parse_reduce_table;,_num_states) (13) + Handles null at 38 +12: New([Ljava_cup/parse_reduce_row;,1) (16) + Handles null at 38 +13: Put([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (19) + Handles null at 38 +14: Constant(I,0) (22) + Handles null at 38 +15: LocalStore(I,1) (23) + Handles null at 38 +16: LocalLoad(I,1) (24) + Handles null at 38 +17: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 38 +18: Get(I,NONSTATIC,Ljava_cup/parse_reduce_table;,_num_states) (26) + Handles null at 38 +19: ConditionalBranch(I,ge,32) (29) + Handles null at 38 +20: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 38 +21: Get([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (33) + Handles null at 38 +22: LocalLoad(I,1) (36) + Handles null at 38 +23: New(Ljava_cup/parse_reduce_row;,0) (37) + Handles null at 38 +24: Dup(1,0) (40) + Handles null at 38 +25: Invoke(SPECIAL,Ljava_cup/parse_reduce_row;,,()V) (41) + Handles null at 38 +26: ArrayStore(Ljava/lang/Object;) (44) + Handles null at 38 +27: LocalLoad(I,1) (45) + Handles null at 38 +28: Constant(I,1) (45) + Handles null at 38 +29: BinaryOp(I,add) (45) + Handles null at 38 +30: LocalStore(I,1) (45) + Handles null at 38 +31: Goto(16) (48) + Handles null at 38 +32: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (51) + Handles null at 38 +33: Constant(Ljava/lang/String;,"()V") (51) + Handles null at 38 +34: LocalLoad(Ljava/lang/Object;,0) (51) + Handles null at 38 +35: Constant(I,0) (51) + Handles null at 38 +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (51) + Handles null at 38 +37: Return(V) (51) + Handles null at 38 +38: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (0) +39: Constant(Ljava/lang/String;,"()V") (0) +40: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +41: Constant(I,1) (0) +42: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +43: Throw() (0) +Instrumenting num_states ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/parse_reduce_table;,_num_states) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (0) +1: Constant(Ljava/lang/String;,"num_states()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/parse_reduce_table;,_num_states) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"num_states()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (0) +13: Constant(Ljava/lang/String;,"num_states()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"-------- REDUCE_TABLE --------\ +") (0) +1: LocalStore(Ljava/lang/Object;,1) (2) +2: Constant(I,0) (3) +3: LocalStore(I,4) (4) +4: LocalLoad(I,4) (6) +5: LocalLoad(Ljava/lang/Object;,0) (8) +6: Invoke(VIRTUAL,Ljava_cup/parse_reduce_table;,num_states,()I) (9) +7: ConditionalBranch(I,ge,106) (12) +8: New(Ljava/lang/StringBuilder;,0) (15) +9: Dup(1,0) (18) +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (19) +11: LocalLoad(Ljava/lang/Object;,1) (22) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) +13: Constant(Ljava/lang/String;,"From state #") (26) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +15: LocalLoad(I,4) (31) +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (33) +17: Constant(Ljava/lang/String;,"\ +") (36) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (41) +20: LocalStore(Ljava/lang/Object;,1) (44) +21: Constant(I,0) (45) +22: LocalStore(I,3) (46) +23: Constant(I,0) (47) +24: LocalStore(I,5) (48) +25: LocalLoad(I,5) (50) +26: Invoke(STATIC,Ljava_cup/parse_reduce_row;,size,()I) (52) +27: ConditionalBranch(I,ge,89) (55) +28: LocalLoad(Ljava/lang/Object;,0) (58) +29: Get([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (59) +30: LocalLoad(I,4) (62) +31: ArrayLoad(Ljava/lang/Object;) (64) +32: Get([Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/parse_reduce_row;,under_non_term) (65) +33: LocalLoad(I,5) (68) +34: ArrayLoad(Ljava/lang/Object;) (70) +35: LocalStore(Ljava/lang/Object;,2) (71) +36: LocalLoad(Ljava/lang/Object;,2) (72) +37: Constant(L;,null) (73) +38: ConditionalBranch(Ljava/lang/Object;,eq,84) (73) +39: New(Ljava/lang/StringBuilder;,0) (76) +40: Dup(1,0) (79) +41: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (80) +42: LocalLoad(Ljava/lang/Object;,1) (83) +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (84) +44: Constant(Ljava/lang/String;," [non term ") (87) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (89) +46: LocalLoad(I,5) (92) +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (94) +48: Constant(Ljava/lang/String;,"->") (97) +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (99) +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (102) +51: LocalStore(Ljava/lang/Object;,1) (105) +52: New(Ljava/lang/StringBuilder;,0) (106) +53: Dup(1,0) (109) +54: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (110) +55: LocalLoad(Ljava/lang/Object;,1) (113) +56: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (114) +57: Constant(Ljava/lang/String;,"state ") (117) +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (119) +59: LocalLoad(Ljava/lang/Object;,2) (122) +60: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (123) +61: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (126) +62: Constant(Ljava/lang/String;,"]") (129) +63: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (131) +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (134) +65: LocalStore(Ljava/lang/Object;,1) (137) +66: LocalLoad(I,3) (138) +67: Constant(I,1) (138) +68: BinaryOp(I,add) (138) +69: LocalStore(I,3) (138) +70: LocalLoad(I,3) (141) +71: Constant(I,3) (142) +72: ConditionalBranch(I,ne,84) (143) +73: New(Ljava/lang/StringBuilder;,0) (146) +74: Dup(1,0) (149) +75: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (150) +76: LocalLoad(Ljava/lang/Object;,1) (153) +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (154) +78: Constant(Ljava/lang/String;,"\ +") (157) +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (159) +80: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (162) +81: LocalStore(Ljava/lang/Object;,1) (165) +82: Constant(I,0) (166) +83: LocalStore(I,3) (167) +84: LocalLoad(I,5) (168) +85: Constant(I,1) (168) +86: BinaryOp(I,add) (168) +87: LocalStore(I,5) (168) +88: Goto(25) (171) +89: LocalLoad(I,3) (174) +90: Constant(I,0) (175) +91: ConditionalBranch(I,eq,101) (175) +92: New(Ljava/lang/StringBuilder;,0) (178) +93: Dup(1,0) (181) +94: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (182) +95: LocalLoad(Ljava/lang/Object;,1) (185) +96: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (186) +97: Constant(Ljava/lang/String;,"\ +") (189) +98: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (191) +99: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (194) +100: LocalStore(Ljava/lang/Object;,1) (197) +101: LocalLoad(I,4) (198) +102: Constant(I,1) (198) +103: BinaryOp(I,add) (198) +104: LocalStore(I,4) (198) +105: Goto(4) (201) +106: New(Ljava/lang/StringBuilder;,0) (204) +107: Dup(1,0) (207) +108: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (208) +109: LocalLoad(Ljava/lang/Object;,1) (211) +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (212) +111: Constant(Ljava/lang/String;,"-----------------------------") (215) +112: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (217) +113: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (220) +114: LocalStore(Ljava/lang/Object;,1) (223) +115: LocalLoad(Ljava/lang/Object;,1) (224) +116: Return(Ljava/lang/Object;) (225) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"-------- REDUCE_TABLE --------\ +") (0) + Handles null at 126 +5: LocalStore(Ljava/lang/Object;,1) (2) + Handles null at 126 +6: Constant(I,0) (3) + Handles null at 126 +7: LocalStore(I,4) (4) + Handles null at 126 +8: LocalLoad(I,4) (6) + Handles null at 126 +9: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 126 +10: Invoke(VIRTUAL,Ljava_cup/parse_reduce_table;,num_states,()I) (9) + Handles null at 126 +11: ConditionalBranch(I,ge,110) (12) + Handles null at 126 +12: New(Ljava/lang/StringBuilder;,0) (15) + Handles null at 126 +13: Dup(1,0) (18) + Handles null at 126 +14: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (19) + Handles null at 126 +15: LocalLoad(Ljava/lang/Object;,1) (22) + Handles null at 126 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) + Handles null at 126 +17: Constant(Ljava/lang/String;,"From state #") (26) + Handles null at 126 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 126 +19: LocalLoad(I,4) (31) + Handles null at 126 +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (33) + Handles null at 126 +21: Constant(Ljava/lang/String;,"\ +") (36) + Handles null at 126 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) + Handles null at 126 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (41) + Handles null at 126 +24: LocalStore(Ljava/lang/Object;,1) (44) + Handles null at 126 +25: Constant(I,0) (45) + Handles null at 126 +26: LocalStore(I,3) (46) + Handles null at 126 +27: Constant(I,0) (47) + Handles null at 126 +28: LocalStore(I,5) (48) + Handles null at 126 +29: LocalLoad(I,5) (50) + Handles null at 126 +30: Invoke(STATIC,Ljava_cup/parse_reduce_row;,size,()I) (52) + Handles null at 126 +31: ConditionalBranch(I,ge,93) (55) + Handles null at 126 +32: LocalLoad(Ljava/lang/Object;,0) (58) + Handles null at 126 +33: Get([Ljava_cup/parse_reduce_row;,NONSTATIC,Ljava_cup/parse_reduce_table;,under_state) (59) + Handles null at 126 +34: LocalLoad(I,4) (62) + Handles null at 126 +35: ArrayLoad(Ljava/lang/Object;) (64) + Handles null at 126 +36: Get([Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/parse_reduce_row;,under_non_term) (65) + Handles null at 126 +37: LocalLoad(I,5) (68) + Handles null at 126 +38: ArrayLoad(Ljava/lang/Object;) (70) + Handles null at 126 +39: LocalStore(Ljava/lang/Object;,2) (71) + Handles null at 126 +40: LocalLoad(Ljava/lang/Object;,2) (72) + Handles null at 126 +41: Constant(L;,null) (73) + Handles null at 126 +42: ConditionalBranch(Ljava/lang/Object;,eq,88) (73) + Handles null at 126 +43: New(Ljava/lang/StringBuilder;,0) (76) + Handles null at 126 +44: Dup(1,0) (79) + Handles null at 126 +45: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (80) + Handles null at 126 +46: LocalLoad(Ljava/lang/Object;,1) (83) + Handles null at 126 +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (84) + Handles null at 126 +48: Constant(Ljava/lang/String;," [non term ") (87) + Handles null at 126 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (89) + Handles null at 126 +50: LocalLoad(I,5) (92) + Handles null at 126 +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (94) + Handles null at 126 +52: Constant(Ljava/lang/String;,"->") (97) + Handles null at 126 +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (99) + Handles null at 126 +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (102) + Handles null at 126 +55: LocalStore(Ljava/lang/Object;,1) (105) + Handles null at 126 +56: New(Ljava/lang/StringBuilder;,0) (106) + Handles null at 126 +57: Dup(1,0) (109) + Handles null at 126 +58: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (110) + Handles null at 126 +59: LocalLoad(Ljava/lang/Object;,1) (113) + Handles null at 126 +60: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (114) + Handles null at 126 +61: Constant(Ljava/lang/String;,"state ") (117) + Handles null at 126 +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (119) + Handles null at 126 +63: LocalLoad(Ljava/lang/Object;,2) (122) + Handles null at 126 +64: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (123) + Handles null at 126 +65: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (126) + Handles null at 126 +66: Constant(Ljava/lang/String;,"]") (129) + Handles null at 126 +67: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (131) + Handles null at 126 +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (134) + Handles null at 126 +69: LocalStore(Ljava/lang/Object;,1) (137) + Handles null at 126 +70: LocalLoad(I,3) (138) + Handles null at 126 +71: Constant(I,1) (138) + Handles null at 126 +72: BinaryOp(I,add) (138) + Handles null at 126 +73: LocalStore(I,3) (138) + Handles null at 126 +74: LocalLoad(I,3) (141) + Handles null at 126 +75: Constant(I,3) (142) + Handles null at 126 +76: ConditionalBranch(I,ne,88) (143) + Handles null at 126 +77: New(Ljava/lang/StringBuilder;,0) (146) + Handles null at 126 +78: Dup(1,0) (149) + Handles null at 126 +79: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (150) + Handles null at 126 +80: LocalLoad(Ljava/lang/Object;,1) (153) + Handles null at 126 +81: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (154) + Handles null at 126 +82: Constant(Ljava/lang/String;,"\ +") (157) + Handles null at 126 +83: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (159) + Handles null at 126 +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (162) + Handles null at 126 +85: LocalStore(Ljava/lang/Object;,1) (165) + Handles null at 126 +86: Constant(I,0) (166) + Handles null at 126 +87: LocalStore(I,3) (167) + Handles null at 126 +88: LocalLoad(I,5) (168) + Handles null at 126 +89: Constant(I,1) (168) + Handles null at 126 +90: BinaryOp(I,add) (168) + Handles null at 126 +91: LocalStore(I,5) (168) + Handles null at 126 +92: Goto(29) (171) + Handles null at 126 +93: LocalLoad(I,3) (174) + Handles null at 126 +94: Constant(I,0) (175) + Handles null at 126 +95: ConditionalBranch(I,eq,105) (175) + Handles null at 126 +96: New(Ljava/lang/StringBuilder;,0) (178) + Handles null at 126 +97: Dup(1,0) (181) + Handles null at 126 +98: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (182) + Handles null at 126 +99: LocalLoad(Ljava/lang/Object;,1) (185) + Handles null at 126 +100: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (186) + Handles null at 126 +101: Constant(Ljava/lang/String;,"\ +") (189) + Handles null at 126 +102: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (191) + Handles null at 126 +103: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (194) + Handles null at 126 +104: LocalStore(Ljava/lang/Object;,1) (197) + Handles null at 126 +105: LocalLoad(I,4) (198) + Handles null at 126 +106: Constant(I,1) (198) + Handles null at 126 +107: BinaryOp(I,add) (198) + Handles null at 126 +108: LocalStore(I,4) (198) + Handles null at 126 +109: Goto(8) (201) + Handles null at 126 +110: New(Ljava/lang/StringBuilder;,0) (204) + Handles null at 126 +111: Dup(1,0) (207) + Handles null at 126 +112: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (208) + Handles null at 126 +113: LocalLoad(Ljava/lang/Object;,1) (211) + Handles null at 126 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (212) + Handles null at 126 +115: Constant(Ljava/lang/String;,"-----------------------------") (215) + Handles null at 126 +116: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (217) + Handles null at 126 +117: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (220) + Handles null at 126 +118: LocalStore(Ljava/lang/Object;,1) (223) + Handles null at 126 +119: LocalLoad(Ljava/lang/Object;,1) (224) + Handles null at 126 +120: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (225) + Handles null at 126 +121: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (225) + Handles null at 126 +122: LocalLoad(Ljava/lang/Object;,0) (225) + Handles null at 126 +123: Constant(I,0) (225) + Handles null at 126 +124: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (225) + Handles null at 126 +125: Return(Ljava/lang/Object;) (225) + Handles null at 126 +126: Constant(Ljava/lang/String;,"java_cup/parse_reduce_table") (0) +127: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +128: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +129: Constant(I,1) (0) +130: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +131: Throw() (0) +Class: java_cup/parser +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/parser") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/parser") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting (Ljava_cup/runtime/Scanner;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,(Ljava_cup/runtime/Scanner;)V) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,(Ljava_cup/runtime/Scanner;)V) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/parser") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/parser") (0) +14: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting (Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V) (3) +4: Return(V) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 14 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 14 +7: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V) (3) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/parser") (6) + Handles null at 14 +9: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V") (6) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 14 +11: Constant(I,0) (6) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 14 +13: Return(V) (6) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/parser") (0) +15: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting production_table ()[[S: +Initial ShrikeBT code: +0: Get([[S,STATIC,Ljava_cup/parser;,_production_table) (0) +1: Return(Ljava/lang/Object;) (3) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"production_table()[[S") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get([[S,STATIC,Ljava_cup/parser;,_production_table) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parser") (3) + Handles null at 11 +6: Constant(Ljava/lang/String;,"production_table()[[S") (3) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (3) + Handles null at 11 +8: Constant(I,0) (3) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3) + Handles null at 11 +10: Return(Ljava/lang/Object;) (3) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parser") (0) +12: Constant(Ljava/lang/String;,"production_table()[[S") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting action_table ()[[S: +Initial ShrikeBT code: +0: Get([[S,STATIC,Ljava_cup/parser;,_action_table) (0) +1: Return(Ljava/lang/Object;) (3) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"action_table()[[S") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get([[S,STATIC,Ljava_cup/parser;,_action_table) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parser") (3) + Handles null at 11 +6: Constant(Ljava/lang/String;,"action_table()[[S") (3) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (3) + Handles null at 11 +8: Constant(I,0) (3) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3) + Handles null at 11 +10: Return(Ljava/lang/Object;) (3) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parser") (0) +12: Constant(Ljava/lang/String;,"action_table()[[S") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting reduce_table ()[[S: +Initial ShrikeBT code: +0: Get([[S,STATIC,Ljava_cup/parser;,_reduce_table) (0) +1: Return(Ljava/lang/Object;) (3) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"reduce_table()[[S") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get([[S,STATIC,Ljava_cup/parser;,_reduce_table) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parser") (3) + Handles null at 11 +6: Constant(Ljava/lang/String;,"reduce_table()[[S") (3) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (3) + Handles null at 11 +8: Constant(I,0) (3) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (3) + Handles null at 11 +10: Return(Ljava/lang/Object;) (3) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parser") (0) +12: Constant(Ljava/lang/String;,"reduce_table()[[S") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting init_actions ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: New(Ljava_cup/CUP$parser$actions;,0) (1) +2: Dup(1,0) (4) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Invoke(SPECIAL,Ljava_cup/CUP$parser$actions;,,(Ljava_cup/parser;)V) (6) +5: Put(Ljava_cup/CUP$parser$actions;,NONSTATIC,Ljava_cup/parser;,action_obj) (9) +6: Return(V) (12) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"init_actions()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: New(Ljava_cup/CUP$parser$actions;,0) (1) + Handles null at 16 +6: Dup(1,0) (4) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 16 +8: Invoke(SPECIAL,Ljava_cup/CUP$parser$actions;,,(Ljava_cup/parser;)V) (6) + Handles null at 16 +9: Put(Ljava_cup/CUP$parser$actions;,NONSTATIC,Ljava_cup/parser;,action_obj) (9) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/parser") (12) + Handles null at 16 +11: Constant(Ljava/lang/String;,"init_actions()V") (12) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 16 +13: Constant(I,0) (12) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 16 +15: Return(V) (12) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/parser") (0) +17: Constant(Ljava/lang/String;,"init_actions()V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting do_action (ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/CUP$parser$actions;,NONSTATIC,Ljava_cup/parser;,action_obj) (1) +2: LocalLoad(I,1) (4) +3: LocalLoad(Ljava/lang/Object;,2) (5) +4: LocalLoad(Ljava/lang/Object;,3) (6) +5: LocalLoad(I,4) (7) +6: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,CUP$parser$do_action,(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;) (9) +7: Return(Ljava/lang/Object;) (12) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 17 +5: Get(Ljava_cup/CUP$parser$actions;,NONSTATIC,Ljava_cup/parser;,action_obj) (1) + Handles null at 17 +6: LocalLoad(I,1) (4) + Handles null at 17 +7: LocalLoad(Ljava/lang/Object;,2) (5) + Handles null at 17 +8: LocalLoad(Ljava/lang/Object;,3) (6) + Handles null at 17 +9: LocalLoad(I,4) (7) + Handles null at 17 +10: Invoke(VIRTUAL,Ljava_cup/CUP$parser$actions;,CUP$parser$do_action,(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;) (9) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/parser") (12) + Handles null at 17 +12: Constant(Ljava/lang/String;,"do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (12) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 17 +14: Constant(I,0) (12) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 17 +16: Return(Ljava/lang/Object;) (12) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/parser") (0) +18: Constant(Ljava/lang/String;,"do_action(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting start_state ()I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"start_state()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parser") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"start_state()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parser") (0) +12: Constant(Ljava/lang/String;,"start_state()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting start_production ()I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"start_production()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parser") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"start_production()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parser") (0) +12: Constant(Ljava/lang/String;,"start_production()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting EOF_sym ()I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"EOF_sym()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parser") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"EOF_sym()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parser") (0) +12: Constant(Ljava/lang/String;,"EOF_sym()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting error_sym ()I: +Initial ShrikeBT code: +0: Constant(I,1) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"error_sym()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,1) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/parser") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"error_sym()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/parser") (0) +12: Constant(Ljava/lang/String;,"error_sym()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting user_init ()V: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,1) (7) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Put(Ljava_cup/runtime/SymbolFactory;,NONSTATIC,Ljava_cup/parser;,symbolFactory) (10) +7: LocalLoad(Ljava/lang/Object;,0) (13) +8: New(Ljava_cup/Lexer;,0) (14) +9: Dup(1,0) (17) +10: LocalLoad(Ljava/lang/Object;,1) (18) +11: Invoke(SPECIAL,Ljava_cup/Lexer;,,(Ljava_cup/runtime/ComplexSymbolFactory;)V) (19) +12: Put(Ljava_cup/Lexer;,NONSTATIC,Ljava_cup/parser;,lexer) (22) +13: Return(V) (25) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"user_init()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory;,0) (0) + Handles null at 23 +5: Dup(1,0) (3) + Handles null at 23 +6: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory;,,()V) (4) + Handles null at 23 +7: LocalStore(Ljava/lang/Object;,1) (7) + Handles null at 23 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 23 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 23 +10: Put(Ljava_cup/runtime/SymbolFactory;,NONSTATIC,Ljava_cup/parser;,symbolFactory) (10) + Handles null at 23 +11: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 23 +12: New(Ljava_cup/Lexer;,0) (14) + Handles null at 23 +13: Dup(1,0) (17) + Handles null at 23 +14: LocalLoad(Ljava/lang/Object;,1) (18) + Handles null at 23 +15: Invoke(SPECIAL,Ljava_cup/Lexer;,,(Ljava_cup/runtime/ComplexSymbolFactory;)V) (19) + Handles null at 23 +16: Put(Ljava_cup/Lexer;,NONSTATIC,Ljava_cup/parser;,lexer) (22) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/parser") (25) + Handles null at 23 +18: Constant(Ljava/lang/String;,"user_init()V") (25) + Handles null at 23 +19: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 23 +20: Constant(I,0) (25) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (25) + Handles null at 23 +22: Return(V) (25) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/parser") (0) +24: Constant(Ljava/lang/String;,"user_init()V") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting scan ()Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/Lexer;,NONSTATIC,Ljava_cup/parser;,lexer) (1) +2: Invoke(VIRTUAL,Ljava_cup/Lexer;,next_token,()Ljava_cup/runtime/Symbol;) (4) +3: Return(Ljava/lang/Object;) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"scan()Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava_cup/Lexer;,NONSTATIC,Ljava_cup/parser;,lexer) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava_cup/Lexer;,next_token,()Ljava_cup/runtime/Symbol;) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/parser") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"scan()Ljava_cup/runtime/Symbol;") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(Ljava/lang/Object;) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/parser") (0) +14: Constant(Ljava/lang/String;,"scan()Ljava_cup/runtime/Symbol;") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting report_fatal_error (Ljava/lang/String;Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/parser;,done_parsing,()V) (1) +2: LocalLoad(Ljava/lang/Object;,2) (4) +3: Instanceof(Ljava_cup/runtime/Symbol;) (5) +4: Constant(I,0) (8) +5: ConditionalBranch(I,eq,19) (8) +6: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (11) +7: New(Ljava/lang/StringBuilder;,0) (14) +8: Dup(1,0) (17) +9: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (18) +10: LocalLoad(Ljava/lang/Object;,1) (21) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (22) +12: Constant(Ljava/lang/String;,"\ +Can't recover from previous error(s), giving up.") (25) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (27) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (30) +15: LocalLoad(Ljava/lang/Object;,2) (33) +16: CheckCast(Ljava_cup/runtime/Symbol;) (34) +17: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_fatal,(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V) (37) +18: Goto(31) (40) +19: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (43) +20: New(Ljava/lang/StringBuilder;,0) (46) +21: Dup(1,0) (49) +22: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (50) +23: LocalLoad(Ljava/lang/Object;,1) (53) +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (54) +25: Constant(Ljava/lang/String;,"\ +Can't recover from previous error(s), giving up.") (57) +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (62) +28: LocalLoad(Ljava/lang/Object;,0) (65) +29: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/parser;,cur_token) (66) +30: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_fatal,(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V) (69) +31: Constant(I,1) (72) +32: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (73) +33: Return(V) (76) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"report_fatal_error(Ljava/lang/String;Ljava/lang/Object;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 43 +5: Invoke(VIRTUAL,Ljava_cup/parser;,done_parsing,()V) (1) + Handles null at 43 +6: LocalLoad(Ljava/lang/Object;,2) (4) + Handles null at 43 +7: Instanceof(Ljava_cup/runtime/Symbol;) (5) + Handles null at 43 +8: Constant(I,0) (8) + Handles null at 43 +9: ConditionalBranch(I,eq,23) (8) + Handles null at 43 +10: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (11) + Handles null at 43 +11: New(Ljava/lang/StringBuilder;,0) (14) + Handles null at 43 +12: Dup(1,0) (17) + Handles null at 43 +13: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (18) + Handles null at 43 +14: LocalLoad(Ljava/lang/Object;,1) (21) + Handles null at 43 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (22) + Handles null at 43 +16: Constant(Ljava/lang/String;,"\ +Can't recover from previous error(s), giving up.") (25) + Handles null at 43 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (27) + Handles null at 43 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (30) + Handles null at 43 +19: LocalLoad(Ljava/lang/Object;,2) (33) + Handles null at 43 +20: CheckCast(Ljava_cup/runtime/Symbol;) (34) + Handles null at 43 +21: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_fatal,(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V) (37) + Handles null at 43 +22: Goto(35) (40) + Handles null at 43 +23: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (43) + Handles null at 43 +24: New(Ljava/lang/StringBuilder;,0) (46) + Handles null at 43 +25: Dup(1,0) (49) + Handles null at 43 +26: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (50) + Handles null at 43 +27: LocalLoad(Ljava/lang/Object;,1) (53) + Handles null at 43 +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (54) + Handles null at 43 +29: Constant(Ljava/lang/String;,"\ +Can't recover from previous error(s), giving up.") (57) + Handles null at 43 +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) + Handles null at 43 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (62) + Handles null at 43 +32: LocalLoad(Ljava/lang/Object;,0) (65) + Handles null at 43 +33: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/parser;,cur_token) (66) + Handles null at 43 +34: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_fatal,(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V) (69) + Handles null at 43 +35: Constant(I,1) (72) + Handles null at 43 +36: Invoke(STATIC,Ljava/lang/System;,exit,(I)V) (73) + Handles null at 43 +37: Constant(Ljava/lang/String;,"java_cup/parser") (76) + Handles null at 43 +38: Constant(Ljava/lang/String;,"report_fatal_error(Ljava/lang/String;Ljava/lang/Object;)V") (76) + Handles null at 43 +39: LocalLoad(Ljava/lang/Object;,0) (76) + Handles null at 43 +40: Constant(I,0) (76) + Handles null at 43 +41: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (76) + Handles null at 43 +42: Return(V) (76) + Handles null at 43 +43: Constant(Ljava/lang/String;,"java_cup/parser") (0) +44: Constant(Ljava/lang/String;,"report_fatal_error(Ljava/lang/String;Ljava/lang/Object;)V") (0) +45: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +46: Constant(I,1) (0) +47: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +48: Throw() (0) +Instrumenting report_error (Ljava/lang/String;Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,2) (0) +1: Instanceof(Ljava_cup/runtime/Symbol;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,10) (4) +4: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7) +5: LocalLoad(Ljava/lang/Object;,1) (10) +6: LocalLoad(Ljava/lang/Object;,2) (11) +7: CheckCast(Ljava_cup/runtime/Symbol;) (12) +8: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V) (15) +9: Goto(15) (18) +10: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (21) +11: LocalLoad(Ljava/lang/Object;,1) (24) +12: LocalLoad(Ljava/lang/Object;,0) (25) +13: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/parser;,cur_token) (26) +14: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V) (29) +15: Return(V) (32) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/parser") (0) +1: Constant(Ljava/lang/String;,"report_error(Ljava/lang/String;Ljava/lang/Object;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,2) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/runtime/Symbol;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,eq,14) (4) + Handles null at 25 +8: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (7) + Handles null at 25 +9: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +10: LocalLoad(Ljava/lang/Object;,2) (11) + Handles null at 25 +11: CheckCast(Ljava_cup/runtime/Symbol;) (12) + Handles null at 25 +12: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V) (15) + Handles null at 25 +13: Goto(19) (18) + Handles null at 25 +14: Invoke(STATIC,Ljava_cup/ErrorManager;,getManager,()Ljava_cup/ErrorManager;) (21) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,1) (24) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 25 +17: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/parser;,cur_token) (26) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/ErrorManager;,emit_error,(Ljava/lang/String;Ljava_cup/runtime/Symbol;)V) (29) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/parser") (32) + Handles null at 25 +20: Constant(Ljava/lang/String;,"report_error(Ljava/lang/String;Ljava/lang/Object;)V") (32) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 25 +22: Constant(I,0) (32) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (32) + Handles null at 25 +24: Return(V) (32) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/parser") (0) +26: Constant(Ljava/lang/String;,"report_error(Ljava/lang/String;Ljava/lang/Object;)V") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: Constant(I,1) (0) +1: New([Ljava/lang/String;,1) (1) +2: Dup(1,0) (4) +3: Constant(I,0) (5) +4: Constant(Ljava/lang/String;,"u0 12%%\ +  345#6$\"\"7 8 9 !!*+:    ;<))=--..///&&''(,,,,,,,,,,,,,,,,\ \ ") (6) +5: ArrayStore(Ljava/lang/Object;) (8) +6: Invoke(STATIC,Ljava_cup/parser;,unpackFromStrings,([Ljava/lang/String;)[[S) (9) +7: Put([[S,STATIC,Ljava_cup/parser;,_production_table) (12) +8: Constant(I,1) (15) +9: New([Ljava/lang/String;,1) (16) +10: Dup(1,0) (19) +11: Constant(I,0) (20) +12: Constant(Ljava/lang/String;,"?\ \ + #?\ D\ +?C\ ???\ ?\ +? ? ??#????\ ?\ +? ? ??#????\ ?\ +? ? ??#?\" \ \ + \ +    $?????????$?%??????????$?%??????????$?%??????????$?%??????????$?%??????????$?%??????????$?%????????????$?%??????????$?%??????????$?%??????????$?%??????????$?%???????$??????????$?%??????????$?%??????????$?%??????????$?%?0 \" \ \ + \ +    $??????$?$ \ \ + \ +     !$\ +??!,\"-??????$?)*?'???(\ +???$?$ \ \ + \ +     !$??????$???\" \ \ + \ +    $\" \ \ + \ +    $?'??'????\ ?\ +? ? ??#?4??\ ?\ +? ? ??#7???\ ?\ +? ? ??#????\ ?\ +? ? ??#?\" \ \ + \ +    $??\ ?\ +? ? ????\ ?\ +? ? ??$89??\ ?\ +? ? ??;<\ D\ +? G HC????\ ?\ +? ? ????\ ?\ +? ? ??\ ?\"? \ \ + \ +    $??\ ?\ +????$???\ ?\ +? ? ??\"????\ ?\ +? ? ? ???????$?\"? \ \ + \ +    $???\ ?\ +? ? ???\ D\ +??SC$? N J??\ ?\ +? ? ??%K??\ ?\ +? ? ?M???\ ?\ +? ? ????\ ?\ +? ? ??%O??\ ?\ +? ? ?M???\ ?\ +? ? ???m$?\ +???$?XYZ?\ ?\ +????$???$?\ +??S$?\ +???$??$??$??$?]$\??????$?%???????$?%??????cb??]$\\ +???$???]$\gb\ +???$?]$\jb\ +???$?t$o?$? np$o????s?$?????t$o??$???$?z????$?%???????$?%???]???$\%????$?%??????$?%?]$\????$?%???\" \ \ + \ +    $????$?%?????$?%?????$?%?????$?%?????$?%???$??????$????\ ?\ +????$??????$???'$? ????$???\ ?\ +????$????\ ?\ +????$?$???\ ?\ +????$????????$????? ????$?'$??\ ?\ +????$??\ ?\ +????$?????\ ?\ +????$?$???\ ?\ +????$???\"????\ ?\ +? ? ? ???????$?%???\ ?\ +? ? ?M???\ ?\ +? ? ??%???\ ?\ +? ? ?M???\ ?\ +? ? ??????$ \ \ + \ +  ?  $?????\ ?\ +? ? ??#??\ D\ +??SC$??m$?t$o?t$o") (21) +13: ArrayStore(Ljava/lang/Object;) (23) +14: Invoke(STATIC,Ljava_cup/parser;,unpackFromStrings,([Ljava/lang/String;)[[S) (24) +15: Put([[S,STATIC,Ljava_cup/parser;,_action_table) (27) +16: Constant(I,1) (30) +17: New([Ljava/lang/String;,1) (31) +18: Dup(1,0) (34) +19: Constant(I,0) (35) +20: Constant(Ljava/lang/String;,"?0\ ? ?@01,1=,\"$,-#.%/!= \"$,.*/!\".,\"-,25%4??,9D<\ ?\ += EHA@\"???$?,\"???#?,\ ?STP Q\"UKO jk V7g8d9Z\ +!_']*`+^']*c+^\ +!e']*`+^\ +!h']*`+^ uv&t&p:q()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,1) (0) + Handles null at 34 +5: New([Ljava/lang/String;,1) (1) + Handles null at 34 +6: Dup(1,0) (4) + Handles null at 34 +7: Constant(I,0) (5) + Handles null at 34 +8: Constant(Ljava/lang/String;,"u0 12%%\ +  345#6$\"\"7 8 9 !!*+:    ;<))=--..///&&''(,,,,,,,,,,,,,,,,\ \ ") (6) + Handles null at 34 +9: ArrayStore(Ljava/lang/Object;) (8) + Handles null at 34 +10: Invoke(STATIC,Ljava_cup/parser;,unpackFromStrings,([Ljava/lang/String;)[[S) (9) + Handles null at 34 +11: Put([[S,STATIC,Ljava_cup/parser;,_production_table) (12) + Handles null at 34 +12: Constant(I,1) (15) + Handles null at 34 +13: New([Ljava/lang/String;,1) (16) + Handles null at 34 +14: Dup(1,0) (19) + Handles null at 34 +15: Constant(I,0) (20) + Handles null at 34 +16: Constant(Ljava/lang/String;,"?\ \ + #?\ D\ +?C\ ???\ ?\ +? ? ??#????\ ?\ +? ? ??#????\ ?\ +? ? ??#?\" \ \ + \ +    $?????????$?%??????????$?%??????????$?%??????????$?%??????????$?%??????????$?%??????????$?%????????????$?%??????????$?%??????????$?%??????????$?%??????????$?%???????$??????????$?%??????????$?%??????????$?%??????????$?%?0 \" \ \ + \ +    $??????$?$ \ \ + \ +     !$\ +??!,\"-??????$?)*?'???(\ +???$?$ \ \ + \ +     !$??????$???\" \ \ + \ +    $\" \ \ + \ +    $?'??'????\ ?\ +? ? ??#?4??\ ?\ +? ? ??#7???\ ?\ +? ? ??#????\ ?\ +? ? ??#?\" \ \ + \ +    $??\ ?\ +? ? ????\ ?\ +? ? ??$89??\ ?\ +? ? ??;<\ D\ +? G HC????\ ?\ +? ? ????\ ?\ +? ? ??\ ?\"? \ \ + \ +    $??\ ?\ +????$???\ ?\ +? ? ??\"????\ ?\ +? ? ? ???????$?\"? \ \ + \ +    $???\ ?\ +? ? ???\ D\ +??SC$? N J??\ ?\ +? ? ??%K??\ ?\ +? ? ?M???\ ?\ +? ? ????\ ?\ +? ? ??%O??\ ?\ +? ? ?M???\ ?\ +? ? ???m$?\ +???$?XYZ?\ ?\ +????$???$?\ +??S$?\ +???$??$??$??$?]$\??????$?%???????$?%??????cb??]$\\ +???$???]$\gb\ +???$?]$\jb\ +???$?t$o?$? np$o????s?$?????t$o??$???$?z????$?%???????$?%???]???$\%????$?%??????$?%?]$\????$?%???\" \ \ + \ +    $????$?%?????$?%?????$?%?????$?%?????$?%???$??????$????\ ?\ +????$??????$???'$? ????$???\ ?\ +????$????\ ?\ +????$?$???\ ?\ +????$????????$????? ????$?'$??\ ?\ +????$??\ ?\ +????$?????\ ?\ +????$?$???\ ?\ +????$???\"????\ ?\ +? ? ? ???????$?%???\ ?\ +? ? ?M???\ ?\ +? ? ??%???\ ?\ +? ? ?M???\ ?\ +? ? ??????$ \ \ + \ +  ?  $?????\ ?\ +? ? ??#??\ D\ +??SC$??m$?t$o?t$o") (21) + Handles null at 34 +17: ArrayStore(Ljava/lang/Object;) (23) + Handles null at 34 +18: Invoke(STATIC,Ljava_cup/parser;,unpackFromStrings,([Ljava/lang/String;)[[S) (24) + Handles null at 34 +19: Put([[S,STATIC,Ljava_cup/parser;,_action_table) (27) + Handles null at 34 +20: Constant(I,1) (30) + Handles null at 34 +21: New([Ljava/lang/String;,1) (31) + Handles null at 34 +22: Dup(1,0) (34) + Handles null at 34 +23: Constant(I,0) (35) + Handles null at 34 +24: Constant(Ljava/lang/String;,"?0\ ? ?@01,1=,\"$,-#.%/!= \"$,.*/!\".,\"-,25%4??,9D<\ ?\ += EHA@\"???$?,\"???#?,\ ?STP Q\"UKO jk V7g8d9Z\ +!_']*`+^']*c+^\ +!e']*`+^\ +!h']*`+^ uv&t&p:q()V") (45) + Handles null at 34 +30: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (45) + Handles null at 34 +31: Constant(I,0) (45) + Handles null at 34 +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (45) + Handles null at 34 +33: Return(V) (45) + Handles null at 34 +34: Constant(Ljava/lang/String;,"java_cup/parser") (0) +35: Constant(Ljava/lang/String;,"()V") (0) +36: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +37: Constant(I,1) (0) +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +39: Throw() (0) +Class: java_cup/production +Instrumenting (Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(I,-1) (5) +4: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_prec) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: Constant(I,-1) (10) +7: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_assoc) (11) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: Constant(I,0) (15) +10: Put(I,NONSTATIC,Ljava_cup/production;,_num_reductions) (16) +11: LocalLoad(Ljava/lang/Object;,0) (19) +12: Constant(I,0) (20) +13: Put(Z,NONSTATIC,Ljava_cup/production;,_nullable_known) (21) +14: LocalLoad(Ljava/lang/Object;,0) (24) +15: Constant(I,0) (25) +16: Put(Z,NONSTATIC,Ljava_cup/production;,_nullable) (26) +17: LocalLoad(Ljava/lang/Object;,0) (29) +18: New(Ljava_cup/terminal_set;,0) (30) +19: Dup(1,0) (33) +20: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (34) +21: Put(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/production;,_first_set) (37) +22: LocalLoad(I,3) (40) +23: LocalStore(I,8) (41) +24: LocalLoad(I,3) (43) +25: Constant(I,0) (44) +26: ConditionalBranch(I,lt,31) (44) +27: LocalLoad(Ljava/lang/Object;,0) (47) +28: LocalLoad(I,3) (48) +29: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (49) +30: Goto(42) (52) +31: LocalLoad(Ljava/lang/Object;,2) (55) +32: Constant(L;,null) (56) +33: ConditionalBranch(Ljava/lang/Object;,eq,39) (56) +34: LocalLoad(Ljava/lang/Object;,0) (59) +35: LocalLoad(Ljava/lang/Object;,2) (60) +36: ArrayLength() (61) +37: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (62) +38: Goto(42) (65) +39: LocalLoad(Ljava/lang/Object;,0) (68) +40: Constant(I,0) (69) +41: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (70) +42: LocalLoad(Ljava/lang/Object;,1) (73) +43: Constant(L;,null) (74) +44: ConditionalBranch(Ljava/lang/Object;,ne,50) (74) +45: New(Ljava_cup/internal_error;,0) (77) +46: Dup(1,0) (80) +47: Constant(Ljava/lang/String;,"Attempt to construct a production with a null LHS") (81) +48: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (83) +49: Throw() (86) +50: LocalLoad(I,3) (87) +51: Constant(I,0) (88) +52: ConditionalBranch(I,le,68) (88) +53: LocalLoad(Ljava/lang/Object;,2) (91) +54: LocalLoad(I,3) (92) +55: Constant(I,1) (93) +56: BinaryOp(I,sub) (94) +57: ArrayLoad(Ljava/lang/Object;) (95) +58: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (96) +59: Constant(I,0) (99) +60: ConditionalBranch(I,eq,66) (99) +61: LocalLoad(I,3) (102) +62: Constant(I,1) (103) +63: BinaryOp(I,sub) (104) +64: LocalStore(I,8) (105) +65: Goto(68) (107) +66: LocalLoad(I,3) (110) +67: LocalStore(I,8) (111) +68: LocalLoad(Ljava/lang/Object;,0) (113) +69: LocalLoad(Ljava/lang/Object;,2) (114) +70: LocalLoad(I,8) (115) +71: LocalLoad(Ljava/lang/Object;,4) (117) +72: Invoke(VIRTUAL,Ljava_cup/production;,declare_labels,([Ljava_cup/production_part;ILjava/lang/String;)Ljava/lang/String;) (119) +73: LocalStore(Ljava/lang/Object;,7) (122) +74: LocalLoad(Ljava/lang/Object;,4) (124) +75: Constant(L;,null) (126) +76: ConditionalBranch(Ljava/lang/Object;,ne,80) (126) +77: LocalLoad(Ljava/lang/Object;,7) (129) +78: LocalStore(Ljava/lang/Object;,4) (131) +79: Goto(89) (133) +80: New(Ljava/lang/StringBuilder;,0) (136) +81: Dup(1,0) (139) +82: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (140) +83: LocalLoad(Ljava/lang/Object;,7) (143) +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (145) +85: LocalLoad(Ljava/lang/Object;,4) (148) +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (150) +87: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (153) +88: LocalStore(Ljava/lang/Object;,4) (156) +89: LocalLoad(Ljava/lang/Object;,1) (158) +90: Invoke(VIRTUAL,Ljava_cup/non_terminal;,note_use,()V) (159) +91: LocalLoad(Ljava/lang/Object;,0) (162) +92: New(Ljava_cup/symbol_part;,0) (163) +93: Dup(1,0) (166) +94: LocalLoad(Ljava/lang/Object;,1) (167) +95: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (168) +96: Put(Ljava_cup/symbol_part;,NONSTATIC,Ljava_cup/production;,_lhs) (171) +97: LocalLoad(Ljava/lang/Object;,0) (174) +98: LocalLoad(Ljava/lang/Object;,0) (175) +99: LocalLoad(Ljava/lang/Object;,2) (176) +100: LocalLoad(Ljava/lang/Object;,0) (177) +101: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (178) +102: Invoke(VIRTUAL,Ljava_cup/production;,merge_adjacent_actions,([Ljava_cup/production_part;I)I) (181) +103: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (184) +104: LocalLoad(Ljava/lang/Object;,0) (187) +105: LocalLoad(Ljava/lang/Object;,2) (188) +106: LocalLoad(Ljava/lang/Object;,0) (189) +107: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (190) +108: Invoke(VIRTUAL,Ljava_cup/production;,strip_trailing_action,([Ljava_cup/production_part;I)Ljava_cup/action_part;) (193) +109: LocalStore(Ljava/lang/Object;,6) (196) +110: LocalLoad(Ljava/lang/Object;,6) (198) +111: Constant(L;,null) (200) +112: ConditionalBranch(Ljava/lang/Object;,eq,119) (200) +113: LocalLoad(Ljava/lang/Object;,0) (203) +114: Dup(1,0) (204) +115: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (205) +116: Constant(I,1) (208) +117: BinaryOp(I,sub) (209) +118: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (210) +119: LocalLoad(Ljava/lang/Object;,0) (213) +120: LocalLoad(Ljava/lang/Object;,0) (214) +121: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (215) +122: New([Ljava_cup/production_part;,1) (218) +123: Put([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (221) +124: Constant(I,0) (224) +125: LocalStore(I,5) (225) +126: LocalLoad(I,5) (227) +127: LocalLoad(Ljava/lang/Object;,0) (229) +128: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (230) +129: ConditionalBranch(I,ge,185) (233) +130: LocalLoad(Ljava/lang/Object;,0) (236) +131: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (237) +132: LocalLoad(I,5) (240) +133: LocalLoad(Ljava/lang/Object;,2) (242) +134: LocalLoad(I,5) (243) +135: ArrayLoad(Ljava/lang/Object;) (245) +136: ArrayStore(Ljava/lang/Object;) (246) +137: LocalLoad(Ljava/lang/Object;,0) (247) +138: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (248) +139: LocalLoad(I,5) (251) +140: ArrayLoad(Ljava/lang/Object;) (253) +141: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (254) +142: Constant(I,0) (257) +143: ConditionalBranch(I,ne,180) (257) +144: LocalLoad(Ljava/lang/Object;,0) (260) +145: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (261) +146: LocalLoad(I,5) (264) +147: ArrayLoad(Ljava/lang/Object;) (266) +148: CheckCast(Ljava_cup/symbol_part;) (267) +149: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (270) +150: Invoke(VIRTUAL,Ljava_cup/symbol;,note_use,()V) (273) +151: LocalLoad(Ljava/lang/Object;,0) (276) +152: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (277) +153: LocalLoad(I,5) (280) +154: ArrayLoad(Ljava/lang/Object;) (282) +155: CheckCast(Ljava_cup/symbol_part;) (283) +156: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (286) +157: Instanceof(Ljava_cup/terminal;) (289) +158: Constant(I,0) (292) +159: ConditionalBranch(I,eq,180) (292) +160: LocalLoad(Ljava/lang/Object;,0) (295) +161: LocalLoad(Ljava/lang/Object;,0) (296) +162: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (297) +163: LocalLoad(I,5) (300) +164: ArrayLoad(Ljava/lang/Object;) (302) +165: CheckCast(Ljava_cup/symbol_part;) (303) +166: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (306) +167: CheckCast(Ljava_cup/terminal;) (309) +168: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (312) +169: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_prec) (315) +170: LocalLoad(Ljava/lang/Object;,0) (318) +171: LocalLoad(Ljava/lang/Object;,0) (319) +172: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (320) +173: LocalLoad(I,5) (323) +174: ArrayLoad(Ljava/lang/Object;) (325) +175: CheckCast(Ljava_cup/symbol_part;) (326) +176: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (329) +177: CheckCast(Ljava_cup/terminal;) (332) +178: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (335) +179: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_assoc) (338) +180: LocalLoad(I,5) (341) +181: Constant(I,1) (341) +182: BinaryOp(I,add) (341) +183: LocalStore(I,5) (341) +184: Goto(126) (344) +185: LocalLoad(Ljava/lang/Object;,4) (347) +186: Constant(L;,null) (349) +187: ConditionalBranch(Ljava/lang/Object;,ne,190) (349) +188: Constant(Ljava/lang/String;,"") (352) +189: LocalStore(Ljava/lang/Object;,4) (354) +190: LocalLoad(Ljava/lang/Object;,6) (356) +191: Constant(L;,null) (358) +192: ConditionalBranch(Ljava/lang/Object;,eq,209) (358) +193: LocalLoad(Ljava/lang/Object;,6) (361) +194: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (363) +195: Constant(L;,null) (366) +196: ConditionalBranch(Ljava/lang/Object;,eq,209) (366) +197: New(Ljava/lang/StringBuilder;,0) (369) +198: Dup(1,0) (372) +199: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (373) +200: LocalLoad(Ljava/lang/Object;,4) (376) +201: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (378) +202: Constant(Ljava/lang/String;,"\ \ ") (381) +203: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (383) +204: LocalLoad(Ljava/lang/Object;,6) (386) +205: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (388) +206: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (391) +207: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (394) +208: LocalStore(Ljava/lang/Object;,4) (397) +209: LocalLoad(Ljava/lang/Object;,0) (399) +210: New(Ljava_cup/action_part;,0) (400) +211: Dup(1,0) (403) +212: LocalLoad(Ljava/lang/Object;,4) (404) +213: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (406) +214: Put(Ljava_cup/action_part;,NONSTATIC,Ljava_cup/production;,_action) (409) +215: LocalLoad(Ljava/lang/Object;,0) (412) +216: Invoke(VIRTUAL,Ljava_cup/production;,remove_embedded_actions,()V) (413) +217: LocalLoad(Ljava/lang/Object;,0) (416) +218: Get(I,STATIC,Ljava_cup/production;,next_index) (417) +219: Dup(1,0) (420) +220: Constant(I,1) (421) +221: BinaryOp(I,add) (422) +222: Put(I,STATIC,Ljava_cup/production;,next_index) (423) +223: Put(I,NONSTATIC,Ljava_cup/production;,_index) (426) +224: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (429) +225: New(Ljava/lang/Integer;,0) (432) +226: Dup(1,0) (435) +227: LocalLoad(Ljava/lang/Object;,0) (436) +228: Get(I,NONSTATIC,Ljava_cup/production;,_index) (437) +229: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (440) +230: LocalLoad(Ljava/lang/Object;,0) (443) +231: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (444) +232: Pop(1) (447) +233: LocalLoad(Ljava/lang/Object;,1) (448) +234: LocalLoad(Ljava/lang/Object;,0) (449) +235: Invoke(VIRTUAL,Ljava_cup/non_terminal;,add_production,(Ljava_cup/production;)V) (450) +236: Return(V) (453) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 246 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 246 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 246 +7: Constant(I,-1) (5) + Handles null at 246 +8: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_prec) (6) + Handles null at 246 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 246 +10: Constant(I,-1) (10) + Handles null at 246 +11: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_assoc) (11) + Handles null at 246 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 246 +13: Constant(I,0) (15) + Handles null at 246 +14: Put(I,NONSTATIC,Ljava_cup/production;,_num_reductions) (16) + Handles null at 246 +15: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 246 +16: Constant(I,0) (20) + Handles null at 246 +17: Put(Z,NONSTATIC,Ljava_cup/production;,_nullable_known) (21) + Handles null at 246 +18: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 246 +19: Constant(I,0) (25) + Handles null at 246 +20: Put(Z,NONSTATIC,Ljava_cup/production;,_nullable) (26) + Handles null at 246 +21: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 246 +22: New(Ljava_cup/terminal_set;,0) (30) + Handles null at 246 +23: Dup(1,0) (33) + Handles null at 246 +24: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (34) + Handles null at 246 +25: Put(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/production;,_first_set) (37) + Handles null at 246 +26: LocalLoad(I,3) (40) + Handles null at 246 +27: LocalStore(I,8) (41) + Handles null at 246 +28: LocalLoad(I,3) (43) + Handles null at 246 +29: Constant(I,0) (44) + Handles null at 246 +30: ConditionalBranch(I,lt,35) (44) + Handles null at 246 +31: LocalLoad(Ljava/lang/Object;,0) (47) + Handles null at 246 +32: LocalLoad(I,3) (48) + Handles null at 246 +33: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (49) + Handles null at 246 +34: Goto(46) (52) + Handles null at 246 +35: LocalLoad(Ljava/lang/Object;,2) (55) + Handles null at 246 +36: Constant(L;,null) (56) + Handles null at 246 +37: ConditionalBranch(Ljava/lang/Object;,eq,43) (56) + Handles null at 246 +38: LocalLoad(Ljava/lang/Object;,0) (59) + Handles null at 246 +39: LocalLoad(Ljava/lang/Object;,2) (60) + Handles null at 246 +40: ArrayLength() (61) + Handles null at 246 +41: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (62) + Handles null at 246 +42: Goto(46) (65) + Handles null at 246 +43: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 246 +44: Constant(I,0) (69) + Handles null at 246 +45: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (70) + Handles null at 246 +46: LocalLoad(Ljava/lang/Object;,1) (73) + Handles null at 246 +47: Constant(L;,null) (74) + Handles null at 246 +48: ConditionalBranch(Ljava/lang/Object;,ne,54) (74) + Handles null at 246 +49: New(Ljava_cup/internal_error;,0) (77) + Handles null at 246 +50: Dup(1,0) (80) + Handles null at 246 +51: Constant(Ljava/lang/String;,"Attempt to construct a production with a null LHS") (81) + Handles null at 246 +52: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (83) + Handles null at 246 +53: Throw() (86) + Handles null at 246 +54: LocalLoad(I,3) (87) + Handles null at 246 +55: Constant(I,0) (88) + Handles null at 246 +56: ConditionalBranch(I,le,72) (88) + Handles null at 246 +57: LocalLoad(Ljava/lang/Object;,2) (91) + Handles null at 246 +58: LocalLoad(I,3) (92) + Handles null at 246 +59: Constant(I,1) (93) + Handles null at 246 +60: BinaryOp(I,sub) (94) + Handles null at 246 +61: ArrayLoad(Ljava/lang/Object;) (95) + Handles null at 246 +62: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (96) + Handles null at 246 +63: Constant(I,0) (99) + Handles null at 246 +64: ConditionalBranch(I,eq,70) (99) + Handles null at 246 +65: LocalLoad(I,3) (102) + Handles null at 246 +66: Constant(I,1) (103) + Handles null at 246 +67: BinaryOp(I,sub) (104) + Handles null at 246 +68: LocalStore(I,8) (105) + Handles null at 246 +69: Goto(72) (107) + Handles null at 246 +70: LocalLoad(I,3) (110) + Handles null at 246 +71: LocalStore(I,8) (111) + Handles null at 246 +72: LocalLoad(Ljava/lang/Object;,0) (113) + Handles null at 246 +73: LocalLoad(Ljava/lang/Object;,2) (114) + Handles null at 246 +74: LocalLoad(I,8) (115) + Handles null at 246 +75: LocalLoad(Ljava/lang/Object;,4) (117) + Handles null at 246 +76: Invoke(VIRTUAL,Ljava_cup/production;,declare_labels,([Ljava_cup/production_part;ILjava/lang/String;)Ljava/lang/String;) (119) + Handles null at 246 +77: LocalStore(Ljava/lang/Object;,7) (122) + Handles null at 246 +78: LocalLoad(Ljava/lang/Object;,4) (124) + Handles null at 246 +79: Constant(L;,null) (126) + Handles null at 246 +80: ConditionalBranch(Ljava/lang/Object;,ne,84) (126) + Handles null at 246 +81: LocalLoad(Ljava/lang/Object;,7) (129) + Handles null at 246 +82: LocalStore(Ljava/lang/Object;,4) (131) + Handles null at 246 +83: Goto(93) (133) + Handles null at 246 +84: New(Ljava/lang/StringBuilder;,0) (136) + Handles null at 246 +85: Dup(1,0) (139) + Handles null at 246 +86: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (140) + Handles null at 246 +87: LocalLoad(Ljava/lang/Object;,7) (143) + Handles null at 246 +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (145) + Handles null at 246 +89: LocalLoad(Ljava/lang/Object;,4) (148) + Handles null at 246 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (150) + Handles null at 246 +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (153) + Handles null at 246 +92: LocalStore(Ljava/lang/Object;,4) (156) + Handles null at 246 +93: LocalLoad(Ljava/lang/Object;,1) (158) + Handles null at 246 +94: Invoke(VIRTUAL,Ljava_cup/non_terminal;,note_use,()V) (159) + Handles null at 246 +95: LocalLoad(Ljava/lang/Object;,0) (162) + Handles null at 246 +96: New(Ljava_cup/symbol_part;,0) (163) + Handles null at 246 +97: Dup(1,0) (166) + Handles null at 246 +98: LocalLoad(Ljava/lang/Object;,1) (167) + Handles null at 246 +99: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (168) + Handles null at 246 +100: Put(Ljava_cup/symbol_part;,NONSTATIC,Ljava_cup/production;,_lhs) (171) + Handles null at 246 +101: LocalLoad(Ljava/lang/Object;,0) (174) + Handles null at 246 +102: LocalLoad(Ljava/lang/Object;,0) (175) + Handles null at 246 +103: LocalLoad(Ljava/lang/Object;,2) (176) + Handles null at 246 +104: LocalLoad(Ljava/lang/Object;,0) (177) + Handles null at 246 +105: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (178) + Handles null at 246 +106: Invoke(VIRTUAL,Ljava_cup/production;,merge_adjacent_actions,([Ljava_cup/production_part;I)I) (181) + Handles null at 246 +107: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (184) + Handles null at 246 +108: LocalLoad(Ljava/lang/Object;,0) (187) + Handles null at 246 +109: LocalLoad(Ljava/lang/Object;,2) (188) + Handles null at 246 +110: LocalLoad(Ljava/lang/Object;,0) (189) + Handles null at 246 +111: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (190) + Handles null at 246 +112: Invoke(VIRTUAL,Ljava_cup/production;,strip_trailing_action,([Ljava_cup/production_part;I)Ljava_cup/action_part;) (193) + Handles null at 246 +113: LocalStore(Ljava/lang/Object;,6) (196) + Handles null at 246 +114: LocalLoad(Ljava/lang/Object;,6) (198) + Handles null at 246 +115: Constant(L;,null) (200) + Handles null at 246 +116: ConditionalBranch(Ljava/lang/Object;,eq,123) (200) + Handles null at 246 +117: LocalLoad(Ljava/lang/Object;,0) (203) + Handles null at 246 +118: Dup(1,0) (204) + Handles null at 246 +119: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (205) + Handles null at 246 +120: Constant(I,1) (208) + Handles null at 246 +121: BinaryOp(I,sub) (209) + Handles null at 246 +122: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (210) + Handles null at 246 +123: LocalLoad(Ljava/lang/Object;,0) (213) + Handles null at 246 +124: LocalLoad(Ljava/lang/Object;,0) (214) + Handles null at 246 +125: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (215) + Handles null at 246 +126: New([Ljava_cup/production_part;,1) (218) + Handles null at 246 +127: Put([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (221) + Handles null at 246 +128: Constant(I,0) (224) + Handles null at 246 +129: LocalStore(I,5) (225) + Handles null at 246 +130: LocalLoad(I,5) (227) + Handles null at 246 +131: LocalLoad(Ljava/lang/Object;,0) (229) + Handles null at 246 +132: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (230) + Handles null at 246 +133: ConditionalBranch(I,ge,189) (233) + Handles null at 246 +134: LocalLoad(Ljava/lang/Object;,0) (236) + Handles null at 246 +135: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (237) + Handles null at 246 +136: LocalLoad(I,5) (240) + Handles null at 246 +137: LocalLoad(Ljava/lang/Object;,2) (242) + Handles null at 246 +138: LocalLoad(I,5) (243) + Handles null at 246 +139: ArrayLoad(Ljava/lang/Object;) (245) + Handles null at 246 +140: ArrayStore(Ljava/lang/Object;) (246) + Handles null at 246 +141: LocalLoad(Ljava/lang/Object;,0) (247) + Handles null at 246 +142: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (248) + Handles null at 246 +143: LocalLoad(I,5) (251) + Handles null at 246 +144: ArrayLoad(Ljava/lang/Object;) (253) + Handles null at 246 +145: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (254) + Handles null at 246 +146: Constant(I,0) (257) + Handles null at 246 +147: ConditionalBranch(I,ne,184) (257) + Handles null at 246 +148: LocalLoad(Ljava/lang/Object;,0) (260) + Handles null at 246 +149: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (261) + Handles null at 246 +150: LocalLoad(I,5) (264) + Handles null at 246 +151: ArrayLoad(Ljava/lang/Object;) (266) + Handles null at 246 +152: CheckCast(Ljava_cup/symbol_part;) (267) + Handles null at 246 +153: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (270) + Handles null at 246 +154: Invoke(VIRTUAL,Ljava_cup/symbol;,note_use,()V) (273) + Handles null at 246 +155: LocalLoad(Ljava/lang/Object;,0) (276) + Handles null at 246 +156: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (277) + Handles null at 246 +157: LocalLoad(I,5) (280) + Handles null at 246 +158: ArrayLoad(Ljava/lang/Object;) (282) + Handles null at 246 +159: CheckCast(Ljava_cup/symbol_part;) (283) + Handles null at 246 +160: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (286) + Handles null at 246 +161: Instanceof(Ljava_cup/terminal;) (289) + Handles null at 246 +162: Constant(I,0) (292) + Handles null at 246 +163: ConditionalBranch(I,eq,184) (292) + Handles null at 246 +164: LocalLoad(Ljava/lang/Object;,0) (295) + Handles null at 246 +165: LocalLoad(Ljava/lang/Object;,0) (296) + Handles null at 246 +166: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (297) + Handles null at 246 +167: LocalLoad(I,5) (300) + Handles null at 246 +168: ArrayLoad(Ljava/lang/Object;) (302) + Handles null at 246 +169: CheckCast(Ljava_cup/symbol_part;) (303) + Handles null at 246 +170: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (306) + Handles null at 246 +171: CheckCast(Ljava_cup/terminal;) (309) + Handles null at 246 +172: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_num,()I) (312) + Handles null at 246 +173: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_prec) (315) + Handles null at 246 +174: LocalLoad(Ljava/lang/Object;,0) (318) + Handles null at 246 +175: LocalLoad(Ljava/lang/Object;,0) (319) + Handles null at 246 +176: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (320) + Handles null at 246 +177: LocalLoad(I,5) (323) + Handles null at 246 +178: ArrayLoad(Ljava/lang/Object;) (325) + Handles null at 246 +179: CheckCast(Ljava_cup/symbol_part;) (326) + Handles null at 246 +180: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (329) + Handles null at 246 +181: CheckCast(Ljava_cup/terminal;) (332) + Handles null at 246 +182: Invoke(VIRTUAL,Ljava_cup/terminal;,precedence_side,()I) (335) + Handles null at 246 +183: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_assoc) (338) + Handles null at 246 +184: LocalLoad(I,5) (341) + Handles null at 246 +185: Constant(I,1) (341) + Handles null at 246 +186: BinaryOp(I,add) (341) + Handles null at 246 +187: LocalStore(I,5) (341) + Handles null at 246 +188: Goto(130) (344) + Handles null at 246 +189: LocalLoad(Ljava/lang/Object;,4) (347) + Handles null at 246 +190: Constant(L;,null) (349) + Handles null at 246 +191: ConditionalBranch(Ljava/lang/Object;,ne,194) (349) + Handles null at 246 +192: Constant(Ljava/lang/String;,"") (352) + Handles null at 246 +193: LocalStore(Ljava/lang/Object;,4) (354) + Handles null at 246 +194: LocalLoad(Ljava/lang/Object;,6) (356) + Handles null at 246 +195: Constant(L;,null) (358) + Handles null at 246 +196: ConditionalBranch(Ljava/lang/Object;,eq,213) (358) + Handles null at 246 +197: LocalLoad(Ljava/lang/Object;,6) (361) + Handles null at 246 +198: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (363) + Handles null at 246 +199: Constant(L;,null) (366) + Handles null at 246 +200: ConditionalBranch(Ljava/lang/Object;,eq,213) (366) + Handles null at 246 +201: New(Ljava/lang/StringBuilder;,0) (369) + Handles null at 246 +202: Dup(1,0) (372) + Handles null at 246 +203: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (373) + Handles null at 246 +204: LocalLoad(Ljava/lang/Object;,4) (376) + Handles null at 246 +205: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (378) + Handles null at 246 +206: Constant(Ljava/lang/String;,"\ \ ") (381) + Handles null at 246 +207: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (383) + Handles null at 246 +208: LocalLoad(Ljava/lang/Object;,6) (386) + Handles null at 246 +209: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (388) + Handles null at 246 +210: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (391) + Handles null at 246 +211: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (394) + Handles null at 246 +212: LocalStore(Ljava/lang/Object;,4) (397) + Handles null at 246 +213: LocalLoad(Ljava/lang/Object;,0) (399) + Handles null at 246 +214: New(Ljava_cup/action_part;,0) (400) + Handles null at 246 +215: Dup(1,0) (403) + Handles null at 246 +216: LocalLoad(Ljava/lang/Object;,4) (404) + Handles null at 246 +217: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (406) + Handles null at 246 +218: Put(Ljava_cup/action_part;,NONSTATIC,Ljava_cup/production;,_action) (409) + Handles null at 246 +219: LocalLoad(Ljava/lang/Object;,0) (412) + Handles null at 246 +220: Invoke(VIRTUAL,Ljava_cup/production;,remove_embedded_actions,()V) (413) + Handles null at 246 +221: LocalLoad(Ljava/lang/Object;,0) (416) + Handles null at 246 +222: Get(I,STATIC,Ljava_cup/production;,next_index) (417) + Handles null at 246 +223: Dup(1,0) (420) + Handles null at 246 +224: Constant(I,1) (421) + Handles null at 246 +225: BinaryOp(I,add) (422) + Handles null at 246 +226: Put(I,STATIC,Ljava_cup/production;,next_index) (423) + Handles null at 246 +227: Put(I,NONSTATIC,Ljava_cup/production;,_index) (426) + Handles null at 246 +228: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (429) + Handles null at 246 +229: New(Ljava/lang/Integer;,0) (432) + Handles null at 246 +230: Dup(1,0) (435) + Handles null at 246 +231: LocalLoad(Ljava/lang/Object;,0) (436) + Handles null at 246 +232: Get(I,NONSTATIC,Ljava_cup/production;,_index) (437) + Handles null at 246 +233: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (440) + Handles null at 246 +234: LocalLoad(Ljava/lang/Object;,0) (443) + Handles null at 246 +235: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (444) + Handles null at 246 +236: Pop(1) (447) + Handles null at 246 +237: LocalLoad(Ljava/lang/Object;,1) (448) + Handles null at 246 +238: LocalLoad(Ljava/lang/Object;,0) (449) + Handles null at 246 +239: Invoke(VIRTUAL,Ljava_cup/non_terminal;,add_production,(Ljava_cup/production;)V) (450) + Handles null at 246 +240: Constant(Ljava/lang/String;,"java_cup/production") (453) + Handles null at 246 +241: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V") (453) + Handles null at 246 +242: LocalLoad(Ljava/lang/Object;,0) (453) + Handles null at 246 +243: Constant(I,0) (453) + Handles null at 246 +244: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (453) + Handles null at 246 +245: Return(V) (453) + Handles null at 246 +246: Constant(Ljava/lang/String;,"java_cup/production") (0) +247: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V") (0) +248: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +249: Constant(I,1) (0) +250: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +251: Throw() (0) +Instrumenting (Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: LocalLoad(I,3) (3) +4: Constant(L;,null) (4) +5: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V) (5) +6: Return(V) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 16 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 16 +7: LocalLoad(I,3) (3) + Handles null at 16 +8: Constant(L;,null) (4) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V) (5) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/production") (8) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V") (8) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 16 +13: Constant(I,0) (8) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 16 +15: Return(V) (8) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/production") (0) +17: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;I)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting (Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;II)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: LocalLoad(I,3) (3) +4: LocalLoad(Ljava/lang/Object;,4) (4) +5: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V) (6) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(I,5) (10) +8: Invoke(VIRTUAL,Ljava_cup/production;,set_precedence_num,(I)V) (12) +9: LocalLoad(Ljava/lang/Object;,0) (15) +10: LocalLoad(I,6) (16) +11: Invoke(VIRTUAL,Ljava_cup/production;,set_precedence_side,(I)V) (18) +12: Return(V) (21) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;II)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 22 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 22 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 22 +7: LocalLoad(I,3) (3) + Handles null at 22 +8: LocalLoad(Ljava/lang/Object;,4) (4) + Handles null at 22 +9: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V) (6) + Handles null at 22 +10: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 22 +11: LocalLoad(I,5) (10) + Handles null at 22 +12: Invoke(VIRTUAL,Ljava_cup/production;,set_precedence_num,(I)V) (12) + Handles null at 22 +13: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 22 +14: LocalLoad(I,6) (16) + Handles null at 22 +15: Invoke(VIRTUAL,Ljava_cup/production;,set_precedence_side,(I)V) (18) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/production") (21) + Handles null at 22 +17: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;II)V") (21) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 22 +19: Constant(I,0) (21) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (21) + Handles null at 22 +21: Return(V) (21) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/production") (0) +23: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;II)V") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting (Ljava_cup/non_terminal;[Ljava_cup/production_part;III)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: LocalLoad(I,3) (3) +4: Constant(L;,null) (4) +5: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V) (5) +6: LocalLoad(Ljava/lang/Object;,0) (8) +7: LocalLoad(I,4) (9) +8: Invoke(VIRTUAL,Ljava_cup/production;,set_precedence_num,(I)V) (11) +9: LocalLoad(Ljava/lang/Object;,0) (14) +10: LocalLoad(I,5) (15) +11: Invoke(VIRTUAL,Ljava_cup/production;,set_precedence_side,(I)V) (17) +12: Return(V) (20) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;III)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 22 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 22 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 22 +7: LocalLoad(I,3) (3) + Handles null at 22 +8: Constant(L;,null) (4) + Handles null at 22 +9: Invoke(SPECIAL,Ljava_cup/production;,,(Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;)V) (5) + Handles null at 22 +10: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 22 +11: LocalLoad(I,4) (9) + Handles null at 22 +12: Invoke(VIRTUAL,Ljava_cup/production;,set_precedence_num,(I)V) (11) + Handles null at 22 +13: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 22 +14: LocalLoad(I,5) (15) + Handles null at 22 +15: Invoke(VIRTUAL,Ljava_cup/production;,set_precedence_side,(I)V) (17) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/production") (20) + Handles null at 22 +17: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;III)V") (20) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 22 +19: Constant(I,0) (20) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (20) + Handles null at 22 +21: Return(V) (20) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/production") (0) +23: Constant(Ljava/lang/String;,"(Ljava_cup/non_terminal;[Ljava_cup/production_part;III)V") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting all ()Ljava/util/Enumeration;: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (3) +2: Return(Ljava/lang/Object;) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (3) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (6) + Handles null at 12 +7: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (6) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (6) + Handles null at 12 +9: Constant(I,0) (6) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 12 +11: Return(Ljava/lang/Object;) (6) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting find (I)Ljava_cup/production;: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (0) +1: New(Ljava/lang/Integer;,0) (3) +2: Dup(1,0) (6) +3: LocalLoad(I,0) (7) +4: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (8) +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (11) +6: CheckCast(Ljava_cup/production;) (14) +7: Return(Ljava/lang/Object;) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"find(I)Ljava_cup/production;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (0) + Handles null at 17 +5: New(Ljava/lang/Integer;,0) (3) + Handles null at 17 +6: Dup(1,0) (6) + Handles null at 17 +7: LocalLoad(I,0) (7) + Handles null at 17 +8: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (8) + Handles null at 17 +9: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (11) + Handles null at 17 +10: CheckCast(Ljava_cup/production;) (14) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/production") (17) + Handles null at 17 +12: Constant(Ljava/lang/String;,"find(I)Ljava_cup/production;") (17) + Handles null at 17 +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (17) + Handles null at 17 +14: Constant(I,0) (17) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 17 +16: Return(Ljava/lang/Object;) (17) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/production") (0) +18: Constant(Ljava/lang/String;,"find(I)Ljava_cup/production;") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting clear ()V: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (3) +2: Constant(I,0) (6) +3: Put(I,STATIC,Ljava_cup/production;,next_index) (7) +4: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"clear()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (0) + Handles null at 14 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (3) + Handles null at 14 +6: Constant(I,0) (6) + Handles null at 14 +7: Put(I,STATIC,Ljava_cup/production;,next_index) (7) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/production") (10) + Handles null at 14 +9: Constant(Ljava/lang/String;,"clear()V") (10) + Handles null at 14 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (10) + Handles null at 14 +11: Constant(I,0) (10) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 14 +13: Return(V) (10) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/production") (0) +15: Constant(Ljava/lang/String;,"clear()V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting number ()I: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (3) +2: Return(I) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"number()I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (3) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (6) + Handles null at 12 +7: Constant(Ljava/lang/String;,"number()I") (6) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (6) + Handles null at 12 +9: Constant(I,0) (6) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 12 +11: Return(I) (6) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"number()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting lhs ()Ljava_cup/symbol_part;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/symbol_part;,NONSTATIC,Ljava_cup/production;,_lhs) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"lhs()Ljava_cup/symbol_part;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/symbol_part;,NONSTATIC,Ljava_cup/production;,_lhs) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"lhs()Ljava_cup/symbol_part;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"lhs()Ljava_cup/symbol_part;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting precedence_num ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_prec) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"precedence_num()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_prec) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"precedence_num()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"precedence_num()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting precedence_side ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_assoc) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"precedence_side()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_assoc) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"precedence_side()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"precedence_side()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting set_precedence_num (I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_prec) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"set_precedence_num(I)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_prec) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/production") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"set_precedence_num(I)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/production") (0) +14: Constant(Ljava/lang/String;,"set_precedence_num(I)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting set_precedence_side (I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_assoc) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"set_precedence_side(I)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(I,1) (1) + Handles null at 13 +6: Put(I,NONSTATIC,Ljava_cup/production;,_rhs_assoc) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/production") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"set_precedence_side(I)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/production") (0) +14: Constant(Ljava/lang/String;,"set_precedence_side(I)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting rhs (I)Ljava_cup/production_part;: +Initial ShrikeBT code: +0: LocalLoad(I,1) (0) +1: Constant(I,0) (1) +2: ConditionalBranch(I,lt,12) (1) +3: LocalLoad(I,1) (4) +4: LocalLoad(Ljava/lang/Object;,0) (5) +5: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (6) +6: ConditionalBranch(I,ge,12) (9) +7: LocalLoad(Ljava/lang/Object;,0) (12) +8: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (13) +9: LocalLoad(I,1) (16) +10: ArrayLoad(Ljava/lang/Object;) (17) +11: Return(Ljava/lang/Object;) (18) +12: New(Ljava_cup/internal_error;,0) (19) +13: Dup(1,0) (22) +14: Constant(Ljava/lang/String;,"Index out of range for right hand side of production") (23) +15: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (25) +16: Throw() (28) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"rhs(I)Ljava_cup/production_part;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,1) (0) + Handles null at 26 +5: Constant(I,0) (1) + Handles null at 26 +6: ConditionalBranch(I,lt,21) (1) + Handles null at 26 +7: LocalLoad(I,1) (4) + Handles null at 26 +8: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 26 +9: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (6) + Handles null at 26 +10: ConditionalBranch(I,ge,21) (9) + Handles null at 26 +11: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 26 +12: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (13) + Handles null at 26 +13: LocalLoad(I,1) (16) + Handles null at 26 +14: ArrayLoad(Ljava/lang/Object;) (17) + Handles null at 26 +15: Constant(Ljava/lang/String;,"java_cup/production") (18) + Handles null at 26 +16: Constant(Ljava/lang/String;,"rhs(I)Ljava_cup/production_part;") (18) + Handles null at 26 +17: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 26 +18: Constant(I,0) (18) + Handles null at 26 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (18) + Handles null at 26 +20: Return(Ljava/lang/Object;) (18) + Handles null at 26 +21: New(Ljava_cup/internal_error;,0) (19) + Handles null at 26 +22: Dup(1,0) (22) + Handles null at 26 +23: Constant(Ljava/lang/String;,"Index out of range for right hand side of production") (23) + Handles null at 26 +24: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (25) + Handles null at 26 +25: Throw() (28) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/production") (0) +27: Constant(Ljava/lang/String;,"rhs(I)Ljava_cup/production_part;") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting rhs_length ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"rhs_length()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/production;,_rhs_length) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"rhs_length()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"rhs_length()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting action ()Ljava_cup/action_part;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/action_part;,NONSTATIC,Ljava_cup/production;,_action) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"action()Ljava_cup/action_part;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/action_part;,NONSTATIC,Ljava_cup/production;,_action) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"action()Ljava_cup/action_part;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"action()Ljava_cup/action_part;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting index ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/production;,_index) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"index()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/production;,_index) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"index()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"index()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting num_reductions ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/production;,_num_reductions) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"num_reductions()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/production;,_num_reductions) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"num_reductions()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"num_reductions()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting note_reduction_use ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Dup(1,0) (1) +2: Get(I,NONSTATIC,Ljava_cup/production;,_num_reductions) (2) +3: Constant(I,1) (5) +4: BinaryOp(I,add) (6) +5: Put(I,NONSTATIC,Ljava_cup/production;,_num_reductions) (7) +6: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"note_reduction_use()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: Dup(1,0) (1) + Handles null at 16 +6: Get(I,NONSTATIC,Ljava_cup/production;,_num_reductions) (2) + Handles null at 16 +7: Constant(I,1) (5) + Handles null at 16 +8: BinaryOp(I,add) (6) + Handles null at 16 +9: Put(I,NONSTATIC,Ljava_cup/production;,_num_reductions) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/production") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"note_reduction_use()V") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(V) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/production") (0) +17: Constant(Ljava/lang/String;,"note_reduction_use()V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting nullable_known ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/production;,_nullable_known) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"nullable_known()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/production;,_nullable_known) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"nullable_known()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"nullable_known()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting nullable ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Z,NONSTATIC,Ljava_cup/production;,_nullable) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"nullable()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Z,NONSTATIC,Ljava_cup/production;,_nullable) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"nullable()Z") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"nullable()Z") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting first_set ()Ljava_cup/terminal_set;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/production;,_first_set) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"first_set()Ljava_cup/terminal_set;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/production;,_first_set) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"first_set()Ljava_cup/terminal_set;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production") (0) +13: Constant(Ljava/lang/String;,"first_set()Ljava_cup/terminal_set;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting is_id_start (C)Z: +Initial ShrikeBT code: +0: LocalLoad(I,0) (0) +1: Constant(I,97) (1) +2: ConditionalBranch(I,lt,6) (3) +3: LocalLoad(I,0) (6) +4: Constant(I,122) (7) +5: ConditionalBranch(I,le,15) (9) +6: LocalLoad(I,0) (12) +7: Constant(I,65) (13) +8: ConditionalBranch(I,lt,12) (15) +9: LocalLoad(I,0) (18) +10: Constant(I,90) (19) +11: ConditionalBranch(I,le,15) (21) +12: LocalLoad(I,0) (24) +13: Constant(I,95) (25) +14: ConditionalBranch(I,ne,17) (27) +15: Constant(I,1) (30) +16: Goto(18) (31) +17: Constant(I,0) (34) +18: Return(I) (35) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"is_id_start(C)Z") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,0) (0) + Handles null at 28 +5: Constant(I,97) (1) + Handles null at 28 +6: ConditionalBranch(I,lt,10) (3) + Handles null at 28 +7: LocalLoad(I,0) (6) + Handles null at 28 +8: Constant(I,122) (7) + Handles null at 28 +9: ConditionalBranch(I,le,19) (9) + Handles null at 28 +10: LocalLoad(I,0) (12) + Handles null at 28 +11: Constant(I,65) (13) + Handles null at 28 +12: ConditionalBranch(I,lt,16) (15) + Handles null at 28 +13: LocalLoad(I,0) (18) + Handles null at 28 +14: Constant(I,90) (19) + Handles null at 28 +15: ConditionalBranch(I,le,19) (21) + Handles null at 28 +16: LocalLoad(I,0) (24) + Handles null at 28 +17: Constant(I,95) (25) + Handles null at 28 +18: ConditionalBranch(I,ne,21) (27) + Handles null at 28 +19: Constant(I,1) (30) + Handles null at 28 +20: Goto(22) (31) + Handles null at 28 +21: Constant(I,0) (34) + Handles null at 28 +22: Constant(Ljava/lang/String;,"java_cup/production") (35) + Handles null at 28 +23: Constant(Ljava/lang/String;,"is_id_start(C)Z") (35) + Handles null at 28 +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (35) + Handles null at 28 +25: Constant(I,0) (35) + Handles null at 28 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 28 +27: Return(I) (35) + Handles null at 28 +28: Constant(Ljava/lang/String;,"java_cup/production") (0) +29: Constant(Ljava/lang/String;,"is_id_start(C)Z") (0) +30: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +31: Constant(I,1) (0) +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +33: Throw() (0) +Instrumenting is_id_char (C)Z: +Initial ShrikeBT code: +0: LocalLoad(I,0) (0) +1: Invoke(STATIC,Ljava_cup/production;,is_id_start,(C)Z) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,10) (4) +4: LocalLoad(I,0) (7) +5: Constant(I,48) (8) +6: ConditionalBranch(I,lt,12) (10) +7: LocalLoad(I,0) (13) +8: Constant(I,57) (14) +9: ConditionalBranch(I,gt,12) (16) +10: Constant(I,1) (19) +11: Goto(13) (20) +12: Constant(I,0) (23) +13: Return(I) (24) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"is_id_char(C)Z") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,0) (0) + Handles null at 23 +5: Invoke(STATIC,Ljava_cup/production;,is_id_start,(C)Z) (1) + Handles null at 23 +6: Constant(I,0) (4) + Handles null at 23 +7: ConditionalBranch(I,ne,14) (4) + Handles null at 23 +8: LocalLoad(I,0) (7) + Handles null at 23 +9: Constant(I,48) (8) + Handles null at 23 +10: ConditionalBranch(I,lt,16) (10) + Handles null at 23 +11: LocalLoad(I,0) (13) + Handles null at 23 +12: Constant(I,57) (14) + Handles null at 23 +13: ConditionalBranch(I,gt,16) (16) + Handles null at 23 +14: Constant(I,1) (19) + Handles null at 23 +15: Goto(17) (20) + Handles null at 23 +16: Constant(I,0) (23) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/production") (24) + Handles null at 23 +18: Constant(Ljava/lang/String;,"is_id_char(C)Z") (24) + Handles null at 23 +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (24) + Handles null at 23 +20: Constant(I,0) (24) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (24) + Handles null at 23 +22: Return(I) (24) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/production") (0) +24: Constant(Ljava/lang/String;,"is_id_char(C)Z") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting make_declaration (Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;: +Initial ShrikeBT code: +0: Invoke(STATIC,Ljava_cup/emit;,lr_values,()Z) (0) +1: Constant(I,0) (3) +2: ConditionalBranch(I,eq,146) (3) +3: Invoke(STATIC,Ljava_cup/emit;,locations,()Z) (6) +4: Constant(I,0) (9) +5: ConditionalBranch(I,ne,76) (9) +6: New(Ljava/lang/StringBuilder;,0) (12) +7: Dup(1,0) (15) +8: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (16) +9: Constant(Ljava/lang/String;,"\ \ int ") (19) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) +11: LocalLoad(Ljava/lang/Object;,1) (24) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (25) +13: Constant(Ljava/lang/String;,"left = ((java_cup.runtime.Symbol)") (28) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (30) +15: Constant(Ljava/lang/String;,"stack") (33) +16: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (35) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) +18: LocalLoad(I,3) (41) +19: Constant(I,0) (42) +20: ConditionalBranch(I,ne,23) (42) +21: Constant(Ljava/lang/String;,".peek()") (45) +22: Goto(38) (47) +23: New(Ljava/lang/StringBuilder;,0) (50) +24: Dup(1,0) (53) +25: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (54) +26: Constant(Ljava/lang/String;,".elementAt(") (57) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) +28: Constant(Ljava/lang/String;,"top") (62) +29: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (64) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (67) +31: Constant(Ljava/lang/String;,"-") (70) +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (72) +33: LocalLoad(I,3) (75) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (76) +35: Constant(Ljava/lang/String;,")") (79) +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (81) +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (84) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (87) +39: Constant(Ljava/lang/String;,").left;\ +") (90) +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (92) +41: Constant(Ljava/lang/String;,"\ \ int ") (95) +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) +43: LocalLoad(Ljava/lang/Object;,1) (100) +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (101) +45: Constant(Ljava/lang/String;,"right = ((java_cup.runtime.Symbol)") (104) +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (106) +47: Constant(Ljava/lang/String;,"stack") (109) +48: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (111) +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (114) +50: LocalLoad(I,3) (117) +51: Constant(I,0) (118) +52: ConditionalBranch(I,ne,55) (118) +53: Constant(Ljava/lang/String;,".peek()") (121) +54: Goto(70) (123) +55: New(Ljava/lang/StringBuilder;,0) (126) +56: Dup(1,0) (129) +57: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (130) +58: Constant(Ljava/lang/String;,".elementAt(") (133) +59: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (135) +60: Constant(Ljava/lang/String;,"top") (138) +61: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (140) +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (143) +63: Constant(Ljava/lang/String;,"-") (146) +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (148) +65: LocalLoad(I,3) (151) +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (152) +67: Constant(Ljava/lang/String;,")") (155) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (157) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (160) +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (163) +71: Constant(Ljava/lang/String;,").right;\ +") (166) +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (168) +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (171) +74: LocalStore(Ljava/lang/Object;,4) (174) +75: Goto(148) (176) +76: New(Ljava/lang/StringBuilder;,0) (179) +77: Dup(1,0) (182) +78: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (183) +79: Constant(Ljava/lang/String;,"\ \ Location ") (186) +80: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (188) +81: LocalLoad(Ljava/lang/Object;,1) (191) +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (192) +83: Constant(Ljava/lang/String;,"xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)") (195) +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (197) +85: Constant(Ljava/lang/String;,"stack") (200) +86: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (202) +87: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (205) +88: LocalLoad(I,3) (208) +89: Constant(I,0) (209) +90: ConditionalBranch(I,ne,93) (209) +91: Constant(Ljava/lang/String;,".peek()") (212) +92: Goto(108) (214) +93: New(Ljava/lang/StringBuilder;,0) (217) +94: Dup(1,0) (220) +95: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (221) +96: Constant(Ljava/lang/String;,".elementAt(") (224) +97: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (226) +98: Constant(Ljava/lang/String;,"top") (229) +99: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (231) +100: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (234) +101: Constant(Ljava/lang/String;,"-") (237) +102: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (239) +103: LocalLoad(I,3) (242) +104: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (243) +105: Constant(Ljava/lang/String;,")") (246) +106: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (248) +107: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (251) +108: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (254) +109: Constant(Ljava/lang/String;,").xleft;\ +") (257) +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (259) +111: Constant(Ljava/lang/String;,"\ \ Location ") (262) +112: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (264) +113: LocalLoad(Ljava/lang/Object;,1) (267) +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (268) +115: Constant(Ljava/lang/String;,"xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)") (271) +116: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (273) +117: Constant(Ljava/lang/String;,"stack") (276) +118: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (278) +119: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (281) +120: LocalLoad(I,3) (284) +121: Constant(I,0) (285) +122: ConditionalBranch(I,ne,125) (285) +123: Constant(Ljava/lang/String;,".peek()") (288) +124: Goto(140) (290) +125: New(Ljava/lang/StringBuilder;,0) (293) +126: Dup(1,0) (296) +127: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (297) +128: Constant(Ljava/lang/String;,".elementAt(") (300) +129: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (302) +130: Constant(Ljava/lang/String;,"top") (305) +131: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (307) +132: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (310) +133: Constant(Ljava/lang/String;,"-") (313) +134: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (315) +135: LocalLoad(I,3) (318) +136: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (319) +137: Constant(Ljava/lang/String;,")") (322) +138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (324) +139: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (327) +140: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (330) +141: Constant(Ljava/lang/String;,").xright;\ +") (333) +142: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (335) +143: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (338) +144: LocalStore(Ljava/lang/Object;,4) (341) +145: Goto(148) (343) +146: Constant(Ljava/lang/String;,"") (346) +147: LocalStore(Ljava/lang/Object;,4) (348) +148: New(Ljava/lang/StringBuilder;,0) (350) +149: Dup(1,0) (353) +150: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (354) +151: LocalLoad(Ljava/lang/Object;,4) (357) +152: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (359) +153: Constant(Ljava/lang/String;,"\ \ ") (362) +154: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (364) +155: LocalLoad(Ljava/lang/Object;,2) (367) +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (368) +157: Constant(Ljava/lang/String;," ") (371) +158: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (373) +159: LocalLoad(Ljava/lang/Object;,1) (376) +160: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (377) +161: Constant(Ljava/lang/String;," = (") (380) +162: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (382) +163: LocalLoad(Ljava/lang/Object;,2) (385) +164: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (386) +165: Constant(Ljava/lang/String;,")((") (389) +166: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (391) +167: Constant(Ljava/lang/String;,"java_cup.runtime.Symbol) ") (394) +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (396) +169: Constant(Ljava/lang/String;,"stack") (399) +170: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (401) +171: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (404) +172: LocalLoad(I,3) (407) +173: Constant(I,0) (408) +174: ConditionalBranch(I,ne,177) (408) +175: Constant(Ljava/lang/String;,".peek()") (411) +176: Goto(192) (413) +177: New(Ljava/lang/StringBuilder;,0) (416) +178: Dup(1,0) (419) +179: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (420) +180: Constant(Ljava/lang/String;,".elementAt(") (423) +181: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (425) +182: Constant(Ljava/lang/String;,"top") (428) +183: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (430) +184: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (433) +185: Constant(Ljava/lang/String;,"-") (436) +186: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (438) +187: LocalLoad(I,3) (441) +188: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (442) +189: Constant(Ljava/lang/String;,")") (445) +190: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (447) +191: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (450) +192: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (453) +193: Constant(Ljava/lang/String;,").value;\ +") (456) +194: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (458) +195: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (461) +196: Return(Ljava/lang/Object;) (464) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"make_declaration(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Invoke(STATIC,Ljava_cup/emit;,lr_values,()Z) (0) + Handles null at 206 +5: Constant(I,0) (3) + Handles null at 206 +6: ConditionalBranch(I,eq,150) (3) + Handles null at 206 +7: Invoke(STATIC,Ljava_cup/emit;,locations,()Z) (6) + Handles null at 206 +8: Constant(I,0) (9) + Handles null at 206 +9: ConditionalBranch(I,ne,80) (9) + Handles null at 206 +10: New(Ljava/lang/StringBuilder;,0) (12) + Handles null at 206 +11: Dup(1,0) (15) + Handles null at 206 +12: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (16) + Handles null at 206 +13: Constant(Ljava/lang/String;,"\ \ int ") (19) + Handles null at 206 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles null at 206 +15: LocalLoad(Ljava/lang/Object;,1) (24) + Handles null at 206 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (25) + Handles null at 206 +17: Constant(Ljava/lang/String;,"left = ((java_cup.runtime.Symbol)") (28) + Handles null at 206 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (30) + Handles null at 206 +19: Constant(Ljava/lang/String;,"stack") (33) + Handles null at 206 +20: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (35) + Handles null at 206 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) + Handles null at 206 +22: LocalLoad(I,3) (41) + Handles null at 206 +23: Constant(I,0) (42) + Handles null at 206 +24: ConditionalBranch(I,ne,27) (42) + Handles null at 206 +25: Constant(Ljava/lang/String;,".peek()") (45) + Handles null at 206 +26: Goto(42) (47) + Handles null at 206 +27: New(Ljava/lang/StringBuilder;,0) (50) + Handles null at 206 +28: Dup(1,0) (53) + Handles null at 206 +29: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (54) + Handles null at 206 +30: Constant(Ljava/lang/String;,".elementAt(") (57) + Handles null at 206 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (59) + Handles null at 206 +32: Constant(Ljava/lang/String;,"top") (62) + Handles null at 206 +33: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (64) + Handles null at 206 +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (67) + Handles null at 206 +35: Constant(Ljava/lang/String;,"-") (70) + Handles null at 206 +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (72) + Handles null at 206 +37: LocalLoad(I,3) (75) + Handles null at 206 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (76) + Handles null at 206 +39: Constant(Ljava/lang/String;,")") (79) + Handles null at 206 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (81) + Handles null at 206 +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (84) + Handles null at 206 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (87) + Handles null at 206 +43: Constant(Ljava/lang/String;,").left;\ +") (90) + Handles null at 206 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (92) + Handles null at 206 +45: Constant(Ljava/lang/String;,"\ \ int ") (95) + Handles null at 206 +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) + Handles null at 206 +47: LocalLoad(Ljava/lang/Object;,1) (100) + Handles null at 206 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (101) + Handles null at 206 +49: Constant(Ljava/lang/String;,"right = ((java_cup.runtime.Symbol)") (104) + Handles null at 206 +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (106) + Handles null at 206 +51: Constant(Ljava/lang/String;,"stack") (109) + Handles null at 206 +52: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (111) + Handles null at 206 +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (114) + Handles null at 206 +54: LocalLoad(I,3) (117) + Handles null at 206 +55: Constant(I,0) (118) + Handles null at 206 +56: ConditionalBranch(I,ne,59) (118) + Handles null at 206 +57: Constant(Ljava/lang/String;,".peek()") (121) + Handles null at 206 +58: Goto(74) (123) + Handles null at 206 +59: New(Ljava/lang/StringBuilder;,0) (126) + Handles null at 206 +60: Dup(1,0) (129) + Handles null at 206 +61: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (130) + Handles null at 206 +62: Constant(Ljava/lang/String;,".elementAt(") (133) + Handles null at 206 +63: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (135) + Handles null at 206 +64: Constant(Ljava/lang/String;,"top") (138) + Handles null at 206 +65: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (140) + Handles null at 206 +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (143) + Handles null at 206 +67: Constant(Ljava/lang/String;,"-") (146) + Handles null at 206 +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (148) + Handles null at 206 +69: LocalLoad(I,3) (151) + Handles null at 206 +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (152) + Handles null at 206 +71: Constant(Ljava/lang/String;,")") (155) + Handles null at 206 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (157) + Handles null at 206 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (160) + Handles null at 206 +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (163) + Handles null at 206 +75: Constant(Ljava/lang/String;,").right;\ +") (166) + Handles null at 206 +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (168) + Handles null at 206 +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (171) + Handles null at 206 +78: LocalStore(Ljava/lang/Object;,4) (174) + Handles null at 206 +79: Goto(152) (176) + Handles null at 206 +80: New(Ljava/lang/StringBuilder;,0) (179) + Handles null at 206 +81: Dup(1,0) (182) + Handles null at 206 +82: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (183) + Handles null at 206 +83: Constant(Ljava/lang/String;,"\ \ Location ") (186) + Handles null at 206 +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (188) + Handles null at 206 +85: LocalLoad(Ljava/lang/Object;,1) (191) + Handles null at 206 +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (192) + Handles null at 206 +87: Constant(Ljava/lang/String;,"xleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)") (195) + Handles null at 206 +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (197) + Handles null at 206 +89: Constant(Ljava/lang/String;,"stack") (200) + Handles null at 206 +90: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (202) + Handles null at 206 +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (205) + Handles null at 206 +92: LocalLoad(I,3) (208) + Handles null at 206 +93: Constant(I,0) (209) + Handles null at 206 +94: ConditionalBranch(I,ne,97) (209) + Handles null at 206 +95: Constant(Ljava/lang/String;,".peek()") (212) + Handles null at 206 +96: Goto(112) (214) + Handles null at 206 +97: New(Ljava/lang/StringBuilder;,0) (217) + Handles null at 206 +98: Dup(1,0) (220) + Handles null at 206 +99: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (221) + Handles null at 206 +100: Constant(Ljava/lang/String;,".elementAt(") (224) + Handles null at 206 +101: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (226) + Handles null at 206 +102: Constant(Ljava/lang/String;,"top") (229) + Handles null at 206 +103: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (231) + Handles null at 206 +104: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (234) + Handles null at 206 +105: Constant(Ljava/lang/String;,"-") (237) + Handles null at 206 +106: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (239) + Handles null at 206 +107: LocalLoad(I,3) (242) + Handles null at 206 +108: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (243) + Handles null at 206 +109: Constant(Ljava/lang/String;,")") (246) + Handles null at 206 +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (248) + Handles null at 206 +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (251) + Handles null at 206 +112: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (254) + Handles null at 206 +113: Constant(Ljava/lang/String;,").xleft;\ +") (257) + Handles null at 206 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (259) + Handles null at 206 +115: Constant(Ljava/lang/String;,"\ \ Location ") (262) + Handles null at 206 +116: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (264) + Handles null at 206 +117: LocalLoad(Ljava/lang/Object;,1) (267) + Handles null at 206 +118: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (268) + Handles null at 206 +119: Constant(Ljava/lang/String;,"xright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)") (271) + Handles null at 206 +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (273) + Handles null at 206 +121: Constant(Ljava/lang/String;,"stack") (276) + Handles null at 206 +122: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (278) + Handles null at 206 +123: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (281) + Handles null at 206 +124: LocalLoad(I,3) (284) + Handles null at 206 +125: Constant(I,0) (285) + Handles null at 206 +126: ConditionalBranch(I,ne,129) (285) + Handles null at 206 +127: Constant(Ljava/lang/String;,".peek()") (288) + Handles null at 206 +128: Goto(144) (290) + Handles null at 206 +129: New(Ljava/lang/StringBuilder;,0) (293) + Handles null at 206 +130: Dup(1,0) (296) + Handles null at 206 +131: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (297) + Handles null at 206 +132: Constant(Ljava/lang/String;,".elementAt(") (300) + Handles null at 206 +133: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (302) + Handles null at 206 +134: Constant(Ljava/lang/String;,"top") (305) + Handles null at 206 +135: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (307) + Handles null at 206 +136: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (310) + Handles null at 206 +137: Constant(Ljava/lang/String;,"-") (313) + Handles null at 206 +138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (315) + Handles null at 206 +139: LocalLoad(I,3) (318) + Handles null at 206 +140: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (319) + Handles null at 206 +141: Constant(Ljava/lang/String;,")") (322) + Handles null at 206 +142: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (324) + Handles null at 206 +143: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (327) + Handles null at 206 +144: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (330) + Handles null at 206 +145: Constant(Ljava/lang/String;,").xright;\ +") (333) + Handles null at 206 +146: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (335) + Handles null at 206 +147: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (338) + Handles null at 206 +148: LocalStore(Ljava/lang/Object;,4) (341) + Handles null at 206 +149: Goto(152) (343) + Handles null at 206 +150: Constant(Ljava/lang/String;,"") (346) + Handles null at 206 +151: LocalStore(Ljava/lang/Object;,4) (348) + Handles null at 206 +152: New(Ljava/lang/StringBuilder;,0) (350) + Handles null at 206 +153: Dup(1,0) (353) + Handles null at 206 +154: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (354) + Handles null at 206 +155: LocalLoad(Ljava/lang/Object;,4) (357) + Handles null at 206 +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (359) + Handles null at 206 +157: Constant(Ljava/lang/String;,"\ \ ") (362) + Handles null at 206 +158: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (364) + Handles null at 206 +159: LocalLoad(Ljava/lang/Object;,2) (367) + Handles null at 206 +160: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (368) + Handles null at 206 +161: Constant(Ljava/lang/String;," ") (371) + Handles null at 206 +162: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (373) + Handles null at 206 +163: LocalLoad(Ljava/lang/Object;,1) (376) + Handles null at 206 +164: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (377) + Handles null at 206 +165: Constant(Ljava/lang/String;," = (") (380) + Handles null at 206 +166: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (382) + Handles null at 206 +167: LocalLoad(Ljava/lang/Object;,2) (385) + Handles null at 206 +168: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (386) + Handles null at 206 +169: Constant(Ljava/lang/String;,")((") (389) + Handles null at 206 +170: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (391) + Handles null at 206 +171: Constant(Ljava/lang/String;,"java_cup.runtime.Symbol) ") (394) + Handles null at 206 +172: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (396) + Handles null at 206 +173: Constant(Ljava/lang/String;,"stack") (399) + Handles null at 206 +174: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (401) + Handles null at 206 +175: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (404) + Handles null at 206 +176: LocalLoad(I,3) (407) + Handles null at 206 +177: Constant(I,0) (408) + Handles null at 206 +178: ConditionalBranch(I,ne,181) (408) + Handles null at 206 +179: Constant(Ljava/lang/String;,".peek()") (411) + Handles null at 206 +180: Goto(196) (413) + Handles null at 206 +181: New(Ljava/lang/StringBuilder;,0) (416) + Handles null at 206 +182: Dup(1,0) (419) + Handles null at 206 +183: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (420) + Handles null at 206 +184: Constant(Ljava/lang/String;,".elementAt(") (423) + Handles null at 206 +185: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (425) + Handles null at 206 +186: Constant(Ljava/lang/String;,"top") (428) + Handles null at 206 +187: Invoke(STATIC,Ljava_cup/emit;,pre,(Ljava/lang/String;)Ljava/lang/String;) (430) + Handles null at 206 +188: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (433) + Handles null at 206 +189: Constant(Ljava/lang/String;,"-") (436) + Handles null at 206 +190: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (438) + Handles null at 206 +191: LocalLoad(I,3) (441) + Handles null at 206 +192: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (442) + Handles null at 206 +193: Constant(Ljava/lang/String;,")") (445) + Handles null at 206 +194: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (447) + Handles null at 206 +195: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (450) + Handles null at 206 +196: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (453) + Handles null at 206 +197: Constant(Ljava/lang/String;,").value;\ +") (456) + Handles null at 206 +198: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (458) + Handles null at 206 +199: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (461) + Handles null at 206 +200: Constant(Ljava/lang/String;,"java_cup/production") (464) + Handles null at 206 +201: Constant(Ljava/lang/String;,"make_declaration(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;") (464) + Handles null at 206 +202: LocalLoad(Ljava/lang/Object;,0) (464) + Handles null at 206 +203: Constant(I,0) (464) + Handles null at 206 +204: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (464) + Handles null at 206 +205: Return(Ljava/lang/Object;) (464) + Handles null at 206 +206: Constant(Ljava/lang/String;,"java_cup/production") (0) +207: Constant(Ljava/lang/String;,"make_declaration(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;") (0) +208: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +209: Constant(I,1) (0) +210: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +211: Throw() (0) +Instrumenting declare_labels ([Ljava_cup/production_part;ILjava/lang/String;)Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"") (0) +1: LocalStore(Ljava/lang/Object;,4) (2) +2: Constant(I,0) (4) +3: LocalStore(I,7) (5) +4: LocalLoad(I,7) (7) +5: LocalLoad(I,2) (9) +6: ConditionalBranch(I,ge,65) (10) +7: LocalLoad(Ljava/lang/Object;,1) (13) +8: LocalLoad(I,7) (14) +9: ArrayLoad(Ljava/lang/Object;) (16) +10: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (17) +11: Constant(I,0) (20) +12: ConditionalBranch(I,ne,60) (20) +13: LocalLoad(Ljava/lang/Object;,1) (23) +14: LocalLoad(I,7) (24) +15: ArrayLoad(Ljava/lang/Object;) (26) +16: CheckCast(Ljava_cup/symbol_part;) (27) +17: LocalStore(Ljava/lang/Object;,5) (30) +18: LocalLoad(Ljava/lang/Object;,5) (32) +19: Invoke(VIRTUAL,Ljava_cup/symbol_part;,label,()Ljava/lang/String;) (34) +20: Dup(1,0) (37) +21: LocalStore(Ljava/lang/Object;,8) (38) +22: Constant(L;,null) (40) +23: ConditionalBranch(Ljava/lang/Object;,ne,27) (40) +24: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (43) +25: Constant(I,0) (46) +26: ConditionalBranch(I,eq,60) (46) +27: LocalLoad(Ljava/lang/Object;,8) (49) +28: Constant(L;,null) (51) +29: ConditionalBranch(Ljava/lang/Object;,ne,41) (51) +30: New(Ljava/lang/StringBuilder;,0) (54) +31: Dup(1,0) (57) +32: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (58) +33: LocalLoad(Ljava/lang/Object;,5) (61) +34: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (63) +35: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (66) +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) +37: LocalLoad(I,7) (72) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (74) +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (77) +40: LocalStore(Ljava/lang/Object;,8) (80) +41: New(Ljava/lang/StringBuilder;,0) (82) +42: Dup(1,0) (85) +43: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (86) +44: LocalLoad(Ljava/lang/Object;,4) (89) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) +46: LocalLoad(Ljava/lang/Object;,0) (94) +47: LocalLoad(Ljava/lang/Object;,8) (95) +48: LocalLoad(Ljava/lang/Object;,5) (97) +49: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (99) +50: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (102) +51: LocalLoad(I,2) (105) +52: LocalLoad(I,7) (106) +53: BinaryOp(I,sub) (108) +54: Constant(I,1) (109) +55: BinaryOp(I,sub) (110) +56: Invoke(VIRTUAL,Ljava_cup/production;,make_declaration,(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;) (111) +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (114) +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (117) +59: LocalStore(Ljava/lang/Object;,4) (120) +60: LocalLoad(I,7) (122) +61: Constant(I,1) (122) +62: BinaryOp(I,add) (122) +63: LocalStore(I,7) (122) +64: Goto(4) (125) +65: LocalLoad(Ljava/lang/Object;,4) (128) +66: Return(Ljava/lang/Object;) (130) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"declare_labels([Ljava_cup/production_part;ILjava/lang/String;)Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"") (0) + Handles null at 76 +5: LocalStore(Ljava/lang/Object;,4) (2) + Handles null at 76 +6: Constant(I,0) (4) + Handles null at 76 +7: LocalStore(I,7) (5) + Handles null at 76 +8: LocalLoad(I,7) (7) + Handles null at 76 +9: LocalLoad(I,2) (9) + Handles null at 76 +10: ConditionalBranch(I,ge,69) (10) + Handles null at 76 +11: LocalLoad(Ljava/lang/Object;,1) (13) + Handles null at 76 +12: LocalLoad(I,7) (14) + Handles null at 76 +13: ArrayLoad(Ljava/lang/Object;) (16) + Handles null at 76 +14: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (17) + Handles null at 76 +15: Constant(I,0) (20) + Handles null at 76 +16: ConditionalBranch(I,ne,64) (20) + Handles null at 76 +17: LocalLoad(Ljava/lang/Object;,1) (23) + Handles null at 76 +18: LocalLoad(I,7) (24) + Handles null at 76 +19: ArrayLoad(Ljava/lang/Object;) (26) + Handles null at 76 +20: CheckCast(Ljava_cup/symbol_part;) (27) + Handles null at 76 +21: LocalStore(Ljava/lang/Object;,5) (30) + Handles null at 76 +22: LocalLoad(Ljava/lang/Object;,5) (32) + Handles null at 76 +23: Invoke(VIRTUAL,Ljava_cup/symbol_part;,label,()Ljava/lang/String;) (34) + Handles null at 76 +24: Dup(1,0) (37) + Handles null at 76 +25: LocalStore(Ljava/lang/Object;,8) (38) + Handles null at 76 +26: Constant(L;,null) (40) + Handles null at 76 +27: ConditionalBranch(Ljava/lang/Object;,ne,31) (40) + Handles null at 76 +28: Get(Z,STATIC,Ljava_cup/emit;,_xmlactions) (43) + Handles null at 76 +29: Constant(I,0) (46) + Handles null at 76 +30: ConditionalBranch(I,eq,64) (46) + Handles null at 76 +31: LocalLoad(Ljava/lang/Object;,8) (49) + Handles null at 76 +32: Constant(L;,null) (51) + Handles null at 76 +33: ConditionalBranch(Ljava/lang/Object;,ne,45) (51) + Handles null at 76 +34: New(Ljava/lang/StringBuilder;,0) (54) + Handles null at 76 +35: Dup(1,0) (57) + Handles null at 76 +36: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (58) + Handles null at 76 +37: LocalLoad(Ljava/lang/Object;,5) (61) + Handles null at 76 +38: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (63) + Handles null at 76 +39: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (66) + Handles null at 76 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) + Handles null at 76 +41: LocalLoad(I,7) (72) + Handles null at 76 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (74) + Handles null at 76 +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (77) + Handles null at 76 +44: LocalStore(Ljava/lang/Object;,8) (80) + Handles null at 76 +45: New(Ljava/lang/StringBuilder;,0) (82) + Handles null at 76 +46: Dup(1,0) (85) + Handles null at 76 +47: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (86) + Handles null at 76 +48: LocalLoad(Ljava/lang/Object;,4) (89) + Handles null at 76 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) + Handles null at 76 +50: LocalLoad(Ljava/lang/Object;,0) (94) + Handles null at 76 +51: LocalLoad(Ljava/lang/Object;,8) (95) + Handles null at 76 +52: LocalLoad(Ljava/lang/Object;,5) (97) + Handles null at 76 +53: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (99) + Handles null at 76 +54: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (102) + Handles null at 76 +55: LocalLoad(I,2) (105) + Handles null at 76 +56: LocalLoad(I,7) (106) + Handles null at 76 +57: BinaryOp(I,sub) (108) + Handles null at 76 +58: Constant(I,1) (109) + Handles null at 76 +59: BinaryOp(I,sub) (110) + Handles null at 76 +60: Invoke(VIRTUAL,Ljava_cup/production;,make_declaration,(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;) (111) + Handles null at 76 +61: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (114) + Handles null at 76 +62: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (117) + Handles null at 76 +63: LocalStore(Ljava/lang/Object;,4) (120) + Handles null at 76 +64: LocalLoad(I,7) (122) + Handles null at 76 +65: Constant(I,1) (122) + Handles null at 76 +66: BinaryOp(I,add) (122) + Handles null at 76 +67: LocalStore(I,7) (122) + Handles null at 76 +68: Goto(8) (125) + Handles null at 76 +69: LocalLoad(Ljava/lang/Object;,4) (128) + Handles null at 76 +70: Constant(Ljava/lang/String;,"java_cup/production") (130) + Handles null at 76 +71: Constant(Ljava/lang/String;,"declare_labels([Ljava_cup/production_part;ILjava/lang/String;)Ljava/lang/String;") (130) + Handles null at 76 +72: LocalLoad(Ljava/lang/Object;,0) (130) + Handles null at 76 +73: Constant(I,0) (130) + Handles null at 76 +74: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (130) + Handles null at 76 +75: Return(Ljava/lang/Object;) (130) + Handles null at 76 +76: Constant(Ljava/lang/String;,"java_cup/production") (0) +77: Constant(Ljava/lang/String;,"declare_labels([Ljava_cup/production_part;ILjava/lang/String;)Ljava/lang/String;") (0) +78: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +79: Constant(I,1) (0) +80: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +81: Throw() (0) +Instrumenting merge_adjacent_actions ([Ljava_cup/production_part;I)I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,6) (1) +3: LocalLoad(I,2) (4) +4: Constant(I,0) (5) +5: ConditionalBranch(I,ne,8) (5) +6: Constant(I,0) (8) +7: Return(I) (9) +8: Constant(I,0) (10) +9: LocalStore(I,5) (11) +10: Constant(I,-1) (13) +11: LocalStore(I,4) (14) +12: Constant(I,0) (16) +13: LocalStore(I,3) (17) +14: LocalLoad(I,3) (18) +15: LocalLoad(I,2) (19) +16: ConditionalBranch(I,ge,101) (20) +17: LocalLoad(I,4) (23) +18: Constant(I,0) (25) +19: ConditionalBranch(I,lt,32) (25) +20: LocalLoad(Ljava/lang/Object;,1) (28) +21: LocalLoad(I,4) (29) +22: ArrayLoad(Ljava/lang/Object;) (31) +23: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (32) +24: Constant(I,0) (35) +25: ConditionalBranch(I,eq,32) (35) +26: LocalLoad(Ljava/lang/Object;,1) (38) +27: LocalLoad(I,3) (39) +28: ArrayLoad(Ljava/lang/Object;) (40) +29: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (41) +30: Constant(I,0) (44) +31: ConditionalBranch(I,ne,43) (44) +32: LocalLoad(I,4) (47) +33: Constant(I,1) (47) +34: BinaryOp(I,add) (47) +35: LocalStore(I,4) (47) +36: LocalLoad(I,4) (50) +37: LocalLoad(I,3) (52) +38: ConditionalBranch(I,eq,43) (53) +39: LocalLoad(Ljava/lang/Object;,1) (56) +40: LocalLoad(I,4) (57) +41: Constant(L;,null) (59) +42: ArrayStore(Ljava/lang/Object;) (60) +43: LocalLoad(I,4) (61) +44: LocalLoad(I,3) (63) +45: ConditionalBranch(I,eq,96) (64) +46: LocalLoad(Ljava/lang/Object;,1) (67) +47: LocalLoad(I,4) (68) +48: ArrayLoad(Ljava/lang/Object;) (70) +49: Constant(L;,null) (71) +50: ConditionalBranch(Ljava/lang/Object;,eq,90) (71) +51: LocalLoad(Ljava/lang/Object;,1) (74) +52: LocalLoad(I,4) (75) +53: ArrayLoad(Ljava/lang/Object;) (77) +54: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (78) +55: Constant(I,0) (81) +56: ConditionalBranch(I,eq,90) (81) +57: LocalLoad(Ljava/lang/Object;,1) (84) +58: LocalLoad(I,3) (85) +59: ArrayLoad(Ljava/lang/Object;) (86) +60: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (87) +61: Constant(I,0) (90) +62: ConditionalBranch(I,eq,90) (90) +63: LocalLoad(Ljava/lang/Object;,1) (93) +64: LocalLoad(I,4) (94) +65: New(Ljava_cup/action_part;,0) (96) +66: Dup(1,0) (99) +67: New(Ljava/lang/StringBuilder;,0) (100) +68: Dup(1,0) (103) +69: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (104) +70: LocalLoad(Ljava/lang/Object;,1) (107) +71: LocalLoad(I,4) (108) +72: ArrayLoad(Ljava/lang/Object;) (110) +73: CheckCast(Ljava_cup/action_part;) (111) +74: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (114) +75: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (117) +76: LocalLoad(Ljava/lang/Object;,1) (120) +77: LocalLoad(I,3) (121) +78: ArrayLoad(Ljava/lang/Object;) (122) +79: CheckCast(Ljava_cup/action_part;) (123) +80: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (126) +81: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (129) +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (132) +83: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (135) +84: ArrayStore(Ljava/lang/Object;) (138) +85: LocalLoad(I,5) (139) +86: Constant(I,1) (139) +87: BinaryOp(I,add) (139) +88: LocalStore(I,5) (139) +89: Goto(96) (142) +90: LocalLoad(Ljava/lang/Object;,1) (145) +91: LocalLoad(I,4) (146) +92: LocalLoad(Ljava/lang/Object;,1) (148) +93: LocalLoad(I,3) (149) +94: ArrayLoad(Ljava/lang/Object;) (150) +95: ArrayStore(Ljava/lang/Object;) (151) +96: LocalLoad(I,3) (152) +97: Constant(I,1) (152) +98: BinaryOp(I,add) (152) +99: LocalStore(I,3) (152) +100: Goto(14) (155) +101: LocalLoad(I,2) (158) +102: LocalLoad(I,5) (159) +103: BinaryOp(I,sub) (161) +104: Return(I) (162) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"merge_adjacent_actions([Ljava_cup/production_part;I)I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 119 +5: Constant(L;,null) (1) + Handles null at 119 +6: ConditionalBranch(Ljava/lang/Object;,eq,10) (1) + Handles null at 119 +7: LocalLoad(I,2) (4) + Handles null at 119 +8: Constant(I,0) (5) + Handles null at 119 +9: ConditionalBranch(I,ne,17) (5) + Handles null at 119 +10: Constant(I,0) (8) + Handles null at 119 +11: Constant(Ljava/lang/String;,"java_cup/production") (9) + Handles null at 119 +12: Constant(Ljava/lang/String;,"merge_adjacent_actions([Ljava_cup/production_part;I)I") (9) + Handles null at 119 +13: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 119 +14: Constant(I,0) (9) + Handles null at 119 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (9) + Handles null at 119 +16: Return(I) (9) + Handles null at 119 +17: Constant(I,0) (10) + Handles null at 119 +18: LocalStore(I,5) (11) + Handles null at 119 +19: Constant(I,-1) (13) + Handles null at 119 +20: LocalStore(I,4) (14) + Handles null at 119 +21: Constant(I,0) (16) + Handles null at 119 +22: LocalStore(I,3) (17) + Handles null at 119 +23: LocalLoad(I,3) (18) + Handles null at 119 +24: LocalLoad(I,2) (19) + Handles null at 119 +25: ConditionalBranch(I,ge,110) (20) + Handles null at 119 +26: LocalLoad(I,4) (23) + Handles null at 119 +27: Constant(I,0) (25) + Handles null at 119 +28: ConditionalBranch(I,lt,41) (25) + Handles null at 119 +29: LocalLoad(Ljava/lang/Object;,1) (28) + Handles null at 119 +30: LocalLoad(I,4) (29) + Handles null at 119 +31: ArrayLoad(Ljava/lang/Object;) (31) + Handles null at 119 +32: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (32) + Handles null at 119 +33: Constant(I,0) (35) + Handles null at 119 +34: ConditionalBranch(I,eq,41) (35) + Handles null at 119 +35: LocalLoad(Ljava/lang/Object;,1) (38) + Handles null at 119 +36: LocalLoad(I,3) (39) + Handles null at 119 +37: ArrayLoad(Ljava/lang/Object;) (40) + Handles null at 119 +38: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (41) + Handles null at 119 +39: Constant(I,0) (44) + Handles null at 119 +40: ConditionalBranch(I,ne,52) (44) + Handles null at 119 +41: LocalLoad(I,4) (47) + Handles null at 119 +42: Constant(I,1) (47) + Handles null at 119 +43: BinaryOp(I,add) (47) + Handles null at 119 +44: LocalStore(I,4) (47) + Handles null at 119 +45: LocalLoad(I,4) (50) + Handles null at 119 +46: LocalLoad(I,3) (52) + Handles null at 119 +47: ConditionalBranch(I,eq,52) (53) + Handles null at 119 +48: LocalLoad(Ljava/lang/Object;,1) (56) + Handles null at 119 +49: LocalLoad(I,4) (57) + Handles null at 119 +50: Constant(L;,null) (59) + Handles null at 119 +51: ArrayStore(Ljava/lang/Object;) (60) + Handles null at 119 +52: LocalLoad(I,4) (61) + Handles null at 119 +53: LocalLoad(I,3) (63) + Handles null at 119 +54: ConditionalBranch(I,eq,105) (64) + Handles null at 119 +55: LocalLoad(Ljava/lang/Object;,1) (67) + Handles null at 119 +56: LocalLoad(I,4) (68) + Handles null at 119 +57: ArrayLoad(Ljava/lang/Object;) (70) + Handles null at 119 +58: Constant(L;,null) (71) + Handles null at 119 +59: ConditionalBranch(Ljava/lang/Object;,eq,99) (71) + Handles null at 119 +60: LocalLoad(Ljava/lang/Object;,1) (74) + Handles null at 119 +61: LocalLoad(I,4) (75) + Handles null at 119 +62: ArrayLoad(Ljava/lang/Object;) (77) + Handles null at 119 +63: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (78) + Handles null at 119 +64: Constant(I,0) (81) + Handles null at 119 +65: ConditionalBranch(I,eq,99) (81) + Handles null at 119 +66: LocalLoad(Ljava/lang/Object;,1) (84) + Handles null at 119 +67: LocalLoad(I,3) (85) + Handles null at 119 +68: ArrayLoad(Ljava/lang/Object;) (86) + Handles null at 119 +69: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (87) + Handles null at 119 +70: Constant(I,0) (90) + Handles null at 119 +71: ConditionalBranch(I,eq,99) (90) + Handles null at 119 +72: LocalLoad(Ljava/lang/Object;,1) (93) + Handles null at 119 +73: LocalLoad(I,4) (94) + Handles null at 119 +74: New(Ljava_cup/action_part;,0) (96) + Handles null at 119 +75: Dup(1,0) (99) + Handles null at 119 +76: New(Ljava/lang/StringBuilder;,0) (100) + Handles null at 119 +77: Dup(1,0) (103) + Handles null at 119 +78: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (104) + Handles null at 119 +79: LocalLoad(Ljava/lang/Object;,1) (107) + Handles null at 119 +80: LocalLoad(I,4) (108) + Handles null at 119 +81: ArrayLoad(Ljava/lang/Object;) (110) + Handles null at 119 +82: CheckCast(Ljava_cup/action_part;) (111) + Handles null at 119 +83: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (114) + Handles null at 119 +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (117) + Handles null at 119 +85: LocalLoad(Ljava/lang/Object;,1) (120) + Handles null at 119 +86: LocalLoad(I,3) (121) + Handles null at 119 +87: ArrayLoad(Ljava/lang/Object;) (122) + Handles null at 119 +88: CheckCast(Ljava_cup/action_part;) (123) + Handles null at 119 +89: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (126) + Handles null at 119 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (129) + Handles null at 119 +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (132) + Handles null at 119 +92: Invoke(SPECIAL,Ljava_cup/action_part;,,(Ljava/lang/String;)V) (135) + Handles null at 119 +93: ArrayStore(Ljava/lang/Object;) (138) + Handles null at 119 +94: LocalLoad(I,5) (139) + Handles null at 119 +95: Constant(I,1) (139) + Handles null at 119 +96: BinaryOp(I,add) (139) + Handles null at 119 +97: LocalStore(I,5) (139) + Handles null at 119 +98: Goto(105) (142) + Handles null at 119 +99: LocalLoad(Ljava/lang/Object;,1) (145) + Handles null at 119 +100: LocalLoad(I,4) (146) + Handles null at 119 +101: LocalLoad(Ljava/lang/Object;,1) (148) + Handles null at 119 +102: LocalLoad(I,3) (149) + Handles null at 119 +103: ArrayLoad(Ljava/lang/Object;) (150) + Handles null at 119 +104: ArrayStore(Ljava/lang/Object;) (151) + Handles null at 119 +105: LocalLoad(I,3) (152) + Handles null at 119 +106: Constant(I,1) (152) + Handles null at 119 +107: BinaryOp(I,add) (152) + Handles null at 119 +108: LocalStore(I,3) (152) + Handles null at 119 +109: Goto(23) (155) + Handles null at 119 +110: LocalLoad(I,2) (158) + Handles null at 119 +111: LocalLoad(I,5) (159) + Handles null at 119 +112: BinaryOp(I,sub) (161) + Handles null at 119 +113: Constant(Ljava/lang/String;,"java_cup/production") (162) + Handles null at 119 +114: Constant(Ljava/lang/String;,"merge_adjacent_actions([Ljava_cup/production_part;I)I") (162) + Handles null at 119 +115: LocalLoad(Ljava/lang/Object;,0) (162) + Handles null at 119 +116: Constant(I,0) (162) + Handles null at 119 +117: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (162) + Handles null at 119 +118: Return(I) (162) + Handles null at 119 +119: Constant(Ljava/lang/String;,"java_cup/production") (0) +120: Constant(Ljava/lang/String;,"merge_adjacent_actions([Ljava_cup/production_part;I)I") (0) +121: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +122: Constant(I,1) (0) +123: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +124: Throw() (0) +Instrumenting strip_trailing_action ([Ljava_cup/production_part;I)Ljava_cup/action_part;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,6) (1) +3: LocalLoad(I,2) (4) +4: Constant(I,0) (5) +5: ConditionalBranch(I,ne,8) (5) +6: Constant(L;,null) (8) +7: Return(Ljava/lang/Object;) (9) +8: LocalLoad(Ljava/lang/Object;,1) (10) +9: LocalLoad(I,2) (11) +10: Constant(I,1) (12) +11: BinaryOp(I,sub) (13) +12: ArrayLoad(Ljava/lang/Object;) (14) +13: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (15) +14: Constant(I,0) (18) +15: ConditionalBranch(I,eq,31) (18) +16: LocalLoad(Ljava/lang/Object;,1) (21) +17: LocalLoad(I,2) (22) +18: Constant(I,1) (23) +19: BinaryOp(I,sub) (24) +20: ArrayLoad(Ljava/lang/Object;) (25) +21: CheckCast(Ljava_cup/action_part;) (26) +22: LocalStore(Ljava/lang/Object;,3) (29) +23: LocalLoad(Ljava/lang/Object;,1) (30) +24: LocalLoad(I,2) (31) +25: Constant(I,1) (32) +26: BinaryOp(I,sub) (33) +27: Constant(L;,null) (34) +28: ArrayStore(Ljava/lang/Object;) (35) +29: LocalLoad(Ljava/lang/Object;,3) (36) +30: Return(Ljava/lang/Object;) (37) +31: Constant(L;,null) (38) +32: Return(Ljava/lang/Object;) (39) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"strip_trailing_action([Ljava_cup/production_part;I)Ljava_cup/action_part;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 52 +5: Constant(L;,null) (1) + Handles null at 52 +6: ConditionalBranch(Ljava/lang/Object;,eq,10) (1) + Handles null at 52 +7: LocalLoad(I,2) (4) + Handles null at 52 +8: Constant(I,0) (5) + Handles null at 52 +9: ConditionalBranch(I,ne,17) (5) + Handles null at 52 +10: Constant(L;,null) (8) + Handles null at 52 +11: Constant(Ljava/lang/String;,"java_cup/production") (9) + Handles null at 52 +12: Constant(Ljava/lang/String;,"strip_trailing_action([Ljava_cup/production_part;I)Ljava_cup/action_part;") (9) + Handles null at 52 +13: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 52 +14: Constant(I,0) (9) + Handles null at 52 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (9) + Handles null at 52 +16: Return(Ljava/lang/Object;) (9) + Handles null at 52 +17: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 52 +18: LocalLoad(I,2) (11) + Handles null at 52 +19: Constant(I,1) (12) + Handles null at 52 +20: BinaryOp(I,sub) (13) + Handles null at 52 +21: ArrayLoad(Ljava/lang/Object;) (14) + Handles null at 52 +22: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (15) + Handles null at 52 +23: Constant(I,0) (18) + Handles null at 52 +24: ConditionalBranch(I,eq,45) (18) + Handles null at 52 +25: LocalLoad(Ljava/lang/Object;,1) (21) + Handles null at 52 +26: LocalLoad(I,2) (22) + Handles null at 52 +27: Constant(I,1) (23) + Handles null at 52 +28: BinaryOp(I,sub) (24) + Handles null at 52 +29: ArrayLoad(Ljava/lang/Object;) (25) + Handles null at 52 +30: CheckCast(Ljava_cup/action_part;) (26) + Handles null at 52 +31: LocalStore(Ljava/lang/Object;,3) (29) + Handles null at 52 +32: LocalLoad(Ljava/lang/Object;,1) (30) + Handles null at 52 +33: LocalLoad(I,2) (31) + Handles null at 52 +34: Constant(I,1) (32) + Handles null at 52 +35: BinaryOp(I,sub) (33) + Handles null at 52 +36: Constant(L;,null) (34) + Handles null at 52 +37: ArrayStore(Ljava/lang/Object;) (35) + Handles null at 52 +38: LocalLoad(Ljava/lang/Object;,3) (36) + Handles null at 52 +39: Constant(Ljava/lang/String;,"java_cup/production") (37) + Handles null at 52 +40: Constant(Ljava/lang/String;,"strip_trailing_action([Ljava_cup/production_part;I)Ljava_cup/action_part;") (37) + Handles null at 52 +41: LocalLoad(Ljava/lang/Object;,0) (37) + Handles null at 52 +42: Constant(I,0) (37) + Handles null at 52 +43: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (37) + Handles null at 52 +44: Return(Ljava/lang/Object;) (37) + Handles null at 52 +45: Constant(L;,null) (38) + Handles null at 52 +46: Constant(Ljava/lang/String;,"java_cup/production") (39) + Handles null at 52 +47: Constant(Ljava/lang/String;,"strip_trailing_action([Ljava_cup/production_part;I)Ljava_cup/action_part;") (39) + Handles null at 52 +48: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 52 +49: Constant(I,0) (39) + Handles null at 52 +50: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (39) + Handles null at 52 +51: Return(Ljava/lang/Object;) (39) + Handles null at 52 +52: Constant(Ljava/lang/String;,"java_cup/production") (0) +53: Constant(Ljava/lang/String;,"strip_trailing_action([Ljava_cup/production_part;I)Ljava_cup/action_part;") (0) +54: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +55: Constant(I,1) (0) +56: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +57: Throw() (0) +Instrumenting remove_embedded_actions ()V: +Initial ShrikeBT code: +0: Constant(I,-1) (0) +1: LocalStore(I,4) (1) +2: Constant(I,0) (3) +3: LocalStore(I,5) (4) +4: LocalLoad(I,5) (6) +5: LocalLoad(Ljava/lang/Object;,0) (8) +6: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (9) +7: ConditionalBranch(I,ge,74) (12) +8: LocalLoad(Ljava/lang/Object;,0) (15) +9: LocalLoad(I,5) (16) +10: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (18) +11: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (21) +12: Constant(I,0) (24) +13: ConditionalBranch(I,eq,69) (24) +14: LocalLoad(Ljava/lang/Object;,0) (27) +15: LocalLoad(Ljava/lang/Object;,0) (28) +16: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (29) +17: LocalLoad(I,5) (32) +18: Constant(Ljava/lang/String;,"") (34) +19: Invoke(VIRTUAL,Ljava_cup/production;,declare_labels,([Ljava_cup/production_part;ILjava/lang/String;)Ljava/lang/String;) (36) +20: LocalStore(Ljava/lang/Object;,3) (39) +21: Constant(L;,null) (40) +22: LocalLoad(Ljava/lang/Object;,0) (41) +23: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (42) +24: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (45) +25: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (48) +26: Invoke(STATIC,Ljava_cup/non_terminal;,create_new,(Ljava/lang/String;Ljava/lang/String;)Ljava_cup/non_terminal;) (51) +27: LocalStore(Ljava/lang/Object;,1) (54) +28: LocalLoad(Ljava/lang/Object;,1) (55) +29: Constant(I,1) (56) +30: Put(Z,NONSTATIC,Ljava_cup/non_terminal;,is_embedded_action) (57) +31: New(Ljava_cup/action_production;,0) (60) +32: Dup(1,0) (63) +33: LocalLoad(Ljava/lang/Object;,0) (64) +34: LocalLoad(Ljava/lang/Object;,1) (65) +35: Constant(L;,null) (66) +36: Constant(I,0) (67) +37: New(Ljava/lang/StringBuilder;,0) (68) +38: Dup(1,0) (71) +39: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (72) +40: LocalLoad(Ljava/lang/Object;,3) (75) +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (76) +42: LocalLoad(Ljava/lang/Object;,0) (79) +43: LocalLoad(I,5) (80) +44: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (82) +45: CheckCast(Ljava_cup/action_part;) (85) +46: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (88) +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (94) +49: LocalLoad(I,4) (97) +50: Constant(I,-1) (99) +51: ConditionalBranch(I,ne,54) (100) +52: Constant(I,-1) (103) +53: Goto(57) (104) +54: LocalLoad(I,5) (107) +55: LocalLoad(I,4) (109) +56: BinaryOp(I,sub) (111) +57: Invoke(SPECIAL,Ljava_cup/action_production;,,(Ljava_cup/production;Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;I)V) (112) +58: LocalStore(Ljava/lang/Object;,2) (115) +59: LocalLoad(Ljava/lang/Object;,0) (116) +60: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (117) +61: LocalLoad(I,5) (120) +62: New(Ljava_cup/symbol_part;,0) (122) +63: Dup(1,0) (125) +64: LocalLoad(Ljava/lang/Object;,1) (126) +65: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (127) +66: ArrayStore(Ljava/lang/Object;) (130) +67: LocalLoad(I,5) (131) +68: LocalStore(I,4) (133) +69: LocalLoad(I,5) (135) +70: Constant(I,1) (135) +71: BinaryOp(I,add) (135) +72: LocalStore(I,5) (135) +73: Goto(4) (138) +74: Return(V) (141) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"remove_embedded_actions()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,-1) (0) + Handles null at 84 +5: LocalStore(I,4) (1) + Handles null at 84 +6: Constant(I,0) (3) + Handles null at 84 +7: LocalStore(I,5) (4) + Handles null at 84 +8: LocalLoad(I,5) (6) + Handles null at 84 +9: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 84 +10: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (9) + Handles null at 84 +11: ConditionalBranch(I,ge,78) (12) + Handles null at 84 +12: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 84 +13: LocalLoad(I,5) (16) + Handles null at 84 +14: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (18) + Handles null at 84 +15: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (21) + Handles null at 84 +16: Constant(I,0) (24) + Handles null at 84 +17: ConditionalBranch(I,eq,73) (24) + Handles null at 84 +18: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 84 +19: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 84 +20: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (29) + Handles null at 84 +21: LocalLoad(I,5) (32) + Handles null at 84 +22: Constant(Ljava/lang/String;,"") (34) + Handles null at 84 +23: Invoke(VIRTUAL,Ljava_cup/production;,declare_labels,([Ljava_cup/production_part;ILjava/lang/String;)Ljava/lang/String;) (36) + Handles null at 84 +24: LocalStore(Ljava/lang/Object;,3) (39) + Handles null at 84 +25: Constant(L;,null) (40) + Handles null at 84 +26: LocalLoad(Ljava/lang/Object;,0) (41) + Handles null at 84 +27: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (42) + Handles null at 84 +28: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (45) + Handles null at 84 +29: Invoke(VIRTUAL,Ljava_cup/symbol;,stack_type,()Ljava/lang/String;) (48) + Handles null at 84 +30: Invoke(STATIC,Ljava_cup/non_terminal;,create_new,(Ljava/lang/String;Ljava/lang/String;)Ljava_cup/non_terminal;) (51) + Handles null at 84 +31: LocalStore(Ljava/lang/Object;,1) (54) + Handles null at 84 +32: LocalLoad(Ljava/lang/Object;,1) (55) + Handles null at 84 +33: Constant(I,1) (56) + Handles null at 84 +34: Put(Z,NONSTATIC,Ljava_cup/non_terminal;,is_embedded_action) (57) + Handles null at 84 +35: New(Ljava_cup/action_production;,0) (60) + Handles null at 84 +36: Dup(1,0) (63) + Handles null at 84 +37: LocalLoad(Ljava/lang/Object;,0) (64) + Handles null at 84 +38: LocalLoad(Ljava/lang/Object;,1) (65) + Handles null at 84 +39: Constant(L;,null) (66) + Handles null at 84 +40: Constant(I,0) (67) + Handles null at 84 +41: New(Ljava/lang/StringBuilder;,0) (68) + Handles null at 84 +42: Dup(1,0) (71) + Handles null at 84 +43: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (72) + Handles null at 84 +44: LocalLoad(Ljava/lang/Object;,3) (75) + Handles null at 84 +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (76) + Handles null at 84 +46: LocalLoad(Ljava/lang/Object;,0) (79) + Handles null at 84 +47: LocalLoad(I,5) (80) + Handles null at 84 +48: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (82) + Handles null at 84 +49: CheckCast(Ljava_cup/action_part;) (85) + Handles null at 84 +50: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (88) + Handles null at 84 +51: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (91) + Handles null at 84 +52: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (94) + Handles null at 84 +53: LocalLoad(I,4) (97) + Handles null at 84 +54: Constant(I,-1) (99) + Handles null at 84 +55: ConditionalBranch(I,ne,58) (100) + Handles null at 84 +56: Constant(I,-1) (103) + Handles null at 84 +57: Goto(61) (104) + Handles null at 84 +58: LocalLoad(I,5) (107) + Handles null at 84 +59: LocalLoad(I,4) (109) + Handles null at 84 +60: BinaryOp(I,sub) (111) + Handles null at 84 +61: Invoke(SPECIAL,Ljava_cup/action_production;,,(Ljava_cup/production;Ljava_cup/non_terminal;[Ljava_cup/production_part;ILjava/lang/String;I)V) (112) + Handles null at 84 +62: LocalStore(Ljava/lang/Object;,2) (115) + Handles null at 84 +63: LocalLoad(Ljava/lang/Object;,0) (116) + Handles null at 84 +64: Get([Ljava_cup/production_part;,NONSTATIC,Ljava_cup/production;,_rhs) (117) + Handles null at 84 +65: LocalLoad(I,5) (120) + Handles null at 84 +66: New(Ljava_cup/symbol_part;,0) (122) + Handles null at 84 +67: Dup(1,0) (125) + Handles null at 84 +68: LocalLoad(Ljava/lang/Object;,1) (126) + Handles null at 84 +69: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;)V) (127) + Handles null at 84 +70: ArrayStore(Ljava/lang/Object;) (130) + Handles null at 84 +71: LocalLoad(I,5) (131) + Handles null at 84 +72: LocalStore(I,4) (133) + Handles null at 84 +73: LocalLoad(I,5) (135) + Handles null at 84 +74: Constant(I,1) (135) + Handles null at 84 +75: BinaryOp(I,add) (135) + Handles null at 84 +76: LocalStore(I,5) (135) + Handles null at 84 +77: Goto(8) (138) + Handles null at 84 +78: Constant(Ljava/lang/String;,"java_cup/production") (141) + Handles null at 84 +79: Constant(Ljava/lang/String;,"remove_embedded_actions()V") (141) + Handles null at 84 +80: LocalLoad(Ljava/lang/Object;,0) (141) + Handles null at 84 +81: Constant(I,0) (141) + Handles null at 84 +82: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (141) + Handles null at 84 +83: Return(V) (141) + Handles null at 84 +84: Constant(Ljava/lang/String;,"java_cup/production") (0) +85: Constant(Ljava/lang/String;,"remove_embedded_actions()V") (0) +86: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +87: Constant(I,1) (0) +88: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +89: Throw() (0) +Instrumenting check_nullable ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/production;,nullable_known,()Z) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,7) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: Invoke(VIRTUAL,Ljava_cup/production;,nullable,()Z) (8) +6: Return(I) (11) +7: LocalLoad(Ljava/lang/Object;,0) (12) +8: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (13) +9: Constant(I,0) (16) +10: ConditionalBranch(I,ne,15) (16) +11: LocalLoad(Ljava/lang/Object;,0) (19) +12: Constant(I,1) (20) +13: Invoke(VIRTUAL,Ljava_cup/production;,set_nullable,(Z)Z) (21) +14: Return(I) (24) +15: Constant(I,0) (25) +16: LocalStore(I,3) (26) +17: LocalLoad(I,3) (27) +18: LocalLoad(Ljava/lang/Object;,0) (28) +19: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (29) +20: ConditionalBranch(I,ge,53) (32) +21: LocalLoad(Ljava/lang/Object;,0) (35) +22: LocalLoad(I,3) (36) +23: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (37) +24: LocalStore(Ljava/lang/Object;,1) (40) +25: LocalLoad(Ljava/lang/Object;,1) (41) +26: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (42) +27: Constant(I,0) (45) +28: ConditionalBranch(I,ne,48) (45) +29: LocalLoad(Ljava/lang/Object;,1) (48) +30: CheckCast(Ljava_cup/symbol_part;) (49) +31: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (52) +32: LocalStore(Ljava/lang/Object;,2) (55) +33: LocalLoad(Ljava/lang/Object;,2) (56) +34: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (57) +35: Constant(I,0) (60) +36: ConditionalBranch(I,ne,41) (60) +37: LocalLoad(Ljava/lang/Object;,0) (63) +38: Constant(I,0) (64) +39: Invoke(VIRTUAL,Ljava_cup/production;,set_nullable,(Z)Z) (65) +40: Return(I) (68) +41: LocalLoad(Ljava/lang/Object;,2) (69) +42: CheckCast(Ljava_cup/non_terminal;) (70) +43: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (73) +44: Constant(I,0) (76) +45: ConditionalBranch(I,ne,48) (76) +46: Constant(I,0) (79) +47: Return(I) (80) +48: LocalLoad(I,3) (81) +49: Constant(I,1) (81) +50: BinaryOp(I,add) (81) +51: LocalStore(I,3) (81) +52: Goto(17) (84) +53: LocalLoad(Ljava/lang/Object;,0) (87) +54: Constant(I,1) (88) +55: Invoke(VIRTUAL,Ljava_cup/production;,set_nullable,(Z)Z) (89) +56: Return(I) (92) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"check_nullable()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 86 +5: Invoke(VIRTUAL,Ljava_cup/production;,nullable_known,()Z) (1) + Handles null at 86 +6: Constant(I,0) (4) + Handles null at 86 +7: ConditionalBranch(I,eq,16) (4) + Handles null at 86 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 86 +9: Invoke(VIRTUAL,Ljava_cup/production;,nullable,()Z) (8) + Handles null at 86 +10: Constant(Ljava/lang/String;,"java_cup/production") (11) + Handles null at 86 +11: Constant(Ljava/lang/String;,"check_nullable()Z") (11) + Handles null at 86 +12: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 86 +13: Constant(I,0) (11) + Handles null at 86 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 86 +15: Return(I) (11) + Handles null at 86 +16: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 86 +17: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (13) + Handles null at 86 +18: Constant(I,0) (16) + Handles null at 86 +19: ConditionalBranch(I,ne,29) (16) + Handles null at 86 +20: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 86 +21: Constant(I,1) (20) + Handles null at 86 +22: Invoke(VIRTUAL,Ljava_cup/production;,set_nullable,(Z)Z) (21) + Handles null at 86 +23: Constant(Ljava/lang/String;,"java_cup/production") (24) + Handles null at 86 +24: Constant(Ljava/lang/String;,"check_nullable()Z") (24) + Handles null at 86 +25: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 86 +26: Constant(I,0) (24) + Handles null at 86 +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (24) + Handles null at 86 +28: Return(I) (24) + Handles null at 86 +29: Constant(I,0) (25) + Handles null at 86 +30: LocalStore(I,3) (26) + Handles null at 86 +31: LocalLoad(I,3) (27) + Handles null at 86 +32: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 86 +33: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (29) + Handles null at 86 +34: ConditionalBranch(I,ge,77) (32) + Handles null at 86 +35: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 86 +36: LocalLoad(I,3) (36) + Handles null at 86 +37: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (37) + Handles null at 86 +38: LocalStore(Ljava/lang/Object;,1) (40) + Handles null at 86 +39: LocalLoad(Ljava/lang/Object;,1) (41) + Handles null at 86 +40: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (42) + Handles null at 86 +41: Constant(I,0) (45) + Handles null at 86 +42: ConditionalBranch(I,ne,72) (45) + Handles null at 86 +43: LocalLoad(Ljava/lang/Object;,1) (48) + Handles null at 86 +44: CheckCast(Ljava_cup/symbol_part;) (49) + Handles null at 86 +45: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (52) + Handles null at 86 +46: LocalStore(Ljava/lang/Object;,2) (55) + Handles null at 86 +47: LocalLoad(Ljava/lang/Object;,2) (56) + Handles null at 86 +48: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (57) + Handles null at 86 +49: Constant(I,0) (60) + Handles null at 86 +50: ConditionalBranch(I,ne,60) (60) + Handles null at 86 +51: LocalLoad(Ljava/lang/Object;,0) (63) + Handles null at 86 +52: Constant(I,0) (64) + Handles null at 86 +53: Invoke(VIRTUAL,Ljava_cup/production;,set_nullable,(Z)Z) (65) + Handles null at 86 +54: Constant(Ljava/lang/String;,"java_cup/production") (68) + Handles null at 86 +55: Constant(Ljava/lang/String;,"check_nullable()Z") (68) + Handles null at 86 +56: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 86 +57: Constant(I,0) (68) + Handles null at 86 +58: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (68) + Handles null at 86 +59: Return(I) (68) + Handles null at 86 +60: LocalLoad(Ljava/lang/Object;,2) (69) + Handles null at 86 +61: CheckCast(Ljava_cup/non_terminal;) (70) + Handles null at 86 +62: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (73) + Handles null at 86 +63: Constant(I,0) (76) + Handles null at 86 +64: ConditionalBranch(I,ne,72) (76) + Handles null at 86 +65: Constant(I,0) (79) + Handles null at 86 +66: Constant(Ljava/lang/String;,"java_cup/production") (80) + Handles null at 86 +67: Constant(Ljava/lang/String;,"check_nullable()Z") (80) + Handles null at 86 +68: LocalLoad(Ljava/lang/Object;,0) (80) + Handles null at 86 +69: Constant(I,0) (80) + Handles null at 86 +70: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (80) + Handles null at 86 +71: Return(I) (80) + Handles null at 86 +72: LocalLoad(I,3) (81) + Handles null at 86 +73: Constant(I,1) (81) + Handles null at 86 +74: BinaryOp(I,add) (81) + Handles null at 86 +75: LocalStore(I,3) (81) + Handles null at 86 +76: Goto(31) (84) + Handles null at 86 +77: LocalLoad(Ljava/lang/Object;,0) (87) + Handles null at 86 +78: Constant(I,1) (88) + Handles null at 86 +79: Invoke(VIRTUAL,Ljava_cup/production;,set_nullable,(Z)Z) (89) + Handles null at 86 +80: Constant(Ljava/lang/String;,"java_cup/production") (92) + Handles null at 86 +81: Constant(Ljava/lang/String;,"check_nullable()Z") (92) + Handles null at 86 +82: LocalLoad(Ljava/lang/Object;,0) (92) + Handles null at 86 +83: Constant(I,0) (92) + Handles null at 86 +84: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (92) + Handles null at 86 +85: Return(I) (92) + Handles null at 86 +86: Constant(Ljava/lang/String;,"java_cup/production") (0) +87: Constant(Ljava/lang/String;,"check_nullable()Z") (0) +88: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +89: Constant(I,1) (0) +90: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +91: Throw() (0) +Instrumenting set_nullable (Z)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/production;,_nullable_known) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: LocalLoad(I,1) (6) +5: Put(Z,NONSTATIC,Ljava_cup/production;,_nullable) (7) +6: LocalLoad(I,1) (10) +7: Return(I) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"set_nullable(Z)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 17 +5: Constant(I,1) (1) + Handles null at 17 +6: Put(Z,NONSTATIC,Ljava_cup/production;,_nullable_known) (2) + Handles null at 17 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 17 +8: LocalLoad(I,1) (6) + Handles null at 17 +9: Put(Z,NONSTATIC,Ljava_cup/production;,_nullable) (7) + Handles null at 17 +10: LocalLoad(I,1) (10) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/production") (11) + Handles null at 17 +12: Constant(Ljava/lang/String;,"set_nullable(Z)Z") (11) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 17 +14: Constant(I,0) (11) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 17 +16: Return(I) (11) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/production") (0) +18: Constant(Ljava/lang/String;,"set_nullable(Z)Z") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting check_first_set ()Ljava_cup/terminal_set;: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,1) (1) +2: LocalLoad(I,1) (2) +3: LocalLoad(Ljava/lang/Object;,0) (3) +4: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (4) +5: ConditionalBranch(I,ge,47) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: LocalLoad(I,1) (11) +8: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (12) +9: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (15) +10: Constant(I,0) (18) +11: ConditionalBranch(I,ne,42) (18) +12: LocalLoad(Ljava/lang/Object;,0) (21) +13: LocalLoad(I,1) (22) +14: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (23) +15: CheckCast(Ljava_cup/symbol_part;) (26) +16: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (29) +17: LocalStore(Ljava/lang/Object;,2) (32) +18: LocalLoad(Ljava/lang/Object;,2) (33) +19: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (34) +20: Constant(I,0) (37) +21: ConditionalBranch(I,eq,35) (37) +22: LocalLoad(Ljava/lang/Object;,0) (40) +23: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/production;,_first_set) (41) +24: LocalLoad(Ljava/lang/Object;,2) (44) +25: CheckCast(Ljava_cup/non_terminal;) (45) +26: Invoke(VIRTUAL,Ljava_cup/non_terminal;,first_set,()Ljava_cup/terminal_set;) (48) +27: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (51) +28: Pop(1) (54) +29: LocalLoad(Ljava/lang/Object;,2) (55) +30: CheckCast(Ljava_cup/non_terminal;) (56) +31: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (59) +32: Constant(I,0) (62) +33: ConditionalBranch(I,ne,42) (62) +34: Goto(47) (65) +35: LocalLoad(Ljava/lang/Object;,0) (68) +36: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/production;,_first_set) (69) +37: LocalLoad(Ljava/lang/Object;,2) (72) +38: CheckCast(Ljava_cup/terminal;) (73) +39: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (76) +40: Pop(1) (79) +41: Goto(47) (80) +42: LocalLoad(I,1) (83) +43: Constant(I,1) (83) +44: BinaryOp(I,add) (83) +45: LocalStore(I,1) (83) +46: Goto(2) (86) +47: LocalLoad(Ljava/lang/Object;,0) (89) +48: Invoke(VIRTUAL,Ljava_cup/production;,first_set,()Ljava_cup/terminal_set;) (90) +49: Return(Ljava/lang/Object;) (93) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"check_first_set()Ljava_cup/terminal_set;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 59 +5: LocalStore(I,1) (1) + Handles null at 59 +6: LocalLoad(I,1) (2) + Handles null at 59 +7: LocalLoad(Ljava/lang/Object;,0) (3) + Handles null at 59 +8: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (4) + Handles null at 59 +9: ConditionalBranch(I,ge,51) (7) + Handles null at 59 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 59 +11: LocalLoad(I,1) (11) + Handles null at 59 +12: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (12) + Handles null at 59 +13: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (15) + Handles null at 59 +14: Constant(I,0) (18) + Handles null at 59 +15: ConditionalBranch(I,ne,46) (18) + Handles null at 59 +16: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 59 +17: LocalLoad(I,1) (22) + Handles null at 59 +18: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (23) + Handles null at 59 +19: CheckCast(Ljava_cup/symbol_part;) (26) + Handles null at 59 +20: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (29) + Handles null at 59 +21: LocalStore(Ljava/lang/Object;,2) (32) + Handles null at 59 +22: LocalLoad(Ljava/lang/Object;,2) (33) + Handles null at 59 +23: Invoke(VIRTUAL,Ljava_cup/symbol;,is_non_term,()Z) (34) + Handles null at 59 +24: Constant(I,0) (37) + Handles null at 59 +25: ConditionalBranch(I,eq,39) (37) + Handles null at 59 +26: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 59 +27: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/production;,_first_set) (41) + Handles null at 59 +28: LocalLoad(Ljava/lang/Object;,2) (44) + Handles null at 59 +29: CheckCast(Ljava_cup/non_terminal;) (45) + Handles null at 59 +30: Invoke(VIRTUAL,Ljava_cup/non_terminal;,first_set,()Ljava_cup/terminal_set;) (48) + Handles null at 59 +31: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal_set;)Z) (51) + Handles null at 59 +32: Pop(1) (54) + Handles null at 59 +33: LocalLoad(Ljava/lang/Object;,2) (55) + Handles null at 59 +34: CheckCast(Ljava_cup/non_terminal;) (56) + Handles null at 59 +35: Invoke(VIRTUAL,Ljava_cup/non_terminal;,nullable,()Z) (59) + Handles null at 59 +36: Constant(I,0) (62) + Handles null at 59 +37: ConditionalBranch(I,ne,46) (62) + Handles null at 59 +38: Goto(51) (65) + Handles null at 59 +39: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 59 +40: Get(Ljava_cup/terminal_set;,NONSTATIC,Ljava_cup/production;,_first_set) (69) + Handles null at 59 +41: LocalLoad(Ljava/lang/Object;,2) (72) + Handles null at 59 +42: CheckCast(Ljava_cup/terminal;) (73) + Handles null at 59 +43: Invoke(VIRTUAL,Ljava_cup/terminal_set;,add,(Ljava_cup/terminal;)Z) (76) + Handles null at 59 +44: Pop(1) (79) + Handles null at 59 +45: Goto(51) (80) + Handles null at 59 +46: LocalLoad(I,1) (83) + Handles null at 59 +47: Constant(I,1) (83) + Handles null at 59 +48: BinaryOp(I,add) (83) + Handles null at 59 +49: LocalStore(I,1) (83) + Handles null at 59 +50: Goto(6) (86) + Handles null at 59 +51: LocalLoad(Ljava/lang/Object;,0) (89) + Handles null at 59 +52: Invoke(VIRTUAL,Ljava_cup/production;,first_set,()Ljava_cup/terminal_set;) (90) + Handles null at 59 +53: Constant(Ljava/lang/String;,"java_cup/production") (93) + Handles null at 59 +54: Constant(Ljava/lang/String;,"check_first_set()Ljava_cup/terminal_set;") (93) + Handles null at 59 +55: LocalLoad(Ljava/lang/Object;,0) (93) + Handles null at 59 +56: Constant(I,0) (93) + Handles null at 59 +57: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (93) + Handles null at 59 +58: Return(Ljava/lang/Object;) (93) + Handles null at 59 +59: Constant(Ljava/lang/String;,"java_cup/production") (0) +60: Constant(Ljava/lang/String;,"check_first_set()Ljava_cup/terminal_set;") (0) +61: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +62: Constant(I,1) (0) +63: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +64: Throw() (0) +Instrumenting equals (Ljava_cup/production;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (1) +3: Constant(I,0) (4) +4: Return(I) (5) +5: LocalLoad(Ljava/lang/Object;,1) (6) +6: Get(I,NONSTATIC,Ljava_cup/production;,_index) (7) +7: LocalLoad(Ljava/lang/Object;,0) (10) +8: Get(I,NONSTATIC,Ljava_cup/production;,_index) (11) +9: ConditionalBranch(I,ne,12) (14) +10: Constant(I,1) (17) +11: Goto(13) (18) +12: Constant(I,0) (21) +13: Return(I) (22) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/production;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 28 +5: Constant(L;,null) (1) + Handles null at 28 +6: ConditionalBranch(Ljava/lang/Object;,ne,14) (1) + Handles null at 28 +7: Constant(I,0) (4) + Handles null at 28 +8: Constant(Ljava/lang/String;,"java_cup/production") (5) + Handles null at 28 +9: Constant(Ljava/lang/String;,"equals(Ljava_cup/production;)Z") (5) + Handles null at 28 +10: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 28 +11: Constant(I,0) (5) + Handles null at 28 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 28 +13: Return(I) (5) + Handles null at 28 +14: LocalLoad(Ljava/lang/Object;,1) (6) + Handles null at 28 +15: Get(I,NONSTATIC,Ljava_cup/production;,_index) (7) + Handles null at 28 +16: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 28 +17: Get(I,NONSTATIC,Ljava_cup/production;,_index) (11) + Handles null at 28 +18: ConditionalBranch(I,ne,21) (14) + Handles null at 28 +19: Constant(I,1) (17) + Handles null at 28 +20: Goto(22) (18) + Handles null at 28 +21: Constant(I,0) (21) + Handles null at 28 +22: Constant(Ljava/lang/String;,"java_cup/production") (22) + Handles null at 28 +23: Constant(Ljava/lang/String;,"equals(Ljava_cup/production;)Z") (22) + Handles null at 28 +24: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 28 +25: Constant(I,0) (22) + Handles null at 28 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (22) + Handles null at 28 +27: Return(I) (22) + Handles null at 28 +28: Constant(Ljava/lang/String;,"java_cup/production") (0) +29: Constant(Ljava/lang/String;,"equals(Ljava_cup/production;)Z") (0) +30: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +31: Constant(I,1) (0) +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +33: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/production;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/production;) (11) +9: Invoke(VIRTUAL,Ljava_cup/production;,equals,(Ljava_cup/production;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/production;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/production") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/production;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/production;,equals,(Ljava_cup/production;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/production") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/production") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/production;,_index) (1) +2: Constant(I,13) (4) +3: BinaryOp(I,mul) (6) +4: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: Get(I,NONSTATIC,Ljava_cup/production;,_index) (1) + Handles null at 14 +6: Constant(I,13) (4) + Handles null at 14 +7: BinaryOp(I,mul) (6) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/production") (7) + Handles null at 14 +9: Constant(Ljava/lang/String;,"hashCode()I") (7) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 14 +11: Constant(I,0) (7) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 14 +13: Return(I) (7) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/production") (0) +15: Constant(Ljava/lang/String;,"hashCode()I") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) + Handles Ljava_cup/internal_error; at 123 +1: Dup(1,0) (3) + Handles Ljava_cup/internal_error; at 123 +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles Ljava_cup/internal_error; at 123 +3: Constant(Ljava/lang/String;,"production [") (7) + Handles Ljava_cup/internal_error; at 123 +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) + Handles Ljava_cup/internal_error; at 123 +5: LocalLoad(Ljava/lang/Object;,0) (12) + Handles Ljava_cup/internal_error; at 123 +6: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (13) + Handles Ljava_cup/internal_error; at 123 +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (16) + Handles Ljava_cup/internal_error; at 123 +8: Constant(Ljava/lang/String;,"]: ") (19) + Handles Ljava_cup/internal_error; at 123 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles Ljava_cup/internal_error; at 123 +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (24) + Handles Ljava_cup/internal_error; at 123 +11: LocalStore(Ljava/lang/Object;,1) (27) + Handles Ljava_cup/internal_error; at 123 +12: New(Ljava/lang/StringBuilder;,0) (28) + Handles Ljava_cup/internal_error; at 123 +13: Dup(1,0) (31) + Handles Ljava_cup/internal_error; at 123 +14: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (32) + Handles Ljava_cup/internal_error; at 123 +15: LocalLoad(Ljava/lang/Object;,1) (35) + Handles Ljava_cup/internal_error; at 123 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) + Handles Ljava_cup/internal_error; at 123 +17: LocalLoad(Ljava/lang/Object;,0) (39) + Handles Ljava_cup/internal_error; at 123 +18: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (40) + Handles Ljava_cup/internal_error; at 123 +19: Constant(L;,null) (43) + Handles Ljava_cup/internal_error; at 123 +20: ConditionalBranch(Ljava/lang/Object;,eq,25) (43) + Handles Ljava_cup/internal_error; at 123 +21: LocalLoad(Ljava/lang/Object;,0) (46) + Handles Ljava_cup/internal_error; at 123 +22: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (47) + Handles Ljava_cup/internal_error; at 123 +23: Invoke(VIRTUAL,Ljava_cup/symbol_part;,toString,()Ljava/lang/String;) (50) + Handles Ljava_cup/internal_error; at 123 +24: Goto(26) (53) + Handles Ljava_cup/internal_error; at 123 +25: Constant(Ljava/lang/String;,"$$NULL-LHS$$") (56) + Handles Ljava_cup/internal_error; at 123 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) + Handles Ljava_cup/internal_error; at 123 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (61) + Handles Ljava_cup/internal_error; at 123 +28: LocalStore(Ljava/lang/Object;,1) (64) + Handles Ljava_cup/internal_error; at 123 +29: New(Ljava/lang/StringBuilder;,0) (65) + Handles Ljava_cup/internal_error; at 123 +30: Dup(1,0) (68) + Handles Ljava_cup/internal_error; at 123 +31: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (69) + Handles Ljava_cup/internal_error; at 123 +32: LocalLoad(Ljava/lang/Object;,1) (72) + Handles Ljava_cup/internal_error; at 123 +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (73) + Handles Ljava_cup/internal_error; at 123 +34: Constant(Ljava/lang/String;," :: = ") (76) + Handles Ljava_cup/internal_error; at 123 +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (78) + Handles Ljava_cup/internal_error; at 123 +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (81) + Handles Ljava_cup/internal_error; at 123 +37: LocalStore(Ljava/lang/Object;,1) (84) + Handles Ljava_cup/internal_error; at 123 +38: Constant(I,0) (85) + Handles Ljava_cup/internal_error; at 123 +39: LocalStore(I,2) (86) + Handles Ljava_cup/internal_error; at 123 +40: LocalLoad(I,2) (87) + Handles Ljava_cup/internal_error; at 123 +41: LocalLoad(Ljava/lang/Object;,0) (88) + Handles Ljava_cup/internal_error; at 123 +42: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (89) + Handles Ljava_cup/internal_error; at 123 +43: ConditionalBranch(I,ge,62) (92) + Handles Ljava_cup/internal_error; at 123 +44: New(Ljava/lang/StringBuilder;,0) (95) + Handles Ljava_cup/internal_error; at 123 +45: Dup(1,0) (98) + Handles Ljava_cup/internal_error; at 123 +46: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (99) + Handles Ljava_cup/internal_error; at 123 +47: LocalLoad(Ljava/lang/Object;,1) (102) + Handles Ljava_cup/internal_error; at 123 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (103) + Handles Ljava_cup/internal_error; at 123 +49: LocalLoad(Ljava/lang/Object;,0) (106) + Handles Ljava_cup/internal_error; at 123 +50: LocalLoad(I,2) (107) + Handles Ljava_cup/internal_error; at 123 +51: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (108) + Handles Ljava_cup/internal_error; at 123 +52: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (111) + Handles Ljava_cup/internal_error; at 123 +53: Constant(Ljava/lang/String;," ") (114) + Handles Ljava_cup/internal_error; at 123 +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (116) + Handles Ljava_cup/internal_error; at 123 +55: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (119) + Handles Ljava_cup/internal_error; at 123 +56: LocalStore(Ljava/lang/Object;,1) (122) + Handles Ljava_cup/internal_error; at 123 +57: LocalLoad(I,2) (123) + Handles Ljava_cup/internal_error; at 123 +58: Constant(I,1) (123) + Handles Ljava_cup/internal_error; at 123 +59: BinaryOp(I,add) (123) + Handles Ljava_cup/internal_error; at 123 +60: LocalStore(I,2) (123) + Handles Ljava_cup/internal_error; at 123 +61: Goto(40) (126) + Handles Ljava_cup/internal_error; at 123 +62: New(Ljava/lang/StringBuilder;,0) (129) + Handles Ljava_cup/internal_error; at 123 +63: Dup(1,0) (132) + Handles Ljava_cup/internal_error; at 123 +64: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (133) + Handles Ljava_cup/internal_error; at 123 +65: LocalLoad(Ljava/lang/Object;,1) (136) + Handles Ljava_cup/internal_error; at 123 +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (137) + Handles Ljava_cup/internal_error; at 123 +67: Constant(Ljava/lang/String;,";") (140) + Handles Ljava_cup/internal_error; at 123 +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (142) + Handles Ljava_cup/internal_error; at 123 +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (145) + Handles Ljava_cup/internal_error; at 123 +70: LocalStore(Ljava/lang/Object;,1) (148) + Handles Ljava_cup/internal_error; at 123 +71: LocalLoad(Ljava/lang/Object;,0) (149) + Handles Ljava_cup/internal_error; at 123 +72: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (150) + Handles Ljava_cup/internal_error; at 123 +73: Constant(L;,null) (153) + Handles Ljava_cup/internal_error; at 123 +74: ConditionalBranch(Ljava/lang/Object;,eq,95) (153) + Handles Ljava_cup/internal_error; at 123 +75: LocalLoad(Ljava/lang/Object;,0) (156) + Handles Ljava_cup/internal_error; at 123 +76: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (157) + Handles Ljava_cup/internal_error; at 123 +77: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (160) + Handles Ljava_cup/internal_error; at 123 +78: Constant(L;,null) (163) + Handles Ljava_cup/internal_error; at 123 +79: ConditionalBranch(Ljava/lang/Object;,eq,95) (163) + Handles Ljava_cup/internal_error; at 123 +80: New(Ljava/lang/StringBuilder;,0) (166) + Handles Ljava_cup/internal_error; at 123 +81: Dup(1,0) (169) + Handles Ljava_cup/internal_error; at 123 +82: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (170) + Handles Ljava_cup/internal_error; at 123 +83: LocalLoad(Ljava/lang/Object;,1) (173) + Handles Ljava_cup/internal_error; at 123 +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (174) + Handles Ljava_cup/internal_error; at 123 +85: Constant(Ljava/lang/String;," {") (177) + Handles Ljava_cup/internal_error; at 123 +86: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (179) + Handles Ljava_cup/internal_error; at 123 +87: LocalLoad(Ljava/lang/Object;,0) (182) + Handles Ljava_cup/internal_error; at 123 +88: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (183) + Handles Ljava_cup/internal_error; at 123 +89: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (186) + Handles Ljava_cup/internal_error; at 123 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (189) + Handles Ljava_cup/internal_error; at 123 +91: Constant(Ljava/lang/String;,"}") (192) + Handles Ljava_cup/internal_error; at 123 +92: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (194) + Handles Ljava_cup/internal_error; at 123 +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (197) + Handles Ljava_cup/internal_error; at 123 +94: LocalStore(Ljava/lang/Object;,1) (200) + Handles Ljava_cup/internal_error; at 123 +95: LocalLoad(Ljava/lang/Object;,0) (201) + Handles Ljava_cup/internal_error; at 123 +96: Invoke(VIRTUAL,Ljava_cup/production;,nullable_known,()Z) (202) + Handles Ljava_cup/internal_error; at 123 +97: Constant(I,0) (205) + Handles Ljava_cup/internal_error; at 123 +98: ConditionalBranch(I,eq,122) (205) + Handles Ljava_cup/internal_error; at 123 +99: LocalLoad(Ljava/lang/Object;,0) (208) + Handles Ljava_cup/internal_error; at 123 +100: Invoke(VIRTUAL,Ljava_cup/production;,nullable,()Z) (209) + Handles Ljava_cup/internal_error; at 123 +101: Constant(I,0) (212) + Handles Ljava_cup/internal_error; at 123 +102: ConditionalBranch(I,eq,113) (212) + Handles Ljava_cup/internal_error; at 123 +103: New(Ljava/lang/StringBuilder;,0) (215) + Handles Ljava_cup/internal_error; at 123 +104: Dup(1,0) (218) + Handles Ljava_cup/internal_error; at 123 +105: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (219) + Handles Ljava_cup/internal_error; at 123 +106: LocalLoad(Ljava/lang/Object;,1) (222) + Handles Ljava_cup/internal_error; at 123 +107: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (223) + Handles Ljava_cup/internal_error; at 123 +108: Constant(Ljava/lang/String;,"[NULLABLE]") (226) + Handles Ljava_cup/internal_error; at 123 +109: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (228) + Handles Ljava_cup/internal_error; at 123 +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (231) + Handles Ljava_cup/internal_error; at 123 +111: LocalStore(Ljava/lang/Object;,1) (234) + Handles Ljava_cup/internal_error; at 123 +112: Goto(122) (235) + Handles Ljava_cup/internal_error; at 123 +113: New(Ljava/lang/StringBuilder;,0) (238) + Handles Ljava_cup/internal_error; at 123 +114: Dup(1,0) (241) + Handles Ljava_cup/internal_error; at 123 +115: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (242) + Handles Ljava_cup/internal_error; at 123 +116: LocalLoad(Ljava/lang/Object;,1) (245) + Handles Ljava_cup/internal_error; at 123 +117: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (246) + Handles Ljava_cup/internal_error; at 123 +118: Constant(Ljava/lang/String;,"[NOT NULLABLE]") (249) + Handles Ljava_cup/internal_error; at 123 +119: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) + Handles Ljava_cup/internal_error; at 123 +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (254) + Handles Ljava_cup/internal_error; at 123 +121: LocalStore(Ljava/lang/Object;,1) (257) + Handles Ljava_cup/internal_error; at 123 +122: Goto(128) (258) +123: LocalStore(Ljava/lang/Object;,2) (261) +124: LocalLoad(Ljava/lang/Object;,2) (262) +125: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (263) +126: Constant(L;,null) (266) +127: LocalStore(Ljava/lang/Object;,1) (267) +128: LocalLoad(Ljava/lang/Object;,1) (268) +129: Return(Ljava/lang/Object;) (269) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +5: Dup(1,0) (3) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +7: Constant(Ljava/lang/String;,"production [") (7) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +9: LocalLoad(Ljava/lang/Object;,0) (12) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +10: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (13) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (16) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +12: Constant(Ljava/lang/String;,"]: ") (19) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (21) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (24) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +15: LocalStore(Ljava/lang/Object;,1) (27) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +16: New(Ljava/lang/StringBuilder;,0) (28) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +17: Dup(1,0) (31) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +18: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (32) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +19: LocalLoad(Ljava/lang/Object;,1) (35) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +21: LocalLoad(Ljava/lang/Object;,0) (39) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +22: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (40) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +23: Constant(L;,null) (43) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +24: ConditionalBranch(Ljava/lang/Object;,eq,29) (43) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +25: LocalLoad(Ljava/lang/Object;,0) (46) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +26: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (47) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +27: Invoke(VIRTUAL,Ljava_cup/symbol_part;,toString,()Ljava/lang/String;) (50) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +28: Goto(30) (53) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +29: Constant(Ljava/lang/String;,"$$NULL-LHS$$") (56) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (61) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +32: LocalStore(Ljava/lang/Object;,1) (64) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +33: New(Ljava/lang/StringBuilder;,0) (65) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +34: Dup(1,0) (68) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +35: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (69) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +36: LocalLoad(Ljava/lang/Object;,1) (72) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (73) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +38: Constant(Ljava/lang/String;," :: = ") (76) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (78) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (81) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +41: LocalStore(Ljava/lang/Object;,1) (84) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +42: Constant(I,0) (85) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +43: LocalStore(I,2) (86) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +44: LocalLoad(I,2) (87) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +45: LocalLoad(Ljava/lang/Object;,0) (88) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +46: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (89) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +47: ConditionalBranch(I,ge,66) (92) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +48: New(Ljava/lang/StringBuilder;,0) (95) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +49: Dup(1,0) (98) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +50: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (99) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +51: LocalLoad(Ljava/lang/Object;,1) (102) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +52: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (103) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +53: LocalLoad(Ljava/lang/Object;,0) (106) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +54: LocalLoad(I,2) (107) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +55: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (108) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +56: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (111) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +57: Constant(Ljava/lang/String;," ") (114) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +58: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (116) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +59: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (119) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +60: LocalStore(Ljava/lang/Object;,1) (122) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +61: LocalLoad(I,2) (123) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +62: Constant(I,1) (123) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +63: BinaryOp(I,add) (123) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +64: LocalStore(I,2) (123) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +65: Goto(44) (126) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +66: New(Ljava/lang/StringBuilder;,0) (129) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +67: Dup(1,0) (132) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +68: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (133) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +69: LocalLoad(Ljava/lang/Object;,1) (136) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +70: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (137) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +71: Constant(Ljava/lang/String;,";") (140) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +72: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (142) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +73: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (145) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +74: LocalStore(Ljava/lang/Object;,1) (148) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +75: LocalLoad(Ljava/lang/Object;,0) (149) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +76: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (150) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +77: Constant(L;,null) (153) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +78: ConditionalBranch(Ljava/lang/Object;,eq,99) (153) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +79: LocalLoad(Ljava/lang/Object;,0) (156) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +80: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (157) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +81: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (160) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +82: Constant(L;,null) (163) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +83: ConditionalBranch(Ljava/lang/Object;,eq,99) (163) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +84: New(Ljava/lang/StringBuilder;,0) (166) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +85: Dup(1,0) (169) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +86: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (170) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +87: LocalLoad(Ljava/lang/Object;,1) (173) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (174) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +89: Constant(Ljava/lang/String;," {") (177) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +90: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (179) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +91: LocalLoad(Ljava/lang/Object;,0) (182) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +92: Invoke(VIRTUAL,Ljava_cup/production;,action,()Ljava_cup/action_part;) (183) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +93: Invoke(VIRTUAL,Ljava_cup/action_part;,code_string,()Ljava/lang/String;) (186) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +94: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (189) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +95: Constant(Ljava/lang/String;,"}") (192) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +96: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (194) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +97: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (197) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +98: LocalStore(Ljava/lang/Object;,1) (200) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +99: LocalLoad(Ljava/lang/Object;,0) (201) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +100: Invoke(VIRTUAL,Ljava_cup/production;,nullable_known,()Z) (202) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +101: Constant(I,0) (205) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +102: ConditionalBranch(I,eq,126) (205) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +103: LocalLoad(Ljava/lang/Object;,0) (208) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +104: Invoke(VIRTUAL,Ljava_cup/production;,nullable,()Z) (209) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +105: Constant(I,0) (212) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +106: ConditionalBranch(I,eq,117) (212) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +107: New(Ljava/lang/StringBuilder;,0) (215) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +108: Dup(1,0) (218) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +109: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (219) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +110: LocalLoad(Ljava/lang/Object;,1) (222) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (223) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +112: Constant(Ljava/lang/String;,"[NULLABLE]") (226) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +113: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (228) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +114: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (231) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +115: LocalStore(Ljava/lang/Object;,1) (234) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +116: Goto(126) (235) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +117: New(Ljava/lang/StringBuilder;,0) (238) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +118: Dup(1,0) (241) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +119: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (242) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +120: LocalLoad(Ljava/lang/Object;,1) (245) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +121: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (246) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +122: Constant(Ljava/lang/String;,"[NOT NULLABLE]") (249) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +123: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (251) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +124: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (254) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +125: LocalStore(Ljava/lang/Object;,1) (257) + Handles Ljava_cup/internal_error; at 127 + Handles null at 139 +126: Goto(132) (258) + Handles null at 139 +127: LocalStore(Ljava/lang/Object;,2) (261) + Handles null at 139 +128: LocalLoad(Ljava/lang/Object;,2) (262) + Handles null at 139 +129: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (263) + Handles null at 139 +130: Constant(L;,null) (266) + Handles null at 139 +131: LocalStore(Ljava/lang/Object;,1) (267) + Handles null at 139 +132: LocalLoad(Ljava/lang/Object;,1) (268) + Handles null at 139 +133: Constant(Ljava/lang/String;,"java_cup/production") (269) + Handles null at 139 +134: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (269) + Handles null at 139 +135: LocalLoad(Ljava/lang/Object;,0) (269) + Handles null at 139 +136: Constant(I,0) (269) + Handles null at 139 +137: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (269) + Handles null at 139 +138: Return(Ljava/lang/Object;) (269) + Handles null at 139 +139: Constant(Ljava/lang/String;,"java_cup/production") (0) +140: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +141: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +142: Constant(I,1) (0) +143: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +144: Throw() (0) +Instrumenting to_simple_string ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1) +2: Constant(L;,null) (4) +3: ConditionalBranch(Ljava/lang/Object;,eq,9) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (8) +6: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (11) +7: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (14) +8: Goto(10) (17) +9: Constant(Ljava/lang/String;,"NULL_LHS") (20) +10: LocalStore(Ljava/lang/Object;,1) (22) +11: New(Ljava/lang/StringBuilder;,0) (23) +12: Dup(1,0) (26) +13: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) +14: LocalLoad(Ljava/lang/Object;,1) (30) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) +16: Constant(Ljava/lang/String;," ::= ") (34) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (39) +19: LocalStore(Ljava/lang/Object;,1) (42) +20: Constant(I,0) (43) +21: LocalStore(I,2) (44) +22: LocalLoad(I,2) (45) +23: LocalLoad(Ljava/lang/Object;,0) (46) +24: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (47) +25: ConditionalBranch(I,ge,53) (50) +26: LocalLoad(Ljava/lang/Object;,0) (53) +27: LocalLoad(I,2) (54) +28: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (55) +29: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (58) +30: Constant(I,0) (61) +31: ConditionalBranch(I,ne,48) (61) +32: New(Ljava/lang/StringBuilder;,0) (64) +33: Dup(1,0) (67) +34: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (68) +35: LocalLoad(Ljava/lang/Object;,1) (71) +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (72) +37: LocalLoad(Ljava/lang/Object;,0) (75) +38: LocalLoad(I,2) (76) +39: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (77) +40: CheckCast(Ljava_cup/symbol_part;) (80) +41: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (83) +42: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (86) +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (89) +44: Constant(Ljava/lang/String;," ") (92) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (94) +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (97) +47: LocalStore(Ljava/lang/Object;,1) (100) +48: LocalLoad(I,2) (101) +49: Constant(I,1) (101) +50: BinaryOp(I,add) (101) +51: LocalStore(I,2) (101) +52: Goto(22) (104) +53: LocalLoad(Ljava/lang/Object;,1) (107) +54: Return(Ljava/lang/Object;) (108) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"to_simple_string()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 64 +5: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (1) + Handles null at 64 +6: Constant(L;,null) (4) + Handles null at 64 +7: ConditionalBranch(Ljava/lang/Object;,eq,13) (4) + Handles null at 64 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 64 +9: Invoke(VIRTUAL,Ljava_cup/production;,lhs,()Ljava_cup/symbol_part;) (8) + Handles null at 64 +10: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (11) + Handles null at 64 +11: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (14) + Handles null at 64 +12: Goto(14) (17) + Handles null at 64 +13: Constant(Ljava/lang/String;,"NULL_LHS") (20) + Handles null at 64 +14: LocalStore(Ljava/lang/Object;,1) (22) + Handles null at 64 +15: New(Ljava/lang/StringBuilder;,0) (23) + Handles null at 64 +16: Dup(1,0) (26) + Handles null at 64 +17: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) + Handles null at 64 +18: LocalLoad(Ljava/lang/Object;,1) (30) + Handles null at 64 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) + Handles null at 64 +20: Constant(Ljava/lang/String;," ::= ") (34) + Handles null at 64 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) + Handles null at 64 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (39) + Handles null at 64 +23: LocalStore(Ljava/lang/Object;,1) (42) + Handles null at 64 +24: Constant(I,0) (43) + Handles null at 64 +25: LocalStore(I,2) (44) + Handles null at 64 +26: LocalLoad(I,2) (45) + Handles null at 64 +27: LocalLoad(Ljava/lang/Object;,0) (46) + Handles null at 64 +28: Invoke(VIRTUAL,Ljava_cup/production;,rhs_length,()I) (47) + Handles null at 64 +29: ConditionalBranch(I,ge,57) (50) + Handles null at 64 +30: LocalLoad(Ljava/lang/Object;,0) (53) + Handles null at 64 +31: LocalLoad(I,2) (54) + Handles null at 64 +32: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (55) + Handles null at 64 +33: Invoke(VIRTUAL,Ljava_cup/production_part;,is_action,()Z) (58) + Handles null at 64 +34: Constant(I,0) (61) + Handles null at 64 +35: ConditionalBranch(I,ne,52) (61) + Handles null at 64 +36: New(Ljava/lang/StringBuilder;,0) (64) + Handles null at 64 +37: Dup(1,0) (67) + Handles null at 64 +38: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (68) + Handles null at 64 +39: LocalLoad(Ljava/lang/Object;,1) (71) + Handles null at 64 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (72) + Handles null at 64 +41: LocalLoad(Ljava/lang/Object;,0) (75) + Handles null at 64 +42: LocalLoad(I,2) (76) + Handles null at 64 +43: Invoke(VIRTUAL,Ljava_cup/production;,rhs,(I)Ljava_cup/production_part;) (77) + Handles null at 64 +44: CheckCast(Ljava_cup/symbol_part;) (80) + Handles null at 64 +45: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (83) + Handles null at 64 +46: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (86) + Handles null at 64 +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (89) + Handles null at 64 +48: Constant(Ljava/lang/String;," ") (92) + Handles null at 64 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (94) + Handles null at 64 +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (97) + Handles null at 64 +51: LocalStore(Ljava/lang/Object;,1) (100) + Handles null at 64 +52: LocalLoad(I,2) (101) + Handles null at 64 +53: Constant(I,1) (101) + Handles null at 64 +54: BinaryOp(I,add) (101) + Handles null at 64 +55: LocalStore(I,2) (101) + Handles null at 64 +56: Goto(26) (104) + Handles null at 64 +57: LocalLoad(Ljava/lang/Object;,1) (107) + Handles null at 64 +58: Constant(Ljava/lang/String;,"java_cup/production") (108) + Handles null at 64 +59: Constant(Ljava/lang/String;,"to_simple_string()Ljava/lang/String;") (108) + Handles null at 64 +60: LocalLoad(Ljava/lang/Object;,0) (108) + Handles null at 64 +61: Constant(I,0) (108) + Handles null at 64 +62: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (108) + Handles null at 64 +63: Return(Ljava/lang/Object;) (108) + Handles null at 64 +64: Constant(Ljava/lang/String;,"java_cup/production") (0) +65: Constant(Ljava/lang/String;,"to_simple_string()Ljava/lang/String;") (0) +66: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +67: Constant(I,1) (0) +68: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +69: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: New(Ljava/util/Hashtable;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (4) +3: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (7) +4: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/Hashtable;,0) (0) + Handles null at 14 +5: Dup(1,0) (3) + Handles null at 14 +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (4) + Handles null at 14 +7: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/production;,_all) (7) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/production") (10) + Handles null at 14 +9: Constant(Ljava/lang/String;,"()V") (10) + Handles null at 14 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (10) + Handles null at 14 +11: Constant(I,0) (10) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 14 +13: Return(V) (10) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/production") (0) +15: Constant(Ljava/lang/String;,"()V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Class: java_cup/production_part +Instrumenting (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/production_part;,_label) (6) +5: Return(V) (9) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 15 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 15 +8: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/production_part;,_label) (6) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/production_part") (9) + Handles null at 15 +10: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (9) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 15 +12: Constant(I,0) (9) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (9) + Handles null at 15 +14: Return(V) (9) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +16: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting label ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/production_part;,_label) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +1: Constant(Ljava/lang/String;,"label()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/production_part;,_label) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/production_part") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"label()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +13: Constant(Ljava/lang/String;,"label()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting equals (Ljava_cup/production_part;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (1) +3: Constant(I,0) (4) +4: Return(I) (5) +5: LocalLoad(Ljava/lang/Object;,0) (6) +6: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (7) +7: Constant(L;,null) (10) +8: ConditionalBranch(Ljava/lang/Object;,eq,15) (10) +9: LocalLoad(Ljava/lang/Object;,0) (13) +10: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (14) +11: LocalLoad(Ljava/lang/Object;,1) (17) +12: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (18) +13: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (21) +14: Return(I) (24) +15: LocalLoad(Ljava/lang/Object;,1) (25) +16: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (26) +17: Constant(L;,null) (29) +18: ConditionalBranch(Ljava/lang/Object;,ne,21) (29) +19: Constant(I,1) (32) +20: Goto(22) (33) +21: Constant(I,0) (36) +22: Return(I) (37) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/production_part;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 42 +5: Constant(L;,null) (1) + Handles null at 42 +6: ConditionalBranch(Ljava/lang/Object;,ne,14) (1) + Handles null at 42 +7: Constant(I,0) (4) + Handles null at 42 +8: Constant(Ljava/lang/String;,"java_cup/production_part") (5) + Handles null at 42 +9: Constant(Ljava/lang/String;,"equals(Ljava_cup/production_part;)Z") (5) + Handles null at 42 +10: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 42 +11: Constant(I,0) (5) + Handles null at 42 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 42 +13: Return(I) (5) + Handles null at 42 +14: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 42 +15: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (7) + Handles null at 42 +16: Constant(L;,null) (10) + Handles null at 42 +17: ConditionalBranch(Ljava/lang/Object;,eq,29) (10) + Handles null at 42 +18: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 42 +19: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (14) + Handles null at 42 +20: LocalLoad(Ljava/lang/Object;,1) (17) + Handles null at 42 +21: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (18) + Handles null at 42 +22: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (21) + Handles null at 42 +23: Constant(Ljava/lang/String;,"java_cup/production_part") (24) + Handles null at 42 +24: Constant(Ljava/lang/String;,"equals(Ljava_cup/production_part;)Z") (24) + Handles null at 42 +25: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 42 +26: Constant(I,0) (24) + Handles null at 42 +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (24) + Handles null at 42 +28: Return(I) (24) + Handles null at 42 +29: LocalLoad(Ljava/lang/Object;,1) (25) + Handles null at 42 +30: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (26) + Handles null at 42 +31: Constant(L;,null) (29) + Handles null at 42 +32: ConditionalBranch(Ljava/lang/Object;,ne,35) (29) + Handles null at 42 +33: Constant(I,1) (32) + Handles null at 42 +34: Goto(36) (33) + Handles null at 42 +35: Constant(I,0) (36) + Handles null at 42 +36: Constant(Ljava/lang/String;,"java_cup/production_part") (37) + Handles null at 42 +37: Constant(Ljava/lang/String;,"equals(Ljava_cup/production_part;)Z") (37) + Handles null at 42 +38: LocalLoad(Ljava/lang/Object;,0) (37) + Handles null at 42 +39: Constant(I,0) (37) + Handles null at 42 +40: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (37) + Handles null at 42 +41: Return(I) (37) + Handles null at 42 +42: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +43: Constant(Ljava/lang/String;,"equals(Ljava_cup/production_part;)Z") (0) +44: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +45: Constant(I,1) (0) +46: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +47: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/production_part;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/production_part;) (11) +9: Invoke(VIRTUAL,Ljava_cup/production_part;,equals,(Ljava_cup/production_part;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/production_part;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/production_part") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/production_part;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/production_part;,equals,(Ljava_cup/production_part;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/production_part") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (1) +2: Constant(L;,null) (4) +3: ConditionalBranch(Ljava/lang/Object;,ne,6) (4) +4: Constant(I,0) (7) +5: Goto(9) (8) +6: LocalLoad(Ljava/lang/Object;,0) (11) +7: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (12) +8: Invoke(VIRTUAL,Ljava/lang/String;,hashCode,()I) (15) +9: Return(I) (18) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 19 +5: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (1) + Handles null at 19 +6: Constant(L;,null) (4) + Handles null at 19 +7: ConditionalBranch(Ljava/lang/Object;,ne,10) (4) + Handles null at 19 +8: Constant(I,0) (7) + Handles null at 19 +9: Goto(13) (8) + Handles null at 19 +10: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 19 +11: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (12) + Handles null at 19 +12: Invoke(VIRTUAL,Ljava/lang/String;,hashCode,()I) (15) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/production_part") (18) + Handles null at 19 +14: Constant(Ljava/lang/String;,"hashCode()I") (18) + Handles null at 19 +15: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 19 +16: Constant(I,0) (18) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (18) + Handles null at 19 +18: Return(I) (18) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +20: Constant(Ljava/lang/String;,"hashCode()I") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (1) +2: Constant(L;,null) (4) +3: ConditionalBranch(Ljava/lang/Object;,eq,14) (4) +4: New(Ljava/lang/StringBuilder;,0) (7) +5: Dup(1,0) (10) +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (11) +7: LocalLoad(Ljava/lang/Object;,0) (14) +8: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (15) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (18) +10: Constant(Ljava/lang/String;,":") (21) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (26) +13: Return(Ljava/lang/Object;) (29) +14: Constant(Ljava/lang/String;," ") (30) +15: Return(Ljava/lang/Object;) (32) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 30 +5: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (1) + Handles null at 30 +6: Constant(L;,null) (4) + Handles null at 30 +7: ConditionalBranch(Ljava/lang/Object;,eq,23) (4) + Handles null at 30 +8: New(Ljava/lang/StringBuilder;,0) (7) + Handles null at 30 +9: Dup(1,0) (10) + Handles null at 30 +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (11) + Handles null at 30 +11: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 30 +12: Invoke(VIRTUAL,Ljava_cup/production_part;,label,()Ljava/lang/String;) (15) + Handles null at 30 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (18) + Handles null at 30 +14: Constant(Ljava/lang/String;,":") (21) + Handles null at 30 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) + Handles null at 30 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (26) + Handles null at 30 +17: Constant(Ljava/lang/String;,"java_cup/production_part") (29) + Handles null at 30 +18: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (29) + Handles null at 30 +19: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 30 +20: Constant(I,0) (29) + Handles null at 30 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (29) + Handles null at 30 +22: Return(Ljava/lang/Object;) (29) + Handles null at 30 +23: Constant(Ljava/lang/String;," ") (30) + Handles null at 30 +24: Constant(Ljava/lang/String;,"java_cup/production_part") (32) + Handles null at 30 +25: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (32) + Handles null at 30 +26: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 30 +27: Constant(I,0) (32) + Handles null at 30 +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (32) + Handles null at 30 +29: Return(Ljava/lang/Object;) (32) + Handles null at 30 +30: Constant(Ljava/lang/String;,"java_cup/production_part") (0) +31: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +32: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +33: Constant(I,1) (0) +34: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +35: Throw() (0) +Class: java_cup/reduce_action +Instrumenting (Ljava_cup/production;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/parse_action;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: Constant(L;,null) (5) +4: ConditionalBranch(Ljava/lang/Object;,ne,10) (5) +5: New(Ljava_cup/internal_error;,0) (8) +6: Dup(1,0) (11) +7: Constant(Ljava/lang/String;,"Attempt to create a reduce_action with a null production") (12) +8: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (14) +9: Throw() (17) +10: LocalLoad(Ljava/lang/Object;,0) (18) +11: LocalLoad(Ljava/lang/Object;,1) (19) +12: Put(Ljava_cup/production;,NONSTATIC,Ljava_cup/reduce_action;,_reduce_with) (20) +13: Return(V) (23) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 23 +5: Invoke(SPECIAL,Ljava_cup/parse_action;,,()V) (1) + Handles null at 23 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 23 +7: Constant(L;,null) (5) + Handles null at 23 +8: ConditionalBranch(Ljava/lang/Object;,ne,14) (5) + Handles null at 23 +9: New(Ljava_cup/internal_error;,0) (8) + Handles null at 23 +10: Dup(1,0) (11) + Handles null at 23 +11: Constant(Ljava/lang/String;,"Attempt to create a reduce_action with a null production") (12) + Handles null at 23 +12: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (14) + Handles null at 23 +13: Throw() (17) + Handles null at 23 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 23 +15: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 23 +16: Put(Ljava_cup/production;,NONSTATIC,Ljava_cup/reduce_action;,_reduce_with) (20) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/reduce_action") (23) + Handles null at 23 +18: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (23) + Handles null at 23 +19: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 23 +20: Constant(I,0) (23) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (23) + Handles null at 23 +22: Return(V) (23) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +24: Constant(Ljava/lang/String;,"(Ljava_cup/production;)V") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting reduce_with ()Ljava_cup/production;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/reduce_action;,_reduce_with) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +1: Constant(Ljava/lang/String;,"reduce_with()Ljava_cup/production;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/production;,NONSTATIC,Ljava_cup/reduce_action;,_reduce_with) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/reduce_action") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"reduce_with()Ljava_cup/production;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +13: Constant(Ljava/lang/String;,"reduce_with()Ljava_cup/production;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting kind ()I: +Initial ShrikeBT code: +0: Constant(I,2) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +1: Constant(Ljava/lang/String;,"kind()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,2) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/reduce_action") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"kind()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +12: Constant(Ljava/lang/String;,"kind()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting equals (Ljava_cup/reduce_action;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,10) (1) +3: LocalLoad(Ljava/lang/Object;,1) (4) +4: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (5) +5: LocalLoad(Ljava/lang/Object;,0) (8) +6: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (9) +7: ConditionalBranch(Ljava/lang/Object;,ne,10) (12) +8: Constant(I,1) (15) +9: Goto(11) (16) +10: Constant(I,0) (19) +11: Return(I) (20) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/reduce_action;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 21 +5: Constant(L;,null) (1) + Handles null at 21 +6: ConditionalBranch(Ljava/lang/Object;,eq,14) (1) + Handles null at 21 +7: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 21 +8: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (5) + Handles null at 21 +9: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 21 +10: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (9) + Handles null at 21 +11: ConditionalBranch(Ljava/lang/Object;,ne,14) (12) + Handles null at 21 +12: Constant(I,1) (15) + Handles null at 21 +13: Goto(15) (16) + Handles null at 21 +14: Constant(I,0) (19) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/reduce_action") (20) + Handles null at 21 +16: Constant(Ljava/lang/String;,"equals(Ljava_cup/reduce_action;)Z") (20) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 21 +18: Constant(I,0) (20) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (20) + Handles null at 21 +20: Return(I) (20) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +22: Constant(Ljava/lang/String;,"equals(Ljava_cup/reduce_action;)Z") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/reduce_action;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,9) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: LocalLoad(Ljava/lang/Object;,1) (8) +6: CheckCast(Ljava_cup/reduce_action;) (9) +7: Invoke(VIRTUAL,Ljava_cup/reduce_action;,equals,(Ljava_cup/reduce_action;)Z) (12) +8: Return(I) (15) +9: Constant(I,0) (16) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/reduce_action;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,eq,18) (4) + Handles null at 25 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 25 +9: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 25 +10: CheckCast(Ljava_cup/reduce_action;) (9) + Handles null at 25 +11: Invoke(VIRTUAL,Ljava_cup/reduce_action;,equals,(Ljava_cup/reduce_action;)Z) (12) + Handles null at 25 +12: Constant(Ljava/lang/String;,"java_cup/reduce_action") (15) + Handles null at 25 +13: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (15) + Handles null at 25 +14: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 25 +15: Constant(I,0) (15) + Handles null at 25 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (15) + Handles null at 25 +17: Return(I) (15) + Handles null at 25 +18: Constant(I,0) (16) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/reduce_action") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (1) +2: Invoke(VIRTUAL,Ljava_cup/production;,hashCode,()I) (4) +3: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava_cup/production;,hashCode,()I) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/reduce_action") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"hashCode()I") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(I) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +14: Constant(Ljava/lang/String;,"hashCode()I") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Constant(Ljava/lang/String;,"REDUCE(with prod ") (7) +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) +5: LocalLoad(Ljava/lang/Object;,0) (12) +6: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (13) +7: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (16) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (19) +9: Constant(Ljava/lang/String;,")") (22) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (24) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (27) +12: Return(Ljava/lang/Object;) (30) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 22 +5: Dup(1,0) (3) + Handles null at 22 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 22 +7: Constant(Ljava/lang/String;,"REDUCE(with prod ") (7) + Handles null at 22 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) + Handles null at 22 +9: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 22 +10: Invoke(VIRTUAL,Ljava_cup/reduce_action;,reduce_with,()Ljava_cup/production;) (13) + Handles null at 22 +11: Invoke(VIRTUAL,Ljava_cup/production;,index,()I) (16) + Handles null at 22 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (19) + Handles null at 22 +13: Constant(Ljava/lang/String;,")") (22) + Handles null at 22 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (24) + Handles null at 22 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (27) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/reduce_action") (30) + Handles null at 22 +17: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (30) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 22 +19: Constant(I,0) (30) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (30) + Handles null at 22 +21: Return(Ljava/lang/Object;) (30) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/reduce_action") (0) +23: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Class: java_cup/runtime/ComplexSymbolFactory$ComplexSymbol +Instrumenting (Ljava/lang/String;I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,2) (1) +2: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(I)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: LocalLoad(Ljava/lang/Object;,1) (6) +5: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (7) +6: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;I)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(I,2) (1) + Handles null at 16 +6: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(I)V) (2) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,1) (6) + Handles null at 16 +9: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(Ljava/lang/String;I)V") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(V) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +17: Constant(Ljava/lang/String;,"(Ljava/lang/String;I)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting (Ljava/lang/String;ILjava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,2) (1) +2: LocalLoad(Ljava/lang/Object;,3) (2) +3: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava/lang/Object;)V) (3) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: LocalLoad(Ljava/lang/Object;,1) (7) +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (8) +7: Return(V) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava/lang/Object;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 17 +5: LocalLoad(I,2) (1) + Handles null at 17 +6: LocalLoad(Ljava/lang/Object;,3) (2) + Handles null at 17 +7: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava/lang/Object;)V) (3) + Handles null at 17 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 17 +9: LocalLoad(Ljava/lang/Object;,1) (7) + Handles null at 17 +10: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (8) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (11) + Handles null at 17 +12: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava/lang/Object;)V") (11) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 17 +14: Constant(I,0) (11) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 17 +16: Return(V) (11) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +18: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava/lang/Object;)V") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (1) +2: Constant(L;,null) (4) +3: ConditionalBranch(Ljava/lang/Object;,eq,8) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (8) +6: Constant(L;,null) (11) +7: ConditionalBranch(Ljava/lang/Object;,ne,18) (11) +8: New(Ljava/lang/StringBuilder;,0) (14) +9: Dup(1,0) (17) +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (18) +11: Constant(Ljava/lang/String;,"Symbol: ") (21) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) +13: LocalLoad(Ljava/lang/Object;,0) (26) +14: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (27) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (30) +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (33) +17: Return(Ljava/lang/Object;) (36) +18: New(Ljava/lang/StringBuilder;,0) (37) +19: Dup(1,0) (40) +20: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (41) +21: Constant(Ljava/lang/String;,"Symbol: ") (44) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (46) +23: LocalLoad(Ljava/lang/Object;,0) (49) +24: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (50) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (53) +26: Constant(Ljava/lang/String;," (") (56) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) +28: LocalLoad(Ljava/lang/Object;,0) (61) +29: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (62) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (65) +31: Constant(Ljava/lang/String;," - ") (68) +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (70) +33: LocalLoad(Ljava/lang/Object;,0) (73) +34: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (74) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (77) +36: Constant(Ljava/lang/String;,")") (80) +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (82) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (85) +39: Return(Ljava/lang/Object;) (88) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 54 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (1) + Handles null at 54 +6: Constant(L;,null) (4) + Handles null at 54 +7: ConditionalBranch(Ljava/lang/Object;,eq,12) (4) + Handles null at 54 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 54 +9: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (8) + Handles null at 54 +10: Constant(L;,null) (11) + Handles null at 54 +11: ConditionalBranch(Ljava/lang/Object;,ne,27) (11) + Handles null at 54 +12: New(Ljava/lang/StringBuilder;,0) (14) + Handles null at 54 +13: Dup(1,0) (17) + Handles null at 54 +14: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (18) + Handles null at 54 +15: Constant(Ljava/lang/String;,"Symbol: ") (21) + Handles null at 54 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) + Handles null at 54 +17: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 54 +18: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (27) + Handles null at 54 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (30) + Handles null at 54 +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (33) + Handles null at 54 +21: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (36) + Handles null at 54 +22: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (36) + Handles null at 54 +23: LocalLoad(Ljava/lang/Object;,0) (36) + Handles null at 54 +24: Constant(I,0) (36) + Handles null at 54 +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (36) + Handles null at 54 +26: Return(Ljava/lang/Object;) (36) + Handles null at 54 +27: New(Ljava/lang/StringBuilder;,0) (37) + Handles null at 54 +28: Dup(1,0) (40) + Handles null at 54 +29: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (41) + Handles null at 54 +30: Constant(Ljava/lang/String;,"Symbol: ") (44) + Handles null at 54 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (46) + Handles null at 54 +32: LocalLoad(Ljava/lang/Object;,0) (49) + Handles null at 54 +33: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (50) + Handles null at 54 +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (53) + Handles null at 54 +35: Constant(Ljava/lang/String;," (") (56) + Handles null at 54 +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) + Handles null at 54 +37: LocalLoad(Ljava/lang/Object;,0) (61) + Handles null at 54 +38: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (62) + Handles null at 54 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (65) + Handles null at 54 +40: Constant(Ljava/lang/String;," - ") (68) + Handles null at 54 +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (70) + Handles null at 54 +42: LocalLoad(Ljava/lang/Object;,0) (73) + Handles null at 54 +43: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (74) + Handles null at 54 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (77) + Handles null at 54 +45: Constant(Ljava/lang/String;,")") (80) + Handles null at 54 +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (82) + Handles null at 54 +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (85) + Handles null at 54 +48: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (88) + Handles null at 54 +49: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (88) + Handles null at 54 +50: LocalLoad(Ljava/lang/Object;,0) (88) + Handles null at 54 +51: Constant(I,0) (88) + Handles null at 54 +52: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (88) + Handles null at 54 +53: Return(Ljava/lang/Object;) (88) + Handles null at 54 +54: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +55: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +56: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +57: Constant(I,1) (0) +58: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +59: Throw() (0) +Instrumenting getName ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"getName()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getName()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +13: Constant(Ljava/lang/String;,"getName()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting (Ljava/lang/String;II)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,2) (1) +2: LocalLoad(I,3) (2) +3: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(II)V) (3) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: LocalLoad(Ljava/lang/Object;,1) (7) +6: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (8) +7: Return(V) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;II)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 17 +5: LocalLoad(I,2) (1) + Handles null at 17 +6: LocalLoad(I,3) (2) + Handles null at 17 +7: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(II)V) (3) + Handles null at 17 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 17 +9: LocalLoad(Ljava/lang/Object;,1) (7) + Handles null at 17 +10: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (8) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (11) + Handles null at 17 +12: Constant(Ljava/lang/String;,"(Ljava/lang/String;II)V") (11) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 17 +14: Constant(I,0) (11) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 17 +16: Return(V) (11) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +18: Constant(Ljava/lang/String;,"(Ljava/lang/String;II)V") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting (Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,2) (1) +2: LocalLoad(Ljava/lang/Object;,3) (2) +3: LocalLoad(Ljava/lang/Object;,4) (3) +4: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V) (5) +5: LocalLoad(Ljava/lang/Object;,0) (8) +6: LocalLoad(Ljava/lang/Object;,1) (9) +7: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (10) +8: LocalLoad(Ljava/lang/Object;,3) (13) +9: Constant(L;,null) (14) +10: ConditionalBranch(Ljava/lang/Object;,eq,16) (14) +11: LocalLoad(Ljava/lang/Object;,0) (17) +12: LocalLoad(Ljava/lang/Object;,3) (18) +13: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (19) +14: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (22) +15: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (25) +16: LocalLoad(Ljava/lang/Object;,4) (28) +17: Constant(L;,null) (30) +18: ConditionalBranch(Ljava/lang/Object;,eq,24) (30) +19: LocalLoad(Ljava/lang/Object;,0) (33) +20: LocalLoad(Ljava/lang/Object;,4) (34) +21: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (36) +22: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (39) +23: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (42) +24: Return(V) (45) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 34 +5: LocalLoad(I,2) (1) + Handles null at 34 +6: LocalLoad(Ljava/lang/Object;,3) (2) + Handles null at 34 +7: LocalLoad(Ljava/lang/Object;,4) (3) + Handles null at 34 +8: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V) (5) + Handles null at 34 +9: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 34 +10: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 34 +11: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (10) + Handles null at 34 +12: LocalLoad(Ljava/lang/Object;,3) (13) + Handles null at 34 +13: Constant(L;,null) (14) + Handles null at 34 +14: ConditionalBranch(Ljava/lang/Object;,eq,20) (14) + Handles null at 34 +15: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 34 +16: LocalLoad(Ljava/lang/Object;,3) (18) + Handles null at 34 +17: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (19) + Handles null at 34 +18: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (22) + Handles null at 34 +19: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (25) + Handles null at 34 +20: LocalLoad(Ljava/lang/Object;,4) (28) + Handles null at 34 +21: Constant(L;,null) (30) + Handles null at 34 +22: ConditionalBranch(Ljava/lang/Object;,eq,28) (30) + Handles null at 34 +23: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 34 +24: LocalLoad(Ljava/lang/Object;,4) (34) + Handles null at 34 +25: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (36) + Handles null at 34 +26: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (39) + Handles null at 34 +27: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (42) + Handles null at 34 +28: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (45) + Handles null at 34 +29: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V") (45) + Handles null at 34 +30: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 34 +31: Constant(I,0) (45) + Handles null at 34 +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (45) + Handles null at 34 +33: Return(V) (45) + Handles null at 34 +34: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +35: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V") (0) +36: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +37: Constant(I,1) (0) +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +39: Throw() (0) +Instrumenting (Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,2) (1) +2: LocalLoad(Ljava/lang/Object;,3) (2) +3: Invoke(STATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,access$000,(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I) (3) +4: LocalLoad(Ljava/lang/Object;,4) (6) +5: Invoke(STATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,access$000,(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I) (8) +6: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(III)V) (11) +7: LocalLoad(Ljava/lang/Object;,0) (14) +8: LocalLoad(Ljava/lang/Object;,1) (15) +9: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (16) +10: LocalLoad(Ljava/lang/Object;,0) (19) +11: LocalLoad(Ljava/lang/Object;,3) (20) +12: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (21) +13: LocalLoad(Ljava/lang/Object;,0) (24) +14: LocalLoad(Ljava/lang/Object;,4) (25) +15: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (27) +16: Return(V) (30) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 26 +5: LocalLoad(I,2) (1) + Handles null at 26 +6: LocalLoad(Ljava/lang/Object;,3) (2) + Handles null at 26 +7: Invoke(STATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,access$000,(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I) (3) + Handles null at 26 +8: LocalLoad(Ljava/lang/Object;,4) (6) + Handles null at 26 +9: Invoke(STATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,access$000,(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I) (8) + Handles null at 26 +10: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(III)V) (11) + Handles null at 26 +11: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 26 +12: LocalLoad(Ljava/lang/Object;,1) (15) + Handles null at 26 +13: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (16) + Handles null at 26 +14: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 26 +15: LocalLoad(Ljava/lang/Object;,3) (20) + Handles null at 26 +16: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (21) + Handles null at 26 +17: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 26 +18: LocalLoad(Ljava/lang/Object;,4) (25) + Handles null at 26 +19: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (27) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (30) + Handles null at 26 +21: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (30) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 26 +23: Constant(I,0) (30) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (30) + Handles null at 26 +25: Return(V) (30) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +27: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting (Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,2) (1) +2: LocalLoad(Ljava/lang/Object;,3) (2) +3: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3) +4: LocalLoad(Ljava/lang/Object;,4) (6) +5: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (8) +6: LocalLoad(Ljava/lang/Object;,5) (11) +7: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (13) +8: LocalLoad(Ljava/lang/Object;,0) (16) +9: LocalLoad(Ljava/lang/Object;,1) (17) +10: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (18) +11: LocalLoad(Ljava/lang/Object;,3) (21) +12: Constant(L;,null) (22) +13: ConditionalBranch(Ljava/lang/Object;,eq,19) (22) +14: LocalLoad(Ljava/lang/Object;,0) (25) +15: LocalLoad(Ljava/lang/Object;,3) (26) +16: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (27) +17: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (30) +18: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (33) +19: LocalLoad(Ljava/lang/Object;,4) (36) +20: Constant(L;,null) (38) +21: ConditionalBranch(Ljava/lang/Object;,eq,27) (38) +22: LocalLoad(Ljava/lang/Object;,0) (41) +23: LocalLoad(Ljava/lang/Object;,4) (42) +24: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (44) +25: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (47) +26: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (50) +27: Return(V) (53) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 37 +5: LocalLoad(I,2) (1) + Handles null at 37 +6: LocalLoad(Ljava/lang/Object;,3) (2) + Handles null at 37 +7: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3) + Handles null at 37 +8: LocalLoad(Ljava/lang/Object;,4) (6) + Handles null at 37 +9: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (8) + Handles null at 37 +10: LocalLoad(Ljava/lang/Object;,5) (11) + Handles null at 37 +11: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (13) + Handles null at 37 +12: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 37 +13: LocalLoad(Ljava/lang/Object;,1) (17) + Handles null at 37 +14: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (18) + Handles null at 37 +15: LocalLoad(Ljava/lang/Object;,3) (21) + Handles null at 37 +16: Constant(L;,null) (22) + Handles null at 37 +17: ConditionalBranch(Ljava/lang/Object;,eq,23) (22) + Handles null at 37 +18: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 37 +19: LocalLoad(Ljava/lang/Object;,3) (26) + Handles null at 37 +20: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (27) + Handles null at 37 +21: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (30) + Handles null at 37 +22: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (33) + Handles null at 37 +23: LocalLoad(Ljava/lang/Object;,4) (36) + Handles null at 37 +24: Constant(L;,null) (38) + Handles null at 37 +25: ConditionalBranch(Ljava/lang/Object;,eq,31) (38) + Handles null at 37 +26: LocalLoad(Ljava/lang/Object;,0) (41) + Handles null at 37 +27: LocalLoad(Ljava/lang/Object;,4) (42) + Handles null at 37 +28: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (44) + Handles null at 37 +29: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (47) + Handles null at 37 +30: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (50) + Handles null at 37 +31: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (53) + Handles null at 37 +32: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V") (53) + Handles null at 37 +33: LocalLoad(Ljava/lang/Object;,0) (53) + Handles null at 37 +34: Constant(I,0) (53) + Handles null at 37 +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (53) + Handles null at 37 +36: Return(V) (53) + Handles null at 37 +37: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +38: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V") (0) +39: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +40: Constant(I,1) (0) +41: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +42: Throw() (0) +Instrumenting (Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,2) (1) +2: LocalLoad(Ljava/lang/Object;,3) (2) +3: Invoke(STATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,access$000,(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I) (3) +4: LocalLoad(Ljava/lang/Object;,4) (6) +5: Invoke(STATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,access$000,(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I) (8) +6: LocalLoad(Ljava/lang/Object;,5) (11) +7: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (13) +8: LocalLoad(Ljava/lang/Object;,0) (16) +9: LocalLoad(Ljava/lang/Object;,1) (17) +10: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (18) +11: LocalLoad(Ljava/lang/Object;,0) (21) +12: LocalLoad(Ljava/lang/Object;,3) (22) +13: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (23) +14: LocalLoad(Ljava/lang/Object;,0) (26) +15: LocalLoad(Ljava/lang/Object;,4) (27) +16: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (29) +17: Return(V) (32) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 27 +5: LocalLoad(I,2) (1) + Handles null at 27 +6: LocalLoad(Ljava/lang/Object;,3) (2) + Handles null at 27 +7: Invoke(STATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,access$000,(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I) (3) + Handles null at 27 +8: LocalLoad(Ljava/lang/Object;,4) (6) + Handles null at 27 +9: Invoke(STATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,access$000,(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I) (8) + Handles null at 27 +10: LocalLoad(Ljava/lang/Object;,5) (11) + Handles null at 27 +11: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (13) + Handles null at 27 +12: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 27 +13: LocalLoad(Ljava/lang/Object;,1) (17) + Handles null at 27 +14: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,name) (18) + Handles null at 27 +15: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 27 +16: LocalLoad(Ljava/lang/Object;,3) (22) + Handles null at 27 +17: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (23) + Handles null at 27 +18: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 27 +19: LocalLoad(Ljava/lang/Object;,4) (27) + Handles null at 27 +20: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (29) + Handles null at 27 +21: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (32) + Handles null at 27 +22: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)V") (32) + Handles null at 27 +23: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 27 +24: Constant(I,0) (32) + Handles null at 27 +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (32) + Handles null at 27 +26: Return(V) (32) + Handles null at 27 +27: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +28: Constant(Ljava/lang/String;,"(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)V") (0) +29: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +30: Constant(I,1) (0) +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +32: Throw() (0) +Instrumenting getLeft ()Ljava_cup/runtime/ComplexSymbolFactory$Location;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"getLeft()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xleft) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getLeft()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +13: Constant(Ljava/lang/String;,"getLeft()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting getRight ()Ljava_cup/runtime/ComplexSymbolFactory$Location;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +1: Constant(Ljava/lang/String;,"getRight()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,xright) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getRight()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$ComplexSymbol") (0) +13: Constant(Ljava/lang/String;,"getRight()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Class: java_cup/runtime/ComplexSymbolFactory$Location +Instrumenting (Ljava/lang/String;III)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(I,2) (2) +3: LocalLoad(I,3) (3) +4: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(Ljava/lang/String;II)V) (4) +5: LocalLoad(Ljava/lang/Object;,0) (7) +6: LocalLoad(I,4) (8) +7: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (10) +8: Return(V) (13) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;III)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 18 +6: LocalLoad(I,2) (2) + Handles null at 18 +7: LocalLoad(I,3) (3) + Handles null at 18 +8: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(Ljava/lang/String;II)V) (4) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 18 +10: LocalLoad(I,4) (8) + Handles null at 18 +11: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (10) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (13) + Handles null at 18 +13: Constant(Ljava/lang/String;,"(Ljava/lang/String;III)V") (13) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 18 +15: Constant(I,0) (13) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (13) + Handles null at 18 +17: Return(V) (13) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +19: Constant(Ljava/lang/String;,"(Ljava/lang/String;III)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting (Ljava/lang/String;II)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(Ljava/lang/String;,"unknown") (5) +4: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (7) +5: LocalLoad(Ljava/lang/Object;,0) (10) +6: Constant(I,-1) (11) +7: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (12) +8: LocalLoad(Ljava/lang/Object;,0) (15) +9: LocalLoad(Ljava/lang/Object;,1) (16) +10: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (17) +11: LocalLoad(Ljava/lang/Object;,0) (20) +12: LocalLoad(I,2) (21) +13: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,line) (22) +14: LocalLoad(Ljava/lang/Object;,0) (25) +15: LocalLoad(I,3) (26) +16: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,column) (27) +17: Return(V) (30) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;II)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 27 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 27 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 27 +7: Constant(Ljava/lang/String;,"unknown") (5) + Handles null at 27 +8: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (7) + Handles null at 27 +9: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 27 +10: Constant(I,-1) (11) + Handles null at 27 +11: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (12) + Handles null at 27 +12: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 27 +13: LocalLoad(Ljava/lang/Object;,1) (16) + Handles null at 27 +14: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (17) + Handles null at 27 +15: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 27 +16: LocalLoad(I,2) (21) + Handles null at 27 +17: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,line) (22) + Handles null at 27 +18: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 27 +19: LocalLoad(I,3) (26) + Handles null at 27 +20: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,column) (27) + Handles null at 27 +21: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (30) + Handles null at 27 +22: Constant(Ljava/lang/String;,"(Ljava/lang/String;II)V") (30) + Handles null at 27 +23: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 27 +24: Constant(I,0) (30) + Handles null at 27 +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (30) + Handles null at 27 +26: Return(V) (30) + Handles null at 27 +27: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +28: Constant(Ljava/lang/String;,"(Ljava/lang/String;II)V") (0) +29: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +30: Constant(I,1) (0) +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +32: Throw() (0) +Instrumenting (III)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: LocalLoad(I,2) (2) +3: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (3) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: LocalLoad(I,3) (7) +6: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (8) +7: Return(V) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"(III)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 17 +5: LocalLoad(I,1) (1) + Handles null at 17 +6: LocalLoad(I,2) (2) + Handles null at 17 +7: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,,(II)V) (3) + Handles null at 17 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 17 +9: LocalLoad(I,3) (7) + Handles null at 17 +10: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (8) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (11) + Handles null at 17 +12: Constant(Ljava/lang/String;,"(III)V") (11) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 17 +14: Constant(I,0) (11) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 17 +16: Return(V) (11) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +18: Constant(Ljava/lang/String;,"(III)V") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting (II)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(Ljava/lang/String;,"unknown") (5) +4: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (7) +5: LocalLoad(Ljava/lang/Object;,0) (10) +6: Constant(I,-1) (11) +7: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (12) +8: LocalLoad(Ljava/lang/Object;,0) (15) +9: LocalLoad(I,1) (16) +10: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,line) (17) +11: LocalLoad(Ljava/lang/Object;,0) (20) +12: LocalLoad(I,2) (21) +13: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,column) (22) +14: Return(V) (25) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"(II)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 24 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 24 +7: Constant(Ljava/lang/String;,"unknown") (5) + Handles null at 24 +8: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (7) + Handles null at 24 +9: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 24 +10: Constant(I,-1) (11) + Handles null at 24 +11: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (12) + Handles null at 24 +12: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 24 +13: LocalLoad(I,1) (16) + Handles null at 24 +14: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,line) (17) + Handles null at 24 +15: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 24 +16: LocalLoad(I,2) (21) + Handles null at 24 +17: Put(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,column) (22) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (25) + Handles null at 24 +19: Constant(Ljava/lang/String;,"(II)V") (25) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 24 +21: Constant(I,0) (25) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (25) + Handles null at 24 +23: Return(V) (25) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +25: Constant(Ljava/lang/String;,"(II)V") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting getColumn ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,column) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"getColumn()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,column) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getColumn()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +13: Constant(Ljava/lang/String;,"getColumn()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting getLine ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,line) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"getLine()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,line) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getLine()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +13: Constant(Ljava/lang/String;,"getLine()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting getUnit ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"getUnit()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getUnit()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +13: Constant(Ljava/lang/String;,"getUnit()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: LocalLoad(Ljava/lang/Object;,0) (7) +4: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,getUnit,()Ljava/lang/String;) (8) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) +6: Constant(Ljava/lang/String;,":") (14) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: LocalLoad(Ljava/lang/Object;,0) (19) +9: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,getLine,()I) (20) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (23) +11: Constant(Ljava/lang/String;,"/") (26) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +13: LocalLoad(Ljava/lang/Object;,0) (31) +14: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,getColumn,()I) (32) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (35) +16: Constant(Ljava/lang/String;,"(") (38) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) +18: LocalLoad(Ljava/lang/Object;,0) (43) +19: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (44) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (47) +21: Constant(Ljava/lang/String;,")") (50) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (52) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (55) +24: Return(Ljava/lang/Object;) (58) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 34 +5: Dup(1,0) (3) + Handles null at 34 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 34 +7: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 34 +8: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,getUnit,()Ljava/lang/String;) (8) + Handles null at 34 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) + Handles null at 34 +10: Constant(Ljava/lang/String;,":") (14) + Handles null at 34 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 34 +12: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 34 +13: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,getLine,()I) (20) + Handles null at 34 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (23) + Handles null at 34 +15: Constant(Ljava/lang/String;,"/") (26) + Handles null at 34 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 34 +17: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 34 +18: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,getColumn,()I) (32) + Handles null at 34 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (35) + Handles null at 34 +20: Constant(Ljava/lang/String;,"(") (38) + Handles null at 34 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) + Handles null at 34 +22: LocalLoad(Ljava/lang/Object;,0) (43) + Handles null at 34 +23: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (44) + Handles null at 34 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (47) + Handles null at 34 +25: Constant(Ljava/lang/String;,")") (50) + Handles null at 34 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (52) + Handles null at 34 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (55) + Handles null at 34 +28: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (58) + Handles null at 34 +29: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (58) + Handles null at 34 +30: LocalLoad(Ljava/lang/Object;,0) (58) + Handles null at 34 +31: Constant(I,0) (58) + Handles null at 34 +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (58) + Handles null at 34 +33: Return(Ljava/lang/Object;) (58) + Handles null at 34 +34: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +35: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +36: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +37: Constant(I,1) (0) +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +39: Throw() (0) +Instrumenting toXML (Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(Ljava/lang/String;,"location") (1) +2: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (3) +3: LocalLoad(Ljava/lang/Object;,1) (8) +4: Constant(Ljava/lang/String;,"compilationunit") (9) +5: LocalLoad(Ljava/lang/Object;,0) (11) +6: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (12) +7: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (15) +8: LocalLoad(Ljava/lang/Object;,1) (20) +9: Constant(Ljava/lang/String;,"orientation") (21) +10: LocalLoad(Ljava/lang/Object;,2) (23) +11: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (24) +12: LocalLoad(Ljava/lang/Object;,1) (29) +13: Constant(Ljava/lang/String;,"linenumber") (30) +14: New(Ljava/lang/StringBuilder;,0) (32) +15: Dup(1,0) (35) +16: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (36) +17: LocalLoad(Ljava/lang/Object;,0) (39) +18: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,line) (40) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (43) +20: Constant(Ljava/lang/String;,"") (46) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (48) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (51) +23: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (54) +24: LocalLoad(Ljava/lang/Object;,1) (59) +25: Constant(Ljava/lang/String;,"columnnumber") (60) +26: New(Ljava/lang/StringBuilder;,0) (62) +27: Dup(1,0) (65) +28: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (66) +29: LocalLoad(Ljava/lang/Object;,0) (69) +30: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,column) (70) +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (73) +32: Constant(Ljava/lang/String;,"") (76) +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (78) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (81) +35: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (84) +36: LocalLoad(Ljava/lang/Object;,1) (89) +37: Constant(Ljava/lang/String;,"offset") (90) +38: New(Ljava/lang/StringBuilder;,0) (92) +39: Dup(1,0) (95) +40: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (96) +41: LocalLoad(Ljava/lang/Object;,0) (99) +42: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (100) +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (103) +44: Constant(Ljava/lang/String;,"") (106) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (108) +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (111) +47: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (114) +48: LocalLoad(Ljava/lang/Object;,1) (119) +49: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (120) +50: Return(V) (125) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"toXML(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 60 +5: Constant(Ljava/lang/String;,"location") (1) + Handles null at 60 +6: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (3) + Handles null at 60 +7: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 60 +8: Constant(Ljava/lang/String;,"compilationunit") (9) + Handles null at 60 +9: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 60 +10: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,unit) (12) + Handles null at 60 +11: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (15) + Handles null at 60 +12: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 60 +13: Constant(Ljava/lang/String;,"orientation") (21) + Handles null at 60 +14: LocalLoad(Ljava/lang/Object;,2) (23) + Handles null at 60 +15: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (24) + Handles null at 60 +16: LocalLoad(Ljava/lang/Object;,1) (29) + Handles null at 60 +17: Constant(Ljava/lang/String;,"linenumber") (30) + Handles null at 60 +18: New(Ljava/lang/StringBuilder;,0) (32) + Handles null at 60 +19: Dup(1,0) (35) + Handles null at 60 +20: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (36) + Handles null at 60 +21: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 60 +22: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,line) (40) + Handles null at 60 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (43) + Handles null at 60 +24: Constant(Ljava/lang/String;,"") (46) + Handles null at 60 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (48) + Handles null at 60 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (51) + Handles null at 60 +27: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (54) + Handles null at 60 +28: LocalLoad(Ljava/lang/Object;,1) (59) + Handles null at 60 +29: Constant(Ljava/lang/String;,"columnnumber") (60) + Handles null at 60 +30: New(Ljava/lang/StringBuilder;,0) (62) + Handles null at 60 +31: Dup(1,0) (65) + Handles null at 60 +32: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (66) + Handles null at 60 +33: LocalLoad(Ljava/lang/Object;,0) (69) + Handles null at 60 +34: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,column) (70) + Handles null at 60 +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (73) + Handles null at 60 +36: Constant(Ljava/lang/String;,"") (76) + Handles null at 60 +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (78) + Handles null at 60 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (81) + Handles null at 60 +39: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (84) + Handles null at 60 +40: LocalLoad(Ljava/lang/Object;,1) (89) + Handles null at 60 +41: Constant(Ljava/lang/String;,"offset") (90) + Handles null at 60 +42: New(Ljava/lang/StringBuilder;,0) (92) + Handles null at 60 +43: Dup(1,0) (95) + Handles null at 60 +44: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (96) + Handles null at 60 +45: LocalLoad(Ljava/lang/Object;,0) (99) + Handles null at 60 +46: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (100) + Handles null at 60 +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (103) + Handles null at 60 +48: Constant(Ljava/lang/String;,"") (106) + Handles null at 60 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (108) + Handles null at 60 +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (111) + Handles null at 60 +51: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (114) + Handles null at 60 +52: LocalLoad(Ljava/lang/Object;,1) (119) + Handles null at 60 +53: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (120) + Handles null at 60 +54: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (125) + Handles null at 60 +55: Constant(Ljava/lang/String;,"toXML(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V") (125) + Handles null at 60 +56: LocalLoad(Ljava/lang/Object;,0) (125) + Handles null at 60 +57: Constant(I,0) (125) + Handles null at 60 +58: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (125) + Handles null at 60 +59: Return(V) (125) + Handles null at 60 +60: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +61: Constant(Ljava/lang/String;,"toXML(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V") (0) +62: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +63: Constant(I,1) (0) +64: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +65: Throw() (0) +Instrumenting getOffset ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"getOffset()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getOffset()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +13: Constant(Ljava/lang/String;,"getOffset()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting access$000 (Ljava_cup/runtime/ComplexSymbolFactory$Location;)I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +1: Constant(Ljava/lang/String;,"access$000(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$Location;,offset) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"access$000(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I") (4) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory$Location") (0) +13: Constant(Ljava/lang/String;,"access$000(Ljava_cup/runtime/ComplexSymbolFactory$Location;)I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Class: java_cup/runtime/ComplexSymbolFactory +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: LocalLoad(Ljava/lang/Object;,3) (6) +5: LocalLoad(Ljava/lang/Object;,4) (7) +6: LocalLoad(Ljava/lang/Object;,5) (9) +7: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)V) (11) +8: Return(Ljava/lang/Object;) (14) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) + Handles null at 18 +5: Dup(1,0) (3) + Handles null at 18 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 18 +7: LocalLoad(I,2) (5) + Handles null at 18 +8: LocalLoad(Ljava/lang/Object;,3) (6) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,4) (7) + Handles null at 18 +10: LocalLoad(Ljava/lang/Object;,5) (9) + Handles null at 18 +11: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)V) (11) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (14) + Handles null at 18 +13: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (14) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 18 +15: Constant(I,0) (14) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 18 +17: Return(Ljava/lang/Object;) (14) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +19: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: LocalLoad(Ljava/lang/Object;,3) (6) +5: LocalLoad(Ljava/lang/Object;,4) (7) +6: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V) (9) +7: Return(Ljava/lang/Object;) (12) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) + Handles null at 17 +5: Dup(1,0) (3) + Handles null at 17 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 17 +7: LocalLoad(I,2) (5) + Handles null at 17 +8: LocalLoad(Ljava/lang/Object;,3) (6) + Handles null at 17 +9: LocalLoad(Ljava/lang/Object;,4) (7) + Handles null at 17 +10: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V) (9) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (12) + Handles null at 17 +12: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)Ljava_cup/runtime/Symbol;") (12) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 17 +14: Constant(I,0) (12) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 17 +16: Return(Ljava/lang/Object;) (12) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +18: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)Ljava_cup/runtime/Symbol;") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: LocalLoad(Ljava/lang/Object;,3) (6) +5: LocalLoad(Ljava/lang/Object;,4) (7) +6: LocalLoad(Ljava/lang/Object;,5) (9) +7: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V) (11) +8: Return(Ljava/lang/Object;) (14) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) + Handles null at 18 +5: Dup(1,0) (3) + Handles null at 18 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 18 +7: LocalLoad(I,2) (5) + Handles null at 18 +8: LocalLoad(Ljava/lang/Object;,3) (6) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,4) (7) + Handles null at 18 +10: LocalLoad(Ljava/lang/Object;,5) (9) + Handles null at 18 +11: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V) (11) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (14) + Handles null at 18 +13: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (14) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 18 +15: Constant(I,0) (14) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 18 +17: Return(Ljava/lang/Object;) (14) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +19: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: LocalLoad(Ljava/lang/Object;,3) (6) +5: LocalLoad(Ljava/lang/Object;,4) (7) +6: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V) (9) +7: Return(Ljava/lang/Object;) (12) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) + Handles null at 17 +5: Dup(1,0) (3) + Handles null at 17 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 17 +7: LocalLoad(I,2) (5) + Handles null at 17 +8: LocalLoad(Ljava/lang/Object;,3) (6) + Handles null at 17 +9: LocalLoad(Ljava/lang/Object;,4) (7) + Handles null at 17 +10: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V) (9) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (12) + Handles null at 17 +12: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;") (12) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 17 +14: Constant(I,0) (12) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 17 +16: Return(Ljava/lang/Object;) (12) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +18: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;I)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;I)V) (6) +5: Return(Ljava/lang/Object;) (9) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) + Handles null at 15 +5: Dup(1,0) (3) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 15 +7: LocalLoad(I,2) (5) + Handles null at 15 +8: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;I)V) (6) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (9) + Handles null at 15 +10: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (9) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 15 +12: Constant(I,0) (9) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (9) + Handles null at 15 +14: Return(Ljava/lang/Object;) (9) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +16: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;ILjava/lang/Object;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: LocalLoad(Ljava/lang/Object;,3) (6) +5: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava/lang/Object;)V) (7) +6: Return(Ljava/lang/Object;) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) + Handles null at 16 +5: Dup(1,0) (3) + Handles null at 16 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 16 +7: LocalLoad(I,2) (5) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,3) (6) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;ILjava/lang/Object;)V) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(Ljava/lang/Object;) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +17: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting startSymbol (Ljava/lang/String;II)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: LocalLoad(I,2) (5) +4: LocalLoad(I,3) (6) +5: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;II)V) (7) +6: Return(Ljava/lang/Object;) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"startSymbol(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,0) (0) + Handles null at 16 +5: Dup(1,0) (3) + Handles null at 16 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 16 +7: LocalLoad(I,2) (5) + Handles null at 16 +8: LocalLoad(I,3) (6) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,,(Ljava/lang/String;II)V) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"startSymbol(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(Ljava/lang/Object;) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/ComplexSymbolFactory") (0) +17: Constant(Ljava/lang/String;,"startSymbol(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Class: java_cup/runtime/DefaultSymbolFactory +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/Symbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,2) (4) +3: LocalLoad(Ljava/lang/Object;,3) (5) +4: LocalLoad(Ljava/lang/Object;,4) (6) +5: LocalLoad(Ljava/lang/Object;,5) (8) +6: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V) (10) +7: Return(Ljava/lang/Object;) (13) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/Symbol;,0) (0) + Handles null at 17 +5: Dup(1,0) (3) + Handles null at 17 +6: LocalLoad(I,2) (4) + Handles null at 17 +7: LocalLoad(Ljava/lang/Object;,3) (5) + Handles null at 17 +8: LocalLoad(Ljava/lang/Object;,4) (6) + Handles null at 17 +9: LocalLoad(Ljava/lang/Object;,5) (8) + Handles null at 17 +10: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V) (10) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (13) + Handles null at 17 +12: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (13) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 17 +14: Constant(I,0) (13) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (13) + Handles null at 17 +16: Return(Ljava/lang/Object;) (13) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +18: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/Symbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,2) (4) +3: LocalLoad(Ljava/lang/Object;,3) (5) +4: LocalLoad(Ljava/lang/Object;,4) (6) +5: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V) (8) +6: Return(Ljava/lang/Object;) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/Symbol;,0) (0) + Handles null at 16 +5: Dup(1,0) (3) + Handles null at 16 +6: LocalLoad(I,2) (4) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,3) (5) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,4) (6) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V) (8) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (11) + Handles null at 16 +11: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;") (11) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 16 +13: Constant(I,0) (11) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 16 +15: Return(Ljava/lang/Object;) (11) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +17: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;IIILjava/lang/Object;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/Symbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,2) (4) +3: LocalLoad(I,3) (5) +4: LocalLoad(I,4) (6) +5: LocalLoad(Ljava/lang/Object;,5) (8) +6: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (10) +7: Return(Ljava/lang/Object;) (13) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;IIILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/Symbol;,0) (0) + Handles null at 17 +5: Dup(1,0) (3) + Handles null at 17 +6: LocalLoad(I,2) (4) + Handles null at 17 +7: LocalLoad(I,3) (5) + Handles null at 17 +8: LocalLoad(I,4) (6) + Handles null at 17 +9: LocalLoad(Ljava/lang/Object;,5) (8) + Handles null at 17 +10: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (10) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (13) + Handles null at 17 +12: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;IIILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (13) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 17 +14: Constant(I,0) (13) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (13) + Handles null at 17 +16: Return(Ljava/lang/Object;) (13) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +18: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;IIILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;III)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/Symbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,2) (4) +3: LocalLoad(I,3) (5) +4: LocalLoad(I,4) (6) +5: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(III)V) (8) +6: Return(Ljava/lang/Object;) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;III)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/Symbol;,0) (0) + Handles null at 16 +5: Dup(1,0) (3) + Handles null at 16 +6: LocalLoad(I,2) (4) + Handles null at 16 +7: LocalLoad(I,3) (5) + Handles null at 16 +8: LocalLoad(I,4) (6) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(III)V) (8) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (11) + Handles null at 16 +11: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;III)Ljava_cup/runtime/Symbol;") (11) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 16 +13: Constant(I,0) (11) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 16 +15: Return(Ljava/lang/Object;) (11) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +17: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;III)Ljava_cup/runtime/Symbol;") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting startSymbol (Ljava/lang/String;II)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/Symbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,2) (4) +3: LocalLoad(I,3) (5) +4: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(II)V) (6) +5: Return(Ljava/lang/Object;) (9) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"startSymbol(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/Symbol;,0) (0) + Handles null at 15 +5: Dup(1,0) (3) + Handles null at 15 +6: LocalLoad(I,2) (4) + Handles null at 15 +7: LocalLoad(I,3) (5) + Handles null at 15 +8: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(II)V) (6) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (9) + Handles null at 15 +10: Constant(Ljava/lang/String;,"startSymbol(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;") (9) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 15 +12: Constant(I,0) (9) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (9) + Handles null at 15 +14: Return(Ljava/lang/Object;) (9) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +16: Constant(Ljava/lang/String;,"startSymbol(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;I)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/Symbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,2) (4) +3: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(I)V) (5) +4: Return(Ljava/lang/Object;) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/Symbol;,0) (0) + Handles null at 14 +5: Dup(1,0) (3) + Handles null at 14 +6: LocalLoad(I,2) (4) + Handles null at 14 +7: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(I)V) (5) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (8) + Handles null at 14 +9: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (8) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 14 +11: Constant(I,0) (8) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 14 +13: Return(Ljava/lang/Object;) (8) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +15: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting newSymbol (Ljava/lang/String;ILjava/lang/Object;)Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/Symbol;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,2) (4) +3: LocalLoad(Ljava/lang/Object;,3) (5) +4: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava/lang/Object;)V) (6) +5: Return(Ljava/lang/Object;) (9) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +1: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/Symbol;,0) (0) + Handles null at 15 +5: Dup(1,0) (3) + Handles null at 15 +6: LocalLoad(I,2) (4) + Handles null at 15 +7: LocalLoad(Ljava/lang/Object;,3) (5) + Handles null at 15 +8: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(ILjava/lang/Object;)V) (6) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (9) + Handles null at 15 +10: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (9) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 15 +12: Constant(I,0) (9) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (9) + Handles null at 15 +14: Return(Ljava/lang/Object;) (9) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/runtime/DefaultSymbolFactory") (0) +16: Constant(Ljava/lang/String;,"newSymbol(Ljava/lang/String;ILjava/lang/Object;)Ljava_cup/runtime/Symbol;") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Class: java_cup/runtime/Scanner +Class: java_cup/runtime/ScannerBuffer +Instrumenting (Ljava_cup/runtime/Scanner;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: New(Ljava/util/LinkedList;,0) (5) +4: Dup(1,0) (8) +5: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (9) +6: Put(Ljava/util/List;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,buffer) (12) +7: LocalLoad(Ljava/lang/Object;,0) (15) +8: LocalLoad(Ljava/lang/Object;,1) (16) +9: Put(Ljava_cup/runtime/Scanner;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,inner) (17) +10: Return(V) (20) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 20 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 20 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 20 +7: New(Ljava/util/LinkedList;,0) (5) + Handles null at 20 +8: Dup(1,0) (8) + Handles null at 20 +9: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (9) + Handles null at 20 +10: Put(Ljava/util/List;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,buffer) (12) + Handles null at 20 +11: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 20 +12: LocalLoad(Ljava/lang/Object;,1) (16) + Handles null at 20 +13: Put(Ljava_cup/runtime/Scanner;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,inner) (17) + Handles null at 20 +14: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (20) + Handles null at 20 +15: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (20) + Handles null at 20 +16: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 20 +17: Constant(I,0) (20) + Handles null at 20 +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (20) + Handles null at 20 +19: Return(V) (20) + Handles null at 20 +20: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (0) +21: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (0) +22: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +23: Constant(I,1) (0) +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +25: Throw() (0) +Instrumenting getBuffered ()Ljava/util/List;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/List;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,buffer) (1) +2: Invoke(STATIC,Ljava/util/Collections;,unmodifiableList,(Ljava/util/List;)Ljava/util/List;) (4) +3: Return(Ljava/lang/Object;) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (0) +1: Constant(Ljava/lang/String;,"getBuffered()Ljava/util/List;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava/util/List;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,buffer) (1) + Handles null at 13 +6: Invoke(STATIC,Ljava/util/Collections;,unmodifiableList,(Ljava/util/List;)Ljava/util/List;) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"getBuffered()Ljava/util/List;") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(Ljava/lang/Object;) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (0) +14: Constant(Ljava/lang/String;,"getBuffered()Ljava/util/List;") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting next_token ()Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/Scanner;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,inner) (1) +2: Invoke(INTERFACE,Ljava_cup/runtime/Scanner;,next_token,()Ljava_cup/runtime/Symbol;) (4) +3: LocalStore(Ljava/lang/Object;,1) (9) +4: LocalLoad(Ljava/lang/Object;,0) (10) +5: Get(Ljava/util/List;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,buffer) (11) +6: LocalLoad(Ljava/lang/Object;,1) (14) +7: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (15) +8: Pop(1) (20) +9: LocalLoad(Ljava/lang/Object;,1) (21) +10: Return(Ljava/lang/Object;) (22) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (0) +1: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 20 +5: Get(Ljava_cup/runtime/Scanner;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,inner) (1) + Handles null at 20 +6: Invoke(INTERFACE,Ljava_cup/runtime/Scanner;,next_token,()Ljava_cup/runtime/Symbol;) (4) + Handles null at 20 +7: LocalStore(Ljava/lang/Object;,1) (9) + Handles null at 20 +8: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 20 +9: Get(Ljava/util/List;,NONSTATIC,Ljava_cup/runtime/ScannerBuffer;,buffer) (11) + Handles null at 20 +10: LocalLoad(Ljava/lang/Object;,1) (14) + Handles null at 20 +11: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (15) + Handles null at 20 +12: Pop(1) (20) + Handles null at 20 +13: LocalLoad(Ljava/lang/Object;,1) (21) + Handles null at 20 +14: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (22) + Handles null at 20 +15: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (22) + Handles null at 20 +16: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 20 +17: Constant(I,0) (22) + Handles null at 20 +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (22) + Handles null at 20 +19: Return(Ljava/lang/Object;) (22) + Handles null at 20 +20: Constant(Ljava/lang/String;,"java_cup/runtime/ScannerBuffer") (0) +21: Constant(Ljava/lang/String;,"next_token()Ljava_cup/runtime/Symbol;") (0) +22: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +23: Constant(I,1) (0) +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +25: Throw() (0) +Class: java_cup/runtime/Symbol +Instrumenting (ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3) +4: LocalLoad(Ljava/lang/Object;,3) (6) +5: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7) +6: LocalLoad(Ljava/lang/Object;,4) (10) +7: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (12) +8: Return(V) (15) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +1: Constant(Ljava/lang/String;,"(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: LocalLoad(I,1) (1) + Handles null at 18 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 18 +7: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3) + Handles null at 18 +8: LocalLoad(Ljava/lang/Object;,3) (6) + Handles null at 18 +9: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7) + Handles null at 18 +10: LocalLoad(Ljava/lang/Object;,4) (10) + Handles null at 18 +11: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (12) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (15) + Handles null at 18 +13: Constant(Ljava/lang/String;,"(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V") (15) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 18 +15: Constant(I,0) (15) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (15) + Handles null at 18 +17: Return(V) (15) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +19: Constant(Ljava/lang/String;,"(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;Ljava/lang/Object;)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting (ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3) +4: LocalLoad(Ljava/lang/Object;,3) (6) +5: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7) +6: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(III)V) (10) +7: Return(V) (13) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +1: Constant(Ljava/lang/String;,"(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 17 +5: LocalLoad(I,1) (1) + Handles null at 17 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 17 +7: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (3) + Handles null at 17 +8: LocalLoad(Ljava/lang/Object;,3) (6) + Handles null at 17 +9: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (7) + Handles null at 17 +10: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(III)V) (10) + Handles null at 17 +11: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (13) + Handles null at 17 +12: Constant(Ljava/lang/String;,"(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V") (13) + Handles null at 17 +13: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 17 +14: Constant(I,0) (13) + Handles null at 17 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (13) + Handles null at 17 +16: Return(V) (13) + Handles null at 17 +17: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +18: Constant(Ljava/lang/String;,"(ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)V") (0) +19: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +20: Constant(I,1) (0) +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +22: Throw() (0) +Instrumenting (IIILjava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(I)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: LocalLoad(I,2) (6) +5: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: LocalLoad(I,3) (11) +8: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (12) +9: LocalLoad(Ljava/lang/Object;,0) (15) +10: LocalLoad(Ljava/lang/Object;,4) (16) +11: Put(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (18) +12: Return(V) (21) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +1: Constant(Ljava/lang/String;,"(IIILjava/lang/Object;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 22 +5: LocalLoad(I,1) (1) + Handles null at 22 +6: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(I)V) (2) + Handles null at 22 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 22 +8: LocalLoad(I,2) (6) + Handles null at 22 +9: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (7) + Handles null at 22 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 22 +11: LocalLoad(I,3) (11) + Handles null at 22 +12: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (12) + Handles null at 22 +13: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 22 +14: LocalLoad(Ljava/lang/Object;,4) (16) + Handles null at 22 +15: Put(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/Symbol;,value) (18) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (21) + Handles null at 22 +17: Constant(Ljava/lang/String;,"(IIILjava/lang/Object;)V") (21) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 22 +19: Constant(I,0) (21) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (21) + Handles null at 22 +21: Return(V) (21) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +23: Constant(Ljava/lang/String;,"(IIILjava/lang/Object;)V") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting (ILjava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Constant(I,-1) (2) +3: Constant(I,-1) (3) +4: LocalLoad(Ljava/lang/Object;,2) (4) +5: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (5) +6: Return(V) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +1: Constant(Ljava/lang/String;,"(ILjava/lang/Object;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(I,1) (1) + Handles null at 16 +6: Constant(I,-1) (2) + Handles null at 16 +7: Constant(I,-1) (3) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,2) (4) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (5) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (8) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(ILjava/lang/Object;)V") (8) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 16 +13: Constant(I,0) (8) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 16 +15: Return(V) (8) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +17: Constant(Ljava/lang/String;,"(ILjava/lang/Object;)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting (III)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: LocalLoad(I,2) (2) +3: LocalLoad(I,3) (3) +4: Constant(L;,null) (4) +5: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (5) +6: Return(V) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +1: Constant(Ljava/lang/String;,"(III)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(I,1) (1) + Handles null at 16 +6: LocalLoad(I,2) (2) + Handles null at 16 +7: LocalLoad(I,3) (3) + Handles null at 16 +8: Constant(L;,null) (4) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(IIILjava/lang/Object;)V) (5) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (8) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(III)V") (8) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 16 +13: Constant(I,0) (8) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 16 +15: Return(V) (8) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +17: Constant(Ljava/lang/String;,"(III)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting (I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Constant(I,-1) (2) +3: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(II)V) (3) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: Constant(I,-1) (7) +6: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (8) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: Constant(I,-1) (12) +9: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (13) +10: Return(V) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +1: Constant(Ljava/lang/String;,"(I)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 20 +5: LocalLoad(I,1) (1) + Handles null at 20 +6: Constant(I,-1) (2) + Handles null at 20 +7: Invoke(SPECIAL,Ljava_cup/runtime/Symbol;,,(II)V) (3) + Handles null at 20 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 20 +9: Constant(I,-1) (7) + Handles null at 20 +10: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (8) + Handles null at 20 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 20 +12: Constant(I,-1) (12) + Handles null at 20 +13: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,right) (13) + Handles null at 20 +14: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (16) + Handles null at 20 +15: Constant(Ljava/lang/String;,"(I)V") (16) + Handles null at 20 +16: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 20 +17: Constant(I,0) (16) + Handles null at 20 +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 20 +19: Return(V) (16) + Handles null at 20 +20: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +21: Constant(Ljava/lang/String;,"(I)V") (0) +22: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +23: Constant(I,1) (0) +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +25: Throw() (0) +Instrumenting (II)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(I,0) (5) +4: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: LocalLoad(I,1) (10) +7: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (11) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: LocalLoad(I,2) (15) +10: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (16) +11: Return(V) (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +1: Constant(Ljava/lang/String;,"(II)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 21 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 21 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 21 +7: Constant(I,0) (5) + Handles null at 21 +8: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (6) + Handles null at 21 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 21 +10: LocalLoad(I,1) (10) + Handles null at 21 +11: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (11) + Handles null at 21 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 21 +13: LocalLoad(I,2) (15) + Handles null at 21 +14: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (16) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (19) + Handles null at 21 +16: Constant(Ljava/lang/String;,"(II)V") (19) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 21 +18: Constant(I,0) (19) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (19) + Handles null at 21 +20: Return(V) (19) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +22: Constant(Ljava/lang/String;,"(II)V") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Constant(Ljava/lang/String;,"#") (7) +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) +5: LocalLoad(Ljava/lang/Object;,0) (12) +6: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (13) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (16) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) +9: Return(Ljava/lang/Object;) (22) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 19 +5: Dup(1,0) (3) + Handles null at 19 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 19 +7: Constant(Ljava/lang/String;,"#") (7) + Handles null at 19 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) + Handles null at 19 +9: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 19 +10: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (13) + Handles null at 19 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (16) + Handles null at 19 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (19) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (22) + Handles null at 19 +14: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (22) + Handles null at 19 +15: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 19 +16: Constant(I,0) (22) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (22) + Handles null at 19 +18: Return(Ljava/lang/Object;) (22) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/runtime/Symbol") (0) +20: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Class: java_cup/runtime/SymbolFactory +Class: java_cup/runtime/XMLElement$Error +Instrumenting selectById (Ljava/lang/String;)Ljava/util/List;: +Initial ShrikeBT code: +0: New(Ljava/util/LinkedList;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (4) +3: Return(Ljava/lang/Object;) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +1: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/LinkedList;,0) (0) + Handles null at 13 +5: Dup(1,0) (3) + Handles null at 13 +6: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(Ljava/lang/Object;) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +14: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting (Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/runtime/XMLElement;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Error;,l) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: LocalLoad(Ljava/lang/Object;,2) (10) +7: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Error;,r) (11) +8: Return(V) (14) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: Invoke(SPECIAL,Ljava_cup/runtime/XMLElement;,,()V) (1) + Handles null at 18 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 18 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 18 +8: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Error;,l) (6) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 18 +10: LocalLoad(Ljava/lang/Object;,2) (10) + Handles null at 18 +11: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Error;,r) (11) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (14) + Handles null at 18 +13: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (14) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 18 +15: Constant(I,0) (14) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 18 +17: Return(V) (14) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +19: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting left ()Ljava_cup/runtime/ComplexSymbolFactory$Location;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Error;,l) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +1: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Error;,l) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +13: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting right ()Ljava_cup/runtime/ComplexSymbolFactory$Location;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Error;,r) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +1: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Error;,r) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +13: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Constant(Ljava/lang/String;,"") (31) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (36) +16: Return(Ljava/lang/Object;) (39) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 26 +5: Dup(1,0) (3) + Handles null at 26 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 26 +7: Constant(Ljava/lang/String;,"") (31) + Handles null at 26 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) + Handles null at 26 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (36) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (39) + Handles null at 26 +21: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (39) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 26 +23: Constant(I,0) (39) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (39) + Handles null at 26 +25: Return(Ljava/lang/Object;) (39) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +27: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting dump (Ljavax/xml/stream/XMLStreamWriter;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(Ljava/lang/String;,"error") (1) +2: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (3) +3: LocalLoad(Ljava/lang/Object;,1) (8) +4: Constant(Ljava/lang/String;,"left") (9) +5: New(Ljava/lang/StringBuilder;,0) (11) +6: Dup(1,0) (14) +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (15) +8: LocalLoad(Ljava/lang/Object;,0) (18) +9: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$Error;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (19) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (22) +11: Constant(Ljava/lang/String;,"") (25) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (27) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (30) +14: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (33) +15: LocalLoad(Ljava/lang/Object;,1) (38) +16: Constant(Ljava/lang/String;,"right") (39) +17: New(Ljava/lang/StringBuilder;,0) (41) +18: Dup(1,0) (44) +19: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (45) +20: LocalLoad(Ljava/lang/Object;,0) (48) +21: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$Error;,right,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (49) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (52) +23: Constant(Ljava/lang/String;,"") (55) +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (57) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (60) +26: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (63) +27: LocalLoad(Ljava/lang/Object;,1) (68) +28: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (69) +29: Return(V) (74) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +1: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 39 +5: Constant(Ljava/lang/String;,"error") (1) + Handles null at 39 +6: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (3) + Handles null at 39 +7: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 39 +8: Constant(Ljava/lang/String;,"left") (9) + Handles null at 39 +9: New(Ljava/lang/StringBuilder;,0) (11) + Handles null at 39 +10: Dup(1,0) (14) + Handles null at 39 +11: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (15) + Handles null at 39 +12: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 39 +13: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$Error;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (19) + Handles null at 39 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (22) + Handles null at 39 +15: Constant(Ljava/lang/String;,"") (25) + Handles null at 39 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (27) + Handles null at 39 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (30) + Handles null at 39 +18: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (33) + Handles null at 39 +19: LocalLoad(Ljava/lang/Object;,1) (38) + Handles null at 39 +20: Constant(Ljava/lang/String;,"right") (39) + Handles null at 39 +21: New(Ljava/lang/StringBuilder;,0) (41) + Handles null at 39 +22: Dup(1,0) (44) + Handles null at 39 +23: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (45) + Handles null at 39 +24: LocalLoad(Ljava/lang/Object;,0) (48) + Handles null at 39 +25: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$Error;,right,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (49) + Handles null at 39 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (52) + Handles null at 39 +27: Constant(Ljava/lang/String;,"") (55) + Handles null at 39 +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (57) + Handles null at 39 +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (60) + Handles null at 39 +30: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (63) + Handles null at 39 +31: LocalLoad(Ljava/lang/Object;,1) (68) + Handles null at 39 +32: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (69) + Handles null at 39 +33: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (74) + Handles null at 39 +34: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (74) + Handles null at 39 +35: LocalLoad(Ljava/lang/Object;,0) (74) + Handles null at 39 +36: Constant(I,0) (74) + Handles null at 39 +37: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (74) + Handles null at 39 +38: Return(V) (74) + Handles null at 39 +39: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Error") (0) +40: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (0) +41: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +42: Constant(I,1) (0) +43: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +44: Throw() (0) +Class: java_cup/runtime/XMLElement$NonTerminal +Instrumenting selectById (Ljava/lang/String;)Ljava/util/List;: +Initial ShrikeBT code: +0: New(Ljava/util/LinkedList;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,2) (7) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,tagname) (9) +6: LocalLoad(Ljava/lang/Object;,1) (12) +7: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (13) +8: Constant(I,0) (16) +9: ConditionalBranch(I,eq,14) (16) +10: LocalLoad(Ljava/lang/Object;,2) (19) +11: LocalLoad(Ljava/lang/Object;,0) (20) +12: Invoke(VIRTUAL,Ljava/util/LinkedList;,add,(Ljava/lang/Object;)Z) (21) +13: Pop(1) (24) +14: LocalLoad(Ljava/lang/Object;,0) (25) +15: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (26) +16: Invoke(VIRTUAL,Ljava/util/LinkedList;,iterator,()Ljava/util/Iterator;) (29) +17: LocalStore(Ljava/lang/Object;,3) (32) +18: LocalLoad(Ljava/lang/Object;,3) (33) +19: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (34) +20: Constant(I,0) (39) +21: ConditionalBranch(I,eq,35) (39) +22: LocalLoad(Ljava/lang/Object;,3) (42) +23: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (43) +24: CheckCast(Ljava_cup/runtime/XMLElement;) (48) +25: LocalStore(Ljava/lang/Object;,4) (51) +26: LocalLoad(Ljava/lang/Object;,4) (53) +27: LocalLoad(Ljava/lang/Object;,1) (55) +28: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,selectById,(Ljava/lang/String;)Ljava/util/List;) (56) +29: LocalStore(Ljava/lang/Object;,5) (59) +30: LocalLoad(Ljava/lang/Object;,2) (61) +31: LocalLoad(Ljava/lang/Object;,5) (62) +32: Invoke(VIRTUAL,Ljava/util/LinkedList;,addAll,(Ljava/util/Collection;)Z) (64) +33: Pop(1) (67) +34: Goto(18) (68) +35: LocalLoad(Ljava/lang/Object;,2) (71) +36: Return(Ljava/lang/Object;) (72) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +1: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/LinkedList;,0) (0) + Handles null at 46 +5: Dup(1,0) (3) + Handles null at 46 +6: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (4) + Handles null at 46 +7: LocalStore(Ljava/lang/Object;,2) (7) + Handles null at 46 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 46 +9: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,tagname) (9) + Handles null at 46 +10: LocalLoad(Ljava/lang/Object;,1) (12) + Handles null at 46 +11: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (13) + Handles null at 46 +12: Constant(I,0) (16) + Handles null at 46 +13: ConditionalBranch(I,eq,18) (16) + Handles null at 46 +14: LocalLoad(Ljava/lang/Object;,2) (19) + Handles null at 46 +15: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 46 +16: Invoke(VIRTUAL,Ljava/util/LinkedList;,add,(Ljava/lang/Object;)Z) (21) + Handles null at 46 +17: Pop(1) (24) + Handles null at 46 +18: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 46 +19: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (26) + Handles null at 46 +20: Invoke(VIRTUAL,Ljava/util/LinkedList;,iterator,()Ljava/util/Iterator;) (29) + Handles null at 46 +21: LocalStore(Ljava/lang/Object;,3) (32) + Handles null at 46 +22: LocalLoad(Ljava/lang/Object;,3) (33) + Handles null at 46 +23: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (34) + Handles null at 46 +24: Constant(I,0) (39) + Handles null at 46 +25: ConditionalBranch(I,eq,39) (39) + Handles null at 46 +26: LocalLoad(Ljava/lang/Object;,3) (42) + Handles null at 46 +27: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (43) + Handles null at 46 +28: CheckCast(Ljava_cup/runtime/XMLElement;) (48) + Handles null at 46 +29: LocalStore(Ljava/lang/Object;,4) (51) + Handles null at 46 +30: LocalLoad(Ljava/lang/Object;,4) (53) + Handles null at 46 +31: LocalLoad(Ljava/lang/Object;,1) (55) + Handles null at 46 +32: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,selectById,(Ljava/lang/String;)Ljava/util/List;) (56) + Handles null at 46 +33: LocalStore(Ljava/lang/Object;,5) (59) + Handles null at 46 +34: LocalLoad(Ljava/lang/Object;,2) (61) + Handles null at 46 +35: LocalLoad(Ljava/lang/Object;,5) (62) + Handles null at 46 +36: Invoke(VIRTUAL,Ljava/util/LinkedList;,addAll,(Ljava/util/Collection;)Z) (64) + Handles null at 46 +37: Pop(1) (67) + Handles null at 46 +38: Goto(22) (68) + Handles null at 46 +39: LocalLoad(Ljava/lang/Object;,2) (71) + Handles null at 46 +40: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (72) + Handles null at 46 +41: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (72) + Handles null at 46 +42: LocalLoad(Ljava/lang/Object;,0) (72) + Handles null at 46 +43: Constant(I,0) (72) + Handles null at 46 +44: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (72) + Handles null at 46 +45: Return(Ljava/lang/Object;) (72) + Handles null at 46 +46: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +47: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (0) +48: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +49: Constant(I,1) (0) +50: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +51: Throw() (0) +Instrumenting (Ljava/lang/String;I[Ljava_cup/runtime/XMLElement;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/runtime/XMLElement;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,tagname) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: LocalLoad(I,2) (10) +7: Put(I,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,variant) (11) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: New(Ljava/util/LinkedList;,0) (15) +10: Dup(1,0) (18) +11: LocalLoad(Ljava/lang/Object;,3) (19) +12: Invoke(STATIC,Ljava/util/Arrays;,asList,([Ljava/lang/Object;)Ljava/util/List;) (20) +13: Invoke(SPECIAL,Ljava/util/LinkedList;,,(Ljava/util/Collection;)V) (23) +14: Put(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (26) +15: Return(V) (29) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;I[Ljava_cup/runtime/XMLElement;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 25 +5: Invoke(SPECIAL,Ljava_cup/runtime/XMLElement;,,()V) (1) + Handles null at 25 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 25 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 25 +8: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,tagname) (6) + Handles null at 25 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +10: LocalLoad(I,2) (10) + Handles null at 25 +11: Put(I,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,variant) (11) + Handles null at 25 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 25 +13: New(Ljava/util/LinkedList;,0) (15) + Handles null at 25 +14: Dup(1,0) (18) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,3) (19) + Handles null at 25 +16: Invoke(STATIC,Ljava/util/Arrays;,asList,([Ljava/lang/Object;)Ljava/util/List;) (20) + Handles null at 25 +17: Invoke(SPECIAL,Ljava/util/LinkedList;,,(Ljava/util/Collection;)V) (23) + Handles null at 25 +18: Put(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (26) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (29) + Handles null at 25 +20: Constant(Ljava/lang/String;,"(Ljava/lang/String;I[Ljava_cup/runtime/XMLElement;)V") (29) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 25 +22: Constant(I,0) (29) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (29) + Handles null at 25 +24: Return(V) (29) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +26: Constant(Ljava/lang/String;,"(Ljava/lang/String;I[Ljava_cup/runtime/XMLElement;)V") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting left ()Ljava_cup/runtime/ComplexSymbolFactory$Location;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (1) +2: Invoke(VIRTUAL,Ljava/util/LinkedList;,iterator,()Ljava/util/Iterator;) (4) +3: LocalStore(Ljava/lang/Object;,1) (7) +4: LocalLoad(Ljava/lang/Object;,1) (8) +5: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (9) +6: Constant(I,0) (14) +7: ConditionalBranch(I,eq,21) (14) +8: LocalLoad(Ljava/lang/Object;,1) (17) +9: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (18) +10: CheckCast(Ljava_cup/runtime/XMLElement;) (23) +11: LocalStore(Ljava/lang/Object;,2) (26) +12: LocalLoad(Ljava/lang/Object;,2) (27) +13: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (28) +14: LocalStore(Ljava/lang/Object;,3) (31) +15: LocalLoad(Ljava/lang/Object;,3) (32) +16: Constant(L;,null) (33) +17: ConditionalBranch(Ljava/lang/Object;,eq,20) (33) +18: LocalLoad(Ljava/lang/Object;,3) (36) +19: Return(Ljava/lang/Object;) (37) +20: Goto(4) (38) +21: Constant(L;,null) (41) +22: Return(Ljava/lang/Object;) (42) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +1: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 37 +5: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (1) + Handles null at 37 +6: Invoke(VIRTUAL,Ljava/util/LinkedList;,iterator,()Ljava/util/Iterator;) (4) + Handles null at 37 +7: LocalStore(Ljava/lang/Object;,1) (7) + Handles null at 37 +8: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 37 +9: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (9) + Handles null at 37 +10: Constant(I,0) (14) + Handles null at 37 +11: ConditionalBranch(I,eq,30) (14) + Handles null at 37 +12: LocalLoad(Ljava/lang/Object;,1) (17) + Handles null at 37 +13: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (18) + Handles null at 37 +14: CheckCast(Ljava_cup/runtime/XMLElement;) (23) + Handles null at 37 +15: LocalStore(Ljava/lang/Object;,2) (26) + Handles null at 37 +16: LocalLoad(Ljava/lang/Object;,2) (27) + Handles null at 37 +17: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (28) + Handles null at 37 +18: LocalStore(Ljava/lang/Object;,3) (31) + Handles null at 37 +19: LocalLoad(Ljava/lang/Object;,3) (32) + Handles null at 37 +20: Constant(L;,null) (33) + Handles null at 37 +21: ConditionalBranch(Ljava/lang/Object;,eq,29) (33) + Handles null at 37 +22: LocalLoad(Ljava/lang/Object;,3) (36) + Handles null at 37 +23: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (37) + Handles null at 37 +24: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (37) + Handles null at 37 +25: LocalLoad(Ljava/lang/Object;,0) (37) + Handles null at 37 +26: Constant(I,0) (37) + Handles null at 37 +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (37) + Handles null at 37 +28: Return(Ljava/lang/Object;) (37) + Handles null at 37 +29: Goto(8) (38) + Handles null at 37 +30: Constant(L;,null) (41) + Handles null at 37 +31: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (42) + Handles null at 37 +32: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (42) + Handles null at 37 +33: LocalLoad(Ljava/lang/Object;,0) (42) + Handles null at 37 +34: Constant(I,0) (42) + Handles null at 37 +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (42) + Handles null at 37 +36: Return(Ljava/lang/Object;) (42) + Handles null at 37 +37: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +38: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +39: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +40: Constant(I,1) (0) +41: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +42: Throw() (0) +Instrumenting right ()Ljava_cup/runtime/ComplexSymbolFactory$Location;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (1) +2: Invoke(VIRTUAL,Ljava/util/LinkedList;,descendingIterator,()Ljava/util/Iterator;) (4) +3: LocalStore(Ljava/lang/Object;,1) (7) +4: LocalLoad(Ljava/lang/Object;,1) (8) +5: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (9) +6: Constant(I,0) (14) +7: ConditionalBranch(I,eq,19) (14) +8: LocalLoad(Ljava/lang/Object;,1) (17) +9: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (18) +10: CheckCast(Ljava_cup/runtime/XMLElement;) (23) +11: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (26) +12: LocalStore(Ljava/lang/Object;,2) (29) +13: LocalLoad(Ljava/lang/Object;,2) (30) +14: Constant(L;,null) (31) +15: ConditionalBranch(Ljava/lang/Object;,eq,18) (31) +16: LocalLoad(Ljava/lang/Object;,2) (34) +17: Return(Ljava/lang/Object;) (35) +18: Goto(4) (36) +19: Constant(L;,null) (39) +20: Return(Ljava/lang/Object;) (40) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +1: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 35 +5: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (1) + Handles null at 35 +6: Invoke(VIRTUAL,Ljava/util/LinkedList;,descendingIterator,()Ljava/util/Iterator;) (4) + Handles null at 35 +7: LocalStore(Ljava/lang/Object;,1) (7) + Handles null at 35 +8: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 35 +9: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (9) + Handles null at 35 +10: Constant(I,0) (14) + Handles null at 35 +11: ConditionalBranch(I,eq,28) (14) + Handles null at 35 +12: LocalLoad(Ljava/lang/Object;,1) (17) + Handles null at 35 +13: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (18) + Handles null at 35 +14: CheckCast(Ljava_cup/runtime/XMLElement;) (23) + Handles null at 35 +15: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (26) + Handles null at 35 +16: LocalStore(Ljava/lang/Object;,2) (29) + Handles null at 35 +17: LocalLoad(Ljava/lang/Object;,2) (30) + Handles null at 35 +18: Constant(L;,null) (31) + Handles null at 35 +19: ConditionalBranch(Ljava/lang/Object;,eq,27) (31) + Handles null at 35 +20: LocalLoad(Ljava/lang/Object;,2) (34) + Handles null at 35 +21: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (35) + Handles null at 35 +22: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (35) + Handles null at 35 +23: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 35 +24: Constant(I,0) (35) + Handles null at 35 +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 35 +26: Return(Ljava/lang/Object;) (35) + Handles null at 35 +27: Goto(8) (36) + Handles null at 35 +28: Constant(L;,null) (39) + Handles null at 35 +29: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (40) + Handles null at 35 +30: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (40) + Handles null at 35 +31: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 35 +32: Constant(I,0) (40) + Handles null at 35 +33: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (40) + Handles null at 35 +34: Return(Ljava/lang/Object;) (40) + Handles null at 35 +35: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +36: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +37: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +38: Constant(I,1) (0) +39: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +40: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (1) +2: Invoke(VIRTUAL,Ljava/util/LinkedList;,isEmpty,()Z) (4) +3: Constant(I,0) (7) +4: ConditionalBranch(I,eq,22) (7) +5: New(Ljava/lang/StringBuilder;,0) (10) +6: Dup(1,0) (13) +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (14) +8: Constant(Ljava/lang/String;,"") (41) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (46) +21: Return(Ljava/lang/Object;) (49) +22: New(Ljava/lang/StringBuilder;,0) (50) +23: Dup(1,0) (53) +24: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (54) +25: Constant(Ljava/lang/String;,"") (105) +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (107) +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (110) +48: LocalStore(Ljava/lang/Object;,1) (113) +49: LocalLoad(Ljava/lang/Object;,0) (114) +50: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (115) +51: Invoke(VIRTUAL,Ljava/util/LinkedList;,iterator,()Ljava/util/Iterator;) (118) +52: LocalStore(Ljava/lang/Object;,2) (121) +53: LocalLoad(Ljava/lang/Object;,2) (122) +54: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (123) +55: Constant(I,0) (128) +56: ConditionalBranch(I,eq,72) (128) +57: LocalLoad(Ljava/lang/Object;,2) (131) +58: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (132) +59: CheckCast(Ljava_cup/runtime/XMLElement;) (137) +60: LocalStore(Ljava/lang/Object;,3) (140) +61: New(Ljava/lang/StringBuilder;,0) (141) +62: Dup(1,0) (144) +63: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (145) +64: LocalLoad(Ljava/lang/Object;,1) (148) +65: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (149) +66: LocalLoad(Ljava/lang/Object;,3) (152) +67: Invoke(VIRTUAL,Ljava/lang/Object;,toString,()Ljava/lang/String;) (153) +68: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) +69: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (159) +70: LocalStore(Ljava/lang/Object;,1) (162) +71: Goto(53) (163) +72: New(Ljava/lang/StringBuilder;,0) (166) +73: Dup(1,0) (169) +74: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (170) +75: LocalLoad(Ljava/lang/Object;,1) (173) +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (174) +77: Constant(Ljava/lang/String;,"") (177) +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (179) +79: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (182) +80: Return(Ljava/lang/Object;) (185) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 95 +5: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (1) + Handles null at 95 +6: Invoke(VIRTUAL,Ljava/util/LinkedList;,isEmpty,()Z) (4) + Handles null at 95 +7: Constant(I,0) (7) + Handles null at 95 +8: ConditionalBranch(I,eq,31) (7) + Handles null at 95 +9: New(Ljava/lang/StringBuilder;,0) (10) + Handles null at 95 +10: Dup(1,0) (13) + Handles null at 95 +11: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (14) + Handles null at 95 +12: Constant(Ljava/lang/String;,"") (41) + Handles null at 95 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) + Handles null at 95 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (46) + Handles null at 95 +25: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (49) + Handles null at 95 +26: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (49) + Handles null at 95 +27: LocalLoad(Ljava/lang/Object;,0) (49) + Handles null at 95 +28: Constant(I,0) (49) + Handles null at 95 +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (49) + Handles null at 95 +30: Return(Ljava/lang/Object;) (49) + Handles null at 95 +31: New(Ljava/lang/StringBuilder;,0) (50) + Handles null at 95 +32: Dup(1,0) (53) + Handles null at 95 +33: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (54) + Handles null at 95 +34: Constant(Ljava/lang/String;,"") (105) + Handles null at 95 +55: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (107) + Handles null at 95 +56: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (110) + Handles null at 95 +57: LocalStore(Ljava/lang/Object;,1) (113) + Handles null at 95 +58: LocalLoad(Ljava/lang/Object;,0) (114) + Handles null at 95 +59: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (115) + Handles null at 95 +60: Invoke(VIRTUAL,Ljava/util/LinkedList;,iterator,()Ljava/util/Iterator;) (118) + Handles null at 95 +61: LocalStore(Ljava/lang/Object;,2) (121) + Handles null at 95 +62: LocalLoad(Ljava/lang/Object;,2) (122) + Handles null at 95 +63: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (123) + Handles null at 95 +64: Constant(I,0) (128) + Handles null at 95 +65: ConditionalBranch(I,eq,81) (128) + Handles null at 95 +66: LocalLoad(Ljava/lang/Object;,2) (131) + Handles null at 95 +67: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (132) + Handles null at 95 +68: CheckCast(Ljava_cup/runtime/XMLElement;) (137) + Handles null at 95 +69: LocalStore(Ljava/lang/Object;,3) (140) + Handles null at 95 +70: New(Ljava/lang/StringBuilder;,0) (141) + Handles null at 95 +71: Dup(1,0) (144) + Handles null at 95 +72: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (145) + Handles null at 95 +73: LocalLoad(Ljava/lang/Object;,1) (148) + Handles null at 95 +74: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (149) + Handles null at 95 +75: LocalLoad(Ljava/lang/Object;,3) (152) + Handles null at 95 +76: Invoke(VIRTUAL,Ljava/lang/Object;,toString,()Ljava/lang/String;) (153) + Handles null at 95 +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (156) + Handles null at 95 +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (159) + Handles null at 95 +79: LocalStore(Ljava/lang/Object;,1) (162) + Handles null at 95 +80: Goto(62) (163) + Handles null at 95 +81: New(Ljava/lang/StringBuilder;,0) (166) + Handles null at 95 +82: Dup(1,0) (169) + Handles null at 95 +83: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (170) + Handles null at 95 +84: LocalLoad(Ljava/lang/Object;,1) (173) + Handles null at 95 +85: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (174) + Handles null at 95 +86: Constant(Ljava/lang/String;,"") (177) + Handles null at 95 +87: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (179) + Handles null at 95 +88: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (182) + Handles null at 95 +89: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (185) + Handles null at 95 +90: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (185) + Handles null at 95 +91: LocalLoad(Ljava/lang/Object;,0) (185) + Handles null at 95 +92: Constant(I,0) (185) + Handles null at 95 +93: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (185) + Handles null at 95 +94: Return(Ljava/lang/Object;) (185) + Handles null at 95 +95: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +96: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +97: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +98: Constant(I,1) (0) +99: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +100: Throw() (0) +Instrumenting dump (Ljavax/xml/stream/XMLStreamWriter;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(Ljava/lang/String;,"nonterminal") (1) +2: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (3) +3: LocalLoad(Ljava/lang/Object;,1) (8) +4: Constant(Ljava/lang/String;,"id") (9) +5: LocalLoad(Ljava/lang/Object;,0) (11) +6: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,tagname) (12) +7: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (15) +8: LocalLoad(Ljava/lang/Object;,1) (20) +9: Constant(Ljava/lang/String;,"variant") (21) +10: New(Ljava/lang/StringBuilder;,0) (23) +11: Dup(1,0) (26) +12: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) +13: LocalLoad(Ljava/lang/Object;,0) (30) +14: Get(I,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,variant) (31) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (34) +16: Constant(Ljava/lang/String;,"") (37) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (39) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (42) +19: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (45) +20: LocalLoad(Ljava/lang/Object;,0) (50) +21: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$NonTerminal;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (51) +22: LocalStore(Ljava/lang/Object;,2) (54) +23: LocalLoad(Ljava/lang/Object;,2) (55) +24: Constant(L;,null) (56) +25: ConditionalBranch(Ljava/lang/Object;,eq,30) (56) +26: LocalLoad(Ljava/lang/Object;,2) (59) +27: LocalLoad(Ljava/lang/Object;,1) (60) +28: Constant(Ljava/lang/String;,"left") (61) +29: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,toXML,(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V) (63) +30: LocalLoad(Ljava/lang/Object;,0) (66) +31: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (67) +32: Invoke(VIRTUAL,Ljava/util/LinkedList;,iterator,()Ljava/util/Iterator;) (70) +33: LocalStore(Ljava/lang/Object;,3) (73) +34: LocalLoad(Ljava/lang/Object;,3) (74) +35: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (75) +36: Constant(I,0) (80) +37: ConditionalBranch(I,eq,46) (80) +38: LocalLoad(Ljava/lang/Object;,3) (83) +39: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (84) +40: CheckCast(Ljava_cup/runtime/XMLElement;) (89) +41: LocalStore(Ljava/lang/Object;,4) (92) +42: LocalLoad(Ljava/lang/Object;,4) (94) +43: LocalLoad(Ljava/lang/Object;,1) (96) +44: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,dump,(Ljavax/xml/stream/XMLStreamWriter;)V) (97) +45: Goto(34) (100) +46: LocalLoad(Ljava/lang/Object;,0) (103) +47: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$NonTerminal;,right,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (104) +48: LocalStore(Ljava/lang/Object;,2) (107) +49: LocalLoad(Ljava/lang/Object;,2) (108) +50: Constant(L;,null) (109) +51: ConditionalBranch(Ljava/lang/Object;,eq,56) (109) +52: LocalLoad(Ljava/lang/Object;,2) (112) +53: LocalLoad(Ljava/lang/Object;,1) (113) +54: Constant(Ljava/lang/String;,"right") (114) +55: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,toXML,(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V) (116) +56: LocalLoad(Ljava/lang/Object;,1) (119) +57: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (120) +58: Return(V) (125) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +1: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 68 +5: Constant(Ljava/lang/String;,"nonterminal") (1) + Handles null at 68 +6: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (3) + Handles null at 68 +7: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 68 +8: Constant(Ljava/lang/String;,"id") (9) + Handles null at 68 +9: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 68 +10: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,tagname) (12) + Handles null at 68 +11: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (15) + Handles null at 68 +12: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 68 +13: Constant(Ljava/lang/String;,"variant") (21) + Handles null at 68 +14: New(Ljava/lang/StringBuilder;,0) (23) + Handles null at 68 +15: Dup(1,0) (26) + Handles null at 68 +16: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) + Handles null at 68 +17: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 68 +18: Get(I,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,variant) (31) + Handles null at 68 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (34) + Handles null at 68 +20: Constant(Ljava/lang/String;,"") (37) + Handles null at 68 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (39) + Handles null at 68 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (42) + Handles null at 68 +23: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (45) + Handles null at 68 +24: LocalLoad(Ljava/lang/Object;,0) (50) + Handles null at 68 +25: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$NonTerminal;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (51) + Handles null at 68 +26: LocalStore(Ljava/lang/Object;,2) (54) + Handles null at 68 +27: LocalLoad(Ljava/lang/Object;,2) (55) + Handles null at 68 +28: Constant(L;,null) (56) + Handles null at 68 +29: ConditionalBranch(Ljava/lang/Object;,eq,34) (56) + Handles null at 68 +30: LocalLoad(Ljava/lang/Object;,2) (59) + Handles null at 68 +31: LocalLoad(Ljava/lang/Object;,1) (60) + Handles null at 68 +32: Constant(Ljava/lang/String;,"left") (61) + Handles null at 68 +33: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,toXML,(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V) (63) + Handles null at 68 +34: LocalLoad(Ljava/lang/Object;,0) (66) + Handles null at 68 +35: Get(Ljava/util/LinkedList;,NONSTATIC,Ljava_cup/runtime/XMLElement$NonTerminal;,list) (67) + Handles null at 68 +36: Invoke(VIRTUAL,Ljava/util/LinkedList;,iterator,()Ljava/util/Iterator;) (70) + Handles null at 68 +37: LocalStore(Ljava/lang/Object;,3) (73) + Handles null at 68 +38: LocalLoad(Ljava/lang/Object;,3) (74) + Handles null at 68 +39: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (75) + Handles null at 68 +40: Constant(I,0) (80) + Handles null at 68 +41: ConditionalBranch(I,eq,50) (80) + Handles null at 68 +42: LocalLoad(Ljava/lang/Object;,3) (83) + Handles null at 68 +43: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (84) + Handles null at 68 +44: CheckCast(Ljava_cup/runtime/XMLElement;) (89) + Handles null at 68 +45: LocalStore(Ljava/lang/Object;,4) (92) + Handles null at 68 +46: LocalLoad(Ljava/lang/Object;,4) (94) + Handles null at 68 +47: LocalLoad(Ljava/lang/Object;,1) (96) + Handles null at 68 +48: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,dump,(Ljavax/xml/stream/XMLStreamWriter;)V) (97) + Handles null at 68 +49: Goto(38) (100) + Handles null at 68 +50: LocalLoad(Ljava/lang/Object;,0) (103) + Handles null at 68 +51: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$NonTerminal;,right,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (104) + Handles null at 68 +52: LocalStore(Ljava/lang/Object;,2) (107) + Handles null at 68 +53: LocalLoad(Ljava/lang/Object;,2) (108) + Handles null at 68 +54: Constant(L;,null) (109) + Handles null at 68 +55: ConditionalBranch(Ljava/lang/Object;,eq,60) (109) + Handles null at 68 +56: LocalLoad(Ljava/lang/Object;,2) (112) + Handles null at 68 +57: LocalLoad(Ljava/lang/Object;,1) (113) + Handles null at 68 +58: Constant(Ljava/lang/String;,"right") (114) + Handles null at 68 +59: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,toXML,(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V) (116) + Handles null at 68 +60: LocalLoad(Ljava/lang/Object;,1) (119) + Handles null at 68 +61: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (120) + Handles null at 68 +62: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (125) + Handles null at 68 +63: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (125) + Handles null at 68 +64: LocalLoad(Ljava/lang/Object;,0) (125) + Handles null at 68 +65: Constant(I,0) (125) + Handles null at 68 +66: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (125) + Handles null at 68 +67: Return(V) (125) + Handles null at 68 +68: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$NonTerminal") (0) +69: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (0) +70: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +71: Constant(I,1) (0) +72: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +73: Throw() (0) +Class: java_cup/runtime/XMLElement$Terminal +Instrumenting selectById (Ljava/lang/String;)Ljava/util/List;: +Initial ShrikeBT code: +0: New(Ljava/util/LinkedList;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,2) (7) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,tagname) (9) +6: LocalLoad(Ljava/lang/Object;,1) (12) +7: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (13) +8: Constant(I,0) (16) +9: ConditionalBranch(I,eq,14) (16) +10: LocalLoad(Ljava/lang/Object;,2) (19) +11: LocalLoad(Ljava/lang/Object;,0) (20) +12: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (21) +13: Pop(1) (26) +14: LocalLoad(Ljava/lang/Object;,2) (27) +15: Return(Ljava/lang/Object;) (28) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +1: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/LinkedList;,0) (0) + Handles null at 25 +5: Dup(1,0) (3) + Handles null at 25 +6: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (4) + Handles null at 25 +7: LocalStore(Ljava/lang/Object;,2) (7) + Handles null at 25 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +9: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,tagname) (9) + Handles null at 25 +10: LocalLoad(Ljava/lang/Object;,1) (12) + Handles null at 25 +11: Invoke(VIRTUAL,Ljava/lang/String;,equals,(Ljava/lang/Object;)Z) (13) + Handles null at 25 +12: Constant(I,0) (16) + Handles null at 25 +13: ConditionalBranch(I,eq,18) (16) + Handles null at 25 +14: LocalLoad(Ljava/lang/Object;,2) (19) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 25 +16: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (21) + Handles null at 25 +17: Pop(1) (26) + Handles null at 25 +18: LocalLoad(Ljava/lang/Object;,2) (27) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (28) + Handles null at 25 +20: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (28) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 25 +22: Constant(I,0) (28) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (28) + Handles null at 25 +24: Return(Ljava/lang/Object;) (28) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +26: Constant(Ljava/lang/String;,"selectById(Ljava/lang/String;)Ljava/util/List;") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting (Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Constant(L;,null) (3) +4: LocalLoad(Ljava/lang/Object;,3) (4) +5: Invoke(SPECIAL,Ljava_cup/runtime/XMLElement$Terminal;,,(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava/lang/Object;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V) (5) +6: Return(V) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 16 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 16 +7: Constant(L;,null) (3) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,3) (4) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/runtime/XMLElement$Terminal;,,(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava/lang/Object;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V) (5) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (8) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (8) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 16 +13: Constant(I,0) (8) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 16 +15: Return(V) (8) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +17: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting (Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava/lang/Object;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/runtime/XMLElement;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,l) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: LocalLoad(Ljava/lang/Object;,4) (10) +7: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,r) (12) +8: LocalLoad(Ljava/lang/Object;,0) (15) +9: LocalLoad(Ljava/lang/Object;,3) (16) +10: Put(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (17) +11: LocalLoad(Ljava/lang/Object;,0) (20) +12: LocalLoad(Ljava/lang/Object;,2) (21) +13: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,tagname) (22) +14: Return(V) (25) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava/lang/Object;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: Invoke(SPECIAL,Ljava_cup/runtime/XMLElement;,,()V) (1) + Handles null at 24 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 24 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 24 +8: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,l) (6) + Handles null at 24 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 24 +10: LocalLoad(Ljava/lang/Object;,4) (10) + Handles null at 24 +11: Put(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,r) (12) + Handles null at 24 +12: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 24 +13: LocalLoad(Ljava/lang/Object;,3) (16) + Handles null at 24 +14: Put(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (17) + Handles null at 24 +15: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 24 +16: LocalLoad(Ljava/lang/Object;,2) (21) + Handles null at 24 +17: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,tagname) (22) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (25) + Handles null at 24 +19: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava/lang/Object;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (25) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 24 +21: Constant(I,0) (25) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (25) + Handles null at 24 +23: Return(V) (25) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +25: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/ComplexSymbolFactory$Location;Ljava/lang/String;Ljava/lang/Object;Ljava_cup/runtime/ComplexSymbolFactory$Location;)V") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting value ()Ljava/lang/Object;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +1: Constant(Ljava/lang/String;,"value()Ljava/lang/Object;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"value()Ljava/lang/Object;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +13: Constant(Ljava/lang/String;,"value()Ljava/lang/Object;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting left ()Ljava_cup/runtime/ComplexSymbolFactory$Location;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,l) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +1: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,l) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +13: Constant(Ljava/lang/String;,"left()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting right ()Ljava_cup/runtime/ComplexSymbolFactory$Location;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,r) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +1: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/runtime/ComplexSymbolFactory$Location;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,r) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +13: Constant(Ljava/lang/String;,"right()Ljava_cup/runtime/ComplexSymbolFactory$Location;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (1) +2: Constant(L;,null) (4) +3: ConditionalBranch(Ljava/lang/Object;,ne,16) (4) +4: New(Ljava/lang/StringBuilder;,0) (7) +5: Dup(1,0) (10) +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (11) +7: Constant(Ljava/lang/String;,"") (26) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (31) +15: Goto(42) (34) +16: New(Ljava/lang/StringBuilder;,0) (37) +17: Dup(1,0) (40) +18: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (41) +19: Constant(Ljava/lang/String;,"") (80) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (82) +36: LocalLoad(Ljava/lang/Object;,0) (85) +37: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (86) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (89) +39: Constant(Ljava/lang/String;,"") (92) +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (94) +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (97) +42: Return(Ljava/lang/Object;) (100) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 52 +5: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (1) + Handles null at 52 +6: Constant(L;,null) (4) + Handles null at 52 +7: ConditionalBranch(Ljava/lang/Object;,ne,20) (4) + Handles null at 52 +8: New(Ljava/lang/StringBuilder;,0) (7) + Handles null at 52 +9: Dup(1,0) (10) + Handles null at 52 +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (11) + Handles null at 52 +11: Constant(Ljava/lang/String;,"") (26) + Handles null at 52 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 52 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (31) + Handles null at 52 +19: Goto(46) (34) + Handles null at 52 +20: New(Ljava/lang/StringBuilder;,0) (37) + Handles null at 52 +21: Dup(1,0) (40) + Handles null at 52 +22: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (41) + Handles null at 52 +23: Constant(Ljava/lang/String;,"") (80) + Handles null at 52 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (82) + Handles null at 52 +40: LocalLoad(Ljava/lang/Object;,0) (85) + Handles null at 52 +41: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (86) + Handles null at 52 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (89) + Handles null at 52 +43: Constant(Ljava/lang/String;,"") (92) + Handles null at 52 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (94) + Handles null at 52 +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (97) + Handles null at 52 +46: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (100) + Handles null at 52 +47: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (100) + Handles null at 52 +48: LocalLoad(Ljava/lang/Object;,0) (100) + Handles null at 52 +49: Constant(I,0) (100) + Handles null at 52 +50: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (100) + Handles null at 52 +51: Return(Ljava/lang/Object;) (100) + Handles null at 52 +52: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +53: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +54: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +55: Constant(I,1) (0) +56: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +57: Throw() (0) +Instrumenting dump (Ljavax/xml/stream/XMLStreamWriter;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(Ljava/lang/String;,"terminal") (1) +2: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (3) +3: LocalLoad(Ljava/lang/Object;,1) (8) +4: Constant(Ljava/lang/String;,"id") (9) +5: LocalLoad(Ljava/lang/Object;,0) (11) +6: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,tagname) (12) +7: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (15) +8: LocalLoad(Ljava/lang/Object;,1) (20) +9: Constant(Ljava/lang/String;,"left") (21) +10: New(Ljava/lang/StringBuilder;,0) (23) +11: Dup(1,0) (26) +12: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) +13: LocalLoad(Ljava/lang/Object;,0) (30) +14: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$Terminal;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (31) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (34) +16: Constant(Ljava/lang/String;,"") (37) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (39) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (42) +19: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (45) +20: LocalLoad(Ljava/lang/Object;,1) (50) +21: Constant(Ljava/lang/String;,"right") (51) +22: New(Ljava/lang/StringBuilder;,0) (53) +23: Dup(1,0) (56) +24: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (57) +25: LocalLoad(Ljava/lang/Object;,0) (60) +26: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$Terminal;,right,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (61) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (64) +28: Constant(Ljava/lang/String;,"") (67) +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (72) +31: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (75) +32: LocalLoad(Ljava/lang/Object;,0) (80) +33: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (81) +34: Constant(L;,null) (84) +35: ConditionalBranch(Ljava/lang/Object;,eq,47) (84) +36: LocalLoad(Ljava/lang/Object;,1) (87) +37: New(Ljava/lang/StringBuilder;,0) (88) +38: Dup(1,0) (91) +39: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (92) +40: LocalLoad(Ljava/lang/Object;,0) (95) +41: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (96) +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (99) +43: Constant(Ljava/lang/String;,"") (102) +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (104) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (107) +46: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (110) +47: LocalLoad(Ljava/lang/Object;,1) (115) +48: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (116) +49: Return(V) (121) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +1: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 59 +5: Constant(Ljava/lang/String;,"terminal") (1) + Handles null at 59 +6: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (3) + Handles null at 59 +7: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 59 +8: Constant(Ljava/lang/String;,"id") (9) + Handles null at 59 +9: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 59 +10: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,tagname) (12) + Handles null at 59 +11: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (15) + Handles null at 59 +12: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 59 +13: Constant(Ljava/lang/String;,"left") (21) + Handles null at 59 +14: New(Ljava/lang/StringBuilder;,0) (23) + Handles null at 59 +15: Dup(1,0) (26) + Handles null at 59 +16: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) + Handles null at 59 +17: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 59 +18: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$Terminal;,left,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (31) + Handles null at 59 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (34) + Handles null at 59 +20: Constant(Ljava/lang/String;,"") (37) + Handles null at 59 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (39) + Handles null at 59 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (42) + Handles null at 59 +23: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (45) + Handles null at 59 +24: LocalLoad(Ljava/lang/Object;,1) (50) + Handles null at 59 +25: Constant(Ljava/lang/String;,"right") (51) + Handles null at 59 +26: New(Ljava/lang/StringBuilder;,0) (53) + Handles null at 59 +27: Dup(1,0) (56) + Handles null at 59 +28: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (57) + Handles null at 59 +29: LocalLoad(Ljava/lang/Object;,0) (60) + Handles null at 59 +30: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement$Terminal;,right,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (61) + Handles null at 59 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (64) + Handles null at 59 +32: Constant(Ljava/lang/String;,"") (67) + Handles null at 59 +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) + Handles null at 59 +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (72) + Handles null at 59 +35: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (75) + Handles null at 59 +36: LocalLoad(Ljava/lang/Object;,0) (80) + Handles null at 59 +37: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (81) + Handles null at 59 +38: Constant(L;,null) (84) + Handles null at 59 +39: ConditionalBranch(Ljava/lang/Object;,eq,51) (84) + Handles null at 59 +40: LocalLoad(Ljava/lang/Object;,1) (87) + Handles null at 59 +41: New(Ljava/lang/StringBuilder;,0) (88) + Handles null at 59 +42: Dup(1,0) (91) + Handles null at 59 +43: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (92) + Handles null at 59 +44: LocalLoad(Ljava/lang/Object;,0) (95) + Handles null at 59 +45: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/XMLElement$Terminal;,value) (96) + Handles null at 59 +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (99) + Handles null at 59 +47: Constant(Ljava/lang/String;,"") (102) + Handles null at 59 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (104) + Handles null at 59 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (107) + Handles null at 59 +50: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (110) + Handles null at 59 +51: LocalLoad(Ljava/lang/Object;,1) (115) + Handles null at 59 +52: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (116) + Handles null at 59 +53: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (121) + Handles null at 59 +54: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (121) + Handles null at 59 +55: LocalLoad(Ljava/lang/Object;,0) (121) + Handles null at 59 +56: Constant(I,0) (121) + Handles null at 59 +57: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (121) + Handles null at 59 +58: Return(V) (121) + Handles null at 59 +59: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement$Terminal") (0) +60: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;)V") (0) +61: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +62: Constant(I,1) (0) +63: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +64: Throw() (0) +Class: java_cup/runtime/XMLElement +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting dump (Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Constant(L;,null) (0) +1: LocalLoad(Ljava/lang/Object;,0) (1) +2: LocalLoad(Ljava/lang/Object;,1) (2) +3: LocalLoad(Ljava/lang/Object;,2) (3) +4: Invoke(STATIC,Ljava_cup/runtime/XMLElement;,dump,(Ljava_cup/runtime/ScannerBuffer;Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V) (4) +5: Return(V) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (0) +1: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(L;,null) (0) + Handles null at 15 +5: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,1) (2) + Handles null at 15 +7: LocalLoad(Ljava/lang/Object;,2) (3) + Handles null at 15 +8: Invoke(STATIC,Ljava_cup/runtime/XMLElement;,dump,(Ljava_cup/runtime/ScannerBuffer;Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V) (4) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (7) + Handles null at 15 +10: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V") (7) + Handles null at 15 +11: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (7) + Handles null at 15 +12: Constant(I,0) (7) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 15 +14: Return(V) (7) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (0) +16: Constant(Ljava/lang/String;,"dump(Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting dump (Ljava_cup/runtime/ScannerBuffer;Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(Ljava/lang/String;,"utf-8") (1) +2: Constant(Ljava/lang/String;,"1.0") (3) +3: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartDocument,(Ljava/lang/String;Ljava/lang/String;)V) (5) +4: LocalLoad(Ljava/lang/Object;,1) (10) +5: Constant(Ljava/lang/String;,"xml-stylesheet") (11) +6: Constant(Ljava/lang/String;,"href=\"tree.xsl\" type=\"text/xsl\"") (13) +7: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeProcessingInstruction,(Ljava/lang/String;Ljava/lang/String;)V) (15) +8: LocalLoad(Ljava/lang/Object;,1) (20) +9: Constant(Ljava/lang/String;,"document") (21) +10: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (23) +11: LocalLoad(Ljava/lang/Object;,3) (28) +12: ArrayLength() (29) +13: Constant(I,0) (30) +14: ConditionalBranch(I,le,47) (30) +15: LocalLoad(Ljava/lang/Object;,1) (33) +16: Constant(Ljava/lang/String;,"blacklist") (34) +17: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (36) +18: LocalLoad(Ljava/lang/Object;,3) (41) +19: LocalStore(Ljava/lang/Object;,4) (42) +20: LocalLoad(Ljava/lang/Object;,4) (44) +21: ArrayLength() (46) +22: LocalStore(I,5) (47) +23: Constant(I,0) (49) +24: LocalStore(I,6) (50) +25: LocalLoad(I,6) (52) +26: LocalLoad(I,5) (54) +27: ConditionalBranch(I,ge,45) (56) +28: LocalLoad(Ljava/lang/Object;,4) (59) +29: LocalLoad(I,6) (61) +30: ArrayLoad(Ljava/lang/Object;) (63) +31: LocalStore(Ljava/lang/Object;,7) (64) +32: LocalLoad(Ljava/lang/Object;,1) (66) +33: Constant(Ljava/lang/String;,"symbol") (67) +34: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (69) +35: LocalLoad(Ljava/lang/Object;,1) (74) +36: LocalLoad(Ljava/lang/Object;,7) (75) +37: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (77) +38: LocalLoad(Ljava/lang/Object;,1) (82) +39: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (83) +40: LocalLoad(I,6) (88) +41: Constant(I,1) (88) +42: BinaryOp(I,add) (88) +43: LocalStore(I,6) (88) +44: Goto(25) (91) +45: LocalLoad(Ljava/lang/Object;,1) (94) +46: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (95) +47: LocalLoad(Ljava/lang/Object;,1) (100) +48: Constant(Ljava/lang/String;,"parsetree") (101) +49: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (103) +50: LocalLoad(Ljava/lang/Object;,2) (108) +51: LocalLoad(Ljava/lang/Object;,1) (109) +52: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,dump,(Ljavax/xml/stream/XMLStreamWriter;)V) (110) +53: LocalLoad(Ljava/lang/Object;,1) (113) +54: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (114) +55: LocalLoad(Ljava/lang/Object;,0) (119) +56: Constant(L;,null) (120) +57: ConditionalBranch(Ljava/lang/Object;,eq,173) (120) +58: LocalLoad(Ljava/lang/Object;,1) (123) +59: Constant(Ljava/lang/String;,"tokensequence") (124) +60: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (126) +61: LocalLoad(Ljava/lang/Object;,0) (131) +62: Invoke(VIRTUAL,Ljava_cup/runtime/ScannerBuffer;,getBuffered,()Ljava/util/List;) (132) +63: Invoke(INTERFACE,Ljava/util/List;,iterator,()Ljava/util/Iterator;) (135) +64: LocalStore(Ljava/lang/Object;,4) (140) +65: LocalLoad(Ljava/lang/Object;,4) (142) +66: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (144) +67: Constant(I,0) (149) +68: ConditionalBranch(I,eq,171) (149) +69: LocalLoad(Ljava/lang/Object;,4) (152) +70: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (154) +71: CheckCast(Ljava_cup/runtime/Symbol;) (159) +72: LocalStore(Ljava/lang/Object;,5) (162) +73: LocalLoad(Ljava/lang/Object;,5) (164) +74: Instanceof(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (166) +75: Constant(I,0) (169) +76: ConditionalBranch(I,eq,157) (169) +77: LocalLoad(Ljava/lang/Object;,5) (172) +78: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (174) +79: LocalStore(Ljava/lang/Object;,6) (177) +80: LocalLoad(Ljava/lang/Object;,6) (179) +81: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,value) (181) +82: Constant(L;,null) (184) +83: ConditionalBranch(Ljava/lang/Object;,eq,116) (184) +84: LocalLoad(Ljava/lang/Object;,1) (187) +85: Constant(Ljava/lang/String;,"token") (188) +86: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (190) +87: LocalLoad(Ljava/lang/Object;,1) (195) +88: Constant(Ljava/lang/String;,"name") (196) +89: LocalLoad(Ljava/lang/Object;,6) (198) +90: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getName,()Ljava/lang/String;) (200) +91: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (203) +92: LocalLoad(Ljava/lang/Object;,6) (208) +93: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getLeft,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (210) +94: LocalLoad(Ljava/lang/Object;,1) (213) +95: Constant(Ljava/lang/String;,"left") (214) +96: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,toXML,(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V) (216) +97: LocalLoad(Ljava/lang/Object;,1) (219) +98: New(Ljava/lang/StringBuilder;,0) (220) +99: Dup(1,0) (223) +100: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (224) +101: LocalLoad(Ljava/lang/Object;,6) (227) +102: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,value) (229) +103: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (232) +104: Constant(Ljava/lang/String;,"") (235) +105: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (237) +106: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (240) +107: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (243) +108: LocalLoad(Ljava/lang/Object;,6) (248) +109: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getRight,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (250) +110: LocalLoad(Ljava/lang/Object;,1) (253) +111: Constant(Ljava/lang/String;,"right") (254) +112: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,toXML,(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V) (256) +113: LocalLoad(Ljava/lang/Object;,1) (259) +114: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (260) +115: Goto(156) (265) +116: LocalLoad(Ljava/lang/Object;,1) (268) +117: Constant(Ljava/lang/String;,"keyword") (269) +118: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (271) +119: LocalLoad(Ljava/lang/Object;,1) (276) +120: Constant(Ljava/lang/String;,"left") (277) +121: New(Ljava/lang/StringBuilder;,0) (279) +122: Dup(1,0) (282) +123: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (283) +124: LocalLoad(Ljava/lang/Object;,6) (286) +125: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getLeft,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (288) +126: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (291) +127: Constant(Ljava/lang/String;,"") (294) +128: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (296) +129: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (299) +130: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (302) +131: LocalLoad(Ljava/lang/Object;,1) (307) +132: Constant(Ljava/lang/String;,"right") (308) +133: New(Ljava/lang/StringBuilder;,0) (310) +134: Dup(1,0) (313) +135: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (314) +136: LocalLoad(Ljava/lang/Object;,6) (317) +137: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getRight,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (319) +138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (322) +139: Constant(Ljava/lang/String;,"") (325) +140: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (327) +141: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (330) +142: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (333) +143: LocalLoad(Ljava/lang/Object;,1) (338) +144: New(Ljava/lang/StringBuilder;,0) (339) +145: Dup(1,0) (342) +146: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (343) +147: LocalLoad(Ljava/lang/Object;,6) (346) +148: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getName,()Ljava/lang/String;) (348) +149: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (351) +150: Constant(Ljava/lang/String;,"") (354) +151: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (356) +152: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (359) +153: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (362) +154: LocalLoad(Ljava/lang/Object;,1) (367) +155: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (368) +156: Goto(170) (373) +157: LocalLoad(Ljava/lang/Object;,5) (376) +158: Instanceof(Ljava_cup/runtime/Symbol;) (378) +159: Constant(I,0) (381) +160: ConditionalBranch(I,eq,170) (381) +161: LocalLoad(Ljava/lang/Object;,1) (384) +162: Constant(Ljava/lang/String;,"token") (385) +163: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (387) +164: LocalLoad(Ljava/lang/Object;,1) (392) +165: LocalLoad(Ljava/lang/Object;,5) (393) +166: Invoke(VIRTUAL,Ljava_cup/runtime/Symbol;,toString,()Ljava/lang/String;) (395) +167: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (398) +168: LocalLoad(Ljava/lang/Object;,1) (403) +169: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (404) +170: Goto(65) (409) +171: LocalLoad(Ljava/lang/Object;,1) (412) +172: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (413) +173: LocalLoad(Ljava/lang/Object;,1) (418) +174: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (419) +175: LocalLoad(Ljava/lang/Object;,1) (424) +176: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndDocument,()V) (425) +177: LocalLoad(Ljava/lang/Object;,1) (430) +178: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,flush,()V) (431) +179: LocalLoad(Ljava/lang/Object;,1) (436) +180: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,close,()V) (437) +181: Return(V) (442) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (0) +1: Constant(Ljava/lang/String;,"dump(Ljava_cup/runtime/ScannerBuffer;Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 191 +5: Constant(Ljava/lang/String;,"utf-8") (1) + Handles null at 191 +6: Constant(Ljava/lang/String;,"1.0") (3) + Handles null at 191 +7: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartDocument,(Ljava/lang/String;Ljava/lang/String;)V) (5) + Handles null at 191 +8: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 191 +9: Constant(Ljava/lang/String;,"xml-stylesheet") (11) + Handles null at 191 +10: Constant(Ljava/lang/String;,"href=\"tree.xsl\" type=\"text/xsl\"") (13) + Handles null at 191 +11: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeProcessingInstruction,(Ljava/lang/String;Ljava/lang/String;)V) (15) + Handles null at 191 +12: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 191 +13: Constant(Ljava/lang/String;,"document") (21) + Handles null at 191 +14: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (23) + Handles null at 191 +15: LocalLoad(Ljava/lang/Object;,3) (28) + Handles null at 191 +16: ArrayLength() (29) + Handles null at 191 +17: Constant(I,0) (30) + Handles null at 191 +18: ConditionalBranch(I,le,51) (30) + Handles null at 191 +19: LocalLoad(Ljava/lang/Object;,1) (33) + Handles null at 191 +20: Constant(Ljava/lang/String;,"blacklist") (34) + Handles null at 191 +21: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (36) + Handles null at 191 +22: LocalLoad(Ljava/lang/Object;,3) (41) + Handles null at 191 +23: LocalStore(Ljava/lang/Object;,4) (42) + Handles null at 191 +24: LocalLoad(Ljava/lang/Object;,4) (44) + Handles null at 191 +25: ArrayLength() (46) + Handles null at 191 +26: LocalStore(I,5) (47) + Handles null at 191 +27: Constant(I,0) (49) + Handles null at 191 +28: LocalStore(I,6) (50) + Handles null at 191 +29: LocalLoad(I,6) (52) + Handles null at 191 +30: LocalLoad(I,5) (54) + Handles null at 191 +31: ConditionalBranch(I,ge,49) (56) + Handles null at 191 +32: LocalLoad(Ljava/lang/Object;,4) (59) + Handles null at 191 +33: LocalLoad(I,6) (61) + Handles null at 191 +34: ArrayLoad(Ljava/lang/Object;) (63) + Handles null at 191 +35: LocalStore(Ljava/lang/Object;,7) (64) + Handles null at 191 +36: LocalLoad(Ljava/lang/Object;,1) (66) + Handles null at 191 +37: Constant(Ljava/lang/String;,"symbol") (67) + Handles null at 191 +38: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (69) + Handles null at 191 +39: LocalLoad(Ljava/lang/Object;,1) (74) + Handles null at 191 +40: LocalLoad(Ljava/lang/Object;,7) (75) + Handles null at 191 +41: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (77) + Handles null at 191 +42: LocalLoad(Ljava/lang/Object;,1) (82) + Handles null at 191 +43: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (83) + Handles null at 191 +44: LocalLoad(I,6) (88) + Handles null at 191 +45: Constant(I,1) (88) + Handles null at 191 +46: BinaryOp(I,add) (88) + Handles null at 191 +47: LocalStore(I,6) (88) + Handles null at 191 +48: Goto(29) (91) + Handles null at 191 +49: LocalLoad(Ljava/lang/Object;,1) (94) + Handles null at 191 +50: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (95) + Handles null at 191 +51: LocalLoad(Ljava/lang/Object;,1) (100) + Handles null at 191 +52: Constant(Ljava/lang/String;,"parsetree") (101) + Handles null at 191 +53: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (103) + Handles null at 191 +54: LocalLoad(Ljava/lang/Object;,2) (108) + Handles null at 191 +55: LocalLoad(Ljava/lang/Object;,1) (109) + Handles null at 191 +56: Invoke(VIRTUAL,Ljava_cup/runtime/XMLElement;,dump,(Ljavax/xml/stream/XMLStreamWriter;)V) (110) + Handles null at 191 +57: LocalLoad(Ljava/lang/Object;,1) (113) + Handles null at 191 +58: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (114) + Handles null at 191 +59: LocalLoad(Ljava/lang/Object;,0) (119) + Handles null at 191 +60: Constant(L;,null) (120) + Handles null at 191 +61: ConditionalBranch(Ljava/lang/Object;,eq,177) (120) + Handles null at 191 +62: LocalLoad(Ljava/lang/Object;,1) (123) + Handles null at 191 +63: Constant(Ljava/lang/String;,"tokensequence") (124) + Handles null at 191 +64: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (126) + Handles null at 191 +65: LocalLoad(Ljava/lang/Object;,0) (131) + Handles null at 191 +66: Invoke(VIRTUAL,Ljava_cup/runtime/ScannerBuffer;,getBuffered,()Ljava/util/List;) (132) + Handles null at 191 +67: Invoke(INTERFACE,Ljava/util/List;,iterator,()Ljava/util/Iterator;) (135) + Handles null at 191 +68: LocalStore(Ljava/lang/Object;,4) (140) + Handles null at 191 +69: LocalLoad(Ljava/lang/Object;,4) (142) + Handles null at 191 +70: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (144) + Handles null at 191 +71: Constant(I,0) (149) + Handles null at 191 +72: ConditionalBranch(I,eq,175) (149) + Handles null at 191 +73: LocalLoad(Ljava/lang/Object;,4) (152) + Handles null at 191 +74: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (154) + Handles null at 191 +75: CheckCast(Ljava_cup/runtime/Symbol;) (159) + Handles null at 191 +76: LocalStore(Ljava/lang/Object;,5) (162) + Handles null at 191 +77: LocalLoad(Ljava/lang/Object;,5) (164) + Handles null at 191 +78: Instanceof(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (166) + Handles null at 191 +79: Constant(I,0) (169) + Handles null at 191 +80: ConditionalBranch(I,eq,161) (169) + Handles null at 191 +81: LocalLoad(Ljava/lang/Object;,5) (172) + Handles null at 191 +82: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (174) + Handles null at 191 +83: LocalStore(Ljava/lang/Object;,6) (177) + Handles null at 191 +84: LocalLoad(Ljava/lang/Object;,6) (179) + Handles null at 191 +85: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,value) (181) + Handles null at 191 +86: Constant(L;,null) (184) + Handles null at 191 +87: ConditionalBranch(Ljava/lang/Object;,eq,120) (184) + Handles null at 191 +88: LocalLoad(Ljava/lang/Object;,1) (187) + Handles null at 191 +89: Constant(Ljava/lang/String;,"token") (188) + Handles null at 191 +90: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (190) + Handles null at 191 +91: LocalLoad(Ljava/lang/Object;,1) (195) + Handles null at 191 +92: Constant(Ljava/lang/String;,"name") (196) + Handles null at 191 +93: LocalLoad(Ljava/lang/Object;,6) (198) + Handles null at 191 +94: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getName,()Ljava/lang/String;) (200) + Handles null at 191 +95: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (203) + Handles null at 191 +96: LocalLoad(Ljava/lang/Object;,6) (208) + Handles null at 191 +97: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getLeft,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (210) + Handles null at 191 +98: LocalLoad(Ljava/lang/Object;,1) (213) + Handles null at 191 +99: Constant(Ljava/lang/String;,"left") (214) + Handles null at 191 +100: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,toXML,(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V) (216) + Handles null at 191 +101: LocalLoad(Ljava/lang/Object;,1) (219) + Handles null at 191 +102: New(Ljava/lang/StringBuilder;,0) (220) + Handles null at 191 +103: Dup(1,0) (223) + Handles null at 191 +104: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (224) + Handles null at 191 +105: LocalLoad(Ljava/lang/Object;,6) (227) + Handles null at 191 +106: Get(Ljava/lang/Object;,NONSTATIC,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,value) (229) + Handles null at 191 +107: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (232) + Handles null at 191 +108: Constant(Ljava/lang/String;,"") (235) + Handles null at 191 +109: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (237) + Handles null at 191 +110: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (240) + Handles null at 191 +111: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (243) + Handles null at 191 +112: LocalLoad(Ljava/lang/Object;,6) (248) + Handles null at 191 +113: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getRight,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (250) + Handles null at 191 +114: LocalLoad(Ljava/lang/Object;,1) (253) + Handles null at 191 +115: Constant(Ljava/lang/String;,"right") (254) + Handles null at 191 +116: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$Location;,toXML,(Ljavax/xml/stream/XMLStreamWriter;Ljava/lang/String;)V) (256) + Handles null at 191 +117: LocalLoad(Ljava/lang/Object;,1) (259) + Handles null at 191 +118: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (260) + Handles null at 191 +119: Goto(160) (265) + Handles null at 191 +120: LocalLoad(Ljava/lang/Object;,1) (268) + Handles null at 191 +121: Constant(Ljava/lang/String;,"keyword") (269) + Handles null at 191 +122: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (271) + Handles null at 191 +123: LocalLoad(Ljava/lang/Object;,1) (276) + Handles null at 191 +124: Constant(Ljava/lang/String;,"left") (277) + Handles null at 191 +125: New(Ljava/lang/StringBuilder;,0) (279) + Handles null at 191 +126: Dup(1,0) (282) + Handles null at 191 +127: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (283) + Handles null at 191 +128: LocalLoad(Ljava/lang/Object;,6) (286) + Handles null at 191 +129: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getLeft,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (288) + Handles null at 191 +130: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (291) + Handles null at 191 +131: Constant(Ljava/lang/String;,"") (294) + Handles null at 191 +132: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (296) + Handles null at 191 +133: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (299) + Handles null at 191 +134: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (302) + Handles null at 191 +135: LocalLoad(Ljava/lang/Object;,1) (307) + Handles null at 191 +136: Constant(Ljava/lang/String;,"right") (308) + Handles null at 191 +137: New(Ljava/lang/StringBuilder;,0) (310) + Handles null at 191 +138: Dup(1,0) (313) + Handles null at 191 +139: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (314) + Handles null at 191 +140: LocalLoad(Ljava/lang/Object;,6) (317) + Handles null at 191 +141: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getRight,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (319) + Handles null at 191 +142: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (322) + Handles null at 191 +143: Constant(Ljava/lang/String;,"") (325) + Handles null at 191 +144: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (327) + Handles null at 191 +145: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (330) + Handles null at 191 +146: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeAttribute,(Ljava/lang/String;Ljava/lang/String;)V) (333) + Handles null at 191 +147: LocalLoad(Ljava/lang/Object;,1) (338) + Handles null at 191 +148: New(Ljava/lang/StringBuilder;,0) (339) + Handles null at 191 +149: Dup(1,0) (342) + Handles null at 191 +150: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (343) + Handles null at 191 +151: LocalLoad(Ljava/lang/Object;,6) (346) + Handles null at 191 +152: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getName,()Ljava/lang/String;) (348) + Handles null at 191 +153: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (351) + Handles null at 191 +154: Constant(Ljava/lang/String;,"") (354) + Handles null at 191 +155: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (356) + Handles null at 191 +156: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (359) + Handles null at 191 +157: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (362) + Handles null at 191 +158: LocalLoad(Ljava/lang/Object;,1) (367) + Handles null at 191 +159: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (368) + Handles null at 191 +160: Goto(174) (373) + Handles null at 191 +161: LocalLoad(Ljava/lang/Object;,5) (376) + Handles null at 191 +162: Instanceof(Ljava_cup/runtime/Symbol;) (378) + Handles null at 191 +163: Constant(I,0) (381) + Handles null at 191 +164: ConditionalBranch(I,eq,174) (381) + Handles null at 191 +165: LocalLoad(Ljava/lang/Object;,1) (384) + Handles null at 191 +166: Constant(Ljava/lang/String;,"token") (385) + Handles null at 191 +167: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeStartElement,(Ljava/lang/String;)V) (387) + Handles null at 191 +168: LocalLoad(Ljava/lang/Object;,1) (392) + Handles null at 191 +169: LocalLoad(Ljava/lang/Object;,5) (393) + Handles null at 191 +170: Invoke(VIRTUAL,Ljava_cup/runtime/Symbol;,toString,()Ljava/lang/String;) (395) + Handles null at 191 +171: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeCharacters,(Ljava/lang/String;)V) (398) + Handles null at 191 +172: LocalLoad(Ljava/lang/Object;,1) (403) + Handles null at 191 +173: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (404) + Handles null at 191 +174: Goto(69) (409) + Handles null at 191 +175: LocalLoad(Ljava/lang/Object;,1) (412) + Handles null at 191 +176: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (413) + Handles null at 191 +177: LocalLoad(Ljava/lang/Object;,1) (418) + Handles null at 191 +178: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndElement,()V) (419) + Handles null at 191 +179: LocalLoad(Ljava/lang/Object;,1) (424) + Handles null at 191 +180: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,writeEndDocument,()V) (425) + Handles null at 191 +181: LocalLoad(Ljava/lang/Object;,1) (430) + Handles null at 191 +182: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,flush,()V) (431) + Handles null at 191 +183: LocalLoad(Ljava/lang/Object;,1) (436) + Handles null at 191 +184: Invoke(INTERFACE,Ljavax/xml/stream/XMLStreamWriter;,close,()V) (437) + Handles null at 191 +185: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (442) + Handles null at 191 +186: Constant(Ljava/lang/String;,"dump(Ljava_cup/runtime/ScannerBuffer;Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V") (442) + Handles null at 191 +187: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (442) + Handles null at 191 +188: Constant(I,0) (442) + Handles null at 191 +189: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (442) + Handles null at 191 +190: Return(V) (442) + Handles null at 191 +191: Constant(Ljava/lang/String;,"java_cup/runtime/XMLElement") (0) +192: Constant(Ljava/lang/String;,"dump(Ljava_cup/runtime/ScannerBuffer;Ljavax/xml/stream/XMLStreamWriter;Ljava_cup/runtime/XMLElement;[Ljava/lang/String;)V") (0) +193: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +194: Constant(I,1) (0) +195: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +196: Throw() (0) +Class: java_cup/runtime/lr_parser +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: New(Ljava_cup/runtime/DefaultSymbolFactory;,0) (1) +2: Dup(1,0) (4) +3: Invoke(SPECIAL,Ljava_cup/runtime/DefaultSymbolFactory;,,()V) (5) +4: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,(Ljava_cup/runtime/SymbolFactory;)V) (8) +5: Return(V) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: New(Ljava_cup/runtime/DefaultSymbolFactory;,0) (1) + Handles null at 15 +6: Dup(1,0) (4) + Handles null at 15 +7: Invoke(SPECIAL,Ljava_cup/runtime/DefaultSymbolFactory;,,()V) (5) + Handles null at 15 +8: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,(Ljava_cup/runtime/SymbolFactory;)V) (8) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (11) + Handles null at 15 +10: Constant(Ljava/lang/String;,"()V") (11) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 15 +12: Constant(I,0) (11) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 15 +14: Return(V) (11) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +16: Constant(Ljava/lang/String;,"()V") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting (Ljava_cup/runtime/SymbolFactory;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(I,0) (5) +4: Put(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: New(Ljava/util/Stack;,0) (10) +7: Dup(1,0) (13) +8: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (14) +9: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (17) +10: LocalLoad(Ljava/lang/Object;,0) (20) +11: LocalLoad(Ljava/lang/Object;,1) (21) +12: Put(Ljava_cup/runtime/SymbolFactory;,NONSTATIC,Ljava_cup/runtime/lr_parser;,symbolFactory) (22) +13: Return(V) (25) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/SymbolFactory;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 23 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 23 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 23 +7: Constant(I,0) (5) + Handles null at 23 +8: Put(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (6) + Handles null at 23 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 23 +10: New(Ljava/util/Stack;,0) (10) + Handles null at 23 +11: Dup(1,0) (13) + Handles null at 23 +12: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (14) + Handles null at 23 +13: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (17) + Handles null at 23 +14: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 23 +15: LocalLoad(Ljava/lang/Object;,1) (21) + Handles null at 23 +16: Put(Ljava_cup/runtime/SymbolFactory;,NONSTATIC,Ljava_cup/runtime/lr_parser;,symbolFactory) (22) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (25) + Handles null at 23 +18: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/SymbolFactory;)V") (25) + Handles null at 23 +19: LocalLoad(Ljava/lang/Object;,0) (25) + Handles null at 23 +20: Constant(I,0) (25) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (25) + Handles null at 23 +22: Return(V) (25) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +24: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/SymbolFactory;)V") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting (Ljava_cup/runtime/Scanner;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: New(Ljava_cup/runtime/DefaultSymbolFactory;,0) (2) +3: Dup(1,0) (5) +4: Invoke(SPECIAL,Ljava_cup/runtime/DefaultSymbolFactory;,,()V) (6) +5: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V) (9) +6: Return(V) (12) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 16 +6: New(Ljava_cup/runtime/DefaultSymbolFactory;,0) (2) + Handles null at 16 +7: Dup(1,0) (5) + Handles null at 16 +8: Invoke(SPECIAL,Ljava_cup/runtime/DefaultSymbolFactory;,,()V) (6) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V) (9) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (12) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (12) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 16 +13: Constant(I,0) (12) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (12) + Handles null at 16 +15: Return(V) (12) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +17: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting (Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: LocalLoad(Ljava/lang/Object;,2) (5) +4: Put(Ljava_cup/runtime/SymbolFactory;,NONSTATIC,Ljava_cup/runtime/lr_parser;,symbolFactory) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: LocalLoad(Ljava/lang/Object;,1) (10) +7: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,setScanner,(Ljava_cup/runtime/Scanner;)V) (11) +8: Return(V) (14) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,,()V) (1) + Handles null at 18 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 18 +7: LocalLoad(Ljava/lang/Object;,2) (5) + Handles null at 18 +8: Put(Ljava_cup/runtime/SymbolFactory;,NONSTATIC,Ljava_cup/runtime/lr_parser;,symbolFactory) (6) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 18 +10: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 18 +11: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,setScanner,(Ljava_cup/runtime/Scanner;)V) (11) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (14) + Handles null at 18 +13: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V") (14) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 18 +15: Constant(I,0) (14) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 18 +17: Return(V) (14) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +19: Constant(Ljava/lang/String;,"(Ljava_cup/runtime/Scanner;Ljava_cup/runtime/SymbolFactory;)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting getSymbolFactory ()Ljava_cup/runtime/SymbolFactory;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/SymbolFactory;,NONSTATIC,Ljava_cup/runtime/lr_parser;,symbolFactory) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"getSymbolFactory()Ljava_cup/runtime/SymbolFactory;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/runtime/SymbolFactory;,NONSTATIC,Ljava_cup/runtime/lr_parser;,symbolFactory) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getSymbolFactory()Ljava_cup/runtime/SymbolFactory;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +13: Constant(Ljava/lang/String;,"getSymbolFactory()Ljava_cup/runtime/SymbolFactory;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting error_sync_size ()I: +Initial ShrikeBT code: +0: Constant(I,3) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"error_sync_size()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,3) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"error_sync_size()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +12: Constant(Ljava/lang/String;,"error_sync_size()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting done_parsing ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(I,1) (1) +2: Put(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"done_parsing()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Constant(I,1) (1) + Handles null at 13 +6: Put(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"done_parsing()V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +14: Constant(Ljava/lang/String;,"done_parsing()V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting setScanner (Ljava_cup/runtime/Scanner;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Put(Ljava_cup/runtime/Scanner;,NONSTATIC,Ljava_cup/runtime/lr_parser;,_scanner) (2) +3: Return(V) (5) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"setScanner(Ljava_cup/runtime/Scanner;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 13 +6: Put(Ljava_cup/runtime/Scanner;,NONSTATIC,Ljava_cup/runtime/lr_parser;,_scanner) (2) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (5) + Handles null at 13 +8: Constant(Ljava/lang/String;,"setScanner(Ljava_cup/runtime/Scanner;)V") (5) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 13 +10: Constant(I,0) (5) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 13 +12: Return(V) (5) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +14: Constant(Ljava/lang/String;,"setScanner(Ljava_cup/runtime/Scanner;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting getScanner ()Ljava_cup/runtime/Scanner;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/runtime/Scanner;,NONSTATIC,Ljava_cup/runtime/lr_parser;,_scanner) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"getScanner()Ljava_cup/runtime/Scanner;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/runtime/Scanner;,NONSTATIC,Ljava_cup/runtime/lr_parser;,_scanner) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"getScanner()Ljava_cup/runtime/Scanner;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +13: Constant(Ljava/lang/String;,"getScanner()Ljava_cup/runtime/Scanner;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting user_init ()V: +Initial ShrikeBT code: +0: Return(V) (0) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"user_init()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) + Handles null at 10 +5: Constant(Ljava/lang/String;,"user_init()V") (0) + Handles null at 10 +6: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 10 +7: Constant(I,0) (0) + Handles null at 10 +8: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) + Handles null at 10 +9: Return(V) (0) + Handles null at 10 +10: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +11: Constant(Ljava/lang/String;,"user_init()V") (0) +12: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +13: Constant(I,1) (0) +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +15: Throw() (0) +Instrumenting scan ()Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getScanner,()Ljava_cup/runtime/Scanner;) (1) +2: Invoke(INTERFACE,Ljava_cup/runtime/Scanner;,next_token,()Ljava_cup/runtime/Symbol;) (4) +3: LocalStore(Ljava/lang/Object;,1) (9) +4: LocalLoad(Ljava/lang/Object;,1) (10) +5: Constant(L;,null) (11) +6: ConditionalBranch(Ljava/lang/Object;,eq,9) (11) +7: LocalLoad(Ljava/lang/Object;,1) (14) +8: Goto(15) (15) +9: LocalLoad(Ljava/lang/Object;,0) (18) +10: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (19) +11: Constant(Ljava/lang/String;,"END_OF_FILE") (22) +12: LocalLoad(Ljava/lang/Object;,0) (24) +13: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,EOF_sym,()I) (25) +14: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (28) +15: Return(Ljava/lang/Object;) (33) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"scan()Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 25 +5: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getScanner,()Ljava_cup/runtime/Scanner;) (1) + Handles null at 25 +6: Invoke(INTERFACE,Ljava_cup/runtime/Scanner;,next_token,()Ljava_cup/runtime/Symbol;) (4) + Handles null at 25 +7: LocalStore(Ljava/lang/Object;,1) (9) + Handles null at 25 +8: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +9: Constant(L;,null) (11) + Handles null at 25 +10: ConditionalBranch(Ljava/lang/Object;,eq,13) (11) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,1) (14) + Handles null at 25 +12: Goto(19) (15) + Handles null at 25 +13: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 25 +14: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (19) + Handles null at 25 +15: Constant(Ljava/lang/String;,"END_OF_FILE") (22) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 25 +17: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,EOF_sym,()I) (25) + Handles null at 25 +18: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;I)Ljava_cup/runtime/Symbol;) (28) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (33) + Handles null at 25 +20: Constant(Ljava/lang/String;,"scan()Ljava_cup/runtime/Symbol;") (33) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 25 +22: Constant(I,0) (33) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (33) + Handles null at 25 +24: Return(Ljava/lang/Object;) (33) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +26: Constant(Ljava/lang/String;,"scan()Ljava_cup/runtime/Symbol;") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting report_fatal_error (Ljava/lang/String;Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,done_parsing,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: LocalLoad(Ljava/lang/Object;,2) (6) +5: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_error,(Ljava/lang/String;Ljava/lang/Object;)V) (7) +6: New(Ljava/lang/Exception;,0) (10) +7: Dup(1,0) (13) +8: Constant(Ljava/lang/String;,"Can't recover from previous error(s)") (14) +9: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (16) +10: Throw() (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"report_fatal_error(Ljava/lang/String;Ljava/lang/Object;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,done_parsing,()V) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 15 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 15 +8: LocalLoad(Ljava/lang/Object;,2) (6) + Handles null at 15 +9: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_error,(Ljava/lang/String;Ljava/lang/Object;)V) (7) + Handles null at 15 +10: New(Ljava/lang/Exception;,0) (10) + Handles null at 15 +11: Dup(1,0) (13) + Handles null at 15 +12: Constant(Ljava/lang/String;,"Can't recover from previous error(s)") (14) + Handles null at 15 +13: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (16) + Handles null at 15 +14: Throw() (19) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +16: Constant(Ljava/lang/String;,"report_fatal_error(Ljava/lang/String;Ljava/lang/Object;)V") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting report_error (Ljava/lang/String;Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,2) (0) +1: Instanceof(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,31) (4) +4: LocalLoad(Ljava/lang/Object;,2) (7) +5: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (8) +6: LocalStore(Ljava/lang/Object;,3) (11) +7: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (12) +8: New(Ljava/lang/StringBuilder;,0) (15) +9: Dup(1,0) (18) +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (19) +11: LocalLoad(Ljava/lang/Object;,1) (22) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) +13: Constant(Ljava/lang/String;," for input symbol \"") (26) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +15: LocalLoad(Ljava/lang/Object;,3) (31) +16: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getName,()Ljava/lang/String;) (32) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (35) +18: Constant(Ljava/lang/String;,"\" spanning from ") (38) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) +20: LocalLoad(Ljava/lang/Object;,3) (43) +21: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getLeft,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (44) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (47) +23: Constant(Ljava/lang/String;," to ") (50) +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (52) +25: LocalLoad(Ljava/lang/Object;,3) (55) +26: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getRight,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (56) +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (59) +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (62) +29: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (65) +30: Return(V) (68) +31: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (69) +32: LocalLoad(Ljava/lang/Object;,1) (72) +33: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (73) +34: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (76) +35: Invoke(VIRTUAL,Ljava/io/PrintStream;,flush,()V) (79) +36: LocalLoad(Ljava/lang/Object;,2) (82) +37: Instanceof(Ljava_cup/runtime/Symbol;) (83) +38: Constant(I,0) (86) +39: ConditionalBranch(I,eq,63) (86) +40: LocalLoad(Ljava/lang/Object;,2) (89) +41: CheckCast(Ljava_cup/runtime/Symbol;) (90) +42: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (93) +43: Constant(I,-1) (96) +44: ConditionalBranch(I,eq,60) (97) +45: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (100) +46: New(Ljava/lang/StringBuilder;,0) (103) +47: Dup(1,0) (106) +48: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (107) +49: Constant(Ljava/lang/String;," at character ") (110) +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (112) +51: LocalLoad(Ljava/lang/Object;,2) (115) +52: CheckCast(Ljava_cup/runtime/Symbol;) (116) +53: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (119) +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (122) +55: Constant(Ljava/lang/String;," of input") (125) +56: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (127) +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (130) +58: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (133) +59: Goto(63) (136) +60: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (139) +61: Constant(Ljava/lang/String;,"") (142) +62: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (144) +63: Return(V) (147) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"report_error(Ljava/lang/String;Ljava/lang/Object;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,2) (0) + Handles null at 78 +5: Instanceof(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (1) + Handles null at 78 +6: Constant(I,0) (4) + Handles null at 78 +7: ConditionalBranch(I,eq,40) (4) + Handles null at 78 +8: LocalLoad(Ljava/lang/Object;,2) (7) + Handles null at 78 +9: CheckCast(Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;) (8) + Handles null at 78 +10: LocalStore(Ljava/lang/Object;,3) (11) + Handles null at 78 +11: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (12) + Handles null at 78 +12: New(Ljava/lang/StringBuilder;,0) (15) + Handles null at 78 +13: Dup(1,0) (18) + Handles null at 78 +14: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (19) + Handles null at 78 +15: LocalLoad(Ljava/lang/Object;,1) (22) + Handles null at 78 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (23) + Handles null at 78 +17: Constant(Ljava/lang/String;," for input symbol \"") (26) + Handles null at 78 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 78 +19: LocalLoad(Ljava/lang/Object;,3) (31) + Handles null at 78 +20: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getName,()Ljava/lang/String;) (32) + Handles null at 78 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (35) + Handles null at 78 +22: Constant(Ljava/lang/String;,"\" spanning from ") (38) + Handles null at 78 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (40) + Handles null at 78 +24: LocalLoad(Ljava/lang/Object;,3) (43) + Handles null at 78 +25: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getLeft,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (44) + Handles null at 78 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (47) + Handles null at 78 +27: Constant(Ljava/lang/String;," to ") (50) + Handles null at 78 +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (52) + Handles null at 78 +29: LocalLoad(Ljava/lang/Object;,3) (55) + Handles null at 78 +30: Invoke(VIRTUAL,Ljava_cup/runtime/ComplexSymbolFactory$ComplexSymbol;,getRight,()Ljava_cup/runtime/ComplexSymbolFactory$Location;) (56) + Handles null at 78 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (59) + Handles null at 78 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (62) + Handles null at 78 +33: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (65) + Handles null at 78 +34: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (68) + Handles null at 78 +35: Constant(Ljava/lang/String;,"report_error(Ljava/lang/String;Ljava/lang/Object;)V") (68) + Handles null at 78 +36: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 78 +37: Constant(I,0) (68) + Handles null at 78 +38: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (68) + Handles null at 78 +39: Return(V) (68) + Handles null at 78 +40: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (69) + Handles null at 78 +41: LocalLoad(Ljava/lang/Object;,1) (72) + Handles null at 78 +42: Invoke(VIRTUAL,Ljava/io/PrintStream;,print,(Ljava/lang/String;)V) (73) + Handles null at 78 +43: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (76) + Handles null at 78 +44: Invoke(VIRTUAL,Ljava/io/PrintStream;,flush,()V) (79) + Handles null at 78 +45: LocalLoad(Ljava/lang/Object;,2) (82) + Handles null at 78 +46: Instanceof(Ljava_cup/runtime/Symbol;) (83) + Handles null at 78 +47: Constant(I,0) (86) + Handles null at 78 +48: ConditionalBranch(I,eq,72) (86) + Handles null at 78 +49: LocalLoad(Ljava/lang/Object;,2) (89) + Handles null at 78 +50: CheckCast(Ljava_cup/runtime/Symbol;) (90) + Handles null at 78 +51: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (93) + Handles null at 78 +52: Constant(I,-1) (96) + Handles null at 78 +53: ConditionalBranch(I,eq,69) (97) + Handles null at 78 +54: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (100) + Handles null at 78 +55: New(Ljava/lang/StringBuilder;,0) (103) + Handles null at 78 +56: Dup(1,0) (106) + Handles null at 78 +57: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (107) + Handles null at 78 +58: Constant(Ljava/lang/String;," at character ") (110) + Handles null at 78 +59: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (112) + Handles null at 78 +60: LocalLoad(Ljava/lang/Object;,2) (115) + Handles null at 78 +61: CheckCast(Ljava_cup/runtime/Symbol;) (116) + Handles null at 78 +62: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,left) (119) + Handles null at 78 +63: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (122) + Handles null at 78 +64: Constant(Ljava/lang/String;," of input") (125) + Handles null at 78 +65: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (127) + Handles null at 78 +66: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (130) + Handles null at 78 +67: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (133) + Handles null at 78 +68: Goto(72) (136) + Handles null at 78 +69: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (139) + Handles null at 78 +70: Constant(Ljava/lang/String;,"") (142) + Handles null at 78 +71: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (144) + Handles null at 78 +72: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (147) + Handles null at 78 +73: Constant(Ljava/lang/String;,"report_error(Ljava/lang/String;Ljava/lang/Object;)V") (147) + Handles null at 78 +74: LocalLoad(Ljava/lang/Object;,0) (147) + Handles null at 78 +75: Constant(I,0) (147) + Handles null at 78 +76: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (147) + Handles null at 78 +77: Return(V) (147) + Handles null at 78 +78: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +79: Constant(Ljava/lang/String;,"report_error(Ljava/lang/String;Ljava/lang/Object;)V") (0) +80: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +81: Constant(I,1) (0) +82: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +83: Throw() (0) +Instrumenting syntax_error (Ljava_cup/runtime/Symbol;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(Ljava/lang/String;,"Syntax error") (1) +2: LocalLoad(Ljava/lang/Object;,1) (3) +3: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_error,(Ljava/lang/String;Ljava/lang/Object;)V) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_expected_token_ids,()V) (8) +6: Return(V) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"syntax_error(Ljava_cup/runtime/Symbol;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: Constant(Ljava/lang/String;,"Syntax error") (1) + Handles null at 16 +6: LocalLoad(Ljava/lang/Object;,1) (3) + Handles null at 16 +7: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_error,(Ljava/lang/String;Ljava/lang/Object;)V) (4) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 16 +9: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_expected_token_ids,()V) (8) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (11) + Handles null at 16 +11: Constant(Ljava/lang/String;,"syntax_error(Ljava_cup/runtime/Symbol;)V") (11) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 16 +13: Constant(I,0) (11) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 16 +15: Return(V) (11) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +17: Constant(Ljava/lang/String;,"syntax_error(Ljava_cup/runtime/Symbol;)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting getSymbolContainer ()Ljava/lang/Class;: +Initial ShrikeBT code: +0: Constant(L;,null) (0) +1: Return(Ljava/lang/Object;) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"getSymbolContainer()Ljava/lang/Class;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(L;,null) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"getSymbolContainer()Ljava/lang/Class;") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(Ljava/lang/Object;) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +12: Constant(Ljava/lang/String;,"getSymbolContainer()Ljava/lang/Class;") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting report_expected_token_ids ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,expected_token_ids,()Ljava/util/List;) (1) +2: LocalStore(Ljava/lang/Object;,1) (4) +3: New(Ljava/util/LinkedList;,0) (5) +4: Dup(1,0) (8) +5: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (9) +6: LocalStore(Ljava/lang/Object;,2) (12) +7: LocalLoad(Ljava/lang/Object;,1) (13) +8: Invoke(INTERFACE,Ljava/util/List;,iterator,()Ljava/util/Iterator;) (14) +9: LocalStore(Ljava/lang/Object;,3) (19) +10: LocalLoad(Ljava/lang/Object;,3) (20) +11: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (21) +12: Constant(I,0) (26) +13: ConditionalBranch(I,eq,26) (26) +14: LocalLoad(Ljava/lang/Object;,3) (29) +15: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (30) +16: CheckCast(Ljava/lang/Integer;) (35) +17: LocalStore(Ljava/lang/Object;,4) (38) +18: LocalLoad(Ljava/lang/Object;,2) (40) +19: LocalLoad(Ljava/lang/Object;,0) (41) +20: LocalLoad(Ljava/lang/Object;,4) (42) +21: Invoke(VIRTUAL,Ljava/lang/Integer;,intValue,()I) (44) +22: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,symbl_name_from_id,(I)Ljava/lang/String;) (47) +23: Invoke(VIRTUAL,Ljava/util/LinkedList;,add,(Ljava/lang/Object;)Z) (50) +24: Pop(1) (53) +25: Goto(10) (54) +26: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (57) +27: New(Ljava/lang/StringBuilder;,0) (60) +28: Dup(1,0) (63) +29: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (64) +30: Constant(Ljava/lang/String;,"instead expected token classes are ") (67) +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) +32: LocalLoad(Ljava/lang/Object;,2) (72) +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (73) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (76) +35: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (79) +36: Return(V) (82) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"report_expected_token_ids()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 46 +5: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,expected_token_ids,()Ljava/util/List;) (1) + Handles null at 46 +6: LocalStore(Ljava/lang/Object;,1) (4) + Handles null at 46 +7: New(Ljava/util/LinkedList;,0) (5) + Handles null at 46 +8: Dup(1,0) (8) + Handles null at 46 +9: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (9) + Handles null at 46 +10: LocalStore(Ljava/lang/Object;,2) (12) + Handles null at 46 +11: LocalLoad(Ljava/lang/Object;,1) (13) + Handles null at 46 +12: Invoke(INTERFACE,Ljava/util/List;,iterator,()Ljava/util/Iterator;) (14) + Handles null at 46 +13: LocalStore(Ljava/lang/Object;,3) (19) + Handles null at 46 +14: LocalLoad(Ljava/lang/Object;,3) (20) + Handles null at 46 +15: Invoke(INTERFACE,Ljava/util/Iterator;,hasNext,()Z) (21) + Handles null at 46 +16: Constant(I,0) (26) + Handles null at 46 +17: ConditionalBranch(I,eq,30) (26) + Handles null at 46 +18: LocalLoad(Ljava/lang/Object;,3) (29) + Handles null at 46 +19: Invoke(INTERFACE,Ljava/util/Iterator;,next,()Ljava/lang/Object;) (30) + Handles null at 46 +20: CheckCast(Ljava/lang/Integer;) (35) + Handles null at 46 +21: LocalStore(Ljava/lang/Object;,4) (38) + Handles null at 46 +22: LocalLoad(Ljava/lang/Object;,2) (40) + Handles null at 46 +23: LocalLoad(Ljava/lang/Object;,0) (41) + Handles null at 46 +24: LocalLoad(Ljava/lang/Object;,4) (42) + Handles null at 46 +25: Invoke(VIRTUAL,Ljava/lang/Integer;,intValue,()I) (44) + Handles null at 46 +26: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,symbl_name_from_id,(I)Ljava/lang/String;) (47) + Handles null at 46 +27: Invoke(VIRTUAL,Ljava/util/LinkedList;,add,(Ljava/lang/Object;)Z) (50) + Handles null at 46 +28: Pop(1) (53) + Handles null at 46 +29: Goto(14) (54) + Handles null at 46 +30: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,out) (57) + Handles null at 46 +31: New(Ljava/lang/StringBuilder;,0) (60) + Handles null at 46 +32: Dup(1,0) (63) + Handles null at 46 +33: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (64) + Handles null at 46 +34: Constant(Ljava/lang/String;,"instead expected token classes are ") (67) + Handles null at 46 +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) + Handles null at 46 +36: LocalLoad(Ljava/lang/Object;,2) (72) + Handles null at 46 +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (73) + Handles null at 46 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (76) + Handles null at 46 +39: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (79) + Handles null at 46 +40: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (82) + Handles null at 46 +41: Constant(Ljava/lang/String;,"report_expected_token_ids()V") (82) + Handles null at 46 +42: LocalLoad(Ljava/lang/Object;,0) (82) + Handles null at 46 +43: Constant(I,0) (82) + Handles null at 46 +44: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (82) + Handles null at 46 +45: Return(V) (82) + Handles null at 46 +46: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +47: Constant(Ljava/lang/String;,"report_expected_token_ids()V") (0) +48: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +49: Constant(I,1) (0) +50: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +51: Throw() (0) +Instrumenting symbl_name_from_id (I)Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolContainer,()Ljava/lang/Class;) (1) +2: Invoke(VIRTUAL,Ljava/lang/Class;,getFields,()[Ljava/lang/reflect/Field;) (4) +3: LocalStore(Ljava/lang/Object;,2) (7) +4: LocalLoad(Ljava/lang/Object;,2) (8) +5: LocalStore(Ljava/lang/Object;,3) (9) +6: LocalLoad(Ljava/lang/Object;,3) (10) +7: ArrayLength() (11) +8: LocalStore(I,4) (12) +9: Constant(I,0) (14) +10: LocalStore(I,5) (15) +11: LocalLoad(I,5) (17) +12: LocalLoad(I,4) (19) +13: ConditionalBranch(I,ge,35) (21) +14: LocalLoad(Ljava/lang/Object;,3) (24) +15: LocalLoad(I,5) (25) +16: ArrayLoad(Ljava/lang/Object;) (27) +17: LocalStore(Ljava/lang/Object;,6) (28) +18: LocalLoad(Ljava/lang/Object;,6) (30) + Handles Ljava/lang/IllegalArgumentException; at 27 + Handles Ljava/lang/IllegalAccessException; at 29 +19: Constant(L;,null) (32) + Handles Ljava/lang/IllegalArgumentException; at 27 + Handles Ljava/lang/IllegalAccessException; at 29 +20: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getInt,(Ljava/lang/Object;)I) (33) + Handles Ljava/lang/IllegalArgumentException; at 27 + Handles Ljava/lang/IllegalAccessException; at 29 +21: LocalLoad(I,1) (36) + Handles Ljava/lang/IllegalArgumentException; at 27 + Handles Ljava/lang/IllegalAccessException; at 29 +22: ConditionalBranch(I,ne,26) (37) + Handles Ljava/lang/IllegalArgumentException; at 27 + Handles Ljava/lang/IllegalAccessException; at 29 +23: LocalLoad(Ljava/lang/Object;,6) (40) + Handles Ljava/lang/IllegalArgumentException; at 27 + Handles Ljava/lang/IllegalAccessException; at 29 +24: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getName,()Ljava/lang/String;) (42) + Handles Ljava/lang/IllegalArgumentException; at 27 + Handles Ljava/lang/IllegalAccessException; at 29 +25: Return(Ljava/lang/Object;) (45) +26: Goto(30) (46) +27: LocalStore(Ljava/lang/Object;,7) (49) +28: Goto(30) (51) +29: LocalStore(Ljava/lang/Object;,7) (54) +30: LocalLoad(I,5) (56) +31: Constant(I,1) (56) +32: BinaryOp(I,add) (56) +33: LocalStore(I,5) (56) +34: Goto(11) (59) +35: Constant(Ljava/lang/String;,"invalid symbol id") (62) +36: Return(Ljava/lang/Object;) (64) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"symbl_name_from_id(I)Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 51 +5: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolContainer,()Ljava/lang/Class;) (1) + Handles null at 51 +6: Invoke(VIRTUAL,Ljava/lang/Class;,getFields,()[Ljava/lang/reflect/Field;) (4) + Handles null at 51 +7: LocalStore(Ljava/lang/Object;,2) (7) + Handles null at 51 +8: LocalLoad(Ljava/lang/Object;,2) (8) + Handles null at 51 +9: LocalStore(Ljava/lang/Object;,3) (9) + Handles null at 51 +10: LocalLoad(Ljava/lang/Object;,3) (10) + Handles null at 51 +11: ArrayLength() (11) + Handles null at 51 +12: LocalStore(I,4) (12) + Handles null at 51 +13: Constant(I,0) (14) + Handles null at 51 +14: LocalStore(I,5) (15) + Handles null at 51 +15: LocalLoad(I,5) (17) + Handles null at 51 +16: LocalLoad(I,4) (19) + Handles null at 51 +17: ConditionalBranch(I,ge,44) (21) + Handles null at 51 +18: LocalLoad(Ljava/lang/Object;,3) (24) + Handles null at 51 +19: LocalLoad(I,5) (25) + Handles null at 51 +20: ArrayLoad(Ljava/lang/Object;) (27) + Handles null at 51 +21: LocalStore(Ljava/lang/Object;,6) (28) + Handles null at 51 +22: LocalLoad(Ljava/lang/Object;,6) (30) + Handles Ljava/lang/IllegalArgumentException; at 36 + Handles Ljava/lang/IllegalAccessException; at 38 + Handles null at 51 +23: Constant(L;,null) (32) + Handles Ljava/lang/IllegalArgumentException; at 36 + Handles Ljava/lang/IllegalAccessException; at 38 + Handles null at 51 +24: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getInt,(Ljava/lang/Object;)I) (33) + Handles Ljava/lang/IllegalArgumentException; at 36 + Handles Ljava/lang/IllegalAccessException; at 38 + Handles null at 51 +25: LocalLoad(I,1) (36) + Handles Ljava/lang/IllegalArgumentException; at 36 + Handles Ljava/lang/IllegalAccessException; at 38 + Handles null at 51 +26: ConditionalBranch(I,ne,35) (37) + Handles Ljava/lang/IllegalArgumentException; at 36 + Handles Ljava/lang/IllegalAccessException; at 38 + Handles null at 51 +27: LocalLoad(Ljava/lang/Object;,6) (40) + Handles Ljava/lang/IllegalArgumentException; at 36 + Handles Ljava/lang/IllegalAccessException; at 38 + Handles null at 51 +28: Invoke(VIRTUAL,Ljava/lang/reflect/Field;,getName,()Ljava/lang/String;) (42) + Handles Ljava/lang/IllegalArgumentException; at 36 + Handles Ljava/lang/IllegalAccessException; at 38 + Handles null at 51 +29: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (45) + Handles null at 51 +30: Constant(Ljava/lang/String;,"symbl_name_from_id(I)Ljava/lang/String;") (45) + Handles null at 51 +31: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 51 +32: Constant(I,0) (45) + Handles null at 51 +33: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (45) + Handles null at 51 +34: Return(Ljava/lang/Object;) (45) + Handles null at 51 +35: Goto(39) (46) + Handles null at 51 +36: LocalStore(Ljava/lang/Object;,7) (49) + Handles null at 51 +37: Goto(39) (51) + Handles null at 51 +38: LocalStore(Ljava/lang/Object;,7) (54) + Handles null at 51 +39: LocalLoad(I,5) (56) + Handles null at 51 +40: Constant(I,1) (56) + Handles null at 51 +41: BinaryOp(I,add) (56) + Handles null at 51 +42: LocalStore(I,5) (56) + Handles null at 51 +43: Goto(15) (59) + Handles null at 51 +44: Constant(Ljava/lang/String;,"invalid symbol id") (62) + Handles null at 51 +45: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (64) + Handles null at 51 +46: Constant(Ljava/lang/String;,"symbl_name_from_id(I)Ljava/lang/String;") (64) + Handles null at 51 +47: LocalLoad(Ljava/lang/Object;,0) (64) + Handles null at 51 +48: Constant(I,0) (64) + Handles null at 51 +49: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (64) + Handles null at 51 +50: Return(Ljava/lang/Object;) (64) + Handles null at 51 +51: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +52: Constant(Ljava/lang/String;,"symbl_name_from_id(I)Ljava/lang/String;") (0) +53: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +54: Constant(I,1) (0) +55: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +56: Throw() (0) +Instrumenting expected_token_ids ()Ljava/util/List;: +Initial ShrikeBT code: +0: New(Ljava/util/LinkedList;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (4) +3: LocalStore(Ljava/lang/Object;,1) (7) +4: LocalLoad(Ljava/lang/Object;,0) (8) +5: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (9) +6: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (12) +7: CheckCast(Ljava_cup/runtime/Symbol;) (15) +8: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (18) +9: LocalStore(I,2) (21) +10: LocalLoad(Ljava/lang/Object;,0) (22) +11: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,action_tab) (23) +12: LocalLoad(I,2) (26) +13: ArrayLoad(Ljava/lang/Object;) (27) +14: LocalStore(Ljava/lang/Object;,3) (28) +15: Constant(I,0) (29) +16: LocalStore(I,4) (30) +17: LocalLoad(I,4) (32) +18: LocalLoad(Ljava/lang/Object;,3) (34) +19: ArrayLength() (35) +20: ConditionalBranch(I,ge,49) (36) +21: LocalLoad(Ljava/lang/Object;,3) (39) +22: LocalLoad(I,4) (40) +23: ArrayLoad(S) (42) +24: Constant(I,-1) (43) +25: ConditionalBranch(I,ne,27) (44) +26: Goto(44) (47) +27: LocalLoad(Ljava/lang/Object;,0) (50) +28: LocalLoad(Ljava/lang/Object;,3) (51) +29: LocalLoad(I,4) (52) +30: ArrayLoad(S) (54) +31: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,validate_expected_symbol,(I)Z) (55) +32: Constant(I,0) (58) +33: ConditionalBranch(I,ne,35) (58) +34: Goto(44) (61) +35: LocalLoad(Ljava/lang/Object;,1) (64) +36: New(Ljava/lang/Integer;,0) (65) +37: Dup(1,0) (68) +38: LocalLoad(Ljava/lang/Object;,3) (69) +39: LocalLoad(I,4) (70) +40: ArrayLoad(S) (72) +41: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (73) +42: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (76) +43: Pop(1) (81) +44: LocalLoad(I,4) (82) +45: Constant(I,2) (82) +46: BinaryOp(I,add) (82) +47: LocalStore(I,4) (82) +48: Goto(17) (85) +49: LocalLoad(Ljava/lang/Object;,1) (88) +50: Return(Ljava/lang/Object;) (89) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"expected_token_ids()Ljava/util/List;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/LinkedList;,0) (0) + Handles null at 60 +5: Dup(1,0) (3) + Handles null at 60 +6: Invoke(SPECIAL,Ljava/util/LinkedList;,,()V) (4) + Handles null at 60 +7: LocalStore(Ljava/lang/Object;,1) (7) + Handles null at 60 +8: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 60 +9: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (9) + Handles null at 60 +10: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (12) + Handles null at 60 +11: CheckCast(Ljava_cup/runtime/Symbol;) (15) + Handles null at 60 +12: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (18) + Handles null at 60 +13: LocalStore(I,2) (21) + Handles null at 60 +14: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 60 +15: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,action_tab) (23) + Handles null at 60 +16: LocalLoad(I,2) (26) + Handles null at 60 +17: ArrayLoad(Ljava/lang/Object;) (27) + Handles null at 60 +18: LocalStore(Ljava/lang/Object;,3) (28) + Handles null at 60 +19: Constant(I,0) (29) + Handles null at 60 +20: LocalStore(I,4) (30) + Handles null at 60 +21: LocalLoad(I,4) (32) + Handles null at 60 +22: LocalLoad(Ljava/lang/Object;,3) (34) + Handles null at 60 +23: ArrayLength() (35) + Handles null at 60 +24: ConditionalBranch(I,ge,53) (36) + Handles null at 60 +25: LocalLoad(Ljava/lang/Object;,3) (39) + Handles null at 60 +26: LocalLoad(I,4) (40) + Handles null at 60 +27: ArrayLoad(S) (42) + Handles null at 60 +28: Constant(I,-1) (43) + Handles null at 60 +29: ConditionalBranch(I,ne,31) (44) + Handles null at 60 +30: Goto(48) (47) + Handles null at 60 +31: LocalLoad(Ljava/lang/Object;,0) (50) + Handles null at 60 +32: LocalLoad(Ljava/lang/Object;,3) (51) + Handles null at 60 +33: LocalLoad(I,4) (52) + Handles null at 60 +34: ArrayLoad(S) (54) + Handles null at 60 +35: Invoke(SPECIAL,Ljava_cup/runtime/lr_parser;,validate_expected_symbol,(I)Z) (55) + Handles null at 60 +36: Constant(I,0) (58) + Handles null at 60 +37: ConditionalBranch(I,ne,39) (58) + Handles null at 60 +38: Goto(48) (61) + Handles null at 60 +39: LocalLoad(Ljava/lang/Object;,1) (64) + Handles null at 60 +40: New(Ljava/lang/Integer;,0) (65) + Handles null at 60 +41: Dup(1,0) (68) + Handles null at 60 +42: LocalLoad(Ljava/lang/Object;,3) (69) + Handles null at 60 +43: LocalLoad(I,4) (70) + Handles null at 60 +44: ArrayLoad(S) (72) + Handles null at 60 +45: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (73) + Handles null at 60 +46: Invoke(INTERFACE,Ljava/util/List;,add,(Ljava/lang/Object;)Z) (76) + Handles null at 60 +47: Pop(1) (81) + Handles null at 60 +48: LocalLoad(I,4) (82) + Handles null at 60 +49: Constant(I,2) (82) + Handles null at 60 +50: BinaryOp(I,add) (82) + Handles null at 60 +51: LocalStore(I,4) (82) + Handles null at 60 +52: Goto(21) (85) + Handles null at 60 +53: LocalLoad(Ljava/lang/Object;,1) (88) + Handles null at 60 +54: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (89) + Handles null at 60 +55: Constant(Ljava/lang/String;,"expected_token_ids()Ljava/util/List;") (89) + Handles null at 60 +56: LocalLoad(Ljava/lang/Object;,0) (89) + Handles null at 60 +57: Constant(I,0) (89) + Handles null at 60 +58: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (89) + Handles null at 60 +59: Return(Ljava/lang/Object;) (89) + Handles null at 60 +60: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +61: Constant(Ljava/lang/String;,"expected_token_ids()Ljava/util/List;") (0) +62: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +63: Constant(I,1) (0) +64: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +65: Throw() (0) +Instrumenting validate_expected_symbol (I)Z: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/virtual_parse_stack;,0) (0) + Handles Ljava/lang/Exception; at 80 +1: Dup(1,0) (3) + Handles Ljava/lang/Exception; at 80 +2: LocalLoad(Ljava/lang/Object;,0) (4) + Handles Ljava/lang/Exception; at 80 +3: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (5) + Handles Ljava/lang/Exception; at 80 +4: Invoke(SPECIAL,Ljava_cup/runtime/virtual_parse_stack;,,(Ljava/util/Stack;)V) (8) + Handles Ljava/lang/Exception; at 80 +5: LocalStore(Ljava/lang/Object;,5) (11) + Handles Ljava/lang/Exception; at 80 +6: LocalLoad(Ljava/lang/Object;,0) (13) + Handles Ljava/lang/Exception; at 80 +7: LocalLoad(Ljava/lang/Object;,5) (14) + Handles Ljava/lang/Exception; at 80 +8: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (16) + Handles Ljava/lang/Exception; at 80 +9: LocalLoad(I,1) (19) + Handles Ljava/lang/Exception; at 80 +10: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (20) + Handles Ljava/lang/Exception; at 80 +11: LocalStore(I,4) (23) + Handles Ljava/lang/Exception; at 80 +12: LocalLoad(I,4) (25) + Handles Ljava/lang/Exception; at 80 +13: Constant(I,0) (27) + Handles Ljava/lang/Exception; at 80 +14: ConditionalBranch(I,ne,17) (27) + Handles Ljava/lang/Exception; at 80 +15: Constant(I,0) (30) + Handles Ljava/lang/Exception; at 80 +16: Return(I) (31) +17: LocalLoad(I,4) (32) + Handles Ljava/lang/Exception; at 80 +18: Constant(I,0) (34) + Handles Ljava/lang/Exception; at 80 +19: ConditionalBranch(I,le,31) (34) + Handles Ljava/lang/Exception; at 80 +20: LocalLoad(Ljava/lang/Object;,5) (37) + Handles Ljava/lang/Exception; at 80 +21: LocalLoad(I,4) (39) + Handles Ljava/lang/Exception; at 80 +22: Constant(I,1) (41) + Handles Ljava/lang/Exception; at 80 +23: BinaryOp(I,sub) (42) + Handles Ljava/lang/Exception; at 80 +24: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,push,(I)V) (43) + Handles Ljava/lang/Exception; at 80 +25: LocalLoad(Ljava/lang/Object;,0) (46) + Handles Ljava/lang/Exception; at 80 +26: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,advance_lookahead,()Z) (47) + Handles Ljava/lang/Exception; at 80 +27: Constant(I,0) (50) + Handles Ljava/lang/Exception; at 80 +28: ConditionalBranch(I,ne,6) (50) + Handles Ljava/lang/Exception; at 80 +29: Constant(I,1) (53) + Handles Ljava/lang/Exception; at 80 +30: Return(I) (54) +31: LocalLoad(I,4) (55) + Handles Ljava/lang/Exception; at 80 +32: UnaryOp(I,neg) (57) + Handles Ljava/lang/Exception; at 80 +33: Constant(I,1) (58) + Handles Ljava/lang/Exception; at 80 +34: BinaryOp(I,sub) (59) + Handles Ljava/lang/Exception; at 80 +35: LocalLoad(Ljava/lang/Object;,0) (60) + Handles Ljava/lang/Exception; at 80 +36: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,start_production,()I) (61) + Handles Ljava/lang/Exception; at 80 +37: ConditionalBranch(I,ne,40) (64) + Handles Ljava/lang/Exception; at 80 +38: Constant(I,1) (67) + Handles Ljava/lang/Exception; at 80 +39: Return(I) (68) +40: LocalLoad(Ljava/lang/Object;,0) (69) + Handles Ljava/lang/Exception; at 80 +41: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (70) + Handles Ljava/lang/Exception; at 80 +42: LocalLoad(I,4) (73) + Handles Ljava/lang/Exception; at 80 +43: UnaryOp(I,neg) (75) + Handles Ljava/lang/Exception; at 80 +44: Constant(I,1) (76) + Handles Ljava/lang/Exception; at 80 +45: BinaryOp(I,sub) (77) + Handles Ljava/lang/Exception; at 80 +46: ArrayLoad(Ljava/lang/Object;) (78) + Handles Ljava/lang/Exception; at 80 +47: Constant(I,0) (79) + Handles Ljava/lang/Exception; at 80 +48: ArrayLoad(S) (80) + Handles Ljava/lang/Exception; at 80 +49: LocalStore(I,2) (81) + Handles Ljava/lang/Exception; at 80 +50: LocalLoad(Ljava/lang/Object;,0) (82) + Handles Ljava/lang/Exception; at 80 +51: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (83) + Handles Ljava/lang/Exception; at 80 +52: LocalLoad(I,4) (86) + Handles Ljava/lang/Exception; at 80 +53: UnaryOp(I,neg) (88) + Handles Ljava/lang/Exception; at 80 +54: Constant(I,1) (89) + Handles Ljava/lang/Exception; at 80 +55: BinaryOp(I,sub) (90) + Handles Ljava/lang/Exception; at 80 +56: ArrayLoad(Ljava/lang/Object;) (91) + Handles Ljava/lang/Exception; at 80 +57: Constant(I,1) (92) + Handles Ljava/lang/Exception; at 80 +58: ArrayLoad(S) (93) + Handles Ljava/lang/Exception; at 80 +59: LocalStore(I,3) (94) + Handles Ljava/lang/Exception; at 80 +60: Constant(I,0) (95) + Handles Ljava/lang/Exception; at 80 +61: LocalStore(I,6) (96) + Handles Ljava/lang/Exception; at 80 +62: LocalLoad(I,6) (98) + Handles Ljava/lang/Exception; at 80 +63: LocalLoad(I,3) (100) + Handles Ljava/lang/Exception; at 80 +64: ConditionalBranch(I,ge,72) (101) + Handles Ljava/lang/Exception; at 80 +65: LocalLoad(Ljava/lang/Object;,5) (104) + Handles Ljava/lang/Exception; at 80 +66: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,pop,()V) (106) + Handles Ljava/lang/Exception; at 80 +67: LocalLoad(I,6) (109) + Handles Ljava/lang/Exception; at 80 +68: Constant(I,1) (109) + Handles Ljava/lang/Exception; at 80 +69: BinaryOp(I,add) (109) + Handles Ljava/lang/Exception; at 80 +70: LocalStore(I,6) (109) + Handles Ljava/lang/Exception; at 80 +71: Goto(62) (112) + Handles Ljava/lang/Exception; at 80 +72: LocalLoad(Ljava/lang/Object;,5) (115) + Handles Ljava/lang/Exception; at 80 +73: LocalLoad(Ljava/lang/Object;,0) (117) + Handles Ljava/lang/Exception; at 80 +74: LocalLoad(Ljava/lang/Object;,5) (118) + Handles Ljava/lang/Exception; at 80 +75: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (120) + Handles Ljava/lang/Exception; at 80 +76: LocalLoad(I,2) (123) + Handles Ljava/lang/Exception; at 80 +77: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (124) + Handles Ljava/lang/Exception; at 80 +78: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,push,(I)V) (127) + Handles Ljava/lang/Exception; at 80 +79: Goto(6) (130) + Handles Ljava/lang/Exception; at 80 +80: LocalStore(Ljava/lang/Object;,5) (133) +81: LocalLoad(Ljava/lang/Object;,5) (135) +82: Invoke(VIRTUAL,Ljava/lang/Exception;,printStackTrace,()V) (137) +83: Constant(I,1) (140) +84: Return(I) (141) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"validate_expected_symbol(I)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/virtual_parse_stack;,0) (0) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +5: Dup(1,0) (3) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +7: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (5) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +8: Invoke(SPECIAL,Ljava_cup/runtime/virtual_parse_stack;,,(Ljava/util/Stack;)V) (8) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +9: LocalStore(Ljava/lang/Object;,5) (11) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +10: LocalLoad(Ljava/lang/Object;,0) (13) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +11: LocalLoad(Ljava/lang/Object;,5) (14) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +12: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (16) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +13: LocalLoad(I,1) (19) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +14: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (20) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +15: LocalStore(I,4) (23) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +16: LocalLoad(I,4) (25) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +17: Constant(I,0) (27) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +18: ConditionalBranch(I,ne,26) (27) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +19: Constant(I,0) (30) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +20: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (31) + Handles null at 109 +21: Constant(Ljava/lang/String;,"validate_expected_symbol(I)Z") (31) + Handles null at 109 +22: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 109 +23: Constant(I,0) (31) + Handles null at 109 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (31) + Handles null at 109 +25: Return(I) (31) + Handles null at 109 +26: LocalLoad(I,4) (32) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +27: Constant(I,0) (34) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +28: ConditionalBranch(I,le,45) (34) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +29: LocalLoad(Ljava/lang/Object;,5) (37) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +30: LocalLoad(I,4) (39) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +31: Constant(I,1) (41) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +32: BinaryOp(I,sub) (42) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +33: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,push,(I)V) (43) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +34: LocalLoad(Ljava/lang/Object;,0) (46) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +35: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,advance_lookahead,()Z) (47) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +36: Constant(I,0) (50) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +37: ConditionalBranch(I,ne,10) (50) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +38: Constant(I,1) (53) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +39: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (54) + Handles null at 109 +40: Constant(Ljava/lang/String;,"validate_expected_symbol(I)Z") (54) + Handles null at 109 +41: LocalLoad(Ljava/lang/Object;,0) (54) + Handles null at 109 +42: Constant(I,0) (54) + Handles null at 109 +43: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (54) + Handles null at 109 +44: Return(I) (54) + Handles null at 109 +45: LocalLoad(I,4) (55) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +46: UnaryOp(I,neg) (57) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +47: Constant(I,1) (58) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +48: BinaryOp(I,sub) (59) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +49: LocalLoad(Ljava/lang/Object;,0) (60) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +50: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,start_production,()I) (61) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +51: ConditionalBranch(I,ne,59) (64) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +52: Constant(I,1) (67) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +53: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (68) + Handles null at 109 +54: Constant(Ljava/lang/String;,"validate_expected_symbol(I)Z") (68) + Handles null at 109 +55: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 109 +56: Constant(I,0) (68) + Handles null at 109 +57: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (68) + Handles null at 109 +58: Return(I) (68) + Handles null at 109 +59: LocalLoad(Ljava/lang/Object;,0) (69) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +60: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (70) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +61: LocalLoad(I,4) (73) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +62: UnaryOp(I,neg) (75) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +63: Constant(I,1) (76) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +64: BinaryOp(I,sub) (77) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +65: ArrayLoad(Ljava/lang/Object;) (78) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +66: Constant(I,0) (79) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +67: ArrayLoad(S) (80) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +68: LocalStore(I,2) (81) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +69: LocalLoad(Ljava/lang/Object;,0) (82) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +70: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (83) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +71: LocalLoad(I,4) (86) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +72: UnaryOp(I,neg) (88) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +73: Constant(I,1) (89) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +74: BinaryOp(I,sub) (90) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +75: ArrayLoad(Ljava/lang/Object;) (91) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +76: Constant(I,1) (92) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +77: ArrayLoad(S) (93) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +78: LocalStore(I,3) (94) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +79: Constant(I,0) (95) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +80: LocalStore(I,6) (96) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +81: LocalLoad(I,6) (98) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +82: LocalLoad(I,3) (100) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +83: ConditionalBranch(I,ge,91) (101) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +84: LocalLoad(Ljava/lang/Object;,5) (104) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +85: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,pop,()V) (106) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +86: LocalLoad(I,6) (109) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +87: Constant(I,1) (109) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +88: BinaryOp(I,add) (109) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +89: LocalStore(I,6) (109) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +90: Goto(81) (112) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +91: LocalLoad(Ljava/lang/Object;,5) (115) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +92: LocalLoad(Ljava/lang/Object;,0) (117) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +93: LocalLoad(Ljava/lang/Object;,5) (118) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +94: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (120) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +95: LocalLoad(I,2) (123) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +96: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (124) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +97: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,push,(I)V) (127) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +98: Goto(10) (130) + Handles Ljava/lang/Exception; at 99 + Handles null at 109 +99: LocalStore(Ljava/lang/Object;,5) (133) + Handles null at 109 +100: LocalLoad(Ljava/lang/Object;,5) (135) + Handles null at 109 +101: Invoke(VIRTUAL,Ljava/lang/Exception;,printStackTrace,()V) (137) + Handles null at 109 +102: Constant(I,1) (140) + Handles null at 109 +103: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (141) + Handles null at 109 +104: Constant(Ljava/lang/String;,"validate_expected_symbol(I)Z") (141) + Handles null at 109 +105: LocalLoad(Ljava/lang/Object;,0) (141) + Handles null at 109 +106: Constant(I,0) (141) + Handles null at 109 +107: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (141) + Handles null at 109 +108: Return(I) (141) + Handles null at 109 +109: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +110: Constant(Ljava/lang/String;,"validate_expected_symbol(I)Z") (0) +111: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +112: Constant(I,1) (0) +113: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +114: Throw() (0) +Instrumenting unrecovered_syntax_error (Ljava_cup/runtime/Symbol;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(Ljava/lang/String;,"Couldn't repair and continue parse") (1) +2: LocalLoad(Ljava/lang/Object;,1) (3) +3: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_fatal_error,(Ljava/lang/String;Ljava/lang/Object;)V) (4) +4: Return(V) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"unrecovered_syntax_error(Ljava_cup/runtime/Symbol;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: Constant(Ljava/lang/String;,"Couldn't repair and continue parse") (1) + Handles null at 14 +6: LocalLoad(Ljava/lang/Object;,1) (3) + Handles null at 14 +7: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_fatal_error,(Ljava/lang/String;Ljava/lang/Object;)V) (4) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (7) + Handles null at 14 +9: Constant(Ljava/lang/String;,"unrecovered_syntax_error(Ljava_cup/runtime/Symbol;)V") (7) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 14 +11: Constant(I,0) (7) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 14 +13: Return(V) (7) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +15: Constant(Ljava/lang/String;,"unrecovered_syntax_error(Ljava_cup/runtime/Symbol;)V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting get_action (II)S: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,action_tab) (1) +2: LocalLoad(I,1) (4) +3: ArrayLoad(Ljava/lang/Object;) (5) +4: LocalStore(Ljava/lang/Object;,7) (6) +5: LocalLoad(Ljava/lang/Object;,7) (8) +6: ArrayLength() (10) +7: Constant(I,20) (11) +8: ConditionalBranch(I,ge,38) (13) +9: Constant(I,0) (16) +10: LocalStore(I,6) (17) +11: LocalLoad(I,6) (19) +12: LocalLoad(Ljava/lang/Object;,7) (21) +13: ArrayLength() (23) +14: ConditionalBranch(I,ge,97) (24) +15: LocalLoad(Ljava/lang/Object;,7) (27) +16: LocalLoad(I,6) (29) +17: LocalLoad(I,6) (31) +18: Constant(I,1) (31) +19: BinaryOp(I,add) (31) +20: LocalStore(I,6) (31) +21: ArrayLoad(S) (34) +22: LocalStore(I,3) (35) +23: LocalLoad(I,3) (36) +24: LocalLoad(I,2) (37) +25: ConditionalBranch(I,eq,29) (38) +26: LocalLoad(I,3) (41) +27: Constant(I,-1) (42) +28: ConditionalBranch(I,ne,33) (43) +29: LocalLoad(Ljava/lang/Object;,7) (46) +30: LocalLoad(I,6) (48) +31: ArrayLoad(S) (50) +32: Return(I) (51) +33: LocalLoad(I,6) (52) +34: Constant(I,1) (52) +35: BinaryOp(I,add) (52) +36: LocalStore(I,6) (52) +37: Goto(11) (55) +38: Constant(I,0) (58) +39: LocalStore(I,4) (59) +40: LocalLoad(Ljava/lang/Object;,7) (61) +41: ArrayLength() (63) +42: Constant(I,1) (64) +43: BinaryOp(I,sub) (65) +44: Constant(I,2) (66) +45: BinaryOp(I,div) (67) +46: Constant(I,1) (68) +47: BinaryOp(I,sub) (69) +48: LocalStore(I,5) (70) +49: LocalLoad(I,4) (72) +50: LocalLoad(I,5) (74) +51: ConditionalBranch(I,gt,90) (76) +52: LocalLoad(I,4) (79) +53: LocalLoad(I,5) (81) +54: BinaryOp(I,add) (83) +55: Constant(I,2) (84) +56: BinaryOp(I,div) (85) +57: LocalStore(I,6) (86) +58: LocalLoad(I,2) (88) +59: LocalLoad(Ljava/lang/Object;,7) (89) +60: LocalLoad(I,6) (91) +61: Constant(I,2) (93) +62: BinaryOp(I,mul) (94) +63: ArrayLoad(S) (95) +64: ConditionalBranch(I,ne,73) (96) +65: LocalLoad(Ljava/lang/Object;,7) (99) +66: LocalLoad(I,6) (101) +67: Constant(I,2) (103) +68: BinaryOp(I,mul) (104) +69: Constant(I,1) (105) +70: BinaryOp(I,add) (106) +71: ArrayLoad(S) (107) +72: Return(I) (108) +73: LocalLoad(I,2) (109) +74: LocalLoad(Ljava/lang/Object;,7) (110) +75: LocalLoad(I,6) (112) +76: Constant(I,2) (114) +77: BinaryOp(I,mul) (115) +78: ArrayLoad(S) (116) +79: ConditionalBranch(I,le,85) (117) +80: LocalLoad(I,6) (120) +81: Constant(I,1) (122) +82: BinaryOp(I,add) (123) +83: LocalStore(I,4) (124) +84: Goto(49) (126) +85: LocalLoad(I,6) (129) +86: Constant(I,1) (131) +87: BinaryOp(I,sub) (132) +88: LocalStore(I,5) (133) +89: Goto(49) (135) +90: LocalLoad(Ljava/lang/Object;,7) (138) +91: LocalLoad(Ljava/lang/Object;,7) (140) +92: ArrayLength() (142) +93: Constant(I,1) (143) +94: BinaryOp(I,sub) (144) +95: ArrayLoad(S) (145) +96: Return(I) (146) +97: Constant(I,0) (147) +98: Return(I) (148) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"get_action(II)S") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 123 +5: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,action_tab) (1) + Handles null at 123 +6: LocalLoad(I,1) (4) + Handles null at 123 +7: ArrayLoad(Ljava/lang/Object;) (5) + Handles null at 123 +8: LocalStore(Ljava/lang/Object;,7) (6) + Handles null at 123 +9: LocalLoad(Ljava/lang/Object;,7) (8) + Handles null at 123 +10: ArrayLength() (10) + Handles null at 123 +11: Constant(I,20) (11) + Handles null at 123 +12: ConditionalBranch(I,ge,47) (13) + Handles null at 123 +13: Constant(I,0) (16) + Handles null at 123 +14: LocalStore(I,6) (17) + Handles null at 123 +15: LocalLoad(I,6) (19) + Handles null at 123 +16: LocalLoad(Ljava/lang/Object;,7) (21) + Handles null at 123 +17: ArrayLength() (23) + Handles null at 123 +18: ConditionalBranch(I,ge,116) (24) + Handles null at 123 +19: LocalLoad(Ljava/lang/Object;,7) (27) + Handles null at 123 +20: LocalLoad(I,6) (29) + Handles null at 123 +21: LocalLoad(I,6) (31) + Handles null at 123 +22: Constant(I,1) (31) + Handles null at 123 +23: BinaryOp(I,add) (31) + Handles null at 123 +24: LocalStore(I,6) (31) + Handles null at 123 +25: ArrayLoad(S) (34) + Handles null at 123 +26: LocalStore(I,3) (35) + Handles null at 123 +27: LocalLoad(I,3) (36) + Handles null at 123 +28: LocalLoad(I,2) (37) + Handles null at 123 +29: ConditionalBranch(I,eq,33) (38) + Handles null at 123 +30: LocalLoad(I,3) (41) + Handles null at 123 +31: Constant(I,-1) (42) + Handles null at 123 +32: ConditionalBranch(I,ne,42) (43) + Handles null at 123 +33: LocalLoad(Ljava/lang/Object;,7) (46) + Handles null at 123 +34: LocalLoad(I,6) (48) + Handles null at 123 +35: ArrayLoad(S) (50) + Handles null at 123 +36: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (51) + Handles null at 123 +37: Constant(Ljava/lang/String;,"get_action(II)S") (51) + Handles null at 123 +38: LocalLoad(Ljava/lang/Object;,0) (51) + Handles null at 123 +39: Constant(I,0) (51) + Handles null at 123 +40: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (51) + Handles null at 123 +41: Return(I) (51) + Handles null at 123 +42: LocalLoad(I,6) (52) + Handles null at 123 +43: Constant(I,1) (52) + Handles null at 123 +44: BinaryOp(I,add) (52) + Handles null at 123 +45: LocalStore(I,6) (52) + Handles null at 123 +46: Goto(15) (55) + Handles null at 123 +47: Constant(I,0) (58) + Handles null at 123 +48: LocalStore(I,4) (59) + Handles null at 123 +49: LocalLoad(Ljava/lang/Object;,7) (61) + Handles null at 123 +50: ArrayLength() (63) + Handles null at 123 +51: Constant(I,1) (64) + Handles null at 123 +52: BinaryOp(I,sub) (65) + Handles null at 123 +53: Constant(I,2) (66) + Handles null at 123 +54: BinaryOp(I,div) (67) + Handles null at 123 +55: Constant(I,1) (68) + Handles null at 123 +56: BinaryOp(I,sub) (69) + Handles null at 123 +57: LocalStore(I,5) (70) + Handles null at 123 +58: LocalLoad(I,4) (72) + Handles null at 123 +59: LocalLoad(I,5) (74) + Handles null at 123 +60: ConditionalBranch(I,gt,104) (76) + Handles null at 123 +61: LocalLoad(I,4) (79) + Handles null at 123 +62: LocalLoad(I,5) (81) + Handles null at 123 +63: BinaryOp(I,add) (83) + Handles null at 123 +64: Constant(I,2) (84) + Handles null at 123 +65: BinaryOp(I,div) (85) + Handles null at 123 +66: LocalStore(I,6) (86) + Handles null at 123 +67: LocalLoad(I,2) (88) + Handles null at 123 +68: LocalLoad(Ljava/lang/Object;,7) (89) + Handles null at 123 +69: LocalLoad(I,6) (91) + Handles null at 123 +70: Constant(I,2) (93) + Handles null at 123 +71: BinaryOp(I,mul) (94) + Handles null at 123 +72: ArrayLoad(S) (95) + Handles null at 123 +73: ConditionalBranch(I,ne,87) (96) + Handles null at 123 +74: LocalLoad(Ljava/lang/Object;,7) (99) + Handles null at 123 +75: LocalLoad(I,6) (101) + Handles null at 123 +76: Constant(I,2) (103) + Handles null at 123 +77: BinaryOp(I,mul) (104) + Handles null at 123 +78: Constant(I,1) (105) + Handles null at 123 +79: BinaryOp(I,add) (106) + Handles null at 123 +80: ArrayLoad(S) (107) + Handles null at 123 +81: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (108) + Handles null at 123 +82: Constant(Ljava/lang/String;,"get_action(II)S") (108) + Handles null at 123 +83: LocalLoad(Ljava/lang/Object;,0) (108) + Handles null at 123 +84: Constant(I,0) (108) + Handles null at 123 +85: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (108) + Handles null at 123 +86: Return(I) (108) + Handles null at 123 +87: LocalLoad(I,2) (109) + Handles null at 123 +88: LocalLoad(Ljava/lang/Object;,7) (110) + Handles null at 123 +89: LocalLoad(I,6) (112) + Handles null at 123 +90: Constant(I,2) (114) + Handles null at 123 +91: BinaryOp(I,mul) (115) + Handles null at 123 +92: ArrayLoad(S) (116) + Handles null at 123 +93: ConditionalBranch(I,le,99) (117) + Handles null at 123 +94: LocalLoad(I,6) (120) + Handles null at 123 +95: Constant(I,1) (122) + Handles null at 123 +96: BinaryOp(I,add) (123) + Handles null at 123 +97: LocalStore(I,4) (124) + Handles null at 123 +98: Goto(58) (126) + Handles null at 123 +99: LocalLoad(I,6) (129) + Handles null at 123 +100: Constant(I,1) (131) + Handles null at 123 +101: BinaryOp(I,sub) (132) + Handles null at 123 +102: LocalStore(I,5) (133) + Handles null at 123 +103: Goto(58) (135) + Handles null at 123 +104: LocalLoad(Ljava/lang/Object;,7) (138) + Handles null at 123 +105: LocalLoad(Ljava/lang/Object;,7) (140) + Handles null at 123 +106: ArrayLength() (142) + Handles null at 123 +107: Constant(I,1) (143) + Handles null at 123 +108: BinaryOp(I,sub) (144) + Handles null at 123 +109: ArrayLoad(S) (145) + Handles null at 123 +110: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (146) + Handles null at 123 +111: Constant(Ljava/lang/String;,"get_action(II)S") (146) + Handles null at 123 +112: LocalLoad(Ljava/lang/Object;,0) (146) + Handles null at 123 +113: Constant(I,0) (146) + Handles null at 123 +114: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (146) + Handles null at 123 +115: Return(I) (146) + Handles null at 123 +116: Constant(I,0) (147) + Handles null at 123 +117: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (148) + Handles null at 123 +118: Constant(Ljava/lang/String;,"get_action(II)S") (148) + Handles null at 123 +119: LocalLoad(Ljava/lang/Object;,0) (148) + Handles null at 123 +120: Constant(I,0) (148) + Handles null at 123 +121: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (148) + Handles null at 123 +122: Return(I) (148) + Handles null at 123 +123: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +124: Constant(Ljava/lang/String;,"get_action(II)S") (0) +125: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +126: Constant(I,1) (0) +127: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +128: Throw() (0) +Instrumenting get_reduce (II)S: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,reduce_tab) (1) +2: LocalLoad(I,1) (4) +3: ArrayLoad(Ljava/lang/Object;) (5) +4: LocalStore(Ljava/lang/Object;,4) (6) +5: LocalLoad(Ljava/lang/Object;,4) (8) +6: Constant(L;,null) (10) +7: ConditionalBranch(Ljava/lang/Object;,ne,10) (10) +8: Constant(I,-1) (13) +9: Return(I) (14) +10: Constant(I,0) (15) +11: LocalStore(I,5) (16) +12: LocalLoad(I,5) (18) +13: LocalLoad(Ljava/lang/Object;,4) (20) +14: ArrayLength() (22) +15: ConditionalBranch(I,ge,39) (23) +16: LocalLoad(Ljava/lang/Object;,4) (26) +17: LocalLoad(I,5) (28) +18: LocalLoad(I,5) (30) +19: Constant(I,1) (30) +20: BinaryOp(I,add) (30) +21: LocalStore(I,5) (30) +22: ArrayLoad(S) (33) +23: LocalStore(I,3) (34) +24: LocalLoad(I,3) (35) +25: LocalLoad(I,2) (36) +26: ConditionalBranch(I,eq,30) (37) +27: LocalLoad(I,3) (40) +28: Constant(I,-1) (41) +29: ConditionalBranch(I,ne,34) (42) +30: LocalLoad(Ljava/lang/Object;,4) (45) +31: LocalLoad(I,5) (47) +32: ArrayLoad(S) (49) +33: Return(I) (50) +34: LocalLoad(I,5) (51) +35: Constant(I,1) (51) +36: BinaryOp(I,add) (51) +37: LocalStore(I,5) (51) +38: Goto(12) (54) +39: Constant(I,-1) (57) +40: Return(I) (58) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"get_reduce(II)S") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 60 +5: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,reduce_tab) (1) + Handles null at 60 +6: LocalLoad(I,1) (4) + Handles null at 60 +7: ArrayLoad(Ljava/lang/Object;) (5) + Handles null at 60 +8: LocalStore(Ljava/lang/Object;,4) (6) + Handles null at 60 +9: LocalLoad(Ljava/lang/Object;,4) (8) + Handles null at 60 +10: Constant(L;,null) (10) + Handles null at 60 +11: ConditionalBranch(Ljava/lang/Object;,ne,19) (10) + Handles null at 60 +12: Constant(I,-1) (13) + Handles null at 60 +13: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (14) + Handles null at 60 +14: Constant(Ljava/lang/String;,"get_reduce(II)S") (14) + Handles null at 60 +15: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 60 +16: Constant(I,0) (14) + Handles null at 60 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 60 +18: Return(I) (14) + Handles null at 60 +19: Constant(I,0) (15) + Handles null at 60 +20: LocalStore(I,5) (16) + Handles null at 60 +21: LocalLoad(I,5) (18) + Handles null at 60 +22: LocalLoad(Ljava/lang/Object;,4) (20) + Handles null at 60 +23: ArrayLength() (22) + Handles null at 60 +24: ConditionalBranch(I,ge,53) (23) + Handles null at 60 +25: LocalLoad(Ljava/lang/Object;,4) (26) + Handles null at 60 +26: LocalLoad(I,5) (28) + Handles null at 60 +27: LocalLoad(I,5) (30) + Handles null at 60 +28: Constant(I,1) (30) + Handles null at 60 +29: BinaryOp(I,add) (30) + Handles null at 60 +30: LocalStore(I,5) (30) + Handles null at 60 +31: ArrayLoad(S) (33) + Handles null at 60 +32: LocalStore(I,3) (34) + Handles null at 60 +33: LocalLoad(I,3) (35) + Handles null at 60 +34: LocalLoad(I,2) (36) + Handles null at 60 +35: ConditionalBranch(I,eq,39) (37) + Handles null at 60 +36: LocalLoad(I,3) (40) + Handles null at 60 +37: Constant(I,-1) (41) + Handles null at 60 +38: ConditionalBranch(I,ne,48) (42) + Handles null at 60 +39: LocalLoad(Ljava/lang/Object;,4) (45) + Handles null at 60 +40: LocalLoad(I,5) (47) + Handles null at 60 +41: ArrayLoad(S) (49) + Handles null at 60 +42: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (50) + Handles null at 60 +43: Constant(Ljava/lang/String;,"get_reduce(II)S") (50) + Handles null at 60 +44: LocalLoad(Ljava/lang/Object;,0) (50) + Handles null at 60 +45: Constant(I,0) (50) + Handles null at 60 +46: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (50) + Handles null at 60 +47: Return(I) (50) + Handles null at 60 +48: LocalLoad(I,5) (51) + Handles null at 60 +49: Constant(I,1) (51) + Handles null at 60 +50: BinaryOp(I,add) (51) + Handles null at 60 +51: LocalStore(I,5) (51) + Handles null at 60 +52: Goto(21) (54) + Handles null at 60 +53: Constant(I,-1) (57) + Handles null at 60 +54: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (58) + Handles null at 60 +55: Constant(Ljava/lang/String;,"get_reduce(II)S") (58) + Handles null at 60 +56: LocalLoad(Ljava/lang/Object;,0) (58) + Handles null at 60 +57: Constant(I,0) (58) + Handles null at 60 +58: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (58) + Handles null at 60 +59: Return(I) (58) + Handles null at 60 +60: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +61: Constant(Ljava/lang/String;,"get_reduce(II)S") (0) +62: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +63: Constant(I,1) (0) +64: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +65: Throw() (0) +Instrumenting parse ()Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: Constant(L;,null) (0) +1: LocalStore(Ljava/lang/Object;,2) (1) +2: LocalLoad(Ljava/lang/Object;,0) (2) +3: LocalLoad(Ljava/lang/Object;,0) (3) +4: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,production_table,()[[S) (4) +5: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,action_table,()[[S) (12) +9: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,action_tab) (15) +10: LocalLoad(Ljava/lang/Object;,0) (18) +11: LocalLoad(Ljava/lang/Object;,0) (19) +12: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,reduce_table,()[[S) (20) +13: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,reduce_tab) (23) +14: LocalLoad(Ljava/lang/Object;,0) (26) +15: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,init_actions,()V) (27) +16: LocalLoad(Ljava/lang/Object;,0) (30) +17: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,user_init,()V) (31) +18: LocalLoad(Ljava/lang/Object;,0) (34) +19: LocalLoad(Ljava/lang/Object;,0) (35) +20: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (36) +21: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (39) +22: LocalLoad(Ljava/lang/Object;,0) (42) +23: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (43) +24: Invoke(VIRTUAL,Ljava/util/Stack;,removeAllElements,()V) (46) +25: LocalLoad(Ljava/lang/Object;,0) (49) +26: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (50) +27: LocalLoad(Ljava/lang/Object;,0) (53) +28: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (54) +29: Constant(Ljava/lang/String;,"START") (57) +30: Constant(I,0) (59) +31: LocalLoad(Ljava/lang/Object;,0) (60) +32: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,start_state,()I) (61) +33: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,startSymbol,(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;) (64) +34: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (69) +35: Pop(1) (72) +36: LocalLoad(Ljava/lang/Object;,0) (73) +37: Constant(I,0) (74) +38: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (75) +39: LocalLoad(Ljava/lang/Object;,0) (78) +40: Constant(I,0) (79) +41: Put(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (80) +42: LocalLoad(Ljava/lang/Object;,0) (83) +43: Get(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (84) +44: Constant(I,0) (87) +45: ConditionalBranch(I,ne,204) (87) +46: LocalLoad(Ljava/lang/Object;,0) (90) +47: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (91) +48: Get(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (94) +49: Constant(I,0) (97) +50: ConditionalBranch(I,eq,56) (97) +51: New(Ljava/lang/Error;,0) (100) +52: Dup(1,0) (103) +53: Constant(Ljava/lang/String;,"Symbol recycling detected (fix your scanner).") (104) +54: Invoke(SPECIAL,Ljava/lang/Error;,,(Ljava/lang/String;)V) (106) +55: Throw() (109) +56: LocalLoad(Ljava/lang/Object;,0) (110) +57: LocalLoad(Ljava/lang/Object;,0) (111) +58: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (112) +59: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (115) +60: CheckCast(Ljava_cup/runtime/Symbol;) (118) +61: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (121) +62: LocalLoad(Ljava/lang/Object;,0) (124) +63: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (125) +64: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (128) +65: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (131) +66: LocalStore(I,1) (134) +67: LocalLoad(I,1) (135) +68: Constant(I,0) (136) +69: ConditionalBranch(I,le,97) (136) +70: LocalLoad(Ljava/lang/Object;,0) (139) +71: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (140) +72: LocalLoad(I,1) (143) +73: Constant(I,1) (144) +74: BinaryOp(I,sub) (145) +75: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (146) +76: LocalLoad(Ljava/lang/Object;,0) (149) +77: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (150) +78: Constant(I,1) (153) +79: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (154) +80: LocalLoad(Ljava/lang/Object;,0) (157) +81: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (158) +82: LocalLoad(Ljava/lang/Object;,0) (161) +83: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (162) +84: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (165) +85: Pop(1) (168) +86: LocalLoad(Ljava/lang/Object;,0) (169) +87: Dup(1,0) (170) +88: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (171) +89: Constant(I,1) (174) +90: BinaryOp(I,add) (175) +91: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (176) +92: LocalLoad(Ljava/lang/Object;,0) (179) +93: LocalLoad(Ljava/lang/Object;,0) (180) +94: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (181) +95: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (184) +96: Goto(42) (187) +97: LocalLoad(I,1) (190) +98: Constant(I,0) (191) +99: ConditionalBranch(I,ge,179) (191) +100: LocalLoad(Ljava/lang/Object;,0) (194) +101: LocalLoad(I,1) (195) +102: UnaryOp(I,neg) (196) +103: Constant(I,1) (197) +104: BinaryOp(I,sub) (198) +105: LocalLoad(Ljava/lang/Object;,0) (199) +106: LocalLoad(Ljava/lang/Object;,0) (200) +107: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (201) +108: LocalLoad(Ljava/lang/Object;,0) (204) +109: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (205) +110: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,do_action,(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;) (208) +111: LocalStore(Ljava/lang/Object;,2) (211) +112: LocalLoad(Ljava/lang/Object;,0) (212) +113: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (213) +114: LocalLoad(I,1) (216) +115: UnaryOp(I,neg) (217) +116: Constant(I,1) (218) +117: BinaryOp(I,sub) (219) +118: ArrayLoad(Ljava/lang/Object;) (220) +119: Constant(I,0) (221) +120: ArrayLoad(S) (222) +121: LocalStore(I,4) (223) +122: LocalLoad(Ljava/lang/Object;,0) (225) +123: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (226) +124: LocalLoad(I,1) (229) +125: UnaryOp(I,neg) (230) +126: Constant(I,1) (231) +127: BinaryOp(I,sub) (232) +128: ArrayLoad(Ljava/lang/Object;) (233) +129: Constant(I,1) (234) +130: ArrayLoad(S) (235) +131: LocalStore(I,3) (236) +132: Constant(I,0) (237) +133: LocalStore(I,5) (238) +134: LocalLoad(I,5) (240) +135: LocalLoad(I,3) (242) +136: ConditionalBranch(I,ge,152) (243) +137: LocalLoad(Ljava/lang/Object;,0) (246) +138: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (247) +139: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (250) +140: Pop(1) (253) +141: LocalLoad(Ljava/lang/Object;,0) (254) +142: Dup(1,0) (255) +143: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (256) +144: Constant(I,1) (259) +145: BinaryOp(I,sub) (260) +146: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (261) +147: LocalLoad(I,5) (264) +148: Constant(I,1) (264) +149: BinaryOp(I,add) (264) +150: LocalStore(I,5) (264) +151: Goto(134) (267) +152: LocalLoad(Ljava/lang/Object;,0) (270) +153: LocalLoad(Ljava/lang/Object;,0) (271) +154: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (272) +155: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (275) +156: CheckCast(Ljava_cup/runtime/Symbol;) (278) +157: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (281) +158: LocalLoad(I,4) (284) +159: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (286) +160: LocalStore(I,1) (289) +161: LocalLoad(Ljava/lang/Object;,2) (290) +162: LocalLoad(I,1) (291) +163: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (292) +164: LocalLoad(Ljava/lang/Object;,2) (295) +165: Constant(I,1) (296) +166: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (297) +167: LocalLoad(Ljava/lang/Object;,0) (300) +168: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (301) +169: LocalLoad(Ljava/lang/Object;,2) (304) +170: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (305) +171: Pop(1) (308) +172: LocalLoad(Ljava/lang/Object;,0) (309) +173: Dup(1,0) (310) +174: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (311) +175: Constant(I,1) (314) +176: BinaryOp(I,add) (315) +177: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (316) +178: Goto(42) (319) +179: LocalLoad(I,1) (322) +180: Constant(I,0) (323) +181: ConditionalBranch(I,ne,42) (323) +182: LocalLoad(Ljava/lang/Object;,0) (326) +183: LocalLoad(Ljava/lang/Object;,0) (327) +184: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (328) +185: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,syntax_error,(Ljava_cup/runtime/Symbol;)V) (331) +186: LocalLoad(Ljava/lang/Object;,0) (334) +187: Constant(I,0) (335) +188: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_recovery,(Z)Z) (336) +189: Constant(I,0) (339) +190: ConditionalBranch(I,ne,198) (339) +191: LocalLoad(Ljava/lang/Object;,0) (342) +192: LocalLoad(Ljava/lang/Object;,0) (343) +193: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (344) +194: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,unrecovered_syntax_error,(Ljava_cup/runtime/Symbol;)V) (347) +195: LocalLoad(Ljava/lang/Object;,0) (350) +196: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,done_parsing,()V) (351) +197: Goto(42) (354) +198: LocalLoad(Ljava/lang/Object;,0) (357) +199: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (358) +200: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (361) +201: CheckCast(Ljava_cup/runtime/Symbol;) (364) +202: LocalStore(Ljava/lang/Object;,2) (367) +203: Goto(42) (368) +204: LocalLoad(Ljava/lang/Object;,2) (371) +205: Return(Ljava/lang/Object;) (372) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"parse()Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(L;,null) (0) + Handles null at 215 +5: LocalStore(Ljava/lang/Object;,2) (1) + Handles null at 215 +6: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 215 +7: LocalLoad(Ljava/lang/Object;,0) (3) + Handles null at 215 +8: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,production_table,()[[S) (4) + Handles null at 215 +9: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (7) + Handles null at 215 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 215 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 215 +12: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,action_table,()[[S) (12) + Handles null at 215 +13: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,action_tab) (15) + Handles null at 215 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 215 +15: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 215 +16: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,reduce_table,()[[S) (20) + Handles null at 215 +17: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,reduce_tab) (23) + Handles null at 215 +18: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 215 +19: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,init_actions,()V) (27) + Handles null at 215 +20: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 215 +21: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,user_init,()V) (31) + Handles null at 215 +22: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 215 +23: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 215 +24: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (36) + Handles null at 215 +25: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (39) + Handles null at 215 +26: LocalLoad(Ljava/lang/Object;,0) (42) + Handles null at 215 +27: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (43) + Handles null at 215 +28: Invoke(VIRTUAL,Ljava/util/Stack;,removeAllElements,()V) (46) + Handles null at 215 +29: LocalLoad(Ljava/lang/Object;,0) (49) + Handles null at 215 +30: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (50) + Handles null at 215 +31: LocalLoad(Ljava/lang/Object;,0) (53) + Handles null at 215 +32: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (54) + Handles null at 215 +33: Constant(Ljava/lang/String;,"START") (57) + Handles null at 215 +34: Constant(I,0) (59) + Handles null at 215 +35: LocalLoad(Ljava/lang/Object;,0) (60) + Handles null at 215 +36: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,start_state,()I) (61) + Handles null at 215 +37: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,startSymbol,(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;) (64) + Handles null at 215 +38: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (69) + Handles null at 215 +39: Pop(1) (72) + Handles null at 215 +40: LocalLoad(Ljava/lang/Object;,0) (73) + Handles null at 215 +41: Constant(I,0) (74) + Handles null at 215 +42: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (75) + Handles null at 215 +43: LocalLoad(Ljava/lang/Object;,0) (78) + Handles null at 215 +44: Constant(I,0) (79) + Handles null at 215 +45: Put(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (80) + Handles null at 215 +46: LocalLoad(Ljava/lang/Object;,0) (83) + Handles null at 215 +47: Get(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (84) + Handles null at 215 +48: Constant(I,0) (87) + Handles null at 215 +49: ConditionalBranch(I,ne,208) (87) + Handles null at 215 +50: LocalLoad(Ljava/lang/Object;,0) (90) + Handles null at 215 +51: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (91) + Handles null at 215 +52: Get(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (94) + Handles null at 215 +53: Constant(I,0) (97) + Handles null at 215 +54: ConditionalBranch(I,eq,60) (97) + Handles null at 215 +55: New(Ljava/lang/Error;,0) (100) + Handles null at 215 +56: Dup(1,0) (103) + Handles null at 215 +57: Constant(Ljava/lang/String;,"Symbol recycling detected (fix your scanner).") (104) + Handles null at 215 +58: Invoke(SPECIAL,Ljava/lang/Error;,,(Ljava/lang/String;)V) (106) + Handles null at 215 +59: Throw() (109) + Handles null at 215 +60: LocalLoad(Ljava/lang/Object;,0) (110) + Handles null at 215 +61: LocalLoad(Ljava/lang/Object;,0) (111) + Handles null at 215 +62: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (112) + Handles null at 215 +63: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (115) + Handles null at 215 +64: CheckCast(Ljava_cup/runtime/Symbol;) (118) + Handles null at 215 +65: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (121) + Handles null at 215 +66: LocalLoad(Ljava/lang/Object;,0) (124) + Handles null at 215 +67: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (125) + Handles null at 215 +68: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (128) + Handles null at 215 +69: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (131) + Handles null at 215 +70: LocalStore(I,1) (134) + Handles null at 215 +71: LocalLoad(I,1) (135) + Handles null at 215 +72: Constant(I,0) (136) + Handles null at 215 +73: ConditionalBranch(I,le,101) (136) + Handles null at 215 +74: LocalLoad(Ljava/lang/Object;,0) (139) + Handles null at 215 +75: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (140) + Handles null at 215 +76: LocalLoad(I,1) (143) + Handles null at 215 +77: Constant(I,1) (144) + Handles null at 215 +78: BinaryOp(I,sub) (145) + Handles null at 215 +79: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (146) + Handles null at 215 +80: LocalLoad(Ljava/lang/Object;,0) (149) + Handles null at 215 +81: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (150) + Handles null at 215 +82: Constant(I,1) (153) + Handles null at 215 +83: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (154) + Handles null at 215 +84: LocalLoad(Ljava/lang/Object;,0) (157) + Handles null at 215 +85: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (158) + Handles null at 215 +86: LocalLoad(Ljava/lang/Object;,0) (161) + Handles null at 215 +87: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (162) + Handles null at 215 +88: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (165) + Handles null at 215 +89: Pop(1) (168) + Handles null at 215 +90: LocalLoad(Ljava/lang/Object;,0) (169) + Handles null at 215 +91: Dup(1,0) (170) + Handles null at 215 +92: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (171) + Handles null at 215 +93: Constant(I,1) (174) + Handles null at 215 +94: BinaryOp(I,add) (175) + Handles null at 215 +95: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (176) + Handles null at 215 +96: LocalLoad(Ljava/lang/Object;,0) (179) + Handles null at 215 +97: LocalLoad(Ljava/lang/Object;,0) (180) + Handles null at 215 +98: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (181) + Handles null at 215 +99: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (184) + Handles null at 215 +100: Goto(46) (187) + Handles null at 215 +101: LocalLoad(I,1) (190) + Handles null at 215 +102: Constant(I,0) (191) + Handles null at 215 +103: ConditionalBranch(I,ge,183) (191) + Handles null at 215 +104: LocalLoad(Ljava/lang/Object;,0) (194) + Handles null at 215 +105: LocalLoad(I,1) (195) + Handles null at 215 +106: UnaryOp(I,neg) (196) + Handles null at 215 +107: Constant(I,1) (197) + Handles null at 215 +108: BinaryOp(I,sub) (198) + Handles null at 215 +109: LocalLoad(Ljava/lang/Object;,0) (199) + Handles null at 215 +110: LocalLoad(Ljava/lang/Object;,0) (200) + Handles null at 215 +111: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (201) + Handles null at 215 +112: LocalLoad(Ljava/lang/Object;,0) (204) + Handles null at 215 +113: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (205) + Handles null at 215 +114: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,do_action,(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;) (208) + Handles null at 215 +115: LocalStore(Ljava/lang/Object;,2) (211) + Handles null at 215 +116: LocalLoad(Ljava/lang/Object;,0) (212) + Handles null at 215 +117: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (213) + Handles null at 215 +118: LocalLoad(I,1) (216) + Handles null at 215 +119: UnaryOp(I,neg) (217) + Handles null at 215 +120: Constant(I,1) (218) + Handles null at 215 +121: BinaryOp(I,sub) (219) + Handles null at 215 +122: ArrayLoad(Ljava/lang/Object;) (220) + Handles null at 215 +123: Constant(I,0) (221) + Handles null at 215 +124: ArrayLoad(S) (222) + Handles null at 215 +125: LocalStore(I,4) (223) + Handles null at 215 +126: LocalLoad(Ljava/lang/Object;,0) (225) + Handles null at 215 +127: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (226) + Handles null at 215 +128: LocalLoad(I,1) (229) + Handles null at 215 +129: UnaryOp(I,neg) (230) + Handles null at 215 +130: Constant(I,1) (231) + Handles null at 215 +131: BinaryOp(I,sub) (232) + Handles null at 215 +132: ArrayLoad(Ljava/lang/Object;) (233) + Handles null at 215 +133: Constant(I,1) (234) + Handles null at 215 +134: ArrayLoad(S) (235) + Handles null at 215 +135: LocalStore(I,3) (236) + Handles null at 215 +136: Constant(I,0) (237) + Handles null at 215 +137: LocalStore(I,5) (238) + Handles null at 215 +138: LocalLoad(I,5) (240) + Handles null at 215 +139: LocalLoad(I,3) (242) + Handles null at 215 +140: ConditionalBranch(I,ge,156) (243) + Handles null at 215 +141: LocalLoad(Ljava/lang/Object;,0) (246) + Handles null at 215 +142: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (247) + Handles null at 215 +143: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (250) + Handles null at 215 +144: Pop(1) (253) + Handles null at 215 +145: LocalLoad(Ljava/lang/Object;,0) (254) + Handles null at 215 +146: Dup(1,0) (255) + Handles null at 215 +147: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (256) + Handles null at 215 +148: Constant(I,1) (259) + Handles null at 215 +149: BinaryOp(I,sub) (260) + Handles null at 215 +150: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (261) + Handles null at 215 +151: LocalLoad(I,5) (264) + Handles null at 215 +152: Constant(I,1) (264) + Handles null at 215 +153: BinaryOp(I,add) (264) + Handles null at 215 +154: LocalStore(I,5) (264) + Handles null at 215 +155: Goto(138) (267) + Handles null at 215 +156: LocalLoad(Ljava/lang/Object;,0) (270) + Handles null at 215 +157: LocalLoad(Ljava/lang/Object;,0) (271) + Handles null at 215 +158: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (272) + Handles null at 215 +159: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (275) + Handles null at 215 +160: CheckCast(Ljava_cup/runtime/Symbol;) (278) + Handles null at 215 +161: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (281) + Handles null at 215 +162: LocalLoad(I,4) (284) + Handles null at 215 +163: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (286) + Handles null at 215 +164: LocalStore(I,1) (289) + Handles null at 215 +165: LocalLoad(Ljava/lang/Object;,2) (290) + Handles null at 215 +166: LocalLoad(I,1) (291) + Handles null at 215 +167: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (292) + Handles null at 215 +168: LocalLoad(Ljava/lang/Object;,2) (295) + Handles null at 215 +169: Constant(I,1) (296) + Handles null at 215 +170: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (297) + Handles null at 215 +171: LocalLoad(Ljava/lang/Object;,0) (300) + Handles null at 215 +172: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (301) + Handles null at 215 +173: LocalLoad(Ljava/lang/Object;,2) (304) + Handles null at 215 +174: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (305) + Handles null at 215 +175: Pop(1) (308) + Handles null at 215 +176: LocalLoad(Ljava/lang/Object;,0) (309) + Handles null at 215 +177: Dup(1,0) (310) + Handles null at 215 +178: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (311) + Handles null at 215 +179: Constant(I,1) (314) + Handles null at 215 +180: BinaryOp(I,add) (315) + Handles null at 215 +181: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (316) + Handles null at 215 +182: Goto(46) (319) + Handles null at 215 +183: LocalLoad(I,1) (322) + Handles null at 215 +184: Constant(I,0) (323) + Handles null at 215 +185: ConditionalBranch(I,ne,46) (323) + Handles null at 215 +186: LocalLoad(Ljava/lang/Object;,0) (326) + Handles null at 215 +187: LocalLoad(Ljava/lang/Object;,0) (327) + Handles null at 215 +188: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (328) + Handles null at 215 +189: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,syntax_error,(Ljava_cup/runtime/Symbol;)V) (331) + Handles null at 215 +190: LocalLoad(Ljava/lang/Object;,0) (334) + Handles null at 215 +191: Constant(I,0) (335) + Handles null at 215 +192: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_recovery,(Z)Z) (336) + Handles null at 215 +193: Constant(I,0) (339) + Handles null at 215 +194: ConditionalBranch(I,ne,202) (339) + Handles null at 215 +195: LocalLoad(Ljava/lang/Object;,0) (342) + Handles null at 215 +196: LocalLoad(Ljava/lang/Object;,0) (343) + Handles null at 215 +197: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (344) + Handles null at 215 +198: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,unrecovered_syntax_error,(Ljava_cup/runtime/Symbol;)V) (347) + Handles null at 215 +199: LocalLoad(Ljava/lang/Object;,0) (350) + Handles null at 215 +200: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,done_parsing,()V) (351) + Handles null at 215 +201: Goto(46) (354) + Handles null at 215 +202: LocalLoad(Ljava/lang/Object;,0) (357) + Handles null at 215 +203: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (358) + Handles null at 215 +204: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (361) + Handles null at 215 +205: CheckCast(Ljava_cup/runtime/Symbol;) (364) + Handles null at 215 +206: LocalStore(Ljava/lang/Object;,2) (367) + Handles null at 215 +207: Goto(46) (368) + Handles null at 215 +208: LocalLoad(Ljava/lang/Object;,2) (371) + Handles null at 215 +209: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (372) + Handles null at 215 +210: Constant(Ljava/lang/String;,"parse()Ljava_cup/runtime/Symbol;") (372) + Handles null at 215 +211: LocalLoad(Ljava/lang/Object;,0) (372) + Handles null at 215 +212: Constant(I,0) (372) + Handles null at 215 +213: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (372) + Handles null at 215 +214: Return(Ljava/lang/Object;) (372) + Handles null at 215 +215: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +216: Constant(Ljava/lang/String;,"parse()Ljava_cup/runtime/Symbol;") (0) +217: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +218: Constant(I,1) (0) +219: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +220: Throw() (0) +Instrumenting debug_message (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) +1: LocalLoad(Ljava/lang/Object;,1) (3) +2: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (4) +3: Return(V) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"debug_message(Ljava/lang/String;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/io/PrintStream;,STATIC,Ljava/lang/System;,err) (0) + Handles null at 13 +5: LocalLoad(Ljava/lang/Object;,1) (3) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava/io/PrintStream;,println,(Ljava/lang/String;)V) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"debug_message(Ljava/lang/String;)V") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(V) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +14: Constant(Ljava/lang/String;,"debug_message(Ljava/lang/String;)V") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting dump_stack ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (1) +2: Constant(L;,null) (4) +3: ConditionalBranch(Ljava/lang/Object;,ne,8) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: Constant(Ljava/lang/String;,"# Stack dump requested, but stack is null") (8) +6: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (10) +7: Return(V) (13) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: Constant(Ljava/lang/String;,"============ Parse Stack Dump ============") (15) +10: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (17) +11: Constant(I,0) (20) +12: LocalStore(I,1) (21) +13: LocalLoad(I,1) (22) +14: LocalLoad(Ljava/lang/Object;,0) (23) +15: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (24) +16: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (27) +17: ConditionalBranch(I,ge,47) (30) +18: LocalLoad(Ljava/lang/Object;,0) (33) +19: New(Ljava/lang/StringBuilder;,0) (34) +20: Dup(1,0) (37) +21: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (38) +22: Constant(Ljava/lang/String;,"Symbol: ") (41) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) +24: LocalLoad(Ljava/lang/Object;,0) (46) +25: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (47) +26: LocalLoad(I,1) (50) +27: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (51) +28: CheckCast(Ljava_cup/runtime/Symbol;) (54) +29: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (57) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (60) +31: Constant(Ljava/lang/String;," State: ") (63) +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (65) +33: LocalLoad(Ljava/lang/Object;,0) (68) +34: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (69) +35: LocalLoad(I,1) (72) +36: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (73) +37: CheckCast(Ljava_cup/runtime/Symbol;) (76) +38: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (79) +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (82) +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (85) +41: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (88) +42: LocalLoad(I,1) (91) +43: Constant(I,1) (91) +44: BinaryOp(I,add) (91) +45: LocalStore(I,1) (91) +46: Goto(13) (94) +47: LocalLoad(Ljava/lang/Object;,0) (97) +48: Constant(Ljava/lang/String;,"==========================================") (98) +49: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (100) +50: Return(V) (103) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"dump_stack()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 65 +5: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (1) + Handles null at 65 +6: Constant(L;,null) (4) + Handles null at 65 +7: ConditionalBranch(Ljava/lang/Object;,ne,17) (4) + Handles null at 65 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 65 +9: Constant(Ljava/lang/String;,"# Stack dump requested, but stack is null") (8) + Handles null at 65 +10: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (10) + Handles null at 65 +11: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (13) + Handles null at 65 +12: Constant(Ljava/lang/String;,"dump_stack()V") (13) + Handles null at 65 +13: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 65 +14: Constant(I,0) (13) + Handles null at 65 +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (13) + Handles null at 65 +16: Return(V) (13) + Handles null at 65 +17: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 65 +18: Constant(Ljava/lang/String;,"============ Parse Stack Dump ============") (15) + Handles null at 65 +19: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (17) + Handles null at 65 +20: Constant(I,0) (20) + Handles null at 65 +21: LocalStore(I,1) (21) + Handles null at 65 +22: LocalLoad(I,1) (22) + Handles null at 65 +23: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 65 +24: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (24) + Handles null at 65 +25: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (27) + Handles null at 65 +26: ConditionalBranch(I,ge,56) (30) + Handles null at 65 +27: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 65 +28: New(Ljava/lang/StringBuilder;,0) (34) + Handles null at 65 +29: Dup(1,0) (37) + Handles null at 65 +30: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (38) + Handles null at 65 +31: Constant(Ljava/lang/String;,"Symbol: ") (41) + Handles null at 65 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) + Handles null at 65 +33: LocalLoad(Ljava/lang/Object;,0) (46) + Handles null at 65 +34: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (47) + Handles null at 65 +35: LocalLoad(I,1) (50) + Handles null at 65 +36: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (51) + Handles null at 65 +37: CheckCast(Ljava_cup/runtime/Symbol;) (54) + Handles null at 65 +38: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (57) + Handles null at 65 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (60) + Handles null at 65 +40: Constant(Ljava/lang/String;," State: ") (63) + Handles null at 65 +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (65) + Handles null at 65 +42: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 65 +43: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (69) + Handles null at 65 +44: LocalLoad(I,1) (72) + Handles null at 65 +45: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (73) + Handles null at 65 +46: CheckCast(Ljava_cup/runtime/Symbol;) (76) + Handles null at 65 +47: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (79) + Handles null at 65 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (82) + Handles null at 65 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (85) + Handles null at 65 +50: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (88) + Handles null at 65 +51: LocalLoad(I,1) (91) + Handles null at 65 +52: Constant(I,1) (91) + Handles null at 65 +53: BinaryOp(I,add) (91) + Handles null at 65 +54: LocalStore(I,1) (91) + Handles null at 65 +55: Goto(22) (94) + Handles null at 65 +56: LocalLoad(Ljava/lang/Object;,0) (97) + Handles null at 65 +57: Constant(Ljava/lang/String;,"==========================================") (98) + Handles null at 65 +58: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (100) + Handles null at 65 +59: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (103) + Handles null at 65 +60: Constant(Ljava/lang/String;,"dump_stack()V") (103) + Handles null at 65 +61: LocalLoad(Ljava/lang/Object;,0) (103) + Handles null at 65 +62: Constant(I,0) (103) + Handles null at 65 +63: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (103) + Handles null at 65 +64: Return(V) (103) + Handles null at 65 +65: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +66: Constant(Ljava/lang/String;,"dump_stack()V") (0) +67: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +68: Constant(I,1) (0) +69: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +70: Throw() (0) +Instrumenting debug_reduce (III)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: New(Ljava/lang/StringBuilder;,0) (1) +2: Dup(1,0) (4) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (5) +4: Constant(Ljava/lang/String;,"# Reduce with prod #") (8) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (10) +6: LocalLoad(I,1) (13) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (14) +8: Constant(Ljava/lang/String;," [NT=") (17) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (19) +10: LocalLoad(I,2) (22) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (23) +12: Constant(Ljava/lang/String;,", ") (26) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +14: Constant(Ljava/lang/String;,"SZ=") (31) +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) +16: LocalLoad(I,3) (36) +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (37) +18: Constant(Ljava/lang/String;,"]") (40) +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (42) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (45) +21: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (48) +22: Return(V) (51) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"debug_reduce(III)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 32 +5: New(Ljava/lang/StringBuilder;,0) (1) + Handles null at 32 +6: Dup(1,0) (4) + Handles null at 32 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (5) + Handles null at 32 +8: Constant(Ljava/lang/String;,"# Reduce with prod #") (8) + Handles null at 32 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (10) + Handles null at 32 +10: LocalLoad(I,1) (13) + Handles null at 32 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (14) + Handles null at 32 +12: Constant(Ljava/lang/String;," [NT=") (17) + Handles null at 32 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (19) + Handles null at 32 +14: LocalLoad(I,2) (22) + Handles null at 32 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (23) + Handles null at 32 +16: Constant(Ljava/lang/String;,", ") (26) + Handles null at 32 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 32 +18: Constant(Ljava/lang/String;,"SZ=") (31) + Handles null at 32 +19: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (33) + Handles null at 32 +20: LocalLoad(I,3) (36) + Handles null at 32 +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (37) + Handles null at 32 +22: Constant(Ljava/lang/String;,"]") (40) + Handles null at 32 +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (42) + Handles null at 32 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (45) + Handles null at 32 +25: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (48) + Handles null at 32 +26: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (51) + Handles null at 32 +27: Constant(Ljava/lang/String;,"debug_reduce(III)V") (51) + Handles null at 32 +28: LocalLoad(Ljava/lang/Object;,0) (51) + Handles null at 32 +29: Constant(I,0) (51) + Handles null at 32 +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (51) + Handles null at 32 +31: Return(V) (51) + Handles null at 32 +32: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +33: Constant(Ljava/lang/String;,"debug_reduce(III)V") (0) +34: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +35: Constant(I,1) (0) +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +37: Throw() (0) +Instrumenting debug_shift (Ljava_cup/runtime/Symbol;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: New(Ljava/lang/StringBuilder;,0) (1) +2: Dup(1,0) (4) +3: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (5) +4: Constant(Ljava/lang/String;,"# Shift under term #") (8) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (10) +6: LocalLoad(Ljava/lang/Object;,1) (13) +7: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (14) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (17) +9: Constant(Ljava/lang/String;," to state #") (20) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (22) +11: LocalLoad(Ljava/lang/Object;,1) (25) +12: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (26) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (29) +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (32) +15: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (35) +16: Return(V) (38) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"debug_shift(Ljava_cup/runtime/Symbol;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 26 +5: New(Ljava/lang/StringBuilder;,0) (1) + Handles null at 26 +6: Dup(1,0) (4) + Handles null at 26 +7: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (5) + Handles null at 26 +8: Constant(Ljava/lang/String;,"# Shift under term #") (8) + Handles null at 26 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (10) + Handles null at 26 +10: LocalLoad(Ljava/lang/Object;,1) (13) + Handles null at 26 +11: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (14) + Handles null at 26 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (17) + Handles null at 26 +13: Constant(Ljava/lang/String;," to state #") (20) + Handles null at 26 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (22) + Handles null at 26 +15: LocalLoad(Ljava/lang/Object;,1) (25) + Handles null at 26 +16: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (26) + Handles null at 26 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (29) + Handles null at 26 +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (32) + Handles null at 26 +19: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (35) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (38) + Handles null at 26 +21: Constant(Ljava/lang/String;,"debug_shift(Ljava_cup/runtime/Symbol;)V") (38) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (38) + Handles null at 26 +23: Constant(I,0) (38) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (38) + Handles null at 26 +25: Return(V) (38) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +27: Constant(Ljava/lang/String;,"debug_shift(Ljava_cup/runtime/Symbol;)V") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting debug_stack ()V: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuffer;,0) (0) +1: Dup(1,0) (3) +2: Constant(Ljava/lang/String;,"## STACK:") (4) +3: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,(Ljava/lang/String;)V) (6) +4: LocalStore(Ljava/lang/Object;,1) (9) +5: Constant(I,0) (10) +6: LocalStore(I,2) (11) +7: LocalLoad(I,2) (12) +8: LocalLoad(Ljava/lang/Object;,0) (13) +9: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (14) +10: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (17) +11: ConditionalBranch(I,ge,63) (20) +12: LocalLoad(Ljava/lang/Object;,0) (23) +13: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (24) +14: LocalLoad(I,2) (27) +15: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (28) +16: CheckCast(Ljava_cup/runtime/Symbol;) (31) +17: LocalStore(Ljava/lang/Object;,3) (34) +18: LocalLoad(Ljava/lang/Object;,1) (35) +19: New(Ljava/lang/StringBuilder;,0) (36) +20: Dup(1,0) (39) +21: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (40) +22: Constant(Ljava/lang/String;," ") (67) +33: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (72) +35: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (75) +36: Pop(1) (78) +37: LocalLoad(I,2) (79) +38: Constant(I,3) (80) +39: BinaryOp(I,rem) (81) +40: Constant(I,2) (82) +41: ConditionalBranch(I,eq,49) (83) +42: LocalLoad(I,2) (86) +43: LocalLoad(Ljava/lang/Object;,0) (87) +44: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (88) +45: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (91) +46: Constant(I,1) (94) +47: BinaryOp(I,sub) (95) +48: ConditionalBranch(I,ne,58) (96) +49: LocalLoad(Ljava/lang/Object;,0) (99) +50: LocalLoad(Ljava/lang/Object;,1) (100) +51: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,toString,()Ljava/lang/String;) (101) +52: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (104) +53: New(Ljava/lang/StringBuffer;,0) (107) +54: Dup(1,0) (110) +55: Constant(Ljava/lang/String;," ") (111) +56: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,(Ljava/lang/String;)V) (113) +57: LocalStore(Ljava/lang/Object;,1) (116) +58: LocalLoad(I,2) (117) +59: Constant(I,1) (117) +60: BinaryOp(I,add) (117) +61: LocalStore(I,2) (117) +62: Goto(7) (120) +63: Return(V) (123) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"debug_stack()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuffer;,0) (0) + Handles null at 73 +5: Dup(1,0) (3) + Handles null at 73 +6: Constant(Ljava/lang/String;,"## STACK:") (4) + Handles null at 73 +7: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,(Ljava/lang/String;)V) (6) + Handles null at 73 +8: LocalStore(Ljava/lang/Object;,1) (9) + Handles null at 73 +9: Constant(I,0) (10) + Handles null at 73 +10: LocalStore(I,2) (11) + Handles null at 73 +11: LocalLoad(I,2) (12) + Handles null at 73 +12: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 73 +13: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (14) + Handles null at 73 +14: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (17) + Handles null at 73 +15: ConditionalBranch(I,ge,67) (20) + Handles null at 73 +16: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 73 +17: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (24) + Handles null at 73 +18: LocalLoad(I,2) (27) + Handles null at 73 +19: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (28) + Handles null at 73 +20: CheckCast(Ljava_cup/runtime/Symbol;) (31) + Handles null at 73 +21: LocalStore(Ljava/lang/Object;,3) (34) + Handles null at 73 +22: LocalLoad(Ljava/lang/Object;,1) (35) + Handles null at 73 +23: New(Ljava/lang/StringBuilder;,0) (36) + Handles null at 73 +24: Dup(1,0) (39) + Handles null at 73 +25: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (40) + Handles null at 73 +26: Constant(Ljava/lang/String;," ") (67) + Handles null at 73 +37: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (69) + Handles null at 73 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (72) + Handles null at 73 +39: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (75) + Handles null at 73 +40: Pop(1) (78) + Handles null at 73 +41: LocalLoad(I,2) (79) + Handles null at 73 +42: Constant(I,3) (80) + Handles null at 73 +43: BinaryOp(I,rem) (81) + Handles null at 73 +44: Constant(I,2) (82) + Handles null at 73 +45: ConditionalBranch(I,eq,53) (83) + Handles null at 73 +46: LocalLoad(I,2) (86) + Handles null at 73 +47: LocalLoad(Ljava/lang/Object;,0) (87) + Handles null at 73 +48: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (88) + Handles null at 73 +49: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (91) + Handles null at 73 +50: Constant(I,1) (94) + Handles null at 73 +51: BinaryOp(I,sub) (95) + Handles null at 73 +52: ConditionalBranch(I,ne,62) (96) + Handles null at 73 +53: LocalLoad(Ljava/lang/Object;,0) (99) + Handles null at 73 +54: LocalLoad(Ljava/lang/Object;,1) (100) + Handles null at 73 +55: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,toString,()Ljava/lang/String;) (101) + Handles null at 73 +56: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (104) + Handles null at 73 +57: New(Ljava/lang/StringBuffer;,0) (107) + Handles null at 73 +58: Dup(1,0) (110) + Handles null at 73 +59: Constant(Ljava/lang/String;," ") (111) + Handles null at 73 +60: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,(Ljava/lang/String;)V) (113) + Handles null at 73 +61: LocalStore(Ljava/lang/Object;,1) (116) + Handles null at 73 +62: LocalLoad(I,2) (117) + Handles null at 73 +63: Constant(I,1) (117) + Handles null at 73 +64: BinaryOp(I,add) (117) + Handles null at 73 +65: LocalStore(I,2) (117) + Handles null at 73 +66: Goto(11) (120) + Handles null at 73 +67: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (123) + Handles null at 73 +68: Constant(Ljava/lang/String;,"debug_stack()V") (123) + Handles null at 73 +69: LocalLoad(Ljava/lang/Object;,0) (123) + Handles null at 73 +70: Constant(I,0) (123) + Handles null at 73 +71: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (123) + Handles null at 73 +72: Return(V) (123) + Handles null at 73 +73: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +74: Constant(Ljava/lang/String;,"debug_stack()V") (0) +75: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +76: Constant(I,1) (0) +77: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +78: Throw() (0) +Instrumenting debug_parse ()Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: Constant(L;,null) (0) +1: LocalStore(Ljava/lang/Object;,2) (1) +2: LocalLoad(Ljava/lang/Object;,0) (2) +3: LocalLoad(Ljava/lang/Object;,0) (3) +4: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,production_table,()[[S) (4) +5: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: LocalLoad(Ljava/lang/Object;,0) (11) +8: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,action_table,()[[S) (12) +9: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,action_tab) (15) +10: LocalLoad(Ljava/lang/Object;,0) (18) +11: LocalLoad(Ljava/lang/Object;,0) (19) +12: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,reduce_table,()[[S) (20) +13: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,reduce_tab) (23) +14: LocalLoad(Ljava/lang/Object;,0) (26) +15: Constant(Ljava/lang/String;,"# Initializing parser") (27) +16: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (29) +17: LocalLoad(Ljava/lang/Object;,0) (32) +18: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,init_actions,()V) (33) +19: LocalLoad(Ljava/lang/Object;,0) (36) +20: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,user_init,()V) (37) +21: LocalLoad(Ljava/lang/Object;,0) (40) +22: LocalLoad(Ljava/lang/Object;,0) (41) +23: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (42) +24: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (45) +25: LocalLoad(Ljava/lang/Object;,0) (48) +26: New(Ljava/lang/StringBuilder;,0) (49) +27: Dup(1,0) (52) +28: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (53) +29: Constant(Ljava/lang/String;,"# Current Symbol is #") (56) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) +31: LocalLoad(Ljava/lang/Object;,0) (61) +32: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (62) +33: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (65) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (68) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (71) +36: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (74) +37: LocalLoad(Ljava/lang/Object;,0) (77) +38: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (78) +39: Invoke(VIRTUAL,Ljava/util/Stack;,removeAllElements,()V) (81) +40: LocalLoad(Ljava/lang/Object;,0) (84) +41: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (85) +42: LocalLoad(Ljava/lang/Object;,0) (88) +43: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (89) +44: Constant(Ljava/lang/String;,"START") (92) +45: Constant(I,0) (94) +46: LocalLoad(Ljava/lang/Object;,0) (95) +47: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,start_state,()I) (96) +48: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,startSymbol,(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;) (99) +49: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (104) +50: Pop(1) (107) +51: LocalLoad(Ljava/lang/Object;,0) (108) +52: Constant(I,0) (109) +53: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (110) +54: LocalLoad(Ljava/lang/Object;,0) (113) +55: Constant(I,0) (114) +56: Put(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (115) +57: LocalLoad(Ljava/lang/Object;,0) (118) +58: Get(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (119) +59: Constant(I,0) (122) +60: ConditionalBranch(I,ne,274) (122) +61: LocalLoad(Ljava/lang/Object;,0) (125) +62: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (126) +63: Get(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (129) +64: Constant(I,0) (132) +65: ConditionalBranch(I,eq,71) (132) +66: New(Ljava/lang/Error;,0) (135) +67: Dup(1,0) (138) +68: Constant(Ljava/lang/String;,"Symbol recycling detected (fix your scanner).") (139) +69: Invoke(SPECIAL,Ljava/lang/Error;,,(Ljava/lang/String;)V) (141) +70: Throw() (144) +71: LocalLoad(Ljava/lang/Object;,0) (145) +72: LocalLoad(Ljava/lang/Object;,0) (146) +73: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (147) +74: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (150) +75: CheckCast(Ljava_cup/runtime/Symbol;) (153) +76: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (156) +77: LocalLoad(Ljava/lang/Object;,0) (159) +78: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (160) +79: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (163) +80: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (166) +81: LocalStore(I,1) (169) +82: LocalLoad(I,1) (170) +83: Constant(I,0) (171) +84: ConditionalBranch(I,le,127) (171) +85: LocalLoad(Ljava/lang/Object;,0) (174) +86: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (175) +87: LocalLoad(I,1) (178) +88: Constant(I,1) (179) +89: BinaryOp(I,sub) (180) +90: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (181) +91: LocalLoad(Ljava/lang/Object;,0) (184) +92: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (185) +93: Constant(I,1) (188) +94: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (189) +95: LocalLoad(Ljava/lang/Object;,0) (192) +96: LocalLoad(Ljava/lang/Object;,0) (193) +97: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (194) +98: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_shift,(Ljava_cup/runtime/Symbol;)V) (197) +99: LocalLoad(Ljava/lang/Object;,0) (200) +100: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (201) +101: LocalLoad(Ljava/lang/Object;,0) (204) +102: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (205) +103: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (208) +104: Pop(1) (211) +105: LocalLoad(Ljava/lang/Object;,0) (212) +106: Dup(1,0) (213) +107: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (214) +108: Constant(I,1) (217) +109: BinaryOp(I,add) (218) +110: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (219) +111: LocalLoad(Ljava/lang/Object;,0) (222) +112: LocalLoad(Ljava/lang/Object;,0) (223) +113: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (224) +114: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (227) +115: LocalLoad(Ljava/lang/Object;,0) (230) +116: New(Ljava/lang/StringBuilder;,0) (231) +117: Dup(1,0) (234) +118: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (235) +119: Constant(Ljava/lang/String;,"# Current token is ") (238) +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (240) +121: LocalLoad(Ljava/lang/Object;,0) (243) +122: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (244) +123: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (247) +124: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (250) +125: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (253) +126: Goto(57) (256) +127: LocalLoad(I,1) (259) +128: Constant(I,0) (260) +129: ConditionalBranch(I,ge,249) (260) +130: LocalLoad(Ljava/lang/Object;,0) (263) +131: LocalLoad(I,1) (264) +132: UnaryOp(I,neg) (265) +133: Constant(I,1) (266) +134: BinaryOp(I,sub) (267) +135: LocalLoad(Ljava/lang/Object;,0) (268) +136: LocalLoad(Ljava/lang/Object;,0) (269) +137: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (270) +138: LocalLoad(Ljava/lang/Object;,0) (273) +139: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (274) +140: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,do_action,(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;) (277) +141: LocalStore(Ljava/lang/Object;,2) (280) +142: LocalLoad(Ljava/lang/Object;,0) (281) +143: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (282) +144: LocalLoad(I,1) (285) +145: UnaryOp(I,neg) (286) +146: Constant(I,1) (287) +147: BinaryOp(I,sub) (288) +148: ArrayLoad(Ljava/lang/Object;) (289) +149: Constant(I,0) (290) +150: ArrayLoad(S) (291) +151: LocalStore(I,4) (292) +152: LocalLoad(Ljava/lang/Object;,0) (294) +153: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (295) +154: LocalLoad(I,1) (298) +155: UnaryOp(I,neg) (299) +156: Constant(I,1) (300) +157: BinaryOp(I,sub) (301) +158: ArrayLoad(Ljava/lang/Object;) (302) +159: Constant(I,1) (303) +160: ArrayLoad(S) (304) +161: LocalStore(I,3) (305) +162: LocalLoad(Ljava/lang/Object;,0) (306) +163: LocalLoad(I,1) (307) +164: UnaryOp(I,neg) (308) +165: Constant(I,1) (309) +166: BinaryOp(I,sub) (310) +167: LocalLoad(I,4) (311) +168: LocalLoad(I,3) (313) +169: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_reduce,(III)V) (314) +170: Constant(I,0) (317) +171: LocalStore(I,5) (318) +172: LocalLoad(I,5) (320) +173: LocalLoad(I,3) (322) +174: ConditionalBranch(I,ge,190) (323) +175: LocalLoad(Ljava/lang/Object;,0) (326) +176: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (327) +177: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (330) +178: Pop(1) (333) +179: LocalLoad(Ljava/lang/Object;,0) (334) +180: Dup(1,0) (335) +181: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (336) +182: Constant(I,1) (339) +183: BinaryOp(I,sub) (340) +184: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (341) +185: LocalLoad(I,5) (344) +186: Constant(I,1) (344) +187: BinaryOp(I,add) (344) +188: LocalStore(I,5) (344) +189: Goto(172) (347) +190: LocalLoad(Ljava/lang/Object;,0) (350) +191: LocalLoad(Ljava/lang/Object;,0) (351) +192: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (352) +193: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (355) +194: CheckCast(Ljava_cup/runtime/Symbol;) (358) +195: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (361) +196: LocalLoad(I,4) (364) +197: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (366) +198: LocalStore(I,1) (369) +199: LocalLoad(Ljava/lang/Object;,0) (370) +200: New(Ljava/lang/StringBuilder;,0) (371) +201: Dup(1,0) (374) +202: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (375) +203: Constant(Ljava/lang/String;,"# Reduce rule: top state ") (378) +204: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (380) +205: LocalLoad(Ljava/lang/Object;,0) (383) +206: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (384) +207: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (387) +208: CheckCast(Ljava_cup/runtime/Symbol;) (390) +209: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (393) +210: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (396) +211: Constant(Ljava/lang/String;,", lhs sym ") (399) +212: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (401) +213: LocalLoad(I,4) (404) +214: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (406) +215: Constant(Ljava/lang/String;," -> state ") (409) +216: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (411) +217: LocalLoad(I,1) (414) +218: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (415) +219: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (418) +220: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (421) +221: LocalLoad(Ljava/lang/Object;,2) (424) +222: LocalLoad(I,1) (425) +223: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (426) +224: LocalLoad(Ljava/lang/Object;,2) (429) +225: Constant(I,1) (430) +226: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (431) +227: LocalLoad(Ljava/lang/Object;,0) (434) +228: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (435) +229: LocalLoad(Ljava/lang/Object;,2) (438) +230: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (439) +231: Pop(1) (442) +232: LocalLoad(Ljava/lang/Object;,0) (443) +233: Dup(1,0) (444) +234: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (445) +235: Constant(I,1) (448) +236: BinaryOp(I,add) (449) +237: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (450) +238: LocalLoad(Ljava/lang/Object;,0) (453) +239: New(Ljava/lang/StringBuilder;,0) (454) +240: Dup(1,0) (457) +241: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (458) +242: Constant(Ljava/lang/String;,"# Goto state #") (461) +243: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (463) +244: LocalLoad(I,1) (466) +245: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (467) +246: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (470) +247: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (473) +248: Goto(57) (476) +249: LocalLoad(I,1) (479) +250: Constant(I,0) (480) +251: ConditionalBranch(I,ne,57) (480) +252: LocalLoad(Ljava/lang/Object;,0) (483) +253: LocalLoad(Ljava/lang/Object;,0) (484) +254: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (485) +255: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,syntax_error,(Ljava_cup/runtime/Symbol;)V) (488) +256: LocalLoad(Ljava/lang/Object;,0) (491) +257: Constant(I,1) (492) +258: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_recovery,(Z)Z) (493) +259: Constant(I,0) (496) +260: ConditionalBranch(I,ne,268) (496) +261: LocalLoad(Ljava/lang/Object;,0) (499) +262: LocalLoad(Ljava/lang/Object;,0) (500) +263: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (501) +264: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,unrecovered_syntax_error,(Ljava_cup/runtime/Symbol;)V) (504) +265: LocalLoad(Ljava/lang/Object;,0) (507) +266: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,done_parsing,()V) (508) +267: Goto(57) (511) +268: LocalLoad(Ljava/lang/Object;,0) (514) +269: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (515) +270: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (518) +271: CheckCast(Ljava_cup/runtime/Symbol;) (521) +272: LocalStore(Ljava/lang/Object;,2) (524) +273: Goto(57) (525) +274: LocalLoad(Ljava/lang/Object;,2) (528) +275: Return(Ljava/lang/Object;) (529) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"debug_parse()Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(L;,null) (0) + Handles null at 285 +5: LocalStore(Ljava/lang/Object;,2) (1) + Handles null at 285 +6: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 285 +7: LocalLoad(Ljava/lang/Object;,0) (3) + Handles null at 285 +8: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,production_table,()[[S) (4) + Handles null at 285 +9: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (7) + Handles null at 285 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 285 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 285 +12: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,action_table,()[[S) (12) + Handles null at 285 +13: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,action_tab) (15) + Handles null at 285 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 285 +15: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 285 +16: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,reduce_table,()[[S) (20) + Handles null at 285 +17: Put([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,reduce_tab) (23) + Handles null at 285 +18: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 285 +19: Constant(Ljava/lang/String;,"# Initializing parser") (27) + Handles null at 285 +20: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (29) + Handles null at 285 +21: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 285 +22: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,init_actions,()V) (33) + Handles null at 285 +23: LocalLoad(Ljava/lang/Object;,0) (36) + Handles null at 285 +24: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,user_init,()V) (37) + Handles null at 285 +25: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 285 +26: LocalLoad(Ljava/lang/Object;,0) (41) + Handles null at 285 +27: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (42) + Handles null at 285 +28: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (45) + Handles null at 285 +29: LocalLoad(Ljava/lang/Object;,0) (48) + Handles null at 285 +30: New(Ljava/lang/StringBuilder;,0) (49) + Handles null at 285 +31: Dup(1,0) (52) + Handles null at 285 +32: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (53) + Handles null at 285 +33: Constant(Ljava/lang/String;,"# Current Symbol is #") (56) + Handles null at 285 +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (58) + Handles null at 285 +35: LocalLoad(Ljava/lang/Object;,0) (61) + Handles null at 285 +36: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (62) + Handles null at 285 +37: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (65) + Handles null at 285 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (68) + Handles null at 285 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (71) + Handles null at 285 +40: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (74) + Handles null at 285 +41: LocalLoad(Ljava/lang/Object;,0) (77) + Handles null at 285 +42: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (78) + Handles null at 285 +43: Invoke(VIRTUAL,Ljava/util/Stack;,removeAllElements,()V) (81) + Handles null at 285 +44: LocalLoad(Ljava/lang/Object;,0) (84) + Handles null at 285 +45: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (85) + Handles null at 285 +46: LocalLoad(Ljava/lang/Object;,0) (88) + Handles null at 285 +47: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (89) + Handles null at 285 +48: Constant(Ljava/lang/String;,"START") (92) + Handles null at 285 +49: Constant(I,0) (94) + Handles null at 285 +50: LocalLoad(Ljava/lang/Object;,0) (95) + Handles null at 285 +51: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,start_state,()I) (96) + Handles null at 285 +52: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,startSymbol,(Ljava/lang/String;II)Ljava_cup/runtime/Symbol;) (99) + Handles null at 285 +53: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (104) + Handles null at 285 +54: Pop(1) (107) + Handles null at 285 +55: LocalLoad(Ljava/lang/Object;,0) (108) + Handles null at 285 +56: Constant(I,0) (109) + Handles null at 285 +57: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (110) + Handles null at 285 +58: LocalLoad(Ljava/lang/Object;,0) (113) + Handles null at 285 +59: Constant(I,0) (114) + Handles null at 285 +60: Put(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (115) + Handles null at 285 +61: LocalLoad(Ljava/lang/Object;,0) (118) + Handles null at 285 +62: Get(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (119) + Handles null at 285 +63: Constant(I,0) (122) + Handles null at 285 +64: ConditionalBranch(I,ne,278) (122) + Handles null at 285 +65: LocalLoad(Ljava/lang/Object;,0) (125) + Handles null at 285 +66: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (126) + Handles null at 285 +67: Get(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (129) + Handles null at 285 +68: Constant(I,0) (132) + Handles null at 285 +69: ConditionalBranch(I,eq,75) (132) + Handles null at 285 +70: New(Ljava/lang/Error;,0) (135) + Handles null at 285 +71: Dup(1,0) (138) + Handles null at 285 +72: Constant(Ljava/lang/String;,"Symbol recycling detected (fix your scanner).") (139) + Handles null at 285 +73: Invoke(SPECIAL,Ljava/lang/Error;,,(Ljava/lang/String;)V) (141) + Handles null at 285 +74: Throw() (144) + Handles null at 285 +75: LocalLoad(Ljava/lang/Object;,0) (145) + Handles null at 285 +76: LocalLoad(Ljava/lang/Object;,0) (146) + Handles null at 285 +77: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (147) + Handles null at 285 +78: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (150) + Handles null at 285 +79: CheckCast(Ljava_cup/runtime/Symbol;) (153) + Handles null at 285 +80: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (156) + Handles null at 285 +81: LocalLoad(Ljava/lang/Object;,0) (159) + Handles null at 285 +82: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (160) + Handles null at 285 +83: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (163) + Handles null at 285 +84: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (166) + Handles null at 285 +85: LocalStore(I,1) (169) + Handles null at 285 +86: LocalLoad(I,1) (170) + Handles null at 285 +87: Constant(I,0) (171) + Handles null at 285 +88: ConditionalBranch(I,le,131) (171) + Handles null at 285 +89: LocalLoad(Ljava/lang/Object;,0) (174) + Handles null at 285 +90: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (175) + Handles null at 285 +91: LocalLoad(I,1) (178) + Handles null at 285 +92: Constant(I,1) (179) + Handles null at 285 +93: BinaryOp(I,sub) (180) + Handles null at 285 +94: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (181) + Handles null at 285 +95: LocalLoad(Ljava/lang/Object;,0) (184) + Handles null at 285 +96: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (185) + Handles null at 285 +97: Constant(I,1) (188) + Handles null at 285 +98: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (189) + Handles null at 285 +99: LocalLoad(Ljava/lang/Object;,0) (192) + Handles null at 285 +100: LocalLoad(Ljava/lang/Object;,0) (193) + Handles null at 285 +101: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (194) + Handles null at 285 +102: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_shift,(Ljava_cup/runtime/Symbol;)V) (197) + Handles null at 285 +103: LocalLoad(Ljava/lang/Object;,0) (200) + Handles null at 285 +104: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (201) + Handles null at 285 +105: LocalLoad(Ljava/lang/Object;,0) (204) + Handles null at 285 +106: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (205) + Handles null at 285 +107: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (208) + Handles null at 285 +108: Pop(1) (211) + Handles null at 285 +109: LocalLoad(Ljava/lang/Object;,0) (212) + Handles null at 285 +110: Dup(1,0) (213) + Handles null at 285 +111: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (214) + Handles null at 285 +112: Constant(I,1) (217) + Handles null at 285 +113: BinaryOp(I,add) (218) + Handles null at 285 +114: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (219) + Handles null at 285 +115: LocalLoad(Ljava/lang/Object;,0) (222) + Handles null at 285 +116: LocalLoad(Ljava/lang/Object;,0) (223) + Handles null at 285 +117: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (224) + Handles null at 285 +118: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (227) + Handles null at 285 +119: LocalLoad(Ljava/lang/Object;,0) (230) + Handles null at 285 +120: New(Ljava/lang/StringBuilder;,0) (231) + Handles null at 285 +121: Dup(1,0) (234) + Handles null at 285 +122: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (235) + Handles null at 285 +123: Constant(Ljava/lang/String;,"# Current token is ") (238) + Handles null at 285 +124: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (240) + Handles null at 285 +125: LocalLoad(Ljava/lang/Object;,0) (243) + Handles null at 285 +126: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (244) + Handles null at 285 +127: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (247) + Handles null at 285 +128: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (250) + Handles null at 285 +129: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (253) + Handles null at 285 +130: Goto(61) (256) + Handles null at 285 +131: LocalLoad(I,1) (259) + Handles null at 285 +132: Constant(I,0) (260) + Handles null at 285 +133: ConditionalBranch(I,ge,253) (260) + Handles null at 285 +134: LocalLoad(Ljava/lang/Object;,0) (263) + Handles null at 285 +135: LocalLoad(I,1) (264) + Handles null at 285 +136: UnaryOp(I,neg) (265) + Handles null at 285 +137: Constant(I,1) (266) + Handles null at 285 +138: BinaryOp(I,sub) (267) + Handles null at 285 +139: LocalLoad(Ljava/lang/Object;,0) (268) + Handles null at 285 +140: LocalLoad(Ljava/lang/Object;,0) (269) + Handles null at 285 +141: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (270) + Handles null at 285 +142: LocalLoad(Ljava/lang/Object;,0) (273) + Handles null at 285 +143: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (274) + Handles null at 285 +144: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,do_action,(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;) (277) + Handles null at 285 +145: LocalStore(Ljava/lang/Object;,2) (280) + Handles null at 285 +146: LocalLoad(Ljava/lang/Object;,0) (281) + Handles null at 285 +147: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (282) + Handles null at 285 +148: LocalLoad(I,1) (285) + Handles null at 285 +149: UnaryOp(I,neg) (286) + Handles null at 285 +150: Constant(I,1) (287) + Handles null at 285 +151: BinaryOp(I,sub) (288) + Handles null at 285 +152: ArrayLoad(Ljava/lang/Object;) (289) + Handles null at 285 +153: Constant(I,0) (290) + Handles null at 285 +154: ArrayLoad(S) (291) + Handles null at 285 +155: LocalStore(I,4) (292) + Handles null at 285 +156: LocalLoad(Ljava/lang/Object;,0) (294) + Handles null at 285 +157: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (295) + Handles null at 285 +158: LocalLoad(I,1) (298) + Handles null at 285 +159: UnaryOp(I,neg) (299) + Handles null at 285 +160: Constant(I,1) (300) + Handles null at 285 +161: BinaryOp(I,sub) (301) + Handles null at 285 +162: ArrayLoad(Ljava/lang/Object;) (302) + Handles null at 285 +163: Constant(I,1) (303) + Handles null at 285 +164: ArrayLoad(S) (304) + Handles null at 285 +165: LocalStore(I,3) (305) + Handles null at 285 +166: LocalLoad(Ljava/lang/Object;,0) (306) + Handles null at 285 +167: LocalLoad(I,1) (307) + Handles null at 285 +168: UnaryOp(I,neg) (308) + Handles null at 285 +169: Constant(I,1) (309) + Handles null at 285 +170: BinaryOp(I,sub) (310) + Handles null at 285 +171: LocalLoad(I,4) (311) + Handles null at 285 +172: LocalLoad(I,3) (313) + Handles null at 285 +173: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_reduce,(III)V) (314) + Handles null at 285 +174: Constant(I,0) (317) + Handles null at 285 +175: LocalStore(I,5) (318) + Handles null at 285 +176: LocalLoad(I,5) (320) + Handles null at 285 +177: LocalLoad(I,3) (322) + Handles null at 285 +178: ConditionalBranch(I,ge,194) (323) + Handles null at 285 +179: LocalLoad(Ljava/lang/Object;,0) (326) + Handles null at 285 +180: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (327) + Handles null at 285 +181: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (330) + Handles null at 285 +182: Pop(1) (333) + Handles null at 285 +183: LocalLoad(Ljava/lang/Object;,0) (334) + Handles null at 285 +184: Dup(1,0) (335) + Handles null at 285 +185: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (336) + Handles null at 285 +186: Constant(I,1) (339) + Handles null at 285 +187: BinaryOp(I,sub) (340) + Handles null at 285 +188: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (341) + Handles null at 285 +189: LocalLoad(I,5) (344) + Handles null at 285 +190: Constant(I,1) (344) + Handles null at 285 +191: BinaryOp(I,add) (344) + Handles null at 285 +192: LocalStore(I,5) (344) + Handles null at 285 +193: Goto(176) (347) + Handles null at 285 +194: LocalLoad(Ljava/lang/Object;,0) (350) + Handles null at 285 +195: LocalLoad(Ljava/lang/Object;,0) (351) + Handles null at 285 +196: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (352) + Handles null at 285 +197: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (355) + Handles null at 285 +198: CheckCast(Ljava_cup/runtime/Symbol;) (358) + Handles null at 285 +199: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (361) + Handles null at 285 +200: LocalLoad(I,4) (364) + Handles null at 285 +201: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (366) + Handles null at 285 +202: LocalStore(I,1) (369) + Handles null at 285 +203: LocalLoad(Ljava/lang/Object;,0) (370) + Handles null at 285 +204: New(Ljava/lang/StringBuilder;,0) (371) + Handles null at 285 +205: Dup(1,0) (374) + Handles null at 285 +206: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (375) + Handles null at 285 +207: Constant(Ljava/lang/String;,"# Reduce rule: top state ") (378) + Handles null at 285 +208: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (380) + Handles null at 285 +209: LocalLoad(Ljava/lang/Object;,0) (383) + Handles null at 285 +210: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (384) + Handles null at 285 +211: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (387) + Handles null at 285 +212: CheckCast(Ljava_cup/runtime/Symbol;) (390) + Handles null at 285 +213: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (393) + Handles null at 285 +214: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (396) + Handles null at 285 +215: Constant(Ljava/lang/String;,", lhs sym ") (399) + Handles null at 285 +216: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (401) + Handles null at 285 +217: LocalLoad(I,4) (404) + Handles null at 285 +218: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (406) + Handles null at 285 +219: Constant(Ljava/lang/String;," -> state ") (409) + Handles null at 285 +220: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (411) + Handles null at 285 +221: LocalLoad(I,1) (414) + Handles null at 285 +222: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (415) + Handles null at 285 +223: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (418) + Handles null at 285 +224: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (421) + Handles null at 285 +225: LocalLoad(Ljava/lang/Object;,2) (424) + Handles null at 285 +226: LocalLoad(I,1) (425) + Handles null at 285 +227: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (426) + Handles null at 285 +228: LocalLoad(Ljava/lang/Object;,2) (429) + Handles null at 285 +229: Constant(I,1) (430) + Handles null at 285 +230: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (431) + Handles null at 285 +231: LocalLoad(Ljava/lang/Object;,0) (434) + Handles null at 285 +232: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (435) + Handles null at 285 +233: LocalLoad(Ljava/lang/Object;,2) (438) + Handles null at 285 +234: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (439) + Handles null at 285 +235: Pop(1) (442) + Handles null at 285 +236: LocalLoad(Ljava/lang/Object;,0) (443) + Handles null at 285 +237: Dup(1,0) (444) + Handles null at 285 +238: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (445) + Handles null at 285 +239: Constant(I,1) (448) + Handles null at 285 +240: BinaryOp(I,add) (449) + Handles null at 285 +241: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (450) + Handles null at 285 +242: LocalLoad(Ljava/lang/Object;,0) (453) + Handles null at 285 +243: New(Ljava/lang/StringBuilder;,0) (454) + Handles null at 285 +244: Dup(1,0) (457) + Handles null at 285 +245: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (458) + Handles null at 285 +246: Constant(Ljava/lang/String;,"# Goto state #") (461) + Handles null at 285 +247: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (463) + Handles null at 285 +248: LocalLoad(I,1) (466) + Handles null at 285 +249: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (467) + Handles null at 285 +250: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (470) + Handles null at 285 +251: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (473) + Handles null at 285 +252: Goto(61) (476) + Handles null at 285 +253: LocalLoad(I,1) (479) + Handles null at 285 +254: Constant(I,0) (480) + Handles null at 285 +255: ConditionalBranch(I,ne,61) (480) + Handles null at 285 +256: LocalLoad(Ljava/lang/Object;,0) (483) + Handles null at 285 +257: LocalLoad(Ljava/lang/Object;,0) (484) + Handles null at 285 +258: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (485) + Handles null at 285 +259: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,syntax_error,(Ljava_cup/runtime/Symbol;)V) (488) + Handles null at 285 +260: LocalLoad(Ljava/lang/Object;,0) (491) + Handles null at 285 +261: Constant(I,1) (492) + Handles null at 285 +262: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_recovery,(Z)Z) (493) + Handles null at 285 +263: Constant(I,0) (496) + Handles null at 285 +264: ConditionalBranch(I,ne,272) (496) + Handles null at 285 +265: LocalLoad(Ljava/lang/Object;,0) (499) + Handles null at 285 +266: LocalLoad(Ljava/lang/Object;,0) (500) + Handles null at 285 +267: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (501) + Handles null at 285 +268: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,unrecovered_syntax_error,(Ljava_cup/runtime/Symbol;)V) (504) + Handles null at 285 +269: LocalLoad(Ljava/lang/Object;,0) (507) + Handles null at 285 +270: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,done_parsing,()V) (508) + Handles null at 285 +271: Goto(61) (511) + Handles null at 285 +272: LocalLoad(Ljava/lang/Object;,0) (514) + Handles null at 285 +273: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (515) + Handles null at 285 +274: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (518) + Handles null at 285 +275: CheckCast(Ljava_cup/runtime/Symbol;) (521) + Handles null at 285 +276: LocalStore(Ljava/lang/Object;,2) (524) + Handles null at 285 +277: Goto(61) (525) + Handles null at 285 +278: LocalLoad(Ljava/lang/Object;,2) (528) + Handles null at 285 +279: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (529) + Handles null at 285 +280: Constant(Ljava/lang/String;,"debug_parse()Ljava_cup/runtime/Symbol;") (529) + Handles null at 285 +281: LocalLoad(Ljava/lang/Object;,0) (529) + Handles null at 285 +282: Constant(I,0) (529) + Handles null at 285 +283: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (529) + Handles null at 285 +284: Return(Ljava/lang/Object;) (529) + Handles null at 285 +285: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +286: Constant(Ljava/lang/String;,"debug_parse()Ljava_cup/runtime/Symbol;") (0) +287: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +288: Constant(I,1) (0) +289: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +290: Throw() (0) +Instrumenting error_recovery (Z)Z: +Initial ShrikeBT code: +0: LocalLoad(I,1) (0) +1: Constant(I,0) (1) +2: ConditionalBranch(I,eq,6) (1) +3: LocalLoad(Ljava/lang/Object;,0) (4) +4: Constant(Ljava/lang/String;,"# Attempting error recovery") (5) +5: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: LocalLoad(I,1) (11) +8: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,find_recovery_config,(Z)Z) (12) +9: Constant(I,0) (15) +10: ConditionalBranch(I,ne,19) (15) +11: LocalLoad(I,1) (18) +12: Constant(I,0) (19) +13: ConditionalBranch(I,eq,17) (19) +14: LocalLoad(Ljava/lang/Object;,0) (22) +15: Constant(Ljava/lang/String;,"# Error recovery fails") (23) +16: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (25) +17: Constant(I,0) (28) +18: Return(I) (29) +19: LocalLoad(Ljava/lang/Object;,0) (30) +20: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,read_lookahead,()V) (31) +21: LocalLoad(I,1) (34) +22: Constant(I,0) (35) +23: ConditionalBranch(I,eq,27) (35) +24: LocalLoad(Ljava/lang/Object;,0) (38) +25: Constant(Ljava/lang/String;,"# Trying to parse ahead") (39) +26: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (41) +27: LocalLoad(Ljava/lang/Object;,0) (44) +28: LocalLoad(I,1) (45) +29: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,try_parse_ahead,(Z)Z) (46) +30: Constant(I,0) (49) +31: ConditionalBranch(I,eq,33) (49) +32: Goto(69) (52) +33: LocalLoad(Ljava/lang/Object;,0) (55) +34: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (56) +35: Constant(I,0) (59) +36: ArrayLoad(Ljava/lang/Object;) (60) +37: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (61) +38: LocalLoad(Ljava/lang/Object;,0) (64) +39: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,EOF_sym,()I) (65) +40: ConditionalBranch(I,ne,49) (68) +41: LocalLoad(I,1) (71) +42: Constant(I,0) (72) +43: ConditionalBranch(I,eq,47) (72) +44: LocalLoad(Ljava/lang/Object;,0) (75) +45: Constant(Ljava/lang/String;,"# Error recovery fails at EOF") (76) +46: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (78) +47: Constant(I,0) (81) +48: Return(I) (82) +49: LocalLoad(I,1) (83) +50: Constant(I,0) (84) +51: ConditionalBranch(I,eq,66) (84) +52: LocalLoad(Ljava/lang/Object;,0) (87) +53: New(Ljava/lang/StringBuilder;,0) (88) +54: Dup(1,0) (91) +55: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (92) +56: Constant(Ljava/lang/String;,"# Consuming Symbol #") (95) +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) +58: LocalLoad(Ljava/lang/Object;,0) (100) +59: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (101) +60: Constant(I,0) (104) +61: ArrayLoad(Ljava/lang/Object;) (105) +62: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (106) +63: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (109) +64: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (112) +65: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (115) +66: LocalLoad(Ljava/lang/Object;,0) (118) +67: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,restart_lookahead,()V) (119) +68: Goto(21) (122) +69: LocalLoad(I,1) (125) +70: Constant(I,0) (126) +71: ConditionalBranch(I,eq,75) (126) +72: LocalLoad(Ljava/lang/Object;,0) (129) +73: Constant(Ljava/lang/String;,"# Parse-ahead ok, going back to normal parse") (130) +74: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (132) +75: LocalLoad(Ljava/lang/Object;,0) (135) +76: LocalLoad(I,1) (136) +77: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,parse_lookahead,(Z)V) (137) +78: Constant(I,1) (140) +79: Return(I) (141) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"error_recovery(Z)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,1) (0) + Handles null at 99 +5: Constant(I,0) (1) + Handles null at 99 +6: ConditionalBranch(I,eq,10) (1) + Handles null at 99 +7: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 99 +8: Constant(Ljava/lang/String;,"# Attempting error recovery") (5) + Handles null at 99 +9: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (7) + Handles null at 99 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 99 +11: LocalLoad(I,1) (11) + Handles null at 99 +12: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,find_recovery_config,(Z)Z) (12) + Handles null at 99 +13: Constant(I,0) (15) + Handles null at 99 +14: ConditionalBranch(I,ne,28) (15) + Handles null at 99 +15: LocalLoad(I,1) (18) + Handles null at 99 +16: Constant(I,0) (19) + Handles null at 99 +17: ConditionalBranch(I,eq,21) (19) + Handles null at 99 +18: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 99 +19: Constant(Ljava/lang/String;,"# Error recovery fails") (23) + Handles null at 99 +20: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (25) + Handles null at 99 +21: Constant(I,0) (28) + Handles null at 99 +22: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (29) + Handles null at 99 +23: Constant(Ljava/lang/String;,"error_recovery(Z)Z") (29) + Handles null at 99 +24: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 99 +25: Constant(I,0) (29) + Handles null at 99 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (29) + Handles null at 99 +27: Return(I) (29) + Handles null at 99 +28: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 99 +29: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,read_lookahead,()V) (31) + Handles null at 99 +30: LocalLoad(I,1) (34) + Handles null at 99 +31: Constant(I,0) (35) + Handles null at 99 +32: ConditionalBranch(I,eq,36) (35) + Handles null at 99 +33: LocalLoad(Ljava/lang/Object;,0) (38) + Handles null at 99 +34: Constant(Ljava/lang/String;,"# Trying to parse ahead") (39) + Handles null at 99 +35: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (41) + Handles null at 99 +36: LocalLoad(Ljava/lang/Object;,0) (44) + Handles null at 99 +37: LocalLoad(I,1) (45) + Handles null at 99 +38: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,try_parse_ahead,(Z)Z) (46) + Handles null at 99 +39: Constant(I,0) (49) + Handles null at 99 +40: ConditionalBranch(I,eq,42) (49) + Handles null at 99 +41: Goto(83) (52) + Handles null at 99 +42: LocalLoad(Ljava/lang/Object;,0) (55) + Handles null at 99 +43: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (56) + Handles null at 99 +44: Constant(I,0) (59) + Handles null at 99 +45: ArrayLoad(Ljava/lang/Object;) (60) + Handles null at 99 +46: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (61) + Handles null at 99 +47: LocalLoad(Ljava/lang/Object;,0) (64) + Handles null at 99 +48: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,EOF_sym,()I) (65) + Handles null at 99 +49: ConditionalBranch(I,ne,63) (68) + Handles null at 99 +50: LocalLoad(I,1) (71) + Handles null at 99 +51: Constant(I,0) (72) + Handles null at 99 +52: ConditionalBranch(I,eq,56) (72) + Handles null at 99 +53: LocalLoad(Ljava/lang/Object;,0) (75) + Handles null at 99 +54: Constant(Ljava/lang/String;,"# Error recovery fails at EOF") (76) + Handles null at 99 +55: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (78) + Handles null at 99 +56: Constant(I,0) (81) + Handles null at 99 +57: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (82) + Handles null at 99 +58: Constant(Ljava/lang/String;,"error_recovery(Z)Z") (82) + Handles null at 99 +59: LocalLoad(Ljava/lang/Object;,0) (82) + Handles null at 99 +60: Constant(I,0) (82) + Handles null at 99 +61: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (82) + Handles null at 99 +62: Return(I) (82) + Handles null at 99 +63: LocalLoad(I,1) (83) + Handles null at 99 +64: Constant(I,0) (84) + Handles null at 99 +65: ConditionalBranch(I,eq,80) (84) + Handles null at 99 +66: LocalLoad(Ljava/lang/Object;,0) (87) + Handles null at 99 +67: New(Ljava/lang/StringBuilder;,0) (88) + Handles null at 99 +68: Dup(1,0) (91) + Handles null at 99 +69: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (92) + Handles null at 99 +70: Constant(Ljava/lang/String;,"# Consuming Symbol #") (95) + Handles null at 99 +71: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (97) + Handles null at 99 +72: LocalLoad(Ljava/lang/Object;,0) (100) + Handles null at 99 +73: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (101) + Handles null at 99 +74: Constant(I,0) (104) + Handles null at 99 +75: ArrayLoad(Ljava/lang/Object;) (105) + Handles null at 99 +76: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (106) + Handles null at 99 +77: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (109) + Handles null at 99 +78: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (112) + Handles null at 99 +79: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (115) + Handles null at 99 +80: LocalLoad(Ljava/lang/Object;,0) (118) + Handles null at 99 +81: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,restart_lookahead,()V) (119) + Handles null at 99 +82: Goto(30) (122) + Handles null at 99 +83: LocalLoad(I,1) (125) + Handles null at 99 +84: Constant(I,0) (126) + Handles null at 99 +85: ConditionalBranch(I,eq,89) (126) + Handles null at 99 +86: LocalLoad(Ljava/lang/Object;,0) (129) + Handles null at 99 +87: Constant(Ljava/lang/String;,"# Parse-ahead ok, going back to normal parse") (130) + Handles null at 99 +88: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (132) + Handles null at 99 +89: LocalLoad(Ljava/lang/Object;,0) (135) + Handles null at 99 +90: LocalLoad(I,1) (136) + Handles null at 99 +91: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,parse_lookahead,(Z)V) (137) + Handles null at 99 +92: Constant(I,1) (140) + Handles null at 99 +93: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (141) + Handles null at 99 +94: Constant(Ljava/lang/String;,"error_recovery(Z)Z") (141) + Handles null at 99 +95: LocalLoad(Ljava/lang/Object;,0) (141) + Handles null at 99 +96: Constant(I,0) (141) + Handles null at 99 +97: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (141) + Handles null at 99 +98: Return(I) (141) + Handles null at 99 +99: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +100: Constant(Ljava/lang/String;,"error_recovery(Z)Z") (0) +101: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +102: Constant(I,1) (0) +103: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +104: Throw() (0) +Instrumenting shift_under_error ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,0) (1) +2: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (2) +3: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5) +4: CheckCast(Ljava_cup/runtime/Symbol;) (8) +5: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (11) +6: LocalLoad(Ljava/lang/Object;,0) (14) +7: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sym,()I) (15) +8: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (18) +9: Constant(I,0) (21) +10: ConditionalBranch(I,le,13) (21) +11: Constant(I,1) (24) +12: Goto(14) (25) +13: Constant(I,0) (28) +14: Return(I) (29) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"shift_under_error()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 24 +6: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (2) + Handles null at 24 +7: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (5) + Handles null at 24 +8: CheckCast(Ljava_cup/runtime/Symbol;) (8) + Handles null at 24 +9: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (11) + Handles null at 24 +10: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 24 +11: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sym,()I) (15) + Handles null at 24 +12: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (18) + Handles null at 24 +13: Constant(I,0) (21) + Handles null at 24 +14: ConditionalBranch(I,le,17) (21) + Handles null at 24 +15: Constant(I,1) (24) + Handles null at 24 +16: Goto(18) (25) + Handles null at 24 +17: Constant(I,0) (28) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (29) + Handles null at 24 +19: Constant(Ljava/lang/String;,"shift_under_error()Z") (29) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 24 +21: Constant(I,0) (29) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (29) + Handles null at 24 +23: Return(I) (29) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +25: Constant(Ljava/lang/String;,"shift_under_error()Z") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting find_recovery_config (Z)Z: +Initial ShrikeBT code: +0: LocalLoad(I,1) (0) +1: Constant(I,0) (1) +2: ConditionalBranch(I,eq,6) (1) +3: LocalLoad(Ljava/lang/Object;,0) (4) +4: Constant(Ljava/lang/String;,"# Finding recovery state on stack") (5) +5: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (11) +8: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (14) +9: CheckCast(Ljava_cup/runtime/Symbol;) (17) +10: LocalStore(Ljava/lang/Object;,4) (20) +11: LocalLoad(Ljava/lang/Object;,4) (22) +12: LocalStore(Ljava/lang/Object;,5) (24) +13: LocalLoad(Ljava/lang/Object;,0) (26) +14: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,shift_under_error,()Z) (27) +15: Constant(I,0) (30) +16: ConditionalBranch(I,ne,58) (30) +17: LocalLoad(I,1) (33) +18: Constant(I,0) (34) +19: ConditionalBranch(I,eq,34) (34) +20: LocalLoad(Ljava/lang/Object;,0) (37) +21: New(Ljava/lang/StringBuilder;,0) (38) +22: Dup(1,0) (41) +23: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (42) +24: Constant(Ljava/lang/String;,"# Pop stack by one, state was # ") (45) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (47) +26: LocalLoad(Ljava/lang/Object;,0) (50) +27: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (51) +28: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (54) +29: CheckCast(Ljava_cup/runtime/Symbol;) (57) +30: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (60) +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (63) +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (66) +33: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (69) +34: LocalLoad(Ljava/lang/Object;,0) (72) +35: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (73) +36: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (76) +37: CheckCast(Ljava_cup/runtime/Symbol;) (79) +38: LocalStore(Ljava/lang/Object;,5) (82) +39: LocalLoad(Ljava/lang/Object;,0) (84) +40: Dup(1,0) (85) +41: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (86) +42: Constant(I,1) (89) +43: BinaryOp(I,sub) (90) +44: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (91) +45: LocalLoad(Ljava/lang/Object;,0) (94) +46: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (95) +47: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (98) +48: Constant(I,0) (101) +49: ConditionalBranch(I,eq,13) (101) +50: LocalLoad(I,1) (104) +51: Constant(I,0) (105) +52: ConditionalBranch(I,eq,56) (105) +53: LocalLoad(Ljava/lang/Object;,0) (108) +54: Constant(Ljava/lang/String;,"# No recovery state found on stack") (109) +55: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (111) +56: Constant(I,0) (114) +57: Return(I) (115) +58: LocalLoad(Ljava/lang/Object;,0) (116) +59: LocalLoad(Ljava/lang/Object;,0) (117) +60: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (118) +61: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (121) +62: CheckCast(Ljava_cup/runtime/Symbol;) (124) +63: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (127) +64: LocalLoad(Ljava/lang/Object;,0) (130) +65: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sym,()I) (131) +66: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (134) +67: LocalStore(I,3) (137) +68: LocalLoad(I,1) (138) +69: Constant(I,0) (139) +70: ConditionalBranch(I,eq,99) (139) +71: LocalLoad(Ljava/lang/Object;,0) (142) +72: New(Ljava/lang/StringBuilder;,0) (143) +73: Dup(1,0) (146) +74: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (147) +75: Constant(Ljava/lang/String;,"# Recover state found (#") (150) +76: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (152) +77: LocalLoad(Ljava/lang/Object;,0) (155) +78: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (156) +79: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (159) +80: CheckCast(Ljava_cup/runtime/Symbol;) (162) +81: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (165) +82: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (168) +83: Constant(Ljava/lang/String;,")") (171) +84: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (173) +85: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (176) +86: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (179) +87: LocalLoad(Ljava/lang/Object;,0) (182) +88: New(Ljava/lang/StringBuilder;,0) (183) +89: Dup(1,0) (186) +90: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (187) +91: Constant(Ljava/lang/String;,"# Shifting on error to state #") (190) +92: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (192) +93: LocalLoad(I,3) (195) +94: Constant(I,1) (196) +95: BinaryOp(I,sub) (197) +96: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (198) +97: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (201) +98: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (204) +99: LocalLoad(Ljava/lang/Object;,0) (207) +100: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (208) +101: Constant(Ljava/lang/String;,"ERROR") (211) +102: LocalLoad(Ljava/lang/Object;,0) (213) +103: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sym,()I) (214) +104: LocalLoad(Ljava/lang/Object;,5) (217) +105: LocalLoad(Ljava/lang/Object;,4) (219) +106: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;) (221) +107: LocalStore(Ljava/lang/Object;,2) (226) +108: LocalLoad(Ljava/lang/Object;,2) (227) +109: LocalLoad(I,3) (228) +110: Constant(I,1) (229) +111: BinaryOp(I,sub) (230) +112: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (231) +113: LocalLoad(Ljava/lang/Object;,2) (234) +114: Constant(I,1) (235) +115: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (236) +116: LocalLoad(Ljava/lang/Object;,0) (239) +117: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (240) +118: LocalLoad(Ljava/lang/Object;,2) (243) +119: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (244) +120: Pop(1) (247) +121: LocalLoad(Ljava/lang/Object;,0) (248) +122: Dup(1,0) (249) +123: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (250) +124: Constant(I,1) (253) +125: BinaryOp(I,add) (254) +126: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (255) +127: Constant(I,1) (258) +128: Return(I) (259) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"find_recovery_config(Z)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(I,1) (0) + Handles null at 143 +5: Constant(I,0) (1) + Handles null at 143 +6: ConditionalBranch(I,eq,10) (1) + Handles null at 143 +7: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 143 +8: Constant(Ljava/lang/String;,"# Finding recovery state on stack") (5) + Handles null at 143 +9: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (7) + Handles null at 143 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 143 +11: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (11) + Handles null at 143 +12: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (14) + Handles null at 143 +13: CheckCast(Ljava_cup/runtime/Symbol;) (17) + Handles null at 143 +14: LocalStore(Ljava/lang/Object;,4) (20) + Handles null at 143 +15: LocalLoad(Ljava/lang/Object;,4) (22) + Handles null at 143 +16: LocalStore(Ljava/lang/Object;,5) (24) + Handles null at 143 +17: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 143 +18: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,shift_under_error,()Z) (27) + Handles null at 143 +19: Constant(I,0) (30) + Handles null at 143 +20: ConditionalBranch(I,ne,67) (30) + Handles null at 143 +21: LocalLoad(I,1) (33) + Handles null at 143 +22: Constant(I,0) (34) + Handles null at 143 +23: ConditionalBranch(I,eq,38) (34) + Handles null at 143 +24: LocalLoad(Ljava/lang/Object;,0) (37) + Handles null at 143 +25: New(Ljava/lang/StringBuilder;,0) (38) + Handles null at 143 +26: Dup(1,0) (41) + Handles null at 143 +27: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (42) + Handles null at 143 +28: Constant(Ljava/lang/String;,"# Pop stack by one, state was # ") (45) + Handles null at 143 +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (47) + Handles null at 143 +30: LocalLoad(Ljava/lang/Object;,0) (50) + Handles null at 143 +31: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (51) + Handles null at 143 +32: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (54) + Handles null at 143 +33: CheckCast(Ljava_cup/runtime/Symbol;) (57) + Handles null at 143 +34: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (60) + Handles null at 143 +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (63) + Handles null at 143 +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (66) + Handles null at 143 +37: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (69) + Handles null at 143 +38: LocalLoad(Ljava/lang/Object;,0) (72) + Handles null at 143 +39: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (73) + Handles null at 143 +40: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (76) + Handles null at 143 +41: CheckCast(Ljava_cup/runtime/Symbol;) (79) + Handles null at 143 +42: LocalStore(Ljava/lang/Object;,5) (82) + Handles null at 143 +43: LocalLoad(Ljava/lang/Object;,0) (84) + Handles null at 143 +44: Dup(1,0) (85) + Handles null at 143 +45: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (86) + Handles null at 143 +46: Constant(I,1) (89) + Handles null at 143 +47: BinaryOp(I,sub) (90) + Handles null at 143 +48: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (91) + Handles null at 143 +49: LocalLoad(Ljava/lang/Object;,0) (94) + Handles null at 143 +50: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (95) + Handles null at 143 +51: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (98) + Handles null at 143 +52: Constant(I,0) (101) + Handles null at 143 +53: ConditionalBranch(I,eq,17) (101) + Handles null at 143 +54: LocalLoad(I,1) (104) + Handles null at 143 +55: Constant(I,0) (105) + Handles null at 143 +56: ConditionalBranch(I,eq,60) (105) + Handles null at 143 +57: LocalLoad(Ljava/lang/Object;,0) (108) + Handles null at 143 +58: Constant(Ljava/lang/String;,"# No recovery state found on stack") (109) + Handles null at 143 +59: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (111) + Handles null at 143 +60: Constant(I,0) (114) + Handles null at 143 +61: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (115) + Handles null at 143 +62: Constant(Ljava/lang/String;,"find_recovery_config(Z)Z") (115) + Handles null at 143 +63: LocalLoad(Ljava/lang/Object;,0) (115) + Handles null at 143 +64: Constant(I,0) (115) + Handles null at 143 +65: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (115) + Handles null at 143 +66: Return(I) (115) + Handles null at 143 +67: LocalLoad(Ljava/lang/Object;,0) (116) + Handles null at 143 +68: LocalLoad(Ljava/lang/Object;,0) (117) + Handles null at 143 +69: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (118) + Handles null at 143 +70: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (121) + Handles null at 143 +71: CheckCast(Ljava_cup/runtime/Symbol;) (124) + Handles null at 143 +72: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (127) + Handles null at 143 +73: LocalLoad(Ljava/lang/Object;,0) (130) + Handles null at 143 +74: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sym,()I) (131) + Handles null at 143 +75: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (134) + Handles null at 143 +76: LocalStore(I,3) (137) + Handles null at 143 +77: LocalLoad(I,1) (138) + Handles null at 143 +78: Constant(I,0) (139) + Handles null at 143 +79: ConditionalBranch(I,eq,108) (139) + Handles null at 143 +80: LocalLoad(Ljava/lang/Object;,0) (142) + Handles null at 143 +81: New(Ljava/lang/StringBuilder;,0) (143) + Handles null at 143 +82: Dup(1,0) (146) + Handles null at 143 +83: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (147) + Handles null at 143 +84: Constant(Ljava/lang/String;,"# Recover state found (#") (150) + Handles null at 143 +85: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (152) + Handles null at 143 +86: LocalLoad(Ljava/lang/Object;,0) (155) + Handles null at 143 +87: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (156) + Handles null at 143 +88: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (159) + Handles null at 143 +89: CheckCast(Ljava_cup/runtime/Symbol;) (162) + Handles null at 143 +90: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (165) + Handles null at 143 +91: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (168) + Handles null at 143 +92: Constant(Ljava/lang/String;,")") (171) + Handles null at 143 +93: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (173) + Handles null at 143 +94: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (176) + Handles null at 143 +95: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (179) + Handles null at 143 +96: LocalLoad(Ljava/lang/Object;,0) (182) + Handles null at 143 +97: New(Ljava/lang/StringBuilder;,0) (183) + Handles null at 143 +98: Dup(1,0) (186) + Handles null at 143 +99: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (187) + Handles null at 143 +100: Constant(Ljava/lang/String;,"# Shifting on error to state #") (190) + Handles null at 143 +101: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (192) + Handles null at 143 +102: LocalLoad(I,3) (195) + Handles null at 143 +103: Constant(I,1) (196) + Handles null at 143 +104: BinaryOp(I,sub) (197) + Handles null at 143 +105: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (198) + Handles null at 143 +106: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (201) + Handles null at 143 +107: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (204) + Handles null at 143 +108: LocalLoad(Ljava/lang/Object;,0) (207) + Handles null at 143 +109: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,getSymbolFactory,()Ljava_cup/runtime/SymbolFactory;) (208) + Handles null at 143 +110: Constant(Ljava/lang/String;,"ERROR") (211) + Handles null at 143 +111: LocalLoad(Ljava/lang/Object;,0) (213) + Handles null at 143 +112: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sym,()I) (214) + Handles null at 143 +113: LocalLoad(Ljava/lang/Object;,5) (217) + Handles null at 143 +114: LocalLoad(Ljava/lang/Object;,4) (219) + Handles null at 143 +115: Invoke(INTERFACE,Ljava_cup/runtime/SymbolFactory;,newSymbol,(Ljava/lang/String;ILjava_cup/runtime/Symbol;Ljava_cup/runtime/Symbol;)Ljava_cup/runtime/Symbol;) (221) + Handles null at 143 +116: LocalStore(Ljava/lang/Object;,2) (226) + Handles null at 143 +117: LocalLoad(Ljava/lang/Object;,2) (227) + Handles null at 143 +118: LocalLoad(I,3) (228) + Handles null at 143 +119: Constant(I,1) (229) + Handles null at 143 +120: BinaryOp(I,sub) (230) + Handles null at 143 +121: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (231) + Handles null at 143 +122: LocalLoad(Ljava/lang/Object;,2) (234) + Handles null at 143 +123: Constant(I,1) (235) + Handles null at 143 +124: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (236) + Handles null at 143 +125: LocalLoad(Ljava/lang/Object;,0) (239) + Handles null at 143 +126: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (240) + Handles null at 143 +127: LocalLoad(Ljava/lang/Object;,2) (243) + Handles null at 143 +128: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (244) + Handles null at 143 +129: Pop(1) (247) + Handles null at 143 +130: LocalLoad(Ljava/lang/Object;,0) (248) + Handles null at 143 +131: Dup(1,0) (249) + Handles null at 143 +132: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (250) + Handles null at 143 +133: Constant(I,1) (253) + Handles null at 143 +134: BinaryOp(I,add) (254) + Handles null at 143 +135: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (255) + Handles null at 143 +136: Constant(I,1) (258) + Handles null at 143 +137: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (259) + Handles null at 143 +138: Constant(Ljava/lang/String;,"find_recovery_config(Z)Z") (259) + Handles null at 143 +139: LocalLoad(Ljava/lang/Object;,0) (259) + Handles null at 143 +140: Constant(I,0) (259) + Handles null at 143 +141: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (259) + Handles null at 143 +142: Return(I) (259) + Handles null at 143 +143: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +144: Constant(Ljava/lang/String;,"find_recovery_config(Z)Z") (0) +145: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +146: Constant(I,1) (0) +147: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +148: Throw() (0) +Instrumenting read_lookahead ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,0) (1) +2: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (2) +3: New([Ljava_cup/runtime/Symbol;,1) (5) +4: Put([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (8) +5: Constant(I,0) (11) +6: LocalStore(I,1) (12) +7: LocalLoad(I,1) (13) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (15) +10: ConditionalBranch(I,ge,26) (18) +11: LocalLoad(Ljava/lang/Object;,0) (21) +12: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (22) +13: LocalLoad(I,1) (25) +14: LocalLoad(Ljava/lang/Object;,0) (26) +15: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (27) +16: ArrayStore(Ljava/lang/Object;) (30) +17: LocalLoad(Ljava/lang/Object;,0) (31) +18: LocalLoad(Ljava/lang/Object;,0) (32) +19: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (33) +20: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (36) +21: LocalLoad(I,1) (39) +22: Constant(I,1) (39) +23: BinaryOp(I,add) (39) +24: LocalStore(I,1) (39) +25: Goto(7) (42) +26: LocalLoad(Ljava/lang/Object;,0) (45) +27: Constant(I,0) (46) +28: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (47) +29: Return(V) (50) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"read_lookahead()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 39 +5: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 39 +6: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (2) + Handles null at 39 +7: New([Ljava_cup/runtime/Symbol;,1) (5) + Handles null at 39 +8: Put([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (8) + Handles null at 39 +9: Constant(I,0) (11) + Handles null at 39 +10: LocalStore(I,1) (12) + Handles null at 39 +11: LocalLoad(I,1) (13) + Handles null at 39 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 39 +13: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (15) + Handles null at 39 +14: ConditionalBranch(I,ge,30) (18) + Handles null at 39 +15: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 39 +16: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (22) + Handles null at 39 +17: LocalLoad(I,1) (25) + Handles null at 39 +18: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 39 +19: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (27) + Handles null at 39 +20: ArrayStore(Ljava/lang/Object;) (30) + Handles null at 39 +21: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 39 +22: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 39 +23: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (33) + Handles null at 39 +24: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (36) + Handles null at 39 +25: LocalLoad(I,1) (39) + Handles null at 39 +26: Constant(I,1) (39) + Handles null at 39 +27: BinaryOp(I,add) (39) + Handles null at 39 +28: LocalStore(I,1) (39) + Handles null at 39 +29: Goto(11) (42) + Handles null at 39 +30: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 39 +31: Constant(I,0) (46) + Handles null at 39 +32: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (47) + Handles null at 39 +33: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (50) + Handles null at 39 +34: Constant(Ljava/lang/String;,"read_lookahead()V") (50) + Handles null at 39 +35: LocalLoad(Ljava/lang/Object;,0) (50) + Handles null at 39 +36: Constant(I,0) (50) + Handles null at 39 +37: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (50) + Handles null at 39 +38: Return(V) (50) + Handles null at 39 +39: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +40: Constant(Ljava/lang/String;,"read_lookahead()V") (0) +41: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +42: Constant(I,1) (0) +43: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +44: Throw() (0) +Instrumenting cur_err_token ()Ljava_cup/runtime/Symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (5) +4: ArrayLoad(Ljava/lang/Object;) (8) +5: Return(Ljava/lang/Object;) (9) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"cur_err_token()Ljava_cup/runtime/Symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 15 +7: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (5) + Handles null at 15 +8: ArrayLoad(Ljava/lang/Object;) (8) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (9) + Handles null at 15 +10: Constant(Ljava/lang/String;,"cur_err_token()Ljava_cup/runtime/Symbol;") (9) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 15 +12: Constant(I,0) (9) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (9) + Handles null at 15 +14: Return(Ljava/lang/Object;) (9) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +16: Constant(Ljava/lang/String;,"cur_err_token()Ljava_cup/runtime/Symbol;") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting advance_lookahead ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Dup(1,0) (1) +2: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (2) +3: Constant(I,1) (5) +4: BinaryOp(I,add) (6) +5: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (11) +8: LocalLoad(Ljava/lang/Object;,0) (14) +9: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (15) +10: ConditionalBranch(I,ge,13) (18) +11: Constant(I,1) (21) +12: Goto(14) (22) +13: Constant(I,0) (25) +14: Return(I) (26) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"advance_lookahead()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: Dup(1,0) (1) + Handles null at 24 +6: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (2) + Handles null at 24 +7: Constant(I,1) (5) + Handles null at 24 +8: BinaryOp(I,add) (6) + Handles null at 24 +9: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (7) + Handles null at 24 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 24 +11: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (11) + Handles null at 24 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 24 +13: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (15) + Handles null at 24 +14: ConditionalBranch(I,ge,17) (18) + Handles null at 24 +15: Constant(I,1) (21) + Handles null at 24 +16: Goto(18) (22) + Handles null at 24 +17: Constant(I,0) (25) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (26) + Handles null at 24 +19: Constant(Ljava/lang/String;,"advance_lookahead()Z") (26) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (26) + Handles null at 24 +21: Constant(I,0) (26) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (26) + Handles null at 24 +23: Return(I) (26) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +25: Constant(Ljava/lang/String;,"advance_lookahead()Z") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting restart_lookahead ()V: +Initial ShrikeBT code: +0: Constant(I,1) (0) +1: LocalStore(I,1) (1) +2: LocalLoad(I,1) (2) +3: LocalLoad(Ljava/lang/Object;,0) (3) +4: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (4) +5: ConditionalBranch(I,ge,21) (7) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (11) +8: LocalLoad(I,1) (14) +9: Constant(I,1) (15) +10: BinaryOp(I,sub) (16) +11: LocalLoad(Ljava/lang/Object;,0) (17) +12: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (18) +13: LocalLoad(I,1) (21) +14: ArrayLoad(Ljava/lang/Object;) (22) +15: ArrayStore(Ljava/lang/Object;) (23) +16: LocalLoad(I,1) (24) +17: Constant(I,1) (24) +18: BinaryOp(I,add) (24) +19: LocalStore(I,1) (24) +20: Goto(2) (27) +21: LocalLoad(Ljava/lang/Object;,0) (30) +22: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (31) +23: LocalLoad(Ljava/lang/Object;,0) (34) +24: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (35) +25: Constant(I,1) (38) +26: BinaryOp(I,sub) (39) +27: LocalLoad(Ljava/lang/Object;,0) (40) +28: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (41) +29: ArrayStore(Ljava/lang/Object;) (44) +30: LocalLoad(Ljava/lang/Object;,0) (45) +31: LocalLoad(Ljava/lang/Object;,0) (46) +32: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (47) +33: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (50) +34: LocalLoad(Ljava/lang/Object;,0) (53) +35: Constant(I,0) (54) +36: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (55) +37: Return(V) (58) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"restart_lookahead()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,1) (0) + Handles null at 47 +5: LocalStore(I,1) (1) + Handles null at 47 +6: LocalLoad(I,1) (2) + Handles null at 47 +7: LocalLoad(Ljava/lang/Object;,0) (3) + Handles null at 47 +8: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (4) + Handles null at 47 +9: ConditionalBranch(I,ge,25) (7) + Handles null at 47 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 47 +11: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (11) + Handles null at 47 +12: LocalLoad(I,1) (14) + Handles null at 47 +13: Constant(I,1) (15) + Handles null at 47 +14: BinaryOp(I,sub) (16) + Handles null at 47 +15: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 47 +16: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (18) + Handles null at 47 +17: LocalLoad(I,1) (21) + Handles null at 47 +18: ArrayLoad(Ljava/lang/Object;) (22) + Handles null at 47 +19: ArrayStore(Ljava/lang/Object;) (23) + Handles null at 47 +20: LocalLoad(I,1) (24) + Handles null at 47 +21: Constant(I,1) (24) + Handles null at 47 +22: BinaryOp(I,add) (24) + Handles null at 47 +23: LocalStore(I,1) (24) + Handles null at 47 +24: Goto(6) (27) + Handles null at 47 +25: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 47 +26: Get([Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead) (31) + Handles null at 47 +27: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 47 +28: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,error_sync_size,()I) (35) + Handles null at 47 +29: Constant(I,1) (38) + Handles null at 47 +30: BinaryOp(I,sub) (39) + Handles null at 47 +31: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 47 +32: Get(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (41) + Handles null at 47 +33: ArrayStore(Ljava/lang/Object;) (44) + Handles null at 47 +34: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 47 +35: LocalLoad(Ljava/lang/Object;,0) (46) + Handles null at 47 +36: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,scan,()Ljava_cup/runtime/Symbol;) (47) + Handles null at 47 +37: Put(Ljava_cup/runtime/Symbol;,NONSTATIC,Ljava_cup/runtime/lr_parser;,cur_token) (50) + Handles null at 47 +38: LocalLoad(Ljava/lang/Object;,0) (53) + Handles null at 47 +39: Constant(I,0) (54) + Handles null at 47 +40: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (55) + Handles null at 47 +41: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (58) + Handles null at 47 +42: Constant(Ljava/lang/String;,"restart_lookahead()V") (58) + Handles null at 47 +43: LocalLoad(Ljava/lang/Object;,0) (58) + Handles null at 47 +44: Constant(I,0) (58) + Handles null at 47 +45: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (58) + Handles null at 47 +46: Return(V) (58) + Handles null at 47 +47: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +48: Constant(Ljava/lang/String;,"restart_lookahead()V") (0) +49: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +50: Constant(I,1) (0) +51: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +52: Throw() (0) +Instrumenting try_parse_ahead (Z)Z: +Initial ShrikeBT code: +0: New(Ljava_cup/runtime/virtual_parse_stack;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (5) +4: Invoke(SPECIAL,Ljava_cup/runtime/virtual_parse_stack;,,(Ljava/util/Stack;)V) (8) +5: LocalStore(Ljava/lang/Object;,5) (11) +6: LocalLoad(Ljava/lang/Object;,0) (13) +7: LocalLoad(Ljava/lang/Object;,5) (14) +8: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (16) +9: LocalLoad(Ljava/lang/Object;,0) (19) +10: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (20) +11: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (23) +12: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (26) +13: LocalStore(I,2) (29) +14: LocalLoad(I,2) (30) +15: Constant(I,0) (31) +16: ConditionalBranch(I,ne,19) (31) +17: Constant(I,0) (34) +18: Return(I) (35) +19: LocalLoad(I,2) (36) +20: Constant(I,0) (37) +21: ConditionalBranch(I,le,54) (37) +22: LocalLoad(Ljava/lang/Object;,5) (40) +23: LocalLoad(I,2) (42) +24: Constant(I,1) (43) +25: BinaryOp(I,sub) (44) +26: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,push,(I)V) (45) +27: LocalLoad(I,1) (48) +28: Constant(I,0) (49) +29: ConditionalBranch(I,eq,48) (49) +30: LocalLoad(Ljava/lang/Object;,0) (52) +31: New(Ljava/lang/StringBuilder;,0) (53) +32: Dup(1,0) (56) +33: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (57) +34: Constant(Ljava/lang/String;,"# Parse-ahead shifts Symbol #") (60) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (62) +36: LocalLoad(Ljava/lang/Object;,0) (65) +37: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (66) +38: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (69) +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (72) +40: Constant(Ljava/lang/String;," into state #") (75) +41: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (77) +42: LocalLoad(I,2) (80) +43: Constant(I,1) (81) +44: BinaryOp(I,sub) (82) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (83) +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (86) +47: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (89) +48: LocalLoad(Ljava/lang/Object;,0) (92) +49: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,advance_lookahead,()Z) (93) +50: Constant(I,0) (96) +51: ConditionalBranch(I,ne,6) (96) +52: Constant(I,1) (99) +53: Return(I) (100) +54: LocalLoad(I,2) (101) +55: UnaryOp(I,neg) (102) +56: Constant(I,1) (103) +57: BinaryOp(I,sub) (104) +58: LocalLoad(Ljava/lang/Object;,0) (105) +59: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,start_production,()I) (106) +60: ConditionalBranch(I,ne,69) (109) +61: LocalLoad(I,1) (112) +62: Constant(I,0) (113) +63: ConditionalBranch(I,eq,67) (113) +64: LocalLoad(Ljava/lang/Object;,0) (116) +65: Constant(Ljava/lang/String;,"# Parse-ahead accepts") (117) +66: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (119) +67: Constant(I,1) (122) +68: Return(I) (123) +69: LocalLoad(Ljava/lang/Object;,0) (124) +70: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (125) +71: LocalLoad(I,2) (128) +72: UnaryOp(I,neg) (129) +73: Constant(I,1) (130) +74: BinaryOp(I,sub) (131) +75: ArrayLoad(Ljava/lang/Object;) (132) +76: Constant(I,0) (133) +77: ArrayLoad(S) (134) +78: LocalStore(I,3) (135) +79: LocalLoad(Ljava/lang/Object;,0) (136) +80: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (137) +81: LocalLoad(I,2) (140) +82: UnaryOp(I,neg) (141) +83: Constant(I,1) (142) +84: BinaryOp(I,sub) (143) +85: ArrayLoad(Ljava/lang/Object;) (144) +86: Constant(I,1) (145) +87: ArrayLoad(S) (146) +88: LocalStore(I,4) (147) +89: Constant(I,0) (149) +90: LocalStore(I,6) (150) +91: LocalLoad(I,6) (152) +92: LocalLoad(I,4) (154) +93: ConditionalBranch(I,ge,101) (156) +94: LocalLoad(Ljava/lang/Object;,5) (159) +95: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,pop,()V) (161) +96: LocalLoad(I,6) (164) +97: Constant(I,1) (164) +98: BinaryOp(I,add) (164) +99: LocalStore(I,6) (164) +100: Goto(91) (167) +101: LocalLoad(I,1) (170) +102: Constant(I,0) (171) +103: ConditionalBranch(I,eq,123) (171) +104: LocalLoad(Ljava/lang/Object;,0) (174) +105: New(Ljava/lang/StringBuilder;,0) (175) +106: Dup(1,0) (178) +107: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (179) +108: Constant(Ljava/lang/String;,"# Parse-ahead reduces: handle size = ") (182) +109: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (184) +110: LocalLoad(I,4) (187) +111: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (189) +112: Constant(Ljava/lang/String;," lhs = #") (192) +113: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (194) +114: LocalLoad(I,3) (197) +115: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (198) +116: Constant(Ljava/lang/String;," from state #") (201) +117: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (203) +118: LocalLoad(Ljava/lang/Object;,5) (206) +119: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (208) +120: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (211) +121: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (214) +122: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (217) +123: LocalLoad(Ljava/lang/Object;,5) (220) +124: LocalLoad(Ljava/lang/Object;,0) (222) +125: LocalLoad(Ljava/lang/Object;,5) (223) +126: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (225) +127: LocalLoad(I,3) (228) +128: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (229) +129: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,push,(I)V) (232) +130: LocalLoad(I,1) (235) +131: Constant(I,0) (236) +132: ConditionalBranch(I,eq,6) (236) +133: LocalLoad(Ljava/lang/Object;,0) (239) +134: New(Ljava/lang/StringBuilder;,0) (240) +135: Dup(1,0) (243) +136: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (244) +137: Constant(Ljava/lang/String;,"# Goto state #") (247) +138: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (249) +139: LocalLoad(Ljava/lang/Object;,5) (252) +140: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (254) +141: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (257) +142: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (260) +143: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (263) +144: Goto(6) (266) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"try_parse_ahead(Z)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/runtime/virtual_parse_stack;,0) (0) + Handles null at 164 +5: Dup(1,0) (3) + Handles null at 164 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 164 +7: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (5) + Handles null at 164 +8: Invoke(SPECIAL,Ljava_cup/runtime/virtual_parse_stack;,,(Ljava/util/Stack;)V) (8) + Handles null at 164 +9: LocalStore(Ljava/lang/Object;,5) (11) + Handles null at 164 +10: LocalLoad(Ljava/lang/Object;,0) (13) + Handles null at 164 +11: LocalLoad(Ljava/lang/Object;,5) (14) + Handles null at 164 +12: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (16) + Handles null at 164 +13: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 164 +14: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (20) + Handles null at 164 +15: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (23) + Handles null at 164 +16: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (26) + Handles null at 164 +17: LocalStore(I,2) (29) + Handles null at 164 +18: LocalLoad(I,2) (30) + Handles null at 164 +19: Constant(I,0) (31) + Handles null at 164 +20: ConditionalBranch(I,ne,28) (31) + Handles null at 164 +21: Constant(I,0) (34) + Handles null at 164 +22: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (35) + Handles null at 164 +23: Constant(Ljava/lang/String;,"try_parse_ahead(Z)Z") (35) + Handles null at 164 +24: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 164 +25: Constant(I,0) (35) + Handles null at 164 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 164 +27: Return(I) (35) + Handles null at 164 +28: LocalLoad(I,2) (36) + Handles null at 164 +29: Constant(I,0) (37) + Handles null at 164 +30: ConditionalBranch(I,le,68) (37) + Handles null at 164 +31: LocalLoad(Ljava/lang/Object;,5) (40) + Handles null at 164 +32: LocalLoad(I,2) (42) + Handles null at 164 +33: Constant(I,1) (43) + Handles null at 164 +34: BinaryOp(I,sub) (44) + Handles null at 164 +35: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,push,(I)V) (45) + Handles null at 164 +36: LocalLoad(I,1) (48) + Handles null at 164 +37: Constant(I,0) (49) + Handles null at 164 +38: ConditionalBranch(I,eq,57) (49) + Handles null at 164 +39: LocalLoad(Ljava/lang/Object;,0) (52) + Handles null at 164 +40: New(Ljava/lang/StringBuilder;,0) (53) + Handles null at 164 +41: Dup(1,0) (56) + Handles null at 164 +42: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (57) + Handles null at 164 +43: Constant(Ljava/lang/String;,"# Parse-ahead shifts Symbol #") (60) + Handles null at 164 +44: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (62) + Handles null at 164 +45: LocalLoad(Ljava/lang/Object;,0) (65) + Handles null at 164 +46: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (66) + Handles null at 164 +47: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (69) + Handles null at 164 +48: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (72) + Handles null at 164 +49: Constant(Ljava/lang/String;," into state #") (75) + Handles null at 164 +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (77) + Handles null at 164 +51: LocalLoad(I,2) (80) + Handles null at 164 +52: Constant(I,1) (81) + Handles null at 164 +53: BinaryOp(I,sub) (82) + Handles null at 164 +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (83) + Handles null at 164 +55: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (86) + Handles null at 164 +56: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (89) + Handles null at 164 +57: LocalLoad(Ljava/lang/Object;,0) (92) + Handles null at 164 +58: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,advance_lookahead,()Z) (93) + Handles null at 164 +59: Constant(I,0) (96) + Handles null at 164 +60: ConditionalBranch(I,ne,10) (96) + Handles null at 164 +61: Constant(I,1) (99) + Handles null at 164 +62: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (100) + Handles null at 164 +63: Constant(Ljava/lang/String;,"try_parse_ahead(Z)Z") (100) + Handles null at 164 +64: LocalLoad(Ljava/lang/Object;,0) (100) + Handles null at 164 +65: Constant(I,0) (100) + Handles null at 164 +66: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (100) + Handles null at 164 +67: Return(I) (100) + Handles null at 164 +68: LocalLoad(I,2) (101) + Handles null at 164 +69: UnaryOp(I,neg) (102) + Handles null at 164 +70: Constant(I,1) (103) + Handles null at 164 +71: BinaryOp(I,sub) (104) + Handles null at 164 +72: LocalLoad(Ljava/lang/Object;,0) (105) + Handles null at 164 +73: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,start_production,()I) (106) + Handles null at 164 +74: ConditionalBranch(I,ne,88) (109) + Handles null at 164 +75: LocalLoad(I,1) (112) + Handles null at 164 +76: Constant(I,0) (113) + Handles null at 164 +77: ConditionalBranch(I,eq,81) (113) + Handles null at 164 +78: LocalLoad(Ljava/lang/Object;,0) (116) + Handles null at 164 +79: Constant(Ljava/lang/String;,"# Parse-ahead accepts") (117) + Handles null at 164 +80: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (119) + Handles null at 164 +81: Constant(I,1) (122) + Handles null at 164 +82: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (123) + Handles null at 164 +83: Constant(Ljava/lang/String;,"try_parse_ahead(Z)Z") (123) + Handles null at 164 +84: LocalLoad(Ljava/lang/Object;,0) (123) + Handles null at 164 +85: Constant(I,0) (123) + Handles null at 164 +86: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (123) + Handles null at 164 +87: Return(I) (123) + Handles null at 164 +88: LocalLoad(Ljava/lang/Object;,0) (124) + Handles null at 164 +89: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (125) + Handles null at 164 +90: LocalLoad(I,2) (128) + Handles null at 164 +91: UnaryOp(I,neg) (129) + Handles null at 164 +92: Constant(I,1) (130) + Handles null at 164 +93: BinaryOp(I,sub) (131) + Handles null at 164 +94: ArrayLoad(Ljava/lang/Object;) (132) + Handles null at 164 +95: Constant(I,0) (133) + Handles null at 164 +96: ArrayLoad(S) (134) + Handles null at 164 +97: LocalStore(I,3) (135) + Handles null at 164 +98: LocalLoad(Ljava/lang/Object;,0) (136) + Handles null at 164 +99: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (137) + Handles null at 164 +100: LocalLoad(I,2) (140) + Handles null at 164 +101: UnaryOp(I,neg) (141) + Handles null at 164 +102: Constant(I,1) (142) + Handles null at 164 +103: BinaryOp(I,sub) (143) + Handles null at 164 +104: ArrayLoad(Ljava/lang/Object;) (144) + Handles null at 164 +105: Constant(I,1) (145) + Handles null at 164 +106: ArrayLoad(S) (146) + Handles null at 164 +107: LocalStore(I,4) (147) + Handles null at 164 +108: Constant(I,0) (149) + Handles null at 164 +109: LocalStore(I,6) (150) + Handles null at 164 +110: LocalLoad(I,6) (152) + Handles null at 164 +111: LocalLoad(I,4) (154) + Handles null at 164 +112: ConditionalBranch(I,ge,120) (156) + Handles null at 164 +113: LocalLoad(Ljava/lang/Object;,5) (159) + Handles null at 164 +114: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,pop,()V) (161) + Handles null at 164 +115: LocalLoad(I,6) (164) + Handles null at 164 +116: Constant(I,1) (164) + Handles null at 164 +117: BinaryOp(I,add) (164) + Handles null at 164 +118: LocalStore(I,6) (164) + Handles null at 164 +119: Goto(110) (167) + Handles null at 164 +120: LocalLoad(I,1) (170) + Handles null at 164 +121: Constant(I,0) (171) + Handles null at 164 +122: ConditionalBranch(I,eq,142) (171) + Handles null at 164 +123: LocalLoad(Ljava/lang/Object;,0) (174) + Handles null at 164 +124: New(Ljava/lang/StringBuilder;,0) (175) + Handles null at 164 +125: Dup(1,0) (178) + Handles null at 164 +126: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (179) + Handles null at 164 +127: Constant(Ljava/lang/String;,"# Parse-ahead reduces: handle size = ") (182) + Handles null at 164 +128: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (184) + Handles null at 164 +129: LocalLoad(I,4) (187) + Handles null at 164 +130: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (189) + Handles null at 164 +131: Constant(Ljava/lang/String;," lhs = #") (192) + Handles null at 164 +132: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (194) + Handles null at 164 +133: LocalLoad(I,3) (197) + Handles null at 164 +134: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (198) + Handles null at 164 +135: Constant(Ljava/lang/String;," from state #") (201) + Handles null at 164 +136: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (203) + Handles null at 164 +137: LocalLoad(Ljava/lang/Object;,5) (206) + Handles null at 164 +138: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (208) + Handles null at 164 +139: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (211) + Handles null at 164 +140: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (214) + Handles null at 164 +141: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (217) + Handles null at 164 +142: LocalLoad(Ljava/lang/Object;,5) (220) + Handles null at 164 +143: LocalLoad(Ljava/lang/Object;,0) (222) + Handles null at 164 +144: LocalLoad(Ljava/lang/Object;,5) (223) + Handles null at 164 +145: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (225) + Handles null at 164 +146: LocalLoad(I,3) (228) + Handles null at 164 +147: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (229) + Handles null at 164 +148: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,push,(I)V) (232) + Handles null at 164 +149: LocalLoad(I,1) (235) + Handles null at 164 +150: Constant(I,0) (236) + Handles null at 164 +151: ConditionalBranch(I,eq,10) (236) + Handles null at 164 +152: LocalLoad(Ljava/lang/Object;,0) (239) + Handles null at 164 +153: New(Ljava/lang/StringBuilder;,0) (240) + Handles null at 164 +154: Dup(1,0) (243) + Handles null at 164 +155: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (244) + Handles null at 164 +156: Constant(Ljava/lang/String;,"# Goto state #") (247) + Handles null at 164 +157: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (249) + Handles null at 164 +158: LocalLoad(Ljava/lang/Object;,5) (252) + Handles null at 164 +159: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,top,()I) (254) + Handles null at 164 +160: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (257) + Handles null at 164 +161: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (260) + Handles null at 164 +162: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (263) + Handles null at 164 +163: Goto(10) (266) + Handles null at 164 +164: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +165: Constant(Ljava/lang/String;,"try_parse_ahead(Z)Z") (0) +166: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +167: Constant(I,1) (0) +168: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +169: Throw() (0) +Instrumenting parse_lookahead (Z)V: +Initial ShrikeBT code: +0: Constant(L;,null) (0) +1: LocalStore(Ljava/lang/Object;,3) (1) +2: LocalLoad(Ljava/lang/Object;,0) (2) +3: Constant(I,0) (3) +4: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (4) +5: LocalLoad(I,1) (7) +6: Constant(I,0) (8) +7: ConditionalBranch(I,eq,37) (8) +8: LocalLoad(Ljava/lang/Object;,0) (11) +9: Constant(Ljava/lang/String;,"# Reparsing saved input with actions") (12) +10: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (14) +11: LocalLoad(Ljava/lang/Object;,0) (17) +12: New(Ljava/lang/StringBuilder;,0) (18) +13: Dup(1,0) (21) +14: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (22) +15: Constant(Ljava/lang/String;,"# Current Symbol is #") (25) +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (27) +17: LocalLoad(Ljava/lang/Object;,0) (30) +18: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (31) +19: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (34) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (37) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (40) +22: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (43) +23: LocalLoad(Ljava/lang/Object;,0) (46) +24: New(Ljava/lang/StringBuilder;,0) (47) +25: Dup(1,0) (50) +26: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (51) +27: Constant(Ljava/lang/String;,"# Current state is #") (54) +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (56) +29: LocalLoad(Ljava/lang/Object;,0) (59) +30: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (60) +31: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (63) +32: CheckCast(Ljava_cup/runtime/Symbol;) (66) +33: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (69) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (72) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (75) +36: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (78) +37: LocalLoad(Ljava/lang/Object;,0) (81) +38: Get(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (82) +39: Constant(I,0) (85) +40: ConditionalBranch(I,ne,225) (85) +41: LocalLoad(Ljava/lang/Object;,0) (88) +42: LocalLoad(Ljava/lang/Object;,0) (89) +43: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (90) +44: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (93) +45: CheckCast(Ljava_cup/runtime/Symbol;) (96) +46: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (99) +47: LocalLoad(Ljava/lang/Object;,0) (102) +48: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (103) +49: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (106) +50: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (109) +51: LocalStore(I,2) (112) +52: LocalLoad(I,2) (113) +53: Constant(I,0) (114) +54: ConditionalBranch(I,le,111) (114) +55: LocalLoad(Ljava/lang/Object;,0) (117) +56: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (118) +57: LocalLoad(I,2) (121) +58: Constant(I,1) (122) +59: BinaryOp(I,sub) (123) +60: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (124) +61: LocalLoad(Ljava/lang/Object;,0) (127) +62: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (128) +63: Constant(I,1) (131) +64: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (132) +65: LocalLoad(I,1) (135) +66: Constant(I,0) (136) +67: ConditionalBranch(I,eq,72) (136) +68: LocalLoad(Ljava/lang/Object;,0) (139) +69: LocalLoad(Ljava/lang/Object;,0) (140) +70: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (141) +71: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_shift,(Ljava_cup/runtime/Symbol;)V) (144) +72: LocalLoad(Ljava/lang/Object;,0) (147) +73: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (148) +74: LocalLoad(Ljava/lang/Object;,0) (151) +75: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (152) +76: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (155) +77: Pop(1) (158) +78: LocalLoad(Ljava/lang/Object;,0) (159) +79: Dup(1,0) (160) +80: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (161) +81: Constant(I,1) (164) +82: BinaryOp(I,add) (165) +83: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (166) +84: LocalLoad(Ljava/lang/Object;,0) (169) +85: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,advance_lookahead,()Z) (170) +86: Constant(I,0) (173) +87: ConditionalBranch(I,ne,95) (173) +88: LocalLoad(I,1) (176) +89: Constant(I,0) (177) +90: ConditionalBranch(I,eq,94) (177) +91: LocalLoad(Ljava/lang/Object;,0) (180) +92: Constant(Ljava/lang/String;,"# Completed reparse") (181) +93: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (183) +94: Return(V) (186) +95: LocalLoad(I,1) (187) +96: Constant(I,0) (188) +97: ConditionalBranch(I,eq,37) (188) +98: LocalLoad(Ljava/lang/Object;,0) (191) +99: New(Ljava/lang/StringBuilder;,0) (192) +100: Dup(1,0) (195) +101: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (196) +102: Constant(Ljava/lang/String;,"# Current Symbol is #") (199) +103: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (201) +104: LocalLoad(Ljava/lang/Object;,0) (204) +105: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (205) +106: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (208) +107: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (211) +108: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (214) +109: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (217) +110: Goto(37) (220) +111: LocalLoad(I,2) (223) +112: Constant(I,0) (224) +113: ConditionalBranch(I,ge,217) (224) +114: LocalLoad(Ljava/lang/Object;,0) (227) +115: LocalLoad(I,2) (228) +116: UnaryOp(I,neg) (229) +117: Constant(I,1) (230) +118: BinaryOp(I,sub) (231) +119: LocalLoad(Ljava/lang/Object;,0) (232) +120: LocalLoad(Ljava/lang/Object;,0) (233) +121: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (234) +122: LocalLoad(Ljava/lang/Object;,0) (237) +123: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (238) +124: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,do_action,(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;) (241) +125: LocalStore(Ljava/lang/Object;,3) (244) +126: LocalLoad(Ljava/lang/Object;,0) (245) +127: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (246) +128: LocalLoad(I,2) (249) +129: UnaryOp(I,neg) (250) +130: Constant(I,1) (251) +131: BinaryOp(I,sub) (252) +132: ArrayLoad(Ljava/lang/Object;) (253) +133: Constant(I,0) (254) +134: ArrayLoad(S) (255) +135: LocalStore(I,5) (256) +136: LocalLoad(Ljava/lang/Object;,0) (258) +137: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (259) +138: LocalLoad(I,2) (262) +139: UnaryOp(I,neg) (263) +140: Constant(I,1) (264) +141: BinaryOp(I,sub) (265) +142: ArrayLoad(Ljava/lang/Object;) (266) +143: Constant(I,1) (267) +144: ArrayLoad(S) (268) +145: LocalStore(I,4) (269) +146: LocalLoad(I,1) (271) +147: Constant(I,0) (272) +148: ConditionalBranch(I,eq,157) (272) +149: LocalLoad(Ljava/lang/Object;,0) (275) +150: LocalLoad(I,2) (276) +151: UnaryOp(I,neg) (277) +152: Constant(I,1) (278) +153: BinaryOp(I,sub) (279) +154: LocalLoad(I,5) (280) +155: LocalLoad(I,4) (282) +156: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_reduce,(III)V) (284) +157: Constant(I,0) (287) +158: LocalStore(I,6) (288) +159: LocalLoad(I,6) (290) +160: LocalLoad(I,4) (292) +161: ConditionalBranch(I,ge,177) (294) +162: LocalLoad(Ljava/lang/Object;,0) (297) +163: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (298) +164: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (301) +165: Pop(1) (304) +166: LocalLoad(Ljava/lang/Object;,0) (305) +167: Dup(1,0) (306) +168: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (307) +169: Constant(I,1) (310) +170: BinaryOp(I,sub) (311) +171: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (312) +172: LocalLoad(I,6) (315) +173: Constant(I,1) (315) +174: BinaryOp(I,add) (315) +175: LocalStore(I,6) (315) +176: Goto(159) (318) +177: LocalLoad(Ljava/lang/Object;,0) (321) +178: LocalLoad(Ljava/lang/Object;,0) (322) +179: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (323) +180: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (326) +181: CheckCast(Ljava_cup/runtime/Symbol;) (329) +182: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (332) +183: LocalLoad(I,5) (335) +184: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (337) +185: LocalStore(I,2) (340) +186: LocalLoad(Ljava/lang/Object;,3) (341) +187: LocalLoad(I,2) (342) +188: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (343) +189: LocalLoad(Ljava/lang/Object;,3) (346) +190: Constant(I,1) (347) +191: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (348) +192: LocalLoad(Ljava/lang/Object;,0) (351) +193: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (352) +194: LocalLoad(Ljava/lang/Object;,3) (355) +195: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (356) +196: Pop(1) (359) +197: LocalLoad(Ljava/lang/Object;,0) (360) +198: Dup(1,0) (361) +199: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (362) +200: Constant(I,1) (365) +201: BinaryOp(I,add) (366) +202: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (367) +203: LocalLoad(I,1) (370) +204: Constant(I,0) (371) +205: ConditionalBranch(I,eq,37) (371) +206: LocalLoad(Ljava/lang/Object;,0) (374) +207: New(Ljava/lang/StringBuilder;,0) (375) +208: Dup(1,0) (378) +209: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (379) +210: Constant(Ljava/lang/String;,"# Goto state #") (382) +211: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (384) +212: LocalLoad(I,2) (387) +213: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (388) +214: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (391) +215: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (394) +216: Goto(37) (397) +217: LocalLoad(I,2) (400) +218: Constant(I,0) (401) +219: ConditionalBranch(I,ne,37) (401) +220: LocalLoad(Ljava/lang/Object;,0) (404) +221: Constant(Ljava/lang/String;,"Syntax error") (405) +222: LocalLoad(Ljava/lang/Object;,3) (407) +223: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_fatal_error,(Ljava/lang/String;Ljava/lang/Object;)V) (408) +224: Return(V) (411) +225: Return(V) (412) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"parse_lookahead(Z)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(L;,null) (0) + Handles null at 245 +5: LocalStore(Ljava/lang/Object;,3) (1) + Handles null at 245 +6: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 245 +7: Constant(I,0) (3) + Handles null at 245 +8: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,lookahead_pos) (4) + Handles null at 245 +9: LocalLoad(I,1) (7) + Handles null at 245 +10: Constant(I,0) (8) + Handles null at 245 +11: ConditionalBranch(I,eq,41) (8) + Handles null at 245 +12: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 245 +13: Constant(Ljava/lang/String;,"# Reparsing saved input with actions") (12) + Handles null at 245 +14: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (14) + Handles null at 245 +15: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 245 +16: New(Ljava/lang/StringBuilder;,0) (18) + Handles null at 245 +17: Dup(1,0) (21) + Handles null at 245 +18: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (22) + Handles null at 245 +19: Constant(Ljava/lang/String;,"# Current Symbol is #") (25) + Handles null at 245 +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (27) + Handles null at 245 +21: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 245 +22: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (31) + Handles null at 245 +23: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (34) + Handles null at 245 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (37) + Handles null at 245 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (40) + Handles null at 245 +26: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (43) + Handles null at 245 +27: LocalLoad(Ljava/lang/Object;,0) (46) + Handles null at 245 +28: New(Ljava/lang/StringBuilder;,0) (47) + Handles null at 245 +29: Dup(1,0) (50) + Handles null at 245 +30: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (51) + Handles null at 245 +31: Constant(Ljava/lang/String;,"# Current state is #") (54) + Handles null at 245 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (56) + Handles null at 245 +33: LocalLoad(Ljava/lang/Object;,0) (59) + Handles null at 245 +34: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (60) + Handles null at 245 +35: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (63) + Handles null at 245 +36: CheckCast(Ljava_cup/runtime/Symbol;) (66) + Handles null at 245 +37: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (69) + Handles null at 245 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (72) + Handles null at 245 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (75) + Handles null at 245 +40: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (78) + Handles null at 245 +41: LocalLoad(Ljava/lang/Object;,0) (81) + Handles null at 245 +42: Get(Z,NONSTATIC,Ljava_cup/runtime/lr_parser;,_done_parsing) (82) + Handles null at 245 +43: Constant(I,0) (85) + Handles null at 245 +44: ConditionalBranch(I,ne,239) (85) + Handles null at 245 +45: LocalLoad(Ljava/lang/Object;,0) (88) + Handles null at 245 +46: LocalLoad(Ljava/lang/Object;,0) (89) + Handles null at 245 +47: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (90) + Handles null at 245 +48: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (93) + Handles null at 245 +49: CheckCast(Ljava_cup/runtime/Symbol;) (96) + Handles null at 245 +50: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (99) + Handles null at 245 +51: LocalLoad(Ljava/lang/Object;,0) (102) + Handles null at 245 +52: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (103) + Handles null at 245 +53: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (106) + Handles null at 245 +54: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_action,(II)S) (109) + Handles null at 245 +55: LocalStore(I,2) (112) + Handles null at 245 +56: LocalLoad(I,2) (113) + Handles null at 245 +57: Constant(I,0) (114) + Handles null at 245 +58: ConditionalBranch(I,le,120) (114) + Handles null at 245 +59: LocalLoad(Ljava/lang/Object;,0) (117) + Handles null at 245 +60: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (118) + Handles null at 245 +61: LocalLoad(I,2) (121) + Handles null at 245 +62: Constant(I,1) (122) + Handles null at 245 +63: BinaryOp(I,sub) (123) + Handles null at 245 +64: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (124) + Handles null at 245 +65: LocalLoad(Ljava/lang/Object;,0) (127) + Handles null at 245 +66: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (128) + Handles null at 245 +67: Constant(I,1) (131) + Handles null at 245 +68: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (132) + Handles null at 245 +69: LocalLoad(I,1) (135) + Handles null at 245 +70: Constant(I,0) (136) + Handles null at 245 +71: ConditionalBranch(I,eq,76) (136) + Handles null at 245 +72: LocalLoad(Ljava/lang/Object;,0) (139) + Handles null at 245 +73: LocalLoad(Ljava/lang/Object;,0) (140) + Handles null at 245 +74: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (141) + Handles null at 245 +75: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_shift,(Ljava_cup/runtime/Symbol;)V) (144) + Handles null at 245 +76: LocalLoad(Ljava/lang/Object;,0) (147) + Handles null at 245 +77: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (148) + Handles null at 245 +78: LocalLoad(Ljava/lang/Object;,0) (151) + Handles null at 245 +79: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (152) + Handles null at 245 +80: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (155) + Handles null at 245 +81: Pop(1) (158) + Handles null at 245 +82: LocalLoad(Ljava/lang/Object;,0) (159) + Handles null at 245 +83: Dup(1,0) (160) + Handles null at 245 +84: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (161) + Handles null at 245 +85: Constant(I,1) (164) + Handles null at 245 +86: BinaryOp(I,add) (165) + Handles null at 245 +87: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (166) + Handles null at 245 +88: LocalLoad(Ljava/lang/Object;,0) (169) + Handles null at 245 +89: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,advance_lookahead,()Z) (170) + Handles null at 245 +90: Constant(I,0) (173) + Handles null at 245 +91: ConditionalBranch(I,ne,104) (173) + Handles null at 245 +92: LocalLoad(I,1) (176) + Handles null at 245 +93: Constant(I,0) (177) + Handles null at 245 +94: ConditionalBranch(I,eq,98) (177) + Handles null at 245 +95: LocalLoad(Ljava/lang/Object;,0) (180) + Handles null at 245 +96: Constant(Ljava/lang/String;,"# Completed reparse") (181) + Handles null at 245 +97: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (183) + Handles null at 245 +98: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (186) + Handles null at 245 +99: Constant(Ljava/lang/String;,"parse_lookahead(Z)V") (186) + Handles null at 245 +100: LocalLoad(Ljava/lang/Object;,0) (186) + Handles null at 245 +101: Constant(I,0) (186) + Handles null at 245 +102: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (186) + Handles null at 245 +103: Return(V) (186) + Handles null at 245 +104: LocalLoad(I,1) (187) + Handles null at 245 +105: Constant(I,0) (188) + Handles null at 245 +106: ConditionalBranch(I,eq,41) (188) + Handles null at 245 +107: LocalLoad(Ljava/lang/Object;,0) (191) + Handles null at 245 +108: New(Ljava/lang/StringBuilder;,0) (192) + Handles null at 245 +109: Dup(1,0) (195) + Handles null at 245 +110: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (196) + Handles null at 245 +111: Constant(Ljava/lang/String;,"# Current Symbol is #") (199) + Handles null at 245 +112: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (201) + Handles null at 245 +113: LocalLoad(Ljava/lang/Object;,0) (204) + Handles null at 245 +114: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,cur_err_token,()Ljava_cup/runtime/Symbol;) (205) + Handles null at 245 +115: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,sym) (208) + Handles null at 245 +116: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (211) + Handles null at 245 +117: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (214) + Handles null at 245 +118: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (217) + Handles null at 245 +119: Goto(41) (220) + Handles null at 245 +120: LocalLoad(I,2) (223) + Handles null at 245 +121: Constant(I,0) (224) + Handles null at 245 +122: ConditionalBranch(I,ge,226) (224) + Handles null at 245 +123: LocalLoad(Ljava/lang/Object;,0) (227) + Handles null at 245 +124: LocalLoad(I,2) (228) + Handles null at 245 +125: UnaryOp(I,neg) (229) + Handles null at 245 +126: Constant(I,1) (230) + Handles null at 245 +127: BinaryOp(I,sub) (231) + Handles null at 245 +128: LocalLoad(Ljava/lang/Object;,0) (232) + Handles null at 245 +129: LocalLoad(Ljava/lang/Object;,0) (233) + Handles null at 245 +130: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (234) + Handles null at 245 +131: LocalLoad(Ljava/lang/Object;,0) (237) + Handles null at 245 +132: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (238) + Handles null at 245 +133: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,do_action,(ILjava_cup/runtime/lr_parser;Ljava/util/Stack;I)Ljava_cup/runtime/Symbol;) (241) + Handles null at 245 +134: LocalStore(Ljava/lang/Object;,3) (244) + Handles null at 245 +135: LocalLoad(Ljava/lang/Object;,0) (245) + Handles null at 245 +136: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (246) + Handles null at 245 +137: LocalLoad(I,2) (249) + Handles null at 245 +138: UnaryOp(I,neg) (250) + Handles null at 245 +139: Constant(I,1) (251) + Handles null at 245 +140: BinaryOp(I,sub) (252) + Handles null at 245 +141: ArrayLoad(Ljava/lang/Object;) (253) + Handles null at 245 +142: Constant(I,0) (254) + Handles null at 245 +143: ArrayLoad(S) (255) + Handles null at 245 +144: LocalStore(I,5) (256) + Handles null at 245 +145: LocalLoad(Ljava/lang/Object;,0) (258) + Handles null at 245 +146: Get([[S,NONSTATIC,Ljava_cup/runtime/lr_parser;,production_tab) (259) + Handles null at 245 +147: LocalLoad(I,2) (262) + Handles null at 245 +148: UnaryOp(I,neg) (263) + Handles null at 245 +149: Constant(I,1) (264) + Handles null at 245 +150: BinaryOp(I,sub) (265) + Handles null at 245 +151: ArrayLoad(Ljava/lang/Object;) (266) + Handles null at 245 +152: Constant(I,1) (267) + Handles null at 245 +153: ArrayLoad(S) (268) + Handles null at 245 +154: LocalStore(I,4) (269) + Handles null at 245 +155: LocalLoad(I,1) (271) + Handles null at 245 +156: Constant(I,0) (272) + Handles null at 245 +157: ConditionalBranch(I,eq,166) (272) + Handles null at 245 +158: LocalLoad(Ljava/lang/Object;,0) (275) + Handles null at 245 +159: LocalLoad(I,2) (276) + Handles null at 245 +160: UnaryOp(I,neg) (277) + Handles null at 245 +161: Constant(I,1) (278) + Handles null at 245 +162: BinaryOp(I,sub) (279) + Handles null at 245 +163: LocalLoad(I,5) (280) + Handles null at 245 +164: LocalLoad(I,4) (282) + Handles null at 245 +165: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_reduce,(III)V) (284) + Handles null at 245 +166: Constant(I,0) (287) + Handles null at 245 +167: LocalStore(I,6) (288) + Handles null at 245 +168: LocalLoad(I,6) (290) + Handles null at 245 +169: LocalLoad(I,4) (292) + Handles null at 245 +170: ConditionalBranch(I,ge,186) (294) + Handles null at 245 +171: LocalLoad(Ljava/lang/Object;,0) (297) + Handles null at 245 +172: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (298) + Handles null at 245 +173: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (301) + Handles null at 245 +174: Pop(1) (304) + Handles null at 245 +175: LocalLoad(Ljava/lang/Object;,0) (305) + Handles null at 245 +176: Dup(1,0) (306) + Handles null at 245 +177: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (307) + Handles null at 245 +178: Constant(I,1) (310) + Handles null at 245 +179: BinaryOp(I,sub) (311) + Handles null at 245 +180: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (312) + Handles null at 245 +181: LocalLoad(I,6) (315) + Handles null at 245 +182: Constant(I,1) (315) + Handles null at 245 +183: BinaryOp(I,add) (315) + Handles null at 245 +184: LocalStore(I,6) (315) + Handles null at 245 +185: Goto(168) (318) + Handles null at 245 +186: LocalLoad(Ljava/lang/Object;,0) (321) + Handles null at 245 +187: LocalLoad(Ljava/lang/Object;,0) (322) + Handles null at 245 +188: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (323) + Handles null at 245 +189: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (326) + Handles null at 245 +190: CheckCast(Ljava_cup/runtime/Symbol;) (329) + Handles null at 245 +191: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (332) + Handles null at 245 +192: LocalLoad(I,5) (335) + Handles null at 245 +193: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,get_reduce,(II)S) (337) + Handles null at 245 +194: LocalStore(I,2) (340) + Handles null at 245 +195: LocalLoad(Ljava/lang/Object;,3) (341) + Handles null at 245 +196: LocalLoad(I,2) (342) + Handles null at 245 +197: Put(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (343) + Handles null at 245 +198: LocalLoad(Ljava/lang/Object;,3) (346) + Handles null at 245 +199: Constant(I,1) (347) + Handles null at 245 +200: Put(Z,NONSTATIC,Ljava_cup/runtime/Symbol;,used_by_parser) (348) + Handles null at 245 +201: LocalLoad(Ljava/lang/Object;,0) (351) + Handles null at 245 +202: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/lr_parser;,stack) (352) + Handles null at 245 +203: LocalLoad(Ljava/lang/Object;,3) (355) + Handles null at 245 +204: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (356) + Handles null at 245 +205: Pop(1) (359) + Handles null at 245 +206: LocalLoad(Ljava/lang/Object;,0) (360) + Handles null at 245 +207: Dup(1,0) (361) + Handles null at 245 +208: Get(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (362) + Handles null at 245 +209: Constant(I,1) (365) + Handles null at 245 +210: BinaryOp(I,add) (366) + Handles null at 245 +211: Put(I,NONSTATIC,Ljava_cup/runtime/lr_parser;,tos) (367) + Handles null at 245 +212: LocalLoad(I,1) (370) + Handles null at 245 +213: Constant(I,0) (371) + Handles null at 245 +214: ConditionalBranch(I,eq,41) (371) + Handles null at 245 +215: LocalLoad(Ljava/lang/Object;,0) (374) + Handles null at 245 +216: New(Ljava/lang/StringBuilder;,0) (375) + Handles null at 245 +217: Dup(1,0) (378) + Handles null at 245 +218: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (379) + Handles null at 245 +219: Constant(Ljava/lang/String;,"# Goto state #") (382) + Handles null at 245 +220: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (384) + Handles null at 245 +221: LocalLoad(I,2) (387) + Handles null at 245 +222: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (388) + Handles null at 245 +223: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (391) + Handles null at 245 +224: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,debug_message,(Ljava/lang/String;)V) (394) + Handles null at 245 +225: Goto(41) (397) + Handles null at 245 +226: LocalLoad(I,2) (400) + Handles null at 245 +227: Constant(I,0) (401) + Handles null at 245 +228: ConditionalBranch(I,ne,41) (401) + Handles null at 245 +229: LocalLoad(Ljava/lang/Object;,0) (404) + Handles null at 245 +230: Constant(Ljava/lang/String;,"Syntax error") (405) + Handles null at 245 +231: LocalLoad(Ljava/lang/Object;,3) (407) + Handles null at 245 +232: Invoke(VIRTUAL,Ljava_cup/runtime/lr_parser;,report_fatal_error,(Ljava/lang/String;Ljava/lang/Object;)V) (408) + Handles null at 245 +233: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (411) + Handles null at 245 +234: Constant(Ljava/lang/String;,"parse_lookahead(Z)V") (411) + Handles null at 245 +235: LocalLoad(Ljava/lang/Object;,0) (411) + Handles null at 245 +236: Constant(I,0) (411) + Handles null at 245 +237: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (411) + Handles null at 245 +238: Return(V) (411) + Handles null at 245 +239: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (412) + Handles null at 245 +240: Constant(Ljava/lang/String;,"parse_lookahead(Z)V") (412) + Handles null at 245 +241: LocalLoad(Ljava/lang/Object;,0) (412) + Handles null at 245 +242: Constant(I,0) (412) + Handles null at 245 +243: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (412) + Handles null at 245 +244: Return(V) (412) + Handles null at 245 +245: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +246: Constant(Ljava/lang/String;,"parse_lookahead(Z)V") (0) +247: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +248: Constant(I,1) (0) +249: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +250: Throw() (0) +Instrumenting unpackFromStrings ([Ljava/lang/String;)[[S: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuffer;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(I,0) (5) +4: ArrayLoad(Ljava/lang/Object;) (6) +5: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,(Ljava/lang/String;)V) (7) +6: LocalStore(Ljava/lang/Object;,1) (10) +7: Constant(I,1) (11) +8: LocalStore(I,2) (12) +9: LocalLoad(I,2) (13) +10: LocalLoad(Ljava/lang/Object;,0) (14) +11: ArrayLength() (15) +12: ConditionalBranch(I,ge,24) (16) +13: LocalLoad(Ljava/lang/Object;,1) (19) +14: LocalLoad(Ljava/lang/Object;,0) (20) +15: LocalLoad(I,2) (21) +16: ArrayLoad(Ljava/lang/Object;) (22) +17: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (23) +18: Pop(1) (26) +19: LocalLoad(I,2) (27) +20: Constant(I,1) (27) +21: BinaryOp(I,add) (27) +22: LocalStore(I,2) (27) +23: Goto(9) (30) +24: Constant(I,0) (33) +25: LocalStore(I,2) (34) +26: LocalLoad(Ljava/lang/Object;,1) (35) +27: LocalLoad(I,2) (36) +28: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (37) +29: Constant(I,16) (40) +30: Shift(I,SHL) (42) +31: LocalLoad(Ljava/lang/Object;,1) (43) +32: LocalLoad(I,2) (44) +33: Constant(I,1) (45) +34: BinaryOp(I,add) (46) +35: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (47) +36: BinaryOp(I,or) (50) +37: LocalStore(I,3) (51) +38: LocalLoad(I,2) (52) +39: Constant(I,2) (52) +40: BinaryOp(I,add) (52) +41: LocalStore(I,2) (52) +42: LocalLoad(I,3) (55) +43: New([[S,1) (56) +44: LocalStore(Ljava/lang/Object;,4) (59) +45: Constant(I,0) (61) +46: LocalStore(I,5) (62) +47: LocalLoad(I,5) (64) +48: LocalLoad(I,3) (66) +49: ConditionalBranch(I,ge,101) (67) +50: LocalLoad(Ljava/lang/Object;,1) (70) +51: LocalLoad(I,2) (71) +52: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (72) +53: Constant(I,16) (75) +54: Shift(I,SHL) (77) +55: LocalLoad(Ljava/lang/Object;,1) (78) +56: LocalLoad(I,2) (79) +57: Constant(I,1) (80) +58: BinaryOp(I,add) (81) +59: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (82) +60: BinaryOp(I,or) (85) +61: LocalStore(I,6) (86) +62: LocalLoad(I,2) (88) +63: Constant(I,2) (88) +64: BinaryOp(I,add) (88) +65: LocalStore(I,2) (88) +66: LocalLoad(Ljava/lang/Object;,4) (91) +67: LocalLoad(I,5) (93) +68: LocalLoad(I,6) (95) +69: New([S,1) (97) +70: ArrayStore(Ljava/lang/Object;) (99) +71: Constant(I,0) (100) +72: LocalStore(I,7) (101) +73: LocalLoad(I,7) (103) +74: LocalLoad(I,6) (105) +75: ConditionalBranch(I,ge,96) (107) +76: LocalLoad(Ljava/lang/Object;,4) (110) +77: LocalLoad(I,5) (112) +78: ArrayLoad(Ljava/lang/Object;) (114) +79: LocalLoad(I,7) (115) +80: LocalLoad(Ljava/lang/Object;,1) (117) +81: LocalLoad(I,2) (118) +82: LocalLoad(I,2) (119) +83: Constant(I,1) (119) +84: BinaryOp(I,add) (119) +85: LocalStore(I,2) (119) +86: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (122) +87: Constant(I,2) (125) +88: BinaryOp(I,sub) (126) +89: Conversion(I,S) (127) +90: ArrayStore(S) (128) +91: LocalLoad(I,7) (129) +92: Constant(I,1) (129) +93: BinaryOp(I,add) (129) +94: LocalStore(I,7) (129) +95: Goto(73) (132) +96: LocalLoad(I,5) (135) +97: Constant(I,1) (135) +98: BinaryOp(I,add) (135) +99: LocalStore(I,5) (135) +100: Goto(47) (138) +101: LocalLoad(Ljava/lang/Object;,4) (141) +102: Return(Ljava/lang/Object;) (143) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +1: Constant(Ljava/lang/String;,"unpackFromStrings([Ljava/lang/String;)[[S") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuffer;,0) (0) + Handles null at 112 +5: Dup(1,0) (3) + Handles null at 112 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 112 +7: Constant(I,0) (5) + Handles null at 112 +8: ArrayLoad(Ljava/lang/Object;) (6) + Handles null at 112 +9: Invoke(SPECIAL,Ljava/lang/StringBuffer;,,(Ljava/lang/String;)V) (7) + Handles null at 112 +10: LocalStore(Ljava/lang/Object;,1) (10) + Handles null at 112 +11: Constant(I,1) (11) + Handles null at 112 +12: LocalStore(I,2) (12) + Handles null at 112 +13: LocalLoad(I,2) (13) + Handles null at 112 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 112 +15: ArrayLength() (15) + Handles null at 112 +16: ConditionalBranch(I,ge,28) (16) + Handles null at 112 +17: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 112 +18: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 112 +19: LocalLoad(I,2) (21) + Handles null at 112 +20: ArrayLoad(Ljava/lang/Object;) (22) + Handles null at 112 +21: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,append,(Ljava/lang/String;)Ljava/lang/StringBuffer;) (23) + Handles null at 112 +22: Pop(1) (26) + Handles null at 112 +23: LocalLoad(I,2) (27) + Handles null at 112 +24: Constant(I,1) (27) + Handles null at 112 +25: BinaryOp(I,add) (27) + Handles null at 112 +26: LocalStore(I,2) (27) + Handles null at 112 +27: Goto(13) (30) + Handles null at 112 +28: Constant(I,0) (33) + Handles null at 112 +29: LocalStore(I,2) (34) + Handles null at 112 +30: LocalLoad(Ljava/lang/Object;,1) (35) + Handles null at 112 +31: LocalLoad(I,2) (36) + Handles null at 112 +32: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (37) + Handles null at 112 +33: Constant(I,16) (40) + Handles null at 112 +34: Shift(I,SHL) (42) + Handles null at 112 +35: LocalLoad(Ljava/lang/Object;,1) (43) + Handles null at 112 +36: LocalLoad(I,2) (44) + Handles null at 112 +37: Constant(I,1) (45) + Handles null at 112 +38: BinaryOp(I,add) (46) + Handles null at 112 +39: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (47) + Handles null at 112 +40: BinaryOp(I,or) (50) + Handles null at 112 +41: LocalStore(I,3) (51) + Handles null at 112 +42: LocalLoad(I,2) (52) + Handles null at 112 +43: Constant(I,2) (52) + Handles null at 112 +44: BinaryOp(I,add) (52) + Handles null at 112 +45: LocalStore(I,2) (52) + Handles null at 112 +46: LocalLoad(I,3) (55) + Handles null at 112 +47: New([[S,1) (56) + Handles null at 112 +48: LocalStore(Ljava/lang/Object;,4) (59) + Handles null at 112 +49: Constant(I,0) (61) + Handles null at 112 +50: LocalStore(I,5) (62) + Handles null at 112 +51: LocalLoad(I,5) (64) + Handles null at 112 +52: LocalLoad(I,3) (66) + Handles null at 112 +53: ConditionalBranch(I,ge,105) (67) + Handles null at 112 +54: LocalLoad(Ljava/lang/Object;,1) (70) + Handles null at 112 +55: LocalLoad(I,2) (71) + Handles null at 112 +56: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (72) + Handles null at 112 +57: Constant(I,16) (75) + Handles null at 112 +58: Shift(I,SHL) (77) + Handles null at 112 +59: LocalLoad(Ljava/lang/Object;,1) (78) + Handles null at 112 +60: LocalLoad(I,2) (79) + Handles null at 112 +61: Constant(I,1) (80) + Handles null at 112 +62: BinaryOp(I,add) (81) + Handles null at 112 +63: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (82) + Handles null at 112 +64: BinaryOp(I,or) (85) + Handles null at 112 +65: LocalStore(I,6) (86) + Handles null at 112 +66: LocalLoad(I,2) (88) + Handles null at 112 +67: Constant(I,2) (88) + Handles null at 112 +68: BinaryOp(I,add) (88) + Handles null at 112 +69: LocalStore(I,2) (88) + Handles null at 112 +70: LocalLoad(Ljava/lang/Object;,4) (91) + Handles null at 112 +71: LocalLoad(I,5) (93) + Handles null at 112 +72: LocalLoad(I,6) (95) + Handles null at 112 +73: New([S,1) (97) + Handles null at 112 +74: ArrayStore(Ljava/lang/Object;) (99) + Handles null at 112 +75: Constant(I,0) (100) + Handles null at 112 +76: LocalStore(I,7) (101) + Handles null at 112 +77: LocalLoad(I,7) (103) + Handles null at 112 +78: LocalLoad(I,6) (105) + Handles null at 112 +79: ConditionalBranch(I,ge,100) (107) + Handles null at 112 +80: LocalLoad(Ljava/lang/Object;,4) (110) + Handles null at 112 +81: LocalLoad(I,5) (112) + Handles null at 112 +82: ArrayLoad(Ljava/lang/Object;) (114) + Handles null at 112 +83: LocalLoad(I,7) (115) + Handles null at 112 +84: LocalLoad(Ljava/lang/Object;,1) (117) + Handles null at 112 +85: LocalLoad(I,2) (118) + Handles null at 112 +86: LocalLoad(I,2) (119) + Handles null at 112 +87: Constant(I,1) (119) + Handles null at 112 +88: BinaryOp(I,add) (119) + Handles null at 112 +89: LocalStore(I,2) (119) + Handles null at 112 +90: Invoke(VIRTUAL,Ljava/lang/StringBuffer;,charAt,(I)C) (122) + Handles null at 112 +91: Constant(I,2) (125) + Handles null at 112 +92: BinaryOp(I,sub) (126) + Handles null at 112 +93: Conversion(I,S) (127) + Handles null at 112 +94: ArrayStore(S) (128) + Handles null at 112 +95: LocalLoad(I,7) (129) + Handles null at 112 +96: Constant(I,1) (129) + Handles null at 112 +97: BinaryOp(I,add) (129) + Handles null at 112 +98: LocalStore(I,7) (129) + Handles null at 112 +99: Goto(77) (132) + Handles null at 112 +100: LocalLoad(I,5) (135) + Handles null at 112 +101: Constant(I,1) (135) + Handles null at 112 +102: BinaryOp(I,add) (135) + Handles null at 112 +103: LocalStore(I,5) (135) + Handles null at 112 +104: Goto(51) (138) + Handles null at 112 +105: LocalLoad(Ljava/lang/Object;,4) (141) + Handles null at 112 +106: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (143) + Handles null at 112 +107: Constant(Ljava/lang/String;,"unpackFromStrings([Ljava/lang/String;)[[S") (143) + Handles null at 112 +108: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (143) + Handles null at 112 +109: Constant(I,0) (143) + Handles null at 112 +110: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (143) + Handles null at 112 +111: Return(Ljava/lang/Object;) (143) + Handles null at 112 +112: Constant(Ljava/lang/String;,"java_cup/runtime/lr_parser") (0) +113: Constant(Ljava/lang/String;,"unpackFromStrings([Ljava/lang/String;)[[S") (0) +114: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +115: Constant(I,1) (0) +116: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +117: Throw() (0) +Class: java_cup/runtime/virtual_parse_stack +Instrumenting (Ljava/util/Stack;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: Constant(L;,null) (5) +4: ConditionalBranch(Ljava/lang/Object;,ne,10) (5) +5: New(Ljava/lang/Exception;,0) (8) +6: Dup(1,0) (11) +7: Constant(Ljava/lang/String;,"Internal parser error: attempt to create null virtual stack") (12) +8: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (14) +9: Throw() (17) +10: LocalLoad(Ljava/lang/Object;,0) (18) +11: LocalLoad(Ljava/lang/Object;,1) (19) +12: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_stack) (20) +13: LocalLoad(Ljava/lang/Object;,0) (23) +14: New(Ljava/util/Stack;,0) (24) +15: Dup(1,0) (27) +16: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (28) +17: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (31) +18: LocalLoad(Ljava/lang/Object;,0) (34) +19: Constant(I,0) (35) +20: Put(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (36) +21: LocalLoad(Ljava/lang/Object;,0) (39) +22: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,get_from_real,()V) (40) +23: Return(V) (43) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +1: Constant(Ljava/lang/String;,"(Ljava/util/Stack;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 33 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 33 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 33 +7: Constant(L;,null) (5) + Handles null at 33 +8: ConditionalBranch(Ljava/lang/Object;,ne,14) (5) + Handles null at 33 +9: New(Ljava/lang/Exception;,0) (8) + Handles null at 33 +10: Dup(1,0) (11) + Handles null at 33 +11: Constant(Ljava/lang/String;,"Internal parser error: attempt to create null virtual stack") (12) + Handles null at 33 +12: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (14) + Handles null at 33 +13: Throw() (17) + Handles null at 33 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 33 +15: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 33 +16: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_stack) (20) + Handles null at 33 +17: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 33 +18: New(Ljava/util/Stack;,0) (24) + Handles null at 33 +19: Dup(1,0) (27) + Handles null at 33 +20: Invoke(SPECIAL,Ljava/util/Stack;,,()V) (28) + Handles null at 33 +21: Put(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (31) + Handles null at 33 +22: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 33 +23: Constant(I,0) (35) + Handles null at 33 +24: Put(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (36) + Handles null at 33 +25: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 33 +26: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,get_from_real,()V) (40) + Handles null at 33 +27: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (43) + Handles null at 33 +28: Constant(Ljava/lang/String;,"(Ljava/util/Stack;)V") (43) + Handles null at 33 +29: LocalLoad(Ljava/lang/Object;,0) (43) + Handles null at 33 +30: Constant(I,0) (43) + Handles null at 33 +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (43) + Handles null at 33 +32: Return(V) (43) + Handles null at 33 +33: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +34: Constant(Ljava/lang/String;,"(Ljava/util/Stack;)V") (0) +35: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +36: Constant(I,1) (0) +37: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +38: Throw() (0) +Instrumenting get_from_real ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_stack) (5) +4: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (8) +5: ConditionalBranch(I,lt,7) (11) +6: Return(V) (14) +7: LocalLoad(Ljava/lang/Object;,0) (15) +8: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_stack) (16) +9: LocalLoad(Ljava/lang/Object;,0) (19) +10: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_stack) (20) +11: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (23) +12: Constant(I,1) (26) +13: BinaryOp(I,sub) (27) +14: LocalLoad(Ljava/lang/Object;,0) (28) +15: Get(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (29) +16: BinaryOp(I,sub) (32) +17: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (33) +18: CheckCast(Ljava_cup/runtime/Symbol;) (36) +19: LocalStore(Ljava/lang/Object;,1) (39) +20: LocalLoad(Ljava/lang/Object;,0) (40) +21: Dup(1,0) (41) +22: Get(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (42) +23: Constant(I,1) (45) +24: BinaryOp(I,add) (46) +25: Put(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (47) +26: LocalLoad(Ljava/lang/Object;,0) (50) +27: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (51) +28: New(Ljava/lang/Integer;,0) (54) +29: Dup(1,0) (57) +30: LocalLoad(Ljava/lang/Object;,1) (58) +31: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (59) +32: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (62) +33: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (65) +34: Pop(1) (68) +35: Return(V) (69) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +1: Constant(Ljava/lang/String;,"get_from_real()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 50 +5: Get(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (1) + Handles null at 50 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 50 +7: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_stack) (5) + Handles null at 50 +8: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (8) + Handles null at 50 +9: ConditionalBranch(I,lt,16) (11) + Handles null at 50 +10: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (14) + Handles null at 50 +11: Constant(Ljava/lang/String;,"get_from_real()V") (14) + Handles null at 50 +12: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 50 +13: Constant(I,0) (14) + Handles null at 50 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 50 +15: Return(V) (14) + Handles null at 50 +16: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 50 +17: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_stack) (16) + Handles null at 50 +18: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 50 +19: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_stack) (20) + Handles null at 50 +20: Invoke(VIRTUAL,Ljava/util/Stack;,size,()I) (23) + Handles null at 50 +21: Constant(I,1) (26) + Handles null at 50 +22: BinaryOp(I,sub) (27) + Handles null at 50 +23: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 50 +24: Get(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (29) + Handles null at 50 +25: BinaryOp(I,sub) (32) + Handles null at 50 +26: Invoke(VIRTUAL,Ljava/util/Stack;,elementAt,(I)Ljava/lang/Object;) (33) + Handles null at 50 +27: CheckCast(Ljava_cup/runtime/Symbol;) (36) + Handles null at 50 +28: LocalStore(Ljava/lang/Object;,1) (39) + Handles null at 50 +29: LocalLoad(Ljava/lang/Object;,0) (40) + Handles null at 50 +30: Dup(1,0) (41) + Handles null at 50 +31: Get(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (42) + Handles null at 50 +32: Constant(I,1) (45) + Handles null at 50 +33: BinaryOp(I,add) (46) + Handles null at 50 +34: Put(I,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,real_next) (47) + Handles null at 50 +35: LocalLoad(Ljava/lang/Object;,0) (50) + Handles null at 50 +36: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (51) + Handles null at 50 +37: New(Ljava/lang/Integer;,0) (54) + Handles null at 50 +38: Dup(1,0) (57) + Handles null at 50 +39: LocalLoad(Ljava/lang/Object;,1) (58) + Handles null at 50 +40: Get(I,NONSTATIC,Ljava_cup/runtime/Symbol;,parse_state) (59) + Handles null at 50 +41: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (62) + Handles null at 50 +42: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (65) + Handles null at 50 +43: Pop(1) (68) + Handles null at 50 +44: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (69) + Handles null at 50 +45: Constant(Ljava/lang/String;,"get_from_real()V") (69) + Handles null at 50 +46: LocalLoad(Ljava/lang/Object;,0) (69) + Handles null at 50 +47: Constant(I,0) (69) + Handles null at 50 +48: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (69) + Handles null at 50 +49: Return(V) (69) + Handles null at 50 +50: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +51: Constant(Ljava/lang/String;,"get_from_real()V") (0) +52: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +53: Constant(I,1) (0) +54: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +55: Throw() (0) +Instrumenting empty ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (1) +2: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (4) +3: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +1: Constant(Ljava/lang/String;,"empty()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"empty()Z") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(I) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +14: Constant(Ljava/lang/String;,"empty()Z") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting top ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (1) +2: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (4) +3: Constant(I,0) (7) +4: ConditionalBranch(I,eq,10) (7) +5: New(Ljava/lang/Exception;,0) (10) +6: Dup(1,0) (13) +7: Constant(Ljava/lang/String;,"Internal parser error: top() called on empty virtual stack") (14) +8: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (16) +9: Throw() (19) +10: LocalLoad(Ljava/lang/Object;,0) (20) +11: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (21) +12: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (24) +13: CheckCast(Ljava/lang/Integer;) (27) +14: Invoke(VIRTUAL,Ljava/lang/Integer;,intValue,()I) (30) +15: Return(I) (33) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +1: Constant(Ljava/lang/String;,"top()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 25 +5: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (1) + Handles null at 25 +6: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (4) + Handles null at 25 +7: Constant(I,0) (7) + Handles null at 25 +8: ConditionalBranch(I,eq,14) (7) + Handles null at 25 +9: New(Ljava/lang/Exception;,0) (10) + Handles null at 25 +10: Dup(1,0) (13) + Handles null at 25 +11: Constant(Ljava/lang/String;,"Internal parser error: top() called on empty virtual stack") (14) + Handles null at 25 +12: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (16) + Handles null at 25 +13: Throw() (19) + Handles null at 25 +14: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 25 +15: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (21) + Handles null at 25 +16: Invoke(VIRTUAL,Ljava/util/Stack;,peek,()Ljava/lang/Object;) (24) + Handles null at 25 +17: CheckCast(Ljava/lang/Integer;) (27) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava/lang/Integer;,intValue,()I) (30) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (33) + Handles null at 25 +20: Constant(Ljava/lang/String;,"top()I") (33) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 25 +22: Constant(I,0) (33) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (33) + Handles null at 25 +24: Return(I) (33) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +26: Constant(Ljava/lang/String;,"top()I") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting pop ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (1) +2: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (4) +3: Constant(I,0) (7) +4: ConditionalBranch(I,eq,10) (7) +5: New(Ljava/lang/Exception;,0) (10) +6: Dup(1,0) (13) +7: Constant(Ljava/lang/String;,"Internal parser error: pop from empty virtual stack") (14) +8: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (16) +9: Throw() (19) +10: LocalLoad(Ljava/lang/Object;,0) (20) +11: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (21) +12: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (24) +13: Pop(1) (27) +14: LocalLoad(Ljava/lang/Object;,0) (28) +15: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (29) +16: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (32) +17: Constant(I,0) (35) +18: ConditionalBranch(I,eq,21) (35) +19: LocalLoad(Ljava/lang/Object;,0) (38) +20: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,get_from_real,()V) (39) +21: Return(V) (42) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +1: Constant(Ljava/lang/String;,"pop()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 31 +5: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (1) + Handles null at 31 +6: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (4) + Handles null at 31 +7: Constant(I,0) (7) + Handles null at 31 +8: ConditionalBranch(I,eq,14) (7) + Handles null at 31 +9: New(Ljava/lang/Exception;,0) (10) + Handles null at 31 +10: Dup(1,0) (13) + Handles null at 31 +11: Constant(Ljava/lang/String;,"Internal parser error: pop from empty virtual stack") (14) + Handles null at 31 +12: Invoke(SPECIAL,Ljava/lang/Exception;,,(Ljava/lang/String;)V) (16) + Handles null at 31 +13: Throw() (19) + Handles null at 31 +14: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 31 +15: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (21) + Handles null at 31 +16: Invoke(VIRTUAL,Ljava/util/Stack;,pop,()Ljava/lang/Object;) (24) + Handles null at 31 +17: Pop(1) (27) + Handles null at 31 +18: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 31 +19: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (29) + Handles null at 31 +20: Invoke(VIRTUAL,Ljava/util/Stack;,empty,()Z) (32) + Handles null at 31 +21: Constant(I,0) (35) + Handles null at 31 +22: ConditionalBranch(I,eq,25) (35) + Handles null at 31 +23: LocalLoad(Ljava/lang/Object;,0) (38) + Handles null at 31 +24: Invoke(VIRTUAL,Ljava_cup/runtime/virtual_parse_stack;,get_from_real,()V) (39) + Handles null at 31 +25: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (42) + Handles null at 31 +26: Constant(Ljava/lang/String;,"pop()V") (42) + Handles null at 31 +27: LocalLoad(Ljava/lang/Object;,0) (42) + Handles null at 31 +28: Constant(I,0) (42) + Handles null at 31 +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (42) + Handles null at 31 +30: Return(V) (42) + Handles null at 31 +31: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +32: Constant(Ljava/lang/String;,"pop()V") (0) +33: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +34: Constant(I,1) (0) +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +36: Throw() (0) +Instrumenting push (I)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (1) +2: New(Ljava/lang/Integer;,0) (4) +3: Dup(1,0) (7) +4: LocalLoad(I,1) (8) +5: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (9) +6: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (12) +7: Pop(1) (15) +8: Return(V) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +1: Constant(Ljava/lang/String;,"push(I)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: Get(Ljava/util/Stack;,NONSTATIC,Ljava_cup/runtime/virtual_parse_stack;,vstack) (1) + Handles null at 18 +6: New(Ljava/lang/Integer;,0) (4) + Handles null at 18 +7: Dup(1,0) (7) + Handles null at 18 +8: LocalLoad(I,1) (8) + Handles null at 18 +9: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (9) + Handles null at 18 +10: Invoke(VIRTUAL,Ljava/util/Stack;,push,(Ljava/lang/Object;)Ljava/lang/Object;) (12) + Handles null at 18 +11: Pop(1) (15) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (16) + Handles null at 18 +13: Constant(Ljava/lang/String;,"push(I)V") (16) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 18 +15: Constant(I,0) (16) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 18 +17: Return(V) (16) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/runtime/virtual_parse_stack") (0) +19: Constant(Ljava/lang/String;,"push(I)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Class: java_cup/shift_action +Instrumenting (Ljava_cup/lalr_state;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/parse_action;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: Constant(L;,null) (5) +4: ConditionalBranch(Ljava/lang/Object;,ne,10) (5) +5: New(Ljava_cup/internal_error;,0) (8) +6: Dup(1,0) (11) +7: Constant(Ljava/lang/String;,"Attempt to create a shift_action to a null state") (12) +8: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (14) +9: Throw() (17) +10: LocalLoad(Ljava/lang/Object;,0) (18) +11: LocalLoad(Ljava/lang/Object;,1) (19) +12: Put(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/shift_action;,_shift_to) (20) +13: Return(V) (23) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_state;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 23 +5: Invoke(SPECIAL,Ljava_cup/parse_action;,,()V) (1) + Handles null at 23 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 23 +7: Constant(L;,null) (5) + Handles null at 23 +8: ConditionalBranch(Ljava/lang/Object;,ne,14) (5) + Handles null at 23 +9: New(Ljava_cup/internal_error;,0) (8) + Handles null at 23 +10: Dup(1,0) (11) + Handles null at 23 +11: Constant(Ljava/lang/String;,"Attempt to create a shift_action to a null state") (12) + Handles null at 23 +12: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (14) + Handles null at 23 +13: Throw() (17) + Handles null at 23 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 23 +15: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 23 +16: Put(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/shift_action;,_shift_to) (20) + Handles null at 23 +17: Constant(Ljava/lang/String;,"java_cup/shift_action") (23) + Handles null at 23 +18: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_state;)V") (23) + Handles null at 23 +19: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 23 +20: Constant(I,0) (23) + Handles null at 23 +21: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (23) + Handles null at 23 +22: Return(V) (23) + Handles null at 23 +23: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +24: Constant(Ljava/lang/String;,"(Ljava_cup/lalr_state;)V") (0) +25: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +26: Constant(I,1) (0) +27: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +28: Throw() (0) +Instrumenting shift_to ()Ljava_cup/lalr_state;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/shift_action;,_shift_to) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +1: Constant(Ljava/lang/String;,"shift_to()Ljava_cup/lalr_state;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/lalr_state;,NONSTATIC,Ljava_cup/shift_action;,_shift_to) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/shift_action") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"shift_to()Ljava_cup/lalr_state;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +13: Constant(Ljava/lang/String;,"shift_to()Ljava_cup/lalr_state;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting kind ()I: +Initial ShrikeBT code: +0: Constant(I,1) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +1: Constant(Ljava/lang/String;,"kind()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,1) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/shift_action") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"kind()I") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +12: Constant(Ljava/lang/String;,"kind()I") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting equals (Ljava_cup/shift_action;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,10) (1) +3: LocalLoad(Ljava/lang/Object;,1) (4) +4: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (5) +5: LocalLoad(Ljava/lang/Object;,0) (8) +6: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (9) +7: ConditionalBranch(Ljava/lang/Object;,ne,10) (12) +8: Constant(I,1) (15) +9: Goto(11) (16) +10: Constant(I,0) (19) +11: Return(I) (20) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/shift_action;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 21 +5: Constant(L;,null) (1) + Handles null at 21 +6: ConditionalBranch(Ljava/lang/Object;,eq,14) (1) + Handles null at 21 +7: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 21 +8: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (5) + Handles null at 21 +9: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 21 +10: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (9) + Handles null at 21 +11: ConditionalBranch(Ljava/lang/Object;,ne,14) (12) + Handles null at 21 +12: Constant(I,1) (15) + Handles null at 21 +13: Goto(15) (16) + Handles null at 21 +14: Constant(I,0) (19) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/shift_action") (20) + Handles null at 21 +16: Constant(Ljava/lang/String;,"equals(Ljava_cup/shift_action;)Z") (20) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (20) + Handles null at 21 +18: Constant(I,0) (20) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (20) + Handles null at 21 +20: Return(I) (20) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +22: Constant(Ljava/lang/String;,"equals(Ljava_cup/shift_action;)Z") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/shift_action;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,eq,9) (4) +4: LocalLoad(Ljava/lang/Object;,0) (7) +5: LocalLoad(Ljava/lang/Object;,1) (8) +6: CheckCast(Ljava_cup/shift_action;) (9) +7: Invoke(VIRTUAL,Ljava_cup/shift_action;,equals,(Ljava_cup/shift_action;)Z) (12) +8: Return(I) (15) +9: Constant(I,0) (16) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/shift_action;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,eq,18) (4) + Handles null at 25 +8: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 25 +9: LocalLoad(Ljava/lang/Object;,1) (8) + Handles null at 25 +10: CheckCast(Ljava_cup/shift_action;) (9) + Handles null at 25 +11: Invoke(VIRTUAL,Ljava_cup/shift_action;,equals,(Ljava_cup/shift_action;)Z) (12) + Handles null at 25 +12: Constant(Ljava/lang/String;,"java_cup/shift_action") (15) + Handles null at 25 +13: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (15) + Handles null at 25 +14: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 25 +15: Constant(I,0) (15) + Handles null at 25 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (15) + Handles null at 25 +17: Return(I) (15) + Handles null at 25 +18: Constant(I,0) (16) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/shift_action") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (1) +2: Invoke(VIRTUAL,Ljava_cup/lalr_state;,hashCode,()I) (4) +3: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava_cup/lalr_state;,hashCode,()I) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/shift_action") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"hashCode()I") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(I) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +14: Constant(Ljava/lang/String;,"hashCode()I") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: Constant(Ljava/lang/String;,"SHIFT(to state ") (7) +4: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) +5: LocalLoad(Ljava/lang/Object;,0) (12) +6: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (13) +7: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (16) +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (19) +9: Constant(Ljava/lang/String;,")") (22) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (24) +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (27) +12: Return(Ljava/lang/Object;) (30) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 22 +5: Dup(1,0) (3) + Handles null at 22 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 22 +7: Constant(Ljava/lang/String;,"SHIFT(to state ") (7) + Handles null at 22 +8: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (9) + Handles null at 22 +9: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 22 +10: Invoke(VIRTUAL,Ljava_cup/shift_action;,shift_to,()Ljava_cup/lalr_state;) (13) + Handles null at 22 +11: Invoke(VIRTUAL,Ljava_cup/lalr_state;,index,()I) (16) + Handles null at 22 +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (19) + Handles null at 22 +13: Constant(Ljava/lang/String;,")") (22) + Handles null at 22 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (24) + Handles null at 22 +15: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (27) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/shift_action") (30) + Handles null at 22 +17: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (30) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (30) + Handles null at 22 +19: Constant(I,0) (30) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (30) + Handles null at 22 +21: Return(Ljava/lang/Object;) (30) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/shift_action") (0) +23: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Class: java_cup/sym +Class: java_cup/symbol +Instrumenting (Ljava/lang/String;Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Constant(I,0) (5) +4: Put(I,NONSTATIC,Ljava_cup/symbol;,_use_count) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Constant(L;,null) (10) +7: ConditionalBranch(Ljava/lang/Object;,ne,10) (10) +8: Constant(Ljava/lang/String;,"") (13) +9: LocalStore(Ljava/lang/Object;,1) (15) +10: LocalLoad(Ljava/lang/Object;,2) (16) +11: Constant(L;,null) (17) +12: ConditionalBranch(Ljava/lang/Object;,ne,15) (17) +13: Constant(Ljava/lang/String;,"Object") (20) +14: LocalStore(Ljava/lang/Object;,2) (22) +15: LocalLoad(Ljava/lang/Object;,0) (23) +16: LocalLoad(Ljava/lang/Object;,1) (24) +17: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/symbol;,_name) (25) +18: LocalLoad(Ljava/lang/Object;,0) (28) +19: LocalLoad(Ljava/lang/Object;,2) (29) +20: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/symbol;,_stack_type) (30) +21: Return(V) (33) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 31 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 31 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 31 +7: Constant(I,0) (5) + Handles null at 31 +8: Put(I,NONSTATIC,Ljava_cup/symbol;,_use_count) (6) + Handles null at 31 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 31 +10: Constant(L;,null) (10) + Handles null at 31 +11: ConditionalBranch(Ljava/lang/Object;,ne,14) (10) + Handles null at 31 +12: Constant(Ljava/lang/String;,"") (13) + Handles null at 31 +13: LocalStore(Ljava/lang/Object;,1) (15) + Handles null at 31 +14: LocalLoad(Ljava/lang/Object;,2) (16) + Handles null at 31 +15: Constant(L;,null) (17) + Handles null at 31 +16: ConditionalBranch(Ljava/lang/Object;,ne,19) (17) + Handles null at 31 +17: Constant(Ljava/lang/String;,"Object") (20) + Handles null at 31 +18: LocalStore(Ljava/lang/Object;,2) (22) + Handles null at 31 +19: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 31 +20: LocalLoad(Ljava/lang/Object;,1) (24) + Handles null at 31 +21: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/symbol;,_name) (25) + Handles null at 31 +22: LocalLoad(Ljava/lang/Object;,0) (28) + Handles null at 31 +23: LocalLoad(Ljava/lang/Object;,2) (29) + Handles null at 31 +24: Put(Ljava/lang/String;,NONSTATIC,Ljava_cup/symbol;,_stack_type) (30) + Handles null at 31 +25: Constant(Ljava/lang/String;,"java_cup/symbol") (33) + Handles null at 31 +26: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (33) + Handles null at 31 +27: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 31 +28: Constant(I,0) (33) + Handles null at 31 +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (33) + Handles null at 31 +30: Return(V) (33) + Handles null at 31 +31: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +32: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (0) +33: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +34: Constant(I,1) (0) +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +36: Throw() (0) +Instrumenting (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Constant(L;,null) (2) +3: Invoke(SPECIAL,Ljava_cup/symbol;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) +4: Return(V) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 14 +6: Constant(L;,null) (2) + Handles null at 14 +7: Invoke(SPECIAL,Ljava_cup/symbol;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/symbol") (6) + Handles null at 14 +9: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (6) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 14 +11: Constant(I,0) (6) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 14 +13: Return(V) (6) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +15: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting name ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/symbol;,_name) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +1: Constant(Ljava/lang/String;,"name()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/symbol;,_name) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/symbol") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"name()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +13: Constant(Ljava/lang/String;,"name()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting stack_type ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/symbol;,_stack_type) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +1: Constant(Ljava/lang/String;,"stack_type()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava/lang/String;,NONSTATIC,Ljava_cup/symbol;,_stack_type) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/symbol") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"stack_type()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +13: Constant(Ljava/lang/String;,"stack_type()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting use_count ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/symbol;,_use_count) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +1: Constant(Ljava/lang/String;,"use_count()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/symbol;,_use_count) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/symbol") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"use_count()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +13: Constant(Ljava/lang/String;,"use_count()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting note_use ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Dup(1,0) (1) +2: Get(I,NONSTATIC,Ljava_cup/symbol;,_use_count) (2) +3: Constant(I,1) (5) +4: BinaryOp(I,add) (6) +5: Put(I,NONSTATIC,Ljava_cup/symbol;,_use_count) (7) +6: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +1: Constant(Ljava/lang/String;,"note_use()V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: Dup(1,0) (1) + Handles null at 16 +6: Get(I,NONSTATIC,Ljava_cup/symbol;,_use_count) (2) + Handles null at 16 +7: Constant(I,1) (5) + Handles null at 16 +8: BinaryOp(I,add) (6) + Handles null at 16 +9: Put(I,NONSTATIC,Ljava_cup/symbol;,_use_count) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/symbol") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"note_use()V") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(V) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +17: Constant(Ljava/lang/String;,"note_use()V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting index ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/symbol;,_index) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +1: Constant(Ljava/lang/String;,"index()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/symbol;,_index) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/symbol") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"index()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +13: Constant(Ljava/lang/String;,"index()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/symbol") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/symbol") (0) +13: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Class: java_cup/symbol_part +Instrumenting (Ljava_cup/symbol;Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,2) (1) +2: Invoke(SPECIAL,Ljava_cup/production_part;,,(Ljava/lang/String;)V) (2) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Constant(L;,null) (6) +5: ConditionalBranch(Ljava/lang/Object;,ne,11) (6) +6: New(Ljava_cup/internal_error;,0) (9) +7: Dup(1,0) (12) +8: Constant(Ljava/lang/String;,"Attempt to construct a symbol_part with a null symbol") (13) +9: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (15) +10: Throw() (18) +11: LocalLoad(Ljava/lang/Object;,0) (19) +12: LocalLoad(Ljava/lang/Object;,1) (20) +13: Put(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/symbol_part;,_the_symbol) (21) +14: Return(V) (24) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: LocalLoad(Ljava/lang/Object;,2) (1) + Handles null at 24 +6: Invoke(SPECIAL,Ljava_cup/production_part;,,(Ljava/lang/String;)V) (2) + Handles null at 24 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 24 +8: Constant(L;,null) (6) + Handles null at 24 +9: ConditionalBranch(Ljava/lang/Object;,ne,15) (6) + Handles null at 24 +10: New(Ljava_cup/internal_error;,0) (9) + Handles null at 24 +11: Dup(1,0) (12) + Handles null at 24 +12: Constant(Ljava/lang/String;,"Attempt to construct a symbol_part with a null symbol") (13) + Handles null at 24 +13: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (15) + Handles null at 24 +14: Throw() (18) + Handles null at 24 +15: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 24 +16: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 24 +17: Put(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/symbol_part;,_the_symbol) (21) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/symbol_part") (24) + Handles null at 24 +19: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava/lang/String;)V") (24) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (24) + Handles null at 24 +21: Constant(I,0) (24) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (24) + Handles null at 24 +23: Return(V) (24) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +25: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;Ljava/lang/String;)V") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting (Ljava_cup/symbol;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Constant(L;,null) (2) +3: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;Ljava/lang/String;)V) (3) +4: Return(V) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 14 +6: Constant(L;,null) (2) + Handles null at 14 +7: Invoke(SPECIAL,Ljava_cup/symbol_part;,,(Ljava_cup/symbol;Ljava/lang/String;)V) (3) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/symbol_part") (6) + Handles null at 14 +9: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;)V") (6) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 14 +11: Constant(I,0) (6) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 14 +13: Return(V) (6) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +15: Constant(Ljava/lang/String;,"(Ljava_cup/symbol;)V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting the_symbol ()Ljava_cup/symbol;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/symbol_part;,_the_symbol) (1) +2: Return(Ljava/lang/Object;) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +1: Constant(Ljava/lang/String;,"the_symbol()Ljava_cup/symbol;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(Ljava_cup/symbol;,NONSTATIC,Ljava_cup/symbol_part;,_the_symbol) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/symbol_part") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"the_symbol()Ljava_cup/symbol;") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(Ljava/lang/Object;) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +13: Constant(Ljava/lang/String;,"the_symbol()Ljava_cup/symbol;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting is_action ()Z: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +1: Constant(Ljava/lang/String;,"is_action()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/symbol_part") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"is_action()Z") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +12: Constant(Ljava/lang/String;,"is_action()Z") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting equals (Ljava_cup/symbol_part;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,17) (1) +3: LocalLoad(Ljava/lang/Object;,0) (4) +4: LocalLoad(Ljava/lang/Object;,1) (5) +5: Invoke(SPECIAL,Ljava_cup/production_part;,equals,(Ljava_cup/production_part;)Z) (6) +6: Constant(I,0) (9) +7: ConditionalBranch(I,eq,17) (9) +8: LocalLoad(Ljava/lang/Object;,0) (12) +9: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (13) +10: LocalLoad(Ljava/lang/Object;,1) (16) +11: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (17) +12: Invoke(VIRTUAL,Ljava/lang/Object;,equals,(Ljava/lang/Object;)Z) (20) +13: Constant(I,0) (23) +14: ConditionalBranch(I,eq,17) (23) +15: Constant(I,1) (26) +16: Goto(18) (27) +17: Constant(I,0) (30) +18: Return(I) (31) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/symbol_part;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 28 +5: Constant(L;,null) (1) + Handles null at 28 +6: ConditionalBranch(Ljava/lang/Object;,eq,21) (1) + Handles null at 28 +7: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 28 +8: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 28 +9: Invoke(SPECIAL,Ljava_cup/production_part;,equals,(Ljava_cup/production_part;)Z) (6) + Handles null at 28 +10: Constant(I,0) (9) + Handles null at 28 +11: ConditionalBranch(I,eq,21) (9) + Handles null at 28 +12: LocalLoad(Ljava/lang/Object;,0) (12) + Handles null at 28 +13: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (13) + Handles null at 28 +14: LocalLoad(Ljava/lang/Object;,1) (16) + Handles null at 28 +15: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (17) + Handles null at 28 +16: Invoke(VIRTUAL,Ljava/lang/Object;,equals,(Ljava/lang/Object;)Z) (20) + Handles null at 28 +17: Constant(I,0) (23) + Handles null at 28 +18: ConditionalBranch(I,eq,21) (23) + Handles null at 28 +19: Constant(I,1) (26) + Handles null at 28 +20: Goto(22) (27) + Handles null at 28 +21: Constant(I,0) (30) + Handles null at 28 +22: Constant(Ljava/lang/String;,"java_cup/symbol_part") (31) + Handles null at 28 +23: Constant(Ljava/lang/String;,"equals(Ljava_cup/symbol_part;)Z") (31) + Handles null at 28 +24: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 28 +25: Constant(I,0) (31) + Handles null at 28 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (31) + Handles null at 28 +27: Return(I) (31) + Handles null at 28 +28: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +29: Constant(Ljava/lang/String;,"equals(Ljava_cup/symbol_part;)Z") (0) +30: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +31: Constant(I,1) (0) +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +33: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/symbol_part;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/symbol_part;) (11) +9: Invoke(VIRTUAL,Ljava_cup/symbol_part;,equals,(Ljava_cup/symbol_part;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/symbol_part;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/symbol_part") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/symbol_part;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/symbol_part;,equals,(Ljava_cup/symbol_part;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/symbol_part") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava_cup/production_part;,hashCode,()I) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (5) +4: Constant(L;,null) (8) +5: ConditionalBranch(Ljava/lang/Object;,ne,8) (8) +6: Constant(I,0) (11) +7: Goto(11) (12) +8: LocalLoad(Ljava/lang/Object;,0) (15) +9: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (16) +10: Invoke(VIRTUAL,Ljava/lang/Object;,hashCode,()I) (19) +11: BinaryOp(I,xor) (22) +12: Return(I) (23) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 22 +5: Invoke(SPECIAL,Ljava_cup/production_part;,hashCode,()I) (1) + Handles null at 22 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 22 +7: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (5) + Handles null at 22 +8: Constant(L;,null) (8) + Handles null at 22 +9: ConditionalBranch(Ljava/lang/Object;,ne,12) (8) + Handles null at 22 +10: Constant(I,0) (11) + Handles null at 22 +11: Goto(15) (12) + Handles null at 22 +12: LocalLoad(Ljava/lang/Object;,0) (15) + Handles null at 22 +13: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (16) + Handles null at 22 +14: Invoke(VIRTUAL,Ljava/lang/Object;,hashCode,()I) (19) + Handles null at 22 +15: BinaryOp(I,xor) (22) + Handles null at 22 +16: Constant(Ljava/lang/String;,"java_cup/symbol_part") (23) + Handles null at 22 +17: Constant(Ljava/lang/String;,"hashCode()I") (23) + Handles null at 22 +18: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 22 +19: Constant(I,0) (23) + Handles null at 22 +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (23) + Handles null at 22 +21: Return(I) (23) + Handles null at 22 +22: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +23: Constant(Ljava/lang/String;,"hashCode()I") (0) +24: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +25: Constant(I,1) (0) +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +27: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1) +2: Constant(L;,null) (4) +3: ConditionalBranch(Ljava/lang/Object;,eq,15) (4) +4: New(Ljava/lang/StringBuilder;,0) (7) +5: Dup(1,0) (10) +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (11) +7: LocalLoad(Ljava/lang/Object;,0) (14) +8: Invoke(SPECIAL,Ljava_cup/production_part;,toString,()Ljava/lang/String;) (15) +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (18) +10: LocalLoad(Ljava/lang/Object;,0) (21) +11: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (22) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (25) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) +14: Return(Ljava/lang/Object;) (31) +15: New(Ljava/lang/StringBuilder;,0) (32) +16: Dup(1,0) (35) +17: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (36) +18: LocalLoad(Ljava/lang/Object;,0) (39) +19: Invoke(SPECIAL,Ljava_cup/production_part;,toString,()Ljava/lang/String;) (40) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) +21: Constant(Ljava/lang/String;,"$$MISSING-SYMBOL$$") (46) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (48) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (51) +24: Return(Ljava/lang/Object;) (54) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 39 +5: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (1) + Handles null at 39 +6: Constant(L;,null) (4) + Handles null at 39 +7: ConditionalBranch(Ljava/lang/Object;,eq,24) (4) + Handles null at 39 +8: New(Ljava/lang/StringBuilder;,0) (7) + Handles null at 39 +9: Dup(1,0) (10) + Handles null at 39 +10: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (11) + Handles null at 39 +11: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 39 +12: Invoke(SPECIAL,Ljava_cup/production_part;,toString,()Ljava/lang/String;) (15) + Handles null at 39 +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (18) + Handles null at 39 +14: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 39 +15: Invoke(VIRTUAL,Ljava_cup/symbol_part;,the_symbol,()Ljava_cup/symbol;) (22) + Handles null at 39 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/Object;)Ljava/lang/StringBuilder;) (25) + Handles null at 39 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (28) + Handles null at 39 +18: Constant(Ljava/lang/String;,"java_cup/symbol_part") (31) + Handles null at 39 +19: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (31) + Handles null at 39 +20: LocalLoad(Ljava/lang/Object;,0) (31) + Handles null at 39 +21: Constant(I,0) (31) + Handles null at 39 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (31) + Handles null at 39 +23: Return(Ljava/lang/Object;) (31) + Handles null at 39 +24: New(Ljava/lang/StringBuilder;,0) (32) + Handles null at 39 +25: Dup(1,0) (35) + Handles null at 39 +26: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (36) + Handles null at 39 +27: LocalLoad(Ljava/lang/Object;,0) (39) + Handles null at 39 +28: Invoke(SPECIAL,Ljava_cup/production_part;,toString,()Ljava/lang/String;) (40) + Handles null at 39 +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) + Handles null at 39 +30: Constant(Ljava/lang/String;,"$$MISSING-SYMBOL$$") (46) + Handles null at 39 +31: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (48) + Handles null at 39 +32: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (51) + Handles null at 39 +33: Constant(Ljava/lang/String;,"java_cup/symbol_part") (54) + Handles null at 39 +34: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (54) + Handles null at 39 +35: LocalLoad(Ljava/lang/Object;,0) (54) + Handles null at 39 +36: Constant(I,0) (54) + Handles null at 39 +37: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (54) + Handles null at 39 +38: Return(Ljava/lang/Object;) (54) + Handles null at 39 +39: Constant(Ljava/lang/String;,"java_cup/symbol_part") (0) +40: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +41: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +42: Constant(I,1) (0) +43: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +44: Throw() (0) +Class: java_cup/symbol_set +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: New(Ljava/util/Hashtable;,0) (5) +4: Dup(1,0) (8) +5: Constant(I,11) (9) +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (11) +7: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (14) +8: Return(V) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 18 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 18 +7: New(Ljava/util/Hashtable;,0) (5) + Handles null at 18 +8: Dup(1,0) (8) + Handles null at 18 +9: Constant(I,11) (9) + Handles null at 18 +10: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (11) + Handles null at 18 +11: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (14) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/symbol_set") (17) + Handles null at 18 +13: Constant(Ljava/lang/String;,"()V") (17) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 18 +15: Constant(I,0) (17) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 18 +17: Return(V) (17) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +19: Constant(Ljava/lang/String;,"()V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting (Ljava_cup/symbol_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: New(Ljava/util/Hashtable;,0) (5) +4: Dup(1,0) (8) +5: Constant(I,11) (9) +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (11) +7: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (14) +8: LocalLoad(Ljava/lang/Object;,0) (17) +9: LocalLoad(Ljava/lang/Object;,1) (18) +10: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (19) +11: LocalLoad(Ljava/lang/Object;,0) (22) +12: LocalLoad(Ljava/lang/Object;,1) (23) +13: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (24) +14: Invoke(VIRTUAL,Ljava/util/Hashtable;,clone,()Ljava/lang/Object;) (27) +15: CheckCast(Ljava/util/Hashtable;) (30) +16: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (33) +17: Return(V) (36) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/symbol_set;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 27 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 27 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 27 +7: New(Ljava/util/Hashtable;,0) (5) + Handles null at 27 +8: Dup(1,0) (8) + Handles null at 27 +9: Constant(I,11) (9) + Handles null at 27 +10: Invoke(SPECIAL,Ljava/util/Hashtable;,,(I)V) (11) + Handles null at 27 +11: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (14) + Handles null at 27 +12: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 27 +13: LocalLoad(Ljava/lang/Object;,1) (18) + Handles null at 27 +14: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (19) + Handles null at 27 +15: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 27 +16: LocalLoad(Ljava/lang/Object;,1) (23) + Handles null at 27 +17: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (24) + Handles null at 27 +18: Invoke(VIRTUAL,Ljava/util/Hashtable;,clone,()Ljava/lang/Object;) (27) + Handles null at 27 +19: CheckCast(Ljava/util/Hashtable;) (30) + Handles null at 27 +20: Put(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (33) + Handles null at 27 +21: Constant(Ljava/lang/String;,"java_cup/symbol_set") (36) + Handles null at 27 +22: Constant(Ljava/lang/String;,"(Ljava_cup/symbol_set;)V") (36) + Handles null at 27 +23: LocalLoad(Ljava/lang/Object;,0) (36) + Handles null at 27 +24: Constant(I,0) (36) + Handles null at 27 +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (36) + Handles null at 27 +26: Return(V) (36) + Handles null at 27 +27: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +28: Constant(Ljava/lang/String;,"(Ljava_cup/symbol_set;)V") (0) +29: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +30: Constant(I,1) (0) +31: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +32: Throw() (0) +Instrumenting all ()Ljava/util/Enumeration;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (1) +2: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (4) +3: Return(Ljava/lang/Object;) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/symbol_set") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(Ljava/lang/Object;) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +14: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting size ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (1) +2: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (4) +3: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"size()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/symbol_set") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"size()I") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(I) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +14: Constant(Ljava/lang/String;,"size()I") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting not_null (Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,8) (1) +3: New(Ljava_cup/internal_error;,0) (4) +4: Dup(1,0) (7) +5: Constant(Ljava/lang/String;,"Null object used in set operation") (8) +6: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (10) +7: Throw() (13) +8: Return(V) (14) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 18 +5: Constant(L;,null) (1) + Handles null at 18 +6: ConditionalBranch(Ljava/lang/Object;,ne,12) (1) + Handles null at 18 +7: New(Ljava_cup/internal_error;,0) (4) + Handles null at 18 +8: Dup(1,0) (7) + Handles null at 18 +9: Constant(Ljava/lang/String;,"Null object used in set operation") (8) + Handles null at 18 +10: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (10) + Handles null at 18 +11: Throw() (13) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/symbol_set") (14) + Handles null at 18 +13: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (14) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 18 +15: Constant(I,0) (14) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 18 +17: Return(V) (14) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +19: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting contains (Ljava_cup/symbol;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (1) +2: LocalLoad(Ljava/lang/Object;,1) (4) +3: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (5) +4: Invoke(VIRTUAL,Ljava/util/Hashtable;,containsKey,(Ljava/lang/Object;)Z) (8) +5: Return(I) (11) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"contains(Ljava_cup/symbol;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 15 +5: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (1) + Handles null at 15 +6: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 15 +7: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (5) + Handles null at 15 +8: Invoke(VIRTUAL,Ljava/util/Hashtable;,containsKey,(Ljava/lang/Object;)Z) (8) + Handles null at 15 +9: Constant(Ljava/lang/String;,"java_cup/symbol_set") (11) + Handles null at 15 +10: Constant(Ljava/lang/String;,"contains(Ljava_cup/symbol;)Z") (11) + Handles null at 15 +11: LocalLoad(Ljava/lang/Object;,0) (11) + Handles null at 15 +12: Constant(I,0) (11) + Handles null at 15 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (11) + Handles null at 15 +14: Return(I) (11) + Handles null at 15 +15: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +16: Constant(Ljava/lang/String;,"contains(Ljava_cup/symbol;)Z") (0) +17: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +18: Constant(I,1) (0) +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +20: Throw() (0) +Instrumenting is_subset_of (Ljava_cup/symbol_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (6) +5: LocalStore(Ljava/lang/Object;,2) (9) +6: LocalLoad(Ljava/lang/Object;,2) (10) +7: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) +8: Constant(I,0) (16) +9: ConditionalBranch(I,eq,19) (16) +10: LocalLoad(Ljava/lang/Object;,1) (19) +11: LocalLoad(Ljava/lang/Object;,2) (20) +12: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) +13: CheckCast(Ljava_cup/symbol;) (26) +14: Invoke(VIRTUAL,Ljava_cup/symbol_set;,contains,(Ljava_cup/symbol;)Z) (29) +15: Constant(I,0) (32) +16: ConditionalBranch(I,ne,6) (32) +17: Constant(I,0) (35) +18: Return(I) (36) +19: Constant(I,1) (37) +20: Return(I) (38) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/symbol_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 35 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 35 +6: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 35 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 35 +8: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (6) + Handles null at 35 +9: LocalStore(Ljava/lang/Object;,2) (9) + Handles null at 35 +10: LocalLoad(Ljava/lang/Object;,2) (10) + Handles null at 35 +11: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) + Handles null at 35 +12: Constant(I,0) (16) + Handles null at 35 +13: ConditionalBranch(I,eq,28) (16) + Handles null at 35 +14: LocalLoad(Ljava/lang/Object;,1) (19) + Handles null at 35 +15: LocalLoad(Ljava/lang/Object;,2) (20) + Handles null at 35 +16: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) + Handles null at 35 +17: CheckCast(Ljava_cup/symbol;) (26) + Handles null at 35 +18: Invoke(VIRTUAL,Ljava_cup/symbol_set;,contains,(Ljava_cup/symbol;)Z) (29) + Handles null at 35 +19: Constant(I,0) (32) + Handles null at 35 +20: ConditionalBranch(I,ne,10) (32) + Handles null at 35 +21: Constant(I,0) (35) + Handles null at 35 +22: Constant(Ljava/lang/String;,"java_cup/symbol_set") (36) + Handles null at 35 +23: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/symbol_set;)Z") (36) + Handles null at 35 +24: LocalLoad(Ljava/lang/Object;,0) (36) + Handles null at 35 +25: Constant(I,0) (36) + Handles null at 35 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (36) + Handles null at 35 +27: Return(I) (36) + Handles null at 35 +28: Constant(I,1) (37) + Handles null at 35 +29: Constant(Ljava/lang/String;,"java_cup/symbol_set") (38) + Handles null at 35 +30: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/symbol_set;)Z") (38) + Handles null at 35 +31: LocalLoad(Ljava/lang/Object;,0) (38) + Handles null at 35 +32: Constant(I,0) (38) + Handles null at 35 +33: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (38) + Handles null at 35 +34: Return(I) (38) + Handles null at 35 +35: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +36: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/symbol_set;)Z") (0) +37: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +38: Constant(I,1) (0) +39: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +40: Throw() (0) +Instrumenting is_superset_of (Ljava_cup/symbol_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: Invoke(VIRTUAL,Ljava_cup/symbol_set;,is_subset_of,(Ljava_cup/symbol_set;)Z) (7) +6: Return(I) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/symbol_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 16 +6: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 16 +9: Invoke(VIRTUAL,Ljava_cup/symbol_set;,is_subset_of,(Ljava_cup/symbol_set;)Z) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/symbol_set") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/symbol_set;)Z") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(I) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +17: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/symbol_set;)Z") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting add (Ljava_cup/symbol;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (10) +7: LocalLoad(Ljava/lang/Object;,1) (13) +8: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (14) +9: LocalStore(Ljava/lang/Object;,2) (17) +10: LocalLoad(Ljava/lang/Object;,2) (18) +11: Constant(L;,null) (19) +12: ConditionalBranch(Ljava/lang/Object;,ne,15) (19) +13: Constant(I,1) (22) +14: Goto(16) (23) +15: Constant(I,0) (26) +16: Return(I) (27) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"add(Ljava_cup/symbol;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 26 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 26 +6: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 26 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 26 +8: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (6) + Handles null at 26 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 26 +10: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (10) + Handles null at 26 +11: LocalLoad(Ljava/lang/Object;,1) (13) + Handles null at 26 +12: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (14) + Handles null at 26 +13: LocalStore(Ljava/lang/Object;,2) (17) + Handles null at 26 +14: LocalLoad(Ljava/lang/Object;,2) (18) + Handles null at 26 +15: Constant(L;,null) (19) + Handles null at 26 +16: ConditionalBranch(Ljava/lang/Object;,ne,19) (19) + Handles null at 26 +17: Constant(I,1) (22) + Handles null at 26 +18: Goto(20) (23) + Handles null at 26 +19: Constant(I,0) (26) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/symbol_set") (27) + Handles null at 26 +21: Constant(Ljava/lang/String;,"add(Ljava_cup/symbol;)Z") (27) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 26 +23: Constant(I,0) (27) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (27) + Handles null at 26 +25: Return(I) (27) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +27: Constant(Ljava/lang/String;,"add(Ljava_cup/symbol;)Z") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting remove (Ljava_cup/symbol;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (10) +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,remove,(Ljava/lang/Object;)Ljava/lang/Object;) (13) +8: Pop(1) (16) +9: Return(V) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"remove(Ljava_cup/symbol;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 19 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 19 +6: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 19 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 19 +8: Get(Ljava/util/Hashtable;,NONSTATIC,Ljava_cup/symbol_set;,_all) (6) + Handles null at 19 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 19 +10: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (10) + Handles null at 19 +11: Invoke(VIRTUAL,Ljava/util/Hashtable;,remove,(Ljava/lang/Object;)Ljava/lang/Object;) (13) + Handles null at 19 +12: Pop(1) (16) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/symbol_set") (17) + Handles null at 19 +14: Constant(Ljava/lang/String;,"remove(Ljava_cup/symbol;)V") (17) + Handles null at 19 +15: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 19 +16: Constant(I,0) (17) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 19 +18: Return(V) (17) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +20: Constant(Ljava/lang/String;,"remove(Ljava_cup/symbol;)V") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting add (Ljava_cup/symbol_set;)Z: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,2) (1) +2: LocalLoad(Ljava/lang/Object;,0) (2) +3: LocalLoad(Ljava/lang/Object;,1) (3) +4: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (4) +5: LocalLoad(Ljava/lang/Object;,1) (7) +6: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (8) +7: LocalStore(Ljava/lang/Object;,3) (11) +8: LocalLoad(Ljava/lang/Object;,3) (12) +9: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (13) +10: Constant(I,0) (18) +11: ConditionalBranch(I,eq,27) (18) +12: LocalLoad(Ljava/lang/Object;,0) (21) +13: LocalLoad(Ljava/lang/Object;,3) (22) +14: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (23) +15: CheckCast(Ljava_cup/symbol;) (28) +16: Invoke(VIRTUAL,Ljava_cup/symbol_set;,add,(Ljava_cup/symbol;)Z) (31) +17: Constant(I,0) (34) +18: ConditionalBranch(I,ne,22) (34) +19: LocalLoad(I,2) (37) +20: Constant(I,0) (38) +21: ConditionalBranch(I,eq,24) (38) +22: Constant(I,1) (41) +23: Goto(25) (42) +24: Constant(I,0) (45) +25: LocalStore(I,2) (46) +26: Goto(8) (47) +27: LocalLoad(I,2) (50) +28: Return(I) (51) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"add(Ljava_cup/symbol_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 38 +5: LocalStore(I,2) (1) + Handles null at 38 +6: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 38 +7: LocalLoad(Ljava/lang/Object;,1) (3) + Handles null at 38 +8: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (4) + Handles null at 38 +9: LocalLoad(Ljava/lang/Object;,1) (7) + Handles null at 38 +10: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (8) + Handles null at 38 +11: LocalStore(Ljava/lang/Object;,3) (11) + Handles null at 38 +12: LocalLoad(Ljava/lang/Object;,3) (12) + Handles null at 38 +13: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (13) + Handles null at 38 +14: Constant(I,0) (18) + Handles null at 38 +15: ConditionalBranch(I,eq,31) (18) + Handles null at 38 +16: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 38 +17: LocalLoad(Ljava/lang/Object;,3) (22) + Handles null at 38 +18: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (23) + Handles null at 38 +19: CheckCast(Ljava_cup/symbol;) (28) + Handles null at 38 +20: Invoke(VIRTUAL,Ljava_cup/symbol_set;,add,(Ljava_cup/symbol;)Z) (31) + Handles null at 38 +21: Constant(I,0) (34) + Handles null at 38 +22: ConditionalBranch(I,ne,26) (34) + Handles null at 38 +23: LocalLoad(I,2) (37) + Handles null at 38 +24: Constant(I,0) (38) + Handles null at 38 +25: ConditionalBranch(I,eq,28) (38) + Handles null at 38 +26: Constant(I,1) (41) + Handles null at 38 +27: Goto(29) (42) + Handles null at 38 +28: Constant(I,0) (45) + Handles null at 38 +29: LocalStore(I,2) (46) + Handles null at 38 +30: Goto(12) (47) + Handles null at 38 +31: LocalLoad(I,2) (50) + Handles null at 38 +32: Constant(Ljava/lang/String;,"java_cup/symbol_set") (51) + Handles null at 38 +33: Constant(Ljava/lang/String;,"add(Ljava_cup/symbol_set;)Z") (51) + Handles null at 38 +34: LocalLoad(Ljava/lang/Object;,0) (51) + Handles null at 38 +35: Constant(I,0) (51) + Handles null at 38 +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (51) + Handles null at 38 +37: Return(I) (51) + Handles null at 38 +38: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +39: Constant(Ljava/lang/String;,"add(Ljava_cup/symbol_set;)Z") (0) +40: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +41: Constant(I,1) (0) +42: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +43: Throw() (0) +Instrumenting remove (Ljava_cup/symbol_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (6) +5: LocalStore(Ljava/lang/Object;,2) (9) +6: LocalLoad(Ljava/lang/Object;,2) (10) +7: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) +8: Constant(I,0) (16) +9: ConditionalBranch(I,eq,16) (16) +10: LocalLoad(Ljava/lang/Object;,0) (19) +11: LocalLoad(Ljava/lang/Object;,2) (20) +12: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) +13: CheckCast(Ljava_cup/symbol;) (26) +14: Invoke(VIRTUAL,Ljava_cup/symbol_set;,remove,(Ljava_cup/symbol;)V) (29) +15: Goto(6) (32) +16: Return(V) (35) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"remove(Ljava_cup/symbol_set;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 26 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 26 +6: Invoke(VIRTUAL,Ljava_cup/symbol_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 26 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 26 +8: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (6) + Handles null at 26 +9: LocalStore(Ljava/lang/Object;,2) (9) + Handles null at 26 +10: LocalLoad(Ljava/lang/Object;,2) (10) + Handles null at 26 +11: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) + Handles null at 26 +12: Constant(I,0) (16) + Handles null at 26 +13: ConditionalBranch(I,eq,20) (16) + Handles null at 26 +14: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 26 +15: LocalLoad(Ljava/lang/Object;,2) (20) + Handles null at 26 +16: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (21) + Handles null at 26 +17: CheckCast(Ljava_cup/symbol;) (26) + Handles null at 26 +18: Invoke(VIRTUAL,Ljava_cup/symbol_set;,remove,(Ljava_cup/symbol;)V) (29) + Handles null at 26 +19: Goto(10) (32) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/symbol_set") (35) + Handles null at 26 +21: Constant(Ljava/lang/String;,"remove(Ljava_cup/symbol_set;)V") (35) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (35) + Handles null at 26 +23: Constant(I,0) (35) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (35) + Handles null at 26 +25: Return(V) (35) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +27: Constant(Ljava/lang/String;,"remove(Ljava_cup/symbol_set;)V") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting equals (Ljava_cup/symbol_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,eq,8) (1) +3: LocalLoad(Ljava/lang/Object;,1) (4) +4: Invoke(VIRTUAL,Ljava_cup/symbol_set;,size,()I) (5) +5: LocalLoad(Ljava/lang/Object;,0) (8) +6: Invoke(VIRTUAL,Ljava_cup/symbol_set;,size,()I) (9) +7: ConditionalBranch(I,eq,10) (12) +8: Constant(I,0) (15) +9: Return(I) (16) +10: LocalLoad(Ljava/lang/Object;,0) (17) + Handles Ljava_cup/internal_error; at 14 +11: LocalLoad(Ljava/lang/Object;,1) (18) + Handles Ljava_cup/internal_error; at 14 +12: Invoke(VIRTUAL,Ljava_cup/symbol_set;,is_subset_of,(Ljava_cup/symbol_set;)Z) (19) + Handles Ljava_cup/internal_error; at 14 +13: Return(I) (22) +14: LocalStore(Ljava/lang/Object;,2) (23) +15: LocalLoad(Ljava/lang/Object;,2) (24) +16: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (25) +17: Constant(I,0) (28) +18: Return(I) (29) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/symbol_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 38 +5: Constant(L;,null) (1) + Handles null at 38 +6: ConditionalBranch(Ljava/lang/Object;,eq,12) (1) + Handles null at 38 +7: LocalLoad(Ljava/lang/Object;,1) (4) + Handles null at 38 +8: Invoke(VIRTUAL,Ljava_cup/symbol_set;,size,()I) (5) + Handles null at 38 +9: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 38 +10: Invoke(VIRTUAL,Ljava_cup/symbol_set;,size,()I) (9) + Handles null at 38 +11: ConditionalBranch(I,eq,19) (12) + Handles null at 38 +12: Constant(I,0) (15) + Handles null at 38 +13: Constant(Ljava/lang/String;,"java_cup/symbol_set") (16) + Handles null at 38 +14: Constant(Ljava/lang/String;,"equals(Ljava_cup/symbol_set;)Z") (16) + Handles null at 38 +15: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 38 +16: Constant(I,0) (16) + Handles null at 38 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 38 +18: Return(I) (16) + Handles null at 38 +19: LocalLoad(Ljava/lang/Object;,0) (17) + Handles Ljava_cup/internal_error; at 28 + Handles null at 38 +20: LocalLoad(Ljava/lang/Object;,1) (18) + Handles Ljava_cup/internal_error; at 28 + Handles null at 38 +21: Invoke(VIRTUAL,Ljava_cup/symbol_set;,is_subset_of,(Ljava_cup/symbol_set;)Z) (19) + Handles Ljava_cup/internal_error; at 28 + Handles null at 38 +22: Constant(Ljava/lang/String;,"java_cup/symbol_set") (22) + Handles null at 38 +23: Constant(Ljava/lang/String;,"equals(Ljava_cup/symbol_set;)Z") (22) + Handles null at 38 +24: LocalLoad(Ljava/lang/Object;,0) (22) + Handles null at 38 +25: Constant(I,0) (22) + Handles null at 38 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (22) + Handles null at 38 +27: Return(I) (22) + Handles null at 38 +28: LocalStore(Ljava/lang/Object;,2) (23) + Handles null at 38 +29: LocalLoad(Ljava/lang/Object;,2) (24) + Handles null at 38 +30: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (25) + Handles null at 38 +31: Constant(I,0) (28) + Handles null at 38 +32: Constant(Ljava/lang/String;,"java_cup/symbol_set") (29) + Handles null at 38 +33: Constant(Ljava/lang/String;,"equals(Ljava_cup/symbol_set;)Z") (29) + Handles null at 38 +34: LocalLoad(Ljava/lang/Object;,0) (29) + Handles null at 38 +35: Constant(I,0) (29) + Handles null at 38 +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (29) + Handles null at 38 +37: Return(I) (29) + Handles null at 38 +38: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +39: Constant(Ljava/lang/String;,"equals(Ljava_cup/symbol_set;)Z") (0) +40: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +41: Constant(I,1) (0) +42: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +43: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/symbol_set;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/symbol_set;) (11) +9: Invoke(VIRTUAL,Ljava_cup/symbol_set;,equals,(Ljava_cup/symbol_set;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/symbol_set;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/symbol_set") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/symbol_set;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/symbol_set;,equals,(Ljava_cup/symbol_set;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/symbol_set") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting hashCode ()I: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: LocalStore(I,1) (1) +2: LocalLoad(Ljava/lang/Object;,0) (2) +3: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (3) +4: LocalStore(Ljava/lang/Object;,3) (6) +5: Constant(I,0) (7) +6: LocalStore(I,2) (8) +7: LocalLoad(Ljava/lang/Object;,3) (9) +8: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (10) +9: Constant(I,0) (15) +10: ConditionalBranch(I,eq,26) (15) +11: LocalLoad(I,2) (18) +12: Constant(I,5) (19) +13: ConditionalBranch(I,ge,26) (20) +14: LocalLoad(I,1) (23) +15: LocalLoad(Ljava/lang/Object;,3) (24) +16: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (25) +17: CheckCast(Ljava_cup/symbol;) (30) +18: Invoke(VIRTUAL,Ljava/lang/Object;,hashCode,()I) (33) +19: BinaryOp(I,xor) (36) +20: LocalStore(I,1) (37) +21: LocalLoad(I,2) (38) +22: Constant(I,1) (38) +23: BinaryOp(I,add) (38) +24: LocalStore(I,2) (38) +25: Goto(7) (41) +26: LocalLoad(I,1) (44) +27: Return(I) (45) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"hashCode()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 37 +5: LocalStore(I,1) (1) + Handles null at 37 +6: LocalLoad(Ljava/lang/Object;,0) (2) + Handles null at 37 +7: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (3) + Handles null at 37 +8: LocalStore(Ljava/lang/Object;,3) (6) + Handles null at 37 +9: Constant(I,0) (7) + Handles null at 37 +10: LocalStore(I,2) (8) + Handles null at 37 +11: LocalLoad(Ljava/lang/Object;,3) (9) + Handles null at 37 +12: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (10) + Handles null at 37 +13: Constant(I,0) (15) + Handles null at 37 +14: ConditionalBranch(I,eq,30) (15) + Handles null at 37 +15: LocalLoad(I,2) (18) + Handles null at 37 +16: Constant(I,5) (19) + Handles null at 37 +17: ConditionalBranch(I,ge,30) (20) + Handles null at 37 +18: LocalLoad(I,1) (23) + Handles null at 37 +19: LocalLoad(Ljava/lang/Object;,3) (24) + Handles null at 37 +20: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (25) + Handles null at 37 +21: CheckCast(Ljava_cup/symbol;) (30) + Handles null at 37 +22: Invoke(VIRTUAL,Ljava/lang/Object;,hashCode,()I) (33) + Handles null at 37 +23: BinaryOp(I,xor) (36) + Handles null at 37 +24: LocalStore(I,1) (37) + Handles null at 37 +25: LocalLoad(I,2) (38) + Handles null at 37 +26: Constant(I,1) (38) + Handles null at 37 +27: BinaryOp(I,add) (38) + Handles null at 37 +28: LocalStore(I,2) (38) + Handles null at 37 +29: Goto(11) (41) + Handles null at 37 +30: LocalLoad(I,1) (44) + Handles null at 37 +31: Constant(Ljava/lang/String;,"java_cup/symbol_set") (45) + Handles null at 37 +32: Constant(Ljava/lang/String;,"hashCode()I") (45) + Handles null at 37 +33: LocalLoad(Ljava/lang/Object;,0) (45) + Handles null at 37 +34: Constant(I,0) (45) + Handles null at 37 +35: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (45) + Handles null at 37 +36: Return(I) (45) + Handles null at 37 +37: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +38: Constant(Ljava/lang/String;,"hashCode()I") (0) +39: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +40: Constant(I,1) (0) +41: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +42: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"{") (0) +1: LocalStore(Ljava/lang/Object;,1) (2) +2: Constant(I,0) (3) +3: LocalStore(I,2) (4) +4: LocalLoad(Ljava/lang/Object;,0) (5) +5: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (6) +6: LocalStore(Ljava/lang/Object;,3) (9) +7: LocalLoad(Ljava/lang/Object;,3) (10) +8: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) +9: Constant(I,0) (16) +10: ConditionalBranch(I,eq,39) (16) +11: LocalLoad(I,2) (19) +12: Constant(I,0) (20) +13: ConditionalBranch(I,eq,24) (20) +14: New(Ljava/lang/StringBuilder;,0) (23) +15: Dup(1,0) (26) +16: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) +17: LocalLoad(Ljava/lang/Object;,1) (30) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) +19: Constant(Ljava/lang/String;,", ") (34) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) +21: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (39) +22: LocalStore(Ljava/lang/Object;,1) (42) +23: Goto(26) (43) +24: Constant(I,1) (46) +25: LocalStore(I,2) (47) +26: New(Ljava/lang/StringBuilder;,0) (48) +27: Dup(1,0) (51) +28: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (52) +29: LocalLoad(Ljava/lang/Object;,1) (55) +30: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (56) +31: LocalLoad(Ljava/lang/Object;,3) (59) +32: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (60) +33: CheckCast(Ljava_cup/symbol;) (65) +34: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (68) +35: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (71) +36: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (74) +37: LocalStore(Ljava/lang/Object;,1) (77) +38: Goto(7) (78) +39: New(Ljava/lang/StringBuilder;,0) (81) +40: Dup(1,0) (84) +41: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (85) +42: LocalLoad(Ljava/lang/Object;,1) (88) +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (89) +44: Constant(Ljava/lang/String;,"}") (92) +45: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (94) +46: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (97) +47: LocalStore(Ljava/lang/Object;,1) (100) +48: LocalLoad(Ljava/lang/Object;,1) (101) +49: Return(Ljava/lang/Object;) (102) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"{") (0) + Handles null at 59 +5: LocalStore(Ljava/lang/Object;,1) (2) + Handles null at 59 +6: Constant(I,0) (3) + Handles null at 59 +7: LocalStore(I,2) (4) + Handles null at 59 +8: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 59 +9: Invoke(VIRTUAL,Ljava_cup/symbol_set;,all,()Ljava/util/Enumeration;) (6) + Handles null at 59 +10: LocalStore(Ljava/lang/Object;,3) (9) + Handles null at 59 +11: LocalLoad(Ljava/lang/Object;,3) (10) + Handles null at 59 +12: Invoke(INTERFACE,Ljava/util/Enumeration;,hasMoreElements,()Z) (11) + Handles null at 59 +13: Constant(I,0) (16) + Handles null at 59 +14: ConditionalBranch(I,eq,43) (16) + Handles null at 59 +15: LocalLoad(I,2) (19) + Handles null at 59 +16: Constant(I,0) (20) + Handles null at 59 +17: ConditionalBranch(I,eq,28) (20) + Handles null at 59 +18: New(Ljava/lang/StringBuilder;,0) (23) + Handles null at 59 +19: Dup(1,0) (26) + Handles null at 59 +20: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (27) + Handles null at 59 +21: LocalLoad(Ljava/lang/Object;,1) (30) + Handles null at 59 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (31) + Handles null at 59 +23: Constant(Ljava/lang/String;,", ") (34) + Handles null at 59 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (36) + Handles null at 59 +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (39) + Handles null at 59 +26: LocalStore(Ljava/lang/Object;,1) (42) + Handles null at 59 +27: Goto(30) (43) + Handles null at 59 +28: Constant(I,1) (46) + Handles null at 59 +29: LocalStore(I,2) (47) + Handles null at 59 +30: New(Ljava/lang/StringBuilder;,0) (48) + Handles null at 59 +31: Dup(1,0) (51) + Handles null at 59 +32: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (52) + Handles null at 59 +33: LocalLoad(Ljava/lang/Object;,1) (55) + Handles null at 59 +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (56) + Handles null at 59 +35: LocalLoad(Ljava/lang/Object;,3) (59) + Handles null at 59 +36: Invoke(INTERFACE,Ljava/util/Enumeration;,nextElement,()Ljava/lang/Object;) (60) + Handles null at 59 +37: CheckCast(Ljava_cup/symbol;) (65) + Handles null at 59 +38: Invoke(VIRTUAL,Ljava_cup/symbol;,name,()Ljava/lang/String;) (68) + Handles null at 59 +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (71) + Handles null at 59 +40: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (74) + Handles null at 59 +41: LocalStore(Ljava/lang/Object;,1) (77) + Handles null at 59 +42: Goto(11) (78) + Handles null at 59 +43: New(Ljava/lang/StringBuilder;,0) (81) + Handles null at 59 +44: Dup(1,0) (84) + Handles null at 59 +45: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (85) + Handles null at 59 +46: LocalLoad(Ljava/lang/Object;,1) (88) + Handles null at 59 +47: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (89) + Handles null at 59 +48: Constant(Ljava/lang/String;,"}") (92) + Handles null at 59 +49: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (94) + Handles null at 59 +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (97) + Handles null at 59 +51: LocalStore(Ljava/lang/Object;,1) (100) + Handles null at 59 +52: LocalLoad(Ljava/lang/Object;,1) (101) + Handles null at 59 +53: Constant(Ljava/lang/String;,"java_cup/symbol_set") (102) + Handles null at 59 +54: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (102) + Handles null at 59 +55: LocalLoad(Ljava/lang/Object;,0) (102) + Handles null at 59 +56: Constant(I,0) (102) + Handles null at 59 +57: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (102) + Handles null at 59 +58: Return(Ljava/lang/Object;) (102) + Handles null at 59 +59: Constant(Ljava/lang/String;,"java_cup/symbol_set") (0) +60: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +61: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +62: Constant(I,1) (0) +63: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +64: Throw() (0) +Class: java_cup/terminal +Instrumenting (Ljava/lang/String;Ljava/lang/String;II)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Invoke(SPECIAL,Ljava_cup/symbol;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: LocalLoad(Ljava/lang/Object;,0) (10) +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (11) +8: LocalStore(Ljava/lang/Object;,5) (14) +9: LocalLoad(Ljava/lang/Object;,5) (16) +10: Constant(L;,null) (18) +11: ConditionalBranch(Ljava/lang/Object;,eq,26) (18) +12: New(Ljava_cup/internal_error;,0) (21) +13: Dup(1,0) (24) +14: New(Ljava/lang/StringBuilder;,0) (25) +15: Dup(1,0) (28) +16: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (29) +17: Constant(Ljava/lang/String;,"Duplicate terminal (") (32) +18: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (34) +19: LocalLoad(Ljava/lang/Object;,1) (37) +20: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) +21: Constant(Ljava/lang/String;,") created") (41) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) +23: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (46) +24: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (49) +25: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (52) +26: LocalLoad(Ljava/lang/Object;,0) (55) +27: Get(I,STATIC,Ljava_cup/terminal;,next_index) (56) +28: Dup(1,0) (59) +29: Constant(I,1) (60) +30: BinaryOp(I,add) (61) +31: Put(I,STATIC,Ljava_cup/terminal;,next_index) (62) +32: Put(I,NONSTATIC,Ljava_cup/terminal;,_index) (65) +33: LocalLoad(Ljava/lang/Object;,0) (68) +34: LocalLoad(I,4) (69) +35: Put(I,NONSTATIC,Ljava_cup/terminal;,_precedence_num) (71) +36: LocalLoad(Ljava/lang/Object;,0) (74) +37: LocalLoad(I,3) (75) +38: Put(I,NONSTATIC,Ljava_cup/terminal;,_precedence_side) (76) +39: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all_by_index) (79) +40: New(Ljava/lang/Integer;,0) (82) +41: Dup(1,0) (85) +42: LocalLoad(Ljava/lang/Object;,0) (86) +43: Get(I,NONSTATIC,Ljava_cup/terminal;,_index) (87) +44: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (90) +45: LocalLoad(Ljava/lang/Object;,0) (93) +46: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (94) +47: Pop(1) (97) +48: Return(V) (98) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;II)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 58 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 58 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 58 +7: Invoke(SPECIAL,Ljava_cup/symbol;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) + Handles null at 58 +8: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (6) + Handles null at 58 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 58 +10: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 58 +11: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (11) + Handles null at 58 +12: LocalStore(Ljava/lang/Object;,5) (14) + Handles null at 58 +13: LocalLoad(Ljava/lang/Object;,5) (16) + Handles null at 58 +14: Constant(L;,null) (18) + Handles null at 58 +15: ConditionalBranch(Ljava/lang/Object;,eq,30) (18) + Handles null at 58 +16: New(Ljava_cup/internal_error;,0) (21) + Handles null at 58 +17: Dup(1,0) (24) + Handles null at 58 +18: New(Ljava/lang/StringBuilder;,0) (25) + Handles null at 58 +19: Dup(1,0) (28) + Handles null at 58 +20: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (29) + Handles null at 58 +21: Constant(Ljava/lang/String;,"Duplicate terminal (") (32) + Handles null at 58 +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (34) + Handles null at 58 +23: LocalLoad(Ljava/lang/Object;,1) (37) + Handles null at 58 +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (38) + Handles null at 58 +25: Constant(Ljava/lang/String;,") created") (41) + Handles null at 58 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (43) + Handles null at 58 +27: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (46) + Handles null at 58 +28: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (49) + Handles null at 58 +29: Invoke(VIRTUAL,Ljava_cup/internal_error;,crash,()V) (52) + Handles null at 58 +30: LocalLoad(Ljava/lang/Object;,0) (55) + Handles null at 58 +31: Get(I,STATIC,Ljava_cup/terminal;,next_index) (56) + Handles null at 58 +32: Dup(1,0) (59) + Handles null at 58 +33: Constant(I,1) (60) + Handles null at 58 +34: BinaryOp(I,add) (61) + Handles null at 58 +35: Put(I,STATIC,Ljava_cup/terminal;,next_index) (62) + Handles null at 58 +36: Put(I,NONSTATIC,Ljava_cup/terminal;,_index) (65) + Handles null at 58 +37: LocalLoad(Ljava/lang/Object;,0) (68) + Handles null at 58 +38: LocalLoad(I,4) (69) + Handles null at 58 +39: Put(I,NONSTATIC,Ljava_cup/terminal;,_precedence_num) (71) + Handles null at 58 +40: LocalLoad(Ljava/lang/Object;,0) (74) + Handles null at 58 +41: LocalLoad(I,3) (75) + Handles null at 58 +42: Put(I,NONSTATIC,Ljava_cup/terminal;,_precedence_side) (76) + Handles null at 58 +43: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all_by_index) (79) + Handles null at 58 +44: New(Ljava/lang/Integer;,0) (82) + Handles null at 58 +45: Dup(1,0) (85) + Handles null at 58 +46: LocalLoad(Ljava/lang/Object;,0) (86) + Handles null at 58 +47: Get(I,NONSTATIC,Ljava_cup/terminal;,_index) (87) + Handles null at 58 +48: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (90) + Handles null at 58 +49: LocalLoad(Ljava/lang/Object;,0) (93) + Handles null at 58 +50: Invoke(VIRTUAL,Ljava/util/Hashtable;,put,(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;) (94) + Handles null at 58 +51: Pop(1) (97) + Handles null at 58 +52: Constant(Ljava/lang/String;,"java_cup/terminal") (98) + Handles null at 58 +53: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;II)V") (98) + Handles null at 58 +54: LocalLoad(Ljava/lang/Object;,0) (98) + Handles null at 58 +55: Constant(I,0) (98) + Handles null at 58 +56: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (98) + Handles null at 58 +57: Return(V) (98) + Handles null at 58 +58: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +59: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;II)V") (0) +60: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +61: Constant(I,1) (0) +62: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +63: Throw() (0) +Instrumenting (Ljava/lang/String;Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: LocalLoad(Ljava/lang/Object;,2) (2) +3: Constant(I,-1) (3) +4: Constant(I,-1) (4) +5: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;Ljava/lang/String;II)V) (5) +6: Return(V) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 16 +6: LocalLoad(Ljava/lang/Object;,2) (2) + Handles null at 16 +7: Constant(I,-1) (3) + Handles null at 16 +8: Constant(I,-1) (4) + Handles null at 16 +9: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;Ljava/lang/String;II)V) (5) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/terminal") (8) + Handles null at 16 +11: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (8) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 16 +13: Constant(I,0) (8) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 16 +15: Return(V) (8) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +17: Constant(Ljava/lang/String;,"(Ljava/lang/String;Ljava/lang/String;)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting (Ljava/lang/String;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Constant(L;,null) (2) +3: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) +4: Return(V) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 14 +6: Constant(L;,null) (2) + Handles null at 14 +7: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;Ljava/lang/String;)V) (3) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/terminal") (6) + Handles null at 14 +9: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (6) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 14 +11: Constant(I,0) (6) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 14 +13: Return(V) (6) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +15: Constant(Ljava/lang/String;,"(Ljava/lang/String;)V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting clear ()V: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (3) +2: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all_by_index) (6) +3: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (9) +4: Constant(I,0) (12) +5: Put(I,STATIC,Ljava_cup/terminal;,next_index) (13) +6: New(Ljava_cup/terminal;,0) (16) +7: Dup(1,0) (19) +8: Constant(Ljava/lang/String;,"EOF") (20) +9: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;)V) (22) +10: Put(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (25) +11: New(Ljava_cup/terminal;,0) (28) +12: Dup(1,0) (31) +13: Constant(Ljava/lang/String;,"error") (32) +14: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;)V) (34) +15: Put(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (37) +16: Return(V) (40) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"clear()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (0) + Handles null at 26 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (3) + Handles null at 26 +6: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all_by_index) (6) + Handles null at 26 +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,clear,()V) (9) + Handles null at 26 +8: Constant(I,0) (12) + Handles null at 26 +9: Put(I,STATIC,Ljava_cup/terminal;,next_index) (13) + Handles null at 26 +10: New(Ljava_cup/terminal;,0) (16) + Handles null at 26 +11: Dup(1,0) (19) + Handles null at 26 +12: Constant(Ljava/lang/String;,"EOF") (20) + Handles null at 26 +13: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;)V) (22) + Handles null at 26 +14: Put(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (25) + Handles null at 26 +15: New(Ljava_cup/terminal;,0) (28) + Handles null at 26 +16: Dup(1,0) (31) + Handles null at 26 +17: Constant(Ljava/lang/String;,"error") (32) + Handles null at 26 +18: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;)V) (34) + Handles null at 26 +19: Put(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (37) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/terminal") (40) + Handles null at 26 +21: Constant(Ljava/lang/String;,"clear()V") (40) + Handles null at 26 +22: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (40) + Handles null at 26 +23: Constant(I,0) (40) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (40) + Handles null at 26 +25: Return(V) (40) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +27: Constant(Ljava/lang/String;,"clear()V") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting all ()Ljava/util/Enumeration;: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (3) +2: Return(Ljava/lang/Object;) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,elements,()Ljava/util/Enumeration;) (3) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/terminal") (6) + Handles null at 12 +7: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (6) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (6) + Handles null at 12 +9: Constant(I,0) (6) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 12 +11: Return(Ljava/lang/Object;) (6) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +13: Constant(Ljava/lang/String;,"all()Ljava/util/Enumeration;") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting find (Ljava/lang/String;)Ljava_cup/terminal;: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (1) +3: Constant(L;,null) (4) +4: Return(Ljava/lang/Object;) (5) +5: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (6) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (10) +8: CheckCast(Ljava_cup/terminal;) (13) +9: Return(Ljava/lang/Object;) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"find(Ljava/lang/String;)Ljava_cup/terminal;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 24 +5: Constant(L;,null) (1) + Handles null at 24 +6: ConditionalBranch(Ljava/lang/Object;,ne,14) (1) + Handles null at 24 +7: Constant(L;,null) (4) + Handles null at 24 +8: Constant(Ljava/lang/String;,"java_cup/terminal") (5) + Handles null at 24 +9: Constant(Ljava/lang/String;,"find(Ljava/lang/String;)Ljava_cup/terminal;") (5) + Handles null at 24 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (5) + Handles null at 24 +11: Constant(I,0) (5) + Handles null at 24 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 24 +13: Return(Ljava/lang/Object;) (5) + Handles null at 24 +14: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (6) + Handles null at 24 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 24 +16: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (10) + Handles null at 24 +17: CheckCast(Ljava_cup/terminal;) (13) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/terminal") (16) + Handles null at 24 +19: Constant(Ljava/lang/String;,"find(Ljava/lang/String;)Ljava_cup/terminal;") (16) + Handles null at 24 +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (16) + Handles null at 24 +21: Constant(I,0) (16) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 24 +23: Return(Ljava/lang/Object;) (16) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +25: Constant(Ljava/lang/String;,"find(Ljava/lang/String;)Ljava_cup/terminal;") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting find (I)Ljava_cup/terminal;: +Initial ShrikeBT code: +0: New(Ljava/lang/Integer;,0) (0) +1: Dup(1,0) (3) +2: LocalLoad(I,0) (4) +3: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (5) +4: LocalStore(Ljava/lang/Object;,1) (8) +5: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all_by_index) (9) +6: LocalLoad(Ljava/lang/Object;,1) (12) +7: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (13) +8: CheckCast(Ljava_cup/terminal;) (16) +9: Return(Ljava/lang/Object;) (19) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"find(I)Ljava_cup/terminal;") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/Integer;,0) (0) + Handles null at 19 +5: Dup(1,0) (3) + Handles null at 19 +6: LocalLoad(I,0) (4) + Handles null at 19 +7: Invoke(SPECIAL,Ljava/lang/Integer;,,(I)V) (5) + Handles null at 19 +8: LocalStore(Ljava/lang/Object;,1) (8) + Handles null at 19 +9: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all_by_index) (9) + Handles null at 19 +10: LocalLoad(Ljava/lang/Object;,1) (12) + Handles null at 19 +11: Invoke(VIRTUAL,Ljava/util/Hashtable;,get,(Ljava/lang/Object;)Ljava/lang/Object;) (13) + Handles null at 19 +12: CheckCast(Ljava_cup/terminal;) (16) + Handles null at 19 +13: Constant(Ljava/lang/String;,"java_cup/terminal") (19) + Handles null at 19 +14: Constant(Ljava/lang/String;,"find(I)Ljava_cup/terminal;") (19) + Handles null at 19 +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (19) + Handles null at 19 +16: Constant(I,0) (19) + Handles null at 19 +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (19) + Handles null at 19 +18: Return(Ljava/lang/Object;) (19) + Handles null at 19 +19: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +20: Constant(Ljava/lang/String;,"find(I)Ljava_cup/terminal;") (0) +21: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +22: Constant(I,1) (0) +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +24: Throw() (0) +Instrumenting number ()I: +Initial ShrikeBT code: +0: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (0) +1: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (3) +2: Return(I) (6) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"number()I") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Get(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (0) + Handles null at 12 +5: Invoke(VIRTUAL,Ljava/util/Hashtable;,size,()I) (3) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/terminal") (6) + Handles null at 12 +7: Constant(Ljava/lang/String;,"number()I") (6) + Handles null at 12 +8: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (6) + Handles null at 12 +9: Constant(I,0) (6) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (6) + Handles null at 12 +11: Return(I) (6) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +13: Constant(Ljava/lang/String;,"number()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting is_non_term ()Z: +Initial ShrikeBT code: +0: Constant(I,0) (0) +1: Return(I) (1) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"is_non_term()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(I,0) (0) + Handles null at 11 +5: Constant(Ljava/lang/String;,"java_cup/terminal") (1) + Handles null at 11 +6: Constant(Ljava/lang/String;,"is_non_term()Z") (1) + Handles null at 11 +7: LocalLoad(Ljava/lang/Object;,0) (1) + Handles null at 11 +8: Constant(I,0) (1) + Handles null at 11 +9: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (1) + Handles null at 11 +10: Return(I) (1) + Handles null at 11 +11: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +12: Constant(Ljava/lang/String;,"is_non_term()Z") (0) +13: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +14: Constant(I,1) (0) +15: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +16: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: New(Ljava/lang/StringBuilder;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) +3: LocalLoad(Ljava/lang/Object;,0) (7) +4: Invoke(SPECIAL,Ljava_cup/symbol;,toString,()Ljava/lang/String;) (8) +5: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) +6: Constant(Ljava/lang/String;,"[") (14) +7: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) +8: LocalLoad(Ljava/lang/Object;,0) (19) +9: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (20) +10: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (23) +11: Constant(Ljava/lang/String;,"]") (26) +12: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) +13: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (31) +14: Return(Ljava/lang/Object;) (34) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/lang/StringBuilder;,0) (0) + Handles null at 24 +5: Dup(1,0) (3) + Handles null at 24 +6: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (4) + Handles null at 24 +7: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 24 +8: Invoke(SPECIAL,Ljava_cup/symbol;,toString,()Ljava/lang/String;) (8) + Handles null at 24 +9: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (11) + Handles null at 24 +10: Constant(Ljava/lang/String;,"[") (14) + Handles null at 24 +11: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (16) + Handles null at 24 +12: LocalLoad(Ljava/lang/Object;,0) (19) + Handles null at 24 +13: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (20) + Handles null at 24 +14: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(I)Ljava/lang/StringBuilder;) (23) + Handles null at 24 +15: Constant(Ljava/lang/String;,"]") (26) + Handles null at 24 +16: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (28) + Handles null at 24 +17: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (31) + Handles null at 24 +18: Constant(Ljava/lang/String;,"java_cup/terminal") (34) + Handles null at 24 +19: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (34) + Handles null at 24 +20: LocalLoad(Ljava/lang/Object;,0) (34) + Handles null at 24 +21: Constant(I,0) (34) + Handles null at 24 +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (34) + Handles null at 24 +23: Return(Ljava/lang/Object;) (34) + Handles null at 24 +24: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +25: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +27: Constant(I,1) (0) +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +29: Throw() (0) +Instrumenting precedence_num ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/terminal;,_precedence_num) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"precedence_num()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/terminal;,_precedence_num) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/terminal") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"precedence_num()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +13: Constant(Ljava/lang/String;,"precedence_num()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting precedence_side ()I: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(I,NONSTATIC,Ljava_cup/terminal;,_precedence_side) (1) +2: Return(I) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"precedence_side()I") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Get(I,NONSTATIC,Ljava_cup/terminal;,_precedence_side) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/terminal") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"precedence_side()I") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(I) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +13: Constant(Ljava/lang/String;,"precedence_side()I") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) +Instrumenting set_precedence (II)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(I,1) (1) +2: Put(I,NONSTATIC,Ljava_cup/terminal;,_precedence_side) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: LocalLoad(I,2) (6) +5: Put(I,NONSTATIC,Ljava_cup/terminal;,_precedence_num) (7) +6: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"set_precedence(II)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(I,1) (1) + Handles null at 16 +6: Put(I,NONSTATIC,Ljava_cup/terminal;,_precedence_side) (2) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 16 +8: LocalLoad(I,2) (6) + Handles null at 16 +9: Put(I,NONSTATIC,Ljava_cup/terminal;,_precedence_num) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/terminal") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"set_precedence(II)V") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(V) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +17: Constant(Ljava/lang/String;,"set_precedence(II)V") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: New(Ljava/util/Hashtable;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (4) +3: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (7) +4: New(Ljava/util/Hashtable;,0) (10) +5: Dup(1,0) (13) +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (14) +7: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all_by_index) (17) +8: Constant(I,0) (20) +9: Put(I,STATIC,Ljava_cup/terminal;,next_index) (21) +10: New(Ljava_cup/terminal;,0) (24) +11: Dup(1,0) (27) +12: Constant(Ljava/lang/String;,"EOF") (28) +13: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;)V) (30) +14: Put(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (33) +15: New(Ljava_cup/terminal;,0) (36) +16: Dup(1,0) (39) +17: Constant(Ljava/lang/String;,"error") (40) +18: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;)V) (42) +19: Put(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (45) +20: Return(V) (48) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava/util/Hashtable;,0) (0) + Handles null at 30 +5: Dup(1,0) (3) + Handles null at 30 +6: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (4) + Handles null at 30 +7: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all) (7) + Handles null at 30 +8: New(Ljava/util/Hashtable;,0) (10) + Handles null at 30 +9: Dup(1,0) (13) + Handles null at 30 +10: Invoke(SPECIAL,Ljava/util/Hashtable;,,()V) (14) + Handles null at 30 +11: Put(Ljava/util/Hashtable;,STATIC,Ljava_cup/terminal;,_all_by_index) (17) + Handles null at 30 +12: Constant(I,0) (20) + Handles null at 30 +13: Put(I,STATIC,Ljava_cup/terminal;,next_index) (21) + Handles null at 30 +14: New(Ljava_cup/terminal;,0) (24) + Handles null at 30 +15: Dup(1,0) (27) + Handles null at 30 +16: Constant(Ljava/lang/String;,"EOF") (28) + Handles null at 30 +17: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;)V) (30) + Handles null at 30 +18: Put(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,EOF) (33) + Handles null at 30 +19: New(Ljava_cup/terminal;,0) (36) + Handles null at 30 +20: Dup(1,0) (39) + Handles null at 30 +21: Constant(Ljava/lang/String;,"error") (40) + Handles null at 30 +22: Invoke(SPECIAL,Ljava_cup/terminal;,,(Ljava/lang/String;)V) (42) + Handles null at 30 +23: Put(Ljava_cup/terminal;,STATIC,Ljava_cup/terminal;,error) (45) + Handles null at 30 +24: Constant(Ljava/lang/String;,"java_cup/terminal") (48) + Handles null at 30 +25: Constant(Ljava/lang/String;,"()V") (48) + Handles null at 30 +26: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (48) + Handles null at 30 +27: Constant(I,0) (48) + Handles null at 30 +28: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (48) + Handles null at 30 +29: Return(V) (48) + Handles null at 30 +30: Constant(Ljava/lang/String;,"java_cup/terminal") (0) +31: Constant(Ljava/lang/String;,"()V") (0) +32: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +33: Constant(I,1) (0) +34: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +35: Throw() (0) +Class: java_cup/terminal_set +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: New(Ljava/util/BitSet;,0) (5) +4: Dup(1,0) (8) +5: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (9) +6: Invoke(SPECIAL,Ljava/util/BitSet;,,(I)V) (12) +7: Put(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (15) +8: Return(V) (18) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 18 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 18 +7: New(Ljava/util/BitSet;,0) (5) + Handles null at 18 +8: Dup(1,0) (8) + Handles null at 18 +9: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (9) + Handles null at 18 +10: Invoke(SPECIAL,Ljava/util/BitSet;,,(I)V) (12) + Handles null at 18 +11: Put(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (15) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/terminal_set") (18) + Handles null at 18 +13: Constant(Ljava/lang/String;,"()V") (18) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (18) + Handles null at 18 +15: Constant(I,0) (18) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (18) + Handles null at 18 +17: Return(V) (18) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +19: Constant(Ljava/lang/String;,"()V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting (Ljava_cup/terminal_set;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: LocalLoad(Ljava/lang/Object;,0) (4) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (6) +5: LocalLoad(Ljava/lang/Object;,0) (9) +6: LocalLoad(Ljava/lang/Object;,1) (10) +7: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (11) +8: Invoke(VIRTUAL,Ljava/util/BitSet;,clone,()Ljava/lang/Object;) (14) +9: CheckCast(Ljava/util/BitSet;) (17) +10: Put(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (20) +11: Return(V) (23) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"(Ljava_cup/terminal_set;)V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 21 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 21 +6: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 21 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 21 +8: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (6) + Handles null at 21 +9: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 21 +10: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 21 +11: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (11) + Handles null at 21 +12: Invoke(VIRTUAL,Ljava/util/BitSet;,clone,()Ljava/lang/Object;) (14) + Handles null at 21 +13: CheckCast(Ljava/util/BitSet;) (17) + Handles null at 21 +14: Put(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (20) + Handles null at 21 +15: Constant(Ljava/lang/String;,"java_cup/terminal_set") (23) + Handles null at 21 +16: Constant(Ljava/lang/String;,"(Ljava_cup/terminal_set;)V") (23) + Handles null at 21 +17: LocalLoad(Ljava/lang/Object;,0) (23) + Handles null at 21 +18: Constant(I,0) (23) + Handles null at 21 +19: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (23) + Handles null at 21 +20: Return(V) (23) + Handles null at 21 +21: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +22: Constant(Ljava/lang/String;,"(Ljava_cup/terminal_set;)V") (0) +23: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +24: Constant(I,1) (0) +25: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +26: Throw() (0) +Instrumenting not_null (Ljava/lang/Object;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,8) (1) +3: New(Ljava_cup/internal_error;,0) (4) +4: Dup(1,0) (7) +5: Constant(Ljava/lang/String;,"Null object used in set operation") (8) +6: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (10) +7: Throw() (13) +8: Return(V) (14) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 18 +5: Constant(L;,null) (1) + Handles null at 18 +6: ConditionalBranch(Ljava/lang/Object;,ne,12) (1) + Handles null at 18 +7: New(Ljava_cup/internal_error;,0) (4) + Handles null at 18 +8: Dup(1,0) (7) + Handles null at 18 +9: Constant(Ljava/lang/String;,"Null object used in set operation") (8) + Handles null at 18 +10: Invoke(SPECIAL,Ljava_cup/internal_error;,,(Ljava/lang/String;)V) (10) + Handles null at 18 +11: Throw() (13) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/terminal_set") (14) + Handles null at 18 +13: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (14) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 18 +15: Constant(I,0) (14) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (14) + Handles null at 18 +17: Return(V) (14) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +19: Constant(Ljava/lang/String;,"not_null(Ljava/lang/Object;)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting empty ()Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava_cup/terminal_set;,STATIC,Ljava_cup/terminal_set;,EMPTY) (1) +2: Invoke(VIRTUAL,Ljava_cup/terminal_set;,equals,(Ljava_cup/terminal_set;)Z) (4) +3: Return(I) (7) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"empty()Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 13 +5: Get(Ljava_cup/terminal_set;,STATIC,Ljava_cup/terminal_set;,EMPTY) (1) + Handles null at 13 +6: Invoke(VIRTUAL,Ljava_cup/terminal_set;,equals,(Ljava_cup/terminal_set;)Z) (4) + Handles null at 13 +7: Constant(Ljava/lang/String;,"java_cup/terminal_set") (7) + Handles null at 13 +8: Constant(Ljava/lang/String;,"empty()Z") (7) + Handles null at 13 +9: LocalLoad(Ljava/lang/Object;,0) (7) + Handles null at 13 +10: Constant(I,0) (7) + Handles null at 13 +11: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (7) + Handles null at 13 +12: Return(I) (7) + Handles null at 13 +13: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +14: Constant(Ljava/lang/String;,"empty()Z") (0) +15: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +16: Constant(I,1) (0) +17: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +18: Throw() (0) +Instrumenting contains (Ljava_cup/terminal;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (10) +7: Invoke(VIRTUAL,Ljava/util/BitSet;,get,(I)Z) (13) +8: Return(I) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"contains(Ljava_cup/terminal;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 18 +6: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 18 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 18 +8: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 18 +10: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (10) + Handles null at 18 +11: Invoke(VIRTUAL,Ljava/util/BitSet;,get,(I)Z) (13) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/terminal_set") (16) + Handles null at 18 +13: Constant(Ljava/lang/String;,"contains(Ljava_cup/terminal;)Z") (16) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 18 +15: Constant(I,0) (16) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 18 +17: Return(I) (16) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +19: Constant(Ljava/lang/String;,"contains(Ljava_cup/terminal;)Z") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting contains (I)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (1) +2: LocalLoad(I,1) (4) +3: Invoke(VIRTUAL,Ljava/util/BitSet;,get,(I)Z) (5) +4: Return(I) (8) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"contains(I)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 14 +5: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (1) + Handles null at 14 +6: LocalLoad(I,1) (4) + Handles null at 14 +7: Invoke(VIRTUAL,Ljava/util/BitSet;,get,(I)Z) (5) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/terminal_set") (8) + Handles null at 14 +9: Constant(Ljava/lang/String;,"contains(I)Z") (8) + Handles null at 14 +10: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 14 +11: Constant(I,0) (8) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 14 +13: Return(I) (8) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +15: Constant(Ljava/lang/String;,"contains(I)Z") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Instrumenting is_subset_of (Ljava_cup/terminal_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) +5: Invoke(VIRTUAL,Ljava/util/BitSet;,clone,()Ljava/lang/Object;) (9) +6: CheckCast(Ljava/util/BitSet;) (12) +7: LocalStore(Ljava/lang/Object;,2) (15) +8: LocalLoad(Ljava/lang/Object;,2) (16) +9: LocalLoad(Ljava/lang/Object;,0) (17) +10: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (18) +11: Invoke(VIRTUAL,Ljava/util/BitSet;,or,(Ljava/util/BitSet;)V) (21) +12: LocalLoad(Ljava/lang/Object;,2) (24) +13: LocalLoad(Ljava/lang/Object;,1) (25) +14: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (26) +15: Invoke(VIRTUAL,Ljava/util/BitSet;,equals,(Ljava/lang/Object;)Z) (29) +16: Return(I) (32) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/terminal_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 26 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 26 +6: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 26 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 26 +8: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) + Handles null at 26 +9: Invoke(VIRTUAL,Ljava/util/BitSet;,clone,()Ljava/lang/Object;) (9) + Handles null at 26 +10: CheckCast(Ljava/util/BitSet;) (12) + Handles null at 26 +11: LocalStore(Ljava/lang/Object;,2) (15) + Handles null at 26 +12: LocalLoad(Ljava/lang/Object;,2) (16) + Handles null at 26 +13: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 26 +14: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (18) + Handles null at 26 +15: Invoke(VIRTUAL,Ljava/util/BitSet;,or,(Ljava/util/BitSet;)V) (21) + Handles null at 26 +16: LocalLoad(Ljava/lang/Object;,2) (24) + Handles null at 26 +17: LocalLoad(Ljava/lang/Object;,1) (25) + Handles null at 26 +18: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (26) + Handles null at 26 +19: Invoke(VIRTUAL,Ljava/util/BitSet;,equals,(Ljava/lang/Object;)Z) (29) + Handles null at 26 +20: Constant(Ljava/lang/String;,"java_cup/terminal_set") (32) + Handles null at 26 +21: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/terminal_set;)Z") (32) + Handles null at 26 +22: LocalLoad(Ljava/lang/Object;,0) (32) + Handles null at 26 +23: Constant(I,0) (32) + Handles null at 26 +24: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (32) + Handles null at 26 +25: Return(I) (32) + Handles null at 26 +26: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +27: Constant(Ljava/lang/String;,"is_subset_of(Ljava_cup/terminal_set;)Z") (0) +28: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +29: Constant(I,1) (0) +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +31: Throw() (0) +Instrumenting is_superset_of (Ljava_cup/terminal_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,1) (5) +4: LocalLoad(Ljava/lang/Object;,0) (6) +5: Invoke(VIRTUAL,Ljava_cup/terminal_set;,is_subset_of,(Ljava_cup/terminal_set;)Z) (7) +6: Return(I) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/terminal_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 16 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 16 +6: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 16 +7: LocalLoad(Ljava/lang/Object;,1) (5) + Handles null at 16 +8: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 16 +9: Invoke(VIRTUAL,Ljava_cup/terminal_set;,is_subset_of,(Ljava_cup/terminal_set;)Z) (7) + Handles null at 16 +10: Constant(Ljava/lang/String;,"java_cup/terminal_set") (10) + Handles null at 16 +11: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/terminal_set;)Z") (10) + Handles null at 16 +12: LocalLoad(Ljava/lang/Object;,0) (10) + Handles null at 16 +13: Constant(I,0) (10) + Handles null at 16 +14: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 16 +15: Return(I) (10) + Handles null at 16 +16: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +17: Constant(Ljava/lang/String;,"is_superset_of(Ljava_cup/terminal_set;)Z") (0) +18: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +19: Constant(I,1) (0) +20: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +21: Throw() (0) +Instrumenting add (Ljava_cup/terminal;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (10) +7: Invoke(VIRTUAL,Ljava/util/BitSet;,get,(I)Z) (13) +8: LocalStore(I,2) (16) +9: LocalLoad(I,2) (17) +10: Constant(I,0) (18) +11: ConditionalBranch(I,ne,17) (18) +12: LocalLoad(Ljava/lang/Object;,0) (21) +13: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (22) +14: LocalLoad(Ljava/lang/Object;,1) (25) +15: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (26) +16: Invoke(VIRTUAL,Ljava/util/BitSet;,set,(I)V) (29) +17: LocalLoad(I,2) (32) +18: Return(I) (33) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"add(Ljava_cup/terminal;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 28 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 28 +6: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 28 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 28 +8: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) + Handles null at 28 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 28 +10: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (10) + Handles null at 28 +11: Invoke(VIRTUAL,Ljava/util/BitSet;,get,(I)Z) (13) + Handles null at 28 +12: LocalStore(I,2) (16) + Handles null at 28 +13: LocalLoad(I,2) (17) + Handles null at 28 +14: Constant(I,0) (18) + Handles null at 28 +15: ConditionalBranch(I,ne,21) (18) + Handles null at 28 +16: LocalLoad(Ljava/lang/Object;,0) (21) + Handles null at 28 +17: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (22) + Handles null at 28 +18: LocalLoad(Ljava/lang/Object;,1) (25) + Handles null at 28 +19: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (26) + Handles null at 28 +20: Invoke(VIRTUAL,Ljava/util/BitSet;,set,(I)V) (29) + Handles null at 28 +21: LocalLoad(I,2) (32) + Handles null at 28 +22: Constant(Ljava/lang/String;,"java_cup/terminal_set") (33) + Handles null at 28 +23: Constant(Ljava/lang/String;,"add(Ljava_cup/terminal;)Z") (33) + Handles null at 28 +24: LocalLoad(Ljava/lang/Object;,0) (33) + Handles null at 28 +25: Constant(I,0) (33) + Handles null at 28 +26: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (33) + Handles null at 28 +27: Return(I) (33) + Handles null at 28 +28: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +29: Constant(Ljava/lang/String;,"add(Ljava_cup/terminal;)Z") (0) +30: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +31: Constant(I,1) (0) +32: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +33: Throw() (0) +Instrumenting remove (Ljava_cup/terminal;)V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (10) +7: Invoke(VIRTUAL,Ljava/util/BitSet;,clear,(I)V) (13) +8: Return(V) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"remove(Ljava_cup/terminal;)V") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 18 +6: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 18 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 18 +8: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 18 +10: Invoke(VIRTUAL,Ljava_cup/terminal;,index,()I) (10) + Handles null at 18 +11: Invoke(VIRTUAL,Ljava/util/BitSet;,clear,(I)V) (13) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/terminal_set") (16) + Handles null at 18 +13: Constant(Ljava/lang/String;,"remove(Ljava_cup/terminal;)V") (16) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 18 +15: Constant(I,0) (16) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 18 +17: Return(V) (16) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +19: Constant(Ljava/lang/String;,"remove(Ljava_cup/terminal;)V") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting add (Ljava_cup/terminal_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) +5: Invoke(VIRTUAL,Ljava/util/BitSet;,clone,()Ljava/lang/Object;) (9) +6: CheckCast(Ljava/util/BitSet;) (12) +7: LocalStore(Ljava/lang/Object;,2) (15) +8: LocalLoad(Ljava/lang/Object;,0) (16) +9: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (17) +10: LocalLoad(Ljava/lang/Object;,1) (20) +11: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (21) +12: Invoke(VIRTUAL,Ljava/util/BitSet;,or,(Ljava/util/BitSet;)V) (24) +13: LocalLoad(Ljava/lang/Object;,0) (27) +14: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (28) +15: LocalLoad(Ljava/lang/Object;,2) (31) +16: Invoke(VIRTUAL,Ljava/util/BitSet;,equals,(Ljava/lang/Object;)Z) (32) +17: Constant(I,0) (35) +18: ConditionalBranch(I,ne,21) (35) +19: Constant(I,1) (38) +20: Goto(22) (39) +21: Constant(I,0) (42) +22: Return(I) (43) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"add(Ljava_cup/terminal_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 32 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 32 +6: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 32 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 32 +8: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) + Handles null at 32 +9: Invoke(VIRTUAL,Ljava/util/BitSet;,clone,()Ljava/lang/Object;) (9) + Handles null at 32 +10: CheckCast(Ljava/util/BitSet;) (12) + Handles null at 32 +11: LocalStore(Ljava/lang/Object;,2) (15) + Handles null at 32 +12: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 32 +13: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (17) + Handles null at 32 +14: LocalLoad(Ljava/lang/Object;,1) (20) + Handles null at 32 +15: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (21) + Handles null at 32 +16: Invoke(VIRTUAL,Ljava/util/BitSet;,or,(Ljava/util/BitSet;)V) (24) + Handles null at 32 +17: LocalLoad(Ljava/lang/Object;,0) (27) + Handles null at 32 +18: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (28) + Handles null at 32 +19: LocalLoad(Ljava/lang/Object;,2) (31) + Handles null at 32 +20: Invoke(VIRTUAL,Ljava/util/BitSet;,equals,(Ljava/lang/Object;)Z) (32) + Handles null at 32 +21: Constant(I,0) (35) + Handles null at 32 +22: ConditionalBranch(I,ne,25) (35) + Handles null at 32 +23: Constant(I,1) (38) + Handles null at 32 +24: Goto(26) (39) + Handles null at 32 +25: Constant(I,0) (42) + Handles null at 32 +26: Constant(Ljava/lang/String;,"java_cup/terminal_set") (43) + Handles null at 32 +27: Constant(Ljava/lang/String;,"add(Ljava_cup/terminal_set;)Z") (43) + Handles null at 32 +28: LocalLoad(Ljava/lang/Object;,0) (43) + Handles null at 32 +29: Constant(I,0) (43) + Handles null at 32 +30: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (43) + Handles null at 32 +31: Return(I) (43) + Handles null at 32 +32: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +33: Constant(Ljava/lang/String;,"add(Ljava_cup/terminal_set;)Z") (0) +34: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +35: Constant(I,1) (0) +36: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +37: Throw() (0) +Instrumenting intersects (Ljava_cup/terminal_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: LocalLoad(Ljava/lang/Object;,1) (1) +2: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) +3: LocalLoad(Ljava/lang/Object;,0) (5) +4: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) +5: LocalLoad(Ljava/lang/Object;,1) (9) +6: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (10) +7: Invoke(VIRTUAL,Ljava/util/BitSet;,intersects,(Ljava/util/BitSet;)Z) (13) +8: Return(I) (16) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"intersects(Ljava_cup/terminal_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 18 +5: LocalLoad(Ljava/lang/Object;,1) (1) + Handles null at 18 +6: Invoke(VIRTUAL,Ljava_cup/terminal_set;,not_null,(Ljava/lang/Object;)V) (2) + Handles null at 18 +7: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 18 +8: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (6) + Handles null at 18 +9: LocalLoad(Ljava/lang/Object;,1) (9) + Handles null at 18 +10: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (10) + Handles null at 18 +11: Invoke(VIRTUAL,Ljava/util/BitSet;,intersects,(Ljava/util/BitSet;)Z) (13) + Handles null at 18 +12: Constant(Ljava/lang/String;,"java_cup/terminal_set") (16) + Handles null at 18 +13: Constant(Ljava/lang/String;,"intersects(Ljava_cup/terminal_set;)Z") (16) + Handles null at 18 +14: LocalLoad(Ljava/lang/Object;,0) (16) + Handles null at 18 +15: Constant(I,0) (16) + Handles null at 18 +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (16) + Handles null at 18 +17: Return(I) (16) + Handles null at 18 +18: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +19: Constant(Ljava/lang/String;,"intersects(Ljava_cup/terminal_set;)Z") (0) +20: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +21: Constant(I,1) (0) +22: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +23: Throw() (0) +Instrumenting equals (Ljava_cup/terminal_set;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Constant(L;,null) (1) +2: ConditionalBranch(Ljava/lang/Object;,ne,5) (1) +3: Constant(I,0) (4) +4: Return(I) (5) +5: LocalLoad(Ljava/lang/Object;,0) (6) +6: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (7) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (11) +9: Invoke(VIRTUAL,Ljava/util/BitSet;,equals,(Ljava/lang/Object;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava_cup/terminal_set;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Constant(L;,null) (1) + Handles null at 25 +6: ConditionalBranch(Ljava/lang/Object;,ne,14) (1) + Handles null at 25 +7: Constant(I,0) (4) + Handles null at 25 +8: Constant(Ljava/lang/String;,"java_cup/terminal_set") (5) + Handles null at 25 +9: Constant(Ljava/lang/String;,"equals(Ljava_cup/terminal_set;)Z") (5) + Handles null at 25 +10: LocalLoad(Ljava/lang/Object;,0) (5) + Handles null at 25 +11: Constant(I,0) (5) + Handles null at 25 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (5) + Handles null at 25 +13: Return(I) (5) + Handles null at 25 +14: LocalLoad(Ljava/lang/Object;,0) (6) + Handles null at 25 +15: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (7) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava/util/BitSet;,equals,(Ljava/lang/Object;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/terminal_set") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava_cup/terminal_set;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava_cup/terminal_set;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting equals (Ljava/lang/Object;)Z: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,1) (0) +1: Instanceof(Ljava_cup/terminal_set;) (1) +2: Constant(I,0) (4) +3: ConditionalBranch(I,ne,6) (4) +4: Constant(I,0) (7) +5: Return(I) (8) +6: LocalLoad(Ljava/lang/Object;,0) (9) +7: LocalLoad(Ljava/lang/Object;,1) (10) +8: CheckCast(Ljava_cup/terminal_set;) (11) +9: Invoke(VIRTUAL,Ljava_cup/terminal_set;,equals,(Ljava_cup/terminal_set;)Z) (14) +10: Return(I) (17) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,1) (0) + Handles null at 25 +5: Instanceof(Ljava_cup/terminal_set;) (1) + Handles null at 25 +6: Constant(I,0) (4) + Handles null at 25 +7: ConditionalBranch(I,ne,15) (4) + Handles null at 25 +8: Constant(I,0) (7) + Handles null at 25 +9: Constant(Ljava/lang/String;,"java_cup/terminal_set") (8) + Handles null at 25 +10: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (8) + Handles null at 25 +11: LocalLoad(Ljava/lang/Object;,0) (8) + Handles null at 25 +12: Constant(I,0) (8) + Handles null at 25 +13: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (8) + Handles null at 25 +14: Return(I) (8) + Handles null at 25 +15: LocalLoad(Ljava/lang/Object;,0) (9) + Handles null at 25 +16: LocalLoad(Ljava/lang/Object;,1) (10) + Handles null at 25 +17: CheckCast(Ljava_cup/terminal_set;) (11) + Handles null at 25 +18: Invoke(VIRTUAL,Ljava_cup/terminal_set;,equals,(Ljava_cup/terminal_set;)Z) (14) + Handles null at 25 +19: Constant(Ljava/lang/String;,"java_cup/terminal_set") (17) + Handles null at 25 +20: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (17) + Handles null at 25 +21: LocalLoad(Ljava/lang/Object;,0) (17) + Handles null at 25 +22: Constant(I,0) (17) + Handles null at 25 +23: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (17) + Handles null at 25 +24: Return(I) (17) + Handles null at 25 +25: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +26: Constant(Ljava/lang/String;,"equals(Ljava/lang/Object;)Z") (0) +27: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +28: Constant(I,1) (0) +29: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +30: Throw() (0) +Instrumenting toString ()Ljava/lang/String;: +Initial ShrikeBT code: +0: Constant(Ljava/lang/String;,"{") (0) +1: LocalStore(Ljava/lang/Object;,1) (2) +2: Constant(I,0) (3) +3: LocalStore(I,2) (4) +4: Constant(I,0) (5) +5: LocalStore(I,3) (6) +6: LocalLoad(I,3) (7) +7: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (8) +8: ConditionalBranch(I,ge,46) (11) +9: LocalLoad(Ljava/lang/Object;,0) (14) +10: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (15) +11: LocalLoad(I,3) (18) +12: Invoke(VIRTUAL,Ljava/util/BitSet;,get,(I)Z) (19) +13: Constant(I,0) (22) +14: ConditionalBranch(I,eq,41) (22) +15: LocalLoad(I,2) (25) +16: Constant(I,0) (26) +17: ConditionalBranch(I,eq,28) (26) +18: New(Ljava/lang/StringBuilder;,0) (29) +19: Dup(1,0) (32) +20: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (33) +21: LocalLoad(Ljava/lang/Object;,1) (36) +22: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (37) +23: Constant(Ljava/lang/String;,", ") (40) +24: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (42) +25: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (45) +26: LocalStore(Ljava/lang/Object;,1) (48) +27: Goto(30) (49) +28: Constant(I,1) (52) +29: LocalStore(I,2) (53) +30: New(Ljava/lang/StringBuilder;,0) (54) +31: Dup(1,0) (57) +32: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (58) +33: LocalLoad(Ljava/lang/Object;,1) (61) +34: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (62) +35: LocalLoad(I,3) (65) +36: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (66) +37: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (69) +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (72) +39: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (75) +40: LocalStore(Ljava/lang/Object;,1) (78) +41: LocalLoad(I,3) (79) +42: Constant(I,1) (79) +43: BinaryOp(I,add) (79) +44: LocalStore(I,3) (79) +45: Goto(6) (82) +46: New(Ljava/lang/StringBuilder;,0) (85) +47: Dup(1,0) (88) +48: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (89) +49: LocalLoad(Ljava/lang/Object;,1) (92) +50: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (93) +51: Constant(Ljava/lang/String;,"}") (96) +52: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (98) +53: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (101) +54: LocalStore(Ljava/lang/Object;,1) (104) +55: LocalLoad(Ljava/lang/Object;,1) (105) +56: Return(Ljava/lang/Object;) (106) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +2: LocalLoad(Ljava/lang/Object;,0) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: Constant(Ljava/lang/String;,"{") (0) + Handles null at 66 +5: LocalStore(Ljava/lang/Object;,1) (2) + Handles null at 66 +6: Constant(I,0) (3) + Handles null at 66 +7: LocalStore(I,2) (4) + Handles null at 66 +8: Constant(I,0) (5) + Handles null at 66 +9: LocalStore(I,3) (6) + Handles null at 66 +10: LocalLoad(I,3) (7) + Handles null at 66 +11: Invoke(STATIC,Ljava_cup/terminal;,number,()I) (8) + Handles null at 66 +12: ConditionalBranch(I,ge,50) (11) + Handles null at 66 +13: LocalLoad(Ljava/lang/Object;,0) (14) + Handles null at 66 +14: Get(Ljava/util/BitSet;,NONSTATIC,Ljava_cup/terminal_set;,_elements) (15) + Handles null at 66 +15: LocalLoad(I,3) (18) + Handles null at 66 +16: Invoke(VIRTUAL,Ljava/util/BitSet;,get,(I)Z) (19) + Handles null at 66 +17: Constant(I,0) (22) + Handles null at 66 +18: ConditionalBranch(I,eq,45) (22) + Handles null at 66 +19: LocalLoad(I,2) (25) + Handles null at 66 +20: Constant(I,0) (26) + Handles null at 66 +21: ConditionalBranch(I,eq,32) (26) + Handles null at 66 +22: New(Ljava/lang/StringBuilder;,0) (29) + Handles null at 66 +23: Dup(1,0) (32) + Handles null at 66 +24: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (33) + Handles null at 66 +25: LocalLoad(Ljava/lang/Object;,1) (36) + Handles null at 66 +26: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (37) + Handles null at 66 +27: Constant(Ljava/lang/String;,", ") (40) + Handles null at 66 +28: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (42) + Handles null at 66 +29: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (45) + Handles null at 66 +30: LocalStore(Ljava/lang/Object;,1) (48) + Handles null at 66 +31: Goto(34) (49) + Handles null at 66 +32: Constant(I,1) (52) + Handles null at 66 +33: LocalStore(I,2) (53) + Handles null at 66 +34: New(Ljava/lang/StringBuilder;,0) (54) + Handles null at 66 +35: Dup(1,0) (57) + Handles null at 66 +36: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (58) + Handles null at 66 +37: LocalLoad(Ljava/lang/Object;,1) (61) + Handles null at 66 +38: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (62) + Handles null at 66 +39: LocalLoad(I,3) (65) + Handles null at 66 +40: Invoke(STATIC,Ljava_cup/terminal;,find,(I)Ljava_cup/terminal;) (66) + Handles null at 66 +41: Invoke(VIRTUAL,Ljava_cup/terminal;,name,()Ljava/lang/String;) (69) + Handles null at 66 +42: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (72) + Handles null at 66 +43: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (75) + Handles null at 66 +44: LocalStore(Ljava/lang/Object;,1) (78) + Handles null at 66 +45: LocalLoad(I,3) (79) + Handles null at 66 +46: Constant(I,1) (79) + Handles null at 66 +47: BinaryOp(I,add) (79) + Handles null at 66 +48: LocalStore(I,3) (79) + Handles null at 66 +49: Goto(10) (82) + Handles null at 66 +50: New(Ljava/lang/StringBuilder;,0) (85) + Handles null at 66 +51: Dup(1,0) (88) + Handles null at 66 +52: Invoke(SPECIAL,Ljava/lang/StringBuilder;,,()V) (89) + Handles null at 66 +53: LocalLoad(Ljava/lang/Object;,1) (92) + Handles null at 66 +54: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (93) + Handles null at 66 +55: Constant(Ljava/lang/String;,"}") (96) + Handles null at 66 +56: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,append,(Ljava/lang/String;)Ljava/lang/StringBuilder;) (98) + Handles null at 66 +57: Invoke(VIRTUAL,Ljava/lang/StringBuilder;,toString,()Ljava/lang/String;) (101) + Handles null at 66 +58: LocalStore(Ljava/lang/Object;,1) (104) + Handles null at 66 +59: LocalLoad(Ljava/lang/Object;,1) (105) + Handles null at 66 +60: Constant(Ljava/lang/String;,"java_cup/terminal_set") (106) + Handles null at 66 +61: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (106) + Handles null at 66 +62: LocalLoad(Ljava/lang/Object;,0) (106) + Handles null at 66 +63: Constant(I,0) (106) + Handles null at 66 +64: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (106) + Handles null at 66 +65: Return(Ljava/lang/Object;) (106) + Handles null at 66 +66: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +67: Constant(Ljava/lang/String;,"toString()Ljava/lang/String;") (0) +68: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +69: Constant(I,1) (0) +70: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +71: Throw() (0) +Instrumenting ()V: +Initial ShrikeBT code: +0: New(Ljava_cup/terminal_set;,0) (0) +1: Dup(1,0) (3) +2: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (4) +3: Put(Ljava_cup/terminal_set;,STATIC,Ljava_cup/terminal_set;,EMPTY) (7) +4: Return(V) (10) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: New(Ljava_cup/terminal_set;,0) (0) + Handles null at 14 +5: Dup(1,0) (3) + Handles null at 14 +6: Invoke(SPECIAL,Ljava_cup/terminal_set;,,()V) (4) + Handles null at 14 +7: Put(Ljava_cup/terminal_set;,STATIC,Ljava_cup/terminal_set;,EMPTY) (7) + Handles null at 14 +8: Constant(Ljava/lang/String;,"java_cup/terminal_set") (10) + Handles null at 14 +9: Constant(Ljava/lang/String;,"()V") (10) + Handles null at 14 +10: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (10) + Handles null at 14 +11: Constant(I,0) (10) + Handles null at 14 +12: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (10) + Handles null at 14 +13: Return(V) (10) + Handles null at 14 +14: Constant(Ljava/lang/String;,"java_cup/terminal_set") (0) +15: Constant(Ljava/lang/String;,"()V") (0) +16: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +17: Constant(I,1) (0) +18: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +19: Throw() (0) +Class: java_cup/version +Instrumenting ()V: +Initial ShrikeBT code: +0: LocalLoad(Ljava/lang/Object;,0) (0) +1: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) +2: Return(V) (4) +Final ShrikeBT code: +0: Constant(Ljava/lang/String;,"java_cup/version") (0) +1: Constant(Ljava/lang/String;,"()V") (0) +2: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +3: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,execution,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V) (0) +4: LocalLoad(Ljava/lang/Object;,0) (0) + Handles null at 12 +5: Invoke(SPECIAL,Ljava/lang/Object;,,()V) (1) + Handles null at 12 +6: Constant(Ljava/lang/String;,"java_cup/version") (4) + Handles null at 12 +7: Constant(Ljava/lang/String;,"()V") (4) + Handles null at 12 +8: LocalLoad(Ljava/lang/Object;,0) (4) + Handles null at 12 +9: Constant(I,0) (4) + Handles null at 12 +10: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (4) + Handles null at 12 +11: Return(V) (4) + Handles null at 12 +12: Constant(Ljava/lang/String;,"java_cup/version") (0) +13: Constant(Ljava/lang/String;,"()V") (0) +14: Get(Ljava/lang/Object;,STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,NULL_TAG) (0) +15: Constant(I,1) (0) +16: Invoke(STATIC,Lcom/ibm/wala/shrike/cg/Runtime;,termination,(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V) (0) +17: Throw() (0) diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/Activator.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/Activator.java new file mode 100644 index 000000000..39c1fd15a --- /dev/null +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/Activator.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package com.ibm.wala.dalvik.test; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + private static BundleContext context; + + static BundleContext getContext() { + return context; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext bundleContext) throws Exception { + Activator.context = bundleContext; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext bundleContext) throws Exception { + Activator.context = null; + } + +} diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DalvikCallGraphTestBase.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DalvikCallGraphTestBase.java new file mode 100644 index 000000000..3d3950b99 --- /dev/null +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DalvikCallGraphTestBase.java @@ -0,0 +1,187 @@ +/******************************************************************************* + * Copyright (c) 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package com.ibm.wala.dalvik.test.callGraph; + +import static com.ibm.wala.properties.WalaProperties.ANDROID_DEX_TOOL; +import static com.ibm.wala.properties.WalaProperties.ANDROID_RT_JAR; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Properties; +import java.util.Set; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.JarFileModule; +import com.ibm.wala.classLoader.Module; +import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; +import com.ibm.wala.core.tests.shrike.DynamicCallGraphTestBase; +import com.ibm.wala.dalvik.classLoader.DexIRFactory; +import com.ibm.wala.dalvik.util.AndroidAnalysisScope; +import com.ibm.wala.dalvik.util.AndroidEntryPointLocator; +import com.ibm.wala.dalvik.util.AndroidEntryPointLocator.LocatorFlags; +import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.AnalysisScope; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.impl.Util; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder; +import com.ibm.wala.ipa.cha.ClassHierarchy; +import com.ibm.wala.ipa.cha.ClassHierarchyException; +import com.ibm.wala.ipa.cha.IClassHierarchy; +import com.ibm.wala.properties.WalaProperties; +import com.ibm.wala.shrikeBT.analysis.Analyzer.FailureException; +import com.ibm.wala.shrikeCT.InvalidClassFileException; +import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.CancelException; +import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.WalaException; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.collections.Pair; +import com.ibm.wala.util.functions.Function; +import com.ibm.wala.util.io.TemporaryFile; + +public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase { + public static Properties walaProperties; + + static { + try { + walaProperties = WalaProperties.loadProperties(); + } catch (WalaException e) { + walaProperties = null; + assert false : e; + } + } + + protected static Set processCG(CallGraph cg, Predicate filter, Function map) { + Set result = HashSetFactory.make(); + for(CGNode n : cg) { + if (filter.test(n)) { + result.add(map.apply(n)); + } + } + return result; + } + + protected static Set applicationMethods(CallGraph cg) { + return processCG(cg, + new Predicate() { + @Override + public boolean test(CGNode t) { + return t.getMethod().getReference().getDeclaringClass().getClassLoader().equals(ClassLoaderReference.Application); + } + }, + new Function() { + @Override + public MethodReference apply(CGNode object) { + return object.getMethod().getReference(); + } + }); + } + + + protected static String getJavaJar(AnalysisScope javaScope) { + Module javaJar = javaScope.getModules(javaScope.getApplicationLoader()).iterator().next(); + assert javaJar instanceof JarFileModule; + String javaJarPath = ((JarFileModule)javaJar).getAbsolutePath(); + return javaJarPath; + } + + public static File convertJarToDex(File jarFile) throws IOException, InterruptedException { + File f = File.createTempFile("convert", ".dex"); + f.deleteOnExit(); + Process p = Runtime.getRuntime().exec(walaProperties.getProperty(ANDROID_DEX_TOOL) + " --dex --output=" + f.getAbsolutePath() + " " + jarFile.getAbsolutePath()); + p.waitFor(); + return f; + } + + public void dynamicCG(File javaJarPath, String mainClass, String... args) throws FileNotFoundException, IOException, ClassNotFoundException, InvalidClassFileException, FailureException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { + File F = TemporaryFile.streamToFile(new File("test_jar.jar"), new FileInputStream(javaJarPath)); + F.deleteOnExit(); + instrument(F.getAbsolutePath()); + run(mainClass.substring(1).replace('/', '.'), "LibraryExclusions.txt", args); + } + + public static Pair> makeAPKCallGraph(String apkFileName) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException { + AnalysisScope scope = + AndroidAnalysisScope.setUpAndroidAnalysisScope( + walaProperties.getProperty(ANDROID_RT_JAR), + apkFileName, + CallGraphTestUtil.REGRESSION_EXCLUSIONS); + + final IClassHierarchy cha = ClassHierarchy.make(scope); + + AnalysisCache cache = new AnalysisCache(new DexIRFactory()); + + Set flags = HashSetFactory.make(); + flags.add(LocatorFlags.INCLUDE_CALLBACKS); + flags.add(LocatorFlags.EP_HEURISTIC); + flags.add(LocatorFlags.CB_HEURISTIC); + AndroidEntryPointLocator eps = new AndroidEntryPointLocator(flags); + List es = eps.getEntryPoints(cha); + + assert ! es.isEmpty(); + + AnalysisOptions options = new AnalysisOptions(scope, es); + + SSAPropagationCallGraphBuilder cgb = Util.makeZeroCFABuilder(options, cache, cha, scope); + + CallGraph callGraph = cgb.makeCallGraph(options); + + PointerAnalysis ptrAnalysis = cgb.getPointerAnalysis(); + + return Pair.make(callGraph, ptrAnalysis); + } + + public static Pair> makeDalvikCallGraph(boolean useAndroidLib, String mainClassName, String dexFileName) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException { + AnalysisScope scope = + AndroidAnalysisScope.setUpAndroidAnalysisScope( + useAndroidLib? + walaProperties.getProperty(ANDROID_RT_JAR): + null, + dexFileName, + CallGraphTestUtil.REGRESSION_EXCLUSIONS); + + final IClassHierarchy cha = ClassHierarchy.make(scope); + + TypeReference mainClassRef = TypeReference.findOrCreate(ClassLoaderReference.Application, mainClassName); + IClass mainClass = cha.lookupClass(mainClassRef); + assert mainClass != null; + + System.err.println("building call graph for " + mainClass + ":" + mainClass.getClass()); + + Iterable entrypoints = Util.makeMainEntrypoints(scope, cha, mainClassName); + + AnalysisCache cache = new AnalysisCache(new DexIRFactory()); + + AnalysisOptions options = new AnalysisOptions(scope, entrypoints); + + SSAPropagationCallGraphBuilder cgb = Util.makeZeroCFABuilder(options, cache, cha, scope); + + CallGraph callGraph = cgb.makeCallGraph(options); + + MethodReference mmr = MethodReference.findOrCreate(mainClassRef, "main", "([Ljava/lang/String;)V"); + assert !callGraph.getNodes(mmr).isEmpty(); + + PointerAnalysis ptrAnalysis = cgb.getPointerAnalysis(); + + return Pair.make(callGraph, ptrAnalysis); + } +} diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DroidBenchCGTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DroidBenchCGTest.java new file mode 100644 index 000000000..567b81b42 --- /dev/null +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DroidBenchCGTest.java @@ -0,0 +1,133 @@ +/******************************************************************************* + * Copyright (c) 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package com.ibm.wala.dalvik.test.callGraph; + +import java.io.File; +import java.io.FilenameFilter; +import java.io.IOException; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.cha.ClassHierarchyException; +import com.ibm.wala.shrikeCT.InvalidClassFileException; +import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.CancelException; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.collections.Pair; + +@RunWith(Parameterized.class) +public class DroidBenchCGTest extends DalvikCallGraphTestBase { + + private static MethodReference ref(String type, String name, String sig) { + return MethodReference.findOrCreate(TypeReference.findOrCreate(ClassLoaderReference.Application, type), name, sig); + } + private static final Map> uncalledFunctions = HashMapFactory.make(); + static { + Set x = HashSetFactory.make(); + x.add(ref("Lde/ecspride/data/User", "setPwd", "(Lde/ecspride/data/Password;)V")); + x.add(ref("Lde/ecspride/data/Password", "setPassword", "(Ljava/lang/String;)V")); + uncalledFunctions.put("AndroidSpecific_PrivateDataLeak1.apk", x); + + x = HashSetFactory.make(); + x.add(ref("Lde/ecspride/Datacontainer", "getSecret", "()Ljava/lang/String;")); + x.add(ref("Lde/ecspride/Datacontainer", "getDescription", "()Ljava/lang/String;")); + uncalledFunctions.put("FieldAndObjectSensitivity_FieldSensitivity1.apk", x); + + x = HashSetFactory.make(); + x.add(ref("Lde/ecspride/Datacontainer", "getSecret", "()Ljava/lang/String;")); + uncalledFunctions.put("FieldAndObjectSensitivity_FieldSensitivity2.apk", x); + + x = HashSetFactory.make(); + x.add(ref("Lde/ecspride/Datacontainer", "getDescription", "()Ljava/lang/String;")); + uncalledFunctions.put("FieldAndObjectSensitivity_FieldSensitivity3.apk", x); + + x = HashSetFactory.make(); + x.add(ref("Lde/ecspride/ConcreteClass", "foo", "()Ljava/lang/String;")); + uncalledFunctions.put("Reflection_Reflection1.apk", x); + } + + private static final String droidBenchRoot = System.getProperty("droidbench.root"); + + private void assertUserCodeReachable(CallGraph cg) throws InvalidClassFileException { + for(Iterator clss = cg.getClassHierarchy().getLoader(ClassLoaderReference.Application).iterateAllClasses(); + clss.hasNext(); ) + { + IClass cls = clss.next(); + if (cls.isInterface()) { + continue; + } + if (cls.getName().toString().contains("ecspride")) { + for(IMethod m : cls.getDeclaredMethods()) { + if (!m.isInit() && !m.isAbstract() && !uncalled.contains(m.getReference())) { + Assert.assertFalse(m + "(" + m.getSourcePosition(0) + ") cannot be called in " + apkFile, cg.getNodes(m.getReference()).isEmpty()); + System.err.println("found " + m); + } + } + } + } + } + + private final String apkFile; + + private final Set uncalled; + + public DroidBenchCGTest(String apkFile, Set uncalled) { + this.apkFile = apkFile; + this.uncalled = uncalled; + } + + @Test + public void test() throws IOException, ClassHierarchyException, CancelException, InvalidClassFileException { + System.err.println("testing " + apkFile + "..."); + Pair> x = makeAPKCallGraph(apkFile); + System.err.println(x.fst); + assertUserCodeReachable(x.fst); + System.err.println("...success testing " + apkFile); + } + + @Parameters + public static Collection generateData() { + List files = new LinkedList(); + File dir = new File(droidBenchRoot + "/apk/"); + for(String apkFile : dir.list(new FilenameFilter() { + @Override + public boolean accept(File dir, String name) { + return name.endsWith("apk"); + } + })) { + Set uncalled = uncalledFunctions.get(apkFile); + if (uncalled == null) { + uncalled = Collections.emptySet(); + } + files.add(new Object[]{ dir.getAbsolutePath() + "/" + apkFile, uncalled }); + } + return files; + } +} diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DynamicDalvikComparison.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DynamicDalvikComparison.java new file mode 100644 index 000000000..28362957f --- /dev/null +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DynamicDalvikComparison.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * Copyright (c) 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package com.ibm.wala.dalvik.test.callGraph; + +import java.io.File; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.util.Set; + +import org.junit.Test; + +import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; +import com.ibm.wala.core.tests.util.TestConstants; +import com.ibm.wala.ipa.callgraph.AnalysisScope; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.cha.ClassHierarchyException; +import com.ibm.wala.shrikeBT.analysis.Analyzer.FailureException; +import com.ibm.wala.shrikeCT.InvalidClassFileException; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.util.CancelException; +import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.collections.Pair; +import com.ibm.wala.util.io.TemporaryFile; + +public class DynamicDalvikComparison extends DalvikCallGraphTestBase { + + private void test(boolean useAndroidLib, String mainClass, String javaScopeFile, String... args) throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException, InterruptedException, ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InvalidClassFileException, FailureException { + AnalysisScope javaScope = CallGraphTestUtil.makeJ2SEAnalysisScope(javaScopeFile, CallGraphTestUtil.REGRESSION_EXCLUSIONS); + String javaJarPath = getJavaJar(javaScope); + File androidDex = convertJarToDex(new File(javaJarPath)); + Pair> android = makeDalvikCallGraph(useAndroidLib, mainClass, androidDex.getAbsolutePath()); + final Set androidMethods = applicationMethods(android.fst); + + dynamicCG(new File(javaJarPath), mainClass, args); + + checkEdges(android.fst, new Predicate() { + @Override + public boolean test(MethodReference t) { + return androidMethods.contains(t); + } + }); + } + + @Test + public void testJLex() throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException, InterruptedException, ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InvalidClassFileException, FailureException { + File inputFile = TemporaryFile.urlToFile("sample.lex", getClass().getClassLoader().getResource("sample.lex")); + test(false, TestConstants.JLEX_MAIN, TestConstants.JLEX, inputFile.getAbsolutePath()); + } + + @Test + public void testJavaCup() throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException, InterruptedException, ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InvalidClassFileException, FailureException { + File inputFile = TemporaryFile.urlToFile("troff2html.cup", getClass().getClassLoader().getResource("troff2html.cup")); + test(false, TestConstants.JAVA_CUP_MAIN, TestConstants.JAVA_CUP, inputFile.getAbsolutePath()); + } + +} diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java new file mode 100644 index 000000000..6fffaabe0 --- /dev/null +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * Copyright (c) 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package com.ibm.wala.dalvik.test.callGraph; + +import java.io.File; +import java.io.IOException; +import java.util.Set; + +import junit.framework.Assert; + +import org.junit.Test; + +import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; +import com.ibm.wala.core.tests.util.TestConstants; +import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.AnalysisScope; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.impl.Util; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder; +import com.ibm.wala.ipa.cha.ClassHierarchy; +import com.ibm.wala.ipa.cha.ClassHierarchyException; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.util.CancelException; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.collections.Pair; + +public class JVMLDalvikComparison extends DalvikCallGraphTestBase { + + private static Pair> makeJavaBuilder(String scopeFile, String mainClass) throws IOException, ClassHierarchyException, IllegalArgumentException, CancelException { + AnalysisScope scope = CallGraphTestUtil.makeJ2SEAnalysisScope(scopeFile, CallGraphTestUtil.REGRESSION_EXCLUSIONS); + ClassHierarchy cha = ClassHierarchy.make(scope); + Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, mainClass); + AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); + SSAPropagationCallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraph CG = builder.makeCallGraph(options); + return Pair.make(CG, builder.getPointerAnalysis()); + } + + private static Set> edgeDiff(CallGraph from, CallGraph to) { + Set> result = HashSetFactory.make(); + for(CGNode f : from) { + if (! f.getMethod().isSynthetic()) { + outer: for(CGNode t : from) { + if (!t.getMethod().isSynthetic() && from.hasEdge(f, t)) { + Set fts = to.getNodes(f.getMethod().getReference()); + Set tts = to.getNodes(t.getMethod().getReference()); + for(CGNode x : fts) { + for(CGNode y : tts) { + if (to.hasEdge(x, y)) { + continue outer; + } + } + } + result.add(Pair.make(f, t)); + } + } + } + } + return result; + } + + private static void test(boolean useAndroidLib, String mainClass, String javaScopeFile) throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException, InterruptedException { + Pair> java = makeJavaBuilder(javaScopeFile, mainClass); + + AnalysisScope javaScope = java.fst.getClassHierarchy().getScope(); + String javaJarPath = getJavaJar(javaScope); + File androidDex = convertJarToDex(new File(javaJarPath)); + Pair> android = makeDalvikCallGraph(useAndroidLib, mainClass, androidDex.getAbsolutePath()); + + Set androidMethods = applicationMethods(android.fst); + Set javaMethods = applicationMethods(java.fst); + + Set androidExtra = HashSetFactory.make(androidMethods); + androidExtra.removeAll(javaMethods); + System.err.println(androidExtra); + + Set javaExtra = HashSetFactory.make(javaMethods); + javaExtra.removeAll(androidMethods); + System.err.println(javaExtra); + + System.err.println(edgeDiff(android.fst, java.fst)); + + System.err.println(edgeDiff(java.fst, android.fst)); + + Assert.assertTrue(androidMethods.containsAll(javaMethods)); + } + + @Test + public void testJLex() throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException, InterruptedException { + test(false, TestConstants.JLEX_MAIN, TestConstants.JLEX); + } + + @Test + public void testJavaCup() throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException, InterruptedException { + test(false, TestConstants.JAVA_CUP_MAIN, TestConstants.JAVA_CUP); + } + + @Test + public void testBCEL() throws ClassHierarchyException, IllegalArgumentException, IOException, CancelException, InterruptedException { + test(false, TestConstants.BCEL_VERIFIER_MAIN, TestConstants.BCEL); + } +} diff --git a/com.ibm.wala.dalvik.test/sym.java b/com.ibm.wala.dalvik.test/sym.java new file mode 100644 index 000000000..2218df8e0 --- /dev/null +++ b/com.ibm.wala.dalvik.test/sym.java @@ -0,0 +1,72 @@ + +//---------------------------------------------------- +// The following code was generated by CUP v0.11b 20140808 (SVN rev 54) +//---------------------------------------------------- + +/** CUP generated class containing symbol constants. */ +public class sym { + /* terminals */ + public static final int NH = 11; + public static final int CR = 22; + public static final int T_OPT = 27; + public static final int TE = 24; + public static final int RS = 8; + public static final int IP = 7; + public static final int LP = 10; + public static final int T_FORM = 28; + public static final int TC_ = 25; + public static final int R = 16; + public static final int UL = 20; + public static final int AU = 3; + public static final int LG = 17; + public static final int T_ROW = 29; + public static final int DS = 5; + public static final int I = 15; + public static final int RE = 9; + public static final int PP = 13; + public static final int EOF = 0; + public static final int AI = 4; + public static final int B = 14; + public static final int SM = 19; + public static final int TXT = 26; + public static final int DE = 6; + public static final int SH = 12; + public static final int error = 1; + public static final int TS = 23; + public static final int N_L = 21; + public static final int NL = 18; + public static final int TL = 2; + public static final String[] terminalNames = new String[] { + "EOF", + "error", + "TL", + "AU", + "AI", + "DS", + "DE", + "IP", + "RS", + "RE", + "LP", + "NH", + "SH", + "PP", + "B", + "I", + "R", + "LG", + "NL", + "SM", + "UL", + "N_L", + "CR", + "TS", + "TE", + "TC_", + "TXT", + "T_OPT", + "T_FORM", + "T_ROW" + }; +} + diff --git a/com.ibm.wala.dalvik/.classpath b/com.ibm.wala.dalvik/.classpath index 123a12f60..d8fd74849 100644 --- a/com.ibm.wala.dalvik/.classpath +++ b/com.ibm.wala.dalvik/.classpath @@ -3,15 +3,12 @@ - - - + + + + + + - - - - - - diff --git a/com.ibm.wala.dalvik/META-INF/MANIFEST.MF b/com.ibm.wala.dalvik/META-INF/MANIFEST.MF index b54a34071..228d58d29 100644 --- a/com.ibm.wala.dalvik/META-INF/MANIFEST.MF +++ b/com.ibm.wala.dalvik/META-INF/MANIFEST.MF @@ -8,13 +8,76 @@ Bundle-ClassPath: dalvik.jar, lib/commons-io-2.4.jar, lib/commons-lang3-3.1.jar, lib/dexlib-1.3.4-dev.jar, - lib/guava-13.0.1.jar, - lib/jgrapht-0.8.3.jar, - lib/junit-4.11.jar, lib/logback-classic-1.0.9.jar, lib/logback-core-1.0.9.jar, lib/slf4j-api-1.7.2.jar -Export-Package: com.ibm.wala.dalvik.classLoader, +Export-Package: ch.qos.logback.classic, + ch.qos.logback.classic.boolex, + ch.qos.logback.classic.db, + ch.qos.logback.classic.db.names, + ch.qos.logback.classic.encoder, + ch.qos.logback.classic.filter, + ch.qos.logback.classic.gaffer, + ch.qos.logback.classic.helpers, + ch.qos.logback.classic.html, + ch.qos.logback.classic.jmx, + ch.qos.logback.classic.joran, + ch.qos.logback.classic.joran.action, + ch.qos.logback.classic.jul, + ch.qos.logback.classic.log4j, + ch.qos.logback.classic.net, + ch.qos.logback.classic.pattern, + ch.qos.logback.classic.pattern.color, + ch.qos.logback.classic.selector, + ch.qos.logback.classic.selector.servlet, + ch.qos.logback.classic.sift, + ch.qos.logback.classic.spi, + ch.qos.logback.classic.turbo, + ch.qos.logback.classic.util, + ch.qos.logback.core, + ch.qos.logback.core.boolex, + ch.qos.logback.core.db, + ch.qos.logback.core.db.dialect, + ch.qos.logback.core.encoder, + ch.qos.logback.core.filter, + ch.qos.logback.core.helpers, + ch.qos.logback.core.html, + ch.qos.logback.core.joran, + ch.qos.logback.core.joran.action, + ch.qos.logback.core.joran.conditional, + ch.qos.logback.core.joran.event, + ch.qos.logback.core.joran.spi, + ch.qos.logback.core.joran.util, + ch.qos.logback.core.layout, + ch.qos.logback.core.net, + ch.qos.logback.core.pattern, + ch.qos.logback.core.pattern.color, + ch.qos.logback.core.pattern.parser, + ch.qos.logback.core.pattern.util, + ch.qos.logback.core.property, + ch.qos.logback.core.read, + ch.qos.logback.core.recovery, + ch.qos.logback.core.rolling, + ch.qos.logback.core.rolling.helper, + ch.qos.logback.core.sift, + ch.qos.logback.core.spi, + ch.qos.logback.core.status, + ch.qos.logback.core.subst, + ch.qos.logback.core.util, + com.google.common.annotations, + com.google.common.base, + com.google.common.base.internal, + com.google.common.cache, + com.google.common.collect, + com.google.common.eventbus, + com.google.common.hash, + com.google.common.io, + com.google.common.math, + com.google.common.net, + com.google.common.primitives, + com.google.common.reflect, + com.google.common.util.concurrent, + com.ibm.wala.dalvik.classLoader, com.ibm.wala.dalvik.dex.instructions, com.ibm.wala.dalvik.dex.util.config, com.ibm.wala.dalvik.ipa.callgraph.androidModel, @@ -25,7 +88,25 @@ Export-Package: com.ibm.wala.dalvik.classLoader, com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa, com.ibm.wala.dalvik.ssa, com.ibm.wala.dalvik.util, - com.ibm.wala.dalvik.util.androidEntryPoints + com.ibm.wala.dalvik.util.androidEntryPoints, + org.apache.commons.cli, + org.apache.commons.io, + org.apache.commons.io.comparator, + org.apache.commons.io.filefilter, + org.apache.commons.io.input, + org.apache.commons.io.monitor, + org.apache.commons.io.output, + org.jf.dexlib, + org.jf.dexlib.Code, + org.jf.dexlib.Code.Analysis, + org.jf.dexlib.Code.Format, + org.jf.dexlib.Debug, + org.jf.dexlib.EncodedValue, + org.jf.dexlib.Util, + org.slf4j, + org.slf4j.helpers, + org.slf4j.impl, + org.slf4j.spi Require-Bundle: com.ibm.wala.cast;bundle-version="1.0.0", com.ibm.wala.core;bundle-version="1.1.3", com.ibm.wala.ide;bundle-version="1.1.3", diff --git a/com.ibm.wala.dalvik/README b/com.ibm.wala.dalvik/README index bd4846d3d..ef5d105dc 100644 --- a/com.ibm.wala.dalvik/README +++ b/com.ibm.wala.dalvik/README @@ -8,3 +8,5 @@ https://github.com/SCanDroid (c) Copyright 2009-2012 The preferred license for SCanDroid is the BSD License and the majority of the SCanDroid software is licensed with it. + +Based on that license, the code in WALA is being redistributed under the EPL. diff --git a/com.ibm.wala.dalvik/build.xml b/com.ibm.wala.dalvik/build.xml new file mode 100755 index 000000000..d114205ed --- /dev/null +++ b/com.ibm.wala.dalvik/build.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/com.ibm.wala.dalvik/lib/android/android-2.3.7_r1.jar b/com.ibm.wala.dalvik/lib/android/android-2.3.7_r1.jar deleted file mode 100644 index a708e44b0..000000000 Binary files a/com.ibm.wala.dalvik/lib/android/android-2.3.7_r1.jar and /dev/null differ diff --git a/com.ibm.wala.dalvik/lib/commons-lang3-3.1.jar b/com.ibm.wala.dalvik/lib/commons-lang3-3.1.jar deleted file mode 100644 index a85e539b1..000000000 Binary files a/com.ibm.wala.dalvik/lib/commons-lang3-3.1.jar and /dev/null differ diff --git a/com.ibm.wala.dalvik/lib/jgrapht-0.8.3.jar b/com.ibm.wala.dalvik/lib/jgrapht-0.8.3.jar deleted file mode 100644 index cac28d1e9..000000000 Binary files a/com.ibm.wala.dalvik/lib/jgrapht-0.8.3.jar and /dev/null differ diff --git a/com.ibm.wala.dalvik/lib/junit-4.11.jar b/com.ibm.wala.dalvik/lib/junit-4.11.jar deleted file mode 100644 index aaf744484..000000000 Binary files a/com.ibm.wala.dalvik/lib/junit-4.11.jar and /dev/null differ diff --git a/com.ibm.wala.dalvik/lib/slf4j-api-1.7.2.jar b/com.ibm.wala.dalvik/lib/slf4j-api-1.7.2.jar index 1a8870833..73f38db9c 100644 Binary files a/com.ibm.wala.dalvik/lib/slf4j-api-1.7.2.jar and b/com.ibm.wala.dalvik/lib/slf4j-api-1.7.2.jar differ diff --git a/com.ibm.wala.dalvik/models/src/ActivityModelActivity.java b/com.ibm.wala.dalvik/models/src/ActivityModelActivity.java index 403bc55f7..a948cfd26 100644 --- a/com.ibm.wala.dalvik/models/src/ActivityModelActivity.java +++ b/com.ibm.wala.dalvik/models/src/ActivityModelActivity.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/ActivityModelMethod.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/ActivityModelMethod.java index a292cd808..d54df83b4 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/ActivityModelMethod.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/ActivityModelMethod.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java index 75f8a9192..3892c8bc1 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java @@ -493,7 +493,7 @@ public class DexCFG extends AbstractCFG{ // case OP_invokevirtual: // case OP_invokespecial: // case OP_invokeinterface: - return JavaLanguage.getNullPointerException(); + return JavaLanguage.getNullPointerException(); case DIV_INT: case DIV_INT_2ADDR: case DIV_INT_LIT16: diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexConstants.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexConstants.java index 2b3d78222..5853143b3 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexConstants.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexConstants.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexFileModule.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexFileModule.java index 2cb282810..fc4985749 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexFileModule.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexFileModule.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIClass.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIClass.java index af294e7b0..57eefda4a 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIClass.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIClass.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIContextInterpreter.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIContextInterpreter.java index 6835dedb2..7d250d604 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIContextInterpreter.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIContextInterpreter.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIField.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIField.java index 244dfb8b4..cb5363575 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIField.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIField.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIMethod.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIMethod.java index e7156364b..9544a4b8d 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIMethod.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIMethod.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, @@ -672,16 +681,18 @@ public class DexIMethod implements IBytecodeMethod { } - // for (int i = 0; i < instructions().size(); i++) { - // handlers[i] = (ExceptionHandler[])temp_array.get(i).toArray(new ExceptionHandler[temp_array.get(i).size()]); - // - // System.out.println("i: " + i); - // for (int j = 0; j < handlers[i].length; j++) { - // System.out.println("\t j: " + j); - // System.out.println("\t\t Handler: " + handlers[i][j].getHandler()); - // System.out.println("\t\t Catch Class: " + handlers[i][j].getCatchClass()); - // } - // } + for (int i = 0; i < instructions().size(); i++) { + handlers[i] = (ExceptionHandler[])temp_array.get(i).toArray(new ExceptionHandler[temp_array.get(i).size()]); + + /* + System.out.println("i: " + i); + for (int j = 0; j < handlers[i].length; j++) { + System.out.println("\t j: " + j); + System.out.println("\t\t Handler: " + handlers[i][j].getHandler()); + System.out.println("\t\t Catch Class: " + handlers[i][j].getCatchClass()); + } + */ + } return handlers; } @@ -3306,17 +3317,15 @@ public class DexIMethod implements IBytecodeMethod { return empty; } - assert(false) : "Please review getCallSites-Implementation before use!"; // TODO + // assert(false) : "Please review getCallSites-Implementation before use!"; // TODO ArrayList csites = new ArrayList(); // XXX The call Sites in this method or to this method?!!! for (Instruction inst: instructions()) { if (inst instanceof Invoke) { // Locate the Target - MethodReference target; - ClassLoaderReference loader = ClassLoaderReference.Primordial; - target = MethodReference.findOrCreate( - loader, // XXX: Is this the correct class loader? + MethodReference target = MethodReference.findOrCreate( + getDeclaringClass().getClassLoader().getReference(), // XXX: Is this the correct class loader? ((Invoke)inst).clazzName, ((Invoke)inst).methodName, ((Invoke)inst).descriptor ); diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexModuleEntry.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexModuleEntry.java index a99cb48f7..5cebab8eb 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexModuleEntry.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexModuleEntry.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/InstructionArray.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/InstructionArray.java index 7dd41b36a..ad2a371ce 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/InstructionArray.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/InstructionArray.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/Literal.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/Literal.java index 9c42cce06..082cd4bad 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/Literal.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/Literal.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/WDexClassLoaderImpl.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/WDexClassLoaderImpl.java index d0a270365..304efce93 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/WDexClassLoaderImpl.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/WDexClassLoaderImpl.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayFill.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayFill.java index 0f58b7885..3ebe648cd 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayFill.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayFill.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayGet.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayGet.java index fa2656ac6..ea2eb8594 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayGet.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayGet.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayLength.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayLength.java index ecc301d3d..fc5f83e56 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayLength.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayLength.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayPut.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayPut.java index 11f4225e5..21f52fd79 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayPut.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/ArrayPut.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/BinaryLiteralOperation.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/BinaryLiteralOperation.java index a946e7584..bb69dc50c 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/BinaryLiteralOperation.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/BinaryLiteralOperation.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/BinaryOperation.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/BinaryOperation.java index c95258fe9..9c59461a4 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/BinaryOperation.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/BinaryOperation.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Branch.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Branch.java index e410c151c..806aca2db 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Branch.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Branch.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/CheckCast.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/CheckCast.java index 631e8cccb..3046b95dd 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/CheckCast.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/CheckCast.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Constant.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Constant.java index b77d41b6f..9c56682a9 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Constant.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Constant.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/GetField.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/GetField.java index 5be831fd8..89a54e8e3 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/GetField.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/GetField.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Goto.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Goto.java index 56b27eb9e..ee181ff53 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Goto.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Goto.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/InstanceOf.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/InstanceOf.java index 6f195a68b..b83115bfb 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/InstanceOf.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/InstanceOf.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Instruction.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Instruction.java index c95d890c2..f601a72ab 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Instruction.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Instruction.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Invoke.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Invoke.java index 780b5a1a7..6e22a7bc9 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Invoke.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Invoke.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Monitor.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Monitor.java index 972fe8f22..2cea2fa64 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Monitor.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Monitor.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/New.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/New.java index 2697883b0..d43d0fa94 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/New.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/New.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/NewArray.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/NewArray.java index bfe82b0b8..0ca641d01 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/NewArray.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/NewArray.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/NewArrayFilled.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/NewArrayFilled.java index 6eefe6131..91429fb3c 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/NewArrayFilled.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/NewArrayFilled.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/PackedSwitchPad.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/PackedSwitchPad.java index 6159373f3..cbddb257b 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/PackedSwitchPad.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/PackedSwitchPad.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/PutField.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/PutField.java index fc4be918f..1aa72a3e1 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/PutField.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/PutField.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Return.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Return.java index 08feda095..830b30bbd 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Return.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Return.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/SparseSwitchPad.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/SparseSwitchPad.java index b7fbbb3f4..c238febd6 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/SparseSwitchPad.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/SparseSwitchPad.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Switch.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Switch.java index 97f72ef04..9ac887fcc 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Switch.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Switch.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/SwitchPad.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/SwitchPad.java index 5fe58cdf5..0f3ec06ba 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/SwitchPad.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/SwitchPad.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Throw.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Throw.java index 375302e5d..bb91b6464 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Throw.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/Throw.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java index d92c120eb..c9c874453 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/util/config/DexAnalysisScopeReader.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/util/config/DexAnalysisScopeReader.java index 17d32bdbe..96d6cf282 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/util/config/DexAnalysisScopeReader.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/util/config/DexAnalysisScopeReader.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, @@ -38,7 +47,6 @@ package com.ibm.wala.dalvik.dex.util.config; -import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -53,6 +61,7 @@ import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.config.FileOfClasses; import com.ibm.wala.util.debug.Assertions; +import com.ibm.wala.util.io.FileProvider; /** * Create AnalysisScope from java & dalvik file. @@ -69,19 +78,33 @@ public class DexAnalysisScopeReader extends AnalysisScopeReader { private static final String BASIC_FILE = "./primordial.txt"; // Path inside jar /** END Custom change: Fixes in AndroidAnalysisScope */ - public static AnalysisScope makeAndroidBinaryAnalysisScope(String classPath, String exclusions) throws IOException { + public static AnalysisScope makeAndroidBinaryAnalysisScope(String classPath, String exclusionsFile) throws IOException { if (classPath == null) { throw new IllegalArgumentException("classPath null"); } /** BEGIN Custom change: Fixes in AndroidAnalysisScope */ AnalysisScope scope = AnalysisScope.createJavaAnalysisScope(); //AnalysisScope scope = AnalysisScopeReader.makePrimordialScope(null); - scope.setExclusions(new FileOfClasses(new ByteArrayInputStream(exclusions.getBytes()))); + scope.setExclusions(new FileOfClasses(new FileInputStream((new FileProvider()).getFile(exclusionsFile)))); ClassLoaderReference loader = scope.getLoader(AnalysisScope.APPLICATION); /** END Custom change: Fixes in AndroidAnalysisScope */ addClassPathToScope(classPath, scope, loader); return scope; } + + public static AnalysisScope makeTestAndroidBinaryAnalysisScope(String classPath, String exclusionsFile) throws IOException { + if (classPath == null) { + throw new IllegalArgumentException("classPath null"); + } +/** BEGIN Custom change: Fixes in AndroidAnalysisScope */ + // AnalysisScope scope = AnalysisScope.createJavaAnalysisScope(); + AnalysisScope scope = AnalysisScopeReader.makePrimordialScope((new FileProvider()).getFile(exclusionsFile)); + ClassLoaderReference loader = scope.getLoader(AnalysisScope.APPLICATION); +/** END Custom change: Fixes in AndroidAnalysisScope */ + addClassPathToScope(classPath, scope, loader); + return scope; + } + /** * @param classPath * class path to analyze, delimited by File.pathSeparator @@ -119,7 +142,7 @@ public class DexAnalysisScopeReader extends AnalysisScopeReader { } public static AnalysisScope makeAndroidBinaryAnalysisScope(URI classPath, - File exclusionsFile) throws IOException { + String exclusionsFile) throws IOException { if (classPath == null) { throw new IllegalArgumentException("classPath null"); } diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModel.java index 13a0558a0..d0c67c547 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModelClass.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModelClass.java index 29f314454..d3bc65ae9 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModelClass.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModelClass.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/IntentModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/IntentModel.java index f9421a370..670e6ce4e 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/IntentModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/IntentModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MicroModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MicroModel.java index 39033c311..fd57f80f1 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MicroModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MicroModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MiniModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MiniModel.java index 97d64ce66..f69a71481 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MiniModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MiniModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/package-info.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/package-info.java index d5af65612..243525e48 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/package-info.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/package-info.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/AndroidModelParameterManager.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/AndroidModelParameterManager.java index a1edd3885..3557a6ef7 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/AndroidModelParameterManager.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/AndroidModelParameterManager.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java index 1457d0ea4..52b34b8ae 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/FlatInstantiator.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/FlatInstantiator.java index ed1b0d96a..d6c8bb40d 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/FlatInstantiator.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/FlatInstantiator.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/IInstantiationBehavior.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/IInstantiationBehavior.java index 2beb4b66f..7bdb3091b 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/IInstantiationBehavior.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/IInstantiationBehavior.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/Instantiator.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/Instantiator.java index 560d48650..71fbf1ca6 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/Instantiator.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/Instantiator.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/LoadedInstantiationBehavior.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/LoadedInstantiationBehavior.java index de5b82551..fef67c967 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/LoadedInstantiationBehavior.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/LoadedInstantiationBehavior.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/ReuseParameters.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/ReuseParameters.java index 2c9fd50ac..9545c1db5 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/ReuseParameters.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/ReuseParameters.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/SpecializedInstantiator.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/SpecializedInstantiator.java index 7781699e6..53a014635 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/SpecializedInstantiator.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/SpecializedInstantiator.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/package-info.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/package-info.java index 116d9c371..2365f6321 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/package-info.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/package-info.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/AbstractAndroidModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/AbstractAndroidModel.java index 5003faec7..077516e4c 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/AbstractAndroidModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/AbstractAndroidModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/LoopAndroidModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/LoopAndroidModel.java index a6cf4abb5..cd3e2aeba 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/LoopAndroidModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/LoopAndroidModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/LoopKillAndroidModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/LoopKillAndroidModel.java index 87eb427fe..b26914af2 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/LoopKillAndroidModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/LoopKillAndroidModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/SequentialAndroidModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/SequentialAndroidModel.java index c4b2df47d..ddec1d616 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/SequentialAndroidModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/SequentialAndroidModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/SingleStartAndroidModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/SingleStartAndroidModel.java index d0fcd3b0f..0a27244f6 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/SingleStartAndroidModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/SingleStartAndroidModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/package-info.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/package-info.java index c63345dc7..1ec39510c 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/package-info.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/structure/package-info.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidBoot.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidBoot.java index 27fee52e0..c71d93b6b 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidBoot.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidBoot.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidStartComponentTool.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidStartComponentTool.java index 3d76fed41..06208c19c 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidStartComponentTool.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidStartComponentTool.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/ExternalModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/ExternalModel.java index b90e8818e..fdad0cf27 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/ExternalModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/ExternalModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/Overrides.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/Overrides.java index fd32b4602..eea9c8008 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/Overrides.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/Overrides.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/SystemServiceModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/SystemServiceModel.java index 30c1ba5a9..a5f054a79 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/SystemServiceModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/SystemServiceModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/UnknownTargetModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/UnknownTargetModel.java index aeb7eaae2..557078978 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/UnknownTargetModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/UnknownTargetModel.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/package-info.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/package-info.java index c91f304d5..3fcc156fa 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/package-info.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/package-info.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/AndroidEntryPoint.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/AndroidEntryPoint.java index 2e00bc087..85a463c42 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/AndroidEntryPoint.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/AndroidEntryPoint.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexEntryPoint.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexEntryPoint.java index 41178e38f..7626a2952 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexEntryPoint.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexEntryPoint.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexExplicitCallGraph.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexExplicitCallGraph.java index b7c526d06..217fc2bd1 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexExplicitCallGraph.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexExplicitCallGraph.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java index e062958c2..6d789aacc 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/AndroidContext.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/AndroidContext.java index 4d4582c1e..1c94a38d4 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/AndroidContext.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/AndroidContext.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/DexSSAPropagationCallGraphBuilder.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/DexSSAPropagationCallGraphBuilder.java index c19f9171f..1935600f9 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/DexSSAPropagationCallGraphBuilder.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/DexSSAPropagationCallGraphBuilder.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/Intent.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/Intent.java index 0044f975c..3df7bf4e6 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/Intent.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/Intent.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContext.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContext.java index 9e22db75f..31d6b859e 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContext.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContext.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextInterpreter.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextInterpreter.java index 77565eaf1..c8c069cc1 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextInterpreter.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextInterpreter.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextSelector.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextSelector.java index 7c7017615..6aa07114b 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextSelector.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextSelector.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentMap.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentMap.java index fa9e2e9ef..c037c8bbd 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentMap.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentMap.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentStarters.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentStarters.java index 7237ec3e8..24f46e6c6 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentStarters.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentStarters.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/package-info.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/package-info.java index f7dc80c39..0ded181de 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/package-info.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/package-info.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java index 402462f2a..26ac8fe85 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java @@ -289,7 +289,7 @@ public abstract class AbstractIntRegisterMachine implements FixedPointConstants @Override public boolean isUnaryNoOp() { - return false; + return true; } @Override @@ -325,6 +325,8 @@ public abstract class AbstractIntRegisterMachine implements FixedPointConstants public String toString() { return "MEETER"; } + + } /** @@ -641,11 +643,7 @@ public abstract class AbstractIntRegisterMachine implements FixedPointConstants stackHeight = -1; } - boolean isTOP() { - return stackHeight == -1; - } - -// public void push(int i) { + // public void push(int i) { // if (stack == null) // allocateStack(); // stack[stackHeight++] = i; @@ -674,7 +672,7 @@ public abstract class AbstractIntRegisterMachine implements FixedPointConstants // stackHeight = 0; // } - private void allocateLocals() { + public void allocateLocals() { locals = allocateNewLocalsArray(); } diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java index 3e3f8c5c6..87aadaefd 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java @@ -321,6 +321,7 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { // System.out.println("Max Registers: " + (int)(method.getMaxLocals() - 2)); // System.out.println("Parameters: " + method.getNumberOfParameters()); + entryState.allocateLocals(); for (int i = 0; i < method.getNumberOfParameters(); i++) { local++; TypeReference t = method.getParameterType(i); @@ -1370,7 +1371,13 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { */ public void build() { try { - solve(); + if (method.getName().toString().contains("newCNfaPair")) { + System.err.println(method); + } + if (method.getName().toString().contains("expandEscape")) { + System.err.println(method); + } + solve(); if (localMap != null) { localMap.finishLocalMap(this); } diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidAnalysisScope.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidAnalysisScope.java index 07733b1aa..8fed960a9 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidAnalysisScope.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidAnalysisScope.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ package com.ibm.wala.dalvik.util; import java.io.File; @@ -16,63 +25,35 @@ import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.io.FileSuffixes; public class AndroidAnalysisScope { - - public final static String STD_EXCLUSION_REG_EXP = - "java\\/awt\\/.*\n" - + "javax\\/swing\\/.*\n" - + "java\\/nio\\/.*\n" - + "java\\/net\\/.*\n" - + "sun\\/awt\\/.*\n" - + "sun\\/swing\\/.*\n" - + "com\\/sun\\/.*\n" - + "sun\\/.*\n" - + "apple\\/awt\\/.*\n" - + "com\\/apple\\/.*\n" - + "org\\/omg\\/.*\n" - + "javax\\/.*\n"; - - - public static AnalysisScope setUpAndroidAnalysisScope(String androidLib, String classpath) throws IOException { - AnalysisScope scope = DexAnalysisScopeReader.makeAndroidBinaryAnalysisScope(classpath, STD_EXCLUSION_REG_EXP); - setUpAnalysisScope(scope, new File(androidLib).toURI()); - return scope; - } - - public static AnalysisScope setUpAndroidAnalysisScope(String androidLib, String classpath, String exclusions) throws IOException { - AnalysisScope scope = DexAnalysisScopeReader.makeAndroidBinaryAnalysisScope(classpath, exclusions); - setUpAnalysisScope(scope, new File(androidLib).toURI()); - return scope; - } + /** BEGIN Custom change: Fixes in AndroidAnalysisScope */ - public static AnalysisScope setUpAndroidAnalysisScope(String androidLib, String classpath, File exclusions) throws IOException { - AnalysisScope scope = DexAnalysisScopeReader.makeAndroidBinaryAnalysisScope(classpath, exclusions); - setUpAnalysisScope(scope, new File(androidLib).toURI()); + public static AnalysisScope setUpAndroidAnalysisScope(String androidLib, String classpath, String exclusions) throws IOException { + AnalysisScope scope; + if (androidLib == null) { + scope = DexAnalysisScopeReader.makeTestAndroidBinaryAnalysisScope(classpath, exclusions); + } else { + scope = DexAnalysisScopeReader.makeAndroidBinaryAnalysisScope(classpath, exclusions); + } + setUpAnalysisScope(scope, androidLib==null? null: new File(androidLib).toURI()); return scope; } /** END Custom change: Fixes in AndroidAnalysisScope */ - public static AnalysisScope setUpAndroidAnalysisScope(URI androidLib, URI classpath, File exclusions) throws IOException { + public static AnalysisScope setUpAndroidAnalysisScope(URI androidLib, URI classpath, String exclusions) throws IOException { AnalysisScope scope = DexAnalysisScopeReader.makeAndroidBinaryAnalysisScope(classpath, exclusions); setUpAnalysisScope(scope, androidLib); return scope; } private static void setUpAnalysisScope(AnalysisScope scope, URI androidLib) throws IOException { -/** BEGIN Custom change: Fixes in AndroidAnalysisScope */ - if (androidLib == null) { - throw new IllegalArgumentException("The argument androidLib may not be null."); - } -/** END Custom change: Fixes in AndroidAnalysisScope */ scope.setLoaderImpl(ClassLoaderReference.Application, "com.ibm.wala.dalvik.classLoader.WDexClassLoaderImpl"); - scope.setLoaderImpl(ClassLoaderReference.Primordial, - "com.ibm.wala.dalvik.classLoader.WDexClassLoaderImpl"); - -/** BEGIN Custom change: Fixes in AndroidAnalysisScope */ - if (FileSuffixes.isDexFile(androidLib)) { + if (androidLib != null) { + if (FileSuffixes.isDexFile(androidLib)) { + /** END Custom change: Fixes in AndroidAnalysisScope */ Module dexMod = new DexFileModule(new File(androidLib)); @@ -82,22 +63,31 @@ public class AndroidAnalysisScope { // logger.error("dex module: {}", moduleEntry.getName()); // } + scope.setLoaderImpl(ClassLoaderReference.Primordial, + "com.ibm.wala.dalvik.classLoader.WDexClassLoaderImpl"); + scope.addToScope(ClassLoaderReference.Primordial, dexMod); } else { /** BEGIN Custom change: Fixes in AndroidAnalysisScope */ if (FileSuffixes.isRessourceFromJar(androidLib)) { + scope.setLoaderImpl(ClassLoaderReference.Primordial, + "com.ibm.wala.dalvik.classLoader.WDexClassLoaderImpl"); + //final FileProvider fileProvider = new FileProvider(); final InputStream is = androidLib.toURL().openStream(); assert (is != null); final Module libMod = new JarStreamModule(new JarInputStream(is)); scope.addToScope(ClassLoaderReference.Primordial, libMod); //throw new UnsupportedOperationException("Cannot extract lib from jar"); + } else { + // assume it is really a JVML jar file, not Android at all scope.addToScope(ClassLoaderReference.Primordial, new JarFile(new File( androidLib))); } /** END Custom change: Fixes in AndroidAnalysisScope */ } } + } } diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidComponent.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidComponent.java index 614b0c755..cab98247b 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidComponent.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidComponent.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidEntryPointLocator.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidEntryPointLocator.java index 2c40e99b3..c1b67acc5 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidEntryPointLocator.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidEntryPointLocator.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidEntryPointManager.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidEntryPointManager.java index c22db50bf..24cd8550d 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidEntryPointManager.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidEntryPointManager.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidManifestXMLReader.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidManifestXMLReader.java index c1763d282..def1c4cb2 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidManifestXMLReader.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidManifestXMLReader.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidPreFlightChecks.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidPreFlightChecks.java index 8fcee0bde..ad49b6669 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidPreFlightChecks.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidPreFlightChecks.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidSettingFactory.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidSettingFactory.java index 45d0ad84f..1a5998fd4 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidSettingFactory.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidSettingFactory.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidTypes.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidTypes.java index 06182117e..1c0435fc0 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidTypes.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/AndroidTypes.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ActivityEP.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ActivityEP.java index bb2505047..e0f8f85b9 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ActivityEP.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ActivityEP.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ApplicationEP.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ApplicationEP.java index bdc207933..3592c4521 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ApplicationEP.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ApplicationEP.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/FragmentEP.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/FragmentEP.java index df29c5aa1..378ca6f09 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/FragmentEP.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/FragmentEP.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/LoaderCB.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/LoaderCB.java index 456f0340d..e8c8d7590 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/LoaderCB.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/LoaderCB.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/LocationEP.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/LocationEP.java index 2585eec52..33ec43699 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/LocationEP.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/LocationEP.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ProviderEP.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ProviderEP.java index 25275121b..7132101a9 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ProviderEP.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ProviderEP.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ServiceEP.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ServiceEP.java index 1ba9428f8..d11de466e 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ServiceEP.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/ServiceEP.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/package-info.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/package-info.java index 1357e0096..af10bd32c 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/package-info.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/androidEntryPoints/package-info.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/package-info.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/package-info.java index 911d30c6a..4ce2211b8 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/package-info.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/util/package-info.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * Copyright (c) 2013, * Tobias Blaschke diff --git a/com.ibm.wala.ide.jdt.test/.classpath b/com.ibm.wala.ide.jdt.test/.classpath index 59f4a0930..abda64c74 100644 --- a/com.ibm.wala.ide.jdt.test/.classpath +++ b/com.ibm.wala.ide.jdt.test/.classpath @@ -1,8 +1,8 @@ - + diff --git a/com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF b/com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF index 4f829e491..0a9b7235b 100644 --- a/com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF +++ b/com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF @@ -19,6 +19,7 @@ Require-Bundle: com.ibm.wala.cast.java.test;bundle-version="1.0.0", org.eclipse.jdt.core;bundle-version="3.4.2", org.junit;bundle-version="4.8.1", org.eclipse.core.runtime, - org.eclipse.pde.core;bundle-version="3.6.0" + org.eclipse.pde.core;bundle-version="3.6.0", + org.eclipse.platform;bundle-version="4.2.2" Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/com.ibm.wala.ide.jdt.test/launchers/JDTJava15IRTests.launch b/com.ibm.wala.ide.jdt.test/launchers/JDTJava15IRTests.launch index 4ac63cce4..9440a39f7 100644 --- a/com.ibm.wala.ide.jdt.test/launchers/JDTJava15IRTests.launch +++ b/com.ibm.wala.ide.jdt.test/launchers/JDTJava15IRTests.launch @@ -11,8 +11,8 @@ - - + + @@ -25,7 +25,8 @@ - + + @@ -33,9 +34,9 @@ - - - + + + diff --git a/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/demandpa/driver/DemandCastChecker.java b/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/demandpa/driver/DemandCastChecker.java index a79e1a598..28a8dddfb 100644 --- a/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/demandpa/driver/DemandCastChecker.java +++ b/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/demandpa/driver/DemandCastChecker.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /** * Refinement Analysis Tools is Copyright (c) 2007 The Regents of the * University of California (Regents). Provided that this notice and diff --git a/com.ibm.wala.ide.jdt/.classpath b/com.ibm.wala.ide.jdt/.classpath index 2ed464f27..41fa956a8 100644 --- a/com.ibm.wala.ide.jdt/.classpath +++ b/com.ibm.wala.ide.jdt/.classpath @@ -1,6 +1,6 @@ - + diff --git a/com.ibm.wala.ide.jdt/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.ide.jdt/.settings/org.eclipse.jdt.core.prefs index 92bf738bc..5c4e197c5 100644 --- a/com.ibm.wala.ide.jdt/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.ide.jdt/.settings/org.eclipse.jdt.core.prefs @@ -1,9 +1,9 @@ eclipse.preferences.version=1 instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate @@ -72,7 +72,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.7 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 diff --git a/com.ibm.wala.ide.jdt/META-INF/MANIFEST.MF b/com.ibm.wala.ide.jdt/META-INF/MANIFEST.MF index b3361d0a6..c0c98e293 100644 --- a/com.ibm.wala.ide.jdt/META-INF/MANIFEST.MF +++ b/com.ibm.wala.ide.jdt/META-INF/MANIFEST.MF @@ -16,8 +16,9 @@ Require-Bundle: org.eclipse.ui, org.eclipse.core.resources, org.eclipse.jdt.core, org.eclipse.pde.core, - org.eclipse.ui.ide;bundle-version="3.8.2" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 + org.eclipse.ui.ide;bundle-version="3.8.2", + org.eclipse.jdt.launching;bundle-version="3.6.101" +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Export-Package: com.ibm.wala.cast.java.client, com.ibm.wala.cast.java.translator.jdt, diff --git a/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java b/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java index ec51e9145..af7a83cf9 100644 --- a/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java +++ b/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java @@ -40,6 +40,7 @@ package com.ibm.wala.cast.java.client; import java.io.IOException; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jdt.core.IJavaProject; import com.ibm.wala.cast.ir.ssa.AstIRFactory; @@ -93,6 +94,7 @@ public class JDTJavaSourceAnalysisEngine extends EclipseProjectSourceAnalysisEng @Override protected EclipseProjectPath createProjectPath( IJavaProject project) throws IOException, CoreException { + project.open(new NullProgressMonitor()); return JavaEclipseProjectPath.make(project, AnalysisScopeType.SOURCE_FOR_PROJ_AND_LINKED_PROJS); } diff --git a/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java b/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java index da0dafb99..39d6f30be 100644 --- a/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java +++ b/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java @@ -14,6 +14,7 @@ import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.List; +import java.util.jar.JarFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; @@ -22,10 +23,14 @@ import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jdt.internal.launching.JREContainer; +import org.eclipse.jdt.launching.JavaRuntime; import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope; import com.ibm.wala.classLoader.BinaryDirectoryTreeModule; +import com.ibm.wala.classLoader.JarFileModule; import com.ibm.wala.classLoader.Module; +import com.ibm.wala.properties.WalaProperties; import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.collections.MapUtil; import com.ibm.wala.util.debug.Assertions; @@ -94,10 +99,15 @@ public class JavaEclipseProjectPath extends EclipseProjectPath - + diff --git a/com.ibm.wala.ide.jsdt/META-INF/MANIFEST.MF b/com.ibm.wala.ide.jsdt/META-INF/MANIFEST.MF index eae03592e..0f3d023f7 100644 --- a/com.ibm.wala.ide.jsdt/META-INF/MANIFEST.MF +++ b/com.ibm.wala.ide.jsdt/META-INF/MANIFEST.MF @@ -20,7 +20,7 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.ui.ide;bundle-version="3.8.2", org.eclipse.pde;bundle-version="3.8.0", org.eclipse.pde.core;bundle-version="3.8.1" -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Export-Package: com.ibm.wala.cast.js.client, com.ibm.wala.ide.jsdt, diff --git a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java index 3f8c10047..ed8f4dc11 100644 --- a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java +++ b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph; import com.ibm.wala.cast.js.ipa.summaries.JavaScriptConstructorFunctions; diff --git a/com.ibm.wala.ide.tests/.classpath b/com.ibm.wala.ide.tests/.classpath index 4c62a8048..16d067f28 100644 --- a/com.ibm.wala.ide.tests/.classpath +++ b/com.ibm.wala.ide.tests/.classpath @@ -2,6 +2,6 @@ - + diff --git a/com.ibm.wala.ide.tests/META-INF/MANIFEST.MF b/com.ibm.wala.ide.tests/META-INF/MANIFEST.MF index af85310d2..a37497795 100644 --- a/com.ibm.wala.ide.tests/META-INF/MANIFEST.MF +++ b/com.ibm.wala.ide.tests/META-INF/MANIFEST.MF @@ -18,7 +18,7 @@ Require-Bundle: com.ibm.wala.shrike, org.eclipse.e4.core.di;bundle-version="1.2.0";resolution:=optional, org.junit;bundle-version="4.0.0" Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Export-Package: com.ibm.wala.ide.tests.util Bundle-Activator: com.ibm.wala.ide.test.Activator diff --git a/com.ibm.wala.ide/.classpath b/com.ibm.wala.ide/.classpath index 4c62a8048..16d067f28 100644 --- a/com.ibm.wala.ide/.classpath +++ b/com.ibm.wala.ide/.classpath @@ -2,6 +2,6 @@ - + diff --git a/com.ibm.wala.ide/META-INF/MANIFEST.MF b/com.ibm.wala.ide/META-INF/MANIFEST.MF index 48c42c567..22be5e8a4 100644 --- a/com.ibm.wala.ide/META-INF/MANIFEST.MF +++ b/com.ibm.wala.ide/META-INF/MANIFEST.MF @@ -17,7 +17,7 @@ Require-Bundle: com.ibm.wala.core, org.eclipse.jdt.core, org.eclipse.ui.ide;bundle-version="3.8.2" Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Export-Package: com.ibm.wala.ide.classloader, com.ibm.wala.ide.client, com.ibm.wala.ide.plugin, diff --git a/com.ibm.wala.scandroid/.classpath b/com.ibm.wala.scandroid/.classpath new file mode 100644 index 000000000..41fa956a8 --- /dev/null +++ b/com.ibm.wala.scandroid/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/com.ibm.wala.scandroid/.project b/com.ibm.wala.scandroid/.project new file mode 100644 index 000000000..b122a8155 --- /dev/null +++ b/com.ibm.wala.scandroid/.project @@ -0,0 +1,28 @@ + + + com.ibm.wala.scandroid + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/com.ibm.wala.scandroid/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.scandroid/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..f42de363a --- /dev/null +++ b/com.ibm.wala.scandroid/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/com.ibm.wala.scandroid/META-INF/MANIFEST.MF b/com.ibm.wala.scandroid/META-INF/MANIFEST.MF new file mode 100644 index 000000000..86ce0adc7 --- /dev/null +++ b/com.ibm.wala.scandroid/META-INF/MANIFEST.MF @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: SCanDroid +Bundle-SymbolicName: com.ibm.wala.scandroid +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: com.ibm.wala.scandroid.Activator +Bundle-Vendor: IBM +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + com.ibm.wala.dalvik;bundle-version="1.0.0", + com.ibm.wala.core;bundle-version="1.3.4", + com.ibm.wala.shrike;bundle-version="1.3.4" +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Bundle-ActivationPolicy: lazy diff --git a/com.ibm.wala.scandroid/build.properties b/com.ibm.wala.scandroid/build.properties new file mode 100644 index 000000000..c820afa01 --- /dev/null +++ b/com.ibm.wala.scandroid/build.properties @@ -0,0 +1,4 @@ +source.. = source/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/com.ibm.wala.scandroid/source/com/ibm/wala/scandroid/Activator.java b/com.ibm.wala.scandroid/source/com/ibm/wala/scandroid/Activator.java new file mode 100644 index 000000000..e886f887a --- /dev/null +++ b/com.ibm.wala.scandroid/source/com/ibm/wala/scandroid/Activator.java @@ -0,0 +1,60 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2006 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ +package com.ibm.wala.scandroid; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "com.ibm.wala.scandroid"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/domain/CodeElement.java b/com.ibm.wala.scandroid/source/org/scandroid/domain/CodeElement.java new file mode 100644 index 000000000..0263184c1 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/domain/CodeElement.java @@ -0,0 +1,81 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.domain; + +import java.util.HashSet; +import java.util.Set; + +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; + +public abstract class CodeElement { + /* For a given value number, and enclosing call graph node, yield + * the set of all CodeElements that that it may refer to (i.e., the + * associated local variable and any instances it may refer to). */ + public static Set valueElements(PointerAnalysis pa, CGNode node, int valueNumber) { + //System.out.println("ValueNumber: " + valueNumber + ", Node: " + node.getMethod().getSignature()); + Set elements = new HashSet(); + elements.add(new LocalElement(valueNumber)); +// PointerKey pk = new LocalPointerKey(node, valueNumber); +// OrdinalSet m = pa.getPointsToSet(pk); +// if(m != null) { +// for(Iterator keyIter = m.iterator();keyIter.hasNext();) { +// elements.add(new InstanceKeyElement(keyIter.next())); +// } +// } + return elements; + } + + @Override + public abstract boolean equals(Object obj); + + @Override + public abstract int hashCode(); + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/domain/DomainElement.java b/com.ibm.wala.scandroid/source/org/scandroid/domain/DomainElement.java new file mode 100644 index 000000000..948355fc2 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/domain/DomainElement.java @@ -0,0 +1,130 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.domain; + +import org.scandroid.flow.types.FlowType; + +@SuppressWarnings("rawtypes") +public class DomainElement { + // the code element in question + // alternate framing: the /current/ fact about the element + public final CodeElement codeElement; + // the taint (probably from some other point in the code) that affects the + // code element in question + // alternate framing: the /initial/ fact about the element + public final FlowType taintSource; + + public DomainElement(CodeElement codeElement, FlowType taintSource) { + this.codeElement = codeElement; + this.taintSource = taintSource; + } +/* + @Override + public boolean equals(Object other) { + if (other == null || !(other instanceof DomainElement)) + return false; + DomainElement otherDE = (DomainElement) other; + if (taintSource != null) { + return codeElement.equals(otherDE.codeElement) + && taintSource.equals(otherDE.taintSource); + } + return codeElement.equals(otherDE.codeElement) + && otherDE.taintSource == null; + } + + @Override + public int hashCode() { + if (taintSource == null) + return codeElement.hashCode(); + return codeElement.hashCode() ^ taintSource.hashCode(); + } + */ + + + + public String toString() { + return codeElement.toString() + ", " + taintSource; + } + + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((codeElement == null) ? 0 : codeElement.hashCode()); + result = prime * result + + ((taintSource == null) ? 0 : taintSource.hashCode()); + return result; + } + + + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + DomainElement other = (DomainElement) obj; + if (codeElement == null) { + if (other.codeElement != null) + return false; + } else if (!codeElement.equals(other.codeElement)) + return false; + if (taintSource == null) { + if (other.taintSource != null) + return false; + } else if (!taintSource.equals(other.taintSource)) + return false; + return true; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/domain/FieldElement.java b/com.ibm.wala.scandroid/source/org/scandroid/domain/FieldElement.java new file mode 100644 index 000000000..9a0dd1eb1 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/domain/FieldElement.java @@ -0,0 +1,99 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.domain; + +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.types.FieldReference; + +public class FieldElement extends CodeElement { + private FieldReference fieldRef; + private InstanceKey object; +// private TypeReference object; + + public FieldElement(InstanceKey object, FieldReference fieldRef) + { + this.fieldRef = fieldRef; + this.object = object; + } +// public FieldElement(TypeReference object, String fieldname) +// { +// this.fieldname = fieldname; +// this.object = object; +// } + + public InstanceKey getIK() { + return object; + } + + public FieldReference getRef() { + return fieldRef; + } + + @Override + public boolean equals(Object other) + { + if(other != null && other instanceof FieldElement) + { + FieldElement otherFE = (FieldElement)other; + return object.equals(otherFE.object) && fieldRef.equals(otherFE.fieldRef); + } + return false; + } + + @Override + public int hashCode() + { + return object.hashCode() * fieldRef.hashCode(); + } + + @Override + public String toString() + { + return "FieldElement("+fieldRef.getSignature()+","+object+")"; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/domain/IFDSTaintDomain.java b/com.ibm.wala.scandroid/source/org/scandroid/domain/IFDSTaintDomain.java new file mode 100644 index 000000000..0772434ed --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/domain/IFDSTaintDomain.java @@ -0,0 +1,147 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.domain; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import com.ibm.wala.dataflow.IFDS.PathEdge; +import com.ibm.wala.dataflow.IFDS.TabulationDomain; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; + +public class IFDSTaintDomain + implements TabulationDomain> { + private Map table = new HashMap(); + private ArrayList objects = new ArrayList(); + + private Map> elementIndex = new HashMap>(); + + Set emptySet = new HashSet(); + public Set getPossibleElements(CodeElement codeElement) + { + Set elts = elementIndex.get(codeElement); + if(elts != null) + return elts; + return emptySet; + } + + private void index(DomainElement e) + { + Set elements = elementIndex.get(e.codeElement); + if(elements == null) + { + elements = new HashSet(); + elementIndex.put(e.codeElement, elements); + } + elements.add(e); + } + + public int add(DomainElement o) { + Integer i = table.get(o); + if(i == null) + { + objects.add(o); + i = table.size() + 1; + table.put(o, i); + //System.out.println("Adding domain element "+i+": "+o); + } + index(o); + + return i; + } + + + public synchronized int getMappedIndex(final Object o) { + if (!(o instanceof DomainElement)) { + throw new IllegalArgumentException(o.getClass().getCanonicalName()); + } + + final DomainElement de = (DomainElement) o; + final Integer i = table.get(de); + + return (i == null ? add(de) : i); + } + + public boolean hasPriorityOver( + PathEdge> p1, + PathEdge> p2) { + return false; + } + + public DomainElement getMappedObject(int n) { + if(n > 0 && n <= objects.size()) + return objects.get(n - 1); + return null; + } + + public int getMaximumIndex() { + return objects.size(); + } + + public int getSize() { + return objects.size()+1; + } + + public boolean hasMappedIndex(DomainElement o) { + return table.keySet().contains(o); + } + + public Iterator iterator() { + return table.keySet().iterator(); + } + + public Set codeElements () { + return elementIndex.keySet(); + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/domain/InstanceKeyElement.java b/com.ibm.wala.scandroid/source/org/scandroid/domain/InstanceKeyElement.java new file mode 100644 index 000000000..8a2a0c028 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/domain/InstanceKeyElement.java @@ -0,0 +1,81 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.domain; + +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; + +public class InstanceKeyElement extends CodeElement { + private InstanceKey ik; + public InstanceKeyElement(InstanceKey ik) + { + this.ik = ik; + } + + @Override + public boolean equals(Object other) + { + if(other != null && other instanceof InstanceKeyElement) + return ((InstanceKeyElement)other).ik.equals(this.ik); + return false; + } + + @Override + public int hashCode() + { + return ik.hashCode(); + } + + public String toString() + { + return "InstanceKeyElement("+ik+")"; + } + + public InstanceKey getInstanceKey() { + return ik; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/domain/LocalElement.java b/com.ibm.wala.scandroid/source/org/scandroid/domain/LocalElement.java new file mode 100644 index 000000000..3ae69cf5f --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/domain/LocalElement.java @@ -0,0 +1,90 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.domain; + +public final class LocalElement extends CodeElement { + private final int id; + + public LocalElement(int id) + { + this.id = id; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + id; + return result; + } + + + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + LocalElement other = (LocalElement) obj; + if (id != other.id) + return false; + return true; + } + + + + @Override + public String toString() + { + return "LocalElement("+id+")"; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/domain/ReturnElement.java b/com.ibm.wala.scandroid/source/org/scandroid/domain/ReturnElement.java new file mode 100644 index 000000000..216fd1ec0 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/domain/ReturnElement.java @@ -0,0 +1,69 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.domain; + +public class ReturnElement extends CodeElement { + + @Override + public boolean equals(Object other) + { + return other != null && other instanceof ReturnElement; + } + + @Override + public int hashCode() + { + return 1; + } + + @Override + public String toString() + { + return "ReturnElement()"; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/domain/StaticFieldElement.java b/com.ibm.wala.scandroid/source/org/scandroid/domain/StaticFieldElement.java new file mode 100644 index 000000000..42bb54b4e --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/domain/StaticFieldElement.java @@ -0,0 +1,89 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.domain; + +import com.ibm.wala.types.FieldReference; + +public class StaticFieldElement extends CodeElement { + private final FieldReference fieldRef; + + public StaticFieldElement(FieldReference fieldRef) { + this.fieldRef = fieldRef; + } + + public FieldReference getRef() { + return fieldRef; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((fieldRef == null) ? 0 : fieldRef.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + StaticFieldElement other = (StaticFieldElement) obj; + if (fieldRef == null) { + if (other.fieldRef != null) + return false; + } else if (!fieldRef.equals(other.fieldRef)) + return false; + return true; + } +} diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/FlowAnalysis.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/FlowAnalysis.java similarity index 95% rename from com.ibm.wala.dalvik/src/org/scandroid/flow/FlowAnalysis.java rename to com.ibm.wala.scandroid/source/org/scandroid/flow/FlowAnalysis.java index aaf8d6170..7bd6d37bf 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/FlowAnalysis.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/FlowAnalysis.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, @@ -42,6 +51,7 @@ package org.scandroid.flow; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -56,7 +66,6 @@ import org.scandroid.util.CGAnalysisContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Lists; import com.ibm.wala.dataflow.IFDS.IFlowFunctionMap; import com.ibm.wala.dataflow.IFDS.IMergeFunction; import com.ibm.wala.dataflow.IFDS.ISupergraph; @@ -142,7 +151,7 @@ public class FlowAnalysis { final IFDSTaintDomain domain = d; final List>> - initialEdges = Lists.newArrayList(); + initialEdges = new ArrayList>>(); //Add PathEdges to the taints //Places that initial taints occur, and where they initially flow into diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/ISinkPoint.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/ISinkPoint.java similarity index 88% rename from com.ibm.wala.dalvik/src/org/scandroid/flow/ISinkPoint.java rename to com.ibm.wala.scandroid/source/org/scandroid/flow/ISinkPoint.java index 9910c6eb6..a382a9a14 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/ISinkPoint.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/ISinkPoint.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/InflowAnalysis.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/InflowAnalysis.java similarity index 96% rename from com.ibm.wala.dalvik/src/org/scandroid/flow/InflowAnalysis.java rename to com.ibm.wala.scandroid/source/org/scandroid/flow/InflowAnalysis.java index 70bb4d955..649ea9c25 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/InflowAnalysis.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/InflowAnalysis.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, @@ -67,7 +76,6 @@ import org.scandroid.util.CGAnalysisContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Maps; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.dataflow.IFDS.ISupergraph; import com.ibm.wala.ipa.callgraph.CGNode; @@ -79,6 +87,7 @@ import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.util.collections.HashMapFactory; @SuppressWarnings("rawtypes") public class InflowAnalysis { @@ -233,7 +242,7 @@ public class InflowAnalysis { logger.debug("* Running inflow analysis *"); logger.debug("***************************"); - Map, Map,Set>> taintMap = Maps.newHashMap(); + Map, Map,Set>> taintMap = HashMapFactory.make(); SourceSpec[] ss = s.getSourceSpecs(); logger.debug(ss.length + " Source Specs. "); diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/LocalSinkPoint.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/LocalSinkPoint.java similarity index 90% rename from com.ibm.wala.dalvik/src/org/scandroid/flow/LocalSinkPoint.java rename to com.ibm.wala.scandroid/source/org/scandroid/flow/LocalSinkPoint.java index c39b254d2..06cb4ca21 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/LocalSinkPoint.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/LocalSinkPoint.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, @@ -39,6 +48,7 @@ */ package org.scandroid.flow; +import java.util.Collections; import java.util.Set; import org.scandroid.domain.CodeElement; @@ -50,13 +60,13 @@ import org.scandroid.util.CGAnalysisContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Sets; import com.ibm.wala.dataflow.IFDS.TabulationResult; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.PointerKey; import com.ibm.wala.ipa.cfg.BasicBlockInContext; import com.ibm.wala.ssa.analysis.IExplodedBasicBlock; +import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.intset.OrdinalSet; public class LocalSinkPoint implements ISinkPoint { @@ -78,10 +88,10 @@ public class LocalSinkPoint implements ISinkPoint { public Set> findSources(CGAnalysisContext ctx, TabulationResult, CGNode, DomainElement> flowResult, IFDSTaintDomain domain) { - Set> sources = Sets.newHashSet(); + Set> sources = HashSetFactory.make(); final CodeElement localElt = new LocalElement(ssaVal); - Set elts = Sets.newHashSet(localElt); + Set elts = HashSetFactory.make(Collections.singleton(localElt)); final CGNode node = block.getNode(); PointerKey pk = ctx.pa.getHeapModel().getPointerKeyForLocal(node, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/OutflowAnalysis.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/OutflowAnalysis.java similarity index 95% rename from com.ibm.wala.dalvik/src/org/scandroid/flow/OutflowAnalysis.java rename to com.ibm.wala.scandroid/source/org/scandroid/flow/OutflowAnalysis.java index 91e32df10..ded57ae5a 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/OutflowAnalysis.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/OutflowAnalysis.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, @@ -41,6 +50,7 @@ package org.scandroid.flow; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; @@ -66,10 +76,6 @@ import org.scandroid.util.CGAnalysisContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterators; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.dataflow.IFDS.ICFGSupergraph; import com.ibm.wala.dataflow.IFDS.ISupergraph; @@ -89,6 +95,9 @@ import com.ibm.wala.ssa.SSAInvokeInstruction; import com.ibm.wala.ssa.SSAReturnInstruction; import com.ibm.wala.ssa.analysis.IExplodedBasicBlock; import com.ibm.wala.types.MethodReference; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.collections.IteratorUtil; import com.ibm.wala.util.debug.UnimplementedError; import com.ibm.wala.util.intset.IntSet; @@ -136,7 +145,7 @@ public class OutflowAnalysis { IFDSTaintDomain domain, Map, Set>> flowGraph, List sinkSpecs) { - List> targetList = Lists.newArrayList(); + List> targetList = new ArrayList>(); for (int i = 0; i < sinkSpecs.size(); i++) { Collection tempList = sinkSpecs.get(i).getNamePattern() @@ -151,7 +160,7 @@ public class OutflowAnalysis { while (graphIt.hasNext()) { BasicBlockInContext block = graphIt.next(); - Iterator invokeInstrs = Iterators.filter( + Iterator invokeInstrs = IteratorUtil.filter( block.iterator(), SSAInvokeInstruction.class); while (invokeInstrs.hasNext()) { @@ -186,8 +195,7 @@ public class OutflowAnalysis { + argNums.length); // The set of flow types we're looking for: - Set> taintTypeSet = Sets - .newHashSet(); + Set> taintTypeSet = HashSetFactory.make(); LocalElement le = new LocalElement( invInst.getUse(argNums[j])); @@ -436,8 +444,7 @@ public class OutflowAnalysis { logger.debug("* Running outflow analysis *"); logger.debug("****************************"); - Map, Set>> taintFlow = Maps - .newHashMap(); + Map, Set>> taintFlow = HashMapFactory.make(); SinkSpec[] ss = s.getSinkSpecs(); logger.debug(ss.length + " sink Specs. "); @@ -522,7 +529,7 @@ public class OutflowAnalysis { } private Set calculateSinkPoints(EntryArgSinkSpec sinkSpec) { - Set points = Sets.newHashSet(); + Set points = HashSetFactory.make(); Collection methods = sinkSpec.getNamePattern() .getPossibleTargets(cha); @@ -550,7 +557,7 @@ public class OutflowAnalysis { } private Set calculateSinkPoints(final CallArgSinkSpec sinkSpec) { - final Set points = Sets.newHashSet(); + final Set points = HashSetFactory.make(); Collection methods = sinkSpec.getNamePattern() .getPossibleTargets(cha); @@ -558,8 +565,8 @@ public class OutflowAnalysis { logger.warn("no methods found for sink spec {}", sinkSpec); } - Set callees = Sets.newHashSet(); - final Set calleeRefs = Sets.newHashSet(); + Set callees = HashSetFactory.make(); + final Set calleeRefs = HashSetFactory.make(); for (IMethod method : methods) { callees.addAll(cg.getNodes(method.getReference())); calleeRefs.add(method.getReference()); @@ -622,7 +629,7 @@ public class OutflowAnalysis { } private Set calculateSinkPoints(EntryRetSinkSpec sinkSpec) { - Set points = Sets.newHashSet(); + Set points = HashSetFactory.make(); Collection methods = sinkSpec.getNamePattern() .getPossibleTargets(cha); @@ -666,7 +673,7 @@ public class OutflowAnalysis { } private Set calculateSinkPoints(StaticFieldSinkSpec sinkSpec) { - Set points = Sets.newHashSet(); + Set points = HashSetFactory.make(); ICFGSupergraph graph = (ICFGSupergraph) ctx.graph; for (CGNode node : ctx.cg.getNodes(sinkSpec.getMethod().getReference())) { diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/StaticFieldSinkPoint.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/StaticFieldSinkPoint.java similarity index 90% rename from com.ibm.wala.dalvik/src/org/scandroid/flow/StaticFieldSinkPoint.java rename to com.ibm.wala.scandroid/source/org/scandroid/flow/StaticFieldSinkPoint.java index 356c5a474..e1c0c5d64 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/StaticFieldSinkPoint.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/StaticFieldSinkPoint.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /** * * Copyright (c) 2009-2012, @@ -49,12 +58,12 @@ import org.scandroid.flow.types.StaticFieldFlow; import org.scandroid.spec.StaticFieldSinkSpec; import org.scandroid.util.CGAnalysisContext; -import com.google.common.collect.Sets; import com.ibm.wala.classLoader.IField; import com.ibm.wala.dataflow.IFDS.TabulationResult; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.cfg.BasicBlockInContext; import com.ibm.wala.ssa.analysis.IExplodedBasicBlock; +import com.ibm.wala.util.collections.HashSetFactory; /** * @author acfoltzer @@ -88,7 +97,7 @@ public class StaticFieldSinkPoint implements ISinkPoint { CGAnalysisContext ctx, TabulationResult, CGNode, DomainElement> flowResult, IFDSTaintDomain domain) { - Set> sources = Sets.newHashSet(); + Set> sources = HashSetFactory.make(); for (DomainElement de : domain .getPossibleElements(new StaticFieldElement(field diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallFlowFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallFlowFunction.java new file mode 100644 index 000000000..4da72bee5 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallFlowFunction.java @@ -0,0 +1,151 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.flow.functions; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.IFDSTaintDomain; +import org.scandroid.domain.LocalElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.MutableSparseIntSet; + +/** + * @author creswick + * @author acfoltzer + * + */ +public class CallFlowFunction implements + IUnaryFlowFunction { + private static final Logger logger = LoggerFactory + .getLogger(CallFlowFunction.class); + + /** + * A map from the code elements of actual parameters, to the set of code + * elements for formal parameters + */ + private final Map> paramArgsMap; + + private final IFDSTaintDomain domain; + + public CallFlowFunction(IFDSTaintDomain domain, + List actualParams) { + this.domain = domain; + + final int numParams = actualParams.size(); + this.paramArgsMap = HashMapFactory.make(numParams); + for (int i = 0; i < numParams; i++) { + // add a mapping for each parameter + final CodeElement actual = actualParams.get(i); + if (!(actual instanceof LocalElement)) { + logger.warn("non-local code element in actual params list"); + } + final CodeElement formal = new LocalElement(i + 1); // +1 for SSA + Set existingFormals = paramArgsMap.get(actual); + if (null == existingFormals) { + existingFormals = HashSetFactory.make(numParams); + } + existingFormals.add(formal); + paramArgsMap.put(actual, existingFormals); + } + } + + /* + * (non-Javadoc) + * + * @see com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction#getTargets(int) + */ + @Override + public IntSet getTargets(int d1) { + if (0 == d1) { + return TaintTransferFunctions.ZERO_SET; + } + DomainElement de = domain.getMappedObject(d1); + MutableSparseIntSet set = MutableSparseIntSet.makeEmpty(); + + /* + * We're in the situation of calling a function: + * + * f(x, y, z) + * + * And determining how taints flow from that call site to the entry of + * the function + * + * ... f(X x, Y y, Z z) { ... } + * + * Our goals are twofold: 1. Propagate taints from the actual parameter + * x to the formal parameter x 2. Exclude any other non-local + * information from propagating to callee + * + * Since we're unioning the result of this with the + * GlobalIdentityFunction, we don't have to worry about 2 for this + * IntSet. + */ + + final Set formals = paramArgsMap.get(de.codeElement); + if (null != formals) { + for (CodeElement formal : formals) { + set.add(domain.getMappedIndex(new DomainElement(formal, + de.taintSource))); + } + } + return set; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallNoneToReturnFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallNoneToReturnFunction.java new file mode 100644 index 000000000..984b5b5da --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallNoneToReturnFunction.java @@ -0,0 +1,94 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.flow.functions; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.IFDSTaintDomain; +import org.scandroid.flow.types.FlowType; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.MutableSparseIntSet; + + +public final class CallNoneToReturnFunction implements IUnaryFlowFunction { + private IFDSTaintDomain domain; + + public CallNoneToReturnFunction(IFDSTaintDomain domain) { + this.domain = domain; + } + + @Override + public IntSet getTargets(int d) { + if (0 == d) { + return TaintTransferFunctions.ZERO_SET; + } + + MutableSparseIntSet set = MutableSparseIntSet.makeEmpty(); + // TODO: this is questionable + // We don't know anything about the function called, + // so we have to make some assumptions. The safest assumption + // is that everything goes to everything: + + // this effectively taints everything in the heap that we've seen before. + DomainElement de = domain.getMappedObject(d); + + @SuppressWarnings("unchecked") + FlowType taint = de.taintSource; + + for (CodeElement ce : domain.codeElements() ){ + int elt = domain.getMappedIndex(new DomainElement(ce, taint)); + set.add(elt); + } + return set; + } +} \ No newline at end of file diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallToReturnFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallToReturnFunction.java new file mode 100644 index 000000000..b117b101d --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallToReturnFunction.java @@ -0,0 +1,95 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.flow.functions; + +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.IFDSTaintDomain; +import org.scandroid.domain.LocalElement; +import org.scandroid.domain.ReturnElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.MutableSparseIntSet; + + +public class CallToReturnFunction + implements IUnaryFlowFunction { + private static final Logger logger = LoggerFactory.getLogger(CallToReturnFunction.class); + + private IFDSTaintDomain domain; + + public CallToReturnFunction(IFDSTaintDomain domain) { + this.domain = domain; + } + + @Override + public IntSet getTargets(int d) { + MutableSparseIntSet set = MutableSparseIntSet.makeEmpty(); + + // Local elements (and the 0 element) flow through CallToReturn edges, + // but nothing else does (everything else is subject to whatever + // happened in the invoked function) + if (0 == d) { + set.add(d); + } else { + DomainElement de = domain.getMappedObject(d); + if (de.codeElement instanceof LocalElement || de.codeElement instanceof ReturnElement) { + set.add(d); + } else { + logger.trace("throwing away {}", de); + } + } + return set; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/ConstantFlowFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/ConstantFlowFunction.java new file mode 100644 index 000000000..f81d61fb0 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/ConstantFlowFunction.java @@ -0,0 +1,89 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + +import java.util.Set; + +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.IFDSTaintDomain; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.MutableSparseIntSet; +import com.ibm.wala.util.intset.SparseIntSet; + +/** + * A flow function which maps the zero fact to a set of new dataflow facts, + * essentially introducing them from nothing. Identity for all other facts. + * + * @author acfoltzer + * + */ +public class ConstantFlowFunction implements IUnaryFlowFunction { + private final MutableSparseIntSet result; + + public ConstantFlowFunction(IFDSTaintDomain domain, Set elts) { + result = MutableSparseIntSet.make(TaintTransferFunctions.ZERO_SET); + for (DomainElement de : elts) { + result.add(domain.getMappedIndex(de)); + } + } + + /* + * (non-Javadoc) + * + * @see com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction#getTargets(int) + */ + @Override + public IntSet getTargets(int d1) { + return 0 == d1 ? result : SparseIntSet.singleton(d1); + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/GlobalIdentityFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/GlobalIdentityFunction.java new file mode 100644 index 000000000..2f915bff4 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/GlobalIdentityFunction.java @@ -0,0 +1,97 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.IFDSTaintDomain; +import org.scandroid.domain.LocalElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.SparseIntSet; + + +/** + * Flow function that only permits globals - and the zero element - to flow through + * + * @author creswick + * + */ +public class GlobalIdentityFunction + implements IUnaryFlowFunction { + private static final Logger logger = LoggerFactory.getLogger(GlobalIdentityFunction.class); + + private final IFDSTaintDomain domain; + + public GlobalIdentityFunction(IFDSTaintDomain domain) { + this.domain = domain; + } + + /* (non-Javadoc) + * @see com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction#getTargets(int) + */ + @Override + public IntSet getTargets(int d1) { + if (0 == d1) { + return TaintTransferFunctions.ZERO_SET; + } + + DomainElement de = domain.getMappedObject(d1); + if( de.codeElement instanceof LocalElement ) { + // if the query domain element is a local, then it is /not/ passed through. + logger.trace("taking {} to emptyset", de); + return TaintTransferFunctions.EMPTY_SET; + } else { + return SparseIntSet.singleton(d1); + } + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/GlobalReturnToNodeFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/GlobalReturnToNodeFunction.java new file mode 100644 index 000000000..8e749b7dd --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/GlobalReturnToNodeFunction.java @@ -0,0 +1,137 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + +import java.util.Map; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.IFDSTaintDomain; +import org.scandroid.domain.InstanceKeyElement; +import org.scandroid.domain.LocalElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.LocalPointerKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.MutableSparseIntSet; + +/** + * Propagates heap information from InstanceKeys to the LocalElements that point + * to those keys + * + * @author acfoltzer + * + * @param + */ +public class GlobalReturnToNodeFunction implements + IUnaryFlowFunction { + private static final Logger logger = LoggerFactory + .getLogger(GlobalReturnToNodeFunction.class); + + private final IFDSTaintDomain domain; + private final Map> ikMap; + + public GlobalReturnToNodeFunction(IFDSTaintDomain domain, + PointerAnalysis pa, CGNode node) { + this.domain = domain; + this.ikMap = HashMapFactory.make(); + for (PointerKey pk : pa.getPointerKeys()) { + if (!(pk instanceof LocalPointerKey)) { + continue; + } + LocalPointerKey lpk = (LocalPointerKey) pk; + if (!lpk.getNode().equals(node)) { + continue; + } + for (InstanceKey ik : pa.getPointsToSet(lpk)) { + Set elts = ikMap.get(ik); + if (null == elts) { + elts = HashSetFactory.make(); + ikMap.put(ik, elts); + } + elts.add(new LocalElement(lpk.getValueNumber())); + } + } + } + + @Override + public IntSet getTargets(int d) { + MutableSparseIntSet set = MutableSparseIntSet.makeEmpty(); + if (0 == d) { + set.add(d); + } else { + DomainElement de = domain.getMappedObject(d); + if (de.codeElement instanceof InstanceKeyElement) { + InstanceKey ik = ((InstanceKeyElement) de.codeElement) + .getInstanceKey(); + Set elts = ikMap.get(ik); + if (null != elts) { + for (CodeElement elt : elts) { + set.add(domain.getMappedIndex(new DomainElement(elt, + de.taintSource))); + } + } + } else { + logger.debug("throwing away {}", de); + } + } + return set; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/IDTransferFunctions.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/IDTransferFunctions.java new file mode 100644 index 000000000..1e3aaff18 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/IDTransferFunctions.java @@ -0,0 +1,115 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , Rogan Creswick ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + + +import org.scandroid.domain.IFDSTaintDomain; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.dataflow.IFDS.IFlowFunction; +import com.ibm.wala.dataflow.IFDS.IFlowFunctionMap; +import com.ibm.wala.dataflow.IFDS.IReversibleFlowFunction; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.dataflow.IFDS.IdentityFlowFunction; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.SparseIntSet; + + +public class IDTransferFunctions implements + IFlowFunctionMap> { + @SuppressWarnings("unused") + private static final Logger logger = + LoggerFactory.getLogger(IDTransferFunctions.class); + + public static final IntSet EMPTY_SET = new SparseIntSet(); + public static final IntSet ZERO_SET = SparseIntSet.singleton(0); + + private static final IReversibleFlowFunction IDENTITY_FN = new IdentityFlowFunction(); + + public IDTransferFunctions(IFDSTaintDomain domain, + ISupergraph, CGNode> graph, + PointerAnalysis pa) { + } + + @Override + public IUnaryFlowFunction getNormalFlowFunction(BasicBlockInContext src, + BasicBlockInContext dest) { + return IDENTITY_FN; + } + + @Override + public IUnaryFlowFunction getCallFlowFunction(BasicBlockInContext src, + BasicBlockInContext dest, BasicBlockInContext ret) { + return IDENTITY_FN; + } + + @Override + public IFlowFunction getReturnFlowFunction(BasicBlockInContext call, + BasicBlockInContext src, BasicBlockInContext dest) { + return IDENTITY_FN; + } + + @Override + public IUnaryFlowFunction getCallToReturnFlowFunction( + BasicBlockInContext src, BasicBlockInContext dest) { + return IDENTITY_FN; + } + + @Override + public IUnaryFlowFunction getCallNoneToReturnFlowFunction( + BasicBlockInContext src, BasicBlockInContext dest) { + return IDENTITY_FN; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/IFDSTaintFlowFunctionProvider.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/IFDSTaintFlowFunctionProvider.java new file mode 100644 index 000000000..1481e1f3c --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/IFDSTaintFlowFunctionProvider.java @@ -0,0 +1,606 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.flow.functions; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.FieldElement; +import org.scandroid.domain.IFDSTaintDomain; +import org.scandroid.domain.InstanceKeyElement; +import org.scandroid.domain.LocalElement; +import org.scandroid.domain.ReturnElement; +import org.scandroid.flow.types.FlowType; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.dataflow.IFDS.IFlowFunction; +import com.ibm.wala.dataflow.IFDS.IFlowFunctionMap; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.LocalPointerKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.callgraph.propagation.StaticFieldKey; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ipa.cha.IClassHierarchy; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAArrayLoadInstruction; +import com.ibm.wala.ssa.SSAArrayStoreInstruction; +import com.ibm.wala.ssa.SSAGetInstruction; +import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.ssa.SSAPutInstruction; +import com.ibm.wala.ssa.SSAReturnInstruction; +import com.ibm.wala.types.FieldReference; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.intset.BitVectorIntSet; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.MutableIntSet; +import com.ibm.wala.util.intset.MutableSparseIntSet; +import com.ibm.wala.util.intset.OrdinalSet; + + +/** + * @deprecated Replaced by TaintTransferFunctions. + */ +@Deprecated +public class IFDSTaintFlowFunctionProvider +implements IFlowFunctionMap> { + + private final IFDSTaintDomain domain; + private final ISupergraph,CGNode> graph; + private final PointerAnalysis pa; + + public IFDSTaintFlowFunctionProvider(IFDSTaintDomain domain, + ISupergraph, CGNode> graph, + PointerAnalysis pa) + { + this.domain = domain; + this.graph = graph; + this.pa = pa; + } + + // instruction has a valid def set + private static boolean inFlow(SSAInstruction instruction) { + return (instruction instanceof SSAArrayLoadInstruction) || + (instruction instanceof SSAGetInstruction); + } + + // instruction's def is getUse(0) + private static boolean outFlow(SSAInstruction instruction) { + return (instruction instanceof SSAArrayStoreInstruction) || + (instruction instanceof SSAPutInstruction) || + (instruction instanceof SSAInvokeInstruction); + } + + // instruction is a return instruction + private static boolean returnFlow(SSAInstruction instruction) { + return (instruction instanceof SSAReturnInstruction); + } + + private static class UseDefSetPair + { + public Set uses = HashSetFactory.make(); + public Set defs = HashSetFactory.make(); + } + + private class DefUse implements IUnaryFlowFunction { + + private final List useToDefList = new ArrayList(); + + private final BasicBlockInContext bb; + + public DefUse(final BasicBlockInContext inBlock) { + + this.bb = inBlock; + + for (SSAInstruction instruction : bb) { + handleInstruction(instruction); + } + } + + private void handleInstruction(SSAInstruction instruction) { +// System.out.println("handle instruction: "+instruction); + + UseDefSetPair p = new UseDefSetPair(); + boolean thisToResult = false; + if(instruction instanceof SSAInvokeInstruction) + { + thisToResult = handleInvokeInstruction(instruction, p); + } + if (thisToResult) { + useToDefList.add(p); + p = new UseDefSetPair(); + } + + IClassHierarchy ch = bb.getNode().getClassHierarchy(); + + if (inFlow(instruction)) { + handleInflowInstruction(instruction, p, ch); + } + else if (outFlow(instruction)) { + handleOutflowInstruction(instruction, p, ch); + } + else if(returnFlow(instruction)) + { + handleReturnFlowInstruction(instruction, p); + } + else + { + for (int i = 0; i < instruction.getNumberOfUses(); i++) { + p.uses.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(i))); + } + for (int j = 0; j < instruction.getNumberOfDefs(); j++) { + p.defs.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getDef(j))); + } + } + + useToDefList.add(p); + } + + private void handleReturnFlowInstruction(SSAInstruction instruction, + UseDefSetPair p) { + SSAReturnInstruction retInst = (SSAReturnInstruction)instruction; + if(retInst.getNumberOfUses() > 0) + { + /* TODO: why not add instance keys, too? */ + for(int i = 0; i < instruction.getNumberOfUses(); i++) + { + //p.uses.add(new LocalElement(instruction.getUse(i))); + p.uses.addAll( + CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(i))); + + } + p.defs.add(new ReturnElement()); + } + } + + private boolean handleInvokeInstruction(SSAInstruction instruction, + UseDefSetPair p) { + boolean thisToResult; + SSAInvokeInstruction invInst = (SSAInvokeInstruction)instruction; + if(!invInst.isSpecial() && !invInst.isStatic() && instruction.getNumberOfDefs() > 0) + { + //System.out.println("adding receiver flow in "+this+" for "+invInst); + //System.out.println("\tadding local element "+invInst.getReceiver()); + //getReceiver() == getUse(0) == param[0] == this + p.uses.addAll(CodeElement.valueElements(pa, bb.getNode(), invInst.getReceiver())); + for(int i = 0; i < invInst.getNumberOfDefs(); i++) + { + //System.out.println("\tadding def local element "+invInst.getDef(i)); + //return valuenumber of invoke instruction + p.defs.addAll(CodeElement.valueElements(pa, bb.getNode(), invInst.getDef(i))); + } + } + thisToResult = true; + return thisToResult; + } + + private void handleInflowInstruction(SSAInstruction instruction, + UseDefSetPair p, IClassHierarchy ch) { + if (instruction instanceof SSAGetInstruction) { + handleInflowGetInstruction(instruction, p, ch); + } + else if (instruction instanceof SSAArrayLoadInstruction){ + handleInflowArrayLoadInstruction(instruction, p); + } + } + + private void handleOutflowInstruction(SSAInstruction instruction, + UseDefSetPair p, IClassHierarchy ch) { + if (instruction instanceof SSAPutInstruction) { + handleOutflowPutInstruction(instruction, p, ch); + } + else if (instruction instanceof SSAArrayStoreInstruction){ + handleOutflowArrayStoreInstruction(instruction, p); + } + else if (instruction instanceof SSAInvokeInstruction){ + + handleOutflowInvokeInstruction(instruction, p); + } + } + + private void handleOutflowInvokeInstruction(SSAInstruction instruction, + UseDefSetPair p) { + MethodReference targetMethod = ((SSAInvokeInstruction) instruction).getCallSite().getDeclaredTarget(); + if (methodExcluded(targetMethod)) { + // TODO make all parameters flow into all other + // parameters, which could happen in the static case as well. + if (!((SSAInvokeInstruction) instruction).isStatic()) { + // These loops cause all parameters flow into the + // 'this' param (due to instruction.getUse(0)) + for (int i = 1; i < instruction.getNumberOfUses(); i++) { + p.uses.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(i))); + } + + + if (instruction.getNumberOfUses() > 0) { + p.defs.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(0))); + } + } + } + } + + private void handleOutflowArrayStoreInstruction( + SSAInstruction instruction, UseDefSetPair p) { + p.uses.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(2))); + p.defs.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(0))); + } + + private void handleOutflowPutInstruction(SSAInstruction instruction, + UseDefSetPair p, IClassHierarchy ch) { + SSAPutInstruction pi = (SSAPutInstruction)instruction; + PointerKey pk; + Set elements = HashSetFactory.make(); + if (pi.isStatic()) { + p.uses.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(0))); + FieldReference declaredField = pi.getDeclaredField(); + IField staticField = getStaticIField(ch, declaredField); + if (staticField == null) { + pk = null; + } else { + pk = new StaticFieldKey(staticField); + } + } else { + p.uses.addAll( + CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(1))); + + // this value number seems to be the object referenced in this instruction (?) + int valueNumber = instruction.getUse(0); + pk = new LocalPointerKey(bb.getNode(), valueNumber); + + //MyLogger.log(LogLevel.DEBUG, " instruction: "+instruction); + + // add the object that holds the field that was modified + // to the list of things tainted by this flow: + p.defs.addAll(CodeElement.valueElements(pa, bb.getNode(), valueNumber)); + } + // now add the field keys to the defs list so that they + // are also tainted: + if (pk!=null) { + OrdinalSet m = pa.getPointsToSet(pk); + if (m != null) { + for (InstanceKey instanceKey : m) { + elements.add(new FieldElement(instanceKey, pi.getDeclaredField())); + elements.add(new InstanceKeyElement(instanceKey)); + } + } + p.defs.addAll(elements); + } + } + + private void handleInflowArrayLoadInstruction( + SSAInstruction instruction, UseDefSetPair p) { + p.uses.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(0))); + p.defs.addAll(CodeElement.valueElements(pa, bb.getNode(),instruction.getDef())); + } + + private void handleInflowGetInstruction(SSAInstruction instruction, + UseDefSetPair p, IClassHierarchy ch) { + SSAGetInstruction gi = (SSAGetInstruction)instruction; + + PointerKey pk; + FieldReference declaredField = gi.getDeclaredField(); + if ( gi.isStatic()) { + IField staticField = + getStaticIField(ch, declaredField); + + if (staticField == null) { + pk = null; + } else { + pk = new StaticFieldKey(staticField); + } + } else { + int valueNumber = instruction.getUse(0); + pk = new LocalPointerKey(bb.getNode(), valueNumber); + } + + if (pk!=null) { + Set elements = HashSetFactory.make(); + OrdinalSet m = pa.getPointsToSet(pk); + if(m != null) { + for (InstanceKey instanceKey : m) { + elements.add(new FieldElement(instanceKey, declaredField)); + elements.add(new InstanceKeyElement(instanceKey)); + } + } + p.uses.addAll(elements); + //getinstruction only has 1 def + p.defs.add(new LocalElement(instruction.getDef(0))); + } + } + + /** + * Determines if the provide method is in the exclusions by checking the supergraph. + * @param method + * @return True if the method can not be found in the supergraph. + */ + private boolean methodExcluded(MethodReference method) { + Collection iMethods = pa.getClassHierarchy().getPossibleTargets(method); + return 0 == iMethods.size(); + } + + private IField getStaticIField(IClassHierarchy ch, + FieldReference declaredField) { + TypeReference staticTypeRef = declaredField.getDeclaringClass(); + + IClass staticClass = ch.lookupClass(staticTypeRef); + + //referring to a static field which we don't have loaded in the class hierarchy + //possibly ignored in the exclusions file or just not included in the scope + if (staticClass == null) + return null; + + IField staticField = + staticClass.getField(declaredField.getName()); + return staticField; + } + + private void addTargets(CodeElement d1, MutableIntSet set, FlowType taintType) + { + //System.out.println(this.toString()+".addTargets("+d1+"...)"); + for(UseDefSetPair p: useToDefList) + { + if(p.uses.contains(d1)) + { + //System.out.println("\t\tfound pair that uses "+d1); + for(CodeElement i:p.defs) + { + //System.out.println("\t\tadding outflow "+i); + set.add(domain.getMappedIndex(new DomainElement(i,taintType))); + } + } + } + } + + @SuppressWarnings("unchecked") + public IntSet getTargets(int d1) { + //System.out.println(this.toString()+".getTargets("+d1+") "+bb); + //BitVectorIntSet set = new BitVectorIntSet(); + MutableSparseIntSet set = MutableSparseIntSet.makeEmpty(); + set.add(d1); + DomainElement de = domain.getMappedObject(d1); + if (de != null) { + addTargets(de.codeElement, set, de.taintSource); + } + return set; + } + } + + public IUnaryFlowFunction getCallFlowFunction( + BasicBlockInContext src, + BasicBlockInContext dest, + BasicBlockInContext ret) { + assert graph.isCall(src); + + final SSAInvokeInstruction instruction = (SSAInvokeInstruction) src.getLastInstruction(); + +// String signature = dest.getMethod().getSignature(); +// if ( dest.getMethod().isSynthetic() ) { +// System.out.println("Synthetic: "+signature); +// } else { +// System.err.println(signature); +// } + + +// if ( LoaderUtils.fromLoader(src.getNode(), ClassLoaderReference.Application) +// && LoaderUtils.fromLoader(dest.getNode(), ClassLoaderReference.Primordial)) { +// System.out.println("Call to system: "+signature); +// } + +// if (! dest.getMethod().isSynthetic() +// && LoaderUtils.fromLoader(dest.getNode(), ClassLoaderReference.Primordial)) { +// +// MyLogger.log(DEBUG,"Primordial and No Summary! (getCallFlowFunction) - " + dest.getMethod().getReference()); +// } + + final Map parameterMap = HashMapFactory.make(); + for (int i = 0; i < instruction.getNumberOfParameters(); i++) { + Set elements = CodeElement.valueElements(pa, src.getNode(), instruction.getUse(i)); + for(CodeElement e: elements) { + parameterMap.put(e, new LocalElement(i+1)); + } + } + + return new IUnaryFlowFunction() { + + public IntSet getTargets(int d1) { + BitVectorIntSet set = new BitVectorIntSet(); + if(d1 == 0 || !(domain.getMappedObject(d1).codeElement instanceof LocalElement)) { + set.add(d1); + } + DomainElement de = domain.getMappedObject(d1); + if(de!=null && parameterMap.containsKey(de.codeElement)) + set.add(domain.getMappedIndex(new DomainElement(parameterMap.get(de.codeElement),de.taintSource))); + return set; + } + + }; + } + + public IUnaryFlowFunction getCallNoneToReturnFlowFunction( + BasicBlockInContext src, + BasicBlockInContext dest) { + //I Believe this method is called only if there are no callees of src in the supergraph + //if supergraph included all primordials, this method can still be called if it calls a + //method that wasn't included in the scope + + //Assertions.UNREACHABLE(); + // TODO: Look up summary for this method, or warn if it doesn't exist. + assert (src.getNode().equals(dest.getNode())); + +// final SSAInvokeInstruction instruction = (SSAInvokeInstruction) src.getLastInstruction(); + +// System.out.println("call to return(no callee) method inside call graph: " + src.getNode()+"--" + instruction.getDeclaredTarget()); + // System.out.println("call to system: " + instruction.getDeclaredTarget()); + return new DefUse(dest); + } + + public IUnaryFlowFunction getCallToReturnFlowFunction( + BasicBlockInContext src, + BasicBlockInContext dest) { + assert (src.getNode().equals(dest.getNode())); + //final SSAInvokeInstruction instruction = (SSAInvokeInstruction) src.getLastInstruction(); + //System.out.println("call to return method inside call graph: " + instruction.getDeclaredTarget()); + + return new DefUse(dest); + } + + public IUnaryFlowFunction getNormalFlowFunction( + BasicBlockInContext src, + BasicBlockInContext dest) { + assert (src.getNode().equals(dest.getNode())); + //System.out.println("getNormalFlowFuntion"); + //System.out.println("\tSrc " + src.getLastInstruction()); + //System.out.println("\tDest " + dest.getLastInstruction()); + return new DefUse(dest); + } + + public class ReturnDefUse extends DefUse + { + CodeElement callSet; + Set receivers = new HashSet(); + + public ReturnDefUse(BasicBlockInContext dest, + BasicBlockInContext call) { + super(dest); + + // TODO: look into exception handling through getDef(1) + if(call.getLastInstruction() instanceof SSAInvokeInstruction) { + SSAInvokeInstruction invInst = (SSAInvokeInstruction) call.getLastInstruction(); + if(!invInst.isSpecial()) {// && !invInst.isStatic()) { +// for (int i = 0; i < invInst.getNumberOfReturnValues(); i++) { +// +// } + if (invInst.hasDef()) { + callSet = new LocalElement(invInst.getReturnValue(0)); + + if ( !invInst.isStatic() ) { + //used to be invInst.getReceiver(), but I believe that was incorrect. + receivers.addAll(CodeElement.valueElements(pa, call.getNode(), invInst.getReceiver())); + //receivers.addAll(CodeElement.valueElements(pa, call.getNode(), invInst.getReturnValue(0))); + } + } + } + } + else { + callSet = null; + } +// // TODO: look into exception handling through getDef(1) +// if(call.getLastInstruction().getNumberOfDefs() == 1) +// { +// //System.out.println("\treturn defines something: "+call.getLastInstruction()); +// callSet = new LocalElement(call.getLastInstruction().getDef(0)); +// if(call.getLastInstruction() instanceof SSAInvokeInstruction) +// { +// SSAInvokeInstruction invInst = (SSAInvokeInstruction) call.getLastInstruction(); +// if(!invInst.isSpecial() && !invInst.isStatic()) { +// receivers.addAll(CodeElement.valueElements(pa, call.getNode(), invInst.getReceiver())); +// } +// } +// } +// else +// callSet = null; + } + + @Override + public IntSet getTargets(int d1) + { + if(d1 != 0 && domain.getMappedObject(d1).codeElement instanceof ReturnElement) + { + BitVectorIntSet set = new BitVectorIntSet(); + if(callSet != null) { +// System.out.println("callset: " + callSet); + set.add(domain.getMappedIndex(new DomainElement(callSet,domain.getMappedObject(d1).taintSource))); + } + return set; + } + else if(d1 != 0 && domain.getMappedObject(d1).codeElement instanceof LocalElement) + { + return new BitVectorIntSet(); + } + else if(d1 != 0 && receivers.contains(domain.getMappedObject(d1).codeElement)) + { + BitVectorIntSet set = new BitVectorIntSet(); + if(callSet != null) + set.add(domain.getMappedIndex(new DomainElement(callSet,domain.getMappedObject(d1).taintSource))); + set.addAll(super.getTargets(d1)); + return set; + } + else + { + return super.getTargets(d1); + } + } + } + + public IFlowFunction getReturnFlowFunction(BasicBlockInContext call, + BasicBlockInContext src, + BasicBlockInContext dest) { + assert (graph.isCall(call) && graph.isReturn(dest) && call.getNode().equals(dest.getNode())); + //final SSAInvokeInstruction instruction = (SSAInvokeInstruction) call.getLastInstruction(); + + //System.out.println("Return from call to method inside call graph: " + instruction.getDeclaredTarget()); + + return new ReturnDefUse(dest,call); + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/PairBasedFlowFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/PairBasedFlowFunction.java new file mode 100644 index 000000000..f1874d206 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/PairBasedFlowFunction.java @@ -0,0 +1,127 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , Rogan Creswick ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + +import java.util.List; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.IFDSTaintDomain; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.MutableSparseIntSet; + + +final class PairBasedFlowFunction implements IUnaryFlowFunction { +// private static final Logger logger = +// LoggerFactory.getLogger(PairBasedFlowFunction.class); + + private final List useToDefList; + private final IFDSTaintDomain domain; + + public PairBasedFlowFunction(IFDSTaintDomain domain, List useToDefList) { + this.domain = domain; + this.useToDefList = useToDefList; + } + + @Override + public IntSet getTargets(int d) { + //logger.debug("getTargets("+d+")"); + if (0 == d) { + //logger.debug("getTargets("+d+"): {0}"); + return TaintTransferFunctions.ZERO_SET; + } + + MutableSparseIntSet set = MutableSparseIntSet.makeEmpty(); + + DomainElement de = domain.getMappedObject(d); + // Here we list what facts we pass through. If a fact was true + // before executing this instruction, it'll be true after, + // unless we created a new definition of its associated + // CodeElement. + + // see if D is still true; if so, pass it through: + // (this corresponds to the vertical 'pass through' arrows in the RHS paper) + // we actually assume that D passes through, unless there + // is evidence to the contrary. Because of this, instructions will + // 'default' to propagating taints that were not relevant to that + // instruction, which is what we want. + set.add(d); + for (UseDefPair udPair : useToDefList) { + CodeElement def = udPair.getDef(); + + if (def.equals(de.codeElement)) { + // this instruction redefined D, so we + // do *not* pass it through - this conditional has + // contradicted our assumption that D should be passed through, + // so remove it from the set: + set.remove(d); + break; + } + } + + //////////////////////////////////////////////////////////////// + // see if the taints associated with D also flow through to any + // other domain elements: + + for (UseDefPair udPair : useToDefList) { + CodeElement use = udPair.getUse(); + + if (use.equals(de.codeElement)) { + // ok, the d element flows to the def, so we add that def + // and keep looking. + DomainElement newDE = + new DomainElement(udPair.getDef(), de.taintSource); + set.add(domain.getMappedIndex(newDE)); + } + } + // logger.debug("getTargets("+d+"): "+set); + return set; + } +} \ No newline at end of file diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/ReturnFlowFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/ReturnFlowFunction.java new file mode 100644 index 000000000..c0048a7f8 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/ReturnFlowFunction.java @@ -0,0 +1,101 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.IFDSTaintDomain; +import org.scandroid.domain.LocalElement; +import org.scandroid.domain.ReturnElement; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.SparseIntSet; + +/** + * @author creswick + * + */ +public class ReturnFlowFunction implements + IUnaryFlowFunction { + + private final IFDSTaintDomain domain; + private final CodeElement ce; + + /** + * @param domain + * @param def + * of the invoke instruction we're returning to + */ + public ReturnFlowFunction(IFDSTaintDomain domain, int def) { + this.domain = domain; + this.ce = new LocalElement(def); + } + + /* + * (non-Javadoc) + * + * @see com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction#getTargets(int) + */ + @Override + public IntSet getTargets(int d1) { + if (0 == d1) { + return TaintTransferFunctions.ZERO_SET; + } + + DomainElement de = domain.getMappedObject(d1); + // if the domain element is a return element, propagate its taint + if (de.codeElement instanceof ReturnElement) { + return SparseIntSet.singleton(domain + .getMappedIndex(new DomainElement(ce, de.taintSource))); + } + return TaintTransferFunctions.EMPTY_SET; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TaintTransferFunctions.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TaintTransferFunctions.java new file mode 100644 index 000000000..27e3e5419 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TaintTransferFunctions.java @@ -0,0 +1,631 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.DomainElement; +import org.scandroid.domain.FieldElement; +import org.scandroid.domain.IFDSTaintDomain; +import org.scandroid.domain.InstanceKeyElement; +import org.scandroid.domain.LocalElement; +import org.scandroid.domain.ReturnElement; +import org.scandroid.domain.StaticFieldElement; +import org.scandroid.flow.types.StaticFieldFlow; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.dataflow.IFDS.IFlowFunction; +import com.ibm.wala.dataflow.IFDS.IFlowFunctionMap; +import com.ibm.wala.dataflow.IFDS.IReversibleFlowFunction; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.dataflow.IFDS.IdentityFlowFunction; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.propagation.ConcreteTypeKey; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAArrayLoadInstruction; +import com.ibm.wala.ssa.SSAArrayReferenceInstruction; +import com.ibm.wala.ssa.SSAArrayStoreInstruction; +import com.ibm.wala.ssa.SSAFieldAccessInstruction; +import com.ibm.wala.ssa.SSAGetInstruction; +import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.ssa.SSAPutInstruction; +import com.ibm.wala.ssa.SSAReturnInstruction; +import com.ibm.wala.types.FieldReference; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.collections.Pair; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.IntSetAction; +import com.ibm.wala.util.intset.MutableSparseIntSet; +import com.ibm.wala.util.intset.OrdinalSet; +import com.ibm.wala.util.intset.SparseIntSet; + +public class TaintTransferFunctions implements + IFlowFunctionMap> { + private static final Logger logger = LoggerFactory + .getLogger(TaintTransferFunctions.class); + + // Java, you need type aliases. + private static class BlockPair extends + Pair, BasicBlockInContext> { + protected BlockPair(BasicBlockInContext fst, + BasicBlockInContext snd) { + super(fst, snd); + } + } + + private final IFDSTaintDomain domain; + private final PointerAnalysis pa; + private final boolean taintStaticFields; + private final IUnaryFlowFunction globalId; + private final IUnaryFlowFunction callToReturn; + private final LoadingCache, IUnaryFlowFunction> callFlowFunctions; + private final LoadingCache, IUnaryFlowFunction> normalFlowFunctions; + + public static final IntSet EMPTY_SET = new SparseIntSet(); + public static final IntSet ZERO_SET = SparseIntSet.singleton(0); + + private static final IReversibleFlowFunction IDENTITY_FN = new IdentityFlowFunction(); + + public TaintTransferFunctions(IFDSTaintDomain domain, + ISupergraph, CGNode> graph, + PointerAnalysis pa) { + this(domain, graph, pa, false); + } + + public TaintTransferFunctions(IFDSTaintDomain domain, + ISupergraph, CGNode> graph, + PointerAnalysis pa, boolean taintStaticFields) { + this.domain = domain; + this.pa = pa; + this.globalId = new GlobalIdentityFunction(domain); + this.callToReturn = new CallToReturnFunction(domain); + this.callFlowFunctions = CacheBuilder.newBuilder().maximumSize(10000) + .expireAfterWrite(10, TimeUnit.MINUTES) + .build(new CacheLoader, IUnaryFlowFunction>() { + @Override + public IUnaryFlowFunction load(BlockPair key) + throws Exception { + return makeCallFlowFunction(key.fst, key.snd, null); + } + }); + this.normalFlowFunctions = CacheBuilder.newBuilder().maximumSize(10000) + .expireAfterWrite(10, TimeUnit.MINUTES) + .build(new CacheLoader, IUnaryFlowFunction>() { + @Override + public IUnaryFlowFunction load(BlockPair key) + throws Exception { + return makeNormalFlowFunction(key.fst, key.snd); + } + }); + this.taintStaticFields = taintStaticFields; + } + + @Override + public IUnaryFlowFunction getCallFlowFunction(BasicBlockInContext src, + BasicBlockInContext dest, BasicBlockInContext ret) { + try { + return callFlowFunctions.get(new BlockPair(src, dest)); + } catch (ExecutionException e) { + logger.error("Exception accessing callFlowFunctions {}", e); + throw new RuntimeException(e); + } + } + + private IUnaryFlowFunction makeCallFlowFunction(BasicBlockInContext src, + BasicBlockInContext dest, BasicBlockInContext ret) { + logger.trace("getCallFlowFunction"); + SSAInstruction srcInst = src.getLastInstruction(); + if (null == srcInst) { + logger.warn("null source for a call"); + return IDENTITY_FN; + } + + if (srcInst instanceof SSAInvokeInstruction) { + // build list of actual parameter code elements, and return a + // function + final int numParams = ((SSAInvokeInstruction) srcInst) + .getNumberOfParameters(); + List actualParams = new ArrayList(numParams); + for (int i = 0; i < numParams; i++) { + actualParams.add(i, new LocalElement(srcInst.getUse(i))); + } + logger.trace("actual param list length: {}", actualParams); + // return new TracingFlowFunction(domain, union(new + // GlobalIdentityFunction(domain), + // new CallFlowFunction(domain, actualParams))); + return union(globalId, + new CallFlowFunction(domain, actualParams)); + } else { + throw new RuntimeException("src block not an invoke instruction"); + } + } + + @Override + public IUnaryFlowFunction getCallNoneToReturnFlowFunction( + BasicBlockInContext src, BasicBlockInContext dest) { + if (logger.isTraceEnabled()) { + logger.trace("getNoneToReturnFunction"); + logger.trace("callee signature: {}", ((SSAInvokeInstruction) src + .getLastInstruction()).getDeclaredTarget().getSignature()); + } + // return callNoneToReturn; + /* + * TODO: is this right? + * + * The original callNoneToReturn impl just adds taints to absolutely + * everything in the domain. This seems like the wrong approach, but + * it's unclear what would be correct... + * + * Switching this to the identity for now improves performance + * drastically. + */ + return IDENTITY_FN; + } + + @Override + public IUnaryFlowFunction getCallToReturnFlowFunction( + BasicBlockInContext src, BasicBlockInContext dest) { + if (logger.isTraceEnabled()) { + logger.trace("getCallToReturnFunction\n\t{}\n\t-> {}", src + .getMethod().getSignature(), dest.getMethod() + .getSignature()); + } + // return new TracingFlowFunction(domain, new + // CallToReturnFunction(domain)); + return callToReturn; + } + + @Override + public IUnaryFlowFunction getNormalFlowFunction(BasicBlockInContext src, + BasicBlockInContext dest) { + try { + return normalFlowFunctions.get(new BlockPair(src, dest)); + } catch (ExecutionException e) { + logger.error("Exception accessing normalFlowFunctions {}", e); + throw new RuntimeException(e); + } + } + + private IUnaryFlowFunction makeNormalFlowFunction( + BasicBlockInContext src, BasicBlockInContext dest) { + List pairs = new ArrayList(); + + if (logger.isTraceEnabled()) { + logger.trace("getNormalFlowFunction {}", dest.getMethod() + .getSignature()); + } + + // we first try to process the destination instruction + SSAInstruction inst = dest.getLastInstruction(); + CGNode node = dest.getNode(); + + if (null == inst) { + logger.trace("Using identity fn. for normal flow (dest instruction null)"); + return IDENTITY_FN; + } + + logger.trace("\tinstruction: {}", inst); + + Iterable inCodeElts = getInCodeElts(node, inst); + Iterable outCodeElts = getOutCodeElts(node, inst); + if (!inCodeElts.iterator().hasNext()) { + logger.trace("no input elements for {}", inst); + } + if (!outCodeElts.iterator().hasNext()) { + logger.trace("no output elements for {}", inst); + } + + // for now, take the Cartesian product of the inputs and outputs: + // TODO specialize this on a per-instruction basis to improve precision. + for (CodeElement use : inCodeElts) { + for (CodeElement def : outCodeElts) { + pairs.add(new UseDefPair(use, def)); + } + } + + // globals may be redefined here, so we can't union with the globals ID + // flow function, as we often do elsewhere. + final PairBasedFlowFunction flowFunction = new PairBasedFlowFunction( + domain, pairs); + + // special case for static field gets so we can introduce new taints for + // them + if (taintStaticFields && inst instanceof SSAGetInstruction + && ((SSAGetInstruction) inst).isStatic()) { + return makeStaticFieldTaints(dest, inst, node, flowFunction); + } + + return flowFunction; + } + + public IUnaryFlowFunction makeStaticFieldTaints( + BasicBlockInContext dest, SSAInstruction inst, CGNode node, + final PairBasedFlowFunction flowFunction) { + final Set elts = HashSetFactory.make(); + for (CodeElement ce : getStaticFieldAccessCodeElts(node, + (SSAGetInstruction) inst)) { + StaticFieldElement sfe = (StaticFieldElement) ce; + IField field = pa.getClassHierarchy().resolveField(sfe.getRef()); + if (field.isFinal()) { + continue; + } + final StaticFieldFlow taintSource = new StaticFieldFlow(dest, + field, true); + elts.add(new DomainElement(ce, taintSource)); + } + IUnaryFlowFunction newTaints = new ConstantFlowFunction(domain, elts); + return compose(flowFunction, newTaints); + } + + /* + * The usual arguments: + * + * call: the invoke instruction that took us into this method + * + * src: a block that's the postdominator of this method, usually with no + * instructions + * + * dest: whatever instruction followed the invoke instruction in call + * + * What we want to accomplish: + * + * 1. Map taints from the value being returned to a LocalElement in the + * caller's context + * + * 2. Pass through any global information that the callee may have changed + * + * 3. Process ins/outs of dest block as well (it will never be the dest of a + * NormalFlowFunction) + * + * @see + * com.ibm.wala.dataflow.IFDS.IFlowFunctionMap#getReturnFlowFunction(java + * .lang.Object, java.lang.Object, java.lang.Object) + */ + @Override + public IFlowFunction getReturnFlowFunction(BasicBlockInContext call, + BasicBlockInContext src, BasicBlockInContext dest) { + if (logger.isTraceEnabled()) { + logger.trace("getReturnFlowFunction\n\t{}\n\t-> {}\n\t-> {}", call + .getNode().getMethod().getSignature(), src.getNode() + .getMethod().getSignature(), dest.getNode().getMethod() + .getSignature()); + logger.trace("\t{} -> {} -> {}", call.getLastInstruction(), + src.getLastInstruction(), dest.getLastInstruction()); + } + final SSAInstruction inst = call.getLastInstruction(); + if (null == inst || !(inst instanceof SSAInvokeInstruction)) { + // if we don't have an invoke, just punt and hope the necessary + // information is already in global elements + logger.warn("call block null or not an invoke instruction"); + return globalId; + } + + // we always need to process the destination instruction + final IUnaryFlowFunction flowFromDest = getNormalFlowFunction(null, + dest); + + final SSAInvokeInstruction invoke = (SSAInvokeInstruction) inst; + + if (invoke.getNumberOfReturnValues() == 0) { + // no return values, just propagate global information + // return new TracingFlowFunction(domain, compose (flowFromDest, + // new GlobalIdentityFunction(domain))); + return compose(flowFromDest, globalId); + } + + // we have a return value, so we need to map any return elements onto + // the local element corresponding to the invoke's def + final IUnaryFlowFunction flowToDest = union(globalId, + new ReturnFlowFunction(domain, invoke.getDef())); + + // return new TracingFlowFunction(domain, compose(flowFromDest, + // flowToDest)); + return compose(flowFromDest, flowToDest); + } + + private Iterable getOutCodeElts(CGNode node, + SSAInstruction inst) { + int defNo = inst.getNumberOfDefs(); + Set elts = HashSetFactory.make(); + + if (inst instanceof SSAReturnInstruction) { + // only one possible element for returns + if (logger.isTraceEnabled()) { + logger.trace("making a return element for {}", node.getMethod() + .getSignature()); + } + elts.add(new ReturnElement()); + return elts; + } + + if (inst instanceof SSAPutInstruction) { + final Set fieldAccessCodeElts = getFieldAccessCodeElts( + node, (SSAPutInstruction) inst); + if (logger.isTraceEnabled()) { + logger.trace("put outelts: {}", + Arrays.toString(fieldAccessCodeElts.toArray())); + } + elts.addAll(fieldAccessCodeElts); + } + + if (inst instanceof SSAArrayStoreInstruction) { + elts.addAll(getArrayRefCodeElts(node, + (SSAArrayStoreInstruction) inst)); + } + + for (int i = 0; i < defNo; i++) { + int valNo = inst.getDef(i); + + elts.addAll(CodeElement.valueElements(pa, node, valNo)); + } + + return elts; + } + + private Iterable getInCodeElts(CGNode node, SSAInstruction inst) { + int useNo = inst.getNumberOfUses(); + Set elts = HashSetFactory.make(); + + if (inst instanceof SSAGetInstruction) { + elts.addAll(getFieldAccessCodeElts(node, (SSAGetInstruction) inst)); + } + + if (inst instanceof SSAArrayLoadInstruction) { + elts.addAll(getArrayRefCodeElts(node, + (SSAArrayLoadInstruction) inst)); + } + + for (int i = 0; i < useNo; i++) { + int valNo = inst.getUse(i); + + // Constants have valuenumber 0, which is otherwise, illegal. + // these need to be skipped: + if (0 == valNo) { + continue; + } + try { + elts.addAll(CodeElement.valueElements(pa, node, valNo)); + } catch (IllegalArgumentException e) { + logger.error("Exception working on node: " + node); + logger.error("Node is in method: " + node.getMethod()); + throw e; + } + } + + return elts; + } + + // private Iterable getOutCodeElts(final CGNode node, final + // SSAInstruction inst) { + // return new Iterable() { + // @Override + // public Iterator iterator() { + // return new DefEltIterator(node, inst); + // } + // }; + // } + // + // private Iterable getInCodeElts(final CGNode node, final + // SSAInstruction inst) { + // return new Iterable() { + // @Override + // public Iterator iterator() { + // return new UseEltIterator(node, inst); + // } + // }; + // } + + private Set getFieldAccessCodeElts(CGNode node, + SSAFieldAccessInstruction inst) { + if (inst.isStatic()) { + return getStaticFieldAccessCodeElts(node, inst); + } + + Set elts = HashSetFactory.make(); + final FieldReference fieldRef = inst.getDeclaredField(); + final IField field = node.getClassHierarchy().resolveField(fieldRef); + PointerKey pk = pa.getHeapModel().getPointerKeyForLocal(node, + inst.getRef()); + + final OrdinalSet pointsToSet = pa.getPointsToSet(pk); + if (pointsToSet.isEmpty()) { + logger.debug( + "pointsToSet empty for ref of {}, creating InstanceKey manually", + inst); + InstanceKey ik = new ConcreteTypeKey(field.getDeclaringClass()); + elts.add(new FieldElement(ik, fieldRef)); + elts.add(new InstanceKeyElement(ik)); + } else { + for (InstanceKey ik : pointsToSet) { + if (logger.isTraceEnabled()) { + logger.trace("adding elements for field {} on {}", + field.getName(), ik.getConcreteType().getName()); + } + elts.add(new FieldElement(ik, fieldRef)); + elts.add(new InstanceKeyElement(ik)); + } + } + return elts; + } + + private Set getStaticFieldAccessCodeElts(CGNode node, + SSAFieldAccessInstruction inst) { + Set elts = HashSetFactory.make(); + final FieldReference fieldRef = inst.getDeclaredField(); + elts.add(new StaticFieldElement(fieldRef)); + // TODO: what about tainting the declaring class? + + return elts; + } + + private Set getArrayRefCodeElts(CGNode node, + SSAArrayReferenceInstruction inst) { + Set elts = HashSetFactory.make(); + final PointerKey pk = pa.getHeapModel().getPointerKeyForLocal(node, + inst.getArrayRef()); + final OrdinalSet pointsToSet = pa.getPointsToSet(pk); + if (pointsToSet.isEmpty()) { + logger.debug( + "pointsToSet empty for ref of {}, creating InstanceKey manually", + inst); + TypeReference arrayType = TypeReference.findOrCreateArrayOf(inst + .getElementType()); + InstanceKey ik = new ConcreteTypeKey(pa.getClassHierarchy() + .lookupClass(arrayType)); + elts.add(new InstanceKeyElement(ik)); + } else { + for (InstanceKey ik : pointsToSet) { + if (logger.isTraceEnabled()) { + logger.trace("adding element for array store in {}", ik + .getConcreteType().getName()); + } + elts.add(new InstanceKeyElement(ik)); + } + } + return elts; + } + + private IUnaryFlowFunction union(final IUnaryFlowFunction g, + final IUnaryFlowFunction h) { + return new IUnaryFlowFunction() { + @Override + public IntSet getTargets(int d1) { + return g.getTargets(d1).union(h.getTargets(d1)); + } + }; + } + + /** + * Flow function composition + * + * @param f + * @param g + * @return { (x, z) | (x, y) \in g, (y, z) \in f } + */ + private IUnaryFlowFunction compose(final IUnaryFlowFunction f, + final IUnaryFlowFunction g) { + return new IUnaryFlowFunction() { + + @Override + public IntSet getTargets(int d1) { + final MutableSparseIntSet set = MutableSparseIntSet.makeEmpty(); + g.getTargets(d1).foreach(new IntSetAction() { + + @Override + public void act(int x) { + set.addAll(f.getTargets(x)); + } + }); + return set; + } + }; + } + + /* + * private class UseEltIterator implements Iterator { private + * int idx = 0; private Iterator subIt; private final CGNode + * node; private final SSAInstruction inst; private final int count; + * + * public UseEltIterator(CGNode node, SSAInstruction inst) { this.node = + * node; this.inst = inst; count = inst.getNumberOfUses(); + * updateIterator(node, inst); } + * + * private void updateIterator(final CGNode node, final SSAInstruction inst) + * { int valNo = inst.getUse(idx); idx++; Set elements = + * CodeElement.valueElements(pa, node, valNo); subIt = elements.iterator(); + * } + * + * @Override public boolean hasNext() { if (subIt.hasNext()) { return true; + * } else if (idx < count) { updateIterator(node, inst); return hasNext(); } + * else { return false; } } + * + * @Override public CodeElement next() { return subIt.next(); } + * + * @Override public void remove() {} } + * + * private class DefEltIterator implements Iterator { private + * int idx = 0; private Iterator subIt; private final CGNode + * node; private final SSAInstruction inst; private final int count; + * + * public DefEltIterator(CGNode node, SSAInstruction inst) { this.node = + * node; this.inst = inst; count = inst.getNumberOfDefs(); + * updateIterator(node, inst); } + * + * private void updateIterator(final CGNode node, final SSAInstruction inst) + * { int valNo = inst.getDef(idx); idx++; Set elements = + * CodeElement.valueElements(pa, node, valNo); subIt = elements.iterator(); + * } + * + * @Override public boolean hasNext() { if (subIt.hasNext()) { return true; + * } else if (idx < count) { updateIterator(node, inst); return hasNext(); } + * else { return false; } } + * + * @Override public CodeElement next() { return subIt.next(); } + * + * @Override public void remove() {} } + */ +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TracingFlowFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TracingFlowFunction.java new file mode 100644 index 000000000..11a12f8cd --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TracingFlowFunction.java @@ -0,0 +1,85 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + +import org.scandroid.domain.IFDSTaintDomain; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.IntSetAction; + +public class TracingFlowFunction implements IUnaryFlowFunction { + private final IFDSTaintDomain domain; + private final IUnaryFlowFunction function; + private final Logger logger; + + public TracingFlowFunction(IFDSTaintDomain domain, IUnaryFlowFunction function) { + this.domain = domain; + this.function = function; + this.logger = LoggerFactory.getLogger(function.getClass()); + } + + @Override + public IntSet getTargets(int d1) { + IntSet result = function.getTargets(d1); + logger.debug("TRACING: {}", domain.getMappedObject(d1)); + result.foreach(new IntSetAction() { + + @Override + public void act(int x) { + logger.debug("\t{}", domain.getMappedObject(x)); + } + }); + return result; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/UseDefPair.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/UseDefPair.java new file mode 100644 index 000000000..466f72c90 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/UseDefPair.java @@ -0,0 +1,70 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , Rogan Creswick ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.functions; + +import org.scandroid.domain.CodeElement; + +final class UseDefPair +{ + private final CodeElement use; + private final CodeElement def; + public UseDefPair(CodeElement use, CodeElement def) { + this.use = use; + this.def = def; + } + public CodeElement getUse() { + return use; + } + public CodeElement getDef() { + return def; + } + @Override + public String toString() { + return "UseDefPair [use=" + use + ", def=" + def + "]"; + } + +} \ No newline at end of file diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/types/FieldFlow.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/FieldFlow.java new file mode 100644 index 000000000..fccd1cf0d --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/FieldFlow.java @@ -0,0 +1,122 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + + +package org.scandroid.flow.types; + +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; + +/** A flow to or from a field. The associated block represents + * either the location of the get or put instruction, or the + * entry or exit block of a method which is reading or writing + * the field. In the former case, the associate field is redundant, + * but potentially convenient. In the latter case, it's necessary. + * + * @author atomb + * + * @param + */ +public class FieldFlow extends FlowType { + + private final IField field; + + public FieldFlow(BasicBlockInContext block, IField field, boolean source) { + super(block, source); + + this.field = field; + } + + @Override + public String toString() { + return "FieldFlow( field=" + field + " "+ super.toString() + ")"; + } + + @Override + public String descString() { + return field.getDeclaringClass().toString() + "." + field.getName().toString(); + } + + public IField getField() { + return field; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((field == null) ? 0 : field.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + @SuppressWarnings("unchecked") + FieldFlow other = (FieldFlow) obj; + if (field == null) { + if (other.field != null) + return false; + } else if (!field.equals(other.field)) + return false; + return true; + } + + @Override + public R visit(FlowTypeVisitor v) { + return v.visitFieldFlow(this); + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/types/FlowType.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/FlowType.java new file mode 100644 index 000000000..9efac8cb4 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/FlowType.java @@ -0,0 +1,160 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.flow.types; + +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; + +/** + * Flow types represent specific instances of sources or sinks. + * + * In contrast to the Source/Sink specs, these have ties to specific locations + * in the source. + * + * @author creswick + */ +public abstract class FlowType { + private final BasicBlockInContext block; + private final boolean source; + + protected FlowType(BasicBlockInContext block, boolean source) { + this.block = block; + this.source = source; + } + + public final BasicBlockInContext getBlock() { + return block; + } + + public final boolean isSource() { + return source; + } + + @Override + public String toString() { + return "block=" + block + ", source=" + source + ", desc=" + descString(); + } + + public String descString() { + if(source) + return "I"; + else + return "O"; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((block == null) ? 0 : block.getNumber()); + result = prime * result + (source ? 1231 : 1237); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + @SuppressWarnings("unchecked") + FlowType other = (FlowType) obj; + if (block == null) { + if (other.block != null) + return false; + } else if (block.getNumber() != other.block.getNumber()) { + return false; + } + if (source != other.source) + return false; + return true; + } + + /** + * custom comparison for BasicBlockInContext. The WALA .equals() + * implementation eventually delegates to pointer equality, which is too + * specific for our needs. + * + * @param a + * @param b + * @return + */ + @SuppressWarnings("unused") + private boolean compareBlocks(BasicBlockInContext a, + BasicBlockInContext b) { + // delegate to the defined implementation, but only if it's true. + if (a.equals(b)) { + return true; + } + + if (null == a || null == b) { + return false; + } + + if (a.getNumber() != b.getNumber()) { + return false; + } + + if (!a.getMethod().getSignature().equals(b.getMethod().getSignature())) { + return false; + } + return true; + } + + public abstract R visit(FlowTypeVisitor v); + + public static interface FlowTypeVisitor { + R visitFieldFlow(FieldFlow flow); + R visitIKFlow(IKFlow flow); + R visitParameterFlow(ParameterFlow flow); + R visitReturnFlow(ReturnFlow flow); + R visitStaticFieldFlow(StaticFieldFlow flow); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/types/IKFlow.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/IKFlow.java new file mode 100644 index 000000000..accd57f21 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/IKFlow.java @@ -0,0 +1,101 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.flow.types; + +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; + +public class IKFlow extends FlowType { + private final InstanceKey ik; + + public IKFlow(InstanceKey ik, BasicBlockInContext block, boolean source) { + super(block, source); + this.ik = ik; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((ik == null) ? 0 : ik.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + @SuppressWarnings("unchecked") + IKFlow other = (IKFlow) obj; + if (ik == null) { + if (other.ik != null) + return false; + } else if (!ik.equals(other.ik)) // TODO InstanceKey may not supply equals() + return false; + return true; + } + + @Override + public String toString() { + return "IKFlow(ik=" + ik + " " + super.toString() + ")"; + } + + public InstanceKey getIK() { + return ik; + } + + @Override + public R visit(org.scandroid.flow.types.FlowType.FlowTypeVisitor v) { + return v.visitIKFlow(this); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/types/ParameterFlow.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/ParameterFlow.java new file mode 100644 index 000000000..20c9feaf6 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/ParameterFlow.java @@ -0,0 +1,120 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.flow.types; + +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.ssa.analysis.IExplodedBasicBlock; + +/** A flow to or from the parameter of a method. This can represent formal + * parameters of methods being analyzed, or actual parameters of methods + * being called. In the former case, the associated block is the entry + * block of the method. In the latter case, the block is the block containing + * the invoke instruction. + * + * @author atomb + * + * @param + */ +public class ParameterFlow extends FlowType { + + private final int argNum; + + public ParameterFlow(BasicBlockInContext block, + int argNum, boolean source) { + super(block, source); + this.argNum = argNum; + } + + public int getArgNum() { + return argNum; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + argNum; + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + @SuppressWarnings("unchecked") + ParameterFlow other = (ParameterFlow) obj; + if (argNum != other.argNum) + return false; + return true; + } + + @Override + public String toString() { + return "ParameterFlow( argNum="+argNum+" "+super.toString()+")"; + } + + @Override + public String descString() { + String s = "arg(" + argNum + ")"; + if(!getBlock().isEntryBlock()) { + SSAInvokeInstruction inv = (SSAInvokeInstruction) ((IExplodedBasicBlock) getBlock().getDelegate()).getInstruction(); + s = s + ":" + inv.getDeclaredTarget().getSignature(); + } + return s; + } + + @Override + public R visit(FlowTypeVisitor v) { + return v.visitParameterFlow(this); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/types/ReturnFlow.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/ReturnFlow.java new file mode 100644 index 000000000..91910ebd1 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/ReturnFlow.java @@ -0,0 +1,86 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + */ + +package org.scandroid.flow.types; + +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAInvokeInstruction; + +/** + * + * A return flow represents either a flow from a method that was just invoked + * if this points to an invoke instruction (in which case this is a source) or + * a method return, if this points to a return instruction (in which case it is + * a sink). + * + */ +public class ReturnFlow extends FlowType { + public ReturnFlow(BasicBlockInContext block, boolean source) { + super(block, source); + } + + @Override + public String toString() { + return "ReturnFlow( " + super.toString() + ")"; + } + + @Override + public String descString() { + if(isSource()) { + SSAInvokeInstruction inv = (SSAInvokeInstruction)getBlock().getLastInstruction(); + return "ret:" + inv.getDeclaredTarget().getSignature(); + } else { + return "ret"; + } + } + + @Override + public R visit(FlowTypeVisitor v) { + return v.visitReturnFlow(this); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/types/StaticFieldFlow.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/StaticFieldFlow.java new file mode 100644 index 000000000..b27df2419 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/types/StaticFieldFlow.java @@ -0,0 +1,115 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.flow.types; + +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; + +/** + * @author acfoltzer + * + */ +public class StaticFieldFlow extends FlowType { + private final IField field; + + public StaticFieldFlow(BasicBlockInContext block, IField field, boolean source) { + super(block, source); + this.field = field; + } + + @Override + public String toString() { + return "StaticFieldFlow( field=" + field + " "+ super.toString() + ")"; + } + + @Override + public String descString() { + return field.getDeclaringClass().toString() + "." + field.getName().toString(); + } + + public IField getField() { + return field; + } + + /* (non-Javadoc) + * @see org.scandroid.flow.types.FlowType#visit(org.scandroid.flow.types.FlowType.FlowTypeVisitor) + */ + @Override + public R visit(FlowTypeVisitor v) { + return v.visitStaticFieldFlow(this); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((field == null) ? 0 : field.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + @SuppressWarnings("unchecked") + StaticFieldFlow other = (StaticFieldFlow) obj; + if (field == null) { + if (other.field != null) + return false; + } else if (!field.equals(other.field)) + return false; + return true; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/model/AppModelMethod.java b/com.ibm.wala.scandroid/source/org/scandroid/model/AppModelMethod.java new file mode 100644 index 000000000..9d4f22dcc --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/model/AppModelMethod.java @@ -0,0 +1,462 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , Rogan Creswick ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.model; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import org.scandroid.spec.AndroidSpecs; +import org.scandroid.spec.MethodNamePattern; +import org.scandroid.util.LoaderUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import com.ibm.wala.classLoader.ArrayClass; +import com.ibm.wala.classLoader.CallSiteReference; +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.classLoader.Language; +import com.ibm.wala.classLoader.NewSiteReference; +import com.ibm.wala.ipa.callgraph.AnalysisScope; +import com.ibm.wala.ipa.cha.IClassHierarchy; +import com.ibm.wala.ipa.summaries.MethodSummary; +import com.ibm.wala.shrikeBT.IInvokeInstruction; +import com.ibm.wala.shrikeBT.IInvokeInstruction.IDispatch; +import com.ibm.wala.ssa.ConstantValue; +import com.ibm.wala.ssa.SSAArrayStoreInstruction; +import com.ibm.wala.ssa.SSAInstructionFactory; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.ssa.SSANewInstruction; +import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.types.Descriptor; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.TypeName; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.debug.UnimplementedError; +import com.ibm.wala.util.strings.Atom; + +public class AppModelMethod { + private final static Logger logger = LoggerFactory.getLogger(AppModelMethod.class); + + int nextLocal; + /** + * A mapping from String (variable name) -> Integer (local number) + */ + private Map symbolTable = null; + + private MethodSummary methodSummary; + + private final IClassHierarchy cha; + + private final AnalysisScope scope; + + private Map constant2ValueNumber = HashMapFactory.make(); + + SSAInstructionFactory insts; + + + //Maps a Type to variable name + private Map typeToID = new HashMap (); + //innerclass dependencies + private Map> icDependencies = new HashMap> (); + //all callbacks to consider + private List callBacks = new ArrayList(); + + private Map aClassToTR = new HashMap (); + + private class MethodParams{ + public IMethod im; + public int params[]; + private MethodParams(IMethod method) { + im = method; + } + private void setParams(int p[]) { + params = p; + } + private IMethod getIMethod() { + return im; + } + private int[] getParams() { + return params; + } + } + + public AppModelMethod(IClassHierarchy cha, AnalysisScope scope, AndroidSpecs specs) { + this.cha = cha; + this.scope = scope; + Language lang = scope.getLanguage(ClassLoaderReference.Application.getLanguage()); + insts = lang.instructionFactory(); + + startMethod(); + buildTypeMap(specs); + processTypeMap(); + processCallBackParams(); + createLoopAndSwitch(); + } + + private void createLoopAndSwitch() { + int callbackSize = callBacks.size(); + //start of while loop + int loopLabel = methodSummary.getNumberOfStatements(); + int switchValue = nextLocal++; + //default label, for now same as case1 + int defLabel = loopLabel+1; + int[] casesAndLabels = new int[2*callbackSize]; + + for (int i = 0; i < callbackSize; i++) { + casesAndLabels[i*2] = i+1; + casesAndLabels[i*2+1] = defLabel+i*2; + } + + methodSummary.addStatement( + insts.SwitchInstruction(methodSummary.getNumberOfStatements(), switchValue, defLabel, casesAndLabels)); + + for (int i = 0; i < callbackSize; i++) { + MethodParams mp = callBacks.get(i); + IMethod im = mp.getIMethod(); + IDispatch dispatch; + if (im.isInit()) { + dispatch = IInvokeInstruction.Dispatch.SPECIAL; + } + else if (im.isAbstract()) { + dispatch = IInvokeInstruction.Dispatch.INTERFACE; + } + else if (im.isStatic()) { + dispatch = IInvokeInstruction.Dispatch.STATIC; + } + else + dispatch = IInvokeInstruction.Dispatch.VIRTUAL; + addInvocation(mp.getParams(), + CallSiteReference.make(methodSummary.getNumberOfStatements(), + mp.getIMethod().getReference(), + dispatch)); + methodSummary.addStatement(insts.GotoInstruction(methodSummary.getNumberOfStatements(), loopLabel)); + } + } + + private void startMethod() { + String className = "Lcom/SCanDroid/AppModel"; + String methodName = "entry"; + TypeReference governingClass = + TypeReference.findOrCreate(ClassLoaderReference.Application, TypeName.string2TypeName(className)); + Atom mName = Atom.findOrCreateUnicodeAtom(methodName); + Language lang = scope.getLanguage(ClassLoaderReference.Application.getLanguage()); + Descriptor D = Descriptor.findOrCreateUTF8(lang, "()V"); + MethodReference mref = MethodReference.findOrCreate(governingClass, mName, D); + + + methodSummary = new MethodSummary(mref); + + methodSummary.setStatic(true); + methodSummary.setFactory(false); + + int nParams = mref.getNumberOfParameters(); + nextLocal = nParams + 1; + symbolTable = HashMapFactory.make(5); + for (int i = 0; i < nParams; i++) { + symbolTable.put("arg" + i, new Integer(i + 1)); + } + } + + private void buildTypeMap(AndroidSpecs specs) { + //Go through all possible callbacks found in Application code + //Associate their TypeReference with a unique number in typeToID. + //Also keep track of all anonymous classes found. + for (MethodNamePattern mnp:specs.getCallBacks()) { + for (IMethod im: mnp.getPossibleTargets(cha)) { + // limit to functions defined within the application + if(LoaderUtils.fromLoader(im, ClassLoaderReference.Application)) + { + callBacks.add(new MethodParams(im)); + TypeReference tr = im.getDeclaringClass().getReference(); + if (!typeToID.containsKey(tr)) { + logger.debug("AppModel Mapping type "+tr.getName()+" to id " + nextLocal); + typeToID.put(tr, nextLocal++); + //class is an innerclass + if (tr.getName().getClassName().toString().contains("$")) { + addDependencies(tr); + } + } + } + } + } + } + + private void addDependencies(TypeReference tr) { + String packageName = "L"+tr.getName().getPackage().toString()+"/"; + String outerClassName; + String innerClassName = tr.getName().getClassName().toString(); + LinkedList trLL = new LinkedList (); + trLL.push(tr); + int index = innerClassName.lastIndexOf("$"); + while (index != -1) { + outerClassName = innerClassName.substring(0, index); + TypeReference innerTR = TypeReference.findOrCreate(ClassLoaderReference.Application, packageName+outerClassName); + trLL.push(innerTR); + if (!typeToID.containsKey(innerTR)) { + logger.debug("AppModel Mapping type "+innerTR.getName()+" to id " + nextLocal); + typeToID.put(innerTR, nextLocal++); + aClassToTR.put(innerTR, tr); + } + + innerClassName = outerClassName; + index = outerClassName.lastIndexOf("$"); + } + icDependencies.put(tr, trLL); + } + + + private void processTypeMap() { + Set createdIDs = new HashSet (); + for (Entry eSet:typeToID.entrySet()) { + Integer i = eSet.getValue(); + if (createdIDs.contains(i)) + continue; + + TypeReference tr = eSet.getKey(); + String className = tr.getName().getClassName().toString(); + + + //Not an anonymous innerclass + if (!className.contains("$")) { + processAllocation(tr, i, false); + createdIDs.add(i); + } + //Is an anonymous innerclass + else { + LinkedList deps = icDependencies.get(tr); + if (deps == null) { + tr = aClassToTR.get(tr); + } + + for (TypeReference trD:icDependencies.get(tr)) { + Integer j = typeToID.get(trD); + if (!createdIDs.contains(j)) { + String depClassName = trD.getName().getClassName().toString(); + processAllocation(trD, j, depClassName.contains("$")); + createdIDs.add(j); + } + } + } + } + + assert(createdIDs.size() == typeToID.size()):"typeToID and createdID size do not match"; + } + + private void processCallBackParams() { + for (MethodParams mp:callBacks) { + int params[] = new int[mp.getIMethod().getNumberOfParameters()]; + int startPos; + if (mp.getIMethod().isStatic()) { + startPos = 0; + } + else { + params[0] = typeToID.get(mp.getIMethod().getDeclaringClass().getReference()); + startPos = 1; + } + for (int i = startPos; i < params.length; i++) { + params[i] = makeArgument(mp.getIMethod().getParameterType(i)); + } + mp.setParams(params); + } + } + + private int makeArgument(TypeReference tr) { + if (tr.isPrimitiveType()) + return addLocal(); + else { + SSANewInstruction n = processAllocation(tr, nextLocal++, false); + return (n == null) ? -1 : n.getDef(); + } + } + + private int addLocal() { + return nextLocal++; + } + + private SSANewInstruction processAllocation (TypeReference tr, Integer i, boolean isInner) { + // create the allocation statement and add it to the method summary + NewSiteReference ref = NewSiteReference.make(methodSummary.getNumberOfStatements(), tr); + SSANewInstruction a = null; + + if (tr.isArrayType()) { + int[] sizes = new int[((ArrayClass)cha.lookupClass(tr)).getDimensionality()]; + Arrays.fill(sizes, getValueNumberForIntConstant(1)); + a = insts.NewInstruction(methodSummary.getNumberOfStatements(), i, ref, sizes); + } else { + a = insts.NewInstruction(methodSummary.getNumberOfStatements(), i, ref); + } + + methodSummary.addStatement(a); + + IClass klass = cha.lookupClass(tr); + if (klass == null) { + return null; + } + + if (klass.isArrayClass()) { + int arrayRef = a.getDef(); + TypeReference e = klass.getReference().getArrayElementType(); + while (e != null && !e.isPrimitiveType()) { + // allocate an instance for the array contents + NewSiteReference n = NewSiteReference.make(methodSummary.getNumberOfStatements(), e); + int alloc = nextLocal++; + SSANewInstruction ni = null; + if (e.isArrayType()) { + int[] sizes = new int[((ArrayClass)cha.lookupClass(tr)).getDimensionality()]; + Arrays.fill(sizes, getValueNumberForIntConstant(1)); + ni = insts.NewInstruction(methodSummary.getNumberOfStatements(), alloc, n, sizes); + } else { + ni = insts.NewInstruction(methodSummary.getNumberOfStatements(), alloc, n); + } + methodSummary.addStatement(ni); + + // emit an astore + SSAArrayStoreInstruction store = insts.ArrayStoreInstruction(methodSummary.getNumberOfStatements(), arrayRef, getValueNumberForIntConstant(0), alloc, e); + methodSummary.addStatement(store); + + e = e.isArrayType() ? e.getArrayElementType() : null; + arrayRef = alloc; + } + } + + //invoke constructor + IMethod ctor = cha.resolveMethod(klass, MethodReference.initSelector); + + if (ctor != null) { + //only check for more constructors when we're looking through the inner classes? + if (isInner && !ctor.getDeclaringClass().getName().toString().equals(klass.getName().toString())) { + boolean foundValidCtor = false; + for (IMethod im: klass.getAllMethods()) { + if (im.getDeclaringClass().getName().toString().equals(klass.getName().toString()) && + im.getSelector().getName().toString().equals(MethodReference.initAtom.toString())) { + ctor = im; + foundValidCtor = true; + //found a default constructor that takes only the outer class as a parameter + if (im.getDescriptor().getNumberOfParameters() == 1) { + break; + } + } + } + if (!foundValidCtor) { + throw new UnimplementedError("Check for other constructors, or just use default Object constructor"); + } + } + int[] params; + if (ctor.getDescriptor().getNumberOfParameters() == 0) + params = new int[] {i}; + else { + params = new int[ctor.getNumberOfParameters()]; + params[0] = i; + + LinkedList deps = icDependencies.get(tr); + if (deps == null) { + deps = icDependencies.get(aClassToTR.get(tr)); + int index = deps.lastIndexOf(tr); + TypeReference otr = deps.get(index-1); + assert(ctor.getParameterType(1).equals(otr)) : "Type Mismatch"; + params[1] = typeToID.get(otr); + } + else { + TypeReference otr = deps.get(deps.size()-2); + assert(ctor.getParameterType(1).equals(otr)) : "Type Mismatch"; + params[1] = typeToID.get(otr); + } + + //Allocate new instances for each of the other parameters + //in the current constructor. + for (int pI = 2; pI < params.length; pI++) { + params[pI] = makeArgument(ctor.getParameterType(pI)); + } + + } + addInvocation(params, CallSiteReference.make(methodSummary.getNumberOfStatements(), ctor.getReference(), + IInvokeInstruction.Dispatch.SPECIAL)); + } + + return a; + } + + public SSAInvokeInstruction addInvocation(int[] params, CallSiteReference site) { + if (site == null) { + throw new IllegalArgumentException("site is null"); + } + CallSiteReference newSite = CallSiteReference.make(methodSummary.getNumberOfStatements(), site.getDeclaredTarget(), site.getInvocationCode()); + SSAInvokeInstruction s = null; + if (newSite.getDeclaredTarget().getReturnType().equals(TypeReference.Void)) { + s = insts.InvokeInstruction(methodSummary.getNumberOfStatements(), params, nextLocal++, newSite); + } else { + s = insts.InvokeInstruction(methodSummary.getNumberOfStatements(), nextLocal++, params, nextLocal++, newSite); + } + methodSummary.addStatement(s); + // cache.invalidate(this, Everywhere.EVERYWHERE); + return s; + } + + protected int getValueNumberForIntConstant(int c) { + ConstantValue v = new ConstantValue(c); + Integer result = constant2ValueNumber.get(v); + if (result == null) { + result = nextLocal++; + constant2ValueNumber.put(v, result); + } + return result; + } + + public MethodSummary getSummary() { + return methodSummary; + } +} diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/BlockSearch.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/BlockSearch.java similarity index 91% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/BlockSearch.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/BlockSearch.java index eaf86d98a..d5f40d4e9 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/BlockSearch.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/BlockSearch.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/InstanceKeySite.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/InstanceKeySite.java similarity index 85% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/InstanceKeySite.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/InstanceKeySite.java index eef53665d..90947b86e 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/InstanceKeySite.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/InstanceKeySite.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferFunction.java similarity index 89% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunction.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferFunction.java index 6b30c6642..b95af94d2 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunction.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferFunction.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java similarity index 91% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java index 6a583f54e..0ba120890 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferGraph.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferGraph.java similarity index 97% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferGraph.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferGraph.java index 10e3d4610..199de91d2 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferGraph.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixTransferGraph.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixVariable.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixVariable.java similarity index 92% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixVariable.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixVariable.java index 9ca4df7b3..0b66416de 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixVariable.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/PrefixVariable.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/StringBuilderUseAnalysis.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/StringBuilderUseAnalysis.java similarity index 96% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/StringBuilderUseAnalysis.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/StringBuilderUseAnalysis.java index b78b15463..8b2cd9ace 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/StringBuilderUseAnalysis.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/StringBuilderUseAnalysis.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixContextSelector.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/UriPrefixContextSelector.java similarity index 95% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixContextSelector.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/UriPrefixContextSelector.java index 4122adbb7..fffdb213d 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixContextSelector.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/UriPrefixContextSelector.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java similarity index 98% rename from com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java rename to com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java index 7c6ad3bc0..174eac2a6 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java @@ -1,3 +1,12 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ /* * * Copyright (c) 2009-2012, diff --git a/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/ConstantString.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/ConstantString.java new file mode 100644 index 000000000..23fbfd203 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/ConstantString.java @@ -0,0 +1,82 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.prefixtransfer.modeledAllocations; + +import org.scandroid.prefixtransfer.InstanceKeySite; +import org.scandroid.prefixtransfer.PrefixVariable; + +public class ConstantString extends InstanceKeySite { + + final String constantValue; + final int instanceID; + + public ConstantString(int instanceID, String constantValue) + { + this.constantValue = constantValue; + this.instanceID = instanceID; + } + + @Override + public PrefixVariable propagate(PrefixVariable input) { +// System.out.println("Propagating at: " + instanceID + " (" + constantValue + ")"); + PrefixVariable retVal = new PrefixVariable(); + retVal.update(instanceID, constantValue); + retVal.include(instanceID); + return retVal; + } + + public String toString() { + return ("ConstantString(instanceID = " + instanceID + "; value = " + constantValue + ")"); + } + + @Override + public int instanceID() { + return instanceID; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/StringToLower.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/StringToLower.java new file mode 100644 index 000000000..1bd6d4124 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/StringToLower.java @@ -0,0 +1,95 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.prefixtransfer.modeledAllocations; + +import java.util.Set; + +import org.scandroid.prefixtransfer.InstanceKeySite; +import org.scandroid.prefixtransfer.PrefixVariable; + + +public class StringToLower extends InstanceKeySite { + + private final int instanceID; + private final Set dependencies; + + public StringToLower(int instanceID, Set dependencies) + { + this.instanceID = instanceID; + this.dependencies = dependencies; + } + + + @Override + public PrefixVariable propagate(PrefixVariable input) { + // TODO Auto-generated method stub + PrefixVariable retVal = new PrefixVariable(); + String prefix = null; + for(Integer dep:dependencies) + { + String depPrefix = input.getPrefix(dep); + // if any of the dependencies are unknown, then this prefix is also unknown + if(depPrefix == null) + return retVal; + depPrefix = depPrefix.toLowerCase(); + if(prefix == null) + prefix = depPrefix; + else + prefix = PrefixVariable.intersect(prefix, depPrefix); + } + retVal.update(instanceID, prefix); + return retVal; + } + + + @Override + public int instanceID() { + return instanceID; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/UriAppendString.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/UriAppendString.java new file mode 100644 index 000000000..18d9ed0b6 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/UriAppendString.java @@ -0,0 +1,90 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.prefixtransfer.modeledAllocations; + +import org.scandroid.prefixtransfer.InstanceKeySite; +import org.scandroid.prefixtransfer.PrefixVariable; + +public class UriAppendString extends InstanceKeySite { + + final int uriInstanceID; + final int stringInstanceID; + final int instanceID; + + public UriAppendString(int instanceID, int uriInstanceID, int stringInstanceID) + { + this.uriInstanceID = uriInstanceID; + this.stringInstanceID = stringInstanceID; + this.instanceID = instanceID; + } + + @Override + public PrefixVariable propagate(PrefixVariable input) { +// System.out.println("Propagating at: " + instanceID + " (" + constantValue + ")"); + PrefixVariable retVal = new PrefixVariable(); + retVal.copyState(input); + String prefix = input.getPrefix(uriInstanceID); + if (input.fullPrefixKnown.contains(uriInstanceID)) { + retVal.update(instanceID, prefix + "/" + input.getPrefix(stringInstanceID)); + if (input.fullPrefixKnown.contains(stringInstanceID)) + retVal.include(instanceID); + } + else retVal.update(instanceID, prefix); + return retVal; + } + + public String toString() { + return ("UriAppendString(instanceID = " + instanceID + "; uriInstanceID = " + uriInstanceID + "; stringInstanceID = " + stringInstanceID + ")"); + } + + @Override + public int instanceID() { + return instanceID; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/UriParseString.java b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/UriParseString.java new file mode 100644 index 000000000..4f2f0be97 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/prefixtransfer/modeledAllocations/UriParseString.java @@ -0,0 +1,85 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.prefixtransfer.modeledAllocations; + +import org.scandroid.prefixtransfer.InstanceKeySite; +import org.scandroid.prefixtransfer.PrefixVariable; + +public class UriParseString extends InstanceKeySite { + + final int stringInstanceID; + final int instanceID; + + public UriParseString(int instanceID, int stringInstanceID) + { + this.stringInstanceID = stringInstanceID; + this.instanceID = instanceID; + } + + @Override + public PrefixVariable propagate(PrefixVariable input) { +// System.out.println("Propagating at: " + instanceID + " (" + constantValue + ")"); + PrefixVariable retVal = new PrefixVariable(); + retVal.copyState(input); + String prefix = input.getPrefix(stringInstanceID); + retVal.update(instanceID, prefix); + if (input.fullPrefixKnown.contains(stringInstanceID)) + retVal.include(instanceID); + return retVal; + } + + public String toString() { + return ("UriParseString(instanceID = " + instanceID + "; stringInstanceID = " + stringInstanceID + ")"); + } + + @Override + public int instanceID() { + return instanceID; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/AndroidSpecs.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/AndroidSpecs.java new file mode 100644 index 000000000..ebed5816b --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/AndroidSpecs.java @@ -0,0 +1,374 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.scandroid.util.LoaderUtils; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.cha.ClassHierarchy; +import com.ibm.wala.types.ClassLoaderReference; + +public class AndroidSpecs implements ISpecs { +// private AppModelMethod appEntrySummary; + + static String act = "Landroid/app/Activity"; + static String svc = "Landroid/app/Service"; + static String prv = "Landroid/content/ContentProvider"; + static String rslv = "Landroid/content/ContentResolver"; + static String ctx = "Landroid/content/Context"; + static String http = "Landroid/net/AndroidHttpClient"; + static String bnd = "Landroid/os/IBinder"; + static String lm = "Landroid/location/LocationManager"; + static String tm = "Landroid/telephony/TelephonyManager"; + static String sms = "android/telephony/SmsManager"; + static String smsGsm = "android/telephony/gsm/SmsManager"; + static String ll = "Landroid/location/LocationListener"; + static String gl = "Landroid/location/GpsStatus$Listener"; + static String nl = "Landroid/location/GpsStatus$NmeaListener"; + + static MethodNamePattern actCreate = + new MethodNamePattern(act, "onCreate"); + static MethodNamePattern actStart = + new MethodNamePattern(act, "onStart"); + static MethodNamePattern actResume = + new MethodNamePattern(act, "onResume"); + static MethodNamePattern actStop = + new MethodNamePattern(act, "onStop"); + static MethodNamePattern actRestart = + new MethodNamePattern(act, "onRestart"); + static MethodNamePattern actDestroy = + new MethodNamePattern(act, "onDestroy"); + static MethodNamePattern actOnActivityResult = + new MethodNamePattern(act, "onActivityResult"); + + static MethodNamePattern actOnRestoreInstanceState = + new MethodNamePattern(act, "onRestoreInstanceState"); + static MethodNamePattern actOnSaveInstanceState = + new MethodNamePattern(act, "onSaveInstanceState"); + + static MethodNamePattern actSetResult = + new MethodNamePattern(act, "setResult"); + + static MethodNamePattern actGetIntent = + new MethodNamePattern(act, "getIntent"); + + static MethodNamePattern actStartActivityForResult = + new MethodNamePattern(act, "startActivityForResult"); + static MethodNamePattern actStartActivityIfNeeded = + new MethodNamePattern(act, "startActivityIfNeeded"); + static MethodNamePattern actStartNextMatchingActivity = + new MethodNamePattern(act, "startNextMatchingActivity"); + static MethodNamePattern actStartActivityFromChild = + new MethodNamePattern(act, "startActivityFromChild"); + + static MethodNamePattern svcCreate = + new MethodNamePattern(svc, "onCreate"); + static MethodNamePattern svcStart = + new MethodNamePattern(svc, "onStart"); + static MethodNamePattern svcStartCommand = + new MethodNamePattern(svc, "onStartCommand"); + static MethodNamePattern svcBind = + new MethodNamePattern(svc, "onBind"); + + static MethodNamePattern rslvQuery = + new MethodNamePattern(rslv, "query"); + static MethodNamePattern rslvInsert = + new MethodNamePattern(rslv, "insert"); + static MethodNamePattern rslvUpdate = + new MethodNamePattern(rslv, "update"); + + static MethodNamePattern prvCreate = + new MethodNamePattern(prv, "onCreate"); + static MethodNamePattern prvQuery = + new MethodNamePattern(prv, "query"); + static MethodNamePattern prvInsert = + new MethodNamePattern(prv, "insert"); + static MethodNamePattern prvUpdate = + new MethodNamePattern(prv, "update"); + + static MethodNamePattern ctxStartActivity = + new MethodNamePattern(ctx, "startActivity"); + static MethodNamePattern ctxStartService = + new MethodNamePattern(ctx, "startService"); + static MethodNamePattern ctxBindService = + new MethodNamePattern(ctx, "bindService"); + + static MethodNamePattern bndTransact = + new MethodNamePattern(bnd, "transact"); + static MethodNamePattern bndOnTransact = + new MethodNamePattern(bnd, "onTransact"); + + static MethodNamePattern httpExecute = + new MethodNamePattern(http, "execute"); + +// private static MethodNamePattern[] callbackModelEntry = { +// new MethodNamePattern("Lcom/SCanDroid/AppModel", "entry") +// }; + + static MethodNamePattern llLocChanged = + new MethodNamePattern(ll, "onLocationChanged"); + static MethodNamePattern llProvDisabled = + new MethodNamePattern(ll, "onProviderDisabled"); + static MethodNamePattern llProvEnabled = + new MethodNamePattern(ll, "onProviderEnabled"); + static MethodNamePattern llStatusChanged = + new MethodNamePattern(ll, "onStatusChanged"); + static MethodNamePattern glStatusChanged = + new MethodNamePattern(gl, "onGpsStatusChanged"); + static MethodNamePattern nlNmeaRecvd = + new MethodNamePattern(nl, "onNmeaReceived"); + + private static MethodNamePattern[] defaultCallbacks = { + actCreate, + actStart, + actResume, + actStop, + actRestart, + actDestroy, + actOnActivityResult, + + svcCreate, + svcStart, + svcStartCommand, + svcBind, + //svcTransact, + + prvCreate, + prvQuery, + prvInsert, + prvUpdate, + + llLocChanged, + llProvDisabled, + llProvEnabled, + llStatusChanged, + glStatusChanged, + nlNmeaRecvd, + }; + public MethodNamePattern[] getEntrypointSpecs() { return defaultCallbacks; } + + + private static SourceSpec[] sourceSpecs = { +// new EntryArgSourceSpec( actCreate, null ), + //doesn't have any parameters + // new EntryArgSourceSpec( actStart, null ), + // new EntryArgSourceSpec( actResume, null ), + // new EntryArgSourceSpec( actStop, null ), + // new EntryArgSourceSpec( actRestart, null ), + // new EntryArgSourceSpec( actDestroy, null ), + //track all parameters? or just the Intent data(3) + new EntryArgSourceSpec( actOnActivityResult, new int[] {3}), +// new EntryArgSourceSpec( actOnRestoreInstanceState, null ), +// new EntryArgSourceSpec( actOnSaveInstanceState, null ), + +// new EntryArgSourceSpec( svcCreate, null ), + new EntryArgSourceSpec( svcStart, new int[] { 1 } ), + new EntryArgSourceSpec( svcStartCommand, new int[] { 1 } ), + new EntryArgSourceSpec( svcBind, new int[] {1} ), + + new EntryArgSourceSpec(bndOnTransact, new int[] { 2 }), + + new EntryArgSourceSpec(llLocChanged, null), + new EntryArgSourceSpec(llProvDisabled, null), + new EntryArgSourceSpec(llProvEnabled, null), + new EntryArgSourceSpec(llStatusChanged, null), + new EntryArgSourceSpec(glStatusChanged, null), + new EntryArgSourceSpec(nlNmeaRecvd, null), + + //doesn't exist + // new EntryArgSourceSpec( svcTransact, null ), + + //no parameters + //new EntryArgSourceSpec( prvCreate, null ), +// new CallArgSourceSpec( prvQuery, new int[] { 2, 3, 4, 5 }, SourceType.PROVIDER_SOURCE), +// new CallArgSourceSpec( prvInsert, new int[] { 2 }, SourceType.PROVIDER_SOURCE), +// new CallArgSourceSpec( prvUpdate, new int[] { 2, 3, 4 }, SourceType.PROVIDER_SOURCE), + + new CallArgSourceSpec(bndTransact, new int[] { 3 }), + + new CallRetSourceSpec(rslvQuery, new int[] {}), +// new CallRetSourceSpec(httpExecute, new int[] {}), + new CallRetSourceSpec(actGetIntent, new int[] {}), + +// new CallRetSourceSpec(new MethodNamePattern("LTest/Apps/GenericSource", "getIntSource"), new int[]{}), + new CallRetSourceSpec(new MethodNamePattern("LTest/Apps/GenericSource", "getStringSource"), new int[]{}), + + new CallRetSourceSpec(new MethodNamePattern(lm, "getProviders"), null), + new CallRetSourceSpec(new MethodNamePattern(lm, "getProvider"), null), + new CallRetSourceSpec(new MethodNamePattern(lm, "getLastKnownLocation"), null), + new CallRetSourceSpec(new MethodNamePattern(lm, "isProviderEnabled"), null), + new CallRetSourceSpec(new MethodNamePattern(lm, "getBestProvider"), null), + new CallRetSourceSpec(new MethodNamePattern(tm, "getNeighboringCellInfo"), null), + new CallRetSourceSpec(new MethodNamePattern(tm, "getCellLocation"), null), + + }; + + public SourceSpec[] getSourceSpecs() { return sourceSpecs; } + + /** + * TODO: document! + */ + private static SinkSpec[] sinkSpecs = { + new CallArgSinkSpec(actSetResult, new int[] { 2 }), +// new CallArgSinkSpec(bndTransact, new int[] { 2 }), + + new CallArgSinkSpec(rslvQuery, new int[] { 2, 3, 4, 5 }), + new CallArgSinkSpec(rslvInsert, new int[] { 2 }), +// new CallArgSinkSpec(rslvUpdate, new int[] { 2, 3, 4 }), + + new CallArgSinkSpec(ctxBindService, new int[] { 1 }), + new CallArgSinkSpec(ctxStartService, new int[] { 1 }), + + new CallArgSinkSpec(ctxStartActivity, new int[] { 1 }), + new CallArgSinkSpec(actStartActivityForResult, new int[] { 1 }), + new CallArgSinkSpec(actStartActivityIfNeeded, new int[] { 1 }), + new CallArgSinkSpec(actStartNextMatchingActivity, new int[] { 1 }), + new CallArgSinkSpec(actStartActivityFromChild, new int[] { 2 }), + + + new EntryArgSinkSpec( bndOnTransact, new int[] { 3 } ), +// new EntryArgSinkSpec( actOnActivityResult, new int[] { 2 } ), +// new EntryArgSinkSpec( actOnSaveInstanceState, new int[] { 0 } ), + + //new EntryRetSinkSpec(prvQuery), + + new CallArgSinkSpec(new MethodNamePattern("LTest/Apps/GenericSink", "setSink"), new int[]{ 1 }), + + new CallArgSinkSpec(new MethodNamePattern(smsGsm, "sendTextMessage"), null), + new CallArgSinkSpec(new MethodNamePattern(sms, "sendMultipartTextMessage"), null), + new CallArgSinkSpec(new MethodNamePattern(smsGsm, "sendDataMessage"), null), + new CallArgSinkSpec(new MethodNamePattern(sms, "sendTextMessage"), null), + new CallArgSinkSpec(new MethodNamePattern(smsGsm, "sendMultipartTextMessage"), null), + new CallArgSinkSpec(new MethodNamePattern(sms, "sendDataMessage"), null), + }; + + public SinkSpec[] getSinkSpecs() { return sinkSpecs; } + + private static MethodNamePattern[] callBacks = new MethodNamePattern[]{}; +// public MethodNamePattern[] getCallBacks() { +// if (callBacks == null) +// callBacks = new MethodNamePattern[] {}; +// return callBacks; +// } + public void addPossibleListeners(ClassHierarchy cha) { + Set ignoreMethods = new HashSet(); + ignoreMethods.add(""); + ignoreMethods.add(""); + ignoreMethods.add("registerNatives"); + ignoreMethods.add("getClass"); + ignoreMethods.add("hashCode"); + ignoreMethods.add("equals"); + ignoreMethods.add("clone"); + ignoreMethods.add("toString"); + ignoreMethods.add("notify"); + ignoreMethods.add("notifyAll"); + ignoreMethods.add("finalize"); + ignoreMethods.add("wait"); + + List moreEntryPointSpecs = new ArrayList (); + + //add default entrypoints from AndroidSpecs.entrypointSpecs + //Currently adds methods even if they exist in the ignnoreMethods + //set. + for (MethodNamePattern mnp: defaultCallbacks) { + moreEntryPointSpecs.add(mnp); + } + + for (IClass ic:cha) { + if (!LoaderUtils.fromLoader(ic, ClassLoaderReference.Application)) { + continue; + } + + //finds all *Listener classes and fetches all methods for the listener + if (ic.getName().getClassName().toString().endsWith("Listener")) { + for (IMethod im: ic.getAllMethods()) { + //TODO: add isAbstract()? + if (!ignoreMethods.contains(im.getName().toString()) && !im.isPrivate()) { + moreEntryPointSpecs.add( + new MethodNamePattern(ic.getName().toString(), + im.getName().toString())); + } + } + } + //not a listener, just find all the methods that start with "on____" + else { + for (IMethod im:ic.getAllMethods()) { + //TODO: add isAbstract()? + if (!ignoreMethods.contains(im.getName().toString()) && + im.getName().toString().startsWith("on") && !im.isPrivate()) { + moreEntryPointSpecs.add(new MethodNamePattern(ic.getName().toString(), + im.getName().toString())); + } + } + } + } + +// entrypointSpecs = + callBacks = + moreEntryPointSpecs.toArray(new MethodNamePattern[moreEntryPointSpecs.size()]); + + } + + public MethodNamePattern[] getCallBacks() { + return callBacks; + } + +// public void setEntrySummary(AppModelMethod amm) { +// this.appEntrySummary = amm; +// } +// public AppModelMethod getEntrySummary() { +// return appEntrySummary; +// } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/CallArgSinkSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/CallArgSinkSpec.java new file mode 100644 index 000000000..77be61ba4 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/CallArgSinkSpec.java @@ -0,0 +1,91 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; + +import org.scandroid.flow.types.FlowType; +import org.scandroid.flow.types.ParameterFlow; + +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAInvokeInstruction; + +public class CallArgSinkSpec extends SinkSpec { + + public CallArgSinkSpec(MethodNamePattern name, int[] args) { + namePattern = name; + argNums = args; + } + + @Override + public Collection> getFlowType( + BasicBlockInContext block) { + + HashSet> flowSet = new HashSet>(); + if (argNums == null) { + SSAInvokeInstruction i = (SSAInvokeInstruction) block + .getLastInstruction(); + argNums = new int[i.getDeclaredTarget().getNumberOfParameters()]; + for (int p = 0; p < argNums.length; p++) + argNums[p] = p; + } + for (int arg : argNums) { + flowSet.add(new ParameterFlow(block, arg, false)); + } + return flowSet; + } + + @Override + public String toString() { + return String.format("CallArgSinkSpec(%s,%s)", + namePattern.getDescriptor(), Arrays.toString(argNums)); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/CallArgSourceSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/CallArgSourceSpec.java new file mode 100644 index 000000000..7d10954d3 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/CallArgSourceSpec.java @@ -0,0 +1,133 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.InstanceKeyElement; +import org.scandroid.flow.InflowAnalysis; +import org.scandroid.flow.types.FlowType; +import org.scandroid.flow.types.ParameterFlow; +import org.scandroid.util.CGAnalysisContext; + +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.util.collections.HashSetFactory; + + +/** + * CallArgSourceSpecs represent sources that are arguments to another function. + * + * For example, if code you analyze invokes a function {@code foo(Object obj)} + * and foo writes to the argument, then {@code obj} would be a source. + * + */ +public class CallArgSourceSpec extends SourceSpec { + final String name = "CallArgSource"; + + public CallArgSourceSpec(MethodNamePattern name, int[] args) { + namePattern = name; + argNums = args; + } + + @Override + public void addDomainElements( + CGAnalysisContext ctx, + Map, Map, Set>> taintMap, + IMethod target, BasicBlockInContext block, + SSAInvokeInstruction invInst, int[] newArgNums, + ISupergraph, CGNode> graph, + PointerAnalysis pa, CallGraph cg) { + + for (int j = 0; j < newArgNums.length; j++) { + for (FlowType ft : getFlowType(block)) { + // a collection of a LocalElement for this argument's SSA value, + // along with a set of InstanceKeyElements for each instance + // that this SSA value might point to + final int ssaVal = invInst.getUse(newArgNums[j]); + final CGNode node = block.getNode(); + Set valueElements = CodeElement.valueElements(pa, + node, ssaVal); + PointerKey pk = pa.getHeapModel().getPointerKeyForLocal(node, ssaVal); + for (InstanceKey ik : pa.getPointsToSet(pk)) { + valueElements.add(new InstanceKeyElement(ik)); + } + + InflowAnalysis.addDomainElements(taintMap, block, ft, + valueElements); + } + } + } + + public Collection> getFlowType( + BasicBlockInContext block) { + HashSet> flowSet = HashSetFactory.make(); + for (int i : argNums) { + flowSet.add(new ParameterFlow(block, i, true)); + } + return flowSet; + } + + @Override + public String toString() { + return String.format("CallArgSourceSpec(%s, %s)", namePattern, Arrays.toString(argNums)); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/CallRetSourceSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/CallRetSourceSpec.java new file mode 100644 index 000000000..8e7ffa075 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/CallRetSourceSpec.java @@ -0,0 +1,113 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.flow.InflowAnalysis; +import org.scandroid.flow.types.FlowType; +import org.scandroid.flow.types.ReturnFlow; +import org.scandroid.util.CGAnalysisContext; + +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAInvokeInstruction; + + +/** + * CallRetSourceSpecs represent sources from invocations of other methods + * (eg: API methods). + * + * reading file contents, and returning bytes eg: via {@code int read(...)} is + * an example of a call return source. + */ +public class CallRetSourceSpec extends SourceSpec { + final String sig = "CallRetSource"; + public CallRetSourceSpec(MethodNamePattern name, int[] args) { + namePattern = name; + argNums = args; + } + + @Override + public void addDomainElements(CGAnalysisContext ctx, + Map, Map, Set>> taintMap, IMethod im, + BasicBlockInContext block, SSAInvokeInstruction invInst, int[] newArgNums, + ISupergraph, CGNode> graph, PointerAnalysis pa, CallGraph cg) { + + for (FlowType ft:getFlowType(block, invInst,block.getNode(), im, pa)) { + InflowAnalysis.addDomainElements(taintMap, block, ft, + CodeElement.valueElements(pa, block.getNode(), invInst.getDef(0))); + } + } + + private Collection> getFlowType( + BasicBlockInContext block, + SSAInvokeInstruction invInst, + CGNode node, IMethod im, PointerAnalysis pa) { + + HashSet> flowSet = new HashSet>(); + flowSet.clear(); + flowSet.add(new ReturnFlow(block, true)); + return flowSet; + } + + @Override + public String toString() { + return String.format("CallRetSourceSpec(%s)", namePattern); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryArgSinkSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryArgSinkSpec.java new file mode 100644 index 000000000..a991bc1e4 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryArgSinkSpec.java @@ -0,0 +1,90 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; + +import org.scandroid.flow.types.FlowType; +import org.scandroid.flow.types.ParameterFlow; + +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; + +public class EntryArgSinkSpec extends SinkSpec { + + /** + * @param name + * of the method + * @param args + * to be tainted. These are zero-based; zero refers to `this` for + * a non-static method, or the first parameter of a static method + */ + public EntryArgSinkSpec(MethodNamePattern name, int[] args) { + namePattern = name; + argNums = args; + } + + public Collection> getFlowType( + BasicBlockInContext block) { + + HashSet> flowSet = new HashSet>(); + flowSet.clear(); + for (int i : argNums) { + flowSet.add(new ParameterFlow(block, i, false)); + } + return flowSet; + } + + @Override + public String toString() { + return String.format("EntryArgSinkSpec(%s,%s)", + namePattern.getDescriptor(), Arrays.toString(argNums)); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryArgSourceSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryArgSourceSpec.java new file mode 100644 index 000000000..b98b0a09d --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryArgSourceSpec.java @@ -0,0 +1,139 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Arrays; +import java.util.Map; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.flow.InflowAnalysis; +import org.scandroid.flow.types.FlowType; +import org.scandroid.flow.types.ParameterFlow; +import org.scandroid.util.CGAnalysisContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.propagation.ConcreteTypeKey; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.intset.OrdinalSet; + + +/** + * Entry arg source specs represent sources that are arguments to methods + * that are entry points. + * + * For example, the command line arguments to a {@code main(String[] args)} + * are entry arg sources. + * + */ +public class EntryArgSourceSpec extends SourceSpec { + private static final Logger logger = LoggerFactory.getLogger(EntryArgSourceSpec.class); + + public EntryArgSourceSpec(MethodNamePattern name, int[] args) { + namePattern = name; + argNums = args; + } + @Override + public void addDomainElements(CGAnalysisContext ctx, + Map, Map, Set>> taintMap, + IMethod im, BasicBlockInContext block, SSAInvokeInstruction invInst, + int[] newArgNums, + ISupergraph, CGNode> graph, PointerAnalysis pa, CallGraph cg) { + + for(CGNode node: cg.getNodes(im.getReference())) { + for(int i: newArgNums) { + FlowType flow = new ParameterFlow(block, i, true); + final int ssaVal = node.getIR().getParameter(i); + final Set valueElements = CodeElement.valueElements(pa, node, ssaVal); + + PointerKey pk = pa.getHeapModel().getPointerKeyForLocal(node, ssaVal); + final OrdinalSet pointsToSet = pa.getPointsToSet(pk); + + if (pointsToSet.isEmpty()) { + TypeReference typeRef = node.getMethod().getParameterType(i); + IClass clazz = node.getMethod().getClassHierarchy().lookupClass(typeRef); + if (null == clazz) { + logger.error("couldn't find entry arg class {}", typeRef); + } else if (clazz.isInterface()) { + for (IClass impl : pa.getClassHierarchy().getImplementors(typeRef)) { + logger.debug("creating instance key {} for interface {}", impl, clazz); + InstanceKey ik = new ConcreteTypeKey(impl); + valueElements.addAll(ctx.codeElementsForInstanceKey(ik)); + } + } else { + InstanceKey ik = new ConcreteTypeKey(clazz); + valueElements.addAll(ctx.codeElementsForInstanceKey(ik)); + } + } + + for (InstanceKey ik : pointsToSet) { + valueElements.addAll(ctx.codeElementsForInstanceKey(ik)); + } + InflowAnalysis.addDomainElements(taintMap, block, flow, valueElements); + logger.debug("added elements for entry {}: {}", this, valueElements); + } + } + } + + @Override + public String toString() { + return String.format("EntryArgSourceSpec(%s, %s)", namePattern, Arrays.toString(argNums)); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryRetSinkSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryRetSinkSpec.java new file mode 100644 index 000000000..4268fe293 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/EntryRetSinkSpec.java @@ -0,0 +1,81 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Collection; +import java.util.HashSet; + +import org.scandroid.flow.types.FlowType; +import org.scandroid.flow.types.ReturnFlow; + +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; + +public class EntryRetSinkSpec extends SinkSpec { + + public EntryRetSinkSpec(MethodNamePattern name) { + namePattern = name; + } + + @Override + public Collection> getFlowType( + BasicBlockInContext block) { + HashSet> flowSet = new HashSet>(); + flowSet.clear(); + flowSet.add(new ReturnFlow(block, false)); + return flowSet; + } + + @Override + public String toString() { + return String.format("EntryRetSinkSpec(%s)", + namePattern.getDescriptor()); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/FieldNamePattern.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/FieldNamePattern.java new file mode 100644 index 000000000..813cef3c0 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/FieldNamePattern.java @@ -0,0 +1,81 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Collection; +import java.util.LinkedList; +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IClassLoader; +import com.ibm.wala.types.TypeName; +import com.ibm.wala.util.strings.Atom; + +public class FieldNamePattern { + final String className; // null = match any class + + final String memberName; // null = match any method + // * used to match arbitrary substrings + public FieldNamePattern(String c, String m) { + className = c; + memberName = m; + } + + Collection lookupFields(IClassLoader cl) { + Collection matching = new LinkedList(); + IClass c = cl.lookupClass(TypeName.findOrCreate(className)); + if(c == null) return matching; + Atom atom = Atom.findOrCreateUnicodeAtom(memberName); + Collection allFields = c.getAllFields(); + for(IField f: allFields) { + if(f.getName().equals(atom)) { + matching.add(f); + } + } + return matching; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/ISinkSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/ISinkSpec.java new file mode 100644 index 000000000..eca8755f8 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/ISinkSpec.java @@ -0,0 +1,51 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +public interface ISinkSpec { +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/ISourceSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/ISourceSpec.java new file mode 100644 index 000000000..4f614b367 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/ISourceSpec.java @@ -0,0 +1,51 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +public interface ISourceSpec{ +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/ISpecs.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/ISpecs.java new file mode 100644 index 000000000..609c19fde --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/ISpecs.java @@ -0,0 +1,82 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +public interface ISpecs { + /* A list of functions that are entry points. Arguments to these + * functions that are considered sources should be in the + * SourceSpec list. */ + public MethodNamePattern[] getEntrypointSpecs(); + + /* Other methods that source data via their return values or + * modification of their parameters. */ + public SourceSpec[] getSourceSpecs(); + + /* Methods that sink data supplied by some of their parameters. */ + public SinkSpec[] getSinkSpecs(); + + public static ISpecs EMPTY_SPECS = new ISpecs() { + + @Override + public SourceSpec[] getSourceSpecs() { + return new SourceSpec[] {}; + } + + @Override + public SinkSpec[] getSinkSpecs() { + return new SinkSpec[] {}; + } + + @Override + public MethodNamePattern[] getEntrypointSpecs() { + return new MethodNamePattern[] {}; + } + }; +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/MethodNamePattern.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/MethodNamePattern.java new file mode 100644 index 000000000..2cd00448b --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/MethodNamePattern.java @@ -0,0 +1,155 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.io.UTFDataFormatException; +import java.util.Collection; +import java.util.LinkedList; +import java.util.Set; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.cha.IClassHierarchy; +import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.types.Descriptor; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.strings.Atom; + +public class MethodNamePattern { + final private String className; + + final private String memberName; + + final private String descriptor; // null = match any types + + public MethodNamePattern(String c, String m, String d) { + className = c; + memberName = m; + descriptor = d; + } + + public MethodNamePattern(String c, String m) { + className = c; + memberName = m; + descriptor = null; + } + + private Collection lookupMethods(IClass c) { + Collection matching = new LinkedList(); + Atom atom = Atom.findOrCreateUnicodeAtom(memberName); + Descriptor desc = descriptor == null ? null : Descriptor.findOrCreateUTF8(descriptor); + Collection allMethods = c.getAllMethods(); + for(IMethod m: allMethods) { + if(m.getName().equals(atom) && (desc == null || m.getDescriptor().equals(desc))) { + matching.add(m); + } + } + return matching; + } + + /** + * Returns a Collection of IMethods which are found in the following + * ClassLoaders: Application, Primordial, Extension + * @param cha + * @return + */ + public Collection getPossibleTargets(IClassHierarchy cha) { + Collection matching = new LinkedList(); + IClass c; + c = cha.lookupClass(TypeReference.findOrCreate(ClassLoaderReference.Application, className)); + if (c != null) + matching.addAll(lookupMethods(c)); + c = cha.lookupClass(TypeReference.findOrCreate(ClassLoaderReference.Primordial, className)); + if (c != null) + matching.addAll(lookupMethods(c)); + c = cha.lookupClass(TypeReference.findOrCreate(ClassLoaderReference.Extension, className)); + if (c != null) + matching.addAll(lookupMethods(c)); + + + Set targets = HashSetFactory.make(); + for(IMethod im:matching) { + targets.addAll(cha.getPossibleTargets(im.getReference())); + } + + return targets; + } + + @Override + public String toString() { + String returnString = "MethodNamePattern (Class: "+className+ + " - Method: "+memberName; + if (descriptor == null) + return returnString+")"; + return returnString+" - Descriptor: "+descriptor+")"; + + } + + public String getDescriptor() { + return String.format("%s.%s%s", className, memberName, descriptor == null ? "" : descriptor); + } + + public String getClassName() { + return className; + } + + public String getMemberName() { + return memberName; + } + + public static MethodNamePattern patternForReference(MethodReference methodRef) + throws UTFDataFormatException { + String className = methodRef.getDeclaringClass().getName().toUnicodeString(); + String methodName = methodRef.getName().toUnicodeString(); + String descriptor = methodRef.getDescriptor().toUnicodeString(); + MethodNamePattern pattern = new MethodNamePattern(className, methodName, descriptor); + return pattern; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/ResolveSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/ResolveSpec.java new file mode 100644 index 000000000..05062ea21 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/ResolveSpec.java @@ -0,0 +1,61 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +class ResolvedSpec { + ResolvedSpec() { +// AndroidSpecs spec = new AndroidSpecs(); +// +// for(MethodNamePattern m: spec.getEntrypointSpecs()) { +// } +// for(SourceSpec s: spec.getSourceSpecs()) { +// } +// for(ISinkSpec s: spec.getSinkSpecs()) { +// } + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/SinkSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/SinkSpec.java new file mode 100644 index 000000000..707d317f9 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/SinkSpec.java @@ -0,0 +1,88 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Arrays; +import java.util.Collection; + +import org.scandroid.flow.types.FlowType; + +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; + + +public abstract class SinkSpec implements ISinkSpec { + protected MethodNamePattern namePattern; + // Zero-based arguments, but 0 is 'this' + protected int[] argNums; // null = all arguments, empty = no arguments? + + public static int[] getNewArgNums(int n) { + int[] newArgNums = new int[n]; + for (int i = 0; i < n; i++) { + newArgNums[i] = i + 1; + } + return newArgNums; + } + + public MethodNamePattern getNamePattern() { + return namePattern; + } + + public int[] getArgNums() { + return argNums; + } + + @Override + public String toString() { + return "SinkSpec [namePattern=" + namePattern + ", argNums=" + + Arrays.toString(argNums) + "]"; + } + + abstract public Collection> getFlowType( + BasicBlockInContext block); +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/SourceSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/SourceSpec.java new file mode 100644 index 000000000..2bed0bb63 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/SourceSpec.java @@ -0,0 +1,101 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Map; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.flow.types.FlowType; +import org.scandroid.util.CGAnalysisContext; + +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAInvokeInstruction; + + +public abstract class SourceSpec implements ISourceSpec { + + protected MethodNamePattern namePattern; + protected int[] argNums; // null = all arguments, empty = no arguments? + + public static int[] getNewArgNums(int n) { + int[] newArgNums = new int[n]; + for (int i = 0; i < n; i++) { + newArgNums[i] = i+1; + } + return newArgNums; + } + + public MethodNamePattern getNamePattern() { + return namePattern; + } + + public int[] getArgNums() { + return argNums; + } + + @Override + public abstract String toString(); + + abstract public void addDomainElements(CGAnalysisContext ctx, + Map, Map,Set>> taintMap, + IMethod im, BasicBlockInContext block, SSAInvokeInstruction invInst, + int[] newArgNums, ISupergraph, CGNode> graph, + PointerAnalysis pa, CallGraph cg); + + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/SpecUtils.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/SpecUtils.java new file mode 100644 index 000000000..13473ba12 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/SpecUtils.java @@ -0,0 +1,100 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.lang.reflect.Array; + +public class SpecUtils { + + /** + * Combine two specs objects. + * + * @param s1 + * @param s2 + * @return + */ + public static ISpecs combine(final ISpecs s1, final ISpecs s2) { + return new ISpecs() { + @Override + public SourceSpec[] getSourceSpecs() { + SourceSpec[] s1Sources = s1.getSourceSpecs(); + SourceSpec[] s2Sources = s2.getSourceSpecs(); + + return concat(s1Sources, s2Sources); + } + + @Override + public SinkSpec[] getSinkSpecs() { + return concat(s1.getSinkSpecs(), s2.getSinkSpecs()); + } + + @Override + public MethodNamePattern[] getEntrypointSpecs() { + return concat(s1.getEntrypointSpecs(), s2.getEntrypointSpecs()); + } + + @SuppressWarnings("unchecked") + private T[] concat(final T[] a, final T[] b) { + if (null == a) { + return b; + } + if (null == b) { + return a; + } + + T[] newArray = (T[]) Array.newInstance(a.getClass().getComponentType(), a.length + b.length); + System.arraycopy(a, 0, newArray, 0, a.length); + System.arraycopy(b, 0, newArray, a.length, b.length); + return newArray; + } + }; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticFieldSinkSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticFieldSinkSpec.java new file mode 100644 index 000000000..30f73bf65 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticFieldSinkSpec.java @@ -0,0 +1,103 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.spec; + +import java.util.Collection; +import java.util.Collections; + +import org.scandroid.flow.types.FlowType; +import org.scandroid.flow.types.StaticFieldFlow; + +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.util.collections.HashSetFactory; + +/** + * @author acfoltzer + * + */ +public class StaticFieldSinkSpec extends SinkSpec { + + private final IField field; + private final IMethod method; + + /** + * @param field to check for flows + * @param method to check for flow (at method's exit), e.g., main + */ + public StaticFieldSinkSpec(IField field, IMethod method) { + this.field = field; + this.method = method; + } + + /* (non-Javadoc) + * @see org.scandroid.spec.SinkSpec#getFlowType(com.ibm.wala.ipa.cfg.BasicBlockInContext) + */ + @Override + public Collection> getFlowType( + BasicBlockInContext block) { + Collection> flow = HashSetFactory.make(Collections.singleton((FlowType) new StaticFieldFlow(block, field, false))); + return flow; + } + + @Override + public String toString() { + return String.format("StaticFieldSinkSpec(%s)", field); + } + + public IField getField() { + return field; + } + + public IMethod getMethod() { + return method; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticFieldSourceSpec.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticFieldSourceSpec.java new file mode 100644 index 000000000..417c3ca14 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticFieldSourceSpec.java @@ -0,0 +1,160 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.Map; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.InstanceKeyElement; +import org.scandroid.domain.StaticFieldElement; +import org.scandroid.flow.InflowAnalysis; +import org.scandroid.flow.types.FlowType; +import org.scandroid.flow.types.StaticFieldFlow; +import org.scandroid.util.CGAnalysisContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.propagation.ConcreteTypeKey; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ipa.cha.IClassHierarchy; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.intset.OrdinalSet; + +/** + * @author creswick + * + */ +public class StaticFieldSourceSpec extends SourceSpec { + private static final Logger logger = LoggerFactory.getLogger(EntryArgSourceSpec.class); + + private final IField field; + + public StaticFieldSourceSpec(IField field) { + this.field = field; + argNums = null; + } + + /* (non-Javadoc) + * @see org.scandroid.spec.SourceSpec#addDomainElements(java.util.Map, com.ibm.wala.classLoader.IMethod, com.ibm.wala.ipa.cfg.BasicBlockInContext, com.ibm.wala.ssa.SSAInvokeInstruction, int[], com.ibm.wala.dataflow.IFDS.ISupergraph, com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis, com.ibm.wala.ipa.callgraph.CallGraph) + */ + @Override + public void addDomainElements( + CGAnalysisContext ctx, + Map, Map, Set>> taintMap, + IMethod im, + BasicBlockInContext block, + SSAInvokeInstruction invInst, + int[] newArgNums, + ISupergraph, CGNode> graph, + PointerAnalysis pa, + CallGraph cg) { + + Set valueElements = HashSetFactory.make(); + valueElements.add(new StaticFieldElement(field.getReference())); + FlowType flow = new StaticFieldFlow(block, field, true); + + TypeReference typeRef = field.getFieldTypeReference(); + + if (typeRef.isPrimitiveType()) { + InflowAnalysis.addDomainElements(taintMap, block, flow, valueElements); + return; + } + + // else, handle reference types: + + PointerKey pk = pa.getHeapModel().getPointerKeyForStaticField(field); + OrdinalSet pointsToSet = pa.getPointsToSet(pk); + + if (pointsToSet.isEmpty()) { + IClassHierarchy cha = im.getClassHierarchy(); + if (null == cha.lookupClass(typeRef)) { + logger.warn("could not resolve class for {}", field); + return; + } + if (cha.isInterface(typeRef)) { + // TODO we could find all implementations of the interface, and add a concrete type key for each. + // we aren't doing that yet. + InflowAnalysis.addDomainElements(taintMap, block, flow, valueElements); + return; + } + + IClass clazz = cha.lookupClass(typeRef); + if (null == clazz) { + logger.error("couldn't find entry arg class {}", typeRef); + } else { + InstanceKey ik = new ConcreteTypeKey(clazz); + valueElements.add(new InstanceKeyElement(ik)); + } + } + + for (InstanceKey ik : pointsToSet) { + valueElements.add(new InstanceKeyElement(ik)); + } + InflowAnalysis.addDomainElements(taintMap, block, flow, valueElements); + } + + @Override + public String toString() { + return "StaticFieldSourceSpec [field=" + field + "]"; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticSpecs.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticSpecs.java new file mode 100644 index 000000000..8c62391f0 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/StaticSpecs.java @@ -0,0 +1,136 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.spec; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.cha.ClassHierarchy; +import com.ibm.wala.util.strings.StringStuff; + +/** + * @author creswick + * + */ +public class StaticSpecs implements ISpecs { + + private final ClassHierarchy cha; + private final String methodSignature; + private final Collection fields; + + public StaticSpecs(ClassHierarchy cha, String methodSignature) { + this.cha = cha; + this.methodSignature = methodSignature; + this.fields = collectFields(); + } + + /* (non-Javadoc) + * @see org.scandroid.spec.ISpecs#getEntrypointSpecs() + */ + @Override + public MethodNamePattern[] getEntrypointSpecs() { + return new MethodNamePattern[0]; + } + + /* (non-Javadoc) + * @see org.scandroid.spec.ISpecs#getSourceSpecs() + */ + @Override + public SourceSpec[] getSourceSpecs() { +// List specs = Lists.newArrayList(); +// +// for (IField field : fields) { +// specs.add(new StaticFieldSourceSpec(field)); +// } +// +// return specs.toArray(new SourceSpec[] {}); + return new SourceSpec[] {}; + } + + /** + * @return + */ + private List collectFields() { + List fields = new ArrayList(); + Iterator itr = cha.iterator(); + while (itr.hasNext()) { + IClass cls = itr.next(); + for (IField field : cls.getAllStaticFields()) { + if (field.getFieldTypeReference().isReferenceType()) { + fields.add(field); + } + } + } + return fields; + } + + /* (non-Javadoc) + * @see org.scandroid.spec.ISpecs#getSinkSpecs() + */ + @Override + public SinkSpec[] getSinkSpecs() { + List specs = new ArrayList(); + Collection methods = cha.getPossibleTargets(StringStuff.makeMethodReference(methodSignature)); + for (IField field : fields) { + if (!field.isFinal()) { + for (IMethod method : methods) { + specs.add(new StaticFieldSinkSpec(field, method)); + } + } + } + return specs.toArray(new SinkSpec[] {}); + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/DefaultSCanDroidOptions.java b/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/DefaultSCanDroidOptions.java new file mode 100644 index 000000000..63f1f7f12 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/DefaultSCanDroidOptions.java @@ -0,0 +1,190 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.synthmethod; + +import java.io.File; +import java.net.URI; + +import org.scandroid.util.ISCanDroidOptions; + +import com.ibm.wala.ipa.callgraph.AnalysisOptions.ReflectionOptions; +import com.ibm.wala.util.io.FileProvider; + +public abstract class DefaultSCanDroidOptions implements ISCanDroidOptions { + + @Override + public boolean pdfCG() { + return false; + } + + @Override + public boolean pdfPartialCG() { + return false; + } + + @Override + public boolean pdfOneLevelCG() { + return false; + } + + @Override + public boolean systemToApkCG() { + return false; + } + + @Override + public boolean stdoutCG() { + return true; + } + + @Override + public boolean includeLibrary() { + // TODO is this right? we haven't summarized with CLI options set, so + // this is what we've been doing... + return true; + } + + @Override + public boolean separateEntries() { + return false; + } + + @Override + public boolean ifdsExplorer() { + return false; + } + + @Override + public boolean addMainEntrypoints() { + return false; + } + + @Override + public boolean useThreadRunMain() { + return false; + } + + @Override + public boolean stringPrefixAnalysis() { + return false; + } + + @Override + public boolean testCGBuilder() { + return false; + } + + @Override + public boolean useDefaultPolicy() { + return false; + } + + @Override + public abstract URI getClasspath(); + + @Override + public String getFilename() { + return new File(getClasspath()).getName(); + } + + @Override + public URI getAndroidLibrary() { + try { + return new FileProvider().getResource("data/android-2.3.7_r1.jar").toURI(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Override + public ReflectionOptions getReflectionOptions() { + return ReflectionOptions.NONE; + } + + @Override + public URI getSummariesURI() { + try { + return new FileProvider().getResource("data/MethodSummaries.xml").toURI(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Override + public boolean classHierarchyWarnings() { + return false; + } + + @Override + public boolean cgBuilderWarnings() { + return false; + } + + public static String dumpString(ISCanDroidOptions options) { + return "DefaultSCanDroidOptions [pdfCG()=" + options.pdfCG() + + ", pdfPartialCG()=" + options.pdfPartialCG() + ", pdfOneLevelCG()=" + + options.pdfOneLevelCG() + ", systemToApkCG()=" + options.systemToApkCG() + + ", stdoutCG()=" + options.stdoutCG() + ", includeLibrary()=" + + options.includeLibrary() + ", separateEntries()=" + options.separateEntries() + + ", ifdsExplorer()=" + options.ifdsExplorer() + + ", addMainEntrypoints()=" + options.addMainEntrypoints() + + ", useThreadRunMain()=" + options.useThreadRunMain() + + ", stringPrefixAnalysis()=" + options.stringPrefixAnalysis() + + ", testCGBuilder()=" + options.testCGBuilder() + + ", useDefaultPolicy()=" + options.useDefaultPolicy() + + ", getClasspath()=" + options.getClasspath() + ", getFilename()=" + + options.getFilename() + ", getAndroidLibrary()=" + + options.getAndroidLibrary() + ", getReflectionOptions()=" + + options.getReflectionOptions() + ", getSummariesURI()=" + + options.getSummariesURI() + ", classHierarchyWarnings()=" + + options.classHierarchyWarnings() + ", cgBuilderWarnings()=" + + options.cgBuilderWarnings() + "]"; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/SSASerializationException.java b/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/SSASerializationException.java new file mode 100644 index 000000000..a12071ba3 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/SSASerializationException.java @@ -0,0 +1,60 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , Rogan Creswick ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.synthmethod; + +public class SSASerializationException extends RuntimeException { + + private static final long serialVersionUID = 5679383911644331821L; + + public SSASerializationException(Exception e) { + super(e); + } + + public SSASerializationException(String string) { + super(string); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/SSAtoXMLVisitor.java b/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/SSAtoXMLVisitor.java new file mode 100644 index 000000000..861784e77 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/SSAtoXMLVisitor.java @@ -0,0 +1,509 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.synthmethod; + +import java.io.UTFDataFormatException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import com.ibm.wala.ssa.SSAArrayLengthInstruction; +import com.ibm.wala.ssa.SSAArrayLoadInstruction; +import com.ibm.wala.ssa.SSAArrayStoreInstruction; +import com.ibm.wala.ssa.SSABinaryOpInstruction; +import com.ibm.wala.ssa.SSACheckCastInstruction; +import com.ibm.wala.ssa.SSAComparisonInstruction; +import com.ibm.wala.ssa.SSAConditionalBranchInstruction; +import com.ibm.wala.ssa.SSAConversionInstruction; +import com.ibm.wala.ssa.SSAGetCaughtExceptionInstruction; +import com.ibm.wala.ssa.SSAGetInstruction; +import com.ibm.wala.ssa.SSAGotoInstruction; +import com.ibm.wala.ssa.SSAInstanceofInstruction; +import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.ssa.SSALoadMetadataInstruction; +import com.ibm.wala.ssa.SSAMonitorInstruction; +import com.ibm.wala.ssa.SSANewInstruction; +import com.ibm.wala.ssa.SSAPhiInstruction; +import com.ibm.wala.ssa.SSAPiInstruction; +import com.ibm.wala.ssa.SSAPutInstruction; +import com.ibm.wala.ssa.SSAReturnInstruction; +import com.ibm.wala.ssa.SSASwitchInstruction; +import com.ibm.wala.ssa.SSAThrowInstruction; +import com.ibm.wala.ssa.SSAUnaryOpInstruction; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.strings.Atom; + +public class SSAtoXMLVisitor implements SSAInstruction.IVisitor { + private static final Logger logger = LoggerFactory.getLogger(SSAtoXMLVisitor.class); + + /** + * A counter to use for generating unique local definition names. + */ + private int defCounter = 0; + + /** + * Map the known defNum to local def names. + */ + private Map localDefs = HashMapFactory.make(); + + /** + * XML document to use for creating elements. + */ + private final Document doc; + + /** + * XML elements that represent the ssa instructions + */ + private final List summary = new ArrayList(); + + public SSAtoXMLVisitor(Document doc, int argCount) { + this.doc = doc; + for (int i=0; i < argCount; i++) { + localDefs.put(i+1, "arg"+i); + } + } + + @Override + public void visitGoto(SSAGotoInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + /** + * Load from an array ref, at specified index, and store in def. + * + * + */ + @Override + public void visitArrayLoad(SSAArrayLoadInstruction instruction) { + try { + Element elt = doc.createElement(XMLSummaryWriter.E_AALOAD); + + String refStr = getLocalName(instruction.getArrayRef()); + elt.setAttribute(XMLSummaryWriter.A_REF, refStr); + + String defStr = getLocalName(instruction.getDef()); + elt.setAttribute(XMLSummaryWriter.A_VALUE, defStr); + + elt.setAttribute(XMLSummaryWriter.A_INDEX, ""+instruction.getIndex()); + summary.add(elt); + } catch (Exception e) { + throw new SSASerializationException(e); + } + } + + /** + * + */ + @Override + public void visitArrayStore(SSAArrayStoreInstruction instruction) { + try { + Element elt = doc.createElement(XMLSummaryWriter.E_AASTORE); + + String refStr = getLocalName(instruction.getArrayRef()); + elt.setAttribute(XMLSummaryWriter.A_REF, refStr); + + String valueStr = getLocalName(instruction.getValue()); + elt.setAttribute(XMLSummaryWriter.A_VALUE, valueStr); + + elt.setAttribute(XMLSummaryWriter.A_INDEX, ""+instruction.getIndex()); + summary.add(elt); + } catch (Exception e) { + throw new SSASerializationException(e); + } + } + + @Override + public void visitBinaryOp(SSABinaryOpInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitUnaryOp(SSAUnaryOpInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitConversion(SSAConversionInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitComparison(SSAComparisonInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitConditionalBranch( + SSAConditionalBranchInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitSwitch(SSASwitchInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitReturn(SSAReturnInstruction instruction) { + try { + Element elt = doc.createElement(XMLSummaryWriter.E_RETURN); + if (!instruction.returnsVoid()) { + String localName = getLocalName(instruction.getResult()); + elt.setAttribute(XMLSummaryWriter.A_VALUE, localName); + } + summary.add(elt); + } catch (Exception e) { + throw new SSASerializationException(e); + } + } + + /** + * eg: + * + * + * + * I think the get statics look like this: + * 1007g 9.1g 12m S 237.9 0.9 4:27.32 java + * + */ + @Override + public void visitGet(SSAGetInstruction instruction) { + try { + String eltName; + + if (instruction.isStatic()) { + eltName = XMLSummaryWriter.E_GETSTATIC; + } else { + eltName = XMLSummaryWriter.E_GETFIELD; + } + Element elt = doc.createElement(eltName); + + if (!instruction.isStatic()) { + String refName = getLocalName(instruction.getRef()); + elt.setAttribute(XMLSummaryWriter.A_REF, refName); + } + + String def = newLocalDef(instruction.getDef()); + TypeReference fieldType = instruction.getDeclaredFieldType(); + TypeReference classType = instruction.getDeclaredField() + .getDeclaringClass(); + + String fieldName = instruction.getDeclaredField().getName() + .toUnicodeString(); + + elt.setAttribute(XMLSummaryWriter.A_CLASS, classType.getName().toUnicodeString()); + elt.setAttribute(XMLSummaryWriter.A_FIELD, fieldName); + elt.setAttribute(XMLSummaryWriter.A_FIELD_TYPE, + fieldType.getName().toUnicodeString()); + elt.setAttribute(XMLSummaryWriter.A_DEF, def); + + summary.add(elt); + } catch (Exception e) { + throw new SSASerializationException(e); + } + } + + /** + * + * + * + * + */ + @Override + public void visitPut(SSAPutInstruction instruction) { + try { + String eltName; + + if (instruction.isStatic()) { + eltName = XMLSummaryWriter.E_PUTSTATIC; + } else { + eltName = XMLSummaryWriter.E_PUTFIELD; + } + Element elt = doc.createElement(eltName); + + if (!instruction.isStatic()) { + String refName = getLocalName(instruction.getRef()); + elt.setAttribute(XMLSummaryWriter.A_REF, refName); + } + + String value = getLocalName(instruction.getVal()); + TypeReference fieldType = instruction.getDeclaredFieldType(); + TypeReference classType = instruction.getDeclaredField() + .getDeclaringClass(); + + String fieldName = instruction.getDeclaredField().getName() + .toUnicodeString(); + + elt.setAttribute(XMLSummaryWriter.A_CLASS, classType.getName().toUnicodeString()); + elt.setAttribute(XMLSummaryWriter.A_FIELD, fieldName); + elt.setAttribute(XMLSummaryWriter.A_FIELD_TYPE, + fieldType.getName().toUnicodeString()); + elt.setAttribute(XMLSummaryWriter.A_VALUE, value); + + summary.add(elt); + } catch (Exception e) { + throw new SSASerializationException(e); + } + + } + + /** + * + */ + @Override + public void visitInvoke(SSAInvokeInstruction instruction) { + try { + Element elt = doc.createElement(XMLSummaryWriter.E_CALL); + + MethodReference callee = instruction.getDeclaredTarget(); + + String descString = callee.getDescriptor().toUnicodeString(); + elt.setAttribute(XMLSummaryWriter.A_DESCRIPTOR, descString); + + String typeString = + instruction.getCallSite().getInvocationString(); + elt.setAttribute(XMLSummaryWriter.A_TYPE, typeString); + + String nameString = callee.getName().toUnicodeString(); + elt.setAttribute(XMLSummaryWriter.A_NAME, nameString); + + String classString = instruction.getDeclaredTarget().getDeclaringClass().getName().toUnicodeString(); + elt.setAttribute(XMLSummaryWriter.A_CLASS, classString); + + if (! instruction.getDeclaredResultType().equals(TypeReference.Void) ) { + int defNum = instruction.getDef(); + String localName = newLocalDef(defNum); + elt.setAttribute(XMLSummaryWriter.A_DEF, localName); + } + + int paramCount = instruction.getNumberOfParameters(); + for (int i=0; i < paramCount; i++) { + String argName = getLocalName(instruction.getUse(i)); + elt.setAttribute(XMLSummaryWriter.A_ARG+i, argName); + } + + summary.add(elt); + } catch (Exception e) { + throw new SSASerializationException(e); + } + + } + + @Override + public void visitNew(SSANewInstruction instruction) { + try { + int defNum = instruction.getDef(); + String localName = newLocalDef(defNum); + + TypeReference type = instruction.getConcreteType(); + + String className = type.getName().toUnicodeString(); + + Element elt = doc.createElement(XMLSummaryWriter.E_NEW); + elt.setAttribute(XMLSummaryWriter.A_DEF, localName); + elt.setAttribute(XMLSummaryWriter.A_CLASS, className); + + if (type.isArrayType()) { + // array allocations need a size value + Element sizeElt = doc.createElement(XMLSummaryWriter.E_CONSTANT); + final String sizeName = "sizeOf$allocAt" + instruction.getNewSite().getProgramCounter(); + sizeElt.setAttribute(XMLSummaryWriter.A_NAME, sizeName); + sizeElt.setAttribute(XMLSummaryWriter.A_TYPE, "int"); + sizeElt.setAttribute(XMLSummaryWriter.A_VALUE, "1"); + summary.add(sizeElt); + + elt.setAttribute(XMLSummaryWriter.A_SIZE, sizeName); + } + + summary.add(elt); + } catch (Exception e) { + throw new SSASerializationException(e); + } + } + + @Override + public void visitArrayLength(SSAArrayLengthInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + /** + * Serialiaze a throw to XML. + * + * Something like this? + * + * + */ + @Override + public void visitThrow(SSAThrowInstruction instruction) { + throw new SSASerializationException("Exceptions not currently supported."); +// try { +// int exValNo = instruction.getException(); +// String value = getLocalName(exValNo); +// +// Element elt = doc.createElement(XMLSummaryWriter.E_ATHROW); +// elt.setAttribute(XMLSummaryWriter.A_VALUE, value); +// summary.add(elt); +// } catch (Exception e) { +// throw new SSASerializationException(e); +// } + } + + @Override + public void visitMonitor(SSAMonitorInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitCheckCast(SSACheckCastInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitInstanceof(SSAInstanceofInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitPhi(SSAPhiInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitPi(SSAPiInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitGetCaughtException( + SSAGetCaughtExceptionInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + @Override + public void visitLoadMetadata(SSALoadMetadataInstruction instruction) { + throw new SSASerializationException("Unsupported."); + } + + /** + * Add a new defNum, creating a name for that defnum. + * + * @param defNum + */ + private String newLocalDef(int defNum) { + String newName = "localdef_" + defCounter; + localDefs.put(defNum, newName); + defCounter++; + + return newName; + } + + /** + * Get a local name for the provided defNum. + * + * If, for some reason, the defNum has not yet been seen (and, thus, has no + * local name associated with it) then this will throw an illegal state + * exception. + * + * TODO needs to return 'arg0' -> 'argN' for those value numbers... + * + * @param defNum + * + * @return + * @throws IllegalStateException + */ + private String getLocalName(int defNum) throws IllegalStateException { + if (0 == defNum) { + return "unknown"; + } + if (localDefs.containsKey(defNum)) { + return localDefs.get(defNum); + } + return XMLSummaryWriter.A_ARG + (defNum - 1); +// throw new IllegalStateException("defNum: " + defNum +// + " is not defined."); + } + + + public List getInstSummary() { + return summary; + } + + @SuppressWarnings("unused") + private String typeRefToStr(TypeReference fieldType) + throws UTFDataFormatException { + Atom className = fieldType.getName().getClassName(); + Atom pkgName = fieldType.getName().getPackage(); + if ( null == pkgName && null != className ) { + logger.debug("pkg name null for type ref: "+fieldType); + return className.toUnicodeString(); + } + + if (null == className ) { + logger.debug("className null for type ref: "+fieldType); + } + + return pkgName.toUnicodeString() + "/" + className.toUnicodeString(); + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/XMLSummaryWriter.java b/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/XMLSummaryWriter.java new file mode 100644 index 000000000..2d5453e7a --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/synthmethod/XMLSummaryWriter.java @@ -0,0 +1,307 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.synthmethod; + +import java.io.ByteArrayOutputStream; +import java.io.UTFDataFormatException; +import java.util.List; +import java.util.Map; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import com.ibm.wala.ipa.summaries.MethodSummary; +import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.strings.Atom; + +public class XMLSummaryWriter { + + // + // Define XML element names + // + final static String E_CLASSLOADER = "classloader"; + final static String E_METHOD = "method"; + final static String E_CLASS = "class"; + final static String E_PACKAGE = "package"; + final static String E_CALL = "call"; + final static String E_NEW = "new"; + final static String E_POISON = "poison"; + final static String E_SUMMARY_SPEC = "summary-spec"; + final static String E_RETURN = "return"; + final static String E_PUTSTATIC = "putstatic"; + final static String E_GETSTATIC = "getstatic"; + final static String E_PUTFIELD = "putfield"; + final static String E_AALOAD = "aaload"; + final static String E_AASTORE = "aastore"; + final static String E_GETFIELD = "getfield"; + final static String E_ATHROW = "throw"; + final static String E_CONSTANT = "constant"; + + // + // Define XML attribute names + // + final static String A_NAME = "name"; + final static String A_TYPE = "type"; + final static String A_CLASS = "class"; + final static String A_SIZE = "size"; + final static String A_DESCRIPTOR = "descriptor"; + final static String A_REASON = "reason"; + final static String A_LEVEL = "level"; + final static String A_WILDCARD = "*"; + final static String A_DEF = "def"; + final static String A_STATIC = "static"; + final static String A_VALUE = "value"; + final static String A_FIELD = "field"; + final static String A_FIELD_TYPE = "fieldType"; + final static String A_ARG = "arg"; + final static String A_ALLOCATABLE = "allocatable"; + final static String A_REF = "ref"; + final static String A_INDEX = "index"; + final static String A_IGNORE = "ignore"; + final static String A_FACTORY = "factory"; + final static String A_NUM_ARGS = "numArgs"; + final static String V_NULL = "null"; + final static String V_TRUE = "true"; + + private final Document doc; + private final Element rootElement; + private Element clrElt = null; + private Element pkgElt = null; + private final Map classElts; + + public XMLSummaryWriter() throws ParserConfigurationException { + DocumentBuilderFactory docFactory = DocumentBuilderFactory + .newInstance(); + DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); + + doc = docBuilder.newDocument(); + rootElement = doc.createElement(E_SUMMARY_SPEC); + doc.appendChild(rootElement); + classElts = HashMapFactory.make(); + } + + public String serialize() { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + // write the content into xml file + TransformerFactory transformerFactory = + TransformerFactory.newInstance(); + // transformerFactory.setAttribute("indent-number", new Integer(4)); + try { + Transformer transformer = transformerFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty( + "{http://xml.apache.org/xslt}indent-amount", "2"); + DOMSource source = new DOMSource(doc); + + StreamResult result = new StreamResult(baos); + transformer.transform(source, result); + } catch (TransformerConfigurationException e) { + e.printStackTrace(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (TransformerException e) { + e.printStackTrace(); + } + + // using the default encoding here, since the bytes were just written + // with a default encoding... + return baos.toString(); + } + + /** + * Throws various exceptions if a problem occurred serializing this method. + * + * No guarantees as to the state of the Document if an exception is thrown. + * + * @param summary + * @return + * @throws DOMException + * @throws UTFDataFormatException + * @throws SSASerializationException + */ + public void add(MethodSummary summary) throws UTFDataFormatException { + // create a method element, and populate it's attributes: + Element methElt; + TypeReference methClass = summary.getMethod().getDeclaringClass(); + + Atom clrName = methClass.getClassLoader().getName(); + Atom pkg = methClass.getName().getPackage(); + Atom className = methClass.getName().getClassName(); + Atom methodName = summary.getMethod().getName(); + + methElt = doc.createElement(E_METHOD); + methElt.setAttribute(A_NAME, methodName.toUnicodeString()); + + String descriptor = getMethodDescriptor(summary); + methElt.setAttribute(A_DESCRIPTOR, descriptor); + + // default is false: + if (summary.isStatic()) { + methElt.setAttribute(A_STATIC, "true"); + } + + // default is false: + if (summary.isFactory()) { + methElt.setAttribute(A_FACTORY, "true"); + } + + // summarize the instructions: + List instructions = summarizeInstructions(summary); + for (Element elt : instructions) { + methElt.appendChild(elt); + } + + // get an element to add this method to: + Element classElt = findOrCreateClassElt(clrName, pkg, className); + classElt.appendChild(methElt); + } + + private Element findOrCreateClassElt(Atom classLoaderName, Atom pkg, Atom className) + throws UTFDataFormatException { + Element classElt = classElts.get(className); + if (classElt == null) { + Element pkgElt = findOrCreatePkgElt(classLoaderName, pkg); + classElt = doc.createElement(E_CLASS); + + classElt.setAttribute(A_NAME, className.toUnicodeString()); + pkgElt.appendChild(classElt); + classElts.put(className, classElt); + } + return classElt; + } + + private Element findOrCreateClrElt(Atom classLoaderName) throws DOMException, + UTFDataFormatException { + + if (clrElt == null) { + clrElt = doc.createElement(E_CLASSLOADER); + clrElt.setAttribute(A_NAME, classLoaderName.toUnicodeString()); + rootElement.appendChild(clrElt); + } + return clrElt; + } + + private Element findOrCreatePkgElt(Atom classLoaderName, Atom pkg) throws UTFDataFormatException { + if (pkgElt == null) { + Element clrElt = findOrCreateClrElt(classLoaderName); + pkgElt = doc.createElement(E_PACKAGE); + pkgElt.setAttribute(A_NAME, pkg.toUnicodeString()); + clrElt.appendChild(pkgElt); + } + return pkgElt; + } + + private List summarizeInstructions(MethodSummary summary) { + SSAtoXMLVisitor v = + new SSAtoXMLVisitor(doc, summary.getNumberOfParameters()); + + for (SSAInstruction inst : summary.getStatements()) { + inst.visit(v); + } + + return v.getInstSummary(); + } + + /** + * Generate a method descriptor, such as + * (I[Ljava/lang/String;)[Ljava/lang/String; + * + * @param summary + * @return + */ + private String getMethodDescriptor(MethodSummary summary) { + StringBuilder typeSigs = new StringBuilder("("); + + int i=0; + if (!summary.isStatic()) { + i = 1; // if it's not static, start with param 1. + } + + for (; i < summary.getNumberOfParameters(); i++) { + TypeReference tr = summary.getParameterType(i); + + // unwrap array types + while (tr.isArrayType()) { + typeSigs.append("["); + tr = tr.getArrayElementType(); + } + + if (tr.isPrimitiveType()) { + typeSigs.append(tr.getName().toUnicodeString()); + } else { + typeSigs.append(tr.getName().toUnicodeString()+ ";"); + } + } + typeSigs.append(")"); + + TypeReference returnType = summary.getReturnType(); + if (returnType.isPrimitiveType()) { + typeSigs.append(returnType.getName().toUnicodeString()); + } else { + typeSigs.append(returnType.getName().toUnicodeString() + ";"); + } + String descriptor = typeSigs.toString(); + return descriptor; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/AndroidAnalysisContext.java b/com.ibm.wala.scandroid/source/org/scandroid/util/AndroidAnalysisContext.java new file mode 100644 index 000000000..06f209e31 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/AndroidAnalysisContext.java @@ -0,0 +1,390 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Adam Fuchs + * Avik Chaudhuri + * Steve Suh + * Galois, Inc. (Adam Foltzer wi = Warnings.iterator(); wi.hasNext();) { + Warning w = wi.next(); + logger.warn(w.getMsg()); + } + } + Warnings.clear(); + } + + + + // ContextSelector, entry points, reflection options, IR Factory, call graph + // type, include library + public void buildGraphs(List localEntries, + InputStream summariesStream) throws CancelException { + + + + } + + public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder( + AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, + AnalysisScope scope, ContextSelector customSelector, + SSAContextInterpreter customInterpreter, + InputStream summariesStream, MethodSummary extraSummary) { + + if (options == null) { + throw new IllegalArgumentException("options is null"); + } + Util.addDefaultSelectors(options, cha); + // addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), + // cha); + // addBypassLogic(options, scope, + // AndroidAppLoader.class.getClassLoader(), methodSpec, cha); + addBypassLogic(options, scope, summariesStream, cha, extraSummary); + + return ZeroXCFABuilder.make(cha, options, cache, customSelector, + customInterpreter, ZeroXInstanceKeys.ALLOCATIONS + | ZeroXInstanceKeys.CONSTANT_SPECIFIC); + } + + /** + * @param options + * options that govern call graph construction + * @param cha + * governing class hierarchy + * @param scope + * representation of the analysis scope + * @param customSelector + * user-defined context selector, or null if none + * @param customInterpreter + * user-defined context interpreter, or null if none + * @return a 0-CFA Call Graph Builder. + * @throws IllegalArgumentException + * if options is null + * + * TODO: move + */ + public static SSAPropagationCallGraphBuilder makeZeroCFABuilder( + AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, + AnalysisScope scope, ContextSelector customSelector, + SSAContextInterpreter customInterpreter, + InputStream summariesStream, MethodSummary extraSummary) { + return makeZeroCFABuilder(options, cache, cha, scope, + customSelector, customInterpreter, Lists.newArrayList(summariesStream), + extraSummary); + } + + /** + * @param options + * options that govern call graph construction + * @param cha + * governing class hierarchy + * @param scope + * representation of the analysis scope + * @param customSelector + * user-defined context selector, or null if none + * @param customInterpreter + * user-defined context interpreter, or null if none + * @return a 0-CFA Call Graph Builder. + * @throws IllegalArgumentException + * if options is null + * + * TODO: move + */ + public static SSAPropagationCallGraphBuilder makeZeroCFABuilder( + AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, + AnalysisScope scope, ContextSelector customSelector, + SSAContextInterpreter customInterpreter, + Collection summariesStreams, MethodSummary extraSummary) { + + if (options == null) { + throw new IllegalArgumentException("options is null"); + } + Util.addDefaultSelectors(options, cha); + for (InputStream stream : summariesStreams) { + addBypassLogic(options, scope, stream, cha, extraSummary); + } + + return ZeroXCFABuilder.make(cha, options, cache, customSelector, + customInterpreter, ZeroXInstanceKeys.NONE); + } + + // public static void addBypassLogic(AnalysisOptions options, AnalysisScope + // scope, ClassLoader cl, String xmlFile, + // IClassHierarchy cha) throws IllegalArgumentException { + public static void addBypassLogic(AnalysisOptions options, + AnalysisScope scope, InputStream xmlIStream, IClassHierarchy cha, + MethodSummary extraSummary) throws IllegalArgumentException { + + if (scope == null) { + throw new IllegalArgumentException("scope is null"); + } + if (options == null) { + throw new IllegalArgumentException("options is null"); + } + // if (cl == null) { + // throw new IllegalArgumentException("cl is null"); + // } + if (cha == null) { + throw new IllegalArgumentException("cha cannot be null"); + } + + InputStream s = null; + try { + Set summaryClasses = HashSetFactory.make(); + Map summaries = HashMapFactory.make(); + + if (null != xmlIStream) { + XMLMethodSummaryReader newSummaryXML = loadMethodSummaries( + scope, xmlIStream); + summaryClasses.addAll(newSummaryXML.getAllocatableClasses()); + for (MethodSummary summary : newSummaryXML.getSummaries().values()) { + logger.trace("SSA instructions for summary of {}:\n{}", summary.getMethod().getSignature().toString(), Arrays.toString(summary.getStatements())); + } + summaries.putAll(newSummaryXML.getSummaries()); + } + logger.debug("loaded " + summaries.size() + " new summaries"); + // for (MethodReference mr : summaries.keySet()) { + // logger.debug("summary loaded for: "+mr.getSignature()); + // } + + s = new FileProvider().getInputStreamFromClassLoader(pathToSpec + + File.separator + methodSpec, + AndroidAnalysisContext.class.getClassLoader()); + + XMLMethodSummaryReader nativeSummaries = loadMethodSummaries(scope, + s); + + logger.debug("loaded " + nativeSummaries.getSummaries().size() + + " native summaries"); + + summaries.putAll(nativeSummaries.getSummaries()); + summaryClasses.addAll(nativeSummaries.getAllocatableClasses()); + if (extraSummary != null) { + summaries.put((MethodReference) extraSummary.getMethod(), + extraSummary); + } + + MethodTargetSelector ms = new BypassMethodTargetSelector( + options.getMethodTargetSelector(), summaries, + nativeSummaries.getIgnoredPackages(), cha); + options.setSelector(ms); + + ClassTargetSelector cs = new BypassClassTargetSelector( + options.getClassTargetSelector(), summaryClasses, cha, + cha.getLoader(scope.getLoader(Atom + .findOrCreateUnicodeAtom("Synthetic")))); + options.setSelector(cs); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } finally { + if (null != s) { + try { + s.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + } + + private static XMLMethodSummaryReader loadMethodSummaries( + AnalysisScope scope, InputStream xmlIStream) + throws FileNotFoundException { + InputStream s = xmlIStream; + XMLMethodSummaryReader summary = null; + + try { + if (null == s) { + s = AndroidAnalysisContext.class.getClassLoader() + .getResourceAsStream( + pathToSpec + File.separator + methodSpec); + } + summary = new XMLMethodSummaryReader(s, scope); + } finally { + try { + if (null != s) { + s.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return summary; + } + + /** + * Returns all concrete classes implementing the given interface or any subinterfaces + * @param iRoot + * @return + */ + public Collection concreteClassesForInterface(IClass iRoot) { + Set clazzes = HashSetFactory.make(); + Set done = HashSetFactory.make(); + Deque todo = Queues.newArrayDeque(); + todo.push(iRoot); + + while (!todo.isEmpty()) { + IClass i = todo.pop(); + for (IClass clazz : cha.getImplementors(i.getReference())) { + if (clazz.isInterface() && !done.contains(clazz)) { + done.add(i); + todo.push(clazz); + } else if (!clazz.isAbstract()) { + clazzes.add(clazz); + } + } + } + + return clazzes; + } + + public ISCanDroidOptions getOptions() { + return options; + } + + public AnalysisScope getScope() { + return scope; + } + + public ClassHierarchy getClassHierarchy() { + return cha; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/CGAnalysisContext.java b/com.ibm.wala.scandroid/source/org/scandroid/util/CGAnalysisContext.java new file mode 100644 index 000000000..f71a9d1ab --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/CGAnalysisContext.java @@ -0,0 +1,439 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.util; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Deque; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import org.scandroid.domain.CodeElement; +import org.scandroid.domain.FieldElement; +import org.scandroid.domain.InstanceKeyElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.Queues; +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IField; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.dalvik.classLoader.DexIRFactory; +import com.ibm.wala.dataflow.IFDS.ICFGSupergraph; +import com.ibm.wala.dataflow.IFDS.ISupergraph; +import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.AnalysisScope; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.impl.DefaultContextSelector; +import com.ibm.wala.ipa.callgraph.impl.Everywhere; +import com.ibm.wala.ipa.callgraph.impl.PartialCallGraph; +import com.ibm.wala.ipa.callgraph.propagation.ConcreteTypeKey; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.PointerKey; +import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder; +import com.ibm.wala.ipa.cfg.BasicBlockInContext; +import com.ibm.wala.ipa.cha.ClassHierarchy; +import com.ibm.wala.ssa.IRFactory; +import com.ibm.wala.ssa.ISSABasicBlock; +import com.ibm.wala.ssa.SSACFG; +import com.ibm.wala.ssa.SSACFG.BasicBlock; +import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.collections.HashSetFactory; +import com.ibm.wala.util.graph.Graph; +import com.ibm.wala.util.graph.GraphSlicer; +import com.ibm.wala.util.intset.OrdinalSet; +import com.ibm.wala.util.warnings.Warning; +import com.ibm.wala.util.warnings.Warnings; + +/** + * @author acfoltzer + * + * Represents an analysis context after the call graph, pointer + * analysis, and supergraphs have been generated. This is separated from + * AndroidAnalysisContext since these depend on the entrypoints for + * analysis in a way that is not likely reusable across all analyses of + * a particular classpath + */ +public class CGAnalysisContext { + private static final Logger logger = LoggerFactory.getLogger(CGAnalysisContext.class); + + public final AndroidAnalysisContext analysisContext; + + private List entrypoints; + public CallGraph cg; + public PointerAnalysis pa; + public ISupergraph, CGNode> graph; + + public Graph oneLevelGraph; + public Graph systemToApkGraph; + public Graph partialGraph; + + public CGAnalysisContext(AndroidAnalysisContext analysisContext, IEntryPointSpecifier specifier) + throws IOException { + this(analysisContext, specifier, new ArrayList()); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public CGAnalysisContext(AndroidAnalysisContext analysisContext, IEntryPointSpecifier specifier, + Collection extraSummaries) throws IOException { + + this.analysisContext = analysisContext; + final AnalysisScope scope = analysisContext.getScope(); + final ClassHierarchy cha = analysisContext.getClassHierarchy(); + final ISCanDroidOptions options = analysisContext.getOptions(); + + entrypoints = specifier.specify(analysisContext); + AnalysisOptions analysisOptions = new AnalysisOptions(scope, entrypoints); + for (Entrypoint e : entrypoints) { + logger.debug("Entrypoint: " + e); + } + analysisOptions.setReflectionOptions(options.getReflectionOptions()); + + AnalysisCache cache = new AnalysisCache((IRFactory) new DexIRFactory()); + + SSAPropagationCallGraphBuilder cgb; + + if (null != options.getSummariesURI()) { + extraSummaries.add(new FileInputStream(new File(options.getSummariesURI()))); + } + + cgb = AndroidAnalysisContext.makeZeroCFABuilder(analysisOptions, cache, cha, scope, + new DefaultContextSelector(analysisOptions, cha), null, extraSummaries, null); + + if (analysisContext.getOptions().cgBuilderWarnings()) { + // CallGraphBuilder construction warnings + for (Iterator wi = Warnings.iterator(); wi.hasNext();) { + Warning w = wi.next(); + logger.warn(w.getMsg()); + } + } + Warnings.clear(); + + logger.info("*************************"); + logger.info("* Building Call Graph *"); + logger.info("*************************"); + + boolean graphBuilt = true; + try { + cg = cgb.makeCallGraph(cgb.getOptions()); + } catch (Exception e) { + graphBuilt = false; + if (!options.testCGBuilder()) { + throw new RuntimeException(e); + } else { + e.printStackTrace(); + } + } + + if (options.testCGBuilder()) { + // TODO: this is too specialized for cmd-line apps + int status = graphBuilt ? 0 : 1; + System.exit(status); + } + + // makeCallGraph warnings + for (Iterator wi = Warnings.iterator(); wi.hasNext();) { + Warning w = wi.next(); + logger.warn(w.getMsg()); + } + Warnings.clear(); + + pa = cgb.getPointerAnalysis(); + partialGraph = GraphSlicer.prune(cg, new Predicate() { + @Override + // CallGraph composed of APK nodes + public boolean test(CGNode node) { + return LoaderUtils.fromLoader(node, ClassLoaderReference.Application) || node.getMethod().isSynthetic(); + } + }); + if (options.includeLibrary()) { + graph = (ISupergraph) ICFGSupergraph.make(cg, cache); + } else { + + Collection nodes = HashSetFactory.make(); + for (Iterator nIter = partialGraph.iterator(); nIter.hasNext();) { + nodes.add(nIter.next()); + } + CallGraph pcg = PartialCallGraph.make(cg, cg.getEntrypointNodes(), nodes); + graph = (ISupergraph) ICFGSupergraph.make(pcg, cache); + } + + oneLevelGraph = GraphSlicer.prune(cg, new Predicate() { + @Override + public boolean test(CGNode node) { + // Node in APK + if (LoaderUtils.fromLoader(node, ClassLoaderReference.Application)) { + return true; + } else { + Iterator n = cg.getPredNodes(node); + while (n.hasNext()) { + // Primordial node has a successor in APK + if (LoaderUtils.fromLoader(n.next(), ClassLoaderReference.Application)) + return true; + } + n = cg.getSuccNodes(node); + while (n.hasNext()) { + // Primordial node has a predecessor in APK + if (LoaderUtils.fromLoader(n.next(), ClassLoaderReference.Application)) + return true; + } + // Primordial node with no direct successors or predecessors + // to APK code + return false; + } + } + }); + + systemToApkGraph = GraphSlicer.prune(cg, new Predicate() { + @Override + public boolean test(CGNode node) { + + if (LoaderUtils.fromLoader(node, ClassLoaderReference.Primordial)) { + Iterator succs = cg.getSuccNodes(node); + while (succs.hasNext()) { + CGNode n = succs.next(); + + if (LoaderUtils.fromLoader(n, ClassLoaderReference.Application)) { + return true; + } + } + // Primordial method, with no link to APK code: + return false; + } else if (LoaderUtils.fromLoader(node, ClassLoaderReference.Application)) { + // see if this is an APK method that was + // invoked by a Primordial method: + Iterator preds = cg.getPredNodes(node); + while (preds.hasNext()) { + CGNode n = preds.next(); + + if (LoaderUtils.fromLoader(n, ClassLoaderReference.Primordial)) { + return true; + } + } + // APK code, no link to Primordial: + return false; + } + + // who knows, not interesting: + return false; + } + }); + + if (options.stdoutCG()) { + for (Iterator nodeI = cg.iterator(); nodeI.hasNext();) { + CGNode node = nodeI.next(); + + logger.debug("CGNode: " + node); + for (Iterator succI = cg.getSuccNodes(node); succI.hasNext();) { + + logger.debug("\tSuccCGNode: " + succI.next().getMethod().getSignature()); + } + } + } + for (Iterator nodeI = cg.iterator(); nodeI.hasNext();) { + CGNode node = nodeI.next(); + if (node.getMethod().isSynthetic()) { + logger.trace("Synthetic Method: {}", node.getMethod().getSignature()); + logger.trace("{}", node.getIR().getControlFlowGraph().toString()); + SSACFG ssaCFG = node.getIR().getControlFlowGraph(); + int totalBlocks = ssaCFG.getNumberOfNodes(); + for (int i = 0; i < totalBlocks; i++) { + logger.trace("BLOCK #{}", i); + BasicBlock bb = ssaCFG.getBasicBlock(i); + + for (SSAInstruction ssaI : bb.getAllInstructions()) { + logger.trace("\tInstruction: {}", ssaI); + } + } + } + } + } + + /** + * @param rootIK + * @return a set of all code elements that might refer to this object or one + * of its fields (recursively) + */ + public Set codeElementsForInstanceKey(InstanceKey rootIK) { + Set elts = HashSetFactory.make(); + Deque iks = Queues.newArrayDeque(); + iks.push(rootIK); + + while (!iks.isEmpty()) { + InstanceKey ik = iks.pop(); + logger.debug("getting code elements for {}", ik); + elts.add(new InstanceKeyElement(ik)); + final IClass clazz = ik.getConcreteType(); + final TypeReference typeRef = clazz.getReference(); + // If an array, recur down into the structure + if (typeRef.isArrayType()) { + if (typeRef.getArrayElementType().isPrimitiveType()) { + // don't do anything for primitive contents + continue; + } + OrdinalSet pointsToSet = + pa.getPointsToSet(pa.getHeapModel().getPointerKeyForArrayContents(ik)); + if (pointsToSet.isEmpty()) { + logger.debug("pointsToSet empty for array contents, creating InstanceKey manually"); + final IClass contentsClass = pa.getClassHierarchy().lookupClass(typeRef.getArrayElementType()); + if (contentsClass.isInterface()) { + for (IClass implementor : analysisContext.concreteClassesForInterface(contentsClass)) { + final InstanceKey contentsIK = new ConcreteTypeKey(implementor); + final InstanceKeyElement elt = new InstanceKeyElement(contentsIK); + if (!elts.contains(elt)) { + elts.add(elt); + iks.push(contentsIK); + } + } + } else { + InstanceKey contentsIK = new ConcreteTypeKey(contentsClass); + final InstanceKeyElement elt = new InstanceKeyElement(contentsIK); + if (!elts.contains(elt)) { + elts.add(elt); + iks.push(contentsIK); + } + } + } else { + for (InstanceKey contentsIK : pointsToSet) { + final InstanceKeyElement elt = new InstanceKeyElement(contentsIK); + if (!elts.contains(elt)) { + elts.add(elt); + iks.push(contentsIK); + } + } + } + continue; + } + for (IField field : clazz.getAllInstanceFields()) { + logger.debug("adding elements for field {}", field); + final TypeReference fieldTypeRef = field.getFieldTypeReference(); + elts.add(new FieldElement(ik, field.getReference())); + final IClass fieldClass = analysisContext.getClassHierarchy().lookupClass(fieldTypeRef); + if (fieldTypeRef.isPrimitiveType() || fieldClass == null) { + continue; + } else if (fieldTypeRef.isArrayType()) { + PointerKey pk = pa.getHeapModel().getPointerKeyForInstanceField(ik, field); + final OrdinalSet pointsToSet = pa.getPointsToSet(pk); + if (pointsToSet.isEmpty()) { + logger.debug("pointsToSet empty for array field, creating InstanceKey manually"); + InstanceKey fieldIK = new ConcreteTypeKey(pa.getClassHierarchy().lookupClass(fieldTypeRef)); + final InstanceKeyElement elt = new InstanceKeyElement(fieldIK); + if (!elts.contains(elt)) { + elts.add(elt); + iks.push(fieldIK); + } + } else { + for (InstanceKey fieldIK : pointsToSet) { + final InstanceKeyElement elt = new InstanceKeyElement(fieldIK); + if (!elts.contains(elt)) { + elts.add(elt); + iks.push(fieldIK); + } + } + } + } else if (fieldTypeRef.isReferenceType()) { + PointerKey pk = pa.getHeapModel().getPointerKeyForInstanceField(ik, field); + final OrdinalSet pointsToSet = pa.getPointsToSet(pk); + if (pointsToSet.isEmpty() && !analysisContext.getClassHierarchy().isInterface(fieldTypeRef)) { + logger.debug("pointsToSet empty for reference field, creating InstanceKey manually"); + InstanceKey fieldIK = new ConcreteTypeKey(fieldClass); + final InstanceKeyElement elt = new InstanceKeyElement(fieldIK); + if (!elts.contains(elt)) { + elts.add(elt); + iks.push(fieldIK); + } + } else { + for (InstanceKey fieldIK : pointsToSet) { + final InstanceKeyElement elt = new InstanceKeyElement(fieldIK); + if (!elts.contains(elt)) { + elts.add(elt); + iks.push(fieldIK); + } + } + } + } else { + logger.warn("unknown field type {}", field); + } + } + } + return elts; + } + + public ISCanDroidOptions getOptions() { + return analysisContext.getOptions(); + } + + public ClassHierarchy getClassHierarchy() { + return analysisContext.getClassHierarchy(); + } + + public AnalysisScope getScope() { + return analysisContext.getScope(); + } + + public List getEntrypoints() { + return entrypoints; + } + + public CGNode nodeForMethod(IMethod method) { + return cg.getNode(method, Everywhere.EVERYWHERE); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/CLISCanDroidOptions.java b/com.ibm.wala.scandroid/source/org/scandroid/util/CLISCanDroidOptions.java new file mode 100644 index 000000000..6e39d061e --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/CLISCanDroidOptions.java @@ -0,0 +1,330 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.util; + +import java.io.File; +import java.net.URI; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; +import org.apache.commons.cli.PosixParser; +import org.slf4j.LoggerFactory; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; + +import com.ibm.wala.ipa.callgraph.AnalysisOptions.ReflectionOptions; + +@SuppressWarnings("static-access") +public class CLISCanDroidOptions implements ISCanDroidOptions { + private static final String VERBOSE = "verbose"; + private static final String REFLECTION = "reflection"; + private static final String ANDROID_LIB = "android-lib"; + private static final String CHECK_POLICY = "check-policy"; + private static final String TEST_CGB = "test-cgb"; + private static final String SUMMARIES_FILE = "summaries-file"; + private static final String PREFIX_ANALYSIS = "prefix-analysis"; + private static final String THREAD_RUN_MAIN = "thread-run-main"; + private static final String STDOUT_CALL_GRAPH = "stdout-call-graph"; + private static final String MAIN_ENTRYPOINT = "main-entrypoint"; + private static final String IFDS_EXPLORER = "IFDS-Explorer"; + private static final String SEPARATE_ENTRIES = "separate-entries"; + private static final String INCLUDE_LIBRARY = "include-library"; + private static final String SYSTEM_TO_APK_CALL_GRAPH = "system-to-apk-call-graph"; + private static final String ONE_LEVEL_CALL_GRAPH = "one-level-call-graph"; + private static final String PARTIAL_CALL_GRAPH = "partial-call-graph"; + private static final String CALL_GRAPH = "call-graph"; + + private CommandLineParser parser = new PosixParser(); + private CommandLine line; + private URI classpath; + private String filename; + private URI androidLib; + private URI summariesFile; + private ReflectionOptions reflectionOptions; + private static final String USAGE = "[options] <.apk or .jar>"; + + private final Options options = new Options(); + { + options.addOption("h", "help", false, "print this message"); + options.addOption(OptionBuilder + .withLongOpt(VERBOSE) + .withDescription( + "logging level (default INFO) [OFF, ERROR, WARN, INFO, DEBUG, TRACE, ALL]") + .hasArg().withArgName("level").create()); + options.addOption("c", CALL_GRAPH, false, "create full call graph pdf"); + options.addOption("p", PARTIAL_CALL_GRAPH, false, + "create partial call graph pdf (Application only)"); + options.addOption("o", ONE_LEVEL_CALL_GRAPH, false, + "create one level call graph pdf (Application + 1 level of System calls)"); + options.addOption("s", SYSTEM_TO_APK_CALL_GRAPH, false, + "create system to apk callgraph (System + 1 level of Application calls)"); + options.addOption("l", INCLUDE_LIBRARY, false, + "analyze library in flow analysis"); + options.addOption("e", SEPARATE_ENTRIES, false, + "analyze each entry point separately"); + options.addOption("i", IFDS_EXPLORER, false, + "bring up a gui to analyze domainelements for flow analysis"); + options.addOption("m", MAIN_ENTRYPOINT, false, + "look for main methods and add them as entrypoints"); + options.addOption("a", STDOUT_CALL_GRAPH, false, + "output full call graph to stdout"); + options.addOption("t", THREAD_RUN_MAIN, false, + "use ServerThread.run as the entry point for analysis"); + options.addOption("x", PREFIX_ANALYSIS, false, + "run string prefix analysis"); + options.addOption("f", SUMMARIES_FILE, true, + "Use the specified summaries xml file"); + options.addOption(OptionBuilder + .withLongOpt(TEST_CGB) + .withDescription( + "Only load the call graph, exit status indicates success") + .create()); + options.addOption("y", CHECK_POLICY, false, + "Check conformance with built-in policy"); + + options.addOption(OptionBuilder.withLongOpt(ANDROID_LIB) + .withDescription("include ALIB in scope of analysis").hasArg() + .withArgName("ALIB").create()); + options.addOption(OptionBuilder + .withLongOpt(REFLECTION) + .withDescription( + "FULL, NO_FLOW_TO_CASTS, NO_METHOD_INVOKE, NO_FLOW_TO_CASTS_NO_METHOD_INVOKE, ONE_FLOW_TO_CASTS_NO_METHOD_INVOKE, NO_STRING_CONSTANTS, NONE (Default)") + .hasArg().withArgName("option").create()); + } + + public CLISCanDroidOptions(String[] args, boolean reqArgs) { + try { + line = parser.parse(options, args); + } catch (ParseException exp) { + System.err.println("Unexpected exception: " + exp.getMessage()); + System.err.println("Usage: " + USAGE); + System.exit(0); + } + + if (hasOption("help")) { + HelpFormatter formatter = new HelpFormatter(); + formatter.printHelp(USAGE, options); + System.exit(0); + } + + // handle verbosity + // parse this arg as a Logback level, then set the root logger level + // appropriately + Level level = Level.toLevel(getOption(VERBOSE), Level.INFO); + Logger root = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); + root.setLevel(level); + + + if (!hasOption(ANDROID_LIB)) { + System.err.println("Please specify an android library"); + System.exit(0); + } + + classpath = processClasspath(reqArgs); + filename = processFilename(); + androidLib = processURIArg(getOption(ANDROID_LIB)); + summariesFile = processURIArg(getOption(SUMMARIES_FILE)); + reflectionOptions = processReflectionOptions(); + + if (reqArgs + && !(filename.endsWith(".apk") || filename.endsWith(".jar"))) { + System.err.println("Usage: " + USAGE); + System.exit(0); + } + } + + private URI processURIArg(String arg) { + if (arg == null) { + return null; + } else { + return new File(arg).toURI(); + } + } + + private URI processClasspath(boolean reqArgs) { + // getArgs() returns all args that are not recognized; + String[] myargs = line.getArgs(); + if ((myargs.length != 1 || !(myargs[0].endsWith(".apk") || myargs[0] + .endsWith(".jar"))) && reqArgs) { + System.err.println("Usage: " + USAGE); + System.exit(0); + } + return processURIArg(myargs[0]); + } + + private String processFilename() { + if (classpath == null) + return null; + return new File(classpath).getName(); + } + + private ReflectionOptions processReflectionOptions() { + final String reflection = getOption(REFLECTION); + if (reflection == null) { + return ReflectionOptions.NONE; + } else { + return ReflectionOptions.valueOf(reflection); + } + } + + private boolean hasOption(String s) { + return line != null && line.hasOption(s); + } + + private String getOption(String s) { + return line.getOptionValue(s); + } + + @Override + public boolean pdfCG() { + return hasOption(CALL_GRAPH); + } + + @Override + public boolean pdfPartialCG() { + return hasOption(PARTIAL_CALL_GRAPH); + } + + @Override + public boolean pdfOneLevelCG() { + return hasOption(ONE_LEVEL_CALL_GRAPH); + } + + @Override + public boolean systemToApkCG() { + return hasOption(SYSTEM_TO_APK_CALL_GRAPH); + } + + @Override + public boolean stdoutCG() { + return hasOption(STDOUT_CALL_GRAPH); + } + + @Override + public boolean includeLibrary() { + return hasOption(INCLUDE_LIBRARY); + } + + @Override + public boolean separateEntries() { + return hasOption(SEPARATE_ENTRIES); + } + + @Override + public boolean ifdsExplorer() { + return hasOption(IFDS_EXPLORER); + } + + @Override + public boolean addMainEntrypoints() { + return hasOption(MAIN_ENTRYPOINT); + } + + @Override + public boolean useThreadRunMain() { + return hasOption(THREAD_RUN_MAIN); + } + + @Override + public boolean stringPrefixAnalysis() { + return hasOption(PREFIX_ANALYSIS); + } + + @Override + public boolean testCGBuilder() { + return hasOption(TEST_CGB); + } + + @Override + public boolean useDefaultPolicy() { + return hasOption(CHECK_POLICY); + } + + @Override + public URI getClasspath() { + return classpath; + } + + @Override + public String getFilename() { + return filename; + } + + @Override + public URI getAndroidLibrary() { + return androidLib; + } + + @Override + public ReflectionOptions getReflectionOptions() { + return reflectionOptions; + } + + @Override + public URI getSummariesURI() { + return summariesFile; + } + + @Override + public boolean classHierarchyWarnings() { + // TODO Auto-generated method stub + return true; + } + + @Override + public boolean cgBuilderWarnings() { + // TODO Auto-generated method stub + return true; + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/DexDotUtil.java b/com.ibm.wala.scandroid/source/org/scandroid/util/DexDotUtil.java new file mode 100644 index 000000000..f7797e99c --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/DexDotUtil.java @@ -0,0 +1,311 @@ +/******************************************************************************* + * Copyright (c) 2002 - 2006, 2011 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + * Steve Suh - added cleanUpString + *******************************************************************************/ + +package org.scandroid.util; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.ibm.wala.util.WalaException; +import com.ibm.wala.util.collections.Iterator2Collection; +import com.ibm.wala.util.debug.Assertions; +import com.ibm.wala.util.graph.Graph; +import com.ibm.wala.viz.DotUtil; +import com.ibm.wala.viz.NodeDecorator; + +public class DexDotUtil extends DotUtil { + private static final Logger logger = LoggerFactory.getLogger(DexDotUtil.class); + + /** + * possible output formats for dot + * + */ +// public static enum DotOutputType { +// PS, SVG, PDF, EPS +// } + + private static DotOutputType outputType = DotOutputType.PDF; + + private static int fontSize = 6; + private static String fontColor = "black"; + private static String fontName = "Arial"; + +// public static void setOutputType(DotOutputType outType) { +// outputType = outType; +// } + +// public static DotOutputType getOutputType() { +// return outputType; +// } + + private static String outputTypeCmdLineParam() { + switch (outputType) { + case PS: + return "-Tps"; + case EPS: + return "-Teps"; + case SVG: + return "-Tsvg"; + case PDF: + return "-Tpdf"; + default: + Assertions.UNREACHABLE(); + return null; + } + } + + /** + * Some versions of dot appear to croak on long labels. Reduce this if so. + */ + private final static int MAX_LABEL_LENGTH = Integer.MAX_VALUE; + + + /** + */ + public static void dotify(Graph g, NodeDecorator labels, String dotFile, String outputFile, String dotExe) + throws WalaException { + dotify(g, labels, null, dotFile, outputFile, dotExe); + } + + public static void dotify(Graph g, NodeDecorator labels, String title, String dotFile, String outputFile, String dotExe) + throws WalaException { + if (g == null) { + throw new IllegalArgumentException("g is null"); + } + File f = DexDotUtil.writeDotFile(g, labels, title, dotFile); + spawnDot(dotExe, outputFile, f); + } + + public static void spawnDot(String dotExe, String outputFile, File dotFile) throws WalaException { + if (dotFile == null) { + throw new IllegalArgumentException("dotFile is null"); + } + String[] cmdarray = { dotExe, outputTypeCmdLineParam(), "-o", outputFile, "-v", dotFile.getAbsolutePath() }; + logger.debug("spawning process " + Arrays.toString(cmdarray)); + BufferedInputStream output = null; + BufferedInputStream error = null; + try { + Process p = Runtime.getRuntime().exec(cmdarray); + output = new BufferedInputStream(p.getInputStream()); + error = new BufferedInputStream(p.getErrorStream()); + boolean repeat = true; + while (repeat) { + try { + Thread.sleep(500); + } catch (InterruptedException e1) { + e1.printStackTrace(); + // just ignore and continue + } + if (output.available() > 0) { + byte[] data = new byte[output.available()]; + int nRead = output.read(data); + logger.error("read " + nRead + " bytes from output stream"); + } + if (error.available() > 0) { + byte[] data = new byte[error.available()]; + int nRead = error.read(data); + logger.error("read " + nRead + " bytes from error stream"); + } + try { + p.exitValue(); + // if we get here, the process has terminated + repeat = false; + logger.debug("process terminated with exit code " + p.exitValue()); + } catch (IllegalThreadStateException e) { + // this means the process has not yet terminated. + repeat = true; + } + } + } catch (IOException e) { + e.printStackTrace(); + throw new WalaException("IOException in " + DotUtil.class); + } finally { + if (output != null) { + try { + output.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (error != null) { + try { + error.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + public static File writeDotFile(Graph g, NodeDecorator labels, String title, String dotfile) throws WalaException { + + if (g == null) { + throw new IllegalArgumentException("g is null"); + } + StringBuffer dotStringBuffer = dotOutput(g, labels, title); + + // retrieve the filename parameter to this component, a String + if (dotfile == null) { + throw new WalaException("internal error: null filename parameter"); + } + try { + File f = new File(dotfile); + FileWriter fw = new FileWriter(f); + fw.write(dotStringBuffer.toString()); + fw.close(); + return f; + + } catch (Exception e) { + throw new WalaException("Error writing dot file " + dotfile); + } + } + + /** + * @return StringBuffer holding dot output representing G + * @throws WalaException + */ + private static StringBuffer dotOutput(Graph g, NodeDecorator labels, String title) throws WalaException { + StringBuffer result = new StringBuffer("digraph \"DirectedGraph\" {\n"); + + if (title != null) { + result.append("graph [label = \""+title+"\", labelloc=t, concentrate = true];"); + } else { + result.append("graph [concentrate = true];"); + } + + String rankdir = getRankDir(); + if (rankdir != null) { + result.append("rankdir=" + rankdir + ";"); + } + String fontsizeStr = "fontsize=" + fontSize; + String fontcolorStr = (fontColor != null) ? ",fontcolor="+fontColor : ""; + String fontnameStr = (fontName != null) ? ",fontname="+fontName : ""; + + result.append("center=true;"); + result.append(fontsizeStr); + result.append(";node [ color=blue,shape=\"box\""); + result.append(fontsizeStr); + result.append(fontcolorStr); + result.append(fontnameStr); + result.append("];edge [ color=black,"); + result.append(fontsizeStr); + result.append(fontcolorStr); + result.append(fontnameStr); + result.append("]; \n"); + + Collection dotNodes = computeDotNodes(g); + + outputNodes(labels, result, dotNodes); + + for (Iterator it = g.iterator(); it.hasNext();) { + T n = it.next(); + for (Iterator it2 = g.getSuccNodes(n); it2.hasNext();) { + T s = it2.next(); + result.append(" "); + result.append(getPort(n, labels)); + result.append(" -> "); + result.append(getPort(s, labels)); + result.append(" \n"); + } + } + + result.append("\n}"); + return result; + } + + private static void outputNodes(NodeDecorator labels, StringBuffer result, Collection dotNodes) throws WalaException { + for (Iterator it = dotNodes.iterator(); it.hasNext();) { + outputNode(labels, result, it.next()); + } + } + + private static void outputNode(NodeDecorator labels, StringBuffer result, T n) throws WalaException { + result.append(" "); + result.append("\""); + result.append(getLabel(n, labels)); + result.append("\""); + result.append(decorateNode(n, labels)); + } + + /** + * Compute the nodes to visualize + */ + private static Collection computeDotNodes(Graph g) throws WalaException { + return Iterator2Collection.toSet(g.iterator()); + } + + private static String getRankDir() throws WalaException { + return null; + } + + /** + * @param n node to decorate + * @param d decorating master + */ + private static String decorateNode(T n, NodeDecorator d) throws WalaException { + StringBuffer result = new StringBuffer(); + result.append(" [ ]\n"); + return result.toString(); + } + + private static String getLabel(T o, NodeDecorator d) throws WalaException { + String result = null; + if (d == null) { + //result = o.toString(); + result = cleanUpString(o.toString()); + } else { + result = d.getLabel(o); + result = result == null ? cleanUpString(o.toString()) : cleanUpString(result); + } + if (result.length() >= MAX_LABEL_LENGTH) { + result = result.substring(0, MAX_LABEL_LENGTH - 3) + "..."; + } + return result; + } + + private static String getPort(T o, NodeDecorator d) throws WalaException { + return "\"" + getLabel(o, d) + "\""; + + } + + public static int getFontSize() { + return fontSize; + } + + public static void setFontSize(int fontSize) { + DexDotUtil.fontSize = fontSize; + } + + + private static String cleanUpString(String s) { + if (!s.isEmpty() && s.startsWith("Node: ")) { + String[] nodeString = s.split(","); + if (nodeString.length >= 3) { + String className = nodeString[1]; + String methodName = nodeString[2]; + return className.trim() + "\\n" + methodName.substring(0,methodName.indexOf(" > ")).trim(); + } + } + return s; + } + + + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/EmptyProgressMonitor.java b/com.ibm.wala.scandroid/source/org/scandroid/util/EmptyProgressMonitor.java new file mode 100644 index 000000000..cbd290057 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/EmptyProgressMonitor.java @@ -0,0 +1,69 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ + +package org.scandroid.util; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.StringTokenizer; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.scandroid.spec.AndroidSpecs; +import org.scandroid.spec.MethodNamePattern; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.impl.DefaultEntrypoint; +import com.ibm.wala.ipa.cha.ClassHierarchy; +import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.util.strings.StringStuff; + + +public class EntryPoints { + private static final Logger logger = LoggerFactory.getLogger(EntryPoints.class); + + private String pathToApkFile; + private String pathToApkTool; + private String pathToJava; + private String tempFolder; + private ArrayList ActivityIntentList; + private ArrayList ReceiverIntentList; + private ArrayList ServiceIntentList; + + private LinkedList entries; + + public void listenerEntryPoints(ClassHierarchy cha, AndroidAnalysisContext loader) { + ArrayList entryPointMRs = new ArrayList(); + + // onLocation + entryPointMRs.add(StringStuff.makeMethodReference("android.location.LocationListener.onLocationChanged(Landroid/location/Location;)V")); + for(MethodReference mr:entryPointMRs) + for(IMethod im:cha.getPossibleTargets(mr)) + { + logger.debug("Considering target "+im.getSignature()); + + // limit to functions defined within the application + if(im.getReference().getDeclaringClass().getClassLoader(). + equals(ClassLoaderReference.Application)) { + logger.debug("Adding entry point: "+im.getSignature()); + entries.add(new DefaultEntrypoint(im, cha)); + } + } + } + + public static List defaultEntryPoints(ClassHierarchy cha) { + List entries = new ArrayList(); + for (MethodNamePattern mnp:new AndroidSpecs().getEntrypointSpecs()) { + for (IMethod im: mnp.getPossibleTargets(cha)) { + logger.debug("Considering target "+im.getSignature()); + // limit to functions defined within the application + if(LoaderUtils.fromLoader(im, ClassLoaderReference.Application)) + { + logger.debug("Adding entry point: "+im.getSignature()); + entries.add(new DefaultEntrypoint(im, cha)); + } + } + } + return entries; + } + + public void activityModelEntry(ClassHierarchy cha, AndroidAnalysisContext loader) { + String[] methodReferences = { + "android.app.Activity.ActivityModel()V", + // find all onActivityResult functions and add them as entry points +// "android.app.Activity.onActivityResult(IILandroid/content/Intent;)V", +// +// // SERVICE ENTRY POINTS +// "android.app.Service.onCreate()V", +// "android.app.Service.onStart(Landroid/content/Intent;I)V", +// "android.app.Service.onBind(Landroid/content/Intent;)Landroid/os/IBinder;", +// "android.app.Service.onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)B" + }; + + for (int i = 0; i < methodReferences.length; i++) { + MethodReference mr = + StringStuff.makeMethodReference(methodReferences[i]); + + for (IMethod im : cha.getPossibleTargets(mr)) { + logger.debug("Considering target " + im.getSignature()); + + // limit to functions defined within the application + if (im.getReference().getDeclaringClass().getClassLoader() + .equals(ClassLoaderReference.Application)) { + logger.debug("Adding entry point: " + im.getSignature()); + entries.add(new DefaultEntrypoint(im, cha)); + } + } + } + } + + @SuppressWarnings("unused") + private void systemEntry(ClassHierarchy cha, AndroidAnalysisContext loader) { + String[] systemEntyPoints = { +// "android.app.ActivityThread.main([Ljava/lang/String;)V" +// , "com.android.server.ServerThread.run()V" + //"android.location.LocationManager$ListenerTransport._handleMessage(Landroid/os/Message;)V" +// "android.location.LocationManager$ListenerTransport$1.handleMessage(Landroid/os/Message;)V" +// "android.os.Handler.handleMessage(Landroid/os/Message;)V", +// "android.os.Handler$Callback.handleMessage(Landroid/os/Message;)Z", +// "com.android.internal.os.HandlerCaller$Callback.executeMessage(Landroid/os/Message;)V" +// "android.os.Handler.dispatchMessage(Landroid/os/Message;)V", +// "android.view.View.dispatchTouchEvent(Landroid/view/MotionEvent;)Z", +// "android.view.View.onTouchEvent(Landroid/view/MotionEvent;)Z", +// "android.view.View.setOnClickListener(Landroid/view/View$OnClickListener;)V", + "com.android.server.ServerThread.run()V" + //"android.app.ActivityThread.main([Ljava/lang/String;)V" + }; + + for (int i = 0; i < systemEntyPoints.length; i++) { + MethodReference methodRef = + StringStuff.makeMethodReference(systemEntyPoints[i]); + + for (IMethod im : cha.getPossibleTargets(methodRef)) { + logger.debug("Adding entry point: " + im.getSignature()); + entries.add(new DefaultEntrypoint(im, cha)); + } + } + } + + + public void addTestEntry(ClassHierarchy cha, AndroidAnalysisContext loader) { + String[] methodReferences = { +// "Test.Apps.Outer$PrivateInnerClass.printNum()V", + //"Test.Apps.Outer$PublicInnerClass.printNum()V" + //"Test.Apps.Outer.()V" + //"Test.Apps.Outer.getNum()I" + //"Test.Apps.FixpointSolver.someMethod(LTest/Apps/GenericSink;LTest/Apps/GenericSource;)V" + //"Test.Apps.Outer$PrivateInnerClass.testParameters(LTest/Apps/GenericSink;LTest/Apps/GenericSource;)V" + "android.view.View.setOnClickListener(Landroid/view/View$OnClickListener;)V", + }; + + for (int i = 0; i < methodReferences.length; i++) { + MethodReference mr = + StringStuff.makeMethodReference(methodReferences[i]); + + for (IMethod im : cha.getPossibleTargets(mr)) { + logger.debug("Adding entry point: " + im.getSignature()); + entries.add(new DefaultEntrypoint(im, cha)); + } + } + } + + + public void unpackApk(String classpath){ + StringTokenizer st = new StringTokenizer(classpath, File.pathSeparator); + pathToApkFile = st.nextToken(); + //String pathToApkTool = new String(System.getProperty("user.dir").replace(" ", "\\ ") + File.separator + "apktool" +File.separator); + pathToApkTool = System.getProperty("user.dir") + File.separator + "apktool" +File.separator; + //String pathToJava = new String(System.getProperty("java.home").replace(" ", "\\ ") + File.separator + "bin" + File.separator); + pathToJava = System.getProperty("java.home") + File.separator + "bin" + File.separator; + String s = null; + + //String command = new String(pathToJava + "java -jar " + pathToApkTool + "apktool.jar d -f " + pathToApkFile + " " + pathToApkTool + tempFolder); + + //System.out.println("command: " + command); + + ProcessBuilder pb = new ProcessBuilder(pathToJava + "java", "-jar", pathToApkTool + "apktool.jar", "d", "-f", pathToApkFile, pathToApkTool+tempFolder); + + + try { + //Process p = Runtime.getRuntime().exec(command); + Process p = pb.start(); + BufferedReader stdInput = new BufferedReader(new + InputStreamReader(p.getInputStream())); + + BufferedReader stdError = new BufferedReader(new + InputStreamReader(p.getErrorStream())); + + // read the output from the command + logger.debug("Here is the standard output of the command:\n"); + while ((s = stdInput.readLine()) != null) { + logger.debug(s); + } + + // read any errors from the attempted command + logger.debug("Here is the standard error of the command (if any):\n"); + while ((s = stdError.readLine()) != null) { + logger.debug(s); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //System.out.println( System.getProperty("user.dir") ); + //System.out.println("classpath: " + st.nextToken()); + } + + public void readXMLFile() { + try { + + File fXmlFile = new File(pathToApkTool + tempFolder + File.separator + "AndroidManifest.xml"); + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(fXmlFile); + doc.getDocumentElement().normalize(); + + //System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); + + String basePackage = doc.getDocumentElement().getAttribute("package"); + NodeList iList = doc.getElementsByTagName("intent-filter"); + System.out.println("-----------------------"); + + + for (int i = 0; i < iList.getLength(); i++) { + Node nNode = iList.item(i); + + if (nNode.getNodeType() == Node.ELEMENT_NODE) { + Element eElement = (Element) nNode; +// System.out.println(eElement.getNodeName()); + populateIntentList(basePackage, eElement); + } + + } + + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @SuppressWarnings("unused") + private static String getTagValue(String sTag, Element eElement) { + NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes(); + + Node nValue = (Node) nlList.item(0); + + return nValue.getNodeValue(); + } + + private void populateIntentList(String basePackage, Element eElement) { + ArrayList IntentList; + NodeList actionList = eElement.getElementsByTagName("action"); + Node parent = eElement.getParentNode(); + IntentList = chooseIntentList(parent.getNodeName()); + + String IntentClass = parent.getAttributes().getNamedItem("android:name").getTextContent(); + + for (int i = 0; i < actionList.getLength(); i++) + { + Node nNode = actionList.item(i); + if (nNode.getNodeType() == Node.ELEMENT_NODE) { + IntentList.add(new String[2]); + IntentList.get(IntentList.size()-1)[0] = actionList.item(i).getAttributes().getNamedItem("android:name").getTextContent(); + + if (IntentClass.startsWith(basePackage)) + IntentList.get(IntentList.size()-1)[1] = IntentClass; + else { + if (IntentClass.startsWith(".")) + IntentList.get(IntentList.size()-1)[1] = basePackage + IntentClass; + else { + IntentList.get(IntentList.size()-1)[1] = basePackage + "." + IntentClass; + IntentList.add(new String[2]); + IntentList.get(IntentList.size()-1)[0] = actionList.item(i).getAttributes().getNamedItem("android:name").getTextContent(); + IntentList.get(IntentList.size()-1)[1] = IntentClass; + } + + //IntentList.get(IntentList.size()-1)[1] = basePackage + (IntentClass.startsWith(".") ? IntentClass : "." + IntentClass); + } + + //System.out.println(IntentList.get(IntentList.size()-1)[0] + " ~> " + IntentList.get(IntentList.size()-1)[1]); + } + } + } + + @SuppressWarnings("unused") + private void populateEntryPoints(ClassHierarchy cha) { + String method = null; + IMethod im = null; + for (String[] intent: ActivityIntentList) { + //method = IntentToMethod(intent[0]); + method = "onCreate(Landroid/os/Bundle;)V"; + logger.debug("activity intent method: "+intent[1]+"."+method); + if (method != null) + im = cha.resolveMethod(StringStuff.makeMethodReference(intent[1]+"."+method)); + if (im!=null) + entries.add(new DefaultEntrypoint(im,cha)); + + } + for (String[] intent: ReceiverIntentList) { + //Seems that every broadcast receiver can be an entrypoints? +// method = IntentToMethod(intent[0]); + method = "onReceive(Landroid/content/Context;Landroid/content/Intent;)V"; + logger.debug("receiver intent method: "+intent[1]+"."+method); + if (method != null) + im = cha.resolveMethod(StringStuff.makeMethodReference(intent[1]+"."+method)); + if (im!=null) + entries.add(new DefaultEntrypoint(im,cha)); + } + //IMethod im = cha.resolveMethod(StringStuff.makeMethodReference("android.app.Activity.onCreate(Landroid/os/Bundle;)V")); + //entries.add(new DefaultEntrypoint(im, cha)); + } + + @SuppressWarnings("unused") + private String IntentToMethod(String intent) { + if (intent.contentEquals("android.intent.action.MAIN") || + intent.contentEquals("android.media.action.IMAGE_CAPTURE") || + intent.contentEquals("android.media.action.VIDEO_CAPTURE") || + intent.contentEquals("android.media.action.STILL_IMAGE_CAMERA") || + intent.contentEquals("android.intent.action.MUSIC_PLAYER") || + intent.contentEquals("android.media.action.VIDEO_CAMERA")) + return "onCreate(Landroid/os/Bundle;)V"; + +// else if (intent.contentEquals("android.intent.action.BOOT_COMPLETED") || +// intent.contentEquals("android.appwidget.action.APPWIDGET_UPDATE") || +// intent.contentEquals("android.provider.Telephony.SECRET_CODE") ) +// return "onReceive(Landroid/content/Context;Landroid/content/Intent;)V"; + + + else return null; + } + + private ArrayList chooseIntentList(String name) { + if (name.equals("activity")) + return ActivityIntentList; + else if (name.equals("receiver")) + return ReceiverIntentList; + else if (name.equals("service")) + return ServiceIntentList; + else { + return ActivityIntentList; +// throw new UnimplementedError("EntryPoints intent category not yet covered: " + name); + } + } + + @SuppressWarnings("unused") + private void outputIntentList() { + if (ActivityIntentList != null) + for (int i = 0; i < ActivityIntentList.size(); i++) + logger.debug("Activity Intent: " + ActivityIntentList.get(i)[0] + " ~> " + ActivityIntentList.get(i)[1]); + if (ReceiverIntentList != null) + for (int i = 0; i < ReceiverIntentList.size(); i++) + logger.debug("Receiver Intent: " + ReceiverIntentList.get(i)[0] + " ~> " + ReceiverIntentList.get(i)[1]); + if (ServiceIntentList != null) + for (int i = 0; i < ServiceIntentList.size(); i++) + logger.debug("Service Intent: " + ServiceIntentList.get(i)[0] + " ~> " + ServiceIntentList.get(i)[1]); + } + + public LinkedList getEntries() { + return entries; + } + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/IEntryPointSpecifier.java b/com.ibm.wala.scandroid/source/org/scandroid/util/IEntryPointSpecifier.java new file mode 100644 index 000000000..56be2e4ce --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/IEntryPointSpecifier.java @@ -0,0 +1,63 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.util; + +import java.util.List; + + +import com.ibm.wala.ipa.callgraph.Entrypoint; + +public interface IEntryPointSpecifier { + + /** + * @param analysisContext + * @return a list of entrypoints for the given analysis context + */ + public List specify(AndroidAnalysisContext analysisContext); +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/ISCanDroidOptions.java b/com.ibm.wala.scandroid/source/org/scandroid/util/ISCanDroidOptions.java new file mode 100644 index 000000000..3d8e33755 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/ISCanDroidOptions.java @@ -0,0 +1,164 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.util; + +import java.net.URI; + +import com.ibm.wala.ipa.callgraph.AnalysisOptions.ReflectionOptions; + +/** + * @author acfoltzer + * + * An abstraction of the options for a SCanDroid execution + */ +public interface ISCanDroidOptions { + + /** + * @return whether to create a full call graph pdf + */ + public boolean pdfCG(); + + /** + * @return whether to create an application-only call graph pdf + */ + public boolean pdfPartialCG(); + + /** + * @return whether to create a call graph of application + 1 level of system + * calls + */ + public boolean pdfOneLevelCG(); + + /** + * @return whether to create a system + 1 level of application call graph + */ + public boolean systemToApkCG(); + + /** + * @return whether to print a full call graph to stdout + */ + public boolean stdoutCG(); + + /** + * @return whether to include the Android library in flow analysis + */ + public boolean includeLibrary(); + + /** + * @return whether to analyze each entry point separately + */ + public boolean separateEntries(); + + /** + * @return whether to bring up a GUI to analyze domain elements for flow + * analysis + */ + public boolean ifdsExplorer(); + + /** + * @return whether to look for main methods and add them as entry points + */ + public boolean addMainEntrypoints(); + + /** + * @return whether to use ServerThread.run as the entry point for analysis + */ + public boolean useThreadRunMain(); + + /** + * @return whether to run string prefix analysis + */ + public boolean stringPrefixAnalysis(); + + /** + * @return whether to stop after generating the call graph + */ + public boolean testCGBuilder(); + + /** + * @return whether to log class hierarchy warnings + */ + public boolean classHierarchyWarnings(); + + /** + * @return whether to log call graph builder warnings + */ + public boolean cgBuilderWarnings(); + + /** + * @return whether to check conformance to built-in policy + */ + public boolean useDefaultPolicy(); + + /** + * @return the URI pointing to the jar or apk to analyze + */ + public URI getClasspath(); + + /** + * @return the filename portion of the classpath to analyze + */ + public String getFilename(); + + /** + * @return a URI to the Android library jar + */ + public URI getAndroidLibrary(); + + /** + * @return the ReflectionOptions for this run + */ + public ReflectionOptions getReflectionOptions(); + + /** + * @return a URI to the XML method summaries file + */ + public URI getSummariesURI(); + +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/LoaderUtils.java b/com.ibm.wala.scandroid/source/org/scandroid/util/LoaderUtils.java new file mode 100644 index 000000000..988463f73 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/LoaderUtils.java @@ -0,0 +1,80 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/* + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , Rogan Creswick ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.util; + +import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.types.ClassLoaderReference; + +public class LoaderUtils { + + public static boolean fromLoader(CGNode node, ClassLoaderReference clr) { + IClass declClass = node.getMethod().getDeclaringClass(); + + ClassLoaderReference nodeClRef = + declClass.getClassLoader().getReference(); + + return nodeClRef.equals(clr); + } + + public static boolean fromLoader(IMethod method, ClassLoaderReference clr) { + IClass declClass = method.getDeclaringClass(); + + ClassLoaderReference nodeClRef = + declClass.getClassLoader().getReference(); + + return nodeClRef.equals(clr); + } + + public static boolean fromLoader(IClass declClass, ClassLoaderReference clr) { + ClassLoaderReference nodeClRef = + declClass.getClassLoader().getReference(); + + return nodeClRef.equals(clr); + } +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/ThrowingSSAInstructionVisitor.java b/com.ibm.wala.scandroid/source/org/scandroid/util/ThrowingSSAInstructionVisitor.java new file mode 100644 index 000000000..d008a3161 --- /dev/null +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/ThrowingSSAInstructionVisitor.java @@ -0,0 +1,222 @@ +/* + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html. + * + * This file is a derivative of code released under the terms listed below. + * + */ +/** + * + * Copyright (c) 2009-2012, + * + * Galois, Inc. (Aaron Tomb , + * Rogan Creswick , + * Adam Foltzer ) + * Steve Suh + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The names of the contributors may not 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. + * + * + */ +package org.scandroid.util; + +import com.ibm.wala.ssa.SSAArrayLengthInstruction; +import com.ibm.wala.ssa.SSAArrayLoadInstruction; +import com.ibm.wala.ssa.SSAArrayStoreInstruction; +import com.ibm.wala.ssa.SSABinaryOpInstruction; +import com.ibm.wala.ssa.SSACheckCastInstruction; +import com.ibm.wala.ssa.SSAComparisonInstruction; +import com.ibm.wala.ssa.SSAConditionalBranchInstruction; +import com.ibm.wala.ssa.SSAConversionInstruction; +import com.ibm.wala.ssa.SSAGetCaughtExceptionInstruction; +import com.ibm.wala.ssa.SSAGetInstruction; +import com.ibm.wala.ssa.SSAGotoInstruction; +import com.ibm.wala.ssa.SSAInstanceofInstruction; +import com.ibm.wala.ssa.SSAInstruction.IVisitor; +import com.ibm.wala.ssa.SSAInvokeInstruction; +import com.ibm.wala.ssa.SSALoadMetadataInstruction; +import com.ibm.wala.ssa.SSAMonitorInstruction; +import com.ibm.wala.ssa.SSANewInstruction; +import com.ibm.wala.ssa.SSAPhiInstruction; +import com.ibm.wala.ssa.SSAPiInstruction; +import com.ibm.wala.ssa.SSAPutInstruction; +import com.ibm.wala.ssa.SSAReturnInstruction; +import com.ibm.wala.ssa.SSASwitchInstruction; +import com.ibm.wala.ssa.SSAThrowInstruction; +import com.ibm.wala.ssa.SSAUnaryOpInstruction; + +public class ThrowingSSAInstructionVisitor implements IVisitor { + private final RuntimeException e; + + public ThrowingSSAInstructionVisitor(RuntimeException e) { + this.e = e; + } + + @Override + public void visitGoto(SSAGotoInstruction instruction) { + throw e; + } + + @Override + public void visitArrayLoad(SSAArrayLoadInstruction instruction) { + throw e; + + } + + @Override + public void visitArrayStore(SSAArrayStoreInstruction instruction) { + throw e; + + } + + @Override + public void visitBinaryOp(SSABinaryOpInstruction instruction) { + throw e; + + } + + @Override + public void visitUnaryOp(SSAUnaryOpInstruction instruction) { + throw e; + + } + + @Override + public void visitConversion(SSAConversionInstruction instruction) { + throw e; + + } + + @Override + public void visitComparison(SSAComparisonInstruction instruction) { + throw e; + + } + + @Override + public void visitConditionalBranch( + SSAConditionalBranchInstruction instruction) { + throw e; + + } + + @Override + public void visitSwitch(SSASwitchInstruction instruction) { + throw e; + + } + + @Override + public void visitReturn(SSAReturnInstruction instruction) { + throw e; + + } + + @Override + public void visitGet(SSAGetInstruction instruction) { + throw e; + + } + + @Override + public void visitPut(SSAPutInstruction instruction) { + throw e; + + } + + @Override + public void visitInvoke(SSAInvokeInstruction instruction) { + throw e; + + } + + @Override + public void visitNew(SSANewInstruction instruction) { + throw e; + + } + + @Override + public void visitArrayLength(SSAArrayLengthInstruction instruction) { + throw e; + + } + + @Override + public void visitThrow(SSAThrowInstruction instruction) { + throw e; + + } + + @Override + public void visitMonitor(SSAMonitorInstruction instruction) { + throw e; + + } + + @Override + public void visitCheckCast(SSACheckCastInstruction instruction) { + throw e; + + } + + @Override + public void visitInstanceof(SSAInstanceofInstruction instruction) { + throw e; + + } + + @Override + public void visitPhi(SSAPhiInstruction instruction) { + throw e; + + } + + @Override + public void visitPi(SSAPiInstruction instruction) { + throw e; + + } + + @Override + public void visitGetCaughtException( + SSAGetCaughtExceptionInstruction instruction) { + throw e; + + } + + @Override + public void visitLoadMetadata(SSALoadMetadataInstruction instruction) { + throw e; + + } + +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/Runtime.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/Runtime.java index 14d8d80b6..80e214a84 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/Runtime.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/Runtime.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.shrike.cg; import java.io.FileInputStream; @@ -17,6 +28,7 @@ public class Runtime { private PrintWriter output; private SetOfClasses filter; + private boolean handleUninstrumentedCode = false; private ThreadLocal> callStacks = new ThreadLocal>() { @@ -42,6 +54,8 @@ public class Runtime { output = new PrintWriter(System.err); } + handleUninstrumentedCode = Boolean.parseBoolean(System.getProperty("dynamicCGHandleMissing", "false")); + java.lang.Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { @@ -67,9 +81,25 @@ public class Runtime { public static void execution(String klass, String method, Object receiver) { if (runtime.filter == null || ! runtime.filter.contains(klass)) { if (runtime.output != null) { - String line = runtime.callStacks.get().peek() + "\t" + klass + "\t" + method + "\n"; - synchronized (runtime) { - runtime.output.printf(line); + String caller = runtime.callStacks.get().peek(); + + checkValid: { + if (runtime.handleUninstrumentedCode) { + StackTraceElement[] stack = (new Throwable()).getStackTrace(); + if (stack.length > 2) { + // frames: me(0), callee(1), caller(2) + StackTraceElement callerFrame = stack[2]; + if (! caller.contains(callerFrame.getMethodName()) || + ! caller.contains(callerFrame.getClassName().replace('.', '/'))) { + break checkValid; + } + } + } + + String line = caller + "\t" + klass + "\t" + method + "\n"; + synchronized (runtime) { + runtime.output.printf(line); + } } } } diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InvokeDynamicInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InvokeDynamicInstruction.java index a7ad11dd2..fa3dcae54 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InvokeDynamicInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InvokeDynamicInstruction.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.shrikeBT; import java.lang.invoke.CallSite; diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/BootstrapMethodsReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/BootstrapMethodsReader.java index 662011059..a44052121 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/BootstrapMethodsReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/BootstrapMethodsReader.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.shrikeCT; import com.ibm.wala.shrikeCT.ClassReader.AttrIterator; diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourcePositionTableReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourcePositionTableReader.java index aad60eb95..455ef9adf 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourcePositionTableReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourcePositionTableReader.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.shrikeCT; import java.io.IOException; diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTData.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTData.java index 711c31b54..2766ff0d3 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTData.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTData.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * CRTData.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTFlags.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTFlags.java index 79b7c37d4..8374c1513 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTFlags.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTFlags.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * CRTFlags.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTable.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTable.java index 7c8a1e000..1003f73a7 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTable.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/CRTable.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * CRTable.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Debug.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Debug.java index c2a7b2e6c..48aea12b2 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Debug.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Debug.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.sourcepos; import java.io.FileNotFoundException; diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidCRTDataException.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidCRTDataException.java index 3d7df09ee..dc0e09e9c 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidCRTDataException.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidCRTDataException.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * InvalidCRTDataException.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidPositionException.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidPositionException.java index a8b664aad..3be0a760d 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidPositionException.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidPositionException.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * InvalidPositionException.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidRangeException.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidRangeException.java index 34d0ac46e..75062879b 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidRangeException.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidRangeException.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * InvalidRangeException.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidSourceInfoException.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidSourceInfoException.java index 09f19f0bf..cc49d02ed 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidSourceInfoException.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/InvalidSourceInfoException.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * InvalidSourceInfoException.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/MethodPositions.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/MethodPositions.java index 9fbbbe153..24fa17651 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/MethodPositions.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/MethodPositions.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * MethodPositions.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Position.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Position.java index 5894e159b..7e2fb7246 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Position.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Position.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Position.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/PositionsAttribute.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/PositionsAttribute.java index 34b64104d..3651b93a4 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/PositionsAttribute.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/PositionsAttribute.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * PositionsAttribute.java * diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Range.java b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Range.java index 7d55d81d6..8ef02bff1 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Range.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/sourcepos/Range.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + /* * Range.java * diff --git a/com.ibm.wala.util/.classpath b/com.ibm.wala.util/.classpath index deb673668..5b4a2a132 100644 --- a/com.ibm.wala.util/.classpath +++ b/com.ibm.wala.util/.classpath @@ -2,6 +2,6 @@ - + diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorIntersection.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorIntersection.java index 524401deb..2eb05490b 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorIntersection.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorIntersection.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.dataflow.graph; import com.ibm.wala.fixpoint.BitVectorVariable; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/IteratorUtil.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/IteratorUtil.java index bf165c032..f9a930d8c 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/IteratorUtil.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/IteratorUtil.java @@ -12,6 +12,8 @@ package com.ibm.wala.util.collections; import java.util.Iterator; +import com.ibm.wala.util.functions.Function; + /** * utilities dealing with Iterators */ @@ -43,4 +45,22 @@ public class IteratorUtil { } return count; } + + @SuppressWarnings("deprecation") + public static Iterator filter(Iterator iterator, final Class cls) { + return new MapIterator( + new FilterIterator(iterator, new Filter() { + @Override + public boolean accepts(T o) { + return cls.isInstance(o); + } + }), + new Function() { + @SuppressWarnings("unchecked") + @Override + public S apply(T object) { + return (S) object; + } + }); + } } diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/ExtensionGraph.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/ExtensionGraph.java index 1431bf14e..c3c8f7b97 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/ExtensionGraph.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/ExtensionGraph.java @@ -1,3 +1,14 @@ +/****************************************************************************** + * Copyright (c) 2002 - 2014 IBM Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *****************************************************************************/ + package com.ibm.wala.util.graph.impl; import java.util.Iterator;